@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
@@ -53,6 +53,7 @@ export function createAgentEventTranslator() {
53
53
  input,
54
54
  isError: event.isError,
55
55
  output: event.result?.content,
56
+ details: event.result?.details,
56
57
  },
57
58
  },
58
59
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"agent-events.js","sourceRoot":"","sources":["../../../src/turn-runner/agent-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-events.js","sourceRoot":"","sources":["../../../src/turn-runner/agent-events.ts"],"names":[],"mappings":"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"}
@@ -27,9 +27,9 @@ export declare function parseDurationToMs(value: unknown, label: string): number
27
27
  export declare function parseWakeAtToMs(value: unknown, label: string): number;
28
28
  /**
29
29
  * Best-effort wake-time fallback used by sleep-event replay paths that lack
30
- * controller context. Returns `Date.now()` when the underlying value cannot be
30
+ * turn-loop context. Returns `Date.now()` when the underlying value cannot be
31
31
  * parsed instead of throwing, because these callers are reconstructing UI
32
- * banners rather than enforcing schedule validity (the controller path runs
32
+ * banners rather than enforcing schedule validity (the turn-loop path runs
33
33
  * its own strict parsing on every state entry).
34
34
  */
35
35
  export declare function scheduledStateFallbackWakeAt(state: StateMachinePollState | StateMachineTimerState | undefined): number;
@@ -65,9 +65,9 @@ export function parseWakeAtToMs(value, label) {
65
65
  }
66
66
  /**
67
67
  * Best-effort wake-time fallback used by sleep-event replay paths that lack
68
- * controller context. Returns `Date.now()` when the underlying value cannot be
68
+ * turn-loop context. Returns `Date.now()` when the underlying value cannot be
69
69
  * parsed instead of throwing, because these callers are reconstructing UI
70
- * banners rather than enforcing schedule validity (the controller path runs
70
+ * banners rather than enforcing schedule validity (the turn-loop path runs
71
71
  * its own strict parsing on every state entry).
72
72
  */
73
73
  export function scheduledStateFallbackWakeAt(state) {
@@ -85,7 +85,7 @@ export function scheduledStateFallbackWakeAt(state) {
85
85
  }
86
86
  }
87
87
  catch {
88
- // Fall through to Date.now() — the strict path on the controller will
88
+ // Fall through to Date.now() — the strict path in the turn loop will
89
89
  // surface the real error when the state is next entered.
90
90
  }
91
91
  return Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/turn-runner/duration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/turn-runner/duration.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Skill } from "@earendil-works/pi-coding-agent";
2
2
  import type { TurnRunnerConfig } from "../types/config.js";
3
- import type { TurnMode, TurnState } from "../types/protocol.js";
3
+ import type { TurnMode, TurnQuestion, TurnState } from "../types/protocol.js";
4
4
  import type { StateMachineDefinition } from "../types/state-machine.js";
5
5
  export declare function createSystemPromptWithAppendedLayers(input: {
6
6
  config: TurnRunnerConfig;
@@ -48,6 +48,10 @@ export declare function createStateAgentSystemPromptLayer(context?: {
48
48
  * byte-identical to the parent's and preserves the provider prompt-cache prefix.
49
49
  */
50
50
  export declare function createForkContextReminder(): string;
51
+ /** Keep an ask from becoming a terminal while process-bound work is still live. */
52
+ export declare function withheldAskReminder(questions: readonly TurnQuestion[]): string;
53
+ /** Binding reminder attached wherever a parent turn enters or remains in a park. */
54
+ export declare function parkNudge(stateName: string): string;
51
55
  export declare function createStateMachineSystemPromptLayer(input: {
52
56
  mode: TurnMode;
53
57
  session?: TurnState;
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAkCxE,wBAAgB,oCAAoC,CAAC,KAAK,EAAE;IAC1D,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAG5B,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEpC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACnC,GAAG,MAAM,CAaT;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,CAAC,EAAE;IAC1D,UAAU,EAAE,sBAAsB,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAaT;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAMlD;AA2CD,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,GAAG,MAAM,CA0CT;AAED;;;;;;;;;GASG;AACH,wBAAgB,mCAAmC,IAAI,MAAM,CAW5D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oCAAoC,IAAI,MAAM,CAS7D"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAI7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAiCxE,wBAAgB,oCAAoC,CAAC,KAAK,EAAE;IAC1D,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAG5B,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEpC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACnC,GAAG,MAAM,CAaT;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,CAAC,EAAE;IAC1D,UAAU,EAAE,sBAAsB,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAaT;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAMlD;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CAY9E;AAED,oFAAoF;AACpF,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQnD;AA2CD,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,GAAG,MAAM,CA0CT;AAED;;;;;;;;;GASG;AACH,wBAAgB,mCAAmC,IAAI,MAAM,CAW5D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oCAAoC,IAAI,MAAM,CAS7D"}
@@ -1,6 +1,6 @@
1
1
  import dedent from "dedent";
2
+ import { systemReminder } from "../lib/system-reminder.js";
2
3
  import { toXML } from "../lib/xml.js";
3
- import { DEFAULT_BASH_TIMEOUT_SECONDS } from "./tools.js";
4
4
  function cwdSystemPrompt(cwd) {
5
5
  return dedent `
6
6
  <cwd>
@@ -26,7 +26,7 @@ const TOOL_EXECUTION_SYSTEM_PROMPT = dedent `
26
26
  </use_parallel_tool_calls>
27
27
 
28
28
  <bash_timeout>
29
- Bash commands run with a default timeout of ${DEFAULT_BASH_TIMEOUT_SECONDS} seconds (${Math.round(DEFAULT_BASH_TIMEOUT_SECONDS / 60)} minutes); commands that exceed it are killed and reported as timed out. Scope commands so they finish well under that prefer narrow searches (e.g. \`rg\` inside the repo) over filesystem-wide walks like \`find /\`. When a command genuinely needs longer (long builds, test suites, package installs), pass an explicit \`timeout\` argument in seconds sized to the expected runtime.
29
+ Bash commands are task-backed. The optional \`timeout\` argument is a foreground wait budget in seconds: when it expires, the command keeps running in the background and you receive a task id. It never kills the command. Use \`run_in_background\` to return immediately, \`task_output\` to inspect or wait for a task, and \`task_stop\` to stop one explicitly. Scope commands carefully only task_stop, interrupt, or scope closure aborts their process groups.
30
30
  </bash_timeout>
31
31
  `;
32
32
  export function createSystemPromptWithAppendedLayers(input) {
@@ -91,11 +91,35 @@ export function createStateAgentSystemPromptLayer(context) {
91
91
  * byte-identical to the parent's and preserves the provider prompt-cache prefix.
92
92
  */
93
93
  export function createForkContextReminder() {
94
- return dedent `
94
+ return systemReminder(dedent `
95
95
  <system-reminder>
96
96
  The conversation above is a copy of the parent (orchestrator) agent's transcript, handed to you only as background context. You are NOT the parent agent and you are not continuing that conversation — you are now a fresh sub-agent running a single state of the state machine. Read the transcript above as reference material about what has happened; do not treat its last message as something you just said or were about to answer. Your one task is the instruction that follows this reminder. Do that task, report what you did and found, and remember you cannot select or route to other states — the orchestrator does that after reading your report.
97
97
  </system-reminder>
98
- `;
98
+ `);
99
+ }
100
+ /** Keep an ask from becoming a terminal while process-bound work is still live. */
101
+ export function withheldAskReminder(questions) {
102
+ const summary = questions.map((question) => `- ${question.question}`).join("\n");
103
+ return systemReminder(dedent `
104
+ Earlier this turn you called ask_user_question, but the question was NOT
105
+ delivered to the user because background tasks were still running:
106
+
107
+ ${summary}
108
+
109
+ Those tasks have now settled (details in this message). If the question is
110
+ still relevant, ask it again now; if the settlements answered it, continue
111
+ without asking.
112
+ `);
113
+ }
114
+ /** Binding reminder attached wherever a parent turn enters or remains in a park. */
115
+ export function parkNudge(stateName) {
116
+ return systemReminder(dedent `
117
+ <system-reminder>
118
+ The state machine is parked at "${stateName}". If the purpose of this
119
+ park is fulfilled, select the next state with select_state_machine_state; otherwise
120
+ you may end your turn and the machine stays parked.
121
+ </system-reminder>
122
+ `);
99
123
  }
100
124
  /**
101
125
  * Situates the sub-agent inside the larger state machine so it scopes its work
@@ -159,8 +183,8 @@ export function createStateMachineSystemPromptLayer(input) {
159
183
  "The user sees only your messages — never a sub-agent's output, the files it touched, values it computed, or findings it returned. Whenever a state produces something the user should see (a summary, path, number, artifact, result), restate it yourself in plain text; never tell the user to \"see the sub-agent's output\". On the wake turn after a state completes, post any user-facing artifact it produced, then call select_state_machine_state to advance.",
160
184
  "By default each agent state starts fresh: it sees only the prompt and the input you pass, not the prior state's transcript or output. Carry forward everything the next state needs — file paths, IDs, errors, decisions, summaries — via `input` (when its inputSchema has matching fields) or `override.prompt`. A static \"using the findings from the previous step\" means nothing to a fresh sub-agent. The working directory is the most-missed case: whenever a state works anywhere other than the session cwd (a worktree, clone, sub-package, or scratch dir from an earlier state, whose path usually comes from a prior state's output), set that path as the state's cwd — `override.cwd` for agent states, `cwd` for script/poll. A relative cwd resolves against the session working directory shown in the `<cwd>` block; prefer an absolute path for a worktree or clone that lives outside it. Never just write \"cd into /path\" in the prompt: the sub-agent's tools start in the cwd you set, not where the prompt points, so a narrated path leaves the tools in the wrong tree. When a state genuinely needs the parent thread's prior discussion or decisions that would be lossy to restate, set `forkContext: true` on that agent state so the sub-agent starts with a copy of the parent's context instead of an empty transcript; this is an opt-in per state, not a replacement for explicit carry-forward, and it copies the full parent transcript so leave it off for self-contained tasks.",
161
185
  'A sub-agent\'s result is a claim, not truth — it may hallucinate success, skip steps, swallow errors, or report itself lost. Before transitioning, verify: read the files it claims to have changed, run the build/test/lint it claims passed, confirm any IDs, paths, or counts. If it is wrong or unverifiable, re-select the same state with a corrected `override.prompt` or pick a different state — do not propagate an unverified claim into the next prompt or relay it as finished work. Avoid the opposite error too: a self-deprecating result ("nothing to do here", "I ran with no task", "I don\'t see a request") is a claim about the sub-agent\'s confusion, not proof the state did not run. The runner recorded the state as executed the moment you selected it. So never cancel the machine, route to a cancel/failed terminal, or hand back to the user as if nothing ran on the strength of such prose alone — call get_current_state_machine_state, confirm the state executed, then advance to the next real state (carrying forward what you know) or re-run it with a corrected prompt. And when the user contradicts something you relayed ("it didn\'t work", "that file isn\'t there"), the user is right and the sub-agent was wrong — do not make excuses or take over the work manually; restart via create_state_machine_definition with a tuned prompt that prevents the same hallucination.',
162
- 'Poll vs timer vs human gate. A poll runs a recurring command and must set intervalMs; its command must exit success ONLY when the awaited condition is actually met — intervalMs only spaces out non-success re-checks, so an `echo`/always-exit-0 command reads as "done" every tick and hot-loops instead of waiting. A timer uses wakeAt (absolute) or wakeAfterMs (relative) for a single future wake. Schedule fields accept strings like "3h"/"5d" or ISO 8601 timestamps. A human approval or reply is an event, not a pollable condition — never gate it with a poll. Use an agent state that calls ask_user_question: it is the only primitive that both shows the user the prompt and suspends the state until they answer (a state that just posts text and stops leaves the user with nothing, since state text is invisible to them). The answer comes back to you and YOU route to the matching next state the asking sub-agent does not. Poll intervalMs and timer wakes must be at least 15 minutes; for anything shorter, do the wait in your own turn.',
163
- 'Re-selecting a state is never how you wait. Every select_state_machine_state call runs the named state immediately and returns — there is no "idle" or "hold" selection. The only things that actually suspend the machine are an agent state that calls ask_user_question (until the user answers), a timer (until its wake time), and a poll (until its command finally exits success). So once the right wait is set up — most often asking the user a question STOP: end your turn and let control return to the user. Do not re-select the same "holding" state again and again to keep it alive; the machine is already suspended on the open question, so the re-selection is a no-op hot loop that just re-runs the state. When the user sends an unrelated or redirecting message while a gate is open, answer it in plain text and end the turn do not re-select the gate to "re-park" it. Call select_state_machine_state again only when you have a real transition to make: the user answered (route on their answer), a checkable condition changed, or you are deliberately re-running a state with a corrected override.prompt to fix a verified failure.',
186
+ 'Poll vs timer vs human gate. A poll runs a recurring command and must set intervalMs; its command must exit success ONLY when the awaited condition is actually met — intervalMs only spaces out non-success re-checks, so an `echo`/always-exit-0 command reads as "done" every tick and hot-loops instead of waiting. A timer uses wakeAt (absolute) or wakeAfterMs (relative) for a single future wake. Schedule fields accept strings like "3h"/"5d" or ISO 8601 timestamps. A human approval or reply is an event, not a pollable condition — never gate it with a poll and never delegate the question to a state agent. Select a park state, ask the user yourself with ask_user_question, and route their later answer to the matching next state. PARK is the human-gate primitive: it holds the machine without execution or a scheduled wake while the parent remains responsible for the conversation. Poll intervalMs and timer wakes must be at least 15 minutes; for anything shorter, do the wait in your own turn.',
187
+ "Re-selecting the SAME park state is legal and keeps the machine parked without running work. Once a park is selected, ask or converse with the user as needed and end the turn; the machine stays parked until you select a different state. Agent and script states still run immediately whenever selected, so never re-select one as an idle or holding loop. Use a poll for a checkable condition and a timer for a fixed future time. Call select_state_machine_state when the park purpose is fulfilled, a condition changed, or you are deliberately re-running executable work with a corrected override.prompt.",
164
188
  'Any wait-then-do promise — "I\'ll wait N minutes then X", "after CI finishes I\'ll triage Z", "I\'ll keep an eye on Q" — must be backed by a timer or poll state with a follow-up state that does the work; a pure-agent machine runs immediately and skips the wait. Set up the sleeping primitive before the turn ends, or do not make the promise.',
165
189
  'While states run in the background the user can keep messaging you, and you reply without waiting for the machine. Only call select_state_machine_state when the user actually wants to redirect the running work — selecting a state while another runs replaces it, so use the same state with updated input or a different state. Answer questions, status checks ("have you done X?", "is it running?"), and side conversations in plain text, including any artifacts the user has not seen yet. A "steer" message interrupts you immediately (for redirects or time-sensitive input); a "follow_up" is queued until your turn settles.',
166
190
  "State prompts and script commands may use templates like {{ input.email }}; add inputSchema to states that need them and pass matching input when selecting that state.",
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/turn-runner/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/turn-runner/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export type CancelScheduled = () => void;
2
+ /** Wall-time operations used by task and scheduled-state lifecycles. */
3
+ export interface RuntimeClock {
4
+ /** Return the current Unix-epoch timestamp in milliseconds. */
5
+ now(): number;
6
+ /** Resolve after `ms`, or reject with the abort reason when `signal` aborts first. */
7
+ sleep(ms: number, signal?: AbortSignal): Promise<void>;
8
+ /** Run `callback` once after `delayMs`; the returned function cancels it. */
9
+ schedule(callback: () => void, delayMs: number): CancelScheduled;
10
+ /** Run `callback` every `intervalMs`; the returned function cancels future runs. */
11
+ repeat(callback: () => void, intervalMs: number): CancelScheduled;
12
+ }
13
+ /** Production clock backed by the host wall clock and timer APIs. */
14
+ export declare class SystemRuntimeClock implements RuntimeClock {
15
+ now(): number;
16
+ sleep(ms: number, signal?: AbortSignal): Promise<void>;
17
+ schedule(callback: () => void, delayMs: number): CancelScheduled;
18
+ repeat(callback: () => void, intervalMs: number): CancelScheduled;
19
+ }
20
+ //# sourceMappingURL=runtime-clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-clock.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/runtime-clock.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC;AAEzC,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,GAAG,IAAI,MAAM,CAAC;IACd,sFAAsF;IACtF,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC;IACjE,oFAAoF;IACpF,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,CAAC;CACnE;AAED,qEAAqE;AACrE,qBAAa,kBAAmB,YAAW,YAAY;IACrD,GAAG,IAAI,MAAM;IAIb,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBtD,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe;IAKhE,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe;CAIlE"}
@@ -0,0 +1,38 @@
1
+ /** Production clock backed by the host wall clock and timer APIs. */
2
+ export class SystemRuntimeClock {
3
+ now() {
4
+ return Date.now();
5
+ }
6
+ sleep(ms, signal) {
7
+ if (signal?.aborted)
8
+ return Promise.reject(abortReason(signal));
9
+ return new Promise((resolve, reject) => {
10
+ const timer = setTimeout(() => {
11
+ signal?.removeEventListener("abort", onAbort);
12
+ resolve();
13
+ }, ms);
14
+ const onAbort = () => {
15
+ clearTimeout(timer);
16
+ signal?.removeEventListener("abort", onAbort);
17
+ reject(abortReason(signal));
18
+ };
19
+ signal?.addEventListener("abort", onAbort, { once: true });
20
+ });
21
+ }
22
+ schedule(callback, delayMs) {
23
+ const timer = setTimeout(callback, delayMs);
24
+ return () => clearTimeout(timer);
25
+ }
26
+ repeat(callback, intervalMs) {
27
+ const timer = setInterval(callback, intervalMs);
28
+ return () => clearInterval(timer);
29
+ }
30
+ }
31
+ function abortReason(signal) {
32
+ if (signal?.reason !== undefined)
33
+ return signal.reason;
34
+ const error = new Error("The operation was aborted");
35
+ error.name = "AbortError";
36
+ return error;
37
+ }
38
+ //# sourceMappingURL=runtime-clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-clock.js","sourceRoot":"","sources":["../../../src/turn-runner/runtime-clock.ts"],"names":[],"mappings":"AAcA,qEAAqE;AACrE,MAAM,OAAO,kBAAkB;IAC7B,GAAG;QACD,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,EAAU,EAAE,MAAoB;QACpC,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC9C,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,EAAE,CAAC,CAAC;YACP,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC;YACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,QAAoB,EAAE,OAAe;QAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,QAAoB,EAAE,UAAkB;QAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACF;AAED,SAAS,WAAW,CAAC,MAAoB;IACvC,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -33,7 +33,4 @@ export declare function runShellCommand(command: string, options: {
33
33
  successCodes?: number[];
34
34
  onOutput?: (output: ShellPartialOutput) => void;
35
35
  }): Promise<ShellCommandOutput>;
36
- export declare function parseStructuredOutput(stdout: string): Record<string, unknown>;
37
- export declare function parseJsonObject(text: string): Record<string, unknown>;
38
- export declare function renderTemplate(template: string, input: Record<string, unknown>): string;
39
36
  //# sourceMappingURL=shell-state-handle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell-state-handle.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/shell-state-handle.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,kBAAkB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACtF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAE/E,qBAAa,iBAAkB,SAAQ,KAAK;IAGxC,QAAQ,CAAC,MAAM,EAAE,kBAAkB;gBADnC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,kBAAkB;CAKtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,IAAI,kBAAkB,GAAG,SAAS,CAAC;IAChD,2EAA2E;IAC3E,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,gBAAgB,CAuBnB;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACjD,GACA,OAAO,CAAC,kBAAkB,CAAC,CAyE7B;AAeD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAW7E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWrE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAQvF"}
1
+ {"version":3,"file":"shell-state-handle.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/shell-state-handle.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACtF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAE/E,qBAAa,iBAAkB,SAAQ,KAAK;IAGxC,QAAQ,CAAC,MAAM,EAAE,kBAAkB;gBADnC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,kBAAkB;CAKtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,IAAI,kBAAkB,GAAG,SAAS,CAAC;IAChD,2EAA2E;IAC3E,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,gBAAgB,CAuBnB;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACjD,GACA,OAAO,CAAC,kBAAkB,CAAC,CAyE7B"}
@@ -1,6 +1,4 @@
1
1
  import { spawn } from "node:child_process";
2
- const TEMPLATE_PLACEHOLDER_PATTERN = /\{\{\s*input\.([A-Za-z0-9_.-]+)\s*\}\}/g;
3
- const TEMPLATE_PLACEHOLDER_CAPTURE_PATTERN = /^\{\{\s*input\.([A-Za-z0-9_.-]+)\s*\}\}$/;
4
2
  export class ShellCommandError extends Error {
5
3
  output;
6
4
  constructor(message, output) {
@@ -56,13 +54,13 @@ export async function runShellCommand(command, options) {
56
54
  };
57
55
  const abort = () => {
58
56
  aborted = true;
59
- killProcessTree(child.pid);
57
+ killProcessTree(child.pid, "SIGKILL");
60
58
  };
61
59
  const timeout = options.timeoutMs === undefined
62
60
  ? undefined
63
61
  : setTimeout(() => {
64
62
  timedOut = true;
65
- killProcessTree(child.pid);
63
+ killProcessTree(child.pid, "SIGKILL");
66
64
  }, options.timeoutMs);
67
65
  options.signal.addEventListener("abort", abort, { once: true });
68
66
  if (options.signal.aborted)
@@ -105,67 +103,19 @@ export async function runShellCommand(command, options) {
105
103
  });
106
104
  });
107
105
  }
108
- function killProcessTree(pid) {
106
+ function killProcessTree(pid, signal) {
109
107
  if (!pid)
110
108
  return;
111
109
  try {
112
- process.kill(-pid, "SIGTERM");
110
+ process.kill(-pid, signal);
113
111
  }
114
112
  catch {
115
113
  try {
116
- process.kill(pid, "SIGTERM");
114
+ process.kill(pid, signal);
117
115
  }
118
116
  catch {
119
117
  // Process already exited.
120
118
  }
121
119
  }
122
120
  }
123
- export function parseStructuredOutput(stdout) {
124
- const trimmed = stdout.trim();
125
- if (!trimmed)
126
- return {};
127
- try {
128
- const parsed = JSON.parse(trimmed);
129
- return typeof parsed === "object" && parsed !== null
130
- ? parsed
131
- : { result: parsed };
132
- }
133
- catch {
134
- return { result: trimmed };
135
- }
136
- }
137
- export function parseJsonObject(text) {
138
- const trimmed = text.trim();
139
- if (!trimmed)
140
- return {};
141
- try {
142
- const parsed = JSON.parse(trimmed);
143
- return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
144
- ? parsed
145
- : {};
146
- }
147
- catch {
148
- return {};
149
- }
150
- }
151
- export function renderTemplate(template, input) {
152
- return template.replace(TEMPLATE_PLACEHOLDER_PATTERN, (placeholder) => {
153
- const path = TEMPLATE_PLACEHOLDER_CAPTURE_PATTERN.exec(placeholder)?.[1];
154
- if (!path)
155
- return "";
156
- const value = readPath(input, path);
157
- if (value === undefined || value === null)
158
- return "";
159
- return typeof value === "string" ? value : JSON.stringify(value);
160
- });
161
- }
162
- function readPath(input, path) {
163
- let value = input;
164
- for (const part of path.split(".")) {
165
- if (!value || typeof value !== "object")
166
- return undefined;
167
- value = value[part];
168
- }
169
- return value;
170
- }
171
121
  //# sourceMappingURL=shell-state-handle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell-state-handle.js","sourceRoot":"","sources":["../../../src/turn-runner/shell-state-handle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-state-handle.js","sourceRoot":"","sources":["../../../src/turn-runner/shell-state-handle.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import type { Skill } from "@earendil-works/pi-coding-agent";
2
2
  import type { TurnRunnerConfig } from "../types/config.js";
3
3
  import type { TurnAgentFile } from "../types/protocol.js";
4
- import type { StateMachineAgentState } from "../types/state-machine.js";
5
4
  import { type SkillCollision } from "./skills.js";
6
5
  export declare class SkillContext {
7
6
  private readonly config;
@@ -19,15 +18,15 @@ export declare class SkillContext {
19
18
  getSkills(): readonly Skill[];
20
19
  getSkillCollisions(): readonly SkillCollision[];
21
20
  getSkillInstructions(skillId: string): string;
22
- resolveStateAgentSkills(state: StateMachineAgentState): Skill[] | undefined;
21
+ /** Resolve a sub-agent allowlist while preserving a caller-specific error label. */
22
+ resolveSubagentSkills(allowedSkills: string[] | undefined, owner: string): Skill[] | undefined;
23
23
  /**
24
24
  * Expand `/skill` slash commands in a prompt into injected `<skill>` blocks.
25
25
  * `skills` scopes which skills are eligible to expand; callers pass a
26
- * restricted set (e.g. a state's `allowedSkills`) so a background agent only
27
- * expands skills it actually has. Defaults to every discovered skill, which
28
- * is what the parent prompt path wants. Passing `undefined` (the result of
29
- * `resolveStateAgentSkills` for an unrestricted state) also falls through to
30
- * the full set.
26
+ * restricted set (e.g. a state's `allowedSkills`) so a sub-agent only expands
27
+ * skills it actually has. Defaults to every discovered skill, which is what
28
+ * the parent prompt path wants. Passing `undefined` for an unrestricted child
29
+ * also falls through to the full set.
31
30
  */
32
31
  resolveSlashSkillPrompt(prompt: string, skills?: readonly Skill[]): string;
33
32
  createSystemPromptWithAppendedLayers(input?: {
@@ -1 +1 @@
1
- {"version":3,"file":"skill-context.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/skill-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAI7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,qBAAa,YAAY;IAKX,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,MAAM,CAAS;gBAEM,MAAM,EAAE,gBAAgB;IAI/C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAYnC;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7B,SAAS,IAAI,SAAS,KAAK,EAAE;IAI7B,kBAAkB,IAAI,SAAS,cAAc,EAAE;IAI/C,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK7C,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,KAAK,EAAE,GAAG,SAAS;IAY3E;;;;;;;;OAQG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,SAAS,KAAK,EAAgB,GAAG,MAAM;IA8BvF,oCAAoC,CAAC,KAAK,CAAC,EAAE;QAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QACnC,MAAM,CAAC,EAAE,SAAS,KAAK,EAAE,CAAC;KAC3B,GAAG,MAAM;IAUV,qEAAqE;IACrE,qBAAqB,IAAI,aAAa,EAAE;IAkBxC,OAAO,CAAC,0BAA0B;CAcnC"}
1
+ {"version":3,"file":"skill-context.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/skill-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAI7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,qBAAa,YAAY;IAKX,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,MAAM,CAAS;gBAEM,MAAM,EAAE,gBAAgB;IAI/C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAYnC;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7B,SAAS,IAAI,SAAS,KAAK,EAAE;IAI7B,kBAAkB,IAAI,SAAS,cAAc,EAAE;IAI/C,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAK7C,oFAAoF;IACpF,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,SAAS;IAY9F;;;;;;;OAOG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,SAAS,KAAK,EAAgB,GAAG,MAAM;IA8BvF,oCAAoC,CAAC,KAAK,CAAC,EAAE;QAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QACpC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QACnC,MAAM,CAAC,EAAE,SAAS,KAAK,EAAE,CAAC;KAC3B,GAAG,MAAM;IAUV,qEAAqE;IACrE,qBAAqB,IAAI,aAAa,EAAE;IAkBxC,OAAO,CAAC,0BAA0B;CAcnC"}
@@ -42,24 +42,24 @@ export class SkillContext {
42
42
  const skill = this.skills.find((s) => s.name === skillId);
43
43
  return skill ? readSkillInstructions(skill) : "";
44
44
  }
45
- resolveStateAgentSkills(state) {
46
- if (!state.allowedSkills)
45
+ /** Resolve a sub-agent allowlist while preserving a caller-specific error label. */
46
+ resolveSubagentSkills(allowedSkills, owner) {
47
+ if (!allowedSkills)
47
48
  return undefined;
48
49
  const skillsByName = new Map(this.skills.map((skill) => [skill.name, skill]));
49
- const missing = state.allowedSkills.filter((name) => !skillsByName.has(name));
50
+ const missing = allowedSkills.filter((name) => !skillsByName.has(name));
50
51
  if (missing.length > 0) {
51
- throw new Error(`Unknown allowedSkills for state "${state.name}": ${missing.join(", ")}`);
52
+ throw new Error(`Unknown allowedSkills for ${owner}: ${missing.join(", ")}`);
52
53
  }
53
- return state.allowedSkills.map((name) => skillsByName.get(name));
54
+ return allowedSkills.map((name) => skillsByName.get(name));
54
55
  }
55
56
  /**
56
57
  * Expand `/skill` slash commands in a prompt into injected `<skill>` blocks.
57
58
  * `skills` scopes which skills are eligible to expand; callers pass a
58
- * restricted set (e.g. a state's `allowedSkills`) so a background agent only
59
- * expands skills it actually has. Defaults to every discovered skill, which
60
- * is what the parent prompt path wants. Passing `undefined` (the result of
61
- * `resolveStateAgentSkills` for an unrestricted state) also falls through to
62
- * the full set.
59
+ * restricted set (e.g. a state's `allowedSkills`) so a sub-agent only expands
60
+ * skills it actually has. Defaults to every discovered skill, which is what
61
+ * the parent prompt path wants. Passing `undefined` for an unrestricted child
62
+ * also falls through to the full set.
63
63
  */
64
64
  resolveSlashSkillPrompt(prompt, skills = this.skills) {
65
65
  const slash = parseSlashCommands(prompt);
@@ -1 +1 @@
1
- {"version":3,"file":"skill-context.js","sourceRoot":"","sources":["../../../src/turn-runner/skill-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-context.js","sourceRoot":"","sources":["../../../src/turn-runner/skill-context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/skills.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAsB,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAOhE,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AA+FD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,KAAK,EAAE,CAEvE;AAED,wBAAgB,oBAAoB,CAClC,gBAAgB,EAAE,qBAAqB,GAAG,SAAS,EACnD,GAAG,EAAE,MAAM,GACV,sBAAsB,CAQxB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAM3E;AAkBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,KAAK,EAAE,GAAG,KAAK,EAAE,CASjG;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAQ1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAa9C"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/skills.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAsB,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAQhE,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,cAAc,EAAE,CAAC;CAC9B;AA4ED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,KAAK,EAAE,CAEvE;AAED,wBAAgB,oBAAoB,CAClC,gBAAgB,EAAE,qBAAqB,GAAG,SAAS,EACnD,GAAG,EAAE,MAAM,GACV,sBAAsB,CAQxB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAM3E;AAkBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,KAAK,EAAE,GAAG,KAAK,EAAE,CASjG;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAQ1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAa9C"}
@@ -1,8 +1,9 @@
1
1
  import { execFileSync } from "node:child_process";
2
2
  import { readFileSync } from "node:fs";
3
3
  import { homedir } from "node:os";
4
- import { dirname, join, resolve, sep } from "node:path";
4
+ import { join, resolve, sep } from "node:path";
5
5
  import { loadSkills } from "@earendil-works/pi-coding-agent";
6
+ import { walkAncestors } from "../lib/walk-ancestors.js";
6
7
  import { getBuiltInSkillInstructions, isBuiltInSkill, listBuiltInSkills, } from "./built-in-skills.js";
7
8
  const SKILL_SHELL_EXPANSION_PATTERN = /!`([\s\S]*?)`/g;
8
9
  const DEFAULT_SKILL_DIR_NAMES = [".duet", ".agents", ".claude"];
@@ -37,27 +38,6 @@ function defaultSkillPaths(globalSkillRoots, cwd) {
37
38
  }
38
39
  return [...ancestorPaths, ...globalSkillRoots.map((root) => join(root, "skills"))];
39
40
  }
40
- // Yields cwd, its parent, grandparent, ... up to the filesystem root. The
41
- // home directory is excluded so global skills do not get double-counted as
42
- // project skills when cwd lives somewhere inside $HOME.
43
- function walkAncestors(cwd) {
44
- const home = resolve(homedir());
45
- const seen = new Set();
46
- const result = [];
47
- let current = resolve(cwd);
48
- while (true) {
49
- if (seen.has(current))
50
- break;
51
- seen.add(current);
52
- if (current !== home)
53
- result.push(current);
54
- const parent = dirname(current);
55
- if (parent === current)
56
- break;
57
- current = parent;
58
- }
59
- return result;
60
- }
61
41
  function uniquePaths(paths) {
62
42
  return Array.from(new Set(paths));
63
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/turn-runner/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/turn-runner/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAgB9B,MAAM,6BAA6B,GAAG,gBAAgB,CAAC;AACvD,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAEzE,SAAS,0BAA0B,CAAC,OAA0C,EAAE,GAAW;IACzF,MAAM,YAAY,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG,CAAC;IACzC,MAAM,gBAAgB,GAAG,OAAO,EAAE,QAAQ;QACxC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACpB,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC;IACzD,OAAO;QACL,GAAG,EAAE,YAAY;QACjB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC7B,eAAe,EAAE,KAAK;QACtB,UAAU,EAAE,WAAW,CAAC;YACtB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC;SAC/B,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,gBAA0B,EAAE,GAAW;IAChE,yEAAyE;IACzE,0EAA0E;IAC1E,mEAAmE;IACnE,uEAAuE;IACvE,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE,CAAC;YAC9C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,aAAa,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,WAAW,CAAC,KAAe;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,gCAAgC,GAAG,MAAM,CAAC;AAEhD,SAAS,wBAAwB,CAAC,OAAe,EAAE,GAAW;IAC5D,OAAO,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;QAC/E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;gBACpD,GAAG;gBACH,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,IAAI,GAAG,IAAI;gBACtB,OAAO,EAAE,gCAAgC;aAC1C,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,qEAAqE;YACrE,8DAA8D;YAC9D,kEAAkE;YAClE,MAAM,MAAM,GAAI,KAAoC,EAAE,MAAM,CAAC;YAC7D,MAAM,IAAI,GACR,MAAM,KAAK,SAAS;gBAClB,CAAC,CAAC,mBAAmB,gCAAgC,GAAG,IAAI,GAAG;gBAC/D,CAAC,CAAC,WAAY,KAAe,CAAC,OAAO,EAAE,CAAC;YAC5C,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAY;IACvC,OAAO;QACL,GAAG,KAAK;QACR,WAAW,EAAE,wBAAwB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAwB;IAC5D,OAAO,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,gBAAmD,EACnD,GAAW;IAEX,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,0BAA0B,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9F,sEAAsE;IACtE,2CAA2C;IAC3C,OAAO;QACL,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC/E,UAAU,EAAE,sBAAsB,CAAC,WAAW,CAAC;KAChD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IACvF,OAAO;QACL,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;QACtD,UAAU,EAAE,sBAAsB,CAAC,WAAW,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAiC;IAC/D,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACvC,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;YACxF,SAAS;QACX,CAAC;QACD,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,SAAS,EAAE,SAAS,CAAC,SAAS;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAyB,EAAE,SAA2B;IACtF,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAY;IAChD,wEAAwE;IACxE,oEAAoE;IACpE,0CAA0C;IAC1C,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAY,EACZ,GAAW;IAEX,IAAI,cAAc,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE,CAAC;QAC9C,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC;IACzE,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE,CAAC;YAC9C,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAE,OAAO,SAAS,CAAC;QAChF,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,IAAY;IAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,MAAM,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,GAAG,EAAE,CAAC;IACzF,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}