@clemrig/flow 0.9.0 → 0.11.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.
@@ -1,5 +1,6 @@
1
- import { createHash } from "node:crypto";
2
- import { existsSync, writeFileSync } from "node:fs";
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { existsSync, readFileSync, writeFileSync } from "node:fs";
3
+ import { rename, writeFile } from "node:fs/promises";
3
4
  import { isAbsolute, join, resolve } from "node:path";
4
5
  import { z } from "zod";
5
6
  import { runtimeLabels } from "../../engine/profiles.js";
@@ -10,12 +11,78 @@ const anyEvent = z.looseObject({
10
11
  type: z.string(),
11
12
  subtype: z.unknown().optional(),
12
13
  });
14
+ /**
15
+ * The background tasks still running, whenever they change: commands (Bash and
16
+ * Monitor watches, `local_bash`), sub-agents and others; Claude Code's own are
17
+ * `ambient` (its Agent SDK reference).
18
+ */
19
+ const backgroundTasksEvent = z.looseObject({
20
+ tasks: z.array(z.looseObject({
21
+ task_type: z.string(),
22
+ ambient: z.boolean().optional(),
23
+ })),
24
+ });
25
+ /** What still runs for the agent: a task other than a command may feed its answer. */
26
+ function backgroundOf(tasks) {
27
+ const commands = tasks.filter(({ task_type }) => task_type === "local_bash").length;
28
+ return { agents: tasks.length - commands, commands };
29
+ }
13
30
  /** The session started: its tools and MCP servers confirm what the profile grants. */
14
31
  const initEvent = z.looseObject({
15
32
  session_id: z.string(),
16
33
  tools: z.array(z.string()),
17
34
  mcp_servers: z.array(z.looseObject({ name: z.string(), status: z.string() })),
18
35
  });
36
+ /** The rest of what `init` announces, kept as the session's configuration; never required. */
37
+ const initDetails = z.looseObject({
38
+ claude_code_version: z.string().optional(),
39
+ model: z.string().optional(),
40
+ permissionMode: z.string().optional(),
41
+ apiKeySource: z.string().optional(),
42
+ output_style: z.string().optional(),
43
+ plugins: z.array(z.looseObject({ name: z.string() })).optional(),
44
+ skills: z.array(z.unknown()).optional(),
45
+ agents: z.array(z.unknown()).optional(),
46
+ slash_commands: z.array(z.unknown()).optional(),
47
+ });
48
+ /** A subscription limit's state, as Claude Code reports it during a call. */
49
+ const rateLimitEvent = z.looseObject({
50
+ rate_limit_info: z.looseObject({
51
+ status: z.string(),
52
+ rateLimitType: z.string().optional(),
53
+ resetsAt: z.number().optional(),
54
+ }),
55
+ });
56
+ /** A tool the session refused, from the call's result. */
57
+ const permissionDenials = z.array(z.looseObject({ tool_name: z.string(), tool_use_id: z.unknown().optional() }));
58
+ /** A hook that ran, as `--include-hook-events` reports it; its start tells nothing more. */
59
+ const hookResponse = z.looseObject({
60
+ hook_name: z.string(),
61
+ outcome: z.string(),
62
+ exit_code: z.number().optional(),
63
+ output: z.string().optional(),
64
+ });
65
+ /** A compaction's figures, as its boundary reports them. */
66
+ const compactBoundary = z.looseObject({
67
+ compact_metadata: z
68
+ .looseObject({
69
+ trigger: z.string().optional(),
70
+ pre_tokens: z.number().optional(),
71
+ post_tokens: z.number().optional(),
72
+ duration_ms: z.number().optional(),
73
+ })
74
+ .optional(),
75
+ });
76
+ /** A request Claude Code sends again; the error's fields only explain it. */
77
+ const apiRetry = z.looseObject({
78
+ attempt: z.number(),
79
+ max_retries: z.number(),
80
+ retry_delay_ms: z.number().optional(),
81
+ error_status: z.number().nullable().optional(),
82
+ error: z.unknown().optional(),
83
+ });
84
+ /** What a tool result says when a PreToolUse hook blocked the tool (2.1.302). */
85
+ const hookBlock = /^PreToolUse:\S* hook error/;
19
86
  /** A content block; a tool use names its call and its tool, a tool result its call. */
20
87
  const contentBlock = z
21
88
  .looseObject({
@@ -24,6 +91,7 @@ const contentBlock = z
24
91
  name: z.unknown().optional(),
25
92
  tool_use_id: z.unknown().optional(),
26
93
  is_error: z.boolean().optional(),
94
+ content: z.unknown().optional(),
27
95
  })
28
96
  .superRefine((block, context) => {
29
97
  const required = block.type === "tool_use"
@@ -55,10 +123,132 @@ const resultEvent = z.looseObject({
55
123
  is_error: z.boolean(),
56
124
  result: z.unknown().optional(),
57
125
  stop_reason: z.string().nullable().optional(),
126
+ /** Why the session stopped, set on an error result whose subtype is `success`. */
127
+ terminal_reason: z.unknown().optional(),
58
128
  errors: z.unknown().optional(),
59
129
  modelUsage: z.unknown().optional(),
130
+ permission_denials: z.unknown().optional(),
60
131
  });
61
132
  const text = (value) => (typeof value === "string" ? value : "");
133
+ const seconds = (ms) => `${Math.round(ms / 100) / 10} s`;
134
+ /** A tool result's text, given as a string or as text blocks. */
135
+ const resultText = (content) => typeof content === "string"
136
+ ? content
137
+ : Array.isArray(content)
138
+ ? content
139
+ .map((part) => typeof part === "object" && part !== null && "text" in part
140
+ ? text(part.text)
141
+ : "")
142
+ .join("")
143
+ : "";
144
+ /** Tools with their count: `Bash ×2, Write`. */
145
+ const tally = (counts) => [...counts]
146
+ .map(([tool, count]) => (count > 1 ? `${tool} ×${count}` : tool))
147
+ .join(", ");
148
+ /** Names, from what `init` lists as names or as objects named. */
149
+ const names = (values) => (values ?? []).flatMap((value) => typeof value === "string"
150
+ ? [value]
151
+ : typeof value === "object" &&
152
+ value !== null &&
153
+ "name" in value &&
154
+ typeof value.name === "string"
155
+ ? [value.name]
156
+ : []);
157
+ /** The session's configuration as `init` announces it, and how it differs from the profile. */
158
+ function effective(profile, init, raw) {
159
+ const details = initDetails.safeParse(raw).data ?? {};
160
+ const granted = (profile.tools ?? []).flatMap((tool) => toolNames[tool] ?? [tool]);
161
+ // Built-in tools only: the machine's MCP servers are accepted as they are,
162
+ // and their tools are listed with the configuration.
163
+ const extra = profile.tools
164
+ ? init.tools.filter((tool) => !granted.includes(tool) && !isMcpTool(tool))
165
+ : [];
166
+ return {
167
+ type: "effective",
168
+ config: {
169
+ version: details.claude_code_version,
170
+ model: details.model,
171
+ permissionMode: details.permissionMode,
172
+ tools: init.tools,
173
+ mcpServers: init.mcp_servers.map(({ name, status }) => ({
174
+ name,
175
+ status,
176
+ })),
177
+ plugins: (details.plugins ?? []).map(({ name }) => name),
178
+ skills: names(details.skills),
179
+ agents: names(details.agents),
180
+ slashCommands: names(details.slash_commands),
181
+ apiKeySource: details.apiKeySource,
182
+ outputStyle: details.output_style,
183
+ },
184
+ differences: [
185
+ // An alias such as `opus` is announced as the model it names.
186
+ ...(details.model && !details.model.includes(profile.model)
187
+ ? [`model ${details.model} instead of ${profile.model}`]
188
+ : []),
189
+ ...(profile.permissionMode &&
190
+ details.permissionMode &&
191
+ details.permissionMode !== profile.permissionMode
192
+ ? [
193
+ `permission mode ${details.permissionMode} instead of ${profile.permissionMode}`,
194
+ ]
195
+ : []),
196
+ ...(extra.length
197
+ ? [`tools not in the profile: ${extra.join(", ")}`]
198
+ : []),
199
+ ],
200
+ };
201
+ }
202
+ /**
203
+ * What the result tells beyond the answer: tools refused, those a hook blocked
204
+ * apart, which Claude Code counts as refused too; each model's cost in this
205
+ * call when it used several, from the session's totals before and after it.
206
+ */
207
+ function resultNotices(result, blocked, before) {
208
+ const denied = permissionDenials.safeParse(result.permission_denials);
209
+ const refused = new Map();
210
+ const hooked = new Map();
211
+ for (const { tool_name, tool_use_id } of denied.success ? denied.data : []) {
212
+ const counts = typeof tool_use_id === "string" && blocked.has(tool_use_id)
213
+ ? hooked
214
+ : refused;
215
+ counts.set(tool_name, (counts.get(tool_name) ?? 0) + 1);
216
+ }
217
+ const models = modelUsage.safeParse(result.modelUsage);
218
+ const used = (models.success ? Object.entries(models.data) : []).flatMap(([model, { costUSD }]) => {
219
+ const cost = costUSD - (before[model] ?? 0);
220
+ return cost > 0 ? [[model, cost]] : [];
221
+ });
222
+ return [
223
+ ...(refused.size
224
+ ? [
225
+ {
226
+ type: "notice",
227
+ notice: "denied",
228
+ message: `Permission denied: ${tally(refused)}`,
229
+ },
230
+ ]
231
+ : []),
232
+ ...(hooked.size
233
+ ? [
234
+ {
235
+ type: "notice",
236
+ notice: "denied",
237
+ message: `Blocked by a PreToolUse hook: ${tally(hooked)}`,
238
+ },
239
+ ]
240
+ : []),
241
+ ...(used.length > 1
242
+ ? [
243
+ {
244
+ type: "notice",
245
+ notice: "models",
246
+ message: `Models: ${used.map(([model, cost]) => `${model} $${cost.toFixed(4)}`).join(", ")}`,
247
+ },
248
+ ]
249
+ : []),
250
+ ];
251
+ }
62
252
  /** Every model of the call, subagents and compactions included; measured on a best-effort basis. */
63
253
  const modelUsage = z
64
254
  .record(z.string(), z.looseObject({
@@ -157,6 +347,10 @@ function checkSession(profile, init) {
157
347
  ? failure(`${label} does not provide tools: ${missing.join(", ")}`)
158
348
  : [];
159
349
  }
350
+ /** A session's marker: its ID, and each model's cost so far in it, as its last result announced. */
351
+ const sessionMarker = z.looseObject({
352
+ models: z.record(z.string(), z.number()).optional(),
353
+ });
160
354
  /** `claude auth status --json`; it also names the account, which is never read. */
161
355
  const loginStatus = z.looseObject({
162
356
  loggedIn: z.boolean(),
@@ -186,6 +380,29 @@ function readLogin(stdout) {
186
380
  : `${status.authMethod ?? "unknown"} login`,
187
381
  };
188
382
  }
383
+ /** A word the shell reads as it is. */
384
+ const quoted = (word) => `'${word.replaceAll("'", "'\\''")}'`;
385
+ /**
386
+ * The script Claude Code runs before each Bash command, its sub-agents'
387
+ * included, in the shell that runs the command (`CLAUDE_ENV_FILE`, its
388
+ * documentation), written in the runtime's directory of the run. That shell
389
+ * leads the command's process group (observed with Claude Code 2.1.307): the
390
+ * script registers it where `FLOW_COMMAND_GROUPS` says, then runs the
391
+ * machine's own script, when it has one, as Claude Code would have.
392
+ */
393
+ async function commandScript(directory) {
394
+ const machine = process.env.CLAUDE_ENV_FILE;
395
+ const path = join(directory, "command-env.sh");
396
+ // Calls at once each write it whole, then move it in place.
397
+ const written = `${path}.${randomUUID()}`;
398
+ await writeFile(written, [
399
+ `[ -n "$FLOW_COMMAND_GROUPS" ] && printf '%s %s\\n' "$$" "$(date +%s)" >> "$FLOW_COMMAND_GROUPS"`,
400
+ ...(machine ? [`[ -r ${quoted(machine)} ] && . ${quoted(machine)}`] : []),
401
+ "",
402
+ ].join("\n"), { mode: 0o600 });
403
+ await rename(written, path);
404
+ return path;
405
+ }
189
406
  const failure = (message) => [
190
407
  { type: "failure", message },
191
408
  ];
@@ -193,8 +410,11 @@ const failure = (message) => [
193
410
  * Claude Code in print mode, with the machine's configuration and the profile's
194
411
  * settings. Its sessions need UUIDs: the run keeps a marker per session, so that
195
412
  * the next call resumes it. At the end of each call, Claude Code announces its
196
- * session's total, which is reported as it is. On SIGTERM it ends the process
197
- * tree of its running commands (its documentation).
413
+ * session's total, which is reported as it is. Each turn starts with an `init`
414
+ * and ends with a result, held back while a sub-agent runs; with the latest
415
+ * turn's result, the adapter tells what still runs in the background. On
416
+ * SIGTERM, Claude Code ends the process tree of its running commands (its
417
+ * documentation).
198
418
  */
199
419
  export const claudeCode = {
200
420
  name: "claude-code",
@@ -202,6 +422,11 @@ export const claudeCode = {
202
422
  executable: "claude",
203
423
  minimumVersion: "2.1.296",
204
424
  stopSignal: "SIGTERM",
425
+ // As it stops, Claude Code runs its SessionEnd hooks, within 1.5 s or the
426
+ // longest timeout they declare, up to 60 s (its 2.1.306 binary).
427
+ stopGraceMs: 60_000,
428
+ // Through the script it runs before each command.
429
+ registersGroups: true,
205
430
  // Its settings documentation: Anthropic and Claude Code variables, Bedrock and Vertex.
206
431
  environment: /^(ANTHROPIC_|CLAUDE_|DISABLE_|MCP_|BASH_|AWS_|VERTEX_|CLOUD_ML_)|^MAX_THINKING_TOKENS$/,
207
432
  connection: () => ({
@@ -219,15 +444,32 @@ export const claudeCode = {
219
444
  : server,
220
445
  ])),
221
446
  }),
222
- async start({ profile, systemPrompt, session, sessions }) {
447
+ async start({ profile, systemPrompt, session, sessions, groups }) {
223
448
  const name = agentSessionName(sessions.runId, session);
224
449
  const sessionId = claudeCodeSessionId(name);
225
450
  const marker = join(sessions.directory, name);
226
451
  // `--session-id` refuses an existing session and `--resume` a missing one.
227
452
  const created = existsSync(marker);
453
+ let before = {};
454
+ try {
455
+ if (created)
456
+ before =
457
+ sessionMarker.parse(JSON.parse(readFileSync(marker, "utf8")))
458
+ .models ?? {};
459
+ }
460
+ catch {
461
+ // A marker without costs: each model's cost counts from the session's start.
462
+ }
228
463
  const tools = new Map();
229
464
  const responses = new Set();
465
+ /** Tool calls a PreToolUse hook blocked. */
466
+ const blocked = new Set();
230
467
  let initialized = false;
468
+ /** The agent's background tasks still running, as Claude Code last announced them. */
469
+ let background = [];
470
+ /** Turns started and results received: a result is the latest turn's once there are as many. */
471
+ let turns = 0;
472
+ let results = 0;
231
473
  /** A main-loop response once, however many events carry it; unreadable tokens are not reported. */
232
474
  const responseOf = (type, parent, message) => {
233
475
  if (type !== "assistant" || parent || typeof message.id !== "string")
@@ -255,6 +497,8 @@ export const claudeCode = {
255
497
  "--output-format",
256
498
  "stream-json",
257
499
  "--verbose",
500
+ // Each hook of the machine's configuration that runs, with its outcome.
501
+ "--include-hook-events",
258
502
  ...profileArgs(profile, systemPrompt, shown),
259
503
  created ? "--resume" : "--session-id",
260
504
  sessionId,
@@ -264,14 +508,23 @@ export const claudeCode = {
264
508
  return {
265
509
  args: command(false),
266
510
  shown: command(true),
267
- // Print mode stops background work, sub-agents included, after 10 minutes
268
- // without a turn and drops their reports: the call waits for them instead,
269
- // within its timeout (Claude Code's headless documentation).
270
- env: { CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS: "0" },
511
+ env: {
512
+ // Print mode stops background work, sub-agents included, after 10
513
+ // minutes without a turn and drops their reports: the call waits for
514
+ // its sub-agents instead, within its timeout (Claude Code's headless
515
+ // documentation). The agent's answer ends the call, with the commands
516
+ // it left in the background.
517
+ CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS: "0",
518
+ // Each command registers its process group: what it leaves running
519
+ // ends with the call.
520
+ CLAUDE_ENV_FILE: await commandScript(sessions.directory),
521
+ FLOW_COMMAND_GROUPS: groups,
522
+ },
271
523
  read(raw) {
272
524
  const event = parseEvent(label, anyEvent, raw);
273
525
  if (event.type === "system" && event.subtype === "init") {
274
526
  const init = parseEvent(label, initEvent, raw);
527
+ turns += 1;
275
528
  if (init.session_id !== sessionId)
276
529
  return failure(`${label} started session ${init.session_id} instead of ${sessionId}`);
277
530
  if (!created)
@@ -279,7 +532,82 @@ export const claudeCode = {
279
532
  mode: 0o600,
280
533
  });
281
534
  initialized = true;
282
- return checkSession(profile, init);
535
+ // Its configuration first: it explains a session check that fails.
536
+ return [
537
+ effective(profile, init, raw),
538
+ ...checkSession(profile, init),
539
+ ];
540
+ }
541
+ if (event.type === "system" &&
542
+ event.subtype === "background_tasks_changed") {
543
+ background = parseEvent(label, backgroundTasksEvent, raw).tasks.filter(({ ambient }) => !ambient);
544
+ return [];
545
+ }
546
+ if (event.type === "rate_limit_event") {
547
+ const limit = rateLimitEvent.safeParse(raw);
548
+ if (!limit.success || limit.data.rate_limit_info.status === "allowed")
549
+ return [];
550
+ const { status, rateLimitType, resetsAt } = limit.data.rate_limit_info;
551
+ return [
552
+ {
553
+ type: "notice",
554
+ notice: "limit",
555
+ message: `Subscription limit ${status}${rateLimitType ? ` (${rateLimitType})` : ""}${resetsAt ? `, resets ${new Date(resetsAt * 1000).toISOString()}` : ""}`,
556
+ },
557
+ ];
558
+ }
559
+ if (event.type === "system" && event.subtype === "hook_response") {
560
+ const hook = hookResponse.safeParse(raw);
561
+ if (!hook.success)
562
+ return [];
563
+ const { hook_name, outcome, exit_code, output } = hook.data;
564
+ const printed = output?.trim();
565
+ return [
566
+ {
567
+ type: "hook",
568
+ name: hook_name,
569
+ outcome,
570
+ ...(exit_code === undefined ? {} : { exitCode: exit_code }),
571
+ ...(printed
572
+ ? {
573
+ output: printed.length > 300
574
+ ? `${printed.slice(0, 300)}…`
575
+ : printed,
576
+ }
577
+ : {}),
578
+ },
579
+ ];
580
+ }
581
+ if (event.type === "system" && event.subtype === "compact_boundary") {
582
+ const metadata = compactBoundary.safeParse(raw).data?.compact_metadata ?? {};
583
+ const { trigger, pre_tokens, post_tokens, duration_ms } = metadata;
584
+ const count = (tokens) => tokens.toLocaleString("en-US");
585
+ return [
586
+ {
587
+ type: "notice",
588
+ notice: "compaction",
589
+ message: `${label} compacted its conversation${trigger ? ` (${trigger})` : ""}${pre_tokens !== undefined && post_tokens !== undefined ? `: ${count(pre_tokens)} → ${count(post_tokens)} tokens` : ""}${duration_ms === undefined ? "" : ` in ${seconds(duration_ms)}`}`,
590
+ },
591
+ ];
592
+ }
593
+ if (event.type === "system" && event.subtype === "api_retry") {
594
+ const retry = apiRetry.safeParse(raw);
595
+ if (!retry.success)
596
+ return [];
597
+ const { attempt, max_retries, retry_delay_ms, error_status, error } = retry.data;
598
+ const reason = [
599
+ text(error),
600
+ error_status ? `status ${error_status}` : "",
601
+ ]
602
+ .filter(Boolean)
603
+ .join(", ");
604
+ return [
605
+ {
606
+ type: "notice",
607
+ notice: "retry",
608
+ message: `${label} retries (${attempt}/${max_retries})${retry_delay_ms === undefined ? "" : ` in ${seconds(retry_delay_ms)}`}${reason ? `: ${reason}` : ""}`,
609
+ },
610
+ ];
283
611
  }
284
612
  if (event.type === "assistant" || event.type === "user") {
285
613
  const { parent_tool_use_id: parent, message } = parseEvent(label, messageEvent, raw);
@@ -300,6 +628,8 @@ export const claudeCode = {
300
628
  if (block.type !== "tool_result")
301
629
  return [];
302
630
  const id = String(block.tool_use_id);
631
+ if (block.is_error && hookBlock.test(resultText(block.content)))
632
+ blocked.add(id);
303
633
  return [
304
634
  {
305
635
  type: "tool",
@@ -314,7 +644,9 @@ export const claudeCode = {
314
644
  if (event.type !== "result")
315
645
  return [];
316
646
  const result = parseEvent(label, resultEvent, raw);
647
+ results += 1;
317
648
  const total = usageOf(result.modelUsage);
649
+ const notices = resultNotices(result, blocked, before);
318
650
  // A crash result may announce zeroed figures (Claude Code's cost tracking docs):
319
651
  // nothing is measured, so the session keeps its earlier total.
320
652
  const crashed = result.is_error &&
@@ -326,33 +658,70 @@ export const claudeCode = {
326
658
  scope: "session",
327
659
  usage: crashed ? undefined : total,
328
660
  };
661
+ const models = modelUsage.safeParse(result.modelUsage);
662
+ // Only once the session started: the marker makes the next call resume it.
663
+ if (initialized && !crashed && models.success)
664
+ try {
665
+ writeFileSync(marker, `${JSON.stringify({
666
+ sessionId,
667
+ models: Object.fromEntries(Object.entries(models.data).map(([model, { costUSD }]) => [
668
+ model,
669
+ costUSD,
670
+ ])),
671
+ })}\n`, { mode: 0o600 });
672
+ }
673
+ catch (error) {
674
+ notices.push({
675
+ type: "warning",
676
+ message: `${label} session's costs by model could not be kept for its next call: ${error instanceof Error ? error.message : String(error)}`,
677
+ });
678
+ }
329
679
  if (result.is_error) {
330
680
  const errors = Array.isArray(result.errors)
331
681
  ? result.errors.filter((error) => typeof error === "string")
332
682
  : [];
683
+ // An API error ends the session with the subtype `success`: its reason says more.
684
+ const reason = result.subtype === "success"
685
+ ? text(result.terminal_reason)
686
+ : text(result.subtype);
333
687
  return [
688
+ ...notices,
334
689
  usage,
335
- ...failure(`${label} ${text(result.subtype) || "error"}: ${text(result.result) || errors.join("; ") || "no detail provided"}`),
690
+ ...failure(`${label} ${reason || "error"}: ${text(result.result) || errors.join("; ") || "no detail provided"}`),
336
691
  ];
337
692
  }
338
693
  if (result.stop_reason && result.stop_reason !== "end_turn")
339
694
  return [
695
+ ...notices,
340
696
  usage,
341
697
  ...failure(`${label} final response ended with stop reason ${result.stop_reason}`),
342
698
  ];
343
699
  // Without an init event, neither the session nor what it grants was checked.
344
700
  if (!initialized)
345
701
  return [
702
+ ...notices,
346
703
  usage,
347
704
  ...failure(`${label} answered without reporting its session (init)`),
348
705
  ];
349
706
  // A successful call's final text is what the stage receives.
350
707
  if (typeof result.result !== "string")
351
708
  return [
709
+ ...notices,
352
710
  usage,
353
711
  ...failure(`${label} emitted an unexpected result event: result: expected a string`),
354
712
  ];
355
- return [usage, { type: "result", text: result.result }];
713
+ return [
714
+ ...notices,
715
+ usage,
716
+ {
717
+ type: "result",
718
+ text: result.result,
719
+ // A result held back from an earlier turn comes before the latest one's.
720
+ ...(results >= turns
721
+ ? { background: backgroundOf(background) }
722
+ : {}),
723
+ },
724
+ ];
356
725
  },
357
726
  };
358
727
  },
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/system/runtimes/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAGL,UAAU,EAGV,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;AAE3C,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,sFAAsF;AACtF,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC9E,CAAC,CAAC;AAEH,uFAAuF;AACvF,MAAM,YAAY,GAAG,CAAC;KACnB,WAAW,CAAC;IACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC1B,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC;KACD,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9B,MAAM,QAAQ,GACZ,KAAK,CAAC,IAAI,KAAK,UAAU;QACvB,CAAC,CAAE,CAAC,IAAI,EAAE,MAAM,CAAW;QAC3B,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa;YAC5B,CAAC,CAAE,CAAC,aAAa,CAAW;YAC5B,CAAC,CAAC,EAAE,CAAC;IACX,KAAK,MAAM,GAAG,IAAI,QAAQ;QACxB,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,QAAQ;YAChC,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,GAAG,CAAC;gBACX,OAAO,EAAE,mBAAmB;aAC7B,CAAC,CAAC;AACT,CAAC,CAAC,CAAC;AAEL,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC;IACjC,oCAAoC;IACpC,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC;QACrB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC1B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC7B,mCAAmC;QACnC,OAAO,EAAE,CAAC,CAAC,UAAU,CACnB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EACzD,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CACtB;KACF,CAAC;CACH,CAAC,CAAC;AAEH,6FAA6F;AAC7F,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAE1E,oGAAoG;AACpG,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CACL,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,WAAW,CAAC;IACZ,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IACrC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IACtC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IAC9C,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IAClD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;CAClC,CAAC,CACH;KACA,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEtD,SAAS,OAAO,CAAC,KAAc;IAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,KAAK,GAAG;QACZ,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;KACX,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC;QACjC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC;QACnC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,oBAAoB,CAAC;QAC9C,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,wBAAwB,CAAC;QACnD,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mGAAmG;AACnG,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IACtC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IACvC,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;IACjD,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;CACtD,CAAC,CAAC;AAEH,wEAAwE;AACxE,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAC1E,EAAE,CACH,CAAC;IACF,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAC5H,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,SAAS,GAA6B;IAC1C,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,SAAS,WAAW,CAClB,OAAiC,EACjC,YAAoB,EACpB,KAAK,GAAG,KAAK;IAEb,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO;QACL,SAAS;QACT,OAAO,CAAC,KAAK;QACb,UAAU;QACV,OAAO,CAAC,QAAQ;QAChB,wBAAwB;QACxB,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;QAClC,kCAAkC;QAClC,GAAG,CAAC,OAAO,CAAC,MAAM;YAChB,CAAC,CAAC;gBACE,cAAc;gBACd,KAAK;oBACH,CAAC,CAAC,iBAAiB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;oBACxC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC;aACnC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,yFAAyF;QACzF,GAAG,CAAC,KAAK;YACP,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,yGAAyG;AACzG,SAAS,YAAY,CACnB,OAAiC,EACjC,IAA+B;IAE/B,0EAA0E;IAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC;QAC5E,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,MAAM;QACpB,OAAO,OAAO,CACZ,GAAG,KAAK,mCAAmC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpE,CAAC;IACJ,mEAAmE;IACnE,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAC1C,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACzE,CAAC;IACF,OAAO,OAAO,CAAC,MAAM;QACnB,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,4BAA4B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,mFAAmF;AACnF,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,SAAS,SAAS,CAAC,MAAc;IAC/B,IAAI,MAAmC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,GAAG,KAAK,6BAA6B;SAC9C,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ;QAClB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,mBAAmB,EAAE,CAAC;IACnE,oDAAoD;IACpD,OAAO;QACL,SAAS,EAAE,IAAI;QACf,MAAM,EACJ,MAAM,CAAC,UAAU,KAAK,WAAW;YAC/B,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,CAAC,CAAC,YAAY,MAAM,CAAC,YAAY,IAAI,gBAAgB,GAAG;gBACxD,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,IAAI,SAAS,QAAQ;KAClD,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,OAAe,EAAkB,EAAE,CAAC;IACnD,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE;CAC7B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAkC;IACvD,IAAI,EAAE,aAAa;IACnB,KAAK;IACL,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,SAAS;IACzB,UAAU,EAAE,SAAS;IACrB,uFAAuF;IACvF,WAAW,EACT,wFAAwF;IAC1F,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACjB,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAClC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;KACxC,CAAC;IACF,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK;IACjC,mGAAmG;IACnG,YAAY,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACrC,GAAG,OAAO;QACV,UAAU,EAAE,MAAM,CAAC,WAAW,CAC5B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;YACzD,IAAI;YACJ,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;gBACzD,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC5D,CAAC,CAAC,MAAM;SACX,CAAC,CACH;KACF,CAAC;IAEF,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE;QACtD,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9C,2EAA2E;QAC3E,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,mGAAmG;QACnG,MAAM,UAAU,GAAG,CACjB,IAAY,EACZ,MAAe,EACf,OAA0C,EAC1B,EAAE;YAClB,IAAI,IAAI,KAAK,WAAW,IAAI,MAAM,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ;gBAClE,OAAO,EAAE,CAAC;YACZ,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAE,OAAO,EAAE,CAAC;YACzC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,KAAK,CAAC,OAAO;gBAClB,CAAC,CAAC;oBACE;wBACE,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE;4BACN,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;4BAC9B,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;4BAChC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB;4BAC7C,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,2BAA2B;yBACnD;qBACF;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC;YAClC,SAAS;YACT,iBAAiB;YACjB,aAAa;YACb,WAAW;YACX,GAAG,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc;YACrC,SAAS;YACT,QAAQ;YACR,GAAG,QAAQ,CAAC,KAAK,IAAI,OAAO,EAAE;SAC/B,CAAC;QACF,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC;YACpB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;YACpB,0EAA0E;YAC1E,2EAA2E;YAC3E,6DAA6D;YAC7D,GAAG,EAAE,EAAE,oCAAoC,EAAE,GAAG,EAAE;YAElD,IAAI,CAAC,GAAG;gBACN,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;oBACxD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;oBAC/C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;wBAC/B,OAAO,OAAO,CACZ,GAAG,KAAK,oBAAoB,IAAI,CAAC,UAAU,eAAe,SAAS,EAAE,CACtE,CAAC;oBACJ,IAAI,CAAC,OAAO;wBACV,aAAa,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE;4BAC1D,IAAI,EAAE,KAAK;yBACZ,CAAC,CAAC;oBACL,WAAW,GAAG,IAAI,CAAC;oBACnB,OAAO,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACxD,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CACxD,KAAK,EACL,YAAY,EACZ,GAAG,CACJ,CAAC;oBACF,OAAO;wBACL,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;wBAC1C,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAkB,EAAE;4BACnD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gCAC9B,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gCAChD,OAAO;oCACL;wCACE,IAAI,EAAE,MAAM;wCACZ,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wCACpB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;wCACxB,MAAM,EAAE,SAAS;qCAClB;iCACF,CAAC;4BACJ,CAAC;4BACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;gCAAE,OAAO,EAAE,CAAC;4BAC5C,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;4BACrC,OAAO;gCACL;oCACE,IAAI,EAAE,MAAM;oCACZ,EAAE;oCACF,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;oCACzB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;iCAChD;6BACF,CAAC;wBACJ,CAAC,CAAC;qBACH,CAAC;gBACJ,CAAC;gBACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAO,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACzC,iFAAiF;gBACjF,+DAA+D;gBAC/D,MAAM,OAAO,GACX,MAAM,CAAC,QAAQ;oBACf,MAAM,CAAC,OAAO,KAAK,wBAAwB;oBAC3C,KAAK,KAAK,SAAS;oBACnB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;gBACrD,MAAM,KAAK,GAAiB;oBAC1B,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;iBACnC,CAAC;gBACF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;wBACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;wBAC5D,CAAC,CAAC,EAAE,CAAC;oBACP,OAAO;wBACL,KAAK;wBACL,GAAG,OAAO,CACR,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAoB,EAAE,CACnH;qBACF,CAAC;gBACJ,CAAC;gBACD,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,UAAU;oBACzD,OAAO;wBACL,KAAK;wBACL,GAAG,OAAO,CACR,GAAG,KAAK,0CAA0C,MAAM,CAAC,WAAW,EAAE,CACvE;qBACF,CAAC;gBACJ,6EAA6E;gBAC7E,IAAI,CAAC,WAAW;oBACd,OAAO;wBACL,KAAK;wBACL,GAAG,OAAO,CACR,GAAG,KAAK,gDAAgD,CACzD;qBACF,CAAC;gBACJ,6DAA6D;gBAC7D,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;oBACnC,OAAO;wBACL,KAAK;wBACL,GAAG,OAAO,CACR,GAAG,KAAK,gEAAgE,CACzE;qBACF,CAAC;gBACJ,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1D,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/system/runtimes/claude-code.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { constants } from "node:fs";
2
2
  import { access, stat } from "node:fs/promises";
3
3
  import { delimiter, isAbsolute, join } from "node:path";
4
- import { ProcessInterruptedError, runProcess } from "../process.js";
4
+ import { groupsProblem, ProcessInterruptedError, runProcess, } from "../process.js";
5
5
  import { runtimes } from "./registry.js";
6
6
  /** Only absolute PATH entries: an empty or relative one depends on the current directory. */
7
7
  async function findInPath(name) {
@@ -45,7 +45,10 @@ const older = (version, minimum) => {
45
45
  return (a?.[i] ?? 0) < (b?.[i] ?? 0);
46
46
  return false;
47
47
  };
48
- /** The executable in the PATH and its version: where it is, or why it cannot be used. */
48
+ /**
49
+ * The executable in the PATH and its version, and what else its calls need:
50
+ * where it is, or why it cannot be used.
51
+ */
49
52
  async function inspectExecutable(adapter, dir) {
50
53
  const path = await findInPath(adapter.executable);
51
54
  if (!path)
@@ -66,6 +69,11 @@ async function inspectExecutable(adapter, dir) {
66
69
  return {
67
70
  problem: `${adapter.label} ${version} is older than ${adapter.minimumVersion}, the oldest version flow supports`,
68
71
  };
72
+ const unended = adapter.registersGroups ? await groupsProblem() : undefined;
73
+ if (unended)
74
+ return {
75
+ problem: `${adapter.label} calls end what their commands leave running with ps: ${unended}`,
76
+ };
69
77
  return { path, version };
70
78
  }
71
79
  /** The connection a check reports, trusted only when the check succeeded; a refusal keeps its own reason. */