snow-flow 8.3.2 → 8.4.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 (45) hide show
  1. package/OPENCODE-SETUP.md +312 -0
  2. package/OPENCODE-TROUBLESHOOTING.md +381 -0
  3. package/dist/agents/index.d.ts +2 -2
  4. package/dist/agents/index.d.ts.map +1 -1
  5. package/dist/agents/index.js +2 -4
  6. package/dist/agents/index.js.map +1 -1
  7. package/dist/cli.js +208 -244
  8. package/dist/cli.js.map +1 -1
  9. package/dist/memory/session-memory.d.ts +80 -0
  10. package/dist/memory/session-memory.d.ts.map +1 -0
  11. package/dist/memory/session-memory.js +468 -0
  12. package/dist/memory/session-memory.js.map +1 -0
  13. package/dist/sdk/claude-agent-sdk-integration.d.ts +4 -1
  14. package/dist/sdk/claude-agent-sdk-integration.d.ts.map +1 -1
  15. package/dist/sdk/claude-agent-sdk-integration.js.map +1 -1
  16. package/dist/sdk/index.d.ts +2 -7
  17. package/dist/sdk/index.d.ts.map +1 -1
  18. package/dist/sdk/index.js +2 -7
  19. package/dist/sdk/index.js.map +1 -1
  20. package/dist/snow-flow-system.d.ts +3 -7
  21. package/dist/snow-flow-system.d.ts.map +1 -1
  22. package/dist/snow-flow-system.js +59 -40
  23. package/dist/snow-flow-system.js.map +1 -1
  24. package/dist/utils/mcp-output-formatter.d.ts +128 -0
  25. package/dist/utils/mcp-output-formatter.d.ts.map +1 -0
  26. package/dist/utils/mcp-output-formatter.js +442 -0
  27. package/dist/utils/mcp-output-formatter.js.map +1 -0
  28. package/dist/utils/opencode-output-interceptor.d.ts +40 -0
  29. package/dist/utils/opencode-output-interceptor.d.ts.map +1 -0
  30. package/dist/utils/opencode-output-interceptor.js +258 -0
  31. package/dist/utils/opencode-output-interceptor.js.map +1 -0
  32. package/package.json +4 -2
  33. package/scripts/bulk-optimize-tools.js +486 -0
  34. package/scripts/cleanup-mcp-servers.js +115 -0
  35. package/scripts/generate-mcp-config.js +45 -0
  36. package/scripts/mcp-server-manager.sh +320 -0
  37. package/scripts/optimize-mcp-tools.ts +410 -0
  38. package/scripts/reset-mcp-servers.js +266 -0
  39. package/scripts/safe-mcp-cleanup.js +151 -0
  40. package/scripts/setup-mcp.js +106 -0
  41. package/scripts/start-mcp-proper.js +76 -0
  42. package/scripts/start-opencode.sh +123 -0
  43. package/scripts/start-sysprops-mcp.js +43 -0
  44. package/scripts/test-todowrite-timeout.js +108 -0
  45. package/scripts/update-version.js +31 -0
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Output Formatter
4
+ *
5
+ * Provides beautiful, structured output for MCP tool execution
6
+ * Similar to Claude Code's clean MCP usage display
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.mcpFormatter = exports.MCPOutputFormatter = void 0;
13
+ const chalk_1 = __importDefault(require("chalk"));
14
+ const ora_1 = __importDefault(require("ora"));
15
+ /**
16
+ * Formats MCP tool execution for beautiful console output
17
+ */
18
+ class MCPOutputFormatter {
19
+ constructor(options) {
20
+ this.spinner = null;
21
+ this.startTime = 0;
22
+ this.quiet = false;
23
+ this.quiet = options?.quiet || false;
24
+ }
25
+ /**
26
+ * Show tool call start with beautiful formatting
27
+ */
28
+ startToolCall(call) {
29
+ if (this.quiet)
30
+ return;
31
+ this.startTime = Date.now();
32
+ console.log('');
33
+ console.log(chalk_1.default.blue('━'.repeat(60)));
34
+ console.log(chalk_1.default.blue.bold(' MCP Tool Execution'));
35
+ console.log(chalk_1.default.blue('━'.repeat(60)));
36
+ console.log('');
37
+ // Server info
38
+ console.log(chalk_1.default.dim(' Server: ') + chalk_1.default.cyan(call.server));
39
+ // Tool info
40
+ console.log(chalk_1.default.dim(' Tool: ') + chalk_1.default.green(call.tool));
41
+ // Description (if provided)
42
+ if (call.description) {
43
+ console.log(chalk_1.default.dim(' Action: ') + chalk_1.default.white(call.description));
44
+ }
45
+ console.log('');
46
+ // Params summary (compact, not full dump)
47
+ this.showParamsSummary(call.params);
48
+ console.log('');
49
+ }
50
+ /**
51
+ * Show execution phases with progress
52
+ */
53
+ async executeWithProgress(phases, executor) {
54
+ if (this.quiet) {
55
+ return await executor();
56
+ }
57
+ console.log(chalk_1.default.dim(' Execution Steps:'));
58
+ console.log('');
59
+ // Show all phases as pending initially
60
+ const phaseLines = [];
61
+ for (const phase of phases) {
62
+ phaseLines.push(this.formatPhase(phase));
63
+ }
64
+ // Execute with live updates
65
+ let currentPhaseIndex = 0;
66
+ const updatePhase = (index, status, message) => {
67
+ if (index < phases.length) {
68
+ phases[index].status = status;
69
+ if (message)
70
+ phases[index].message = message;
71
+ // Re-render all phases
72
+ process.stdout.write('\x1b[' + phases.length + 'A'); // Move cursor up
73
+ for (let i = 0; i < phases.length; i++) {
74
+ console.log(' ' + this.formatPhase(phases[i]));
75
+ }
76
+ }
77
+ };
78
+ try {
79
+ // Simulate phase progression (in real implementation, this would be event-driven)
80
+ updatePhase(0, 'running');
81
+ const result = await executor();
82
+ // Mark all as completed
83
+ for (let i = 0; i < phases.length; i++) {
84
+ updatePhase(i, 'completed');
85
+ }
86
+ return result;
87
+ }
88
+ catch (error) {
89
+ updatePhase(currentPhaseIndex, 'failed', error instanceof Error ? error.message : 'Unknown error');
90
+ throw error;
91
+ }
92
+ }
93
+ /**
94
+ * Show tool result with beautiful formatting
95
+ */
96
+ showToolResult(call, result) {
97
+ if (this.quiet)
98
+ return;
99
+ console.log('');
100
+ console.log(chalk_1.default.blue('━'.repeat(60)));
101
+ if (result.success) {
102
+ console.log(chalk_1.default.green.bold(' ✓ Success'));
103
+ }
104
+ else {
105
+ console.log(chalk_1.default.red.bold(' ✗ Failed'));
106
+ }
107
+ console.log(chalk_1.default.blue('━'.repeat(60)));
108
+ console.log('');
109
+ // Execution time
110
+ const duration = result.executionTime || (Date.now() - this.startTime);
111
+ console.log(chalk_1.default.dim(' Duration: ') + chalk_1.default.yellow(this.formatDuration(duration)));
112
+ console.log('');
113
+ // Result data (summarized, not full dump)
114
+ if (result.success && result.data) {
115
+ this.showResultSummary(result.data);
116
+ }
117
+ else if (result.error) {
118
+ this.showError(result.error);
119
+ }
120
+ console.log('');
121
+ }
122
+ /**
123
+ * Show compact spinner for simple operations
124
+ */
125
+ startSpinner(message) {
126
+ if (this.quiet)
127
+ return;
128
+ this.spinner = (0, ora_1.default)({
129
+ text: message,
130
+ color: 'cyan',
131
+ spinner: 'dots'
132
+ }).start();
133
+ }
134
+ /**
135
+ * Update spinner message
136
+ */
137
+ updateSpinner(message) {
138
+ if (this.spinner) {
139
+ this.spinner.text = message;
140
+ }
141
+ }
142
+ /**
143
+ * Complete spinner with success
144
+ */
145
+ succeedSpinner(message) {
146
+ if (this.spinner) {
147
+ this.spinner.succeed(message);
148
+ this.spinner = null;
149
+ }
150
+ }
151
+ /**
152
+ * Complete spinner with failure
153
+ */
154
+ failSpinner(message) {
155
+ if (this.spinner) {
156
+ this.spinner.fail(message);
157
+ this.spinner = null;
158
+ }
159
+ }
160
+ /**
161
+ * Show inline progress (for batch operations)
162
+ */
163
+ showBatchProgress(current, total, itemName) {
164
+ if (this.quiet)
165
+ return;
166
+ const percentage = Math.round((current / total) * 100);
167
+ const filled = Math.round(percentage / 2);
168
+ const empty = 50 - filled;
169
+ const bar = chalk_1.default.green('█'.repeat(filled)) + chalk_1.default.dim('░'.repeat(empty));
170
+ const info = itemName ? ` ${itemName}` : '';
171
+ process.stdout.write(`\r ${bar} ${percentage}% (${current}/${total})${info}`);
172
+ if (current === total) {
173
+ console.log(''); // New line when complete
174
+ }
175
+ }
176
+ /**
177
+ * Format execution phase for display
178
+ */
179
+ formatPhase(phase) {
180
+ let icon;
181
+ let color;
182
+ switch (phase.status) {
183
+ case 'pending':
184
+ icon = chalk_1.default.dim('○');
185
+ color = chalk_1.default.dim;
186
+ break;
187
+ case 'running':
188
+ icon = chalk_1.default.cyan('◐');
189
+ color = chalk_1.default.cyan;
190
+ break;
191
+ case 'completed':
192
+ icon = chalk_1.default.green('✓');
193
+ color = chalk_1.default.green;
194
+ break;
195
+ case 'failed':
196
+ icon = chalk_1.default.red('✗');
197
+ color = chalk_1.default.red;
198
+ break;
199
+ }
200
+ const message = phase.message ? chalk_1.default.dim(` - ${phase.message}`) : '';
201
+ const duration = phase.duration ? chalk_1.default.dim(` (${this.formatDuration(phase.duration)})`) : '';
202
+ return `${icon} ${color(phase.name)}${message}${duration}`;
203
+ }
204
+ /**
205
+ * Show compact parameters summary (not full JSON dump)
206
+ */
207
+ showParamsSummary(params) {
208
+ if (!params || Object.keys(params).length === 0) {
209
+ console.log(chalk_1.default.dim(' Parameters: (none)'));
210
+ return;
211
+ }
212
+ console.log(chalk_1.default.dim(' Parameters:'));
213
+ const keys = Object.keys(params);
214
+ const maxKeysToShow = 5;
215
+ for (let i = 0; i < Math.min(keys.length, maxKeysToShow); i++) {
216
+ const key = keys[i];
217
+ const value = params[key];
218
+ // Format value intelligently
219
+ let displayValue;
220
+ if (typeof value === 'string') {
221
+ displayValue = value.length > 50
222
+ ? chalk_1.default.white(value.substring(0, 50) + '...')
223
+ : chalk_1.default.white(value);
224
+ }
225
+ else if (typeof value === 'object' && value !== null) {
226
+ const objKeys = Object.keys(value);
227
+ displayValue = chalk_1.default.dim(`{${objKeys.length} properties}`);
228
+ }
229
+ else {
230
+ displayValue = chalk_1.default.white(String(value));
231
+ }
232
+ console.log(` ${chalk_1.default.cyan(key)}: ${displayValue}`);
233
+ }
234
+ if (keys.length > maxKeysToShow) {
235
+ console.log(chalk_1.default.dim(` ... and ${keys.length - maxKeysToShow} more`));
236
+ }
237
+ }
238
+ /**
239
+ * Show compact result summary (not full JSON dump)
240
+ */
241
+ showResultSummary(data) {
242
+ if (!data) {
243
+ console.log(chalk_1.default.dim(' Result: (empty)'));
244
+ return;
245
+ }
246
+ // Handle common result types
247
+ if (data.sys_id) {
248
+ console.log(chalk_1.default.dim(' Record Created:'));
249
+ console.log(` ${chalk_1.default.cyan('sys_id')}: ${chalk_1.default.white(data.sys_id)}`);
250
+ if (data.number) {
251
+ console.log(` ${chalk_1.default.cyan('number')}: ${chalk_1.default.white(data.number)}`);
252
+ }
253
+ if (data.name) {
254
+ console.log(` ${chalk_1.default.cyan('name')}: ${chalk_1.default.white(data.name)}`);
255
+ }
256
+ }
257
+ else if (Array.isArray(data)) {
258
+ console.log(chalk_1.default.dim(` Result: `));
259
+ console.log(` ${chalk_1.default.green('✓')} ${data.length} item(s) returned`);
260
+ if (data.length > 0 && data.length <= 3) {
261
+ data.forEach((item, i) => {
262
+ const summary = this.summarizeItem(item);
263
+ console.log(` ${i + 1}. ${summary}`);
264
+ });
265
+ }
266
+ }
267
+ else if (typeof data === 'object') {
268
+ console.log(chalk_1.default.dim(' Result:'));
269
+ const keys = Object.keys(data);
270
+ const maxKeysToShow = 5;
271
+ for (let i = 0; i < Math.min(keys.length, maxKeysToShow); i++) {
272
+ const key = keys[i];
273
+ const value = this.formatValue(data[key]);
274
+ console.log(` ${chalk_1.default.cyan(key)}: ${value}`);
275
+ }
276
+ if (keys.length > maxKeysToShow) {
277
+ console.log(chalk_1.default.dim(` ... and ${keys.length - maxKeysToShow} more`));
278
+ }
279
+ }
280
+ else {
281
+ console.log(chalk_1.default.dim(' Result: ') + chalk_1.default.white(String(data)));
282
+ }
283
+ }
284
+ /**
285
+ * Show error with formatting
286
+ */
287
+ showError(error) {
288
+ console.log(chalk_1.default.red.bold(' Error:'));
289
+ console.log('');
290
+ // Split error into lines and indent
291
+ const lines = error.split('\n');
292
+ lines.forEach(line => {
293
+ console.log(` ${chalk_1.default.red(line)}`);
294
+ });
295
+ }
296
+ /**
297
+ * Format duration in human-readable form
298
+ */
299
+ formatDuration(ms) {
300
+ if (ms < 1000) {
301
+ return `${ms}ms`;
302
+ }
303
+ else if (ms < 60000) {
304
+ return `${(ms / 1000).toFixed(1)}s`;
305
+ }
306
+ else {
307
+ const minutes = Math.floor(ms / 60000);
308
+ const seconds = Math.floor((ms % 60000) / 1000);
309
+ return `${minutes}m ${seconds}s`;
310
+ }
311
+ }
312
+ /**
313
+ * Summarize an item for display
314
+ */
315
+ summarizeItem(item) {
316
+ if (typeof item === 'string') {
317
+ return item.length > 50 ? item.substring(0, 50) + '...' : item;
318
+ }
319
+ if (typeof item === 'object' && item !== null) {
320
+ if (item.name) {
321
+ return chalk_1.default.white(item.name) + (item.sys_id ? chalk_1.default.dim(` (${item.sys_id.substring(0, 8)}...)`) : '');
322
+ }
323
+ if (item.number) {
324
+ return chalk_1.default.white(item.number);
325
+ }
326
+ return chalk_1.default.dim(`{${Object.keys(item).length} properties}`);
327
+ }
328
+ return String(item);
329
+ }
330
+ /**
331
+ * Format a value for display
332
+ */
333
+ formatValue(value) {
334
+ if (value === null || value === undefined) {
335
+ return chalk_1.default.dim('(empty)');
336
+ }
337
+ if (typeof value === 'string') {
338
+ return value.length > 60
339
+ ? chalk_1.default.white(value.substring(0, 60) + '...')
340
+ : chalk_1.default.white(value);
341
+ }
342
+ if (typeof value === 'boolean') {
343
+ return value ? chalk_1.default.green('true') : chalk_1.default.red('false');
344
+ }
345
+ if (typeof value === 'number') {
346
+ return chalk_1.default.yellow(String(value));
347
+ }
348
+ if (Array.isArray(value)) {
349
+ return chalk_1.default.dim(`[${value.length} items]`);
350
+ }
351
+ if (typeof value === 'object') {
352
+ return chalk_1.default.dim(`{${Object.keys(value).length} properties}`);
353
+ }
354
+ return chalk_1.default.white(String(value));
355
+ }
356
+ /**
357
+ * Clear the console (for clean slate)
358
+ */
359
+ clear() {
360
+ if (!this.quiet) {
361
+ console.clear();
362
+ }
363
+ }
364
+ /**
365
+ * Show section header
366
+ */
367
+ section(title) {
368
+ if (this.quiet)
369
+ return;
370
+ console.log('');
371
+ console.log(chalk_1.default.blue.bold(` ${title}`));
372
+ console.log(chalk_1.default.blue(' ' + '─'.repeat(title.length)));
373
+ console.log('');
374
+ }
375
+ /**
376
+ * Show info message
377
+ */
378
+ info(message) {
379
+ if (!this.quiet) {
380
+ console.log(` ${chalk_1.default.blue('ℹ')} ${message}`);
381
+ }
382
+ }
383
+ /**
384
+ * Show success message
385
+ */
386
+ success(message) {
387
+ if (!this.quiet) {
388
+ console.log(` ${chalk_1.default.green('✓')} ${message}`);
389
+ }
390
+ }
391
+ /**
392
+ * Show warning message
393
+ */
394
+ warning(message) {
395
+ if (!this.quiet) {
396
+ console.log(` ${chalk_1.default.yellow('⚠')} ${message}`);
397
+ }
398
+ }
399
+ /**
400
+ * Show error message
401
+ */
402
+ error(message) {
403
+ if (!this.quiet) {
404
+ console.log(` ${chalk_1.default.red('✗')} ${message}`);
405
+ }
406
+ }
407
+ /**
408
+ * Show table of data
409
+ */
410
+ table(headers, rows) {
411
+ if (this.quiet)
412
+ return;
413
+ // Calculate column widths
414
+ const widths = headers.map((h, i) => {
415
+ const maxContentWidth = Math.max(h.length, ...rows.map(r => (r[i] || '').length));
416
+ return Math.min(maxContentWidth, 40); // Max 40 chars per column
417
+ });
418
+ // Print header
419
+ const headerRow = headers.map((h, i) => chalk_1.default.cyan(h.padEnd(widths[i]))).join(' ');
420
+ console.log(` ${headerRow}`);
421
+ // Print separator
422
+ const separator = widths.map(w => '─'.repeat(w)).join(' ');
423
+ console.log(` ${chalk_1.default.dim(separator)}`);
424
+ // Print rows
425
+ rows.forEach(row => {
426
+ const formattedRow = row.map((cell, i) => {
427
+ const truncated = cell.length > widths[i]
428
+ ? cell.substring(0, widths[i] - 3) + '...'
429
+ : cell;
430
+ return truncated.padEnd(widths[i]);
431
+ }).join(' ');
432
+ console.log(` ${formattedRow}`);
433
+ });
434
+ console.log('');
435
+ }
436
+ }
437
+ exports.MCPOutputFormatter = MCPOutputFormatter;
438
+ /**
439
+ * Singleton instance for global use
440
+ */
441
+ exports.mcpFormatter = new MCPOutputFormatter();
442
+ //# sourceMappingURL=mcp-output-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-output-formatter.js","sourceRoot":"","sources":["../../src/utils/mcp-output-formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * OpenCode Output Interceptor
3
+ * Captures and reformats OpenCode's output to show beautiful MCP tool execution
4
+ *
5
+ * Detects patterns like:
6
+ * - Shell Create incident dashboard via MCP server
7
+ * - MCP tool execution scripts
8
+ * - JSON-RPC messages
9
+ *
10
+ * And reformats them using MCPOutputFormatter for clean, structured display
11
+ */
12
+ import { Transform } from 'stream';
13
+ export declare class OpenCodeOutputInterceptor extends Transform {
14
+ private formatter;
15
+ private buffer;
16
+ private inShellBlock;
17
+ private inMCPExecution;
18
+ private currentExecution?;
19
+ private shellBlockLines;
20
+ private quiet;
21
+ constructor(options?: {
22
+ quiet?: boolean;
23
+ });
24
+ _transform(chunk: Buffer, encoding: string, callback: Function): void;
25
+ _flush(callback: Function): void;
26
+ private processLine;
27
+ private startMCPExecution;
28
+ private handleShellBlock;
29
+ private extractMCPToolCall;
30
+ private tryParseJSONRPC;
31
+ private handleMCPSuccess;
32
+ private handleMCPError;
33
+ }
34
+ /**
35
+ * Convenience function to pipe OpenCode output through the interceptor
36
+ */
37
+ export declare function interceptOpenCodeOutput(options?: {
38
+ quiet?: boolean;
39
+ }): OpenCodeOutputInterceptor;
40
+ //# sourceMappingURL=opencode-output-interceptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-output-interceptor.d.ts","sourceRoot":"","sources":["../../src/utils/opencode-output-interceptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAYnC,qBAAa,yBAA0B,SAAQ,SAAS;IACtD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,KAAK,CAAU;gBAEX,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;IAMzC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAe9D,MAAM,CAAC,QAAQ,EAAE,QAAQ;IAQzB,OAAO,CAAC,WAAW;IA8DnB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,gBAAgB;IAmDxB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,gBAAgB;IAsCxB,OAAO,CAAC,cAAc;CA0BvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,yBAAyB,CAEhG"}