@iowarp/clio-coder 0.3.7 → 0.3.8

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 (223) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +7 -2
  3. package/dist/{acp-SK4MD6MM.js → acp-U67UHUK2.js} +13 -13
  4. package/dist/{agents-2FN2K6ME.js → agents-YU6SGALZ.js} +35 -33
  5. package/dist/assets/codewiki.json +1 -1
  6. package/dist/{auth-QIYZWM5I.js → auth-5ZPJOIVG.js} +32 -24
  7. package/dist/builtins-C6JMZVV6.js +17 -0
  8. package/dist/{chunk-YD734TPH.js → chunk-26LEYJZH.js} +2 -2
  9. package/dist/{chunk-TSHXZTOQ.js → chunk-2HEJ2F35.js} +5 -5
  10. package/dist/{chunk-WJHBC77E.js → chunk-2HFZQUHL.js} +5 -5
  11. package/dist/{chunk-FO5ZOVUY.js → chunk-3BINW3FP.js} +5 -5
  12. package/dist/{chunk-EOOQZZDE.js → chunk-4SPRNWDE.js} +18 -18
  13. package/dist/{chunk-EBEFWSGL.js → chunk-5DHKRSMQ.js} +7 -7
  14. package/dist/{chunk-OBMAI2DP.js → chunk-5H3GB5BO.js} +11 -9
  15. package/dist/{chunk-JTSEDYVQ.js → chunk-5Q2VVUKB.js} +7 -7
  16. package/dist/{chunk-VQNODYQ4.js → chunk-7RFXX52T.js} +294 -3704
  17. package/dist/{chunk-XEGB6BCN.js → chunk-7RGZWPB6.js} +5 -5
  18. package/dist/{chunk-GH5622CP.js → chunk-A2NJGIB3.js} +2 -2
  19. package/dist/{chunk-CEYBNUGC.js → chunk-A3WNZD3P.js} +323 -27
  20. package/dist/{chunk-D4MDIG46.js → chunk-B5CSFE7B.js} +7 -7
  21. package/dist/{chunk-2SFS6XQE.js → chunk-DGSYXYMX.js} +3 -2
  22. package/dist/{chunk-ZWLZP4ZT.js → chunk-DYIM5TJT.js} +98 -12
  23. package/dist/{chunk-KCMKRQX4.js → chunk-E77JEWSD.js} +42 -49
  24. package/dist/{chunk-J7PIKKWC.js → chunk-EMYUUSFG.js} +7 -7
  25. package/dist/{chunk-JRIO5UD2.js → chunk-EQ63NRB7.js} +5 -5
  26. package/dist/{chunk-UVDSQ6LW.js → chunk-FBVTI2TJ.js} +74 -28
  27. package/dist/{chunk-BMWK7ZIZ.js → chunk-FHJEP5SW.js} +13 -13
  28. package/dist/{chunk-FOT2FX5J.js → chunk-GN57SG4G.js} +7 -7
  29. package/dist/{chunk-SROCI7ZU.js → chunk-GPIEI3LY.js} +5 -5
  30. package/dist/{chunk-UFQ3F4FW.js → chunk-GU2UIAFZ.js} +4 -4
  31. package/dist/{chunk-UND3GU2L.js → chunk-H7IXIC72.js} +2 -2
  32. package/dist/{chunk-VREKEFLL.js → chunk-HLE42MG7.js} +3 -3
  33. package/dist/{chunk-465YSENW.js → chunk-IFBNV6H6.js} +3 -3
  34. package/dist/{chunk-LADCF22A.js → chunk-IGWKHNIQ.js} +113 -54
  35. package/dist/chunk-IIZWH4XA.js +172 -0
  36. package/dist/{chunk-UHXRNZ2J.js → chunk-IJ7RPIYJ.js} +4 -4
  37. package/dist/{chunk-M4AKACEO.js → chunk-J3YUBZWY.js} +2 -2
  38. package/dist/{chunk-AB4XIIVB.js → chunk-JOZYP4GM.js} +6 -6
  39. package/dist/{chunk-ZGH7FGS5.js → chunk-K4XHGFR5.js} +742 -12
  40. package/dist/{chunk-EELBMBT6.js → chunk-KTYTFRMB.js} +62 -5
  41. package/dist/chunk-LU7P4LHA.js +33 -0
  42. package/dist/{chunk-DQA7QLMD.js → chunk-ME6CCNFO.js} +9 -24
  43. package/dist/{chunk-KZ2H5X4G.js → chunk-MXKJU4JB.js} +88 -14
  44. package/dist/{chunk-DMD2AGVS.js → chunk-N22QMJKY.js} +20 -18
  45. package/dist/chunk-NMPKI6XL.js +3006 -0
  46. package/dist/chunk-NUGM5KR6.js +165 -0
  47. package/dist/{chunk-5C77SEEY.js → chunk-P43ETTHK.js} +2 -2
  48. package/dist/{chunk-JNXPYBB4.js → chunk-PMDBGQSJ.js} +2 -2
  49. package/dist/chunk-PT7HYKEM.js +165 -0
  50. package/dist/{chunk-GEYXPTRF.js → chunk-RWSI4YD7.js} +2 -2
  51. package/dist/{chunk-C4JBQ5SR.js → chunk-TANS5ZJS.js} +6 -6
  52. package/dist/{chunk-YTYFXUI3.js → chunk-TB5666IT.js} +9 -9
  53. package/dist/{chunk-UUANF5CR.js → chunk-TLQJPP24.js} +375 -687
  54. package/dist/{chunk-OB5HIGJY.js → chunk-TT36MB5S.js} +2 -1
  55. package/dist/{chunk-DJNLUABN.js → chunk-TTHACPOM.js} +135 -17
  56. package/dist/{chunk-6M7VS3J3.js → chunk-TYPGUK6W.js} +4 -4
  57. package/dist/{chunk-THKY7CD7.js → chunk-U6MBIEMB.js} +108 -24
  58. package/dist/{chunk-PD3MESLB.js → chunk-VAWNZU7Z.js} +4 -4
  59. package/dist/{chunk-IR4CFBFN.js → chunk-VCBR6CU7.js} +12 -12
  60. package/dist/{chunk-WHJYKASB.js → chunk-VHN4MY6O.js} +2 -2
  61. package/dist/{chunk-MXI6J5JF.js → chunk-VWZOAB7K.js} +10 -10
  62. package/dist/{chunk-QCTRSGHQ.js → chunk-WLFILSD5.js} +36 -36
  63. package/dist/{chunk-5UJ6ECTS.js → chunk-WNIJTQQK.js} +6 -6
  64. package/dist/{chunk-4DWFMQDR.js → chunk-WSB3FPX7.js} +68 -20
  65. package/dist/{chunk-3HAPLH5M.js → chunk-WWCZ5F23.js} +112 -10
  66. package/dist/{chunk-X2KV5FXT.js → chunk-WXY7KU3G.js} +2 -2
  67. package/dist/{chunk-PPAMZ32Z.js → chunk-XK56QHLX.js} +6 -1
  68. package/dist/{chunk-DOOEX22V.js → chunk-XWSF374K.js} +4 -4
  69. package/dist/{chunk-6TUKSZVF.js → chunk-YS5VLNH5.js} +8 -8
  70. package/dist/{chunk-ZZMN5OM4.js → chunk-ZNLWCMVZ.js} +2 -2
  71. package/dist/{chunk-WHGPSPT5.js → chunk-ZVJ5BLO2.js} +2 -2
  72. package/dist/cli/index.js +31 -31
  73. package/dist/{clio-WBVQEBKO.js → clio-QVTYJ57A.js} +8 -8
  74. package/dist/code-nav-FGGFIE7L.js +2 -2
  75. package/dist/codewiki/build-worker.js +4 -4
  76. package/dist/{components-F7OEATSO.js → components-ZFA3SAER.js} +8 -8
  77. package/dist/{config-TRBL3RCF.js → config-LW5IJFQN.js} +58 -53
  78. package/dist/{configure-OLCVPHNM.js → configure-7XIZCOU4.js} +26 -21
  79. package/dist/{context-XEWE3MOJ.js → context-L3WL3X7K.js} +47 -41
  80. package/dist/{context-WFPKQSM6.js → context-N52ZA626.js} +22 -22
  81. package/dist/{context-MJIJ6GOX.js → context-Y6Y7QPR6.js} +12 -12
  82. package/dist/{context-clear-KNOS2JPB.js → context-clear-MBQRLSDQ.js} +47 -41
  83. package/dist/{context-index-SSR5ECNE.js → context-index-HVMFQHK3.js} +5 -5
  84. package/dist/{context-working-set-EUXAZI6N.js → context-working-set-GS6DSO7F.js} +14 -14
  85. package/dist/{dispatch-runner-B7MTOVKL.js → dispatch-runner-22ZCNOM3.js} +83 -55
  86. package/dist/{docs-FLJTIDSE.js → docs-7LQ23DLM.js} +8 -8
  87. package/dist/{doctor-RN4YKO2X.js → doctor-M7YEDGAE.js} +24 -20
  88. package/dist/{eval-RUBJVSNQ.js → eval-BEC2WHDA.js} +71 -19
  89. package/dist/{evidence-JZNBUOQZ.js → evidence-REJUMSKM.js} +62 -56
  90. package/dist/{evolve-FJVC4KKI.js → evolve-PY5ZBA5K.js} +41 -35
  91. package/dist/{extensions-IQL36S7K.js → extensions-HVKU65YU.js} +6 -6
  92. package/dist/{fleet-BDKYJFCP.js → fleet-7WZEWRFA.js} +72 -67
  93. package/dist/{fleet-commands-ZFIWZSB3.js → fleet-commands-UVHWM76J.js} +10 -10
  94. package/dist/{fleet-graph-Y6HPXIVF.js → fleet-graph-6ULH7PES.js} +13 -13
  95. package/dist/{fleet-preflight-BHSNPBMH.js → fleet-preflight-J53T6CCE.js} +5 -5
  96. package/dist/{fleet-validate-BIYREGIK.js → fleet-validate-72PC4SLA.js} +17 -17
  97. package/dist/{init-LQUB5COQ.js → init-OG3TPGQG.js} +61 -56
  98. package/dist/{library-NJAHIGG4.js → library-CNTMPLRF.js} +18 -18
  99. package/dist/{memory-OG6HOYKM.js → memory-6IS7F275.js} +43 -37
  100. package/dist/{models-5ZG5XY7J.js → models-ENRJDA5W.js} +33 -28
  101. package/dist/{monitor-TJ7AMTGB.js → monitor-XLDVO7TN.js} +56 -38
  102. package/dist/{orchestrator-WZYB54DM.js → orchestrator-6KSPYRHA.js} +421 -303
  103. package/dist/{paths-XUC7GS6E.js → paths-DBXMZMDU.js} +5 -5
  104. package/dist/registry-LG64LTF4.js +11 -0
  105. package/dist/{reset-PXQT45IY.js → reset-RZ4ER727.js} +10 -10
  106. package/dist/{run-FQ74YF62.js → run-Y2CNK5RU.js} +79 -74
  107. package/dist/{share-FW7SVCL3.js → share-A55GYP6Z.js} +16 -16
  108. package/dist/{skills-7E7IRB3R.js → skills-ALC5J6AT.js} +19 -19
  109. package/dist/{skills-eval-LI75W6OK.js → skills-eval-JPBEBYQU.js} +52 -47
  110. package/dist/support-MIETYA5E.js +38 -0
  111. package/dist/{targets-4CIFKCTW.js → targets-VGNXIR3S.js} +42 -33
  112. package/dist/{terminal-lease-WUZY7ZV5.js → terminal-lease-WOBR64YA.js} +3 -3
  113. package/dist/{uninstall-7FV7IP4E.js → uninstall-ZJF5H5ZN.js} +8 -8
  114. package/dist/{upgrade-K2HVIVMQ.js → upgrade-FUSUAGHR.js} +27 -25
  115. package/dist/{usage-GTZELZQX.js → usage-N4MKVHKD.js} +51 -46
  116. package/dist/{verifiers-RLAHT27O.js → verifiers-YAWOJ3H2.js} +13 -13
  117. package/dist/{verify-BX3BRKH5.js → verify-LTDHYBGY.js} +9 -9
  118. package/dist/{wiki-generate-ASIFASCN.js → wiki-generate-6M7GHTBJ.js} +66 -61
  119. package/dist/worker/entry.js +68 -61
  120. package/docs/alcf-provider.md +1 -1
  121. package/docs/architecture.md +1 -1
  122. package/docs/artifact-versions.md +6 -5
  123. package/docs/built-in-agents.md +1 -1
  124. package/docs/commands-and-modes.md +2 -2
  125. package/docs/configuration-and-targets.md +8 -3
  126. package/docs/context-engine.md +1 -1
  127. package/docs/documentation-guide.md +1 -1
  128. package/docs/eval-runner.md +1 -1
  129. package/docs/evals-internal.md +1 -1
  130. package/docs/evidence-and-memory.md +70 -6
  131. package/docs/evolution.md +1 -1
  132. package/docs/extensions-and-sharing.md +1 -1
  133. package/docs/fleet-dispatch.md +34 -9
  134. package/docs/glossary.md +21 -1
  135. package/docs/installation-and-lifecycle.md +1 -1
  136. package/docs/middleware-and-components.md +1 -1
  137. package/docs/model-catalog.md +1 -1
  138. package/docs/observability.md +2 -2
  139. package/docs/proactive-memory.md +1 -1
  140. package/docs/prompt-envelope-and-tools.md +4 -2
  141. package/docs/provider-adapter-cookbook.md +1 -1
  142. package/docs/release-cut-checklist.md +41 -38
  143. package/docs/safety-model.md +1 -1
  144. package/docs/scientific-validation.md +1 -1
  145. package/docs/skills-marketplace.md +1 -1
  146. package/docs/tool-usage.md +1 -1
  147. package/docs/trace-store.md +1 -1
  148. package/docs/tui-design.md +1 -1
  149. package/docs/worker-dispatch-mechanics.md +1 -1
  150. package/package.json +1 -2
  151. package/src/cli/argv.ts +5 -0
  152. package/src/cli/configure.ts +107 -23
  153. package/src/cli/doctor.ts +5 -1
  154. package/src/cli/evidence.ts +30 -25
  155. package/src/cli/fleet-preflight.ts +2 -12
  156. package/src/cli/shared.ts +1 -0
  157. package/src/cli/targets.ts +4 -1
  158. package/src/cli/validate-model.ts +60 -5
  159. package/src/core/bus-events.ts +25 -0
  160. package/src/core/commit-attribution.ts +4 -4
  161. package/src/core/path-boundary.ts +100 -0
  162. package/src/domains/agents/extension.ts +2 -11
  163. package/src/domains/agents/fleet-contract.ts +30 -12
  164. package/src/domains/agents/recipe.ts +7 -1
  165. package/src/domains/agents/registry.ts +73 -5
  166. package/src/domains/agents/result-contract.ts +128 -17
  167. package/src/domains/agents/write-boundary.ts +15 -50
  168. package/src/domains/context/project-rules.ts +51 -1
  169. package/src/domains/dispatch/assignment-reconcile.ts +22 -5
  170. package/src/domains/dispatch/assignment-store.ts +151 -14
  171. package/src/domains/dispatch/contract.ts +15 -1
  172. package/src/domains/dispatch/delegation-plan.ts +2 -5
  173. package/src/domains/dispatch/execution-role.ts +9 -1
  174. package/src/domains/dispatch/extension.ts +156 -67
  175. package/src/domains/dispatch/fleet-run.ts +57 -3
  176. package/src/domains/dispatch/gate-role-prompts.ts +38 -0
  177. package/src/domains/dispatch/index.ts +3 -1
  178. package/src/domains/dispatch/intent-requirements.ts +40 -0
  179. package/src/domains/dispatch/intent.ts +84 -8
  180. package/src/domains/dispatch/path-scope.ts +370 -0
  181. package/src/domains/dispatch/receipt-integrity.ts +2 -1
  182. package/src/domains/dispatch/types.ts +14 -7
  183. package/src/domains/dispatch/validation.ts +6 -3
  184. package/src/domains/dispatch/write-boundary-enforcer.ts +45 -0
  185. package/src/domains/dispatch/write-boundary.ts +201 -22
  186. package/src/domains/eval/metrics/evidence.ts +79 -2
  187. package/src/domains/eval/runners/clio-run.ts +12 -2
  188. package/src/domains/evidence/build.ts +69 -11
  189. package/src/domains/evidence/index.ts +21 -0
  190. package/src/domains/evidence/provenance.ts +46 -11
  191. package/src/domains/evidence/trust-projection.ts +274 -0
  192. package/src/domains/evidence/trust-status.ts +145 -17
  193. package/src/domains/evidence/types.ts +4 -0
  194. package/src/domains/extensions/discovery.ts +88 -1
  195. package/src/domains/extensions/resources.ts +20 -8
  196. package/src/domains/extensions/state.ts +6 -2
  197. package/src/domains/extensions/types.ts +4 -1
  198. package/src/domains/lifecycle/doctor.ts +140 -1
  199. package/src/domains/prompts/contract.ts +3 -5
  200. package/src/domains/providers/extension.ts +30 -2
  201. package/src/domains/resources/common-loader.ts +3 -0
  202. package/src/domains/resources/prompts/loader.ts +119 -14
  203. package/src/domains/safety/policy-engine.ts +5 -5
  204. package/src/domains/safety/run-effects.ts +64 -1
  205. package/src/domains/safety/scope.ts +7 -12
  206. package/src/engine/acp/server.ts +4 -1
  207. package/src/engine/prompt-templates.ts +18 -1
  208. package/src/engine/worker-runtime.ts +6 -3
  209. package/src/interactive/dispatch-board.ts +53 -3
  210. package/src/interactive/interactive-event-projection.ts +14 -0
  211. package/src/interactive/overlays/settings.ts +141 -47
  212. package/src/interactive/slash-commands.ts +7 -2
  213. package/src/interactive/view/artifacts.ts +42 -9
  214. package/src/interactive/view/view-overlay.ts +15 -3
  215. package/src/interactive/worker-receipts.ts +14 -2
  216. package/src/interactive/worker-stream.ts +8 -0
  217. package/src/tools/dispatch-admission.ts +12 -13
  218. package/src/tools/dispatch-arguments.ts +27 -0
  219. package/src/tools/dispatch-plan.ts +29 -0
  220. package/src/tools/dispatch-runner.ts +48 -13
  221. package/src/tools/monitor.ts +13 -0
  222. package/src/tools/worker-evidence.ts +19 -13
  223. package/src/worker/spec-contract.ts +2 -1
@@ -1,4 +1,13 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ ShareDomainModule
4
+ } from "./chunk-GN57SG4G.js";
5
+ import {
6
+ bootstrapInputFromInitOptions,
7
+ modelBootstrapGenerate,
8
+ resolveBootstrapRoute
9
+ } from "./chunk-4SPRNWDE.js";
10
+ import "./chunk-J5Q24KAG.js";
2
11
  import {
3
12
  DEFAULT_KEEP_RECENT_TOKENS,
4
13
  DEFAULT_RESERVE_TOKENS,
@@ -12,7 +21,7 @@ import {
12
21
  projectWorkingSet,
13
22
  resolveWorkingSetPolicy,
14
23
  selectVisibleEntries
15
- } from "./chunk-WHJYKASB.js";
24
+ } from "./chunk-VHN4MY6O.js";
16
25
  import {
17
26
  assistantSessionPayload,
18
27
  backendCacheVerdict,
@@ -45,41 +54,73 @@ import {
45
54
  toolNamesFromAgentState,
46
55
  toolResultSummary,
47
56
  toolSignatureFromState
48
- } from "./chunk-WJHBC77E.js";
49
- import {
50
- ShareDomainModule
51
- } from "./chunk-FOT2FX5J.js";
52
- import {
53
- bootstrapInputFromInitOptions,
54
- modelBootstrapGenerate,
55
- resolveBootstrapRoute
56
- } from "./chunk-EOOQZZDE.js";
57
- import "./chunk-J5Q24KAG.js";
57
+ } from "./chunk-2HFZQUHL.js";
58
58
  import {
59
59
  SchedulingDomainModule,
60
60
  createPromptsDomainModule,
61
61
  renderAgentCatalogSectionsFromSpecs
62
- } from "./chunk-EBEFWSGL.js";
62
+ } from "./chunk-5DHKRSMQ.js";
63
+ import {
64
+ flushRawStdout,
65
+ writeRawStdout
66
+ } from "./chunk-2VTFPG5O.js";
63
67
  import {
64
68
  SafetyDomainModule
65
- } from "./chunk-J7PIKKWC.js";
69
+ } from "./chunk-EMYUUSFG.js";
66
70
  import {
67
71
  LifecycleDomainModule,
68
72
  describeUpgradeNotice
69
- } from "./chunk-JTSEDYVQ.js";
73
+ } from "./chunk-5Q2VVUKB.js";
70
74
  import {
71
75
  ensureClioState,
72
76
  takeUpgradeNotice
73
- } from "./chunk-3HAPLH5M.js";
77
+ } from "./chunk-WWCZ5F23.js";
74
78
  import {
75
79
  ConfigDomainModule,
76
80
  createConfigDomainModule,
77
81
  loadDomains
78
- } from "./chunk-BMWK7ZIZ.js";
82
+ } from "./chunk-FHJEP5SW.js";
83
+ import {
84
+ discoverDeclaredChecks
85
+ } from "./chunk-VAWNZU7Z.js";
86
+ import {
87
+ buildRecallFields,
88
+ recallErrorMessage,
89
+ recallParentTurnId,
90
+ recallableRefListing,
91
+ resolveRecall
92
+ } from "./chunk-ZNLWCMVZ.js";
93
+ import {
94
+ foldWorkingSet
95
+ } from "./chunk-TZSKNMZG.js";
96
+ import {
97
+ classifyLibraryRequirements,
98
+ createResourcesDomainModule,
99
+ discoverLibrary,
100
+ installLibraryPlan,
101
+ libraryEntryInstalled,
102
+ libraryEntryPin,
103
+ libraryEntryRef,
104
+ libraryInstallPath,
105
+ planLibraryInstall
106
+ } from "./chunk-U6MBIEMB.js";
107
+ import {
108
+ AgentsDomainModule
109
+ } from "./chunk-FBVTI2TJ.js";
110
+ import "./chunk-DR52UMZW.js";
111
+ import {
112
+ MARKETPLACE_UNCONFIGURED,
113
+ discoverMarketplaceSkills,
114
+ getMarketplaceSkills,
115
+ installSkill,
116
+ modelVisibleSkills,
117
+ parseSkillCommand
118
+ } from "./chunk-TANS5ZJS.js";
119
+ import "./chunk-DGSYXYMX.js";
79
120
  import {
80
121
  compileScoutTransition,
81
122
  createDispatchRunEventRegistry
82
- } from "./chunk-AB4XIIVB.js";
123
+ } from "./chunk-JOZYP4GM.js";
83
124
  import {
84
125
  monitorToolSurface
85
126
  } from "./chunk-FJ3H4MN5.js";
@@ -90,24 +131,91 @@ import {
90
131
  costAggregateForAmount,
91
132
  formatCostAggregate,
92
133
  readAccountabilitySummary
93
- } from "./chunk-5UJ6ECTS.js";
134
+ } from "./chunk-WNIJTQQK.js";
94
135
  import {
95
136
  appendOutOfTurnUsageRow
96
137
  } from "./chunk-GWS3VEIW.js";
97
138
  import "./chunk-HFSBBKSQ.js";
98
- import "./chunk-VREKEFLL.js";
139
+ import "./chunk-HLE42MG7.js";
99
140
  import {
100
141
  steerToolSurface
101
142
  } from "./chunk-WEH5XRJQ.js";
143
+ import "./chunk-26LEYJZH.js";
102
144
  import {
103
- flushRawStdout,
104
- writeRawStdout
105
- } from "./chunk-2VTFPG5O.js";
106
- import "./chunk-YD734TPH.js";
145
+ ClioEditor,
146
+ CombinedAutocompleteProvider,
147
+ Container,
148
+ DEFAULT_SELECT_THEME,
149
+ FILTER_HINT,
150
+ FocusBox,
151
+ GLYPH,
152
+ Input,
153
+ Markdown,
154
+ Marked,
155
+ SGR_DIM,
156
+ SGR_RESET,
157
+ ScrollView,
158
+ SelectList,
159
+ Text,
160
+ VStack,
161
+ abbreviateModelId,
162
+ barSep,
163
+ brandMark,
164
+ buildHint,
165
+ buildResponsiveHint,
166
+ clioError,
167
+ clioTheme,
168
+ collapseHomePath,
169
+ createAgentProgress,
170
+ createKeybindingManager,
171
+ createProcessInteractiveShell,
172
+ detectPlatformKeybindingWarnings,
173
+ detectTerminalKeySupport,
174
+ dotSep,
175
+ fgSequence,
176
+ fitHintEntries,
177
+ fitUnits,
178
+ formatCompactMs,
179
+ formatContextPercent,
180
+ formatInvalidKeybindingNotice,
181
+ formatPlatformKeybindingNotice,
182
+ formatRuntimeResolutionDiagnostic,
183
+ formatTargetLabel,
184
+ frame,
185
+ fuzzyFilter,
186
+ getActiveRenderTrace,
187
+ getKeybindings,
188
+ innerDivider,
189
+ isClioToken,
190
+ isKeyRelease,
191
+ joinChips,
192
+ joinSections,
193
+ listGroupHeader,
194
+ markdownTheme,
195
+ matchesKey,
196
+ padAnsi,
197
+ paintHex,
198
+ permissionHintEntries,
199
+ rule,
200
+ runtimeResolutionDiagnosticLine,
201
+ screenTitle,
202
+ sectionTag,
203
+ selectListTheme,
204
+ showClioOverlayFrame,
205
+ spinnerFrame,
206
+ stripTerminalSequences,
207
+ truncateToWidth,
208
+ validateKeybindings,
209
+ visibleWidth,
210
+ wrapTextWithAnsi
211
+ } from "./chunk-5C3AQNDW.js";
212
+ import {
213
+ getTerminationCoordinator
214
+ } from "./chunk-WXY7KU3G.js";
107
215
  import {
108
216
  createContextDomainModule,
109
217
  loadProjectClioMd
110
- } from "./chunk-4DWFMQDR.js";
218
+ } from "./chunk-WSB3FPX7.js";
111
219
  import "./chunk-LCGCVYZ4.js";
112
220
  import {
113
221
  renderCodewikiDigest
@@ -124,7 +232,14 @@ import {
124
232
  taskMemoryBankSize,
125
233
  taskMemoryHandoffSeedOffer,
126
234
  taskMemoryTracePath
127
- } from "./chunk-6M7VS3J3.js";
235
+ } from "./chunk-TYPGUK6W.js";
236
+ import {
237
+ listWikiPages,
238
+ wikiCompleteness,
239
+ wikiStaleness,
240
+ wikiStalenessAsync
241
+ } from "./chunk-NDINPTJ4.js";
242
+ import "./chunk-MVVUPGPW.js";
128
243
  import {
129
244
  ACP_MAX_CHUNK_BYTES,
130
245
  ACP_MAX_RAW_RECORD_BYTES,
@@ -148,8 +263,9 @@ import {
148
263
  openLedger,
149
264
  protectedResidencyModels,
150
265
  readGateDecisionArtifacts,
151
- readPendingGateDecisions
152
- } from "./chunk-UUANF5CR.js";
266
+ readPendingGateDecisions,
267
+ renderDispatchReviewerTask
268
+ } from "./chunk-TLQJPP24.js";
153
269
  import {
154
270
  SessionDomainModule,
155
271
  addResponseModelIdObservationCount,
@@ -163,81 +279,30 @@ import {
163
279
  readAuditRows,
164
280
  responseModelIdObservationCountsLabel,
165
281
  responseModelIdObservationFromRecord
166
- } from "./chunk-6TUKSZVF.js";
282
+ } from "./chunk-YS5VLNH5.js";
283
+ import {
284
+ formatTrustSummaryLine,
285
+ inspectRunReceiptTrustStatus,
286
+ isReceiptIntegrity,
287
+ retiredReceiptIntegrity,
288
+ retiredReceiptIntegrityReason,
289
+ summarizeTrustStatus,
290
+ verifyReceiptIntegrity
291
+ } from "./chunk-K4XHGFR5.js";
167
292
  import {
168
293
  gitCheckoutRoot,
169
294
  isGitRepository,
170
295
  preflightWriteBoundaries,
171
296
  recoverCleanupReadyCompeteGroups
172
- } from "./chunk-KZ2H5X4G.js";
297
+ } from "./chunk-MXKJU4JB.js";
173
298
  import {
174
299
  compileFleetExecutionPlan,
175
300
  requireAgentSteps
176
- } from "./chunk-M4AKACEO.js";
301
+ } from "./chunk-J3YUBZWY.js";
177
302
  import {
178
303
  parseRigorOverride,
179
304
  resolveRigor
180
305
  } from "./chunk-RVG5JXAL.js";
181
- import {
182
- isReceiptIntegrity,
183
- verifyReceiptIntegrity
184
- } from "./chunk-ZGH7FGS5.js";
185
- import "./chunk-TSHXZTOQ.js";
186
- import {
187
- shellQuote
188
- } from "./chunk-TXOTCRLG.js";
189
- import {
190
- emptyWorkspaceSnapshot,
191
- probeGitStatusAsync,
192
- probeWorkspaceAsync
193
- } from "./chunk-HVDIIIQW.js";
194
- import {
195
- discoverDeclaredChecks
196
- } from "./chunk-PD3MESLB.js";
197
- import {
198
- listWikiPages,
199
- wikiCompleteness,
200
- wikiStaleness,
201
- wikiStalenessAsync
202
- } from "./chunk-NDINPTJ4.js";
203
- import "./chunk-MVVUPGPW.js";
204
- import {
205
- buildRecallFields,
206
- recallErrorMessage,
207
- recallParentTurnId,
208
- recallableRefListing,
209
- resolveRecall
210
- } from "./chunk-ZZMN5OM4.js";
211
- import {
212
- foldWorkingSet
213
- } from "./chunk-TZSKNMZG.js";
214
- import {
215
- classifyLibraryRequirements,
216
- createResourcesDomainModule,
217
- discoverLibrary,
218
- installLibraryPlan,
219
- libraryEntryInstalled,
220
- libraryEntryPin,
221
- libraryEntryRef,
222
- libraryInstallPath,
223
- planLibraryInstall
224
- } from "./chunk-THKY7CD7.js";
225
- import {
226
- AgentsDomainModule
227
- } from "./chunk-UVDSQ6LW.js";
228
- import "./chunk-DR52UMZW.js";
229
- import {
230
- MARKETPLACE_UNCONFIGURED,
231
- discoverMarketplaceSkills,
232
- getMarketplaceSkills,
233
- installSkill,
234
- modelVisibleSkills,
235
- parseSkillCommand
236
- } from "./chunk-C4JBQ5SR.js";
237
- import "./chunk-2SFS6XQE.js";
238
- import {
239
- ExtensionsDomainModule
240
- } from "./chunk-ZWLZP4ZT.js";
241
306
  import {
242
307
  filterEntriesToActivePath
243
308
  } from "./chunk-W6GROXXM.js";
@@ -250,7 +315,20 @@ import {
250
315
  renderFleetPrompt,
251
316
  validateFleetCommands,
252
317
  validateFleetGraph
253
- } from "./chunk-KCMKRQX4.js";
318
+ } from "./chunk-E77JEWSD.js";
319
+ import {
320
+ ExtensionsDomainModule
321
+ } from "./chunk-DYIM5TJT.js";
322
+ import "./chunk-JVCV3ICN.js";
323
+ import "./chunk-2HEJ2F35.js";
324
+ import {
325
+ shellQuote
326
+ } from "./chunk-TXOTCRLG.js";
327
+ import {
328
+ emptyWorkspaceSnapshot,
329
+ probeGitStatusAsync,
330
+ probeWorkspaceAsync
331
+ } from "./chunk-HVDIIIQW.js";
254
332
  import {
255
333
  formatBootTrace,
256
334
  traceBoot
@@ -281,7 +359,7 @@ import {
281
359
  resolveFdBinary,
282
360
  resolveSessionTools,
283
361
  sanitizeLockedSynthesisMessage
284
- } from "./chunk-QCTRSGHQ.js";
362
+ } from "./chunk-WLFILSD5.js";
285
363
  import {
286
364
  HEADLESS_PERMISSION_DENIED_REASON
287
365
  } from "./chunk-K7VKOLQQ.js";
@@ -303,9 +381,12 @@ import {
303
381
  openDetachedBatchViews,
304
382
  watchdogBriefing,
305
383
  writeMiddlewareDiagnosticToStderr
306
- } from "./chunk-XEGB6BCN.js";
307
- import "./chunk-IR4CFBFN.js";
384
+ } from "./chunk-7RGZWPB6.js";
385
+ import "./chunk-VCBR6CU7.js";
308
386
  import "./chunk-UOV2BYIW.js";
387
+ import "./chunk-PMDBGQSJ.js";
388
+ import "./chunk-XN3L4EYL.js";
389
+ import "./chunk-SPULKLCF.js";
309
390
  import {
310
391
  DISPATCH_PLAN_PREPARATION_ERROR_ARGUMENT,
311
392
  RESOLVED_DISPATCH_PLAN_ARGUMENT,
@@ -317,11 +398,14 @@ import {
317
398
  stringArg,
318
399
  timeoutMsArg,
319
400
  withResolvedDispatchPlan
320
- } from "./chunk-EELBMBT6.js";
401
+ } from "./chunk-KTYTFRMB.js";
321
402
  import {
322
403
  TaskMemoryBank,
323
404
  createTaskMemoryTelemetrySink
324
- } from "./chunk-WHGPSPT5.js";
405
+ } from "./chunk-ZVJ5BLO2.js";
406
+ import {
407
+ escapeRegExp
408
+ } from "./chunk-VG7TBQIY.js";
325
409
  import {
326
410
  COUNCIL_JUDGE_PROMPT,
327
411
  DISPATCH_BRIEFING_MAX_BYTES,
@@ -342,42 +426,34 @@ import {
342
426
  normalizeDispatchIntent,
343
427
  redactSecretString,
344
428
  redactToolArgs,
429
+ renderCouncilVoteMemberTask,
345
430
  runBashCommand,
346
431
  runKindSupportsLiveSteering,
347
432
  sanitizeCallTargetText,
348
433
  toolPresentationPolicy
349
- } from "./chunk-CEYBNUGC.js";
434
+ } from "./chunk-A3WNZD3P.js";
350
435
  import {
351
436
  createTaskBoardStore,
352
437
  foldSessionTaskHistory,
353
438
  foldTaskBoard,
354
439
  taskBoardCounts
355
440
  } from "./chunk-5FR74PWO.js";
356
- import {
357
- DEFAULT_RECENT_ENTRY_LIMIT,
358
- assessFinishContract
359
- } from "./chunk-OBMAI2DP.js";
360
441
  import {
361
442
  defaultRoutingIntent,
362
443
  sameRouteIdentity
363
- } from "./chunk-5C77SEEY.js";
444
+ } from "./chunk-P43ETTHK.js";
364
445
  import {
365
446
  agentRoleFactsResolver,
366
447
  gateDeciderAgentId,
367
448
  requestExecutionRole,
368
449
  withAttemptRole
369
- } from "./chunk-UND3GU2L.js";
370
- import "./chunk-CMZWFGD2.js";
371
- import "./chunk-I4HZDVNP.js";
372
- import "./chunk-ZI647VB5.js";
373
- import "./chunk-JNXPYBB4.js";
374
- import "./chunk-GH5622CP.js";
375
- import "./chunk-XN3L4EYL.js";
450
+ } from "./chunk-H7IXIC72.js";
376
451
  import {
377
- escapeRegExp
378
- } from "./chunk-VG7TBQIY.js";
452
+ DEFAULT_RECENT_ENTRY_LIMIT,
453
+ assessFinishContract
454
+ } from "./chunk-5H3GB5BO.js";
455
+ import "./chunk-A2NJGIB3.js";
379
456
  import "./chunk-OQE5J4C6.js";
380
- import "./chunk-SPULKLCF.js";
381
457
  import {
382
458
  SKILL_SUGGESTION_PREFIX,
383
459
  isSkillActivation,
@@ -392,7 +468,7 @@ import {
392
468
  parseScoutResult,
393
469
  parseVerifierResult,
394
470
  resultContractSourceId
395
- } from "./chunk-DJNLUABN.js";
471
+ } from "./chunk-TTHACPOM.js";
396
472
  import "./chunk-AOCYTWAV.js";
397
473
  import {
398
474
  CLIO_PROJECT_DIR,
@@ -411,6 +487,9 @@ import {
411
487
  } from "./chunk-OZNBF4L3.js";
412
488
  import "./chunk-4BJ5BYCE.js";
413
489
  import "./chunk-ECH6PKUQ.js";
490
+ import "./chunk-CMZWFGD2.js";
491
+ import "./chunk-I4HZDVNP.js";
492
+ import "./chunk-ZI647VB5.js";
414
493
  import {
415
494
  truncateUtf8
416
495
  } from "./chunk-6XLNIQDB.js";
@@ -424,13 +503,14 @@ import {
424
503
  incompleteInstallationAdvice
425
504
  } from "./chunk-65DEGPJ6.js";
426
505
  import "./chunk-M6L6IDJG.js";
427
- import "./chunk-XAKHZX5N.js";
428
506
  import "./chunk-UUVG37B4.js";
429
507
  import {
430
508
  readCodewiki,
431
509
  readCodewikiAsync
432
510
  } from "./chunk-LBMZMYH2.js";
511
+ import "./chunk-XAKHZX5N.js";
433
512
  import "./chunk-33YXPOE3.js";
513
+ import "./chunk-7CR24IG7.js";
434
514
  import {
435
515
  getVersionInfo
436
516
  } from "./chunk-XPLRXC72.js";
@@ -439,19 +519,16 @@ import {
439
519
  InteropDomainModule,
440
520
  delegationEntryForKind,
441
521
  renderProposalEntry
442
- } from "./chunk-SROCI7ZU.js";
443
- import "./chunk-DOOEX22V.js";
522
+ } from "./chunk-GPIEI3LY.js";
523
+ import "./chunk-XWSF374K.js";
444
524
  import {
445
525
  source_default
446
526
  } from "./chunk-5TSRNF4G.js";
447
527
  import {
448
- AGENT_ROLE_TOOLS_REQUIRED_REASON,
449
528
  ProvidersDomainModule,
450
529
  VALID_THINKING_LEVELS,
451
530
  applyModelCapabilityPatch,
452
531
  firstRuntimeResolutionError,
453
- formatContextWindowSlots,
454
- getRuntimeRegistry,
455
532
  isDispatchEligibleRuntime,
456
533
  isOrchestratorEligibleRuntime,
457
534
  modelCandidatesForStatus,
@@ -459,28 +536,20 @@ import {
459
536
  modelResidencyForStatus,
460
537
  normalizeCostProvenance,
461
538
  refineRuntimeTargetWithModelHints,
462
- registerBuiltinRuntimes,
463
539
  resolveModelCapabilities,
464
540
  resolveModelReference,
465
541
  resolveModelRuntimeCapabilitiesForProviders,
466
- resolveProviderReference,
467
542
  resolveReservedOutputTokens,
468
543
  resolveRuntimeTarget,
469
544
  runtimeResolutionWarningsBesideThinkingNotice,
470
545
  runtimeTargetSnapshot,
471
546
  setProtectedModelsProvider,
472
- supportsAgentRoleTools,
473
547
  thinkingLevelChoiceLabel,
474
548
  thinkingLevelFromChoiceLabel,
475
549
  withRunOverrides
476
- } from "./chunk-VQNODYQ4.js";
550
+ } from "./chunk-7RFXX52T.js";
477
551
  import "./chunk-CFGTUFWB.js";
478
- import {
479
- targetRequiresAuth
480
- } from "./chunk-JRIO5UD2.js";
481
- import {
482
- interopAgentKind
483
- } from "./chunk-IHXBNWMM.js";
552
+ import "./chunk-LU7P4LHA.js";
484
553
  import {
485
554
  AutoCompactionTrigger,
486
555
  DEFAULT_COMPACTION_THRESHOLD,
@@ -498,7 +567,13 @@ import {
498
567
  reconcileSnapshot,
499
568
  shouldCompact,
500
569
  snapshotInputTokens
501
- } from "./chunk-GEYXPTRF.js";
570
+ } from "./chunk-RWSI4YD7.js";
571
+ import {
572
+ interopAgentKind
573
+ } from "./chunk-IHXBNWMM.js";
574
+ import {
575
+ setGitCommitAttributionEnabled
576
+ } from "./chunk-B5CSFE7B.js";
502
577
  import {
503
578
  bindAgentProfileInSettings,
504
579
  readSettings,
@@ -507,14 +582,18 @@ import {
507
582
  setFleetProfileInSettings,
508
583
  updateSettings,
509
584
  useTargetInSettings
510
- } from "./chunk-UHXRNZ2J.js";
585
+ } from "./chunk-IJ7RPIYJ.js";
511
586
  import {
512
- DEFAULT_DELEGATION_PERMISSION_TIMEOUT_MS,
513
- DEFAULT_SETTINGS,
514
- THINKING_LEVELS
515
- } from "./chunk-4DGYLA73.js";
516
- import "./chunk-LL4KHSZI.js";
517
- import "./chunk-SST6Z5JA.js";
587
+ MAX_TIMER_DELAY_MS,
588
+ rawDurationMs
589
+ } from "./chunk-FQ4SKYE4.js";
590
+ import {
591
+ getSharedBus
592
+ } from "./chunk-ZGVHUX3M.js";
593
+ import {
594
+ BusChannels,
595
+ isRunAbortedPayload
596
+ } from "./chunk-TT36MB5S.js";
518
597
  import {
519
598
  atomicWrite,
520
599
  cwdHash,
@@ -522,123 +601,60 @@ import {
522
601
  readSessionTailTurns,
523
602
  sessionCurrentPath,
524
603
  sessionPaths
525
- } from "./chunk-FO5ZOVUY.js";
604
+ } from "./chunk-3BINW3FP.js";
526
605
  import "./chunk-R346GLFC.js";
606
+ import "./chunk-6EJMN2Y3.js";
527
607
  import {
528
- setGitCommitAttributionEnabled
529
- } from "./chunk-D4MDIG46.js";
608
+ readClioVersion,
609
+ readPiMonoVersion
610
+ } from "./chunk-IWHMRKLL.js";
530
611
  import {
531
- MAX_TIMER_DELAY_MS,
532
- rawDurationMs
533
- } from "./chunk-FQ4SKYE4.js";
612
+ formatContextWindowSlots,
613
+ registerBuiltinRuntimes
614
+ } from "./chunk-NMPKI6XL.js";
615
+ import {
616
+ DEFAULT_DELEGATION_PERMISSION_TIMEOUT_MS,
617
+ DEFAULT_SETTINGS,
618
+ THINKING_LEVELS
619
+ } from "./chunk-4DGYLA73.js";
620
+ import "./chunk-LL4KHSZI.js";
534
621
  import {
535
622
  configureGuardrails
536
623
  } from "./chunk-4ZG3XFUR.js";
624
+ import {
625
+ resolveProviderReference
626
+ } from "./chunk-IIZWH4XA.js";
627
+ import {
628
+ targetRequiresAuth
629
+ } from "./chunk-EQ63NRB7.js";
630
+ import "./chunk-SST6Z5JA.js";
537
631
  import "./chunk-IKCO5N3L.js";
538
632
  import "./chunk-3I7MS7N2.js";
539
- import {
540
- StringEnum,
541
- cleanupEngineSessionResources,
542
- completeEngineText,
543
- isEngineRetryableAssistantError,
544
- stream
545
- } from "./chunk-FCSXB6T2.js";
546
633
  import "./chunk-APJ265NV.js";
547
- import "./chunk-YXLYO42X.js";
548
634
  import {
549
635
  clioConfigDir,
550
636
  clioDataDir,
551
637
  clioStateDir,
552
638
  stateRootRemoved
553
639
  } from "./chunk-BNAZZHFG.js";
554
- import "./chunk-6EJMN2Y3.js";
555
640
  import {
556
641
  safeResourceWrite
557
642
  } from "./chunk-WEPFGWHJ.js";
558
643
  import {
559
- ClioEditor,
560
- CombinedAutocompleteProvider,
561
- Container,
562
- DEFAULT_SELECT_THEME,
563
- FILTER_HINT,
564
- FocusBox,
565
- GLYPH,
566
- Input,
567
- Markdown,
568
- Marked,
569
- SGR_DIM,
570
- SGR_RESET,
571
- ScrollView,
572
- SelectList,
573
- Text,
574
- VStack,
575
- abbreviateModelId,
576
- barSep,
577
- brandMark,
578
- buildHint,
579
- buildResponsiveHint,
580
- clioError,
581
- clioTheme,
582
- collapseHomePath,
583
- createAgentProgress,
584
- createKeybindingManager,
585
- createProcessInteractiveShell,
586
- detectPlatformKeybindingWarnings,
587
- detectTerminalKeySupport,
588
- dotSep,
589
- fgSequence,
590
- fitHintEntries,
591
- fitUnits,
592
- formatCompactMs,
593
- formatContextPercent,
594
- formatInvalidKeybindingNotice,
595
- formatPlatformKeybindingNotice,
596
- formatRuntimeResolutionDiagnostic,
597
- formatTargetLabel,
598
- frame,
599
- fuzzyFilter,
600
- getActiveRenderTrace,
601
- getKeybindings,
602
- innerDivider,
603
- isClioToken,
604
- isKeyRelease,
605
- joinChips,
606
- joinSections,
607
- listGroupHeader,
608
- markdownTheme,
609
- matchesKey,
610
- padAnsi,
611
- paintHex,
612
- permissionHintEntries,
613
- rule,
614
- runtimeResolutionDiagnosticLine,
615
- screenTitle,
616
- sectionTag,
617
- selectListTheme,
618
- showClioOverlayFrame,
619
- spinnerFrame,
620
- stripTerminalSequences,
621
- truncateToWidth,
622
- validateKeybindings,
623
- visibleWidth,
624
- wrapTextWithAnsi
625
- } from "./chunk-5C3AQNDW.js";
626
- import {
627
- getTerminationCoordinator
628
- } from "./chunk-X2KV5FXT.js";
644
+ getRuntimeRegistry
645
+ } from "./chunk-NUGM5KR6.js";
629
646
  import {
630
- getSharedBus
631
- } from "./chunk-ZGVHUX3M.js";
632
- import {
633
- BusChannels,
634
- isRunAbortedPayload
635
- } from "./chunk-OB5HIGJY.js";
636
- import "./chunk-JVCV3ICN.js";
637
- import "./chunk-7CR24IG7.js";
647
+ AGENT_ROLE_TOOLS_REQUIRED_REASON,
648
+ supportsAgentRoleTools
649
+ } from "./chunk-PT7HYKEM.js";
638
650
  import {
639
- readClioVersion,
640
- readPiMonoVersion
641
- } from "./chunk-IWHMRKLL.js";
651
+ StringEnum,
652
+ cleanupEngineSessionResources,
653
+ completeEngineText,
654
+ isEngineRetryableAssistantError,
655
+ stream
656
+ } from "./chunk-FCSXB6T2.js";
657
+ import "./chunk-YXLYO42X.js";
642
658
  import {
643
659
  init_esm_shims
644
660
  } from "./chunk-3R73A4XB.js";
@@ -3242,7 +3258,8 @@ function safeProbeReason(providers, status) {
3242
3258
  } catch {
3243
3259
  return "not-configured";
3244
3260
  }
3245
- return status.available && status.health.status === "healthy" ? null : "unreachable";
3261
+ const reachable = status.health.status === "healthy" || status.health.status === "degraded";
3262
+ return status.available && reachable ? null : "unreachable";
3246
3263
  }
3247
3264
  function installPermissionBridge(input) {
3248
3265
  if (!input.toolRegistry) return { unregister: () => {
@@ -7550,7 +7567,10 @@ function renderDispatchCard(row2, width, evidence, options = {}) {
7550
7567
  `${theme6.fg("dim", "ttft")} ${theme6.fg("muted", ttft)}`,
7551
7568
  `${theme6.fg("dim", "cost")} ${theme6.fg("muted", cost)}`
7552
7569
  ];
7553
- const hostVerification = theme6.fg("info", `host_verification=${row2.hostVerification ?? "not_requested"}`);
7570
+ const trustUnits = [
7571
+ row2.trust === void 0 ? theme6.fg("dim", isTerminalStatus(row2.status) ? "trust: receipt not read back" : "trust: not sealed yet") : theme6.fg(trustVerdictToken(row2.trust.verdict), `${trustVerdictGlyph(row2.trust.verdict)} ${row2.trust.text}`),
7572
+ ...row2.hostVerification !== void 0 ? [theme6.fg("muted", `host checks ${row2.hostVerification}`)] : []
7573
+ ];
7554
7574
  const contextUnit = formatWorkerContextMeter(row2.lastContextTokens ?? 0, row2.contextWindow, theme6);
7555
7575
  const phaseCell = formatDispatchPhaseCell(row2.phase, contentWidth);
7556
7576
  const bodyLines2 = [
@@ -7564,7 +7584,7 @@ function renderDispatchCard(row2, width, evidence, options = {}) {
7564
7584
  targetLine,
7565
7585
  ...row2.taskSummary ? [truncateToWidth(`${cardKvKey(theme6, "task")}${theme6.fg("muted", row2.taskSummary)}`, contentWidth, "\u2026", false)] : [],
7566
7586
  cardUnitsLine(theme6, "status", statusUnits, contentWidth),
7567
- cardUnitsLine(theme6, "evidence", [hostVerification], contentWidth),
7587
+ cardUnitsLine(theme6, "trust", trustUnits, contentWidth),
7568
7588
  ...row2.budget !== void 0 ? [
7569
7589
  truncateToWidth(
7570
7590
  `${cardKvKey(theme6, "policy")}${theme6.fg("muted", `${formatBudgetPolicy(row2.budget)}; requested ${formatBudgetRequest(row2.budget)}`)}`,
@@ -7906,6 +7926,30 @@ function parseOptionalDetail(value) {
7906
7926
  const detail = value.replace(/\s+/g, " ").trim();
7907
7927
  return detail.length > 0 ? detail : null;
7908
7928
  }
7929
+ function trustVerdictToken(verdict) {
7930
+ switch (verdict) {
7931
+ case "reviewed":
7932
+ return "success";
7933
+ case "grounded":
7934
+ return "info";
7935
+ case "unverified":
7936
+ return "muted";
7937
+ case "compromised":
7938
+ return "error";
7939
+ default:
7940
+ return "dim";
7941
+ }
7942
+ }
7943
+ function trustVerdictGlyph(verdict) {
7944
+ switch (verdict) {
7945
+ case "reviewed":
7946
+ return GLYPH.ok;
7947
+ case "compromised":
7948
+ return GLYPH.error;
7949
+ default:
7950
+ return "\u25C7";
7951
+ }
7952
+ }
7909
7953
  function terminalDetail(row2) {
7910
7954
  if (row2.status !== "failed" && row2.status !== "dead" && row2.status !== "aborted") return null;
7911
7955
  return parseOptionalDetail(row2.outcomeDetail);
@@ -8026,6 +8070,7 @@ function toRow(entry, now) {
8026
8070
  ...entry.gate !== void 0 ? { gate: { ...entry.gate } } : {},
8027
8071
  ...entry.council !== void 0 ? { council: { ...entry.council } } : {},
8028
8072
  ...entry.hostVerification !== void 0 ? { hostVerification: entry.hostVerification } : {},
8073
+ ...entry.trust !== void 0 ? { trust: entry.trust } : {},
8029
8074
  ...entry.rerouteCount !== void 0 ? { rerouteCount: entry.rerouteCount } : {},
8030
8075
  ...entry.failoverHops !== void 0 ? { failoverHops: entry.failoverHops } : {},
8031
8076
  ...entry.contextWindow !== void 0 ? { contextWindow: entry.contextWindow } : {},
@@ -8066,8 +8111,10 @@ function createDispatchBoardStore(bus, snapshot, readReceipt) {
8066
8111
  let nextSequence = 0;
8067
8112
  let reconciledAtMs = Date.now();
8068
8113
  const settleFromReceipt = (entry) => {
8069
- const text = readReceipt?.(entry.runId)?.text;
8114
+ const facts = readReceipt?.(entry.runId);
8115
+ const text = facts?.text;
8070
8116
  entry.progress.settle(typeof text === "string" && text.trim().length > 0 ? text : void 0);
8117
+ if (facts?.trust !== void 0) entry.trust = summarizeTrustStatus(facts.trust);
8071
8118
  };
8072
8119
  const upsertBase = (raw, status, now) => {
8073
8120
  const runId = parseRunId(raw.runId);
@@ -10146,6 +10193,15 @@ function validateToolStats(value) {
10146
10193
  }
10147
10194
  return { ok: true };
10148
10195
  }
10196
+ function receiptTrustDetail(stateDir, runId) {
10197
+ try {
10198
+ const receipt = JSON.parse(readFileSync5(receiptFilePath(stateDir, runId), "utf8"));
10199
+ const ledger = readRunEnvelope(stateDir, runId);
10200
+ return formatTrustSummaryLine(inspectRunReceiptTrustStatus(receipt, ledger.ok ? ledger.envelope : null).status);
10201
+ } catch {
10202
+ return "integrity verified; trust status unreadable";
10203
+ }
10204
+ }
10149
10205
  function readRunEnvelope(stateDir, runId) {
10150
10206
  const runs = readRunLedger(stateDir);
10151
10207
  for (const entry of runs) {
@@ -10252,6 +10308,8 @@ function verifyReceiptFile(stateDir, runId) {
10252
10308
  if (!isNullableString(r.sessionId)) {
10253
10309
  return { ok: false, reason: `sessionId invalid: ${String(r.sessionId)}` };
10254
10310
  }
10311
+ const retired = retiredReceiptIntegrity(r.integrity);
10312
+ if (retired !== null) return { ok: false, reason: retiredReceiptIntegrityReason(retired), retired };
10255
10313
  if (!isReceiptIntegrity(r.integrity)) {
10256
10314
  return { ok: false, reason: "integrity invalid" };
10257
10315
  }
@@ -10507,8 +10565,10 @@ var ReceiptArtifactProvider = class {
10507
10565
  load: () => loadJsonFileLines(path),
10508
10566
  verify: async () => {
10509
10567
  const result = verifyReceiptFile(this.deps.stateDir, env.id);
10510
- if (!result.ok) return { ok: false, detail: result.reason };
10511
- return { ok: true, detail: "integrity verified" };
10568
+ if (!result.ok) {
10569
+ return { ok: false, detail: result.reason, ...result.retired !== void 0 ? { retired: true } : {} };
10570
+ }
10571
+ return { ok: true, detail: receiptTrustDetail(this.deps.stateDir, env.id) };
10512
10572
  }
10513
10573
  };
10514
10574
  });
@@ -11278,12 +11338,19 @@ function workerReceiptFacts(receipt) {
11278
11338
  };
11279
11339
  }
11280
11340
  function readReceiptFileFacts(runId, stateDir) {
11341
+ let parsed;
11281
11342
  try {
11282
- const parsed = JSON.parse(readFileSync6(receiptFilePath(stateDir, runId), "utf8"));
11283
- return isRecord10(parsed) ? workerReceiptFacts(parsed) : null;
11343
+ parsed = JSON.parse(readFileSync6(receiptFilePath(stateDir, runId), "utf8"));
11284
11344
  } catch {
11285
11345
  return null;
11286
11346
  }
11347
+ if (!isRecord10(parsed)) return null;
11348
+ const facts = workerReceiptFacts(parsed);
11349
+ if (facts === null) return null;
11350
+ const row2 = findRunRow(runId, stateDir);
11351
+ if (row2 === null) return facts;
11352
+ const trust = inspectRunReceiptTrustStatus(parsed, row2).status;
11353
+ return { ...facts, trust };
11287
11354
  }
11288
11355
  function readWorkerReceiptFacts(runId, stateDir = clioStateDir()) {
11289
11356
  return readReceiptFileFacts(runId, stateDir);
@@ -15632,6 +15699,7 @@ function verificationText(state) {
15632
15699
  if (!state || state.status === "idle") return "";
15633
15700
  if (state.status === "running") return `${GLYPH.running} verify running`;
15634
15701
  if (state.status === "ok") return `${GLYPH.ok} verify ok ${state.detail}`;
15702
+ if (state.status === "retired") return `${GLYPH.warn} verify retired ${state.detail}`;
15635
15703
  return `${GLYPH.error} verify fail ${state.detail}`;
15636
15704
  }
15637
15705
  function buildArtifactHeader(artifact, verification, width) {
@@ -15643,7 +15711,7 @@ function buildArtifactHeader(artifact, verification, width) {
15643
15711
  if (size.length > 0) parts.push(theme6.fg("dim", size));
15644
15712
  const verify = verificationText(verification);
15645
15713
  if (verify.length > 0) {
15646
- const token = verification?.status === "ok" ? "success" : verification?.status === "fail" ? "error" : "info";
15714
+ const token = verification?.status === "ok" ? "success" : verification?.status === "fail" ? "error" : verification?.status === "retired" ? "warning" : "info";
15647
15715
  parts.push(theme6.fg(token, verify));
15648
15716
  }
15649
15717
  return padAnsi(parts.join(" "), width, ELLIPSIS);
@@ -15957,7 +16025,7 @@ var ViewOverlayView = class {
15957
16025
  void artifact.verify().then((result) => {
15958
16026
  this.verifications.set(
15959
16027
  key,
15960
- result.ok ? { status: "ok", detail: result.detail } : { status: "fail", detail: result.detail }
16028
+ result.ok ? { status: "ok", detail: result.detail } : { status: result.retired === true ? "retired" : "fail", detail: result.detail }
15961
16029
  );
15962
16030
  }).catch((err) => {
15963
16031
  const detail = err instanceof Error ? err.message : String(err);
@@ -20552,6 +20620,15 @@ var SubmenuWrapper = class {
20552
20620
  child;
20553
20621
  hint;
20554
20622
  note;
20623
+ /**
20624
+ * Why the last submission was refused, or null while nothing is wrong. The
20625
+ * editor sets it instead of closing, so the operator corrects the value with
20626
+ * the reason on screen rather than back at the row list with no reason.
20627
+ */
20628
+ problem = null;
20629
+ setProblem(problem) {
20630
+ this.problem = problem;
20631
+ }
20555
20632
  render(width) {
20556
20633
  const theme6 = clioTheme();
20557
20634
  const lines = [];
@@ -20565,6 +20642,11 @@ var SubmenuWrapper = class {
20565
20642
  }
20566
20643
  lines.push("");
20567
20644
  lines.push(...this.child.render(Math.max(1, width - 2)).map((line) => ` ${line}`));
20645
+ if (this.problem !== null) {
20646
+ for (const line of wrapTextWithAnsi(this.problem, Math.max(1, width - 2))) {
20647
+ lines.push(theme6.fg("error", ` ${line}`));
20648
+ }
20649
+ }
20568
20650
  lines.push("");
20569
20651
  lines.push(theme6.fg("dim", ` ${this.hint}`));
20570
20652
  return lines;
@@ -20628,31 +20710,63 @@ function selectModelSubmenu(providers, getActiveTarget) {
20628
20710
  function editTextSubmenu(title, note) {
20629
20711
  return textInputSubmenu(title, note);
20630
20712
  }
20631
- function editNumberSubmenu(title, options = {}) {
20632
- const min = options.min ?? 0;
20713
+ var NUMBER_SETTING_RULES = {
20714
+ "budget.sessionCeilingUsd": { min: 0, integer: false },
20715
+ "watchdog.cadenceToolCalls": { min: 1, integer: true, allowBlank: true },
20716
+ "delegation.defaults.connectTimeoutMs": { min: 1, max: MAX_TIMER_DELAY_MS, integer: true },
20717
+ "delegation.defaults.turnTimeoutMs": { min: 1, max: MAX_TIMER_DELAY_MS, integer: true },
20718
+ "delegation.defaults.permissionTimeoutMs": { min: 1, max: MAX_TIMER_DELAY_MS, integer: true }
20719
+ };
20720
+ var NUMBER_SETTING_IDS = Object.keys(NUMBER_SETTING_RULES);
20721
+ function describeSubmittedText(value) {
20722
+ const trimmed = value.trim();
20723
+ return trimmed.length === 0 ? "an empty string" : JSON.stringify(trimmed);
20724
+ }
20725
+ function parseNumberSetting(value, rule2) {
20726
+ const trimmed = value.trim();
20727
+ const noun = rule2.integer ? "an integer" : "a number";
20728
+ if (trimmed.length === 0 && rule2.allowBlank === true) return { value: null };
20729
+ const parsed = trimmed.length === 0 ? Number.NaN : Number(trimmed);
20730
+ if (!Number.isFinite(parsed) || rule2.integer && !Number.isInteger(parsed)) {
20731
+ const shown = Number.isFinite(parsed) ? String(parsed) : describeSubmittedText(value);
20732
+ return { refusal: `Not applied: expected ${noun}, got ${shown}.` };
20733
+ }
20734
+ if (parsed < rule2.min) return { refusal: `Not applied: expected ${noun} >= ${rule2.min}, got ${parsed}.` };
20735
+ if (rule2.max !== void 0 && parsed > rule2.max) {
20736
+ return { refusal: `Not applied: expected ${noun} <= ${rule2.max}, got ${parsed}.` };
20737
+ }
20738
+ return { value: parsed };
20739
+ }
20740
+ function numberSettingNote(rule2) {
20741
+ const noun = rule2.integer ? "a whole number" : "a number";
20742
+ const clears = rule2.allowBlank === true ? "; blank clears it" : "";
20743
+ if (rule2.min > 0 && rule2.max !== void 0) return `Use ${noun} from ${rule2.min} to ${rule2.max}${clears}.`;
20744
+ if (rule2.min > 0) return `Use ${noun} of at least ${rule2.min}${clears}.`;
20745
+ return `Use a non-negative ${rule2.integer ? "whole number" : "number"}${clears}.`;
20746
+ }
20747
+ function editNumberSubmenu(title, id) {
20748
+ const rule2 = NUMBER_SETTING_RULES[id];
20633
20749
  return (currentValue, done) => {
20634
20750
  const input = new Input();
20635
20751
  input.setValue(currentValue);
20636
20752
  input.focused = true;
20753
+ const wrapper = new SubmenuWrapper(
20754
+ title,
20755
+ input,
20756
+ buildHint([{ key: "Enter", verb: "confirm" }], "back"),
20757
+ numberSettingNote(rule2)
20758
+ );
20637
20759
  input.onSubmit = (val) => {
20638
- if (options.allowBlank === true && val.trim().length === 0) {
20639
- done("");
20760
+ const outcome = parseNumberSetting(val, rule2);
20761
+ if ("refusal" in outcome) {
20762
+ wrapper.setProblem(outcome.refusal);
20640
20763
  return;
20641
20764
  }
20642
- const num = Number(val);
20643
- if (Number.isFinite(num) && num >= min) {
20644
- done(val);
20645
- } else {
20646
- done();
20647
- }
20765
+ wrapper.setProblem(null);
20766
+ done(outcome.value === null ? "" : val.trim());
20648
20767
  };
20649
20768
  input.onEscape = () => done();
20650
- return new SubmenuWrapper(
20651
- title,
20652
- input,
20653
- buildHint([{ key: "Enter", verb: "confirm" }], "back"),
20654
- min > 0 ? `Use a whole number of at least ${min}${options.allowBlank === true ? "; blank clears it" : ""}.` : "Use a non-negative number."
20655
- );
20769
+ return wrapper;
20656
20770
  };
20657
20771
  }
20658
20772
  function selectListSubmenu(title, items, note) {
@@ -21210,7 +21324,7 @@ function buildSettingItems(settings, options) {
21210
21324
  readOnly: true
21211
21325
  }),
21212
21326
  settingItem("budget.sessionCeilingUsd", String(settings.budget.sessionCeilingUsd), {
21213
- submenu: editNumberSubmenu("Edit session cost ceiling USD"),
21327
+ submenu: editNumberSubmenu("Edit session cost ceiling USD", "budget.sessionCeilingUsd"),
21214
21328
  affordance: "free text"
21215
21329
  }),
21216
21330
  settingItem("defaults.maxTokens", String(settings.defaults.maxTokens), {
@@ -21277,10 +21391,10 @@ function buildSettingItems(settings, options) {
21277
21391
  "watchdog.cadenceToolCalls",
21278
21392
  watchdog.cadenceToolCalls === void 0 ? "(turn end only)" : String(watchdog.cadenceToolCalls),
21279
21393
  {
21280
- submenu: editNumberSubmenu("Edit watchdog cadence in tool calls; blank fires at turn end only", {
21281
- min: 1,
21282
- allowBlank: true
21283
- }),
21394
+ submenu: editNumberSubmenu(
21395
+ "Edit watchdog cadence in tool calls; blank fires at turn end only",
21396
+ "watchdog.cadenceToolCalls"
21397
+ ),
21284
21398
  affordance: "free text",
21285
21399
  editValue: watchdog.cadenceToolCalls === void 0 ? "" : String(watchdog.cadenceToolCalls)
21286
21400
  }
@@ -21301,15 +21415,15 @@ function buildSettingItems(settings, options) {
21301
21415
  affordance: "free text"
21302
21416
  }),
21303
21417
  settingItem("delegation.defaults.connectTimeoutMs", String(settings.delegation.defaults.connectTimeoutMs), {
21304
- submenu: editNumberSubmenu("Edit delegate connect timeout (ms)"),
21418
+ submenu: editNumberSubmenu("Edit delegate connect timeout (ms)", "delegation.defaults.connectTimeoutMs"),
21305
21419
  affordance: "free text"
21306
21420
  }),
21307
21421
  settingItem("delegation.defaults.turnTimeoutMs", String(settings.delegation.defaults.turnTimeoutMs), {
21308
- submenu: editNumberSubmenu("Edit delegate turn timeout (ms)"),
21422
+ submenu: editNumberSubmenu("Edit delegate turn timeout (ms)", "delegation.defaults.turnTimeoutMs"),
21309
21423
  affordance: "free text"
21310
21424
  }),
21311
21425
  settingItem("delegation.defaults.permissionTimeoutMs", String(settings.delegation.defaults.permissionTimeoutMs), {
21312
- submenu: editNumberSubmenu("Edit delegate permission timeout (ms)"),
21426
+ submenu: editNumberSubmenu("Edit delegate permission timeout (ms)", "delegation.defaults.permissionTimeoutMs"),
21313
21427
  affordance: "free text"
21314
21428
  }),
21315
21429
  settingItem("keybindings", keybindingCount > 0 ? `${keybindingCount} override(s)` : "(defaults)", {
@@ -21572,9 +21686,10 @@ function applyNonNegativeInteger(value, set) {
21572
21686
  const parsed = Number(value);
21573
21687
  if (Number.isFinite(parsed) && parsed >= 0) set(Math.floor(parsed));
21574
21688
  }
21575
- function applyPositiveInteger(value, set) {
21576
- const parsed = Number(value);
21577
- if (Number.isInteger(parsed) && parsed >= 1 && parsed <= MAX_TIMER_DELAY_MS) set(parsed);
21689
+ function applyNumberSetting(id, value, set) {
21690
+ const outcome = parseNumberSetting(value, NUMBER_SETTING_RULES[id]);
21691
+ if ("refusal" in outcome) return;
21692
+ set(outcome.value);
21578
21693
  }
21579
21694
  function applyDelegationAgentChange(settings, value) {
21580
21695
  if (value.startsWith(DELEGATION_REMOVE_PREFIX)) {
@@ -21733,15 +21848,12 @@ function applySettingChange(settings, id, value) {
21733
21848
  else delete settings.watchdog.target;
21734
21849
  return;
21735
21850
  }
21736
- case "watchdog.cadenceToolCalls": {
21737
- if (value.trim().length === 0) {
21738
- delete settings.watchdog.cadenceToolCalls;
21739
- return;
21740
- }
21741
- const parsed = Number(value);
21742
- if (Number.isFinite(parsed) && Math.floor(parsed) >= 1) settings.watchdog.cadenceToolCalls = Math.floor(parsed);
21851
+ case "watchdog.cadenceToolCalls":
21852
+ applyNumberSetting("watchdog.cadenceToolCalls", value, (next) => {
21853
+ if (next === null) delete settings.watchdog.cadenceToolCalls;
21854
+ else settings.watchdog.cadenceToolCalls = next;
21855
+ });
21743
21856
  return;
21744
- }
21745
21857
  case "terminal.smoothStreaming":
21746
21858
  if (value === "off" || value === "auto" || value === "on") settings.terminal.smoothStreaming = value;
21747
21859
  return;
@@ -21749,18 +21861,18 @@ function applySettingChange(settings, id, value) {
21749
21861
  settings.runtimePlugins = value.split(",").map((entry) => entry.trim()).filter(Boolean);
21750
21862
  return;
21751
21863
  case "delegation.defaults.connectTimeoutMs":
21752
- applyPositiveInteger(value, (next) => {
21753
- settings.delegation.defaults.connectTimeoutMs = next;
21864
+ applyNumberSetting("delegation.defaults.connectTimeoutMs", value, (next) => {
21865
+ if (next !== null) settings.delegation.defaults.connectTimeoutMs = next;
21754
21866
  });
21755
21867
  return;
21756
21868
  case "delegation.defaults.turnTimeoutMs":
21757
- applyPositiveInteger(value, (next) => {
21758
- settings.delegation.defaults.turnTimeoutMs = next;
21869
+ applyNumberSetting("delegation.defaults.turnTimeoutMs", value, (next) => {
21870
+ if (next !== null) settings.delegation.defaults.turnTimeoutMs = next;
21759
21871
  });
21760
21872
  return;
21761
21873
  case "delegation.defaults.permissionTimeoutMs":
21762
- applyPositiveInteger(value, (next) => {
21763
- settings.delegation.defaults.permissionTimeoutMs = next;
21874
+ applyNumberSetting("delegation.defaults.permissionTimeoutMs", value, (next) => {
21875
+ if (next !== null) settings.delegation.defaults.permissionTimeoutMs = next;
21764
21876
  });
21765
21877
  return;
21766
21878
  case "orchestrator.target": {
@@ -21799,11 +21911,11 @@ function applySettingChange(settings, id, value) {
21799
21911
  case "scope":
21800
21912
  settings.scope = parseScopedModelSelection(value) ?? value.split(",").map((v) => v.trim()).filter(Boolean);
21801
21913
  return;
21802
- case "budget.sessionCeilingUsd": {
21803
- const parsed = Number(value);
21804
- if (Number.isFinite(parsed) && parsed >= 0) settings.budget.sessionCeilingUsd = parsed;
21914
+ case "budget.sessionCeilingUsd":
21915
+ applyNumberSetting("budget.sessionCeilingUsd", value, (next) => {
21916
+ if (next !== null) settings.budget.sessionCeilingUsd = next;
21917
+ });
21805
21918
  return;
21806
- }
21807
21919
  }
21808
21920
  }
21809
21921
  function applyEntrySettingChange(settings, id, value) {
@@ -24718,6 +24830,8 @@ ${usage}` : usage);
24718
24830
  const result = ctx.verifyReceipt(command.runId);
24719
24831
  if (result.ok) {
24720
24832
  ctx.notice("success", `verify ok ${command.runId}`);
24833
+ } else if (result.retired !== void 0) {
24834
+ ctx.notice("warn", `verify retired ${command.runId} ${result.reason}`);
24721
24835
  } else {
24722
24836
  ctx.notice("error", `verify fail ${command.runId} ${result.reason}`);
24723
24837
  }
@@ -30083,6 +30197,14 @@ function createInteractiveEventProjection(deps) {
30083
30197
  })
30084
30198
  );
30085
30199
  remainingUnsubscribers.push(
30200
+ deps.bus.on(BusChannels.DispatchScopeNotice, (payload) => {
30201
+ const event = payload;
30202
+ if (!event || typeof event !== "object" || !["typed_scope_replaced_inferred_paths", "legacy_scope_inferred", "legacy_scope_empty"].includes(event.code) || typeof event.message !== "string") {
30203
+ return;
30204
+ }
30205
+ deps.appendTranscriptNotice("warn", event.message);
30206
+ deps.requestRender();
30207
+ }),
30086
30208
  deps.bus.on(BusChannels.LoopBlocked, (payload) => {
30087
30209
  const event = payload;
30088
30210
  if (!event || typeof event !== "object" || typeof event.tool !== "string" || typeof event.repeatCount !== "number") {
@@ -35670,14 +35792,6 @@ function councilSettingsFromArgs(args, deps) {
35670
35792
  function isRecord11(value) {
35671
35793
  return typeof value === "object" && value !== null && !Array.isArray(value);
35672
35794
  }
35673
- function reviewerTask(originalTask, builderRunId, cycle) {
35674
- return [
35675
- `Review the work of builder run ${builderRunId} (review cycle ${cycle}).`,
35676
- "The builder's final answer is provided as input data; verify it against the workspace, do not trust it blindly.",
35677
- "Original task the builder was given:",
35678
- originalTask
35679
- ].join("\n\n");
35680
- }
35681
35795
  function reviewSettingsFromArgs(args) {
35682
35796
  const raw = args.review;
35683
35797
  if (raw === void 0 || raw === false) return { ok: true, review: void 0 };
@@ -36007,9 +36121,6 @@ function createDispatchAdmissionController(deps) {
36007
36121
  if (parsed.requests.length !== 1 || parsed.requests[0] === void 0) {
36008
36122
  return shapeRejection(args, REVIEW_SINGLE_TASK_MESSAGE);
36009
36123
  }
36010
- if (parsed.requests.some((request) => (request.resolvedVerification?.length ?? 0) > 0)) {
36011
- return shapeRejection(args, "verification_unsupported_for_mode: review requests cannot run host verification");
36012
- }
36013
36124
  }
36014
36125
  if (mode === "compete" && (parsed.requests.length !== 1 || parsed.requests[0] === void 0)) {
36015
36126
  return shapeRejection(args, COMPETE_SINGLE_TASK_MESSAGE);
@@ -36060,7 +36171,7 @@ function createDispatchAdmissionController(deps) {
36060
36171
  {
36061
36172
  agentId: gateDeciderAgentId(reviewResult.review.reviewer),
36062
36173
  executionRole: "reviewer",
36063
- task: reviewerTask(base.task, subject.runId, cycle),
36174
+ task: renderDispatchReviewerTask(base.task, subject.runId, cycle, base.intent),
36064
36175
  systemPrompt: REVIEWER_GATE_PROMPT,
36065
36176
  autonomy: "read-only",
36066
36177
  gate: { role: "reviewer", group: "plan-preview", cycle, subjects: [subject] },
@@ -36121,6 +36232,13 @@ function createDispatchAdmissionController(deps) {
36121
36232
  executionRole: "researcher",
36122
36233
  autonomy: "read-only",
36123
36234
  toolProfile: "council-read-only",
36235
+ // The runner reuses this composed task from the resolved plan, so
36236
+ // the approval artifact the plan hash binds shows the operator the
36237
+ // exact ballot the member is asked to cast.
36238
+ ...council.synthesis === "vote" ? {
36239
+ task: renderCouncilVoteMemberTask(base.task),
36240
+ resultContractOverride: { kind: "council-ballot" }
36241
+ } : {},
36124
36242
  target: member.target,
36125
36243
  ...member.model ? { model: member.model } : {},
36126
36244
  ...member.thinking ? { thinkingLevel: member.thinking } : {},
@@ -36293,7 +36411,7 @@ function createDispatchTool(inputDeps, surfaceOptions = {}) {
36293
36411
  const admission = createDispatchAdmissionController(deps);
36294
36412
  let runnerPromise = null;
36295
36413
  const loadRunner = () => {
36296
- runnerPromise ??= (surfaceOptions.loadRunner ?? (() => import("./dispatch-runner-B7MTOVKL.js")))();
36414
+ runnerPromise ??= (surfaceOptions.loadRunner ?? (() => import("./dispatch-runner-22ZCNOM3.js")))();
36297
36415
  return runnerPromise;
36298
36416
  };
36299
36417
  return {
@@ -36531,7 +36649,7 @@ function registerAllTools(registry, deps = {}) {
36531
36649
  ...builtin(
36532
36650
  lazyTool(
36533
36651
  monitorToolSurface,
36534
- async () => (await import("./monitor-TJ7AMTGB.js")).createMonitorTool({ dispatch, runEvents: dispatchRunEvents })
36652
+ async () => (await import("./monitor-XLDVO7TN.js")).createMonitorTool({ dispatch, runEvents: dispatchRunEvents })
36535
36653
  ),
36536
36654
  {
36537
36655
  path: "src/tools/monitor.ts",
@@ -38019,4 +38137,4 @@ export {
38019
38137
  resolveApiKeyForTarget,
38020
38138
  synthesizeOrchestratorModel
38021
38139
  };
38022
- //# sourceMappingURL=orchestrator-WZYB54DM.js.map
38140
+ //# sourceMappingURL=orchestrator-6KSPYRHA.js.map