@yolk-sdk/agent 0.1.0-canary.102 → 0.1.0-canary.103

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 (56) hide show
  1. package/README.md +61 -43
  2. package/dist/client/state.d.mts +48 -48
  3. package/dist/client/state.d.mts.map +1 -1
  4. package/dist/loop/run.d.mts +5 -2
  5. package/dist/loop/run.d.mts.map +1 -1
  6. package/dist/loop/run.mjs +10 -2
  7. package/dist/loop/run.mjs.map +1 -1
  8. package/dist/protocol/index.d.mts +2 -2
  9. package/dist/protocol/index.d.mts.map +1 -1
  10. package/dist/protocol/index.mjs +2 -2
  11. package/dist/protocol/tool.d.mts +26 -6
  12. package/dist/protocol/tool.d.mts.map +1 -1
  13. package/dist/protocol/tool.mjs +23 -11
  14. package/dist/protocol/tool.mjs.map +1 -1
  15. package/dist/react/chat-actions.d.mts +26 -26
  16. package/dist/react/chat-actions.d.mts.map +1 -1
  17. package/dist/react/chat-items.d.mts +63 -63
  18. package/dist/react/chat-items.d.mts.map +1 -1
  19. package/dist/react/chat-messages.d.mts +66 -66
  20. package/dist/react/chat-messages.d.mts.map +1 -1
  21. package/dist/skillset/merge.d.mts +2 -2
  22. package/dist/tools/index.d.mts +4 -2
  23. package/dist/tools/index.mjs +3 -1
  24. package/dist/tools/interaction.mjs +3 -3
  25. package/dist/tools/interaction.mjs.map +1 -1
  26. package/dist/tools/ledger.d.mts +7 -2
  27. package/dist/tools/ledger.d.mts.map +1 -1
  28. package/dist/tools/ledger.mjs +8 -3
  29. package/dist/tools/ledger.mjs.map +1 -1
  30. package/dist/tools/plan-review.d.mts +75 -0
  31. package/dist/tools/plan-review.d.mts.map +1 -0
  32. package/dist/tools/plan-review.mjs +150 -0
  33. package/dist/tools/plan-review.mjs.map +1 -0
  34. package/dist/tools/plan-runtime.d.mts +59 -0
  35. package/dist/tools/plan-runtime.d.mts.map +1 -0
  36. package/dist/tools/plan-runtime.mjs +629 -0
  37. package/dist/tools/plan-runtime.mjs.map +1 -0
  38. package/dist/tools/plan.d.mts +406 -0
  39. package/dist/tools/plan.d.mts.map +1 -0
  40. package/dist/tools/plan.mjs +228 -0
  41. package/dist/tools/plan.mjs.map +1 -0
  42. package/dist/tools/registry.d.mts +64 -9
  43. package/dist/tools/registry.d.mts.map +1 -1
  44. package/dist/tools/registry.mjs +218 -65
  45. package/dist/tools/registry.mjs.map +1 -1
  46. package/package.json +2 -2
  47. package/src/loop/run.ts +26 -6
  48. package/src/protocol/index.ts +2 -0
  49. package/src/protocol/tool.ts +60 -24
  50. package/src/tools/README.md +20 -1
  51. package/src/tools/index.ts +57 -0
  52. package/src/tools/ledger.ts +13 -2
  53. package/src/tools/plan-review.ts +272 -0
  54. package/src/tools/plan-runtime.ts +1212 -0
  55. package/src/tools/plan.ts +537 -0
  56. package/src/tools/registry.ts +494 -67
package/README.md CHANGED
@@ -20,47 +20,47 @@ Published package metadata requires Node.js 22+.
20
20
 
21
21
  ## Subpaths
22
22
 
23
- | Subpath | Purpose |
24
- | -------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
25
- | `@yolk-sdk/agent/protocol` | Wire messages, events, content, usage, tool schemas |
26
- | `@yolk-sdk/agent/loop` | Stateless LLM/tool loop |
27
- | `@yolk-sdk/agent/loop/testing` | Faux provider and tool executor test helpers |
28
- | `@yolk-sdk/agent/runtime` | Transcript or append-backed runtime orchestration |
29
- | `@yolk-sdk/agent/client` | HTTP/NDJSON transport, HITL resume, retry/error state helpers |
30
- | `@yolk-sdk/agent/compaction` | Host-owned compaction budgets, checkpoints, formatting, retry |
31
- | `@yolk-sdk/agent/classification` | Classifier model contract: typed questions, answers, usage, errors |
32
- | `@yolk-sdk/agent/tools` | Tool registry, typed inputs, interactions, subagents/questions, durable tool ledger |
33
- | `@yolk-sdk/agent/react` | Headless React chat hook, reducer, selectors, and render model |
34
- | `@yolk-sdk/agent/oauth` | Provider-neutral OAuth token and broker contracts |
35
- | `@yolk-sdk/agent/providers/openai` | OpenAI/Codex OAuth and broker helpers |
36
- | `@yolk-sdk/agent/providers/openai/codex` | OpenAI Codex request and auth helpers |
37
- | `@yolk-sdk/agent/providers/openai/codex-usage` | Codex subscription-allowance snapshots |
38
- | `@yolk-sdk/agent/providers/openai/codex-provider` | Codex LLM provider factory |
39
- | `@yolk-sdk/agent/providers/openai/provider` | OpenAI-compatible LLM provider factory |
40
- | `@yolk-sdk/agent/providers/openai/conformance` | Synthetic OpenAI chat, Codex Responses, and Codex usage fixtures and conformance cases |
41
- | `@yolk-sdk/agent/providers/openai/realtime` | OpenAI Realtime session config and event codecs |
42
- | `@yolk-sdk/agent/providers/openai/speech` | OpenAI text-to-speech and transcription adapters |
43
- | `@yolk-sdk/agent/providers/vercel/ai-gateway-provider` | Vercel AI Gateway Chat Completions provider factory |
44
- | `@yolk-sdk/agent/providers/vercel/ai-gateway-classifier` | Vercel AI Gateway classifier (`POST /v1/evaluate`) layer |
45
- | `@yolk-sdk/agent/providers/vercel/conformance` | Verified Gateway chat fixtures, synthetic classifier fixtures, and conformance cases |
46
- | `@yolk-sdk/agent/providers/opencode/go-provider` | OpenCode Go Chat Completions, Messages, and Responses provider |
47
- | `@yolk-sdk/agent/providers/opencode/usage` | OpenCode Go subscription-allowance snapshots |
48
- | `@yolk-sdk/agent/providers/opencode/conformance` | Synthetic OpenCode Go (per protocol, commentary replay, usage) fixtures and conformance cases |
49
- | `@yolk-sdk/agent/providers/anthropic` | Anthropic/Claude OAuth and broker helpers |
50
- | `@yolk-sdk/agent/providers/anthropic/claude` | Claude request and auth helpers |
51
- | `@yolk-sdk/agent/providers/anthropic/usage` | Claude subscription-allowance snapshots |
52
- | `@yolk-sdk/agent/providers/anthropic/claude-provider` | Claude LLM provider factory |
53
- | `@yolk-sdk/agent/providers/anthropic/conformance` | Synthetic Anthropic Messages and Claude usage fixtures and conformance cases |
54
- | `@yolk-sdk/agent/providers/xai` | Grok subscription OAuth and token broker helpers |
55
- | `@yolk-sdk/agent/providers/xai/grok` | Grok subscription request and auth helpers |
56
- | `@yolk-sdk/agent/providers/xai/grok-provider` | Grok subscription LLM provider factory |
57
- | `@yolk-sdk/agent/providers/xai/usage` | Grok subscription-allowance snapshots |
58
- | `@yolk-sdk/agent/providers/xai/conformance` | Synthetic Grok Responses and Grok usage fixtures and conformance cases |
59
- | `@yolk-sdk/agent/providers/subscription-usage` | Shared allowance snapshot and safe error schemas |
60
- | `@yolk-sdk/agent/skillset` | Portable skill and slash-command parsing/catalogs |
61
- | `@yolk-sdk/agent/voice` | Voice protocol, controller, tool handler, projection, speech |
62
- | `@yolk-sdk/agent/voice/browser` | Browser WebRTC voice transport |
63
- | `@yolk-sdk/agent/voice/react` | Headless browser voice React hook |
23
+ | Subpath | Purpose |
24
+ | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
25
+ | `@yolk-sdk/agent/protocol` | Wire messages, events, content, usage, tool schemas |
26
+ | `@yolk-sdk/agent/loop` | Stateless LLM/tool loop |
27
+ | `@yolk-sdk/agent/loop/testing` | Faux provider and tool executor test helpers |
28
+ | `@yolk-sdk/agent/runtime` | Transcript or append-backed runtime orchestration |
29
+ | `@yolk-sdk/agent/client` | HTTP/NDJSON transport, HITL resume, retry/error state helpers |
30
+ | `@yolk-sdk/agent/compaction` | Host-owned compaction budgets, checkpoints, formatting, retry |
31
+ | `@yolk-sdk/agent/classification` | Classifier model contract: typed questions, answers, usage, errors |
32
+ | `@yolk-sdk/agent/tools` | Tool registry, typed inputs, interactions, subagents/questions, durable tool ledger, staged tool plans |
33
+ | `@yolk-sdk/agent/react` | Headless React chat hook, reducer, selectors, and render model |
34
+ | `@yolk-sdk/agent/oauth` | Provider-neutral OAuth token and broker contracts |
35
+ | `@yolk-sdk/agent/providers/openai` | OpenAI/Codex OAuth and broker helpers |
36
+ | `@yolk-sdk/agent/providers/openai/codex` | OpenAI Codex request and auth helpers |
37
+ | `@yolk-sdk/agent/providers/openai/codex-usage` | Codex subscription-allowance snapshots |
38
+ | `@yolk-sdk/agent/providers/openai/codex-provider` | Codex LLM provider factory |
39
+ | `@yolk-sdk/agent/providers/openai/provider` | OpenAI-compatible LLM provider factory |
40
+ | `@yolk-sdk/agent/providers/openai/conformance` | Synthetic OpenAI chat, Codex Responses, and Codex usage fixtures and conformance cases |
41
+ | `@yolk-sdk/agent/providers/openai/realtime` | OpenAI Realtime session config and event codecs |
42
+ | `@yolk-sdk/agent/providers/openai/speech` | OpenAI text-to-speech and transcription adapters |
43
+ | `@yolk-sdk/agent/providers/vercel/ai-gateway-provider` | Vercel AI Gateway Chat Completions provider factory |
44
+ | `@yolk-sdk/agent/providers/vercel/ai-gateway-classifier` | Vercel AI Gateway classifier (`POST /v1/evaluate`) layer |
45
+ | `@yolk-sdk/agent/providers/vercel/conformance` | Verified Gateway chat fixtures, synthetic classifier fixtures, and conformance cases |
46
+ | `@yolk-sdk/agent/providers/opencode/go-provider` | OpenCode Go Chat Completions, Messages, and Responses provider |
47
+ | `@yolk-sdk/agent/providers/opencode/usage` | OpenCode Go subscription-allowance snapshots |
48
+ | `@yolk-sdk/agent/providers/opencode/conformance` | Synthetic OpenCode Go (per protocol, commentary replay, usage) fixtures and conformance cases |
49
+ | `@yolk-sdk/agent/providers/anthropic` | Anthropic/Claude OAuth and broker helpers |
50
+ | `@yolk-sdk/agent/providers/anthropic/claude` | Claude request and auth helpers |
51
+ | `@yolk-sdk/agent/providers/anthropic/usage` | Claude subscription-allowance snapshots |
52
+ | `@yolk-sdk/agent/providers/anthropic/claude-provider` | Claude LLM provider factory |
53
+ | `@yolk-sdk/agent/providers/anthropic/conformance` | Synthetic Anthropic Messages and Claude usage fixtures and conformance cases |
54
+ | `@yolk-sdk/agent/providers/xai` | Grok subscription OAuth and token broker helpers |
55
+ | `@yolk-sdk/agent/providers/xai/grok` | Grok subscription request and auth helpers |
56
+ | `@yolk-sdk/agent/providers/xai/grok-provider` | Grok subscription LLM provider factory |
57
+ | `@yolk-sdk/agent/providers/xai/usage` | Grok subscription-allowance snapshots |
58
+ | `@yolk-sdk/agent/providers/xai/conformance` | Synthetic Grok Responses and Grok usage fixtures and conformance cases |
59
+ | `@yolk-sdk/agent/providers/subscription-usage` | Shared allowance snapshot and safe error schemas |
60
+ | `@yolk-sdk/agent/skillset` | Portable skill and slash-command parsing/catalogs |
61
+ | `@yolk-sdk/agent/voice` | Voice protocol, controller, tool handler, projection, speech |
62
+ | `@yolk-sdk/agent/voice/browser` | Browser WebRTC voice transport |
63
+ | `@yolk-sdk/agent/voice/react` | Headless browser voice React hook |
64
64
 
65
65
  ## Imports
66
66
 
@@ -866,6 +866,10 @@ not this marker. These child observations are separate from generic background t
866
866
  `prepareToolBatch` from `@yolk-sdk/agent/loop` exposes the same HITL preflight used by the loop.
867
867
  Durable orchestration must check `pendingRequests` before dispatching **any** tool, even calls
868
868
  listed in `callsToExecute`. Preserve synthetic results and original call ordering when committing.
869
+ It fails with `ToolError` `unavailable` only when host storage read by an interaction call
870
+ validator (for example a plan review's plan store) is unavailable; nothing runs, so fail the step
871
+ and retry it. Admission (`validateInteractionSubmission`) answers `InteractionAdmissionError`
872
+ `unavailable` for the same outage.
869
873
 
870
874
  Keep host-owned subagent execution wiring outside this package; pass only the package subagent contract across the boundary.
871
875
 
@@ -922,8 +926,8 @@ This package declares them; it does not run scripts.
922
926
  - `callableBy: 'all' | 'model' | 'codemode'` (default `all`) decides who may call a tool. For
923
927
  `codemode` only, `discovery: 'listed' | 'search'` (default `listed`) decides how scripts find it.
924
928
  Codemode-only tools never reach providers. Approval, input, interaction, activated background,
925
- `question`, `subagent`, and nested-access tools never run from code mode; `resolveTools` rejects
926
- `callableBy: 'codemode'` on them.
929
+ `question`, `subagent`, and nested-access tools never run from code mode (stageable approval tools
930
+ are only staged; see Staged tool plans); `resolveTools` rejects `callableBy: 'codemode'` on them.
927
931
  - `nestedToolAccess: true` gives a registration's `execute` a `nested` executor over the other
928
932
  code-mode-callable tools of the same resolution and host context. Nested calls run through the
929
933
  resolved execute path and fail closed with model-visible error results. Assign nested call ids as
@@ -955,6 +959,20 @@ keep their operations interruptible (the ledger's timeouts cannot cut uninterrup
955
959
  logs and metrics. Without the option behavior is unchanged. See
956
960
  [the tools README](https://github.com/magoz/yolk-sdk/blob/main/packages/agent/src/tools/README.md#durable-tool-ledger).
957
961
 
962
+ ## Staged tool plans
963
+
964
+ A code mode script can stage calls of approval-gated tools marked `staging`
965
+ (`makeTool({ approval, staging })`) instead of running them; a person reviews the saved plan once
966
+ through `makePlanReviewTool` (`review_plan({ planId, planDigest })`, response `{ selectedKeys }`),
967
+ and Yolk applies exactly the selected recorded calls, in staged order and at most once, through the
968
+ normal execute path and ledger. Enable it with
969
+ `resolveTools(modules, context, { interactionHost, plans: { store, planId? } })` and one review tool.
970
+ Applied calls bypass `beforeNestedCall` and `ToolExecutor` decorators: wire your per-call authorizer
971
+ as `makePlanReviewTool({ beforeCall })`. With a ledger, a redelivered review waits for an in-flight
972
+ apply and returns its real outcome. `previewStoredToolPlan` pages previews for review screens;
973
+ `ToolPlanOutcome` and `ToolPlanPreviewPage` are Effect Schemas. See
974
+ [ADR 0005](https://github.com/magoz/yolk-sdk/blob/main/docs/adr/0005-staged-tool-plans.md).
975
+
958
976
  ## Tool failures
959
977
 
960
978
  Use `modelVisibleToolError(...)` for expected tool-domain failures the model can recover
@@ -80,21 +80,6 @@ type AgentToolRun = {
80
80
  readonly result: ToolResult;
81
81
  };
82
82
  declare const AgentToolRun: {
83
- readonly InputStreaming: Data.TaggedEnum.ConstructorFrom<{
84
- readonly _tag: "InputStreaming";
85
- readonly id: string;
86
- readonly name?: string;
87
- readonly input: string;
88
- }, "_tag">;
89
- readonly InputReady: Data.TaggedEnum.ConstructorFrom<{
90
- readonly _tag: "InputReady";
91
- readonly call: ToolCall;
92
- }, "_tag">;
93
- readonly ApprovalRequested: Data.TaggedEnum.ConstructorFrom<{
94
- readonly _tag: "ApprovalRequested";
95
- readonly call: ToolCall;
96
- readonly request?: ToolApprovalRequest;
97
- }, "_tag">;
98
83
  readonly Denied: Data.TaggedEnum.ConstructorFrom<{
99
84
  readonly _tag: "Denied";
100
85
  readonly toolCallId: string;
@@ -142,6 +127,21 @@ declare const AgentToolRun: {
142
127
  readonly response: InteractionResponse;
143
128
  readonly request?: InteractionRequest;
144
129
  }, "_tag">;
130
+ readonly InputStreaming: Data.TaggedEnum.ConstructorFrom<{
131
+ readonly _tag: "InputStreaming";
132
+ readonly id: string;
133
+ readonly name?: string;
134
+ readonly input: string;
135
+ }, "_tag">;
136
+ readonly InputReady: Data.TaggedEnum.ConstructorFrom<{
137
+ readonly _tag: "InputReady";
138
+ readonly call: ToolCall;
139
+ }, "_tag">;
140
+ readonly ApprovalRequested: Data.TaggedEnum.ConstructorFrom<{
141
+ readonly _tag: "ApprovalRequested";
142
+ readonly call: ToolCall;
143
+ readonly request?: ToolApprovalRequest;
144
+ }, "_tag">;
145
145
  readonly Executing: Data.TaggedEnum.ConstructorFrom<{
146
146
  readonly _tag: "Executing";
147
147
  readonly call: ToolCall;
@@ -173,7 +173,7 @@ declare const AgentToolRun: {
173
173
  readonly call: ToolCall;
174
174
  readonly result: ToolResult;
175
175
  }, "_tag">;
176
- readonly $is: <Tag extends "InputStreaming" | "InputReady" | "ApprovalRequested" | "Denied" | "QuestionRequested" | "QuestionAnswered" | "QuestionCancelled" | "InputRequested" | "InputSubmitted" | "InputCancelled" | "InteractionRequested" | "InteractionSubmitted" | "InteractionCancelled" | "Executing" | "Completed" | "Accepted" | "Errored" | "ProviderCompleted">(tag: Tag) => (u: unknown) => u is Extract<{
176
+ readonly $is: <Tag extends "Denied" | "QuestionRequested" | "QuestionAnswered" | "QuestionCancelled" | "InputRequested" | "InputSubmitted" | "InputCancelled" | "InteractionRequested" | "InteractionSubmitted" | "InteractionCancelled" | "InputStreaming" | "InputReady" | "ApprovalRequested" | "Executing" | "Completed" | "Accepted" | "Errored" | "ProviderCompleted">(tag: Tag) => (u: unknown) => u is Extract<{
177
177
  readonly _tag: "InputStreaming";
178
178
  readonly id: string;
179
179
  readonly name?: string;
@@ -287,21 +287,6 @@ declare const AgentToolRun: {
287
287
  }>;
288
288
  readonly $match: {
289
289
  <Cases extends {
290
- readonly InputStreaming: (args: {
291
- readonly _tag: "InputStreaming";
292
- readonly id: string;
293
- readonly name?: string;
294
- readonly input: string;
295
- }) => any;
296
- readonly InputReady: (args: {
297
- readonly _tag: "InputReady";
298
- readonly call: ToolCall;
299
- }) => any;
300
- readonly ApprovalRequested: (args: {
301
- readonly _tag: "ApprovalRequested";
302
- readonly call: ToolCall;
303
- readonly request?: ToolApprovalRequest;
304
- }) => any;
305
290
  readonly Denied: (args: {
306
291
  readonly _tag: "Denied";
307
292
  readonly toolCallId: string;
@@ -349,6 +334,21 @@ declare const AgentToolRun: {
349
334
  readonly response: InteractionResponse;
350
335
  readonly request?: InteractionRequest;
351
336
  }) => any;
337
+ readonly InputStreaming: (args: {
338
+ readonly _tag: "InputStreaming";
339
+ readonly id: string;
340
+ readonly name?: string;
341
+ readonly input: string;
342
+ }) => any;
343
+ readonly InputReady: (args: {
344
+ readonly _tag: "InputReady";
345
+ readonly call: ToolCall;
346
+ }) => any;
347
+ readonly ApprovalRequested: (args: {
348
+ readonly _tag: "ApprovalRequested";
349
+ readonly call: ToolCall;
350
+ readonly request?: ToolApprovalRequest;
351
+ }) => any;
352
352
  readonly Executing: (args: {
353
353
  readonly _tag: "Executing";
354
354
  readonly call: ToolCall;
@@ -380,23 +380,8 @@ declare const AgentToolRun: {
380
380
  readonly call: ToolCall;
381
381
  readonly result: ToolResult;
382
382
  }) => any;
383
- }>(cases: Cases): (value: AgentToolRun) => import("effect/Unify").Unify<ReturnType<Cases["InputStreaming" | "InputReady" | "ApprovalRequested" | "Denied" | "QuestionRequested" | "QuestionAnswered" | "QuestionCancelled" | "InputRequested" | "InputSubmitted" | "InputCancelled" | "InteractionRequested" | "InteractionSubmitted" | "InteractionCancelled" | "Executing" | "Completed" | "Accepted" | "Errored" | "ProviderCompleted"]>>;
383
+ }>(cases: Cases): (value: AgentToolRun) => import("effect/Unify").Unify<ReturnType<Cases["Denied" | "QuestionRequested" | "QuestionAnswered" | "QuestionCancelled" | "InputRequested" | "InputSubmitted" | "InputCancelled" | "InteractionRequested" | "InteractionSubmitted" | "InteractionCancelled" | "InputStreaming" | "InputReady" | "ApprovalRequested" | "Executing" | "Completed" | "Accepted" | "Errored" | "ProviderCompleted"]>>;
384
384
  <Cases extends {
385
- readonly InputStreaming: (args: {
386
- readonly _tag: "InputStreaming";
387
- readonly id: string;
388
- readonly name?: string;
389
- readonly input: string;
390
- }) => any;
391
- readonly InputReady: (args: {
392
- readonly _tag: "InputReady";
393
- readonly call: ToolCall;
394
- }) => any;
395
- readonly ApprovalRequested: (args: {
396
- readonly _tag: "ApprovalRequested";
397
- readonly call: ToolCall;
398
- readonly request?: ToolApprovalRequest;
399
- }) => any;
400
385
  readonly Denied: (args: {
401
386
  readonly _tag: "Denied";
402
387
  readonly toolCallId: string;
@@ -444,6 +429,21 @@ declare const AgentToolRun: {
444
429
  readonly response: InteractionResponse;
445
430
  readonly request?: InteractionRequest;
446
431
  }) => any;
432
+ readonly InputStreaming: (args: {
433
+ readonly _tag: "InputStreaming";
434
+ readonly id: string;
435
+ readonly name?: string;
436
+ readonly input: string;
437
+ }) => any;
438
+ readonly InputReady: (args: {
439
+ readonly _tag: "InputReady";
440
+ readonly call: ToolCall;
441
+ }) => any;
442
+ readonly ApprovalRequested: (args: {
443
+ readonly _tag: "ApprovalRequested";
444
+ readonly call: ToolCall;
445
+ readonly request?: ToolApprovalRequest;
446
+ }) => any;
447
447
  readonly Executing: (args: {
448
448
  readonly _tag: "Executing";
449
449
  readonly call: ToolCall;
@@ -475,7 +475,7 @@ declare const AgentToolRun: {
475
475
  readonly call: ToolCall;
476
476
  readonly result: ToolResult;
477
477
  }) => any;
478
- }>(value: AgentToolRun, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["InputStreaming" | "InputReady" | "ApprovalRequested" | "Denied" | "QuestionRequested" | "QuestionAnswered" | "QuestionCancelled" | "InputRequested" | "InputSubmitted" | "InputCancelled" | "InteractionRequested" | "InteractionSubmitted" | "InteractionCancelled" | "Executing" | "Completed" | "Accepted" | "Errored" | "ProviderCompleted"]>>;
478
+ }>(value: AgentToolRun, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Denied" | "QuestionRequested" | "QuestionAnswered" | "QuestionCancelled" | "InputRequested" | "InputSubmitted" | "InputCancelled" | "InteractionRequested" | "InteractionSubmitted" | "InteractionCancelled" | "InputStreaming" | "InputReady" | "ApprovalRequested" | "Executing" | "Completed" | "Accepted" | "Errored" | "ProviderCompleted"]>>;
479
479
  };
480
480
  };
481
481
  type AgentClientState = {
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.mts","names":[],"sources":["../../src/client/state.ts"],"mappings":"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"}
1
+ {"version":3,"file":"state.d.mts","names":[],"sources":["../../src/client/state.ts"],"mappings":"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"}
@@ -63,7 +63,10 @@ type PreparedToolBatch = {
63
63
  * this at each preflight boundary and pass the result as interactionReceipts. Reads
64
64
  * do not accept/claim/settle. A storage error fails the batch closed. */
65
65
  declare const loadInteractionReceipts: (calls: ReadonlyArray<ToolCall>, host: InteractionHost | undefined) => Effect.Effect<ReadonlyMap<string, InteractionReceipt>, ToolError>;
66
- /** Preflight the entire batch before dispatching ANY call. Pending requests fence all execution. */
66
+ /** Preflight the entire batch before dispatching ANY call. Pending requests fence all execution.
67
+ * Fails (`ToolError` `unavailable`) only when host storage an interaction call validator reads is
68
+ * unavailable: the batch fails closed, like `loadInteractionReceipts`, and nothing runs.
69
+ */
67
70
  declare const prepareToolBatch: (input: {
68
71
  readonly tools: ReadonlyArray<ToolDef>;
69
72
  readonly responses: ReadonlyArray<HitlResponse>;
@@ -71,7 +74,7 @@ declare const prepareToolBatch: (input: {
71
74
  readonly inputs?: Readonly<Record<string, InputToolHandler>>;
72
75
  readonly interactions?: Readonly<Record<string, InteractionPreflight>>;
73
76
  readonly interactionReceipts?: ReadonlyMap<string, InteractionReceipt>;
74
- }) => Effect.Effect<PreparedToolBatch>;
77
+ }) => Effect.Effect<PreparedToolBatch, ToolError>;
75
78
  declare const runModelTurn: (config: ModelTurnConfig) => Stream.Stream<AgentEvent, AgentLoopError, ContextTransformer | LLMProvider | LoopConfig>;
76
79
  declare const runToolBatch: (config: ToolBatchConfig) => Stream.Stream<AgentEvent, AgentLoopError, LoopConfig | ToolExecutor>;
77
80
  declare const run: (config: RunConfig) => Stream.Stream<AgentEvent, AgentLoopError, ContextTransformer | LLMProvider | LoopConfig | ToolExecutor>;
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.mts","names":[],"sources":["../../src/loop/run.ts"],"mappings":";;;;;;;;;KAuFY,cAAA;AAAA,KAEA,SAAA;EAAA,SACD,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA,SACxB,YAAA;EAAA,SACA,KAAA,EAAO,aAAA,CAAc,OAAA;EAAA,SACrB,aAAA,GAAgB,aAAA,CAAc,YAAA,GANf;EAAA,SAQf,MAAA,GAAS,QAAA,CAAS,MAAA,SAAe,gBAAA;EANvB;;;EAAA,SAUV,YAAA,GAAe,QAAA,CAAS,MAAA,SAAe,oBAAA;EAAA,SACvC,eAAA,GAAkB,eAAA;EAAA,SAClB,KAAA;EAAA,SACA,eAAA,GAAkB,oBAAA;EAAA,SAClB,YAAA,GAAe,sBAAA;AAAA;AAAA,KAGd,eAAA,GAAkB,SAAS;EAAA,SAC5B,IAAI;AAAA;AAAA,KAGH,eAAA;EAAA,SACD,KAAA,EAAO,aAAA,CAAc,QAAA;EAAA,SACrB,KAAA,GAAQ,aAAA,CAAc,OAAA;EAAA,SACtB,aAAA,GAAgB,aAAA,CAAc,YAAA,GAVf;EAAA,SAYf,MAAA,GAAS,QAAA,CAAS,MAAA,SAAe,gBAAA,IAZI;EAAA,SAcrC,YAAA,GAAe,QAAA,CAAS,MAAA,SAAe,oBAAA;EAAA,SACvC,eAAA,GAAkB,eAAA;EAAA,SAClB,KAAA;EAAA,SACA,eAAA,GAAkB,aAAA,CAAc,YAAA;EAAA,SAChC,IAAA;EAAA,SACA,KAAA,GAAQ,UAAA;AAAA;AAAA,KAobd,wBAAA;EAAA,SACM,KAAA;EAAA,SACA,OAAA,EAAS,YAAY;AAAA;AAAA,KAG3B,eAAA;EAAA,SACM,KAAA;EAAA,SACA,IAAA,EAAM,QAAQ;AAAA;AAAA,KAyBb,iBAAA;EAAA,SACD,cAAA,EAAgB,aAAA,CAAc,eAAA;EAAA,SAC9B,cAAA,EAAgB,aAAA,CAAc,wBAAA;EAAA,SAC9B,YAAA,EAAc,aAAA,CAAc,UAAA;EAAA,SAC5B,MAAA,EAAQ,aAAA,CAAc,UAAA;EAAA,SACtB,eAAA,EAAiB,aAAA,CAAc,WAAA;EAAA,SAC/B,aAAA,EAAe,aAAA,CAAc,UAAA;EA9eX;;;;EAAA,SAmflB,mBAAA,EAAqB,WAAA,SAAoB,cAAA;AAAA;;;;cAiXvC,uBAAA,GACX,KAAA,EAAO,aAAA,CAAc,QAAA,GACrB,IAAA,EAAM,eAAA,iBACL,MAAA,CAAO,MAAA,CAAO,WAAA,SAAoB,kBAAA,GAAqB,SAAA;AA/1B1D;AAAA,cA+iCa,gBAAA,GAAoB,KAAA;EAAA,SACtB,KAAA,EAAO,aAAA,CAAc,OAAA;EAAA,SACrB,SAAA,EAAW,aAAA,CAAc,YAAA;EAAA,SACzB,KAAA,EAAO,aAAA,CAAc,QAAA;EAAA,SACrB,MAAA,GAAS,QAAA,CAAS,MAAA,SAAe,gBAAA;EAAA,SACjC,YAAA,GAAe,QAAA,CAAS,MAAA,SAAe,oBAAA;EAAA,SACvC,mBAAA,GAAsB,WAAA,SAAoB,kBAAA;AAAA,MACjD,MAAA,CAAO,MAAA,CAAO,iBAAA;AAAA,cA+iBL,YAAA,GACX,MAAA,EAAQ,eAAA,KACP,MAAA,CAAO,MAAA,CAAO,UAAA,EAAY,cAAA,EAAgB,kBAAA,GAAqB,WAAA,GAAc,UAAA;AAAA,cAuBnE,YAAA,GACX,MAAA,EAAQ,eAAA,KACP,MAAA,CAAO,MAAA,CAAO,UAAA,EAAY,cAAA,EAAgB,UAAA,GAAa,YAAA;AAAA,cAoD7C,GAAA,GACX,MAAA,EAAQ,SAAA,KACP,MAAA,CAAO,MAAA,CACR,UAAA,EACA,cAAA,EACA,kBAAA,GAAqB,WAAA,GAAc,UAAA,GAAa,YAAA"}
1
+ {"version":3,"file":"run.d.mts","names":[],"sources":["../../src/loop/run.ts"],"mappings":";;;;;;;;;KAuFY,cAAA;AAAA,KAEA,SAAA;EAAA,SACD,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA,SACxB,YAAA;EAAA,SACA,KAAA,EAAO,aAAA,CAAc,OAAA;EAAA,SACrB,aAAA,GAAgB,aAAA,CAAc,YAAA,GANf;EAAA,SAQf,MAAA,GAAS,QAAA,CAAS,MAAA,SAAe,gBAAA;EANvB;;;EAAA,SAUV,YAAA,GAAe,QAAA,CAAS,MAAA,SAAe,oBAAA;EAAA,SACvC,eAAA,GAAkB,eAAA;EAAA,SAClB,KAAA;EAAA,SACA,eAAA,GAAkB,oBAAA;EAAA,SAClB,YAAA,GAAe,sBAAA;AAAA;AAAA,KAGd,eAAA,GAAkB,SAAS;EAAA,SAC5B,IAAI;AAAA;AAAA,KAGH,eAAA;EAAA,SACD,KAAA,EAAO,aAAA,CAAc,QAAA;EAAA,SACrB,KAAA,GAAQ,aAAA,CAAc,OAAA;EAAA,SACtB,aAAA,GAAgB,aAAA,CAAc,YAAA,GAVf;EAAA,SAYf,MAAA,GAAS,QAAA,CAAS,MAAA,SAAe,gBAAA,IAZI;EAAA,SAcrC,YAAA,GAAe,QAAA,CAAS,MAAA,SAAe,oBAAA;EAAA,SACvC,eAAA,GAAkB,eAAA;EAAA,SAClB,KAAA;EAAA,SACA,eAAA,GAAkB,aAAA,CAAc,YAAA;EAAA,SAChC,IAAA;EAAA,SACA,KAAA,GAAQ,UAAA;AAAA;AAAA,KAobd,wBAAA;EAAA,SACM,KAAA;EAAA,SACA,OAAA,EAAS,YAAY;AAAA;AAAA,KAG3B,eAAA;EAAA,SACM,KAAA;EAAA,SACA,IAAA,EAAM,QAAQ;AAAA;AAAA,KAyBb,iBAAA;EAAA,SACD,cAAA,EAAgB,aAAA,CAAc,eAAA;EAAA,SAC9B,cAAA,EAAgB,aAAA,CAAc,wBAAA;EAAA,SAC9B,YAAA,EAAc,aAAA,CAAc,UAAA;EAAA,SAC5B,MAAA,EAAQ,aAAA,CAAc,UAAA;EAAA,SACtB,eAAA,EAAiB,aAAA,CAAc,WAAA;EAAA,SAC/B,aAAA,EAAe,aAAA,CAAc,UAAA;EA9eX;;;;EAAA,SAmflB,mBAAA,EAAqB,WAAA,SAAoB,cAAA;AAAA;;;;cAiXvC,uBAAA,GACX,KAAA,EAAO,aAAA,CAAc,QAAA,GACrB,IAAA,EAAM,eAAA,iBACL,MAAA,CAAO,MAAA,CAAO,WAAA,SAAoB,kBAAA,GAAqB,SAAA;AA/1B1D;;;;AAAA,cAmkCa,gBAAA,GAAoB,KAAA;EAAA,SACtB,KAAA,EAAO,aAAA,CAAc,OAAA;EAAA,SACrB,SAAA,EAAW,aAAA,CAAc,YAAA;EAAA,SACzB,KAAA,EAAO,aAAA,CAAc,QAAA;EAAA,SACrB,MAAA,GAAS,QAAA,CAAS,MAAA,SAAe,gBAAA;EAAA,SACjC,YAAA,GAAe,QAAA,CAAS,MAAA,SAAe,oBAAA;EAAA,SACvC,mBAAA,GAAsB,WAAA,SAAoB,kBAAA;AAAA,MACjD,MAAA,CAAO,MAAA,CAAO,iBAAA,EAAmB,SAAA;AAAA,cA+iBxB,YAAA,GACX,MAAA,EAAQ,eAAA,KACP,MAAA,CAAO,MAAA,CAAO,UAAA,EAAY,cAAA,EAAgB,kBAAA,GAAqB,WAAA,GAAc,UAAA;AAAA,cAuBnE,YAAA,GACX,MAAA,EAAQ,eAAA,KACP,MAAA,CAAO,MAAA,CAAO,UAAA,EAAY,cAAA,EAAgB,UAAA,GAAa,YAAA;AAAA,cAoD7C,GAAA,GACX,MAAA,EAAQ,SAAA,KACP,MAAA,CAAO,MAAA,CACR,UAAA,EACA,cAAA,EACA,kBAAA,GAAqB,WAAA,GAAc,UAAA,GAAa,YAAA"}
package/dist/loop/run.mjs CHANGED
@@ -426,7 +426,12 @@ const prepareInteractionCall = (input) => Effect.gen(function* () {
426
426
  const descriptor = def?.interaction;
427
427
  if (def === void 0 || descriptor === void 0 || def.approval !== void 0 || def.background === true || def.execution !== void 0 || def.input !== void 0 || preflight === void 0) return unavailable();
428
428
  const validCall = yield* preflight.validateCall(input.call.params).pipe(Effect.result);
429
- if (Predicate.isTagged(validCall, "Failure")) return PreparedToolCall.Result({
429
+ if (Predicate.isTagged(validCall, "Failure") && Predicate.isTagged(validCall.failure, "InteractionHostError")) return yield* Effect.fail(new ToolError({
430
+ tool: input.call.name,
431
+ cause: "unavailable",
432
+ message: validCall.failure.message
433
+ }));
434
+ if (Predicate.isTagged(validCall, "Failure") && stored === void 0) return PreparedToolCall.Result({
430
435
  index: input.index,
431
436
  call: input.call,
432
437
  events: [],
@@ -497,7 +502,10 @@ const prepareModelToolCall = (input) => !input.receipts.has(input.call.id) && to
497
502
  isError: true
498
503
  })
499
504
  })) : Effect.succeed(prepareApprovalCall(input.tools, input.call, input.index, input.responses));
500
- /** Preflight the entire batch before dispatching ANY call. Pending requests fence all execution. */
505
+ /** Preflight the entire batch before dispatching ANY call. Pending requests fence all execution.
506
+ * Fails (`ToolError` `unavailable`) only when host storage an interaction call validator reads is
507
+ * unavailable: the batch fails closed, like `loadInteractionReceipts`, and nothing runs.
508
+ */
501
509
  const prepareToolBatch = (input) => Effect.gen(function* () {
502
510
  const handlers = input.inputs ?? {};
503
511
  const preflights = input.interactions ?? {};