@agentclientprotocol/claude-agent-acp 0.89.2-preview.15 → 0.89.2-preview.17

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,4 +1,9 @@
1
- import type { AcpSessionNotification, SubagentState } from "./acp-subagents.js";
1
+ import { type SessionNotification } from "@agentclientprotocol/sdk";
2
+ import type { AcpSessionNotification, SubagentForm, SubagentState } from "./acp-subagents.js";
3
+ /** The work state of a child, as the RFD's `subagent_update.state` carries it. */
4
+ type WorkState = NonNullable<Extract<SessionNotification["update"], {
5
+ sessionUpdate: "subagent_update";
6
+ }>["state"]>;
2
7
  export type NativeSubagent = {
3
8
  sessionId: string;
4
9
  parentSessionId: string;
@@ -7,9 +12,32 @@ export type NativeSubagent = {
7
12
  task: string;
8
13
  /**
9
14
  * The exact prompt of this generation, sent as `prompt` in
10
- * `subagent_spawned`. It is absent when the adapter has no prompt.
15
+ * `subagent_spawned`, or as the child's first `session_message` in the RFD
16
+ * form. It is absent when the adapter has no prompt.
11
17
  */
12
18
  prompt?: string;
19
+ /** The RFD form: the parent's label for the child, `subagent_update.title`. */
20
+ title?: string;
21
+ /** The RFD form: the child's role, its `subagent_type`, for the title. */
22
+ role?: string;
23
+ /** The RFD form: the child's purpose, `subagent_update.description`. */
24
+ description?: string;
25
+ /**
26
+ * The RFD form: the work state the client holds. The child is reusable, so
27
+ * `idle` is not terminal. AIR's draft uses {@link terminalState} instead.
28
+ */
29
+ workState?: WorkState["state"];
30
+ /**
31
+ * The RFD form: the child's idle snapshot reports a failure without the
32
+ * SDK's error text, which a later event of the same failure may carry.
33
+ */
34
+ missingError?: boolean;
35
+ /** The RFD form: the open permission and question requests of the child. */
36
+ openRequests?: number;
37
+ /** The RFD form: the ids of the prompt messages in the child's transcript. */
38
+ promptIds?: Set<string>;
39
+ /** The RFD form: the calls that delegated to the child, whose runs ended. */
40
+ endedRuns?: Set<string>;
13
41
  announced?: boolean;
14
42
  terminalState?: SubagentState;
15
43
  /** Connection-local single-flight state; never serialized on the wire. */
@@ -26,6 +54,18 @@ type Publish = (notification: AcpSessionNotification) => Promise<void>;
26
54
  type Logger = {
27
55
  log(message: string): void;
28
56
  };
57
+ /** What the SDK says about the end of a task, beyond its status. */
58
+ export type TaskEnd = {
59
+ /** The SDK's text for a failure. */
60
+ error?: string;
61
+ /** The SDK's reason for an unusual end, such as `worker_restart`. */
62
+ reason?: string;
63
+ /**
64
+ * The adapter knows that the work ended, but not why: the stream ended, or
65
+ * the conversation was reset, with the task still running.
66
+ */
67
+ unexplained?: boolean;
68
+ };
29
69
  type TaskStarted = {
30
70
  taskId: string;
31
71
  toolUseId?: string | null;
@@ -43,6 +83,8 @@ export declare class NativeSubagentRuntime {
43
83
  private readonly publish;
44
84
  private readonly logger;
45
85
  readonly enabled: boolean;
86
+ /** The form of the child sessions; see {@link SubagentForm}. */
87
+ readonly form: SubagentForm | undefined;
46
88
  private readonly children;
47
89
  private readonly taskByToolUse;
48
90
  private readonly parentByToolUse;
@@ -56,11 +98,15 @@ export declare class NativeSubagentRuntime {
56
98
  */
57
99
  private readonly childByToolCall;
58
100
  private readonly taskFinishPromises;
101
+ /** The RFD form: the session that made each SendMessage call. */
102
+ private readonly senderByToolUse;
59
103
  private readonly generationByTaskId;
60
104
  private readonly pending;
61
105
  private pendingCount;
62
- constructor(enabled: boolean, rootSessionId: string, session: NativeSubagentSession, publish: Publish, logger: Logger);
106
+ /** `form` is undefined for a client without native subagent sessions. */
107
+ constructor(form: SubagentForm | undefined, rootSessionId: string, session: NativeSubagentSession, publish: Publish, logger: Logger);
63
108
  route(notification: AcpSessionNotification, deliver: Publish, forcedSessionId?: string): Promise<AcpSessionNotification | null>;
109
+ private routeUpdate;
64
110
  taskStarted(task: TaskStarted, deliver: Publish): Promise<void>;
65
111
  /**
66
112
  * Opens a new generation of a finished child when the SDK resumes the same
@@ -68,14 +114,90 @@ export declare class NativeSubagentRuntime {
68
114
  * running `task_updated` patch or a SendMessage `resumedAgentId` is the
69
115
  * signal. A child that did not finish is not changed. The `prompt` is the
70
116
  * SendMessage text that resumed the child, when the adapter knows it.
117
+ *
118
+ * In the RFD form, the running patch only reports that the child runs: its
119
+ * prompt is a guess (the latest SendMessage to the agent), and the
120
+ * `task_started` or the SendMessage result carries the delegation.
71
121
  */
72
122
  taskResumed(taskId: string, deliver: Publish, prompt?: string): Promise<void>;
73
- finishTask(taskId: string, status: unknown, deliver: Publish, toolUseId?: string | null): Promise<void>;
123
+ /**
124
+ * The SDK reports in a SendMessage result that the call `toolUseId`, with
125
+ * the message `prompt`, resumed the agent `taskId`. AIR's draft treats it as
126
+ * any resume signal. In the RFD form, the call is the delegation, which the
127
+ * child takes unless its run already ended: the result can arrive after it.
128
+ */
129
+ sendMessageResumed(taskId: string, deliver: Publish, prompt?: string, toolUseId?: string): Promise<void>;
130
+ /**
131
+ * The RFD form: whether the run of the call `toolUseId` that delegated to
132
+ * the child `taskId` already ended. AIR's draft has no such runs.
133
+ */
134
+ isEndedDelegation(taskId: string, toolUseId: string | null | undefined): boolean;
135
+ /**
136
+ * The RFD form: whether `toolUseId` is an earlier delegation of the child
137
+ * `taskId`, whose end does not end the current one. AIR's draft has no
138
+ * such delegations.
139
+ */
140
+ isStaleEnd(taskId: string, toolUseId: string | null | undefined): boolean;
141
+ /**
142
+ * Reports that the SDK ended the task's work. `end` has what the SDK says
143
+ * about it: its text for a failure, and its reason for an unusual end.
144
+ */
145
+ finishTask(taskId: string, status: unknown, deliver: Publish, toolUseId?: string | null, end?: TaskEnd): Promise<void>;
146
+ /**
147
+ * Ends every child that still runs, because the stream ended or the
148
+ * conversation was reset. AIR's draft reports `state` for each. In the RFD
149
+ * form the cause of each child's end is unknown, so it is idle with no stop
150
+ * reason: a child that a cancel stopped already reported it from the SDK's
151
+ * events, and a background child that outlived the cancel was not cancelled.
152
+ */
74
153
  finishAll(state: SubagentState, deliver: Publish): Promise<void>;
154
+ /**
155
+ * The parent session got `session/cancel`. AIR's draft ends every child as
156
+ * cancelled here. The RFD form reports nothing: acknowledging a cancel is no
157
+ * evidence that a child stopped. Claude Code's interrupt stops the
158
+ * foreground children that the turn waits on and, currently, background
159
+ * children too, and the SDK's task events report each as cancelled. A child
160
+ * that keeps running keeps its open requests
161
+ * (agentclientprotocol/agent-client-protocol#2308).
162
+ */
163
+ parentCancelled(deliver: Publish): Promise<void>;
164
+ /**
165
+ * Runs `request`, a permission or question request of the session
166
+ * `sessionId`. In the RFD form, a child waiting on it is `requires_action`
167
+ * until its last open request ends.
168
+ */
169
+ awaitingUser<T>(sessionId: string, request: () => Promise<T>): Promise<T>;
75
170
  discardPending(parentToolUseId: string): void;
76
171
  /**
77
- * Routes an update to the child session. An update of a finished child is
78
- * dropped: it never goes to the root session.
172
+ * The RFD form: the child runs again, and keeps its session. `toolUseId` is
173
+ * the call that delegated, usually a SendMessage: the SDK runs the resumed
174
+ * work under its id, so it becomes the child's current delegation, whose
175
+ * end ends the run, and its prompt is the message with that id. A child
176
+ * that is already working only takes the delegation; a prompt already in
177
+ * its transcript is not sent again. A child that was never announced is
178
+ * not changed.
179
+ */
180
+ private resumeChild;
181
+ /**
182
+ * The RFD form: a child that ends before its parent is known stays
183
+ * unexposed, since the RFD forbids guessing its parent. Its buffered updates
184
+ * are dropped, and it is forgotten, so a late frame does not announce it.
185
+ * (Buffering until that frame would also meet the RFD, but the frame comes
186
+ * before the task in the SDK's order, so a child ending without it is rare.)
187
+ */
188
+ private withdraw;
189
+ /**
190
+ * The RFD form: a later event of a failure can carry the SDK's error text
191
+ * that the reported idle snapshot lacks.
192
+ */
193
+ private supplyError;
194
+ /** Announces `child` in the client's form. A runtime without one never does. */
195
+ private announce;
196
+ /** The RFD form: publishes the work state of `child` on its parent. */
197
+ private reportState;
198
+ /**
199
+ * Routes an update to the child session. It never goes to the root session:
200
+ * in AIR's draft, an update of a finished child is dropped.
79
201
  */
80
202
  private toChild;
81
203
  /**
@@ -84,12 +206,18 @@ export declare class NativeSubagentRuntime {
84
206
  * tool call when the work started. An async task can outlive that child: a
85
207
  * subagent can start a background command and end its turn. So the route
86
208
  * still sends `async_task_spawned`, `async_task_progress` and
87
- * `async_task_state_update` to the child generation after it finished. The route drops every other update
88
- * after the child finished. `undefined` means that the root session owns the
89
- * tool call. `eagerSessionId` is the session where a permission request
90
- * created the tool call before the stream routed it.
209
+ * `async_task_state_update` to the child generation after it finished. In
210
+ * AIR's draft, the route drops every other update after the child finished;
211
+ * in the RFD form, an idle child gets them all. `undefined` means that the
212
+ * root session owns the tool call. `eagerSessionId` is the session where a
213
+ * permission request created the tool call before the stream routed it.
91
214
  */
92
215
  routeOfToolCall(toolCallId: string, eagerSessionId?: string): ((notification: AcpSessionNotification) => AcpSessionNotification | null) | undefined;
216
+ /**
217
+ * The RFD form: remembers the session that made a SendMessage call, the
218
+ * sender of the prompt when the call resumes a child.
219
+ */
220
+ private rememberSendMessage;
93
221
  private rememberToolCallOwner;
94
222
  /** The child generation with the ACP session `sessionId`, if one exists. */
95
223
  private childOfSession;
@@ -106,9 +234,25 @@ export declare class NativeSubagentRuntime {
106
234
  * delivers the updates that waited for the child.
107
235
  */
108
236
  private openGeneration;
237
+ /**
238
+ * The ACP session id of a child: the SDK agent id, and in AIR's draft a
239
+ * generation suffix for each resume. The RFD needs it unique within the
240
+ * connection and never under two parents. Agent ids are random, and an
241
+ * agent keeps its parent, so only a fork could repeat one under another
242
+ * root. That holds today because the SDK's `forkSession` copies no
243
+ * `subagents/` history, so a fork cannot resume an agent of the original.
244
+ * If a fork ever can, the RFD requires remapping the copied ids, for
245
+ * example by deriving the child id from the root session id.
246
+ */
109
247
  private nextChildSessionId;
110
248
  }
111
- export declare function announceNativeSubagent(child: NativeSubagent, publish: Publish): Promise<void>;
249
+ /**
250
+ * Announces the child on its parent, once, before any update of the child.
251
+ * The RFD form announces it as running and then sends the prompt as the
252
+ * first message of the child. The child gets no capabilities, so the client
253
+ * may not cancel or otherwise change it.
254
+ */
255
+ export declare function announceNativeSubagent(child: NativeSubagent, publish: Publish, form: SubagentForm): Promise<void>;
112
256
  export declare function finishNativeSubagent(session: NativeSubagentSession, taskId: string, state: SubagentState, publish: Publish): Promise<void>;
113
257
  /**
114
258
  * The agent id that a successful SendMessage result resumed. The SDK puts it
@@ -124,6 +268,18 @@ export declare function sendMessageResumePrompt(toolUses: Record<string, {
124
268
  name: string;
125
269
  input: unknown;
126
270
  } | undefined>, agentId: string, resultToolUseIds?: readonly string[]): string | undefined;
271
+ /**
272
+ * The SendMessage call that resumed the agent `agentId`, and its text when it
273
+ * has one; see {@link sendMessageResumePrompt}. The call is known even
274
+ * without text, so a late result still names the delegation it reports.
275
+ */
276
+ export declare function sendMessageResume(toolUses: Record<string, {
277
+ name: string;
278
+ input: unknown;
279
+ } | undefined>, agentId: string, resultToolUseIds?: readonly string[]): {
280
+ toolUseId: string;
281
+ text?: string;
282
+ } | undefined;
127
283
  export declare function nativeSubagentState(status: unknown): SubagentState | undefined;
128
284
  export declare function isNativeSubagentControlUpdate(update: AcpSessionNotification["update"]): update is Extract<AcpSessionNotification["update"], {
129
285
  sessionUpdate: "tool_call" | "tool_call_update";
@@ -1 +1 @@
1
- {"version":3,"file":"native-subagents.d.ts","sourceRoot":"","sources":["../src/native-subagents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-subagents.d.ts","sourceRoot":"","sources":["../src/native-subagents.ts"],"names":[],"mappings":"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"}