@zeliper/zscode-mcp-server 1.0.1 → 1.0.3

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 (59) hide show
  1. package/dist/errors/index.d.ts +28 -0
  2. package/dist/errors/index.d.ts.map +1 -1
  3. package/dist/errors/index.js +50 -0
  4. package/dist/errors/index.js.map +1 -1
  5. package/dist/state/manager.d.ts +74 -2
  6. package/dist/state/manager.d.ts.map +1 -1
  7. package/dist/state/manager.js +551 -138
  8. package/dist/state/manager.js.map +1 -1
  9. package/dist/state/manager.test.d.ts +2 -0
  10. package/dist/state/manager.test.d.ts.map +1 -0
  11. package/dist/state/manager.test.js +310 -0
  12. package/dist/state/manager.test.js.map +1 -0
  13. package/dist/state/schema.d.ts +443 -21
  14. package/dist/state/schema.d.ts.map +1 -1
  15. package/dist/state/schema.js +99 -1
  16. package/dist/state/schema.js.map +1 -1
  17. package/dist/state/schema.test.d.ts +2 -0
  18. package/dist/state/schema.test.d.ts.map +1 -0
  19. package/dist/state/schema.test.js +300 -0
  20. package/dist/state/schema.test.js.map +1 -0
  21. package/dist/state/types.d.ts +47 -1
  22. package/dist/state/types.d.ts.map +1 -1
  23. package/dist/state/types.js +3 -1
  24. package/dist/state/types.js.map +1 -1
  25. package/dist/tools/archive.d.ts.map +1 -1
  26. package/dist/tools/archive.js +57 -0
  27. package/dist/tools/archive.js.map +1 -1
  28. package/dist/tools/context.d.ts.map +1 -1
  29. package/dist/tools/context.js +14 -0
  30. package/dist/tools/context.js.map +1 -1
  31. package/dist/tools/files.d.ts +7 -0
  32. package/dist/tools/files.d.ts.map +1 -0
  33. package/dist/tools/files.js +131 -0
  34. package/dist/tools/files.js.map +1 -0
  35. package/dist/tools/index.d.ts.map +1 -1
  36. package/dist/tools/index.js +9 -0
  37. package/dist/tools/index.js.map +1 -1
  38. package/dist/tools/memory.d.ts +7 -0
  39. package/dist/tools/memory.d.ts.map +1 -0
  40. package/dist/tools/memory.js +243 -0
  41. package/dist/tools/memory.js.map +1 -0
  42. package/dist/tools/modify.d.ts.map +1 -1
  43. package/dist/tools/modify.js +43 -7
  44. package/dist/tools/modify.js.map +1 -1
  45. package/dist/tools/plan.d.ts.map +1 -1
  46. package/dist/tools/plan.js +77 -4
  47. package/dist/tools/plan.js.map +1 -1
  48. package/dist/tools/staging.d.ts.map +1 -1
  49. package/dist/tools/staging.js +104 -6
  50. package/dist/tools/staging.js.map +1 -1
  51. package/dist/tools/summary.d.ts +7 -0
  52. package/dist/tools/summary.d.ts.map +1 -0
  53. package/dist/tools/summary.js +127 -0
  54. package/dist/tools/summary.js.map +1 -0
  55. package/dist/utils/paths.d.ts +34 -0
  56. package/dist/utils/paths.d.ts.map +1 -1
  57. package/dist/utils/paths.js +94 -2
  58. package/dist/utils/paths.js.map +1 -1
  59. package/package.json +10 -3
@@ -0,0 +1,243 @@
1
+ import { z } from "zod";
2
+ import { StateManager } from "../state/manager.js";
3
+ import { withErrorHandling, ProjectNotInitializedError, MemoryNotFoundError, ValidationError } from "../errors/index.js";
4
+ import { DEFAULT_MEMORY_CATEGORIES } from "../state/schema.js";
5
+ /**
6
+ * Register memory-related tools
7
+ * Memory system provides rules/instructions that take precedence over CLAUDE.md
8
+ */
9
+ export function registerMemoryTools(server) {
10
+ // ============ add_memory ============
11
+ server.tool("add_memory", "Add a new memory/rule that takes precedence over CLAUDE.md. Use categories to organize: 'general' (always applied), 'planning', 'coding', 'review', or any custom category.", {
12
+ category: z.string().min(1).describe(`Memory category. Default categories: ${DEFAULT_MEMORY_CATEGORIES.join(", ")}. 'general' is always applied.`),
13
+ title: z.string().min(1).describe("Memory/rule title"),
14
+ content: z.string().min(1).describe("Memory/rule content - the actual instruction or rule"),
15
+ tags: z.array(z.string()).optional().describe("Tags for additional categorization"),
16
+ priority: z.number().int().min(0).max(100).optional().describe("Priority (0-100, higher = applied first). Default: 50"),
17
+ }, async (args) => {
18
+ const result = await withErrorHandling(async () => {
19
+ const manager = StateManager.getInstance();
20
+ if (!manager.isInitialized()) {
21
+ throw new ProjectNotInitializedError();
22
+ }
23
+ const memory = await manager.addMemory(args.category, args.title, args.content, args.tags, args.priority);
24
+ return {
25
+ success: true,
26
+ message: `Memory "${args.title}" added to category "${args.category}"`,
27
+ memory: {
28
+ id: memory.id,
29
+ category: memory.category,
30
+ title: memory.title,
31
+ priority: memory.priority,
32
+ enabled: memory.enabled,
33
+ },
34
+ };
35
+ }, "add_memory");
36
+ if (result.success) {
37
+ return {
38
+ content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }],
39
+ };
40
+ }
41
+ else {
42
+ return {
43
+ content: [{ type: "text", text: JSON.stringify(result.error, null, 2) }],
44
+ isError: true,
45
+ };
46
+ }
47
+ });
48
+ // ============ list_memories ============
49
+ server.tool("list_memories", "List all memories/rules, optionally filtered by category or tags.", {
50
+ category: z.string().optional().describe("Filter by category"),
51
+ tags: z.array(z.string()).optional().describe("Filter by tags (OR logic)"),
52
+ enabledOnly: z.boolean().optional().default(true).describe("Only show enabled memories"),
53
+ }, async (args) => {
54
+ const result = await withErrorHandling(async () => {
55
+ const manager = StateManager.getInstance();
56
+ if (!manager.isInitialized()) {
57
+ throw new ProjectNotInitializedError();
58
+ }
59
+ const memories = manager.listMemories(args.category, args.tags, args.enabledOnly ?? true);
60
+ return {
61
+ success: true,
62
+ count: memories.length,
63
+ memories: memories.map(m => ({
64
+ id: m.id,
65
+ category: m.category,
66
+ title: m.title,
67
+ content: m.content,
68
+ tags: m.tags,
69
+ priority: m.priority,
70
+ enabled: m.enabled,
71
+ })),
72
+ };
73
+ }, "list_memories");
74
+ if (result.success) {
75
+ return {
76
+ content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }],
77
+ };
78
+ }
79
+ else {
80
+ return {
81
+ content: [{ type: "text", text: JSON.stringify(result.error, null, 2) }],
82
+ isError: true,
83
+ };
84
+ }
85
+ });
86
+ // ============ update_memory ============
87
+ server.tool("update_memory", "Update an existing memory/rule.", {
88
+ memoryId: z.string().describe("Memory ID to update"),
89
+ title: z.string().optional().describe("New title"),
90
+ content: z.string().optional().describe("New content"),
91
+ category: z.string().optional().describe("New category"),
92
+ tags: z.array(z.string()).optional().describe("New tags"),
93
+ priority: z.number().int().min(0).max(100).optional().describe("New priority"),
94
+ enabled: z.boolean().optional().describe("Enable/disable the memory"),
95
+ }, async (args) => {
96
+ const result = await withErrorHandling(async () => {
97
+ const manager = StateManager.getInstance();
98
+ if (!manager.isInitialized()) {
99
+ throw new ProjectNotInitializedError();
100
+ }
101
+ const hasUpdates = args.title || args.content || args.category ||
102
+ args.tags || args.priority !== undefined ||
103
+ args.enabled !== undefined;
104
+ if (!hasUpdates) {
105
+ throw new ValidationError("At least one update field must be provided");
106
+ }
107
+ const memory = await manager.updateMemory(args.memoryId, {
108
+ title: args.title,
109
+ content: args.content,
110
+ category: args.category,
111
+ tags: args.tags,
112
+ priority: args.priority,
113
+ enabled: args.enabled,
114
+ });
115
+ return {
116
+ success: true,
117
+ message: `Memory "${memory.title}" updated`,
118
+ memory: {
119
+ id: memory.id,
120
+ category: memory.category,
121
+ title: memory.title,
122
+ priority: memory.priority,
123
+ enabled: memory.enabled,
124
+ },
125
+ };
126
+ }, "update_memory");
127
+ if (result.success) {
128
+ return {
129
+ content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }],
130
+ };
131
+ }
132
+ else {
133
+ return {
134
+ content: [{ type: "text", text: JSON.stringify(result.error, null, 2) }],
135
+ isError: true,
136
+ };
137
+ }
138
+ });
139
+ // ============ remove_memory ============
140
+ server.tool("remove_memory", "Remove a memory/rule.", {
141
+ memoryId: z.string().describe("Memory ID to remove"),
142
+ }, async (args) => {
143
+ const result = await withErrorHandling(async () => {
144
+ const manager = StateManager.getInstance();
145
+ if (!manager.isInitialized()) {
146
+ throw new ProjectNotInitializedError();
147
+ }
148
+ const memory = manager.getMemory(args.memoryId);
149
+ if (!memory) {
150
+ throw new MemoryNotFoundError(args.memoryId);
151
+ }
152
+ const title = memory.title;
153
+ await manager.removeMemory(args.memoryId);
154
+ return {
155
+ success: true,
156
+ message: `Memory "${title}" removed`,
157
+ removed: {
158
+ memoryId: args.memoryId,
159
+ title,
160
+ },
161
+ };
162
+ }, "remove_memory");
163
+ if (result.success) {
164
+ return {
165
+ content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }],
166
+ };
167
+ }
168
+ else {
169
+ return {
170
+ content: [{ type: "text", text: JSON.stringify(result.error, null, 2) }],
171
+ isError: true,
172
+ };
173
+ }
174
+ });
175
+ // ============ get_memories_for_context ============
176
+ server.tool("get_memories_for_context", "Get memories relevant to a specific context. Returns 'general' + context-specific memories, sorted by priority. These memories should be applied before CLAUDE.md rules.", {
177
+ context: z.enum(["planning", "coding", "review", "general", "all"]).describe("The context to get memories for. 'planning', 'coding', 'review' include general memories too."),
178
+ }, async (args) => {
179
+ const result = await withErrorHandling(async () => {
180
+ const manager = StateManager.getInstance();
181
+ if (!manager.isInitialized()) {
182
+ throw new ProjectNotInitializedError();
183
+ }
184
+ const memories = manager.getMemoriesForContext(args.context);
185
+ // Format for easy application
186
+ const formatted = memories.map(m => ({
187
+ id: m.id,
188
+ category: m.category,
189
+ title: m.title,
190
+ content: m.content,
191
+ priority: m.priority,
192
+ }));
193
+ return {
194
+ success: true,
195
+ context: args.context,
196
+ count: memories.length,
197
+ memories: formatted,
198
+ // Formatted text ready for Claude to apply
199
+ appliedRules: memories.map(m => `## [${m.category.toUpperCase()}] ${m.title}\n${m.content}`).join("\n\n"),
200
+ };
201
+ }, "get_memories_for_context");
202
+ if (result.success) {
203
+ return {
204
+ content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }],
205
+ };
206
+ }
207
+ else {
208
+ return {
209
+ content: [{ type: "text", text: JSON.stringify(result.error, null, 2) }],
210
+ isError: true,
211
+ };
212
+ }
213
+ });
214
+ // ============ list_categories ============
215
+ server.tool("list_categories", "List all memory categories currently in use, plus default categories.", {}, async () => {
216
+ const result = await withErrorHandling(async () => {
217
+ const manager = StateManager.getInstance();
218
+ if (!manager.isInitialized()) {
219
+ throw new ProjectNotInitializedError();
220
+ }
221
+ const usedCategories = manager.getCategories();
222
+ const allCategories = new Set([...DEFAULT_MEMORY_CATEGORIES, ...usedCategories]);
223
+ return {
224
+ success: true,
225
+ defaultCategories: [...DEFAULT_MEMORY_CATEGORIES],
226
+ usedCategories,
227
+ allCategories: Array.from(allCategories).sort(),
228
+ };
229
+ }, "list_categories");
230
+ if (result.success) {
231
+ return {
232
+ content: [{ type: "text", text: JSON.stringify(result.data, null, 2) }],
233
+ };
234
+ }
235
+ else {
236
+ return {
237
+ content: [{ type: "text", text: JSON.stringify(result.error, null, 2) }],
238
+ isError: true,
239
+ };
240
+ }
241
+ });
242
+ }
243
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/tools/memory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"modify.d.ts","sourceRoot":"","sources":["../../src/tools/modify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqY3D"}
1
+ {"version":3,"file":"modify.d.ts","sourceRoot":"","sources":["../../src/tools/modify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWpE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAya3D"}
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { StateManager } from "../state/manager.js";
3
- import { withErrorHandling, ProjectNotInitializedError, StagingNotFoundError, TaskNotFoundError, } from "../errors/index.js";
3
+ import { withErrorHandling, ProjectNotInitializedError, StagingNotFoundError, TaskNotFoundError, ValidationError, } from "../errors/index.js";
4
4
  /**
5
5
  * Register modify-related tools
6
6
  */
@@ -17,7 +17,7 @@ export function registerModifyTools(server) {
17
17
  throw new ProjectNotInitializedError();
18
18
  }
19
19
  if (!args.title && !args.description) {
20
- throw new Error("At least one of 'title' or 'description' must be provided");
20
+ throw new ValidationError("At least one of 'title' or 'description' must be provided");
21
21
  }
22
22
  const plan = await manager.updatePlan(args.planId, {
23
23
  title: args.title,
@@ -52,19 +52,29 @@ export function registerModifyTools(server) {
52
52
  name: z.string().optional().describe("New staging name"),
53
53
  description: z.string().optional().describe("New staging description"),
54
54
  execution_type: z.enum(["parallel", "sequential"]).optional().describe("New execution type"),
55
+ default_model: z.enum(["opus", "sonnet", "haiku"]).optional()
56
+ .describe("Default model for tasks in this staging"),
57
+ session_budget: z.enum(["minimal", "standard", "extensive"]).optional()
58
+ .describe("Session budget category"),
59
+ recommended_sessions: z.number().min(0.5).max(10).optional()
60
+ .describe("Recommended number of sessions"),
55
61
  }, async (args) => {
56
62
  const result = await withErrorHandling(async () => {
57
63
  const manager = StateManager.getInstance();
58
64
  if (!manager.isInitialized()) {
59
65
  throw new ProjectNotInitializedError();
60
66
  }
61
- if (!args.name && !args.description && !args.execution_type) {
62
- throw new Error("At least one update field must be provided");
67
+ if (!args.name && !args.description && !args.execution_type &&
68
+ !args.default_model && !args.session_budget && args.recommended_sessions === undefined) {
69
+ throw new ValidationError("At least one update field must be provided");
63
70
  }
64
71
  const staging = await manager.updateStaging(args.stagingId, {
65
72
  name: args.name,
66
73
  description: args.description,
67
74
  execution_type: args.execution_type,
75
+ default_model: args.default_model,
76
+ session_budget: args.session_budget,
77
+ recommended_sessions: args.recommended_sessions,
68
78
  });
69
79
  return {
70
80
  success: true,
@@ -74,6 +84,9 @@ export function registerModifyTools(server) {
74
84
  name: staging.name,
75
85
  description: staging.description,
76
86
  execution_type: staging.execution_type,
87
+ default_model: staging.default_model,
88
+ session_budget: staging.session_budget,
89
+ recommended_sessions: staging.recommended_sessions,
77
90
  status: staging.status,
78
91
  },
79
92
  };
@@ -96,6 +109,12 @@ export function registerModifyTools(server) {
96
109
  name: z.string().describe("Staging name"),
97
110
  description: z.string().optional().describe("Staging description"),
98
111
  execution_type: z.enum(["parallel", "sequential"]).default("parallel").describe("How tasks execute"),
112
+ default_model: z.enum(["opus", "sonnet", "haiku"]).optional()
113
+ .describe("Default model for tasks in this staging"),
114
+ session_budget: z.enum(["minimal", "standard", "extensive"]).optional()
115
+ .describe("Session budget category"),
116
+ recommended_sessions: z.number().min(0.5).max(10).optional()
117
+ .describe("Recommended number of sessions"),
99
118
  insertAt: z.number().int().min(0).optional().describe("Position to insert (0-indexed). If not provided, adds at end."),
100
119
  }, async (args) => {
101
120
  const result = await withErrorHandling(async () => {
@@ -107,6 +126,9 @@ export function registerModifyTools(server) {
107
126
  name: args.name,
108
127
  description: args.description,
109
128
  execution_type: args.execution_type,
129
+ default_model: args.default_model,
130
+ session_budget: args.session_budget,
131
+ recommended_sessions: args.recommended_sessions,
110
132
  insertAt: args.insertAt,
111
133
  });
112
134
  const plan = manager.getPlan(args.planId);
@@ -118,6 +140,9 @@ export function registerModifyTools(server) {
118
140
  name: staging.name,
119
141
  order: staging.order,
120
142
  execution_type: staging.execution_type,
143
+ default_model: staging.default_model,
144
+ session_budget: staging.session_budget,
145
+ recommended_sessions: staging.recommended_sessions,
121
146
  },
122
147
  plan: {
123
148
  id: plan.id,
@@ -188,6 +213,8 @@ export function registerModifyTools(server) {
188
213
  description: z.string().optional().describe("Task description"),
189
214
  priority: z.enum(["high", "medium", "low"]).default("medium").describe("Task priority"),
190
215
  execution_mode: z.enum(["parallel", "sequential"]).default("parallel").describe("Execution mode"),
216
+ model: z.enum(["opus", "sonnet", "haiku"]).optional()
217
+ .describe("Model to use for this task (overrides staging default_model)"),
191
218
  depends_on: z.array(z.string()).default([]).describe("Task IDs this task depends on"),
192
219
  }, async (args) => {
193
220
  const result = await withErrorHandling(async () => {
@@ -200,6 +227,7 @@ export function registerModifyTools(server) {
200
227
  description: args.description,
201
228
  priority: args.priority,
202
229
  execution_mode: args.execution_mode,
230
+ model: args.model,
203
231
  depends_on: args.depends_on,
204
232
  });
205
233
  const staging = manager.getStaging(args.stagingId);
@@ -210,6 +238,7 @@ export function registerModifyTools(server) {
210
238
  id: task.id,
211
239
  title: task.title,
212
240
  priority: task.priority,
241
+ model: task.model,
213
242
  order: task.order,
214
243
  },
215
244
  staging: {
@@ -274,26 +303,31 @@ export function registerModifyTools(server) {
274
303
  }
275
304
  });
276
305
  // ============ update_task_details ============
277
- server.tool("update_task_details", "Update a task's details (title, description, priority, execution_mode). Cannot modify done or cancelled tasks. Use update_task for status changes.", {
306
+ server.tool("update_task_details", "Update a task's details (title, description, priority, execution_mode, model, depends_on). Cannot modify done or cancelled tasks. Use update_task for status changes.", {
278
307
  taskId: z.string().describe("Task ID to update"),
279
308
  title: z.string().optional().describe("New task title"),
280
309
  description: z.string().optional().describe("New task description"),
281
310
  priority: z.enum(["high", "medium", "low"]).optional().describe("New priority"),
282
311
  execution_mode: z.enum(["parallel", "sequential"]).optional().describe("New execution mode"),
312
+ model: z.enum(["opus", "sonnet", "haiku"]).optional()
313
+ .describe("Model to use for this task"),
314
+ depends_on: z.array(z.string()).optional().describe("New task dependencies (task IDs within the same staging). Pass empty array to remove all dependencies."),
283
315
  }, async (args) => {
284
316
  const result = await withErrorHandling(async () => {
285
317
  const manager = StateManager.getInstance();
286
318
  if (!manager.isInitialized()) {
287
319
  throw new ProjectNotInitializedError();
288
320
  }
289
- if (!args.title && !args.description && !args.priority && !args.execution_mode) {
290
- throw new Error("At least one update field must be provided");
321
+ if (!args.title && !args.description && !args.priority && !args.execution_mode && !args.model && args.depends_on === undefined) {
322
+ throw new ValidationError("At least one update field must be provided");
291
323
  }
292
324
  const task = await manager.updateTaskDetails(args.taskId, {
293
325
  title: args.title,
294
326
  description: args.description,
295
327
  priority: args.priority,
296
328
  execution_mode: args.execution_mode,
329
+ model: args.model,
330
+ depends_on: args.depends_on,
297
331
  });
298
332
  return {
299
333
  success: true,
@@ -304,6 +338,8 @@ export function registerModifyTools(server) {
304
338
  description: task.description,
305
339
  priority: task.priority,
306
340
  execution_mode: task.execution_mode,
341
+ model: task.model,
342
+ depends_on: task.depends_on,
307
343
  status: task.status,
308
344
  },
309
345
  };
@@ -1 +1 @@
1
- {"version":3,"file":"modify.js","sourceRoot":"","sources":["../../src/tools/modify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modify.js","sourceRoot":"","sources":["../../src/tools/modify.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/tools/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwNzD"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/tools/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwSzD"}
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { StateManager } from "../state/manager.js";
3
- import { withErrorHandling, ProjectNotInitializedError, TaskNotFoundError } from "../errors/index.js";
3
+ import { withErrorHandling, ProjectNotInitializedError, TaskNotFoundError, PlanNotFoundError } from "../errors/index.js";
4
4
  /**
5
5
  * Register plan-related tools
6
6
  */
@@ -14,12 +14,20 @@ export function registerPlanTools(server) {
14
14
  description: z.string().optional().describe("Staging description"),
15
15
  execution_type: z.enum(["parallel", "sequential"]).default("parallel")
16
16
  .describe("How tasks in this staging are executed"),
17
+ default_model: z.enum(["opus", "sonnet", "haiku"]).optional()
18
+ .describe("Default model for tasks in this staging (tasks can override)"),
19
+ session_budget: z.enum(["minimal", "standard", "extensive"]).optional()
20
+ .describe("Session budget category: minimal (~0.5), standard (~1), extensive (~2+)"),
21
+ recommended_sessions: z.number().min(0.5).max(10).optional()
22
+ .describe("Recommended number of sessions for this staging"),
17
23
  tasks: z.array(z.object({
18
24
  title: z.string().describe("Task title"),
19
25
  description: z.string().optional().describe("Task description"),
20
26
  priority: z.enum(["high", "medium", "low"]).default("medium").describe("Task priority"),
21
27
  execution_mode: z.enum(["parallel", "sequential"]).default("parallel")
22
28
  .describe("Execution mode within staging"),
29
+ model: z.enum(["opus", "sonnet", "haiku"]).optional()
30
+ .describe("Model to use for this task (overrides staging default_model)"),
23
31
  depends_on_index: z.array(z.number().int().min(0)).default([])
24
32
  .describe("Indices of tasks this task depends on (within same staging)"),
25
33
  })).describe("Tasks in this staging"),
@@ -34,11 +42,15 @@ export function registerPlanTools(server) {
34
42
  name: s.name,
35
43
  description: s.description,
36
44
  execution_type: s.execution_type,
45
+ default_model: s.default_model,
46
+ session_budget: s.session_budget,
47
+ recommended_sessions: s.recommended_sessions,
37
48
  tasks: s.tasks.map(t => ({
38
49
  title: t.title,
39
50
  description: t.description,
40
51
  priority: t.priority,
41
52
  execution_mode: t.execution_mode,
53
+ model: t.model,
42
54
  depends_on_index: t.depends_on_index,
43
55
  })),
44
56
  }));
@@ -76,11 +88,12 @@ export function registerPlanTools(server) {
76
88
  }
77
89
  });
78
90
  // ============ update_task ============
79
- server.tool("update_task", "Update a task's status. Use this to mark tasks as in_progress, done, or blocked.", {
91
+ server.tool("update_task", "Update a task's status. Use this to mark tasks as in_progress, done, or blocked. Automatically includes relevant memories and cross-referenced task outputs when transitioning to in_progress or done.", {
80
92
  taskId: z.string().describe("Task ID to update"),
81
93
  status: z.enum(["pending", "in_progress", "done", "blocked", "cancelled"])
82
94
  .describe("New task status"),
83
95
  notes: z.string().optional().describe("Notes about the status change"),
96
+ includeContext: z.boolean().default(true).describe("Include related memories and cross-referenced outputs"),
84
97
  }, async (args) => {
85
98
  const result = await withErrorHandling(async () => {
86
99
  const manager = StateManager.getInstance();
@@ -93,6 +106,50 @@ export function registerPlanTools(server) {
93
106
  }
94
107
  const previousStatus = task.status;
95
108
  await manager.updateTaskStatus(args.taskId, args.status, args.notes);
109
+ // Build context based on status transition
110
+ let context = null;
111
+ if (args.includeContext) {
112
+ if (args.status === "in_progress") {
113
+ // Task starting: include always-applied + task-start memories and cross-referenced outputs
114
+ const alwaysApplied = manager.getAlwaysAppliedMemories();
115
+ const taskStartMemories = manager.getMemoriesForEvent("task-start", task.memory_tags);
116
+ // Merge without duplicates, keeping priority order
117
+ const memoryMap = new Map();
118
+ for (const m of alwaysApplied) {
119
+ memoryMap.set(m.id, m);
120
+ }
121
+ for (const m of taskStartMemories) {
122
+ memoryMap.set(m.id, m);
123
+ }
124
+ const memories = Array.from(memoryMap.values())
125
+ .sort((a, b) => b.priority - a.priority);
126
+ const crossRefs = manager.getCrossReferencedTaskOutputs(args.taskId);
127
+ context = {
128
+ event: "task-start",
129
+ memories,
130
+ crossReferencedOutputs: crossRefs,
131
+ };
132
+ }
133
+ else if (args.status === "done") {
134
+ // Task completing: include always-applied + task-complete memories
135
+ const alwaysApplied = manager.getAlwaysAppliedMemories();
136
+ const taskCompleteMemories = manager.getMemoriesForEvent("task-complete", task.memory_tags);
137
+ // Merge without duplicates, keeping priority order
138
+ const memoryMap = new Map();
139
+ for (const m of alwaysApplied) {
140
+ memoryMap.set(m.id, m);
141
+ }
142
+ for (const m of taskCompleteMemories) {
143
+ memoryMap.set(m.id, m);
144
+ }
145
+ const memories = Array.from(memoryMap.values())
146
+ .sort((a, b) => b.priority - a.priority);
147
+ context = {
148
+ event: "task-complete",
149
+ memories,
150
+ };
151
+ }
152
+ }
96
153
  return {
97
154
  success: true,
98
155
  message: `Task status updated: ${previousStatus} -> ${args.status}`,
@@ -103,6 +160,22 @@ export function registerPlanTools(server) {
103
160
  newStatus: args.status,
104
161
  notes: args.notes,
105
162
  },
163
+ context: context ? {
164
+ event: context.event,
165
+ memories: context.memories.map(m => ({
166
+ id: m.id,
167
+ category: m.category,
168
+ title: m.title,
169
+ content: m.content,
170
+ priority: m.priority,
171
+ })),
172
+ memoriesText: context.memories.length > 0
173
+ ? context.memories.map(m => `## [${m.category.toUpperCase()}] ${m.title}\n${m.content}`).join("\n\n")
174
+ : null,
175
+ crossReferencedOutputs: context.event === "task-start"
176
+ ? context.crossReferencedOutputs
177
+ : undefined,
178
+ } : undefined,
106
179
  };
107
180
  }, "update_task");
108
181
  if (result.success) {
@@ -128,7 +201,7 @@ export function registerPlanTools(server) {
128
201
  }
129
202
  const plan = manager.getPlan(args.planId);
130
203
  if (!plan) {
131
- throw new Error(`Plan not found: ${args.planId}`);
204
+ throw new PlanNotFoundError(args.planId);
132
205
  }
133
206
  // Get all stagings and their status
134
207
  const stagings = manager.getStagingsByPlan(args.planId);
@@ -149,7 +222,7 @@ export function registerPlanTools(server) {
149
222
  // Auto-complete stagings where all tasks are done
150
223
  for (const s of stagingStatus) {
151
224
  if (s.allTasksDone && s.status === "in_progress") {
152
- await manager.completestaging(s.id);
225
+ await manager.completeStaging(s.id);
153
226
  s.status = "completed";
154
227
  }
155
228
  }