@iowarp/clio-coder 0.4.3 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +1 -1
  3. package/dist/{acp-H2NGRPWO.js → acp-WNAYYF4F.js} +4 -5
  4. package/dist/{agents-TL5LLUQP.js → agents-3OKXHLOI.js} +33 -31
  5. package/dist/assets/codewiki.json +1 -1
  6. package/dist/{auth-E5SW4HMS.js → auth-VKNNMGPU.js} +10 -11
  7. package/dist/{builtins-IA7V7FUC.js → builtins-WGALA46I.js} +4 -4
  8. package/dist/{chunk-F5JHEYZM.js → chunk-23L32XTI.js} +10 -7
  9. package/dist/{chunk-DWUOQKRU.js → chunk-25QBEXRS.js} +2 -2
  10. package/dist/{chunk-LLDJM5XK.js → chunk-26QSH3EJ.js} +2 -2
  11. package/dist/{chunk-N2Z7HLVY.js → chunk-2ASED4PZ.js} +10 -10
  12. package/dist/{chunk-MCEPRMZW.js → chunk-2CU2H6KE.js} +2 -2
  13. package/dist/chunk-2DSOYNFC.js +108 -0
  14. package/dist/{chunk-LDJG7DW3.js → chunk-2ZSONWVL.js} +4 -4
  15. package/dist/{chunk-GI7YYQ3F.js → chunk-36CT5VVL.js} +324 -41
  16. package/dist/{chunk-4UVU7BJ5.js → chunk-3GY4F45V.js} +2 -2
  17. package/dist/{chunk-PUVDKJ2Y.js → chunk-3ODX73FK.js} +3 -5
  18. package/dist/{chunk-IUE3Y34X.js → chunk-3UNOLWNZ.js} +2 -2
  19. package/dist/{chunk-6PTFB5VS.js → chunk-3UUXNFEX.js} +8 -4
  20. package/dist/{chunk-2APPQIER.js → chunk-4M6Z5QVF.js} +4 -4
  21. package/dist/{chunk-K6BSR66V.js → chunk-4NSRCOYP.js} +4 -1
  22. package/dist/{chunk-JGRC33J2.js → chunk-54X7T7DK.js} +12 -3
  23. package/dist/{chunk-YQWYVTMC.js → chunk-5636DCO5.js} +4 -4
  24. package/dist/{chunk-7E7I3WLS.js → chunk-57XXR6DR.js} +23 -22
  25. package/dist/{chunk-7ZYNNDKC.js → chunk-5TUB6SLS.js} +2 -2
  26. package/dist/{chunk-VW6DOEDG.js → chunk-6OSVSQL5.js} +11 -2
  27. package/dist/{chunk-L47TF46W.js → chunk-6PAZTBPA.js} +14 -2
  28. package/dist/{chunk-XIVNBFZS.js → chunk-6Q3CYFD3.js} +34 -16
  29. package/dist/{chunk-RSJ25QSL.js → chunk-6QOTUPRG.js} +155 -36
  30. package/dist/{chunk-JKKCYP3C.js → chunk-6UINWWS6.js} +10 -4
  31. package/dist/{chunk-WBKFA554.js → chunk-72YIHOZQ.js} +2 -2
  32. package/dist/{chunk-PAJQJ7BS.js → chunk-75W7L2E2.js} +246 -697
  33. package/dist/{chunk-RRNP2ANY.js → chunk-7UGL4MB5.js} +4 -4
  34. package/dist/{chunk-EKCHAPYA.js → chunk-AUPNRN7C.js} +2 -2
  35. package/dist/{chunk-ZDN3Y73Y.js → chunk-BJVFZO5U.js} +6 -48
  36. package/dist/{chunk-IWT4SF4R.js → chunk-CUSRQKPU.js} +64 -2
  37. package/dist/{chunk-SKHCAU7K.js → chunk-DQOVN6KV.js} +3 -2
  38. package/dist/{chunk-ZWPRK62N.js → chunk-DT3LWJOB.js} +4 -4
  39. package/dist/chunk-DXKJURES.js +671 -0
  40. package/dist/{chunk-BEPZRGGU.js → chunk-EL24TAU4.js} +2 -2
  41. package/dist/{chunk-OML5D5V5.js → chunk-ELWDPP3Y.js} +5 -5
  42. package/dist/{chunk-NDINPTJ4.js → chunk-ELZVTCGV.js} +5 -4
  43. package/dist/chunk-EXLD33WO.js +381 -0
  44. package/dist/{chunk-IJNZMHLA.js → chunk-FEAXX7B6.js} +2 -2
  45. package/dist/{chunk-TM6LQDI3.js → chunk-FFUPXJC4.js} +74 -323
  46. package/dist/chunk-GX5WYQO4.js +59 -0
  47. package/dist/chunk-I2DWJ4GM.js +390 -0
  48. package/dist/{chunk-TXOTCRLG.js → chunk-I5FWO7L5.js} +5 -5
  49. package/dist/chunk-IRXAATOX.js +539 -0
  50. package/dist/chunk-IXIY2H4R.js +44 -0
  51. package/dist/{chunk-KK4JZPBQ.js → chunk-IZXGRF7P.js} +76 -10
  52. package/dist/{chunk-5TSRNF4G.js → chunk-JCI2ROMZ.js} +164 -6
  53. package/dist/{chunk-INY6HTFL.js → chunk-JEIYHLOR.js} +2 -2
  54. package/dist/{chunk-MUW2BDDH.js → chunk-JQLNNIKT.js} +2 -2
  55. package/dist/{chunk-XPWWI35G.js → chunk-JSD46VO2.js} +19 -8
  56. package/dist/{chunk-VA5FNYMT.js → chunk-JT2RFCC5.js} +39 -2
  57. package/dist/{chunk-V2ANDPVT.js → chunk-K6T2ZAMZ.js} +168 -6
  58. package/dist/{chunk-B4OAX3SI.js → chunk-KFV5L5SK.js} +13 -6
  59. package/dist/{chunk-JEQ3XTHC.js → chunk-LLXSDWXS.js} +2 -2
  60. package/dist/{chunk-E3TPLWFX.js → chunk-LTIKRKFL.js} +3 -3
  61. package/dist/{chunk-NIQJ66N4.js → chunk-N56KALIC.js} +17 -17
  62. package/dist/{chunk-JDAY6FIL.js → chunk-NAI6ZFCY.js} +13 -9
  63. package/dist/{chunk-AF4YM7Z4.js → chunk-NRO2BJRH.js} +2490 -2182
  64. package/dist/{chunk-WRBAGUNF.js → chunk-NXIMQY5W.js} +2 -2
  65. package/dist/{chunk-I7ZPNEJM.js → chunk-NXYCB2VD.js} +5 -5
  66. package/dist/chunk-ODGTEFFI.js +50 -0
  67. package/dist/{chunk-2VIKGWFZ.js → chunk-OEJSLEPW.js} +2 -2
  68. package/dist/{chunk-KKOJXO6R.js → chunk-OMQNJVKW.js} +4 -2
  69. package/dist/{chunk-54CBCGIR.js → chunk-Q4WO54TA.js} +132 -77
  70. package/dist/{chunk-B4VEBZKF.js → chunk-QUFRYSWI.js} +12 -6
  71. package/dist/{chunk-42FMPA75.js → chunk-QZWQA4DE.js} +2 -2
  72. package/dist/{chunk-HEQY7ZFI.js → chunk-RAY4OVGZ.js} +2 -2
  73. package/dist/{chunk-G76U63X4.js → chunk-RQCKCSRL.js} +7 -7
  74. package/dist/{chunk-64I3JVYM.js → chunk-RXTN6AKH.js} +2 -2
  75. package/dist/{chunk-UPZU6GE4.js → chunk-RZDWV63N.js} +3 -3
  76. package/dist/{chunk-2UH2KFUP.js → chunk-S6PYF2XF.js} +2 -2
  77. package/dist/{chunk-JSC3U7TI.js → chunk-TOIVGRUX.js} +2 -2
  78. package/dist/{chunk-7DRAWPTZ.js → chunk-TQAHXW6Y.js} +1 -1
  79. package/dist/{chunk-JIEGK6UF.js → chunk-U6TMQNSI.js} +48 -4
  80. package/dist/{chunk-AX2THNSA.js → chunk-UEPWCCTY.js} +4 -4
  81. package/dist/{chunk-QWGDJJYJ.js → chunk-USR47QNF.js} +4 -4
  82. package/dist/{chunk-Y3CBHOR6.js → chunk-V6HJFQZE.js} +2 -2
  83. package/dist/chunk-V76WTFTW.js +318 -0
  84. package/dist/{chunk-NMJXSHBJ.js → chunk-W54I7H25.js} +2 -2
  85. package/dist/{chunk-2UG5F4C5.js → chunk-XULDXHTN.js} +24 -12
  86. package/dist/chunk-XXYSBZIQ.js +283 -0
  87. package/dist/{chunk-MWUZBSAQ.js → chunk-Y55JBDO5.js} +331 -51
  88. package/dist/{chunk-W6RRQCPQ.js → chunk-YD5GIKET.js} +4 -4
  89. package/dist/{chunk-CE5AX47J.js → chunk-YECAMM3D.js} +2 -2
  90. package/dist/{chunk-WCXUNS7U.js → chunk-YNFKXPEC.js} +6 -6
  91. package/dist/cli/index.js +36 -35
  92. package/dist/{clio-CMMK4KRR.js → clio-QLICPCF5.js} +2 -2
  93. package/dist/{code-nav-MDZNQS33.js → code-nav-IJR2DBPR.js} +6 -6
  94. package/dist/{components-UCUQ4QXW.js → components-2TGAI2RC.js} +3 -4
  95. package/dist/{config-SVM5P5YI.js → config-IUA6OYNS.js} +52 -47
  96. package/dist/{configure-LE3IK2TJ.js → configure-VEPX4NMX.js} +14 -15
  97. package/dist/{context-VNCR7KAG.js → context-2DKHWH2T.js} +23 -23
  98. package/dist/{context-2OHRKS42.js → context-4MPR7WKB.js} +48 -42
  99. package/dist/{context-E3VC7RX5.js → context-BOYF5EJM.js} +11 -11
  100. package/dist/{context-clear-BW4O37TG.js → context-clear-S4ZJCQUX.js} +48 -42
  101. package/dist/{context-working-set-VDS25HXZ.js → context-working-set-3I3FYX6Y.js} +8 -8
  102. package/dist/detail-A7JAVSIG.js +98 -0
  103. package/dist/{dispatch-runner-5AHT53RF.js → dispatch-runner-RJ5I2F2O.js} +71 -58
  104. package/dist/{docs-PD3EXDKU.js → docs-SPOV3BAN.js} +3 -5
  105. package/dist/{doctor-WNNVO6FY.js → doctor-DKICC2SN.js} +54 -31
  106. package/dist/{eval-7G7SGAYO.js → eval-OQOQUDHK.js} +47 -56
  107. package/dist/{evidence-VD6736FQ.js → evidence-4DQ25GUQ.js} +53 -150
  108. package/dist/evidence-4F5USFKH.js +208 -0
  109. package/dist/{evolve-AL3NGVRL.js → evolve-GSS52E5J.js} +44 -41
  110. package/dist/{extensions-MOVJ32NM.js → extensions-G7MFLYHT.js} +4 -5
  111. package/dist/{fleet-QZHUMAGI.js → fleet-Q37YHHAQ.js} +74 -68
  112. package/dist/{fleet-commands-BAYT5FJZ.js → fleet-commands-G7E4N7SM.js} +14 -11
  113. package/dist/{fleet-decisions-IREVMRU4.js → fleet-decisions-O7M6QBA2.js} +6 -6
  114. package/dist/{fleet-graph-YCTT3HTI.js → fleet-graph-TOUBW6OW.js} +13 -13
  115. package/dist/{fleet-inspect-QVJTDAVB.js → fleet-inspect-SW33JJNI.js} +43 -39
  116. package/dist/{fleet-preflight-25QAFPK4.js → fleet-preflight-CV2655TW.js} +2 -3
  117. package/dist/{fleet-validate-5O57AAJ7.js → fleet-validate-KESZX2YH.js} +16 -16
  118. package/dist/{fleet-verify-CPH2W2T6.js → fleet-verify-UQPMTVE3.js} +42 -38
  119. package/dist/{fleet-view-SWBR3VGQ.js → fleet-view-MN2VG4MR.js} +43 -39
  120. package/dist/{init-J477LKZH.js → init-PXEXQSBF.js} +60 -54
  121. package/dist/{interop-3FCM6XLG.js → interop-ZG5T62U3.js} +6 -7
  122. package/dist/inventory-C26CFDRR.js +101 -0
  123. package/dist/{library-QUQEIUG6.js → library-B2W4N74O.js} +16 -17
  124. package/dist/{memory-SGGSEP65.js → memory-YCANYS5A.js} +45 -42
  125. package/dist/{models-HEKUAXXK.js → models-GERTU3YI.js} +20 -22
  126. package/dist/{monitor-HKU57TYQ.js → monitor-CPNIUULB.js} +50 -44
  127. package/dist/{orchestrator-VDFAEFAI.js → orchestrator-J4BSH4WQ.js} +491 -1182
  128. package/dist/{panes-DN2SSFOH.js → panes-BOHAEGYC.js} +3 -3
  129. package/dist/{panes-TALGNPZT.js → panes-NXSLDQZ2.js} +5 -6
  130. package/dist/{paths-NBMFAIEZ.js → paths-VSUWNC22.js} +3 -4
  131. package/dist/{reset-EAJFFJVB.js → reset-TNWTB5LU.js} +5 -6
  132. package/dist/{resources-OVKSEFVE.js → resources-4PXNMD5G.js} +14 -14
  133. package/dist/{run-7DP7ZF2J.js → run-D6XJ34CN.js} +79 -83
  134. package/dist/{share-WML67FT3.js → share-2NWMJJEE.js} +14 -15
  135. package/dist/{skills-SG662R2K.js → skills-KR7WON5G.js} +18 -19
  136. package/dist/{skills-eval-VVZEUU46.js → skills-eval-O2ZNOLDS.js} +49 -46
  137. package/dist/{skills-inventory-I2E23GET.js → skills-inventory-ZZOUBK7O.js} +14 -14
  138. package/dist/{slash-commands-S7MBJDQK.js → slash-commands-ZXPJD64J.js} +32 -23
  139. package/dist/{steer-2LQOMCPB.js → steer-XA25PSCS.js} +3 -3
  140. package/dist/{support-CC2UJBJ6.js → support-7EMVWYG2.js} +2 -2
  141. package/dist/{targets-4QC3HIEW.js → targets-OMH2XCSN.js} +25 -27
  142. package/dist/tasks-IPAGMEIX.js +36 -0
  143. package/dist/{terminal-lease-TUHIJ6Y2.js → terminal-lease-C2J3JYRE.js} +4 -4
  144. package/dist/{tools-TFGJICCU.js → tools-EFFEAIDP.js} +5 -6
  145. package/dist/{uninstall-5PEVOE5B.js → uninstall-HALS6BLF.js} +7 -8
  146. package/dist/{upgrade-M4WXY6KN.js → upgrade-MS72RJEP.js} +14 -11
  147. package/dist/{usage-N7ZNVLEM.js → usage-NHG6MCJM.js} +60 -51
  148. package/dist/{verifiers-DJTP4XX6.js → verifiers-7AUNVXDY.js} +150 -17
  149. package/dist/{verify-RWE4PPEK.js → verify-FWYGPKMR.js} +12 -10
  150. package/dist/{web-fetch-MPARV2K7.js → web-fetch-V4FKSDAV.js} +4 -4
  151. package/dist/{wiki-generate-C7IQOXSP.js → wiki-generate-743CIGJW.js} +63 -56
  152. package/dist/{with-panes-4GCGSL7J.js → with-panes-BDQEWBRT.js} +2 -2
  153. package/dist/worker/entry.js +36 -33
  154. package/docs/README.md +3 -2
  155. package/docs/architecture/acp.md +17 -0
  156. package/docs/architecture/artifact-versions.md +1 -1
  157. package/docs/architecture/dispatch-typed-intent.md +1 -1
  158. package/docs/architecture/evidence-and-memory.md +1 -1
  159. package/docs/architecture/observability.md +7 -1
  160. package/docs/architecture/prompt-envelope-and-tools.md +15 -5
  161. package/docs/architecture/safety-model.md +10 -17
  162. package/docs/architecture/tui-design.md +1 -1
  163. package/docs/guide/built-in-agents.md +8 -8
  164. package/docs/guide/commands-and-modes.md +17 -2
  165. package/docs/guide/configuration-and-targets.md +3 -1
  166. package/docs/guide/configuration-reference.md +10 -5
  167. package/docs/guide/environment-variables.md +2 -2
  168. package/docs/guide/tool-usage.md +78 -3
  169. package/docs/history/config-knobs-audit.md +2 -2
  170. package/docs/process/development-pipeline.md +6 -1
  171. package/docs/process/git-commit-provenance.md +15 -0
  172. package/docs/process/release-cut-checklist.md +207 -0
  173. package/docs/process/scientific-validation.md +18 -17
  174. package/evals/behavioral-machinery-support.ts +1 -0
  175. package/evals/behavioral-machinery.yaml +1 -1
  176. package/package.json +1 -1
  177. package/skills/coding/coding-standards/SKILL.md +14 -4
  178. package/skills/context/context-handoff/SKILL.md +3 -3
  179. package/skills/context/context-prime/SKILL.md +3 -3
  180. package/skills/planning/architecture/SKILL.md +5 -5
  181. package/skills/planning/backlog/SKILL.md +4 -4
  182. package/skills/planning/prd/SKILL.md +4 -3
  183. package/skills/planning/product-intent/SKILL.md +8 -8
  184. package/skills/planning/tech-spec/SKILL.md +4 -4
  185. package/skills/registry.yaml +32 -32
  186. package/skills/research/arxiv-literature/SKILL.md +3 -3
  187. package/skills/research/experiment-protocol/SKILL.md +3 -3
  188. package/skills/research/scientific-debugging/SKILL.md +3 -2
  189. package/skills/research/scientific-modernization/SKILL.md +3 -3
  190. package/skills/skill-marketplace.json +16 -16
  191. package/skills/workflow/cut-it/SKILL.md +3 -4
  192. package/skills/workflow/design-council/SKILL.md +5 -10
  193. package/skills/workflow/grill-me/SKILL.md +14 -15
  194. package/skills/workflow/workflow-distiller/SKILL.md +4 -4
  195. package/src/cli/args.ts +0 -8
  196. package/src/cli/configure.ts +2 -1
  197. package/src/cli/doctor-state-size.ts +1 -12
  198. package/src/cli/doctor-validation-contract.ts +28 -0
  199. package/src/cli/doctor.ts +5 -0
  200. package/src/cli/evidence-detail.ts +1 -75
  201. package/src/cli/evidence-inventory.ts +1 -167
  202. package/src/cli/index.ts +2 -0
  203. package/src/cli/run.ts +0 -2
  204. package/src/cli/targets.ts +1 -1
  205. package/src/cli/tasks.ts +84 -0
  206. package/src/cli/upgrade.ts +10 -5
  207. package/src/cli/usage.ts +6 -0
  208. package/src/cli/verifiers.ts +147 -1
  209. package/src/cli/wiki-generate.ts +1 -0
  210. package/src/core/commit-attribution.ts +41 -1
  211. package/src/core/git-commit-attribution.ts +46 -3
  212. package/src/core/run-overrides.ts +0 -5
  213. package/src/core/skill-activation.ts +3 -0
  214. package/src/core/tool-names.ts +5 -2
  215. package/src/domains/agents/builtins/architect.md +1 -1
  216. package/src/domains/agents/builtins/coder.md +1 -1
  217. package/src/domains/agents/builtins/documenter.md +1 -1
  218. package/src/domains/agents/builtins/git-master.md +1 -1
  219. package/src/domains/agents/builtins/provenance.md +7 -7
  220. package/src/domains/agents/builtins/tester.md +1 -1
  221. package/src/domains/agents/builtins/verifier.md +2 -2
  222. package/src/domains/agents/builtins/wiki-writer.md +4 -3
  223. package/src/domains/context/extension.ts +31 -7
  224. package/src/domains/context/refresh.ts +3 -0
  225. package/src/domains/context/wiki/frontmatter.ts +5 -2
  226. package/src/domains/context/wiki/generate.ts +6 -0
  227. package/src/domains/context/wiki/prompts.ts +43 -0
  228. package/src/domains/dispatch/active-route-planner.ts +4 -0
  229. package/src/domains/dispatch/code-step.ts +11 -4
  230. package/src/domains/dispatch/contract.ts +31 -7
  231. package/src/domains/dispatch/execution-scheduler.ts +2 -0
  232. package/src/domains/dispatch/extension.ts +50 -27
  233. package/src/domains/dispatch/fleet-commit-attribution.ts +5 -0
  234. package/src/domains/dispatch/fleet-run.ts +1 -0
  235. package/src/domains/dispatch/host-verification.ts +114 -13
  236. package/src/domains/dispatch/intent.ts +28 -18
  237. package/src/domains/dispatch/orphan-recovery.ts +2 -0
  238. package/src/domains/dispatch/receipt-integrity.ts +4 -0
  239. package/src/domains/dispatch/reservation-store.ts +5 -3
  240. package/src/domains/dispatch/state.ts +15 -2
  241. package/src/domains/dispatch/types.ts +17 -2
  242. package/src/domains/eval/runners/clio-run.ts +12 -9
  243. package/src/domains/eval/runners/context-index.ts +2 -7
  244. package/src/domains/eval/runners/context-init.ts +3 -6
  245. package/src/domains/eval/runners/external-command.ts +29 -11
  246. package/src/domains/evidence/build.ts +102 -15
  247. package/src/domains/evidence/detail.ts +69 -0
  248. package/src/domains/evidence/eval.ts +13 -1
  249. package/src/domains/evidence/finish-contract-map.ts +5 -1
  250. package/src/domains/evidence/inventory.ts +167 -0
  251. package/src/domains/evidence/store.ts +16 -0
  252. package/src/domains/evidence/types.ts +12 -0
  253. package/src/domains/extensions/resources.ts +7 -0
  254. package/src/domains/middleware/marketplace-offer.ts +20 -1
  255. package/src/domains/middleware/runtime.ts +7 -3
  256. package/src/domains/mux/detect.ts +3 -6
  257. package/src/domains/observability/accountability.ts +15 -1
  258. package/src/domains/observability/contract.ts +52 -7
  259. package/src/domains/observability/evidence-index.ts +10 -0
  260. package/src/domains/observability/extension.ts +9 -5
  261. package/src/domains/observability/projection.ts +394 -45
  262. package/src/{interactive → domains/observability}/worker-progress.ts +3 -3
  263. package/src/domains/prompts/fragments/operating/contract.md +2 -0
  264. package/src/domains/prompts/fragments/wiki/page.md +8 -0
  265. package/src/domains/providers/model-discovery.ts +1 -4
  266. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +16 -14
  267. package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
  268. package/src/domains/providers/support.ts +1 -1
  269. package/src/domains/providers/types/runtime-descriptor.ts +1 -1
  270. package/src/domains/safety/action-classifier.ts +7 -0
  271. package/src/domains/safety/default-path-policy.ts +2 -0
  272. package/src/domains/safety/finish-contract-registration.ts +29 -14
  273. package/src/domains/safety/finish-contract.ts +252 -40
  274. package/src/domains/safety/index.ts +20 -1
  275. package/src/domains/safety/policy-engine.ts +26 -6
  276. package/src/domains/safety/rigor.ts +53 -39
  277. package/src/domains/safety/validation-contract.ts +388 -0
  278. package/src/domains/session/archive-readers.ts +10 -1
  279. package/src/domains/session/decision-board.ts +101 -2
  280. package/src/domains/session/entries.ts +44 -7
  281. package/src/domains/session/extension.ts +4 -4
  282. package/src/domains/session/handoff.ts +2 -1
  283. package/src/domains/session/manager.ts +2 -3
  284. package/src/domains/session/task-board.ts +14 -1
  285. package/src/domains/session/tree/fork.ts +1 -2
  286. package/src/domains/session/tree/navigator.ts +1 -1
  287. package/src/domains/user-tasks/acceptance.ts +56 -0
  288. package/src/domains/user-tasks/active-acceptance.ts +40 -0
  289. package/src/domains/user-tasks/store.ts +34 -3
  290. package/src/engine/acp/adapter.ts +24 -6
  291. package/src/engine/acp/server.ts +21 -4
  292. package/src/engine/acp/transport.ts +53 -8
  293. package/src/engine/acp/types.ts +4 -0
  294. package/src/engine/apis/ollama-native.ts +15 -0
  295. package/src/engine/claude/subprocess-runtime.ts +107 -60
  296. package/src/engine/external-subprocess.ts +12 -4
  297. package/src/entry/orchestrator.ts +11 -2
  298. package/src/interactive/dispatch-board.ts +46 -717
  299. package/src/interactive/fleet-run-preview.ts +2 -1
  300. package/src/interactive/interactive-application.ts +3 -2
  301. package/src/interactive/interactive-presentation.ts +55 -12
  302. package/src/interactive/interactive-slash-runtime.ts +2 -1
  303. package/src/interactive/oracle.ts +5 -2
  304. package/src/interactive/overlays/fleet-run-approval.ts +3 -2
  305. package/src/interactive/overlays/message-picker.ts +2 -2
  306. package/src/interactive/overlays/settings.ts +2 -2
  307. package/src/interactive/overlays/tree-selector.ts +2 -2
  308. package/src/interactive/renderers/branch-summary.ts +1 -1
  309. package/src/interactive/slash-autocomplete.ts +4 -6
  310. package/src/interactive/slash-commands.ts +25 -39
  311. package/src/interactive/slash-spec.ts +28 -0
  312. package/src/interactive/view/artifacts.ts +2 -0
  313. package/src/interactive/worker-stream.ts +7 -3
  314. package/src/tools/bootstrap.ts +4 -0
  315. package/src/tools/builtin-tool-catalog.ts +31 -0
  316. package/src/tools/compete-worktrees.ts +7 -1
  317. package/src/tools/core-bootstrap.ts +16 -0
  318. package/src/tools/decide.ts +136 -0
  319. package/src/tools/dispatch-admission.ts +21 -0
  320. package/src/tools/dispatch-plan.ts +5 -2
  321. package/src/tools/dispatch-runner.ts +15 -1
  322. package/src/tools/dispatch-types.ts +6 -0
  323. package/src/tools/evidence.ts +96 -0
  324. package/src/tools/limitation.ts +76 -0
  325. package/src/tools/policy.ts +9 -0
  326. package/src/tools/presentation.ts +3 -0
  327. package/src/tools/registry.ts +1 -1
  328. package/src/tools/result-shaping.ts +17 -5
  329. package/src/tools/task-worktree.ts +13 -3
  330. package/src/tools/tasks.ts +10 -1
  331. package/src/tools/verify/authoring.ts +170 -83
  332. package/src/tools/verify/catalog.ts +122 -5
  333. package/src/tools/verify/index.ts +2 -1
  334. package/src/tools/verify/numeric.ts +298 -0
  335. package/src/tools/verify/perf.ts +143 -0
  336. package/src/tools/verify/scripts.ts +229 -2
  337. package/dist/chunk-7DICMOS6.js +0 -313
  338. package/dist/chunk-RVG5JXAL.js +0 -41
  339. package/dist/chunk-T56WDKA5.js +0 -183
  340. package/dist/chunk-VPKWYKEY.js +0 -169
@@ -57,6 +57,7 @@ function evaluateSkillToolSurface(policy, tool) {
57
57
  const carriedSurface = policy.carriedSurface === true;
58
58
  const disallowedBy = entries.filter(([, declared]) => declared.disallowedTools?.includes(tool) === true).map(([name]) => name);
59
59
  if (disallowedBy.length > 0) return { skills, mergedAllowedTools: null, disallowedBy, carriedSurface };
60
+ if (tool === "limitation") return null;
60
61
  const allowLists = entries.map(([, declared]) => declared.allowedTools);
61
62
  if (allowLists.some((list) => list === void 0 || list.length === 0)) return null;
62
63
  const merged = [...new Set(allowLists.flatMap((list) => [...list ?? []]))];
@@ -183,6 +184,9 @@ function autonomyAskRejection(level, tool, actionClass, exposure = DEFAULT_AUTON
183
184
 
184
185
  // src/domains/session/entries.ts
185
186
  init_esm_shims();
187
+ function decisionRef(interviewId, key) {
188
+ return `${interviewId}/${key}`;
189
+ }
186
190
  var EVICTION_REASONS = [
187
191
  "superseded_read",
188
192
  "stale_after_mutation",
@@ -287,9 +291,12 @@ function isTaskLedgerEvidence(value) {
287
291
  }
288
292
  function isDecisionRecord(value) {
289
293
  if (!isRecord(value)) return false;
290
- if (!isString(value.key) || !/^[a-z0-9]+(?:_[a-z0-9]+)*$/.test(value.key)) return false;
294
+ if (!isString(value.key) || !/^[a-z0-9]+(?:[_-][a-z0-9]+)*$/.test(value.key)) return false;
291
295
  if (!isString(value.value) || !isOneOf(value.status, DECISION_STATUSES) || !isString(value.decidedAt)) return false;
292
296
  if (!isOptionalString(value.label) || !isOptionalString(value.source_question)) return false;
297
+ if (value.source !== void 0 && !isOneOf(value.source, ["operator", "agent"])) return false;
298
+ if (value.alternatives !== void 0 && !isStringArray(value.alternatives)) return false;
299
+ if (!isOptionalString(value.rationale)) return false;
293
300
  if (!isOptionalString(value.revisedAt) || !isOptionalString(value.correction)) return false;
294
301
  return value.status === "superseded" ? isString(value.revisedAt) : value.revisedAt === void 0 && value.correction === void 0;
295
302
  }
@@ -346,7 +353,7 @@ function isSessionEntry(value) {
346
353
  case "taskLedger":
347
354
  return isOptionalString(v.boardId) && Array.isArray(v.goals) && v.goals.every(isTaskLedgerGoal) && Array.isArray(v.subgoals) && v.subgoals.every(isTaskLedgerGoal) && isStringArray(v.activeRunIds) && Array.isArray(v.requiredValidationEvidence) && v.requiredValidationEvidence.every(isTaskLedgerEvidence);
348
355
  case "decisionLedger":
349
- return isString(v.interviewId) && isOneOf(v.interviewStatus, DECISION_INTERVIEW_STATUSES) && isString(v.startedAt) && isString(v.endedAt) && isNumber(v.roundCount) && Number.isInteger(v.roundCount) && v.roundCount >= 0 && isOptionalString(v.summary) && isOptionalString(v.transcriptPath) && (v.exposure === void 0 || isOneOf(v.exposure, AUTONOMY_EXPOSURES)) && Array.isArray(v.decisions) && v.decisions.every(isDecisionRecord);
356
+ return (v.origin === void 0 || isOneOf(v.origin, ["interview", "agent"])) && isString(v.interviewId) && isOneOf(v.interviewStatus, DECISION_INTERVIEW_STATUSES) && isString(v.startedAt) && isString(v.endedAt) && isNumber(v.roundCount) && Number.isInteger(v.roundCount) && v.roundCount >= 0 && isOptionalString(v.summary) && isOptionalString(v.transcriptPath) && (v.exposure === void 0 || isOneOf(v.exposure, AUTONOMY_EXPOSURES)) && Array.isArray(v.decisions) && v.decisions.every(isDecisionRecord);
350
357
  case "workerRun":
351
358
  return isString(v.assignmentId) && isString(v.runId) && isOneOf(v.origin, WORKER_RUN_ORIGINS) && isString(v.agentId) && isWorkerRunRuntime(v.runtime) && isOptionalString(v.parentToolCallId);
352
359
  case "contextEviction":
@@ -380,7 +387,9 @@ export {
380
387
  mapAutonomy,
381
388
  autonomyDenyRejection,
382
389
  autonomyAskRejection,
390
+ decisionRef,
391
+ isDecisionRecord,
383
392
  isSessionHeader,
384
393
  isSessionEntry
385
394
  };
386
- //# sourceMappingURL=chunk-JGRC33J2.js.map
395
+ //# sourceMappingURL=chunk-54X7T7DK.js.map
@@ -8,13 +8,13 @@ import {
8
8
  import {
9
9
  createLoopState,
10
10
  observe
11
- } from "./chunk-RSJ25QSL.js";
11
+ } from "./chunk-6QOTUPRG.js";
12
12
  import {
13
13
  createSafetyPolicyEngine
14
- } from "./chunk-XIVNBFZS.js";
14
+ } from "./chunk-6Q3CYFD3.js";
15
15
  import {
16
16
  classify
17
- } from "./chunk-B4OAX3SI.js";
17
+ } from "./chunk-KFV5L5SK.js";
18
18
  import {
19
19
  BusChannels,
20
20
  isRunAbortedPayload
@@ -608,4 +608,4 @@ var SafetyDomainModule = {
608
608
  export {
609
609
  SafetyDomainModule
610
610
  };
611
- //# sourceMappingURL=chunk-YQWYVTMC.js.map
611
+ //# sourceMappingURL=chunk-5636DCO5.js.map
@@ -1,19 +1,12 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
- import {
3
- createLifecyclePresenter,
4
- shortenPath
5
- } from "./chunk-SKHCAU7K.js";
6
2
  import {
7
3
  createDelayedManualCodeInput,
8
4
  promptOAuthSelection
9
5
  } from "./chunk-2STGEDFV.js";
10
6
  import {
11
- column,
12
- terminalColumns,
13
- truncate,
14
- twoColumnRow,
15
- wrapPlain
16
- } from "./chunk-2IR2NMPA.js";
7
+ createLifecyclePresenter,
8
+ shortenPath
9
+ } from "./chunk-DQOVN6KV.js";
17
10
  import {
18
11
  fingerprintNativeRuntime
19
12
  } from "./chunk-NEKRRTYW.js";
@@ -25,27 +18,32 @@ import {
25
18
  interopProposals,
26
19
  renderProposalEntry,
27
20
  resolveOnPath
28
- } from "./chunk-INY6HTFL.js";
21
+ } from "./chunk-JEIYHLOR.js";
29
22
  import {
30
23
  initializeClioHome
31
24
  } from "./chunk-I7XBWTYH.js";
25
+ import {
26
+ column,
27
+ terminalColumns,
28
+ truncate,
29
+ twoColumnRow,
30
+ wrapPlain
31
+ } from "./chunk-2IR2NMPA.js";
32
32
  import {
33
33
  credentialWriteFailed,
34
34
  printPlaintextCredentialWarning
35
- } from "./chunk-PUVDKJ2Y.js";
35
+ } from "./chunk-3ODX73FK.js";
36
36
  import {
37
37
  printError,
38
- printOk
39
- } from "./chunk-VPKWYKEY.js";
40
- import {
38
+ printOk,
41
39
  source_default
42
- } from "./chunk-5TSRNF4G.js";
40
+ } from "./chunk-JCI2ROMZ.js";
43
41
  import {
44
42
  isOrchestratorEligibleRuntime,
45
43
  probeCapabilitiesForModel,
46
44
  readTargetModelSnapshot,
47
45
  recordTargetModelSnapshot
48
- } from "./chunk-XPWWI35G.js";
46
+ } from "./chunk-JSD46VO2.js";
49
47
  import {
50
48
  credentialsPresent
51
49
  } from "./chunk-2JH2WHGE.js";
@@ -56,13 +54,16 @@ import {
56
54
  settingsPath,
57
55
  updateSettings
58
56
  } from "./chunk-GHS5EBTQ.js";
57
+ import {
58
+ warnLegacyNaming
59
+ } from "./chunk-D7E7WCDF.js";
59
60
  import {
60
61
  getVersionInfo
61
62
  } from "./chunk-XPLRXC72.js";
62
63
  import {
63
64
  greetLmStudio,
64
65
  registerBuiltinRuntimes
65
- } from "./chunk-VW6DOEDG.js";
66
+ } from "./chunk-6OSVSQL5.js";
66
67
  import {
67
68
  THINKING_LEVELS
68
69
  } from "./chunk-UXCU4E3T.js";
@@ -73,7 +74,7 @@ import {
73
74
  listKnownModelsForRuntime,
74
75
  listProviderSupportEntries,
75
76
  supportGroupLabel
76
- } from "./chunk-LLDJM5XK.js";
77
+ } from "./chunk-26QSH3EJ.js";
77
78
  import {
78
79
  authStoragePath,
79
80
  openAuthStorage,
@@ -3489,7 +3490,7 @@ var SECTIONS = [
3489
3490
  label: "Run doctor",
3490
3491
  hint: "read-only health check",
3491
3492
  run: async () => {
3492
- const { runDoctorCommand } = await import("./doctor-WNNVO6FY.js");
3493
+ const { runDoctorCommand } = await import("./doctor-DKICC2SN.js");
3493
3494
  await runDoctorCommand([]);
3494
3495
  }
3495
3496
  },
@@ -3731,7 +3732,7 @@ async function runConfigureCommand(argv, inStream = input, outStream = output2)
3731
3732
  return 2;
3732
3733
  }
3733
3734
  if (runtimeId === "lmstudio-native" && runtime.id === "lmstudio") {
3734
- process.stderr.write("warning: runtime 'lmstudio-native' is deprecated; using 'lmstudio'\n");
3735
+ warnLegacyNaming(runtimeId, runtime.id);
3735
3736
  }
3736
3737
  }
3737
3738
  const hasTargetSetupFlag = args.id !== void 0 || args.url !== void 0 || args.model !== void 0 || args.workerProfile !== void 0 || args.workerProfileModel !== void 0 || args.apiKey !== void 0 || args.apiKeyEnv !== void 0 || args.gateway || args.lifecycle !== void 0 || args.setOrchestrator || args.setWorkerDefault || args.contextWindow !== void 0 || args.maxTokens !== void 0 || args.reasoning !== void 0;
@@ -3759,4 +3760,4 @@ export {
3759
3760
  runTargetRename,
3760
3761
  runConfigureCommand
3761
3762
  };
3762
- //# sourceMappingURL=chunk-7E7I3WLS.js.map
3763
+ //# sourceMappingURL=chunk-57XXR6DR.js.map
@@ -13,7 +13,7 @@ import {
13
13
  formatColumns,
14
14
  printError,
15
15
  printOk
16
- } from "./chunk-VPKWYKEY.js";
16
+ } from "./chunk-JCI2ROMZ.js";
17
17
  import {
18
18
  describeFloorRejection,
19
19
  describeResolution,
@@ -299,4 +299,4 @@ function jsonShape(status) {
299
299
  export {
300
300
  runToolsCommand
301
301
  };
302
- //# sourceMappingURL=chunk-7ZYNNDKC.js.map
302
+ //# sourceMappingURL=chunk-5TUB6SLS.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-UXCU4E3T.js";
5
5
  import {
6
6
  runCommandVector
7
- } from "./chunk-JSC3U7TI.js";
7
+ } from "./chunk-TOIVGRUX.js";
8
8
  import {
9
9
  catalogThinkingLevelsForRuntime,
10
10
  listCatalogModelsForRuntime,
@@ -328,6 +328,15 @@ var claudeCodeRuntime = {
328
328
  headlessCommand: "claude -p --output-format stream-json",
329
329
  outputParser: "claude-code-stream-json",
330
330
  defaultCapabilities: claudeCodeCapabilities,
331
+ // The Claude CLI runs its own tool loop. Clio observes only the stream, so a
332
+ // declared per-tool budget is recorded as external-one-shot, never enforced.
333
+ externalAgentLoop: {
334
+ tools: "externally-governed-unobserved",
335
+ network: "externally-governed-unobserved",
336
+ budget: "external-one-shot",
337
+ generatingRetry: "allowed",
338
+ modelCatalog: "static"
339
+ },
331
340
  synthesizeModel(target, wireModelId, kb) {
332
341
  return synthesizeClaudeDelegatedModel({
333
342
  target,
@@ -3597,4 +3606,4 @@ export {
3597
3606
  BUILTIN_RUNTIMES,
3598
3607
  registerBuiltinRuntimes
3599
3608
  };
3600
- //# sourceMappingURL=chunk-VW6DOEDG.js.map
3609
+ //# sourceMappingURL=chunk-6OSVSQL5.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  isSessionEntry
4
- } from "./chunk-JGRC33J2.js";
4
+ } from "./chunk-54X7T7DK.js";
5
5
  import {
6
6
  init_esm_shims
7
7
  } from "./chunk-3R73A4XB.js";
@@ -45,6 +45,7 @@ function boardStatus(tasks) {
45
45
  function toTaskLedgerEntryFields(board, now) {
46
46
  const evidence = [];
47
47
  const subgoals = board.tasks.map((task) => {
48
+ evidence.push(...(task.requiredValidationEvidence ?? []).map((item) => ({ ...item })));
48
49
  if (task.status === "completed" && task.evidence) {
49
50
  evidence.push({
50
51
  id: `${task.id}.evidence`,
@@ -139,6 +140,8 @@ function toEntryView(entry) {
139
140
  origin: goal.origin ?? "agent"
140
141
  };
141
142
  if (goal.userTaskId) task.userTaskId = goal.userTaskId;
143
+ const required = entry.requiredValidationEvidence.filter((item) => item.id.startsWith(`${goal.id}.acceptance.`));
144
+ if (required.length > 0) task.requiredValidationEvidence = required.map((item) => ({ ...item }));
142
145
  if (goal.description) task.reason = goal.description;
143
146
  const evidence = evidenceByTask.get(goal.id);
144
147
  if (evidence) task.evidence = evidence;
@@ -211,6 +214,15 @@ function applyMutation(board, mutation) {
211
214
  origin: "user",
212
215
  userTaskId: mutation.userTaskId
213
216
  };
217
+ if (mutation.verification && mutation.verification.length > 0) {
218
+ picked.requiredValidationEvidence = mutation.verification.map((item, index) => ({
219
+ id: `${picked.id}.acceptance.${index}`,
220
+ description: `Operator acceptance: ${item.check}`,
221
+ command: item.check,
222
+ status: "pending",
223
+ notes: `timeoutMs=${item.timeoutMs}`
224
+ }));
225
+ }
214
226
  return {
215
227
  board: {
216
228
  boardId: board?.boardId ?? "",
@@ -371,4 +383,4 @@ export {
371
383
  foldSessionTaskHistory,
372
384
  createTaskBoardStore
373
385
  };
374
- //# sourceMappingURL=chunk-L47TF46W.js.map
386
+ //# sourceMappingURL=chunk-6PAZTBPA.js.map
@@ -1,14 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
- import {
3
- loadProjectVerifierCatalog
4
- } from "./chunk-7DICMOS6.js";
5
- import {
6
- pathBoundaryCovers,
7
- resolvePathBoundary
8
- } from "./chunk-HHV2GANA.js";
9
2
  import {
10
3
  classify
11
- } from "./chunk-B4OAX3SI.js";
4
+ } from "./chunk-KFV5L5SK.js";
12
5
  import {
13
6
  extractCommandCdTargets,
14
7
  extractCommandDeleteTargets,
@@ -16,16 +9,23 @@ import {
16
9
  inlineShellScript,
17
10
  invokesClioSkillMutation,
18
11
  scanShellLike
19
- } from "./chunk-I7ZPNEJM.js";
20
- import {
21
- artifactDefaultPath
22
- } from "./chunk-GYV6VZOC.js";
12
+ } from "./chunk-NXYCB2VD.js";
23
13
  import {
24
14
  canonicalizeExistingPath
25
15
  } from "./chunk-ECH6PKUQ.js";
16
+ import {
17
+ loadProjectVerifierCatalog
18
+ } from "./chunk-DXKJURES.js";
19
+ import {
20
+ pathBoundaryCovers,
21
+ resolvePathBoundary
22
+ } from "./chunk-HHV2GANA.js";
23
+ import {
24
+ artifactDefaultPath
25
+ } from "./chunk-GYV6VZOC.js";
26
26
  import {
27
27
  ToolNames
28
- } from "./chunk-K6BSR66V.js";
28
+ } from "./chunk-4NSRCOYP.js";
29
29
  import {
30
30
  foreignAgentDirs
31
31
  } from "./chunk-KXDSS5WJ.js";
@@ -212,8 +212,10 @@ var DEFAULT_DAMAGE_CONTROL_PATH_POLICY = {
212
212
  // widen its own permissions in two tool calls. Both are authored by the
213
213
  // operator through the CLI (`clio-coder verifiers author` lands nothing
214
214
  // before `--yes`), so model-side writes and deletes are refused.
215
+ // Skills also refuse model-side writes and deletes; installs go through `clio-coder skills install`.
215
216
  ".clio-coder/safety.yaml",
216
217
  ".clio-coder/verifiers.yaml",
218
+ ".clio-coder/skills/",
217
219
  "/etc/",
218
220
  "/usr/",
219
221
  "/bin/",
@@ -824,7 +826,10 @@ function createSafetyPolicyEngine(options = {}) {
824
826
  const projectPolicy = options.projectPolicy ?? loadProjectSafetyPolicy(cwd);
825
827
  const projectPolicyRoot = projectPolicy.path === null ? cwd : path4.dirname(path4.dirname(canonicalizeExistingPath(projectPolicy.path)));
826
828
  const pathPolicyInput = projectPolicy.disableDefaultPathPolicy ? projectPolicy.pathPolicy : mergePathPolicyInputs(DEFAULT_DAMAGE_CONTROL_PATH_POLICY, projectPolicy.pathPolicy);
827
- const expandedDefaults = projectPolicy.disableDefaultPathPolicy ? pathPolicyInput : mergePathPolicyInputs(pathPolicyInput, { zeroAccessPaths: clioCredentialStorePaths() });
829
+ const expandedDefaults = projectPolicy.disableDefaultPathPolicy ? pathPolicyInput : mergePathPolicyInputs(pathPolicyInput, {
830
+ zeroAccessPaths: clioCredentialStorePaths(),
831
+ readOnlyPaths: clioSkillsRootPaths()
832
+ });
828
833
  const pathPolicy = compilePathPolicy(expandedDefaults, projectPolicyRoot);
829
834
  const zeroAccessPolicy = {
830
835
  root: pathPolicy.root,
@@ -1001,6 +1006,13 @@ function clioCredentialStorePaths() {
1001
1006
  return [];
1002
1007
  }
1003
1008
  }
1009
+ function clioSkillsRootPaths() {
1010
+ try {
1011
+ return [path4.join(clioConfigDir(), "skills")];
1012
+ } catch {
1013
+ return [];
1014
+ }
1015
+ }
1004
1016
  var SAFE_PRESENCE_RE = /^\s*grep\s+(?:-(?:q|sq|qs)\s+)('[^']*'|"[^"]*"|\S+)\s+\S+\s*$/;
1005
1017
  function isSafePresenceCheck(command) {
1006
1018
  const match = SAFE_PRESENCE_RE.exec(command);
@@ -1338,7 +1350,13 @@ function cwdArg(args, fallback) {
1338
1350
  const resolved = typeof args?.cwd === "string" && args.cwd.length > 0 ? path4.resolve(fallback, args.cwd) : fallback;
1339
1351
  return canonicalizeExistingPath(resolved);
1340
1352
  }
1341
- var CONTENT_BEARING_TOOLS = /* @__PURE__ */ new Set([ToolNames.Write, ToolNames.Edit, ToolNames.Artifact]);
1353
+ var CONTENT_BEARING_TOOLS = /* @__PURE__ */ new Set([
1354
+ ToolNames.Write,
1355
+ ToolNames.Edit,
1356
+ ToolNames.Artifact,
1357
+ ToolNames.Dispatch,
1358
+ ToolNames.Tasks
1359
+ ]);
1342
1360
  function damageControlScan(call) {
1343
1361
  if (!CONTENT_BEARING_TOOLS.has(call.tool)) return serializeArgs(call.args);
1344
1362
  const pathArg2 = call.args?.path;
@@ -1395,4 +1413,4 @@ export {
1395
1413
  WRITE_ROOT_REFUSED_TOOLS,
1396
1414
  createSafetyPolicyEngine
1397
1415
  };
1398
- //# sourceMappingURL=chunk-XIVNBFZS.js.map
1416
+ //# sourceMappingURL=chunk-6Q3CYFD3.js.map