@indahash/n8n-nodes-idh-argus-execute 0.1.20 → 0.1.22
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/nodes/IdhArgusSendApi/IdhArgusSendApi.node.js +76 -60
- package/dist/nodes/IdhArgusSendApi/IdhArgusSendApi.node.js.map +1 -1
- package/dist/nodes/IdhArgusSendApi/idh-argus-send-api +8 -2
- package/dist/nodes/IdhArgusSendCli/IdhArgusSendCli.node.js +76 -60
- package/dist/nodes/IdhArgusSendCli/IdhArgusSendCli.node.js.map +1 -1
- package/dist/nodes/IdhArgusSendCli/idh-argus-send-cli +8 -2
- package/dist/nodes/shared/execScript.d.ts +1 -5
- package/dist/nodes/shared/execScript.js +4 -7
- package/dist/nodes/shared/execScript.js.map +1 -1
- package/dist/nodes/shared/parseOpenCodeJson.d.ts +7 -0
- package/dist/nodes/shared/parseOpenCodeJson.js +129 -0
- package/dist/nodes/shared/parseOpenCodeJson.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/nodes/shared/markdownStream.d.ts +0 -8
- package/dist/nodes/shared/markdownStream.js +0 -48
- package/dist/nodes/shared/markdownStream.js.map +0 -1
|
@@ -37,7 +37,7 @@ exports.IdhArgusSendApi = void 0;
|
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
38
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
39
39
|
const execScript_1 = require("../shared/execScript");
|
|
40
|
-
const
|
|
40
|
+
const parseOpenCodeJson_1 = require("../shared/parseOpenCodeJson");
|
|
41
41
|
class IdhArgusSendApi {
|
|
42
42
|
constructor() {
|
|
43
43
|
this.description = {
|
|
@@ -120,38 +120,47 @@ class IdhArgusSendApi {
|
|
|
120
120
|
default: 'docker.idh.cloud/ai/idh-argus:latest',
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
|
-
displayName: '
|
|
124
|
-
name: '
|
|
125
|
-
type: '
|
|
126
|
-
default: {},
|
|
127
|
-
placeholder: 'Add Option',
|
|
123
|
+
displayName: 'agent',
|
|
124
|
+
name: 'agent',
|
|
125
|
+
type: 'options',
|
|
128
126
|
options: [
|
|
129
|
-
{
|
|
130
|
-
|
|
131
|
-
name: 'enableStreaming',
|
|
132
|
-
type: 'boolean',
|
|
133
|
-
default: true,
|
|
134
|
-
description: 'Whether this node will stream the response in real-time',
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
displayName: 'Thinking',
|
|
138
|
-
name: 'thinking',
|
|
139
|
-
type: 'boolean',
|
|
140
|
-
default: false,
|
|
141
|
-
description: 'Whether to enable extended thinking mode in OpenCode',
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
displayName: 'Format',
|
|
145
|
-
name: 'format',
|
|
146
|
-
type: 'options',
|
|
147
|
-
options: [
|
|
148
|
-
{ name: 'Default', value: 'default' },
|
|
149
|
-
{ name: 'JSON', value: 'json' },
|
|
150
|
-
],
|
|
151
|
-
default: 'default',
|
|
152
|
-
description: 'Output format for OpenCode',
|
|
153
|
-
},
|
|
127
|
+
{ name: 'Build', value: 'build' },
|
|
128
|
+
{ name: 'Plan', value: 'plan' },
|
|
154
129
|
],
|
|
130
|
+
default: 'build',
|
|
131
|
+
description: 'OpenCode agent to use',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
displayName: 'format',
|
|
135
|
+
name: 'format',
|
|
136
|
+
type: 'options',
|
|
137
|
+
options: [
|
|
138
|
+
{ name: 'Default', value: 'default' },
|
|
139
|
+
{ name: 'JSON', value: 'json' },
|
|
140
|
+
],
|
|
141
|
+
default: 'default',
|
|
142
|
+
description: 'Output format for OpenCode',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
displayName: 'Enable Streaming',
|
|
146
|
+
name: 'enableStreaming',
|
|
147
|
+
type: 'boolean',
|
|
148
|
+
default: true,
|
|
149
|
+
description: 'Whether this node will stream the response in real-time',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
displayName: 'Thinking',
|
|
153
|
+
name: 'thinking',
|
|
154
|
+
type: 'boolean',
|
|
155
|
+
default: false,
|
|
156
|
+
description: 'Whether to enable extended thinking mode in OpenCode',
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
displayName: 'Parse Response',
|
|
160
|
+
name: 'parseResponse',
|
|
161
|
+
type: 'boolean',
|
|
162
|
+
default: false,
|
|
163
|
+
description: 'Whether to parse JSON output from OpenCode and format it as readable markdown. Only applies when Format is set to JSON.',
|
|
155
164
|
},
|
|
156
165
|
],
|
|
157
166
|
};
|
|
@@ -159,15 +168,31 @@ class IdhArgusSendApi {
|
|
|
159
168
|
async execute() {
|
|
160
169
|
const items = this.getInputData();
|
|
161
170
|
const returnItems = [];
|
|
162
|
-
const enableStreaming = this.getNodeParameter('
|
|
171
|
+
const enableStreaming = this.getNodeParameter('enableStreaming', 0, true);
|
|
163
172
|
const isStreamingAvailable = this.isStreaming();
|
|
164
173
|
this.logger.info(`[IdhArgusSendApi] enableStreaming=${enableStreaming} isStreaming=${isStreamingAvailable}`);
|
|
165
174
|
for (let i = 0; i < items.length; i++) {
|
|
166
175
|
const streaming = enableStreaming && isStreamingAvailable;
|
|
167
|
-
const
|
|
176
|
+
const format = this.getNodeParameter('format', i, 'default');
|
|
177
|
+
const parseResponse = this.getNodeParameter('parseResponse', i, false);
|
|
178
|
+
const shouldParse = parseResponse && format === 'json';
|
|
168
179
|
try {
|
|
169
180
|
if (streaming)
|
|
170
181
|
this.sendChunk('begin', i);
|
|
182
|
+
let onData;
|
|
183
|
+
const parseState = shouldParse ? (0, parseOpenCodeJson_1.createParseState)() : null;
|
|
184
|
+
if (streaming) {
|
|
185
|
+
onData = (chunk) => {
|
|
186
|
+
if (parseState) {
|
|
187
|
+
const md = (0, parseOpenCodeJson_1.processChunk)(chunk, parseState);
|
|
188
|
+
if (md)
|
|
189
|
+
this.sendChunk('item', i, md);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
this.sendChunk('item', i, chunk);
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
}
|
|
171
196
|
const result = await (0, execScript_1.execScript)(path.join(__dirname, 'idh-argus-send-api'), [
|
|
172
197
|
'--session-id', this.getNodeParameter('session-id', i),
|
|
173
198
|
'--model', this.getNodeParameter('model', i),
|
|
@@ -177,36 +202,27 @@ class IdhArgusSendApi {
|
|
|
177
202
|
'--indahash-base-url', this.getNodeParameter('indahash-base-url', i),
|
|
178
203
|
'--docker-api-url', this.getNodeParameter('docker-api-url', i),
|
|
179
204
|
'--image', this.getNodeParameter('image', i),
|
|
180
|
-
'--thinking', String(this.getNodeParameter('
|
|
181
|
-
'--format',
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
const markdownChunk = streamFormatter.stderr(chunk);
|
|
191
|
-
if (markdownChunk)
|
|
192
|
-
this.sendChunk('item', i, markdownChunk);
|
|
193
|
-
},
|
|
194
|
-
}
|
|
195
|
-
: undefined);
|
|
196
|
-
if (streaming) {
|
|
197
|
-
const finalChunk = streamFormatter.end();
|
|
198
|
-
if (finalChunk)
|
|
199
|
-
this.sendChunk('item', i, finalChunk);
|
|
205
|
+
'--thinking', String(this.getNodeParameter('thinking', i, false)),
|
|
206
|
+
'--format', format,
|
|
207
|
+
'--agent', this.getNodeParameter('agent', i, 'build'),
|
|
208
|
+
], this.getNodeParameter('message', i), onData);
|
|
209
|
+
if (streaming && parseState) {
|
|
210
|
+
const tail = (0, parseOpenCodeJson_1.flushBuffer)(parseState);
|
|
211
|
+
if (tail)
|
|
212
|
+
this.sendChunk('item', i, tail);
|
|
213
|
+
}
|
|
214
|
+
if (streaming)
|
|
200
215
|
this.sendChunk('end', i);
|
|
216
|
+
const json = {
|
|
217
|
+
exitCode: result.exitCode,
|
|
218
|
+
stdout: result.stdout,
|
|
219
|
+
stderr: result.stderr,
|
|
220
|
+
};
|
|
221
|
+
if (shouldParse && !streaming) {
|
|
222
|
+
json.parsedOutput = (0, parseOpenCodeJson_1.parseFullOutput)(result.stdout);
|
|
201
223
|
}
|
|
202
|
-
const stderrMarkdown = (0, markdownStream_1.toMarkdownCodeBlock)(result.stderr);
|
|
203
224
|
returnItems.push({
|
|
204
|
-
json
|
|
205
|
-
exitCode: result.exitCode,
|
|
206
|
-
stdout: result.stdout,
|
|
207
|
-
stderr: stderrMarkdown,
|
|
208
|
-
stderrRaw: result.stderr,
|
|
209
|
-
},
|
|
225
|
+
json,
|
|
210
226
|
pairedItem: { item: i },
|
|
211
227
|
});
|
|
212
228
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdhArgusSendApi.node.js","sourceRoot":"","sources":["../../../nodes/IdhArgusSendApi/IdhArgusSendApi.node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;
|
|
1
|
+
{"version":3,"file":"IdhArgusSendApi.node.js","sourceRoot":"","sources":["../../../nodes/IdhArgusSendApi/IdhArgusSendApi.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ INDAHASH_WORKSPACE_UUID=""
|
|
|
16
16
|
INDAHASH_BASE_URL=""
|
|
17
17
|
THINKING="false"
|
|
18
18
|
FORMAT="default"
|
|
19
|
+
AGENT="build"
|
|
19
20
|
|
|
20
21
|
while [ "$#" -gt 0 ]; do
|
|
21
22
|
case "$1" in
|
|
@@ -59,6 +60,10 @@ while [ "$#" -gt 0 ]; do
|
|
|
59
60
|
FORMAT="${2:?missing value for --format}"
|
|
60
61
|
shift 2
|
|
61
62
|
;;
|
|
63
|
+
--agent)
|
|
64
|
+
AGENT="${2:?missing value for --agent}"
|
|
65
|
+
shift 2
|
|
66
|
+
;;
|
|
62
67
|
--help|-h)
|
|
63
68
|
cat <<'EOF'
|
|
64
69
|
Usage:
|
|
@@ -72,7 +77,8 @@ Usage:
|
|
|
72
77
|
--docker-api-url DOCKER_API_URL \
|
|
73
78
|
[--image IMAGE] \
|
|
74
79
|
[--thinking BOOL] \
|
|
75
|
-
[--format STRING]
|
|
80
|
+
[--format STRING] \
|
|
81
|
+
[--agent STRING]
|
|
76
82
|
EOF
|
|
77
83
|
exit 0
|
|
78
84
|
;;
|
|
@@ -123,7 +129,7 @@ CONTAINER="idh-argus-session-${SAFE_SESSION_ID}"
|
|
|
123
129
|
CONTAINER_URL="$DOCKER_API_URL/containers/$CONTAINER"
|
|
124
130
|
|
|
125
131
|
# Check if container exists, create if needed, validate immutable env vars, then stream
|
|
126
|
-
{ printf '%s\n%s\n%s\n%s\n' "$OPENROUTER_API_KEY" "$MODEL" "$THINKING" "$FORMAT"; cat; } | \
|
|
132
|
+
{ printf '%s\n%s\n%s\n%s\n%s\n' "$OPENROUTER_API_KEY" "$MODEL" "$THINKING" "$FORMAT" "$AGENT"; cat; } | \
|
|
127
133
|
node -e "
|
|
128
134
|
const http = require('http');
|
|
129
135
|
const https = require('https');
|
|
@@ -37,7 +37,7 @@ exports.IdhArgusSendCli = void 0;
|
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
38
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
39
39
|
const execScript_1 = require("../shared/execScript");
|
|
40
|
-
const
|
|
40
|
+
const parseOpenCodeJson_1 = require("../shared/parseOpenCodeJson");
|
|
41
41
|
class IdhArgusSendCli {
|
|
42
42
|
constructor() {
|
|
43
43
|
this.description = {
|
|
@@ -113,38 +113,47 @@ class IdhArgusSendCli {
|
|
|
113
113
|
default: 'docker.idh.cloud/ai/idh-argus:latest',
|
|
114
114
|
},
|
|
115
115
|
{
|
|
116
|
-
displayName: '
|
|
117
|
-
name: '
|
|
118
|
-
type: '
|
|
119
|
-
default: {},
|
|
120
|
-
placeholder: 'Add Option',
|
|
116
|
+
displayName: 'agent',
|
|
117
|
+
name: 'agent',
|
|
118
|
+
type: 'options',
|
|
121
119
|
options: [
|
|
122
|
-
{
|
|
123
|
-
|
|
124
|
-
name: 'enableStreaming',
|
|
125
|
-
type: 'boolean',
|
|
126
|
-
default: true,
|
|
127
|
-
description: 'Whether this node will stream the response in real-time',
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
displayName: 'Thinking',
|
|
131
|
-
name: 'thinking',
|
|
132
|
-
type: 'boolean',
|
|
133
|
-
default: false,
|
|
134
|
-
description: 'Whether to enable extended thinking mode in OpenCode',
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
displayName: 'Format',
|
|
138
|
-
name: 'format',
|
|
139
|
-
type: 'options',
|
|
140
|
-
options: [
|
|
141
|
-
{ name: 'Default', value: 'default' },
|
|
142
|
-
{ name: 'JSON', value: 'json' },
|
|
143
|
-
],
|
|
144
|
-
default: 'default',
|
|
145
|
-
description: 'Output format for OpenCode',
|
|
146
|
-
},
|
|
120
|
+
{ name: 'Build', value: 'build' },
|
|
121
|
+
{ name: 'Plan', value: 'plan' },
|
|
147
122
|
],
|
|
123
|
+
default: 'build',
|
|
124
|
+
description: 'OpenCode agent to use',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
displayName: 'format',
|
|
128
|
+
name: 'format',
|
|
129
|
+
type: 'options',
|
|
130
|
+
options: [
|
|
131
|
+
{ name: 'Default', value: 'default' },
|
|
132
|
+
{ name: 'JSON', value: 'json' },
|
|
133
|
+
],
|
|
134
|
+
default: 'default',
|
|
135
|
+
description: 'Output format for OpenCode',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
displayName: 'Enable Streaming',
|
|
139
|
+
name: 'enableStreaming',
|
|
140
|
+
type: 'boolean',
|
|
141
|
+
default: true,
|
|
142
|
+
description: 'Whether this node will stream the response in real-time',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
displayName: 'Thinking',
|
|
146
|
+
name: 'thinking',
|
|
147
|
+
type: 'boolean',
|
|
148
|
+
default: false,
|
|
149
|
+
description: 'Whether to enable extended thinking mode in OpenCode',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
displayName: 'Parse Response',
|
|
153
|
+
name: 'parseResponse',
|
|
154
|
+
type: 'boolean',
|
|
155
|
+
default: false,
|
|
156
|
+
description: 'Whether to parse JSON output from OpenCode and format it as readable markdown. Only applies when Format is set to JSON.',
|
|
148
157
|
},
|
|
149
158
|
],
|
|
150
159
|
};
|
|
@@ -152,13 +161,29 @@ class IdhArgusSendCli {
|
|
|
152
161
|
async execute() {
|
|
153
162
|
const items = this.getInputData();
|
|
154
163
|
const returnItems = [];
|
|
155
|
-
const enableStreaming = this.getNodeParameter('
|
|
164
|
+
const enableStreaming = this.getNodeParameter('enableStreaming', 0, true);
|
|
156
165
|
for (let i = 0; i < items.length; i++) {
|
|
157
166
|
const streaming = enableStreaming && this.isStreaming();
|
|
158
|
-
const
|
|
167
|
+
const format = this.getNodeParameter('format', i, 'default');
|
|
168
|
+
const parseResponse = this.getNodeParameter('parseResponse', i, false);
|
|
169
|
+
const shouldParse = parseResponse && format === 'json';
|
|
159
170
|
try {
|
|
160
171
|
if (streaming)
|
|
161
172
|
this.sendChunk('begin', i);
|
|
173
|
+
let onData;
|
|
174
|
+
const parseState = shouldParse ? (0, parseOpenCodeJson_1.createParseState)() : null;
|
|
175
|
+
if (streaming) {
|
|
176
|
+
onData = (chunk) => {
|
|
177
|
+
if (parseState) {
|
|
178
|
+
const md = (0, parseOpenCodeJson_1.processChunk)(chunk, parseState);
|
|
179
|
+
if (md)
|
|
180
|
+
this.sendChunk('item', i, md);
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
this.sendChunk('item', i, chunk);
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
}
|
|
162
187
|
const result = await (0, execScript_1.execScript)(path.join(__dirname, 'idh-argus-send-cli'), [
|
|
163
188
|
'--session-id', this.getNodeParameter('session-id', i),
|
|
164
189
|
'--model', this.getNodeParameter('model', i),
|
|
@@ -167,36 +192,27 @@ class IdhArgusSendCli {
|
|
|
167
192
|
'--indahash-workspace-uuid', this.getNodeParameter('indahash-workspace-uuid', i),
|
|
168
193
|
'--indahash-base-url', this.getNodeParameter('indahash-base-url', i),
|
|
169
194
|
'--image', this.getNodeParameter('image', i),
|
|
170
|
-
'--thinking', String(this.getNodeParameter('
|
|
171
|
-
'--format',
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
const markdownChunk = streamFormatter.stderr(chunk);
|
|
181
|
-
if (markdownChunk)
|
|
182
|
-
this.sendChunk('item', i, markdownChunk);
|
|
183
|
-
},
|
|
184
|
-
}
|
|
185
|
-
: undefined);
|
|
186
|
-
if (streaming) {
|
|
187
|
-
const finalChunk = streamFormatter.end();
|
|
188
|
-
if (finalChunk)
|
|
189
|
-
this.sendChunk('item', i, finalChunk);
|
|
195
|
+
'--thinking', String(this.getNodeParameter('thinking', i, false)),
|
|
196
|
+
'--format', format,
|
|
197
|
+
'--agent', this.getNodeParameter('agent', i, 'build'),
|
|
198
|
+
], this.getNodeParameter('message', i), onData);
|
|
199
|
+
if (streaming && parseState) {
|
|
200
|
+
const tail = (0, parseOpenCodeJson_1.flushBuffer)(parseState);
|
|
201
|
+
if (tail)
|
|
202
|
+
this.sendChunk('item', i, tail);
|
|
203
|
+
}
|
|
204
|
+
if (streaming)
|
|
190
205
|
this.sendChunk('end', i);
|
|
206
|
+
const json = {
|
|
207
|
+
exitCode: result.exitCode,
|
|
208
|
+
stdout: result.stdout,
|
|
209
|
+
stderr: result.stderr,
|
|
210
|
+
};
|
|
211
|
+
if (shouldParse && !streaming) {
|
|
212
|
+
json.parsedOutput = (0, parseOpenCodeJson_1.parseFullOutput)(result.stdout);
|
|
191
213
|
}
|
|
192
|
-
const stderrMarkdown = (0, markdownStream_1.toMarkdownCodeBlock)(result.stderr);
|
|
193
214
|
returnItems.push({
|
|
194
|
-
json
|
|
195
|
-
exitCode: result.exitCode,
|
|
196
|
-
stdout: result.stdout,
|
|
197
|
-
stderr: stderrMarkdown,
|
|
198
|
-
stderrRaw: result.stderr,
|
|
199
|
-
},
|
|
215
|
+
json,
|
|
200
216
|
pairedItem: { item: i },
|
|
201
217
|
});
|
|
202
218
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdhArgusSendCli.node.js","sourceRoot":"","sources":["../../../nodes/IdhArgusSendCli/IdhArgusSendCli.node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;
|
|
1
|
+
{"version":3,"file":"IdhArgusSendCli.node.js","sourceRoot":"","sources":["../../../nodes/IdhArgusSendCli/IdhArgusSendCli.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ INDAHASH_WORKSPACE_UUID=""
|
|
|
10
10
|
INDAHASH_BASE_URL=""
|
|
11
11
|
THINKING="false"
|
|
12
12
|
FORMAT="default"
|
|
13
|
+
AGENT="build"
|
|
13
14
|
|
|
14
15
|
while [ "$#" -gt 0 ]; do
|
|
15
16
|
case "$1" in
|
|
@@ -49,6 +50,10 @@ while [ "$#" -gt 0 ]; do
|
|
|
49
50
|
FORMAT="${2:?missing value for --format}"
|
|
50
51
|
shift 2
|
|
51
52
|
;;
|
|
53
|
+
--agent)
|
|
54
|
+
AGENT="${2:?missing value for --agent}"
|
|
55
|
+
shift 2
|
|
56
|
+
;;
|
|
52
57
|
--help|-h)
|
|
53
58
|
cat <<'EOF'
|
|
54
59
|
Usage:
|
|
@@ -61,7 +66,8 @@ Usage:
|
|
|
61
66
|
--model MODEL \
|
|
62
67
|
[--image IMAGE] \
|
|
63
68
|
[--thinking BOOL] \
|
|
64
|
-
[--format STRING]
|
|
69
|
+
[--format STRING] \
|
|
70
|
+
[--agent STRING]
|
|
65
71
|
EOF
|
|
66
72
|
exit 0
|
|
67
73
|
;;
|
|
@@ -136,4 +142,4 @@ else
|
|
|
136
142
|
fi
|
|
137
143
|
fi
|
|
138
144
|
|
|
139
|
-
{ printf '%s\n%s\n%s\n%s\n' "$OPENROUTER_API_KEY" "$MODEL" "$THINKING" "$FORMAT"; cat; } | docker start -a -i "$CONTAINER"
|
|
145
|
+
{ printf '%s\n%s\n%s\n%s\n%s\n' "$OPENROUTER_API_KEY" "$MODEL" "$THINKING" "$FORMAT" "$AGENT"; cat; } | docker start -a -i "$CONTAINER"
|
|
@@ -3,8 +3,4 @@ export interface ScriptResult {
|
|
|
3
3
|
stdout: string;
|
|
4
4
|
stderr: string;
|
|
5
5
|
}
|
|
6
|
-
export
|
|
7
|
-
stdout?: (chunk: string) => void;
|
|
8
|
-
stderr?: (chunk: string) => void;
|
|
9
|
-
}
|
|
10
|
-
export declare function execScript(scriptPath: string, args: string[], stdinData: string, onData?: ScriptStreamHandlers): Promise<ScriptResult>;
|
|
6
|
+
export declare function execScript(scriptPath: string, args: string[], stdinData: string, onData?: (chunk: string) => void): Promise<ScriptResult>;
|
|
@@ -2,30 +2,27 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.execScript = execScript;
|
|
4
4
|
const child_process_1 = require("child_process");
|
|
5
|
-
const markdownStream_1 = require("./markdownStream");
|
|
6
5
|
function execScript(scriptPath, args, stdinData, onData) {
|
|
7
6
|
return new Promise((resolve, reject) => {
|
|
8
7
|
const proc = (0, child_process_1.spawn)('sh', [scriptPath, ...args]);
|
|
9
8
|
let stdout = '';
|
|
10
9
|
let stderr = '';
|
|
11
10
|
proc.stdout.on('data', (data) => {
|
|
12
|
-
var _a;
|
|
13
11
|
const chunk = data.toString();
|
|
14
12
|
stdout += chunk;
|
|
15
|
-
|
|
13
|
+
onData === null || onData === void 0 ? void 0 : onData(chunk);
|
|
16
14
|
});
|
|
17
15
|
proc.stderr.on('data', (data) => {
|
|
18
|
-
var _a;
|
|
19
16
|
const chunk = data.toString();
|
|
20
17
|
stderr += chunk;
|
|
21
|
-
|
|
18
|
+
onData === null || onData === void 0 ? void 0 : onData(chunk);
|
|
22
19
|
});
|
|
23
20
|
proc.on('error', reject);
|
|
24
21
|
proc.on('close', (code) => {
|
|
25
22
|
resolve({
|
|
26
23
|
exitCode: code !== null && code !== void 0 ? code : 1,
|
|
27
|
-
stdout:
|
|
28
|
-
stderr:
|
|
24
|
+
stdout: stdout.trim(),
|
|
25
|
+
stderr: stderr.trim(),
|
|
29
26
|
});
|
|
30
27
|
});
|
|
31
28
|
if (proc.stdin) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execScript.js","sourceRoot":"","sources":["../../../nodes/shared/execScript.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"execScript.js","sourceRoot":"","sources":["../../../nodes/shared/execScript.ts"],"names":[],"mappings":";;AAQA,gCAkCC;AA1CD,iDAAsC;AAQtC,SAAgB,UAAU,CAAC,UAAkB,EAAE,IAAc,EAAE,SAAiB,EAAE,MAAgC;IACjH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAEhD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC;YAChB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC;YAChB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEzB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;YACxC,OAAO,CAAC;gBACP,QAAQ,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;gBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACrB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface ParseState {
|
|
2
|
+
buffer: string;
|
|
3
|
+
}
|
|
4
|
+
export declare function createParseState(): ParseState;
|
|
5
|
+
export declare function processChunk(chunk: string, state: ParseState): string;
|
|
6
|
+
export declare function flushBuffer(state: ParseState): string;
|
|
7
|
+
export declare function parseFullOutput(output: string): string;
|