ycodium-acp-executor 0.2.3576 → 0.2.3608

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.
Files changed (55) hide show
  1. package/README.md +19 -1
  2. package/dist/executor/child-sessions.d.ts +32 -0
  3. package/dist/executor/child-sessions.d.ts.map +1 -0
  4. package/dist/executor/child-sessions.js +56 -0
  5. package/dist/executor/child-sessions.js.map +1 -0
  6. package/dist/executor/lifecycle.d.ts +1 -1
  7. package/dist/executor/lifecycle.d.ts.map +1 -1
  8. package/dist/executor/lifecycle.js +3 -1
  9. package/dist/executor/lifecycle.js.map +1 -1
  10. package/dist/executor/prompt.d.ts +3 -1
  11. package/dist/executor/prompt.d.ts.map +1 -1
  12. package/dist/executor/prompt.js +3 -1
  13. package/dist/executor/prompt.js.map +1 -1
  14. package/dist/executor/session.d.ts.map +1 -1
  15. package/dist/executor/session.js +29 -6
  16. package/dist/executor/session.js.map +1 -1
  17. package/dist/executor/subagent-sessions.d.ts +33 -0
  18. package/dist/executor/subagent-sessions.d.ts.map +1 -0
  19. package/dist/executor/subagent-sessions.js +147 -0
  20. package/dist/executor/subagent-sessions.js.map +1 -0
  21. package/dist/executor/support.d.ts +13 -0
  22. package/dist/executor/support.d.ts.map +1 -1
  23. package/dist/executor/support.js.map +1 -1
  24. package/dist/executor/updates.d.ts +6 -1
  25. package/dist/executor/updates.d.ts.map +1 -1
  26. package/dist/executor/updates.js +99 -25
  27. package/dist/executor/updates.js.map +1 -1
  28. package/dist/executor.d.ts +10 -0
  29. package/dist/executor.d.ts.map +1 -1
  30. package/dist/executor.js +11 -3
  31. package/dist/executor.js.map +1 -1
  32. package/dist/handshake.d.ts +7 -0
  33. package/dist/handshake.d.ts.map +1 -1
  34. package/dist/handshake.js +12 -2
  35. package/dist/handshake.js.map +1 -1
  36. package/dist/index.d.ts +4 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +2 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/probe.d.ts +2 -0
  41. package/dist/probe.d.ts.map +1 -1
  42. package/dist/probe.js +2 -2
  43. package/dist/probe.js.map +1 -1
  44. package/dist/tool-call-state.d.ts +4 -0
  45. package/dist/tool-call-state.d.ts.map +1 -1
  46. package/dist/tool-call-state.js +9 -3
  47. package/dist/tool-call-state.js.map +1 -1
  48. package/dist/tool-subagents.d.ts +91 -0
  49. package/dist/tool-subagents.d.ts.map +1 -0
  50. package/dist/tool-subagents.js +347 -0
  51. package/dist/tool-subagents.js.map +1 -0
  52. package/dist/vendor-hooks.d.ts +126 -16
  53. package/dist/vendor-hooks.d.ts.map +1 -1
  54. package/dist/vendor-hooks.js.map +1 -1
  55. package/package.json +1 -1
@@ -0,0 +1,347 @@
1
+ const EXCLUDED = Symbol("excluded");
2
+ const sealedHidden = (entry) => ({
3
+ sealed: true,
4
+ keepToolRow: false,
5
+ turnId: entry.turnId,
6
+ kind: entry.kind,
7
+ taskId: entry.taskId,
8
+ facts: entry.facts,
9
+ });
10
+ /** `turn.completed` 对应哪种收尾:被打断、传输失败(进程已经没了)、其余算正常结束。 */
11
+ export function toolSubagentSettlementOfTurn(state, failureCategory) {
12
+ if (state === "cancelled")
13
+ return "turn-interrupted";
14
+ return state === "failed" && failureCategory === "transport" ? "session-ended" : "turn-ended";
15
+ }
16
+ const sameFacts = (a, b) => a.title === b.title &&
17
+ a.description === b.description &&
18
+ a.summary === b.summary &&
19
+ a.role === b.role &&
20
+ a.model === b.model &&
21
+ a.effort === b.effort &&
22
+ a.rosterKind === b.rosterKind;
23
+ function linkage(taskId, toolCallId, facts) {
24
+ return {
25
+ taskId,
26
+ taskType: "subagent",
27
+ toolUseId: toolCallId,
28
+ title: facts.title,
29
+ ...(facts.role === undefined ? {} : { role: facts.role }),
30
+ ...(facts.model === undefined ? {} : { model: facts.model }),
31
+ ...(facts.effort === undefined ? {} : { effort: facts.effort }),
32
+ ...(facts.rosterKind === undefined ? {} : { rosterKind: facts.rosterKind }),
33
+ };
34
+ }
35
+ const isEntry = (value) => value !== EXCLUDED && !("sealed" in value);
36
+ export function createToolSubagentTracker(spec) {
37
+ const calls = new Map();
38
+ /**
39
+ * 厂商 agent 号 → 任务 id 与上次身份,只在本执行器内存里,不淘汰(只是短字符串,淘汰会让
40
+ * 仍可续接的 agent 变成另一条任务)。
41
+ * 约束:执行器重启(会话恢复)后映射丢失,续接会成为新的一行,不做持久化。
42
+ */
43
+ const agentTasks = new Map();
44
+ const rememberAgent = (ref, taskId, facts) => {
45
+ agentTasks.set(ref, { taskId, facts });
46
+ };
47
+ const turnOf = (turnId) => (turnId === undefined ? {} : { turnId });
48
+ const onToolCallUpdated = (call) => {
49
+ const tracked = calls.get(call.toolCallId);
50
+ if (tracked === EXCLUDED)
51
+ return undefined;
52
+ if (tracked !== undefined && !isEntry(tracked)) {
53
+ // 状态照旧抑制,但晚到的结果里的 agent 号仍要记下,之后的续接才认得回。
54
+ const late = spec.resolve?.(call, tracked.kind, { known: true, background: false });
55
+ if (late !== undefined && late.type !== "hold" && late.agentRef !== undefined) {
56
+ rememberAgent(late.agentRef, tracked.taskId, tracked.facts);
57
+ }
58
+ // 保留的工具行在封存那一帧已经出过终态;重复的终态再放行,客户端会多出一行。
59
+ // 重复的终态补来了当时缺的结果(比如先空后补的失败原因):同一终态再报一次带上它,
60
+ // 宿主与客户端对已收尾的条目只补缺的结果。
61
+ const repeatedTerminal = call.status === "completed" || call.status === "failed";
62
+ const events = [];
63
+ const final = tracked.final;
64
+ if (repeatedTerminal &&
65
+ final !== undefined &&
66
+ final.summary === undefined &&
67
+ late?.type === "final" &&
68
+ late.status === final.status &&
69
+ late.summary !== undefined) {
70
+ final.summary = late.summary;
71
+ events.push({
72
+ type: "task.completed",
73
+ ...turnOf(tracked.turnId),
74
+ payload: {
75
+ ...linkage(tracked.taskId, call.toolCallId, tracked.facts),
76
+ status: final.status,
77
+ summary: late.summary,
78
+ },
79
+ });
80
+ }
81
+ return {
82
+ events,
83
+ handled: !tracked.keepToolRow || repeatedTerminal,
84
+ ...turnOf(tracked.turnId),
85
+ };
86
+ }
87
+ let known = tracked;
88
+ let kind;
89
+ if (known === undefined) {
90
+ const recognized = spec.recognize(call);
91
+ if (recognized === undefined)
92
+ return undefined;
93
+ if (recognized === "exclude") {
94
+ calls.set(call.toolCallId, EXCLUDED);
95
+ return undefined;
96
+ }
97
+ kind = recognized;
98
+ }
99
+ else {
100
+ kind = known.kind;
101
+ }
102
+ const resolution = spec.resolve?.(call, kind, {
103
+ known: known?.announced === true,
104
+ background: known?.background ?? false,
105
+ });
106
+ // 一轮结束后留下的 idle 只等真实终态:进度类更新不重开它,也不画成工具行。
107
+ if (known?.phase === "idle" && resolution?.type !== "final") {
108
+ if (resolution?.type === "background" && resolution.agentRef !== undefined) {
109
+ rememberAgent(resolution.agentRef, known.taskId, known.facts);
110
+ }
111
+ return { events: [], handled: true };
112
+ }
113
+ let carriedTurn;
114
+ if (known === undefined || !known.announced) {
115
+ // 参数还没到:只记下,等带参数的那一帧再判断是新 agent 还是续接。
116
+ if (resolution === undefined && !(spec.ready?.(call, kind) ?? true)) {
117
+ if (known === undefined) {
118
+ calls.set(call.toolCallId, {
119
+ kind,
120
+ taskId: call.toolCallId,
121
+ turnId: call.turnId,
122
+ facts: spec.facts(call, kind, undefined),
123
+ phase: "open",
124
+ status: undefined,
125
+ background: false,
126
+ announced: false,
127
+ });
128
+ }
129
+ return { events: [], handled: true };
130
+ }
131
+ carriedTurn = known?.turnId;
132
+ calls.delete(call.toolCallId);
133
+ known = undefined;
134
+ }
135
+ const events = [];
136
+ const ref = known === undefined ? spec.resumes?.(call, kind) : undefined;
137
+ const prior = ref === undefined ? undefined : agentTasks.get(ref);
138
+ const facts = spec.facts(call, kind, prior?.facts ?? known?.facts);
139
+ const turnId = known?.turnId ?? carriedTurn ?? call.turnId;
140
+ const turn = turnOf(turnId);
141
+ let entry;
142
+ if (known !== undefined) {
143
+ entry = known;
144
+ }
145
+ else if (prior !== undefined) {
146
+ // 续接:沿用旧任务 id 并明说重开;旧调用不再收尾,已封存的也不再补报结果(那会收掉这一轮)。
147
+ for (const [id, other] of calls) {
148
+ if (other === EXCLUDED || other.taskId !== prior.taskId)
149
+ continue;
150
+ if (isEntry(other))
151
+ calls.set(id, sealedHidden(other));
152
+ else if (other.final !== undefined) {
153
+ const { final: _superseded, ...rest } = other;
154
+ calls.set(id, rest);
155
+ }
156
+ }
157
+ entry = {
158
+ kind,
159
+ taskId: prior.taskId,
160
+ turnId,
161
+ facts,
162
+ phase: "open",
163
+ status: "running",
164
+ background: false,
165
+ announced: true,
166
+ };
167
+ calls.set(call.toolCallId, entry);
168
+ events.push({
169
+ type: "task.updated",
170
+ ...turn,
171
+ payload: {
172
+ ...linkage(entry.taskId, call.toolCallId, facts),
173
+ description: facts.description,
174
+ status: "running",
175
+ },
176
+ });
177
+ }
178
+ else {
179
+ entry = {
180
+ kind,
181
+ taskId: call.toolCallId,
182
+ turnId,
183
+ facts,
184
+ phase: "open",
185
+ status: undefined,
186
+ background: false,
187
+ announced: true,
188
+ };
189
+ calls.set(call.toolCallId, entry);
190
+ if (spec.announce === "started") {
191
+ events.push({
192
+ type: "task.started",
193
+ ...turn,
194
+ payload: {
195
+ ...linkage(entry.taskId, call.toolCallId, facts),
196
+ description: facts.description,
197
+ },
198
+ });
199
+ }
200
+ }
201
+ const seen = known !== undefined || prior !== undefined;
202
+ const wasStatus = entry.status;
203
+ entry.turnId = turnId;
204
+ if (resolution?.type === "hold") {
205
+ entry.facts = facts;
206
+ return { events, handled: true };
207
+ }
208
+ if (resolution?.type === "background") {
209
+ entry.facts = resolution.role === undefined ? facts : { ...facts, role: resolution.role };
210
+ if (!entry.background) {
211
+ events.push({
212
+ type: "task.updated",
213
+ ...turn,
214
+ payload: {
215
+ ...linkage(entry.taskId, call.toolCallId, entry.facts),
216
+ status: "running",
217
+ isBackgrounded: true,
218
+ },
219
+ });
220
+ }
221
+ entry.background = true;
222
+ entry.status = "running";
223
+ if (resolution.agentRef !== undefined)
224
+ rememberAgent(resolution.agentRef, entry.taskId, entry.facts);
225
+ return { events, handled: true };
226
+ }
227
+ if (resolution?.type === "final") {
228
+ const finalFacts = resolution.role === undefined ? facts : { ...facts, role: resolution.role };
229
+ const keepToolRow = resolution.keepToolRow === true;
230
+ const base = linkage(entry.taskId, call.toolCallId, finalFacts);
231
+ if (resolution.agentRef !== undefined)
232
+ rememberAgent(resolution.agentRef, entry.taskId, finalFacts);
233
+ calls.set(call.toolCallId, {
234
+ sealed: true,
235
+ keepToolRow,
236
+ ...(keepToolRow && (resolution.status === "completed" || resolution.status === "failed")
237
+ ? { final: { status: resolution.status, summary: resolution.summary } }
238
+ : {}),
239
+ turnId,
240
+ kind,
241
+ taskId: entry.taskId,
242
+ facts: finalFacts,
243
+ });
244
+ if (resolution.status === "completed" || resolution.status === "failed") {
245
+ events.push({
246
+ type: "task.completed",
247
+ ...turn,
248
+ payload: {
249
+ ...base,
250
+ status: resolution.status,
251
+ ...(resolution.summary === undefined ? {} : { summary: resolution.summary }),
252
+ },
253
+ });
254
+ }
255
+ else {
256
+ events.push({
257
+ type: "task.updated",
258
+ ...turn,
259
+ payload: {
260
+ ...base,
261
+ status: resolution.status,
262
+ ...(resolution.status === "idle" ? { outcomeUnknown: true } : {}),
263
+ ...(resolution.description === undefined
264
+ ? {}
265
+ : { description: resolution.description }),
266
+ ...(resolution.timelineBypass === true ? { timelineBypass: true } : {}),
267
+ },
268
+ });
269
+ }
270
+ return { events, handled: !keepToolRow, ...turn };
271
+ }
272
+ const status = call.status === "pending" && wasStatus !== "running" ? "pending" : "running";
273
+ const changed = !seen && spec.announce === "progress"
274
+ ? true
275
+ : seen && (wasStatus !== status || !sameFacts(entry.facts, facts));
276
+ entry.facts = facts;
277
+ entry.status = status;
278
+ if (changed) {
279
+ events.push({
280
+ type: "task.progress",
281
+ ...turn,
282
+ payload: {
283
+ ...linkage(entry.taskId, call.toolCallId, facts),
284
+ description: facts.description,
285
+ ...(facts.summary === undefined ? {} : { summary: facts.summary }),
286
+ status,
287
+ },
288
+ });
289
+ }
290
+ return { events, handled: true };
291
+ };
292
+ const settle = (settlement, turnId) => {
293
+ const events = [];
294
+ for (const [toolCallId, entry] of calls) {
295
+ if (!isEntry(entry))
296
+ continue;
297
+ // 轮次级收尾只处理这一轮发起的任务;会话退出才处理全部。
298
+ if (settlement !== "session-ended" &&
299
+ turnId !== undefined &&
300
+ entry.turnId !== undefined &&
301
+ entry.turnId !== turnId) {
302
+ continue;
303
+ }
304
+ const interrupted = settlement === "turn-interrupted";
305
+ const ended = settlement === "session-ended" || (interrupted && spec.interruptedMayStillRun !== true);
306
+ if (!entry.announced) {
307
+ // 没发布过身份,没有东西要收;但收尾要记下,晚到的参数帧不能让已结束的轮次复活。
308
+ if (ended)
309
+ calls.set(toolCallId, sealedHidden(entry));
310
+ else
311
+ entry.phase = "idle";
312
+ continue;
313
+ }
314
+ const base = linkage(entry.taskId, toolCallId, entry.facts);
315
+ const turn = turnOf(entry.turnId);
316
+ if (ended) {
317
+ events.push({ type: "task.updated", ...turn, payload: { ...base, status: "cancelled" } });
318
+ calls.set(toolCallId, sealedHidden(entry));
319
+ continue;
320
+ }
321
+ if (entry.phase === "idle")
322
+ continue;
323
+ const note = spec.endNote({ interrupted, background: entry.background });
324
+ events.push({
325
+ type: "task.updated",
326
+ ...turn,
327
+ payload: {
328
+ ...base,
329
+ status: "idle",
330
+ outcomeUnknown: true,
331
+ description: note.description,
332
+ ...(note.timelineBypass === true ? { timelineBypass: true } : {}),
333
+ },
334
+ });
335
+ entry.phase = "idle";
336
+ }
337
+ return events;
338
+ };
339
+ const mayStillRun = () => {
340
+ for (const entry of calls.values())
341
+ if (isEntry(entry))
342
+ return true;
343
+ return false;
344
+ };
345
+ return { onToolCallUpdated, settle, mayStillRun };
346
+ }
347
+ //# sourceMappingURL=tool-subagents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-subagents.js","sourceRoot":"","sources":["../src/tool-subagents.ts"],"names":[],"mappings":"AAgHA,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACpC,MAAM,YAAY,GAAG,CAAC,KAAY,EAAU,EAAE,CAAC,CAAC;IAC9C,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,KAAK;IAClB,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,MAAM,EAAE,KAAK,CAAC,MAAM;IACpB,KAAK,EAAE,KAAK,CAAC,KAAK;CACnB,CAAC,CAAC;AAcH,wDAAwD;AACxD,MAAM,UAAU,4BAA4B,CAC1C,KAAa,EACb,eAAmC;IAEnC,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,kBAAkB,CAAC;IACrD,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC;AAChG,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAuB,EAAE,CAAuB,EAAW,EAAE,CAC9E,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;IACnB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;IAC/B,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;IACvB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;IACjB,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;IACnB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;IACrB,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,CAAC;AAEhC,SAAS,OAAO,CAAC,MAAc,EAAE,UAAkB,EAAE,KAA2B;IAC9E,OAAO;QACL,MAAM;QACN,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,UAAU;QACrB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/D,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;KACnE,CAAC;AACb,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,KAAuC,EAAkB,EAAE,CAC1E,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;AAE7C,MAAM,UAAU,yBAAyB,CAAC,IAAyB;IACjE,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4C,CAAC;IAClE;;;;OAIG;IACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAGvB,CAAC;IAEJ,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,MAAc,EAAE,KAA2B,EAAQ,EAAE;QACvF,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,MAA0B,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAExF,MAAM,iBAAiB,GAAgD,CAAC,IAAI,EAAE,EAAE;QAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC3C,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,yCAAyC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YACpF,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC9E,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9D,CAAC;YACD,wCAAwC;YACxC,2CAA2C;YAC3C,uBAAuB;YACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;YACjF,MAAM,MAAM,GAAmB,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,IACE,gBAAgB;gBAChB,KAAK,KAAK,SAAS;gBACnB,KAAK,CAAC,OAAO,KAAK,SAAS;gBAC3B,IAAI,EAAE,IAAI,KAAK,OAAO;gBACtB,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;gBAC5B,IAAI,CAAC,OAAO,KAAK,SAAS,EAC1B,CAAC;gBACD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,gBAAgB;oBACtB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;oBACzB,OAAO,EAAE;wBACP,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC;wBAC1D,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,OAAO,EAAE,IAAI,CAAC,OAAO;qBACtB;iBACF,CAAC,CAAC;YACL,CAAC;YACD,OAAO;gBACL,MAAM;gBACN,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,gBAAgB;gBACjD,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aAC1B,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,GAAsB,OAAO,CAAC;QACvC,IAAI,IAAY,CAAC;QACjB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACrC,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,IAAI,GAAG,UAAU,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE;YAC5C,KAAK,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI;YAChC,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK;SACvC,CAAC,CAAC;QACH,0CAA0C;QAC1C,IAAI,KAAK,EAAE,KAAK,KAAK,MAAM,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5D,IAAI,UAAU,EAAE,IAAI,KAAK,YAAY,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3E,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;QAED,IAAI,WAA+B,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC5C,sCAAsC;YACtC,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;gBACpE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE;wBACzB,IAAI;wBACJ,MAAM,EAAE,IAAI,CAAC,UAAU;wBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC;wBACxC,KAAK,EAAE,MAAM;wBACb,MAAM,EAAE,SAAS;wBACjB,UAAU,EAAE,KAAK;wBACjB,SAAS,EAAE,KAAK;qBACjB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACvC,CAAC;YACD,WAAW,GAAG,KAAK,EAAE,MAAM,CAAC;YAC5B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;QAED,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,MAAM,KAAK,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAE5B,IAAI,KAAY,CAAC;QACjB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,kDAAkD;YAClD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;gBAChC,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;oBAAE,SAAS;gBAClE,IAAI,OAAO,CAAC,KAAK,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;qBAClD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBACnC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;oBAC9C,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,KAAK,GAAG;gBACN,IAAI;gBACJ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM;gBACN,KAAK;gBACL,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,IAAI;aAChB,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,cAAc;gBACpB,GAAG,IAAI;gBACP,OAAO,EAAE;oBACP,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;oBAChD,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,MAAM,EAAE,SAAS;iBAClB;aACF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,GAAG;gBACN,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,MAAM;gBACN,KAAK;gBACL,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,IAAI;aAChB,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,cAAc;oBACpB,GAAG,IAAI;oBACP,OAAO,EAAE;wBACP,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;wBAChD,WAAW,EAAE,KAAK,CAAC,WAAW;qBAC/B;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC;QACxD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAEtB,IAAI,UAAU,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAChC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACpB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,UAAU,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YACtC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;YAC1F,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,cAAc;oBACpB,GAAG,IAAI;oBACP,OAAO,EAAE;wBACP,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;wBACtD,MAAM,EAAE,SAAS;wBACjB,cAAc,EAAE,IAAI;qBACrB;iBACF,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YACxB,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YACzB,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS;gBACnC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAChE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,UAAU,GACd,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;YAC9E,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,KAAK,IAAI,CAAC;YACpD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAChE,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS;gBACnC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE;gBACzB,MAAM,EAAE,IAAI;gBACZ,WAAW;gBACX,GAAG,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC;oBACtF,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE;oBACvE,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM;gBACN,IAAI;gBACJ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxE,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,gBAAgB;oBACtB,GAAG,IAAI;oBACP,OAAO,EAAE;wBACP,GAAG,IAAI;wBACP,MAAM,EAAE,UAAU,CAAC,MAAM;wBACzB,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;qBAC7E;iBACF,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,cAAc;oBACpB,GAAG,IAAI;oBACP,OAAO,EAAE;wBACP,GAAG,IAAI;wBACP,MAAM,EAAE,UAAU,CAAC,MAAM;wBACzB,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjE,GAAG,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS;4BACtC,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;wBAC5C,GAAG,CAAC,UAAU,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACxE;iBACF,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;QACpD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,MAAM,OAAO,GACX,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU;YACnC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACvE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,eAAe;gBACrB,GAAG,IAAI;gBACP,OAAO,EAAE;oBACP,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;oBAChD,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClE,MAAM;iBACP;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,MAAM,GAAqC,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE;QACtE,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC9B,8BAA8B;YAC9B,IACE,UAAU,KAAK,eAAe;gBAC9B,MAAM,KAAK,SAAS;gBACpB,KAAK,CAAC,MAAM,KAAK,SAAS;gBAC1B,KAAK,CAAC,MAAM,KAAK,MAAM,EACvB,CAAC;gBACD,SAAS;YACX,CAAC;YACD,MAAM,WAAW,GAAG,UAAU,KAAK,kBAAkB,CAAC;YACtD,MAAM,KAAK,GACT,UAAU,KAAK,eAAe,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI,CAAC,CAAC;YAC1F,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACrB,0CAA0C;gBAC1C,IAAI,KAAK;oBAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;;oBACjD,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;gBAC1B,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC1F,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3C,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;gBAAE,SAAS;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,cAAc;gBACpB,GAAG,IAAI;gBACP,OAAO,EAAE;oBACP,GAAG,IAAI;oBACP,MAAM,EAAE,MAAM;oBACd,cAAc,EAAE,IAAI;oBACpB,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClE;aACF,CAAC,CAAC;YACH,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,WAAW,GAA0C,GAAG,EAAE;QAC9D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;YAAE,IAAI,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACpD,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { SessionNotification } from "@agentclientprotocol/sdk";
2
2
  import type { AcpArtifact } from "./artifacts.ts";
3
3
  import type { AcpFailureCategory } from "./failureCategory.ts";
4
+ import type { AcpToolSubagentSpec } from "./tool-subagents.ts";
4
5
  import type { AcpRequestPermissionParams } from "./types.ts";
5
6
  /**
6
7
  * 厂商差异的钩子。各 `@ycodium-ai/agent-*` 手用这些钩子表达与通用机的差异,
@@ -32,7 +33,26 @@ export type AcpVendorHooks = {
32
33
  * 并等回答的出口——钩子自己造等待表的话,CLI 崩溃时通用机的清理漏得掉它。
33
34
  */
34
35
  readonly onExtensionRequest?: (method: string, params: unknown, ctx: AcpExtensionContext) => unknown | Promise<unknown>;
35
- readonly onExtensionNotification?: (method: string, params: unknown) => void | Promise<void>;
36
+ /**
37
+ * 通用机不认识的 agent→client 通知(不是收口信号的那些)。同步返回的任务事件由通用机发出,
38
+ * 用来把厂商私有的子 agent 生命周期通知翻成 `task.*`;返回 Promise 的不发事件。
39
+ * `session/load` 重放窗口内不调用:重放的是旧会话的通知,不能让钩子据此开出新行。
40
+ */
41
+ readonly onExtensionNotification?: (method: string, params: unknown, ctx: AcpObserveContext) => void | ReadonlyArray<AcpTaskEvent> | Promise<void>;
42
+ /**
43
+ * 每条 `session/update`(已过 `transformSessionUpdate`)都先给这里看一眼,返回要发的任务事件。
44
+ * `foreign` 为真 = 这条来自本执行器从没开过的会话(如子 agent 自己的会话):通用机只给钩子读,
45
+ * 绝不把它并进本线程的时间线。换型号重开前的旧会话仍算本线程。`session/load` 重放窗口内不调用。
46
+ */
47
+ readonly onSessionUpdate?: (notification: SessionNotification, ctx: AcpObserveContext & {
48
+ readonly foreign: boolean;
49
+ }) => ReadonlyArray<AcpTaskEvent> | undefined;
50
+ /**
51
+ * 会话结束(进程退出、连接关闭、执行器释放)时还开着的子 agent 要留下的结论,排在
52
+ * `session.exited` 之前、经通用机同一个出口发出。子 agent 跟进程同生共死的报 `cancelled`,
53
+ * 可能在别处活着的报 `idle` 并带 `outcomeUnknown`;不发的话,父会话恢复后它会被折回运行中。
54
+ */
55
+ readonly onSessionEnded?: () => ReadonlyArray<AcpTaskEvent>;
36
56
  /**
37
57
  * 一轮 prompt 应答落地后读这家 CLI 写在别处的上下文占用(ACP 的
38
58
  * `usage_update` 至今没有 agent 真发)。返回 undefined = 读不出来,
@@ -51,19 +71,13 @@ export type AcpVendorHooks = {
51
71
  * 钩子自己持有跨更新的状态,并决定每条事件归哪一轮:`turnId` 是当前这一轮,晚到的
52
72
  * 通知不要硬算到后来的轮次上。
53
73
  */
54
- readonly onToolCallUpdated?: (input: {
55
- readonly toolCallId: string;
56
- /** 合并后的状态;ACP 的 `pending` / `inProgress` / `completed` / `failed`。 */
57
- readonly status: string | undefined;
58
- /** 合并后的标题与类别;agent 没报就是 undefined。 */
59
- readonly title: string | undefined;
60
- readonly kind: string | undefined;
61
- readonly rawInput: unknown;
62
- readonly rawOutput: unknown;
63
- /** 仅这一条通知自带的 `_meta`,不跨更新合并;要跨更新的话钩子自己记。 */
64
- readonly meta: unknown;
65
- readonly turnId: string | undefined;
66
- }) => ReadonlyArray<AcpTaskEvent> | AcpToolCallHookResult;
74
+ readonly onToolCallUpdated?: (input: AcpToolCallInput) => ReadonlyArray<AcpTaskEvent> | AcpToolCallHookResult;
75
+ /**
76
+ * 子 agent 就是一次工具调用的 agent(没有独立会话可跟):执行器内部持有跟踪器,
77
+ * 在工具调用更新里认人,并在一轮结束、被打断、传输失败、进程退出时收尾。
78
+ * 它先于 `onToolCallUpdated` 看到每条更新;认出的调用不再交给后者。
79
+ */
80
+ readonly toolSubagents?: AcpToolSubagentSpec;
67
81
  /**
68
82
  * 每条 `session/update` 进通用机之前先过这里(含 `session/load` 重放窗口里的)。
69
83
  * 返回改写后的通知;返回 undefined = 整条丢掉。用来截断大载荷(`rawInput`、`rawOutput`、
@@ -87,6 +101,16 @@ export type AcpExtensionContext = {
87
101
  */
88
102
  readonly askUserInput: (questions: ReadonlyArray<AcpUserInputQuestion>) => Promise<AcpUserInputResolution>;
89
103
  };
104
+ /** 观察类钩子拿到的当前状态:此刻的轮次(没有在跑的轮次时为 undefined)与本会话 id。 */
105
+ type AcpObserveContext = {
106
+ readonly turnId: string | undefined;
107
+ readonly sessionId: string | undefined;
108
+ /**
109
+ * 登记一个子会话 id:此后它发来的 `session/update` 一律不并进本线程,即使开会话请求在途。
110
+ * 厂商在认出子 agent 的会话时调用。
111
+ */
112
+ readonly markChildSession: (sessionId: string) => void;
113
+ };
90
114
  export type AcpUserInputResolution = {
91
115
  readonly kind: "answered";
92
116
  readonly answers: Record<string, unknown>;
@@ -128,6 +152,22 @@ export type AcpPromptSettlementHooks = {
128
152
  readonly failureCategory?: AcpFailureCategory;
129
153
  } | undefined;
130
154
  };
155
+ /** `onToolCallUpdated` 收到的一条工具调用更新(合并后的状态)。 */
156
+ export type AcpToolCallInput = {
157
+ readonly toolCallId: string;
158
+ /** 合并后的状态;ACP 的 `pending` / `inProgress` / `completed` / `failed`。 */
159
+ readonly status: string | undefined;
160
+ /** 合并后的标题与类别;agent 没报就是 undefined。 */
161
+ readonly title: string | undefined;
162
+ readonly kind: string | undefined;
163
+ readonly rawInput: unknown;
164
+ readonly rawOutput: unknown;
165
+ /** 合并后 ACP `content` 里的文本(工具结果与错误文本常放在这里),共享层已拼接并截断。 */
166
+ readonly contentText: string | undefined;
167
+ /** 仅这一条通知自带的 `_meta`,不跨更新合并;要跨更新的话钩子自己记。 */
168
+ readonly meta: unknown;
169
+ readonly turnId: string | undefined;
170
+ };
131
171
  /**
132
172
  * `onToolCallUpdated` 的完整返回形状。直接返回事件数组 = `handled` 为假。
133
173
  */
@@ -143,12 +183,81 @@ export type AcpToolCallHookResult = {
143
183
  * 通用机不再把它画成普通工具,也不再因它劈开当前回答。
144
184
  */
145
185
  readonly handled?: boolean;
186
+ /**
187
+ * 厂商认定的这条调用所属的轮次。给了就用它发工具事件,免得任务事件与工具事件
188
+ * 分别推导出不同的轮次(结果在后一轮迟到时)。
189
+ */
190
+ readonly turnId?: string;
191
+ };
192
+ /**
193
+ * `task.*` 载荷,与 `@ycodium-ai/plugin-api/executor` 的 `ExecutorTask*Payload` 同名同形(本包不依赖它,
194
+ * 只列这边会发的字段);`plugins/agent-acp` 的类型测试核对每一种都能赋给宿主那一份。
195
+ */
196
+ export type AcpTaskStatus = "pending" | "running" | "waiting" | "idle" | "completed" | "failed" | "cancelled" | "interrupted";
197
+ export type AcpTaskUsage = {
198
+ readonly totalTokens: number;
199
+ readonly inputTokens?: number | undefined;
200
+ readonly cachedInputTokens?: number | undefined;
201
+ readonly outputTokens?: number | undefined;
202
+ readonly reasoningOutputTokens?: number | undefined;
203
+ readonly toolUses?: number | undefined;
204
+ readonly durationMs?: number | undefined;
205
+ };
206
+ export type AcpTaskLinkage = {
207
+ readonly taskId: string;
208
+ readonly taskType?: string | undefined;
209
+ readonly title?: string | undefined;
210
+ readonly role?: string | undefined;
211
+ readonly model?: string | undefined;
212
+ readonly effort?: string | undefined;
213
+ readonly toolUseId?: string | undefined;
214
+ readonly parentAgentId?: string | undefined;
215
+ readonly nativeSessionId?: string | undefined;
216
+ /** 这条只进 agent 面板,不进父会话的时间线。 */
217
+ readonly timelineBypass?: boolean | undefined;
218
+ readonly rosterKind?: "subagent" | "workflow" | "workflow_member" | undefined;
219
+ };
220
+ export type AcpTaskStartedPayload = AcpTaskLinkage & {
221
+ readonly description?: string | undefined;
222
+ };
223
+ export type AcpTaskProgressPayload = AcpTaskLinkage & {
224
+ readonly description: string;
225
+ readonly summary?: string | undefined;
226
+ readonly typedUsage?: AcpTaskUsage | undefined;
227
+ readonly lastToolName?: string | undefined;
228
+ readonly status?: AcpTaskStatus | undefined;
229
+ readonly error?: string | undefined;
230
+ };
231
+ export type AcpTaskUpdatedPayload = AcpTaskLinkage & {
232
+ readonly status?: AcpTaskStatus | undefined;
233
+ readonly description?: string | undefined;
234
+ readonly error?: string | undefined;
235
+ readonly isBackgrounded?: boolean | undefined;
236
+ /** 拿不到该 agent 的结局:`idle` 只表示这一轮结束了,展示端按「状态未知」。 */
237
+ readonly outcomeUnknown?: boolean | undefined;
238
+ };
239
+ export type AcpTaskCompletedPayload = AcpTaskLinkage & {
240
+ readonly status: "completed" | "failed" | "stopped";
241
+ readonly summary?: string | undefined;
242
+ readonly typedUsage?: AcpTaskUsage | undefined;
146
243
  };
147
244
  /** 钩子翻出的一条后台任务事件;通用机只补身份与时间戳。 */
148
245
  export type AcpTaskEvent = {
149
- readonly type: "task.started" | "task.progress" | "task.updated" | "task.completed";
246
+ readonly type: "task.started";
247
+ readonly turnId?: string;
248
+ readonly payload: AcpTaskStartedPayload;
249
+ } | {
250
+ readonly type: "task.progress";
251
+ readonly turnId?: string;
252
+ readonly payload: AcpTaskProgressPayload;
253
+ } | {
254
+ readonly type: "task.updated";
255
+ readonly turnId?: string;
256
+ readonly payload: AcpTaskUpdatedPayload;
257
+ } | {
258
+ readonly type: "task.completed";
150
259
  readonly turnId?: string;
151
- readonly payload: Record<string, unknown>;
260
+ readonly payload: AcpTaskCompletedPayload;
152
261
  };
153
262
  export type AcpContextWindowReading = {
154
263
  readonly usedTokens: number;
@@ -180,4 +289,5 @@ export type AcpUserInputQuestion = {
180
289
  readonly multiSelect?: boolean;
181
290
  };
182
291
  export declare const defaultVendorHooks: AcpVendorHooks;
292
+ export {};
183
293
  //# sourceMappingURL=vendor-hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vendor-hooks.d.ts","sourceRoot":"","sources":["../src/vendor-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vendor-hooks.d.ts","sourceRoot":"","sources":["../src/vendor-hooks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vendor-hooks.js","sourceRoot":"","sources":["../src/vendor-hooks.ts"],"names":[],"mappings":"AAuMA,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,mBAAmB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU;CACvD,CAAC"}
1
+ {"version":3,"file":"vendor-hooks.js","sourceRoot":"","sources":["../src/vendor-hooks.ts"],"names":[],"mappings":"AAgVA,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,mBAAmB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU;CACvD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ycodium-acp-executor",
3
- "version": "0.2.3576",
3
+ "version": "0.2.3608",
4
4
  "description": "Agent Client Protocol client and executor state machine for Ycodium agent plugins. Speaks ACP over stdio and emits Ycodium executor events.",
5
5
  "keywords": [
6
6
  "acp",