claude-code-acp-ts 0.38.2-beta.1 → 0.44.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/dist/acp-agent.d.ts +90 -15
- package/dist/acp-agent.d.ts.map +1 -1
- package/dist/acp-agent.js +654 -106
- package/dist/elicitation.d.ts +80 -0
- package/dist/elicitation.d.ts.map +1 -0
- package/dist/elicitation.js +166 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +16 -0
- package/package.json +13 -13
package/dist/acp-agent.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Agent, AgentSideConnection, AuthenticateRequest, CancelNotification, ClientCapabilities, ForkSessionRequest, ForkSessionResponse, InitializeRequest, InitializeResponse, ListSessionsRequest, ListSessionsResponse, LoadSessionRequest, LoadSessionResponse, NewSessionRequest, NewSessionResponse, PromptRequest, PromptResponse, ReadTextFileRequest, ReadTextFileResponse, ResumeSessionRequest, ResumeSessionResponse, SessionConfigOption,
|
|
1
|
+
import { Agent, AgentSideConnection, AuthenticateRequest, CancelNotification, ClientCapabilities, ForkSessionRequest, ForkSessionResponse, InitializeRequest, InitializeResponse, ListSessionsRequest, ListSessionsResponse, LoadSessionRequest, LoadSessionResponse, NewSessionRequest, NewSessionResponse, PromptRequest, PromptResponse, ReadTextFileRequest, ReadTextFileResponse, ResumeSessionRequest, ResumeSessionResponse, SessionConfigOption, SessionModeState, SessionNotification, SetSessionConfigOptionRequest, SetSessionConfigOptionResponse, SetSessionModeRequest, SetSessionModeResponse, CloseSessionRequest, CloseSessionResponse, DeleteSessionRequest, DeleteSessionResponse, WriteTextFileRequest, WriteTextFileResponse } from "@agentclientprotocol/sdk";
|
|
2
2
|
import { CanUseTool, ModelInfo, Options, PermissionMode, PermissionUpdate, Query, SDKMessageOrigin, SDKPartialAssistantMessage, SDKUserMessage } from "@anthropic-ai/claude-agent-sdk";
|
|
3
3
|
import { ContentBlockParam } from "@anthropic-ai/sdk/resources";
|
|
4
4
|
import { BetaContentBlock, BetaRawContentBlockDelta } from "@anthropic-ai/sdk/resources/beta.mjs";
|
|
@@ -19,6 +19,18 @@ type AccumulatedUsage = {
|
|
|
19
19
|
cachedReadTokens: number;
|
|
20
20
|
cachedWriteTokens: number;
|
|
21
21
|
};
|
|
22
|
+
/** Internal model-selection state. Mirrors the shape the ACP SDK exposed as
|
|
23
|
+
* `SessionModelState` before model selection moved entirely into
|
|
24
|
+
* `SessionConfigOption` (category "model"). Retained internally to track the
|
|
25
|
+
* current model and build the "model" config option. */
|
|
26
|
+
type SessionModelState = {
|
|
27
|
+
availableModels: Array<{
|
|
28
|
+
modelId: string;
|
|
29
|
+
name: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
}>;
|
|
32
|
+
currentModelId: string;
|
|
33
|
+
};
|
|
22
34
|
type Session = {
|
|
23
35
|
query: Query;
|
|
24
36
|
input: Pushable<SDKUserMessage>;
|
|
@@ -40,6 +52,17 @@ type Session = {
|
|
|
40
52
|
}>;
|
|
41
53
|
nextPendingOrder: number;
|
|
42
54
|
abortController: AbortController;
|
|
55
|
+
/** Per-turn signal the active prompt loop races `query.next()` against.
|
|
56
|
+
* Aborted by cancel() (after a grace period) to force the loop to return
|
|
57
|
+
* "cancelled" when the SDK is wedged and `query.next()` never yields again
|
|
58
|
+
* (issue #680). Distinct from `abortController`: this only wakes the loop;
|
|
59
|
+
* it does NOT touch the SDK query/subprocess. Undefined when no prompt is
|
|
60
|
+
* actively consuming the query. */
|
|
61
|
+
cancelController?: AbortController;
|
|
62
|
+
/** Pending grace-period timer that aborts `cancelController`. Cleared when
|
|
63
|
+
* the loop returns normally so the backstop never fires after a clean
|
|
64
|
+
* cancel. */
|
|
65
|
+
forceCancelTimer?: ReturnType<typeof setTimeout>;
|
|
43
66
|
emitRawSDKMessages: boolean | SDKMessageFilter[];
|
|
44
67
|
/** Context window size of the last top-level assistant model, carried across
|
|
45
68
|
* prompts so mid-stream usage_update notifications report a correct `size`
|
|
@@ -50,14 +73,30 @@ type Session = {
|
|
|
50
73
|
/** Accumulated task list for the session, keyed by task ID. Task IDs are
|
|
51
74
|
* per-session, so this state must not be shared across sessions. */
|
|
52
75
|
taskState: TaskState;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
76
|
+
/** Caches `tool_use` blocks by id so the matching `tool_result` can recover
|
|
77
|
+
* the tool name/input when mapping it to a `tool_call_update`. Per-session
|
|
78
|
+
* (tool_use ids are only unique within a session) and pruned at
|
|
79
|
+
* `tool_result` time so a long-running session doesn't accumulate every
|
|
80
|
+
* tool call for its whole lifetime. */
|
|
81
|
+
toolUseCache: ToolUseCache;
|
|
82
|
+
/** Maps the ACP `messageId` we expose to clients (see `messageIdForGrouping`)
|
|
83
|
+
* to the SDK message uuid that the Agent SDK's rewind/resume APIs key on
|
|
84
|
+
* (`Query.rewindFiles` takes a user-message uuid; `resumeSessionAt` takes an
|
|
85
|
+
* `SDKAssistantMessage.uuid`). For assistant turns the two differ — the ACP
|
|
86
|
+
* id is the Anthropic API message id (`msg_…`), available at `message_start`
|
|
87
|
+
* so streamed chunks can carry it, while the uuid only arrives on the
|
|
88
|
+
* consolidated message — so a client can only ask to rewind/fork by the id it
|
|
89
|
+
* was given, and we need this table to translate it back.
|
|
90
|
+
*
|
|
91
|
+
* Populated as a byproduct of the message loop (the consolidated message
|
|
92
|
+
* carries both ids) and of `replaySessionHistory` on load, so no extra
|
|
93
|
+
* `getSessionMessages` read is needed at rewind time. Last-write-wins
|
|
94
|
+
* naturally yields the turn-boundary uuid when one `msg_…` spans several
|
|
95
|
+
* content-block messages.
|
|
96
|
+
*
|
|
97
|
+
* NOT READ YET — recorded now so the mapping exists if/when we wire up
|
|
98
|
+
* fork/rewind. */
|
|
99
|
+
messageIdToUuid: Map<string, string>;
|
|
61
100
|
};
|
|
62
101
|
export type SDKMessageFilter = {
|
|
63
102
|
type: string;
|
|
@@ -165,13 +204,13 @@ export declare class ClaudeAcpAgent implements Agent {
|
|
|
165
204
|
[key: string]: Session;
|
|
166
205
|
};
|
|
167
206
|
client: AgentSideConnection;
|
|
168
|
-
toolUseCache: ToolUseCache;
|
|
169
|
-
backgroundTerminals: {
|
|
170
|
-
[key: string]: BackgroundTerminal;
|
|
171
|
-
};
|
|
172
207
|
clientCapabilities?: ClientCapabilities;
|
|
173
208
|
logger: Logger;
|
|
174
209
|
gatewayAuthRequest?: GatewayAuthRequest;
|
|
210
|
+
/** Grace period before a `session/cancel` forces a wedged prompt loop to
|
|
211
|
+
* return "cancelled". See {@link DEFAULT_FORCE_CANCEL_GRACE_MS}. Mutable so
|
|
212
|
+
* tests can shrink it. */
|
|
213
|
+
forceCancelGraceMs: number;
|
|
175
214
|
constructor(client: AgentSideConnection, logger?: Logger);
|
|
176
215
|
initialize(request: InitializeRequest): Promise<InitializeResponse>;
|
|
177
216
|
newSession(params: NewSessionRequest): Promise<NewSessionResponse>;
|
|
@@ -188,8 +227,7 @@ export declare class ClaudeAcpAgent implements Agent {
|
|
|
188
227
|
/** Tear down all active sessions. Called when the ACP connection closes. */
|
|
189
228
|
dispose(): Promise<void>;
|
|
190
229
|
closeSession(params: CloseSessionRequest): Promise<CloseSessionResponse>;
|
|
191
|
-
|
|
192
|
-
unstable_setSessionModel(params: SetSessionModelRequest): Promise<SetSessionModelResponse | void>;
|
|
230
|
+
deleteSession(params: DeleteSessionRequest): Promise<DeleteSessionResponse>;
|
|
193
231
|
setSessionMode(params: SetSessionModeRequest): Promise<SetSessionModeResponse>;
|
|
194
232
|
setSessionConfigOption(params: SetSessionConfigOptionRequest): Promise<SetSessionConfigOptionResponse>;
|
|
195
233
|
private applySessionMode;
|
|
@@ -197,13 +235,48 @@ export declare class ClaudeAcpAgent implements Agent {
|
|
|
197
235
|
readTextFile(params: ReadTextFileRequest): Promise<ReadTextFileResponse>;
|
|
198
236
|
writeTextFile(params: WriteTextFileRequest): Promise<WriteTextFileResponse>;
|
|
199
237
|
canUseTool(sessionId: string): CanUseTool;
|
|
238
|
+
/**
|
|
239
|
+
* Handle elicitation requests that originate from MCP servers by forwarding
|
|
240
|
+
* them to the client over ACP. Modes the client did not advertise (or
|
|
241
|
+
* requests we can't represent) are declined.
|
|
242
|
+
*/
|
|
243
|
+
private handleMcpElicitation;
|
|
244
|
+
/**
|
|
245
|
+
* Present the built-in AskUserQuestion tool's questions as an ACP form
|
|
246
|
+
* elicitation and return the answers as the tool's `updatedInput`. Called from
|
|
247
|
+
* `canUseTool` since that is where the SDK routes the tool's permission check.
|
|
248
|
+
*/
|
|
249
|
+
private handleAskUserQuestion;
|
|
200
250
|
private sendAvailableCommandsUpdate;
|
|
201
251
|
private updateConfigOption;
|
|
202
252
|
private applyConfigOptionValue;
|
|
203
253
|
private getOrCreateSession;
|
|
254
|
+
/**
|
|
255
|
+
* Ensures the requested `cwd` is an absolute path that points at an existing
|
|
256
|
+
* directory before we create a session. Throws an `invalidParams` error with
|
|
257
|
+
* an actionable message so clients (e.g. Zed) can surface it to the user
|
|
258
|
+
* instead of failing later with an opaque SDK error.
|
|
259
|
+
*/
|
|
260
|
+
private validateCwd;
|
|
204
261
|
private createSession;
|
|
205
262
|
}
|
|
206
263
|
export declare function promptToClaude(prompt: PromptRequest): SDKUserMessage;
|
|
264
|
+
/**
|
|
265
|
+
* Resolves the ACP `messageId` for a Claude SDK message (live) or a persisted
|
|
266
|
+
* transcript message (replay) so chunk grouping is identical in both views.
|
|
267
|
+
*
|
|
268
|
+
* Assistant turns are keyed by the Anthropic API message id (`message.id`),
|
|
269
|
+
* which is identical at `message_start`, on the consolidated assistant message,
|
|
270
|
+
* and in the persisted transcript — unlike the per-`stream_event` uuid, which is
|
|
271
|
+
* unique per event and never persisted. User messages have no API id, but they
|
|
272
|
+
* are never streamed, so their (stable) SDK uuid is used instead. ACP message
|
|
273
|
+
* ids are opaque strings, so no particular format is required.
|
|
274
|
+
*/
|
|
275
|
+
export declare function messageIdForGrouping(message: {
|
|
276
|
+
type?: string;
|
|
277
|
+
uuid?: string | null;
|
|
278
|
+
message?: unknown;
|
|
279
|
+
}): string | undefined;
|
|
207
280
|
/**
|
|
208
281
|
* Convert an SDKAssistantMessage (Claude) to a SessionNotification (ACP).
|
|
209
282
|
* Only handles text, image, and thinking chunks for now.
|
|
@@ -214,11 +287,13 @@ export declare function toAcpNotifications(content: string | ContentBlockParam[]
|
|
|
214
287
|
parentToolUseId?: string | null;
|
|
215
288
|
cwd?: string;
|
|
216
289
|
taskState?: TaskState;
|
|
290
|
+
messageId?: string;
|
|
217
291
|
}): SessionNotification[];
|
|
218
292
|
export declare function streamEventToAcpNotifications(message: SDKPartialAssistantMessage, sessionId: string, toolUseCache: ToolUseCache, client: AgentSideConnection, logger: Logger, options?: {
|
|
219
293
|
clientCapabilities?: ClientCapabilities;
|
|
220
294
|
cwd?: string;
|
|
221
295
|
taskState?: TaskState;
|
|
296
|
+
messageId?: string;
|
|
222
297
|
}): SessionNotification[];
|
|
223
298
|
export declare function runAcp(): {
|
|
224
299
|
connection: AgentSideConnection;
|
package/dist/acp-agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,mBAAmB,EACnB,mBAAmB,EAGnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EAEnB,iBAAiB,EACjB,kBAAkB,EAElB,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EAEpB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"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"}
|