@zeliper/zscode-mcp-server 1.0.8 → 2.1.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 (46) hide show
  1. package/dist/state/manager.d.ts +240 -2
  2. package/dist/state/manager.d.ts.map +1 -1
  3. package/dist/state/manager.js +1055 -2
  4. package/dist/state/manager.js.map +1 -1
  5. package/dist/state/schema.d.ts +6535 -545
  6. package/dist/state/schema.d.ts.map +1 -1
  7. package/dist/state/schema.js +340 -0
  8. package/dist/state/schema.js.map +1 -1
  9. package/dist/state/types.d.ts +62 -1
  10. package/dist/state/types.d.ts.map +1 -1
  11. package/dist/state/types.js.map +1 -1
  12. package/dist/templates/index.d.ts +79 -0
  13. package/dist/templates/index.d.ts.map +1 -0
  14. package/dist/templates/index.js +472 -0
  15. package/dist/templates/index.js.map +1 -0
  16. package/dist/tools/bulk.d.ts +6 -0
  17. package/dist/tools/bulk.d.ts.map +1 -0
  18. package/dist/tools/bulk.js +273 -0
  19. package/dist/tools/bulk.js.map +1 -0
  20. package/dist/tools/index.d.ts.map +1 -1
  21. package/dist/tools/index.js +15 -0
  22. package/dist/tools/index.js.map +1 -1
  23. package/dist/tools/navigate.d.ts +6 -0
  24. package/dist/tools/navigate.d.ts.map +1 -0
  25. package/dist/tools/navigate.js +334 -0
  26. package/dist/tools/navigate.js.map +1 -0
  27. package/dist/tools/rollback.d.ts +6 -0
  28. package/dist/tools/rollback.d.ts.map +1 -0
  29. package/dist/tools/rollback.js +278 -0
  30. package/dist/tools/rollback.js.map +1 -0
  31. package/dist/tools/search.d.ts +6 -0
  32. package/dist/tools/search.d.ts.map +1 -0
  33. package/dist/tools/search.js +252 -0
  34. package/dist/tools/search.js.map +1 -0
  35. package/dist/tools/staging.d.ts.map +1 -1
  36. package/dist/tools/staging.js +5 -1
  37. package/dist/tools/staging.js.map +1 -1
  38. package/dist/tools/template.d.ts +6 -0
  39. package/dist/tools/template.d.ts.map +1 -0
  40. package/dist/tools/template.js +348 -0
  41. package/dist/tools/template.js.map +1 -0
  42. package/dist/utils/format.d.ts +173 -0
  43. package/dist/utils/format.d.ts.map +1 -1
  44. package/dist/utils/format.js +336 -0
  45. package/dist/utils/format.js.map +1 -1
  46. package/package.json +1 -1
@@ -0,0 +1,348 @@
1
+ import { z } from "zod";
2
+ import { StateManager } from "../state/manager.js";
3
+ import { withErrorHandling, ProjectNotInitializedError, ValidationError, } from "../errors/index.js";
4
+ // ============ Human-Readable Formatters ============
5
+ function formatTemplateDetail(template) {
6
+ const lines = [];
7
+ lines.push(`📋 **${template.name}**`);
8
+ lines.push(` ID: ${template.id}`);
9
+ lines.push(` Category: ${template.category}`);
10
+ if (template.description)
11
+ lines.push(` Description: ${template.description}`);
12
+ lines.push(` Tags: ${template.tags.length > 0 ? template.tags.join(", ") : "none"}`);
13
+ lines.push("");
14
+ if (template.variables.length > 0) {
15
+ lines.push("**Variables:**");
16
+ for (const v of template.variables) {
17
+ const req = v.required ? "(required)" : "(optional)";
18
+ lines.push(` • ${v.name} ${req}${v.defaultValue ? ` = "${v.defaultValue}"` : ""}`);
19
+ }
20
+ lines.push("");
21
+ }
22
+ lines.push("**Stagings:**");
23
+ for (let i = 0; i < template.stagings.length; i++) {
24
+ const staging = template.stagings[i];
25
+ if (!staging)
26
+ continue;
27
+ lines.push(` ${i + 1}. ${staging.name} [${staging.execution_type}]`);
28
+ if (staging.description)
29
+ lines.push(` ${staging.description}`);
30
+ lines.push(` Tasks: ${staging.tasks.length}`);
31
+ for (const t of staging.tasks) {
32
+ lines.push(` - ${t.title} (${t.priority})`);
33
+ }
34
+ }
35
+ lines.push("");
36
+ lines.push(`Usage: ${template.usageCount} times${template.lastUsedAt ? ` | Last: ${new Date(template.lastUsedAt).toLocaleDateString()}` : ""}`);
37
+ return lines.join("\n");
38
+ }
39
+ function formatTemplateList(templates) {
40
+ if (templates.length === 0) {
41
+ return "No templates found.";
42
+ }
43
+ const lines = [];
44
+ lines.push(`📋 **Templates** (${templates.length})`);
45
+ lines.push("");
46
+ // Group by category
47
+ const byCategory = new Map();
48
+ for (const t of templates) {
49
+ const list = byCategory.get(t.category) || [];
50
+ list.push(t);
51
+ byCategory.set(t.category, list);
52
+ }
53
+ for (const [category, tpls] of byCategory) {
54
+ lines.push(`**${category.charAt(0).toUpperCase() + category.slice(1)}:**`);
55
+ for (const t of tpls) {
56
+ const builtIn = t.isBuiltIn ? " ⭐" : "";
57
+ lines.push(` • ${t.name}${builtIn} (${t.id})`);
58
+ if (t.description)
59
+ lines.push(` ${t.description}`);
60
+ }
61
+ lines.push("");
62
+ }
63
+ return lines.join("\n");
64
+ }
65
+ function formatApplyResult(planId, planTitle, stagingsCreated, tasksCreated) {
66
+ const lines = [];
67
+ lines.push(`✅ **Template Applied Successfully**`);
68
+ lines.push(` Plan: ${planTitle} (${planId})`);
69
+ lines.push(` Created: ${stagingsCreated} stagings, ${tasksCreated} tasks`);
70
+ return lines.join("\n");
71
+ }
72
+ // Template task definition schema for input
73
+ const TemplateTaskDefInputSchema = z.object({
74
+ title: z.string().min(1),
75
+ description: z.string().optional(),
76
+ priority: z.enum(["high", "medium", "low"]).default("medium"),
77
+ execution_mode: z.enum(["parallel", "sequential"]).default("parallel"),
78
+ model: z.enum(["opus", "sonnet", "haiku"]).optional(),
79
+ depends_on_index: z.array(z.number().int().min(0)).default([]),
80
+ memory_tags: z.array(z.string()).default([]),
81
+ });
82
+ // Template staging definition schema for input
83
+ const TemplateStagingDefInputSchema = z.object({
84
+ name: z.string().min(1),
85
+ description: z.string().optional(),
86
+ execution_type: z.enum(["parallel", "sequential"]).default("parallel"),
87
+ default_model: z.enum(["opus", "sonnet", "haiku"]).optional(),
88
+ session_budget: z.enum(["minimal", "standard", "extensive"]).optional(),
89
+ recommended_sessions: z.number().min(0.5).max(10).optional(),
90
+ tasks: z.array(TemplateTaskDefInputSchema).default([]),
91
+ });
92
+ // Template variable schema for input
93
+ const TemplateVariableInputSchema = z.object({
94
+ name: z.string().min(1),
95
+ description: z.string().optional(),
96
+ defaultValue: z.string().optional(),
97
+ required: z.boolean().default(false),
98
+ });
99
+ /**
100
+ * Register template-related tools
101
+ */
102
+ export function registerTemplateTools(server) {
103
+ // ============ create_template ============
104
+ server.tool("create_template", "Create a new plan template for reuse. Templates can include multiple stagings with tasks.", {
105
+ name: z.string().min(1).describe("Template name"),
106
+ description: z.string().optional().describe("Template description"),
107
+ category: z.enum(["feature", "bugfix", "refactoring", "review", "deployment", "testing", "custom"])
108
+ .default("custom").describe("Template category"),
109
+ tags: z.array(z.string()).default([]).describe("Tags for searchability"),
110
+ stagings: z.array(TemplateStagingDefInputSchema).default([]).describe("Staging definitions with tasks"),
111
+ variables: z.array(TemplateVariableInputSchema).default([]).describe("Variables that can be replaced when applying"),
112
+ }, async (args) => {
113
+ const result = await withErrorHandling(async () => {
114
+ const manager = StateManager.getInstance();
115
+ if (!manager.isInitialized()) {
116
+ throw new ProjectNotInitializedError();
117
+ }
118
+ const template = await manager.createTemplate({
119
+ name: args.name,
120
+ description: args.description,
121
+ category: args.category,
122
+ tags: args.tags,
123
+ stagings: args.stagings,
124
+ variables: args.variables,
125
+ });
126
+ return {
127
+ success: true,
128
+ message: `Template "${args.name}" created`,
129
+ template,
130
+ };
131
+ }, "create_template");
132
+ if (result.success) {
133
+ const text = `✅ **Template Created**: ${result.data.template.name}\n ID: ${result.data.template.id}\n Category: ${result.data.template.category}\n Stagings: ${result.data.template.stagings.length}`;
134
+ return { content: [{ type: "text", text }] };
135
+ }
136
+ else {
137
+ return {
138
+ content: [{ type: "text", text: `❌ ${result.error.message}` }],
139
+ isError: true,
140
+ };
141
+ }
142
+ });
143
+ // ============ get_template ============
144
+ server.tool("get_template", "Get detailed information about a specific template.", {
145
+ templateId: z.string().describe("Template ID to retrieve"),
146
+ }, async (args) => {
147
+ const result = await withErrorHandling(async () => {
148
+ const manager = StateManager.getInstance();
149
+ if (!manager.isInitialized()) {
150
+ throw new ProjectNotInitializedError();
151
+ }
152
+ const template = manager.getTemplate(args.templateId);
153
+ if (!template) {
154
+ throw new ValidationError(`Template not found: ${args.templateId}`);
155
+ }
156
+ return { success: true, template };
157
+ }, "get_template");
158
+ if (result.success) {
159
+ const text = formatTemplateDetail(result.data.template);
160
+ return { content: [{ type: "text", text }] };
161
+ }
162
+ else {
163
+ return {
164
+ content: [{ type: "text", text: `❌ ${result.error.message}` }],
165
+ isError: true,
166
+ };
167
+ }
168
+ });
169
+ // ============ list_templates ============
170
+ server.tool("list_templates", "List all templates, optionally filtered by category or tags.", {
171
+ category: z.enum(["feature", "bugfix", "refactoring", "review", "deployment", "testing", "custom"])
172
+ .optional().describe("Filter by category"),
173
+ tags: z.array(z.string()).optional().describe("Filter by tags (OR logic)"),
174
+ }, async (args) => {
175
+ const result = await withErrorHandling(async () => {
176
+ const manager = StateManager.getInstance();
177
+ if (!manager.isInitialized()) {
178
+ throw new ProjectNotInitializedError();
179
+ }
180
+ const templates = manager.listTemplates({
181
+ category: args.category,
182
+ tags: args.tags,
183
+ });
184
+ return { success: true, templates, count: templates.length };
185
+ }, "list_templates");
186
+ if (result.success) {
187
+ const text = formatTemplateList(result.data.templates);
188
+ return { content: [{ type: "text", text }] };
189
+ }
190
+ else {
191
+ return {
192
+ content: [{ type: "text", text: `❌ ${result.error.message}` }],
193
+ isError: true,
194
+ };
195
+ }
196
+ });
197
+ // ============ update_template ============
198
+ server.tool("update_template", "Update an existing template's metadata or content.", {
199
+ templateId: z.string().describe("Template ID to update"),
200
+ name: z.string().optional().describe("New template name"),
201
+ description: z.string().optional().describe("New description"),
202
+ category: z.enum(["feature", "bugfix", "refactoring", "review", "deployment", "testing", "custom"])
203
+ .optional().describe("New category"),
204
+ tags: z.array(z.string()).optional().describe("New tags"),
205
+ stagings: z.array(TemplateStagingDefInputSchema).optional().describe("New staging definitions"),
206
+ variables: z.array(TemplateVariableInputSchema).optional().describe("New variables"),
207
+ }, async (args) => {
208
+ const result = await withErrorHandling(async () => {
209
+ const manager = StateManager.getInstance();
210
+ if (!manager.isInitialized()) {
211
+ throw new ProjectNotInitializedError();
212
+ }
213
+ const hasUpdate = args.name || args.description !== undefined || args.category ||
214
+ args.tags || args.stagings || args.variables;
215
+ if (!hasUpdate) {
216
+ throw new ValidationError("At least one update field must be provided");
217
+ }
218
+ const template = await manager.updateTemplate(args.templateId, {
219
+ name: args.name,
220
+ description: args.description,
221
+ category: args.category,
222
+ tags: args.tags,
223
+ stagings: args.stagings,
224
+ variables: args.variables,
225
+ });
226
+ return { success: true, template };
227
+ }, "update_template");
228
+ if (result.success) {
229
+ const t = result.data.template;
230
+ const text = `✅ **Template Updated**: ${t.name}\n ID: ${t.id}\n Category: ${t.category}`;
231
+ return { content: [{ type: "text", text }] };
232
+ }
233
+ else {
234
+ return {
235
+ content: [{ type: "text", text: `❌ ${result.error.message}` }],
236
+ isError: true,
237
+ };
238
+ }
239
+ });
240
+ // ============ delete_template ============
241
+ server.tool("delete_template", "Delete a template. Built-in templates cannot be deleted.", {
242
+ templateId: z.string().describe("Template ID to delete"),
243
+ }, async (args) => {
244
+ const result = await withErrorHandling(async () => {
245
+ const manager = StateManager.getInstance();
246
+ if (!manager.isInitialized()) {
247
+ throw new ProjectNotInitializedError();
248
+ }
249
+ const template = manager.getTemplate(args.templateId);
250
+ if (!template) {
251
+ throw new ValidationError(`Template not found: ${args.templateId}`);
252
+ }
253
+ const templateName = template.name;
254
+ await manager.deleteTemplate(args.templateId);
255
+ return { success: true, templateName, templateId: args.templateId };
256
+ }, "delete_template");
257
+ if (result.success) {
258
+ const text = `🗑️ **Template Deleted**: ${result.data.templateName}\n ID: ${result.data.templateId}`;
259
+ return { content: [{ type: "text", text }] };
260
+ }
261
+ else {
262
+ return {
263
+ content: [{ type: "text", text: `❌ ${result.error.message}` }],
264
+ isError: true,
265
+ };
266
+ }
267
+ });
268
+ // ============ apply_template ============
269
+ server.tool("apply_template", "Apply a template to create a new plan with stagings and tasks.", {
270
+ templateId: z.string().describe("Template ID to apply"),
271
+ planTitle: z.string().min(1).describe("Title for the new plan"),
272
+ planDescription: z.string().optional().describe("Description for the new plan"),
273
+ variables: z.record(z.string()).optional().describe("Variable values to substitute (key: variable name, value: replacement)"),
274
+ }, async (args) => {
275
+ const result = await withErrorHandling(async () => {
276
+ const manager = StateManager.getInstance();
277
+ if (!manager.isInitialized()) {
278
+ throw new ProjectNotInitializedError();
279
+ }
280
+ const plan = await manager.applyTemplate(args.templateId, args.planTitle, args.planDescription, args.variables);
281
+ // Count stagings and tasks
282
+ let taskCount = 0;
283
+ for (const stagingId of plan.stagings) {
284
+ const staging = manager.getStaging(stagingId);
285
+ if (staging) {
286
+ taskCount += staging.tasks.length;
287
+ }
288
+ }
289
+ return {
290
+ success: true,
291
+ planId: plan.id,
292
+ planTitle: plan.title,
293
+ stagingsCreated: plan.stagings.length,
294
+ tasksCreated: taskCount,
295
+ };
296
+ }, "apply_template");
297
+ if (result.success) {
298
+ const text = formatApplyResult(result.data.planId, result.data.planTitle, result.data.stagingsCreated, result.data.tasksCreated);
299
+ return { content: [{ type: "text", text }] };
300
+ }
301
+ else {
302
+ return {
303
+ content: [{ type: "text", text: `❌ ${result.error.message}` }],
304
+ isError: true,
305
+ };
306
+ }
307
+ });
308
+ // ============ load_builtin_templates ============
309
+ server.tool("load_builtin_templates", "Load built-in templates (Feature Development, Bug Fix, Refactoring, Code Review). Only loads templates that don't already exist unless overwrite is true.", {
310
+ overwrite: z.boolean().default(false).describe("If true, overwrite existing built-in templates"),
311
+ }, async (args) => {
312
+ const result = await withErrorHandling(async () => {
313
+ const manager = StateManager.getInstance();
314
+ if (!manager.isInitialized()) {
315
+ throw new ProjectNotInitializedError();
316
+ }
317
+ const loadedCount = await manager.loadBuiltInTemplates(args.overwrite);
318
+ const totalTemplates = manager.getAllTemplates().filter(t => t.isBuiltIn).length;
319
+ return {
320
+ success: true,
321
+ loadedCount,
322
+ totalBuiltIn: totalTemplates,
323
+ overwritten: args.overwrite,
324
+ };
325
+ }, "load_builtin_templates");
326
+ if (result.success) {
327
+ const { loadedCount, totalBuiltIn, overwritten } = result.data;
328
+ let text;
329
+ if (loadedCount > 0) {
330
+ text = `✅ **Loaded ${loadedCount} Built-in Template(s)**\n Total built-in templates: ${totalBuiltIn}`;
331
+ if (overwritten) {
332
+ text += `\n Mode: overwrite`;
333
+ }
334
+ }
335
+ else {
336
+ text = `ℹ️ All built-in templates already loaded (${totalBuiltIn} total)`;
337
+ }
338
+ return { content: [{ type: "text", text }] };
339
+ }
340
+ else {
341
+ return {
342
+ content: [{ type: "text", text: `❌ ${result.error.message}` }],
343
+ isError: true,
344
+ };
345
+ }
346
+ });
347
+ }
348
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/tools/template.ts"],"names":[],"mappings":"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"}
@@ -149,4 +149,177 @@ export declare function formatMemoriesForContext(context: string, memories: Arra
149
149
  * Used by list_categories
150
150
  */
151
151
  export declare function formatCategoryList(defaultCategories: string[], usedCategories: string[]): string;
152
+ export interface ProgressBarOptions {
153
+ /** Total width of the bar (default: 30) */
154
+ width?: number;
155
+ /** Character for completed portion (default: █) */
156
+ filledChar?: string;
157
+ /** Character for remaining portion (default: ░) */
158
+ emptyChar?: string;
159
+ /** Show percentage text (default: true) */
160
+ showPercentage?: boolean;
161
+ /** Show fraction (e.g., 5/10) (default: false) */
162
+ showFraction?: boolean;
163
+ }
164
+ /**
165
+ * Generate ASCII progress bar
166
+ * @param current - Current value
167
+ * @param total - Total value
168
+ * @param options - Display options
169
+ */
170
+ export declare function progressBar(current: number, total: number, options?: ProgressBarOptions): string;
171
+ /**
172
+ * Generate a mini progress indicator (for inline use)
173
+ */
174
+ export declare function miniProgress(current: number, total: number): string;
175
+ /**
176
+ * Format plan progress as ASCII bar
177
+ */
178
+ export declare function formatPlanProgress(planTitle: string, completedTasks: number, totalTasks: number, status: string): string;
179
+ /**
180
+ * Format staging progress as ASCII bar
181
+ */
182
+ export declare function formatStagingProgress(stagingName: string, completedTasks: number, totalTasks: number, status: string): string;
183
+ export interface TreeNode {
184
+ id: string;
185
+ name: string;
186
+ status?: string;
187
+ children?: TreeNode[];
188
+ }
189
+ /**
190
+ * Generate ASCII dependency tree
191
+ */
192
+ export declare function dependencyTree(root: TreeNode, indent?: string): string;
193
+ /**
194
+ * Format plan as dependency tree
195
+ */
196
+ export declare function formatPlanTree(plan: {
197
+ id: string;
198
+ title: string;
199
+ status: string;
200
+ stagings: Array<{
201
+ id: string;
202
+ name: string;
203
+ status: string;
204
+ tasks: Array<{
205
+ id: string;
206
+ title: string;
207
+ status: string;
208
+ }>;
209
+ }>;
210
+ }): string;
211
+ /**
212
+ * Format task dependencies as a tree
213
+ */
214
+ export declare function formatTaskDependencies(tasks: Array<{
215
+ id: string;
216
+ title: string;
217
+ status: string;
218
+ depends_on: string[];
219
+ }>): string;
220
+ export interface GanttTask {
221
+ id: string;
222
+ name: string;
223
+ status: string;
224
+ order: number;
225
+ /** Duration in relative units */
226
+ duration?: number;
227
+ }
228
+ export interface GanttOptions {
229
+ /** Width of the chart in characters (default: 40) */
230
+ width?: number;
231
+ /** Character for pending (default: ░) */
232
+ pendingChar?: string;
233
+ /** Character for in progress (default: ▒) */
234
+ inProgressChar?: string;
235
+ /** Character for done (default: █) */
236
+ doneChar?: string;
237
+ /** Character for blocked (default: ╳) */
238
+ blockedChar?: string;
239
+ }
240
+ /**
241
+ * Generate simple ASCII Gantt chart
242
+ */
243
+ export declare function ganttChart(tasks: GanttTask[], options?: GanttOptions): string;
244
+ /**
245
+ * Format staging tasks as Gantt chart
246
+ */
247
+ export declare function formatStagingGantt(stagingName: string, tasks: Array<{
248
+ id: string;
249
+ title: string;
250
+ status: string;
251
+ order?: number;
252
+ }>): string;
253
+ /** ANSI color codes for terminal output */
254
+ export declare const colors: {
255
+ reset: string;
256
+ bold: string;
257
+ dim: string;
258
+ italic: string;
259
+ underline: string;
260
+ black: string;
261
+ red: string;
262
+ green: string;
263
+ yellow: string;
264
+ blue: string;
265
+ magenta: string;
266
+ cyan: string;
267
+ white: string;
268
+ brightBlack: string;
269
+ brightRed: string;
270
+ brightGreen: string;
271
+ brightYellow: string;
272
+ brightBlue: string;
273
+ brightMagenta: string;
274
+ brightCyan: string;
275
+ brightWhite: string;
276
+ bgBlack: string;
277
+ bgRed: string;
278
+ bgGreen: string;
279
+ bgYellow: string;
280
+ bgBlue: string;
281
+ bgMagenta: string;
282
+ bgCyan: string;
283
+ bgWhite: string;
284
+ };
285
+ /** Check if colors are supported (not in MCP context by default) */
286
+ export declare function supportsColor(): boolean;
287
+ /**
288
+ * Apply color to text (only if colors are supported)
289
+ */
290
+ export declare function colorize(text: string, color: keyof typeof colors): string;
291
+ /**
292
+ * Get status color
293
+ */
294
+ export declare function getStatusColor(status: string): keyof typeof colors;
295
+ /**
296
+ * Color text by status
297
+ */
298
+ export declare function colorByStatus(text: string, status: string): string;
299
+ /**
300
+ * Format status with color
301
+ */
302
+ export declare function formatColoredStatus(status: string): string;
303
+ /**
304
+ * Format comprehensive plan overview with all visualizations
305
+ */
306
+ export declare function formatPlanOverview(plan: {
307
+ id: string;
308
+ title: string;
309
+ description?: string;
310
+ status: string;
311
+ stagings: Array<{
312
+ id: string;
313
+ name: string;
314
+ status: string;
315
+ completedTasks: number;
316
+ totalTasks: number;
317
+ tasks: Array<{
318
+ id: string;
319
+ title: string;
320
+ status: string;
321
+ order?: number;
322
+ }>;
323
+ }>;
324
+ }): string;
152
325
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"}