@indahash/n8n-nodes-idh-argus-execute 0.1.20 → 0.1.21

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.
@@ -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 markdownStream_1 = require("../shared/markdownStream");
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: 'Options',
124
- name: 'options',
125
- type: 'collection',
126
- default: {},
127
- placeholder: 'Add Option',
123
+ displayName: 'agent',
124
+ name: 'agent',
125
+ type: 'options',
128
126
  options: [
129
- {
130
- displayName: 'Enable Streaming',
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('options.enableStreaming', 0, true);
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 streamFormatter = new markdownStream_1.MarkdownStreamFormatter();
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('options.thinking', i, false)),
181
- '--format', this.getNodeParameter('options.format', i, 'default'),
182
- ], this.getNodeParameter('message', i), streaming
183
- ? {
184
- stdout: (chunk) => {
185
- const markdownChunk = streamFormatter.stdout(chunk);
186
- if (markdownChunk)
187
- this.sendChunk('item', i, markdownChunk);
188
- },
189
- stderr: (chunk) => {
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":"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"}
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 markdownStream_1 = require("../shared/markdownStream");
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: 'Options',
117
- name: 'options',
118
- type: 'collection',
119
- default: {},
120
- placeholder: 'Add Option',
116
+ displayName: 'agent',
117
+ name: 'agent',
118
+ type: 'options',
121
119
  options: [
122
- {
123
- displayName: 'Enable Streaming',
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('options.enableStreaming', 0, true);
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 streamFormatter = new markdownStream_1.MarkdownStreamFormatter();
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('options.thinking', i, false)),
171
- '--format', this.getNodeParameter('options.format', i, 'default'),
172
- ], this.getNodeParameter('message', i), streaming
173
- ? {
174
- stdout: (chunk) => {
175
- const markdownChunk = streamFormatter.stdout(chunk);
176
- if (markdownChunk)
177
- this.sendChunk('item', i, markdownChunk);
178
- },
179
- stderr: (chunk) => {
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":"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"}
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 interface ScriptStreamHandlers {
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
- (_a = onData === null || onData === void 0 ? void 0 : onData.stdout) === null || _a === void 0 ? void 0 : _a.call(onData, chunk);
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
- (_a = onData === null || onData === void 0 ? void 0 : onData.stderr) === null || _a === void 0 ? void 0 : _a.call(onData, chunk);
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: (0, markdownStream_1.stripAnsi)(stdout).trim(),
28
- stderr: (0, markdownStream_1.stripAnsi)(stderr).trim(),
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":";;AAcA,gCAkCC;AAhDD,iDAAsC;AACtC,qDAA6C;AAa7C,SAAgB,UAAU,CAAC,UAAkB,EAAE,IAAc,EAAE,SAAiB,EAAE,MAA6B;IAC9G,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,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,uDAAG,KAAK,CAAC,CAAC;QACzB,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,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,uDAAG,KAAK,CAAC,CAAC;QACzB,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,IAAA,0BAAS,EAAC,MAAM,CAAC,CAAC,IAAI,EAAE;gBAChC,MAAM,EAAE,IAAA,0BAAS,EAAC,MAAM,CAAC,CAAC,IAAI,EAAE;aAChC,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"}
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;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createParseState = createParseState;
4
+ exports.processChunk = processChunk;
5
+ exports.flushBuffer = flushBuffer;
6
+ exports.parseFullOutput = parseFullOutput;
7
+ function createParseState() {
8
+ return { buffer: '' };
9
+ }
10
+ function toBlockquote(text) {
11
+ return text
12
+ .trim()
13
+ .split('\n')
14
+ .map((line) => `> ${line}`)
15
+ .join('\n');
16
+ }
17
+ function eventToMarkdown(event) {
18
+ var _a, _b;
19
+ const { type, part } = event;
20
+ switch (type) {
21
+ case 'text': {
22
+ const text = part === null || part === void 0 ? void 0 : part.text;
23
+ return (text === null || text === void 0 ? void 0 : text.trim()) || null;
24
+ }
25
+ case 'reasoning': {
26
+ const text = part === null || part === void 0 ? void 0 : part.text;
27
+ if (!(text === null || text === void 0 ? void 0 : text.trim()))
28
+ return null;
29
+ return `> 💭 **Thinking**\n${toBlockquote(text.trim())}`;
30
+ }
31
+ case 'tool_use': {
32
+ const name = ((_a = part === null || part === void 0 ? void 0 : part.tool) !== null && _a !== void 0 ? _a : part === null || part === void 0 ? void 0 : part.name);
33
+ const input = part === null || part === void 0 ? void 0 : part.input;
34
+ const inputStr = input
35
+ ? `\n\`\`\`json\n${JSON.stringify(input, null, 2)}\n\`\`\``
36
+ : '';
37
+ return `**🔧 Tool: \`${name !== null && name !== void 0 ? name : 'unknown'}\`**${inputStr}`;
38
+ }
39
+ case 'tool_result': {
40
+ const content = (_b = part === null || part === void 0 ? void 0 : part.content) !== null && _b !== void 0 ? _b : part === null || part === void 0 ? void 0 : part.output;
41
+ if (!content)
42
+ return null;
43
+ const contentStr = typeof content === 'string'
44
+ ? content
45
+ : JSON.stringify(content, null, 2);
46
+ return `*Tool result:*\n\`\`\`\n${contentStr}\n\`\`\``;
47
+ }
48
+ case 'step_start':
49
+ case 'step_finish':
50
+ case 'message_start':
51
+ case 'message_finish':
52
+ case 'session_start':
53
+ case 'session_finish':
54
+ return null;
55
+ default:
56
+ return null;
57
+ }
58
+ }
59
+ function parseLine(line) {
60
+ const trimmed = line.trim();
61
+ if (!trimmed)
62
+ return null;
63
+ let event;
64
+ try {
65
+ event = JSON.parse(trimmed);
66
+ }
67
+ catch {
68
+ return trimmed;
69
+ }
70
+ return eventToMarkdown(event);
71
+ }
72
+ function processChunk(chunk, state) {
73
+ var _a;
74
+ state.buffer += chunk;
75
+ const lines = state.buffer.split('\n');
76
+ state.buffer = (_a = lines.pop()) !== null && _a !== void 0 ? _a : '';
77
+ const parts = [];
78
+ for (const line of lines) {
79
+ const md = parseLine(line);
80
+ if (md)
81
+ parts.push(md);
82
+ }
83
+ return parts.join('\n\n');
84
+ }
85
+ function flushBuffer(state) {
86
+ const md = parseLine(state.buffer);
87
+ state.buffer = '';
88
+ return md !== null && md !== void 0 ? md : '';
89
+ }
90
+ function parseFullOutput(output) {
91
+ const state = createParseState();
92
+ const body = processChunk(output, state);
93
+ const tail = flushBuffer(state);
94
+ return [body, tail].filter(Boolean).join('\n\n');
95
+ }
96
+ //# sourceMappingURL=parseOpenCodeJson.js.map