@zeliper/zscode-mcp-server 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/errors/index.d.ts +112 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +231 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/state/manager.d.ts +54 -0
- package/dist/state/manager.d.ts.map +1 -0
- package/dist/state/manager.js +500 -0
- package/dist/state/manager.js.map +1 -0
- package/dist/state/schema.d.ts +942 -0
- package/dist/state/schema.d.ts.map +1 -0
- package/dist/state/schema.js +179 -0
- package/dist/state/schema.js.map +1 -0
- package/dist/state/types.d.ts +117 -0
- package/dist/state/types.d.ts.map +1 -0
- package/dist/state/types.js +2 -0
- package/dist/state/types.js.map +1 -0
- package/dist/tools/archive.d.ts +6 -0
- package/dist/tools/archive.d.ts.map +1 -0
- package/dist/tools/archive.js +67 -0
- package/dist/tools/archive.js.map +1 -0
- package/dist/tools/cancel.d.ts +6 -0
- package/dist/tools/cancel.d.ts.map +1 -0
- package/dist/tools/cancel.js +65 -0
- package/dist/tools/cancel.js.map +1 -0
- package/dist/tools/context.d.ts +6 -0
- package/dist/tools/context.d.ts.map +1 -0
- package/dist/tools/context.js +124 -0
- package/dist/tools/context.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +24 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/plan.d.ts +6 -0
- package/dist/tools/plan.d.ts.map +1 -0
- package/dist/tools/plan.js +186 -0
- package/dist/tools/plan.js.map +1 -0
- package/dist/tools/staging.d.ts +6 -0
- package/dist/tools/staging.d.ts.map +1 -0
- package/dist/tools/staging.js +224 -0
- package/dist/tools/staging.js.map +1 -0
- package/dist/tools/status.d.ts +6 -0
- package/dist/tools/status.d.ts.map +1 -0
- package/dist/tools/status.js +144 -0
- package/dist/tools/status.js.map +1 -0
- package/dist/utils/artifacts.d.ts +57 -0
- package/dist/utils/artifacts.d.ts.map +1 -0
- package/dist/utils/artifacts.js +180 -0
- package/dist/utils/artifacts.js.map +1 -0
- package/dist/utils/paths.d.ts +68 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +122 -0
- package/dist/utils/paths.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/state/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,mBAAmB,wCAAkE,CAAC;AAEnG,eAAO,MAAM,YAAY,aAAsF,CAAC;AAChH,eAAO,MAAM,eAAe,aAA2F,CAAC;AACxH,eAAO,MAAM,YAAY,aAAsF,CAAC;AAGhH,eAAO,MAAM,gBAAgB,uEAAqE,CAAC;AACnG,eAAO,MAAM,kBAAkB,sCAAoC,CAAC;AACpE,eAAO,MAAM,mBAAmB,2EAAyE,CAAC;AAC1G,eAAO,MAAM,gBAAgB,sEAAoE,CAAC;AAClG,eAAO,MAAM,mBAAmB,uCAAqC,CAAC;AACtE,eAAO,MAAM,sBAAsB,yQAejC,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC;AAGH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBrB,CAAC;AAGH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaxB,CAAC;AAGH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYrB,CAAC;AAGH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AAGH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;EAQzB,CAAC;AAGH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAC;AAGH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQtB,CAAC;AAGH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAehC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;EAE5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKpC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;EAItC,CAAC"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// ============ ID Patterns ============
|
|
3
|
+
const PlanIdPattern = /^plan-[a-z0-9]{8}$/;
|
|
4
|
+
const StagingIdPattern = /^staging-[a-z0-9]{4}$/;
|
|
5
|
+
const TaskIdPattern = /^task-[a-z0-9]{8}$/;
|
|
6
|
+
// ============ Basic Types ============
|
|
7
|
+
export const ISODateStringSchema = z.string().datetime({ offset: true }).or(z.string().datetime());
|
|
8
|
+
export const PlanIdSchema = z.string().regex(PlanIdPattern, "Invalid Plan ID format (expected: plan-xxxxxxxx)");
|
|
9
|
+
export const StagingIdSchema = z.string().regex(StagingIdPattern, "Invalid Staging ID format (expected: staging-xxxx)");
|
|
10
|
+
export const TaskIdSchema = z.string().regex(TaskIdPattern, "Invalid Task ID format (expected: task-xxxxxxxx)");
|
|
11
|
+
// ============ Enums ============
|
|
12
|
+
export const TaskStatusSchema = z.enum(["pending", "in_progress", "done", "blocked", "cancelled"]);
|
|
13
|
+
export const TaskPrioritySchema = z.enum(["high", "medium", "low"]);
|
|
14
|
+
export const StagingStatusSchema = z.enum(["pending", "in_progress", "completed", "failed", "cancelled"]);
|
|
15
|
+
export const PlanStatusSchema = z.enum(["draft", "active", "completed", "archived", "cancelled"]);
|
|
16
|
+
export const ExecutionTypeSchema = z.enum(["parallel", "sequential"]);
|
|
17
|
+
export const HistoryEntryTypeSchema = z.enum([
|
|
18
|
+
"project_initialized",
|
|
19
|
+
"plan_created",
|
|
20
|
+
"plan_updated",
|
|
21
|
+
"plan_archived",
|
|
22
|
+
"plan_cancelled",
|
|
23
|
+
"staging_started",
|
|
24
|
+
"staging_completed",
|
|
25
|
+
"staging_failed",
|
|
26
|
+
"task_started",
|
|
27
|
+
"task_completed",
|
|
28
|
+
"task_blocked",
|
|
29
|
+
"decision_added",
|
|
30
|
+
"session_started",
|
|
31
|
+
"session_ended",
|
|
32
|
+
]);
|
|
33
|
+
// ============ Task Output Schema ============
|
|
34
|
+
export const TaskOutputSchema = z.object({
|
|
35
|
+
status: z.enum(["success", "failure", "partial"]),
|
|
36
|
+
summary: z.string(),
|
|
37
|
+
artifacts: z.array(z.string()).default([]),
|
|
38
|
+
data: z.record(z.unknown()).optional(),
|
|
39
|
+
error: z.string().optional(),
|
|
40
|
+
completedAt: ISODateStringSchema,
|
|
41
|
+
});
|
|
42
|
+
// ============ Task Schema ============
|
|
43
|
+
export const TaskSchema = z.object({
|
|
44
|
+
id: TaskIdSchema,
|
|
45
|
+
planId: PlanIdSchema,
|
|
46
|
+
stagingId: StagingIdSchema,
|
|
47
|
+
title: z.string().min(1, "Task title is required"),
|
|
48
|
+
description: z.string().optional(),
|
|
49
|
+
priority: TaskPrioritySchema.default("medium"),
|
|
50
|
+
status: TaskStatusSchema.default("pending"),
|
|
51
|
+
execution_mode: ExecutionTypeSchema.default("parallel"),
|
|
52
|
+
depends_on: z.array(TaskIdSchema).default([]),
|
|
53
|
+
order: z.number().int().min(0).optional(),
|
|
54
|
+
notes: z.string().optional(),
|
|
55
|
+
output: TaskOutputSchema.optional(),
|
|
56
|
+
createdAt: ISODateStringSchema,
|
|
57
|
+
updatedAt: ISODateStringSchema,
|
|
58
|
+
startedAt: ISODateStringSchema.optional(),
|
|
59
|
+
completedAt: ISODateStringSchema.optional(),
|
|
60
|
+
});
|
|
61
|
+
// ============ Staging Schema ============
|
|
62
|
+
export const StagingSchema = z.object({
|
|
63
|
+
id: StagingIdSchema,
|
|
64
|
+
planId: PlanIdSchema,
|
|
65
|
+
name: z.string().min(1, "Staging name is required"),
|
|
66
|
+
description: z.string().optional(),
|
|
67
|
+
order: z.number().int().min(0),
|
|
68
|
+
execution_type: ExecutionTypeSchema.default("parallel"),
|
|
69
|
+
status: StagingStatusSchema.default("pending"),
|
|
70
|
+
tasks: z.array(TaskIdSchema).default([]),
|
|
71
|
+
artifacts_path: z.string(),
|
|
72
|
+
createdAt: ISODateStringSchema,
|
|
73
|
+
startedAt: ISODateStringSchema.optional(),
|
|
74
|
+
completedAt: ISODateStringSchema.optional(),
|
|
75
|
+
});
|
|
76
|
+
// ============ Plan Schema ============
|
|
77
|
+
export const PlanSchema = z.object({
|
|
78
|
+
id: PlanIdSchema,
|
|
79
|
+
title: z.string().min(1, "Plan title is required"),
|
|
80
|
+
description: z.string().optional(),
|
|
81
|
+
status: PlanStatusSchema.default("draft"),
|
|
82
|
+
stagings: z.array(StagingIdSchema).default([]),
|
|
83
|
+
currentStagingId: StagingIdSchema.optional(),
|
|
84
|
+
artifacts_root: z.string(),
|
|
85
|
+
createdAt: ISODateStringSchema,
|
|
86
|
+
updatedAt: ISODateStringSchema,
|
|
87
|
+
completedAt: ISODateStringSchema.optional(),
|
|
88
|
+
archivedAt: ISODateStringSchema.optional(),
|
|
89
|
+
});
|
|
90
|
+
// ============ Project Schema ============
|
|
91
|
+
export const ProjectSchema = z.object({
|
|
92
|
+
name: z.string().min(1, "Project name is required"),
|
|
93
|
+
description: z.string().optional(),
|
|
94
|
+
goals: z.array(z.string()).default([]),
|
|
95
|
+
constraints: z.array(z.string()).default([]),
|
|
96
|
+
createdAt: ISODateStringSchema,
|
|
97
|
+
updatedAt: ISODateStringSchema,
|
|
98
|
+
});
|
|
99
|
+
// ============ History Entry Schema ============
|
|
100
|
+
export const HistoryEntrySchema = z.object({
|
|
101
|
+
id: z.string(),
|
|
102
|
+
timestamp: ISODateStringSchema,
|
|
103
|
+
type: HistoryEntryTypeSchema,
|
|
104
|
+
details: z.record(z.unknown()).default({}),
|
|
105
|
+
});
|
|
106
|
+
// ============ Decision Schema ============
|
|
107
|
+
export const DecisionSchema = z.object({
|
|
108
|
+
id: z.string(),
|
|
109
|
+
title: z.string().min(1),
|
|
110
|
+
decision: z.string().min(1),
|
|
111
|
+
rationale: z.string().optional(),
|
|
112
|
+
relatedPlanId: PlanIdSchema.optional(),
|
|
113
|
+
relatedStagingId: StagingIdSchema.optional(),
|
|
114
|
+
timestamp: ISODateStringSchema,
|
|
115
|
+
});
|
|
116
|
+
// ============ Context Schema ============
|
|
117
|
+
export const ContextSchema = z.object({
|
|
118
|
+
lastUpdated: ISODateStringSchema,
|
|
119
|
+
activeFiles: z.array(z.string()).default([]),
|
|
120
|
+
currentPlanId: PlanIdSchema.optional(),
|
|
121
|
+
currentStagingId: StagingIdSchema.optional(),
|
|
122
|
+
decisions: z.array(DecisionSchema).default([]),
|
|
123
|
+
sessionSummary: z.string().optional(),
|
|
124
|
+
});
|
|
125
|
+
// ============ Full State Schema ============
|
|
126
|
+
export const StateSchema = z.object({
|
|
127
|
+
version: z.literal("2.0.0"),
|
|
128
|
+
project: ProjectSchema,
|
|
129
|
+
plans: z.record(PlanIdSchema, PlanSchema).default({}),
|
|
130
|
+
stagings: z.record(StagingIdSchema, StagingSchema).default({}),
|
|
131
|
+
tasks: z.record(TaskIdSchema, TaskSchema).default({}),
|
|
132
|
+
history: z.array(HistoryEntrySchema).default([]),
|
|
133
|
+
context: ContextSchema,
|
|
134
|
+
});
|
|
135
|
+
// ============ Input Schemas for Tools ============
|
|
136
|
+
export const CreatePlanInputSchema = z.object({
|
|
137
|
+
title: z.string().min(1),
|
|
138
|
+
description: z.string().optional(),
|
|
139
|
+
stagings: z.array(z.object({
|
|
140
|
+
name: z.string().min(1),
|
|
141
|
+
description: z.string().optional(),
|
|
142
|
+
execution_type: ExecutionTypeSchema.default("parallel"),
|
|
143
|
+
tasks: z.array(z.object({
|
|
144
|
+
title: z.string().min(1),
|
|
145
|
+
description: z.string().optional(),
|
|
146
|
+
priority: TaskPrioritySchema.default("medium"),
|
|
147
|
+
execution_mode: ExecutionTypeSchema.default("parallel"),
|
|
148
|
+
depends_on_index: z.array(z.number().int().min(0)).default([]),
|
|
149
|
+
})),
|
|
150
|
+
})),
|
|
151
|
+
});
|
|
152
|
+
export const StartStagingInputSchema = z.object({
|
|
153
|
+
planId: z.string(),
|
|
154
|
+
stagingId: z.string(),
|
|
155
|
+
});
|
|
156
|
+
export const StatusInputSchema = z.object({
|
|
157
|
+
planId: z.string().optional(),
|
|
158
|
+
});
|
|
159
|
+
export const ArchiveInputSchema = z.object({
|
|
160
|
+
planId: z.string(),
|
|
161
|
+
reason: z.string().optional(),
|
|
162
|
+
});
|
|
163
|
+
export const CancelInputSchema = z.object({
|
|
164
|
+
planId: z.string(),
|
|
165
|
+
reason: z.string().optional(),
|
|
166
|
+
archiveImmediately: z.boolean().default(false),
|
|
167
|
+
});
|
|
168
|
+
export const SaveTaskOutputInputSchema = z.object({
|
|
169
|
+
planId: z.string(),
|
|
170
|
+
stagingId: z.string(),
|
|
171
|
+
taskId: z.string(),
|
|
172
|
+
output: TaskOutputSchema,
|
|
173
|
+
});
|
|
174
|
+
export const UpdateTaskStatusInputSchema = z.object({
|
|
175
|
+
taskId: z.string(),
|
|
176
|
+
status: TaskStatusSchema,
|
|
177
|
+
notes: z.string().optional(),
|
|
178
|
+
});
|
|
179
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/state/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { StateSchema, PlanSchema, StagingSchema, TaskSchema, TaskOutputSchema, ProjectSchema, HistoryEntrySchema, DecisionSchema, ContextSchema, TaskStatusSchema, TaskPrioritySchema, StagingStatusSchema, PlanStatusSchema, ExecutionTypeSchema, HistoryEntryTypeSchema, CreatePlanInputSchema, StartStagingInputSchema, StatusInputSchema, ArchiveInputSchema, CancelInputSchema, SaveTaskOutputInputSchema, UpdateTaskStatusInputSchema } from "./schema.js";
|
|
3
|
+
export type State = z.infer<typeof StateSchema>;
|
|
4
|
+
export type Plan = z.infer<typeof PlanSchema>;
|
|
5
|
+
export type Staging = z.infer<typeof StagingSchema>;
|
|
6
|
+
export type Task = z.infer<typeof TaskSchema>;
|
|
7
|
+
export type TaskOutput = z.infer<typeof TaskOutputSchema>;
|
|
8
|
+
export type Project = z.infer<typeof ProjectSchema>;
|
|
9
|
+
export type HistoryEntry = z.infer<typeof HistoryEntrySchema>;
|
|
10
|
+
export type Decision = z.infer<typeof DecisionSchema>;
|
|
11
|
+
export type Context = z.infer<typeof ContextSchema>;
|
|
12
|
+
export type TaskStatus = z.infer<typeof TaskStatusSchema>;
|
|
13
|
+
export type TaskPriority = z.infer<typeof TaskPrioritySchema>;
|
|
14
|
+
export type StagingStatus = z.infer<typeof StagingStatusSchema>;
|
|
15
|
+
export type PlanStatus = z.infer<typeof PlanStatusSchema>;
|
|
16
|
+
export type ExecutionType = z.infer<typeof ExecutionTypeSchema>;
|
|
17
|
+
export type HistoryEntryType = z.infer<typeof HistoryEntryTypeSchema>;
|
|
18
|
+
export type CreatePlanInput = z.infer<typeof CreatePlanInputSchema>;
|
|
19
|
+
export type StartStagingInput = z.infer<typeof StartStagingInputSchema>;
|
|
20
|
+
export type StatusInput = z.infer<typeof StatusInputSchema>;
|
|
21
|
+
export type ArchiveInput = z.infer<typeof ArchiveInputSchema>;
|
|
22
|
+
export type CancelInput = z.infer<typeof CancelInputSchema>;
|
|
23
|
+
export type SaveTaskOutputInput = z.infer<typeof SaveTaskOutputInputSchema>;
|
|
24
|
+
export type UpdateTaskStatusInput = z.infer<typeof UpdateTaskStatusInputSchema>;
|
|
25
|
+
export interface ToolResult<T = unknown> {
|
|
26
|
+
success: boolean;
|
|
27
|
+
data?: T;
|
|
28
|
+
error?: {
|
|
29
|
+
code: string;
|
|
30
|
+
message: string;
|
|
31
|
+
details?: Record<string, unknown>;
|
|
32
|
+
suggestion?: string;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export interface PlanSummary {
|
|
36
|
+
id: string;
|
|
37
|
+
title: string;
|
|
38
|
+
status: PlanStatus;
|
|
39
|
+
progress: {
|
|
40
|
+
totalStagings: number;
|
|
41
|
+
completedStagings: number;
|
|
42
|
+
totalTasks: number;
|
|
43
|
+
completedTasks: number;
|
|
44
|
+
percentage: number;
|
|
45
|
+
};
|
|
46
|
+
currentStaging?: {
|
|
47
|
+
id: string;
|
|
48
|
+
name: string;
|
|
49
|
+
status: StagingStatus;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export interface StatusOverview {
|
|
53
|
+
totalPlans: number;
|
|
54
|
+
activePlans: number;
|
|
55
|
+
completedPlans: number;
|
|
56
|
+
archivedPlans: number;
|
|
57
|
+
cancelledPlans: number;
|
|
58
|
+
}
|
|
59
|
+
export interface StagingDetail {
|
|
60
|
+
id: string;
|
|
61
|
+
name: string;
|
|
62
|
+
order: number;
|
|
63
|
+
status: StagingStatus;
|
|
64
|
+
execution_type: ExecutionType;
|
|
65
|
+
taskCount: number;
|
|
66
|
+
completedTaskCount: number;
|
|
67
|
+
tasks: TaskDetail[];
|
|
68
|
+
}
|
|
69
|
+
export interface TaskDetail {
|
|
70
|
+
id: string;
|
|
71
|
+
title: string;
|
|
72
|
+
status: TaskStatus;
|
|
73
|
+
priority: TaskPriority;
|
|
74
|
+
execution_mode: ExecutionType;
|
|
75
|
+
depends_on: string[];
|
|
76
|
+
hasOutput: boolean;
|
|
77
|
+
}
|
|
78
|
+
export interface PlanDetail {
|
|
79
|
+
id: string;
|
|
80
|
+
title: string;
|
|
81
|
+
description?: string;
|
|
82
|
+
status: PlanStatus;
|
|
83
|
+
stagings: StagingDetail[];
|
|
84
|
+
decisions: Decision[];
|
|
85
|
+
createdAt: string;
|
|
86
|
+
updatedAt: string;
|
|
87
|
+
}
|
|
88
|
+
export interface StartStagingResult {
|
|
89
|
+
staging: {
|
|
90
|
+
id: string;
|
|
91
|
+
name: string;
|
|
92
|
+
status: StagingStatus;
|
|
93
|
+
execution_type: ExecutionType;
|
|
94
|
+
};
|
|
95
|
+
executableTasks: TaskDetail[];
|
|
96
|
+
artifactsPath: string;
|
|
97
|
+
}
|
|
98
|
+
export interface ArchiveResult {
|
|
99
|
+
planId: string;
|
|
100
|
+
archivePath: string;
|
|
101
|
+
archivedAt: string;
|
|
102
|
+
}
|
|
103
|
+
export interface CancelResult {
|
|
104
|
+
planId: string;
|
|
105
|
+
affectedStagings: number;
|
|
106
|
+
affectedTasks: number;
|
|
107
|
+
archived: boolean;
|
|
108
|
+
archivePath?: string;
|
|
109
|
+
}
|
|
110
|
+
export interface IdGenerator {
|
|
111
|
+
generatePlanId(): string;
|
|
112
|
+
generateStagingId(): string;
|
|
113
|
+
generateTaskId(): string;
|
|
114
|
+
generateHistoryId(): string;
|
|
115
|
+
generateDecisionId(): string;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/tools/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2E3D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { StateManager } from "../state/manager.js";
|
|
3
|
+
import { withErrorHandling, ProjectNotInitializedError, PlanNotFoundError, PlanInvalidStateError, } from "../errors/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* Register archive tool
|
|
6
|
+
*/
|
|
7
|
+
export function registerArchiveTool(server) {
|
|
8
|
+
// ============ zscode:archive ============
|
|
9
|
+
server.tool("zscode:archive", "Archive a completed or cancelled plan. Moves the plan and all its artifacts to the archive directory. Only completed or cancelled plans can be archived.", {
|
|
10
|
+
planId: z.string().describe("Plan ID to archive"),
|
|
11
|
+
reason: z.string().optional().describe("Reason for archiving"),
|
|
12
|
+
}, async (args) => {
|
|
13
|
+
const result = await withErrorHandling(async () => {
|
|
14
|
+
const manager = StateManager.getInstance();
|
|
15
|
+
if (!manager.isInitialized()) {
|
|
16
|
+
throw new ProjectNotInitializedError();
|
|
17
|
+
}
|
|
18
|
+
const plan = manager.getPlan(args.planId);
|
|
19
|
+
if (!plan) {
|
|
20
|
+
throw new PlanNotFoundError(args.planId);
|
|
21
|
+
}
|
|
22
|
+
// Validate plan status
|
|
23
|
+
if (plan.status !== "completed" && plan.status !== "cancelled") {
|
|
24
|
+
throw new PlanInvalidStateError(args.planId, plan.status, ["completed", "cancelled"]);
|
|
25
|
+
}
|
|
26
|
+
// Get stats before archiving
|
|
27
|
+
const stagings = manager.getStagingsByPlan(args.planId);
|
|
28
|
+
let totalTasks = 0;
|
|
29
|
+
let completedTasks = 0;
|
|
30
|
+
for (const staging of stagings) {
|
|
31
|
+
const tasks = manager.getTasksByStaging(staging.id);
|
|
32
|
+
totalTasks += tasks.length;
|
|
33
|
+
completedTasks += tasks.filter(t => t.status === "done").length;
|
|
34
|
+
}
|
|
35
|
+
// Archive the plan
|
|
36
|
+
const archivePath = await manager.archivePlan(args.planId, args.reason);
|
|
37
|
+
return {
|
|
38
|
+
success: true,
|
|
39
|
+
message: `Plan "${plan.title}" archived successfully`,
|
|
40
|
+
archive: {
|
|
41
|
+
planId: plan.id,
|
|
42
|
+
title: plan.title,
|
|
43
|
+
archivePath,
|
|
44
|
+
archivedAt: new Date().toISOString(),
|
|
45
|
+
reason: args.reason,
|
|
46
|
+
},
|
|
47
|
+
stats: {
|
|
48
|
+
stagings: stagings.length,
|
|
49
|
+
totalTasks,
|
|
50
|
+
completedTasks,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}, "zscode:archive");
|
|
54
|
+
if (result.success) {
|
|
55
|
+
return {
|
|
56
|
+
content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return {
|
|
61
|
+
content: [{ type: "text", text: JSON.stringify(result.error, null, 2) }],
|
|
62
|
+
isError: true,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=archive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/tools/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/tools/cancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2E1D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { StateManager } from "../state/manager.js";
|
|
3
|
+
import { withErrorHandling, ProjectNotInitializedError, PlanNotFoundError, PlanInvalidStateError, } from "../errors/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* Register cancel tool
|
|
6
|
+
*/
|
|
7
|
+
export function registerCancelTool(server) {
|
|
8
|
+
// ============ zscode:cancel ============
|
|
9
|
+
server.tool("zscode:cancel", "Cancel an active or draft plan. All pending and in_progress tasks will be marked as cancelled. Optionally archive immediately after cancellation.", {
|
|
10
|
+
planId: z.string().describe("Plan ID to cancel"),
|
|
11
|
+
reason: z.string().optional().describe("Reason for cancellation"),
|
|
12
|
+
archiveImmediately: z.boolean().default(false)
|
|
13
|
+
.describe("If true, archive the plan immediately after cancelling"),
|
|
14
|
+
}, async (args) => {
|
|
15
|
+
const result = await withErrorHandling(async () => {
|
|
16
|
+
const manager = StateManager.getInstance();
|
|
17
|
+
if (!manager.isInitialized()) {
|
|
18
|
+
throw new ProjectNotInitializedError();
|
|
19
|
+
}
|
|
20
|
+
const plan = manager.getPlan(args.planId);
|
|
21
|
+
if (!plan) {
|
|
22
|
+
throw new PlanNotFoundError(args.planId);
|
|
23
|
+
}
|
|
24
|
+
// Validate plan status
|
|
25
|
+
if (plan.status === "archived" || plan.status === "cancelled") {
|
|
26
|
+
throw new PlanInvalidStateError(args.planId, plan.status, ["draft", "active", "completed"]);
|
|
27
|
+
}
|
|
28
|
+
// Cancel the plan
|
|
29
|
+
const { affectedStagings, affectedTasks } = await manager.cancelPlan(args.planId, args.reason);
|
|
30
|
+
// Optionally archive
|
|
31
|
+
let archivePath;
|
|
32
|
+
if (args.archiveImmediately) {
|
|
33
|
+
archivePath = await manager.archivePlan(args.planId, args.reason);
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
success: true,
|
|
37
|
+
message: `Plan "${plan.title}" cancelled`,
|
|
38
|
+
cancel: {
|
|
39
|
+
planId: plan.id,
|
|
40
|
+
title: plan.title,
|
|
41
|
+
reason: args.reason,
|
|
42
|
+
cancelledAt: new Date().toISOString(),
|
|
43
|
+
},
|
|
44
|
+
affected: {
|
|
45
|
+
stagings: affectedStagings,
|
|
46
|
+
tasks: affectedTasks,
|
|
47
|
+
},
|
|
48
|
+
archived: args.archiveImmediately,
|
|
49
|
+
archivePath,
|
|
50
|
+
};
|
|
51
|
+
}, "zscode:cancel");
|
|
52
|
+
if (result.success) {
|
|
53
|
+
return {
|
|
54
|
+
content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return {
|
|
59
|
+
content: [{ type: "text", text: JSON.stringify(result.error, null, 2) }],
|
|
60
|
+
isError: true,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=cancel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../src/tools/cancel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAyJjF"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { StateManager } from "../state/manager.js";
|
|
3
|
+
import { withErrorHandling } from "../errors/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* Register context-related tools
|
|
6
|
+
*/
|
|
7
|
+
export function registerContextTools(server, projectRoot) {
|
|
8
|
+
// ============ get_full_context ============
|
|
9
|
+
server.tool("get_full_context", "Get the full project context including all plans, stagings, tasks, and history. Use this to understand the current state of the project.", {}, async () => {
|
|
10
|
+
const result = await withErrorHandling(async () => {
|
|
11
|
+
const manager = StateManager.getInstance();
|
|
12
|
+
const state = manager.getState();
|
|
13
|
+
if (!state) {
|
|
14
|
+
return {
|
|
15
|
+
initialized: false,
|
|
16
|
+
message: "Project not initialized. Run 'npx zscode init' to initialize.",
|
|
17
|
+
projectRoot,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
// Calculate overview stats
|
|
21
|
+
const plans = Object.values(state.plans);
|
|
22
|
+
const overview = {
|
|
23
|
+
totalPlans: plans.length,
|
|
24
|
+
activePlans: plans.filter(p => p.status === "active").length,
|
|
25
|
+
completedPlans: plans.filter(p => p.status === "completed").length,
|
|
26
|
+
archivedPlans: plans.filter(p => p.status === "archived").length,
|
|
27
|
+
cancelledPlans: plans.filter(p => p.status === "cancelled").length,
|
|
28
|
+
};
|
|
29
|
+
return {
|
|
30
|
+
initialized: true,
|
|
31
|
+
version: state.version,
|
|
32
|
+
project: state.project,
|
|
33
|
+
overview,
|
|
34
|
+
currentPlanId: state.context.currentPlanId,
|
|
35
|
+
currentStagingId: state.context.currentStagingId,
|
|
36
|
+
plans: state.plans,
|
|
37
|
+
stagings: state.stagings,
|
|
38
|
+
tasks: state.tasks,
|
|
39
|
+
recentHistory: state.history.slice(-20), // Last 20 entries
|
|
40
|
+
decisions: state.context.decisions,
|
|
41
|
+
};
|
|
42
|
+
}, "get_full_context");
|
|
43
|
+
if (result.success) {
|
|
44
|
+
return {
|
|
45
|
+
content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
return {
|
|
50
|
+
content: [{ type: "text", text: JSON.stringify(result.error, null, 2) }],
|
|
51
|
+
isError: true,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
// ============ init_project ============
|
|
56
|
+
server.tool("init_project", "Initialize a new ZSCode project. Creates the state.json file with project information.", {
|
|
57
|
+
name: z.string().describe("Project name"),
|
|
58
|
+
description: z.string().optional().describe("Project description"),
|
|
59
|
+
goals: z.array(z.string()).optional().describe("Project goals"),
|
|
60
|
+
constraints: z.array(z.string()).optional().describe("Project constraints or requirements"),
|
|
61
|
+
}, async (args) => {
|
|
62
|
+
const result = await withErrorHandling(async () => {
|
|
63
|
+
const manager = StateManager.getInstance();
|
|
64
|
+
// Check if already initialized
|
|
65
|
+
if (manager.isInitialized()) {
|
|
66
|
+
return {
|
|
67
|
+
success: false,
|
|
68
|
+
message: "Project is already initialized",
|
|
69
|
+
project: manager.getProject(),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const project = await manager.initializeProject(args.name, args.description, args.goals, args.constraints);
|
|
73
|
+
return {
|
|
74
|
+
success: true,
|
|
75
|
+
message: `Project "${args.name}" initialized successfully`,
|
|
76
|
+
project,
|
|
77
|
+
};
|
|
78
|
+
}, "init_project");
|
|
79
|
+
if (result.success) {
|
|
80
|
+
return {
|
|
81
|
+
content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
return {
|
|
86
|
+
content: [{ type: "text", text: JSON.stringify(result.error, null, 2) }],
|
|
87
|
+
isError: true,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
// ============ add_decision ============
|
|
92
|
+
server.tool("add_decision", "Record a design decision with its rationale. Helps track why certain choices were made.", {
|
|
93
|
+
title: z.string().describe("Decision title"),
|
|
94
|
+
decision: z.string().describe("The decision made"),
|
|
95
|
+
rationale: z.string().optional().describe("Reasoning behind the decision"),
|
|
96
|
+
relatedPlanId: z.string().optional().describe("Related Plan ID"),
|
|
97
|
+
relatedStagingId: z.string().optional().describe("Related Staging ID"),
|
|
98
|
+
}, async (args) => {
|
|
99
|
+
const result = await withErrorHandling(async () => {
|
|
100
|
+
const manager = StateManager.getInstance();
|
|
101
|
+
if (!manager.isInitialized()) {
|
|
102
|
+
throw new Error("Project not initialized");
|
|
103
|
+
}
|
|
104
|
+
const decision = await manager.addDecision(args.title, args.decision, args.rationale, args.relatedPlanId, args.relatedStagingId);
|
|
105
|
+
return {
|
|
106
|
+
success: true,
|
|
107
|
+
message: "Decision recorded",
|
|
108
|
+
decision,
|
|
109
|
+
};
|
|
110
|
+
}, "add_decision");
|
|
111
|
+
if (result.success) {
|
|
112
|
+
return {
|
|
113
|
+
content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }],
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
return {
|
|
118
|
+
content: [{ type: "text", text: JSON.stringify(result.error, null, 2) }],
|
|
119
|
+
isError: true,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"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"}
|