orchestry-mcp
Version:
Orchestry MCP Server for multi-session task management
211 lines • 4.63 kB
TypeScript
export declare enum TaskStatus {
BACKLOG = "backlog",
TODO = "todo",
IN_PROGRESS = "in_progress",
REVIEW = "review",
DONE = "done",
BLOCKED = "blocked"
}
export declare enum Priority {
CRITICAL = "critical",
HIGH = "high",
MEDIUM = "medium",
LOW = "low"
}
export declare enum DocumentType {
REQUIREMENT = "requirement",
TECHNICAL_SPEC = "technical_spec",
DESIGN = "design",
MEETING_NOTES = "meeting_notes",
ANALYSIS = "analysis",
REPORT = "report",
DOCUMENTATION = "documentation"
}
export interface Project {
id: string;
name: string;
description: string;
sessionId?: string;
llmContext?: string;
createdAt: Date;
updatedAt: Date;
workspaces: Workspace[];
tags: string[];
team: TeamMember[];
}
export interface Workspace {
id: string;
projectId: string;
name: string;
description: string;
color?: string;
icon?: string;
goals: Goal[];
createdAt: Date;
updatedAt: Date;
}
export interface Goal {
id: string;
workspaceId: string;
title: string;
description: string;
targetDate?: Date;
priority: Priority;
successCriteria: string[];
tasks: Task[];
documents: Document[];
createdAt: Date;
updatedAt: Date;
}
export interface Task {
id: string;
goalId: string;
parentTaskId?: string;
title: string;
description: string;
status: TaskStatus;
priority: Priority;
assignee?: TeamMember;
dueDate?: Date;
startDate?: Date;
completedDate?: Date;
estimatedHours?: number;
actualHours?: number;
checklist: ChecklistItem[];
dependencies: string[];
comments: Comment[];
attachments: Attachment[];
tags: string[];
sessionNotes?: string;
llmSuggestions?: string[];
subtasks?: Task[];
createdAt: Date;
updatedAt: Date;
}
export interface Document {
id: string;
entityId: string;
entityType: 'project' | 'workspace' | 'goal' | 'task';
type: DocumentType;
title: string;
content: string;
url?: string;
version: number;
author: TeamMember;
createdAt: Date;
updatedAt: Date;
revisions: DocumentRevision[];
}
export interface DocumentRevision {
version: number;
content: string;
author: TeamMember;
changeLog: string;
createdAt: Date;
}
export interface ChecklistItem {
id: string;
text: string;
completed: boolean;
completedBy?: TeamMember;
completedAt?: Date;
}
export interface Comment {
id: string;
author: TeamMember;
content: string;
createdAt: Date;
updatedAt?: Date;
mentions?: string[];
sessionId?: string;
}
export interface Attachment {
id: string;
name: string;
url: string;
type: string;
size: number;
uploadedBy: TeamMember;
uploadedAt: Date;
}
export interface TeamMember {
id: string;
name: string;
email: string;
role: string;
avatar?: string;
isBot?: boolean;
}
export interface Session {
id: string;
projectId: string;
name: string;
type: 'human' | 'llm' | 'hybrid';
llmModel?: string;
context?: string;
isActive: boolean;
startedAt: Date;
lastActivityAt: Date;
endedAt?: Date;
}
export interface ApiResponse<T> {
success: boolean;
data?: T;
error?: string;
timestamp: Date;
}
export interface KanbanColumn {
id: TaskStatus;
title: string;
items: Task[];
limit?: number;
}
export interface ProjectBoard {
projectId: string;
columns: KanbanColumn[];
filters: BoardFilter;
}
export interface BoardFilter {
workspaceId?: string;
goalId?: string;
assignee?: string;
priority?: Priority;
tags?: string[];
search?: string;
dateRange?: {
start: Date;
end: Date;
};
sessionId?: string;
}
export interface WSEvent {
type: 'create' | 'update' | 'delete' | 'move';
entity: 'project' | 'workspace' | 'goal' | 'task' | 'document' | 'comment';
data: any;
userId: string;
sessionId?: string;
timestamp: Date;
}
export interface ProjectStats {
totalWorkspaces: number;
totalGoals: number;
totalTasks: number;
completedTasks: number;
inProgressTasks: number;
overdueTasks: number;
totalSessions: number;
activeSessions: number;
}
export interface ToolContext {
projectId: string;
sessionId: string;
userId: string;
timestamp: Date;
}
export interface ToolResult {
success: boolean;
data?: any;
error?: string;
affectedEntities?: string[];
}
//# sourceMappingURL=types.d.ts.map