@iowarp/clio-coder 0.3.6 → 0.3.7

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 (258) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +16 -5
  3. package/dist/{acp-2BEHC4DL.js → acp-SK4MD6MM.js} +10 -10
  4. package/dist/{agents-LNNFTM53.js → agents-2FN2K6ME.js} +30 -25
  5. package/dist/assets/codewiki.json +1 -1
  6. package/dist/{auth-KXXFI2VS.js → auth-QIYZWM5I.js} +13 -13
  7. package/dist/{chunk-KHSFENX2.js → chunk-3HAPLH5M.js} +10 -10
  8. package/dist/{chunk-24I7BN55.js → chunk-465YSENW.js} +2 -2
  9. package/dist/{chunk-4OC57DA6.js → chunk-4DGYLA73.js} +53 -2
  10. package/dist/{chunk-CYQKWTG3.js → chunk-4DWFMQDR.js} +4 -4
  11. package/dist/{chunk-E2ER4LJF.js → chunk-5C3AQNDW.js} +25 -1
  12. package/dist/{chunk-22NAGB7X.js → chunk-5C77SEEY.js} +5 -94
  13. package/dist/{chunk-43AOLP7E.js → chunk-5FR74PWO.js} +2 -1
  14. package/dist/{chunk-K7T3E2SR.js → chunk-5UJ6ECTS.js} +10 -9
  15. package/dist/{chunk-6US73PDB.js → chunk-6M7VS3J3.js} +5 -5
  16. package/dist/{chunk-CJUB2JJ2.js → chunk-6TUKSZVF.js} +5 -5
  17. package/dist/{chunk-5JGRAMKL.js → chunk-AB4XIIVB.js} +8 -6
  18. package/dist/{chunk-R46L2BIR.js → chunk-BMWK7ZIZ.js} +14 -20
  19. package/dist/{chunk-4BPJXDWC.js → chunk-C4JBQ5SR.js} +30 -14
  20. package/dist/{chunk-XXQNGV4M.js → chunk-CEYBNUGC.js} +243 -63
  21. package/dist/{chunk-VEZEGCGW.js → chunk-D4MDIG46.js} +20 -18
  22. package/dist/chunk-DJNLUABN.js +843 -0
  23. package/dist/{chunk-RY3LY4J5.js → chunk-DMD2AGVS.js} +5 -4
  24. package/dist/{chunk-KOHPCX4K.js → chunk-DOOEX22V.js} +2 -2
  25. package/dist/chunk-DQA7QLMD.js +123 -0
  26. package/dist/chunk-DR52UMZW.js +21 -0
  27. package/dist/{chunk-XF5N4U5A.js → chunk-EBEFWSGL.js} +6 -5
  28. package/dist/{chunk-EYPA3EGJ.js → chunk-EELBMBT6.js} +120 -13
  29. package/dist/{chunk-CKXWIANG.js → chunk-EOOQZZDE.js} +16 -14
  30. package/dist/{chunk-WR67VIZY.js → chunk-FOT2FX5J.js} +63 -5
  31. package/dist/{chunk-FYYLNIL5.js → chunk-GH5622CP.js} +2 -2
  32. package/dist/chunk-GWS3VEIW.js +195 -0
  33. package/dist/{chunk-LYF7OHWH.js → chunk-J7PIKKWC.js} +8 -463
  34. package/dist/{chunk-NILBFAPG.js → chunk-JNXPYBB4.js} +2 -2
  35. package/dist/{chunk-4VP4KH3K.js → chunk-JRIO5UD2.js} +4 -4
  36. package/dist/{chunk-6XXKFVSN.js → chunk-JTSEDYVQ.js} +7 -7
  37. package/dist/{chunk-QKMUKYO7.js → chunk-KCMKRQX4.js} +236 -84
  38. package/dist/chunk-KZ2H5X4G.js +1026 -0
  39. package/dist/{chunk-QNQHSOLF.js → chunk-LADCF22A.js} +12 -12
  40. package/dist/chunk-M4AKACEO.js +382 -0
  41. package/dist/{chunk-XYDYPRZI.js → chunk-MXI6J5JF.js} +7 -7
  42. package/dist/{chunk-G7MUEIGA.js → chunk-OB5HIGJY.js} +1 -1
  43. package/dist/{chunk-EKY57CSP.js → chunk-OBMAI2DP.js} +61 -767
  44. package/dist/chunk-PD3MESLB.js +242 -0
  45. package/dist/{chunk-ZRGEBJ4T.js → chunk-QCTRSGHQ.js} +21 -21
  46. package/dist/chunk-RVG5JXAL.js +41 -0
  47. package/dist/{chunk-RD5U66HV.js → chunk-SROCI7ZU.js} +7 -7
  48. package/dist/{chunk-MFFY33HR.js → chunk-THKY7CD7.js} +466 -205
  49. package/dist/{chunk-PCZJO5TI.js → chunk-UFQ3F4FW.js} +13 -178
  50. package/dist/{chunk-AD2SYQYC.js → chunk-UHXRNZ2J.js} +121 -3
  51. package/dist/chunk-UND3GU2L.js +103 -0
  52. package/dist/{chunk-QM3F2GKX.js → chunk-UUANF5CR.js} +2247 -2096
  53. package/dist/chunk-UVDSQ6LW.js +472 -0
  54. package/dist/{chunk-DJVECN66.js → chunk-VQNODYQ4.js} +14 -14
  55. package/dist/{chunk-3BPUFZDL.js → chunk-VREKEFLL.js} +3 -3
  56. package/dist/{chunk-PBTHKCPN.js → chunk-WJHBC77E.js} +6 -6
  57. package/dist/{chunk-XE2VEJHX.js → chunk-X2KV5FXT.js} +2 -2
  58. package/dist/{chunk-ZXF4XRKW.js → chunk-XEGB6BCN.js} +157 -7
  59. package/dist/{chunk-E25LMLRW.js → chunk-YD734TPH.js} +2 -2
  60. package/dist/{verifiers-NCBTHHN2.js → chunk-YTYFXUI3.js} +65 -322
  61. package/dist/{chunk-OH3TOQTB.js → chunk-ZGH7FGS5.js} +13 -7
  62. package/dist/cli/index.js +32 -30
  63. package/dist/{clio-M2KGYUFZ.js → clio-WBVQEBKO.js} +7 -7
  64. package/dist/{code-nav-GQNL7XA6.js → code-nav-FGGFIE7L.js} +3 -3
  65. package/dist/{components-5TTYYX6G.js → components-F7OEATSO.js} +4 -4
  66. package/dist/{config-XUUYQIWO.js → config-TRBL3RCF.js} +34 -29
  67. package/dist/{configure-IHJ7YOMV.js → configure-OLCVPHNM.js} +15 -15
  68. package/dist/{context-74JLXAWD.js → context-MJIJ6GOX.js} +11 -11
  69. package/dist/{context-ZQ7SIFJV.js → context-WFPKQSM6.js} +19 -3
  70. package/dist/{context-75MIWW3U.js → context-XEWE3MOJ.js} +31 -26
  71. package/dist/{context-clear-GYKWNUML.js → context-clear-KNOS2JPB.js} +31 -26
  72. package/dist/{context-working-set-UX5KEP4J.js → context-working-set-EUXAZI6N.js} +8 -8
  73. package/dist/{dispatch-runner-GIJBHNFL.js → dispatch-runner-B7MTOVKL.js} +313 -53
  74. package/dist/{docs-6FZSCG5B.js → docs-FLJTIDSE.js} +4 -4
  75. package/dist/{doctor-SVJ5BZCW.js → doctor-RN4YKO2X.js} +14 -14
  76. package/dist/{eval-CG6LLBLD.js → eval-RUBJVSNQ.js} +8 -7
  77. package/dist/{evidence-ZYFIEN42.js → evidence-JZNBUOQZ.js} +30 -25
  78. package/dist/{evolve-QGEXEMDW.js → evolve-FJVC4KKI.js} +30 -25
  79. package/dist/{extensions-ADGNCJJD.js → extensions-IQL36S7K.js} +4 -4
  80. package/dist/{fleet-S5R4ZOQY.js → fleet-BDKYJFCP.js} +214 -360
  81. package/dist/fleet-commands-ZFIWZSB3.js +70 -0
  82. package/dist/fleet-graph-Y6HPXIVF.js +125 -0
  83. package/dist/fleet-new-RDVJLHHH.js +48 -0
  84. package/dist/fleet-validate-BIYREGIK.js +79 -0
  85. package/dist/{init-5DRU55YR.js → init-LQUB5COQ.js} +44 -37
  86. package/dist/library-NJAHIGG4.js +217 -0
  87. package/dist/{memory-7YKKR6UC.js → memory-OG6HOYKM.js} +31 -26
  88. package/dist/{models-ZPOLRU2C.js → models-5ZG5XY7J.js} +21 -20
  89. package/dist/{monitor-US5F5YGZ.js → monitor-TJ7AMTGB.js} +49 -30
  90. package/dist/{orchestrator-E2AL4T5N.js → orchestrator-WZYB54DM.js} +3827 -581
  91. package/dist/{paths-E7KYAQWE.js → paths-XUC7GS6E.js} +4 -4
  92. package/dist/{reset-KZ652EK6.js → reset-PXQT45IY.js} +7 -7
  93. package/dist/{run-SRNBKDWD.js → run-FQ74YF62.js} +53 -45
  94. package/dist/{share-CGZE33UP.js → share-FW7SVCL3.js} +33 -9
  95. package/dist/{skills-S2X4DLY5.js → skills-7E7IRB3R.js} +24 -8
  96. package/dist/{skills-eval-W2GGIC4R.js → skills-eval-LI75W6OK.js} +34 -27
  97. package/dist/{targets-54SWINWB.js → targets-4CIFKCTW.js} +23 -22
  98. package/dist/{terminal-lease-SAIF2OGY.js → terminal-lease-WUZY7ZV5.js} +4 -4
  99. package/dist/{uninstall-BVLWXKBT.js → uninstall-7FV7IP4E.js} +4 -4
  100. package/dist/{upgrade-JKAR27XC.js → upgrade-K2HVIVMQ.js} +20 -19
  101. package/dist/{usage-MSAWCLX4.js → usage-GTZELZQX.js} +116 -49
  102. package/dist/verifiers-RLAHT27O.js +336 -0
  103. package/dist/{verify-X5HDROLA.js → verify-BX3BRKH5.js} +7 -6
  104. package/dist/{wiki-generate-GUSOQ6ZP.js → wiki-generate-ASIFASCN.js} +45 -37
  105. package/dist/worker/entry.js +38 -35
  106. package/docs/README.md +3 -2
  107. package/docs/acp.md +1 -1
  108. package/docs/alcf-provider.md +1 -1
  109. package/docs/architecture.md +2 -2
  110. package/docs/artifact-versions.md +10 -6
  111. package/docs/built-in-agents.md +26 -2
  112. package/docs/capacity-and-scheduling.md +1 -1
  113. package/docs/commands-and-modes.md +82 -2
  114. package/docs/configuration-and-targets.md +79 -2
  115. package/docs/context-engine.md +1 -1
  116. package/docs/development-pipeline.md +1 -1
  117. package/docs/dispatch-architecture-rationale.md +1 -1
  118. package/docs/documentation-coverage.md +3 -3
  119. package/docs/documentation-guide.md +3 -3
  120. package/docs/eval-runner.md +1 -1
  121. package/docs/evals-internal.md +1 -1
  122. package/docs/evidence-and-memory.md +5 -5
  123. package/docs/evolution.md +1 -1
  124. package/docs/exit-codes-and-output.md +4 -1
  125. package/docs/extensions-and-sharing.md +6 -2
  126. package/docs/fleet-demo-runbook.md +2 -2
  127. package/docs/fleet-dispatch.md +197 -10
  128. package/docs/git-commit-provenance.md +2 -2
  129. package/docs/glossary.md +1 -1
  130. package/docs/installation-and-lifecycle.md +2 -2
  131. package/docs/middleware-and-components.md +2 -1
  132. package/docs/model-catalog.md +1 -1
  133. package/docs/observability.md +55 -8
  134. package/docs/proactive-memory.md +1 -1
  135. package/docs/prompt-envelope-and-tools.md +1 -1
  136. package/docs/provider-adapter-cookbook.md +1 -1
  137. package/docs/release-cut-checklist.md +79 -64
  138. package/docs/resource-library.md +59 -0
  139. package/docs/safety-model.md +2 -2
  140. package/docs/scientific-validation.md +3 -3
  141. package/docs/session-lifecycle.md +37 -1
  142. package/docs/skills-marketplace.md +16 -3
  143. package/docs/tool-usage.md +14 -7
  144. package/docs/trace-store.md +1 -1
  145. package/docs/troubleshooting.md +1 -1
  146. package/docs/tui-design.md +1 -1
  147. package/docs/worker-dispatch-mechanics.md +3 -3
  148. package/package.json +1 -1
  149. package/src/cli/fleet-commands.ts +37 -0
  150. package/src/cli/fleet-graph.ts +102 -0
  151. package/src/cli/fleet-new.ts +36 -0
  152. package/src/cli/fleet-preflight.ts +121 -0
  153. package/src/cli/fleet-validate.ts +30 -0
  154. package/src/cli/fleet.ts +173 -335
  155. package/src/cli/index.ts +3 -1
  156. package/src/cli/library.ts +190 -0
  157. package/src/cli/share.ts +13 -1
  158. package/src/cli/usage.ts +111 -19
  159. package/src/core/bus-events.ts +4 -0
  160. package/src/core/commit-attribution.ts +4 -4
  161. package/src/core/config.ts +130 -0
  162. package/src/core/defaults.ts +81 -0
  163. package/src/domains/agents/builtins/architect.md +1 -0
  164. package/src/domains/agents/builtins/oracle.md +33 -0
  165. package/src/domains/agents/catalog.ts +13 -1
  166. package/src/domains/agents/fleet-contract.ts +278 -16
  167. package/src/domains/agents/index.ts +14 -0
  168. package/src/domains/agents/result-contract.ts +235 -1
  169. package/src/domains/config/classify.ts +4 -0
  170. package/src/domains/dispatch/active-route-planner.ts +14 -0
  171. package/src/domains/dispatch/backoff.ts +2 -1
  172. package/src/domains/dispatch/capability-match.ts +1 -0
  173. package/src/domains/dispatch/checkout-writer-lease.ts +175 -0
  174. package/src/domains/dispatch/contract.ts +34 -0
  175. package/src/domains/dispatch/delegation-plan.ts +167 -0
  176. package/src/domains/dispatch/execution-plan.ts +76 -5
  177. package/src/domains/dispatch/execution-role.ts +3 -1
  178. package/src/domains/dispatch/execution-scheduler.ts +183 -67
  179. package/src/domains/dispatch/extension.ts +258 -9
  180. package/src/domains/dispatch/fleet-gate.ts +14 -0
  181. package/src/domains/dispatch/fleet-plan.ts +63 -3
  182. package/src/domains/dispatch/fleet-run.ts +737 -0
  183. package/src/domains/dispatch/gate-role-prompts.ts +9 -0
  184. package/src/domains/dispatch/host-verification.ts +178 -0
  185. package/src/domains/dispatch/index.ts +38 -0
  186. package/src/domains/dispatch/intent.ts +159 -0
  187. package/src/domains/dispatch/receipt-integrity.ts +8 -4
  188. package/src/domains/dispatch/state.ts +36 -3
  189. package/src/domains/dispatch/types.ts +51 -6
  190. package/src/domains/dispatch/validation.ts +66 -6
  191. package/src/domains/evidence/trust-status.ts +10 -1
  192. package/src/domains/middleware/index.ts +15 -0
  193. package/src/domains/middleware/watchdog.ts +281 -0
  194. package/src/domains/observability/contract.ts +3 -1
  195. package/src/domains/observability/cost.ts +12 -1
  196. package/src/domains/observability/extension.ts +2 -2
  197. package/src/domains/observability/index.ts +10 -0
  198. package/src/domains/observability/out-of-turn-usage.ts +223 -0
  199. package/src/domains/resources/index.ts +20 -0
  200. package/src/domains/resources/library.ts +326 -0
  201. package/src/domains/resources/skills/marketplace.ts +37 -12
  202. package/src/domains/session/handoff.ts +629 -0
  203. package/src/domains/share/archive.ts +67 -2
  204. package/src/entry/orchestrator.ts +37 -0
  205. package/src/interactive/bus-notices.ts +26 -0
  206. package/src/interactive/chat-loop.ts +235 -1
  207. package/src/interactive/chat-renderer.ts +22 -0
  208. package/src/interactive/cost-overlay.ts +31 -3
  209. package/src/interactive/council-dispatch.ts +30 -0
  210. package/src/interactive/council-grid.ts +213 -0
  211. package/src/interactive/council.ts +99 -0
  212. package/src/interactive/dispatch-board.ts +260 -16
  213. package/src/interactive/fleet-run-preview.ts +307 -0
  214. package/src/interactive/footer/notifications.ts +219 -0
  215. package/src/interactive/handoff-round.ts +56 -0
  216. package/src/interactive/interactive-application.ts +43 -1
  217. package/src/interactive/interactive-event-projection.ts +9 -1
  218. package/src/interactive/interactive-slash-runtime.ts +52 -2
  219. package/src/interactive/interactive-subscriptions.ts +14 -2
  220. package/src/interactive/oracle.ts +179 -0
  221. package/src/interactive/overlay-ask-user-lifecycle.ts +6 -0
  222. package/src/interactive/overlay-general-openers.ts +190 -1
  223. package/src/interactive/overlay-key-routing.ts +17 -1
  224. package/src/interactive/overlay-lifecycle.ts +41 -1
  225. package/src/interactive/overlay-permission-lifecycle.ts +10 -0
  226. package/src/interactive/overlay-resource-openers.ts +11 -3
  227. package/src/interactive/overlay-session-lifecycle.ts +234 -2
  228. package/src/interactive/overlays/fleet-run-approval.ts +208 -0
  229. package/src/interactive/overlays/handoff-review.ts +185 -0
  230. package/src/interactive/overlays/library-install-confirm.ts +151 -0
  231. package/src/interactive/overlays/list-overlay.ts +168 -2
  232. package/src/interactive/overlays/settings.ts +101 -4
  233. package/src/interactive/overlays/side-question.ts +139 -0
  234. package/src/interactive/overlays/skills-hub.ts +401 -15
  235. package/src/interactive/side-question.ts +171 -0
  236. package/src/interactive/slash-commands.ts +432 -5
  237. package/src/interactive/slash-spec.ts +19 -6
  238. package/src/interactive/theme/tokens.ts +30 -0
  239. package/src/interactive/turn-middleware.ts +15 -1
  240. package/src/interactive/watchdog-run.ts +75 -0
  241. package/src/interactive/worker-share.ts +56 -1
  242. package/src/interactive/worker-stream.ts +7 -0
  243. package/src/tools/bootstrap.ts +3 -0
  244. package/src/tools/compete-worktrees.ts +13 -79
  245. package/src/tools/dispatch-admission.ts +242 -8
  246. package/src/tools/dispatch-arguments.ts +57 -1
  247. package/src/tools/dispatch-plan.ts +136 -6
  248. package/src/tools/dispatch-runner.ts +319 -13
  249. package/src/tools/dispatch-types.ts +20 -1
  250. package/src/tools/dispatch.ts +72 -2
  251. package/src/tools/monitor.ts +16 -0
  252. package/src/tools/profiles.ts +18 -4
  253. package/src/tools/task-worktree.ts +238 -0
  254. package/src/tools/verify/authoring.ts +61 -1
  255. package/src/tools/verify/scripts.ts +62 -0
  256. package/src/tools/worker-evidence.ts +2 -1
  257. package/src/worker/spec-contract.ts +1 -0
  258. package/dist/chunk-HC4CLZ2Y.js +0 -68
@@ -1,16 +1,16 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  receiptResponseModelIdObservationLabel
4
- } from "./chunk-3BPUFZDL.js";
4
+ } from "./chunk-VREKEFLL.js";
5
5
  import {
6
6
  adaptRunReceiptTrustStatus
7
- } from "./chunk-QM3F2GKX.js";
7
+ } from "./chunk-UUANF5CR.js";
8
8
  import {
9
9
  formatBudgetPolicy,
10
10
  formatBudgetReasons,
11
11
  formatBudgetRequest,
12
12
  formatEffectiveBudget
13
- } from "./chunk-XXQNGV4M.js";
13
+ } from "./chunk-CEYBNUGC.js";
14
14
  import {
15
15
  mentionsWorkerToolCallCap
16
16
  } from "./chunk-4ZG3XFUR.js";
@@ -94,6 +94,7 @@ function receiptEvidenceLabels(receipt, verification, integrity) {
94
94
  canonical,
95
95
  `receipt_integrity=verified/v${receipt.integrity.version}/${receipt.integrity.algorithm}`,
96
96
  `evidence_verification=${verification.state}/${verification.basis}`,
97
+ `host_verification=${receipt.hostVerification?.status ?? "not_requested"}`,
97
98
  ...responseModelIdObservation ? [responseModelIdObservation] : [],
98
99
  ...budget,
99
100
  ...receiptAdmissionLabels(receipt),
@@ -170,4 +171,4 @@ export {
170
171
  workerTextLabel,
171
172
  workerTextNonEvidenceNotices
172
173
  };
173
- //# sourceMappingURL=chunk-RY3LY4J5.js.map
174
+ //# sourceMappingURL=chunk-DMD2AGVS.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  DEFAULT_SETTINGS_YAML
4
- } from "./chunk-4OC57DA6.js";
4
+ } from "./chunk-4DGYLA73.js";
5
5
  import {
6
6
  clioCacheDir,
7
7
  clioConfigDir,
@@ -143,4 +143,4 @@ function enforceHomePrefixGuard() {
143
143
  export {
144
144
  initializeClioHome
145
145
  };
146
- //# sourceMappingURL=chunk-KOHPCX4K.js.map
146
+ //# sourceMappingURL=chunk-DOOEX22V.js.map
@@ -0,0 +1,123 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ compileFleetExecutionPlan
4
+ } from "./chunk-M4AKACEO.js";
5
+ import {
6
+ loadRecipesFromDir,
7
+ mergeRecipes
8
+ } from "./chunk-UVDSQ6LW.js";
9
+ import {
10
+ loadFleetCommands,
11
+ loadFleetContract,
12
+ renderFleetPrompt
13
+ } from "./chunk-KCMKRQX4.js";
14
+ import {
15
+ requestExecutionRole,
16
+ withAttemptRole
17
+ } from "./chunk-UND3GU2L.js";
18
+ import {
19
+ normalizeAgentSpec
20
+ } from "./chunk-AOCYTWAV.js";
21
+ import {
22
+ readSettings
23
+ } from "./chunk-UHXRNZ2J.js";
24
+ import {
25
+ clioConfigDir
26
+ } from "./chunk-BNAZZHFG.js";
27
+ import {
28
+ resolvePackageRoot
29
+ } from "./chunk-IWHMRKLL.js";
30
+ import {
31
+ init_esm_shims
32
+ } from "./chunk-3R73A4XB.js";
33
+
34
+ // src/cli/fleet-preflight.ts
35
+ init_esm_shims();
36
+ import { join } from "node:path";
37
+ function discoverSpecs(cwd) {
38
+ const diagnostics = [];
39
+ const builtin = loadRecipesFromDir(
40
+ { dir: join(resolvePackageRoot(), "src", "domains", "agents", "builtins"), source: "builtin" },
41
+ diagnostics
42
+ );
43
+ const user = loadRecipesFromDir({ dir: join(clioConfigDir(), "agents"), source: "user" }, diagnostics);
44
+ const project = loadRecipesFromDir({ dir: join(cwd, ".clio-coder", "agents"), source: "project" }, diagnostics);
45
+ return mergeRecipes(builtin, user, project).map(normalizeAgentSpec);
46
+ }
47
+ function inspectFleet(name, vars) {
48
+ const cwd = process.cwd();
49
+ const contract = loadFleetContract(cwd, name);
50
+ const commands = loadFleetCommands(cwd);
51
+ const prompt = vars === void 0 ? contract.body : renderFleetPrompt(contract.body, vars);
52
+ const specs = discoverSpecs(cwd);
53
+ const byId = new Map(specs.map((spec) => [spec.id, spec]));
54
+ const resolved = /* @__PURE__ */ new Set();
55
+ const settings = readSettings();
56
+ const targetIds = new Set(settings.targets.map((target) => target.id));
57
+ const profileIds = new Set(Object.keys(settings.workers?.profiles ?? {}));
58
+ for (const step of contract.steps) {
59
+ const positions = step.kind === "loop" ? [
60
+ ...step.check.kind === "agent" ? [{ id: `${step.id}.check`, route: step.check }] : [],
61
+ { id: `${step.id}.repair`, route: step.repair }
62
+ ] : step.kind === "agent" || step.kind === "gate" || step.kind === "plan" ? [{ id: step.id, route: step }] : [];
63
+ for (const position of positions) {
64
+ if (position.route.target !== void 0 && !targetIds.has(position.route.target)) {
65
+ throw new Error(`unknown target '${position.route.target}' at step '${position.id}'`);
66
+ }
67
+ if (position.route.profile !== void 0 && !profileIds.has(position.route.profile)) {
68
+ throw new Error(`unknown profile '${position.route.profile}' at step '${position.id}'`);
69
+ }
70
+ }
71
+ }
72
+ const plan = compileFleetExecutionPlan({
73
+ contract,
74
+ task: prompt,
75
+ resolveAgent(context) {
76
+ const spec = byId.get(context.agentId);
77
+ if (spec === void 0) {
78
+ throw new Error(
79
+ `unknown agent '${context.agentId}' (step '${context.stepId}' must name a recipe from 'clio-coder agents')`
80
+ );
81
+ }
82
+ if (spec.capabilityClass === "orchestration" || spec.capabilityClass === "internal") {
83
+ throw new Error(`fleet step '${context.stepId}' has no automatable agent authority`);
84
+ }
85
+ resolved.add(spec.id);
86
+ const role = requestExecutionRole({
87
+ agentId: spec.id,
88
+ resolveFacts: (id) => {
89
+ const found = byId.get(id);
90
+ return found === void 0 ? null : {
91
+ category: found.category,
92
+ capabilityClass: found.capabilityClass,
93
+ resultContractKind: found.resultContract.kind
94
+ };
95
+ },
96
+ ...context.gateRole === void 0 ? {} : { gateRole: context.gateRole }
97
+ });
98
+ return {
99
+ requestedAuthority: spec.capabilityClass,
100
+ approvedAuthority: spec.capabilityClass,
101
+ expectedResultContract: context.planRole === true ? "delegation-plan" : context.gateAuthorRole === true ? "artifact-report" : context.gateRole === "reviewer" ? "verifier-report" : spec.resultContract.kind,
102
+ executionRole: withAttemptRole(role, context.attempt)
103
+ };
104
+ }
105
+ });
106
+ return {
107
+ contract,
108
+ commands,
109
+ plan,
110
+ checks: [
111
+ { check: "parse", summary: `parsed contract version ${contract.version}` },
112
+ { check: "graph", summary: `validated ${contract.steps.length} declared steps` },
113
+ { check: "commands", summary: `validated ${plan.steps.filter((step) => step.kind === "code").length} code steps` },
114
+ { check: "agents", summary: `resolved ${resolved.size} agents` },
115
+ { check: "plan", summary: `compiled ${plan.steps.length} plan steps with hash ${plan.hash}` }
116
+ ]
117
+ };
118
+ }
119
+
120
+ export {
121
+ inspectFleet
122
+ };
123
+ //# sourceMappingURL=chunk-DQA7QLMD.js.map
@@ -0,0 +1,21 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ init_esm_shims
4
+ } from "./chunk-3R73A4XB.js";
5
+
6
+ // src/domains/config/agent-namespace.ts
7
+ init_esm_shims();
8
+ function assertAgentIdNamespace(nativeRecipes, acpDelegates) {
9
+ const native = new Set(nativeRecipes.map((recipe) => recipe.id));
10
+ const collision = acpDelegates.find((delegate) => native.has(delegate.id));
11
+ if (collision !== void 0) {
12
+ throw new Error(
13
+ `agent id collision: native recipe '${collision.id}' and ACP delegation agent '${collision.id}' share one namespace`
14
+ );
15
+ }
16
+ }
17
+
18
+ export {
19
+ assertAgentIdNamespace
20
+ };
21
+ //# sourceMappingURL=chunk-DR52UMZW.js.map
@@ -5,18 +5,18 @@ import {
5
5
  loadProjectRules,
6
6
  renderOperatorProfile,
7
7
  selectActiveRules
8
- } from "./chunk-CYQKWTG3.js";
8
+ } from "./chunk-4DWFMQDR.js";
9
9
  import {
10
10
  compile,
11
11
  compileWorker,
12
12
  sha256
13
- } from "./chunk-QM3F2GKX.js";
13
+ } from "./chunk-UUANF5CR.js";
14
14
  import {
15
15
  isUserVisibleAgent
16
16
  } from "./chunk-AOCYTWAV.js";
17
17
  import {
18
18
  BusChannels
19
- } from "./chunk-G7MUEIGA.js";
19
+ } from "./chunk-OB5HIGJY.js";
20
20
  import {
21
21
  classifyProjectPreload
22
22
  } from "./chunk-JVCV3ICN.js";
@@ -27,6 +27,7 @@ import {
27
27
  // src/domains/agents/catalog.ts
28
28
  init_esm_shims();
29
29
  var DEFAULT_DISPATCH_AGENT_ID = "coder";
30
+ var OPERATOR_ONLY_SHADOW_AGENT_IDS = /* @__PURE__ */ new Set(["oracle"]);
30
31
  var FLEET_PROMPT_PURPOSE_MAX_CHARS = 64;
31
32
  var FLEET_DELEGATION_RULE = "Delegate when the task has two or more independent file-scoped subtasks, or any broad exploration. You keep synthesis and validation; a single narrow change stays with you.";
32
33
  var FLEET_HANDOFF_RULE = "A file you assigned to a worker is not yours to edit while its dispatch is pending or after it succeeds; if you already changed it, say so in your report.";
@@ -53,7 +54,7 @@ function renderFleetPromptSection(input) {
53
54
  return category === 0 ? a.id.localeCompare(b.id) : category;
54
55
  });
55
56
  const publicSpecs = specs.filter(isUserVisibleAgent);
56
- const shadowSpecs = specs.filter((spec) => spec.audience === "shadow");
57
+ const shadowSpecs = specs.filter((spec) => spec.audience === "shadow" && !OPERATOR_ONLY_SHADOW_AGENT_IDS.has(spec.id));
57
58
  if (publicSpecs.length === 0 && shadowSpecs.length === 0) return "";
58
59
  const lines = [
59
60
  "# Fleet",
@@ -654,4 +655,4 @@ export {
654
655
  createPromptsDomainModule,
655
656
  SchedulingDomainModule
656
657
  };
657
- //# sourceMappingURL=chunk-XF5N4U5A.js.map
658
+ //# sourceMappingURL=chunk-EBEFWSGL.js.map
@@ -6,16 +6,19 @@ import {
6
6
  cloneApprovedAssignmentRoute,
7
7
  cloneDispatchBudgetRequest,
8
8
  isApprovedAssignmentRoute,
9
+ isDispatchIntent,
9
10
  isToolProfileName
10
- } from "./chunk-XXQNGV4M.js";
11
+ } from "./chunk-CEYBNUGC.js";
11
12
  import {
12
13
  ROUTE_POLICY_VERSION,
13
- isExecutionRole,
14
14
  isRouteDecisionAgentSelection,
15
15
  isRoutingIntent,
16
- parseRoutingIntent,
16
+ parseRoutingIntent
17
+ } from "./chunk-5C77SEEY.js";
18
+ import {
19
+ isExecutionRole,
17
20
  requestExecutionRole
18
- } from "./chunk-22NAGB7X.js";
21
+ } from "./chunk-UND3GU2L.js";
19
22
  import {
20
23
  AGENT_AUTOMATION_AUTHORITIES
21
24
  } from "./chunk-AOCYTWAV.js";
@@ -30,6 +33,7 @@ import { createHash } from "node:crypto";
30
33
  // src/tools/dispatch-arguments.ts
31
34
  init_esm_shims();
32
35
  var DEFAULT_AGENT_ID = "coder";
36
+ var COUNCIL_DEFAULT_AGENT_ID = "researcher";
33
37
  var AUTO_BASELINE_BY_TASK_TYPE = {
34
38
  // Mutating shapes: capability class first, specialization second.
35
39
  code_write: "coder",
@@ -78,7 +82,7 @@ function dispatchRequestFromArgs(args, options) {
78
82
  const task = stringArg(args, "task");
79
83
  if (!task) return { ok: false, message: "missing task (pass list:true to see available agents)" };
80
84
  if (Object.hasOwn(args, "agent_id")) return { ok: false, message: "agent_id is unsupported; use agent" };
81
- const requestedAgent = stringArg(args, "agent") ?? DEFAULT_AGENT_ID;
85
+ const requestedAgent = stringArg(args, "agent") ?? (args.mode === "council" ? COUNCIL_DEFAULT_AGENT_ID : DEFAULT_AGENT_ID);
82
86
  const auto = requestedAgent === "auto";
83
87
  const agentId = auto ? autoBaselineAgentId(task, options.hasAgent) : requestedAgent;
84
88
  const request = {
@@ -126,6 +130,45 @@ function dispatchRequestFromArgs(args, options) {
126
130
  request.requiredCapabilities = routing.intent.requiredCapabilities;
127
131
  const cwd = stringArg(args, "cwd");
128
132
  if (cwd) request.cwd = cwd;
133
+ if (args.worktree !== void 0) {
134
+ if (args.worktree !== true) return { ok: false, message: "worktree must be true when present" };
135
+ request.worktree = true;
136
+ }
137
+ if (args.apply !== void 0) {
138
+ if (args.apply !== "merge" && args.apply !== "preserve")
139
+ return { ok: false, message: "apply must be merge or preserve" };
140
+ if (request.worktree !== true) return { ok: false, message: "apply requires worktree: true" };
141
+ request.apply = args.apply;
142
+ }
143
+ if (Object.hasOwn(args, "gate") && isRecord(args.intent) && Object.hasOwn(args.intent, "verification")) {
144
+ return { ok: false, message: "gate_and_intent_verification_conflict: gate cannot combine with intent.verification" };
145
+ }
146
+ let rawIntent = args.intent;
147
+ if (Object.hasOwn(args, "gate")) {
148
+ if (typeof args.gate !== "string" || args.gate.trim().length === 0) {
149
+ return { ok: false, message: "gate must be a non-empty declared check id" };
150
+ }
151
+ rawIntent = { ...isRecord(rawIntent) ? rawIntent : {}, verification: [{ check: args.gate.trim() }] };
152
+ }
153
+ if (rawIntent !== void 0) {
154
+ if (options.resolveIntent === void 0) return { ok: false, message: "intent resolver is unavailable" };
155
+ const resolved = options.resolveIntent(rawIntent, cwd);
156
+ if (!resolved.ok) return resolved;
157
+ request.intent = resolved.intent;
158
+ if (resolved.resolvedVerification.length > 0) request.resolvedVerification = resolved.resolvedVerification;
159
+ if (resolved.intent.writeRoots.length > 0) {
160
+ const legacy = Array.isArray(args.writeRoots) ? args.writeRoots.filter((entry) => typeof entry === "string") : void 0;
161
+ if (legacy !== void 0) {
162
+ const left = [...new Set(legacy)].sort();
163
+ if (JSON.stringify(left) !== JSON.stringify(resolved.intent.writeRoots)) {
164
+ return { ok: false, message: "intent_write_roots_contradiction" };
165
+ }
166
+ request.writeRoots = legacy;
167
+ } else {
168
+ request.writeRoots = resolved.intent.writeRoots;
169
+ }
170
+ }
171
+ }
129
172
  if ("persona" in args && args.persona !== void 0) {
130
173
  if (typeof args.persona !== "string") return { ok: false, message: "persona must be a string" };
131
174
  const persona = args.persona.trim();
@@ -232,7 +275,14 @@ function withResolvedPlanTaskPin(request, task, options = {}) {
232
275
  ...task.routeApproval === null ? {} : { routeApproval: cloneApprovedAssignmentRoute(task.routeApproval) },
233
276
  ...task.allowedCandidates === void 0 ? {} : { allowedCandidates: task.allowedCandidates.map((candidate) => ({ ...candidate })) },
234
277
  task: options.pinTask === false ? request.task : task.task,
235
- ...task.briefing !== void 0 ? { briefing: task.briefing } : {},
278
+ ...options.pinBriefing === false ? request.briefing !== void 0 ? { briefing: request.briefing } : {} : task.briefing !== void 0 ? { briefing: task.briefing } : {},
279
+ ...task.worktree === true ? {
280
+ worktree: true,
281
+ apply: task.apply ?? "merge",
282
+ ...task.worktreeDestination === void 0 ? {} : { taskWorktreeDestination: task.worktreeDestination }
283
+ } : {},
284
+ ...task.intent !== void 0 ? { intent: structuredClone(task.intent) } : {},
285
+ ...task.resolvedVerification !== void 0 ? { resolvedVerification: task.resolvedVerification.map((check) => ({ ...check, argv: [...check.argv] })) } : {},
236
286
  target: task.target,
237
287
  model: task.model,
238
288
  node: task.node,
@@ -281,6 +331,12 @@ function taskViews(args) {
281
331
  };
282
332
  const briefing = "briefing" in record ? str(record.briefing) : str(args.briefing);
283
333
  if (briefing !== void 0) view.briefing = briefing;
334
+ const worktree = "worktree" in record ? record.worktree : args.worktree;
335
+ if (worktree === true) {
336
+ view.worktree = true;
337
+ const apply = "apply" in record ? record.apply : args.apply;
338
+ view.apply = apply === "preserve" ? "preserve" : "merge";
339
+ }
284
340
  const model = str(record.model) ?? sharedModel;
285
341
  if (model !== void 0) view.model = model;
286
342
  const node = str(record.node) ?? sharedNode;
@@ -315,6 +371,7 @@ function canonicalCandidates(value) {
315
371
  function topologyOf(args) {
316
372
  if (isRecord2(args.apply_winner)) return "compete";
317
373
  if (args.mode === "compete") return "compete";
374
+ if (args.mode === "council") return "council";
318
375
  if (args.review === true || isRecord2(args.review)) return "review";
319
376
  if (args.detach === true) return "detached";
320
377
  if (args.mode === "sequential") return "sequential";
@@ -348,6 +405,15 @@ function renderPlanText(topology, tasks, costCeilingUsd, deadlineMs, source, max
348
405
  lines.push(
349
406
  ` ${index + 1}.${role} agent=${safeField(task.agent)}${target}${model}${node}${failover}${routingText} task=${JSON.stringify(safeField(task.task))}`
350
407
  );
408
+ if (task.council !== void 0) {
409
+ lines.push(
410
+ ` council label=${safeField(task.council.label)} color=${safeField(task.council.color ?? "none")} round=${task.council.round} rounds=${task.council.rounds} synthesis=${task.council.synthesis}`
411
+ );
412
+ }
413
+ if (task.worktree === true)
414
+ lines.push(
415
+ ` worktree=true apply=${task.apply ?? "merge"} destination=${safeField(task.worktreeDestination ?? "unresolved")}`
416
+ );
351
417
  if (task.allowedCandidates !== void 0) {
352
418
  for (const [candidateIndex, candidate] of task.allowedCandidates.entries()) {
353
419
  lines.push(
@@ -382,6 +448,15 @@ function renderPlanText(topology, tasks, costCeilingUsd, deadlineMs, source, max
382
448
  ` briefing_bytes=${Buffer.byteLength(task.briefing, "utf8")} briefing_sha256=${createHash("sha256").update(task.briefing, "utf8").digest("hex")} briefing_preview=${JSON.stringify(safeField(task.briefing))}`
383
449
  );
384
450
  }
451
+ if (task.intent !== void 0) {
452
+ const serialized = JSON.stringify(task.intent);
453
+ lines.push(` intent_sha256=${createHash("sha256").update(serialized, "utf8").digest("hex")}`);
454
+ }
455
+ for (const check of task.resolvedVerification ?? []) {
456
+ lines.push(
457
+ ` verification check=${safeField(check.check)} argv=${JSON.stringify(check.argv)} cwd=${JSON.stringify(check.cwd)} timeout_ms=${check.timeoutMs}`
458
+ );
459
+ }
385
460
  }
386
461
  return lines.join("\n");
387
462
  }
@@ -391,12 +466,16 @@ function isResolvedTask(value) {
391
466
  "agent",
392
467
  "task",
393
468
  "briefing",
469
+ "worktree",
470
+ "apply",
471
+ "worktreeDestination",
394
472
  "model",
395
473
  "node",
396
474
  "nodeKind",
397
475
  "nodeHost",
398
476
  "target",
399
477
  "role",
478
+ "council",
400
479
  "position",
401
480
  "routingIntent",
402
481
  "failover",
@@ -409,7 +488,9 @@ function isResolvedTask(value) {
409
488
  "expectedResultContract",
410
489
  "authorityGrant",
411
490
  "agentDecision",
412
- "wave"
491
+ "wave",
492
+ "intent",
493
+ "resolvedVerification"
413
494
  ]);
414
495
  if (Object.keys(value).some((key) => !allowedKeys.has(key))) return false;
415
496
  for (const key of [
@@ -432,16 +513,24 @@ function isResolvedTask(value) {
432
513
  "wave"
433
514
  ])
434
515
  if (!Object.hasOwn(value, key)) return false;
435
- if (value.role !== void 0 && value.role !== "task" && value.role !== "builder" && value.role !== "reviewer" && value.role !== "candidate" && value.role !== "judge") {
516
+ if (value.role !== void 0 && value.role !== "task" && value.role !== "builder" && value.role !== "reviewer" && value.role !== "candidate" && value.role !== "judge" && value.role !== "member" && value.role !== "synthesis") {
436
517
  return false;
437
518
  }
438
519
  if (value.position !== void 0 && (!Number.isInteger(value.position) || Number(value.position) < 1)) return false;
520
+ if (value.council !== void 0) {
521
+ if (!isRecord2(value.council) || typeof value.council.label !== "string" || value.council.label.length === 0 || value.council.color !== void 0 && typeof value.council.color !== "string" || !Number.isInteger(value.council.round) || Number(value.council.round) < 1 || !Number.isInteger(value.council.rounds) || Number(value.council.rounds) < 1 || value.council.synthesis !== "none" && value.council.synthesis !== "judge" && value.council.synthesis !== "vote")
522
+ return false;
523
+ }
439
524
  if (value.nodeKind !== "local" && value.nodeKind !== "ssh") return false;
440
525
  if (value.nodeKind === "ssh" && (typeof value.nodeHost !== "string" || value.nodeHost.trim().length === 0))
441
526
  return false;
442
527
  if (value.nodeKind === "local" && value.nodeHost !== void 0) return false;
443
528
  if (value.briefing !== void 0 && (typeof value.briefing !== "string" || value.briefing.trim().length === 0))
444
529
  return false;
530
+ if (value.worktree !== void 0 && value.worktree !== true) return false;
531
+ if (value.apply !== void 0 && value.apply !== "merge" && value.apply !== "preserve") return false;
532
+ if (value.apply !== void 0 && value.worktree !== true) return false;
533
+ if (value.worktreeDestination !== void 0 && typeof value.worktreeDestination !== "string") return false;
445
534
  if (failoverModeOf(value.failover) === void 0) return false;
446
535
  if (!isRoutingIntent(value.routingIntent)) return false;
447
536
  if (value.routeApproval !== null && !isApprovedAssignmentRoute(value.routeApproval)) return false;
@@ -455,6 +544,11 @@ function isResolvedTask(value) {
455
544
  return false;
456
545
  if (value.authorityGrant !== null && !isAuthorityGrant(value.authorityGrant)) return false;
457
546
  if (value.agentDecision !== null && !isAgentDecision(value.agentDecision)) return false;
547
+ if (value.intent !== void 0 && !isDispatchIntent(value.intent)) return false;
548
+ if (value.resolvedVerification !== void 0 && (!Array.isArray(value.resolvedVerification) || !value.resolvedVerification.every(
549
+ (check) => isRecord2(check) && typeof check.check === "string" && Array.isArray(check.argv) && check.argv.every((arg) => typeof arg === "string") && typeof check.cwd === "string" && typeof check.timeoutMs === "number"
550
+ )))
551
+ return false;
458
552
  if (value.failover === "approved") {
459
553
  if (canonicalCandidates(value.allowedCandidates) === null) return false;
460
554
  } else if (value.allowedCandidates !== void 0) {
@@ -468,11 +562,16 @@ var RESULT_CONTRACT_KINDS = /* @__PURE__ */ new Set([
468
562
  "architect-plan",
469
563
  "scout-report",
470
564
  "verifier-report",
565
+ "council-report",
471
566
  "debugger-report",
472
567
  "research-report",
473
568
  "mutation-report",
474
569
  "provenance-report",
475
- "external-delegation"
570
+ "oracle-report",
571
+ "external-delegation",
572
+ "artifact-report",
573
+ "context-handbook",
574
+ "delegation-plan"
476
575
  ]);
477
576
  function isAuthorityGrant(value) {
478
577
  return isRecord2(value) && Object.keys(value).sort().join("\0") === "basis\0requested" && AGENT_AUTOMATION_AUTHORITIES.includes(value.requested) && (value.basis === "operator-plan-approval" || value.basis === "full-auto-policy");
@@ -536,7 +635,7 @@ function resolvedDispatchPlanFromArgs(args) {
536
635
  };
537
636
  }
538
637
  if (value.tasks.length === 0 && confirmation === void 0) return null;
539
- if (value.topology !== "parallel" && value.topology !== "sequential" && value.topology !== "pipeline" && value.topology !== "review" && value.topology !== "compete" && value.topology !== "detached" && value.topology !== "fleet") {
638
+ if (value.topology !== "parallel" && value.topology !== "sequential" && value.topology !== "pipeline" && value.topology !== "review" && value.topology !== "compete" && value.topology !== "council" && value.topology !== "detached" && value.topology !== "fleet") {
540
639
  return null;
541
640
  }
542
641
  if (typeof value.costCeilingUsd !== "number" || !Number.isFinite(value.costCeilingUsd) || value.costCeilingUsd <= 0) {
@@ -567,6 +666,11 @@ function resolvedDispatchPlanFromArgs(args) {
567
666
  agent: task.agent.trim(),
568
667
  task: task.task.trim(),
569
668
  ...task.briefing !== void 0 ? { briefing: task.briefing.trim() } : {},
669
+ ...task.worktree === true ? {
670
+ worktree: true,
671
+ apply: task.apply ?? "merge",
672
+ ...task.worktreeDestination === void 0 ? {} : { worktreeDestination: task.worktreeDestination }
673
+ } : {},
570
674
  model: task.model.trim(),
571
675
  node: task.node.trim(),
572
676
  nodeKind: task.nodeKind,
@@ -585,7 +689,10 @@ function resolvedDispatchPlanFromArgs(args) {
585
689
  ...task.failover === "approved" && canonicalCandidates(task.allowedCandidates) !== null ? { allowedCandidates: canonicalCandidates(task.allowedCandidates) } : {},
586
690
  ...task.nodeHost !== void 0 ? { nodeHost: task.nodeHost.trim() } : {},
587
691
  ...task.role !== void 0 ? { role: task.role } : {},
588
- ...task.position !== void 0 ? { position: task.position } : {}
692
+ ...task.council !== void 0 ? { council: { ...task.council } } : {},
693
+ ...task.position !== void 0 ? { position: task.position } : {},
694
+ ...task.intent !== void 0 ? { intent: structuredClone(task.intent) } : {},
695
+ ...task.resolvedVerification !== void 0 ? { resolvedVerification: task.resolvedVerification.map((check) => ({ ...check, argv: [...check.argv] })) } : {}
589
696
  })),
590
697
  costCeilingUsd: value.costCeilingUsd,
591
698
  deadlineMs: value.deadlineMs,
@@ -621,7 +728,7 @@ function describeDispatchPlan(rawArgs) {
621
728
  const maxWorkers = resolved?.maxWorkers ?? null;
622
729
  const onFailure = resolved?.onFailure ?? null;
623
730
  const remote = tasks.some((task) => task.node !== void 0 && task.node !== "local");
624
- const planScale = !preparationFailed && args.list !== true && (tasks.length > 1 || source !== null || topology === "compete" || remote || tasks.some((task) => task.failover === "approved") || confirmation !== void 0 || isRecord2(args.apply_winner));
731
+ const planScale = !preparationFailed && args.list !== true && (tasks.length > 1 || source !== null || topology === "compete" || topology === "council" || remote || tasks.some((task) => task.failover === "approved") || confirmation !== void 0 || isRecord2(args.apply_winner));
625
732
  const text = renderPlanText(topology, tasks, costCeilingUsd, deadlineMs, source, maxWorkers, onFailure, confirmation);
626
733
  return {
627
734
  topology,
@@ -649,4 +756,4 @@ export {
649
756
  withResolvedDispatchPlan,
650
757
  describeDispatchPlan
651
758
  };
652
- //# sourceMappingURL=chunk-EYPA3EGJ.js.map
759
+ //# sourceMappingURL=chunk-EELBMBT6.js.map
@@ -5,46 +5,48 @@ import {
5
5
  import {
6
6
  SchedulingDomainModule,
7
7
  createPromptsDomainModule
8
- } from "./chunk-XF5N4U5A.js";
8
+ } from "./chunk-EBEFWSGL.js";
9
9
  import {
10
- AgentsDomainModule,
11
10
  SafetyDomainModule
12
- } from "./chunk-LYF7OHWH.js";
11
+ } from "./chunk-J7PIKKWC.js";
13
12
  import {
14
13
  ConfigDomainModule,
15
14
  loadDomains
16
- } from "./chunk-R46L2BIR.js";
15
+ } from "./chunk-BMWK7ZIZ.js";
17
16
  import {
18
17
  createObservabilityDomainModule
19
- } from "./chunk-K7T3E2SR.js";
18
+ } from "./chunk-5UJ6ECTS.js";
20
19
  import {
21
20
  fallbackBootstrapOutput
22
- } from "./chunk-CYQKWTG3.js";
21
+ } from "./chunk-4DWFMQDR.js";
23
22
  import {
24
23
  renderCodewikiDigest
25
24
  } from "./chunk-5WIGXA4T.js";
26
25
  import {
27
26
  DispatchDomainModule
28
- } from "./chunk-QM3F2GKX.js";
27
+ } from "./chunk-UUANF5CR.js";
29
28
  import {
30
29
  SessionDomainModule
31
- } from "./chunk-CJUB2JJ2.js";
30
+ } from "./chunk-6TUKSZVF.js";
32
31
  import {
33
32
  ResourcesDomainModule
34
- } from "./chunk-MFFY33HR.js";
33
+ } from "./chunk-THKY7CD7.js";
34
+ import {
35
+ AgentsDomainModule
36
+ } from "./chunk-UVDSQ6LW.js";
35
37
  import {
36
38
  MiddlewareDomainModule
37
- } from "./chunk-ZXF4XRKW.js";
39
+ } from "./chunk-XEGB6BCN.js";
38
40
  import {
39
41
  UnsupportedResponseSchemaError,
40
42
  isResponseSchemaRejection
41
- } from "./chunk-XXQNGV4M.js";
43
+ } from "./chunk-CEYBNUGC.js";
42
44
  import {
43
45
  parseJsonObjectPayload
44
- } from "./chunk-EKY57CSP.js";
46
+ } from "./chunk-DJNLUABN.js";
45
47
  import {
46
48
  ProvidersDomainModule
47
- } from "./chunk-DJVECN66.js";
49
+ } from "./chunk-VQNODYQ4.js";
48
50
  import {
49
51
  init_esm_shims
50
52
  } from "./chunk-3R73A4XB.js";
@@ -673,4 +675,4 @@ export {
673
675
  validateInitOptions,
674
676
  bootstrapInputFromInitOptions
675
677
  };
676
- //# sourceMappingURL=chunk-CKXWIANG.js.map
678
+ //# sourceMappingURL=chunk-EOOQZZDE.js.map