@zeliper/zscode-mcp-server 1.0.4 → 1.0.6
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/state/types.d.ts +0 -1
- package/dist/state/types.d.ts.map +1 -1
- package/dist/tools/archive.d.ts.map +1 -1
- package/dist/tools/archive.js +9 -42
- package/dist/tools/archive.js.map +1 -1
- package/dist/tools/cancel.d.ts.map +1 -1
- package/dist/tools/cancel.js +9 -22
- package/dist/tools/cancel.js.map +1 -1
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +100 -35
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/plan.d.ts.map +1 -1
- package/dist/tools/plan.js +11 -23
- package/dist/tools/plan.js.map +1 -1
- package/dist/tools/staging.d.ts.map +1 -1
- package/dist/tools/staging.js +66 -50
- package/dist/tools/staging.js.map +1 -1
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +41 -7
- package/dist/tools/status.js.map +1 -1
- package/dist/utils/format.d.ts +136 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +271 -0
- package/dist/utils/format.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output formatting utilities for MCP tools
|
|
3
|
+
* Provides consistent JSON formatting and human-readable output generation
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Format data as JSON string
|
|
7
|
+
* @param data - Data to format
|
|
8
|
+
* @param options - Formatting options
|
|
9
|
+
* @returns Formatted JSON string
|
|
10
|
+
*/
|
|
11
|
+
export function formatJson(data, options = {}) {
|
|
12
|
+
const { mode = "pretty", indent = 2 } = options;
|
|
13
|
+
switch (mode) {
|
|
14
|
+
case "compact":
|
|
15
|
+
return JSON.stringify(data);
|
|
16
|
+
case "minimal":
|
|
17
|
+
// Single level indent for readability without excessive whitespace
|
|
18
|
+
return JSON.stringify(data, null, 1);
|
|
19
|
+
case "pretty":
|
|
20
|
+
default:
|
|
21
|
+
return JSON.stringify(data, null, indent);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create MCP tool response content
|
|
26
|
+
* @param data - Response data
|
|
27
|
+
* @param options - Formatting options
|
|
28
|
+
*/
|
|
29
|
+
export function createResponse(data, options = {}) {
|
|
30
|
+
return {
|
|
31
|
+
content: [{ type: "text", text: formatJson(data, options) }],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create MCP tool error response
|
|
36
|
+
* @param error - Error data
|
|
37
|
+
* @param options - Formatting options
|
|
38
|
+
*/
|
|
39
|
+
export function createErrorResponse(error, options = {}) {
|
|
40
|
+
return {
|
|
41
|
+
content: [{ type: "text", text: formatJson(error, options) }],
|
|
42
|
+
isError: true,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// ============ Human-readable formatters ============
|
|
46
|
+
/**
|
|
47
|
+
* Format status overview as readable text
|
|
48
|
+
*/
|
|
49
|
+
export function formatStatusOverview(overview) {
|
|
50
|
+
const lines = [
|
|
51
|
+
"## Project Overview",
|
|
52
|
+
"",
|
|
53
|
+
`- Total Plans: ${overview.totalPlans}`,
|
|
54
|
+
`- Active: ${overview.activePlans}`,
|
|
55
|
+
`- Completed: ${overview.completedPlans}`,
|
|
56
|
+
`- Archived: ${overview.archivedPlans}`,
|
|
57
|
+
`- Cancelled: ${overview.cancelledPlans}`,
|
|
58
|
+
];
|
|
59
|
+
return lines.join("\n");
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Format plan summary as readable text
|
|
63
|
+
*/
|
|
64
|
+
export function formatPlanSummary(plan) {
|
|
65
|
+
const statusIcon = getStatusIcon(plan.status);
|
|
66
|
+
const progress = plan.progress.percentage.toFixed(0);
|
|
67
|
+
const lines = [
|
|
68
|
+
`${statusIcon} **${plan.title}** (${plan.id})`,
|
|
69
|
+
` Progress: ${progress}% (${plan.progress.completedTasks}/${plan.progress.totalTasks} tasks)`,
|
|
70
|
+
];
|
|
71
|
+
if (plan.currentStaging) {
|
|
72
|
+
lines.push(` Current: ${plan.currentStaging.name}`);
|
|
73
|
+
}
|
|
74
|
+
return lines.join("\n");
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Format staging detail as readable text
|
|
78
|
+
*/
|
|
79
|
+
export function formatStagingDetail(staging) {
|
|
80
|
+
const statusIcon = getStatusIcon(staging.status);
|
|
81
|
+
const lines = [
|
|
82
|
+
`${statusIcon} **${staging.name}** [${staging.execution_type}]`,
|
|
83
|
+
` Tasks: ${staging.completedTaskCount}/${staging.taskCount}`,
|
|
84
|
+
];
|
|
85
|
+
if (staging.tasks.length > 0) {
|
|
86
|
+
staging.tasks.forEach(task => {
|
|
87
|
+
const taskIcon = getStatusIcon(task.status);
|
|
88
|
+
lines.push(` ${taskIcon} ${task.title}`);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return lines.join("\n");
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Format task update result as compact text
|
|
95
|
+
*/
|
|
96
|
+
export function formatTaskUpdate(_taskId, title, from, to) {
|
|
97
|
+
const icon = getStatusIcon(to);
|
|
98
|
+
return `${icon} ${title}: ${from} → ${to}`;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Format plan creation result as readable text
|
|
102
|
+
*/
|
|
103
|
+
export function formatPlanCreated(planId, title, stagingCount, taskCount) {
|
|
104
|
+
return [
|
|
105
|
+
`✅ Plan created: **${title}**`,
|
|
106
|
+
` ID: ${planId}`,
|
|
107
|
+
` Stagings: ${stagingCount}`,
|
|
108
|
+
` Tasks: ${taskCount}`,
|
|
109
|
+
].join("\n");
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Format memory list as readable text
|
|
113
|
+
*/
|
|
114
|
+
export function formatMemoryList(memories) {
|
|
115
|
+
if (memories.length === 0) {
|
|
116
|
+
return "No memories found.";
|
|
117
|
+
}
|
|
118
|
+
const lines = ["## Memories", ""];
|
|
119
|
+
// Group by category
|
|
120
|
+
const byCategory = new Map();
|
|
121
|
+
for (const mem of memories) {
|
|
122
|
+
const list = byCategory.get(mem.category) || [];
|
|
123
|
+
list.push(mem);
|
|
124
|
+
byCategory.set(mem.category, list);
|
|
125
|
+
}
|
|
126
|
+
for (const [category, mems] of byCategory) {
|
|
127
|
+
lines.push(`### ${category}`);
|
|
128
|
+
for (const mem of mems) {
|
|
129
|
+
const status = mem.enabled ? "✅" : "⏸️";
|
|
130
|
+
lines.push(`${status} [${mem.priority}] ${mem.title} (${mem.id})`);
|
|
131
|
+
}
|
|
132
|
+
lines.push("");
|
|
133
|
+
}
|
|
134
|
+
return lines.join("\n");
|
|
135
|
+
}
|
|
136
|
+
// ============ Helper functions ============
|
|
137
|
+
export function getStatusIcon(status) {
|
|
138
|
+
const icons = {
|
|
139
|
+
// Plan status
|
|
140
|
+
draft: "📝",
|
|
141
|
+
active: "🔄",
|
|
142
|
+
completed: "✅",
|
|
143
|
+
archived: "📦",
|
|
144
|
+
cancelled: "❌",
|
|
145
|
+
// Staging status
|
|
146
|
+
pending: "⏳",
|
|
147
|
+
in_progress: "🔄",
|
|
148
|
+
// Task status
|
|
149
|
+
done: "✅",
|
|
150
|
+
blocked: "🚫",
|
|
151
|
+
};
|
|
152
|
+
return icons[status] || "•";
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Truncate long strings for display
|
|
156
|
+
*/
|
|
157
|
+
export function truncate(str, maxLength = 100) {
|
|
158
|
+
if (str.length <= maxLength)
|
|
159
|
+
return str;
|
|
160
|
+
return str.substring(0, maxLength - 3) + "...";
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Format bytes as human-readable size
|
|
164
|
+
*/
|
|
165
|
+
export function formatSize(bytes) {
|
|
166
|
+
if (bytes < 1024)
|
|
167
|
+
return `${bytes} B`;
|
|
168
|
+
if (bytes < 1024 * 1024)
|
|
169
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
170
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
171
|
+
}
|
|
172
|
+
// ============ Text response helpers ============
|
|
173
|
+
/**
|
|
174
|
+
* Create MCP tool response with plain text (default for user-facing output)
|
|
175
|
+
*/
|
|
176
|
+
export function textResponse(text) {
|
|
177
|
+
return {
|
|
178
|
+
content: [{ type: "text", text }],
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Create MCP tool error response with plain text
|
|
183
|
+
*/
|
|
184
|
+
export function textErrorResponse(message) {
|
|
185
|
+
return {
|
|
186
|
+
content: [{ type: "text", text: `❌ Error: ${message}` }],
|
|
187
|
+
isError: true,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
export function formatStagingStart(info) {
|
|
191
|
+
const lines = [
|
|
192
|
+
`🚀 Started: **${info.name}**`,
|
|
193
|
+
];
|
|
194
|
+
if (info.description) {
|
|
195
|
+
lines.push(` ${info.description}`);
|
|
196
|
+
}
|
|
197
|
+
lines.push(` Tasks: ${info.executableCount}/${info.taskCount} ready`);
|
|
198
|
+
if (info.sessionBudget) {
|
|
199
|
+
lines.push(` Budget: ${info.sessionBudget}`);
|
|
200
|
+
}
|
|
201
|
+
return lines.join("\n");
|
|
202
|
+
}
|
|
203
|
+
export function formatStagingComplete(name) {
|
|
204
|
+
return `✅ Staging completed: **${name}**`;
|
|
205
|
+
}
|
|
206
|
+
export function formatTaskList(tasks) {
|
|
207
|
+
if (tasks.length === 0)
|
|
208
|
+
return "No tasks.";
|
|
209
|
+
return tasks.map(t => {
|
|
210
|
+
const icon = getStatusIcon(t.status);
|
|
211
|
+
const priority = t.priority ? ` [${t.priority}]` : "";
|
|
212
|
+
return `${icon} ${t.title}${priority}`;
|
|
213
|
+
}).join("\n");
|
|
214
|
+
}
|
|
215
|
+
export function formatTaskOutputSaved(taskTitle, status) {
|
|
216
|
+
const icon = status === "success" ? "✅" : status === "partial" ? "⚠️" : "❌";
|
|
217
|
+
return `${icon} Output saved: **${taskTitle}** (${status})`;
|
|
218
|
+
}
|
|
219
|
+
export function formatContextSummary(ctx) {
|
|
220
|
+
const lines = [
|
|
221
|
+
`📁 **${ctx.projectName}**`,
|
|
222
|
+
` Plans: ${ctx.activePlans} active, ${ctx.completedPlans} completed (${ctx.totalPlans} total)`,
|
|
223
|
+
];
|
|
224
|
+
if (ctx.currentPlan) {
|
|
225
|
+
lines.push(` Current: ${ctx.currentPlan}`);
|
|
226
|
+
if (ctx.currentStaging) {
|
|
227
|
+
lines.push(` Staging: ${ctx.currentStaging}`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return lines.join("\n");
|
|
231
|
+
}
|
|
232
|
+
// ============ Plan formatters ============
|
|
233
|
+
export function formatPlanSync(title, status, stagingsSummary) {
|
|
234
|
+
const icon = getStatusIcon(status);
|
|
235
|
+
return `${icon} **${title}** synced → ${status}\n${stagingsSummary}`;
|
|
236
|
+
}
|
|
237
|
+
export function formatPlanArchived(title) {
|
|
238
|
+
return `📦 Plan archived: **${title}**`;
|
|
239
|
+
}
|
|
240
|
+
export function formatPlanCancelled(title) {
|
|
241
|
+
return `❌ Plan cancelled: **${title}**`;
|
|
242
|
+
}
|
|
243
|
+
export function formatPlanUnarchived(title) {
|
|
244
|
+
return `📂 Plan restored: **${title}**`;
|
|
245
|
+
}
|
|
246
|
+
// ============ Decision formatter ============
|
|
247
|
+
export function formatDecisionAdded(title) {
|
|
248
|
+
return `📋 Decision recorded: **${title}**`;
|
|
249
|
+
}
|
|
250
|
+
// ============ Memory formatters ============
|
|
251
|
+
export function formatMemoryAdded(title, category) {
|
|
252
|
+
return `💾 Memory added: **${title}** [${category}]`;
|
|
253
|
+
}
|
|
254
|
+
export function formatMemoryUpdated(title) {
|
|
255
|
+
return `✏️ Memory updated: **${title}**`;
|
|
256
|
+
}
|
|
257
|
+
export function formatMemoryRemoved(title) {
|
|
258
|
+
return `🗑️ Memory removed: **${title}**`;
|
|
259
|
+
}
|
|
260
|
+
// ============ Summary formatter ============
|
|
261
|
+
export function formatSummaryGenerated() {
|
|
262
|
+
return `📄 Project summary generated/updated`;
|
|
263
|
+
}
|
|
264
|
+
// ============ File formatters ============
|
|
265
|
+
export function formatFileRead(path, size) {
|
|
266
|
+
return `📖 Read: ${path} (${formatSize(size)})`;
|
|
267
|
+
}
|
|
268
|
+
export function formatFileWritten(path) {
|
|
269
|
+
return `📝 Written: ${path}`;
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"}
|