@iowarp/clio-coder 0.3.7 → 0.3.9

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 (400) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/README.md +13 -4
  3. package/dist/{acp-SK4MD6MM.js → acp-7LOELQFP.js} +13 -13
  4. package/dist/{agents-2FN2K6ME.js → agents-FIBG2SHA.js} +41 -37
  5. package/dist/assets/codewiki.json +1 -1
  6. package/dist/{auth-QIYZWM5I.js → auth-OI4LIH2I.js} +31 -24
  7. package/dist/builtins-AD25UL3C.js +17 -0
  8. package/dist/{chunk-5FR74PWO.js → chunk-2JDWVJND.js} +2 -2
  9. package/dist/chunk-3DPEIQKN.js +113 -0
  10. package/dist/{chunk-EOOQZZDE.js → chunk-3DUR4WUA.js} +19 -19
  11. package/dist/{chunk-WHJYKASB.js → chunk-3MRC2YSQ.js} +2 -2
  12. package/dist/{chunk-EBEFWSGL.js → chunk-3UUY7R3Z.js} +14 -10
  13. package/dist/{chunk-LADCF22A.js → chunk-3V5AYSEQ.js} +113 -54
  14. package/dist/{chunk-BMWK7ZIZ.js → chunk-465CC7FK.js} +16 -13
  15. package/dist/{chunk-5WIGXA4T.js → chunk-47CMYGET.js} +111 -4
  16. package/dist/{chunk-CEYBNUGC.js → chunk-4H6ULJ3H.js} +378 -36
  17. package/dist/{chunk-YTYFXUI3.js → chunk-4LJX2PUC.js} +9 -9
  18. package/dist/{chunk-DOOEX22V.js → chunk-56KB5IJP.js} +5 -5
  19. package/dist/{chunk-SPULKLCF.js → chunk-5DQRIYDZ.js} +2 -2
  20. package/dist/{chunk-TSHXZTOQ.js → chunk-5HFBWUMU.js} +23 -11
  21. package/dist/{chunk-5UJ6ECTS.js → chunk-5PVQ4SRS.js} +80 -8
  22. package/dist/{chunk-ZWLZP4ZT.js → chunk-5QKCQQ3E.js} +359 -17
  23. package/dist/{chunk-6M7VS3J3.js → chunk-5T7RBWN2.js} +111 -5
  24. package/dist/chunk-774ILSRL.js +172 -0
  25. package/dist/chunk-7C6RYZGQ.js +391 -0
  26. package/dist/{chunk-GH5622CP.js → chunk-A2NJGIB3.js} +2 -2
  27. package/dist/{chunk-C4JBQ5SR.js → chunk-AD7Y7STJ.js} +6 -6
  28. package/dist/{chunk-GEYXPTRF.js → chunk-AEYBF3TB.js} +33 -12
  29. package/dist/{chunk-2SFS6XQE.js → chunk-AMKHQW3C.js} +3 -2
  30. package/dist/{chunk-D4MDIG46.js → chunk-B5CSFE7B.js} +7 -7
  31. package/dist/{chunk-MXI6J5JF.js → chunk-B5XRQOLB.js} +10 -10
  32. package/dist/{chunk-X2KV5FXT.js → chunk-BVDVID7E.js} +2 -2
  33. package/dist/{chunk-JNXPYBB4.js → chunk-CA42X6KT.js} +3 -3
  34. package/dist/{chunk-VREKEFLL.js → chunk-D73KXYPF.js} +3 -3
  35. package/dist/{chunk-JTSEDYVQ.js → chunk-DG4M6ZUE.js} +7 -7
  36. package/dist/{chunk-DQA7QLMD.js → chunk-EBOC7MT3.js} +10 -25
  37. package/dist/{chunk-KZ2H5X4G.js → chunk-ECUO3KDP.js} +129 -14
  38. package/dist/{chunk-JRIO5UD2.js → chunk-EQ63NRB7.js} +5 -5
  39. package/dist/{chunk-YD734TPH.js → chunk-FALJGAWU.js} +2 -2
  40. package/dist/{chunk-GWS3VEIW.js → chunk-FWDFM5ZU.js} +24 -3
  41. package/dist/{chunk-XEGB6BCN.js → chunk-GAYUJ7LE.js} +68 -14
  42. package/dist/{chunk-UND3GU2L.js → chunk-H7IXIC72.js} +2 -2
  43. package/dist/{chunk-IR4CFBFN.js → chunk-HAY4ZE2P.js} +12 -12
  44. package/dist/{chunk-UVDSQ6LW.js → chunk-HCBCAYZU.js} +74 -147
  45. package/dist/{chunk-4DWFMQDR.js → chunk-HJB5IUKP.js} +89 -145
  46. package/dist/{chunk-M4AKACEO.js → chunk-HKO36JWF.js} +33 -5
  47. package/dist/{chunk-KCMKRQX4.js → chunk-HPCTNZM2.js} +45 -82
  48. package/dist/{chunk-465YSENW.js → chunk-IFBNV6H6.js} +3 -3
  49. package/dist/{chunk-FJ3H4MN5.js → chunk-IHKBWSXF.js} +2 -2
  50. package/dist/chunk-JEQQR47K.js +3025 -0
  51. package/dist/{chunk-FO5ZOVUY.js → chunk-KV2AOLDF.js} +27 -7
  52. package/dist/chunk-LU7P4LHA.js +33 -0
  53. package/dist/{chunk-6TUKSZVF.js → chunk-LXPJXFM5.js} +11 -11
  54. package/dist/{chunk-VQNODYQ4.js → chunk-MIX5N5AC.js} +488 -3668
  55. package/dist/chunk-MLOK6ZOS.js +2888 -0
  56. package/dist/{chunk-ZZMN5OM4.js → chunk-MV2VUEJC.js} +2 -2
  57. package/dist/{chunk-MVVUPGPW.js → chunk-MXHC5QYU.js} +6 -6
  58. package/dist/{chunk-OBMAI2DP.js → chunk-N3PBVRTZ.js} +12 -388
  59. package/dist/{chunk-WJHBC77E.js → chunk-N5XKWMDW.js} +17 -7
  60. package/dist/{chunk-5C3AQNDW.js → chunk-NNNWO6F2.js} +124 -36
  61. package/dist/{chunk-UFQ3F4FW.js → chunk-NQ6UCCOD.js} +4 -4
  62. package/dist/chunk-NUGM5KR6.js +165 -0
  63. package/dist/{chunk-DMD2AGVS.js → chunk-NZU6YDNV.js} +20 -18
  64. package/dist/{chunk-WHGPSPT5.js → chunk-O6I4CIEU.js} +151 -13
  65. package/dist/{chunk-XN3L4EYL.js → chunk-OEDBCISO.js} +2 -2
  66. package/dist/{chunk-PD3MESLB.js → chunk-P3JGPQFL.js} +4 -4
  67. package/dist/{chunk-UHXRNZ2J.js → chunk-PNY46YEY.js} +23 -6
  68. package/dist/{chunk-THKY7CD7.js → chunk-PZ4I4JE2.js} +134 -29
  69. package/dist/{chunk-SROCI7ZU.js → chunk-QQ7EKM72.js} +5 -5
  70. package/dist/{chunk-QCTRSGHQ.js → chunk-R7LNVMCS.js} +91 -53
  71. package/dist/{chunk-GOXNB3AO.js → chunk-RAPCMZL4.js} +75 -4
  72. package/dist/chunk-RKKLTLYB.js +45 -0
  73. package/dist/{chunk-OB5HIGJY.js → chunk-RKRLDWD3.js} +4 -1
  74. package/dist/{chunk-DJNLUABN.js → chunk-S4COXYBG.js} +588 -32
  75. package/dist/{chunk-3HAPLH5M.js → chunk-T3Z6VAAF.js} +172 -11
  76. package/dist/{chunk-FOT2FX5J.js → chunk-TD7UE2L5.js} +12 -10
  77. package/dist/{chunk-UUANF5CR.js → chunk-TEO2TLVN.js} +856 -967
  78. package/dist/{chunk-FCSXB6T2.js → chunk-UOSL25KY.js} +14 -2
  79. package/dist/{chunk-EELBMBT6.js → chunk-VKBMFOYV.js} +74 -15
  80. package/dist/chunk-VO2LKSTM.js +165 -0
  81. package/dist/{chunk-5C77SEEY.js → chunk-VPTUJU4P.js} +3 -3
  82. package/dist/{chunk-WEH5XRJQ.js → chunk-WIE7ZOSW.js} +2 -2
  83. package/dist/{chunk-J7PIKKWC.js → chunk-WXCJ7VME.js} +8 -8
  84. package/dist/{chunk-4DGYLA73.js → chunk-XDOQXGFO.js} +22 -7
  85. package/dist/{chunk-PPAMZ32Z.js → chunk-XK56QHLX.js} +6 -1
  86. package/dist/{chunk-AB4XIIVB.js → chunk-YKOFT37S.js} +6 -6
  87. package/dist/chunk-YSEHGPCT.js +127 -0
  88. package/dist/{chunk-HFSBBKSQ.js → chunk-YW7UVM5V.js} +138 -3
  89. package/dist/cli/index.js +32 -32
  90. package/dist/{clio-WBVQEBKO.js → clio-LT5V7SSZ.js} +9 -9
  91. package/dist/{code-nav-FGGFIE7L.js → code-nav-LMW275PA.js} +5 -5
  92. package/dist/codewiki/build-worker.js +4 -4
  93. package/dist/{components-F7OEATSO.js → components-ZFA3SAER.js} +8 -8
  94. package/dist/{config-TRBL3RCF.js → config-RXS5T3JT.js} +98 -65
  95. package/dist/{configure-OLCVPHNM.js → configure-2WYWSCSD.js} +26 -22
  96. package/dist/{context-MJIJ6GOX.js → context-I3BTOTCS.js} +12 -12
  97. package/dist/{context-XEWE3MOJ.js → context-MVOORGMF.js} +54 -47
  98. package/dist/{context-WFPKQSM6.js → context-PALKKQYL.js} +28 -28
  99. package/dist/{context-clear-KNOS2JPB.js → context-clear-N2WOYZ2K.js} +53 -46
  100. package/dist/{context-index-SSR5ECNE.js → context-index-HNG3MOME.js} +6 -6
  101. package/dist/{context-working-set-EUXAZI6N.js → context-working-set-MIEVECVZ.js} +17 -18
  102. package/dist/{dispatch-runner-B7MTOVKL.js → dispatch-runner-VVA4SRRH.js} +90 -61
  103. package/dist/{docs-FLJTIDSE.js → docs-7LQ23DLM.js} +8 -8
  104. package/dist/doctor-TWBWFK5V.js +165 -0
  105. package/dist/eval-IJ5VEZDJ.js +4483 -0
  106. package/dist/{evidence-JZNBUOQZ.js → evidence-L5APPXNV.js} +68 -61
  107. package/dist/{evolve-FJVC4KKI.js → evolve-RGNKFJ52.js} +47 -40
  108. package/dist/{extensions-IQL36S7K.js → extensions-7WYWUX5A.js} +13 -7
  109. package/dist/{fleet-BDKYJFCP.js → fleet-6CNVBZZP.js} +113 -76
  110. package/dist/{fleet-commands-ZFIWZSB3.js → fleet-commands-L2SXSYEI.js} +10 -10
  111. package/dist/{fleet-graph-Y6HPXIVF.js → fleet-graph-2J3OOIPO.js} +17 -15
  112. package/dist/{fleet-preflight-BHSNPBMH.js → fleet-preflight-CZRJ4JP5.js} +5 -6
  113. package/dist/{fleet-validate-BIYREGIK.js → fleet-validate-C5RI6DP7.js} +20 -19
  114. package/dist/{init-LQUB5COQ.js → init-VBN2ACVA.js} +70 -63
  115. package/dist/{library-NJAHIGG4.js → library-JHGUMLY2.js} +22 -20
  116. package/dist/{memory-OG6HOYKM.js → memory-K4OQIYWG.js} +49 -42
  117. package/dist/{models-5ZG5XY7J.js → models-2NCZUWDD.js} +35 -29
  118. package/dist/{monitor-TJ7AMTGB.js → monitor-MMVTJABD.js} +64 -45
  119. package/dist/{orchestrator-WZYB54DM.js → orchestrator-ZKBPCHW6.js} +1971 -520
  120. package/dist/{paths-XUC7GS6E.js → paths-DBXMZMDU.js} +5 -5
  121. package/dist/registry-LG64LTF4.js +11 -0
  122. package/dist/{reset-PXQT45IY.js → reset-DD5JGOY3.js} +11 -11
  123. package/dist/{run-FQ74YF62.js → run-QEGNX7FL.js} +89 -83
  124. package/dist/{share-FW7SVCL3.js → share-JKD3BQMW.js} +20 -18
  125. package/dist/{skills-7E7IRB3R.js → skills-LMQIKDOZ.js} +23 -21
  126. package/dist/{skills-eval-LI75W6OK.js → skills-eval-I7X2774U.js} +59 -52
  127. package/dist/{steer-GGWFUJUD.js → steer-CF5TDANS.js} +3 -3
  128. package/dist/support-I7LOJLIF.js +38 -0
  129. package/dist/{targets-4CIFKCTW.js → targets-RUSR6B5Z.js} +77 -42
  130. package/dist/{terminal-lease-WUZY7ZV5.js → terminal-lease-QYVORFR4.js} +6 -4
  131. package/dist/{trace-PNCASAXC.js → trace-ODOQIVIW.js} +61 -6
  132. package/dist/{uninstall-7FV7IP4E.js → uninstall-ZJF5H5ZN.js} +8 -8
  133. package/dist/{upgrade-K2HVIVMQ.js → upgrade-XANW3FXB.js} +29 -26
  134. package/dist/{usage-GTZELZQX.js → usage-4H7ZRXQT.js} +110 -61
  135. package/dist/{verifiers-RLAHT27O.js → verifiers-UZXNBZEB.js} +13 -13
  136. package/dist/{verify-BX3BRKH5.js → verify-BVKWTNDL.js} +9 -9
  137. package/dist/{wiki-generate-ASIFASCN.js → wiki-generate-MY7WV2QI.js} +76 -69
  138. package/dist/worker/entry.js +69 -66
  139. package/docs/alcf-provider.md +1 -1
  140. package/docs/architecture.md +1 -1
  141. package/docs/artifact-versions.md +11 -5
  142. package/docs/built-in-agents.md +1 -1
  143. package/docs/capacity-and-scheduling.md +23 -2
  144. package/docs/commands-and-modes.md +2 -2
  145. package/docs/configuration-and-targets.md +37 -5
  146. package/docs/context-engine.md +63 -4
  147. package/docs/documentation-coverage.md +3 -3
  148. package/docs/documentation-guide.md +1 -1
  149. package/docs/environment-variables.md +2 -0
  150. package/docs/eval-runner.md +262 -11
  151. package/docs/evals-internal.md +72 -2
  152. package/docs/evidence-and-memory.md +77 -12
  153. package/docs/evolution.md +1 -1
  154. package/docs/extensions-and-sharing.md +3 -1
  155. package/docs/fleet-dispatch.md +34 -9
  156. package/docs/glossary.md +21 -1
  157. package/docs/installation-and-lifecycle.md +1 -1
  158. package/docs/middleware-and-components.md +1 -1
  159. package/docs/model-catalog.md +1 -1
  160. package/docs/observability.md +54 -3
  161. package/docs/proactive-memory.md +127 -14
  162. package/docs/prompt-envelope-and-tools.md +22 -2
  163. package/docs/provider-adapter-cookbook.md +1 -1
  164. package/docs/release-cut-checklist.md +60 -41
  165. package/docs/safety-model.md +1 -1
  166. package/docs/scientific-validation.md +1 -1
  167. package/docs/skills-marketplace.md +1 -1
  168. package/docs/tool-usage.md +1 -1
  169. package/docs/trace-store.md +1 -1
  170. package/docs/troubleshooting.md +87 -0
  171. package/docs/tui-design.md +1 -1
  172. package/docs/worker-dispatch-mechanics.md +1 -1
  173. package/package.json +2 -2
  174. package/src/cli/agents.ts +1 -1
  175. package/src/cli/argv.ts +5 -0
  176. package/src/cli/config-inspect.ts +33 -6
  177. package/src/cli/config.ts +1 -1
  178. package/src/cli/configure.ts +107 -23
  179. package/src/cli/doctor-state-size.ts +82 -0
  180. package/src/cli/doctor.ts +7 -1
  181. package/src/cli/eval.ts +80 -16
  182. package/src/cli/evidence.ts +30 -25
  183. package/src/cli/extensions.ts +5 -1
  184. package/src/cli/fleet-preflight.ts +2 -12
  185. package/src/cli/fleet.ts +32 -3
  186. package/src/cli/shared.ts +1 -0
  187. package/src/cli/targets.ts +45 -11
  188. package/src/cli/trace.ts +63 -4
  189. package/src/cli/usage.ts +63 -14
  190. package/src/cli/validate-model.ts +60 -5
  191. package/src/core/bus-events.ts +54 -1
  192. package/src/core/cache-telemetry.ts +42 -0
  193. package/src/core/commit-attribution.ts +4 -4
  194. package/src/core/config.ts +18 -0
  195. package/src/core/defaults.ts +36 -6
  196. package/src/core/endpoint-key.ts +27 -0
  197. package/src/core/path-boundary.ts +100 -0
  198. package/src/core/residency-target-key.ts +25 -0
  199. package/src/core/response-schema.ts +36 -2
  200. package/src/domains/agents/extension.ts +2 -11
  201. package/src/domains/agents/fleet-contract.ts +30 -12
  202. package/src/domains/agents/recipe.ts +7 -1
  203. package/src/domains/agents/registry.ts +73 -5
  204. package/src/domains/agents/result-contract.ts +128 -17
  205. package/src/domains/agents/write-boundary.ts +15 -50
  206. package/src/domains/config/classify.ts +3 -0
  207. package/src/domains/context/codewiki/coordinator.ts +12 -4
  208. package/src/domains/context/project-rules.ts +51 -1
  209. package/src/domains/dispatch/admission.ts +40 -3
  210. package/src/domains/dispatch/assignment-reconcile.ts +22 -5
  211. package/src/domains/dispatch/assignment-store.ts +151 -14
  212. package/src/domains/dispatch/capacity-lease.ts +98 -9
  213. package/src/domains/dispatch/contract.ts +26 -1
  214. package/src/domains/dispatch/delegation-plan.ts +2 -5
  215. package/src/domains/dispatch/execution-plan.ts +44 -4
  216. package/src/domains/dispatch/execution-role.ts +9 -1
  217. package/src/domains/dispatch/extension.ts +309 -96
  218. package/src/domains/dispatch/fleet-run.ts +78 -4
  219. package/src/domains/dispatch/gate-role-prompts.ts +38 -0
  220. package/src/domains/dispatch/heartbeat.ts +32 -8
  221. package/src/domains/dispatch/index.ts +6 -1
  222. package/src/domains/dispatch/intent-requirements.ts +40 -0
  223. package/src/domains/dispatch/intent.ts +84 -8
  224. package/src/domains/dispatch/orphan-recovery.ts +5 -0
  225. package/src/domains/dispatch/path-scope.ts +370 -0
  226. package/src/domains/dispatch/receipt-integrity.ts +2 -1
  227. package/src/domains/dispatch/reservation-store.ts +116 -8
  228. package/src/domains/dispatch/state.ts +4 -0
  229. package/src/domains/dispatch/types.ts +14 -7
  230. package/src/domains/dispatch/validation.ts +6 -3
  231. package/src/domains/dispatch/worker-spawn.ts +25 -11
  232. package/src/domains/dispatch/write-boundary-enforcer.ts +62 -0
  233. package/src/domains/dispatch/write-boundary.ts +262 -22
  234. package/src/domains/eval/artifacts/store.ts +62 -0
  235. package/src/domains/eval/compare/behavioral.ts +224 -0
  236. package/src/domains/eval/compare/compare.ts +355 -2
  237. package/src/domains/eval/compare/envelope.ts +128 -0
  238. package/src/domains/eval/compare/gates.ts +24 -6
  239. package/src/domains/eval/compare/thresholds.ts +30 -3
  240. package/src/domains/eval/execution-provenance.ts +240 -0
  241. package/src/domains/eval/metrics/aggregate.ts +136 -0
  242. package/src/domains/eval/metrics/call-ledger-stream.ts +112 -0
  243. package/src/domains/eval/metrics/evidence.ts +79 -2
  244. package/src/domains/eval/metrics/tracked.ts +413 -0
  245. package/src/domains/eval/provenance.ts +117 -0
  246. package/src/domains/eval/reports/comparison.ts +128 -0
  247. package/src/domains/eval/reports/junit.ts +17 -3
  248. package/src/domains/eval/reports/markdown.ts +3 -3
  249. package/src/domains/eval/reports/text.ts +14 -0
  250. package/src/domains/eval/run-compare.ts +20 -0
  251. package/src/domains/eval/runners/clio-run.ts +139 -2
  252. package/src/domains/eval/runners/external-command.ts +28 -3
  253. package/src/domains/eval/schema/adapter.ts +111 -0
  254. package/src/domains/eval/schema/artifact.ts +20 -0
  255. package/src/domains/eval/schema/behavioral-metrics.ts +204 -0
  256. package/src/domains/eval/schema/behavioral.ts +520 -0
  257. package/src/domains/eval/schema/execution-envelope.ts +194 -0
  258. package/src/domains/eval/schema/serving.ts +74 -0
  259. package/src/domains/eval/schema/suite.ts +38 -8
  260. package/src/domains/eval/schema/validate.ts +58 -3
  261. package/src/domains/eval/schema/verdict.ts +237 -0
  262. package/src/domains/eval/suites/resolve.ts +2 -0
  263. package/src/domains/eval/suites/run.ts +264 -33
  264. package/src/domains/eval/verifiers/command.ts +2 -1
  265. package/src/domains/eval/workspaces/temp-copy.ts +145 -13
  266. package/src/domains/evidence/build.ts +68 -21
  267. package/src/domains/evidence/eval.ts +2 -12
  268. package/src/domains/evidence/findings-markdown.ts +33 -0
  269. package/src/domains/evidence/index.ts +21 -0
  270. package/src/domains/evidence/provenance.ts +46 -11
  271. package/src/domains/evidence/run-trust.ts +7 -113
  272. package/src/domains/evidence/trust-projection.ts +274 -0
  273. package/src/domains/evidence/trust-status.ts +145 -17
  274. package/src/domains/evidence/types.ts +4 -0
  275. package/src/domains/extensions/compatibility.ts +285 -0
  276. package/src/domains/extensions/discovery.ts +126 -4
  277. package/src/domains/extensions/resources.ts +21 -9
  278. package/src/domains/extensions/state.ts +18 -5
  279. package/src/domains/extensions/types.ts +6 -1
  280. package/src/domains/lifecycle/doctor.ts +209 -2
  281. package/src/domains/memory/index.ts +14 -0
  282. package/src/domains/memory/task-bank-promotion.ts +64 -0
  283. package/src/domains/memory/task-memory-policy.ts +77 -8
  284. package/src/domains/memory/task-memory-spend.ts +131 -0
  285. package/src/domains/memory/task-memory-status.ts +7 -0
  286. package/src/domains/memory/task-memory-telemetry.ts +2 -0
  287. package/src/domains/middleware/index.ts +1 -0
  288. package/src/domains/middleware/memory-intervention.ts +69 -5
  289. package/src/domains/middleware/memory-step-endpoint.ts +71 -0
  290. package/src/domains/observability/background-memory-usage.ts +140 -0
  291. package/src/domains/observability/cost.ts +1 -1
  292. package/src/domains/observability/index.ts +7 -0
  293. package/src/domains/observability/out-of-turn-usage.ts +51 -2
  294. package/src/domains/observability/trace-store.ts +192 -2
  295. package/src/domains/prompts/compiler.ts +100 -13
  296. package/src/domains/prompts/contract.ts +3 -5
  297. package/src/domains/providers/endpoint-capacity.ts +96 -0
  298. package/src/domains/providers/extension.ts +30 -2
  299. package/src/domains/providers/index.ts +10 -0
  300. package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +243 -1
  301. package/src/domains/providers/runtime-resolution.ts +8 -1
  302. package/src/domains/providers/runtimes/common/probe-helpers.ts +31 -9
  303. package/src/domains/providers/runtimes/local-native/llamacpp-anthropic.ts +1 -1
  304. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
  305. package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +1 -1
  306. package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +1 -1
  307. package/src/domains/providers/runtimes/local-native/llamacpp.ts +4 -1
  308. package/src/domains/providers/runtimes/local-native/lmstudio.ts +4 -1
  309. package/src/domains/providers/runtimes/local-native/ollama-native.ts +6 -1
  310. package/src/domains/providers/types/capability-flags.ts +2 -0
  311. package/src/domains/providers/types/target-descriptor.ts +2 -0
  312. package/src/domains/resources/common-loader.ts +3 -0
  313. package/src/domains/resources/prompts/loader.ts +184 -17
  314. package/src/domains/safety/call-target.ts +52 -0
  315. package/src/domains/safety/policy-engine.ts +5 -5
  316. package/src/domains/safety/run-effects.ts +96 -2
  317. package/src/domains/safety/scope.ts +7 -12
  318. package/src/domains/session/context-accounting.ts +52 -1
  319. package/src/domains/session/context-ledger.ts +37 -13
  320. package/src/domains/session/index.ts +6 -0
  321. package/src/domains/session/prompt-cache.ts +140 -0
  322. package/src/domains/session/prompt-manifest.ts +42 -0
  323. package/src/engine/acp/adapter.ts +18 -3
  324. package/src/engine/acp/server.ts +4 -1
  325. package/src/engine/ai.ts +35 -0
  326. package/src/engine/apis/llamacpp-residency.ts +55 -3
  327. package/src/engine/apis/lmstudio.ts +25 -5
  328. package/src/engine/apis/ollama-native.ts +2 -1
  329. package/src/engine/apis/openai-completions.ts +80 -17
  330. package/src/engine/apis/residency-lock.ts +3 -1
  331. package/src/engine/apis/residency.ts +34 -1
  332. package/src/engine/prompt-templates.ts +18 -1
  333. package/src/engine/provider-payload.ts +29 -1
  334. package/src/engine/worker-runtime.ts +6 -3
  335. package/src/entry/orchestrator.ts +176 -30
  336. package/src/interactive/chat-loop-messages.ts +26 -7
  337. package/src/interactive/chat-loop.ts +318 -41
  338. package/src/interactive/chat-panel.ts +62 -8
  339. package/src/interactive/clio-editor.ts +45 -8
  340. package/src/interactive/context-activity.ts +5 -1
  341. package/src/interactive/context-meter.ts +1 -1
  342. package/src/interactive/context-overlay.ts +40 -10
  343. package/src/interactive/cost-overlay.ts +64 -6
  344. package/src/interactive/dispatch-board.ts +127 -5
  345. package/src/interactive/fleet-run-preview.ts +41 -15
  346. package/src/interactive/handoff-round.ts +41 -2
  347. package/src/interactive/interactive-application.ts +24 -1
  348. package/src/interactive/interactive-event-projection.ts +14 -0
  349. package/src/interactive/interactive-input-runtime.ts +8 -0
  350. package/src/interactive/interactive-presentation.ts +4 -0
  351. package/src/interactive/interactive-shell.ts +20 -17
  352. package/src/interactive/interactive-slash-runtime.ts +27 -4
  353. package/src/interactive/memory-overlay.ts +8 -0
  354. package/src/interactive/mutation-preview.ts +295 -0
  355. package/src/interactive/overlay-general-openers.ts +16 -0
  356. package/src/interactive/overlay-key-routing.ts +38 -0
  357. package/src/interactive/overlay-lifecycle.ts +38 -5
  358. package/src/interactive/overlay-permission-lifecycle.ts +22 -2
  359. package/src/interactive/overlay-session-lifecycle.ts +73 -9
  360. package/src/interactive/overlays/ask-user.ts +91 -19
  361. package/src/interactive/overlays/help-reference.ts +4 -0
  362. package/src/interactive/overlays/prompts.ts +11 -1
  363. package/src/interactive/overlays/settings.ts +176 -48
  364. package/src/interactive/permission-hint.ts +34 -2
  365. package/src/interactive/permission-overlay.ts +159 -9
  366. package/src/interactive/prewarm.ts +197 -0
  367. package/src/interactive/render-trace.ts +162 -15
  368. package/src/interactive/renderers/tool-execution.ts +4 -0
  369. package/src/interactive/side-question.ts +58 -1
  370. package/src/interactive/slash-commands.ts +7 -2
  371. package/src/interactive/status/controller.ts +11 -0
  372. package/src/interactive/status/state-machine.ts +54 -2
  373. package/src/interactive/status/types.ts +7 -0
  374. package/src/interactive/terminal-lease.ts +2 -0
  375. package/src/interactive/turn-context.ts +299 -31
  376. package/src/interactive/turn-persistence.ts +14 -4
  377. package/src/interactive/turn-prewarm.ts +364 -0
  378. package/src/interactive/turn-queues.ts +7 -4
  379. package/src/interactive/turn-runtime.ts +8 -1
  380. package/src/interactive/turn-state.ts +23 -0
  381. package/src/interactive/view/artifacts.ts +42 -9
  382. package/src/interactive/view/view-overlay.ts +43 -6
  383. package/src/interactive/worker-receipts.ts +14 -2
  384. package/src/interactive/worker-stream.ts +8 -0
  385. package/src/tools/ask-user.ts +43 -2
  386. package/src/tools/dispatch-admission.ts +12 -13
  387. package/src/tools/dispatch-arguments.ts +27 -0
  388. package/src/tools/dispatch-plan.ts +46 -9
  389. package/src/tools/dispatch-runner.ts +48 -13
  390. package/src/tools/dispatch-scout.ts +1 -1
  391. package/src/tools/monitor.ts +13 -0
  392. package/src/tools/registry.ts +16 -0
  393. package/src/tools/worker-evidence.ts +19 -13
  394. package/src/worker/spec-contract.ts +2 -1
  395. package/dist/chunk-AOCYTWAV.js +0 -449
  396. package/dist/chunk-HWUFFB6L.js +0 -83
  397. package/dist/chunk-R346GLFC.js +0 -31
  398. package/dist/chunk-ZGH7FGS5.js +0 -1079
  399. package/dist/doctor-RN4YKO2X.js +0 -87
  400. package/dist/eval-RUBJVSNQ.js +0 -2557
@@ -210,6 +210,7 @@ registerEngineBuiltins();
210
210
 
211
211
  // src/engine/ai.ts
212
212
  var stream = engineStream;
213
+ var streamSimple = engineStreamSimple;
213
214
  async function completeEngineText(input) {
214
215
  const response = await completeEngineSimple(
215
216
  input.model,
@@ -231,7 +232,17 @@ async function completeEngineText(input) {
231
232
  return {
232
233
  text: response.content.filter((block) => block.type === "text").map((block) => block.text).join(""),
233
234
  inputTokens: response.usage.input,
234
- outputTokens: response.usage.output
235
+ outputTokens: response.usage.output,
236
+ usage: {
237
+ input: response.usage.input,
238
+ output: response.usage.output,
239
+ cacheRead: response.usage.cacheRead,
240
+ cacheWrite: response.usage.cacheWrite,
241
+ reasoning: response.usage.reasoning ?? 0,
242
+ totalTokens: response.usage.totalTokens,
243
+ costUsd: response.usage.cost.total
244
+ },
245
+ backend: response.backendTimings ?? null
235
246
  };
236
247
  }
237
248
  var registered = false;
@@ -325,6 +336,7 @@ export {
325
336
  activateExternalPluginApiBridge,
326
337
  StringEnum,
327
338
  stream,
339
+ streamSimple,
328
340
  completeEngineText,
329
341
  ensurePiAiRegistered,
330
342
  createEngineAi,
@@ -335,4 +347,4 @@ export {
335
347
  calculateEngineCost,
336
348
  registerFauxFromEnv
337
349
  };
338
- //# sourceMappingURL=chunk-FCSXB6T2.js.map
350
+ //# sourceMappingURL=chunk-UOSL25KY.js.map
@@ -7,21 +7,23 @@ import {
7
7
  cloneDispatchBudgetRequest,
8
8
  isApprovedAssignmentRoute,
9
9
  isDispatchIntent,
10
- isToolProfileName
11
- } from "./chunk-CEYBNUGC.js";
10
+ isToolProfileName,
11
+ resolveDispatchPathScope
12
+ } from "./chunk-4H6ULJ3H.js";
12
13
  import {
13
14
  ROUTE_POLICY_VERSION,
14
15
  isRouteDecisionAgentSelection,
15
16
  isRoutingIntent,
16
17
  parseRoutingIntent
17
- } from "./chunk-5C77SEEY.js";
18
+ } from "./chunk-VPTUJU4P.js";
18
19
  import {
19
20
  isExecutionRole,
20
21
  requestExecutionRole
21
- } from "./chunk-UND3GU2L.js";
22
+ } from "./chunk-H7IXIC72.js";
22
23
  import {
23
- AGENT_AUTOMATION_AUTHORITIES
24
- } from "./chunk-AOCYTWAV.js";
24
+ AGENT_AUTOMATION_AUTHORITIES,
25
+ pathBoundaryCovers
26
+ } from "./chunk-S4COXYBG.js";
25
27
  import {
26
28
  init_esm_shims
27
29
  } from "./chunk-3R73A4XB.js";
@@ -217,8 +219,34 @@ function dispatchRequestsFromArgs(args, options) {
217
219
  for (let index = 0; index < tasks.length; index += 1) {
218
220
  const item = tasks[index];
219
221
  const itemArgs = isRecord(item) ? { ...shared, ...item } : { ...shared, task: item };
222
+ const sharedIntent = isRecord(shared.intent) ? shared.intent : null;
223
+ const itemIntent = isRecord(item) && Object.hasOwn(item, "intent") && isRecord(item.intent) ? item.intent : null;
224
+ if (sharedIntent !== null && itemIntent !== null) itemArgs.intent = { ...sharedIntent, ...itemIntent };
220
225
  const parsed = dispatchRequestFromArgs(itemArgs, options);
221
226
  if (!parsed.ok) return { ok: false, message: `dispatch: task ${index + 1}: ${parsed.message}` };
227
+ if (sharedIntent !== null && itemIntent !== null) {
228
+ if (options.resolveIntent === void 0) {
229
+ return { ok: false, message: `dispatch: task ${index + 1}: intent resolver is unavailable` };
230
+ }
231
+ const ceiling = options.resolveIntent(sharedIntent, parsed.request.cwd);
232
+ if (!ceiling.ok) return { ok: false, message: `dispatch: task ${index + 1}: ${ceiling.message}` };
233
+ const pathCeilings = {
234
+ readRoots: [...ceiling.intent.readRoots, ...ceiling.intent.writeRoots],
235
+ writeRoots: ceiling.intent.writeRoots,
236
+ relevantPaths: [...ceiling.intent.readRoots, ...ceiling.intent.writeRoots, ...ceiling.intent.relevantPaths]
237
+ };
238
+ for (const field of ["readRoots", "writeRoots", "relevantPaths"]) {
239
+ const outside = parsed.request.intent?.[field].find(
240
+ (candidate) => !pathBoundaryCovers(pathCeilings[field], candidate)
241
+ );
242
+ if (outside !== void 0) {
243
+ return {
244
+ ok: false,
245
+ message: `dispatch: task ${index + 1}: intent_scope_widening: ${field} entry '${outside}' is outside the top-level intent ceiling`
246
+ };
247
+ }
248
+ }
249
+ }
222
250
  requests.push(parsed.request);
223
251
  }
224
252
  return { ok: true, requests };
@@ -299,14 +327,44 @@ function isRecord2(value) {
299
327
  function str(value) {
300
328
  return typeof value === "string" && value.trim().length > 0 ? value.trim() : void 0;
301
329
  }
302
- function safeField(value) {
330
+ function safeField(value, bindChangedValue = true) {
303
331
  let result = "";
304
332
  for (const character of value) {
305
333
  const code = character.codePointAt(0) ?? 0;
306
334
  result += code < 32 || code >= 127 && code <= 159 ? "?" : character;
307
- if (result.length >= 256) return `${result.slice(0, 255)}\u2026`;
335
+ if (result.length >= 256) {
336
+ result = `${result.slice(0, 255)}\u2026`;
337
+ break;
338
+ }
339
+ }
340
+ if (!bindChangedValue || result === value) return result;
341
+ return `${result}{sha256=${createHash("sha256").update(value, "utf8").digest("hex")}}`;
342
+ }
343
+ function renderLegacyPathScope(task) {
344
+ if (task.intent !== void 0) return [];
345
+ const scope = resolveDispatchPathScope({
346
+ agentId: task.agent,
347
+ executionRole: task.executionRole,
348
+ task: task.task,
349
+ ...task.briefing !== void 0 ? { briefing: task.briefing } : {}
350
+ });
351
+ const lines = [" scope mode=legacy-inferred"];
352
+ for (const [policy, entries] of [
353
+ ["working_context", scope.provenance.workingContextPaths],
354
+ ["write_boundary", scope.provenance.writeBoundaries]
355
+ ]) {
356
+ for (const entry of entries) {
357
+ for (const evidence of entry.evidence) {
358
+ lines.push(
359
+ ` scope ${policy} path=${JSON.stringify(safeField(entry.path))} provenance=${evidence.provenance} source=${evidence.source} confidence=${evidence.confidence} reason=${evidence.reason}`
360
+ );
361
+ }
362
+ }
363
+ }
364
+ if (scope.provenance.workingContextPaths.length === 0 && scope.provenance.writeBoundaries.length === 0) {
365
+ lines.push(" scope policy_paths=none");
308
366
  }
309
- return result;
367
+ return lines;
310
368
  }
311
369
  function taskViews(args) {
312
370
  const tasks = Array.isArray(args.tasks) ? args.tasks : [];
@@ -403,7 +461,7 @@ function renderPlanText(topology, tasks, costCeilingUsd, deadlineMs, source, max
403
461
  const routing = task.routingIntent;
404
462
  const routingText = routing === void 0 ? "" : ` posture=${routing.posture} maxCostUsd=${routing.maxCostUsd ?? "none"} deadlineMs=${routing.deadlineMs ?? "none"} minimumQuality=${routing.minimumQuality ?? "none"} locality=${routing.locality}`;
405
463
  lines.push(
406
- ` ${index + 1}.${role} agent=${safeField(task.agent)}${target}${model}${node}${failover}${routingText} task=${JSON.stringify(safeField(task.task))}`
464
+ ` ${index + 1}.${role} agent=${safeField(task.agent)}${target}${model}${node}${failover}${routingText} task_bytes=${Buffer.byteLength(task.task, "utf8")} task_sha256=${createHash("sha256").update(task.task, "utf8").digest("hex")} task_preview=${JSON.stringify(safeField(task.task, false))}`
407
465
  );
408
466
  if (task.council !== void 0) {
409
467
  lines.push(
@@ -430,28 +488,29 @@ function renderPlanText(topology, tasks, costCeilingUsd, deadlineMs, source, max
430
488
  }
431
489
  if (task.agentSelection !== null) {
432
490
  lines.push(
433
- ` agent-selection=auto baseline=${safeField(task.agentSelection.baselineAgentId)} authority=${task.agentSelection.approvedAuthorities.map(safeField).join(",")} basis=${task.agentSelection.authorityBasis}`
491
+ ` agent-selection=auto baseline=${safeField(task.agentSelection.baselineAgentId)} authority=${task.agentSelection.approvedAuthorities.map((authority) => safeField(authority)).join(",")} basis=${task.agentSelection.authorityBasis}`
434
492
  );
435
493
  }
436
494
  if (task.stepId !== null) {
437
495
  lines.push(
438
- ` step=${safeField(task.stepId)} wave=${task.wave ?? "?"} role=${task.executionRole} dependencies=${task.dependencies.map(safeField).join(",") || "none"} result=${task.expectedResultContract ?? "none"} authority=${task.authorityGrant?.requested ?? "none"} basis=${task.authorityGrant?.basis ?? "none"}`
496
+ ` step=${safeField(task.stepId)} wave=${task.wave ?? "?"} role=${task.executionRole} dependencies=${task.dependencies.map((dependency) => safeField(dependency)).join(",") || "none"} result=${task.expectedResultContract ?? "none"} authority=${task.authorityGrant?.requested ?? "none"} basis=${task.authorityGrant?.basis ?? "none"}`
439
497
  );
440
498
  const agentReasons = task.agentDecision?.agentSelection.evaluations.filter((evaluation) => evaluation.rejections.length > 0).slice(0, 8).map(
441
- (evaluation) => `${safeField(evaluation.agentId)}:${evaluation.rejections.slice(0, 4).map(safeField).join(",")}`
499
+ (evaluation) => `${safeField(evaluation.agentId)}:${evaluation.rejections.slice(0, 4).map((rejection) => safeField(rejection)).join(",")}`
442
500
  );
443
501
  if (agentReasons !== void 0 && agentReasons.length > 0)
444
502
  lines.push(` agent-exclusions=${agentReasons.join(";")}`);
445
503
  }
446
504
  if (task.briefing !== void 0) {
447
505
  lines.push(
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))}`
506
+ ` briefing_bytes=${Buffer.byteLength(task.briefing, "utf8")} briefing_sha256=${createHash("sha256").update(task.briefing, "utf8").digest("hex")} briefing_preview=${JSON.stringify(safeField(task.briefing, false))}`
449
507
  );
450
508
  }
451
509
  if (task.intent !== void 0) {
452
510
  const serialized = JSON.stringify(task.intent);
453
511
  lines.push(` intent_sha256=${createHash("sha256").update(serialized, "utf8").digest("hex")}`);
454
512
  }
513
+ lines.push(...renderLegacyPathScope(task));
455
514
  for (const check of task.resolvedVerification ?? []) {
456
515
  lines.push(
457
516
  ` verification check=${safeField(check.check)} argv=${JSON.stringify(check.argv)} cwd=${JSON.stringify(check.cwd)} timeout_ms=${check.timeoutMs}`
@@ -756,4 +815,4 @@ export {
756
815
  withResolvedDispatchPlan,
757
816
  describeDispatchPlan
758
817
  };
759
- //# sourceMappingURL=chunk-EELBMBT6.js.map
818
+ //# sourceMappingURL=chunk-VKBMFOYV.js.map
@@ -0,0 +1,165 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ createEngineAi,
4
+ getEngineSupportedThinkingLevels
5
+ } from "./chunk-UOSL25KY.js";
6
+ import {
7
+ init_esm_shims
8
+ } from "./chunk-3R73A4XB.js";
9
+
10
+ // src/domains/providers/capabilities.ts
11
+ init_esm_shims();
12
+ function mergeCapabilities(base, kb, probe, userOverride) {
13
+ const merged = { ...base };
14
+ applyLayer(merged, probe);
15
+ applyLayer(merged, kb);
16
+ applyDeploymentLimits(merged, probe);
17
+ applyLayer(merged, userOverride);
18
+ return merged;
19
+ }
20
+ function applyDeploymentLimits(target, probe) {
21
+ if (!probe) return;
22
+ if (probe.contextWindow !== void 0) target.contextWindow = probe.contextWindow;
23
+ if (probe.maxTokens !== void 0) target.maxTokens = probe.maxTokens;
24
+ }
25
+ function supportsAgentRoleTools(capabilities) {
26
+ return capabilities.tools === true;
27
+ }
28
+ var AGENT_ROLE_TOOLS_REQUIRED_REASON = "reports no tool support; Clio drives every agent role through typed tools";
29
+ function applyLayer(target, layer) {
30
+ if (!layer) return;
31
+ for (const key of Object.keys(layer)) {
32
+ const value = layer[key];
33
+ if (value !== void 0) target[key] = value;
34
+ }
35
+ }
36
+
37
+ // src/domains/providers/catalog.ts
38
+ init_esm_shims();
39
+ var engineAi = createEngineAi();
40
+ var CATALOG_PROVIDER_BY_RUNTIME_ID = /* @__PURE__ */ new Map([
41
+ ["anthropic", "anthropic"],
42
+ ["anthropic-max", "anthropic"],
43
+ ["claude-code", "anthropic"],
44
+ ["claude-sdk", "anthropic"],
45
+ ["bedrock", "amazon-bedrock"],
46
+ ["deepseek", "deepseek"],
47
+ ["google", "google"],
48
+ ["groq", "groq"],
49
+ ["mistral", "mistral"],
50
+ ["openai", "openai"],
51
+ ["openai-codex", "openai-codex"],
52
+ ["openrouter", "openrouter"]
53
+ ]);
54
+ function catalogProviderForRuntime(runtimeId) {
55
+ return CATALOG_PROVIDER_BY_RUNTIME_ID.get(runtimeId);
56
+ }
57
+ function listCatalogModelsForRuntime(runtimeId) {
58
+ const provider = catalogProviderForRuntime(runtimeId);
59
+ if (!provider) return [];
60
+ try {
61
+ return engineAi.listModels(provider);
62
+ } catch {
63
+ return [];
64
+ }
65
+ }
66
+ function resolveEffectivePricing(target, runtimeId, wireModelId) {
67
+ if (target.pricing) {
68
+ const rates = {
69
+ input: target.pricing.input,
70
+ output: target.pricing.output,
71
+ cacheRead: target.pricing.cacheRead ?? 0,
72
+ cacheWrite: target.pricing.cacheWrite ?? 0
73
+ };
74
+ return {
75
+ rates,
76
+ provenance: Object.values(rates).every((rate) => rate === 0) ? "known_free" : "known"
77
+ };
78
+ }
79
+ const catalogModel = getCatalogModelForRuntime(runtimeId, wireModelId);
80
+ if (!catalogModel) return { rates: null, provenance: "unknown" };
81
+ return {
82
+ rates: {
83
+ input: catalogModel.cost.input,
84
+ output: catalogModel.cost.output,
85
+ cacheRead: catalogModel.cost.cacheRead,
86
+ cacheWrite: catalogModel.cost.cacheWrite
87
+ },
88
+ provenance: "estimated"
89
+ };
90
+ }
91
+ function resolveCostProvenance(target, runtimeId, wireModelId) {
92
+ return resolveEffectivePricing(target, runtimeId, wireModelId).provenance;
93
+ }
94
+ function getCatalogModelForRuntime(runtimeId, wireModelId) {
95
+ const provider = catalogProviderForRuntime(runtimeId);
96
+ if (!provider) return void 0;
97
+ try {
98
+ return engineAi.getModel(provider, wireModelId);
99
+ } catch {
100
+ return void 0;
101
+ }
102
+ }
103
+ function capabilitiesFromCatalogModel(defaultCapabilities, model) {
104
+ if (!model) return defaultCapabilities;
105
+ return {
106
+ ...defaultCapabilities,
107
+ reasoning: model.reasoning,
108
+ vision: model.input.includes("image"),
109
+ contextWindow: model.contextWindow,
110
+ maxTokens: model.maxTokens
111
+ };
112
+ }
113
+ function catalogThinkingLevelsForRuntime(runtimeId, wireModelId) {
114
+ const model = getCatalogModelForRuntime(runtimeId, wireModelId);
115
+ return model ? getEngineSupportedThinkingLevels(model) : void 0;
116
+ }
117
+ function synthesizeCatalogBackedModel(input) {
118
+ const builtin = getCatalogModelForRuntime(input.runtimeId, input.wireModelId);
119
+ const caps = mergeCapabilities(
120
+ capabilitiesFromCatalogModel(input.defaultCapabilities, builtin),
121
+ input.kb?.entry.capabilities ?? null,
122
+ null,
123
+ input.target.capabilities ?? null
124
+ );
125
+ const pricing = input.target.pricing;
126
+ const targetHeaders = input.target.auth?.headers;
127
+ const model = {
128
+ ...builtin ?? {},
129
+ id: input.wireModelId,
130
+ name: `${input.wireModelId} (${input.target.id})`,
131
+ api: input.api,
132
+ provider: input.provider,
133
+ baseUrl: input.target.url ?? builtin?.baseUrl ?? input.defaultBaseUrl,
134
+ reasoning: caps.reasoning,
135
+ input: caps.vision ? builtin?.input.includes("image") ? builtin.input : ["text", "image"] : ["text"],
136
+ cost: {
137
+ input: pricing?.input ?? builtin?.cost.input ?? 0,
138
+ output: pricing?.output ?? builtin?.cost.output ?? 0,
139
+ cacheRead: pricing?.cacheRead ?? builtin?.cost.cacheRead ?? 0,
140
+ cacheWrite: pricing?.cacheWrite ?? builtin?.cost.cacheWrite ?? 0
141
+ },
142
+ contextWindow: caps.contextWindow,
143
+ maxTokens: caps.maxTokens
144
+ };
145
+ const headers = { ...input.defaultHeaders ?? {}, ...builtin?.headers ?? {}, ...targetHeaders ?? {} };
146
+ if (Object.keys(headers).length > 0) {
147
+ model.headers = headers;
148
+ }
149
+ return model;
150
+ }
151
+
152
+ export {
153
+ mergeCapabilities,
154
+ supportsAgentRoleTools,
155
+ AGENT_ROLE_TOOLS_REQUIRED_REASON,
156
+ catalogProviderForRuntime,
157
+ listCatalogModelsForRuntime,
158
+ resolveEffectivePricing,
159
+ resolveCostProvenance,
160
+ getCatalogModelForRuntime,
161
+ capabilitiesFromCatalogModel,
162
+ catalogThinkingLevelsForRuntime,
163
+ synthesizeCatalogBackedModel
164
+ };
165
+ //# sourceMappingURL=chunk-VO2LKSTM.js.map
@@ -2,10 +2,10 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  gateRouteCorrelation,
4
4
  isExecutionRole
5
- } from "./chunk-UND3GU2L.js";
5
+ } from "./chunk-H7IXIC72.js";
6
6
  import {
7
7
  isAgentCapabilityClass
8
- } from "./chunk-AOCYTWAV.js";
8
+ } from "./chunk-S4COXYBG.js";
9
9
  import {
10
10
  init_esm_shims
11
11
  } from "./chunk-3R73A4XB.js";
@@ -995,4 +995,4 @@ export {
995
995
  routingIntentRejection,
996
996
  explainRouteDecision
997
997
  };
998
- //# sourceMappingURL=chunk-5C77SEEY.js.map
998
+ //# sourceMappingURL=chunk-VPTUJU4P.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-CGKSTWHD.js";
8
8
  import {
9
9
  StringEnum
10
- } from "./chunk-FCSXB6T2.js";
10
+ } from "./chunk-UOSL25KY.js";
11
11
  import {
12
12
  init_esm_shims
13
13
  } from "./chunk-3R73A4XB.js";
@@ -29,4 +29,4 @@ var steerToolSurface = {
29
29
  export {
30
30
  steerToolSurface
31
31
  };
32
- //# sourceMappingURL=chunk-WEH5XRJQ.js.map
32
+ //# sourceMappingURL=chunk-WIE7ZOSW.js.map
@@ -4,25 +4,25 @@ import {
4
4
  READONLY_SCOPE,
5
5
  WORKSPACE_SCOPE,
6
6
  isSubset
7
- } from "./chunk-IR4CFBFN.js";
7
+ } from "./chunk-HAY4ZE2P.js";
8
8
  import {
9
9
  createLoopState,
10
10
  observe
11
11
  } from "./chunk-UOV2BYIW.js";
12
12
  import {
13
13
  createSafetyPolicyEngine
14
- } from "./chunk-OBMAI2DP.js";
14
+ } from "./chunk-N3PBVRTZ.js";
15
15
  import {
16
16
  classify
17
- } from "./chunk-AOCYTWAV.js";
17
+ } from "./chunk-S4COXYBG.js";
18
+ import {
19
+ BusChannels,
20
+ isRunAbortedPayload
21
+ } from "./chunk-RKRLDWD3.js";
18
22
  import {
19
23
  clioStateDir,
20
24
  stateRootRemoved
21
25
  } from "./chunk-BNAZZHFG.js";
22
- import {
23
- BusChannels,
24
- isRunAbortedPayload
25
- } from "./chunk-OB5HIGJY.js";
26
26
  import {
27
27
  init_esm_shims
28
28
  } from "./chunk-3R73A4XB.js";
@@ -608,4 +608,4 @@ var SafetyDomainModule = {
608
608
  export {
609
609
  SafetyDomainModule
610
610
  };
611
- //# sourceMappingURL=chunk-J7PIKKWC.js.map
611
+ //# sourceMappingURL=chunk-WXCJ7VME.js.map
@@ -65,11 +65,15 @@ var DEFAULT_SETTINGS = {
65
65
  everyNTools: 10,
66
66
  windowSteps: 8,
67
67
  maxTokens: 400,
68
- // A memory step runs detached from the turn that triggered it, so a
69
- // generous deadline costs no interactive latency. Measured steps on a
70
- // small local route ranged past two minutes, and a deadline shorter than
71
- // the model discards finished work as a timeout.
72
- timeoutMs: 18e4
68
+ // A memory step runs detached from the turn that triggered it, but it
69
+ // runs on a real inference endpoint that the operator's own turns and
70
+ // dispatched workers also queue against. The operator's ledger over 14
71
+ // days recorded 60 llm-tier steps spending 1,666 seconds of model time
72
+ // for 6 injections, with one step holding a local server for 102.5
73
+ // seconds to answer nothing. The deadline is what a turn boundary can
74
+ // actually wait for; a step that runs past it is recorded as timed out
75
+ // rather than spending the remaining minutes unobserved.
76
+ timeoutMs: 3e4
73
77
  }
74
78
  },
75
79
  watchdog: { enabled: false },
@@ -155,6 +159,9 @@ var DEFAULT_SETTINGS = {
155
159
  context: {
156
160
  workingSet: DEFAULT_WORKING_SET_SETTINGS
157
161
  },
162
+ prewarm: {
163
+ enabled: true
164
+ },
158
165
  retry: {
159
166
  enabled: true,
160
167
  maxRetries: 3,
@@ -237,7 +244,7 @@ memory:
237
244
  everyNTools: 10
238
245
  windowSteps: 8
239
246
  maxTokens: 400
240
- timeoutMs: 180000
247
+ timeoutMs: 30000
241
248
 
242
249
  # Opt-in turn-end watchdog. When enabled, a turn that changed the tree is
243
250
  # reviewed by one read-only verifier run briefed with the turn's coalesced diff
@@ -449,6 +456,14 @@ context:
449
456
  protectLastTurns: 6
450
457
  minEvictableTokens: 200
451
458
 
459
+ # Prompt pre-warm. At session start, after a resume rebuilds the message array,
460
+ # and after a compaction settles, Clio sends the prefix the next turn would send
461
+ # (minus your text) so a local server has already prefilled it when you press
462
+ # Enter. Local-native targets only, interactive sessions only, and never while a
463
+ # turn or a dispatch is running.
464
+ prewarm:
465
+ enabled: true
466
+
452
467
  # Transient provider/stream retry controls for interactive chat.
453
468
  # Retryable errors include overloads, rate limits, 5xx responses, network
454
469
  # resets, and timeouts. Context overflow uses compaction recovery instead.
@@ -497,4 +512,4 @@ export {
497
512
  DEFAULT_SETTINGS,
498
513
  DEFAULT_SETTINGS_YAML
499
514
  };
500
- //# sourceMappingURL=chunk-4DGYLA73.js.map
515
+ //# sourceMappingURL=chunk-XDOQXGFO.js.map
@@ -15,6 +15,10 @@ function printError(message, detail) {
15
15
  if (detail) process.stderr.write(` ${detail}
16
16
  `);
17
17
  }
18
+ function printNote(message) {
19
+ process.stderr.write(`${source_default.yellow("note:")} ${message}
20
+ `);
21
+ }
18
22
  function printOk(message) {
19
23
  process.stdout.write(`${source_default.green("ok:")} ${message}
20
24
  `);
@@ -138,6 +142,7 @@ function extractGlobalFlags(argv, isSubcommand = () => false) {
138
142
 
139
143
  export {
140
144
  printError,
145
+ printNote,
141
146
  printOk,
142
147
  printHeader,
143
148
  columnWidths,
@@ -147,4 +152,4 @@ export {
147
152
  globalFlagPositionHint,
148
153
  extractGlobalFlags
149
154
  };
150
- //# sourceMappingURL=chunk-PPAMZ32Z.js.map
155
+ //# sourceMappingURL=chunk-XK56QHLX.js.map
@@ -1,22 +1,22 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  assistantTextFromEvent
4
- } from "./chunk-VREKEFLL.js";
4
+ } from "./chunk-D73KXYPF.js";
5
5
  import {
6
6
  durableAssistantTextFromEvent
7
- } from "./chunk-UUANF5CR.js";
7
+ } from "./chunk-TEO2TLVN.js";
8
8
  import {
9
9
  compileExecutionPlan
10
- } from "./chunk-M4AKACEO.js";
10
+ } from "./chunk-HKO36JWF.js";
11
11
  import {
12
12
  deriveExecutionRole
13
- } from "./chunk-UND3GU2L.js";
13
+ } from "./chunk-H7IXIC72.js";
14
14
  import {
15
15
  truncateUtf8
16
16
  } from "./chunk-6XLNIQDB.js";
17
17
  import {
18
18
  BusChannels
19
- } from "./chunk-OB5HIGJY.js";
19
+ } from "./chunk-RKRLDWD3.js";
20
20
  import {
21
21
  init_esm_shims
22
22
  } from "./chunk-3R73A4XB.js";
@@ -276,4 +276,4 @@ export {
276
276
  compileScoutTransition,
277
277
  createDispatchRunEventRegistry
278
278
  };
279
- //# sourceMappingURL=chunk-AB4XIIVB.js.map
279
+ //# sourceMappingURL=chunk-YKOFT37S.js.map