@iowarp/clio-coder 0.4.2 → 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 (523) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/CONTRIBUTING.md +86 -19
  3. package/README.md +35 -6
  4. package/dist/{acp-TMDQZDIG.js → acp-WNAYYF4F.js} +12 -13
  5. package/dist/{agents-5N5NG3XG.js → agents-3OKXHLOI.js} +60 -57
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-Z5CCBXKQ.js → auth-VKNNMGPU.js} +21 -19
  8. package/dist/{builtins-K6TNDT24.js → builtins-WGALA46I.js} +9 -4
  9. package/dist/{chunk-XE3PCIXH.js → chunk-23L32XTI.js} +12 -9
  10. package/dist/{chunk-I64IFBLB.js → chunk-25QBEXRS.js} +18 -11
  11. package/dist/{chunk-CDNVLKUX.js → chunk-26QSH3EJ.js} +13 -7
  12. package/dist/{chunk-QQLGQY2A.js → chunk-2ASED4PZ.js} +22 -22
  13. package/dist/{chunk-MCEPRMZW.js → chunk-2CU2H6KE.js} +2 -2
  14. package/dist/chunk-2DSOYNFC.js +108 -0
  15. package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
  16. package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
  17. package/dist/{chunk-O3YUNJZ2.js → chunk-2ZSONWVL.js} +82 -25
  18. package/dist/{chunk-2NHR3NAY.js → chunk-36CT5VVL.js} +331 -42
  19. package/dist/{chunk-2X4RYJTJ.js → chunk-3GY4F45V.js} +3 -3
  20. package/dist/{chunk-ZW55JB7N.js → chunk-3ODX73FK.js} +4 -6
  21. package/dist/{chunk-PBP4B7XR.js → chunk-3UNOLWNZ.js} +3 -3
  22. package/dist/{chunk-4JDLP6ZS.js → chunk-3UUXNFEX.js} +14 -10
  23. package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
  24. package/dist/{chunk-ZW4HH5JJ.js → chunk-4M6Z5QVF.js} +6 -6
  25. package/dist/{chunk-K6BSR66V.js → chunk-4NSRCOYP.js} +4 -1
  26. package/dist/{chunk-M2DAX4F6.js → chunk-4WR7VSYB.js} +2 -2
  27. package/dist/{chunk-FSP7CMNU.js → chunk-54X7T7DK.js} +61 -6
  28. package/dist/{chunk-54ODD65L.js → chunk-5636DCO5.js} +4 -4
  29. package/dist/chunk-57XXR6DR.js +3763 -0
  30. package/dist/{chunk-3KIPBMUA.js → chunk-5ICU3EUH.js} +2 -2
  31. package/dist/{chunk-77QIVUZB.js → chunk-5MEZN6CB.js} +4 -4
  32. package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
  33. package/dist/{chunk-YJISEZKC.js → chunk-5TUB6SLS.js} +6 -6
  34. package/dist/{chunk-IMXMHHMQ.js → chunk-6OSVSQL5.js} +341 -57
  35. package/dist/{chunk-Q4XWMHX6.js → chunk-6PAZTBPA.js} +14 -2
  36. package/dist/{chunk-FVDGR2ZL.js → chunk-6Q3CYFD3.js} +112 -39
  37. package/dist/{chunk-IDNA72AH.js → chunk-6QOTUPRG.js} +155 -36
  38. package/dist/{chunk-X7IARSHT.js → chunk-6UINWWS6.js} +16 -10
  39. package/dist/{chunk-CYZW7JHJ.js → chunk-72YIHOZQ.js} +9 -9
  40. package/dist/{chunk-IKSLQ4XV.js → chunk-75W7L2E2.js} +752 -861
  41. package/dist/{chunk-CRFOIAX3.js → chunk-7UGL4MB5.js} +6 -6
  42. package/dist/{chunk-HIICAHCJ.js → chunk-AUPNRN7C.js} +2 -2
  43. package/dist/{chunk-7BHIY2MW.js → chunk-BJVFZO5U.js} +8 -50
  44. package/dist/{chunk-B74PXLU7.js → chunk-CUSRQKPU.js} +65 -3
  45. package/dist/chunk-DQOVN6KV.js +386 -0
  46. package/dist/{chunk-E7GT7O5N.js → chunk-DT3LWJOB.js} +7 -4
  47. package/dist/chunk-DXKJURES.js +671 -0
  48. package/dist/{chunk-JBCS7CRR.js → chunk-EL24TAU4.js} +10 -10
  49. package/dist/{chunk-TPEQIQIE.js → chunk-ELWDPP3Y.js} +8 -8
  50. package/dist/{chunk-NDINPTJ4.js → chunk-ELZVTCGV.js} +5 -4
  51. package/dist/chunk-EXLD33WO.js +381 -0
  52. package/dist/chunk-FEAXX7B6.js +101 -0
  53. package/dist/{chunk-RLYRBIYQ.js → chunk-FFUPXJC4.js} +90 -331
  54. package/dist/{chunk-5PFYMY2V.js → chunk-FTMGRKEF.js} +2 -2
  55. package/dist/{chunk-34BHNEE3.js → chunk-GHS5EBTQ.js} +58 -7
  56. package/dist/{chunk-DYHAXKHD.js → chunk-GWZNEVM2.js} +12 -8
  57. package/dist/chunk-GX5WYQO4.js +59 -0
  58. package/dist/chunk-GYV6VZOC.js +26 -0
  59. package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
  60. package/dist/chunk-I2DWJ4GM.js +390 -0
  61. package/dist/{chunk-TXOTCRLG.js → chunk-I5FWO7L5.js} +5 -5
  62. package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
  63. package/dist/{chunk-XQRY4DTA.js → chunk-IGLP3ODT.js} +10 -10
  64. package/dist/chunk-IRXAATOX.js +539 -0
  65. package/dist/chunk-IXIY2H4R.js +44 -0
  66. package/dist/{chunk-SSEYRH53.js → chunk-IZXGRF7P.js} +92 -147
  67. package/dist/{chunk-5TSRNF4G.js → chunk-JCI2ROMZ.js} +164 -6
  68. package/dist/{chunk-JWJGP5DQ.js → chunk-JEIYHLOR.js} +7 -7
  69. package/dist/{chunk-F2I26BDK.js → chunk-JQLNNIKT.js} +4 -4
  70. package/dist/{chunk-BYMNWQ7O.js → chunk-JSD46VO2.js} +315 -63
  71. package/dist/{chunk-AK5XEFVZ.js → chunk-JT2RFCC5.js} +64 -14
  72. package/dist/{chunk-MCMZMDAC.js → chunk-K6T2ZAMZ.js} +168 -6
  73. package/dist/{chunk-PGF63K6I.js → chunk-KFV5L5SK.js} +73 -4
  74. package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
  75. package/dist/{chunk-PJX3WQUQ.js → chunk-LLXSDWXS.js} +3 -3
  76. package/dist/{chunk-DZAW46HP.js → chunk-LTIKRKFL.js} +3 -3
  77. package/dist/{chunk-DZEK6CJN.js → chunk-N56KALIC.js} +21 -21
  78. package/dist/{chunk-B7HM5Z7T.js → chunk-NAI6ZFCY.js} +9 -5
  79. package/dist/{chunk-I66ZTYNP.js → chunk-NRO2BJRH.js} +2656 -2213
  80. package/dist/{chunk-ZGNYYXQ6.js → chunk-NXIMQY5W.js} +3 -3
  81. package/dist/{chunk-IKOZFYBN.js → chunk-NXYCB2VD.js} +149 -106
  82. package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
  83. package/dist/{chunk-462T4EGZ.js → chunk-O5CVSAG5.js} +2 -2
  84. package/dist/chunk-ODGTEFFI.js +50 -0
  85. package/dist/{chunk-3F7VUY77.js → chunk-OEJSLEPW.js} +2 -2
  86. package/dist/{chunk-KKOJXO6R.js → chunk-OMQNJVKW.js} +4 -2
  87. package/dist/{chunk-5KW52TEP.js → chunk-Q4WO54TA.js} +132 -77
  88. package/dist/{chunk-W6NIE6OW.js → chunk-QUFRYSWI.js} +13 -7
  89. package/dist/{chunk-42FMPA75.js → chunk-QZWQA4DE.js} +2 -2
  90. package/dist/chunk-R6Q67RJH.js +134 -0
  91. package/dist/{chunk-W4YEMFBX.js → chunk-RAY4OVGZ.js} +3 -3
  92. package/dist/{chunk-ZNT2M6TG.js → chunk-RQCKCSRL.js} +17 -17
  93. package/dist/{chunk-LJID3DYZ.js → chunk-RXTN6AKH.js} +3 -3
  94. package/dist/{chunk-P75RZCJW.js → chunk-RZDWV63N.js} +3 -3
  95. package/dist/{chunk-UH632ZYL.js → chunk-S6PYF2XF.js} +2 -2
  96. package/dist/{chunk-HJWWJ6IL.js → chunk-TOIVGRUX.js} +17 -5
  97. package/dist/{chunk-HLAFFSEK.js → chunk-TQAHXW6Y.js} +2 -2
  98. package/dist/{chunk-JIEGK6UF.js → chunk-U6TMQNSI.js} +48 -4
  99. package/dist/{chunk-2HFQNRV3.js → chunk-UEPWCCTY.js} +12 -12
  100. package/dist/chunk-UOIZ7DA4.js +41 -0
  101. package/dist/{chunk-UH347SHR.js → chunk-USR47QNF.js} +11 -11
  102. package/dist/{chunk-AZ4WMN4W.js → chunk-V6HJFQZE.js} +2 -2
  103. package/dist/chunk-V76WTFTW.js +318 -0
  104. package/dist/{chunk-NMJXSHBJ.js → chunk-W54I7H25.js} +2 -2
  105. package/dist/{chunk-KPXDY6QF.js → chunk-XRZT5WY5.js} +2 -2
  106. package/dist/{chunk-UBRFI4HS.js → chunk-XULDXHTN.js} +142 -50
  107. package/dist/chunk-XXYSBZIQ.js +283 -0
  108. package/dist/{chunk-HKMD33FO.js → chunk-Y55JBDO5.js} +405 -122
  109. package/dist/{chunk-XOXV5GKE.js → chunk-YD5GIKET.js} +17 -8
  110. package/dist/{chunk-XGDPUNND.js → chunk-YECAMM3D.js} +2 -2
  111. package/dist/{chunk-BO7Y52RY.js → chunk-YNFKXPEC.js} +7 -7
  112. package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
  113. package/dist/{chunk-M2WXEHER.js → chunk-ZA4VCIGV.js} +2 -2
  114. package/dist/cli/index.js +42 -40
  115. package/dist/{clio-7VB377CC.js → clio-QLICPCF5.js} +7 -7
  116. package/dist/{code-nav-YVLCYA7V.js → code-nav-IJR2DBPR.js} +9 -9
  117. package/dist/{components-UBWCQSRW.js → components-2TGAI2RC.js} +5 -6
  118. package/dist/{config-4HVOS65E.js → config-IUA6OYNS.js} +88 -81
  119. package/dist/{configure-PIWO7B24.js → configure-VEPX4NMX.js} +26 -25
  120. package/dist/{context-KQYIWPWT.js → context-2DKHWH2T.js} +60 -45
  121. package/dist/{context-IYEHL3WQ.js → context-4MPR7WKB.js} +78 -69
  122. package/dist/{context-N6ZE3LGJ.js → context-BOYF5EJM.js} +15 -11
  123. package/dist/{context-clear-G4OGZJDS.js → context-clear-S4ZJCQUX.js} +73 -65
  124. package/dist/context-map-COB37XXN.js +505 -0
  125. package/dist/{context-working-set-BWLF6LJP.js → context-working-set-3I3FYX6Y.js} +18 -17
  126. package/dist/detail-A7JAVSIG.js +98 -0
  127. package/dist/{dispatch-runner-2QQAITS3.js → dispatch-runner-RJ5I2F2O.js} +99 -75
  128. package/dist/{docs-PD3EXDKU.js → docs-SPOV3BAN.js} +3 -5
  129. package/dist/{doctor-LHBD36VU.js → doctor-DKICC2SN.js} +71 -48
  130. package/dist/{eval-C45FYRJ6.js → eval-OQOQUDHK.js} +308 -146
  131. package/dist/{eval-inventory-6DEJPLBF.js → eval-inventory-Y6QRFOH5.js} +4 -4
  132. package/dist/{evidence-6SHONYAF.js → evidence-4DQ25GUQ.js} +79 -175
  133. package/dist/evidence-4F5USFKH.js +208 -0
  134. package/dist/{evolve-KRKMV72X.js → evolve-GSS52E5J.js} +71 -67
  135. package/dist/{extensions-KPZ2UHBB.js → extensions-G7MFLYHT.js} +8 -9
  136. package/dist/{fleet-IVTCKDHT.js → fleet-Q37YHHAQ.js} +126 -118
  137. package/dist/{fleet-commands-EDWL3IT7.js → fleet-commands-G7E4N7SM.js} +16 -13
  138. package/dist/{fleet-decisions-YP3YEFGK.js → fleet-decisions-O7M6QBA2.js} +9 -8
  139. package/dist/{fleet-graph-ZFWKHY2M.js → fleet-graph-TOUBW6OW.js} +21 -20
  140. package/dist/{fleet-inspect-FVUNCBML.js → fleet-inspect-SW33JJNI.js} +65 -60
  141. package/dist/{fleet-preflight-UN5XED4R.js → fleet-preflight-CV2655TW.js} +4 -5
  142. package/dist/{fleet-validate-XOWC4HSX.js → fleet-validate-KESZX2YH.js} +25 -24
  143. package/dist/{fleet-verify-UN3SODEL.js → fleet-verify-UQPMTVE3.js} +66 -61
  144. package/dist/{fleet-view-TWHJKCN6.js → fleet-view-MN2VG4MR.js} +65 -60
  145. package/dist/{init-T2QORQ3Y.js → init-PXEXQSBF.js} +90 -82
  146. package/dist/{interop-IN5I2A66.js → interop-ZG5T62U3.js} +12 -13
  147. package/dist/inventory-C26CFDRR.js +101 -0
  148. package/dist/{library-LSCATDLZ.js → library-B2W4N74O.js} +29 -29
  149. package/dist/{memory-HYOKAGGJ.js → memory-YCANYS5A.js} +73 -69
  150. package/dist/{models-2GPMFYCM.js → models-GERTU3YI.js} +51 -47
  151. package/dist/{monitor-E4ASVUJH.js → monitor-CPNIUULB.js} +74 -67
  152. package/dist/{orchestrator-DDMPR3PY.js → orchestrator-J4BSH4WQ.js} +1288 -1606
  153. package/dist/{panes-E3RUXOW5.js → panes-BOHAEGYC.js} +4 -4
  154. package/dist/{panes-IXKLOKA2.js → panes-NXSLDQZ2.js} +10 -11
  155. package/dist/{paths-L7LGY6RN.js → paths-VSUWNC22.js} +6 -7
  156. package/dist/reset-TNWTB5LU.js +343 -0
  157. package/dist/{resources-OTRSN34L.js → resources-4PXNMD5G.js} +29 -22
  158. package/dist/{run-5DEYH5QK.js → run-D6XJ34CN.js} +132 -132
  159. package/dist/{share-IHWTLO3M.js → share-2NWMJJEE.js} +27 -27
  160. package/dist/{skills-IYMXMKW4.js → skills-KR7WON5G.js} +40 -33
  161. package/dist/{skills-eval-DROHSJAR.js → skills-eval-O2ZNOLDS.js} +81 -77
  162. package/dist/{skills-inventory-D7X4L4ZX.js → skills-inventory-ZZOUBK7O.js} +23 -22
  163. package/dist/{slash-commands-QBM7UZ3B.js → slash-commands-ZXPJD64J.js} +47 -37
  164. package/dist/{steer-Z5DO23FJ.js → steer-XA25PSCS.js} +4 -4
  165. package/dist/{support-U7QOWY26.js → support-7EMVWYG2.js} +6 -6
  166. package/dist/{targets-P2FUC4IL.js → targets-OMH2XCSN.js} +50 -49
  167. package/dist/tasks-IPAGMEIX.js +36 -0
  168. package/dist/{terminal-lease-YREJ3JX2.js → terminal-lease-C2J3JYRE.js} +4 -4
  169. package/dist/{tools-5B7RO6MV.js → tools-EFFEAIDP.js} +8 -9
  170. package/dist/{trace-YMGMUM6A.js → trace-FXMXUZUF.js} +7 -7
  171. package/dist/uninstall-HALS6BLF.js +407 -0
  172. package/dist/upgrade-MS72RJEP.js +306 -0
  173. package/dist/{usage-ME5MPXGX.js → usage-NHG6MCJM.js} +162 -108
  174. package/dist/{verifiers-BVZ7IWOO.js → verifiers-7AUNVXDY.js} +155 -22
  175. package/dist/{verify-5K7ZKQFC.js → verify-FWYGPKMR.js} +14 -12
  176. package/dist/{web-fetch-MPARV2K7.js → web-fetch-V4FKSDAV.js} +4 -4
  177. package/dist/{wiki-generate-F5W5QTYY.js → wiki-generate-743CIGJW.js} +99 -90
  178. package/dist/{with-panes-BYOJCLAM.js → with-panes-BDQEWBRT.js} +10 -10
  179. package/dist/worker/entry.js +72 -68
  180. package/docs/README.md +3 -2
  181. package/docs/architecture/acp.md +17 -0
  182. package/docs/architecture/artifact-placement.md +1 -0
  183. package/docs/architecture/artifact-versions.md +2 -2
  184. package/docs/architecture/context-engine.md +4 -0
  185. package/docs/architecture/dispatch-typed-intent.md +1 -1
  186. package/docs/architecture/evidence-and-memory.md +1 -1
  187. package/docs/architecture/middleware-and-components.md +1 -1
  188. package/docs/architecture/model-catalog.md +21 -10
  189. package/docs/architecture/observability.md +19 -2
  190. package/docs/architecture/prompt-envelope-and-tools.md +17 -5
  191. package/docs/architecture/provider-adapter-cookbook.md +63 -0
  192. package/docs/architecture/safety-model.md +25 -22
  193. package/docs/architecture/tui-design.md +1 -1
  194. package/docs/guide/built-in-agents.md +25 -11
  195. package/docs/guide/commands-and-modes.md +18 -3
  196. package/docs/guide/configuration-and-targets.md +100 -10
  197. package/docs/guide/configuration-reference.md +17 -7
  198. package/docs/guide/environment-variables.md +4 -2
  199. package/docs/guide/installation-and-lifecycle.md +37 -4
  200. package/docs/guide/proactive-memory.md +66 -55
  201. package/docs/guide/skills-marketplace.md +18 -0
  202. package/docs/guide/tool-usage.md +78 -3
  203. package/docs/history/config-knobs-audit.md +2 -2
  204. package/docs/process/development-pipeline.md +40 -2
  205. package/docs/process/eval-runner.md +67 -3
  206. package/docs/process/git-commit-provenance.md +15 -0
  207. package/docs/process/release-cut-checklist.md +207 -0
  208. package/docs/process/scientific-validation.md +18 -17
  209. package/evals/behavioral-machinery-support.ts +1 -0
  210. package/evals/behavioral-machinery.yaml +1 -1
  211. package/evals/behavioral-model.yaml +3 -2
  212. package/package.json +2 -2
  213. package/skills/README.md +7 -5
  214. package/skills/coding/ast-grep/SKILL.md +101 -30
  215. package/skills/coding/ast-grep/evals.md +26 -0
  216. package/skills/coding/coding-standards/SKILL.md +47 -2
  217. package/skills/coding/coding-standards/evals.md +23 -0
  218. package/skills/coding/prototype/SKILL.md +87 -28
  219. package/skills/coding/prototype/evals.md +19 -0
  220. package/skills/coding/tdd/SKILL.md +80 -53
  221. package/skills/coding/tdd/evals.md +20 -0
  222. package/skills/context/context-handoff/SKILL.md +43 -2
  223. package/skills/context/context-handoff/evals.md +44 -0
  224. package/skills/context/context-prime/SKILL.md +45 -15
  225. package/skills/context/context-prime/evals.md +45 -0
  226. package/skills/git/branch-closeout/SKILL.md +132 -0
  227. package/skills/git/branch-closeout/evals.md +133 -0
  228. package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
  229. package/skills/git/file-ticket/SKILL.md +77 -63
  230. package/skills/git/file-ticket/assets/issue-template.md +22 -0
  231. package/skills/git/file-ticket/evals.md +31 -26
  232. package/skills/git/file-ticket/references/issue-discovery.md +49 -0
  233. package/skills/git/fix-issue/SKILL.md +87 -64
  234. package/skills/git/fix-issue/evals.md +35 -31
  235. package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
  236. package/skills/git/resolve-merge-conflicts/SKILL.md +100 -51
  237. package/skills/git/resolve-merge-conflicts/evals.md +52 -25
  238. package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
  239. package/skills/git/ship/SKILL.md +103 -67
  240. package/skills/git/ship/assets/pr-template.md +21 -0
  241. package/skills/git/ship/evals.md +44 -28
  242. package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
  243. package/skills/git/worktree-create/SKILL.md +80 -50
  244. package/skills/git/worktree-create/evals.md +40 -33
  245. package/skills/git/worktree-create/references/worktree-setup.md +62 -66
  246. package/skills/git/worktree-merge/SKILL.md +112 -65
  247. package/skills/git/worktree-merge/evals.md +42 -34
  248. package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
  249. package/skills/planning/archify/SKILL.md +196 -0
  250. package/skills/planning/archify/evals.md +65 -0
  251. package/skills/planning/architecture/SKILL.md +61 -12
  252. package/skills/planning/architecture/evals.md +65 -0
  253. package/skills/planning/backlog/SKILL.md +130 -14
  254. package/skills/planning/backlog/evals.md +142 -0
  255. package/skills/planning/prd/SKILL.md +47 -6
  256. package/skills/planning/prd/evals.md +54 -0
  257. package/skills/planning/product-intent/SKILL.md +57 -2
  258. package/skills/planning/product-intent/evals.md +70 -0
  259. package/skills/planning/tech-spec/SKILL.md +53 -2
  260. package/skills/planning/tech-spec/evals.md +73 -0
  261. package/skills/registry.yaml +58 -50
  262. package/skills/remote.yaml +13 -0
  263. package/skills/research/arxiv-literature/SKILL.md +76 -18
  264. package/skills/research/arxiv-literature/evals.md +50 -0
  265. package/skills/research/experiment-protocol/SKILL.md +20 -1
  266. package/skills/research/experiment-protocol/evals.md +23 -0
  267. package/skills/research/scientific-debugging/SKILL.md +24 -1
  268. package/skills/research/scientific-debugging/evals.md +18 -0
  269. package/skills/research/scientific-modernization/SKILL.md +26 -1
  270. package/skills/research/scientific-modernization/evals.md +27 -0
  271. package/skills/skill-marketplace.json +63 -28
  272. package/skills/workflow/cut-it/SKILL.md +64 -5
  273. package/skills/workflow/cut-it/evals.md +101 -0
  274. package/skills/workflow/design-council/SKILL.md +112 -27
  275. package/skills/workflow/design-council/evals.md +161 -0
  276. package/skills/workflow/grill-me/SKILL.md +85 -10
  277. package/skills/workflow/grill-me/evals.md +153 -0
  278. package/skills/workflow/workflow-distiller/SKILL.md +76 -17
  279. package/skills/workflow/workflow-distiller/evals.md +118 -0
  280. package/src/cli/args.ts +0 -8
  281. package/src/cli/configure-interop.ts +105 -13
  282. package/src/cli/configure-oauth.ts +57 -0
  283. package/src/cli/configure-onboarding.ts +980 -0
  284. package/src/cli/configure-target.ts +594 -0
  285. package/src/cli/configure.ts +1084 -529
  286. package/src/cli/context-map.ts +114 -0
  287. package/src/cli/context.ts +4 -0
  288. package/src/cli/doctor-state-size.ts +1 -12
  289. package/src/cli/doctor-validation-contract.ts +28 -0
  290. package/src/cli/doctor.ts +5 -0
  291. package/src/cli/evidence-detail.ts +1 -75
  292. package/src/cli/evidence-inventory.ts +1 -167
  293. package/src/cli/index.ts +3 -0
  294. package/src/cli/lifecycle-presenter.ts +436 -0
  295. package/src/cli/models.ts +10 -2
  296. package/src/cli/modes/print.ts +5 -1
  297. package/src/cli/reset.ts +228 -106
  298. package/src/cli/run.ts +7 -4
  299. package/src/cli/select.ts +664 -0
  300. package/src/cli/skills.ts +9 -2
  301. package/src/cli/targets.ts +3 -0
  302. package/src/cli/tasks.ts +84 -0
  303. package/src/cli/uninstall.ts +233 -165
  304. package/src/cli/upgrade.ts +210 -150
  305. package/src/cli/usage.ts +92 -27
  306. package/src/cli/validate-model.ts +3 -3
  307. package/src/cli/verifiers.ts +147 -1
  308. package/src/cli/wiki-generate.ts +1 -0
  309. package/src/core/commit-attribution.ts +41 -1
  310. package/src/core/config.ts +56 -0
  311. package/src/core/external-diagnostic.ts +44 -0
  312. package/src/core/gateway-routing.ts +157 -0
  313. package/src/core/git-commit-attribution.ts +46 -3
  314. package/src/core/run-overrides.ts +0 -5
  315. package/src/core/safe-exec.ts +17 -2
  316. package/src/core/skill-activation.ts +92 -2
  317. package/src/core/tool-names.ts +5 -2
  318. package/src/domains/agents/builtins/architect.md +1 -1
  319. package/src/domains/agents/builtins/coder.md +1 -1
  320. package/src/domains/agents/builtins/documenter.md +1 -1
  321. package/src/domains/agents/builtins/git-master.md +1 -1
  322. package/src/domains/agents/builtins/provenance.md +7 -7
  323. package/src/domains/agents/builtins/tester.md +1 -1
  324. package/src/domains/agents/builtins/verifier.md +2 -2
  325. package/src/domains/agents/builtins/wiki-writer.md +4 -3
  326. package/src/domains/agents/builtins/world-knowledge.md +31 -0
  327. package/src/domains/agents/catalog.ts +1 -1
  328. package/src/domains/agents/result-contract.ts +70 -0
  329. package/src/domains/context/extension.ts +31 -7
  330. package/src/domains/context/refresh.ts +3 -0
  331. package/src/domains/context/wiki/frontmatter.ts +5 -2
  332. package/src/domains/context/wiki/generate.ts +6 -0
  333. package/src/domains/context/wiki/map-seed.ts +589 -0
  334. package/src/domains/context/wiki/plan.ts +2 -2
  335. package/src/domains/context/wiki/prompts.ts +43 -0
  336. package/src/domains/dispatch/active-route-planner.ts +4 -0
  337. package/src/domains/dispatch/admission.ts +29 -0
  338. package/src/domains/dispatch/agent-candidates.ts +10 -0
  339. package/src/domains/dispatch/budget-envelope.ts +86 -1
  340. package/src/domains/dispatch/capability-match.ts +1 -0
  341. package/src/domains/dispatch/capacity-lease.ts +17 -0
  342. package/src/domains/dispatch/code-step.ts +11 -4
  343. package/src/domains/dispatch/contract.ts +42 -8
  344. package/src/domains/dispatch/execution-scheduler.ts +2 -0
  345. package/src/domains/dispatch/extension.ts +184 -56
  346. package/src/domains/dispatch/fleet-commit-attribution.ts +5 -0
  347. package/src/domains/dispatch/fleet-run.ts +1 -0
  348. package/src/domains/dispatch/host-verification.ts +114 -13
  349. package/src/domains/dispatch/intent.ts +28 -18
  350. package/src/domains/dispatch/orphan-recovery.ts +2 -0
  351. package/src/domains/dispatch/receipt-integrity.ts +4 -0
  352. package/src/domains/dispatch/reservation-store.ts +5 -3
  353. package/src/domains/dispatch/state.ts +15 -2
  354. package/src/domains/dispatch/types.ts +20 -2
  355. package/src/domains/dispatch/worker-model-metadata.ts +38 -0
  356. package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
  357. package/src/domains/eval/metrics/token-stream.ts +201 -31
  358. package/src/domains/eval/metrics/tracked.ts +40 -4
  359. package/src/domains/eval/runners/clio-run.ts +17 -11
  360. package/src/domains/eval/runners/context-index.ts +2 -7
  361. package/src/domains/eval/runners/context-init.ts +3 -6
  362. package/src/domains/eval/runners/external-command.ts +29 -11
  363. package/src/domains/eval/schema/suite.ts +28 -0
  364. package/src/domains/eval/schema/verdict.ts +2 -2
  365. package/src/domains/eval/suites/resolve.ts +13 -1
  366. package/src/domains/eval/suites/run.ts +24 -3
  367. package/src/domains/evidence/build.ts +102 -15
  368. package/src/domains/evidence/detail.ts +69 -0
  369. package/src/domains/evidence/eval.ts +13 -1
  370. package/src/domains/evidence/finish-contract-map.ts +5 -1
  371. package/src/domains/evidence/inventory.ts +167 -0
  372. package/src/domains/evidence/store.ts +16 -0
  373. package/src/domains/evidence/types.ts +12 -0
  374. package/src/domains/extensions/resources.ts +7 -0
  375. package/src/domains/interop/registry.ts +6 -2
  376. package/src/domains/interop/types.ts +4 -0
  377. package/src/domains/lifecycle/migrations/index.ts +4 -0
  378. package/src/domains/memory/task-memory-policy.ts +70 -26
  379. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  380. package/src/domains/middleware/index.ts +0 -1
  381. package/src/domains/middleware/marketplace-offer.ts +22 -35
  382. package/src/domains/middleware/memory-intervention.ts +127 -32
  383. package/src/domains/middleware/memory-step-endpoint.ts +3 -2
  384. package/src/domains/middleware/runtime.ts +7 -3
  385. package/src/domains/middleware/skills-reminder.ts +31 -2
  386. package/src/domains/mux/detect.ts +3 -6
  387. package/src/domains/observability/accountability.ts +15 -1
  388. package/src/domains/observability/compaction-usage.ts +118 -0
  389. package/src/domains/observability/contract.ts +52 -7
  390. package/src/domains/observability/cost.ts +1 -1
  391. package/src/domains/observability/evidence-index.ts +10 -0
  392. package/src/domains/observability/extension.ts +15 -6
  393. package/src/domains/observability/out-of-turn-usage.ts +52 -21
  394. package/src/domains/observability/projection.ts +394 -45
  395. package/src/{interactive → domains/observability}/worker-progress.ts +3 -3
  396. package/src/domains/prompts/fragments/operating/contract.md +2 -0
  397. package/src/domains/prompts/fragments/wiki/page.md +8 -0
  398. package/src/domains/providers/contract.ts +4 -1
  399. package/src/domains/providers/extension.ts +40 -9
  400. package/src/domains/providers/model-capabilities.ts +9 -0
  401. package/src/domains/providers/model-discovery.ts +3 -4
  402. package/src/domains/providers/model-runtime-capabilities.ts +15 -5
  403. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +48 -26
  404. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
  405. package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
  406. package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
  407. package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
  408. package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
  409. package/src/domains/providers/support.ts +11 -5
  410. package/src/domains/providers/target-model-cache.ts +25 -2
  411. package/src/domains/providers/types/capability-flags.ts +2 -0
  412. package/src/domains/providers/types/runtime-descriptor.ts +20 -1
  413. package/src/domains/providers/types/target-descriptor.ts +19 -0
  414. package/src/domains/resources/index.ts +3 -0
  415. package/src/domains/resources/skills/install.ts +72 -7
  416. package/src/domains/resources/skills/loader.ts +7 -0
  417. package/src/domains/resources/skills/marketplace.ts +63 -11
  418. package/src/domains/safety/action-classifier.ts +7 -0
  419. package/src/domains/safety/autonomy.ts +15 -0
  420. package/src/domains/safety/default-path-policy.ts +2 -0
  421. package/src/domains/safety/finish-contract-registration.ts +29 -14
  422. package/src/domains/safety/finish-contract.ts +252 -40
  423. package/src/domains/safety/index.ts +21 -1
  424. package/src/domains/safety/path-policy.ts +1 -1
  425. package/src/domains/safety/policy-engine.ts +60 -17
  426. package/src/domains/safety/protected-artifacts.ts +191 -88
  427. package/src/domains/safety/rigor.ts +53 -39
  428. package/src/domains/safety/run-effects.ts +2 -22
  429. package/src/domains/safety/skill-authority.ts +55 -0
  430. package/src/domains/safety/validation-contract.ts +388 -0
  431. package/src/domains/session/archive-readers.ts +10 -1
  432. package/src/domains/session/compaction/compact.ts +72 -22
  433. package/src/domains/session/decision-board.ts +101 -2
  434. package/src/domains/session/entries.ts +50 -7
  435. package/src/domains/session/extension.ts +4 -4
  436. package/src/domains/session/handoff.ts +2 -1
  437. package/src/domains/session/manager.ts +2 -3
  438. package/src/domains/session/task-board.ts +14 -1
  439. package/src/domains/session/tree/fork.ts +1 -2
  440. package/src/domains/session/tree/navigator.ts +1 -1
  441. package/src/domains/session/usage.ts +3 -3
  442. package/src/domains/user-tasks/acceptance.ts +56 -0
  443. package/src/domains/user-tasks/active-acceptance.ts +40 -0
  444. package/src/domains/user-tasks/store.ts +34 -3
  445. package/src/engine/acp/adapter.ts +24 -6
  446. package/src/engine/acp/server.ts +21 -4
  447. package/src/engine/acp/transport.ts +53 -8
  448. package/src/engine/acp/types.ts +4 -0
  449. package/src/engine/agent.ts +13 -3
  450. package/src/engine/ai.ts +26 -8
  451. package/src/engine/antigravity/subprocess-runtime.ts +386 -120
  452. package/src/engine/api-registry.ts +3 -0
  453. package/src/engine/apis/ollama-native.ts +15 -0
  454. package/src/engine/apis/openai-completions.ts +117 -14
  455. package/src/engine/claude/subprocess-runtime.ts +107 -60
  456. package/src/engine/external-subprocess.ts +122 -6
  457. package/src/entry/background-model-metadata.ts +18 -0
  458. package/src/entry/compaction-prompt.ts +57 -0
  459. package/src/entry/orchestrator.ts +416 -218
  460. package/src/entry/task-memory-lifecycle.ts +35 -0
  461. package/src/interactive/chat-loop-messages.ts +13 -4
  462. package/src/interactive/chat-loop.ts +65 -2
  463. package/src/interactive/chat-renderer.ts +1 -0
  464. package/src/interactive/cost-overlay.ts +26 -2
  465. package/src/interactive/dispatch-board.ts +46 -717
  466. package/src/interactive/fleet-run-preview.ts +2 -1
  467. package/src/interactive/interactive-application.ts +3 -2
  468. package/src/interactive/interactive-presentation.ts +55 -12
  469. package/src/interactive/interactive-slash-runtime.ts +4 -2
  470. package/src/interactive/oracle.ts +5 -2
  471. package/src/interactive/overlays/fleet-run-approval.ts +3 -2
  472. package/src/interactive/overlays/message-picker.ts +2 -2
  473. package/src/interactive/overlays/settings.ts +2 -2
  474. package/src/interactive/overlays/tree-selector.ts +2 -2
  475. package/src/interactive/renderers/branch-summary.ts +1 -1
  476. package/src/interactive/renderers/worker-entry.ts +32 -0
  477. package/src/interactive/slash-autocomplete.ts +4 -6
  478. package/src/interactive/slash-commands.ts +49 -45
  479. package/src/interactive/slash-spec.ts +28 -0
  480. package/src/interactive/theme/labels.ts +19 -13
  481. package/src/interactive/turn-context.ts +9 -5
  482. package/src/interactive/turn-recovery.ts +8 -0
  483. package/src/interactive/turn-runtime.ts +27 -11
  484. package/src/interactive/turn-state.ts +7 -0
  485. package/src/interactive/view/artifacts.ts +2 -0
  486. package/src/interactive/worker-receipts.ts +1 -0
  487. package/src/interactive/worker-stream.ts +13 -4
  488. package/src/tools/bootstrap.ts +4 -0
  489. package/src/tools/builtin-tool-catalog.ts +31 -0
  490. package/src/tools/compete-worktrees.ts +7 -1
  491. package/src/tools/context/index.ts +30 -9
  492. package/src/tools/core-bootstrap.ts +16 -0
  493. package/src/tools/decide.ts +136 -0
  494. package/src/tools/dispatch-admission.ts +21 -0
  495. package/src/tools/dispatch-arguments.ts +1 -0
  496. package/src/tools/dispatch-event-text.ts +10 -0
  497. package/src/tools/dispatch-plan.ts +6 -2
  498. package/src/tools/dispatch-runner.ts +27 -1
  499. package/src/tools/dispatch-types.ts +6 -0
  500. package/src/tools/evidence.ts +96 -0
  501. package/src/tools/limitation.ts +76 -0
  502. package/src/tools/policy.ts +9 -0
  503. package/src/tools/presentation.ts +3 -0
  504. package/src/tools/registry.ts +11 -5
  505. package/src/tools/result-shaping.ts +17 -5
  506. package/src/tools/task-worktree.ts +13 -3
  507. package/src/tools/tasks.ts +10 -1
  508. package/src/tools/verify/authoring.ts +170 -83
  509. package/src/tools/verify/catalog.ts +122 -5
  510. package/src/tools/verify/index.ts +2 -1
  511. package/src/tools/verify/numeric.ts +298 -0
  512. package/src/tools/verify/perf.ts +143 -0
  513. package/src/tools/verify/scripts.ts +229 -2
  514. package/src/tools/worker-evidence.ts +3 -1
  515. package/src/worker/spec-contract.ts +4 -0
  516. package/dist/chunk-2Z2IKEXI.js +0 -1554
  517. package/dist/chunk-RVG5JXAL.js +0 -41
  518. package/dist/chunk-T56WDKA5.js +0 -183
  519. package/dist/chunk-VN3SHNBN.js +0 -313
  520. package/dist/chunk-VPKWYKEY.js +0 -169
  521. package/dist/reset-OAQP3W4O.js +0 -230
  522. package/dist/uninstall-N34PCTGJ.js +0 -331
  523. package/dist/upgrade-PXK3S2YM.js +0 -325
@@ -1,15 +1,14 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ planWikiGeneration
4
+ } from "./chunk-R6Q67RJH.js";
2
5
  import {
3
6
  loadFragments,
4
7
  renderCodewikiDigest
5
- } from "./chunk-AZ4WMN4W.js";
8
+ } from "./chunk-V6HJFQZE.js";
6
9
  import {
7
10
  loadMemoryRecordsSync
8
- } from "./chunk-JBCS7CRR.js";
9
- import {
10
- createTomlFileReader,
11
- tomlTableAt
12
- } from "./chunk-LCGCVYZ4.js";
11
+ } from "./chunk-EL24TAU4.js";
13
12
  import {
14
13
  WIKI_INDEX,
15
14
  WIKI_PLAN_FILE,
@@ -35,7 +34,7 @@ import {
35
34
  wikiStaleness,
36
35
  writeWikiMeta,
37
36
  writeWikiPlanFile
38
- } from "./chunk-NDINPTJ4.js";
37
+ } from "./chunk-ELZVTCGV.js";
39
38
  import {
40
39
  buildCodewikiCandidate,
41
40
  coordinateCodewikiExclusive,
@@ -45,6 +44,23 @@ import {
45
44
  statePath,
46
45
  writeClioState
47
46
  } from "./chunk-MXHC5QYU.js";
47
+ import {
48
+ readSessionEntriesForId
49
+ } from "./chunk-6UINWWS6.js";
50
+ import {
51
+ filterEntriesToActivePath
52
+ } from "./chunk-W6GROXXM.js";
53
+ import {
54
+ foldDecisionBoard
55
+ } from "./chunk-I2DWJ4GM.js";
56
+ import {
57
+ createTomlFileReader,
58
+ tomlTableAt
59
+ } from "./chunk-LCGCVYZ4.js";
60
+ import {
61
+ describeValidationContract,
62
+ loadValidationContract
63
+ } from "./chunk-V76WTFTW.js";
48
64
  import {
49
65
  classifyProjectPreload
50
66
  } from "./chunk-JVCV3ICN.js";
@@ -52,6 +68,18 @@ import {
52
68
  compileGlobRegex,
53
69
  normalizeGlobInput
54
70
  } from "./chunk-VG7TBQIY.js";
71
+ import {
72
+ decisionRef
73
+ } from "./chunk-54X7T7DK.js";
74
+ import {
75
+ ceilChars
76
+ } from "./chunk-NZMNUPZZ.js";
77
+ import {
78
+ INTEROP_AGENT_KINDS
79
+ } from "./chunk-KXDSS5WJ.js";
80
+ import {
81
+ BusChannels
82
+ } from "./chunk-F4EKGO4N.js";
55
83
  import {
56
84
  computeFingerprintCached,
57
85
  isStale
@@ -66,20 +94,12 @@ import {
66
94
  import {
67
95
  enumerateWorkspaceFiles
68
96
  } from "./chunk-33YXPOE3.js";
69
- import {
70
- ceilChars
71
- } from "./chunk-CWVRRIEI.js";
72
- import {
73
- INTEROP_AGENT_KINDS
74
- } from "./chunk-IHXBNWMM.js";
75
- import {
76
- BusChannels
77
- } from "./chunk-F4EKGO4N.js";
78
97
  import {
79
98
  require_dist
80
99
  } from "./chunk-APJ265NV.js";
81
100
  import {
82
101
  clioDataDir,
102
+ clioStateDir,
83
103
  resolveClioDirs
84
104
  } from "./chunk-BYP5D4HI.js";
85
105
  import {
@@ -2998,126 +3018,6 @@ function normalizeRepoPath(sourceRoot, candidate) {
2998
3018
  return rel.split("\\").join("/");
2999
3019
  }
3000
3020
 
3001
- // src/domains/context/wiki/plan.ts
3002
- init_esm_shims();
3003
- var WIKI_DEPTH_STRATEGY = {
3004
- simple: { areaDepth: 1, areaShare: 0.08, minAreaLines: 400 },
3005
- medium: { areaDepth: 2, areaShare: 0.03, minAreaLines: 250 },
3006
- detailed: { areaDepth: 3, areaShare: 8e-3, minAreaLines: 150 }
3007
- };
3008
- var MAX_PAGE_SOURCES = 8;
3009
- function areaForPath(path, maxDepth) {
3010
- const directories = path.split("/").filter(Boolean).slice(0, -1);
3011
- if (directories.length === 0) return ".";
3012
- return directories.slice(0, Math.max(1, maxDepth)).join("/");
3013
- }
3014
- function classifyDepth(sourceFiles, sourceLines) {
3015
- if (sourceFiles <= 150 && sourceLines <= 3e4) return "simple";
3016
- if (sourceFiles <= 800 && sourceLines <= 15e4) return "medium";
3017
- return "detailed";
3018
- }
3019
- function slugSegment(segment) {
3020
- const slug = segment.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
3021
- return slug.length > 0 ? slug : "section";
3022
- }
3023
- function areaSegments(area) {
3024
- const parts = area.split("/").filter((part) => part.length > 0 && part !== ".");
3025
- if (parts.length === 0) return ["root"];
3026
- if (parts[0] !== "src") return parts;
3027
- return parts.length === 1 ? ["source"] : parts.slice(1);
3028
- }
3029
- function pagePathForArea(area) {
3030
- return `${areaSegments(area).map(slugSegment).join("/")}.md`;
3031
- }
3032
- function titleForArea(area) {
3033
- const name2 = areaSegments(area).join(" ").replace(/[-_]+/g, " ").trim();
3034
- return name2.length > 0 ? name2.charAt(0).toUpperCase() + name2.slice(1) : "Overview";
3035
- }
3036
- function rankedSources(files) {
3037
- return [...files].sort((a, b) => {
3038
- const roleRank = (file) => file.role === "entry" ? 0 : file.role === "test" ? 2 : 1;
3039
- return roleRank(a) - roleRank(b) || b.loc - a.loc || a.path.localeCompare(b.path);
3040
- }).slice(0, MAX_PAGE_SOURCES).map((file) => file.path);
3041
- }
3042
- function collectAreas(source, areaDepth) {
3043
- const byKey = /* @__PURE__ */ new Map();
3044
- for (const file of source) {
3045
- const key = areaForPath(file.path, areaDepth);
3046
- const area = byKey.get(key) ?? { key, files: [], lines: 0 };
3047
- area.files.push(file);
3048
- area.lines += Math.max(0, file.loc);
3049
- byKey.set(key, area);
3050
- }
3051
- return [...byKey.values()].sort((a, b) => b.lines - a.lines || a.key.localeCompare(b.key));
3052
- }
3053
- function overviewPage(source) {
3054
- const entries = source.filter((file) => file.role === "entry");
3055
- return {
3056
- path: "architecture.md",
3057
- title: "Architecture",
3058
- intent: "Explain what this repository is, its top-level composition, how a request or command flows through it, and where the boundaries between its major areas are.",
3059
- sources: rankedSources(entries.length > 0 ? entries : source),
3060
- status: "pending",
3061
- attempts: 0
3062
- };
3063
- }
3064
- function buildCandidatePlan(codewiki, depth) {
3065
- const source = codewiki.files.filter((file) => file.lang !== "config");
3066
- const totalLines = source.reduce((total, file) => total + Math.max(0, file.loc), 0);
3067
- const { areaDepth, areaShare, minAreaLines } = WIKI_DEPTH_STRATEGY[depth];
3068
- const threshold = Math.max(minAreaLines, Math.floor(totalLines * areaShare));
3069
- const areas = collectAreas(source, areaDepth);
3070
- const included = areas.filter((area) => area.lines >= threshold);
3071
- const selected = included.length > 0 ? included : areas.slice(0, 1);
3072
- const selectedKeys = new Set(selected.map((area) => area.key));
3073
- const extras = /* @__PURE__ */ new Map();
3074
- for (const area of areas) {
3075
- if (selectedKeys.has(area.key)) continue;
3076
- const ancestor = selected.find((candidate) => area.key.startsWith(`${candidate.key}/`));
3077
- const host = ancestor?.key ?? selected[0]?.key;
3078
- if (host === void 0) continue;
3079
- extras.set(host, [...extras.get(host) ?? [], ...area.files]);
3080
- }
3081
- const pages = selected.map((area) => {
3082
- const files = [...area.files, ...extras.get(area.key) ?? []];
3083
- return {
3084
- path: pagePathForArea(area.key),
3085
- title: titleForArea(area.key),
3086
- intent: `Document ${area.key} (${area.files.length} indexed files, ${area.lines} lines): what it owns, its entry points and important symbols, the state and lifecycle invariants it enforces, an upstream caller and a downstream dependency, the focused tests that prove its behavior, and what to watch when editing it.`,
3087
- sources: rankedSources(files),
3088
- status: "pending",
3089
- attempts: 0
3090
- };
3091
- });
3092
- return dedupePagePaths({
3093
- version: 1,
3094
- overview: "",
3095
- pages: [overviewPage(source), ...pages]
3096
- });
3097
- }
3098
- function dedupePagePaths(plan) {
3099
- const seen = /* @__PURE__ */ new Set();
3100
- const pages = [];
3101
- for (const page of plan.pages) {
3102
- let path = page.path;
3103
- let suffix = 2;
3104
- while (seen.has(path)) {
3105
- path = page.path.replace(/\.md$/, `-${suffix}.md`);
3106
- suffix += 1;
3107
- }
3108
- seen.add(path);
3109
- pages.push({ ...page, path });
3110
- }
3111
- return { ...plan, pages };
3112
- }
3113
- function planWikiGeneration(codewiki, requestedDepth = "auto") {
3114
- const source = codewiki.files.filter((file) => file.lang !== "config");
3115
- const sourceFiles = source.length;
3116
- const sourceLines = source.reduce((total, file) => total + Math.max(0, file.loc), 0);
3117
- const depth = requestedDepth === "auto" ? classifyDepth(sourceFiles, sourceLines) : requestedDepth;
3118
- return { requestedDepth, depth, sourceFiles, sourceLines, plan: buildCandidatePlan(codewiki, depth) };
3119
- }
3120
-
3121
3021
  // src/domains/context/wiki/generate.ts
3122
3022
  function progress2(input, event) {
3123
3023
  input.onProgress?.(event);
@@ -3399,6 +3299,7 @@ async function runWikiGenerate(input = { model: "configured-clio-target" }) {
3399
3299
  plan: resolved.plan,
3400
3300
  resumed: resolved.resumed,
3401
3301
  unclaimedAreas: resolved.unclaimedAreas,
3302
+ ...input.decisions ? { decisions: input.decisions } : {},
3402
3303
  gitHead: existingMeta?.gitHead ?? null,
3403
3304
  ...input.onProgress ? { progress: input.onProgress } : {}
3404
3305
  });
@@ -3573,6 +3474,7 @@ async function runContextRefresh(input = {}) {
3573
3474
  wikiResult = await runWikiGenerate({
3574
3475
  cwd,
3575
3476
  mode: "update",
3477
+ ...input.decisions ? { decisions: input.decisions } : {},
3576
3478
  model: input.wikiModel ?? "unresolved-documenter-target",
3577
3479
  ...input.wikiGenerate ? { generate: input.wikiGenerate } : {},
3578
3480
  ...input.onProgress ? { onProgress: input.onProgress } : {}
@@ -3691,6 +3593,10 @@ function collectStartupHints(cwd, options = {}) {
3691
3593
  for (const issue of clio.errors) {
3692
3594
  hints.push(`clio-coder: malformed ${issue.path} ignored: ${issue.error}`);
3693
3595
  }
3596
+ const contract = loadValidationContract(cwd);
3597
+ if (!contract.ok) {
3598
+ hints.push(`clio-coder: validation contract ignored, rigor stays normal: ${describeValidationContract(contract)}`);
3599
+ }
3694
3600
  const state = readClioState(cwd);
3695
3601
  if (!state) return hints;
3696
3602
  if (state.contextSources !== void 0 && adoptionSourcesChanged(state.contextSources, { cwd })) {
@@ -3806,9 +3712,11 @@ function createContextBundle(_context, options = {}) {
3806
3712
  input?.onProgress?.(event);
3807
3713
  };
3808
3714
  try {
3809
- const result = await runContextRefresh(
3810
- input ? { ...input, onProgress: emitProgress } : { onProgress: emitProgress }
3811
- );
3715
+ const result = await runContextRefresh({
3716
+ ...input,
3717
+ ...input?.wiki ? { decisions: input.decisions ?? await currentDecisions(_context) } : {},
3718
+ onProgress: emitProgress
3719
+ });
3812
3720
  const cwd = input?.cwd ?? process.cwd();
3813
3721
  contextState.invalidate(cwd);
3814
3722
  if (cwd === lastCwd) startupHints = collectStartupHints(cwd, options);
@@ -3829,9 +3737,11 @@ function createContextBundle(_context, options = {}) {
3829
3737
  input?.onProgress?.(event);
3830
3738
  };
3831
3739
  try {
3832
- return await runWikiGenerate(
3833
- input ? { ...input, onProgress: emitProgress } : { model: "configured-clio-target", onProgress: emitProgress }
3834
- );
3740
+ return await runWikiGenerate({
3741
+ ...input ?? { model: "configured-clio-target" },
3742
+ decisions: input?.decisions ?? await currentDecisions(_context),
3743
+ onProgress: emitProgress
3744
+ });
3835
3745
  } catch (err) {
3836
3746
  emitProgress({
3837
3747
  phase: "done",
@@ -3860,6 +3770,14 @@ function createContextBundle(_context, options = {}) {
3860
3770
  };
3861
3771
  return { extension, contract };
3862
3772
  }
3773
+ async function currentDecisions(context) {
3774
+ const session = context.getContract("session");
3775
+ const current = session?.current();
3776
+ if (!session || !current) return [];
3777
+ session.flushAppends?.();
3778
+ const read = await readSessionEntriesForId(clioStateDir(), current.id);
3779
+ return foldDecisionBoard(filterEntriesToActivePath(read.entries, session.tree(current.id).leafId ?? void 0));
3780
+ }
3863
3781
 
3864
3782
  // src/domains/context/manifest.ts
3865
3783
  init_esm_shims();
@@ -4060,6 +3978,8 @@ ${page.sources.map((source) => `- ${source}`).join("\n")}` : "No anchor sources
4060
3978
  "## Repository guidance",
4061
3979
  repositoryGuidance(input.cwd)
4062
3980
  ];
3981
+ const decisions = recordedDecisions(input);
3982
+ if (decisions.length > 0) sections.push("# Recorded decisions", "```json", JSON.stringify(decisions, null, 2), "```");
4063
3983
  if (input.seeded) {
4064
3984
  sections.push(
4065
3985
  "## Revision",
@@ -4069,6 +3989,35 @@ ${page.sources.map((source) => `- ${source}`).join("\n")}` : "No anchor sources
4069
3989
  return `${sections.join("\n\n")}
4070
3990
  `;
4071
3991
  }
3992
+ function underSource(path, source) {
3993
+ const root = source.replace(/^\.\//, "").replace(/\/$/, "");
3994
+ const candidate = path.replace(/^\.\//, "");
3995
+ return candidate === root || candidate.startsWith(`${root}/`);
3996
+ }
3997
+ function recordedDecisions(input) {
3998
+ const files = new Set(
3999
+ input.codewiki.files.filter((file) => input.page.sources.some((source) => underSource(file.path, source))).map((file) => file.id)
4000
+ );
4001
+ const symbols = new Set(
4002
+ input.codewiki.symbols.filter((symbol) => files.has(symbol.fileId)).map((symbol) => symbol.name)
4003
+ );
4004
+ return (input.decisions ?? []).flatMap(
4005
+ (entry) => entry.decisions.filter((record) => {
4006
+ if (record.status !== "active") return false;
4007
+ if (symbols.has(record.key)) return true;
4008
+ const paths = [record.rationale ?? "", ...record.alternatives ?? []].join(" ").match(/[\w@./-]+/g) ?? [];
4009
+ return paths.some((path) => input.page.sources.some((source) => underSource(path.replace(/\.$/, ""), source)));
4010
+ }).map((record) => ({
4011
+ ref: decisionRef(entry.interviewId, record.key),
4012
+ key: record.key,
4013
+ value: record.value,
4014
+ alternatives: record.alternatives ?? [],
4015
+ rationale: record.rationale ?? record.source_question ?? "",
4016
+ decidedAt: record.decidedAt,
4017
+ source: record.source ?? (entry.origin === "agent" ? "agent" : "operator")
4018
+ }))
4019
+ ).slice(0, 12);
4020
+ }
4072
4021
 
4073
4022
  export {
4074
4023
  adoptionSnapshotsHash,
@@ -4089,10 +4038,6 @@ export {
4089
4038
  loadProjectRules,
4090
4039
  selectActiveRules,
4091
4040
  assembleWikiTree,
4092
- WIKI_DEPTH_STRATEGY,
4093
- pagePathForArea,
4094
- buildCandidatePlan,
4095
- planWikiGeneration,
4096
4041
  runWikiGenerate,
4097
4042
  runContextRefresh,
4098
4043
  ContextDomainModule,
@@ -4100,4 +4045,4 @@ export {
4100
4045
  buildWikiPlanPrompt,
4101
4046
  buildWikiPagePrompt
4102
4047
  };
4103
- //# sourceMappingURL=chunk-SSEYRH53.js.map
4048
+ //# sourceMappingURL=chunk-IZXGRF7P.js.map
@@ -195,16 +195,16 @@ var ansi_styles_default = ansiStyles;
195
195
 
196
196
  // node_modules/chalk/source/vendor/supports-color/index.js
197
197
  init_esm_shims();
198
- import process from "node:process";
198
+ import process2 from "node:process";
199
199
  import os from "node:os";
200
200
  import tty from "node:tty";
201
- function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {
201
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) {
202
202
  const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
203
203
  const position = argv.indexOf(prefix + flag);
204
204
  const terminatorPosition = argv.indexOf("--");
205
205
  return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
206
206
  }
207
- var { env } = process;
207
+ var { env } = process2;
208
208
  var flagForceColor;
209
209
  if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
210
210
  flagForceColor = 0;
@@ -260,7 +260,7 @@ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
260
260
  if (env.TERM === "dumb") {
261
261
  return min;
262
262
  }
263
- if (process.platform === "win32") {
263
+ if (process2.platform === "win32") {
264
264
  const osRelease = os.release().split(".");
265
265
  if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
266
266
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
@@ -504,7 +504,165 @@ var chalk = createChalk();
504
504
  var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
505
505
  var source_default = chalk;
506
506
 
507
+ // src/cli/argv.ts
508
+ init_esm_shims();
509
+ function printError(message, detail) {
510
+ const head = source_default.red("error:");
511
+ process.stderr.write(`${head} ${message}
512
+ `);
513
+ if (detail) process.stderr.write(` ${detail}
514
+ `);
515
+ }
516
+ function printNote(message) {
517
+ process.stderr.write(`${source_default.yellow("note:")} ${message}
518
+ `);
519
+ }
520
+ function printOk(message) {
521
+ process.stdout.write(`${source_default.green("ok:")} ${message}
522
+ `);
523
+ }
524
+ function printHeader(message) {
525
+ process.stdout.write(`${source_default.cyan(message)}
526
+ `);
527
+ }
528
+ function columnWidths(rows) {
529
+ const widths = [];
530
+ for (const row of rows) {
531
+ for (let i = 0; i < row.length; i += 1) {
532
+ widths[i] = Math.max(widths[i] ?? 0, row[i]?.length ?? 0);
533
+ }
534
+ }
535
+ return widths;
536
+ }
537
+ function formatColumnRow(row, widths, gap = 2) {
538
+ return row.map((cell, index) => {
539
+ if (index === row.length - 1) return cell;
540
+ return cell.padEnd((widths[index] ?? cell.length) + gap);
541
+ }).join("").trimEnd();
542
+ }
543
+ function formatColumns(rows, gap = 2) {
544
+ if (rows.length === 0) return "";
545
+ const widths = columnWidths(rows);
546
+ return `${rows.map((row) => formatColumnRow(row, widths, gap)).join("\n")}
547
+ `;
548
+ }
549
+ function parseFlags(argv) {
550
+ const flags = /* @__PURE__ */ new Set();
551
+ const positional = [];
552
+ for (const arg of argv) {
553
+ if (arg.startsWith("--")) flags.add(arg.slice(2));
554
+ else if (arg.startsWith("-") && arg.length > 1) flags.add(arg.slice(1));
555
+ else positional.push(arg);
556
+ }
557
+ return { flags, positional };
558
+ }
559
+ var ROOT_FLAG_TOKENS = /* @__PURE__ */ new Set(["--help", "-h", "--all", "--version", "-v"]);
560
+ var GLOBAL_ONLY_FLAGS = /* @__PURE__ */ new Map([
561
+ ["--api-key", "--api-key <key>"],
562
+ ["--no-context-files", "--no-context-files"],
563
+ ["-nc", "-nc"],
564
+ ["--with-panes", "--with-panes"],
565
+ ["--no-panes", "--no-panes"]
566
+ ]);
567
+ function globalFlagPositionHint(arg, command) {
568
+ const usage = GLOBAL_ONLY_FLAGS.get(arg);
569
+ if (usage === void 0) return null;
570
+ return `${arg} is a global option and must come before the subcommand: clio-coder ${usage} ${command} ...`;
571
+ }
572
+ function unknownGlobalOptionError(arg) {
573
+ const bare = arg.replace(/=.*$/u, "");
574
+ if (bare === "--resume" || bare === "--continue" || bare === "-r" || bare === "-c") {
575
+ return `unknown global option: ${arg}. Sessions are resumed from inside the app: start clio-coder, then type /resume to pick one.`;
576
+ }
577
+ return `unknown global option: ${arg}`;
578
+ }
579
+ function extractGlobalFlags(argv, isSubcommand = () => false) {
580
+ const rest = [];
581
+ let apiKey;
582
+ let noContextFiles = false;
583
+ let noSkills = false;
584
+ let panes;
585
+ const skillPaths = [];
586
+ for (let i = 0; i < argv.length; i++) {
587
+ const arg = argv[i];
588
+ if (arg === void 0) continue;
589
+ if (arg === "--") {
590
+ rest.push(...argv.slice(i + 1));
591
+ break;
592
+ }
593
+ if (!arg.startsWith("-")) {
594
+ rest.push(...argv.slice(i));
595
+ break;
596
+ }
597
+ if (arg === "--acp") {
598
+ rest.push("acp", ...argv.slice(i + 1));
599
+ break;
600
+ }
601
+ if (ROOT_FLAG_TOKENS.has(arg)) {
602
+ rest.push(arg);
603
+ continue;
604
+ }
605
+ if (arg === "--no-context-files" || arg === "-nc") {
606
+ noContextFiles = true;
607
+ continue;
608
+ }
609
+ if (arg === "--no-skills") {
610
+ noSkills = true;
611
+ continue;
612
+ }
613
+ if (arg === "--with-panes" || arg === "--no-panes") {
614
+ panes = arg === "--with-panes" ? "with" : "without";
615
+ continue;
616
+ }
617
+ if (arg === "--api-key" || arg === "--skill") {
618
+ const value = argv[i + 1];
619
+ if (value === void 0 || value.startsWith("-") || isSubcommand(value)) {
620
+ return {
621
+ noContextFiles,
622
+ noSkills,
623
+ skillPaths,
624
+ rest,
625
+ error: `${arg} requires a value`,
626
+ ...apiKey === void 0 ? {} : { apiKey },
627
+ ...panes === void 0 ? {} : { panes }
628
+ };
629
+ }
630
+ if (arg === "--api-key") apiKey = value;
631
+ else skillPaths.push(value);
632
+ i += 1;
633
+ continue;
634
+ }
635
+ return {
636
+ noContextFiles,
637
+ noSkills,
638
+ skillPaths,
639
+ rest,
640
+ error: unknownGlobalOptionError(arg),
641
+ ...apiKey === void 0 ? {} : { apiKey },
642
+ ...panes === void 0 ? {} : { panes }
643
+ };
644
+ }
645
+ return {
646
+ noContextFiles,
647
+ noSkills,
648
+ skillPaths,
649
+ rest,
650
+ ...apiKey === void 0 ? {} : { apiKey },
651
+ ...panes === void 0 ? {} : { panes }
652
+ };
653
+ }
654
+
507
655
  export {
508
- source_default
656
+ source_default,
657
+ printError,
658
+ printNote,
659
+ printOk,
660
+ printHeader,
661
+ columnWidths,
662
+ formatColumnRow,
663
+ formatColumns,
664
+ parseFlags,
665
+ globalFlagPositionHint,
666
+ extractGlobalFlags
509
667
  };
510
- //# sourceMappingURL=chunk-5TSRNF4G.js.map
668
+ //# sourceMappingURL=chunk-JCI2ROMZ.js.map
@@ -2,26 +2,26 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  INTEROP_AGENT_KINDS,
4
4
  interopAgentKind
5
- } from "./chunk-IHXBNWMM.js";
5
+ } from "./chunk-KXDSS5WJ.js";
6
6
  import {
7
7
  readSettings,
8
8
  updateSettings
9
- } from "./chunk-34BHNEE3.js";
9
+ } from "./chunk-GHS5EBTQ.js";
10
10
  import {
11
11
  runCommandVector
12
- } from "./chunk-HJWWJ6IL.js";
12
+ } from "./chunk-TOIVGRUX.js";
13
13
  import {
14
14
  withStateFileLockSync
15
15
  } from "./chunk-IKCO5N3L.js";
16
16
  import {
17
17
  require_dist
18
18
  } from "./chunk-APJ265NV.js";
19
- import {
20
- clioStateDir
21
- } from "./chunk-BYP5D4HI.js";
22
19
  import {
23
20
  safeResourceWrite
24
21
  } from "./chunk-WEPFGWHJ.js";
22
+ import {
23
+ clioStateDir
24
+ } from "./chunk-BYP5D4HI.js";
25
25
  import {
26
26
  __toESM,
27
27
  init_esm_shims
@@ -430,4 +430,4 @@ export {
430
430
  detectInteropAgents,
431
431
  InteropDomainModule
432
432
  };
433
- //# sourceMappingURL=chunk-JWJGP5DQ.js.map
433
+ //# sourceMappingURL=chunk-JEIYHLOR.js.map
@@ -1,13 +1,13 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  runPending
4
- } from "./chunk-DYHAXKHD.js";
4
+ } from "./chunk-GWZNEVM2.js";
5
5
  import {
6
6
  runDoctor
7
- } from "./chunk-QQLGQY2A.js";
7
+ } from "./chunk-2ASED4PZ.js";
8
8
  import {
9
9
  readStateInfo
10
- } from "./chunk-XQRY4DTA.js";
10
+ } from "./chunk-IGLP3ODT.js";
11
11
  import {
12
12
  getVersionInfo
13
13
  } from "./chunk-XPLRXC72.js";
@@ -63,4 +63,4 @@ export {
63
63
  describeUpgradeNotice,
64
64
  LifecycleDomainModule
65
65
  };
66
- //# sourceMappingURL=chunk-F2I26BDK.js.map
66
+ //# sourceMappingURL=chunk-JQLNNIKT.js.map