@yolk-sdk/agent 0.1.0-canary.98 → 0.1.0-canary.99

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 (51) hide show
  1. package/README.md +24 -1
  2. package/dist/client/state.d.mts +63 -63
  3. package/dist/client/state.d.mts.map +1 -1
  4. package/dist/compaction/retry.d.mts +30 -30
  5. package/dist/compaction/retry.d.mts.map +1 -1
  6. package/dist/compaction/window.d.mts +39 -39
  7. package/dist/compaction/window.d.mts.map +1 -1
  8. package/dist/protocol/bounded-text.d.mts +20 -0
  9. package/dist/protocol/bounded-text.d.mts.map +1 -0
  10. package/dist/protocol/bounded-text.mjs +48 -0
  11. package/dist/protocol/bounded-text.mjs.map +1 -0
  12. package/dist/protocol/index.d.mts +3 -2
  13. package/dist/protocol/index.d.mts.map +1 -1
  14. package/dist/protocol/index.mjs +3 -2
  15. package/dist/protocol/nested-tool-calls.d.mts +58 -9
  16. package/dist/protocol/nested-tool-calls.d.mts.map +1 -1
  17. package/dist/protocol/nested-tool-calls.mjs +83 -58
  18. package/dist/protocol/nested-tool-calls.mjs.map +1 -1
  19. package/dist/react/chat-items.d.mts +39 -39
  20. package/dist/react/chat-items.d.mts.map +1 -1
  21. package/dist/react/chat-messages.d.mts +60 -60
  22. package/dist/react/chat-messages.d.mts.map +1 -1
  23. package/dist/skillset/merge.d.mts +2 -2
  24. package/dist/tools/index.d.mts +2 -1
  25. package/dist/tools/index.mjs +2 -1
  26. package/dist/tools/ledger.d.mts +452 -0
  27. package/dist/tools/ledger.d.mts.map +1 -0
  28. package/dist/tools/ledger.mjs +471 -0
  29. package/dist/tools/ledger.mjs.map +1 -0
  30. package/dist/tools/registry.d.mts +23 -6
  31. package/dist/tools/registry.d.mts.map +1 -1
  32. package/dist/tools/registry.mjs +55 -33
  33. package/dist/tools/registry.mjs.map +1 -1
  34. package/dist/tools/sha256.d.mts +6 -0
  35. package/dist/tools/sha256.d.mts.map +1 -0
  36. package/dist/tools/sha256.mjs +138 -0
  37. package/dist/tools/sha256.mjs.map +1 -0
  38. package/dist/tools/subagent.d.mts +4 -0
  39. package/dist/tools/subagent.d.mts.map +1 -1
  40. package/dist/tools/subagent.mjs +7 -2
  41. package/dist/tools/subagent.mjs.map +1 -1
  42. package/package.json +2 -2
  43. package/src/protocol/bounded-text.ts +78 -0
  44. package/src/protocol/index.ts +8 -0
  45. package/src/protocol/nested-tool-calls.ts +114 -83
  46. package/src/tools/README.md +99 -1
  47. package/src/tools/index.ts +38 -0
  48. package/src/tools/ledger.ts +1068 -0
  49. package/src/tools/registry.ts +101 -19
  50. package/src/tools/sha256.ts +98 -0
  51. package/src/tools/subagent.ts +10 -2
package/README.md CHANGED
@@ -29,7 +29,7 @@ Published package metadata requires Node.js 22+.
29
29
  | `@yolk-sdk/agent/client` | HTTP/NDJSON transport, HITL resume, retry/error state helpers |
30
30
  | `@yolk-sdk/agent/compaction` | Host-owned compaction budgets, checkpoints, formatting, retry |
31
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 |
32
+ | `@yolk-sdk/agent/tools` | Tool registry, typed inputs, interactions, subagents/questions, durable tool ledger |
33
33
  | `@yolk-sdk/agent/react` | Headless React chat hook, reducer, selectors, and render model |
34
34
  | `@yolk-sdk/agent/oauth` | Provider-neutral OAuth token and broker contracts |
35
35
  | `@yolk-sdk/agent/providers/openai` | OpenAI/Codex OAuth and broker helpers |
@@ -934,6 +934,26 @@ This package declares them; it does not run scripts.
934
934
  bounded `ToolResult.nestedCalls` record and summed `ToolResult.usage` never reach the model:
935
935
  `toolResultMessageFromResult` drops both, and the loop does not add `ToolResult.usage` to run
936
936
  usage. Capture them from the `ToolResult` or tool events when you need audit or billing records.
937
+ Size the record with `makeNestedToolCallRecorder({ maxCalls })`; per-status `counts` cover
938
+ every call, dropped ones included.
939
+
940
+ ## Durable tool ledger
941
+
942
+ Steps that hosts re-execute (Vercel Workflow's queue is at-least-once) must not repeat writes.
943
+ Pass `resolveTools(modules, context, { ledger: { store } })` with a host-implemented durable
944
+ `ToolLedgerStore` scoped to the run: every ledgered call (by default every non-`read` call plus the
945
+ built-in `subagent` tool, top-level or nested in code mode) runs at most once per ledger key. Add
946
+ custom delegation tools with `isLedgered`. Input and interaction tools are never ledgered; their
947
+ at-most-once guarantee is the host's `InteractionHost` receipts. A different call under the same key (tool name or a
948
+ SHA-256 `argsDigest` of the full arguments, a stable format hosts persist) is a conflict, never a
949
+ replay. Completed calls return their stored result, concurrent duplicates wait, and calls abandoned
950
+ by a crash are never re-run (the model is told to verify). Executors receive a stable
951
+ `idempotencyKey`. Stores get the lease length (`leaseMs`) so they can use database time, and must
952
+ keep their operations interruptible (the ledger's timeouts cannot cut uninterruptible store work).
953
+ `deadline` bounds only waiting for a duplicate; recording an outcome can take about 15 s more.
954
+ `onLedgerDecision` reports each call's decision (`fresh`, `completed`, `in_flight_wait`, ...) for
955
+ logs and metrics. Without the option behavior is unchanged. See
956
+ [the tools README](https://github.com/magoz/yolk-sdk/blob/main/packages/agent/src/tools/README.md#durable-tool-ledger).
937
957
 
938
958
  ## Tool failures
939
959
 
@@ -965,6 +985,9 @@ aborts, and implementation bugs outside typed tool execution.
965
985
  - Persist/return one `ToolResultMessage` for every host tool call, including `isError` failures.
966
986
  - Persist terminal provider failures and clear active run ids where applicable.
967
987
  - Provide tools, approval policy, auth, storage, and observability.
988
+ - When steps can re-execute, implement a durable `ToolLedgerStore` scoped to one run (plus the turn
989
+ or step when call ids can repeat), keep its operations interruptible, and reserve about 15 s of
990
+ the step budget after `deadline` for recording outcomes.
968
991
  - If you send `ToolDef`s to providers yourself (outside `run`/`runModelTurn`), filter them with
969
992
  protocol `providerToolDefs`; codemode-only tools must never reach providers. Executor decorators
970
993
  outside `ResolvedToolSet.execute` do not see nested code mode calls.
@@ -80,26 +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
- readonly Denied: Data.TaggedEnum.ConstructorFrom<{
99
- readonly _tag: "Denied";
100
- readonly toolCallId: string;
101
- readonly reason: string;
102
- }, "_tag">;
103
83
  readonly QuestionRequested: Data.TaggedEnum.ConstructorFrom<{
104
84
  readonly _tag: "QuestionRequested";
105
85
  readonly request: QuestionRequest;
@@ -142,6 +122,26 @@ declare const AgentToolRun: {
142
122
  readonly response: InteractionResponse;
143
123
  readonly request?: InteractionRequest;
144
124
  }, "_tag">;
125
+ readonly InputStreaming: Data.TaggedEnum.ConstructorFrom<{
126
+ readonly _tag: "InputStreaming";
127
+ readonly id: string;
128
+ readonly name?: string;
129
+ readonly input: string;
130
+ }, "_tag">;
131
+ readonly InputReady: Data.TaggedEnum.ConstructorFrom<{
132
+ readonly _tag: "InputReady";
133
+ readonly call: ToolCall;
134
+ }, "_tag">;
135
+ readonly ApprovalRequested: Data.TaggedEnum.ConstructorFrom<{
136
+ readonly _tag: "ApprovalRequested";
137
+ readonly call: ToolCall;
138
+ readonly request?: ToolApprovalRequest;
139
+ }, "_tag">;
140
+ readonly Denied: Data.TaggedEnum.ConstructorFrom<{
141
+ readonly _tag: "Denied";
142
+ readonly toolCallId: string;
143
+ readonly reason: string;
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 "QuestionRequested" | "QuestionAnswered" | "QuestionCancelled" | "InputRequested" | "InputSubmitted" | "InputCancelled" | "InteractionRequested" | "InteractionSubmitted" | "InteractionCancelled" | "InputStreaming" | "InputReady" | "ApprovalRequested" | "Denied" | "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,26 +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
- readonly Denied: (args: {
306
- readonly _tag: "Denied";
307
- readonly toolCallId: string;
308
- readonly reason: string;
309
- }) => any;
310
290
  readonly QuestionRequested: (args: {
311
291
  readonly _tag: "QuestionRequested";
312
292
  readonly request: QuestionRequest;
@@ -349,6 +329,26 @@ declare const AgentToolRun: {
349
329
  readonly response: InteractionResponse;
350
330
  readonly request?: InteractionRequest;
351
331
  }) => any;
332
+ readonly InputStreaming: (args: {
333
+ readonly _tag: "InputStreaming";
334
+ readonly id: string;
335
+ readonly name?: string;
336
+ readonly input: string;
337
+ }) => any;
338
+ readonly InputReady: (args: {
339
+ readonly _tag: "InputReady";
340
+ readonly call: ToolCall;
341
+ }) => any;
342
+ readonly ApprovalRequested: (args: {
343
+ readonly _tag: "ApprovalRequested";
344
+ readonly call: ToolCall;
345
+ readonly request?: ToolApprovalRequest;
346
+ }) => any;
347
+ readonly Denied: (args: {
348
+ readonly _tag: "Denied";
349
+ readonly toolCallId: string;
350
+ readonly reason: string;
351
+ }) => any;
352
352
  readonly Executing: (args: {
353
353
  readonly _tag: "Executing";
354
354
  readonly call: ToolCall;
@@ -380,28 +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["QuestionRequested" | "QuestionAnswered" | "QuestionCancelled" | "InputRequested" | "InputSubmitted" | "InputCancelled" | "InteractionRequested" | "InteractionSubmitted" | "InteractionCancelled" | "InputStreaming" | "InputReady" | "ApprovalRequested" | "Denied" | "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
- readonly Denied: (args: {
401
- readonly _tag: "Denied";
402
- readonly toolCallId: string;
403
- readonly reason: string;
404
- }) => any;
405
385
  readonly QuestionRequested: (args: {
406
386
  readonly _tag: "QuestionRequested";
407
387
  readonly request: QuestionRequest;
@@ -444,6 +424,26 @@ declare const AgentToolRun: {
444
424
  readonly response: InteractionResponse;
445
425
  readonly request?: InteractionRequest;
446
426
  }) => any;
427
+ readonly InputStreaming: (args: {
428
+ readonly _tag: "InputStreaming";
429
+ readonly id: string;
430
+ readonly name?: string;
431
+ readonly input: string;
432
+ }) => any;
433
+ readonly InputReady: (args: {
434
+ readonly _tag: "InputReady";
435
+ readonly call: ToolCall;
436
+ }) => any;
437
+ readonly ApprovalRequested: (args: {
438
+ readonly _tag: "ApprovalRequested";
439
+ readonly call: ToolCall;
440
+ readonly request?: ToolApprovalRequest;
441
+ }) => any;
442
+ readonly Denied: (args: {
443
+ readonly _tag: "Denied";
444
+ readonly toolCallId: string;
445
+ readonly reason: string;
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["QuestionRequested" | "QuestionAnswered" | "QuestionCancelled" | "InputRequested" | "InputSubmitted" | "InputCancelled" | "InteractionRequested" | "InteractionSubmitted" | "InteractionCancelled" | "InputStreaming" | "InputReady" | "ApprovalRequested" | "Denied" | "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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"}
@@ -12,58 +12,58 @@ type ContextOverflowRetryCompactionResult = Data.TaggedEnum<{
12
12
  };
13
13
  }>;
14
14
  declare const ContextOverflowRetryCompactionResult: {
15
- readonly Skipped: Data.TaggedEnum.ConstructorFrom<{
16
- readonly _tag: "Skipped";
17
- readonly messages: ReadonlyArray<AgentMessage>;
18
- }, "_tag">;
19
15
  readonly Compacted: Data.TaggedEnum.ConstructorFrom<{
20
16
  readonly _tag: "Compacted";
21
17
  readonly messages: ReadonlyArray<AgentMessage>;
22
18
  }, "_tag">;
23
- readonly $is: <Tag extends "Skipped" | "Compacted">(tag: Tag) => (u: unknown) => u is Extract<{
19
+ readonly Skipped: Data.TaggedEnum.ConstructorFrom<{
24
20
  readonly _tag: "Skipped";
25
21
  readonly messages: ReadonlyArray<AgentMessage>;
22
+ }, "_tag">;
23
+ readonly $is: <Tag extends "Compacted" | "Skipped">(tag: Tag) => (u: unknown) => u is Extract<{
24
+ readonly _tag: "Compacted";
25
+ readonly messages: ReadonlyArray<AgentMessage>;
26
26
  }, {
27
27
  readonly _tag: Tag;
28
28
  }> | Extract<{
29
- readonly _tag: "Compacted";
29
+ readonly _tag: "Skipped";
30
30
  readonly messages: ReadonlyArray<AgentMessage>;
31
31
  }, {
32
32
  readonly _tag: Tag;
33
33
  }>;
34
34
  readonly $match: {
35
35
  <Cases extends {
36
- readonly Skipped: (args: {
37
- readonly _tag: "Skipped";
38
- readonly messages: ReadonlyArray<AgentMessage>;
39
- }) => any;
40
36
  readonly Compacted: (args: {
41
37
  readonly _tag: "Compacted";
42
38
  readonly messages: ReadonlyArray<AgentMessage>;
43
39
  }) => any;
40
+ readonly Skipped: (args: {
41
+ readonly _tag: "Skipped";
42
+ readonly messages: ReadonlyArray<AgentMessage>;
43
+ }) => any;
44
44
  }>(cases: Cases): (value: {
45
- readonly _tag: "Skipped";
45
+ readonly _tag: "Compacted";
46
46
  readonly messages: ReadonlyArray<AgentMessage>;
47
47
  } | {
48
- readonly _tag: "Compacted";
48
+ readonly _tag: "Skipped";
49
49
  readonly messages: ReadonlyArray<AgentMessage>;
50
- }) => import("effect/Unify").Unify<ReturnType<Cases["Skipped" | "Compacted"]>>;
50
+ }) => import("effect/Unify").Unify<ReturnType<Cases["Compacted" | "Skipped"]>>;
51
51
  <Cases extends {
52
- readonly Skipped: (args: {
53
- readonly _tag: "Skipped";
54
- readonly messages: ReadonlyArray<AgentMessage>;
55
- }) => any;
56
52
  readonly Compacted: (args: {
57
53
  readonly _tag: "Compacted";
58
54
  readonly messages: ReadonlyArray<AgentMessage>;
59
55
  }) => any;
56
+ readonly Skipped: (args: {
57
+ readonly _tag: "Skipped";
58
+ readonly messages: ReadonlyArray<AgentMessage>;
59
+ }) => any;
60
60
  }>(value: {
61
- readonly _tag: "Skipped";
61
+ readonly _tag: "Compacted";
62
62
  readonly messages: ReadonlyArray<AgentMessage>;
63
63
  } | {
64
- readonly _tag: "Compacted";
64
+ readonly _tag: "Skipped";
65
65
  readonly messages: ReadonlyArray<AgentMessage>;
66
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Skipped" | "Compacted"]>>;
66
+ }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Compacted" | "Skipped"]>>;
67
67
  };
68
68
  };
69
69
  type OverflowCompactionDecision = {
@@ -73,14 +73,14 @@ type OverflowCompactionDecision = {
73
73
  readonly _tag: 'Skipped';
74
74
  };
75
75
  declare const OverflowCompactionDecision: {
76
- readonly Skipped: Data.TaggedEnum.ConstructorFrom<{
77
- readonly _tag: "Skipped";
78
- }, "_tag">;
79
76
  readonly Compacted: Data.TaggedEnum.ConstructorFrom<{
80
77
  readonly _tag: "Compacted";
81
78
  readonly messages: ReadonlyArray<AgentMessage>;
82
79
  }, "_tag">;
83
- readonly $is: <Tag extends "Skipped" | "Compacted">(tag: Tag) => (u: unknown) => u is Extract<{
80
+ readonly Skipped: Data.TaggedEnum.ConstructorFrom<{
81
+ readonly _tag: "Skipped";
82
+ }, "_tag">;
83
+ readonly $is: <Tag extends "Compacted" | "Skipped">(tag: Tag) => (u: unknown) => u is Extract<{
84
84
  readonly _tag: "Compacted";
85
85
  readonly messages: ReadonlyArray<AgentMessage>;
86
86
  }, {
@@ -92,23 +92,23 @@ declare const OverflowCompactionDecision: {
92
92
  }>;
93
93
  readonly $match: {
94
94
  <Cases extends {
95
- readonly Skipped: (args: {
96
- readonly _tag: "Skipped";
97
- }) => any;
98
95
  readonly Compacted: (args: {
99
96
  readonly _tag: "Compacted";
100
97
  readonly messages: ReadonlyArray<AgentMessage>;
101
98
  }) => any;
102
- }>(cases: Cases): (value: OverflowCompactionDecision) => import("effect/Unify").Unify<ReturnType<Cases["Skipped" | "Compacted"]>>;
103
- <Cases extends {
104
99
  readonly Skipped: (args: {
105
100
  readonly _tag: "Skipped";
106
101
  }) => any;
102
+ }>(cases: Cases): (value: OverflowCompactionDecision) => import("effect/Unify").Unify<ReturnType<Cases["Compacted" | "Skipped"]>>;
103
+ <Cases extends {
107
104
  readonly Compacted: (args: {
108
105
  readonly _tag: "Compacted";
109
106
  readonly messages: ReadonlyArray<AgentMessage>;
110
107
  }) => any;
111
- }>(value: OverflowCompactionDecision, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Skipped" | "Compacted"]>>;
108
+ readonly Skipped: (args: {
109
+ readonly _tag: "Skipped";
110
+ }) => any;
111
+ }>(value: OverflowCompactionDecision, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Compacted" | "Skipped"]>>;
112
112
  };
113
113
  };
114
114
  type ContextOverflowRetryCompactor = (messages: ReadonlyArray<AgentMessage>) => Effect.Effect<ContextOverflowRetryCompactionResult, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.mts","names":[],"sources":["../../src/compaction/retry.ts"],"mappings":";;;;;KASY,oCAAA,GAAuC,IAAA,CAAK,UAAA;EACtD,SAAA;IAAA,SACW,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA;EAEnC,OAAA;IAAA,SACW,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA;AAAA;AAAA,cAIxB,oCAAA;EAAA;;uBAJU,aAAA,CAAc,YAAA;EAAA;EAAA;;uBAHd,aAAA,CAAc,YAAA;EAAA;EAAA;;uBAGd,aAAA,CAAc,YAAA;EAAA;IAAA;;;uBAHd,aAAA,CAAc,YAAA;EAAA;IAAA;;;;;;2BAGd,aAAA,CAAc,YAAA;MAAA;MAAA;;2BAHd,aAAA,CAAc,YAAA;MAAA;IAAA;;yBAGd,aAAA,CAAc,YAAA;IAAA;MAAA;yBAHd,aAAA,CAAc,YAAA;IAAA;;;;2BAGd,aAAA,CAAc,YAAA;MAAA;MAAA;;2BAHd,aAAA,CAAc,YAAA;MAAA;IAAA;;yBAGd,aAAA,CAAc,YAAA;IAAA;MAAA;yBAHd,aAAA,CAAc,YAAA;IAAA;;;KAUzB,0BAAA;EAAA,SAEG,IAAA;EAAA,SACA,QAAA,EAAU,aAAa,CAAC,YAAA;AAAA;EAAA,SAGxB,IAAA;AAAA;AAAA,cAGF,0BAAA;EAAA;;;;;uBANY,aAAA,CAAc,YAAA;EAAA;EAAA;;uBAAd,aAAA,CAAc,YAAA;EAAA;IAAA;;;;;;;;;;;;;2BAAd,aAAA,CAAc,YAAA;MAAA;IAAA;;;;;;;2BAAd,aAAA,CAAc,YAAA;MAAA;IAAA;;;KAQ3B,6BAAA,IACV,QAAA,EAAU,aAAA,CAAc,YAAA,MACrB,MAAA,CAAO,MAAA,CAAO,oCAAA;AAAA,KAEP,iCAAA;EAAA,SACD,QAAA;IAAA,SACE,MAAA,GAAS,OAAA,EAAS,UAAA,KAAe,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU,gBAAA;EAAA;EAAA,SAE3D,WAAA,GAAc,GAAA,CAAI,GAAA,CAAI,aAAA,CAAc,YAAA;EAAA,SACpC,OAAA,EAAS,6BAAA;AAAA;AAAA,KAGf,uBAAA,GAA0B,oCAAA,GAAuC,0BAA0B;;cAGnF,6BAAA;AAAA,cAEA,gCAAA,GAAoC,OAAe;AAAA,cAGnD,gCAAA,GAAoC,OAAe;AAAA,cAGnD,wBAAA,GAA4B,KAAA;EAAA,SAC9B,OAAA;EAAA,SACA,aAAA;AAAA;AAAA,cAkBE,uBAAA,SAAiC,KAAA;EAAA,SACnC,OAAA,GACP,QAAA,EAAU,aAAA,CAAc,YAAA,MACrB,MAAA,CAAO,MAAA,CAAO,uBAAA,EAAyB,CAAA,EAAG,CAAA;EAAA,SACtC,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA,SACxB,OAAA;EAAA,SACA,aAAA;AAAA,MACP,MAAA,CAAO,MAAA,CAAO,0BAAA,EAA4B,CAAA,EAAG,CAAA;AAAA,cAuEpC,gCAAA,GAAoC,KAAA,EAAO,iCAAA,KAAiC,MAAA,CAAA,MAAA;EAAA"}
1
+ {"version":3,"file":"retry.d.mts","names":[],"sources":["../../src/compaction/retry.ts"],"mappings":";;;;;KASY,oCAAA,GAAuC,IAAA,CAAK,UAAA;EACtD,SAAA;IAAA,SACW,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA;EAEnC,OAAA;IAAA,SACW,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA;AAAA;AAAA,cAIxB,oCAAA;EAAA;;uBAPU,aAAA,CAAc,YAAA;EAAA;EAAA;;uBAGd,aAAA,CAAc,YAAA;EAAA;EAAA;;uBAHd,aAAA,CAAc,YAAA;EAAA;IAAA;;;uBAGd,aAAA,CAAc,YAAA;EAAA;IAAA;;;;;;2BAHd,aAAA,CAAc,YAAA;MAAA;MAAA;;2BAGd,aAAA,CAAc,YAAA;MAAA;IAAA;;yBAHd,aAAA,CAAc,YAAA;IAAA;MAAA;yBAGd,aAAA,CAAc,YAAA;IAAA;;;;2BAHd,aAAA,CAAc,YAAA;MAAA;MAAA;;2BAGd,aAAA,CAAc,YAAA;MAAA;IAAA;;yBAHd,aAAA,CAAc,YAAA;IAAA;MAAA;yBAGd,aAAA,CAAc,YAAA;IAAA;;;KAOzB,0BAAA;EAAA,SAEG,IAAA;EAAA,SACA,QAAA,EAAU,aAAa,CAAC,YAAA;AAAA;EAAA,SAGxB,IAAA;AAAA;AAAA,cAGF,0BAAA;EAAA;;uBANY,aAAA,CAAc,YAAA;EAAA;EAAA;;;;;uBAAd,aAAA,CAAc,YAAA;EAAA;IAAA;;;;;;;;;;2BAAd,aAAA,CAAc,YAAA;MAAA;MAAA;;;;;;;2BAAd,aAAA,CAAc,YAAA;MAAA;MAAA;;;;;;KAQ3B,6BAAA,IACV,QAAA,EAAU,aAAA,CAAc,YAAA,MACrB,MAAA,CAAO,MAAA,CAAO,oCAAA;AAAA,KAEP,iCAAA;EAAA,SACD,QAAA;IAAA,SACE,MAAA,GAAS,OAAA,EAAS,UAAA,KAAe,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU,gBAAA;EAAA;EAAA,SAE3D,WAAA,GAAc,GAAA,CAAI,GAAA,CAAI,aAAA,CAAc,YAAA;EAAA,SACpC,OAAA,EAAS,6BAAA;AAAA;AAAA,KAGf,uBAAA,GAA0B,oCAAA,GAAuC,0BAA0B;;cAGnF,6BAAA;AAAA,cAEA,gCAAA,GAAoC,OAAe;AAAA,cAGnD,gCAAA,GAAoC,OAAe;AAAA,cAGnD,wBAAA,GAA4B,KAAA;EAAA,SAC9B,OAAA;EAAA,SACA,aAAA;AAAA;AAAA,cAkBE,uBAAA,SAAiC,KAAA;EAAA,SACnC,OAAA,GACP,QAAA,EAAU,aAAA,CAAc,YAAA,MACrB,MAAA,CAAO,MAAA,CAAO,uBAAA,EAAyB,CAAA,EAAG,CAAA;EAAA,SACtC,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA,SACxB,OAAA;EAAA,SACA,aAAA;AAAA,MACP,MAAA,CAAO,MAAA,CAAO,0BAAA,EAA4B,CAAA,EAAG,CAAA;AAAA,cAuEpC,gCAAA,GAAoC,KAAA,EAAO,iCAAA,KAAiC,MAAA,CAAA,MAAA;EAAA"}
@@ -57,13 +57,6 @@ type CompletedCompactionResult = Extract<CompactionResult, {
57
57
  readonly _tag: 'Compacted';
58
58
  }>;
59
59
  declare const CompactionResult: {
60
- readonly Skipped: Data.TaggedEnum.ConstructorFrom<{
61
- readonly _tag: "Skipped";
62
- readonly reason: CompactionSkipReason;
63
- readonly messages: ReadonlyArray<AgentMessage>;
64
- readonly events: ReadonlyArray<AgentEvent>;
65
- readonly beforeTokens: number;
66
- }, "_tag">;
67
60
  readonly Compacted: Data.TaggedEnum.ConstructorFrom<{
68
61
  readonly _tag: "Compacted";
69
62
  readonly strategy: string;
@@ -75,15 +68,14 @@ declare const CompactionResult: {
75
68
  readonly recentMessages: ReadonlyArray<AgentMessage>;
76
69
  readonly summaryMessage: AgentMessage;
77
70
  }, "_tag">;
78
- readonly $is: <Tag extends "Skipped" | "Compacted">(tag: Tag) => (u: unknown) => u is Extract<{
71
+ readonly Skipped: Data.TaggedEnum.ConstructorFrom<{
79
72
  readonly _tag: "Skipped";
80
73
  readonly reason: CompactionSkipReason;
81
74
  readonly messages: ReadonlyArray<AgentMessage>;
82
75
  readonly events: ReadonlyArray<AgentEvent>;
83
76
  readonly beforeTokens: number;
84
- }, {
85
- readonly _tag: Tag;
86
- }> | Extract<{
77
+ }, "_tag">;
78
+ readonly $is: <Tag extends "Compacted" | "Skipped">(tag: Tag) => (u: unknown) => u is Extract<{
87
79
  readonly _tag: "Compacted";
88
80
  readonly strategy: string;
89
81
  readonly messages: ReadonlyArray<AgentMessage>;
@@ -95,16 +87,17 @@ declare const CompactionResult: {
95
87
  readonly summaryMessage: AgentMessage;
96
88
  }, {
97
89
  readonly _tag: Tag;
90
+ }> | Extract<{
91
+ readonly _tag: "Skipped";
92
+ readonly reason: CompactionSkipReason;
93
+ readonly messages: ReadonlyArray<AgentMessage>;
94
+ readonly events: ReadonlyArray<AgentEvent>;
95
+ readonly beforeTokens: number;
96
+ }, {
97
+ readonly _tag: Tag;
98
98
  }>;
99
99
  readonly $match: {
100
100
  <Cases extends {
101
- readonly Skipped: (args: {
102
- readonly _tag: "Skipped";
103
- readonly reason: CompactionSkipReason;
104
- readonly messages: ReadonlyArray<AgentMessage>;
105
- readonly events: ReadonlyArray<AgentEvent>;
106
- readonly beforeTokens: number;
107
- }) => any;
108
101
  readonly Compacted: (args: {
109
102
  readonly _tag: "Compacted";
110
103
  readonly strategy: string;
@@ -116,13 +109,14 @@ declare const CompactionResult: {
116
109
  readonly recentMessages: ReadonlyArray<AgentMessage>;
117
110
  readonly summaryMessage: AgentMessage;
118
111
  }) => any;
112
+ readonly Skipped: (args: {
113
+ readonly _tag: "Skipped";
114
+ readonly reason: CompactionSkipReason;
115
+ readonly messages: ReadonlyArray<AgentMessage>;
116
+ readonly events: ReadonlyArray<AgentEvent>;
117
+ readonly beforeTokens: number;
118
+ }) => any;
119
119
  }>(cases: Cases): (value: {
120
- readonly _tag: "Skipped";
121
- readonly reason: CompactionSkipReason;
122
- readonly messages: ReadonlyArray<AgentMessage>;
123
- readonly events: ReadonlyArray<AgentEvent>;
124
- readonly beforeTokens: number;
125
- } | {
126
120
  readonly _tag: "Compacted";
127
121
  readonly strategy: string;
128
122
  readonly messages: ReadonlyArray<AgentMessage>;
@@ -132,15 +126,14 @@ declare const CompactionResult: {
132
126
  readonly compactedMessages: ReadonlyArray<AgentMessage>;
133
127
  readonly recentMessages: ReadonlyArray<AgentMessage>;
134
128
  readonly summaryMessage: AgentMessage;
135
- }) => import("effect/Unify").Unify<ReturnType<Cases["Skipped" | "Compacted"]>>;
129
+ } | {
130
+ readonly _tag: "Skipped";
131
+ readonly reason: CompactionSkipReason;
132
+ readonly messages: ReadonlyArray<AgentMessage>;
133
+ readonly events: ReadonlyArray<AgentEvent>;
134
+ readonly beforeTokens: number;
135
+ }) => import("effect/Unify").Unify<ReturnType<Cases["Compacted" | "Skipped"]>>;
136
136
  <Cases extends {
137
- readonly Skipped: (args: {
138
- readonly _tag: "Skipped";
139
- readonly reason: CompactionSkipReason;
140
- readonly messages: ReadonlyArray<AgentMessage>;
141
- readonly events: ReadonlyArray<AgentEvent>;
142
- readonly beforeTokens: number;
143
- }) => any;
144
137
  readonly Compacted: (args: {
145
138
  readonly _tag: "Compacted";
146
139
  readonly strategy: string;
@@ -152,13 +145,14 @@ declare const CompactionResult: {
152
145
  readonly recentMessages: ReadonlyArray<AgentMessage>;
153
146
  readonly summaryMessage: AgentMessage;
154
147
  }) => any;
148
+ readonly Skipped: (args: {
149
+ readonly _tag: "Skipped";
150
+ readonly reason: CompactionSkipReason;
151
+ readonly messages: ReadonlyArray<AgentMessage>;
152
+ readonly events: ReadonlyArray<AgentEvent>;
153
+ readonly beforeTokens: number;
154
+ }) => any;
155
155
  }>(value: {
156
- readonly _tag: "Skipped";
157
- readonly reason: CompactionSkipReason;
158
- readonly messages: ReadonlyArray<AgentMessage>;
159
- readonly events: ReadonlyArray<AgentEvent>;
160
- readonly beforeTokens: number;
161
- } | {
162
156
  readonly _tag: "Compacted";
163
157
  readonly strategy: string;
164
158
  readonly messages: ReadonlyArray<AgentMessage>;
@@ -168,7 +162,13 @@ declare const CompactionResult: {
168
162
  readonly compactedMessages: ReadonlyArray<AgentMessage>;
169
163
  readonly recentMessages: ReadonlyArray<AgentMessage>;
170
164
  readonly summaryMessage: AgentMessage;
171
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Skipped" | "Compacted"]>>;
165
+ } | {
166
+ readonly _tag: "Skipped";
167
+ readonly reason: CompactionSkipReason;
168
+ readonly messages: ReadonlyArray<AgentMessage>;
169
+ readonly events: ReadonlyArray<AgentEvent>;
170
+ readonly beforeTokens: number;
171
+ }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Compacted" | "Skipped"]>>;
172
172
  };
173
173
  };
174
174
  type ApplyCompactionPlanOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"window.d.mts","names":[],"sources":["../../src/compaction/window.ts"],"mappings":"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"}
1
+ {"version":3,"file":"window.d.mts","names":[],"sources":["../../src/compaction/window.ts"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ //#region src/protocol/bounded-text.d.ts
2
+ /** Marker appended to text cut by `truncateUtf8` and `truncateCodePoints`. */
3
+ declare const truncationMarker = "\u2026";
4
+ /** UTF-8 byte length of `text` (a lone surrogate counts as the 3 bytes of U+FFFD). */
5
+ declare const utf8ByteLength: (text: string) => number;
6
+ /**
7
+ * `text` within `maxBytes` UTF-8 bytes: unchanged when it fits, else cut on a code point boundary
8
+ * (surrogate pairs and multi-byte characters stay whole) with a trailing `…` counted in the
9
+ * budget. A budget smaller than the marker yields `''`, so the result never exceeds `maxBytes`.
10
+ */
11
+ declare const truncateUtf8: (text: string, maxBytes: number) => string;
12
+ /** `text` within `maxCharacters` code points: cut with a trailing `…` (counted) when longer. */
13
+ declare const truncateCodePoints: (text: string, maxCharacters: number) => string;
14
+ /** Compact JSON of tool call arguments: `null` for `undefined`, `[unserializable arguments]` when
15
+ * `JSON.stringify` throws (cycles, BigInt).
16
+ */
17
+ declare const compactToolArguments: (args: unknown) => string;
18
+ //#endregion
19
+ export { compactToolArguments, truncateCodePoints, truncateUtf8, truncationMarker, utf8ByteLength };
20
+ //# sourceMappingURL=bounded-text.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounded-text.d.mts","names":[],"sources":["../../src/protocol/bounded-text.ts"],"mappings":";;cAGa,gBAAA;;cAQA,cAAA,GAAkB,IAAY;;AARd;AAQ7B;;;cAea,YAAA,GAAgB,IAAA,UAAc,QAAgB;AAfhB;AAAA,cA4C9B,kBAAA,GAAsB,IAAA,UAAc,aAAqB;;;;cAezD,oBAAA,GAAwB,IAAa"}
@@ -0,0 +1,48 @@
1
+ import { Predicate, Result } from "effect";
2
+ //#region src/protocol/bounded-text.ts
3
+ /** Marker appended to text cut by `truncateUtf8` and `truncateCodePoints`. */
4
+ const truncationMarker = "…";
5
+ const codePointUtf8Bytes = (codePoint) => codePoint <= 127 ? 1 : codePoint <= 2047 ? 2 : codePoint <= 65535 ? 3 : 4;
6
+ const characterUtf8Bytes = (character) => codePointUtf8Bytes(character.codePointAt(0) ?? 0);
7
+ /** UTF-8 byte length of `text` (a lone surrogate counts as the 3 bytes of U+FFFD). */
8
+ const utf8ByteLength = (text) => {
9
+ let bytes = 0;
10
+ for (const character of text) bytes += characterUtf8Bytes(character);
11
+ return bytes;
12
+ };
13
+ /**
14
+ * `text` within `maxBytes` UTF-8 bytes: unchanged when it fits, else cut on a code point boundary
15
+ * (surrogate pairs and multi-byte characters stay whole) with a trailing `…` counted in the
16
+ * budget. A budget smaller than the marker yields `''`, so the result never exceeds `maxBytes`.
17
+ */
18
+ const truncateUtf8 = (text, maxBytes) => {
19
+ if (utf8ByteLength(text) <= maxBytes) return text;
20
+ const budget = maxBytes - utf8ByteLength("…");
21
+ if (budget < 0) return "";
22
+ let bytes = 0;
23
+ let kept = "";
24
+ for (const character of text) {
25
+ const size = characterUtf8Bytes(character);
26
+ if (bytes + size > budget) break;
27
+ kept += character;
28
+ bytes += size;
29
+ }
30
+ return `${kept}…`;
31
+ };
32
+ /** `text` within `maxCharacters` code points: cut with a trailing `…` (counted) when longer. */
33
+ const truncateCodePoints = (text, maxCharacters) => {
34
+ const characters = Array.from(text);
35
+ if (characters.length <= maxCharacters) return text;
36
+ return maxCharacters < 1 ? "" : `${characters.slice(0, maxCharacters - 1).join("")}…`;
37
+ };
38
+ /** Compact JSON of tool call arguments: `null` for `undefined`, `[unserializable arguments]` when
39
+ * `JSON.stringify` throws (cycles, BigInt).
40
+ */
41
+ const compactToolArguments = (args) => Result.match(Result.try(() => JSON.stringify(args)), {
42
+ onFailure: () => "[unserializable arguments]",
43
+ onSuccess: (encoded) => Predicate.isString(encoded) ? encoded : "null"
44
+ });
45
+ //#endregion
46
+ export { compactToolArguments, truncateCodePoints, truncateUtf8, truncationMarker, utf8ByteLength };
47
+
48
+ //# sourceMappingURL=bounded-text.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounded-text.mjs","names":[],"sources":["../../src/protocol/bounded-text.ts"],"sourcesContent":["import { Predicate, Result } from 'effect'\n\n/** Marker appended to text cut by `truncateUtf8` and `truncateCodePoints`. */\nexport const truncationMarker = '…'\n\nconst codePointUtf8Bytes = (codePoint: number) =>\n codePoint <= 0x7f ? 1 : codePoint <= 0x7ff ? 2 : codePoint <= 0xffff ? 3 : 4\n\nconst characterUtf8Bytes = (character: string) => codePointUtf8Bytes(character.codePointAt(0) ?? 0)\n\n/** UTF-8 byte length of `text` (a lone surrogate counts as the 3 bytes of U+FFFD). */\nexport const utf8ByteLength = (text: string) => {\n let bytes = 0\n\n for (const character of text) {\n bytes += characterUtf8Bytes(character)\n }\n\n return bytes\n}\n\n/**\n * `text` within `maxBytes` UTF-8 bytes: unchanged when it fits, else cut on a code point boundary\n * (surrogate pairs and multi-byte characters stay whole) with a trailing `…` counted in the\n * budget. A budget smaller than the marker yields `''`, so the result never exceeds `maxBytes`.\n */\nexport const truncateUtf8 = (text: string, maxBytes: number): string => {\n if (utf8ByteLength(text) <= maxBytes) {\n return text\n }\n\n const budget = maxBytes - utf8ByteLength(truncationMarker)\n\n if (budget < 0) {\n return ''\n }\n\n let bytes = 0\n let kept = ''\n\n for (const character of text) {\n const size = characterUtf8Bytes(character)\n\n if (bytes + size > budget) {\n break\n }\n\n kept += character\n bytes += size\n }\n\n return `${kept}${truncationMarker}`\n}\n\n/** `text` within `maxCharacters` code points: cut with a trailing `…` (counted) when longer. */\nexport const truncateCodePoints = (text: string, maxCharacters: number): string => {\n const characters = Array.from(text)\n\n if (characters.length <= maxCharacters) {\n return text\n }\n\n return maxCharacters < 1\n ? ''\n : `${characters.slice(0, maxCharacters - 1).join('')}${truncationMarker}`\n}\n\n/** Compact JSON of tool call arguments: `null` for `undefined`, `[unserializable arguments]` when\n * `JSON.stringify` throws (cycles, BigInt).\n */\nexport const compactToolArguments = (args: unknown): string =>\n Result.match(\n Result.try(() => JSON.stringify(args)),\n {\n onFailure: () => '[unserializable arguments]',\n onSuccess: (encoded: string | undefined) => (Predicate.isString(encoded) ? encoded : 'null')\n }\n )\n"],"mappings":";;;AAGA,MAAa,mBAAmB;AAEhC,MAAM,sBAAsB,cAC1B,aAAa,MAAO,IAAI,aAAa,OAAQ,IAAI,aAAa,QAAS,IAAI;AAE7E,MAAM,sBAAsB,cAAsB,mBAAmB,UAAU,YAAY,CAAC,KAAK,CAAC;;AAGlG,MAAa,kBAAkB,SAAiB;CAC9C,IAAI,QAAQ;CAEZ,KAAK,MAAM,aAAa,MACtB,SAAS,mBAAmB,SAAS;CAGvC,OAAO;AACT;;;;;;AAOA,MAAa,gBAAgB,MAAc,aAA6B;CACtE,IAAI,eAAe,IAAI,KAAK,UAC1B,OAAO;CAGT,MAAM,SAAS,WAAW,eAAA,GAA+B;CAEzD,IAAI,SAAS,GACX,OAAO;CAGT,IAAI,QAAQ;CACZ,IAAI,OAAO;CAEX,KAAK,MAAM,aAAa,MAAM;EAC5B,MAAM,OAAO,mBAAmB,SAAS;EAEzC,IAAI,QAAQ,OAAO,QACjB;EAGF,QAAQ;EACR,SAAS;CACX;CAEA,OAAO,GAAG;AACZ;;AAGA,MAAa,sBAAsB,MAAc,kBAAkC;CACjF,MAAM,aAAa,MAAM,KAAK,IAAI;CAElC,IAAI,WAAW,UAAU,eACvB,OAAO;CAGT,OAAO,gBAAgB,IACnB,KACA,GAAG,WAAW,MAAM,GAAG,gBAAgB,CAAC,EAAE,KAAK,EAAE;AACvD;;;;AAKA,MAAa,wBAAwB,SACnC,OAAO,MACL,OAAO,UAAU,KAAK,UAAU,IAAI,CAAC,GACrC;CACE,iBAAiB;CACjB,YAAY,YAAiC,UAAU,SAAS,OAAO,IAAI,UAAU;AACvF,CACF"}