@yolk-sdk/agent 0.1.0-canary.88 → 0.1.0-canary.89

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
@@ -760,8 +760,13 @@ The optional parent identity lets a later conversation run address the original
760
760
  acceptance independent of how quickly the child finishes.
761
761
  It emits normal tool completion but **not** `SubagentCompleted`, and carries no usage. Keep the
762
762
  logical `subagent:<toolCallId>` identity separate from the physical Workflow id. Never append a
763
- second tool result for the original launch; expose host-owned status/wait tools whose observations
764
- do not masquerade as fresh child usage. Host-owned storage must remain readable after parent end.
763
+ second tool result for the original launch. Hosts may deliver findings automatically or expose
764
+ host-owned status/wait tools whose observations do not masquerade as fresh child usage. The SDK
765
+ registers none of those observation tools and promises no automatic delivery. Its default background
766
+ parameter and acceptance text therefore defer to host instructions instead of naming unavailable
767
+ tools. Hosts should describe their actual completion policy in model-visible instructions and retain
768
+ lookup identities in accepted-result text if they customize it; structured metadata alone may not
769
+ survive provider lowering. Host-owned storage must remain readable after parent end.
765
770
 
766
771
  A lost control response or exhausted observation budget is not a terminal child failure. Hosts
767
772
  can return a `ToolResult` with `structuredContent.type: 'subagent_observation'` and a matching
@@ -11,14 +11,6 @@ import { Data } from "effect";
11
11
  //#region src/react/chat-actions.d.ts
12
12
  type AgentChatAction = AgentChatAction$1;
13
13
  declare const AgentChatAction: {
14
- readonly Error: Data.TaggedEnum.ConstructorFrom<{
15
- readonly _tag: "Error";
16
- readonly message: string;
17
- }, "_tag">;
18
- readonly SubmitHitlResponse: Data.TaggedEnum.ConstructorFrom<{
19
- readonly _tag: "SubmitHitlResponse";
20
- readonly response: HitlResponse;
21
- }, "_tag">;
22
14
  readonly HydrateMessage: Data.TaggedEnum.ConstructorFrom<{
23
15
  readonly _tag: "HydrateMessage";
24
16
  readonly message: AgentMessage;
@@ -31,6 +23,10 @@ declare const AgentChatAction: {
31
23
  readonly _tag: "AppendMessage";
32
24
  readonly message: AgentMessage;
33
25
  }, "_tag">;
26
+ readonly SubmitHitlResponse: Data.TaggedEnum.ConstructorFrom<{
27
+ readonly _tag: "SubmitHitlResponse";
28
+ readonly response: HitlResponse;
29
+ }, "_tag">;
34
30
  readonly DeleteTurn: Data.TaggedEnum.ConstructorFrom<{
35
31
  readonly _tag: "DeleteTurn";
36
32
  readonly messageId: string;
@@ -48,10 +44,14 @@ declare const AgentChatAction: {
48
44
  readonly _tag: "Event";
49
45
  readonly event: AgentEvent;
50
46
  } & ApplyAgentEventToChatMessagesOptions, "_tag">;
47
+ readonly Error: Data.TaggedEnum.ConstructorFrom<{
48
+ readonly _tag: "Error";
49
+ readonly message: string;
50
+ }, "_tag">;
51
51
  readonly Abort: Data.TaggedEnum.ConstructorFrom<{
52
52
  readonly _tag: "Abort";
53
53
  }, "_tag">;
54
- readonly $is: <Tag extends "Error" | "SubmitHitlResponse" | "HydrateMessage" | "Submit" | "AppendMessage" | "DeleteTurn" | "RegenerateFrom" | "EditUserMessage" | "Event" | "Abort">(tag: Tag) => (u: unknown) => u is Extract<{
54
+ readonly $is: <Tag extends "HydrateMessage" | "Submit" | "AppendMessage" | "SubmitHitlResponse" | "DeleteTurn" | "RegenerateFrom" | "EditUserMessage" | "Event" | "Error" | "Abort">(tag: Tag) => (u: unknown) => u is Extract<{
55
55
  readonly _tag: "HydrateMessage";
56
56
  readonly message: AgentMessage;
57
57
  }, {
@@ -104,14 +104,6 @@ declare const AgentChatAction: {
104
104
  }>;
105
105
  readonly $match: {
106
106
  <Cases extends {
107
- readonly Error: (args: {
108
- readonly _tag: "Error";
109
- readonly message: string;
110
- }) => any;
111
- readonly SubmitHitlResponse: (args: {
112
- readonly _tag: "SubmitHitlResponse";
113
- readonly response: HitlResponse;
114
- }) => any;
115
107
  readonly HydrateMessage: (args: {
116
108
  readonly _tag: "HydrateMessage";
117
109
  readonly message: AgentMessage;
@@ -124,6 +116,10 @@ declare const AgentChatAction: {
124
116
  readonly _tag: "AppendMessage";
125
117
  readonly message: AgentMessage;
126
118
  }) => any;
119
+ readonly SubmitHitlResponse: (args: {
120
+ readonly _tag: "SubmitHitlResponse";
121
+ readonly response: HitlResponse;
122
+ }) => any;
127
123
  readonly DeleteTurn: (args: {
128
124
  readonly _tag: "DeleteTurn";
129
125
  readonly messageId: string;
@@ -141,19 +137,15 @@ declare const AgentChatAction: {
141
137
  readonly _tag: "Event";
142
138
  readonly event: AgentEvent;
143
139
  } & ApplyAgentEventToChatMessagesOptions) => any;
144
- readonly Abort: (args: {
145
- readonly _tag: "Abort";
146
- }) => any;
147
- }>(cases: Cases): (value: AgentChatAction$1) => import("effect/Unify").Unify<ReturnType<Cases["Error" | "SubmitHitlResponse" | "HydrateMessage" | "Submit" | "AppendMessage" | "DeleteTurn" | "RegenerateFrom" | "EditUserMessage" | "Event" | "Abort"]>>;
148
- <Cases extends {
149
140
  readonly Error: (args: {
150
141
  readonly _tag: "Error";
151
142
  readonly message: string;
152
143
  }) => any;
153
- readonly SubmitHitlResponse: (args: {
154
- readonly _tag: "SubmitHitlResponse";
155
- readonly response: HitlResponse;
144
+ readonly Abort: (args: {
145
+ readonly _tag: "Abort";
156
146
  }) => any;
147
+ }>(cases: Cases): (value: AgentChatAction$1) => import("effect/Unify").Unify<ReturnType<Cases["HydrateMessage" | "Submit" | "AppendMessage" | "SubmitHitlResponse" | "DeleteTurn" | "RegenerateFrom" | "EditUserMessage" | "Event" | "Error" | "Abort"]>>;
148
+ <Cases extends {
157
149
  readonly HydrateMessage: (args: {
158
150
  readonly _tag: "HydrateMessage";
159
151
  readonly message: AgentMessage;
@@ -166,6 +158,10 @@ declare const AgentChatAction: {
166
158
  readonly _tag: "AppendMessage";
167
159
  readonly message: AgentMessage;
168
160
  }) => any;
161
+ readonly SubmitHitlResponse: (args: {
162
+ readonly _tag: "SubmitHitlResponse";
163
+ readonly response: HitlResponse;
164
+ }) => any;
169
165
  readonly DeleteTurn: (args: {
170
166
  readonly _tag: "DeleteTurn";
171
167
  readonly messageId: string;
@@ -183,24 +179,28 @@ declare const AgentChatAction: {
183
179
  readonly _tag: "Event";
184
180
  readonly event: AgentEvent;
185
181
  } & ApplyAgentEventToChatMessagesOptions) => any;
182
+ readonly Error: (args: {
183
+ readonly _tag: "Error";
184
+ readonly message: string;
185
+ }) => any;
186
186
  readonly Abort: (args: {
187
187
  readonly _tag: "Abort";
188
188
  }) => any;
189
- }>(value: AgentChatAction$1, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Error" | "SubmitHitlResponse" | "HydrateMessage" | "Submit" | "AppendMessage" | "DeleteTurn" | "RegenerateFrom" | "EditUserMessage" | "Event" | "Abort"]>>;
189
+ }>(value: AgentChatAction$1, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["HydrateMessage" | "Submit" | "AppendMessage" | "SubmitHitlResponse" | "DeleteTurn" | "RegenerateFrom" | "EditUserMessage" | "Event" | "Error" | "Abort"]>>;
190
190
  };
191
191
  };
192
192
  type AgentChatSubmitResult = AgentChatSubmitResult$1;
193
193
  declare const AgentChatSubmitResult: {
194
- readonly Ignored: Data.TaggedEnum.ConstructorFrom<{
195
- readonly _tag: "Ignored";
196
- }, "_tag">;
197
194
  readonly Submitted: Data.TaggedEnum.ConstructorFrom<{
198
195
  readonly _tag: "Submitted";
199
196
  readonly content: Content;
200
197
  readonly message: UserMessage;
201
198
  readonly messages: AgentTranscript;
202
199
  }, "_tag">;
203
- readonly $is: <Tag extends "Ignored" | "Submitted">(tag: Tag) => (u: unknown) => u is Extract<{
200
+ readonly Ignored: Data.TaggedEnum.ConstructorFrom<{
201
+ readonly _tag: "Ignored";
202
+ }, "_tag">;
203
+ readonly $is: <Tag extends "Submitted" | "Ignored">(tag: Tag) => (u: unknown) => u is Extract<{
204
204
  readonly _tag: "Submitted";
205
205
  readonly content: Content;
206
206
  readonly message: UserMessage;
@@ -214,27 +214,27 @@ declare const AgentChatSubmitResult: {
214
214
  }>;
215
215
  readonly $match: {
216
216
  <Cases extends {
217
- readonly Ignored: (args: {
218
- readonly _tag: "Ignored";
219
- }) => any;
220
217
  readonly Submitted: (args: {
221
218
  readonly _tag: "Submitted";
222
219
  readonly content: Content;
223
220
  readonly message: UserMessage;
224
221
  readonly messages: AgentTranscript;
225
222
  }) => any;
226
- }>(cases: Cases): (value: AgentChatSubmitResult$1) => import("effect/Unify").Unify<ReturnType<Cases["Ignored" | "Submitted"]>>;
227
- <Cases extends {
228
223
  readonly Ignored: (args: {
229
224
  readonly _tag: "Ignored";
230
225
  }) => any;
226
+ }>(cases: Cases): (value: AgentChatSubmitResult$1) => import("effect/Unify").Unify<ReturnType<Cases["Submitted" | "Ignored"]>>;
227
+ <Cases extends {
231
228
  readonly Submitted: (args: {
232
229
  readonly _tag: "Submitted";
233
230
  readonly content: Content;
234
231
  readonly message: UserMessage;
235
232
  readonly messages: AgentTranscript;
236
233
  }) => any;
237
- }>(value: AgentChatSubmitResult$1, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Ignored" | "Submitted"]>>;
234
+ readonly Ignored: (args: {
235
+ readonly _tag: "Ignored";
236
+ }) => any;
237
+ }>(value: AgentChatSubmitResult$1, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Submitted" | "Ignored"]>>;
238
238
  };
239
239
  };
240
240
  type AgentChatDeleteTurnResult = AgentChatDeleteTurnResult$1;
@@ -371,15 +371,15 @@ declare const AgentChatEditUserMessageResult: {
371
371
  };
372
372
  type AgentChatHitlResponseResult = AgentChatHitlResponseResult$1;
373
373
  declare const AgentChatHitlResponseResult: {
374
- readonly Ignored: Data.TaggedEnum.ConstructorFrom<{
375
- readonly _tag: "Ignored";
376
- }, "_tag">;
377
374
  readonly Submitted: Data.TaggedEnum.ConstructorFrom<{
378
375
  readonly _tag: "Submitted";
379
376
  readonly response: HitlResponse;
380
377
  readonly messages: AgentTranscript;
381
378
  }, "_tag">;
382
- readonly $is: <Tag extends "Ignored" | "Submitted">(tag: Tag) => (u: unknown) => u is Extract<{
379
+ readonly Ignored: Data.TaggedEnum.ConstructorFrom<{
380
+ readonly _tag: "Ignored";
381
+ }, "_tag">;
382
+ readonly $is: <Tag extends "Submitted" | "Ignored">(tag: Tag) => (u: unknown) => u is Extract<{
383
383
  readonly _tag: "Submitted";
384
384
  readonly response: HitlResponse;
385
385
  readonly messages: AgentTranscript;
@@ -392,25 +392,25 @@ declare const AgentChatHitlResponseResult: {
392
392
  }>;
393
393
  readonly $match: {
394
394
  <Cases extends {
395
- readonly Ignored: (args: {
396
- readonly _tag: "Ignored";
397
- }) => any;
398
395
  readonly Submitted: (args: {
399
396
  readonly _tag: "Submitted";
400
397
  readonly response: HitlResponse;
401
398
  readonly messages: AgentTranscript;
402
399
  }) => any;
403
- }>(cases: Cases): (value: AgentChatHitlResponseResult$1) => import("effect/Unify").Unify<ReturnType<Cases["Ignored" | "Submitted"]>>;
404
- <Cases extends {
405
400
  readonly Ignored: (args: {
406
401
  readonly _tag: "Ignored";
407
402
  }) => any;
403
+ }>(cases: Cases): (value: AgentChatHitlResponseResult$1) => import("effect/Unify").Unify<ReturnType<Cases["Submitted" | "Ignored"]>>;
404
+ <Cases extends {
408
405
  readonly Submitted: (args: {
409
406
  readonly _tag: "Submitted";
410
407
  readonly response: HitlResponse;
411
408
  readonly messages: AgentTranscript;
412
409
  }) => any;
413
- }>(value: AgentChatHitlResponseResult$1, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Ignored" | "Submitted"]>>;
410
+ readonly Ignored: (args: {
411
+ readonly _tag: "Ignored";
412
+ }) => any;
413
+ }>(value: AgentChatHitlResponseResult$1, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Submitted" | "Ignored"]>>;
414
414
  };
415
415
  };
416
416
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"chat-actions.d.mts","names":[],"sources":["../../src/react/chat-actions.ts"],"mappings":";;;;;;;;;;;KAUY,eAAA,GAAkB,iBAAmB;AAAA,cAEpC,eAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAED,qBAAA,GAAwB,uBAAyB;AAAA,cAEhD,qBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAED,yBAAA,GAA4B,2BAA6B;AAAA,cAExD,yBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAED,yBAAA,GAA4B,2BAA6B;AAAA,cAExD,yBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAED,8BAAA,GAAiC,gCAAkC;AAAA,cAElE,8BAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAED,2BAAA,GAA8B,6BAA+B;AAAA,cAE5D,2BAAA;EAAA"}
1
+ {"version":3,"file":"chat-actions.d.mts","names":[],"sources":["../../src/react/chat-actions.ts"],"mappings":";;;;;;;;;;;KAUY,eAAA,GAAkB,iBAAmB;AAAA,cAEpC,eAAA;EAAA;;sBAAoD,YAAA;EAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAErD,qBAAA,GAAwB,uBAAyB;AAAA,cAEhD,qBAAA;EAAA;;sBAAgE,OAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEjE,yBAAA,GAA4B,2BAA6B;AAAA,cAExD,yBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAED,yBAAA,GAA4B,2BAA6B;AAAA,cAExD,yBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAED,8BAAA,GAAiC,gCAAkC;AAAA,cAElE,8BAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAED,2BAAA,GAA8B,6BAA+B;AAAA,cAE5D,2BAAA;EAAA;;uBAA4E,YAAA;IAAA"}
@@ -464,6 +464,12 @@ type AgentChatPart = {
464
464
  readonly message: string;
465
465
  };
466
466
  declare const AgentChatPart: {
467
+ readonly ToolCall: Data.TaggedEnum.ConstructorFrom<{
468
+ readonly _tag: "ToolCall";
469
+ readonly id: string;
470
+ readonly call: ToolCall;
471
+ readonly state: ChatToolState;
472
+ }, "_tag">;
467
473
  readonly Text: Data.TaggedEnum.ConstructorFrom<{
468
474
  readonly _tag: "Text";
469
475
  readonly id: string;
@@ -476,12 +482,6 @@ declare const AgentChatPart: {
476
482
  readonly text: string;
477
483
  readonly state: ChatPartState;
478
484
  }, "_tag">;
479
- readonly ToolCall: Data.TaggedEnum.ConstructorFrom<{
480
- readonly _tag: "ToolCall";
481
- readonly id: string;
482
- readonly call: ToolCall;
483
- readonly state: ChatToolState;
484
- }, "_tag">;
485
485
  readonly ToolResult: Data.TaggedEnum.ConstructorFrom<{
486
486
  readonly _tag: "ToolResult";
487
487
  readonly id: string;
@@ -497,7 +497,7 @@ declare const AgentChatPart: {
497
497
  readonly id: string;
498
498
  readonly message: string;
499
499
  }, "_tag">;
500
- readonly $is: <Tag extends "Text" | "Reasoning" | "ToolCall" | "ToolResult" | "Error">(tag: Tag) => (u: unknown) => u is Extract<{
500
+ readonly $is: <Tag extends "ToolCall" | "Text" | "Reasoning" | "ToolResult" | "Error">(tag: Tag) => (u: unknown) => u is Extract<{
501
501
  readonly _tag: "Text";
502
502
  readonly id: string;
503
503
  readonly content: Content;
@@ -538,6 +538,12 @@ declare const AgentChatPart: {
538
538
  }>;
539
539
  readonly $match: {
540
540
  <Cases extends {
541
+ readonly ToolCall: (args: {
542
+ readonly _tag: "ToolCall";
543
+ readonly id: string;
544
+ readonly call: ToolCall;
545
+ readonly state: ChatToolState;
546
+ }) => any;
541
547
  readonly Text: (args: {
542
548
  readonly _tag: "Text";
543
549
  readonly id: string;
@@ -550,12 +556,6 @@ declare const AgentChatPart: {
550
556
  readonly text: string;
551
557
  readonly state: ChatPartState;
552
558
  }) => any;
553
- readonly ToolCall: (args: {
554
- readonly _tag: "ToolCall";
555
- readonly id: string;
556
- readonly call: ToolCall;
557
- readonly state: ChatToolState;
558
- }) => any;
559
559
  readonly ToolResult: (args: {
560
560
  readonly _tag: "ToolResult";
561
561
  readonly id: string;
@@ -571,8 +571,14 @@ declare const AgentChatPart: {
571
571
  readonly id: string;
572
572
  readonly message: string;
573
573
  }) => any;
574
- }>(cases: Cases): (value: AgentChatPart) => import("effect/Unify").Unify<ReturnType<Cases["Text" | "Reasoning" | "ToolCall" | "ToolResult" | "Error"]>>;
574
+ }>(cases: Cases): (value: AgentChatPart) => import("effect/Unify").Unify<ReturnType<Cases["ToolCall" | "Text" | "Reasoning" | "ToolResult" | "Error"]>>;
575
575
  <Cases extends {
576
+ readonly ToolCall: (args: {
577
+ readonly _tag: "ToolCall";
578
+ readonly id: string;
579
+ readonly call: ToolCall;
580
+ readonly state: ChatToolState;
581
+ }) => any;
576
582
  readonly Text: (args: {
577
583
  readonly _tag: "Text";
578
584
  readonly id: string;
@@ -585,12 +591,6 @@ declare const AgentChatPart: {
585
591
  readonly text: string;
586
592
  readonly state: ChatPartState;
587
593
  }) => any;
588
- readonly ToolCall: (args: {
589
- readonly _tag: "ToolCall";
590
- readonly id: string;
591
- readonly call: ToolCall;
592
- readonly state: ChatToolState;
593
- }) => any;
594
594
  readonly ToolResult: (args: {
595
595
  readonly _tag: "ToolResult";
596
596
  readonly id: string;
@@ -606,7 +606,7 @@ declare const AgentChatPart: {
606
606
  readonly id: string;
607
607
  readonly message: string;
608
608
  }) => any;
609
- }>(value: AgentChatPart, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Text" | "Reasoning" | "ToolCall" | "ToolResult" | "Error"]>>;
609
+ }>(value: AgentChatPart, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["ToolCall" | "Text" | "Reasoning" | "ToolResult" | "Error"]>>;
610
610
  };
611
611
  };
612
612
  type AgentChatMessage = {
@@ -1 +1 @@
1
- {"version":3,"file":"chat-messages.d.mts","names":[],"sources":["../../src/react/chat-messages.ts"],"mappings":";;;;;KAqCY,aAAA;AAAA,KAEA,aAAA;EAAA,SACG,IAAA;AAAA;EAAA,SACA,IAAA;EAAA,SAAiC,KAAA;AAAA;EAAA,SACjC,IAAA;EAAA,SAAoC,OAAA,GAAU,mBAAA;AAAA;EAAA,SAC9C,IAAA;EAAA,SAAyB,MAAA;AAAA;EAAA,SACzB,IAAA;EAAA,SAAoC,OAAA,EAAS,eAAA;AAAA;EAAA,SAE7C,IAAA;EAAA,SACA,QAAA,EAAU,gBAAA;EAAA,SACV,OAAA,GAAU,eAAA;AAAA;EAAA,SAGV,IAAA;EAAA,SACA,QAAA,EAAU,gBAAA;EAAA,SACV,OAAA,GAAU,eAAA;AAAA;EAAA,SAEV,IAAA;EAAA,SAAiC,OAAA,EAAS,YAAA;AAAA;EAAA,SAE1C,IAAA;EAAA,SACA,QAAA,EAAU,aAAA;EAAA,SACV,OAAA,GAAU,YAAA;AAAA;EAAA,SAGV,IAAA;EAAA,SACA,QAAA,EAAU,aAAA;EAAA,SACV,OAAA,GAAU,YAAA;AAAA;EAAA,SAEV,IAAA;EAAA,SAAuC,OAAA,EAAS,kBAAA;AAAA;EAAA,SAEhD,IAAA;EAAA,SACA,QAAA,EAAU,mBAAA;EAAA,SACV,OAAA,GAAU,kBAAA;AAAA;EAAA,SAGV,IAAA;EAAA,SACA,QAAA,EAAU,mBAAA;EAAA,SACV,OAAA,GAAU,kBAAA;AAAA;EAAA,SAEV,IAAA;EAAA,SAA0B,WAAA;AAAA;EAAA,SAE1B,IAAA;EAAA,SACA,MAAA,EAAQ,UAAA;EAAA,SACR,WAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,MAAA,EAAQ,UAAA;EAAA,SACR,cAAA,GAAiB,eAAA;EAAA,SACjB,WAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,OAAA;EAAA,SACA,WAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAEA,IAAA;EAAA,SAAoC,MAAA,EAAQ,UAAA;AAAA;AAAA,cAE9C,aAAA;EAAA;;;;;;uBAzDgD,mBAAA;EAAA;EAAA;;;;;;sBAED,eAAA;EAAA;EAAA;;uBAGnC,gBAAA;IAAA,mBACA,eAAA;EAAA;EAAA;;uBAIA,gBAAA;IAAA,mBACA,eAAA;EAAA;EAAA;;sBAEgC,YAAA;EAAA;EAAA;;uBAGhC,aAAA;IAAA,mBACA,YAAA;EAAA;EAAA;;uBAIA,aAAA;IAAA,mBACA,YAAA;EAAA;EAAA;;sBAEsC,kBAAA;EAAA;EAAA;;uBAGtC,mBAAA;IAAA,mBACA,kBAAA;EAAA;EAAA;;uBAIA,mBAAA;IAAA,mBACA,kBAAA;EAAA;EAAA;;qBAKF,UAAA;IAAA;;;;;qBAMA,UAAA;IAAA,0BACS,eAAA;IAAA;;;;;;;;;;;qBAU2B,UAAA;EAAA;EAAA;;;;;;;;;;;;;;;;;;uBAvDE,mBAAA;EAAA;IAAA;;;;;;;;sBAED,eAAA;EAAA;IAAA;;;uBAGnC,gBAAA;IAAA,mBACA,eAAA;EAAA;IAAA;;;uBAIA,gBAAA;IAAA,mBACA,eAAA;EAAA;IAAA;;;sBAEgC,YAAA;EAAA;IAAA;;;uBAGhC,aAAA;IAAA,mBACA,YAAA;EAAA;IAAA;;;uBAIA,aAAA;IAAA,mBACA,YAAA;EAAA;IAAA;;;sBAEsC,kBAAA;EAAA;IAAA;;;uBAGtC,mBAAA;IAAA,mBACA,kBAAA;EAAA;IAAA;;;uBAIA,mBAAA;IAAA,mBACA,kBAAA;EAAA;IAAA;;;;;;;;qBAKF,UAAA;IAAA;;;;;;qBAMA,UAAA;IAAA,0BACS,eAAA;IAAA;;;;;;;;;;;;;qBAU2B,UAAA;EAAA;IAAA;;;;;;;;;;2BAvDE,mBAAA;MAAA;MAAA;;;;;;0BAED,eAAA;MAAA;MAAA;;2BAGnC,gBAAA;QAAA,mBACA,eAAA;MAAA;MAAA;;2BAIA,gBAAA;QAAA,mBACA,eAAA;MAAA;MAAA;;0BAEgC,YAAA;MAAA;MAAA;;2BAGhC,aAAA;QAAA,mBACA,YAAA;MAAA;MAAA;;2BAIA,aAAA;QAAA,mBACA,YAAA;MAAA;MAAA;;0BAEsC,kBAAA;MAAA;MAAA;;2BAGtC,mBAAA;QAAA,mBACA,kBAAA;MAAA;MAAA;;2BAIA,mBAAA;QAAA,mBACA,kBAAA;MAAA;MAAA;;yBAKF,UAAA;QAAA;;;;;yBAMA,UAAA;QAAA,0BACS,eAAA;QAAA;;;;;;;;;;;yBAU2B,UAAA;MAAA;MAAA;;;;;;;;;;;;;;;2BAvDE,mBAAA;MAAA;MAAA;;;;;;0BAED,eAAA;MAAA;MAAA;;2BAGnC,gBAAA;QAAA,mBACA,eAAA;MAAA;MAAA;;2BAIA,gBAAA;QAAA,mBACA,eAAA;MAAA;MAAA;;0BAEgC,YAAA;MAAA;MAAA;;2BAGhC,aAAA;QAAA,mBACA,YAAA;MAAA;MAAA;;2BAIA,aAAA;QAAA,mBACA,YAAA;MAAA;MAAA;;0BAEsC,kBAAA;MAAA;MAAA;;2BAGtC,mBAAA;QAAA,mBACA,kBAAA;MAAA;MAAA;;2BAIA,mBAAA;QAAA,mBACA,kBAAA;MAAA;MAAA;;yBAKF,UAAA;QAAA;;;;;yBAMA,UAAA;QAAA,0BACS,eAAA;QAAA;;;;;;;;;;;yBAU2B,UAAA;MAAA;MAAA;;;;;;;;;;KAI/C,aAAA;EAAA,SAEG,IAAA;EAAA,SACA,EAAA;EAAA,SACA,OAAA,EAAS,OAAA;EAAA,SACT,KAAA,EAAO,aAAA;AAAA;EAAA,SAGP,IAAA;EAAA,SACA,EAAA;EAAA,SACA,IAAA;EAAA,SACA,KAAA,EAAO,aAAA;AAAA;EAAA,SAGP,IAAA;EAAA,SACA,EAAA;EAAA,SACA,IAAA,EAAM,QAAA;EAAA,SACN,KAAA,EAAO,aAAA;AAAA;EAAA,SAGP,IAAA;EAAA,SACA,EAAA;EAAA,SACA,UAAA;EAAA,SACA,IAAA;EAAA,SACA,OAAA,EAAS,OAAA;EAAA,SACT,OAAA;EAAA,SACA,UAAA,GAAa,UAAA;EAAA,SACb,iBAAA;AAAA;EAAA,SAEA,IAAA;EAAA,SAAwB,EAAA;EAAA,SAAqB,OAAA;AAAA;AAAA,cAE/C,aAAA;EAAA;;;sBA3BW,OAAA;IAAA,gBACF,aAAA;EAAA;EAAA;;;;oBAMA,aAAA;EAAA;EAAA;;;mBAKD,QAAA;IAAA,gBACC,aAAA;EAAA;EAAA;;;;;sBAOE,OAAA;IAAA;0BAEI,UAAA;IAAA;;;;;;;;;;sBAtBJ,OAAA;IAAA,gBACF,aAAA;EAAA;IAAA;;;;;oBAMA,aAAA;EAAA;IAAA;;;;mBAKD,QAAA;IAAA,gBACC,aAAA;EAAA;IAAA;;;;;;sBAOE,OAAA;IAAA;0BAEI,UAAA;IAAA;;;;;;;;;;;;;;;0BAtBJ,OAAA;QAAA,gBACF,aAAA;MAAA;MAAA;;;;wBAMA,aAAA;MAAA;MAAA;;;uBAKD,QAAA;QAAA,gBACC,aAAA;MAAA;MAAA;;;;;0BAOE,OAAA;QAAA;8BAEI,UAAA;QAAA;;;;;;;;;;;;0BAtBJ,OAAA;QAAA,gBACF,aAAA;MAAA;MAAA;;;;wBAMA,aAAA;MAAA;MAAA;;;uBAKD,QAAA;QAAA,gBACC,aAAA;MAAA;MAAA;;;;;0BAOE,OAAA;QAAA;8BAEI,UAAA;QAAA;;;;;;;;;;KAOhB,gBAAA;EAAA,SACD,EAAA;EAAA,SACA,MAAA;EAAA,SACA,QAAA;EAAA,SACA,IAAA;EAAA,SACA,WAAA;EAAA,SACA,MAAA,GAAS,aAAA;EAAA,SACT,WAAA,GAAc,kBAAA;EAAA,SACd,KAAA,EAAO,aAAA,CAAc,aAAA;AAAA;AAAA,KAGpB,oBAAA;EAAA,SACG,IAAA;AAAA;EAAA,SAEA,IAAA;EAAA,SACA,kBAAA;EAAA,SACA,iBAAA,EAAmB,aAAA;EAAA,SACnB,QAAA,EAAU,aAAA,CAAc,gBAAA;AAAA;AAAA,cAG1B,oBAAA;EAAA;;;gCAJqB,aAAA;IAAA,mBACT,aAAA,CAAc,gBAAA;EAAA;EAAA;;;;;;;;;;gCADL,aAAA;IAAA,mBACT,aAAA,CAAc,gBAAA;EAAA;IAAA;;;;;;;oCADL,aAAA;QAAA,mBACT,aAAA,CAAc,gBAAA;MAAA;MAAA;;;;;;;;oCADL,aAAA;QAAA,mBACT,aAAA,CAAc,gBAAA;MAAA;MAAA;;;;;;KAK3B,yBAAA;EAAA,SACG,IAAA;AAAA;EAAA,SACA,IAAA;AAAA;EAAA,SAEA,IAAA;EAAA,SACA,SAAA;EAAA,SACA,QAAA,EAAU,aAAa,CAAC,gBAAA;AAAA;AAAA,cAG1B,yBAAA;EAAA;;;uBAHY,aAAA,CAAc,gBAAA;EAAA;EAAA;;;;;;;;;;;;;;;;;uBAAd,aAAA,CAAc,gBAAA;EAAA;IAAA;;;;;;;2BAAd,aAAA,CAAc,gBAAA;MAAA;MAAA;;;;;;;;;;;2BAAd,aAAA,CAAc,gBAAA;MAAA;MAAA;;;;;;;;;KAK3B,4BAAA;EAAA,SACG,IAAA;AAAA;EAAA,SAEA,IAAA;EAAA,SACA,QAAA,EAAU,aAAa,CAAC,gBAAA;AAAA;AAAA,cAG1B,4BAAA;EAAA;;uBAHY,aAAA,CAAc,gBAAA;EAAA;EAAA;;;;;;;;;uBAAd,aAAA,CAAc,gBAAA;EAAA;IAAA;;;;;;2BAAd,aAAA,CAAc,gBAAA;MAAA;MAAA;;;;;;;2BAAd,aAAA,CAAc,gBAAA;MAAA;MAAA;;;;;;KAK3B,oCAAA;EAAA,SACD,KAAK;AAAA;AAAA,KAoDJ,2BAAA;EAAA,SACD,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA,SACxB,SAAA;EAAA,SACA,cAAA;EAAA,SACA,cAAA;EAAA,SACA,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA,SACxB,KAAA;AAAA;AAAA,cA8dE,cAAA,GACX,QAAA,EAAU,aAAA,CAAc,gBAAA,GACxB,SAAA,aACC,oBAAA;AAAA,cAuBU,0BAAA,GACX,QAAA,EAAU,aAAA,CAAc,gBAAA,GACxB,SAAA,aACC,4BAAA;AAAA,cAkBU,mBAAA,GACX,QAAA,EAAU,aAAA,CAAc,gBAAA,GACxB,SAAA,UACA,OAAA,EAAS,OAAA,KACR,yBAAA;AAAA,cA2iBU,qBAAA,GACX,QAAA,EAAU,aAAA,CAAc,gBAAA,GACxB,OAAA,EAAS,YAAA,cAAY,gBAAA,KAAA,gBAAA;AAAA,cAiDV,aAAA,GACX,QAAA,EAAU,aAAA,CAAc,gBAAA,GACxB,OAAA,aACC,aAAA,CAAc,gBAAA;;;;;;;cAmBJ,6BAAA,GACX,QAAA,EAAU,aAAA,CAAc,gBAAA,GACxB,KAAA,EAAO,UAAA,EACP,OAAA,GAAS,oCAAA,KACR,aAAA,CAAc,gBAAA;AAAA,cAkYJ,sBAAA;EAA0B,QAAA;EAAA,SAAA;EAAA,cAAA;EAAA,cAAA;EAAA,QAAA;EAAA;AAAA,GAOpC,2BAAA,KAA8B,aAAA,CAAc,gBAAA;AAAA,cAuMlC,eAAA,GAAmB,QAAA,EAAU,aAAA,CAAc,gBAAA,OAAiB,WAAA,GAAA,qBAAA,GAAA,iBAAA"}
1
+ {"version":3,"file":"chat-messages.d.mts","names":[],"sources":["../../src/react/chat-messages.ts"],"mappings":"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"}
@@ -15,9 +15,9 @@ type MergedSkillset = {
15
15
  };
16
16
  declare const mergeSkillsets: (sources: ReadonlyArray<SkillsetSource>) => Effect.Effect<{
17
17
  skills: {
18
- readonly content: string;
19
18
  readonly name: string;
20
19
  readonly description: string;
20
+ readonly content: string;
21
21
  readonly location: string;
22
22
  readonly source?: string | undefined;
23
23
  }[];
@@ -25,8 +25,8 @@ declare const mergeSkillsets: (sources: ReadonlyArray<SkillsetSource>) => Effect
25
25
  readonly name: string;
26
26
  readonly hints: readonly string[];
27
27
  readonly template: string;
28
- readonly source?: string | undefined;
29
28
  readonly description?: string | undefined;
29
+ readonly source?: string | undefined;
30
30
  readonly location?: string | undefined;
31
31
  readonly arguments?: readonly {
32
32
  readonly required: boolean;
@@ -85,7 +85,9 @@ declare const subagentUsageFromToolResult: (result: ToolResult) => AgentUsage |
85
85
  declare const subagentResultFromEvents: (events: ReadonlyArray<AgentEvent>) => SubagentRunResult;
86
86
  declare const subagentResultText: (events: ReadonlyArray<AgentEvent>) => string;
87
87
  declare const makeSubagentToolResult: (input: SubagentToolResultInput) => ToolResult;
88
- /** Acceptance is a tool completion, never a child completion or usage delta. */
88
+ /** Acceptance is a tool completion, never a child completion or usage delta.
89
+ * Hosts own completion delivery and any observation tools; registration supplies neither.
90
+ */
89
91
  declare const makeSubagentAcceptedToolResult: (input: {
90
92
  readonly callId: string;
91
93
  readonly workflowRunId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.d.mts","names":[],"sources":["../../src/tools/subagent.ts"],"mappings":"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"}
1
+ {"version":3,"file":"subagent.d.mts","names":[],"sources":["../../src/tools/subagent.ts"],"mappings":"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"}
@@ -25,7 +25,7 @@ const optionalRuntimeSelection = (input) => Schema$1.optionalKey(Schema$1.Enum(e
25
25
  const configuredSubagentToolParams = (options) => {
26
26
  const fields = {
27
27
  ...SubagentToolBaseFields,
28
- background: Schema$1.optionalKey(Schema$1.Boolean.pipe(Schema$1.annotate({ description: "Return an accepted handle immediately; use subagent_status or subagent_wait to read the result." })))
28
+ background: Schema$1.optionalKey(Schema$1.Boolean.pipe(Schema$1.annotate({ description: "Return an accepted handle immediately, not the completed result. Completion delivery and observation follow the host instructions." })))
29
29
  };
30
30
  const model = options.models === void 0 || options.models.length === 0 ? void 0 : optionalRuntimeSelection({
31
31
  values: options.models.map((item) => item.id),
@@ -312,10 +312,12 @@ const subagentAcceptedStructuredContent = (input) => {
312
312
  if (input.parentRunId !== void 0) structuredContent.parent_run_id = input.parentRunId;
313
313
  return structuredContent;
314
314
  };
315
- /** Acceptance is a tool completion, never a child completion or usage delta. */
315
+ /** Acceptance is a tool completion, never a child completion or usage delta.
316
+ * Hosts own completion delivery and any observation tools; registration supplies neither.
317
+ */
316
318
  const makeSubagentAcceptedToolResult = (input) => ToolResult.make({
317
319
  toolCallId: input.callId,
318
- content: `Subagent accepted. Use subagent_status or subagent_wait with tool_call_id=${input.callId}${input.parentRunId === void 0 ? "" : ` and parent_run_id=${input.parentRunId}`}.`,
320
+ content: `Subagent accepted, not completed. Reference: tool_call_id=${input.callId}${input.parentRunId === void 0 ? "" : ` and parent_run_id=${input.parentRunId}`}. Completion delivery and observation follow the host instructions.`,
319
321
  structuredContent: subagentAcceptedStructuredContent(input)
320
322
  });
321
323
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.mjs","names":["Schema"],"sources":["../../src/tools/subagent.ts"],"sourcesContent":["import { Effect, Predicate } from 'effect'\nimport * as Schema from 'effect/Schema'\nimport { ToolError } from '@yolk-sdk/agent/loop'\nimport {\n addAgentUsage,\n assistantContent,\n AgentUsage,\n contentText,\n isTerminalAgentEvent,\n makeSubagentRunId,\n ToolResult,\n type AgentErrorCode,\n type AgentEvent,\n type AgentMessage,\n type AgentReasoningEffort,\n type HitlRequest,\n type ProviderErrorInfo,\n type ToolCall,\n zeroAgentUsage\n} from '@yolk-sdk/agent/protocol'\nimport { subagentToolName } from '../protocol/tool.ts'\nimport {\n makeTool,\n modelVisibleToolError,\n type ModelVisibleToolError,\n type ToolModule,\n type ToolRegistration,\n type ToolRegistryError\n} from './registry.ts'\n\nexport { subagentToolName }\n\nconst SubagentToolBaseFields = {\n description: Schema.String.pipe(\n Schema.annotate({ description: 'A short 3-5 word description of the task.' })\n ),\n prompt: Schema.String.pipe(\n Schema.annotate({\n description:\n 'The complete task instructions for the subagent, including all context it needs.'\n })\n ),\n subagent_type: Schema.String.pipe(\n Schema.annotate({ description: 'The specialized subagent type to use for this task.' })\n )\n}\n\nexport type SubagentToolParams = {\n readonly description: string\n readonly prompt: string\n readonly subagent_type: string\n readonly model?: string\n readonly reasoning_effort?: AgentReasoningEffort\n readonly background?: boolean\n}\n\nexport type SubagentDefinition = {\n readonly name: string\n readonly description: string\n}\n\nexport type SubagentModelDefinition = {\n readonly id: string\n readonly description: string\n}\n\nexport type SubagentReasoningEffortDefinition = {\n readonly value: AgentReasoningEffort\n readonly description: string\n}\n\nexport type SubagentRuntimeSelectionOptions = {\n /** Opt-in only: inline hosts do not advertise background execution. */\n readonly background?: boolean\n readonly models?: ReadonlyArray<SubagentModelDefinition>\n readonly reasoningEfforts?: ReadonlyArray<SubagentReasoningEffortDefinition>\n}\n\nexport type SubagentContext = {\n readonly subagent?: boolean\n}\n\nexport type SubagentExecutionInput<Context> = {\n readonly call: ToolCall\n readonly context: Context\n readonly params: SubagentToolParams\n}\n\nexport type SubagentToolOptions<Context> = SubagentRuntimeSelectionOptions & {\n readonly subagents: ReadonlyArray<SubagentDefinition>\n readonly isEnabled?: (context: Context) => Effect.Effect<boolean, ToolRegistryError>\n readonly execute: (input: SubagentExecutionInput<Context>) => Effect.Effect<ToolResult, ToolError>\n}\n\nexport type SubagentRunError = {\n readonly code: AgentErrorCode\n readonly message: string\n readonly retryable: boolean\n readonly provider?: ProviderErrorInfo\n}\n\nexport type SubagentRunStatus = 'completed' | 'awaiting_input' | 'error'\n\nexport type SubagentRunResult = {\n readonly status: SubagentRunStatus\n readonly text: string\n readonly usage?: AgentUsage\n readonly turns?: number\n readonly requests?: ReadonlyArray<HitlRequest>\n readonly error?: SubagentRunError\n}\n\nexport type SubagentToolResultInput = {\n readonly callId: string\n readonly output: string\n readonly subagentType: string\n readonly description: string\n readonly subagentRunId: string\n readonly startedAtMs: number\n readonly endedAtMs: number\n readonly model: string\n readonly reasoningEffort?: AgentReasoningEffort\n readonly usage?: AgentUsage\n readonly turns?: number\n readonly status?: SubagentRunStatus\n readonly requests?: ReadonlyArray<HitlRequest>\n readonly error?: SubagentRunError\n readonly isError?: boolean\n}\n\ntype SubagentToolParamsFields = {\n readonly description: string\n readonly prompt: string\n readonly subagent_type: string\n model?: string\n reasoning_effort?: AgentReasoningEffort\n background?: boolean\n}\n\ntype SubagentProviderMetadataFields = {\n readonly provider: string\n readonly kind: ProviderErrorInfo['kind']\n status?: number\n provider_code?: string\n retry_after_ms?: number\n}\n\ntype SubagentUsageInputMetadataFields = {\n readonly total: number\n uncached?: number\n cache_read?: number\n cache_write?: number\n}\n\ntype SubagentUsageOutputMetadataFields = {\n readonly total: number\n text?: number\n reasoning?: number\n}\n\ntype SubagentUsageMetadataFields = {\n readonly input: SubagentUsageInputMetadataFields\n readonly output: SubagentUsageOutputMetadataFields\n}\n\ntype SubagentErrorMetadataFields = {\n readonly code: AgentErrorCode\n readonly message: string\n readonly retryable: boolean\n provider?: SubagentProviderMetadataFields\n}\n\ntype SubagentRunErrorFields = {\n readonly code: AgentErrorCode\n readonly message: string\n readonly retryable: boolean\n provider?: ProviderErrorInfo\n}\n\ntype SubagentRunResultFields = {\n readonly status: SubagentRunStatus\n readonly text: string\n usage?: AgentUsage\n turns?: number\n requests?: ReadonlyArray<HitlRequest>\n error?: SubagentRunErrorFields\n}\n\ntype SubagentToolResultStructuredContentFields = {\n readonly subagent_run_id: string\n readonly subagent_type: string\n readonly description: string\n readonly started_at_ms: number\n readonly ended_at_ms: number\n readonly duration_ms: number\n readonly status: SubagentRunStatus\n readonly model: string\n reasoning_effort?: AgentReasoningEffort\n usage?: SubagentUsageMetadataFields\n turns?: number\n hitl_requests?: ReadonlyArray<HitlRequest>\n error?: SubagentErrorMetadataFields\n}\n\ntype SubagentAcceptedStructuredContentFields = {\n readonly type: 'subagent_accepted'\n readonly status: 'accepted'\n readonly subagent_run_id: string\n readonly workflow_run_id: string\n parent_run_id?: string\n}\n\ntype SubagentAgentInputUsageFields = {\n readonly total: number\n uncached?: number\n cacheRead?: number\n cacheWrite?: number\n}\n\ntype SubagentAgentOutputUsageFields = {\n readonly total: number\n text?: number\n reasoning?: number\n}\n\nconst subagentToolError = (message: string, cause: ToolError['cause']) =>\n new ToolError({\n tool: subagentToolName,\n message,\n cause\n })\n\nconst subagentModelVisibleError = (message: string) =>\n modelVisibleToolError({\n tool: subagentToolName,\n message,\n reason: 'validation'\n })\n\nconst enumRecord = <Value extends string>(\n values: ReadonlyArray<Value>\n): Readonly<Record<string, Value>> => Object.fromEntries(values.map(value => [value, value]))\n\nconst optionalRuntimeSelection = <Value extends string>(input: {\n readonly values: ReadonlyArray<Value>\n readonly description: string\n}) =>\n Schema.optionalKey(\n Schema.Enum(enumRecord(input.values)).pipe(Schema.annotate({ description: input.description }))\n )\n\nconst configuredSubagentToolParams = (options: SubagentRuntimeSelectionOptions) => {\n const fields = {\n ...SubagentToolBaseFields,\n background: Schema.optionalKey(\n Schema.Boolean.pipe(\n Schema.annotate({\n description:\n 'Return an accepted handle immediately; use subagent_status or subagent_wait to read the result.'\n })\n )\n )\n }\n\n const model =\n options.models === undefined || options.models.length === 0\n ? undefined\n : optionalRuntimeSelection({\n values: options.models.map(item => item.id),\n description: 'Model for this subagent. Omit to inherit the host runtime model.'\n })\n\n const reasoningEffort =\n options.reasoningEfforts === undefined || options.reasoningEfforts.length === 0\n ? undefined\n : optionalRuntimeSelection({\n values: options.reasoningEfforts.map(item => item.value),\n description:\n 'Reasoning effort for this subagent. Omit to inherit the host runtime effort.'\n })\n\n if (model !== undefined && reasoningEffort !== undefined) {\n return options.background === true\n ? Schema.Struct({ ...fields, model, reasoning_effort: reasoningEffort })\n : Schema.Struct({ ...SubagentToolBaseFields, model, reasoning_effort: reasoningEffort })\n }\n\n if (model !== undefined) {\n return options.background === true\n ? Schema.Struct({ ...fields, model })\n : Schema.Struct({ ...SubagentToolBaseFields, model })\n }\n\n if (reasoningEffort !== undefined) {\n return options.background === true\n ? Schema.Struct({ ...fields, reasoning_effort: reasoningEffort })\n : Schema.Struct({ ...SubagentToolBaseFields, reasoning_effort: reasoningEffort })\n }\n\n return options.background === true ? Schema.Struct(fields) : Schema.Struct(SubagentToolBaseFields)\n}\n\nconst trimmedSubagentParams = (params: SubagentToolParams): SubagentToolParams => {\n const trimmed: SubagentToolParamsFields = {\n description: params.description.trim(),\n prompt: params.prompt.trim(),\n subagent_type: params.subagent_type.trim()\n }\n\n if (params.background !== undefined) {\n trimmed.background = params.background\n }\n\n if (params.model !== undefined) {\n trimmed.model = params.model\n }\n\n if (params.reasoning_effort !== undefined) {\n trimmed.reasoning_effort = params.reasoning_effort\n }\n\n return trimmed\n}\n\nconst validateSubagentParams = (\n params: SubagentToolParams\n): Effect.Effect<SubagentToolParams, ModelVisibleToolError> => {\n const trimmed = trimmedSubagentParams(params)\n\n if (trimmed.description.length === 0) {\n return Effect.fail(subagentModelVisibleError('description must not be empty'))\n }\n\n if (trimmed.prompt.length === 0) {\n return Effect.fail(subagentModelVisibleError('prompt must not be empty'))\n }\n\n if (trimmed.subagent_type.length === 0) {\n return Effect.fail(subagentModelVisibleError('subagent_type must not be empty'))\n }\n\n return Effect.succeed(trimmed)\n}\n\nconst findSubagent = (subagents: ReadonlyArray<SubagentDefinition>, name: string) =>\n subagents.find(subagent => subagent.name === name)\n\nconst requireKnownSubagent = (\n subagents: ReadonlyArray<SubagentDefinition>,\n name: string\n): Effect.Effect<SubagentDefinition, ModelVisibleToolError> => {\n const subagent = findSubagent(subagents, name)\n\n return subagent === undefined\n ? Effect.fail(subagentModelVisibleError(`Unknown subagent type: ${name}`))\n : Effect.succeed(subagent)\n}\n\nconst subagentDescription = (subagent: SubagentDefinition) =>\n `- ${subagent.name}: ${subagent.description}`\n\nconst modelDescription = (model: SubagentModelDefinition) => `- ${model.id}: ${model.description}`\n\nconst reasoningEffortDescription = (effort: SubagentReasoningEffortDefinition) =>\n `- ${effort.value}: ${effort.description}`\n\nconst subagentToolDescription = (\n options: SubagentRuntimeSelectionOptions & {\n readonly subagents: ReadonlyArray<SubagentDefinition>\n }\n) =>\n [\n 'Launch a new agent to handle complex, multistep tasks autonomously.',\n 'Use this when delegating focused work to a specialized subagent would save context or allow parallel exploration.',\n 'To run subagents in parallel, call this subagent tool multiple times in the same assistant response.',\n 'Yolk runs same-turn subagent calls concurrently automatically.',\n 'A fresh subagent only sees the prompt you provide, so include all required context.',\n 'Subagents can use their normal tools but cannot launch further subagents in v1.',\n options.subagents.length === 0\n ? 'No subagent types are currently available.'\n : `Available subagent types:\\n${options.subagents.map(subagentDescription).join('\\n')}`,\n options.models === undefined || options.models.length === 0\n ? undefined\n : [\n 'Available subagent models:',\n options.models.map(modelDescription).join('\\n'),\n 'Omit model to inherit the host runtime model.'\n ].join('\\n'),\n options.reasoningEfforts === undefined || options.reasoningEfforts.length === 0\n ? undefined\n : [\n 'Available subagent reasoning efforts:',\n options.reasoningEfforts.map(reasoningEffortDescription).join('\\n'),\n 'Omit reasoning_effort to inherit the host runtime effort.'\n ].join('\\n')\n ]\n .filter(section => section !== undefined)\n .join('\\n\\n')\n\nexport const makeSubagentToolRegistration = <Context>(\n options: SubagentToolOptions<Context>\n): ToolRegistration<Context> =>\n makeTool({\n name: subagentToolName,\n description: subagentToolDescription(options),\n parameters: configuredSubagentToolParams(options),\n access: 'read',\n isEnabled: options.isEnabled,\n invalidParamsMessage: error =>\n `Invalid subagent arguments: ${error instanceof Error ? error.message : String(error)}`,\n execute: ({ call, context, params }) =>\n Effect.gen(function* () {\n if (call.name !== subagentToolName) {\n return yield* Effect.fail(\n subagentToolError(`Tool is not configured: ${call.name}`, 'not_found')\n )\n }\n\n const normalizedParams = yield* validateSubagentParams(params)\n yield* requireKnownSubagent(options.subagents, normalizedParams.subagent_type)\n\n return yield* options.execute({ call, context, params: normalizedParams })\n })\n })\n\nexport const makeSubagentToolDef = (\n subagents: ReadonlyArray<SubagentDefinition>,\n runtimeSelections: SubagentRuntimeSelectionOptions = {}\n) =>\n makeSubagentToolRegistration({\n subagents,\n ...runtimeSelections,\n execute: ({ call }) => Effect.succeed(ToolResult.make({ toolCallId: call.id, content: '' }))\n }).def\n\nexport const makeSubagentToolModule = <Context>(\n options: SubagentToolOptions<Context>\n): ToolModule<Context> => ({\n id: subagentToolName,\n tools: [makeSubagentToolRegistration(options)]\n})\n\nexport const makeNonRecursiveSubagentToolModule = <Context extends SubagentContext>(\n options: SubagentToolOptions<Context>\n): ToolModule<Context> =>\n makeSubagentToolModule({\n ...options,\n isEnabled: context =>\n context.subagent === true\n ? Effect.succeed(false)\n : options.isEnabled === undefined\n ? Effect.succeed(true)\n : options.isEnabled(context)\n })\n\nexport const formatSubagentResult = (output: string) =>\n ['<subagent_result>', output, '</subagent_result>'].join('\\n')\n\nexport const subagentToolRunId = makeSubagentRunId\n\nconst latestAssistantText = (messages: ReadonlyArray<AgentMessage>) => {\n const assistant = [...messages]\n .reverse()\n .find(message => Predicate.isTagged(message, 'Assistant'))\n\n return assistant === undefined ? '' : contentText(assistantContent(assistant))\n}\n\nconst subagentProviderMetadata = (provider: ProviderErrorInfo): SubagentProviderMetadataFields => {\n const metadata: SubagentProviderMetadataFields = {\n provider: provider.provider,\n kind: provider.kind\n }\n\n if (provider.status !== undefined) {\n metadata.status = provider.status\n }\n\n if (provider.providerCode !== undefined) {\n metadata.provider_code = provider.providerCode\n }\n\n if (provider.retryAfterMs !== undefined) {\n metadata.retry_after_ms = provider.retryAfterMs\n }\n\n return metadata\n}\n\nconst subagentUsageInputMetadata = (usage: AgentUsage): SubagentUsageInputMetadataFields => {\n const input: SubagentUsageInputMetadataFields = {\n total: usage.input.total\n }\n\n if (usage.input.uncached !== undefined) {\n input.uncached = usage.input.uncached\n }\n\n if (usage.input.cacheRead !== undefined) {\n input.cache_read = usage.input.cacheRead\n }\n\n if (usage.input.cacheWrite !== undefined) {\n input.cache_write = usage.input.cacheWrite\n }\n\n return input\n}\n\nconst subagentUsageOutputMetadata = (usage: AgentUsage): SubagentUsageOutputMetadataFields => {\n const output: SubagentUsageOutputMetadataFields = {\n total: usage.output.total\n }\n\n if (usage.output.text !== undefined) {\n output.text = usage.output.text\n }\n\n if (usage.output.reasoning !== undefined) {\n output.reasoning = usage.output.reasoning\n }\n\n return output\n}\n\nconst subagentUsageMetadata = (usage: AgentUsage): SubagentUsageMetadataFields => ({\n input: subagentUsageInputMetadata(usage),\n output: subagentUsageOutputMetadata(usage)\n})\n\nconst subagentErrorMetadata = (error: SubagentRunError): SubagentErrorMetadataFields => {\n const metadata: SubagentErrorMetadataFields = {\n code: error.code,\n message: error.message,\n retryable: error.retryable\n }\n\n if (error.provider !== undefined) {\n metadata.provider = subagentProviderMetadata(error.provider)\n }\n\n return metadata\n}\n\nconst SubagentUsageMetadata = Schema.Struct({\n input: Schema.Struct({\n total: Schema.Number,\n uncached: Schema.optional(Schema.Number),\n cache_read: Schema.optional(Schema.Number),\n cache_write: Schema.optional(Schema.Number)\n }),\n output: Schema.Struct({\n total: Schema.Number,\n text: Schema.optional(Schema.Number),\n reasoning: Schema.optional(Schema.Number)\n })\n})\n\nconst SubagentStructuredUsage = Schema.Struct({\n subagent_run_id: Schema.String,\n subagent_type: Schema.String,\n usage: SubagentUsageMetadata\n})\n\nconst subagentAgentInputUsageFromMetadata = (\n usage: SubagentUsageMetadataFields\n): SubagentAgentInputUsageFields => {\n const input: SubagentAgentInputUsageFields = {\n total: usage.input.total\n }\n\n if (usage.input.uncached !== undefined) {\n input.uncached = usage.input.uncached\n }\n\n if (usage.input.cache_read !== undefined) {\n input.cacheRead = usage.input.cache_read\n }\n\n if (usage.input.cache_write !== undefined) {\n input.cacheWrite = usage.input.cache_write\n }\n\n return input\n}\n\nconst subagentAgentOutputUsageFromMetadata = (\n usage: SubagentUsageMetadataFields\n): SubagentAgentOutputUsageFields => {\n const output: SubagentAgentOutputUsageFields = {\n total: usage.output.total\n }\n\n if (usage.output.text !== undefined) {\n output.text = usage.output.text\n }\n\n if (usage.output.reasoning !== undefined) {\n output.reasoning = usage.output.reasoning\n }\n\n return output\n}\n\nexport const subagentUsageFromToolResult = (result: ToolResult): AgentUsage | undefined => {\n if (\n !Schema.is(SubagentStructuredUsage)(result.structuredContent) ||\n result.structuredContent.subagent_run_id !== subagentToolRunId(result.toolCallId)\n ) {\n return undefined\n }\n\n const usage = result.structuredContent.usage\n\n return AgentUsage.make({\n input: subagentAgentInputUsageFromMetadata(usage),\n output: subagentAgentOutputUsageFromMetadata(usage)\n })\n}\n\nconst subagentRunErrorFromAgentError = (error: SubagentRunError): SubagentRunErrorFields => {\n const result: SubagentRunErrorFields = {\n code: error.code,\n message: error.message,\n retryable: error.retryable\n }\n\n if (error.provider !== undefined) {\n result.provider = error.provider\n }\n\n return result\n}\n\nexport const subagentResultFromEvents = (events: ReadonlyArray<AgentEvent>): SubagentRunResult => {\n const terminal = [...events].reverse().find(isTerminalAgentEvent)\n const usageUpdates = events.filter(event => Predicate.isTagged(event, 'UsageUpdate'))\n\n const usage = usageUpdates.reduce(\n (total, event) => addAgentUsage(total, event.usage),\n zeroAgentUsage\n )\n\n const turns = events.reduce(\n (latest, event) =>\n Predicate.isTagged(event, 'TurnStart') ? Math.max(latest, event.turn) : latest,\n 0\n )\n\n if (terminal === undefined) {\n const message = 'Subagent stream ended without a terminal event.'\n\n const result: SubagentRunResultFields = {\n status: 'error',\n text: `Subagent failed: ${message}`\n }\n\n if (usageUpdates.length !== 0) {\n result.usage = usage\n }\n\n if (turns !== 0) {\n result.turns = turns\n }\n\n result.error = {\n code: 'invalid_response',\n message,\n retryable: false\n }\n\n return result\n }\n\n if (Predicate.isTagged(terminal, 'AgentError')) {\n const result: SubagentRunResultFields = {\n status: 'error',\n text: `Subagent failed: ${terminal.message}`\n }\n\n if (usageUpdates.length !== 0) {\n result.usage = usage\n }\n\n if (turns !== 0) {\n result.turns = turns\n }\n\n result.error = subagentRunErrorFromAgentError(terminal)\n\n return result\n }\n\n const text = latestAssistantText(terminal.messages).trim()\n\n const result: SubagentRunResultFields = {\n status: Predicate.isTagged(terminal, 'AgentAwaitingInput') ? 'awaiting_input' : 'completed',\n text: text.length === 0 ? 'Subagent completed without a final text response.' : text,\n usage: terminal.usage,\n turns: terminal.turns\n }\n\n if (Predicate.isTagged(terminal, 'AgentAwaitingInput')) {\n result.requests = terminal.requests\n }\n\n return result\n}\n\nexport const subagentResultText = (events: ReadonlyArray<AgentEvent>) =>\n subagentResultFromEvents(events).text\n\nconst subagentToolResultStructuredContent = (\n input: SubagentToolResultInput,\n status: SubagentRunStatus\n): SubagentToolResultStructuredContentFields => {\n const structuredContent: SubagentToolResultStructuredContentFields = {\n subagent_run_id: input.subagentRunId,\n subagent_type: input.subagentType,\n description: input.description,\n started_at_ms: input.startedAtMs,\n ended_at_ms: input.endedAtMs,\n duration_ms: Math.max(0, input.endedAtMs - input.startedAtMs),\n status,\n model: input.model\n }\n\n if (input.reasoningEffort !== undefined) {\n structuredContent.reasoning_effort = input.reasoningEffort\n }\n\n if (input.usage !== undefined) {\n structuredContent.usage = subagentUsageMetadata(input.usage)\n }\n\n if (input.turns !== undefined) {\n structuredContent.turns = input.turns\n }\n\n if (input.requests !== undefined) {\n structuredContent.hitl_requests = input.requests\n }\n\n if (input.error !== undefined) {\n structuredContent.error = subagentErrorMetadata(input.error)\n }\n\n return structuredContent\n}\n\nexport const makeSubagentToolResult = (input: SubagentToolResultInput) => {\n const isError = input.isError === true || input.error !== undefined || input.status === 'error'\n const status = isError ? 'error' : (input.status ?? 'completed')\n\n return ToolResult.make({\n toolCallId: input.callId,\n content: formatSubagentResult(input.output),\n isError: isError ? true : undefined,\n structuredContent: subagentToolResultStructuredContent(input, status)\n })\n}\n\nconst subagentAcceptedStructuredContent = (input: {\n readonly callId: string\n readonly workflowRunId: string\n readonly parentRunId?: string\n}): SubagentAcceptedStructuredContentFields => {\n const structuredContent: SubagentAcceptedStructuredContentFields = {\n type: 'subagent_accepted',\n status: 'accepted',\n subagent_run_id: makeSubagentRunId(input.callId),\n workflow_run_id: input.workflowRunId\n }\n\n if (input.parentRunId !== undefined) {\n structuredContent.parent_run_id = input.parentRunId\n }\n\n return structuredContent\n}\n\n/** Acceptance is a tool completion, never a child completion or usage delta. */\nexport const makeSubagentAcceptedToolResult = (input: {\n readonly callId: string\n readonly workflowRunId: string\n readonly parentRunId?: string\n}) =>\n ToolResult.make({\n toolCallId: input.callId,\n content: `Subagent accepted. Use subagent_status or subagent_wait with tool_call_id=${input.callId}${input.parentRunId === undefined ? '' : ` and parent_run_id=${input.parentRunId}`}.`,\n structuredContent: subagentAcceptedStructuredContent(input)\n })\n"],"mappings":"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"}
1
+ {"version":3,"file":"subagent.mjs","names":["Schema"],"sources":["../../src/tools/subagent.ts"],"sourcesContent":["import { Effect, Predicate } from 'effect'\nimport * as Schema from 'effect/Schema'\nimport { ToolError } from '@yolk-sdk/agent/loop'\nimport {\n addAgentUsage,\n assistantContent,\n AgentUsage,\n contentText,\n isTerminalAgentEvent,\n makeSubagentRunId,\n ToolResult,\n type AgentErrorCode,\n type AgentEvent,\n type AgentMessage,\n type AgentReasoningEffort,\n type HitlRequest,\n type ProviderErrorInfo,\n type ToolCall,\n zeroAgentUsage\n} from '@yolk-sdk/agent/protocol'\nimport { subagentToolName } from '../protocol/tool.ts'\nimport {\n makeTool,\n modelVisibleToolError,\n type ModelVisibleToolError,\n type ToolModule,\n type ToolRegistration,\n type ToolRegistryError\n} from './registry.ts'\n\nexport { subagentToolName }\n\nconst SubagentToolBaseFields = {\n description: Schema.String.pipe(\n Schema.annotate({ description: 'A short 3-5 word description of the task.' })\n ),\n prompt: Schema.String.pipe(\n Schema.annotate({\n description:\n 'The complete task instructions for the subagent, including all context it needs.'\n })\n ),\n subagent_type: Schema.String.pipe(\n Schema.annotate({ description: 'The specialized subagent type to use for this task.' })\n )\n}\n\nexport type SubagentToolParams = {\n readonly description: string\n readonly prompt: string\n readonly subagent_type: string\n readonly model?: string\n readonly reasoning_effort?: AgentReasoningEffort\n readonly background?: boolean\n}\n\nexport type SubagentDefinition = {\n readonly name: string\n readonly description: string\n}\n\nexport type SubagentModelDefinition = {\n readonly id: string\n readonly description: string\n}\n\nexport type SubagentReasoningEffortDefinition = {\n readonly value: AgentReasoningEffort\n readonly description: string\n}\n\nexport type SubagentRuntimeSelectionOptions = {\n /** Opt-in only: inline hosts do not advertise background execution. */\n readonly background?: boolean\n readonly models?: ReadonlyArray<SubagentModelDefinition>\n readonly reasoningEfforts?: ReadonlyArray<SubagentReasoningEffortDefinition>\n}\n\nexport type SubagentContext = {\n readonly subagent?: boolean\n}\n\nexport type SubagentExecutionInput<Context> = {\n readonly call: ToolCall\n readonly context: Context\n readonly params: SubagentToolParams\n}\n\nexport type SubagentToolOptions<Context> = SubagentRuntimeSelectionOptions & {\n readonly subagents: ReadonlyArray<SubagentDefinition>\n readonly isEnabled?: (context: Context) => Effect.Effect<boolean, ToolRegistryError>\n readonly execute: (input: SubagentExecutionInput<Context>) => Effect.Effect<ToolResult, ToolError>\n}\n\nexport type SubagentRunError = {\n readonly code: AgentErrorCode\n readonly message: string\n readonly retryable: boolean\n readonly provider?: ProviderErrorInfo\n}\n\nexport type SubagentRunStatus = 'completed' | 'awaiting_input' | 'error'\n\nexport type SubagentRunResult = {\n readonly status: SubagentRunStatus\n readonly text: string\n readonly usage?: AgentUsage\n readonly turns?: number\n readonly requests?: ReadonlyArray<HitlRequest>\n readonly error?: SubagentRunError\n}\n\nexport type SubagentToolResultInput = {\n readonly callId: string\n readonly output: string\n readonly subagentType: string\n readonly description: string\n readonly subagentRunId: string\n readonly startedAtMs: number\n readonly endedAtMs: number\n readonly model: string\n readonly reasoningEffort?: AgentReasoningEffort\n readonly usage?: AgentUsage\n readonly turns?: number\n readonly status?: SubagentRunStatus\n readonly requests?: ReadonlyArray<HitlRequest>\n readonly error?: SubagentRunError\n readonly isError?: boolean\n}\n\ntype SubagentToolParamsFields = {\n readonly description: string\n readonly prompt: string\n readonly subagent_type: string\n model?: string\n reasoning_effort?: AgentReasoningEffort\n background?: boolean\n}\n\ntype SubagentProviderMetadataFields = {\n readonly provider: string\n readonly kind: ProviderErrorInfo['kind']\n status?: number\n provider_code?: string\n retry_after_ms?: number\n}\n\ntype SubagentUsageInputMetadataFields = {\n readonly total: number\n uncached?: number\n cache_read?: number\n cache_write?: number\n}\n\ntype SubagentUsageOutputMetadataFields = {\n readonly total: number\n text?: number\n reasoning?: number\n}\n\ntype SubagentUsageMetadataFields = {\n readonly input: SubagentUsageInputMetadataFields\n readonly output: SubagentUsageOutputMetadataFields\n}\n\ntype SubagentErrorMetadataFields = {\n readonly code: AgentErrorCode\n readonly message: string\n readonly retryable: boolean\n provider?: SubagentProviderMetadataFields\n}\n\ntype SubagentRunErrorFields = {\n readonly code: AgentErrorCode\n readonly message: string\n readonly retryable: boolean\n provider?: ProviderErrorInfo\n}\n\ntype SubagentRunResultFields = {\n readonly status: SubagentRunStatus\n readonly text: string\n usage?: AgentUsage\n turns?: number\n requests?: ReadonlyArray<HitlRequest>\n error?: SubagentRunErrorFields\n}\n\ntype SubagentToolResultStructuredContentFields = {\n readonly subagent_run_id: string\n readonly subagent_type: string\n readonly description: string\n readonly started_at_ms: number\n readonly ended_at_ms: number\n readonly duration_ms: number\n readonly status: SubagentRunStatus\n readonly model: string\n reasoning_effort?: AgentReasoningEffort\n usage?: SubagentUsageMetadataFields\n turns?: number\n hitl_requests?: ReadonlyArray<HitlRequest>\n error?: SubagentErrorMetadataFields\n}\n\ntype SubagentAcceptedStructuredContentFields = {\n readonly type: 'subagent_accepted'\n readonly status: 'accepted'\n readonly subagent_run_id: string\n readonly workflow_run_id: string\n parent_run_id?: string\n}\n\ntype SubagentAgentInputUsageFields = {\n readonly total: number\n uncached?: number\n cacheRead?: number\n cacheWrite?: number\n}\n\ntype SubagentAgentOutputUsageFields = {\n readonly total: number\n text?: number\n reasoning?: number\n}\n\nconst subagentToolError = (message: string, cause: ToolError['cause']) =>\n new ToolError({\n tool: subagentToolName,\n message,\n cause\n })\n\nconst subagentModelVisibleError = (message: string) =>\n modelVisibleToolError({\n tool: subagentToolName,\n message,\n reason: 'validation'\n })\n\nconst enumRecord = <Value extends string>(\n values: ReadonlyArray<Value>\n): Readonly<Record<string, Value>> => Object.fromEntries(values.map(value => [value, value]))\n\nconst optionalRuntimeSelection = <Value extends string>(input: {\n readonly values: ReadonlyArray<Value>\n readonly description: string\n}) =>\n Schema.optionalKey(\n Schema.Enum(enumRecord(input.values)).pipe(Schema.annotate({ description: input.description }))\n )\n\nconst configuredSubagentToolParams = (options: SubagentRuntimeSelectionOptions) => {\n const fields = {\n ...SubagentToolBaseFields,\n background: Schema.optionalKey(\n Schema.Boolean.pipe(\n Schema.annotate({\n description:\n 'Return an accepted handle immediately, not the completed result. Completion delivery and observation follow the host instructions.'\n })\n )\n )\n }\n\n const model =\n options.models === undefined || options.models.length === 0\n ? undefined\n : optionalRuntimeSelection({\n values: options.models.map(item => item.id),\n description: 'Model for this subagent. Omit to inherit the host runtime model.'\n })\n\n const reasoningEffort =\n options.reasoningEfforts === undefined || options.reasoningEfforts.length === 0\n ? undefined\n : optionalRuntimeSelection({\n values: options.reasoningEfforts.map(item => item.value),\n description:\n 'Reasoning effort for this subagent. Omit to inherit the host runtime effort.'\n })\n\n if (model !== undefined && reasoningEffort !== undefined) {\n return options.background === true\n ? Schema.Struct({ ...fields, model, reasoning_effort: reasoningEffort })\n : Schema.Struct({ ...SubagentToolBaseFields, model, reasoning_effort: reasoningEffort })\n }\n\n if (model !== undefined) {\n return options.background === true\n ? Schema.Struct({ ...fields, model })\n : Schema.Struct({ ...SubagentToolBaseFields, model })\n }\n\n if (reasoningEffort !== undefined) {\n return options.background === true\n ? Schema.Struct({ ...fields, reasoning_effort: reasoningEffort })\n : Schema.Struct({ ...SubagentToolBaseFields, reasoning_effort: reasoningEffort })\n }\n\n return options.background === true ? Schema.Struct(fields) : Schema.Struct(SubagentToolBaseFields)\n}\n\nconst trimmedSubagentParams = (params: SubagentToolParams): SubagentToolParams => {\n const trimmed: SubagentToolParamsFields = {\n description: params.description.trim(),\n prompt: params.prompt.trim(),\n subagent_type: params.subagent_type.trim()\n }\n\n if (params.background !== undefined) {\n trimmed.background = params.background\n }\n\n if (params.model !== undefined) {\n trimmed.model = params.model\n }\n\n if (params.reasoning_effort !== undefined) {\n trimmed.reasoning_effort = params.reasoning_effort\n }\n\n return trimmed\n}\n\nconst validateSubagentParams = (\n params: SubagentToolParams\n): Effect.Effect<SubagentToolParams, ModelVisibleToolError> => {\n const trimmed = trimmedSubagentParams(params)\n\n if (trimmed.description.length === 0) {\n return Effect.fail(subagentModelVisibleError('description must not be empty'))\n }\n\n if (trimmed.prompt.length === 0) {\n return Effect.fail(subagentModelVisibleError('prompt must not be empty'))\n }\n\n if (trimmed.subagent_type.length === 0) {\n return Effect.fail(subagentModelVisibleError('subagent_type must not be empty'))\n }\n\n return Effect.succeed(trimmed)\n}\n\nconst findSubagent = (subagents: ReadonlyArray<SubagentDefinition>, name: string) =>\n subagents.find(subagent => subagent.name === name)\n\nconst requireKnownSubagent = (\n subagents: ReadonlyArray<SubagentDefinition>,\n name: string\n): Effect.Effect<SubagentDefinition, ModelVisibleToolError> => {\n const subagent = findSubagent(subagents, name)\n\n return subagent === undefined\n ? Effect.fail(subagentModelVisibleError(`Unknown subagent type: ${name}`))\n : Effect.succeed(subagent)\n}\n\nconst subagentDescription = (subagent: SubagentDefinition) =>\n `- ${subagent.name}: ${subagent.description}`\n\nconst modelDescription = (model: SubagentModelDefinition) => `- ${model.id}: ${model.description}`\n\nconst reasoningEffortDescription = (effort: SubagentReasoningEffortDefinition) =>\n `- ${effort.value}: ${effort.description}`\n\nconst subagentToolDescription = (\n options: SubagentRuntimeSelectionOptions & {\n readonly subagents: ReadonlyArray<SubagentDefinition>\n }\n) =>\n [\n 'Launch a new agent to handle complex, multistep tasks autonomously.',\n 'Use this when delegating focused work to a specialized subagent would save context or allow parallel exploration.',\n 'To run subagents in parallel, call this subagent tool multiple times in the same assistant response.',\n 'Yolk runs same-turn subagent calls concurrently automatically.',\n 'A fresh subagent only sees the prompt you provide, so include all required context.',\n 'Subagents can use their normal tools but cannot launch further subagents in v1.',\n options.subagents.length === 0\n ? 'No subagent types are currently available.'\n : `Available subagent types:\\n${options.subagents.map(subagentDescription).join('\\n')}`,\n options.models === undefined || options.models.length === 0\n ? undefined\n : [\n 'Available subagent models:',\n options.models.map(modelDescription).join('\\n'),\n 'Omit model to inherit the host runtime model.'\n ].join('\\n'),\n options.reasoningEfforts === undefined || options.reasoningEfforts.length === 0\n ? undefined\n : [\n 'Available subagent reasoning efforts:',\n options.reasoningEfforts.map(reasoningEffortDescription).join('\\n'),\n 'Omit reasoning_effort to inherit the host runtime effort.'\n ].join('\\n')\n ]\n .filter(section => section !== undefined)\n .join('\\n\\n')\n\nexport const makeSubagentToolRegistration = <Context>(\n options: SubagentToolOptions<Context>\n): ToolRegistration<Context> =>\n makeTool({\n name: subagentToolName,\n description: subagentToolDescription(options),\n parameters: configuredSubagentToolParams(options),\n access: 'read',\n isEnabled: options.isEnabled,\n invalidParamsMessage: error =>\n `Invalid subagent arguments: ${error instanceof Error ? error.message : String(error)}`,\n execute: ({ call, context, params }) =>\n Effect.gen(function* () {\n if (call.name !== subagentToolName) {\n return yield* Effect.fail(\n subagentToolError(`Tool is not configured: ${call.name}`, 'not_found')\n )\n }\n\n const normalizedParams = yield* validateSubagentParams(params)\n yield* requireKnownSubagent(options.subagents, normalizedParams.subagent_type)\n\n return yield* options.execute({ call, context, params: normalizedParams })\n })\n })\n\nexport const makeSubagentToolDef = (\n subagents: ReadonlyArray<SubagentDefinition>,\n runtimeSelections: SubagentRuntimeSelectionOptions = {}\n) =>\n makeSubagentToolRegistration({\n subagents,\n ...runtimeSelections,\n execute: ({ call }) => Effect.succeed(ToolResult.make({ toolCallId: call.id, content: '' }))\n }).def\n\nexport const makeSubagentToolModule = <Context>(\n options: SubagentToolOptions<Context>\n): ToolModule<Context> => ({\n id: subagentToolName,\n tools: [makeSubagentToolRegistration(options)]\n})\n\nexport const makeNonRecursiveSubagentToolModule = <Context extends SubagentContext>(\n options: SubagentToolOptions<Context>\n): ToolModule<Context> =>\n makeSubagentToolModule({\n ...options,\n isEnabled: context =>\n context.subagent === true\n ? Effect.succeed(false)\n : options.isEnabled === undefined\n ? Effect.succeed(true)\n : options.isEnabled(context)\n })\n\nexport const formatSubagentResult = (output: string) =>\n ['<subagent_result>', output, '</subagent_result>'].join('\\n')\n\nexport const subagentToolRunId = makeSubagentRunId\n\nconst latestAssistantText = (messages: ReadonlyArray<AgentMessage>) => {\n const assistant = [...messages]\n .reverse()\n .find(message => Predicate.isTagged(message, 'Assistant'))\n\n return assistant === undefined ? '' : contentText(assistantContent(assistant))\n}\n\nconst subagentProviderMetadata = (provider: ProviderErrorInfo): SubagentProviderMetadataFields => {\n const metadata: SubagentProviderMetadataFields = {\n provider: provider.provider,\n kind: provider.kind\n }\n\n if (provider.status !== undefined) {\n metadata.status = provider.status\n }\n\n if (provider.providerCode !== undefined) {\n metadata.provider_code = provider.providerCode\n }\n\n if (provider.retryAfterMs !== undefined) {\n metadata.retry_after_ms = provider.retryAfterMs\n }\n\n return metadata\n}\n\nconst subagentUsageInputMetadata = (usage: AgentUsage): SubagentUsageInputMetadataFields => {\n const input: SubagentUsageInputMetadataFields = {\n total: usage.input.total\n }\n\n if (usage.input.uncached !== undefined) {\n input.uncached = usage.input.uncached\n }\n\n if (usage.input.cacheRead !== undefined) {\n input.cache_read = usage.input.cacheRead\n }\n\n if (usage.input.cacheWrite !== undefined) {\n input.cache_write = usage.input.cacheWrite\n }\n\n return input\n}\n\nconst subagentUsageOutputMetadata = (usage: AgentUsage): SubagentUsageOutputMetadataFields => {\n const output: SubagentUsageOutputMetadataFields = {\n total: usage.output.total\n }\n\n if (usage.output.text !== undefined) {\n output.text = usage.output.text\n }\n\n if (usage.output.reasoning !== undefined) {\n output.reasoning = usage.output.reasoning\n }\n\n return output\n}\n\nconst subagentUsageMetadata = (usage: AgentUsage): SubagentUsageMetadataFields => ({\n input: subagentUsageInputMetadata(usage),\n output: subagentUsageOutputMetadata(usage)\n})\n\nconst subagentErrorMetadata = (error: SubagentRunError): SubagentErrorMetadataFields => {\n const metadata: SubagentErrorMetadataFields = {\n code: error.code,\n message: error.message,\n retryable: error.retryable\n }\n\n if (error.provider !== undefined) {\n metadata.provider = subagentProviderMetadata(error.provider)\n }\n\n return metadata\n}\n\nconst SubagentUsageMetadata = Schema.Struct({\n input: Schema.Struct({\n total: Schema.Number,\n uncached: Schema.optional(Schema.Number),\n cache_read: Schema.optional(Schema.Number),\n cache_write: Schema.optional(Schema.Number)\n }),\n output: Schema.Struct({\n total: Schema.Number,\n text: Schema.optional(Schema.Number),\n reasoning: Schema.optional(Schema.Number)\n })\n})\n\nconst SubagentStructuredUsage = Schema.Struct({\n subagent_run_id: Schema.String,\n subagent_type: Schema.String,\n usage: SubagentUsageMetadata\n})\n\nconst subagentAgentInputUsageFromMetadata = (\n usage: SubagentUsageMetadataFields\n): SubagentAgentInputUsageFields => {\n const input: SubagentAgentInputUsageFields = {\n total: usage.input.total\n }\n\n if (usage.input.uncached !== undefined) {\n input.uncached = usage.input.uncached\n }\n\n if (usage.input.cache_read !== undefined) {\n input.cacheRead = usage.input.cache_read\n }\n\n if (usage.input.cache_write !== undefined) {\n input.cacheWrite = usage.input.cache_write\n }\n\n return input\n}\n\nconst subagentAgentOutputUsageFromMetadata = (\n usage: SubagentUsageMetadataFields\n): SubagentAgentOutputUsageFields => {\n const output: SubagentAgentOutputUsageFields = {\n total: usage.output.total\n }\n\n if (usage.output.text !== undefined) {\n output.text = usage.output.text\n }\n\n if (usage.output.reasoning !== undefined) {\n output.reasoning = usage.output.reasoning\n }\n\n return output\n}\n\nexport const subagentUsageFromToolResult = (result: ToolResult): AgentUsage | undefined => {\n if (\n !Schema.is(SubagentStructuredUsage)(result.structuredContent) ||\n result.structuredContent.subagent_run_id !== subagentToolRunId(result.toolCallId)\n ) {\n return undefined\n }\n\n const usage = result.structuredContent.usage\n\n return AgentUsage.make({\n input: subagentAgentInputUsageFromMetadata(usage),\n output: subagentAgentOutputUsageFromMetadata(usage)\n })\n}\n\nconst subagentRunErrorFromAgentError = (error: SubagentRunError): SubagentRunErrorFields => {\n const result: SubagentRunErrorFields = {\n code: error.code,\n message: error.message,\n retryable: error.retryable\n }\n\n if (error.provider !== undefined) {\n result.provider = error.provider\n }\n\n return result\n}\n\nexport const subagentResultFromEvents = (events: ReadonlyArray<AgentEvent>): SubagentRunResult => {\n const terminal = [...events].reverse().find(isTerminalAgentEvent)\n const usageUpdates = events.filter(event => Predicate.isTagged(event, 'UsageUpdate'))\n\n const usage = usageUpdates.reduce(\n (total, event) => addAgentUsage(total, event.usage),\n zeroAgentUsage\n )\n\n const turns = events.reduce(\n (latest, event) =>\n Predicate.isTagged(event, 'TurnStart') ? Math.max(latest, event.turn) : latest,\n 0\n )\n\n if (terminal === undefined) {\n const message = 'Subagent stream ended without a terminal event.'\n\n const result: SubagentRunResultFields = {\n status: 'error',\n text: `Subagent failed: ${message}`\n }\n\n if (usageUpdates.length !== 0) {\n result.usage = usage\n }\n\n if (turns !== 0) {\n result.turns = turns\n }\n\n result.error = {\n code: 'invalid_response',\n message,\n retryable: false\n }\n\n return result\n }\n\n if (Predicate.isTagged(terminal, 'AgentError')) {\n const result: SubagentRunResultFields = {\n status: 'error',\n text: `Subagent failed: ${terminal.message}`\n }\n\n if (usageUpdates.length !== 0) {\n result.usage = usage\n }\n\n if (turns !== 0) {\n result.turns = turns\n }\n\n result.error = subagentRunErrorFromAgentError(terminal)\n\n return result\n }\n\n const text = latestAssistantText(terminal.messages).trim()\n\n const result: SubagentRunResultFields = {\n status: Predicate.isTagged(terminal, 'AgentAwaitingInput') ? 'awaiting_input' : 'completed',\n text: text.length === 0 ? 'Subagent completed without a final text response.' : text,\n usage: terminal.usage,\n turns: terminal.turns\n }\n\n if (Predicate.isTagged(terminal, 'AgentAwaitingInput')) {\n result.requests = terminal.requests\n }\n\n return result\n}\n\nexport const subagentResultText = (events: ReadonlyArray<AgentEvent>) =>\n subagentResultFromEvents(events).text\n\nconst subagentToolResultStructuredContent = (\n input: SubagentToolResultInput,\n status: SubagentRunStatus\n): SubagentToolResultStructuredContentFields => {\n const structuredContent: SubagentToolResultStructuredContentFields = {\n subagent_run_id: input.subagentRunId,\n subagent_type: input.subagentType,\n description: input.description,\n started_at_ms: input.startedAtMs,\n ended_at_ms: input.endedAtMs,\n duration_ms: Math.max(0, input.endedAtMs - input.startedAtMs),\n status,\n model: input.model\n }\n\n if (input.reasoningEffort !== undefined) {\n structuredContent.reasoning_effort = input.reasoningEffort\n }\n\n if (input.usage !== undefined) {\n structuredContent.usage = subagentUsageMetadata(input.usage)\n }\n\n if (input.turns !== undefined) {\n structuredContent.turns = input.turns\n }\n\n if (input.requests !== undefined) {\n structuredContent.hitl_requests = input.requests\n }\n\n if (input.error !== undefined) {\n structuredContent.error = subagentErrorMetadata(input.error)\n }\n\n return structuredContent\n}\n\nexport const makeSubagentToolResult = (input: SubagentToolResultInput) => {\n const isError = input.isError === true || input.error !== undefined || input.status === 'error'\n const status = isError ? 'error' : (input.status ?? 'completed')\n\n return ToolResult.make({\n toolCallId: input.callId,\n content: formatSubagentResult(input.output),\n isError: isError ? true : undefined,\n structuredContent: subagentToolResultStructuredContent(input, status)\n })\n}\n\nconst subagentAcceptedStructuredContent = (input: {\n readonly callId: string\n readonly workflowRunId: string\n readonly parentRunId?: string\n}): SubagentAcceptedStructuredContentFields => {\n const structuredContent: SubagentAcceptedStructuredContentFields = {\n type: 'subagent_accepted',\n status: 'accepted',\n subagent_run_id: makeSubagentRunId(input.callId),\n workflow_run_id: input.workflowRunId\n }\n\n if (input.parentRunId !== undefined) {\n structuredContent.parent_run_id = input.parentRunId\n }\n\n return structuredContent\n}\n\n/** Acceptance is a tool completion, never a child completion or usage delta.\n * Hosts own completion delivery and any observation tools; registration supplies neither.\n */\nexport const makeSubagentAcceptedToolResult = (input: {\n readonly callId: string\n readonly workflowRunId: string\n readonly parentRunId?: string\n}) =>\n ToolResult.make({\n toolCallId: input.callId,\n content: `Subagent accepted, not completed. Reference: tool_call_id=${input.callId}${input.parentRunId === undefined ? '' : ` and parent_run_id=${input.parentRunId}`}. Completion delivery and observation follow the host instructions.`,\n structuredContent: subagentAcceptedStructuredContent(input)\n })\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yolk-sdk/agent",
3
- "version": "0.1.0-canary.88",
3
+ "version": "0.1.0-canary.89",
4
4
  "description": "Agent protocol, loop, runtime, Effect-native client, compaction, tools, React, providers, OAuth, skillset, and voice primitives.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -256,7 +256,7 @@ const configuredSubagentToolParams = (options: SubagentRuntimeSelectionOptions)
256
256
  Schema.Boolean.pipe(
257
257
  Schema.annotate({
258
258
  description:
259
- 'Return an accepted handle immediately; use subagent_status or subagent_wait to read the result.'
259
+ 'Return an accepted handle immediately, not the completed result. Completion delivery and observation follow the host instructions.'
260
260
  })
261
261
  )
262
262
  )
@@ -779,7 +779,9 @@ const subagentAcceptedStructuredContent = (input: {
779
779
  return structuredContent
780
780
  }
781
781
 
782
- /** Acceptance is a tool completion, never a child completion or usage delta. */
782
+ /** Acceptance is a tool completion, never a child completion or usage delta.
783
+ * Hosts own completion delivery and any observation tools; registration supplies neither.
784
+ */
783
785
  export const makeSubagentAcceptedToolResult = (input: {
784
786
  readonly callId: string
785
787
  readonly workflowRunId: string
@@ -787,6 +789,6 @@ export const makeSubagentAcceptedToolResult = (input: {
787
789
  }) =>
788
790
  ToolResult.make({
789
791
  toolCallId: input.callId,
790
- content: `Subagent accepted. Use subagent_status or subagent_wait with tool_call_id=${input.callId}${input.parentRunId === undefined ? '' : ` and parent_run_id=${input.parentRunId}`}.`,
792
+ content: `Subagent accepted, not completed. Reference: tool_call_id=${input.callId}${input.parentRunId === undefined ? '' : ` and parent_run_id=${input.parentRunId}`}. Completion delivery and observation follow the host instructions.`,
791
793
  structuredContent: subagentAcceptedStructuredContent(input)
792
794
  })