@lucascouts/claude-agent-acp-plus 0.30.1 → 0.31.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.
package/README.md CHANGED
@@ -34,6 +34,7 @@ On top of upstream, aimed at parity with the Claude Code VS Code extension:
34
34
  - **Background tasks** — the live set of background tasks is published to the client
35
35
  - **Task feed** — every task the agent runs, with status, usage and timing, plus stop and send-to-background actions (see [Task feed](#task-feed))
36
36
  - **Session notices** — live advisories sent as ACP session notices, and context compaction reported rather than inferred
37
+ - **Plan updates** — a session option, on by default, that fills the client's plan view with the agent's todo list on current models
37
38
  - **Ultracode** in the effort picker, and a model picker that offers only the newest model of each family
38
39
  - **Per-session account selection**, and an agent name taken from the installed package
39
40
  - Permission prompts that honour the CLI's `defaultToNo` and `suppressAlwaysAllowRule`
@@ -472,6 +472,15 @@ export type Session = {
472
472
  /** Whether the Ultracode option is shown — the CLI's
473
473
  * `applied.ultracodeAvailable` once read back, the heuristic until then. */
474
474
  ultracodeAvailable: boolean;
475
+ /** The Plan updates intent (`plan-updates.ts`): whether the CLI runs with
476
+ * its todo tools. Fixed at spawn, so a toggle recreates the query lazily
477
+ * through `pendingQueryRecreate`. Optional only because tests hand-build
478
+ * Session objects; absent reads as "never offered". */
479
+ planUpdatesEnabled?: boolean;
480
+ /** The settings tier's own value for `CLAUDE_CODE_ENABLE_TODO_TOOLS`, when
481
+ * it defines one: that tier outranks the spawn env, so a recreate must
482
+ * override it there too. */
483
+ planUpdatesSettingsValue?: boolean;
475
484
  /** Whether this session's resolved settings disable workflows — the half of
476
485
  * the Ultracode gate that is not a model capability. Read once at
477
486
  * initialize and held, rather than re-read per model switch: settings are
@@ -1395,6 +1404,11 @@ export declare class ClaudeAcpAgent {
1395
1404
  * once the option exists (i.e. the current model supports fast mode), so the
1396
1405
  * option is guaranteed to be present in `configOptions`. */
1397
1406
  private applyFastMode;
1407
+ /** Show the CLI's overage refusal and turn Fast mode off through the same
1408
+ * setter a user toggle uses, so the resend loop stops. A setter failure is
1409
+ * logged and the notice still goes out: the user must learn why fast
1410
+ * requests are slow either way. */
1411
+ private onFastModeOverageRejected;
1398
1412
  /** The Ultracode display state for `buildConfigOptions`. */
1399
1413
  private ultracodeState;
1400
1414
  /**
@@ -1498,6 +1512,8 @@ export { MODE_CONFIG_ID };
1498
1512
  export declare const MODEL_CONFIG_ID = "model";
1499
1513
  export declare const AGENT_CONFIG_ID = "agent";
1500
1514
  export declare const FAST_MODE_CONFIG_ID = "fast";
1515
+ /** The CLI's `system/notification` key for a refused fast-mode overage. */
1516
+ export declare const FAST_MODE_OVERAGE_REJECTED_KEY = "fast-mode-overage-rejected";
1501
1517
  /** Select-fallback values used when the client has not opted into boolean
1502
1518
  * config options (see {@link createFastModeConfigOption}). */
1503
1519
  export declare const FAST_MODE_ON = "on";
@@ -1556,7 +1572,13 @@ thinkingEnabled?: boolean,
1556
1572
  ultracode?: UltracodeOptionState,
1557
1573
  /** The declared accounts plus the one in force, which decide whether an
1558
1574
  * account selector is advertised at all (R6.1/R6.2). */
1559
- settings?: AccountOptionState): SessionConfigOption[];
1575
+ settings?: AccountOptionState,
1576
+ /** Display state for Plan updates; omitted by direct callers/tests, in
1577
+ * which case the option is not shown. */
1578
+ planUpdates?: {
1579
+ enabled: boolean;
1580
+ useBooleanOption: boolean;
1581
+ }): SessionConfigOption[];
1560
1582
  export declare function resolveModelPreference(models: ModelInfo[], preference: string): ModelInfo | null;
1561
1583
  /** Map the live model reported by a resumed session onto the picker's model
1562
1584
  * list. The CLI restores a resumed session's model from the transcript's
@@ -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
@@ -20,6 +20,8 @@ import { SettingsManager } from "./settings.js";
20
20
  import { ContextCompactionLifecycle, contextCompactionMetadataFromBoundary, } from "./context-compaction.js";
21
21
  import { createThinkingConfigOption, effectiveThinkingConfig, resolveThinkingSelection, THINKING_CONFIG_ID, } from "./thinking-option.js";
22
22
  import { applyLegacyUltracodeEffort, applyUltracodeReadback, applyUltracodeToggle, effortFlagSettings, isLegacyUltracodeEffort, isUltracodeAvailable, readUltracodeState, resolveUltracodeRequested, ULTRACODE_CONFIG_ID, ultracodeConfigOption, } from "./ultracode.js";
23
+ import { deleteSessionIfStored } from "./session-delete.js";
24
+ import { applyPlanUpdatesToOptions, createPlanUpdatesConfigOption, resolvePlanUpdatesAtSpawn, resolvePlanUpdatesRequested, TODO_TOOLS_ENV, } from "./plan-updates.js";
23
25
  import { handleRewindCommand, parseRewindInvocation } from "./rewind-command.js";
24
26
  import { resolvePermissionMode, sessionAllowsBypass } from "./permissions/modes.js";
25
27
  import { normalizeDurablePermissionChangeSet } from "./permissions/normalization.js";
@@ -32,7 +34,7 @@ import { clientSupportsNotices, MAX_NOTICE_TITLE_LENGTH, normalizeNoticeText, no
32
34
  import { applyTaskCreate, applyTaskList, applyTaskUpdate, createPostToolUseHook, createTaskHook, parseTaskCreateOutput, parseTaskListOutput, parseTaskUpdateOutput, planEntries, registerHookCallback, shellDescription, taskStateToPlanEntries, toolInfoFromToolUse, toolUpdateFromDiffToolResponse, toolUpdateFromToolResult, } from "./tools.js";
33
35
  import { nodeToWebReadable, nodeToWebWritable, Pushable, unreachable } from "./utils.js";
34
36
  import { acceptedPlanToolResult, ExitPlanCoordinator, exitPlanModeRawOutput, isExitPlanInterruptionResult, observeExitPlanToolResults, } from "./exit-plan.js";
35
- import { DEFAULT_AGENT_ID, EFFORT_CONFIG_ID } from "./session-config-ids.js";
37
+ import { DEFAULT_AGENT_ID, EFFORT_CONFIG_ID, PLAN_UPDATES_CONFIG_ID, } from "./session-config-ids.js";
36
38
  import { withPrecompactHistory } from "./compacted-history.js";
37
39
  import { findTranscript } from "./transcript-path.js";
38
40
  import { parseToolResultMeta } from "./tool-result-meta.js";
@@ -1360,6 +1362,7 @@ export class ClaudeAcpAgent {
1360
1362
  session.turnQueue.push(turn);
1361
1363
  session.input.push(userMessage);
1362
1364
  this.ensureConsumer(session, params.sessionId);
1365
+ session.titles.onPromptQueued(session, params.prompt);
1363
1366
  await this.publishGoalFromPrompt(params.sessionId, firstText, promptUuid);
1364
1367
  return response;
1365
1368
  }
@@ -3483,8 +3486,15 @@ export class ClaudeAcpAgent {
3483
3486
  }
3484
3487
  break;
3485
3488
  }
3486
- case "plugin_install":
3487
3489
  case "notification":
3490
+ // Fast-mode overage refused (PARITY-REPORT §23 item 114): every
3491
+ // fast request is refused and resent at standard speed, and this
3492
+ // is the CLI's only word on it. Exact key, this session only.
3493
+ if (message.key === FAST_MODE_OVERAGE_REJECTED_KEY) {
3494
+ await this.onFastModeOverageRejected(params.sessionId, session, message.text, supportsNotices);
3495
+ }
3496
+ break;
3497
+ case "plugin_install":
3488
3498
  case "thinking_tokens":
3489
3499
  // Todo: process via status api: https://docs.claude.com/en/docs/claude-code/hooks#hook-output
3490
3500
  break;
@@ -5191,7 +5201,9 @@ export class ClaudeAcpAgent {
5191
5201
  if (this.sessions[params.sessionId]) {
5192
5202
  await this.teardownSession(params.sessionId);
5193
5203
  }
5194
- await deleteSession(params.sessionId);
5204
+ // A never-prompted, unknown or non-UUID session has no transcript, and
5205
+ // deleting it succeeds (upstream #1351); any other SDK failure still fails.
5206
+ await deleteSessionIfStored(params.sessionId, deleteSession);
5195
5207
  return {};
5196
5208
  }
5197
5209
  async setSessionMode(params) {
@@ -5249,6 +5261,18 @@ export class ClaudeAcpAgent {
5249
5261
  await applyUltracodeToggle(session, resolveUltracodeRequested(params), useBoolean);
5250
5262
  return { configOptions: session.configOptions };
5251
5263
  }
5264
+ // Plan updates is fixed at CLI spawn: record the intent and recreate the
5265
+ // query lazily at the next prompt, the path Thinking takes below. An
5266
+ // invalid value throws before the session is touched.
5267
+ if (params.configId === PLAN_UPDATES_CONFIG_ID) {
5268
+ const enabled = resolvePlanUpdatesRequested(params);
5269
+ if (enabled !== session.planUpdatesEnabled) {
5270
+ session.planUpdatesEnabled = enabled;
5271
+ session.pendingQueryRecreate = true;
5272
+ session.configOptions = session.configOptions.map((o) => o.id === PLAN_UPDATES_CONFIG_ID ? createPlanUpdatesConfigOption(enabled, useBoolean) : o);
5273
+ }
5274
+ return { configOptions: session.configOptions };
5275
+ }
5252
5276
  if (params.configId === EFFORT_CONFIG_ID &&
5253
5277
  isLegacyUltracodeEffort(params.value) &&
5254
5278
  (await applyLegacyUltracodeEffort(session, useBoolean))) {
@@ -5975,7 +5999,14 @@ export class ClaudeAcpAgent {
5975
5999
  // and its selection survive unchanged.
5976
6000
  accounts: session.declaredAccounts,
5977
6001
  currentAccount: session.currentAccount,
5978
- });
6002
+ },
6003
+ // Model-independent, threaded for the same reason as the account.
6004
+ session.planUpdatesEnabled === undefined
6005
+ ? undefined
6006
+ : {
6007
+ enabled: session.planUpdatesEnabled,
6008
+ useBooleanOption: clientSupportsBooleanConfigOptions(this.clientCapabilities),
6009
+ });
5979
6010
  // Sync effort with the SDK if it changed after the model switch
5980
6011
  const newEffortOpt = session.configOptions.find((o) => o.id === EFFORT_CONFIG_ID);
5981
6012
  const newEffort = typeof newEffortOpt?.currentValue === "string" ? newEffortOpt.currentValue : undefined;
@@ -6087,6 +6118,29 @@ export class ClaudeAcpAgent {
6087
6118
  session.fastModeEnabled = enabled;
6088
6119
  this.refreshFastModeOption(session, enabled);
6089
6120
  }
6121
+ /** Show the CLI's overage refusal and turn Fast mode off through the same
6122
+ * setter a user toggle uses, so the resend loop stops. A setter failure is
6123
+ * logged and the notice still goes out: the user must learn why fast
6124
+ * requests are slow either way. */
6125
+ async onFastModeOverageRejected(sessionId, session, text, supportsNotices) {
6126
+ await this.client.sessionUpdate({
6127
+ sessionId,
6128
+ update: noticeOrTranscriptUpdate({ severity: "warning", ...splitNoticeText(text, "Fast mode overage refused") }, supportsNotices),
6129
+ });
6130
+ if (!session.fastModeEnabled)
6131
+ return;
6132
+ try {
6133
+ await this.applyFastMode(session, false);
6134
+ }
6135
+ catch (error) {
6136
+ this.logger.error(`[fast-mode] session=${sessionId} could not turn fast mode off after an overage refusal:`, error);
6137
+ return;
6138
+ }
6139
+ await this.client.sessionUpdate({
6140
+ sessionId,
6141
+ update: { sessionUpdate: "config_option_update", configOptions: session.configOptions },
6142
+ });
6143
+ }
6090
6144
  /** The Ultracode display state for `buildConfigOptions`. */
6091
6145
  ultracodeState(session, available) {
6092
6146
  return {
@@ -6217,6 +6271,13 @@ export class ClaudeAcpAgent {
6217
6271
  if (thinking !== undefined) {
6218
6272
  options.thinking = thinking;
6219
6273
  }
6274
+ // The Plan updates intent rides into the replacement's env (and the
6275
+ // settings tier, when that tier pins the variable).
6276
+ if (session.planUpdatesEnabled !== undefined &&
6277
+ !applyPlanUpdatesToOptions(options, session.planUpdatesEnabled, session.planUpdatesSettingsValue)) {
6278
+ this.logger.error(`Session ${sessionId}: Plan updates set only in the spawn env: the settings ` +
6279
+ `are a file path, and its env value for ${TODO_TOOLS_ENV} still applies.`);
6280
+ }
6220
6281
  // A session that has not finished a turn yet has no transcript, and
6221
6282
  // resuming it fails ("No conversation found with session ID"): that is why
6222
6283
  // every fresh thread's first turn used to carry the "could not be applied"
@@ -6328,7 +6389,7 @@ export class ClaudeAcpAgent {
6328
6389
  const reason = this.sessions[sessionId] !== session
6329
6390
  ? "the session was evicted while the replacement query initialized"
6330
6391
  : "the session's query stream ended while the replacement query initialized";
6331
- this.logger.error(`Session ${sessionId}: abandoning Thinking query recreate: ${reason}.`);
6392
+ this.logger.error(`Session ${sessionId}: abandoning a config-change query recreate: ${reason}.`);
6332
6393
  newInput.end();
6333
6394
  try {
6334
6395
  newQuery.close();
@@ -6345,7 +6406,7 @@ export class ClaudeAcpAgent {
6345
6406
  // flag is retained, so the next prompt rebuilds from fresh state.
6346
6407
  if (session.models.currentModelId !== appliedModelId ||
6347
6408
  session.modes.currentModeId !== appliedModeId) {
6348
- this.logger.error(`Session ${sessionId}: abandoning Thinking query recreate: the session's model ` +
6409
+ this.logger.error(`Session ${sessionId}: abandoning a config-change query recreate: the session's model ` +
6349
6410
  `or permission mode changed while the replacement initialized; retrying on ` +
6350
6411
  `the next prompt.`);
6351
6412
  newInput.end();
@@ -6386,7 +6447,7 @@ export class ClaudeAcpAgent {
6386
6447
  // Keep the OLD query fully usable and the pending flag set (the next
6387
6448
  // prompt retries); the current turn proceeds with the previous thinking
6388
6449
  // config. Everything is contained here — never an unhandled rejection.
6389
- this.logger.error(`Session ${sessionId}: failed to recreate query for Thinking change:`, error);
6450
+ this.logger.error(`Session ${sessionId}: failed to recreate query for a config change (Thinking or Plan updates):`, error);
6390
6451
  newInput.end();
6391
6452
  try {
6392
6453
  newQuery?.close();
@@ -6401,7 +6462,7 @@ export class ClaudeAcpAgent {
6401
6462
  sessionUpdate: "agent_message_chunk",
6402
6463
  content: {
6403
6464
  type: "text",
6404
- text: "Note: the updated Thinking setting could not be applied to this turn " +
6465
+ text: "Note: the updated Thinking or Plan updates setting could not be applied to this turn " +
6405
6466
  "(recreating the session's query failed), so it continues with the previous " +
6406
6467
  "setting. The change will be retried on the next prompt.",
6407
6468
  },
@@ -6495,14 +6556,32 @@ export class ClaudeAcpAgent {
6495
6556
  // recreate it so the underlying Query process picks up the new values.
6496
6557
  await this.teardownSession(params.sessionId);
6497
6558
  }
6498
- const response = await this.createSession({
6559
+ const sessionParams = {
6499
6560
  cwd: params.cwd,
6500
6561
  mcpServers: params.mcpServers ?? [],
6501
6562
  additionalDirectories: params.additionalDirectories,
6502
6563
  _meta: params._meta,
6503
- }, {
6504
- resume: params.sessionId,
6505
- });
6564
+ };
6565
+ let response;
6566
+ try {
6567
+ response = await this.createSession(sessionParams, { resume: params.sessionId });
6568
+ }
6569
+ catch (error) {
6570
+ // Claude Code writes the conversation at the first prompt, so a live
6571
+ // session never prompted has nothing to resume (upstream #1353). It had
6572
+ // no history to lose: start a fresh query under the same public id, in
6573
+ // the mode it had. A session not live here is really unknown, and any
6574
+ // other failure is returned as before.
6575
+ if (!existingSession ||
6576
+ !(error instanceof RequestError && error.code === RequestError.resourceNotFound().code)) {
6577
+ throw error;
6578
+ }
6579
+ this.logger.log(`[session/resume] session=${params.sessionId} was never persisted; starting a fresh query under the same id`);
6580
+ response = await this.createSession(sessionParams, {
6581
+ reuseSessionId: params.sessionId,
6582
+ permissionMode: existingSession.modes.currentModeId,
6583
+ });
6584
+ }
6506
6585
  return {
6507
6586
  sessionId: response.sessionId,
6508
6587
  modes: response.modes,
@@ -6549,6 +6628,9 @@ export class ClaudeAcpAgent {
6549
6628
  else if (creationOpts.resume) {
6550
6629
  sessionId = creationOpts.resume;
6551
6630
  }
6631
+ else if (creationOpts.reuseSessionId) {
6632
+ sessionId = creationOpts.reuseSessionId;
6633
+ }
6552
6634
  else {
6553
6635
  sessionId = randomUUID();
6554
6636
  }
@@ -6744,6 +6826,13 @@ export class ClaudeAcpAgent {
6744
6826
  // Opt-in to session state events like when the agent is idle
6745
6827
  CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS: "1",
6746
6828
  };
6829
+ // Plan updates (story 062): the todo tools are on unless an env the user
6830
+ // wrote -- this spawn env or the settings tier the CLI applies after it --
6831
+ // already decided; that value is kept and becomes the option's.
6832
+ const planUpdatesSpawn = resolvePlanUpdatesAtSpawn(env, settingsManager.getSettings().env, typeof settings === "object" ? settings.env : undefined);
6833
+ if (planUpdatesSpawn.inject) {
6834
+ env[TODO_TOOLS_ENV] = "1";
6835
+ }
6747
6836
  // A resume or load continues in the mode of the transcript's last prompt
6748
6837
  // (upstream #1218), read from the configuration home this query runs with
6749
6838
  // -- an account overlay keeps its transcripts there. An explicit mode still
@@ -7069,6 +7158,9 @@ export class ClaudeAcpAgent {
7069
7158
  // directory the query was actually started with cannot disagree.
7070
7159
  accounts: declaredAccounts,
7071
7160
  currentAccount: accountEntry?.value,
7161
+ }, {
7162
+ enabled: planUpdatesSpawn.enabled,
7163
+ useBooleanOption: clientSupportsBooleanConfigOptions(this.clientCapabilities),
7072
7164
  });
7073
7165
  // Apply the initial effort level to the SDK so it matches the UI default.
7074
7166
  // It carries the Ultracode intent: an effort change without the key would
@@ -7144,6 +7236,8 @@ export class ClaudeAcpAgent {
7144
7236
  currentAgent,
7145
7237
  ultracodeRequested,
7146
7238
  ultracodeAvailable: configOptions.some((o) => o.id === ULTRACODE_CONFIG_ID),
7239
+ planUpdatesEnabled: planUpdatesSpawn.enabled,
7240
+ planUpdatesSettingsValue: planUpdatesSpawn.settingsValue,
7147
7241
  workflowsDisabled,
7148
7242
  declaredAccounts,
7149
7243
  currentAccount: accountEntry?.value,
@@ -7424,6 +7518,8 @@ export { MODE_CONFIG_ID };
7424
7518
  export const MODEL_CONFIG_ID = "model";
7425
7519
  export const AGENT_CONFIG_ID = "agent";
7426
7520
  export const FAST_MODE_CONFIG_ID = "fast";
7521
+ /** The CLI's `system/notification` key for a refused fast-mode overage. */
7522
+ export const FAST_MODE_OVERAGE_REJECTED_KEY = "fast-mode-overage-rejected";
7427
7523
  /** Select-fallback values used when the client has not opted into boolean
7428
7524
  * config options (see {@link createFastModeConfigOption}). */
7429
7525
  export const FAST_MODE_ON = "on";
@@ -7530,7 +7626,10 @@ thinkingEnabled,
7530
7626
  ultracode,
7531
7627
  /** The declared accounts plus the one in force, which decide whether an
7532
7628
  * account selector is advertised at all (R6.1/R6.2). */
7533
- settings) {
7629
+ settings,
7630
+ /** Display state for Plan updates; omitted by direct callers/tests, in
7631
+ * which case the option is not shown. */
7632
+ planUpdates) {
7534
7633
  const options = [
7535
7634
  SessionModeManager.configOption(modes),
7536
7635
  {
@@ -7602,6 +7701,10 @@ settings) {
7602
7701
  if (thinkingEnabled !== undefined) {
7603
7702
  options.push(createThinkingConfigOption(thinkingEnabled));
7604
7703
  }
7704
+ // Plan updates: model-independent, like Thinking (`plan-updates.ts`).
7705
+ if (planUpdates) {
7706
+ options.push(createPlanUpdatesConfigOption(planUpdates.enabled, planUpdates.useBooleanOption));
7707
+ }
7605
7708
  // Only surface the Agent picker when there's a real choice — i.e. the user
7606
7709
  // has configured at least one custom agent (built-ins are filtered out in
7607
7710
  // discoverCustomAgents). With none configured, "Default" would be the only
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Plan updates — a session-scoped boolean option that turns on the CLI's todo
3
+ * tools, so Zed's plan view fills on current models.
4
+ *
5
+ * **Why it exists.** The CLI enables `TodoWrite` only on legacy models unless
6
+ * `CLAUDE_CODE_ENABLE_TODO_TOOLS` is set (upstream #1380); on Opus 5.x the
7
+ * adapter never sees a todo call and never emits a `plan` session update. The
8
+ * variable is read once, at CLI spawn, so the option drives the query env and
9
+ * a live toggle recreates the query (the lazy path Thinking uses).
10
+ *
11
+ * **An env the user already wrote wins** (story 062, R1.3): a value in the
12
+ * client-supplied or process env, or in the settings env the CLI applies
13
+ * after the spawn env, is kept and decides the option's starting value. Only
14
+ * a toggle overrides it, and only for that session.
15
+ *
16
+ * **Off does not reach every model.** The CLI keeps the todo tools on for
17
+ * legacy models whatever the variable says, so "Off" removes them only where
18
+ * the option is what turned them on. Managed settings, and settings edited
19
+ * after spawn, are not read here.
20
+ *
21
+ * Kept self-contained — no import from `acp-agent.ts` — for the reason
22
+ * `ultracode.ts` states: that file moves upstream almost daily.
23
+ */
24
+ import type { Options } from "@anthropic-ai/claude-agent-sdk";
25
+ import type { SessionConfigOption, SetSessionConfigOptionRequest } from "@agentclientprotocol/sdk";
26
+ export declare const TODO_TOOLS_ENV = "CLAUDE_CODE_ENABLE_TODO_TOOLS";
27
+ export declare const PLAN_UPDATES_OPTION_NAME = "Plan updates";
28
+ /** The select-fallback spelling Fast mode and Ultracode use. */
29
+ export declare const PLAN_UPDATES_ON = "on";
30
+ export declare const PLAN_UPDATES_OFF = "off";
31
+ /** `1`/`true`/`yes`/`on` read as on — the bundled CLI 2.1.296's own truthy
32
+ * env spelling — and any other value present as off; `undefined` when the
33
+ * variable is absent. */
34
+ export declare function readTodoToolsEnv(value: string | undefined): boolean | undefined;
35
+ /** The spawn-time state. `settingsValue` is set when a settings tier defines
36
+ * the variable: both outrank the spawn env, so a toggle must override it in
37
+ * the programmatic tier, which outranks the settings files too. */
38
+ export interface PlanUpdatesSpawnState {
39
+ enabled: boolean;
40
+ /** Whether the adapter must add `"1"` to the spawn env. */
41
+ inject: boolean;
42
+ settingsValue?: boolean;
43
+ }
44
+ /**
45
+ * @param settingsEnv the merged user/project/local settings files' env.
46
+ * @param programmaticEnv the env of the settings the adapter passes on the
47
+ * command line (`options.settings`), which the CLI ranks above the files.
48
+ */
49
+ export declare function resolvePlanUpdatesAtSpawn(spawnEnv: Record<string, string | undefined>, settingsEnv: Record<string, string> | undefined, programmaticEnv?: Record<string, string>): PlanUpdatesSpawnState;
50
+ export declare function createPlanUpdatesConfigOption(enabled: boolean, useBooleanOption: boolean): SessionConfigOption;
51
+ /** A native boolean, or the on/off select-fallback strings; anything else
52
+ * throws before the session is touched. */
53
+ export declare function resolvePlanUpdatesRequested(params: SetSessionConfigOptionRequest): boolean;
54
+ /**
55
+ * Write the session's intent into a replacement query's options. The spawn
56
+ * env always carries it; the settings tier too whenever it defines the
57
+ * variable, because there it would otherwise win — every time, so a toggle
58
+ * back to the settings value undoes an earlier override in the recorded
59
+ * options. A settings path (string) cannot be overridden here, and is
60
+ * reported back as `false`.
61
+ */
62
+ export declare function applyPlanUpdatesToOptions(options: Options, enabled: boolean, settingsValue: boolean | undefined): boolean;
63
+ //# sourceMappingURL=plan-updates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-updates.d.ts","sourceRoot":"","sources":["../src/plan-updates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAGnG,eAAO,MAAM,cAAc,kCAAkC,CAAC;AAC9D,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AAEvD,gEAAgE;AAChE,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AAEtC;;0BAE0B;AAC1B,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAG/E;AAED;;oEAEoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC/C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,qBAAqB,CAUvB;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,GACxB,mBAAmB,CAkBrB;AAED;4CAC4C;AAC5C,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAM1F;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GAAG,SAAS,GACjC,OAAO,CAQT"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Plan updates — a session-scoped boolean option that turns on the CLI's todo
3
+ * tools, so Zed's plan view fills on current models.
4
+ *
5
+ * **Why it exists.** The CLI enables `TodoWrite` only on legacy models unless
6
+ * `CLAUDE_CODE_ENABLE_TODO_TOOLS` is set (upstream #1380); on Opus 5.x the
7
+ * adapter never sees a todo call and never emits a `plan` session update. The
8
+ * variable is read once, at CLI spawn, so the option drives the query env and
9
+ * a live toggle recreates the query (the lazy path Thinking uses).
10
+ *
11
+ * **An env the user already wrote wins** (story 062, R1.3): a value in the
12
+ * client-supplied or process env, or in the settings env the CLI applies
13
+ * after the spawn env, is kept and decides the option's starting value. Only
14
+ * a toggle overrides it, and only for that session.
15
+ *
16
+ * **Off does not reach every model.** The CLI keeps the todo tools on for
17
+ * legacy models whatever the variable says, so "Off" removes them only where
18
+ * the option is what turned them on. Managed settings, and settings edited
19
+ * after spawn, are not read here.
20
+ *
21
+ * Kept self-contained — no import from `acp-agent.ts` — for the reason
22
+ * `ultracode.ts` states: that file moves upstream almost daily.
23
+ */
24
+ import { PLAN_UPDATES_CONFIG_ID } from "./session-config-ids.js";
25
+ export const TODO_TOOLS_ENV = "CLAUDE_CODE_ENABLE_TODO_TOOLS";
26
+ export const PLAN_UPDATES_OPTION_NAME = "Plan updates";
27
+ const PLAN_UPDATES_DESCRIPTION = "Show the agent's todo list in the plan view";
28
+ /** The select-fallback spelling Fast mode and Ultracode use. */
29
+ export const PLAN_UPDATES_ON = "on";
30
+ export const PLAN_UPDATES_OFF = "off";
31
+ /** `1`/`true`/`yes`/`on` read as on — the bundled CLI 2.1.296's own truthy
32
+ * env spelling — and any other value present as off; `undefined` when the
33
+ * variable is absent. */
34
+ export function readTodoToolsEnv(value) {
35
+ if (value === undefined)
36
+ return undefined;
37
+ return ["1", "true", "yes", "on"].includes(value.trim().toLowerCase());
38
+ }
39
+ /**
40
+ * @param settingsEnv the merged user/project/local settings files' env.
41
+ * @param programmaticEnv the env of the settings the adapter passes on the
42
+ * command line (`options.settings`), which the CLI ranks above the files.
43
+ */
44
+ export function resolvePlanUpdatesAtSpawn(spawnEnv, settingsEnv, programmaticEnv) {
45
+ const settingsValue = readTodoToolsEnv(programmaticEnv?.[TODO_TOOLS_ENV]) ??
46
+ readTodoToolsEnv(settingsEnv?.[TODO_TOOLS_ENV]);
47
+ const envValue = readTodoToolsEnv(spawnEnv[TODO_TOOLS_ENV]);
48
+ // The CLI applies settings env after the spawn env, so that is what it
49
+ // would actually run with.
50
+ const pinned = settingsValue ?? envValue;
51
+ if (pinned !== undefined)
52
+ return { enabled: pinned, inject: false, settingsValue };
53
+ return { enabled: true, inject: true };
54
+ }
55
+ export function createPlanUpdatesConfigOption(enabled, useBooleanOption) {
56
+ const base = {
57
+ id: PLAN_UPDATES_CONFIG_ID,
58
+ name: PLAN_UPDATES_OPTION_NAME,
59
+ description: PLAN_UPDATES_DESCRIPTION,
60
+ };
61
+ if (useBooleanOption) {
62
+ return { ...base, type: "boolean", currentValue: enabled };
63
+ }
64
+ return {
65
+ ...base,
66
+ type: "select",
67
+ currentValue: enabled ? PLAN_UPDATES_ON : PLAN_UPDATES_OFF,
68
+ options: [
69
+ { value: PLAN_UPDATES_ON, name: "On" },
70
+ { value: PLAN_UPDATES_OFF, name: "Off" },
71
+ ],
72
+ };
73
+ }
74
+ /** A native boolean, or the on/off select-fallback strings; anything else
75
+ * throws before the session is touched. */
76
+ export function resolvePlanUpdatesRequested(params) {
77
+ const value = params.value;
78
+ if (typeof value === "boolean")
79
+ return value;
80
+ if (value === PLAN_UPDATES_ON)
81
+ return true;
82
+ if (value === PLAN_UPDATES_OFF)
83
+ return false;
84
+ throw new Error(`Invalid value for config option ${PLAN_UPDATES_CONFIG_ID}: ${String(value)}`);
85
+ }
86
+ /**
87
+ * Write the session's intent into a replacement query's options. The spawn
88
+ * env always carries it; the settings tier too whenever it defines the
89
+ * variable, because there it would otherwise win — every time, so a toggle
90
+ * back to the settings value undoes an earlier override in the recorded
91
+ * options. A settings path (string) cannot be overridden here, and is
92
+ * reported back as `false`.
93
+ */
94
+ export function applyPlanUpdatesToOptions(options, enabled, settingsValue) {
95
+ const value = enabled ? "1" : "0";
96
+ options.env = { ...options.env, [TODO_TOOLS_ENV]: value };
97
+ if (settingsValue === undefined)
98
+ return true;
99
+ const settings = options.settings;
100
+ if (typeof settings === "string")
101
+ return false;
102
+ options.settings = { ...settings, env: { ...settings?.env, [TODO_TOOLS_ENV]: value } };
103
+ return true;
104
+ }
@@ -2,4 +2,5 @@
2
2
  export declare const DEFAULT_MODEL_ID = "default";
3
3
  export declare const DEFAULT_AGENT_ID = "default";
4
4
  export declare const EFFORT_CONFIG_ID = "effort";
5
+ export declare const PLAN_UPDATES_CONFIG_ID = "plan_updates";
5
6
  //# sourceMappingURL=session-config-ids.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-config-ids.d.ts","sourceRoot":"","sources":["../src/session-config-ids.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,gBAAgB,WAAW,CAAC"}
1
+ {"version":3,"file":"session-config-ids.d.ts","sourceRoot":"","sources":["../src/session-config-ids.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AACzC,eAAO,MAAM,sBAAsB,iBAAiB,CAAC"}
@@ -2,3 +2,4 @@
2
2
  export const DEFAULT_MODEL_ID = "default";
3
3
  export const DEFAULT_AGENT_ID = "default";
4
4
  export const EFFORT_CONFIG_ID = "effort";
5
+ export const PLAN_UPDATES_CONFIG_ID = "plan_updates";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `session/delete` without a transcript succeeds (upstream fadbe18, #1351).
3
+ *
4
+ * ACP: "Deleting an already-deleted session, or a session that never existed,
5
+ * SHOULD succeed silently." The SDK delete instead throws for an id that is
6
+ * not a UUID ("Invalid sessionId") and for a session with nothing on disk —
7
+ * which includes a live session never prompted, since Claude Code writes the
8
+ * transcript at the first prompt. Every other SDK failure still fails.
9
+ */
10
+ /** Whether `value` is a Claude session id (a UUID): only such ids name a
11
+ * transcript. */
12
+ export declare function isSessionId(value: unknown): value is string;
13
+ /** The SDK's own "nothing on disk" error, matched on its message as upstream
14
+ * does — the SDK throws a plain `Error` with no code. */
15
+ export declare function isSdkSessionNotFound(error: unknown): boolean;
16
+ export declare function deleteSessionIfStored(sessionId: string, deleteSession?: (sessionId: string) => Promise<void>): Promise<void>;
17
+ //# sourceMappingURL=session-delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-delete.d.ts","sourceRoot":"","sources":["../src/session-delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;kBACkB;AAClB,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE3D;AAED;0DAC0D;AAC1D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAoB,GACrE,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `session/delete` without a transcript succeeds (upstream fadbe18, #1351).
3
+ *
4
+ * ACP: "Deleting an already-deleted session, or a session that never existed,
5
+ * SHOULD succeed silently." The SDK delete instead throws for an id that is
6
+ * not a UUID ("Invalid sessionId") and for a session with nothing on disk —
7
+ * which includes a live session never prompted, since Claude Code writes the
8
+ * transcript at the first prompt. Every other SDK failure still fails.
9
+ */
10
+ import { deleteSession as sdkDeleteSession } from "@anthropic-ai/claude-agent-sdk";
11
+ const SESSION_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
12
+ /** Whether `value` is a Claude session id (a UUID): only such ids name a
13
+ * transcript. */
14
+ export function isSessionId(value) {
15
+ return typeof value === "string" && SESSION_ID_PATTERN.test(value);
16
+ }
17
+ /** The SDK's own "nothing on disk" error, matched on its message as upstream
18
+ * does — the SDK throws a plain `Error` with no code. */
19
+ export function isSdkSessionNotFound(error) {
20
+ return error instanceof Error && /^Session \S+ not found in /.test(error.message);
21
+ }
22
+ export async function deleteSessionIfStored(sessionId, deleteSession = sdkDeleteSession) {
23
+ if (!isSessionId(sessionId))
24
+ return;
25
+ try {
26
+ await deleteSession(sessionId);
27
+ }
28
+ catch (error) {
29
+ if (isSdkSessionNotFound(error))
30
+ return;
31
+ throw error;
32
+ }
33
+ }
@@ -1,15 +1,20 @@
1
1
  /**
2
2
  * AI-generated session titles.
3
3
  *
4
- * Claude Code's own auto-title generation never runs under the Agent SDK — the
5
- * latch that arms it is pre-set in the headless path — so `SDKSessionInfo.summary`
6
- * degrades to the raw first prompt. This module asks the CLI for a real title
7
- * instead, via the `generate_session_title` control request, and publishes it
8
- * over ACP as a `session_info_update`.
4
+ * Claude Code titles a new SDK session itself: when it reads the first prompt,
5
+ * it asks a small model for a title and stores it in the transcript as an
6
+ * `ai-title` entry, a few seconds in, and sends no message when it does
7
+ * (upstream #1406 corrected the older claim that it never does). This module
8
+ * asks for the title with the `generate_session_title` control request, which
9
+ * returns the stored title or waits for the one being generated, and publishes
10
+ * it over ACP as a `session_info_update`. Where the CLI does not title the
11
+ * session itself (a resumed session, or nonessential traffic disabled), the
12
+ * same request generates it.
9
13
  *
10
14
  * {@link SessionTitles} holds the per-session state and is owned by `Session`.
11
- * `acp-agent.ts` drives it from four places: {@link SessionTitles.onPrompt} and
15
+ * `acp-agent.ts` drives it from five places: {@link SessionTitles.onPrompt} and
12
16
  * {@link SessionTitles.onAssistantText} to collect text,
17
+ * {@link SessionTitles.onPromptQueued} once a prompt is sent to the CLI,
13
18
  * {@link SessionTitles.onTurnEnd} at `session_state_changed: idle`, and
14
19
  * {@link SessionTitles.reset} on `conversation_reset`.
15
20
  */
@@ -36,10 +41,26 @@ export declare class SessionTitles {
36
41
  * the same field as a user `/rename`, so re-titling could silently overwrite
37
42
  * one. Released by {@link reset}, and when generation yields nothing. */
38
43
  private settled;
44
+ /** Whether {@link onPromptQueued} asked for a title from the latest prompt
45
+ * and did not fail. A turn end then does not ask again: like the CLI, a
46
+ * prompt that yields no title gets one try, and the next prompt tries
47
+ * again. A request that throws clears it, so the turn end asks as before
48
+ * (story 062, R4.2). */
49
+ private askedAtPrompt;
50
+ /** Set once a real title — stored or generated — has been published, so a
51
+ * generation still in flight never replaces it with a late result. */
52
+ private titled;
39
53
  constructor(agent: ClaudeAcpAgent, sessionId: string);
40
54
  /** Collect a prompt's own text for the title, skipping openers not worth
41
55
  * titling after. No-op once the title is settled. */
42
56
  onPrompt(prompt: PromptRequest["prompt"]): void;
57
+ /** Ask for the title as soon as a prompt is sent to the CLI, instead of
58
+ * waiting for `idle`, which comes only after the whole turn and its
59
+ * background tasks. The CLI answers `generate_session_title` while the turn
60
+ * runs, with the title it stored or is generating, so this makes no second
61
+ * model call. The prompt alone is the description, because the CLI titles
62
+ * from the prompt alone. */
63
+ onPromptQueued(session: Session, prompt: PromptRequest["prompt"]): void;
43
64
  /** Collect the assistant's own answer for the title. Chunks are appended
44
65
  * verbatim so streamed text reassembles. No-op once the title is settled. */
45
66
  onAssistantText(content: ContentBlock): void;
@@ -66,12 +87,21 @@ export declare class SessionTitles {
66
87
  /** Whether to ask the SDK for a generated title now: once per session, on a
67
88
  * live query, with enough collected text for the generator to work with. */
68
89
  private canRequest;
69
- /** Generate a title from the session's own text and publish it. `persist`
70
- * writes it to the session file, which is what carries it into
71
- * `session/list` and `session/load`. A null or failed generation releases the
72
- * latch so a later turn retries, and publishes `fallback` (the stored
73
- * summary) so a backend that can't generate titles is no worse off than
74
- * before. */
90
+ /** Latch the title and run `generation` in the background, so neither the
91
+ * prompt nor turn-end waits on a model call. */
92
+ private startGeneration;
93
+ /** The prompt-time title: the one the session file already holds (a resumed
94
+ * session's title, or a `/rename`), else one generated from `description`.
95
+ * The file is read first because the CLI checks only the titles it holds in
96
+ * memory before generating one. */
97
+ private titleFromPrompt;
98
+ /** Generate a title from `description` and publish it. `persist` writes it
99
+ * to the session file, which is what carries it into `session/list` and
100
+ * `session/load`. A null or failed generation releases the latch so a later
101
+ * prompt or turn end retries, and publishes `fallback` (the stored summary)
102
+ * so a backend that can't generate titles is no worse off than before. A
103
+ * prompt-time request that throws publishes nothing and lets the turn end
104
+ * ask again. */
75
105
  private requestGenerateTitle;
76
106
  }
77
107
  //# sourceMappingURL=session-titles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-titles.d.ts","sourceRoot":"","sources":["../src/session-titles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA0B9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED;gEACgE;AAChE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrF;AAOD;;iDAEiD;AACjD,qBAAa,aAAa;IAgBtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAhB5B;sEACkE;IAClE,OAAO,CAAC,SAAS,CAAC,CAAS;IAE3B;yEACqE;IACrE,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB;;;8EAG0E;IAC1E,OAAO,CAAC,OAAO,CAAS;gBAGL,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM;IAGpC;0DACsD;IACtD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI;IAW/C;kFAC8E;IAC9E,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAO5C;iEAC6D;IAC7D,KAAK,IAAI,IAAI;IAMb;;;;;;;;;;wCAUoC;IAC9B,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BhD;oFACgF;YAClE,eAAe;IAS7B,uEAAuE;YACzD,OAAO;IAgBrB;iFAC6E;IAC7E,OAAO,CAAC,UAAU;IAUlB;;;;;kBAKc;YACA,oBAAoB;CAoCnC"}
1
+ {"version":3,"file":"session-titles.d.ts","sourceRoot":"","sources":["../src/session-titles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA0B9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED;gEACgE;AAChE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrF;AAYD;;iDAEiD;AACjD,qBAAa,aAAa;IA2BtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IA3B5B;sEACkE;IAClE,OAAO,CAAC,SAAS,CAAC,CAAS;IAE3B;yEACqE;IACrE,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB;;;8EAG0E;IAC1E,OAAO,CAAC,OAAO,CAAS;IAExB;;;;6BAIyB;IACzB,OAAO,CAAC,aAAa,CAAS;IAE9B;2EACuE;IACvE,OAAO,CAAC,MAAM,CAAS;gBAGJ,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM;IAGpC;0DACsD;IACtD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI;IAO/C;;;;;iCAK6B;IAC7B,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI;IAevE;kFAC8E;IAC9E,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAO5C;iEAC6D;IAC7D,KAAK,IAAI,IAAI;IAQb;;;;;;;;;;wCAUoC;IAC9B,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BhD;oFACgF;YAClE,eAAe;IAS7B,uEAAuE;YACzD,OAAO;IAgBrB;iFAC6E;IAC7E,OAAO,CAAC,UAAU;IAUlB;qDACiD;IACjD,OAAO,CAAC,eAAe;IAOvB;;;wCAGoC;YACtB,eAAe;IAiB7B;;;;;;qBAMiB;YACH,oBAAoB;CA6CnC"}
@@ -1,15 +1,20 @@
1
1
  /**
2
2
  * AI-generated session titles.
3
3
  *
4
- * Claude Code's own auto-title generation never runs under the Agent SDK — the
5
- * latch that arms it is pre-set in the headless path — so `SDKSessionInfo.summary`
6
- * degrades to the raw first prompt. This module asks the CLI for a real title
7
- * instead, via the `generate_session_title` control request, and publishes it
8
- * over ACP as a `session_info_update`.
4
+ * Claude Code titles a new SDK session itself: when it reads the first prompt,
5
+ * it asks a small model for a title and stores it in the transcript as an
6
+ * `ai-title` entry, a few seconds in, and sends no message when it does
7
+ * (upstream #1406 corrected the older claim that it never does). This module
8
+ * asks for the title with the `generate_session_title` control request, which
9
+ * returns the stored title or waits for the one being generated, and publishes
10
+ * it over ACP as a `session_info_update`. Where the CLI does not title the
11
+ * session itself (a resumed session, or nonessential traffic disabled), the
12
+ * same request generates it.
9
13
  *
10
14
  * {@link SessionTitles} holds the per-session state and is owned by `Session`.
11
- * `acp-agent.ts` drives it from four places: {@link SessionTitles.onPrompt} and
15
+ * `acp-agent.ts` drives it from five places: {@link SessionTitles.onPrompt} and
12
16
  * {@link SessionTitles.onAssistantText} to collect text,
17
+ * {@link SessionTitles.onPromptQueued} once a prompt is sent to the CLI,
13
18
  * {@link SessionTitles.onTurnEnd} at `session_state_changed: idle`, and
14
19
  * {@link SessionTitles.reset} on `conversation_reset`.
15
20
  */
@@ -38,6 +43,10 @@ export function appendTitleContext(previous, text) {
38
43
  const next = (previous ?? "") + text;
39
44
  return next.length > MAX_TITLE_CONTEXT_LENGTH ? next.slice(-MAX_TITLE_CONTEXT_LENGTH) : next;
40
45
  }
46
+ /** The text chunks of a prompt, one per line. */
47
+ function promptText(prompt) {
48
+ return prompt.flatMap((chunk) => (chunk.type === "text" ? [chunk.text] : [])).join("\n");
49
+ }
41
50
  /** Whether this SDK still offers on-demand title generation. */
42
51
  function supportsTitleGeneration(query) {
43
52
  return typeof query.generateSessionTitle === "function";
@@ -59,6 +68,15 @@ export class SessionTitles {
59
68
  * the same field as a user `/rename`, so re-titling could silently overwrite
60
69
  * one. Released by {@link reset}, and when generation yields nothing. */
61
70
  settled = false;
71
+ /** Whether {@link onPromptQueued} asked for a title from the latest prompt
72
+ * and did not fail. A turn end then does not ask again: like the CLI, a
73
+ * prompt that yields no title gets one try, and the next prompt tries
74
+ * again. A request that throws clears it, so the turn end asks as before
75
+ * (story 062, R4.2). */
76
+ askedAtPrompt = false;
77
+ /** Set once a real title — stored or generated — has been published, so a
78
+ * generation still in flight never replaces it with a late result. */
79
+ titled = false;
62
80
  constructor(agent, sessionId) {
63
81
  this.agent = agent;
64
82
  this.sessionId = sessionId;
@@ -69,10 +87,27 @@ export class SessionTitles {
69
87
  if (this.settled) {
70
88
  return;
71
89
  }
72
- const promptText = prompt
73
- .flatMap((chunk) => (chunk.type === "text" ? [chunk.text] : []))
74
- .join("\n");
75
- this.context = appendTitleContext(this.context, `\n${promptText}\n`);
90
+ this.context = appendTitleContext(this.context, `\n${promptText(prompt)}\n`);
91
+ }
92
+ /** Ask for the title as soon as a prompt is sent to the CLI, instead of
93
+ * waiting for `idle`, which comes only after the whole turn and its
94
+ * background tasks. The CLI answers `generate_session_title` while the turn
95
+ * runs, with the title it stored or is generating, so this makes no second
96
+ * model call. The prompt alone is the description, because the CLI titles
97
+ * from the prompt alone. */
98
+ onPromptQueued(session, prompt) {
99
+ this.askedAtPrompt = false;
100
+ // `session.cancelled` is not checked: after a cancelled turn it stays set
101
+ // until the next turn starts, which is after this prompt is queued.
102
+ if (this.settled || session.queryClosed || !supportsTitleGeneration(session.query)) {
103
+ return;
104
+ }
105
+ const description = promptText(prompt).trim();
106
+ if (description.length < MIN_TITLE_CONTEXT_LENGTH) {
107
+ return;
108
+ }
109
+ this.askedAtPrompt = true;
110
+ this.startGeneration(() => this.titleFromPrompt(session, description));
76
111
  }
77
112
  /** Collect the assistant's own answer for the title. Chunks are appended
78
113
  * verbatim so streamed text reassembles. No-op once the title is settled. */
@@ -86,6 +121,8 @@ export class SessionTitles {
86
121
  * `conversation_reset`, which mounts a fresh transcript. */
87
122
  reset() {
88
123
  this.settled = false;
124
+ this.askedAtPrompt = false;
125
+ this.titled = false;
89
126
  this.context = undefined;
90
127
  this.lastTitle = undefined;
91
128
  }
@@ -104,6 +141,7 @@ export class SessionTitles {
104
141
  const info = await this.readSessionInfo(session);
105
142
  if (info?.customTitle) {
106
143
  this.settled = true;
144
+ this.titled = true;
107
145
  this.context = undefined;
108
146
  await this.publish(info.customTitle, info.lastModified);
109
147
  return;
@@ -111,11 +149,9 @@ export class SessionTitles {
111
149
  const fallback = info?.summary
112
150
  ? { title: info.summary, lastModified: info.lastModified }
113
151
  : undefined;
114
- if (this.canRequest(session)) {
115
- this.settled = true;
116
- void this.requestGenerateTitle(session, fallback).catch((error) => {
117
- this.agent.logger.error(`Session ${this.sessionId}: session title update failed: ${error}`);
118
- });
152
+ if (!this.askedAtPrompt && this.canRequest(session)) {
153
+ const description = this.context?.trim() ?? "";
154
+ this.startGeneration(() => this.requestGenerateTitle(session, description, fallback));
119
155
  return;
120
156
  }
121
157
  // Only while this session has no title of its own: `summary` degrades to the
@@ -163,14 +199,42 @@ export class SessionTitles {
163
199
  }
164
200
  return (this.context?.trim().length ?? 0) >= MIN_TITLE_CONTEXT_LENGTH;
165
201
  }
166
- /** Generate a title from the session's own text and publish it. `persist`
167
- * writes it to the session file, which is what carries it into
168
- * `session/list` and `session/load`. A null or failed generation releases the
169
- * latch so a later turn retries, and publishes `fallback` (the stored
170
- * summary) so a backend that can't generate titles is no worse off than
171
- * before. */
172
- async requestGenerateTitle(session, fallback) {
173
- const description = this.context?.trim() ?? "";
202
+ /** Latch the title and run `generation` in the background, so neither the
203
+ * prompt nor turn-end waits on a model call. */
204
+ startGeneration(generation) {
205
+ this.settled = true;
206
+ void generation().catch((error) => {
207
+ this.agent.logger.error(`Session ${this.sessionId}: session title update failed: ${error}`);
208
+ });
209
+ }
210
+ /** The prompt-time title: the one the session file already holds (a resumed
211
+ * session's title, or a `/rename`), else one generated from `description`.
212
+ * The file is read first because the CLI checks only the titles it holds in
213
+ * memory before generating one. */
214
+ async titleFromPrompt(session, description) {
215
+ const info = await this.readSessionInfo(session);
216
+ if (this.agent.sessions[this.sessionId] !== session || this.titled) {
217
+ return;
218
+ }
219
+ if (info?.customTitle) {
220
+ this.titled = true;
221
+ this.context = undefined;
222
+ await this.publish(info.customTitle, info.lastModified);
223
+ return;
224
+ }
225
+ const fallback = info?.summary
226
+ ? { title: info.summary, lastModified: info.lastModified }
227
+ : undefined;
228
+ await this.requestGenerateTitle(session, description, fallback, true);
229
+ }
230
+ /** Generate a title from `description` and publish it. `persist` writes it
231
+ * to the session file, which is what carries it into `session/list` and
232
+ * `session/load`. A null or failed generation releases the latch so a later
233
+ * prompt or turn end retries, and publishes `fallback` (the stored summary)
234
+ * so a backend that can't generate titles is no worse off than before. A
235
+ * prompt-time request that throws publishes nothing and lets the turn end
236
+ * ask again. */
237
+ async requestGenerateTitle(session, description, fallback, atPrompt = false) {
174
238
  let title = null;
175
239
  try {
176
240
  title =
@@ -180,10 +244,17 @@ export class SessionTitles {
180
244
  }
181
245
  catch (error) {
182
246
  this.agent.logger.error(`Session ${this.sessionId}: failed to generate a session title: ${error}`);
247
+ if (atPrompt) {
248
+ // The turn end titles it instead, from the prompt and the reply; the
249
+ // raw-prompt summary is not published in between.
250
+ this.askedAtPrompt = false;
251
+ this.settled = false;
252
+ return;
253
+ }
183
254
  }
184
255
  // A session torn down or replaced while the title was in flight must not
185
- // adopt it.
186
- if (this.agent.sessions[this.sessionId] !== session) {
256
+ // adopt it, and neither may one that got its title meanwhile.
257
+ if (this.agent.sessions[this.sessionId] !== session || this.titled) {
187
258
  return;
188
259
  }
189
260
  if (!title) {
@@ -193,6 +264,7 @@ export class SessionTitles {
193
264
  }
194
265
  return;
195
266
  }
267
+ this.titled = true;
196
268
  this.context = undefined;
197
269
  await this.publish(title, Date.now());
198
270
  }
@@ -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
@@ -99,8 +99,13 @@ export function toolInfoFromToolUse(toolUse, supportsTerminalOutput = false, cwd
99
99
  case "Agent":
100
100
  case "Task": {
101
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"
102
+ // `effort` is set only when the user asked for one (CLI 2.1.292+). A
103
+ // `subagent_type: "fork"` child ignores it and runs at the parent's
104
+ // effort (upstream #1384).
105
+ const effort = input &&
106
+ "effort" in input &&
107
+ typeof input.effort === "string" &&
108
+ !("subagent_type" in input && input.subagent_type === "fork")
104
109
  ? ` (${input.effort} effort)`
105
110
  : "";
106
111
  return {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.30.1",
6
+ "version": "0.31.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",