@agentclientprotocol/claude-agent-acp 0.24.2 → 0.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +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
@@ -39,6 +39,7 @@ const ALLOW_BYPASS = !IS_ROOT || !!process.env.IS_SANDBOX;
39
39
  // message and without invoking the model.
40
40
  const LOCAL_ONLY_COMMANDS = new Set(["/context", "/heapdump", "/extra-usage"]);
41
41
  const PERMISSION_MODE_ALIASES = {
42
+ auto: "auto",
42
43
  default: "default",
43
44
  acceptedits: "acceptEdits",
44
45
  dontask: "dontAsk",
@@ -90,24 +91,39 @@ export class ClaudeAcpAgent {
90
91
  },
91
92
  },
92
93
  };
93
- const terminalAuthMethod = {
94
- description: "Run `claude /login` in the terminal",
95
- name: "Log in with Claude",
96
- id: "claude-login",
94
+ const supportsTerminalAuth = request.clientCapabilities?.auth?.terminal === true;
95
+ const supportsMetaTerminalAuth = request.clientCapabilities?._meta?.["terminal-auth"] === true;
96
+ const claudeLoginMethod = {
97
+ description: "Use Claude subscription ",
98
+ name: "Claude Subscription",
99
+ id: "claude-ai-login",
97
100
  type: "terminal",
98
- args: ["--cli"],
101
+ args: ["--cli", "auth", "login", "--claudeai"],
102
+ };
103
+ const consoleLoginMethod = {
104
+ description: "Use Anthropic Console (API usage billing)",
105
+ name: "Anthropic Console",
106
+ id: "console-login",
107
+ type: "terminal",
108
+ args: ["--cli", "auth", "login", "--console"],
99
109
  };
100
- const supportsTerminalAuth = request.clientCapabilities?.auth?.terminal === true;
101
110
  // If client supports terminal-auth capability, use that instead.
102
- const supportsMetaTerminalAuth = request.clientCapabilities?._meta?.["terminal-auth"] === true;
103
111
  if (supportsMetaTerminalAuth) {
104
- terminalAuthMethod._meta = {
112
+ const baseArgs = process.argv.slice(1);
113
+ claudeLoginMethod._meta = {
105
114
  "terminal-auth": {
106
115
  command: process.execPath,
107
- args: [...process.argv.slice(1), "--cli"],
116
+ args: [...baseArgs, "--cli", "auth", "login", "--claudeai"],
108
117
  label: "Claude Login",
109
118
  },
110
119
  };
120
+ consoleLoginMethod._meta = {
121
+ "terminal-auth": {
122
+ command: process.execPath,
123
+ args: [...baseArgs, "--cli", "auth", "login", "--console"],
124
+ label: "Anthropic Console Login",
125
+ },
126
+ };
111
127
  }
112
128
  return {
113
129
  protocolVersion: 1,
@@ -140,8 +156,9 @@ export class ClaudeAcpAgent {
140
156
  },
141
157
  authMethods: [
142
158
  ...(!shouldHideClaudeAuth() && (supportsTerminalAuth || supportsMetaTerminalAuth)
143
- ? [terminalAuthMethod]
159
+ ? [claudeLoginMethod]
144
160
  : []),
161
+ ...(supportsTerminalAuth || supportsMetaTerminalAuth ? [consoleLoginMethod] : []),
145
162
  ...(supportsGatewayAuth ? [gatewayAuthMethod] : []),
146
163
  ],
147
164
  };
@@ -231,6 +248,8 @@ export class ClaudeAcpAgent {
231
248
  cachedWriteTokens: 0,
232
249
  };
233
250
  let lastAssistantTotalUsage = null;
251
+ let lastAssistantModel = null;
252
+ let lastContextWindowSize = 200000;
234
253
  const userMessage = promptToClaude(params);
235
254
  const promptUuid = randomUUID();
236
255
  userMessage.uuid = promptUuid;
@@ -282,9 +301,26 @@ export class ClaudeAcpAgent {
282
301
  break;
283
302
  }
284
303
  case "compact_boundary": {
285
- // We don't know the exact size, but since we compacted,
286
- // we set it to zero. The client gets the exact size on the next message.
304
+ // Send used:0 immediately so the client doesn't keep showing
305
+ // the stale pre-compaction context size until the next turn.
306
+ //
307
+ // This is a deliberate approximation: we don't know the exact
308
+ // post-compaction token count (only the SDK's next API call
309
+ // reveals that). But used:0 is directionally correct — context
310
+ // just dropped dramatically — and the real value replaces it
311
+ // within seconds when the next result message arrives.
312
+ // The alternative (no update) leaves the client showing e.g.
313
+ // "944k/1m" right after the user sees "Compacting completed",
314
+ // which is confusing and wrong.
287
315
  lastAssistantTotalUsage = 0;
316
+ await this.client.sessionUpdate({
317
+ sessionId: message.session_id,
318
+ update: {
319
+ sessionUpdate: "usage_update",
320
+ used: 0,
321
+ size: lastContextWindowSize,
322
+ },
323
+ });
288
324
  await this.client.sessionUpdate({
289
325
  sessionId: message.session_id,
290
326
  update: {
@@ -332,9 +368,11 @@ export class ClaudeAcpAgent {
332
368
  session.accumulatedUsage.outputTokens += message.usage.output_tokens;
333
369
  session.accumulatedUsage.cachedReadTokens += message.usage.cache_read_input_tokens;
334
370
  session.accumulatedUsage.cachedWriteTokens += message.usage.cache_creation_input_tokens;
335
- // Calculate context window size from modelUsage (minimum across all models used)
336
- const contextWindows = Object.values(message.modelUsage).map((m) => m.contextWindow);
337
- const contextWindowSize = contextWindows.length > 0 ? Math.min(...contextWindows) : 200000;
371
+ const matchingModelUsage = lastAssistantModel
372
+ ? getMatchingModelUsage(message.modelUsage, lastAssistantModel)
373
+ : null;
374
+ const contextWindowSize = matchingModelUsage?.contextWindow ?? 200000;
375
+ lastContextWindowSize = contextWindowSize;
338
376
  // Send usage_update notification
339
377
  if (lastAssistantTotalUsage !== null) {
340
378
  await this.client.sessionUpdate({
@@ -434,6 +472,11 @@ export class ClaudeAcpAgent {
434
472
  }
435
473
  }
436
474
  // Store latest assistant usage (excluding subagents)
475
+ // Sum all token types as a proxy for post-turn context occupancy:
476
+ // current turn's output will become next turn's input.
477
+ // Note: per the Anthropic API, input_tokens excludes cache tokens —
478
+ // cache_read and cache_creation are reported separately, so summing
479
+ // all four fields is not double-counting.
437
480
  if (message.message.usage && message.parent_tool_use_id === null) {
438
481
  const messageWithUsage = message.message;
439
482
  lastAssistantTotalUsage =
@@ -442,6 +485,14 @@ export class ClaudeAcpAgent {
442
485
  messageWithUsage.usage.cache_read_input_tokens +
443
486
  messageWithUsage.usage.cache_creation_input_tokens;
444
487
  }
488
+ // Track the current top-level model for context window size lookup
489
+ // (exclude subagent messages to stay in sync with lastAssistantTotalUsage)
490
+ if (message.type === "assistant" &&
491
+ message.parent_tool_use_id === null &&
492
+ message.message.model &&
493
+ message.message.model !== "<synthetic>") {
494
+ lastAssistantModel = message.message.model;
495
+ }
445
496
  // Slash commands like /compact can generate invalid output... doesn't match
446
497
  // their own docs: https://docs.anthropic.com/en/docs/claude-code/sdk/sdk-slash-commands#%2Fcompact-compact-conversation-history
447
498
  if (typeof message.message.content === "string" &&
@@ -625,6 +676,7 @@ export class ClaudeAcpAgent {
625
676
  }
626
677
  async applySessionMode(sessionId, modeId) {
627
678
  switch (modeId) {
679
+ case "auto":
628
680
  case "default":
629
681
  case "acceptEdits":
630
682
  case "bypassPermissions":
@@ -1027,6 +1079,11 @@ export class ClaudeAcpAgent {
1027
1079
  }
1028
1080
  const models = await getAvailableModels(q, initializationResult.models, settingsManager);
1029
1081
  const availableModes = [
1082
+ {
1083
+ id: "auto",
1084
+ name: "Auto",
1085
+ decription: "Use a model classifier to approve/deny permission prompts.",
1086
+ },
1030
1087
  {
1031
1088
  id: "default",
1032
1089
  name: "Default",
@@ -1614,3 +1671,24 @@ export function runAcp() {
1614
1671
  const stream = ndJsonStream(input, output);
1615
1672
  new AgentSideConnection((client) => new ClaudeAcpAgent(client), stream);
1616
1673
  }
1674
+ function commonPrefixLength(a, b) {
1675
+ let i = 0;
1676
+ while (i < a.length && i < b.length && a[i] === b[i]) {
1677
+ i++;
1678
+ }
1679
+ return i;
1680
+ }
1681
+ function getMatchingModelUsage(modelUsage, currentModel) {
1682
+ let bestKey = null;
1683
+ let bestLen = 0;
1684
+ for (const key of Object.keys(modelUsage)) {
1685
+ const len = commonPrefixLength(key, currentModel);
1686
+ if (len > bestLen) {
1687
+ bestLen = len;
1688
+ bestKey = key;
1689
+ }
1690
+ }
1691
+ if (bestKey) {
1692
+ return modelUsage[bestKey];
1693
+ }
1694
+ }
@@ -50,7 +50,9 @@ export declare class SettingsManager {
50
50
  private onChange?;
51
51
  private logger;
52
52
  private initialized;
53
+ private disposed;
53
54
  private debounceTimer;
55
+ private initPromise;
54
56
  constructor(cwd: string, options?: SettingsManagerOptions);
55
57
  /**
56
58
  * Initialize the settings manager by loading all settings and setting up file watchers
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkBD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAW/C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC;CAC7E;AAED;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,MAAM,CAAqE;IACnF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAA8C;gBAEvD,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;IAMzD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;YACW,eAAe;IAgB7B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA8BrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkCrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,WAAW,IAAI,kBAAkB;IAIjC;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxC;;OAEG;IACH,OAAO,IAAI,IAAI;CAYhB"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA2BD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAW/C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC;CAC7E;AAED;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,MAAM,CAAqE;IACnF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,WAAW,CAA8B;gBAErC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;IAMzD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;YACW,eAAe;IAgB7B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA8BrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkCrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;OAEG;IACH,WAAW,IAAI,kBAAkB;IAIjC;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxC;;OAEG;IACH,OAAO,IAAI,IAAI;CAehB"}
package/dist/settings.js CHANGED
@@ -2,9 +2,11 @@ import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
3
  import { CLAUDE_CONFIG_DIR } from "./acp-agent.js";
4
4
  /**
5
- * Reads and parses a JSON settings file, returning an empty object if not found or invalid
5
+ * Reads and parses a JSON settings file, returning an empty object if not found or invalid.
6
+ * Silently ignores missing files (ENOENT) but logs warnings for other errors
7
+ * (malformed JSON, permission errors, etc.) to aid debugging.
6
8
  */
7
- async function loadSettingsFile(filePath) {
9
+ async function loadSettingsFile(filePath, logger) {
8
10
  if (!filePath) {
9
11
  return {};
10
12
  }
@@ -12,7 +14,11 @@ async function loadSettingsFile(filePath) {
12
14
  const content = await fs.promises.readFile(filePath, "utf-8");
13
15
  return JSON.parse(content);
14
16
  }
15
- catch {
17
+ catch (error) {
18
+ if (error instanceof Error && "code" in error && error.code === "ENOENT") {
19
+ return {};
20
+ }
21
+ logger?.error(`Failed to load settings from ${filePath}:`, error);
16
22
  return {};
17
23
  }
18
24
  }
@@ -51,7 +57,9 @@ export class SettingsManager {
51
57
  this.mergedSettings = {};
52
58
  this.watchers = [];
53
59
  this.initialized = false;
60
+ this.disposed = false;
54
61
  this.debounceTimer = null;
62
+ this.initPromise = null;
55
63
  this.cwd = cwd;
56
64
  this.onChange = options?.onChange;
57
65
  this.logger = options?.logger ?? console;
@@ -63,9 +71,18 @@ export class SettingsManager {
63
71
  if (this.initialized) {
64
72
  return;
65
73
  }
66
- await this.loadAllSettings();
67
- this.setupWatchers();
68
- this.initialized = true;
74
+ if (this.initPromise) {
75
+ return this.initPromise;
76
+ }
77
+ this.disposed = false;
78
+ this.initPromise = this.loadAllSettings().then(() => {
79
+ if (!this.disposed) {
80
+ this.setupWatchers();
81
+ this.initialized = true;
82
+ }
83
+ this.initPromise = null;
84
+ });
85
+ return this.initPromise;
69
86
  }
70
87
  /**
71
88
  * Returns the path to the user settings file
@@ -90,10 +107,10 @@ export class SettingsManager {
90
107
  */
91
108
  async loadAllSettings() {
92
109
  const [userSettings, projectSettings, localSettings, enterpriseSettings] = await Promise.all([
93
- loadSettingsFile(this.getUserSettingsPath()),
94
- loadSettingsFile(this.getProjectSettingsPath()),
95
- loadSettingsFile(this.getLocalSettingsPath()),
96
- loadSettingsFile(getManagedSettingsPath()),
110
+ loadSettingsFile(this.getUserSettingsPath(), this.logger),
111
+ loadSettingsFile(this.getProjectSettingsPath(), this.logger),
112
+ loadSettingsFile(this.getLocalSettingsPath(), this.logger),
113
+ loadSettingsFile(getManagedSettingsPath(), this.logger),
97
114
  ]);
98
115
  this.userSettings = userSettings;
99
116
  this.projectSettings = projectSettings;
@@ -172,9 +189,14 @@ export class SettingsManager {
172
189
  }
173
190
  this.debounceTimer = setTimeout(async () => {
174
191
  this.debounceTimer = null;
192
+ if (this.disposed) {
193
+ return;
194
+ }
175
195
  try {
176
196
  await this.loadAllSettings();
177
- this.onChange?.();
197
+ if (!this.disposed) {
198
+ this.onChange?.();
199
+ }
178
200
  }
179
201
  catch (error) {
180
202
  this.logger.error("Failed to reload settings:", error);
@@ -202,13 +224,15 @@ export class SettingsManager {
202
224
  }
203
225
  this.dispose();
204
226
  this.cwd = cwd;
205
- this.initialized = false;
206
227
  await this.initialize();
207
228
  }
208
229
  /**
209
230
  * Disposes of file watchers and cleans up resources
210
231
  */
211
232
  dispose() {
233
+ this.disposed = true;
234
+ this.initialized = false;
235
+ this.initPromise = null;
212
236
  if (this.debounceTimer) {
213
237
  clearTimeout(this.debounceTimer);
214
238
  this.debounceTimer = null;
@@ -217,6 +241,5 @@ export class SettingsManager {
217
241
  watcher.close();
218
242
  }
219
243
  this.watchers = [];
220
- this.initialized = false;
221
244
  }
222
245
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.24.2",
6
+ "version": "0.25.1",
7
7
  "description": "An ACP-compatible coding agent powered by the Claude Agent SDK (TypeScript)",
8
8
  "main": "dist/lib.js",
9
9
  "types": "dist/lib.d.ts",
@@ -60,22 +60,22 @@
60
60
  "author": "Zed Industries",
61
61
  "license": "Apache-2.0",
62
62
  "dependencies": {
63
- "@agentclientprotocol/sdk": "0.17.0",
64
- "@anthropic-ai/claude-agent-sdk": "0.2.84",
63
+ "@agentclientprotocol/sdk": "0.18.0",
64
+ "@anthropic-ai/claude-agent-sdk": "0.2.91",
65
65
  "zod": "^3.25.0 || ^4.0.0"
66
66
  },
67
67
  "devDependencies": {
68
- "@anthropic-ai/sdk": "0.80.0",
68
+ "@anthropic-ai/sdk": "0.82.0",
69
69
  "@eslint/js": "10.0.1",
70
- "@types/node": "25.5.0",
71
- "@typescript-eslint/eslint-plugin": "8.57.2",
72
- "@typescript-eslint/parser": "8.57.2",
70
+ "@types/node": "25.5.1",
71
+ "@typescript-eslint/eslint-plugin": "8.58.0",
72
+ "@typescript-eslint/parser": "8.58.0",
73
73
  "eslint": "10.1.0",
74
74
  "eslint-config-prettier": "10.1.8",
75
75
  "globals": "17.4.0",
76
76
  "prettier": "3.8.1",
77
77
  "ts-node": "10.9.2",
78
- "typescript": "5.9.3",
79
- "vitest": "4.1.1"
78
+ "typescript": "6.0.2",
79
+ "vitest": "4.1.2"
80
80
  }
81
81
  }