@astroanywhere/agent 0.1.16 → 0.1.18

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 (57) hide show
  1. package/dist/cli.d.ts +4 -4
  2. package/dist/cli.js +25 -59
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/index.d.ts +1 -1
  5. package/dist/commands/index.d.ts.map +1 -1
  6. package/dist/commands/index.js +1 -1
  7. package/dist/commands/index.js.map +1 -1
  8. package/dist/commands/logs.d.ts +10 -0
  9. package/dist/commands/logs.d.ts.map +1 -0
  10. package/dist/commands/logs.js +90 -0
  11. package/dist/commands/logs.js.map +1 -0
  12. package/dist/commands/setup.js +9 -2
  13. package/dist/commands/setup.js.map +1 -1
  14. package/dist/commands/start.d.ts.map +1 -1
  15. package/dist/commands/start.js +88 -4
  16. package/dist/commands/start.js.map +1 -1
  17. package/dist/commands/status.js +1 -1
  18. package/dist/commands/status.js.map +1 -1
  19. package/dist/lib/providers.d.ts.map +1 -1
  20. package/dist/lib/providers.js +195 -1
  21. package/dist/lib/providers.js.map +1 -1
  22. package/dist/lib/ssh-installer.d.ts +5 -0
  23. package/dist/lib/ssh-installer.d.ts.map +1 -1
  24. package/dist/lib/ssh-installer.js +13 -0
  25. package/dist/lib/ssh-installer.js.map +1 -1
  26. package/dist/lib/task-executor.d.ts.map +1 -1
  27. package/dist/lib/task-executor.js +11 -0
  28. package/dist/lib/task-executor.js.map +1 -1
  29. package/dist/lib/workdir-safety.js +20 -20
  30. package/dist/lib/workdir-safety.js.map +1 -1
  31. package/dist/providers/claude-code-adapter.d.ts +2 -0
  32. package/dist/providers/claude-code-adapter.d.ts.map +1 -1
  33. package/dist/providers/claude-code-adapter.js +22 -2
  34. package/dist/providers/claude-code-adapter.js.map +1 -1
  35. package/dist/providers/codex-adapter.d.ts +48 -0
  36. package/dist/providers/codex-adapter.d.ts.map +1 -1
  37. package/dist/providers/codex-adapter.js +294 -12
  38. package/dist/providers/codex-adapter.js.map +1 -1
  39. package/dist/providers/index.d.ts +2 -0
  40. package/dist/providers/index.d.ts.map +1 -1
  41. package/dist/providers/index.js +10 -0
  42. package/dist/providers/index.js.map +1 -1
  43. package/dist/providers/openclaw-adapter.d.ts +48 -0
  44. package/dist/providers/openclaw-adapter.d.ts.map +1 -0
  45. package/dist/providers/openclaw-adapter.js +324 -0
  46. package/dist/providers/openclaw-adapter.js.map +1 -0
  47. package/dist/providers/opencode-adapter.d.ts +46 -0
  48. package/dist/providers/opencode-adapter.d.ts.map +1 -0
  49. package/dist/providers/opencode-adapter.js +329 -0
  50. package/dist/providers/opencode-adapter.js.map +1 -0
  51. package/dist/types.d.ts +3 -1
  52. package/dist/types.d.ts.map +1 -1
  53. package/package.json +1 -1
  54. package/dist/commands/plan.d.ts +0 -67
  55. package/dist/commands/plan.d.ts.map +0 -1
  56. package/dist/commands/plan.js +0 -374
  57. package/dist/commands/plan.js.map +0 -1
@@ -4,6 +4,9 @@
4
4
  * Executes tasks using the Codex CLI
5
5
  */
6
6
  import { spawn } from 'node:child_process';
7
+ import { existsSync, readFileSync } from 'node:fs';
8
+ import { join } from 'node:path';
9
+ import { homedir } from 'node:os';
7
10
  import { getProvider } from '../lib/providers.js';
8
11
  export class CodexAdapter {
9
12
  type = 'codex';
@@ -12,14 +15,40 @@ export class CodexAdapter {
12
15
  maxTasks = 1;
13
16
  lastError;
14
17
  codexPath = null;
18
+ configModel = null;
19
+ /**
20
+ * Accumulated metrics from the current execution.
21
+ * Populated by handleStreamLine() as usage events arrive,
22
+ * then read by execute() when producing the final TaskResult.
23
+ */
24
+ lastResultMetrics;
25
+ turnCount = 0;
15
26
  async isAvailable() {
16
27
  const provider = await getProvider('codex');
17
28
  if (provider?.available) {
18
29
  this.codexPath = provider.path;
30
+ this.configModel = this.readConfigModel();
19
31
  return true;
20
32
  }
21
33
  return false;
22
34
  }
35
+ /**
36
+ * Read the default model from ~/.codex/config.toml
37
+ */
38
+ readConfigModel() {
39
+ try {
40
+ const configPath = join(homedir(), '.codex', 'config.toml');
41
+ if (!existsSync(configPath))
42
+ return null;
43
+ const content = readFileSync(configPath, 'utf-8');
44
+ // Simple TOML parsing for top-level model key: model = "gpt-5.3-codex"
45
+ const match = content.match(/^\s*model\s*=\s*"([^"]+)"/m);
46
+ return match?.[1] ?? null;
47
+ }
48
+ catch {
49
+ return null;
50
+ }
51
+ }
23
52
  async execute(task, stream, signal) {
24
53
  if (!this.codexPath) {
25
54
  const available = await this.isAvailable();
@@ -34,10 +63,15 @@ export class CodexAdapter {
34
63
  }
35
64
  }
36
65
  this.activeTasks++;
66
+ this.lastResultMetrics = undefined;
67
+ this.turnCount = 0;
37
68
  const startedAt = new Date().toISOString();
38
69
  try {
39
70
  stream.status('running', 0, 'Starting Codex');
40
71
  const result = await this.runCodex(task, stream, signal);
72
+ // Build metrics from accumulated stream data + result model.
73
+ // lastResultMetrics is populated by extractUsageFromEvent() during streaming.
74
+ const finalMetrics = this.buildFinalMetrics(result.model, startedAt);
41
75
  return {
42
76
  taskId: task.id,
43
77
  status: result.exitCode === 0 ? 'completed' : 'failed',
@@ -47,6 +81,7 @@ export class CodexAdapter {
47
81
  startedAt,
48
82
  completedAt: new Date().toISOString(),
49
83
  artifacts: result.artifacts,
84
+ metrics: finalMetrics,
50
85
  };
51
86
  }
52
87
  catch (error) {
@@ -87,19 +122,28 @@ export class CodexAdapter {
87
122
  runCodex(task, stream, signal) {
88
123
  return new Promise((resolve, reject) => {
89
124
  // Codex CLI: use `exec` subcommand for non-interactive execution
90
- // -a never: fully autonomous, never ask for terminal approval
91
125
  // --json: structured JSONL output for parsing
92
126
  //
93
- // Sandbox policy depends on execution context:
94
- // - docker/k8s/slurm: container/job IS the sandbox danger-full-access
95
- // - direct/local: use workspace-write for safety
96
- const isContainerized = task.executionStrategy
97
- && ['docker', 'k8s-exec', 'slurm'].includes(task.executionStrategy);
98
- const sandboxMode = isContainerized ? 'danger-full-access' : 'workspace-write';
127
+ // Sandbox policy: `-s danger-full-access` gives full filesystem + network access.
128
+ // Note: `codex exec` does NOT support `-a` (approval flag) — that's only for
129
+ // the interactive CLI. exec mode is non-interactive by default.
130
+ //
131
+ // `danger-full-access` enables network (git clone, pip install, etc.)
132
+ // which `workspace-write` (used by --full-auto) blocks.
133
+ // The task executor provides isolation at a higher level (worktree creation,
134
+ // working directory restriction).
135
+ // Codex requires --skip-git-repo-check when running outside a git repository.
136
+ // The task executor already handles git safety at a higher level (worktree creation,
137
+ // safety checks), so we can safely allow non-git directories here.
138
+ const isGitRepo = task.workingDirectory
139
+ && existsSync(join(task.workingDirectory, '.git'));
140
+ // Resolve model: task-level override > config file default
141
+ const model = task.model || this.configModel;
99
142
  const args = [
100
143
  'exec',
101
- '-a', 'never', // Fully autonomous no approval prompts
102
- '--sandbox', sandboxMode, // OS-level sandbox (relaxed if already containerized)
144
+ '-s', 'danger-full-access', // Full filesystem + network access
145
+ ...(model ? ['-m', model] : []), // Explicit model selection
146
+ ...(!isGitRepo ? ['--skip-git-repo-check'] : []),
103
147
  '--json', // JSONL output for structured parsing
104
148
  task.prompt,
105
149
  ];
@@ -108,9 +152,17 @@ export class CodexAdapter {
108
152
  ...task.environment,
109
153
  };
110
154
  let proc;
155
+ // Validate working directory exists before spawning.
156
+ // Node.js spawn throws a misleading "ENOENT" (which looks like the
157
+ // binary is missing) when the cwd doesn't exist.
158
+ if (task.workingDirectory && !existsSync(task.workingDirectory)) {
159
+ reject(new Error(`Working directory does not exist: ${task.workingDirectory}. ` +
160
+ `Ensure the directory exists on this machine before dispatching.`));
161
+ return;
162
+ }
111
163
  try {
112
164
  proc = spawn(this.codexPath, args, {
113
- cwd: task.workingDirectory,
165
+ cwd: task.workingDirectory || undefined,
114
166
  env,
115
167
  stdio: ['pipe', 'pipe', 'pipe'],
116
168
  });
@@ -121,6 +173,7 @@ export class CodexAdapter {
121
173
  }
122
174
  let stdout = '';
123
175
  let stderr = '';
176
+ let detectedModel = model || undefined;
124
177
  const artifacts = [];
125
178
  const abortHandler = () => {
126
179
  proc.kill('SIGTERM');
@@ -131,10 +184,31 @@ export class CodexAdapter {
131
184
  }, 5000);
132
185
  };
133
186
  signal.addEventListener('abort', abortHandler);
187
+ // Line buffer for incomplete JSONL lines (data chunks don't
188
+ // align with line boundaries)
189
+ let lineBuf = '';
134
190
  proc.stdout?.on('data', (data) => {
135
191
  const text = data.toString();
136
192
  stdout += text;
137
- stream.stdout(text);
193
+ // Parse JSONL lines and emit structured events
194
+ lineBuf += text;
195
+ const lines = lineBuf.split('\n');
196
+ lineBuf = lines.pop() || ''; // keep incomplete last line in buffer
197
+ for (const line of lines) {
198
+ if (line.trim()) {
199
+ this.handleStreamLine(line, stream, artifacts, detectedModel);
200
+ // Extract model from any event that has it
201
+ if (!detectedModel) {
202
+ try {
203
+ const parsed = JSON.parse(line);
204
+ if (parsed.model && typeof parsed.model === 'string') {
205
+ detectedModel = parsed.model;
206
+ }
207
+ }
208
+ catch { /* not JSON, skip */ }
209
+ }
210
+ }
211
+ }
138
212
  });
139
213
  proc.stderr?.on('data', (data) => {
140
214
  const text = data.toString();
@@ -146,14 +220,19 @@ export class CodexAdapter {
146
220
  reject(error);
147
221
  });
148
222
  proc.on('close', (code) => {
223
+ // Flush remaining buffer
224
+ if (lineBuf.trim()) {
225
+ this.handleStreamLine(lineBuf, stream, artifacts, detectedModel);
226
+ }
149
227
  signal.removeEventListener('abort', abortHandler);
150
- // Parse output for any file artifacts mentioned
228
+ // Also extract artifacts from heuristic patterns in raw output
151
229
  this.extractArtifacts(stdout, artifacts);
152
230
  resolve({
153
231
  exitCode: code ?? 1,
154
232
  output: stdout,
155
233
  error: stderr || undefined,
156
234
  artifacts: artifacts.length > 0 ? artifacts : undefined,
235
+ model: detectedModel,
157
236
  });
158
237
  });
159
238
  if (task.timeout) {
@@ -170,6 +249,209 @@ export class CodexAdapter {
170
249
  }
171
250
  });
172
251
  }
252
+ /**
253
+ * Build the final metrics object from accumulated stream data.
254
+ * Called after runCodex() completes, when this.lastResultMetrics
255
+ * has been populated by extractUsageFromEvent() during streaming.
256
+ */
257
+ buildFinalMetrics(resultModel, startedAt) {
258
+ const durationMs = Date.now() - new Date(startedAt).getTime();
259
+ const accum = this.lastResultMetrics;
260
+ const model = resultModel || accum?.model;
261
+ const metrics = {
262
+ inputTokens: accum?.inputTokens,
263
+ outputTokens: accum?.outputTokens,
264
+ totalCost: accum?.totalCost,
265
+ model,
266
+ durationMs,
267
+ numTurns: this.turnCount || accum?.numTurns,
268
+ };
269
+ // Only include metrics if we have meaningful data
270
+ const hasMetrics = model || metrics.inputTokens || metrics.outputTokens || metrics.totalCost;
271
+ return hasMetrics ? metrics : undefined;
272
+ }
273
+ /**
274
+ * Handle a single JSON line from Codex CLI's --json JSONL output.
275
+ *
276
+ * Codex JSONL event types:
277
+ * - thread.started → sessionInit (thread_id)
278
+ * - turn.started → status update, turn counter
279
+ * - turn.completed → may contain usage data
280
+ * - item.started → toolUse for command_execution
281
+ * - item.completed → text for reasoning/agent_message, toolResult for command_execution
282
+ * - response.completed → final usage summary (input_tokens, output_tokens, total_tokens)
283
+ */
284
+ handleStreamLine(line, stream, artifacts, model) {
285
+ try {
286
+ const event = JSON.parse(line);
287
+ const type = event.type;
288
+ // Extract usage from any event that carries it (OpenAI Responses API pattern).
289
+ // This catches both `response.completed` and `turn.completed` events.
290
+ this.extractUsageFromEvent(event);
291
+ switch (type) {
292
+ case 'thread.started': {
293
+ // Session init — extract thread_id and pass model
294
+ const threadId = event.thread_id;
295
+ if (threadId) {
296
+ stream.sessionInit(threadId, model);
297
+ }
298
+ break;
299
+ }
300
+ case 'turn.started': {
301
+ this.turnCount++;
302
+ stream.status('running', undefined, 'Agent thinking...');
303
+ break;
304
+ }
305
+ case 'response.completed': {
306
+ // Final response event — log fields for debugging token extraction
307
+ const eventKeys = Object.keys(event).filter(k => k !== 'type').sort();
308
+ console.log(`[codex] response.completed fields: ${eventKeys.join(', ')}`);
309
+ // Extract usage from response object if present
310
+ const response = event.response;
311
+ if (response) {
312
+ this.extractUsageFromEvent(response);
313
+ const responseKeys = Object.keys(response).sort();
314
+ console.log(`[codex] response object fields: ${responseKeys.join(', ')}`);
315
+ }
316
+ // Log accumulated metrics
317
+ if (this.lastResultMetrics) {
318
+ console.log(`[codex] Accumulated metrics: input_tokens=${this.lastResultMetrics.inputTokens}, output_tokens=${this.lastResultMetrics.outputTokens}, total_cost=${this.lastResultMetrics.totalCost}`);
319
+ }
320
+ else {
321
+ console.log(`[codex] No usage metrics found in response.completed`);
322
+ }
323
+ break;
324
+ }
325
+ case 'item.started': {
326
+ // Emit toolUse for command_execution items that are starting
327
+ const item = event.item;
328
+ if (item?.type === 'command_execution') {
329
+ const command = item.command || '';
330
+ stream.toolUse(command, { command, status: 'in_progress' });
331
+ }
332
+ break;
333
+ }
334
+ case 'item.completed': {
335
+ const item = event.item;
336
+ if (!item)
337
+ break;
338
+ const itemType = item.type;
339
+ switch (itemType) {
340
+ case 'reasoning': {
341
+ // Reasoning text — send as structured text with a marker
342
+ const text = item.text;
343
+ if (text) {
344
+ stream.text(`[thinking] ${text}\n`);
345
+ }
346
+ break;
347
+ }
348
+ case 'agent_message': {
349
+ // Agent response text
350
+ const text = item.text;
351
+ if (text) {
352
+ stream.text(text + '\n');
353
+ }
354
+ break;
355
+ }
356
+ case 'command_execution': {
357
+ // Completed command — emit toolResult
358
+ const command = item.command || '';
359
+ const output = item.aggregated_output || '';
360
+ const exitCode = item.exit_code;
361
+ const status = item.status;
362
+ const success = exitCode === 0 || status === 'completed';
363
+ stream.toolResult(command, { output, exit_code: exitCode, status }, success);
364
+ // Extract file artifacts from command output
365
+ this.extractFileArtifactsFromCommand(command, output, artifacts);
366
+ break;
367
+ }
368
+ default:
369
+ // Unknown item type — forward as raw text if it has content
370
+ if (item.text && typeof item.text === 'string') {
371
+ stream.text(item.text + '\n');
372
+ }
373
+ break;
374
+ }
375
+ break;
376
+ }
377
+ default:
378
+ // Unknown event type — skip silently
379
+ break;
380
+ }
381
+ }
382
+ catch {
383
+ // Not valid JSON — send as raw stdout
384
+ stream.stdout(line + '\n');
385
+ }
386
+ }
387
+ /**
388
+ * Extract token usage metrics from a Codex JSONL event object.
389
+ *
390
+ * Codex CLI (using the OpenAI Responses API) may include usage data in:
391
+ * - Top-level `usage` field: `{ input_tokens, output_tokens, total_tokens }`
392
+ * - Nested `response.usage` field on `response.completed` events
393
+ * - `total_cost` or `cost_usd` at the event or response level
394
+ *
395
+ * This method is called on every parsed event, accumulating the latest usage
396
+ * data into `lastResultMetrics`. Later events overwrite earlier ones, so
397
+ * `response.completed` (which appears last) provides the authoritative totals.
398
+ */
399
+ extractUsageFromEvent(event) {
400
+ // Check for usage object (OpenAI Responses API format)
401
+ const usage = event.usage;
402
+ if (usage && (usage.input_tokens != null || usage.output_tokens != null)) {
403
+ if (!this.lastResultMetrics) {
404
+ this.lastResultMetrics = {};
405
+ }
406
+ if (usage.input_tokens != null) {
407
+ this.lastResultMetrics.inputTokens = usage.input_tokens;
408
+ }
409
+ if (usage.output_tokens != null) {
410
+ this.lastResultMetrics.outputTokens = usage.output_tokens;
411
+ }
412
+ }
413
+ // Check for cost fields (may be present on response.completed or top-level)
414
+ const totalCost = (event.total_cost ?? event.total_cost_usd ?? event.cost_usd);
415
+ if (totalCost != null) {
416
+ if (!this.lastResultMetrics) {
417
+ this.lastResultMetrics = {};
418
+ }
419
+ this.lastResultMetrics.totalCost = totalCost;
420
+ }
421
+ // Check for model field
422
+ const eventModel = event.model;
423
+ if (eventModel) {
424
+ if (!this.lastResultMetrics) {
425
+ this.lastResultMetrics = {};
426
+ }
427
+ this.lastResultMetrics.model = eventModel;
428
+ }
429
+ }
430
+ /**
431
+ * Extract file artifacts from command execution output.
432
+ * Looks at both the command itself and its output for file creation/modification signals.
433
+ */
434
+ extractFileArtifactsFromCommand(command, output, artifacts) {
435
+ // Extract files from common write commands in the command string
436
+ const writeCommandPatterns = [
437
+ /cat\s*>\s*(\S+)/g, // cat > file
438
+ /tee\s+(\S+)/g, // tee file
439
+ /(?:cp|mv)\s+\S+\s+(\S+)/g, // cp/mv src dest
440
+ /mkdir\s+-p?\s*(\S+)/g, // mkdir -p dir
441
+ /touch\s+(\S+)/g, // touch file
442
+ ];
443
+ for (const pattern of writeCommandPatterns) {
444
+ let match;
445
+ while ((match = pattern.exec(command)) !== null) {
446
+ const filePath = match[1]?.trim().replace(/['"]/g, '');
447
+ if (filePath && !artifacts.some((a) => a.path === filePath)) {
448
+ artifacts.push({ type: 'file', name: filePath, path: filePath });
449
+ }
450
+ }
451
+ }
452
+ // Also check output for file creation messages
453
+ this.extractArtifacts(output, artifacts);
454
+ }
173
455
  extractArtifacts(output, artifacts) {
174
456
  // Look for common patterns indicating file creation/modification
175
457
  // This is a heuristic approach as Codex output format may vary
@@ -1 +1 @@
1
- {"version":3,"file":"codex-adapter.js","sourceRoot":"","sources":["../../src/providers/codex-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-adapter.js","sourceRoot":"","sources":["../../src/providers/codex-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAYlD,MAAM,OAAO,YAAY;IACd,IAAI,GAAG,OAAO,CAAC;IACf,IAAI,GAAG,cAAc,CAAC;IAEvB,WAAW,GAAG,CAAC,CAAC;IAChB,QAAQ,GAAG,CAAC,CAAC;IACb,SAAS,CAAU;IACnB,SAAS,GAAkB,IAAI,CAAC;IAChC,WAAW,GAAkB,IAAI,CAAC;IAE1C;;;;OAIG;IACK,iBAAiB,CAAgB;IACjC,SAAS,GAAG,CAAC,CAAC;IAEtB,KAAK,CAAC,WAAW;QACf,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzC,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAClD,uEAAuE;YACvE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC1D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAU,EAAE,MAAwB,EAAE,MAAmB;QACrE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO;oBACL,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,qBAAqB;oBAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACtC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;YAE9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAEzD,6DAA6D;YAC7D,8EAA8E;YAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAErE,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;gBACtD,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS;gBACT,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,YAAY;aACtB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAE1B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO;oBACL,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,MAAM,EAAE,WAAW;oBACnB,KAAK,EAAE,gBAAgB;oBACvB,SAAS;oBACT,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACtC,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,QAAQ;gBACf,SAAS;gBACT,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAE5C,OAAO;YACL,SAAS;YACT,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI;YAClC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAEO,QAAQ,CACd,IAAU,EACV,MAAwB,EACxB,MAAmB;QAEnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,iEAAiE;YACjE,8CAA8C;YAC9C,EAAE;YACF,kFAAkF;YAClF,6EAA6E;YAC7E,gEAAgE;YAChE,EAAE;YACF,sEAAsE;YACtE,wDAAwD;YACxD,6EAA6E;YAC7E,kCAAkC;YAElC,8EAA8E;YAC9E,qFAAqF;YACrF,mEAAmE;YACnE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB;mBAClC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;YAErD,2DAA2D;YAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC;YAE7C,MAAM,IAAI,GAAG;gBACX,MAAM;gBACN,IAAI,EAAE,oBAAoB,EAAQ,mCAAmC;gBACrE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAI,2BAA2B;gBAC9D,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,QAAQ,EAA0B,sCAAsC;gBACxE,IAAI,CAAC,MAAM;aACZ,CAAC;YAEF,MAAM,GAAG,GAAG;gBACV,GAAG,OAAO,CAAC,GAAG;gBACd,GAAG,IAAI,CAAC,WAAW;aACpB,CAAC;YAEF,IAAI,IAAkB,CAAC;YAEvB,qDAAqD;YACrD,mEAAmE;YACnE,iDAAiD;YACjD,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAChE,MAAM,CAAC,IAAI,KAAK,CACd,qCAAqC,IAAI,CAAC,gBAAgB,IAAI;oBAC9D,iEAAiE,CAClE,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAU,EAAE,IAAI,EAAE;oBAClC,GAAG,EAAE,IAAI,CAAC,gBAAgB,IAAI,SAAS;oBACvC,GAAG;oBACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;iBAChC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,aAAa,GAAuB,KAAK,IAAI,SAAS,CAAC;YAC3D,MAAM,SAAS,GAAmB,EAAE,CAAC;YAErC,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrB,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC,CAAC;YAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAE/C,4DAA4D;YAC5D,8BAA8B;YAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;YAEjB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,IAAI,IAAI,CAAC;gBAEf,+CAA+C;gBAC/C,OAAO,IAAI,IAAI,CAAC;gBAChB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,sCAAsC;gBACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;wBAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;wBAC9D,2CAA2C;wBAC3C,IAAI,CAAC,aAAa,EAAE,CAAC;4BACnB,IAAI,CAAC;gCACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gCAChC,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oCACrD,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;gCAC/B,CAAC;4BACH,CAAC;4BAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;wBAClC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM,IAAI,IAAI,CAAC;gBACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACzB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAClD,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,yBAAyB;gBACzB,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;gBACnE,CAAC;gBAED,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAElD,+DAA+D;gBAC/D,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAEzC,OAAO,CAAC;oBACN,QAAQ,EAAE,IAAI,IAAI,CAAC;oBACnB,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,MAAM,IAAI,SAAS;oBAC1B,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBACvD,KAAK,EAAE,aAAa;iBACrB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACrB,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gCACjB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACvB,CAAC;wBACH,CAAC,EAAE,IAAI,CAAC,CAAC;oBACX,CAAC;gBACH,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,WAA+B,EAAE,SAAiB;QAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACrC,MAAM,KAAK,GAAG,WAAW,IAAI,KAAK,EAAE,KAAK,CAAC;QAC1C,MAAM,OAAO,GAAiB;YAC5B,WAAW,EAAE,KAAK,EAAE,WAAW;YAC/B,YAAY,EAAE,KAAK,EAAE,YAAY;YACjC,SAAS,EAAE,KAAK,EAAE,SAAS;YAC3B,KAAK;YACL,UAAU;YACV,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK,EAAE,QAAQ;SAC5C,CAAC;QAEF,kDAAkD;QAClD,MAAM,UAAU,GAAG,KAAK,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;QAC7F,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;OAUG;IACK,gBAAgB,CACtB,IAAY,EACZ,MAAwB,EACxB,SAAyB,EACzB,KAAc;QAEd,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;YAElC,+EAA+E;YAC/E,sEAAsE;YACtE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAElC,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACtB,kDAAkD;oBAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAA+B,CAAC;oBACvD,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBACtC,CAAC;oBACD,MAAM;gBACR,CAAC;gBAED,KAAK,cAAc,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;oBACzD,MAAM;gBACR,CAAC;gBAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;oBAC1B,mEAAmE;oBACnE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;oBACtE,OAAO,CAAC,GAAG,CAAC,sCAAsC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAE1E,gDAAgD;oBAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAA+C,CAAC;oBACvE,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;wBACrC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;wBAClD,OAAO,CAAC,GAAG,CAAC,mCAAmC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5E,CAAC;oBAED,0BAA0B;oBAC1B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC3B,OAAO,CAAC,GAAG,CAAC,6CAA6C,IAAI,CAAC,iBAAiB,CAAC,WAAW,mBAAmB,IAAI,CAAC,iBAAiB,CAAC,YAAY,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;oBACvM,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;oBACtE,CAAC;oBACD,MAAM;gBACR,CAAC;gBAED,KAAK,cAAc,CAAC,CAAC,CAAC;oBACpB,6DAA6D;oBAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,IAA2C,CAAC;oBAC/D,IAAI,IAAI,EAAE,IAAI,KAAK,mBAAmB,EAAE,CAAC;wBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,IAAI,EAAE,CAAC;wBAC7C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;oBAC9D,CAAC;oBACD,MAAM;gBACR,CAAC;gBAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACtB,MAAM,IAAI,GAAG,KAAK,CAAC,IAA2C,CAAC;oBAC/D,IAAI,CAAC,IAAI;wBAAE,MAAM;oBAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAc,CAAC;oBAErC,QAAQ,QAAQ,EAAE,CAAC;wBACjB,KAAK,WAAW,CAAC,CAAC,CAAC;4BACjB,yDAAyD;4BACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;4BACjC,IAAI,IAAI,EAAE,CAAC;gCACT,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;4BACtC,CAAC;4BACD,MAAM;wBACR,CAAC;wBAED,KAAK,eAAe,CAAC,CAAC,CAAC;4BACrB,sBAAsB;4BACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;4BACjC,IAAI,IAAI,EAAE,CAAC;gCACT,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;4BAC3B,CAAC;4BACD,MAAM;wBACR,CAAC;wBAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;4BACzB,sCAAsC;4BACtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,IAAI,EAAE,CAAC;4BAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,iBAA2B,IAAI,EAAE,CAAC;4BACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAA0B,CAAC;4BACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;4BACrC,MAAM,OAAO,GAAG,QAAQ,KAAK,CAAC,IAAI,MAAM,KAAK,WAAW,CAAC;4BAEzD,MAAM,CAAC,UAAU,CACf,OAAO,EACP,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EACvC,OAAO,CACR,CAAC;4BAEF,6CAA6C;4BAC7C,IAAI,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;4BACjE,MAAM;wBACR,CAAC;wBAED;4BACE,4DAA4D;4BAC5D,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gCAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAc,GAAG,IAAI,CAAC,CAAC;4BAC1C,CAAC;4BACD,MAAM;oBACV,CAAC;oBACD,MAAM;gBACR,CAAC;gBAED;oBACE,qCAAqC;oBACrC,MAAM;YACV,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;YACtC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACK,qBAAqB,CAAC,KAA8B;QAC1D,uDAAuD;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAIP,CAAC;QAEd,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;gBAC/B,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC;YAC1D,CAAC;YACD,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;gBAChC,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,QAAQ,CAAuB,CAAC;QACrG,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/C,CAAC;QAED,wBAAwB;QACxB,MAAM,UAAU,GAAG,KAAK,CAAC,KAA2B,CAAC;QACrD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,UAAU,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,+BAA+B,CACrC,OAAe,EACf,MAAc,EACd,SAAyB;QAEzB,iEAAiE;QACjE,MAAM,oBAAoB,GAAG;YAC3B,kBAAkB,EAAmB,aAAa;YAClD,cAAc,EAAuB,WAAW;YAChD,0BAA0B,EAAU,iBAAiB;YACrD,sBAAsB,EAAc,eAAe;YACnD,gBAAgB,EAAqB,aAAa;SACnD,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACvD,IAAI,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;oBAC5D,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAEO,gBAAgB,CAAC,MAAc,EAAE,SAAyB;QAChE,iEAAiE;QACjE,+DAA+D;QAC/D,MAAM,YAAY,GAAG;YACnB,sBAAsB;YACtB,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;SACf,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;gBAClC,IAAI,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;oBAC5D,SAAS,CAAC,IAAI,CAAC;wBACb,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -5,6 +5,8 @@ export type { ProviderAdapter, TaskOutputStream, ProviderStatus } from './base-a
5
5
  export { ClaudeCodeAdapter } from './claude-code-adapter.js';
6
6
  export { ClaudeSdkAdapter } from './claude-sdk-adapter.js';
7
7
  export { CodexAdapter } from './codex-adapter.js';
8
+ export { OpenClawAdapter } from './openclaw-adapter.js';
9
+ export { OpenCodeAdapter } from './opencode-adapter.js';
8
10
  import type { ProviderType } from '../types.js';
9
11
  import type { ProviderAdapter } from './base-adapter.js';
10
12
  /** Extended provider types including SDK variant */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKzD,oDAAoD;AACpD,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,YAAY,CAAC;AAE/D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,oBAAoB,GAAG,eAAe,GAAG,IAAI,CAmBvG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,eAAe,CAE1D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAgBvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOzD,oDAAoD;AACpD,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,YAAY,CAAC;AAE/D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,oBAAoB,GAAG,eAAe,GAAG,IAAI,CAuBvG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,eAAe,CAE1D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAkBvE"}
@@ -4,9 +4,13 @@
4
4
  export { ClaudeCodeAdapter } from './claude-code-adapter.js';
5
5
  export { ClaudeSdkAdapter } from './claude-sdk-adapter.js';
6
6
  export { CodexAdapter } from './codex-adapter.js';
7
+ export { OpenClawAdapter } from './openclaw-adapter.js';
8
+ export { OpenCodeAdapter } from './opencode-adapter.js';
7
9
  import { ClaudeCodeAdapter } from './claude-code-adapter.js';
8
10
  import { ClaudeSdkAdapter } from './claude-sdk-adapter.js';
9
11
  import { CodexAdapter } from './codex-adapter.js';
12
+ import { OpenClawAdapter } from './openclaw-adapter.js';
13
+ import { OpenCodeAdapter } from './opencode-adapter.js';
10
14
  /**
11
15
  * Create a provider adapter by type.
12
16
  * For 'claude-code', prefers the SDK adapter (in-process, supports steering)
@@ -21,6 +25,10 @@ export function createProviderAdapter(type) {
21
25
  return new ClaudeSdkAdapter();
22
26
  case 'codex':
23
27
  return new CodexAdapter();
28
+ case 'openclaw':
29
+ return new OpenClawAdapter();
30
+ case 'opencode':
31
+ return new OpenCodeAdapter();
24
32
  case 'slurm':
25
33
  // Slurm is no longer a standalone provider — HPC is handled via
26
34
  // prompt injection in ClaudeSdkAdapter. Return null for backward compat.
@@ -46,6 +54,8 @@ export async function getAvailableAdapters() {
46
54
  new ClaudeSdkAdapter(), // Prefer SDK over CLI
47
55
  new ClaudeCodeAdapter(),
48
56
  new CodexAdapter(),
57
+ new OpenClawAdapter(),
58
+ new OpenCodeAdapter(),
49
59
  ];
50
60
  const available = [];
51
61
  for (const adapter of adapters) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAyC;IAC7E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,aAAa;YAChB,2DAA2D;YAC3D,OAAO,IAAI,gBAAgB,EAAE,CAAC;QAChC,KAAK,YAAY;YACf,OAAO,IAAI,gBAAgB,EAAE,CAAC;QAChC,KAAK,OAAO;YACV,OAAO,IAAI,YAAY,EAAE,CAAC;QAC5B,KAAK,OAAO;YACV,gEAAgE;YAChE,yEAAyE;YACzE,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,uDAAuD;YACvD,OAAO,IAAI,CAAC;QACd;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,IAAI,iBAAiB,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,QAAQ,GAAsB;QAClC,IAAI,gBAAgB,EAAE,EAAE,sBAAsB;QAC9C,IAAI,iBAAiB,EAAE;QACvB,IAAI,YAAY,EAAE;KACnB,CAAC;IAEF,MAAM,SAAS,GAAsB,EAAE,CAAC;IAExC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAyC;IAC7E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,aAAa;YAChB,2DAA2D;YAC3D,OAAO,IAAI,gBAAgB,EAAE,CAAC;QAChC,KAAK,YAAY;YACf,OAAO,IAAI,gBAAgB,EAAE,CAAC;QAChC,KAAK,OAAO;YACV,OAAO,IAAI,YAAY,EAAE,CAAC;QAC5B,KAAK,UAAU;YACb,OAAO,IAAI,eAAe,EAAE,CAAC;QAC/B,KAAK,UAAU;YACb,OAAO,IAAI,eAAe,EAAE,CAAC;QAC/B,KAAK,OAAO;YACV,gEAAgE;YAChE,yEAAyE;YACzE,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ;YACX,uDAAuD;YACvD,OAAO,IAAI,CAAC;QACd;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,IAAI,iBAAiB,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,QAAQ,GAAsB;QAClC,IAAI,gBAAgB,EAAE,EAAE,sBAAsB;QAC9C,IAAI,iBAAiB,EAAE;QACvB,IAAI,YAAY,EAAE;QAClB,IAAI,eAAe,EAAE;QACrB,IAAI,eAAe,EAAE;KACtB,CAAC;IAEF,MAAM,SAAS,GAAsB,EAAE,CAAC;IAExC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * OpenClaw provider adapter
3
+ *
4
+ * Executes tasks using the OpenClaw CLI in RPC/JSON streaming mode.
5
+ *
6
+ * CLI invocation:
7
+ * openclaw agent --mode rpc --json --prompt "<task>"
8
+ *
9
+ * Output: JSONL streaming to stdout with event types:
10
+ * session.start, content.text, tool_use.start, tool_use.end,
11
+ * file.change, message.start, message.end, session.end
12
+ */
13
+ import type { Task, TaskResult, TaskArtifact } from '../types.js';
14
+ import type { ProviderAdapter, TaskOutputStream, ProviderStatus } from './base-adapter.js';
15
+ export declare class OpenClawAdapter implements ProviderAdapter {
16
+ readonly type = "openclaw";
17
+ readonly name = "OpenClaw";
18
+ private activeTasks;
19
+ private maxTasks;
20
+ private lastError?;
21
+ private openclawPath;
22
+ private configModel;
23
+ isAvailable(): Promise<boolean>;
24
+ /**
25
+ * Read the default model from ~/.openclaw/config.json
26
+ */
27
+ private readConfigModel;
28
+ execute(task: Task, stream: TaskOutputStream, signal: AbortSignal): Promise<TaskResult>;
29
+ getStatus(): Promise<ProviderStatus>;
30
+ private runOpenClaw;
31
+ /**
32
+ * Handle a single JSONL line from OpenClaw's RPC output.
33
+ *
34
+ * OpenClaw JSONL event types:
35
+ * - session.start → sessionInit
36
+ * - content.text → text output
37
+ * - tool_use.start → toolUse
38
+ * - tool_use.end → toolResult
39
+ * - file.change → fileChange
40
+ * - message.start → status update (agent thinking)
41
+ * - message.end → status update (turn complete)
42
+ * - session.end → metrics extraction
43
+ *
44
+ * Returns metrics if a session.end event is processed.
45
+ */
46
+ handleStreamLine(line: string, stream: TaskOutputStream, artifacts: TaskArtifact[]): TaskResult['metrics'] | undefined;
47
+ }
48
+ //# sourceMappingURL=openclaw-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/openclaw-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG3F,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,IAAI,cAAc;IAE3B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,WAAW,CAAuB;IAEpC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAUrC;;OAEG;IACH,OAAO,CAAC,eAAe;IAYjB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA2DvF,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAa1C,OAAO,CAAC,WAAW;IAsInB;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,YAAY,EAAE,GACxB,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS;CAiGrC"}