UNPKG

atlas-mcp-server

Version:

ATLAS (Adaptive Task & Logic Automation System): An MCP server enabling LLM agents to manage projects, tasks, and knowledge via a Neo4j-backed, three-tier architecture. Facilitates complex workflow automation and project management through LLM Agents.

115 lines (114 loc) 4.5 kB
import { Neo4jTask, PaginatedResult, TaskFilterOptions } from "./types.js"; /** * Service for managing Task entities in Neo4j */ export declare class TaskService { /** * Create a new task and optionally assign it to a user. * @param task Task data, including optional assignedTo for relationship creation * @returns The created task */ static createTask(task: Omit<Neo4jTask, "id" | "createdAt" | "updatedAt"> & { id?: string; assignedTo?: string; }): Promise<Neo4jTask & { assignedToUserId?: string | null; }>; /** * Link a Task to a Knowledge item with a specified relationship type. * @param taskId ID of the source Task item * @param knowledgeId ID of the target Knowledge item * @param relationshipType The type of relationship to create (e.g., 'ADDRESSES', 'REFERENCES') - Validation needed * @returns True if the link was created successfully, false otherwise */ static linkTaskToKnowledge(taskId: string, knowledgeId: string, relationshipType: string): Promise<boolean>; /** * Get a task by ID, including the assigned user ID via relationship. * @param id Task ID * @returns The task with assignedToUserId property, or null if not found. */ static getTaskById(id: string): Promise<(Neo4jTask & { assignedToUserId: string | null; }) | null>; /** * Check if all dependencies of a task are completed * @param taskId Task ID to check dependencies for * @returns True if all dependencies are completed, false otherwise */ static areAllDependenciesCompleted(taskId: string): Promise<boolean>; /** * Update a task's properties and handle assignment changes via relationships. * @param id Task ID * @param updates Task updates, including optional assignedTo for relationship changes * @returns The updated task (without assignedTo property) */ static updateTask(id: string, updates: Partial<Omit<Neo4jTask, "id" | "projectId" | "createdAt" | "updatedAt">> & { assignedTo?: string | null; }): Promise<Neo4jTask>; /** * Delete a task * @param id Task ID * @returns True if deleted, false if not found */ static deleteTask(id: string): Promise<boolean>; /** * Get tasks for a project with optional filtering and server-side pagination. * Includes assigned user ID via relationship. * @param options Filter and pagination options * @returns Paginated list of tasks including assignedToUserId */ static getTasks(options: TaskFilterOptions): Promise<PaginatedResult<Neo4jTask & { assignedToUserId: string | null; }>>; /** * Add a dependency relationship between tasks * @param sourceTaskId ID of the dependent task (source) * @param targetTaskId ID of the dependency task (target) * @returns The IDs of the two tasks and the relationship ID */ static addTaskDependency(sourceTaskId: string, targetTaskId: string): Promise<{ id: string; sourceTaskId: string; targetTaskId: string; }>; /** * Remove a dependency relationship between tasks * @param dependencyId The ID of the dependency relationship to remove * @returns True if removed, false if not found */ static removeTaskDependency(dependencyId: string): Promise<boolean>; /** * Get task dependencies (both dependencies and dependents) * @param taskId Task ID * @returns Object containing dependencies and dependents */ static getTaskDependencies(taskId: string): Promise<{ dependencies: { id: string; taskId: string; title: string; status: string; priority: string; }[]; dependents: { id: string; taskId: string; title: string; status: string; priority: string; }[]; }>; /** * Assign a task to a user by creating an ASSIGNED_TO relationship. * @param taskId Task ID * @param userId User ID * @returns The updated task (without assignedTo property) */ static assignTask(taskId: string, userId: string): Promise<Neo4jTask>; /** * Unassign a task by deleting the ASSIGNED_TO relationship. * @param taskId Task ID * @returns The updated task (without assignedTo property) */ static unassignTask(taskId: string): Promise<Neo4jTask>; }