@lucascouts/claude-agent-acp-plus 0.28.0 → 0.30.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.
@@ -126,6 +126,14 @@ export declare const USAGE_CAPABILITY_VERSION = 1;
126
126
  * and a sample most of an interval old is exactly what the poll already
127
127
  * showed them. */
128
128
  export declare const USAGE_REFRESH_MAX_SAMPLE_AGE_MS = 5000;
129
+ /** Parity item 106 (upstream issue #1284): how long a turn held for its
130
+ * background subagents (see `Turn.deferredSettle`) waits, once none of them is
131
+ * live and Claude Code is idle, for the followup cycle a task_notification
132
+ * would start. A notification that is lost starts none, and with no further
133
+ * idle nothing else would ever answer the prompt. A followup starts within
134
+ * milliseconds of its notification (the CLI flushes them together), so the
135
+ * bound only ever expires on a lost one. */
136
+ export declare const HELD_TURN_DRAIN_GRACE_MS = 5000;
129
137
  export type UsageRefreshRequest = {
130
138
  sessionId: string;
131
139
  };
@@ -266,16 +274,20 @@ type Turn = {
266
274
  * cancel or the next turn's echo hand-off settles it earlier, so a
267
275
  * long-running subagent never holds the prompt hostage.
268
276
  *
269
- * Accepted residuals. (1) A subagent that ends WITHOUT waking the model —
270
- * its task_notification lost or skipped (only the terminal task_updated
271
- * patch is guaranteed per transition) — leaves no followup result and no
272
- * further idle, so the held turn parks until `session/cancel` or the next
273
- * prompt (either settles it: the echo hand-off or ensureActiveTurn's
274
- * held-turn hand-off). Settling at the prune sites instead would preempt
275
- * the followup summary in the normal ordering (prunes precede the
276
- * notification), and a grace timer was judged not worth the machinery —
277
- * the same rescue contract as the adapter's other wedge classes (issue
278
- * #825's out-of-scope notes). (2) Drained-ness is judged by live-task
277
+ * A subagent that ends WITHOUT waking the model — its task_notification
278
+ * lost or skipped (only the terminal task_updated patch is guaranteed per
279
+ * transition) — leaves no followup result, and when its end comes after
280
+ * the turn's only idle, no further idle either. Settling at the prune
281
+ * sites would preempt the followup summary in the normal ordering (prunes
282
+ * precede the notification), so a prune that drains the turn while Claude
283
+ * Code is idle arms a bounded grace instead (`HELD_TURN_DRAIN_GRACE_MS`,
284
+ * parity item 106, upstream issue #1284); it settles only if no followup
285
+ * started meanwhile. A subagent whose every end signal is lost — the
286
+ * bookends AND the `background_tasks_changed` level — is indistinguishable
287
+ * from a live one and still parks the turn until `session/cancel` or the
288
+ * next prompt.
289
+ *
290
+ * Accepted residual: drained-ness is judged by live-task
279
291
  * membership only: with parallel subagents, a notification that prunes
280
292
  * the last task during an earlier task's still-streaming followup lets
281
293
  * that followup's result settle the turn before the LAST task's summary
@@ -285,13 +297,16 @@ type Turn = {
285
297
  deferredSettle?: PromptResponse;
286
298
  /** Uuids of `steer()`-injected messages the SDK has not replayed back yet.
287
299
  *
288
- * A steer is normally delivered at {@link STEER_PRIORITY_NOW}, so the CLI
289
- * ABORTS the running cycle: it emits its own human-origin `result` —
290
- * indistinguishable from a turn's terminal one — and the steered message runs
291
- * as a SECOND cycle. Settling at that result would answer `session/prompt`
292
- * mid-work, so a steered turn's results only RECORD their outcome
293
- * (`steeredSettle`) and it settles at the SDK's `idle`, the only signal
294
- * spanning both cycles (CLI 2.1.220).
300
+ * A steer is normally delivered at {@link STEER_PRIORITY_NOW}. Up to CLI
301
+ * 2.1.285 that ABORTED the running cycle: it emitted its own human-origin
302
+ * `result` — indistinguishable from a turn's terminal one — and the steered
303
+ * message ran as a SECOND cycle (CLI 2.1.220). Since SDK 0.3.286 (CLI
304
+ * 2.1.286) a `now` message instead joins the running turn, moving running
305
+ * shells, agents and MCP calls to the background, so usually only one
306
+ * `result` follows. Either way a result seen while the steered echo is
307
+ * pending is not proof the steered work ran, so a steered turn's results
308
+ * only RECORD their outcome (`steeredSettle`) and it settles at the SDK's
309
+ * `idle`, the one signal that is correct under both behaviours.
295
310
  *
296
311
  * A non-empty set at an idle means the steered cycle hasn't started — the CLI
297
312
  * replays a message only when it picks it up, always after the interrupted
@@ -711,6 +726,21 @@ export type Session = {
711
726
  * entry on its two-activation clock. */
712
727
  endedPerLevel?: "ended" | "sweep-armed";
713
728
  }>;
729
+ /** Parity item 92 (upstream #1312): the display terminals of commands sent
730
+ * to the background that still run, by the id of the command's task — the
731
+ * Bash tool call whose terminal it is, and the subagent tool call that ran
732
+ * it, if any. The tool result's `terminal_exit` is withheld for these (the
733
+ * call returns as soon as the command detaches); the exit goes out when the
734
+ * task ends. Only for a client that renders terminals. */
735
+ backgroundTerminals?: Map<string, {
736
+ toolCallId: string;
737
+ parentToolUseId?: string;
738
+ }>;
739
+ /** The latest `run_id` seen on each task's events, so a late frame of an
740
+ * earlier run is dropped (see `isLateTaskRun`, upstream #1271). Run ids are
741
+ * per CLI process, so a query recreate clears it. Bounded by
742
+ * `MAX_TASK_RUN_IDS`, oldest first. */
743
+ taskRunIds?: Map<string, string>;
714
744
  /** The task feed (story 012): every task message folded into the
715
745
  * `_claude/tasks` snapshot, published through `taskFeedPublisher`. Both
716
746
  * live as long as the SESSION, not the consumer — a query recreate keeps
@@ -913,7 +943,8 @@ export type ToolUpdateMeta = {
913
943
  };
914
944
  terminal_exit?: {
915
945
  terminal_id: string;
916
- exit_code: number;
946
+ /** Null when the code is not known (as in `TerminalExitStatus`). */
947
+ exit_code: number | null;
917
948
  signal: string | null;
918
949
  };
919
950
  };
@@ -1148,17 +1179,20 @@ export declare class ClaudeAcpAgent {
1148
1179
  * into the in-flight turn. The injected message's echo carries a uuid that
1149
1180
  * matches no queued turn, so the consumer drops it as an unrelated replay
1150
1181
  * without promoting/settling anything. It is normally delivered at {@link
1151
- * STEER_PRIORITY_NOW} so it pre-empts the current generation (interrupting a
1152
- * single-shot response, or slotting in between a multi-step turn's tool
1153
- * calls). While a permission or elicitation is awaiting user input it uses
1182
+ * STEER_PRIORITY_NOW}, which since SDK 0.3.286 joins the running turn
1183
+ * (running shells, agents and MCP calls move to the background) rather than
1184
+ * stopping it. While a permission or elicitation is awaiting user input it uses
1154
1185
  * {@link STEER_PRIORITY_LATER} instead, because interrupting that SDK
1155
1186
  * callback cancels the ACP request and can strand the prompt (IJAI-1191).
1156
1187
  * The steered message's own output streams via `session/update`, not this
1157
1188
  * response.
1158
1189
  *
1159
- * Pre-empting means ABORTING: the interrupted cycle emits a `result` of its
1160
- * own and the steered message runs as a second one, so the turn is marked
1161
- * (`Turn.steeredEchoes`) to settle at the SDK's `idle` instead of that result.
1190
+ * Before 0.3.286 delivering `now` ABORTED the cycle, which emitted a `result`
1191
+ * of its own before the steered message ran as a second one; since then it
1192
+ * joins the turn. The turn is marked (`Turn.steeredEchoes`) to settle at the
1193
+ * SDK's `idle` instead of at a result in both cases, so either CLI behaviour
1194
+ * settles once, after the steered work. Zeo sends no ACP steering, so none
1195
+ * of this is reachable from it.
1162
1196
  *
1163
1197
  * When the session is idle, the opt-in path returns `promptRequired` WITHOUT
1164
1198
  * calling `prompt()`, pushing SDK input, or mutating `turnQueue`: the content
@@ -1334,6 +1368,13 @@ export declare class ClaudeAcpAgent {
1334
1368
  * Not written to `contextWindowCache` — that stays keyed to the
1335
1369
  * `result.modelUsage` spellings — and a result still overwrites it.
1336
1370
  * Ported from upstream #1186.
1371
+ *
1372
+ * Asks for the `summary` detail (parity item 97, upstream #1258): the
1373
+ * default `full` breakdown issues one `messages/count_tokens` call per
1374
+ * category, and only `rawMaxTokens` is read here. The two other callers
1375
+ * (`readResumedLiveModel`, `fetchContextUsedTokens`) read `totalTokens`,
1376
+ * which `summary` takes from the last response's usage plus local
1377
+ * estimates instead of counting — not the same number, so they keep `full`.
1337
1378
  */
1338
1379
  private refreshContextWindowInBackground;
1339
1380
  private applyConfigOptionValue;
@@ -1611,4 +1652,20 @@ export declare function runAcp(logger?: Logger): {
1611
1652
  connection: import("@agentclientprotocol/sdk").AgentConnection;
1612
1653
  agent: ClaudeAcpAgent;
1613
1654
  };
1655
+ /**
1656
+ * Drops `terminal_exit` from the tool result update of `toolCallId`: the Bash
1657
+ * call returned as soon as its command detached, and the exit would mark the
1658
+ * terminal as ended while the command still runs.
1659
+ */
1660
+ export declare function withRunningTerminal(notification: SessionNotification, toolCallId: string | undefined): SessionNotification;
1661
+ /**
1662
+ * The exit code of a background command whose task ended, from what the task's
1663
+ * ending says. Claude Code's summary reads `Background command "<d>" completed
1664
+ * (exit code N[: note])` or `… failed with exit code N` (CLI 2.1.285); an
1665
+ * ending names a code only at its end, so a description holding the words
1666
+ * cannot be mistaken for it. A completion with a non-zero code is one Claude
1667
+ * Code accepted as a success (grep's "No matches found"), so it goes out as
1668
+ * null; a failure or stop that names no code goes out as 1, never null.
1669
+ */
1670
+ export declare function backgroundExitCode(status: string | undefined, text: string | undefined): number | null;
1614
1671
  //# sourceMappingURL=acp-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"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"}
package/dist/acp-agent.js CHANGED
@@ -29,7 +29,7 @@ import { decodeClaudePermissionResponse } from "./permissions/response.js";
29
29
  import { activeUsageLimitMessage, airSessionFailureCapabilityMeta, assistantMessageText, createSessionFailureState, isSyntheticUsageLimitMessage, providerFailureCategory, SessionFailureController, sessionFailureMeta, supportsAirSessionFailures, } from "./session-failure-extension.js";
30
30
  import { AGENT_FILE_CHANGE_REPORT_CAPABILITY, agentFileChangeReportMeta, agentFileChangeReportRequestId, containsFileChangeAuditMarker, createFileChangeAuditSupport, createFileChangeAuditTurnState, FILE_CHANGE_AUDIT_SERVER_NAME, isFileChangeAuditReportPhase, isFileChangeAuditTool, supportsAgentFileChangeReport, } from "./file-change-audit.js";
31
31
  import { clientSupportsNotices, MAX_NOTICE_TITLE_LENGTH, normalizeNoticeText, noticeOrTranscriptUpdate, sentenceCase, splitNoticeText, } from "./session-notices.js";
32
- import { applyTaskCreate, applyTaskList, applyTaskUpdate, createPostToolUseHook, createTaskHook, parseTaskCreateOutput, parseTaskListOutput, parseTaskUpdateOutput, planEntries, registerHookCallback, taskStateToPlanEntries, toolInfoFromToolUse, toolUpdateFromDiffToolResponse, toolUpdateFromToolResult, } from "./tools.js";
32
+ import { applyTaskCreate, applyTaskList, applyTaskUpdate, createPostToolUseHook, createTaskHook, parseTaskCreateOutput, parseTaskListOutput, parseTaskUpdateOutput, planEntries, registerHookCallback, shellDescription, taskStateToPlanEntries, toolInfoFromToolUse, toolUpdateFromDiffToolResponse, toolUpdateFromToolResult, } from "./tools.js";
33
33
  import { nodeToWebReadable, nodeToWebWritable, Pushable, unreachable } from "./utils.js";
34
34
  import { acceptedPlanToolResult, ExitPlanCoordinator, exitPlanModeRawOutput, isExitPlanInterruptionResult, observeExitPlanToolResults, } from "./exit-plan.js";
35
35
  import { DEFAULT_AGENT_ID, EFFORT_CONFIG_ID } from "./session-config-ids.js";
@@ -88,9 +88,12 @@ const TURN_NO_RESULT_MESSAGE = "The turn ended without a result: the agent went
88
88
  const STEER_METHOD = "_session/steering";
89
89
  /** How urgently the SDK delivers a steered message relative to the running
90
90
  * turn — an internal Claude implementation detail, not part of the wire
91
- * contract. `now` pre-empts the current generation and handles the message
92
- * immediately (interrupting a single-shot response, or slotting in between a
93
- * multi-step turn's tool calls), while `later` waits for a pending
91
+ * contract. `now` hands the message to the running turn at once: since SDK
92
+ * 0.3.286 (CLI 2.1.286) it moves running shell commands, agents and MCP calls
93
+ * to the background and JOINS the running turn instead of stopping it (before
94
+ * 0.3.286 it aborted the cycle and ran the message as a second one; a
95
+ * WebFetch/WebSearch it steps past reports `{ detachedToolCall: true }` from
96
+ * 0.3.287). `later` waits for a pending
94
97
  * permission/elicitation callback to settle instead of cancelling its ACP
95
98
  * request and hiding the client's user-input card (IJAI-1191). Maps to
96
99
  * `SDKUserMessage.priority`; injected steering uses `now` unless the session is
@@ -174,6 +177,14 @@ export const USAGE_CAPABILITY_VERSION = 1;
174
177
  * and a sample most of an interval old is exactly what the poll already
175
178
  * showed them. */
176
179
  export const USAGE_REFRESH_MAX_SAMPLE_AGE_MS = 5_000;
180
+ /** Parity item 106 (upstream issue #1284): how long a turn held for its
181
+ * background subagents (see `Turn.deferredSettle`) waits, once none of them is
182
+ * live and Claude Code is idle, for the followup cycle a task_notification
183
+ * would start. A notification that is lost starts none, and with no further
184
+ * idle nothing else would ever answer the prompt. A followup starts within
185
+ * milliseconds of its notification (the CLI flushes them together), so the
186
+ * bound only ever expires on a lost one. */
187
+ export const HELD_TURN_DRAIN_GRACE_MS = 5_000;
177
188
  /** The SDK's own text for a rejected control request, passed through to the
178
189
  * client as the internal error's message (R2.4). */
179
190
  function errorMessage(error) {
@@ -300,6 +311,32 @@ const AUTONOMOUS_RESULT_ORIGINS = new Set([
300
311
  * held for background subagents it spawned (see Turn.deferredSettle). The
301
312
  * single spelling of the hold predicate, shared by the consumer's settle
302
313
  * lanes and cancel(). */
314
+ /** The number of tasks whose latest run a session remembers (see
315
+ * `Session.taskRunIds`). */
316
+ const MAX_TASK_RUN_IDS = 1024;
317
+ /** Records `runId` as the latest run of `taskId`, and returns true when it
318
+ * names a run that opened before the latest one seen. Such a frame is late:
319
+ * a resumed task keeps its `task_id` and gets a new `run_id` (SDK 0.3.292+),
320
+ * and a queued `task_notification` of the finished run can arrive after the
321
+ * resume. Applied, it would close the new run. Run ids of one task sort in
322
+ * run order by plain string comparison. Frames without one (older CLIs) are
323
+ * never late. Ported from upstream #1271. */
324
+ function isLateTaskRun(session, taskId, runId) {
325
+ if (runId === undefined)
326
+ return false;
327
+ const runs = (session.taskRunIds ??= new Map());
328
+ const latest = runs.get(taskId);
329
+ if (latest !== undefined && runId < latest)
330
+ return true;
331
+ runs.delete(taskId);
332
+ runs.set(taskId, runId);
333
+ if (runs.size > MAX_TASK_RUN_IDS) {
334
+ const oldest = runs.keys().next().value;
335
+ if (oldest !== undefined)
336
+ runs.delete(oldest);
337
+ }
338
+ return false;
339
+ }
303
340
  function isHeldOpen(turn) {
304
341
  return turn != null && turn.deferredSettle !== undefined && !turn.settled;
305
342
  }
@@ -359,14 +396,12 @@ function stripSubagentTextAndThinking(content) {
359
396
  !("type" in item) ||
360
397
  (item.type !== "text" && item.type !== "thinking"));
361
398
  }
362
- /** A cached tool call's `description` input, when it is a string. */
399
+ /** A cached tool call's `description` input, when it is a string — or, for a
400
+ * shell call, its `command_description` alias (CLI 2.1.295+, upstream #1330). */
363
401
  function toolDescriptionOf(cache, toolUseId) {
364
402
  if (typeof toolUseId !== "string")
365
403
  return undefined;
366
- const input = cache[toolUseId]?.input;
367
- if (typeof input !== "object" || input === null || !("description" in input))
368
- return undefined;
369
- return typeof input.description === "string" ? input.description : undefined;
404
+ return shellDescription(cache[toolUseId]?.input);
370
405
  }
371
406
  /**
372
407
  * Advance the lexer state across the fragment appended since the last delta:
@@ -1614,17 +1649,20 @@ export class ClaudeAcpAgent {
1614
1649
  * into the in-flight turn. The injected message's echo carries a uuid that
1615
1650
  * matches no queued turn, so the consumer drops it as an unrelated replay
1616
1651
  * without promoting/settling anything. It is normally delivered at {@link
1617
- * STEER_PRIORITY_NOW} so it pre-empts the current generation (interrupting a
1618
- * single-shot response, or slotting in between a multi-step turn's tool
1619
- * calls). While a permission or elicitation is awaiting user input it uses
1652
+ * STEER_PRIORITY_NOW}, which since SDK 0.3.286 joins the running turn
1653
+ * (running shells, agents and MCP calls move to the background) rather than
1654
+ * stopping it. While a permission or elicitation is awaiting user input it uses
1620
1655
  * {@link STEER_PRIORITY_LATER} instead, because interrupting that SDK
1621
1656
  * callback cancels the ACP request and can strand the prompt (IJAI-1191).
1622
1657
  * The steered message's own output streams via `session/update`, not this
1623
1658
  * response.
1624
1659
  *
1625
- * Pre-empting means ABORTING: the interrupted cycle emits a `result` of its
1626
- * own and the steered message runs as a second one, so the turn is marked
1627
- * (`Turn.steeredEchoes`) to settle at the SDK's `idle` instead of that result.
1660
+ * Before 0.3.286 delivering `now` ABORTED the cycle, which emitted a `result`
1661
+ * of its own before the steered message ran as a second one; since then it
1662
+ * joins the turn. The turn is marked (`Turn.steeredEchoes`) to settle at the
1663
+ * SDK's `idle` instead of at a result in both cases, so either CLI behaviour
1664
+ * settles once, after the steered work. Zeo sends no ACP steering, so none
1665
+ * of this is reachable from it.
1628
1666
  *
1629
1667
  * When the session is idle, the opt-in path returns `promptRequired` WITHOUT
1630
1668
  * calling `prompt()`, pushing SDK input, or mutating `turnQueue`: the content
@@ -2329,6 +2367,34 @@ export class ClaudeAcpAgent {
2329
2367
  * while true, the turn's settlement stays deferred so the subagent's
2330
2368
  * output and permission requests land inside it (see
2331
2369
  * Turn.deferredSettle). */
2370
+ /** Ends the display terminal of a command that went to the background,
2371
+ * once its task ends (see `Session.backgroundTerminals`). The code is the
2372
+ * one Claude Code's summary names, else 1 for a failed or stopped task —
2373
+ * a known failure never goes out as null — and null for a completion
2374
+ * that names none. */
2375
+ const endBackgroundTerminal = async (taskId, exitCode) => {
2376
+ const terminal = session.backgroundTerminals?.get(taskId);
2377
+ if (!terminal)
2378
+ return;
2379
+ session.backgroundTerminals.delete(taskId);
2380
+ await sendUpdate({
2381
+ sessionId: params.sessionId,
2382
+ update: {
2383
+ sessionUpdate: "tool_call_update",
2384
+ toolCallId: terminal.toolCallId,
2385
+ _meta: {
2386
+ ...(terminal.parentToolUseId
2387
+ ? { claudeCode: { parentToolUseId: terminal.parentToolUseId } }
2388
+ : {}),
2389
+ terminal_exit: {
2390
+ terminal_id: terminal.toolCallId,
2391
+ exit_code: exitCode,
2392
+ signal: null,
2393
+ },
2394
+ },
2395
+ },
2396
+ });
2397
+ };
2332
2398
  const turnAwaitingSubagents = (turn) => {
2333
2399
  if (!turn.spawnedTaskIds?.size) {
2334
2400
  return false;
@@ -2356,6 +2422,33 @@ export class ClaudeAcpAgent {
2356
2422
  settleActive(turn.deferredSettle);
2357
2423
  }
2358
2424
  };
2425
+ /** Item 106: arms the drain grace (see `HELD_TURN_DRAIN_GRACE_MS`) when a
2426
+ * prune leaves the held turn with no live subagent while Claude Code is
2427
+ * idle — the state in which a lost task_notification parks the turn. At
2428
+ * expiry the turn settles only if nothing moved: same turn, still held,
2429
+ * still drained, still idle. A followup that started meanwhile (state
2430
+ * `running`) settles the turn itself at its result or idle. */
2431
+ let drainGrace;
2432
+ const armDrainGrace = () => {
2433
+ const turn = session.activeTurn;
2434
+ if (drainGrace !== undefined ||
2435
+ !isHeldOpen(turn) ||
2436
+ turnAwaitingSubagents(turn) ||
2437
+ session.lastSessionState !== "idle") {
2438
+ return;
2439
+ }
2440
+ drainGrace = setTimeout(() => {
2441
+ drainGrace = undefined;
2442
+ if (session.activeTurn === turn &&
2443
+ isHeldOpen(turn) &&
2444
+ !turnAwaitingSubagents(turn) &&
2445
+ session.lastSessionState === "idle") {
2446
+ this.logger.log(`[held-turn] settled after the drain grace: no followup came (task_notification lost?) session=${params.sessionId}`);
2447
+ settleDeferredIfDrained();
2448
+ }
2449
+ }, HELD_TURN_DRAIN_GRACE_MS);
2450
+ drainGrace.unref?.();
2451
+ };
2359
2452
  /** Settle the active turn with `outcome` now — unless subagents it
2360
2453
  * spawned are still live, in which case store the outcome and hold the
2361
2454
  * turn open (see Turn.deferredSettle). Every result-time settle of a
@@ -3270,9 +3363,17 @@ export class ClaudeAcpAgent {
3270
3363
  case "files_persisted":
3271
3364
  break;
3272
3365
  case "task_progress":
3366
+ if (isLateTaskRun(session, message.task_id, message.run_id)) {
3367
+ this.logger.log(`[task/late-run] dropped=task_progress task=${message.task_id} run=${message.run_id}`);
3368
+ break;
3369
+ }
3273
3370
  session.taskFeedPublisher?.notify(session.taskFeed.onProgress(message));
3274
3371
  break;
3275
3372
  case "task_started":
3373
+ if (isLateTaskRun(session, message.task_id, message.run_id)) {
3374
+ this.logger.log(`[task/late-run] dropped=task_started task=${message.task_id} run=${message.run_id}`);
3375
+ break;
3376
+ }
3276
3377
  // For subagent tasks `task_id` is the subagent's agent id (the
3277
3378
  // SDK keys its task registry by agent id) and `tool_use_id` is
3278
3379
  // the Agent/Task tool_use that spawned it — recorded so the
@@ -3305,9 +3406,15 @@ export class ClaudeAcpAgent {
3305
3406
  session.taskFeedPublisher?.notify(session.taskFeed.onStarted(message, toolDescriptionOf(session.toolUseCache, message.tool_use_id)));
3306
3407
  break;
3307
3408
  case "task_notification":
3409
+ if (isLateTaskRun(session, message.task_id, message.run_id)) {
3410
+ this.logger.log(`[task/late-run] dropped=task_notification task=${message.task_id} run=${message.run_id}`);
3411
+ break;
3412
+ }
3308
3413
  // The task settled — no further tool calls can originate
3309
3414
  // from it, so its registry entry can be dropped.
3310
3415
  session.liveBackgroundTasks.delete(message.task_id);
3416
+ await endBackgroundTerminal(message.task_id, backgroundExitCode(message.status, message.summary));
3417
+ armDrainGrace();
3311
3418
  if (session.taskFeed && session.taskFeedPublisher) {
3312
3419
  const readable = await endingOutputReadable(session, message.task_id, message.output_file);
3313
3420
  const change = session.taskFeed.onNotification(message);
@@ -3318,6 +3425,10 @@ export class ClaudeAcpAgent {
3318
3425
  }
3319
3426
  break;
3320
3427
  case "task_updated":
3428
+ if (isLateTaskRun(session, message.task_id, message.run_id)) {
3429
+ this.logger.log(`[task/late-run] dropped=task_updated task=${message.task_id} run=${message.run_id}`);
3430
+ break;
3431
+ }
3321
3432
  // terminal-status task_updated patch and a (deduplicated)
3322
3433
  // task_notification when a task settles, but only the patch is
3323
3434
  // guaranteed per transition — prune on it too so the registry
@@ -3327,6 +3438,10 @@ export class ClaudeAcpAgent {
3327
3438
  message.patch.status === "failed" ||
3328
3439
  message.patch.status === "killed") {
3329
3440
  session.liveBackgroundTasks.delete(message.task_id);
3441
+ // Usually first: the notification with its summary follows
3442
+ // but is not guaranteed, so the terminal ends here.
3443
+ await endBackgroundTerminal(message.task_id, backgroundExitCode(message.patch.status, message.patch.error));
3444
+ armDrainGrace();
3330
3445
  }
3331
3446
  if (session.taskFeed && session.taskFeedPublisher) {
3332
3447
  // The CLI queues the terminal patch BEFORE the
@@ -3526,6 +3641,7 @@ export class ClaudeAcpAgent {
3526
3641
  session.liveBackgroundTasks.delete(taskId);
3527
3642
  }
3528
3643
  }
3644
+ armDrainGrace();
3529
3645
  }
3530
3646
  // The same level, forwarded: once the turn has settled the
3531
3647
  // client reads the thread as idle, and a background shell or
@@ -3845,11 +3961,13 @@ export class ClaudeAcpAgent {
3845
3961
  settleOrDefer({ stopReason: "refusal", usage: sessionUsage(session) });
3846
3962
  break;
3847
3963
  }
3848
- // A priority:'now' steer can make the SDK terminate the
3849
- // interrupted cycle with an error-shaped diagnostic result
3850
- // before it replays the injected message's echo. That result is
3851
- // not the steered command's outcome: keep it on the steer lane
3852
- // and let the cycle after the pending echo decide the turn.
3964
+ // Up to CLI 2.1.285 a priority:'now' steer could make the SDK
3965
+ // terminate the interrupted cycle with an error-shaped
3966
+ // diagnostic result before it replayed the injected message's
3967
+ // echo (since 0.3.286 the message joins the turn instead, so
3968
+ // this lane is kept for older CLIs). That result is not the
3969
+ // steered command's outcome: keep it on the steer lane and let
3970
+ // the cycle after the pending echo decide the turn.
3853
3971
  if (message.is_error &&
3854
3972
  isSteering(session.activeTurn) &&
3855
3973
  session.activeTurn.steeredEchoes.size > 0) {
@@ -4468,6 +4586,19 @@ export class ClaudeAcpAgent {
4468
4586
  // Before toAcpNotifications, which prunes the tool_use cache entry
4469
4587
  // that says the result is a Bash call's.
4470
4588
  observeBackgroundBashResult(message, content, session);
4589
+ // The command's terminal runs until its task ends, unless the task
4590
+ // has ended already (a fast command can end before its result).
4591
+ const runningTerminal = this.clientCapabilities?._meta?.["terminal_output"] === true
4592
+ ? backgroundBashTerminal(message, content, session)
4593
+ : undefined;
4594
+ if (runningTerminal && session.liveBackgroundTasks.has(runningTerminal.taskId)) {
4595
+ (session.backgroundTerminals ??= new Map()).set(runningTerminal.taskId, {
4596
+ toolCallId: runningTerminal.toolCallId,
4597
+ ...(message.parent_tool_use_id
4598
+ ? { parentToolUseId: message.parent_tool_use_id }
4599
+ : {}),
4600
+ });
4601
+ }
4471
4602
  for (const notification of toAcpNotifications(content, message.message.role, params.sessionId, session.toolUseCache, this.client, this.logger, {
4472
4603
  clientCapabilities: this.clientCapabilities,
4473
4604
  parentToolUseId: message.parent_tool_use_id,
@@ -4495,7 +4626,9 @@ export class ClaudeAcpAgent {
4495
4626
  // filtered out of `content` above; blocks that do pass through
4496
4627
  // (e.g. a subagent image) carry the stamped parentToolUseId
4497
4628
  // meta and are excluded there.
4498
- await sendUpdate(acceptedPlanToolResult(notification, acceptedPlanToolUseId));
4629
+ await sendUpdate(withRunningTerminal(acceptedPlanToolResult(notification, acceptedPlanToolUseId), runningTerminal && session.backgroundTerminals?.has(runningTerminal.taskId)
4630
+ ? runningTerminal.toolCallId
4631
+ : undefined));
4499
4632
  }
4500
4633
  break;
4501
4634
  }
@@ -5749,6 +5882,13 @@ export class ClaudeAcpAgent {
5749
5882
  * Not written to `contextWindowCache` — that stays keyed to the
5750
5883
  * `result.modelUsage` spellings — and a result still overwrites it.
5751
5884
  * Ported from upstream #1186.
5885
+ *
5886
+ * Asks for the `summary` detail (parity item 97, upstream #1258): the
5887
+ * default `full` breakdown issues one `messages/count_tokens` call per
5888
+ * category, and only `rawMaxTokens` is read here. The two other callers
5889
+ * (`readResumedLiveModel`, `fetchContextUsedTokens`) read `totalTokens`,
5890
+ * which `summary` takes from the last response's usage plus local
5891
+ * estimates instead of counting — not the same number, so they keep `full`.
5752
5892
  */
5753
5893
  refreshContextWindowInBackground(sessionId, session) {
5754
5894
  if (session.contextWindowAuthoritative)
@@ -5760,7 +5900,7 @@ export class ClaudeAcpAgent {
5760
5900
  session.models.currentModelId === modelId;
5761
5901
  // A synchronous throw must not fail the caller either.
5762
5902
  Promise.resolve()
5763
- .then(() => query.getContextUsage())
5903
+ .then(() => query.getContextUsage({ detail: "summary" }))
5764
5904
  .then((usage) => {
5765
5905
  if (!stillCurrent() || session.contextWindowAuthoritative)
5766
5906
  return;
@@ -6225,6 +6365,9 @@ export class ClaudeAcpAgent {
6225
6365
  session.query = newQuery;
6226
6366
  session.input = newInput;
6227
6367
  session.queryOptions = options;
6368
+ // Run ids are per CLI process: the replacement's must not be judged
6369
+ // against the old process's (see isLateTaskRun).
6370
+ session.taskRunIds = undefined;
6228
6371
  // The superseded consumer exits via its guards without touching the
6229
6372
  // session; drop its handle so the caller's ensureConsumer starts a
6230
6373
  // fresh consumer for the new query.
@@ -8234,12 +8377,8 @@ function shouldEmitToolCall(toolName) {
8234
8377
  * clients may use as the shell command preview, while still giving clients
8235
8378
  * access to Claude's concise human-readable title. */
8236
8379
  function claudeCodeMetaFromToolUse(toolUse, cwd) {
8237
- const description = (toolUse.name === "Bash" || toolUse.name === "PowerShell") &&
8238
- toolUse.input !== null &&
8239
- typeof toolUse.input === "object" &&
8240
- "description" in toolUse.input &&
8241
- typeof toolUse.input.description === "string"
8242
- ? toolUse.input.description
8380
+ const description = toolUse.name === "Bash" || toolUse.name === "PowerShell"
8381
+ ? shellDescription(toolUse.input)
8243
8382
  : undefined;
8244
8383
  const skillName = toolUse.name === "Skill"
8245
8384
  ? toolUse.input?.skill
@@ -9077,6 +9216,71 @@ function getMatchingModelUsage(modelUsage, currentModel) {
9077
9216
  return { key: bestKey, usage: modelUsage[bestKey] };
9078
9217
  }
9079
9218
  }
9219
+ /**
9220
+ * Parity item 92: the Bash tool call and task of a command this result sent to
9221
+ * the background — the structured `BashOutput` carries `backgroundTaskId`, and
9222
+ * the message holds exactly one tool_result, of a Bash call.
9223
+ */
9224
+ function backgroundBashTerminal(message, content, session) {
9225
+ if (message.type !== "user" || !Array.isArray(content))
9226
+ return undefined;
9227
+ const result = message.tool_use_result;
9228
+ if (typeof result !== "object" || result === null || !("backgroundTaskId" in result)) {
9229
+ return undefined;
9230
+ }
9231
+ const taskId = result.backgroundTaskId;
9232
+ if (typeof taskId !== "string" || taskId === "")
9233
+ return undefined;
9234
+ const blocks = content.filter((c) => typeof c === "object" && c !== null && c.type === "tool_result");
9235
+ if (blocks.length !== 1)
9236
+ return undefined;
9237
+ const toolCallId = blocks[0].tool_use_id;
9238
+ if (session.toolUseCache[toolCallId]?.name !== "Bash")
9239
+ return undefined;
9240
+ return { taskId, toolCallId };
9241
+ }
9242
+ /**
9243
+ * Drops `terminal_exit` from the tool result update of `toolCallId`: the Bash
9244
+ * call returned as soon as its command detached, and the exit would mark the
9245
+ * terminal as ended while the command still runs.
9246
+ */
9247
+ export function withRunningTerminal(notification, toolCallId) {
9248
+ const update = notification.update;
9249
+ if (toolCallId === undefined ||
9250
+ update.sessionUpdate !== "tool_call_update" ||
9251
+ update.toolCallId !== toolCallId ||
9252
+ !update._meta ||
9253
+ !("terminal_exit" in update._meta)) {
9254
+ return notification;
9255
+ }
9256
+ const meta = { ...update._meta };
9257
+ delete meta.terminal_exit;
9258
+ const next = { ...update, _meta: meta };
9259
+ if (Object.keys(meta).length === 0)
9260
+ delete next._meta;
9261
+ return { ...notification, update: next };
9262
+ }
9263
+ /**
9264
+ * The exit code of a background command whose task ended, from what the task's
9265
+ * ending says. Claude Code's summary reads `Background command "<d>" completed
9266
+ * (exit code N[: note])` or `… failed with exit code N` (CLI 2.1.285); an
9267
+ * ending names a code only at its end, so a description holding the words
9268
+ * cannot be mistaken for it. A completion with a non-zero code is one Claude
9269
+ * Code accepted as a success (grep's "No matches found"), so it goes out as
9270
+ * null; a failure or stop that names no code goes out as 1, never null.
9271
+ */
9272
+ export function backgroundExitCode(status, text) {
9273
+ const failed = status === "failed" || status === "killed" || status === "stopped";
9274
+ const said = typeof text === "string" ? text : "";
9275
+ if (failed) {
9276
+ const match = /exit code (\d+)\s*$/.exec(said);
9277
+ return match ? Number(match[1]) : 1;
9278
+ }
9279
+ const match = /\(exit code (\d+)(?::[^)]*)?\)\s*$/.exec(said);
9280
+ if (match && Number(match[1]) === 0)
9281
+ return 0;
9282
+ return null;
9283
+ }
9080
9284
  /**
9081
9285
  * Story 041 (R1.1, R1.6): a backgrounded Bash call's result names the file the
9082
9286
  * CLI writes its output to. When the structured `BashOutput` carries
package/dist/tools.d.ts CHANGED
@@ -23,7 +23,8 @@ interface ToolUpdate {
23
23
  };
24
24
  terminal_exit?: {
25
25
  terminal_id: string;
26
- exit_code: number;
26
+ /** Null when the code is not known (as in `TerminalExitStatus`). */
27
+ exit_code: number | null;
27
28
  signal: string | null;
28
29
  };
29
30
  };
@@ -33,6 +34,15 @@ interface ToolUpdate {
33
34
  * Returns the original path if it's outside the project directory or if no cwd is provided.
34
35
  */
35
36
  export declare function toDisplayPath(filePath: string, cwd?: string): string;
37
+ /** Read a Bash or PowerShell input's description the way the CLI validates it.
38
+ * Since CLI 2.1.295 the CLI accepts `command_description` for `description`,
39
+ * but the streamed tool_use block keeps the key the model sent. The canonical
40
+ * key wins when both spellings are present. (Upstream #1330.) */
41
+ export declare function shellDescription(input: unknown): string | undefined;
42
+ /** Read a Grep input's path the way the CLI validates it. Since CLI 2.1.292 the
43
+ * CLI accepts `file_path` for `path`; the canonical key wins when both are
44
+ * present. (Upstream #1271.) */
45
+ export declare function grepPath(input: unknown): string | undefined;
36
46
  export declare function toolInfoFromToolUse(toolUse: any, supportsTerminalOutput?: boolean, cwd?: string): ToolInfo;
37
47
  export declare function toolUpdateFromToolResult(toolResult: ToolResultBlockParam | BetaToolResultBlockParam | BetaWebSearchToolResultBlockParam | BetaWebFetchToolResultBlockParam | WebSearchToolResultBlockParam | BetaCodeExecutionToolResultBlockParam | BetaBashCodeExecutionToolResultBlockParam | BetaTextEditorCodeExecutionToolResultBlockParam | BetaRequestMCPToolResultBlockParam | BetaToolSearchToolResultBlockParam, toolUse: any | undefined, supportsTerminalOutput?: boolean, toolUseResult?: unknown): ToolUpdate;
38
48
  export type ClaudePlanEntry = {
@@ -40,6 +50,12 @@ export type ClaudePlanEntry = {
40
50
  status: "pending" | "in_progress" | "completed";
41
51
  activeForm: string;
42
52
  };
53
+ /**
54
+ * The exit code the text of a failed command names. Claude Code starts the text
55
+ * of a command that exited with a failing code with `Exit code N`; other
56
+ * failures, such as a denial or a command that could not start, name none.
57
+ */
58
+ export declare function failureExitCode(text: string): number | undefined;
43
59
  export declare function planEntries(input: {
44
60
  todos: ClaudePlanEntry[];
45
61
  } | undefined): PlanEntry[];
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/dist/tools.js CHANGED
@@ -4,6 +4,10 @@ import path from "node:path";
4
4
  * Returns the original path if it's outside the project directory or if no cwd is provided.
5
5
  */
6
6
  export function toDisplayPath(filePath, cwd) {
7
+ // `path.resolve` throws on a non-string (upstream issue #1308); the type says
8
+ // string, but the value is a model's tool input.
9
+ if (typeof filePath !== "string")
10
+ return displayValueOf(filePath) ?? "";
7
11
  if (!cwd)
8
12
  return filePath;
9
13
  const resolvedCwd = path.resolve(cwd);
@@ -13,6 +17,30 @@ export function toDisplayPath(filePath, cwd) {
13
17
  }
14
18
  return filePath;
15
19
  }
20
+ /** A tool input's path, when it is one: a non-empty string. Anything else — a
21
+ * model can emit `{"file_path": 12345}`, which Claude Code rejects — is no
22
+ * path, so it is neither resolved nor sent as a location or a diff target
23
+ * (parity item 104, upstream issue #1308). */
24
+ function pathOf(value) {
25
+ return typeof value === "string" && value.length > 0 ? value : undefined;
26
+ }
27
+ /** How a tool input value that is not a path still shows in a title: a number
28
+ * or boolean as its text, so the failed call names what the model sent;
29
+ * anything else (an object, null) as nothing. */
30
+ function displayValueOf(value) {
31
+ if (typeof value === "string")
32
+ return value.length > 0 ? value : undefined;
33
+ if (typeof value === "number" || typeof value === "boolean" || typeof value === "bigint") {
34
+ return String(value);
35
+ }
36
+ return undefined;
37
+ }
38
+ /** The title form of a tool input's path: project-relative when it is a path
39
+ * under `cwd`, the value's text when it is a scalar that is not a path. */
40
+ function displayPathOf(value, cwd) {
41
+ const filePath = pathOf(value);
42
+ return filePath !== undefined ? toDisplayPath(filePath, cwd) : displayValueOf(value);
43
+ }
16
44
  /** Read a Write tool_use input the way the CLI validates it. Since 2.1.280 the
17
45
  * CLI accepts `path` for `file_path` and `file_text`/`file_content` for
18
46
  * `content` when a model sends those spellings, but the streamed tool_use
@@ -26,14 +54,57 @@ function normalizeWriteInput(input) {
26
54
  const content = raw.content ?? raw.file_text ?? raw.file_content;
27
55
  return { ...raw, file_path: filePath, content };
28
56
  }
57
+ /** Read a Bash or PowerShell input's description the way the CLI validates it.
58
+ * Since CLI 2.1.295 the CLI accepts `command_description` for `description`,
59
+ * but the streamed tool_use block keeps the key the model sent. The canonical
60
+ * key wins when both spellings are present. (Upstream #1330.) */
61
+ export function shellDescription(input) {
62
+ if (!input || typeof input !== "object")
63
+ return undefined;
64
+ const raw = input;
65
+ if (typeof raw.description === "string")
66
+ return raw.description;
67
+ return typeof raw.command_description === "string" ? raw.command_description : undefined;
68
+ }
69
+ /** Read a Grep input's path the way the CLI validates it. Since CLI 2.1.292 the
70
+ * CLI accepts `file_path` for `path`; the canonical key wins when both are
71
+ * present. (Upstream #1271.) */
72
+ export function grepPath(input) {
73
+ if (!input || typeof input !== "object")
74
+ return undefined;
75
+ const raw = input;
76
+ if (typeof raw.path === "string")
77
+ return raw.path;
78
+ return typeof raw.file_path === "string" ? raw.file_path : undefined;
79
+ }
80
+ /** Read a Grep input's output mode the way the CLI validates it. Since CLI
81
+ * 2.1.295 the CLI reads a `-l` or `-c` flag (`true` or `"true"`) as
82
+ * `output_mode: "files_with_matches"` or `"count"` when `output_mode` is
83
+ * unset. (Upstream #1330.) */
84
+ function grepOutputMode(input) {
85
+ if (!input || typeof input !== "object")
86
+ return undefined;
87
+ const raw = input;
88
+ if (typeof raw.output_mode === "string")
89
+ return raw.output_mode;
90
+ if (raw["-l"] === true || raw["-l"] === "true")
91
+ return "files_with_matches";
92
+ if (raw["-c"] === true || raw["-c"] === "true")
93
+ return "count";
94
+ return undefined;
95
+ }
29
96
  export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd) {
30
97
  const name = toolUse.name;
31
98
  switch (name) {
32
99
  case "Agent":
33
100
  case "Task": {
34
101
  const input = toolUse.input;
102
+ // `effort` is set only when the user asked for one (CLI 2.1.292+).
103
+ const effort = input && "effort" in input && typeof input.effort === "string"
104
+ ? ` (${input.effort} effort)`
105
+ : "";
35
106
  return {
36
- title: input?.description ? input.description : "Task",
107
+ title: (input?.description ? input.description : "Task") + effort,
37
108
  kind: "think",
38
109
  content: input && "prompt" in input
39
110
  ? [
@@ -48,16 +119,17 @@ export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd
48
119
  case "Bash":
49
120
  case "PowerShell": {
50
121
  const input = toolUse.input;
122
+ const description = shellDescription(input);
51
123
  return {
52
124
  title: input?.command ? input.command : "Terminal",
53
125
  kind: "execute",
54
126
  content: supportsTerminalOutput
55
127
  ? [{ type: "terminal", terminalId: toolUse.id }]
56
- : input && input.description
128
+ : description
57
129
  ? [
58
130
  {
59
131
  type: "content",
60
- content: { type: "text", text: input.description },
132
+ content: { type: "text", text: description },
61
133
  },
62
134
  ]
63
135
  : [],
@@ -72,15 +144,16 @@ export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd
72
144
  else if (input?.offset) {
73
145
  limit = " (from line " + input.offset + ")";
74
146
  }
75
- const displayPath = input?.file_path ? toDisplayPath(input.file_path, cwd) : "File";
147
+ const filePath = pathOf(input?.file_path);
148
+ const displayPath = displayPathOf(input?.file_path, cwd) ?? "File";
76
149
  return {
77
150
  title: "Read " + displayPath + limit,
78
151
  kind: "read",
79
- locations: input?.file_path
152
+ locations: filePath
80
153
  ? [
81
154
  {
82
- path: input.file_path,
83
- line: input.offset ?? 1,
155
+ path: filePath,
156
+ line: input?.offset ?? 1,
84
157
  },
85
158
  ]
86
159
  : [],
@@ -89,12 +162,13 @@ export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd
89
162
  }
90
163
  case "Write": {
91
164
  const input = normalizeWriteInput(toolUse.input);
165
+ const filePath = pathOf(input?.file_path);
92
166
  let content = [];
93
- if (input && input.file_path) {
167
+ if (input && filePath) {
94
168
  content = [
95
169
  {
96
170
  type: "diff",
97
- path: input.file_path,
171
+ path: filePath,
98
172
  oldText: null,
99
173
  newText: input.content,
100
174
  },
@@ -108,37 +182,39 @@ export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd
108
182
  },
109
183
  ];
110
184
  }
111
- const displayPath = input?.file_path ? toDisplayPath(input.file_path, cwd) : undefined;
185
+ const displayPath = displayPathOf(input?.file_path, cwd);
112
186
  return {
113
187
  title: displayPath ? `Write ${displayPath}` : "Preparing file…",
114
188
  kind: "edit",
115
189
  content,
116
- locations: input?.file_path ? [{ path: input.file_path }] : [],
190
+ locations: filePath ? [{ path: filePath }] : [],
117
191
  };
118
192
  }
119
193
  case "Edit": {
120
194
  const input = toolUse.input;
195
+ const filePath = pathOf(input?.file_path);
121
196
  let content = [];
122
- if (input && input.file_path && (input.old_string || input.new_string)) {
197
+ if (input && filePath && (input.old_string || input.new_string)) {
123
198
  content = [
124
199
  {
125
200
  type: "diff",
126
- path: input.file_path,
201
+ path: filePath,
127
202
  oldText: input.old_string || null,
128
203
  newText: input.new_string ?? "",
129
204
  },
130
205
  ];
131
206
  }
132
- const displayPath = input?.file_path ? toDisplayPath(input.file_path, cwd) : undefined;
207
+ const displayPath = displayPathOf(input?.file_path, cwd);
133
208
  return {
134
209
  title: displayPath ? `Edit ${displayPath}` : "Edit",
135
210
  kind: "edit",
136
211
  content,
137
- locations: input?.file_path ? [{ path: input.file_path }] : [],
212
+ locations: filePath ? [{ path: filePath }] : [],
138
213
  };
139
214
  }
140
215
  case "Glob": {
141
216
  const input = toolUse.input;
217
+ const globPath = pathOf(input?.path);
142
218
  let label = "Find";
143
219
  if (input?.path) {
144
220
  label += ` \`${input.path}\``;
@@ -150,7 +226,7 @@ export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd
150
226
  title: label,
151
227
  kind: "search",
152
228
  content: [],
153
- locations: input?.path ? [{ path: input.path }] : [],
229
+ locations: globPath ? [{ path: globPath }] : [],
154
230
  };
155
231
  }
156
232
  case "Grep": {
@@ -171,8 +247,9 @@ export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd
171
247
  if (input?.["-C"] !== undefined) {
172
248
  label += ` -C ${input["-C"]}`;
173
249
  }
174
- if (input?.output_mode) {
175
- switch (input.output_mode) {
250
+ const outputMode = grepOutputMode(input);
251
+ if (outputMode) {
252
+ switch (outputMode) {
176
253
  case "files_with_matches":
177
254
  label += " -l";
178
255
  break;
@@ -199,8 +276,9 @@ export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd
199
276
  if (input?.pattern) {
200
277
  label += ` "${input.pattern}"`;
201
278
  }
202
- if (input?.path) {
203
- label += ` ${input.path}`;
279
+ const searchPath = grepPath(input);
280
+ if (searchPath) {
281
+ label += ` ${searchPath}`;
204
282
  }
205
283
  return {
206
284
  title: label,
@@ -210,8 +288,10 @@ export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd
210
288
  }
211
289
  case "WebFetch": {
212
290
  const input = toolUse.input;
291
+ // `offset` reads on through a page too long for one call (CLI 2.1.290+).
292
+ const from = input?.offset ? ` (from char ${input.offset})` : "";
213
293
  return {
214
- title: input?.url ? `Fetch ${input.url}` : "Fetch",
294
+ title: input?.url ? `Fetch ${input.url}${from}` : "Fetch",
215
295
  kind: "fetch",
216
296
  content: input && input.prompt
217
297
  ? [
@@ -546,7 +626,13 @@ export function toolUpdateFromToolResult(toolResult, toolUse, supportsTerminalOu
546
626
  // or [{ type: "image", source: {...} }] when the local Bash tool
547
627
  // produces an image, e.g. piping a base64 data URI)
548
628
  let output = "";
629
+ // Parity item 92 (upstream #1252): the code is the one the result names.
630
+ // `null` means "not known" — `TerminalExitStatus` allows it — and is used
631
+ // only where the command did NOT fail: a client such as Zeo marks a
632
+ // command failed only on a non-null, non-zero code, so a known failure
633
+ // keeps a number (the `Exit code N` the text names, else 1).
549
634
  let exitCode = isError ? 1 : 0;
635
+ let codeFromResult = false;
550
636
  const structuredBash = structuredResult(toolUseResult);
551
637
  if (structuredBash &&
552
638
  typeof structuredBash.stdout === "string" &&
@@ -563,6 +649,11 @@ export function toolUpdateFromToolResult(toolResult, toolUse, supportsTerminalOu
563
649
  output = [output, "[Command was aborted before completion]"].filter(Boolean).join("\n");
564
650
  exitCode = 1;
565
651
  }
652
+ else if (structuredBash.returnCodeInterpretation !== undefined && !isError) {
653
+ // Claude Code accepted a non-zero code as a success (grep's "No
654
+ // matches found"); the result does not carry which code it was.
655
+ exitCode = null;
656
+ }
566
657
  // Structured stdout is clipped (~30k chars) when the full output was
567
658
  // persisted to disk; without this note the clip is silent and the
568
659
  // path to the full output is lost.
@@ -585,6 +676,7 @@ export function toolUpdateFromToolResult(toolResult, toolUse, supportsTerminalOu
585
676
  const bashResult = result;
586
677
  output = [bashResult.stdout, bashResult.stderr].filter(Boolean).join("\n");
587
678
  exitCode = bashResult.return_code;
679
+ codeFromResult = true;
588
680
  }
589
681
  else if (typeof result === "string") {
590
682
  output = result;
@@ -603,6 +695,13 @@ export function toolUpdateFromToolResult(toolResult, toolUse, supportsTerminalOu
603
695
  return toAcpContentUpdate(result, isError);
604
696
  }
605
697
  }
698
+ if (isError && !codeFromResult)
699
+ exitCode = failureExitCode(output) ?? 1;
700
+ // A command sent to the background is still running: the result only
701
+ // announces it. The consumer withholds this exit while the task is live
702
+ // and sends the real one when the task ends (`backgroundTerminals`).
703
+ if (structuredBash?.backgroundTaskId !== undefined)
704
+ exitCode = null;
606
705
  // Without a terminal id there is nothing the client can reconcile these
607
706
  // metas against, and emitting them anyway strands the output: a client that
608
707
  // buffers output/exit for terminals it has not been told about (Zed keeps
@@ -816,6 +915,15 @@ function toAcpContentBlock(content, isError) {
816
915
  return wrapText(JSON.stringify(content));
817
916
  }
818
917
  }
918
+ /**
919
+ * The exit code the text of a failed command names. Claude Code starts the text
920
+ * of a command that exited with a failing code with `Exit code N`; other
921
+ * failures, such as a denial or a command that could not start, name none.
922
+ */
923
+ export function failureExitCode(text) {
924
+ const match = /^Exit code (\d+)(?:\n|$)/.exec(text);
925
+ return match ? Number(match[1]) : undefined;
926
+ }
819
927
  export function planEntries(input) {
820
928
  return (input?.todos ?? []).map((todo) => ({
821
929
  content: todo.status === "in_progress" && todo.activeForm ? todo.activeForm : todo.content,
@@ -1 +1 @@
1
- {"version":3,"file":"usage-markdown.d.ts","sourceRoot":"","sources":["../src/usage-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAKxF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AA6DjD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,GAAG,IAAI,CAOpF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAU1E;AA0OD,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAS7E;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,KAAK,EACL,2DAA2D,CAC5D,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,mBAAmB,GAAG;IAAE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,CAAC;AAQvE;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwDxB"}
1
+ {"version":3,"file":"usage-markdown.d.ts","sourceRoot":"","sources":["../src/usage-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAKxF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AA6DjD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,GAAG,IAAI,CAOpF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAU1E;AAmSD,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAS7E;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,KAAK,EACL,2DAA2D,CAC5D,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,mBAAmB,GAAG;IAAE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,CAAC;AAQvE;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwDxB"}
@@ -227,8 +227,65 @@ function appendLimit(lines, label, window) {
227
227
  }
228
228
  /** How many MCP servers one contribution table lists. */
229
229
  const TOP_CONTRIBUTIONS = 3;
230
+ /**
231
+ * Labels for the usage patterns (`behaviors[].key`) the pinned SDK types
232
+ * define, worded as Claude Code's own `/usage` dialog words them (CLI 2.1.285:
233
+ * "41% of your usage hit a >100k-token cache miss"). A key not listed here — a
234
+ * newer CLI adds them ahead of the SDK types — renders from its own name, so it
235
+ * shows without a code change.
236
+ */
237
+ const BEHAVIOR_LABELS = {
238
+ cache_miss: "Hit a >100k-token cache miss",
239
+ long_context: "At >150k context",
240
+ subagent_heavy: "Subagent-heavy sessions",
241
+ high_parallel: "While 4+ sessions ran in parallel",
242
+ cron: "Sessions active for 8+ hours",
243
+ };
244
+ /** `max_effort` -> "Max effort", escaped: the key is the CLI's, not ours. */
245
+ function behaviorLabel(key) {
246
+ const known = BEHAVIOR_LABELS[key];
247
+ if (known !== undefined)
248
+ return known;
249
+ const words = key.replace(/_+/g, " ").trim();
250
+ return escapeMarkdown(words.charAt(0).toUpperCase() + words.slice(1));
251
+ }
252
+ /**
253
+ * A period's usage patterns, read defensively: the schema does not validate
254
+ * `behaviors[]`, so a report from a CLI that reshaped it still renders
255
+ * everything else. An entry with no usable key or share is skipped, and so is
256
+ * one with no share at all — the CLI sends every pattern it knows, most at 0%.
257
+ */
258
+ function readBehaviors(period) {
259
+ const raw = period?.behaviors;
260
+ if (!Array.isArray(raw))
261
+ return [];
262
+ const rows = [];
263
+ for (const entry of raw) {
264
+ if (typeof entry !== "object" || entry === null)
265
+ continue;
266
+ const { key, pct, count } = entry;
267
+ if (typeof key !== "string" || key.trim() === "")
268
+ continue;
269
+ if (typeof pct !== "number" || !Number.isFinite(pct) || pct <= 0)
270
+ continue;
271
+ rows.push({
272
+ key,
273
+ pct,
274
+ count: typeof count === "number" && Number.isFinite(count) && count >= 0 ? count : null,
275
+ });
276
+ }
277
+ return rows.sort((a, b) => b.pct - a.pct);
278
+ }
230
279
  function appendContributions(lines, label, period) {
231
280
  lines.push("", `**${label}** \u00b7 ${period.request_count} requests \u00b7 ${period.session_count} sessions`);
281
+ const behaviors = readBehaviors(period);
282
+ if (behaviors.length > 0) {
283
+ lines.push("", "| Usage pattern | Usage | Requests |", "|:--|--:|--:|");
284
+ for (const behavior of behaviors) {
285
+ const bar = usageBar(normalizeUtilization(behavior.pct) ?? 0);
286
+ lines.push(`| ${behaviorLabel(behavior.key)} | \`${bar}\` ${behavior.pct}% | ${behavior.count ?? "\u2014"} |`);
287
+ }
288
+ }
232
289
  if (period.mcp_servers.length === 0) {
233
290
  return;
234
291
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.28.0",
6
+ "version": "0.30.0",
7
7
  "description": "Claude Code in Zed and other ACP clients with the VS Code extension's UX — multi-select questions, refusal consent, live quota windows, background tasks, Ultracode effort and session notices. Fork of claude-agent-acp.",
8
8
  "main": "dist/lib.js",
9
9
  "types": "dist/lib.d.ts",
@@ -69,23 +69,23 @@
69
69
  "node": ">=24"
70
70
  },
71
71
  "dependencies": {
72
- "@agentclientprotocol/sdk": "1.5.1",
73
- "@anthropic-ai/claude-agent-sdk": "0.3.285",
72
+ "@agentclientprotocol/sdk": "1.8.0",
73
+ "@anthropic-ai/claude-agent-sdk": "0.3.296",
74
74
  "zod": "^4.0.0"
75
75
  },
76
76
  "devDependencies": {
77
- "@anthropic-ai/sdk": "0.128.0",
77
+ "@anthropic-ai/sdk": "0.132.0",
78
78
  "@eslint/js": "10.0.1",
79
79
  "@tsconfig/node24": "24.0.5",
80
- "@types/node": "26.6.2",
81
- "@typescript-eslint/eslint-plugin": "8.70.1",
82
- "@typescript-eslint/parser": "8.70.1",
83
- "eslint": "10.11.0",
80
+ "@types/node": "26.6.4",
81
+ "@typescript-eslint/eslint-plugin": "8.71.1",
82
+ "@typescript-eslint/parser": "8.71.1",
83
+ "eslint": "10.12.0",
84
84
  "eslint-config-prettier": "10.1.8",
85
- "globals": "17.12.0",
86
- "prettier": "3.9.8",
85
+ "globals": "17.13.0",
86
+ "prettier": "3.9.9",
87
87
  "ts-node": "10.9.2",
88
88
  "typescript": "6.0.3",
89
- "vitest": "5.0.1"
89
+ "vitest": "5.0.3"
90
90
  }
91
91
  }