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.
- package/OPENCODE-SETUP.md +312 -0
- package/OPENCODE-TROUBLESHOOTING.md +381 -0
- package/dist/agents/index.d.ts +2 -2
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +2 -4
- package/dist/agents/index.js.map +1 -1
- package/dist/cli.js +208 -244
- package/dist/cli.js.map +1 -1
- package/dist/memory/session-memory.d.ts +80 -0
- package/dist/memory/session-memory.d.ts.map +1 -0
- package/dist/memory/session-memory.js +468 -0
- package/dist/memory/session-memory.js.map +1 -0
- package/dist/sdk/claude-agent-sdk-integration.d.ts +4 -1
- package/dist/sdk/claude-agent-sdk-integration.d.ts.map +1 -1
- package/dist/sdk/claude-agent-sdk-integration.js.map +1 -1
- package/dist/sdk/index.d.ts +2 -7
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js +2 -7
- package/dist/sdk/index.js.map +1 -1
- package/dist/snow-flow-system.d.ts +3 -7
- package/dist/snow-flow-system.d.ts.map +1 -1
- package/dist/snow-flow-system.js +59 -40
- package/dist/snow-flow-system.js.map +1 -1
- package/dist/utils/mcp-output-formatter.d.ts +128 -0
- package/dist/utils/mcp-output-formatter.d.ts.map +1 -0
- package/dist/utils/mcp-output-formatter.js +442 -0
- package/dist/utils/mcp-output-formatter.js.map +1 -0
- package/dist/utils/opencode-output-interceptor.d.ts +40 -0
- package/dist/utils/opencode-output-interceptor.d.ts.map +1 -0
- package/dist/utils/opencode-output-interceptor.js +258 -0
- package/dist/utils/opencode-output-interceptor.js.map +1 -0
- package/package.json +4 -2
- package/scripts/bulk-optimize-tools.js +486 -0
- package/scripts/cleanup-mcp-servers.js +115 -0
- package/scripts/generate-mcp-config.js +45 -0
- package/scripts/mcp-server-manager.sh +320 -0
- package/scripts/optimize-mcp-tools.ts +410 -0
- package/scripts/reset-mcp-servers.js +266 -0
- package/scripts/safe-mcp-cleanup.js +151 -0
- package/scripts/setup-mcp.js +106 -0
- package/scripts/start-mcp-proper.js +76 -0
- package/scripts/start-opencode.sh +123 -0
- package/scripts/start-sysprops-mcp.js +43 -0
- package/scripts/test-todowrite-timeout.js +108 -0
- package/scripts/update-version.js +31 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenCode Output Interceptor
|
|
4
|
+
* Captures and reformats OpenCode's output to show beautiful MCP tool execution
|
|
5
|
+
*
|
|
6
|
+
* Detects patterns like:
|
|
7
|
+
* - Shell Create incident dashboard via MCP server
|
|
8
|
+
* - MCP tool execution scripts
|
|
9
|
+
* - JSON-RPC messages
|
|
10
|
+
*
|
|
11
|
+
* And reformats them using MCPOutputFormatter for clean, structured display
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.OpenCodeOutputInterceptor = void 0;
|
|
15
|
+
exports.interceptOpenCodeOutput = interceptOpenCodeOutput;
|
|
16
|
+
const stream_1 = require("stream");
|
|
17
|
+
const mcp_output_formatter_js_1 = require("./mcp-output-formatter.js");
|
|
18
|
+
class OpenCodeOutputInterceptor extends stream_1.Transform {
|
|
19
|
+
constructor(options) {
|
|
20
|
+
super({ objectMode: false });
|
|
21
|
+
this.buffer = '';
|
|
22
|
+
this.inShellBlock = false;
|
|
23
|
+
this.inMCPExecution = false;
|
|
24
|
+
this.shellBlockLines = [];
|
|
25
|
+
this.formatter = new mcp_output_formatter_js_1.MCPOutputFormatter({ quiet: options?.quiet || false });
|
|
26
|
+
this.quiet = options?.quiet || false;
|
|
27
|
+
}
|
|
28
|
+
_transform(chunk, encoding, callback) {
|
|
29
|
+
const text = chunk.toString();
|
|
30
|
+
this.buffer += text;
|
|
31
|
+
// Process line by line
|
|
32
|
+
const lines = this.buffer.split('\n');
|
|
33
|
+
this.buffer = lines.pop() || ''; // Keep incomplete line in buffer
|
|
34
|
+
for (const line of lines) {
|
|
35
|
+
this.processLine(line + '\n');
|
|
36
|
+
}
|
|
37
|
+
callback();
|
|
38
|
+
}
|
|
39
|
+
_flush(callback) {
|
|
40
|
+
// Process any remaining buffer
|
|
41
|
+
if (this.buffer.length > 0) {
|
|
42
|
+
this.processLine(this.buffer);
|
|
43
|
+
}
|
|
44
|
+
callback();
|
|
45
|
+
}
|
|
46
|
+
processLine(line) {
|
|
47
|
+
// Detect start of shell MCP execution
|
|
48
|
+
if (line.match(/^Shell\s+(Create|Execute|Query|Update|Delete|Test|Validate)\s+.+via\s+MCP/i)) {
|
|
49
|
+
this.startMCPExecution(line);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
// Detect shell command block
|
|
53
|
+
if (line.match(/^\$\s+cat\s+>\s+\/tmp\/.*\.js\s+<<\s+'EOF'/)) {
|
|
54
|
+
this.inShellBlock = true;
|
|
55
|
+
this.shellBlockLines = [];
|
|
56
|
+
return; // Don't output this line
|
|
57
|
+
}
|
|
58
|
+
// Detect end of shell block
|
|
59
|
+
if (this.inShellBlock && line.trim() === 'EOF') {
|
|
60
|
+
this.inShellBlock = false;
|
|
61
|
+
this.handleShellBlock();
|
|
62
|
+
return; // Don't output this line
|
|
63
|
+
}
|
|
64
|
+
// Collect shell block lines
|
|
65
|
+
if (this.inShellBlock) {
|
|
66
|
+
this.shellBlockLines.push(line);
|
|
67
|
+
return; // Don't output during collection
|
|
68
|
+
}
|
|
69
|
+
// Detect MCP tool execution patterns in shell output
|
|
70
|
+
if (line.includes('tools/call') && line.includes('params')) {
|
|
71
|
+
this.extractMCPToolCall(line);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
// Detect MCP server output
|
|
75
|
+
if (line.match(/MCP (Error|Info|Debug):/i) && this.inMCPExecution) {
|
|
76
|
+
// Suppress internal MCP logs during execution
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
// Detect JSON-RPC responses
|
|
80
|
+
if (this.tryParseJSONRPC(line)) {
|
|
81
|
+
return; // Handled by JSON-RPC parser
|
|
82
|
+
}
|
|
83
|
+
// Detect success markers
|
|
84
|
+
if (line.match(/Tool result:|Result:|✓|✅|Success/i) && this.inMCPExecution) {
|
|
85
|
+
this.handleMCPSuccess(line);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// Detect error markers
|
|
89
|
+
if (line.match(/Error:|❌|Failed|Exception/i) && this.inMCPExecution) {
|
|
90
|
+
this.handleMCPError(line);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
// Pass through other lines unchanged
|
|
94
|
+
if (!this.quiet) {
|
|
95
|
+
this.push(line);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
startMCPExecution(line) {
|
|
99
|
+
this.inMCPExecution = true;
|
|
100
|
+
// Extract tool description from line like:
|
|
101
|
+
// "Shell Create incident dashboard via MCP server"
|
|
102
|
+
const match = line.match(/^Shell\s+(.+?)\s+via\s+MCP/i);
|
|
103
|
+
const description = match ? match[1] : 'MCP tool execution';
|
|
104
|
+
this.currentExecution = {
|
|
105
|
+
description,
|
|
106
|
+
startTime: Date.now(),
|
|
107
|
+
status: 'pending'
|
|
108
|
+
};
|
|
109
|
+
// Don't show the original shell line
|
|
110
|
+
}
|
|
111
|
+
handleShellBlock() {
|
|
112
|
+
// Parse the shell script to extract MCP tool details
|
|
113
|
+
const scriptContent = this.shellBlockLines.join('\n');
|
|
114
|
+
// Extract server name
|
|
115
|
+
const serverMatch = scriptContent.match(/\/([^\/]+)\/index\.js/);
|
|
116
|
+
const server = serverMatch ? serverMatch[1] : 'servicenow-unified';
|
|
117
|
+
// Extract tool call from script
|
|
118
|
+
const toolMatch = scriptContent.match(/name:\s*['"]([^'"]+)['"]/);
|
|
119
|
+
const tool = toolMatch ? toolMatch[1] : 'unknown';
|
|
120
|
+
// Extract parameters
|
|
121
|
+
let params = {};
|
|
122
|
+
const paramsMatch = scriptContent.match(/arguments:\s*({[\s\S]*?})/);
|
|
123
|
+
if (paramsMatch) {
|
|
124
|
+
try {
|
|
125
|
+
// Clean up the params string and parse
|
|
126
|
+
const paramsStr = paramsMatch[1]
|
|
127
|
+
.replace(/(['"])?([a-zA-Z0-9_]+)(['"])?\s*:/g, '"$2":') // Quote keys
|
|
128
|
+
.replace(/'/g, '"'); // Replace single quotes with double quotes
|
|
129
|
+
params = JSON.parse(paramsStr);
|
|
130
|
+
}
|
|
131
|
+
catch (e) {
|
|
132
|
+
// If parsing fails, extract key params manually
|
|
133
|
+
const lines = scriptContent.split('\n');
|
|
134
|
+
for (const line of lines) {
|
|
135
|
+
const kvMatch = line.match(/^\s*([a-zA-Z_]+):\s*['"]?([^'"]+)['"]?/);
|
|
136
|
+
if (kvMatch) {
|
|
137
|
+
params[kvMatch[1]] = kvMatch[2];
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Update current execution with details
|
|
143
|
+
if (this.currentExecution) {
|
|
144
|
+
this.currentExecution.server = server;
|
|
145
|
+
this.currentExecution.tool = tool;
|
|
146
|
+
this.currentExecution.params = params;
|
|
147
|
+
this.currentExecution.status = 'executing';
|
|
148
|
+
// Show beautiful formatted header
|
|
149
|
+
this.formatter.startToolCall({
|
|
150
|
+
server,
|
|
151
|
+
tool,
|
|
152
|
+
params,
|
|
153
|
+
description: this.currentExecution.description
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
extractMCPToolCall(line) {
|
|
158
|
+
// Try to parse JSON-RPC tool call
|
|
159
|
+
try {
|
|
160
|
+
const jsonMatch = line.match(/({.*})/);
|
|
161
|
+
if (jsonMatch) {
|
|
162
|
+
const rpc = JSON.parse(jsonMatch[1]);
|
|
163
|
+
if (rpc.method === 'tools/call' && rpc.params) {
|
|
164
|
+
if (this.currentExecution) {
|
|
165
|
+
this.currentExecution.tool = rpc.params.name;
|
|
166
|
+
this.currentExecution.params = rpc.params.arguments;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch (e) {
|
|
172
|
+
// Ignore parse errors
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
tryParseJSONRPC(line) {
|
|
176
|
+
try {
|
|
177
|
+
const trimmed = line.trim();
|
|
178
|
+
if (!trimmed.startsWith('{'))
|
|
179
|
+
return false;
|
|
180
|
+
const rpc = JSON.parse(trimmed);
|
|
181
|
+
// Handle RPC result
|
|
182
|
+
if (rpc.result && this.inMCPExecution && this.currentExecution) {
|
|
183
|
+
this.handleMCPSuccess(JSON.stringify(rpc.result, null, 2));
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
// Handle RPC error
|
|
187
|
+
if (rpc.error && this.inMCPExecution) {
|
|
188
|
+
this.handleMCPError(rpc.error.message || JSON.stringify(rpc.error));
|
|
189
|
+
return true;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
catch (e) {
|
|
193
|
+
// Not valid JSON, return false
|
|
194
|
+
}
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
handleMCPSuccess(resultLine) {
|
|
198
|
+
if (!this.currentExecution)
|
|
199
|
+
return;
|
|
200
|
+
const duration = this.currentExecution.startTime
|
|
201
|
+
? (Date.now() - this.currentExecution.startTime) / 1000
|
|
202
|
+
: 0;
|
|
203
|
+
// Try to extract result data
|
|
204
|
+
let resultData;
|
|
205
|
+
try {
|
|
206
|
+
const jsonMatch = resultLine.match(/({[\s\S]*})/);
|
|
207
|
+
if (jsonMatch) {
|
|
208
|
+
resultData = JSON.parse(jsonMatch[1]);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (e) {
|
|
212
|
+
resultData = { message: resultLine.trim() };
|
|
213
|
+
}
|
|
214
|
+
// Show beautiful formatted result
|
|
215
|
+
this.formatter.showToolResult({
|
|
216
|
+
server: this.currentExecution.server || 'servicenow-unified',
|
|
217
|
+
tool: this.currentExecution.tool || 'unknown',
|
|
218
|
+
params: this.currentExecution.params || {},
|
|
219
|
+
description: this.currentExecution.description
|
|
220
|
+
}, {
|
|
221
|
+
success: true,
|
|
222
|
+
data: resultData,
|
|
223
|
+
executionTime: duration
|
|
224
|
+
});
|
|
225
|
+
// Reset state
|
|
226
|
+
this.inMCPExecution = false;
|
|
227
|
+
this.currentExecution = undefined;
|
|
228
|
+
}
|
|
229
|
+
handleMCPError(errorLine) {
|
|
230
|
+
if (!this.currentExecution)
|
|
231
|
+
return;
|
|
232
|
+
const duration = this.currentExecution.startTime
|
|
233
|
+
? (Date.now() - this.currentExecution.startTime) / 1000
|
|
234
|
+
: 0;
|
|
235
|
+
// Show beautiful formatted error
|
|
236
|
+
this.formatter.showToolResult({
|
|
237
|
+
server: this.currentExecution.server || 'servicenow-unified',
|
|
238
|
+
tool: this.currentExecution.tool || 'unknown',
|
|
239
|
+
params: this.currentExecution.params || {},
|
|
240
|
+
description: this.currentExecution.description
|
|
241
|
+
}, {
|
|
242
|
+
success: false,
|
|
243
|
+
error: errorLine.trim(),
|
|
244
|
+
executionTime: duration
|
|
245
|
+
});
|
|
246
|
+
// Reset state
|
|
247
|
+
this.inMCPExecution = false;
|
|
248
|
+
this.currentExecution = undefined;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
exports.OpenCodeOutputInterceptor = OpenCodeOutputInterceptor;
|
|
252
|
+
/**
|
|
253
|
+
* Convenience function to pipe OpenCode output through the interceptor
|
|
254
|
+
*/
|
|
255
|
+
function interceptOpenCodeOutput(options) {
|
|
256
|
+
return new OpenCodeOutputInterceptor(options);
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=opencode-output-interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-output-interceptor.js","sourceRoot":"","sources":["../../src/utils/opencode-output-interceptor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "snow-flow",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.4.0",
|
|
4
4
|
"description": "ServiceNow development with OpenCode - 75+ LLM providers (Claude, GPT, Gemini, Llama, Mistral, DeepSeek, Groq, Ollama) • 410 Optimized Tools • 2 MCP Servers • Native Predictive Intelligence builder • Multi-agent orchestration • Use ANY AI coding assistant",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "commonjs",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"dist/",
|
|
12
12
|
"bin/",
|
|
13
|
-
"scripts/
|
|
13
|
+
"scripts/",
|
|
14
14
|
".env.example",
|
|
15
15
|
".mcp.json.template",
|
|
16
16
|
"opencode-config.example.json",
|
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
"README.md",
|
|
19
19
|
"CLAUDE.md",
|
|
20
20
|
"THEMES.md",
|
|
21
|
+
"OPENCODE-SETUP.md",
|
|
22
|
+
"OPENCODE-TROUBLESHOOTING.md",
|
|
21
23
|
"LICENSE"
|
|
22
24
|
],
|
|
23
25
|
"scripts": {
|