@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.
Files changed (57) hide show
  1. package/dist/errors/index.d.ts +112 -0
  2. package/dist/errors/index.d.ts.map +1 -0
  3. package/dist/errors/index.js +231 -0
  4. package/dist/errors/index.js.map +1 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +50 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/state/manager.d.ts +54 -0
  10. package/dist/state/manager.d.ts.map +1 -0
  11. package/dist/state/manager.js +500 -0
  12. package/dist/state/manager.js.map +1 -0
  13. package/dist/state/schema.d.ts +942 -0
  14. package/dist/state/schema.d.ts.map +1 -0
  15. package/dist/state/schema.js +179 -0
  16. package/dist/state/schema.js.map +1 -0
  17. package/dist/state/types.d.ts +117 -0
  18. package/dist/state/types.d.ts.map +1 -0
  19. package/dist/state/types.js +2 -0
  20. package/dist/state/types.js.map +1 -0
  21. package/dist/tools/archive.d.ts +6 -0
  22. package/dist/tools/archive.d.ts.map +1 -0
  23. package/dist/tools/archive.js +67 -0
  24. package/dist/tools/archive.js.map +1 -0
  25. package/dist/tools/cancel.d.ts +6 -0
  26. package/dist/tools/cancel.d.ts.map +1 -0
  27. package/dist/tools/cancel.js +65 -0
  28. package/dist/tools/cancel.js.map +1 -0
  29. package/dist/tools/context.d.ts +6 -0
  30. package/dist/tools/context.d.ts.map +1 -0
  31. package/dist/tools/context.js +124 -0
  32. package/dist/tools/context.js.map +1 -0
  33. package/dist/tools/index.d.ts +6 -0
  34. package/dist/tools/index.d.ts.map +1 -0
  35. package/dist/tools/index.js +24 -0
  36. package/dist/tools/index.js.map +1 -0
  37. package/dist/tools/plan.d.ts +6 -0
  38. package/dist/tools/plan.d.ts.map +1 -0
  39. package/dist/tools/plan.js +186 -0
  40. package/dist/tools/plan.js.map +1 -0
  41. package/dist/tools/staging.d.ts +6 -0
  42. package/dist/tools/staging.d.ts.map +1 -0
  43. package/dist/tools/staging.js +224 -0
  44. package/dist/tools/staging.js.map +1 -0
  45. package/dist/tools/status.d.ts +6 -0
  46. package/dist/tools/status.d.ts.map +1 -0
  47. package/dist/tools/status.js +144 -0
  48. package/dist/tools/status.js.map +1 -0
  49. package/dist/utils/artifacts.d.ts +57 -0
  50. package/dist/utils/artifacts.d.ts.map +1 -0
  51. package/dist/utils/artifacts.js +180 -0
  52. package/dist/utils/artifacts.js.map +1 -0
  53. package/dist/utils/paths.d.ts +68 -0
  54. package/dist/utils/paths.d.ts.map +1 -0
  55. package/dist/utils/paths.js +122 -0
  56. package/dist/utils/paths.js.map +1 -0
  57. 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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wCAAwC;AACxC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAC3C,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACjD,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAE3C,wCAAwC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,kDAAkD,CAAC,CAAC;AAChH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,EAAE,oDAAoD,CAAC,CAAC;AACxH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,kDAAkD,CAAC,CAAC;AAEhH,kCAAkC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AACnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAC1G,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AAClG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,qBAAqB;IACrB,cAAc;IACd,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,eAAe;CAChB,CAAC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,mBAAmB;CACjC,CAAC,CAAC;AAEH,wCAAwC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,YAAY;IAChB,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9C,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC;IAC3C,cAAc,EAAE,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC;IACvD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACzC,WAAW,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,eAAe;IACnB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,cAAc,EAAE,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC;IACvD,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACzC,WAAW,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,wCAAwC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,gBAAgB,EAAE,eAAe,CAAC,QAAQ,EAAE;IAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,mBAAmB;IAC9B,WAAW,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IAC3C,UAAU,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,mBAAmB;CAC/B,CAAC,CAAC;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,mBAAmB;IAC9B,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3C,CAAC,CAAC;AAEH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,aAAa,EAAE,YAAY,CAAC,QAAQ,EAAE;IACtC,gBAAgB,EAAE,eAAe,CAAC,QAAQ,EAAE;IAC5C,SAAS,EAAE,mBAAmB;CAC/B,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,aAAa,EAAE,YAAY,CAAC,QAAQ,EAAE;IACtC,gBAAgB,EAAE,eAAe,CAAC,QAAQ,EAAE;IAC5C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,8CAA8C;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC3B,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,OAAO,EAAE,aAAa;CACvB,CAAC,CAAC;AAEH,oDAAoD;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,cAAc,EAAE,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC9C,cAAc,EAAE,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC;YACvD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAC/D,CAAC,CAAC;KACJ,CAAC,CAAC;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ /**
3
+ * Register archive tool
4
+ */
5
+ export declare function registerArchiveTool(server: McpServer): void;
6
+ //# sourceMappingURL=archive.d.ts.map
@@ -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,6 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ /**
3
+ * Register cancel tool
4
+ */
5
+ export declare function registerCancelTool(server: McpServer): void;
6
+ //# sourceMappingURL=cancel.d.ts.map
@@ -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,6 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ /**
3
+ * Register context-related tools
4
+ */
5
+ export declare function registerContextTools(server: McpServer, projectRoot: string): void;
6
+ //# sourceMappingURL=context.d.ts.map
@@ -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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"}