@duetso/agent 0.2.2 → 0.2.4

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 (235) hide show
  1. package/README.md +19 -11
  2. package/dist/package.json +4 -4
  3. package/dist/src/cli/config.d.ts +10 -0
  4. package/dist/src/cli/config.d.ts.map +1 -0
  5. package/dist/src/cli/config.js +24 -0
  6. package/dist/src/cli/config.js.map +1 -0
  7. package/dist/src/cli/help.d.ts.map +1 -1
  8. package/dist/src/cli/help.js +16 -13
  9. package/dist/src/cli/help.js.map +1 -1
  10. package/dist/src/cli/inline-slash.d.ts +2 -1
  11. package/dist/src/cli/inline-slash.d.ts.map +1 -1
  12. package/dist/src/cli/inline-slash.js +14 -5
  13. package/dist/src/cli/inline-slash.js.map +1 -1
  14. package/dist/src/cli/memory-query.d.ts +1 -1
  15. package/dist/src/cli/model.d.ts +1 -1
  16. package/dist/src/cli/model.d.ts.map +1 -1
  17. package/dist/src/cli/model.js +1 -1
  18. package/dist/src/cli/model.js.map +1 -1
  19. package/dist/src/cli/route.d.ts +84 -0
  20. package/dist/src/cli/route.d.ts.map +1 -0
  21. package/dist/src/cli/route.js +261 -0
  22. package/dist/src/cli/route.js.map +1 -0
  23. package/dist/src/cli/rpc.d.ts +52 -9
  24. package/dist/src/cli/rpc.d.ts.map +1 -1
  25. package/dist/src/cli/rpc.js +195 -28
  26. package/dist/src/cli/rpc.js.map +1 -1
  27. package/dist/src/cli/run.d.ts +8 -1
  28. package/dist/src/cli/run.d.ts.map +1 -1
  29. package/dist/src/cli/run.js +24 -7
  30. package/dist/src/cli/run.js.map +1 -1
  31. package/dist/src/cli/shared.d.ts +4 -3
  32. package/dist/src/cli/shared.d.ts.map +1 -1
  33. package/dist/src/cli/shared.js +3 -4
  34. package/dist/src/cli/shared.js.map +1 -1
  35. package/dist/src/cli/shutdown.d.ts +4 -2
  36. package/dist/src/cli/shutdown.d.ts.map +1 -1
  37. package/dist/src/cli/shutdown.js +4 -2
  38. package/dist/src/cli/shutdown.js.map +1 -1
  39. package/dist/src/cli.d.ts +2 -0
  40. package/dist/src/cli.d.ts.map +1 -1
  41. package/dist/src/cli.js +12 -0
  42. package/dist/src/cli.js.map +1 -1
  43. package/dist/src/core/structured-output.d.ts +2 -0
  44. package/dist/src/core/structured-output.d.ts.map +1 -1
  45. package/dist/src/core/structured-output.js +1 -0
  46. package/dist/src/core/structured-output.js.map +1 -1
  47. package/dist/src/lib/system-reminder.d.ts +14 -0
  48. package/dist/src/lib/system-reminder.d.ts.map +1 -0
  49. package/dist/src/lib/system-reminder.js +53 -0
  50. package/dist/src/lib/system-reminder.js.map +1 -0
  51. package/dist/src/lib/walk-ancestors.d.ts +9 -0
  52. package/dist/src/lib/walk-ancestors.d.ts.map +1 -0
  53. package/dist/src/lib/walk-ancestors.js +28 -0
  54. package/dist/src/lib/walk-ancestors.js.map +1 -0
  55. package/dist/src/memory/observational-prompts.d.ts.map +1 -1
  56. package/dist/src/memory/observational-prompts.js +2 -1
  57. package/dist/src/memory/observational-prompts.js.map +1 -1
  58. package/dist/src/memory/observational.d.ts +31 -4
  59. package/dist/src/memory/observational.d.ts.map +1 -1
  60. package/dist/src/memory/observational.js +43 -4
  61. package/dist/src/memory/observational.js.map +1 -1
  62. package/dist/src/model-resolution/catalog.d.ts +2 -2
  63. package/dist/src/model-resolution/catalog.d.ts.map +1 -1
  64. package/dist/src/model-resolution/catalog.js +61 -33
  65. package/dist/src/model-resolution/catalog.js.map +1 -1
  66. package/dist/src/model-resolution/duet-gateway.d.ts +3 -3
  67. package/dist/src/model-resolution/duet-gateway.d.ts.map +1 -1
  68. package/dist/src/model-resolution/duet-gateway.js +119 -19
  69. package/dist/src/model-resolution/duet-gateway.js.map +1 -1
  70. package/dist/src/model-resolution/model-gateway.d.ts.map +1 -0
  71. package/dist/src/{cli → model-resolution}/model-gateway.js +10 -6
  72. package/dist/src/model-resolution/model-gateway.js.map +1 -0
  73. package/dist/src/model-resolution/resolver.d.ts +11 -4
  74. package/dist/src/model-resolution/resolver.d.ts.map +1 -1
  75. package/dist/src/model-resolution/resolver.js +39 -8
  76. package/dist/src/model-resolution/resolver.js.map +1 -1
  77. package/dist/src/model-routing/advisor-transcript.d.ts +36 -0
  78. package/dist/src/model-routing/advisor-transcript.d.ts.map +1 -0
  79. package/dist/src/model-routing/advisor-transcript.js +103 -0
  80. package/dist/src/model-routing/advisor-transcript.js.map +1 -0
  81. package/dist/src/model-routing/advisor.d.ts +27 -0
  82. package/dist/src/model-routing/advisor.d.ts.map +1 -0
  83. package/dist/src/model-routing/advisor.js +20 -0
  84. package/dist/src/model-routing/advisor.js.map +1 -0
  85. package/dist/src/model-routing/classifier.d.ts +57 -0
  86. package/dist/src/model-routing/classifier.d.ts.map +1 -0
  87. package/dist/src/model-routing/classifier.js +63 -0
  88. package/dist/src/model-routing/classifier.js.map +1 -0
  89. package/dist/src/model-routing/loader.d.ts +48 -0
  90. package/dist/src/model-routing/loader.d.ts.map +1 -0
  91. package/dist/src/model-routing/loader.js +79 -0
  92. package/dist/src/model-routing/loader.js.map +1 -0
  93. package/dist/src/model-routing/prompts.d.ts +22 -0
  94. package/dist/src/model-routing/prompts.d.ts.map +1 -0
  95. package/dist/src/model-routing/prompts.js +87 -0
  96. package/dist/src/model-routing/prompts.js.map +1 -0
  97. package/dist/src/model-routing/resolve.d.ts +40 -0
  98. package/dist/src/model-routing/resolve.d.ts.map +1 -0
  99. package/dist/src/model-routing/resolve.js +76 -0
  100. package/dist/src/model-routing/resolve.js.map +1 -0
  101. package/dist/src/model-routing/router.d.ts +149 -0
  102. package/dist/src/model-routing/router.d.ts.map +1 -0
  103. package/dist/src/model-routing/router.js +235 -0
  104. package/dist/src/model-routing/router.js.map +1 -0
  105. package/dist/src/model-routing/step-triggers.d.ts +27 -0
  106. package/dist/src/model-routing/step-triggers.d.ts.map +1 -0
  107. package/dist/src/model-routing/step-triggers.js +20 -0
  108. package/dist/src/model-routing/step-triggers.js.map +1 -0
  109. package/dist/src/model-routing/table.d.ts +126 -0
  110. package/dist/src/model-routing/table.d.ts.map +1 -0
  111. package/dist/src/model-routing/table.js +351 -0
  112. package/dist/src/model-routing/table.js.map +1 -0
  113. package/dist/src/session/session.d.ts +40 -23
  114. package/dist/src/session/session.d.ts.map +1 -1
  115. package/dist/src/session/session.js +173 -97
  116. package/dist/src/session/session.js.map +1 -1
  117. package/dist/src/tasks/quiescence.d.ts +13 -0
  118. package/dist/src/tasks/quiescence.d.ts.map +1 -0
  119. package/dist/src/tasks/quiescence.js +11 -0
  120. package/dist/src/tasks/quiescence.js.map +1 -0
  121. package/dist/src/tasks/task-manager.d.ts +101 -0
  122. package/dist/src/tasks/task-manager.d.ts.map +1 -0
  123. package/dist/src/tasks/task-manager.js +311 -0
  124. package/dist/src/tasks/task-manager.js.map +1 -0
  125. package/dist/src/tasks/types.d.ts +85 -0
  126. package/dist/src/tasks/types.d.ts.map +1 -0
  127. package/dist/src/tasks/types.js +2 -0
  128. package/dist/src/tasks/types.js.map +1 -0
  129. package/dist/src/tui/app.d.ts +1 -1
  130. package/dist/src/tui/app.d.ts.map +1 -1
  131. package/dist/src/tui/app.js +12 -2
  132. package/dist/src/tui/app.js.map +1 -1
  133. package/dist/src/tui/initial-prompt.d.ts.map +1 -1
  134. package/dist/src/tui/initial-prompt.js +0 -3
  135. package/dist/src/tui/initial-prompt.js.map +1 -1
  136. package/dist/src/tui/session-subscription.d.ts +3 -0
  137. package/dist/src/tui/session-subscription.d.ts.map +1 -1
  138. package/dist/src/tui/session-subscription.js +29 -5
  139. package/dist/src/tui/session-subscription.js.map +1 -1
  140. package/dist/src/tui/sidebar.d.ts +3 -0
  141. package/dist/src/tui/sidebar.d.ts.map +1 -1
  142. package/dist/src/tui/sidebar.js +19 -3
  143. package/dist/src/tui/sidebar.js.map +1 -1
  144. package/dist/src/tui/slash-commands.d.ts +12 -9
  145. package/dist/src/tui/slash-commands.d.ts.map +1 -1
  146. package/dist/src/tui/slash-commands.js +48 -10
  147. package/dist/src/tui/slash-commands.js.map +1 -1
  148. package/dist/src/tui/status-controller.d.ts +14 -9
  149. package/dist/src/tui/status-controller.d.ts.map +1 -1
  150. package/dist/src/tui/status-controller.js +26 -7
  151. package/dist/src/tui/status-controller.js.map +1 -1
  152. package/dist/src/tui/task-lane-renderer.d.ts +30 -0
  153. package/dist/src/tui/task-lane-renderer.d.ts.map +1 -0
  154. package/dist/src/tui/task-lane-renderer.js +93 -0
  155. package/dist/src/tui/task-lane-renderer.js.map +1 -0
  156. package/dist/src/tui/task-tree.d.ts +47 -0
  157. package/dist/src/tui/task-tree.d.ts.map +1 -0
  158. package/dist/src/tui/task-tree.js +190 -0
  159. package/dist/src/tui/task-tree.js.map +1 -0
  160. package/dist/src/tui/tool-formatters.js +3 -0
  161. package/dist/src/tui/tool-formatters.js.map +1 -1
  162. package/dist/src/turn-runner/agent-events.d.ts.map +1 -1
  163. package/dist/src/turn-runner/agent-events.js +1 -0
  164. package/dist/src/turn-runner/agent-events.js.map +1 -1
  165. package/dist/src/turn-runner/duration.d.ts +2 -2
  166. package/dist/src/turn-runner/duration.js +3 -3
  167. package/dist/src/turn-runner/duration.js.map +1 -1
  168. package/dist/src/turn-runner/prompts.d.ts +5 -1
  169. package/dist/src/turn-runner/prompts.d.ts.map +1 -1
  170. package/dist/src/turn-runner/prompts.js +30 -6
  171. package/dist/src/turn-runner/prompts.js.map +1 -1
  172. package/dist/src/turn-runner/runtime-clock.d.ts +20 -0
  173. package/dist/src/turn-runner/runtime-clock.d.ts.map +1 -0
  174. package/dist/src/turn-runner/runtime-clock.js +38 -0
  175. package/dist/src/turn-runner/runtime-clock.js.map +1 -0
  176. package/dist/src/turn-runner/shell-state-handle.d.ts +0 -3
  177. package/dist/src/turn-runner/shell-state-handle.d.ts.map +1 -1
  178. package/dist/src/turn-runner/shell-state-handle.js +5 -55
  179. package/dist/src/turn-runner/shell-state-handle.js.map +1 -1
  180. package/dist/src/turn-runner/skill-context.d.ts +6 -7
  181. package/dist/src/turn-runner/skill-context.d.ts.map +1 -1
  182. package/dist/src/turn-runner/skill-context.js +10 -10
  183. package/dist/src/turn-runner/skill-context.js.map +1 -1
  184. package/dist/src/turn-runner/skills.d.ts.map +1 -1
  185. package/dist/src/turn-runner/skills.js +2 -22
  186. package/dist/src/turn-runner/skills.js.map +1 -1
  187. package/dist/src/turn-runner/state-compaction.d.ts +7 -5
  188. package/dist/src/turn-runner/state-compaction.d.ts.map +1 -1
  189. package/dist/src/turn-runner/state-compaction.js +69 -10
  190. package/dist/src/turn-runner/state-compaction.js.map +1 -1
  191. package/dist/src/turn-runner/state-machine-decisions.d.ts +135 -0
  192. package/dist/src/turn-runner/state-machine-decisions.d.ts.map +1 -0
  193. package/dist/src/turn-runner/state-machine-decisions.js +443 -0
  194. package/dist/src/turn-runner/state-machine-decisions.js.map +1 -0
  195. package/dist/src/turn-runner/state-machine-session.d.ts +13 -28
  196. package/dist/src/turn-runner/state-machine-session.d.ts.map +1 -1
  197. package/dist/src/turn-runner/state-machine-session.js +18 -55
  198. package/dist/src/turn-runner/state-machine-session.js.map +1 -1
  199. package/dist/src/turn-runner/subagent.d.ts +156 -0
  200. package/dist/src/turn-runner/subagent.d.ts.map +1 -0
  201. package/dist/src/turn-runner/subagent.js +164 -0
  202. package/dist/src/turn-runner/subagent.js.map +1 -0
  203. package/dist/src/turn-runner/task-tools.d.ts +76 -0
  204. package/dist/src/turn-runner/task-tools.d.ts.map +1 -0
  205. package/dist/src/turn-runner/task-tools.js +370 -0
  206. package/dist/src/turn-runner/task-tools.js.map +1 -0
  207. package/dist/src/turn-runner/tools.d.ts +65 -17
  208. package/dist/src/turn-runner/tools.d.ts.map +1 -1
  209. package/dist/src/turn-runner/tools.js +173 -59
  210. package/dist/src/turn-runner/tools.js.map +1 -1
  211. package/dist/src/turn-runner/turn-runner.d.ts +205 -135
  212. package/dist/src/turn-runner/turn-runner.d.ts.map +1 -1
  213. package/dist/src/turn-runner/turn-runner.js +1311 -714
  214. package/dist/src/turn-runner/turn-runner.js.map +1 -1
  215. package/dist/src/turn-runner/usage-accounting.d.ts +4 -0
  216. package/dist/src/turn-runner/usage-accounting.d.ts.map +1 -1
  217. package/dist/src/turn-runner/usage-accounting.js +19 -0
  218. package/dist/src/turn-runner/usage-accounting.js.map +1 -1
  219. package/dist/src/types/config.d.ts +9 -1
  220. package/dist/src/types/config.d.ts.map +1 -1
  221. package/dist/src/types/config.js +2 -1
  222. package/dist/src/types/config.js.map +1 -1
  223. package/dist/src/types/protocol.d.ts +124 -30
  224. package/dist/src/types/protocol.d.ts.map +1 -1
  225. package/dist/src/types/state-machine.d.ts +10 -12
  226. package/dist/src/types/state-machine.d.ts.map +1 -1
  227. package/dist/src/types/state-machine.js.map +1 -1
  228. package/package.json +4 -4
  229. package/dist/src/cli/model-gateway.d.ts.map +0 -1
  230. package/dist/src/cli/model-gateway.js.map +0 -1
  231. package/dist/src/turn-runner/state-machine-controller.d.ts +0 -140
  232. package/dist/src/turn-runner/state-machine-controller.d.ts.map +0 -1
  233. package/dist/src/turn-runner/state-machine-controller.js +0 -501
  234. package/dist/src/turn-runner/state-machine-controller.js.map +0 -1
  235. /package/dist/src/{cli → model-resolution}/model-gateway.d.ts +0 -0
@@ -1,4 +1,7 @@
1
1
  import type { ImageContent, TextContent, ThinkingLevel, Usage } from "@earendil-works/pi-ai";
2
+ import type { RouterSwitch } from "../model-routing/router.js";
3
+ import type { TaskDescriptor, TaskId, TaskSettlement } from "../tasks/types.js";
4
+ export type { TaskDescriptor, TaskId, TaskSettlement, TaskSnapshot } from "../tasks/types.js";
2
5
  import type { AgentSession } from "./agent.js";
3
6
  import type { ObservationalMemoryActivityEvent } from "./memory.js";
4
7
  import type { StateMachineDefinition, StateMachineSession } from "./state-machine.js";
@@ -37,8 +40,8 @@ import type { StateMachineDefinition, StateMachineSession } from "./state-machin
37
40
  * - `answer`: answer questions from the previous terminal `ask` event
38
41
  * - `wake`: resume a sleeping session for one scheduled state-machine step
39
42
  *
40
- * Each turn emits any number of during-turn events (`step`, `todos`,
41
- * `follow_up_queue`, `state_machine`, `log`). The turn ends with exactly one
43
+ * Each turn emits any number of during-turn events, including task lifecycle,
44
+ * agent steps, state snapshots, and diagnostics. The turn ends with exactly one
42
45
  * terminal event:
43
46
  * `complete`, `ask`, `interrupted`, or `sleep`.
44
47
  * Terminal events carry the turn runner-owned state needed to continue a later turn.
@@ -76,6 +79,7 @@ import type { StateMachineDefinition, StateMachineSession } from "./state-machin
76
79
  * - `step` shows textual progress, reasoning, tool calls, or system messages
77
80
  * - `todos` shows current task progress
78
81
  * - `follow_up_queue` shows prompts waiting for the current turn chain to finish
82
+ * - `task_started`, `task_output`, and `task_settled` expose task lifecycle changes
79
83
  * - `log` shows diagnostic messages
80
84
  *
81
85
  * The UI can always render `state.agent` as the conversation transcript. When it
@@ -194,6 +198,36 @@ export interface TurnState {
194
198
  * order when the runner can safely continue.
195
199
  */
196
200
  queuedCommands?: TurnCommand[];
201
+ /**
202
+ * Durable task descriptors used to reconstruct the live task set after a
203
+ * snapshot or process restart. `running` tasks hold the current process
204
+ * awake; `scheduled` tasks permit sleep until their `wakeAt`; terminal task
205
+ * statuses hold nothing open. Descriptors persist because identity,
206
+ * ownership, and lifecycle must survive hydration. Their runtime promises
207
+ * and AbortControllers are process-bound and are deliberately never stored;
208
+ * hydration marks formerly running work `lost` rather than pretending its
209
+ * executor survived.
210
+ */
211
+ tasks?: TaskDescriptor[];
212
+ /**
213
+ * Retained output captured for process-bound tasks so crash recovery can tell the
214
+ * next parent pass what each lost executor last reported. Entries use task ids as
215
+ * keys and retain at most the final three chunks, capped to their last 1,500
216
+ * characters, so recovery context cannot make the durable snapshot unbounded.
217
+ */
218
+ taskOutputTails?: Partial<Record<TaskId, string[]>>;
219
+ /**
220
+ * Lost task ids whose crash-recovery context has not yet been attached to a
221
+ * parent pass. Persisting this delivery marker prevents repeated process
222
+ * restarts from silently dropping the reminder before the parent can act on it.
223
+ */
224
+ pendingLostTaskReminderTaskIds?: TaskId[];
225
+ /**
226
+ * Numeric suffix to allocate for the next task id. Persisting the allocator
227
+ * alongside descriptors keeps ids monotonic even when terminal descriptors
228
+ * have been compacted or a process resumes from state.json.
229
+ */
230
+ nextTaskId?: number;
197
231
  /**
198
232
  * Persisted wire-shaping state. Carries the sticky eviction horizon and
199
233
  * any future wire-shaping fields across resume so a compacted session
@@ -315,6 +349,8 @@ export type TurnStep = {
315
349
  isError: boolean;
316
350
  /** Tool result content. */
317
351
  output?: (TextContent | ImageContent)[];
352
+ /** Tool-specific structured result metadata used for machine-readable outcomes. */
353
+ details?: unknown;
318
354
  } | {
319
355
  type: "system";
320
356
  message: string;
@@ -513,6 +549,12 @@ export interface TurnCompactCommand {
513
549
  type: "compact";
514
550
  }
515
551
  export type TurnRunnerCommand = TurnStartCommand | TurnCommand | TurnInterruptCommand | TurnEditFollowUpQueueCommand | TurnCompactCommand;
552
+ /** RPC transport envelope for commands whose delivery must be correlated. */
553
+ export type RpcTurnCommand = TurnCommand & {
554
+ requestId: string;
555
+ };
556
+ /** Commands accepted by the newline-delimited RPC transport. */
557
+ export type RpcRunnerCommand = TurnStartCommand | RpcTurnCommand | TurnInterruptCommand | TurnEditFollowUpQueueCommand | TurnCompactCommand;
516
558
  /** A system-prompt file that was resolved on disk for the session. */
517
559
  export interface TurnAgentFile {
518
560
  /** Configured file name relative to the working directory, e.g. "AGENTS.md". */
@@ -529,22 +571,57 @@ export interface TurnStepEvent {
529
571
  type: "step";
530
572
  step: TurnStep;
531
573
  /**
532
- * Set when the step originated from a state-machine agent state. Absent
533
- * for steps produced by the parent turn runner. Subscribers use this
534
- * to attribute steps to the correct agent without inferring from
535
- * interleaving order.
574
+ * Set when a task-backed subagent produced the step. Absent for the parent
575
+ * agent; correlate `taskId` with `task_started` for its name and role.
536
576
  */
537
577
  origin?: TurnEventOrigin;
538
578
  }
579
+ /** Identifies the task runtime that produced a non-parent event. */
580
+ export interface TurnEventOrigin {
581
+ /** Stable identity shared by spawned and state-machine subagents. */
582
+ taskId: TaskId;
583
+ }
584
+ /** Emitted once after a task id is allocated and its descriptor becomes observable. */
585
+ export interface TurnTaskStartedEvent {
586
+ type: "task_started";
587
+ /** Full durable descriptor at task start. */
588
+ task: TaskDescriptor;
589
+ /** Present when another task runtime caused this lifecycle change. */
590
+ origin?: TurnEventOrigin;
591
+ }
592
+ /** Emitted for one newly appended task-output chunk while the turn remains open. */
593
+ export interface TurnTaskOutputEvent {
594
+ type: "task_output";
595
+ taskId: TaskId;
596
+ /**
597
+ * Delta output only; consumers append chunks in event order. This is not a
598
+ * cumulative replay. Late attach and explicit task_output requests obtain
599
+ * the cumulative buffered snapshot from TaskManager instead.
600
+ */
601
+ chunk: string;
602
+ /** Present when another task runtime caused this lifecycle change. */
603
+ origin?: TurnEventOrigin;
604
+ }
605
+ /** Emitted once when a task reaches a terminal lifecycle status. */
606
+ export interface TurnTaskSettledEvent {
607
+ type: "task_settled";
608
+ /** Terminal value, including whether work completed, failed, stopped, or was lost. */
609
+ settlement: TaskSettlement;
610
+ /** Present when another task runtime caused this lifecycle change. */
611
+ origin?: TurnEventOrigin;
612
+ }
539
613
  /**
540
- * Identifies which agent produced an event. Today the only non-parent
541
- * origin is a state-machine agent state; the `state` field is the
542
- * `StateMachineAgentState.name` that was running when the event fired.
614
+ * RPC transport liveness signal emitted while in-process tasks keep a turn
615
+ * open. It is transport telemetry rather than model activity: runners do not
616
+ * add it to agent transcripts, routing observations, or memory.
543
617
  */
544
- export type TurnEventOrigin = {
545
- kind: "state_machine_agent";
546
- state: string;
547
- };
618
+ export interface TurnHeartbeatEvent {
619
+ type: "heartbeat";
620
+ /** Timestamp from the RPC transport's runtime clock. */
621
+ timestamp: number;
622
+ /** Running task ids that currently require the RPC process to stay awake. */
623
+ activeTaskIds: TaskId[];
624
+ }
548
625
  export interface TurnTodosEvent {
549
626
  type: "todos";
550
627
  todos: TurnTodo[];
@@ -616,10 +693,10 @@ export interface TurnContextWindowUsage {
616
693
  * context bar.
617
694
  *
618
695
  * Two distinct token totals are reported:
619
- * - `turnUsage` is a per-turn aggregate across every LLM call (parent
620
- * worker + every state agent). Use it for cost accounting and "what
621
- * did this turn cost" readouts. It is not comparable to
622
- * `effectiveContextWindow` because the cap is per-request.
696
+ * - `turnUsage` is a per-turn aggregate across every metered LLM call
697
+ * (parent worker, state agents, classifier, advisor, and memory workers).
698
+ * Use it for cost accounting and "what did this turn cost" readouts. It is
699
+ * not comparable to `effectiveContextWindow` because the cap is per-request.
623
700
  * - `lastMessageUsage` is the exact provider-reported usage of the
624
701
  * most recent parent assistant message. Use it for context-window
625
702
  * pressure surfaces ("X / cap"): `lastMessageUsage.totalTokens` is
@@ -629,9 +706,9 @@ export interface TurnContextWindowUsage {
629
706
  */
630
707
  export interface TurnUsageFields {
631
708
  /**
632
- * Running turn aggregate: the sum of every assistant `usage` recorded so
633
- * far in this turn (parent worker calls plus every state-agent that has
634
- * finished). Always cumulative; never a single-message delta.
709
+ * Running turn aggregate: the sum of every model `usage` recorded so far in
710
+ * this turn, including parent, state-agent, classifier, advisor, and memory
711
+ * calls. Always cumulative; never a single-call delta.
635
712
  */
636
713
  turnUsage: TurnTokenUsage;
637
714
  /**
@@ -644,9 +721,9 @@ export interface TurnUsageFields {
644
721
  usageByModel: ModelUsageEntry[];
645
722
  /**
646
723
  * Provider-reported usage from the latest parent assistant message.
647
- * Refreshed on every parent `message_end` and held stable while only
648
- * state agents advance `turnUsage`. This is the accurate number to
649
- * display against `effectiveContextWindow` — it reflects exactly what
724
+ * Refreshed on every parent `message_end` and held stable while only state
725
+ * agents or auxiliary calls advance `turnUsage`. This is the accurate number
726
+ * to display against `effectiveContextWindow` — it reflects exactly what
650
727
  * the API counted on the most recent parent call (`input` is fresh
651
728
  * input, `cacheRead` + `cacheWrite` are the cache hits/writes, and
652
729
  * `totalTokens` is their sum plus `output`).
@@ -685,16 +762,15 @@ export interface ModelUsageEntry {
685
762
  usage: TurnTokenUsage;
686
763
  }
687
764
  /**
688
- * Emitted after every parent assistant `message_end` and after every
689
- * state-agent finishes. Carries the running turn aggregate so consumers see
690
- * cost tick mid-turn even when no terminal event has landed yet.
765
+ * Emitted after a parent context snapshot exists and metered usage advances.
766
+ * `turnUsage` includes every recorded parent, state-agent, classifier, advisor,
767
+ * and memory call; the context fields remain scoped to the latest parent call.
691
768
  */
692
769
  export interface TurnUsageEvent extends TurnUsageFields {
693
770
  type: "usage";
694
771
  /**
695
- * Set when this usage tick was emitted at a state-agent boundary.
696
- * Absent for parent-driven ticks (worker finish, terminal aggregate)
697
- * so consumers can split running cost by agent if they want to.
772
+ * Set when this usage tick was emitted at a task-backed subagent boundary.
773
+ * Absent for parent-driven ticks so consumers can attribute running cost.
698
774
  */
699
775
  origin?: TurnEventOrigin;
700
776
  }
@@ -731,9 +807,27 @@ export interface TurnSystemEvent {
731
807
  level: "debug" | "info" | "warn" | "error";
732
808
  message: string;
733
809
  }
810
+ /**
811
+ * A concrete model or reasoning-effort change selected by a virtual-model
812
+ * router. Derived from the router's own switch shape so the two can never
813
+ * drift — the runner emits `{ type: "router_switch", ...switched }`.
814
+ */
815
+ export interface TurnRouterSwitchEvent extends RouterSwitch {
816
+ type: "router_switch";
817
+ /** Present only if a future independently-routed child agent emits the switch. */
818
+ origin?: TurnEventOrigin;
819
+ }
734
820
  /** Events emitted while the runner is still working on the current turn. */
735
- export type TurnDuringEvent = TurnStepEvent | TurnTodosEvent | TurnFollowUpQueueEvent | TurnStateMachineEvent | TurnMemoryEvent | TurnUsageEvent | TurnSystemEvent;
821
+ export type TurnDuringEvent = TurnStepEvent | TurnHeartbeatEvent | TurnTaskStartedEvent | TurnTaskOutputEvent | TurnTaskSettledEvent | TurnTodosEvent | TurnFollowUpQueueEvent | TurnStateMachineEvent | TurnMemoryEvent | TurnUsageEvent | TurnSystemEvent | TurnRouterSwitchEvent;
736
822
  /** Events that end the current turn. */
737
823
  export type TurnTerminalEvent = TurnAskEvent | TurnCompletedEvent | TurnInterruptedEvent | TurnSleepEvent;
738
824
  export type TurnEvent = TurnStartedEvent | TurnDuringEvent | TurnTerminalEvent;
825
+ /** RPC-only delivery receipt; runner subscribers never observe this event. */
826
+ export interface RpcCommandAcceptedEvent {
827
+ type: "command_accepted";
828
+ requestId: string;
829
+ commandType: RpcTurnCommand["type"];
830
+ }
831
+ /** Complete newline-delimited output union for `duet --rpc`. */
832
+ export type RpcEvent = TurnEvent | RpcCommandAcceptedEvent;
739
833
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/types/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/types/protocol.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import type { ThinkingLevel } from "@earendil-works/pi-ai";
2
- import type { TurnQuestion } from "./protocol.js";
3
2
  export declare const INTERRUPTED_STATE_MACHINE_STATE = "interrupted";
4
3
  /**
5
4
  * Durable state-machine definitions and runtime state.
@@ -111,10 +110,10 @@ export declare const INTERRUPTED_STATE_MACHINE_STATE = "interrupted";
111
110
  * says prior work already happened, such as "I've already sent email, just wait
112
111
  * for response." The runner injects the original prompt and relevant history
113
112
  * automatically when constructing agent prompts; state definitions only describe
114
- * their own behavior. Human input is not a separate state-machine state: if the
115
- * current state is an agent state and the runner state is waiting_for_human, the
116
- * state machine is waiting for that agent's user input. Polling remains explicit
117
- * because the runner owns one poll attempt and emits sleep until the next attempt.
113
+ * their own behavior. Human input is parent-owned: the machine parks without
114
+ * executing work, and the parent asks any question needed to leave that park.
115
+ * Polling remains explicit because the runner owns one poll attempt and emits
116
+ * sleep until the next attempt.
118
117
  *
119
118
  * Example of templated script commands:
120
119
  *
@@ -203,7 +202,7 @@ export interface StateMachineSession {
203
202
  *
204
203
  * The flag is per-session: it prevents the same `session.terminal`
205
204
  * from being re-acknowledged if the parent re-routes back into the
206
- * controller during the acknowledgment turn. A new state machine
205
+ * turn loop during the acknowledgment pass. A new state machine
207
206
  * created during the acknowledgment turn lives on a fresh session
208
207
  * built by `createStateMachineSession` and gets its own
209
208
  * acknowledgment when it terminates.
@@ -212,7 +211,7 @@ export interface StateMachineSession {
212
211
  createdAt: number;
213
212
  updatedAt: number;
214
213
  }
215
- export type StateMachineState = StateMachineAgentState | StateMachineScriptState | StateMachinePollState | StateMachineTimerState | StateMachineTerminalState;
214
+ export type StateMachineState = StateMachineAgentState | StateMachineScriptState | StateMachinePollState | StateMachineTimerState | StateMachineParkState | StateMachineTerminalState;
216
215
  export interface StateMachineProgress {
217
216
  /** Per-state counters keyed by state name for compact status reporting. */
218
217
  states: Record<string, StateMachineStateProgress>;
@@ -383,6 +382,10 @@ export interface StateMachineTimerState extends StateMachineBaseState {
383
382
  */
384
383
  wakeAfterMs?: number | string;
385
384
  }
385
+ /** Holds the machine without execution or a scheduled wake while the parent drives. */
386
+ export interface StateMachineParkState extends StateMachineBaseState {
387
+ kind: "park";
388
+ }
386
389
  /** Finalizes the session when reached. Terminal outcomes are just state machine states. */
387
390
  export interface StateMachineTerminalState extends StateMachineBaseState {
388
391
  kind: "terminal";
@@ -445,11 +448,6 @@ export type StateMachineSessionEvent = {
445
448
  stdout: string;
446
449
  stderr: string;
447
450
  };
448
- } | {
449
- type: "state_asked_user";
450
- timestamp: number;
451
- state: string;
452
- questions: TurnQuestion[];
453
451
  } | {
454
452
  type: "state_definition_updated";
455
453
  timestamp: number;
@@ -1 +1 @@
1
- {"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../../../src/types/state-machine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../../../src/types/state-machine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../../src/types/state-machine.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,+BAA+B,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../../src/types/state-machine.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,+BAA+B,GAAG,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duetso/agent",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "An opinionated full-stack agent turn runner with native memories, interrupts, and multi-agent orchestration",
5
5
  "keywords": [
6
6
  "agent",
@@ -56,9 +56,9 @@
56
56
  "build:compile": "bun build src/cli-entry.ts --compile --outfile dist/duet"
57
57
  },
58
58
  "dependencies": {
59
- "@earendil-works/pi-agent-core": "^0.79.9",
60
- "@earendil-works/pi-ai": "^0.79.9",
61
- "@earendil-works/pi-coding-agent": "^0.79.9",
59
+ "@earendil-works/pi-agent-core": "^0.79.10",
60
+ "@earendil-works/pi-ai": "^0.79.10",
61
+ "@earendil-works/pi-coding-agent": "^0.79.10",
62
62
  "@electric-sql/pglite": "^0.4.5",
63
63
  "@modelcontextprotocol/sdk": "^1.29.0",
64
64
  "@opentui/core": "^0.2.5",
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-gateway.d.ts","sourceRoot":"","sources":["../../../src/cli/model-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGnC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAM/C,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,OAAO,GACP,OAAO,GACP,WAAW,GACX,UAAU,GACV,WAAW,GACX,QAAQ,GACR,eAAe,CAAC;AAEpB;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CAAC,OAAO,aAAa,CAAC,CAazE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAazE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-gateway.js","sourceRoot":"","sources":["../../../src/cli/model-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE/C,6EAA6E;AAC7E,wEAAwE;AACxE,MAAM,qBAAqB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAa7C;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB;IACpC,0EAA0E;IAC1E,yDAAyD;IACzD,MAAM,gBAAgB,GAAiB,MAAM,CAAC,MAAM,CAClD,CAAC,KAAkC,EAAE,IAAkC,EAAE,EAAE,CACzE,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAC/E,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CACjC,CAAC;IACF,OAAO,aAAa,CAAC;QACnB,OAAO,EAAE,GAAG,qBAAqB,EAAE,QAAQ;QAC3C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACrC,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,qBAAqB,EAAE,YAAY,EAAE;QACnE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,EAAE;KAC5E,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsD,CAAC;IAC1F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,140 +0,0 @@
1
- import type { TurnQuestion } from "../types/protocol.js";
2
- import type { StateMachineAgentState, StateMachineDefinition, StateMachineSession, StateMachineTerminalResult } from "../types/state-machine.js";
3
- import { type ShellPartialOutput } from "./shell-state-handle.js";
4
- import { type StateMachineRunnerDecision } from "./tools.js";
5
- export type StateMachineExecutionResult = {
6
- type: "state_completed";
7
- stateName: string;
8
- output?: unknown;
9
- } | {
10
- type: "terminal";
11
- status: StateMachineTerminalResult["status"];
12
- result?: string;
13
- error?: string;
14
- } | {
15
- type: "ask";
16
- questions: TurnQuestion[];
17
- } | {
18
- type: "sleep";
19
- wakeAt: number;
20
- } | {
21
- type: "interrupted";
22
- };
23
- export type StateAgentResult = {
24
- type: "complete";
25
- result?: string;
26
- } | {
27
- type: "ask";
28
- questions: TurnQuestion[];
29
- } | {
30
- type: "failed";
31
- error: string;
32
- } | {
33
- type: "interrupted";
34
- };
35
- export interface StateAgentHandle {
36
- /** Starts the state agent from a fresh transcript owned by the host. */
37
- prompt(): Promise<StateAgentResult>;
38
- /**
39
- * Abort the state agent and remember why. The handle is responsible for
40
- * making `prompt()` settle as `{ type: "interrupted" }` after this is
41
- * called — callers do not classify the abort themselves.
42
- */
43
- interrupt(reason: string): void;
44
- /** Text-only partial output used for interruption history without persisting messages. */
45
- partialAssistantText(): string | undefined;
46
- /** The reason passed to `interrupt()`, or undefined if not interrupted. */
47
- interruptedReason(): string | undefined;
48
- }
49
- export type ActiveStateOutput = {
50
- state?: string;
51
- kind: "agent";
52
- output?: {
53
- assistantText?: string;
54
- };
55
- } | {
56
- state: string;
57
- kind: "script" | "poll";
58
- output?: ShellPartialOutput;
59
- };
60
- export interface StateMachineControllerConfig {
61
- /** Default working directory used by script and poll-script states. */
62
- cwd: string;
63
- /** Builds a fresh transient state-agent handle for one agent state execution. */
64
- createStateAgent(input: {
65
- state: StateMachineAgentState;
66
- prompt: string;
67
- }): StateAgentHandle;
68
- /**
69
- * Notified whenever the controller has updated `session` and the new
70
- * snapshot is worth broadcasting (state started, terminal reached).
71
- * The turn runner uses this to emit `state_machine` protocol events
72
- * carrying the full session, so UIs see fresh progress and current
73
- * state before the new state begins executing.
74
- */
75
- onSessionChanged?(session: StateMachineSession): void;
76
- }
77
- export declare class StateMachineController {
78
- private readonly config;
79
- private session?;
80
- private activeRun?;
81
- constructor(config: StateMachineControllerConfig);
82
- hydrate(stateMachine: StateMachineSession | undefined): void;
83
- getSession(): StateMachineSession | undefined;
84
- /**
85
- * Mark the current terminal as having been surfaced to the parent
86
- * runner. The turn runner sets this flag before kicking off the
87
- * inline acknowledgment turn so the same `session.terminal` cannot
88
- * be acknowledged twice — if the parent (mis)routes back into the
89
- * controller during the acknowledgment turn and the controller
90
- * re-records a terminal on this same session, the second drive will
91
- * find the flag set and skip.
92
- *
93
- * Note that this flag is per-session: a new state machine created
94
- * during the acknowledgment turn lives on a brand-new session built
95
- * by `createStateMachineSession`, so it gets its own acknowledgment
96
- * when it terminates.
97
- */
98
- markTerminalAcknowledged(): void;
99
- /**
100
- * Records a runtime failure on the active session and returns the matching
101
- * `error` terminal. Used by the turn runner when a protocol violation cannot
102
- * be recovered (e.g. the parent exhausted its re-prompt budget without
103
- * calling select_state_machine_state). Recording it here — rather than
104
- * returning a terminal the runner never persists — keeps the failure on
105
- * `session.terminal.reason` so the terminal acknowledgment turn and the
106
- * board/relay see the same outcome the turn event reports.
107
- */
108
- failActiveSession(state: string, error: string): StateMachineExecutionResult;
109
- hasActiveWork(): boolean;
110
- getActiveOutput(): ActiveStateOutput | undefined;
111
- startSession(input: {
112
- prompt: string;
113
- definition: StateMachineDefinition;
114
- currentState: string;
115
- }): void;
116
- /**
117
- * Supersedes the active session because the parent is replacing it with a
118
- * brand-new state machine (a create_state_machine_definition with
119
- * replaceActive: true issued while a machine is still running). Records a
120
- * `cancelled` terminal and broadcasts the final snapshot so the superseded
121
- * machine's board/relay card resolves instead of dangling at its last running
122
- * state; the caller follows with `startSession` to install the replacement.
123
- * Any in-flight state work is aborted first. No-op when there is no active,
124
- * non-terminal session.
125
- */
126
- supersedeActiveSession(reason: string): void;
127
- interrupt(reason?: string): void;
128
- runDecision(decision: StateMachineRunnerDecision): Promise<StateMachineExecutionResult>;
129
- wake(): Promise<StateMachineExecutionResult | undefined>;
130
- private runAgentState;
131
- private runScriptState;
132
- private runPollState;
133
- private runTimerState;
134
- private runTerminalState;
135
- private recordInterruptedState;
136
- private interruptedOutput;
137
- private interruptibleStateName;
138
- private requireSession;
139
- }
140
- //# sourceMappingURL=state-machine-controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-machine-controller.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/state-machine-controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EAGtB,mBAAmB,EACnB,0BAA0B,EAG3B,MAAM,2BAA2B,CAAC;AAqBnC,OAAO,EAOL,KAAK,kBAAkB,EAExB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAuC,KAAK,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAElG,MAAM,MAAM,2BAA2B,GACnC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAChE;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,YAAY,EAAE,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,YAAY,EAAE,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACpC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,0FAA0F;IAC1F,oBAAoB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC3C,2EAA2E;IAC3E,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACtE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAAE,CAAC;AA8B5E,MAAM,WAAW,4BAA4B;IAC3C,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,gBAAgB,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,sBAAsB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,CAAC;IAC7F;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACvD;AAED,qBAAa,sBAAsB;IAIrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,OAAO,CAAC,CAAsB;IACtC,OAAO,CAAC,SAAS,CAAC,CAAiB;gBAEN,MAAM,EAAE,4BAA4B;IAEjE,OAAO,CAAC,YAAY,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI;IAI5D,UAAU,IAAI,mBAAmB,GAAG,SAAS;IAI7C;;;;;;;;;;;;;OAaG;IACH,wBAAwB,IAAI,IAAI;IAShC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,2BAA2B;IAK5E,aAAa,IAAI,OAAO;IAIxB,eAAe,IAAI,iBAAiB,GAAG,SAAS;IAqBhD,YAAY,CAAC,KAAK,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,sBAAsB,CAAC;QACnC,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI;IAIR;;;;;;;;;OASG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAgB5C,SAAS,CAAC,MAAM,SAAgB,GAAG,IAAI;IAqBjC,WAAW,CAAC,QAAQ,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IA6EvF,IAAI,IAAI,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;YAMhD,aAAa;YAmCb,cAAc;YAqCd,YAAY;IA0D1B,OAAO,CAAC,aAAa;YAeP,gBAAgB;IAc9B,OAAO,CAAC,sBAAsB;IA8B9B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,cAAc;CAMvB"}