@iowarp/clio-coder 0.4.2 → 0.4.3

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 (369) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/CONTRIBUTING.md +86 -19
  3. package/README.md +35 -6
  4. package/dist/{acp-TMDQZDIG.js → acp-H2NGRPWO.js} +11 -11
  5. package/dist/{agents-5N5NG3XG.js → agents-TL5LLUQP.js} +54 -53
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-Z5CCBXKQ.js → auth-E5SW4HMS.js} +19 -16
  8. package/dist/{builtins-K6TNDT24.js → builtins-IA7V7FUC.js} +9 -4
  9. package/dist/{chunk-ZW4HH5JJ.js → chunk-2APPQIER.js} +6 -6
  10. package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
  11. package/dist/{chunk-UBRFI4HS.js → chunk-2UG5F4C5.js} +127 -47
  12. package/dist/{chunk-UH632ZYL.js → chunk-2UH2KFUP.js} +2 -2
  13. package/dist/{chunk-3F7VUY77.js → chunk-2VIKGWFZ.js} +2 -2
  14. package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
  15. package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
  16. package/dist/{chunk-2X4RYJTJ.js → chunk-4UVU7BJ5.js} +2 -2
  17. package/dist/{chunk-M2DAX4F6.js → chunk-4WR7VSYB.js} +2 -2
  18. package/dist/{chunk-5KW52TEP.js → chunk-54CBCGIR.js} +5 -5
  19. package/dist/{chunk-3KIPBMUA.js → chunk-5ICU3EUH.js} +2 -2
  20. package/dist/{chunk-77QIVUZB.js → chunk-5MEZN6CB.js} +4 -4
  21. package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
  22. package/dist/{chunk-LJID3DYZ.js → chunk-64I3JVYM.js} +2 -2
  23. package/dist/{chunk-4JDLP6ZS.js → chunk-6PTFB5VS.js} +7 -7
  24. package/dist/{chunk-VN3SHNBN.js → chunk-7DICMOS6.js} +2 -2
  25. package/dist/{chunk-HLAFFSEK.js → chunk-7DRAWPTZ.js} +2 -2
  26. package/dist/chunk-7E7I3WLS.js +3762 -0
  27. package/dist/{chunk-YJISEZKC.js → chunk-7ZYNNDKC.js} +6 -6
  28. package/dist/{chunk-I66ZTYNP.js → chunk-AF4YM7Z4.js} +236 -101
  29. package/dist/{chunk-2HFQNRV3.js → chunk-AX2THNSA.js} +12 -12
  30. package/dist/{chunk-PGF63K6I.js → chunk-B4OAX3SI.js} +65 -3
  31. package/dist/{chunk-W6NIE6OW.js → chunk-B4VEBZKF.js} +3 -3
  32. package/dist/{chunk-JBCS7CRR.js → chunk-BEPZRGGU.js} +10 -10
  33. package/dist/{chunk-XGDPUNND.js → chunk-CE5AX47J.js} +2 -2
  34. package/dist/{chunk-I64IFBLB.js → chunk-DWUOQKRU.js} +17 -10
  35. package/dist/{chunk-DZAW46HP.js → chunk-E3TPLWFX.js} +3 -3
  36. package/dist/{chunk-HIICAHCJ.js → chunk-EKCHAPYA.js} +2 -2
  37. package/dist/{chunk-XE3PCIXH.js → chunk-F5JHEYZM.js} +7 -7
  38. package/dist/{chunk-5PFYMY2V.js → chunk-FTMGRKEF.js} +2 -2
  39. package/dist/{chunk-ZNT2M6TG.js → chunk-G76U63X4.js} +17 -17
  40. package/dist/{chunk-34BHNEE3.js → chunk-GHS5EBTQ.js} +58 -7
  41. package/dist/{chunk-2NHR3NAY.js → chunk-GI7YYQ3F.js} +40 -34
  42. package/dist/{chunk-DYHAXKHD.js → chunk-GWZNEVM2.js} +12 -8
  43. package/dist/chunk-GYV6VZOC.js +26 -0
  44. package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
  45. package/dist/{chunk-W4YEMFBX.js → chunk-HEQY7ZFI.js} +2 -2
  46. package/dist/{chunk-IKOZFYBN.js → chunk-I7ZPNEJM.js} +145 -102
  47. package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
  48. package/dist/{chunk-XQRY4DTA.js → chunk-IGLP3ODT.js} +10 -10
  49. package/dist/chunk-IJNZMHLA.js +101 -0
  50. package/dist/{chunk-JWJGP5DQ.js → chunk-INY6HTFL.js} +7 -7
  51. package/dist/{chunk-PBP4B7XR.js → chunk-IUE3Y34X.js} +2 -2
  52. package/dist/{chunk-B74PXLU7.js → chunk-IWT4SF4R.js} +3 -3
  53. package/dist/{chunk-B7HM5Z7T.js → chunk-JDAY6FIL.js} +5 -5
  54. package/dist/{chunk-PJX3WQUQ.js → chunk-JEQ3XTHC.js} +2 -2
  55. package/dist/{chunk-FSP7CMNU.js → chunk-JGRC33J2.js} +50 -4
  56. package/dist/{chunk-X7IARSHT.js → chunk-JKKCYP3C.js} +9 -9
  57. package/dist/{chunk-HJWWJ6IL.js → chunk-JSC3U7TI.js} +16 -4
  58. package/dist/{chunk-SSEYRH53.js → chunk-KK4JZPBQ.js} +19 -140
  59. package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
  60. package/dist/{chunk-Q4XWMHX6.js → chunk-L47TF46W.js} +2 -2
  61. package/dist/{chunk-O3YUNJZ2.js → chunk-LDJG7DW3.js} +81 -24
  62. package/dist/{chunk-CDNVLKUX.js → chunk-LLDJM5XK.js} +13 -7
  63. package/dist/{chunk-F2I26BDK.js → chunk-MUW2BDDH.js} +4 -4
  64. package/dist/{chunk-HKMD33FO.js → chunk-MWUZBSAQ.js} +79 -76
  65. package/dist/{chunk-QQLGQY2A.js → chunk-N2Z7HLVY.js} +20 -20
  66. package/dist/{chunk-DZEK6CJN.js → chunk-NIQJ66N4.js} +19 -19
  67. package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
  68. package/dist/{chunk-462T4EGZ.js → chunk-O5CVSAG5.js} +2 -2
  69. package/dist/{chunk-TPEQIQIE.js → chunk-OML5D5V5.js} +8 -8
  70. package/dist/{chunk-IKSLQ4XV.js → chunk-PAJQJ7BS.js} +558 -216
  71. package/dist/{chunk-ZW55JB7N.js → chunk-PUVDKJ2Y.js} +2 -2
  72. package/dist/{chunk-UH347SHR.js → chunk-QWGDJJYJ.js} +11 -11
  73. package/dist/chunk-R6Q67RJH.js +134 -0
  74. package/dist/{chunk-CRFOIAX3.js → chunk-RRNP2ANY.js} +6 -6
  75. package/dist/{chunk-IDNA72AH.js → chunk-RSJ25QSL.js} +2 -2
  76. package/dist/chunk-SKHCAU7K.js +385 -0
  77. package/dist/{chunk-RLYRBIYQ.js → chunk-TM6LQDI3.js} +20 -12
  78. package/dist/chunk-UOIZ7DA4.js +41 -0
  79. package/dist/{chunk-P75RZCJW.js → chunk-UPZU6GE4.js} +3 -3
  80. package/dist/{chunk-MCMZMDAC.js → chunk-V2ANDPVT.js} +4 -4
  81. package/dist/{chunk-AK5XEFVZ.js → chunk-VA5FNYMT.js} +26 -13
  82. package/dist/{chunk-IMXMHHMQ.js → chunk-VW6DOEDG.js} +332 -57
  83. package/dist/{chunk-XOXV5GKE.js → chunk-W6RRQCPQ.js} +16 -7
  84. package/dist/{chunk-CYZW7JHJ.js → chunk-WBKFA554.js} +8 -8
  85. package/dist/{chunk-BO7Y52RY.js → chunk-WCXUNS7U.js} +7 -7
  86. package/dist/{chunk-ZGNYYXQ6.js → chunk-WRBAGUNF.js} +3 -3
  87. package/dist/{chunk-FVDGR2ZL.js → chunk-XIVNBFZS.js} +85 -30
  88. package/dist/{chunk-BYMNWQ7O.js → chunk-XPWWI35G.js} +299 -58
  89. package/dist/{chunk-KPXDY6QF.js → chunk-XRZT5WY5.js} +2 -2
  90. package/dist/{chunk-AZ4WMN4W.js → chunk-Y3CBHOR6.js} +2 -2
  91. package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
  92. package/dist/{chunk-54ODD65L.js → chunk-YQWYVTMC.js} +4 -4
  93. package/dist/{chunk-M2WXEHER.js → chunk-ZA4VCIGV.js} +2 -2
  94. package/dist/{chunk-7BHIY2MW.js → chunk-ZDN3Y73Y.js} +6 -6
  95. package/dist/{chunk-E7GT7O5N.js → chunk-ZWPRK62N.js} +7 -4
  96. package/dist/cli/index.js +38 -37
  97. package/dist/{clio-7VB377CC.js → clio-CMMK4KRR.js} +7 -7
  98. package/dist/{code-nav-YVLCYA7V.js → code-nav-MDZNQS33.js} +7 -7
  99. package/dist/{components-UBWCQSRW.js → components-UCUQ4QXW.js} +4 -4
  100. package/dist/{config-4HVOS65E.js → config-SVM5P5YI.js} +76 -74
  101. package/dist/{configure-PIWO7B24.js → configure-LE3IK2TJ.js} +26 -24
  102. package/dist/{context-IYEHL3WQ.js → context-2OHRKS42.js} +66 -63
  103. package/dist/{context-N6ZE3LGJ.js → context-E3VC7RX5.js} +15 -11
  104. package/dist/{context-KQYIWPWT.js → context-VNCR7KAG.js} +60 -45
  105. package/dist/{context-clear-G4OGZJDS.js → context-clear-BW4O37TG.js} +61 -59
  106. package/dist/context-map-COB37XXN.js +505 -0
  107. package/dist/{context-working-set-BWLF6LJP.js → context-working-set-VDS25HXZ.js} +17 -16
  108. package/dist/{dispatch-runner-2QQAITS3.js → dispatch-runner-5AHT53RF.js} +85 -74
  109. package/dist/{doctor-LHBD36VU.js → doctor-WNNVO6FY.js} +37 -37
  110. package/dist/{eval-C45FYRJ6.js → eval-7G7SGAYO.js} +285 -114
  111. package/dist/{eval-inventory-6DEJPLBF.js → eval-inventory-Y6QRFOH5.js} +4 -4
  112. package/dist/{evidence-6SHONYAF.js → evidence-VD6736FQ.js} +63 -62
  113. package/dist/{evolve-KRKMV72X.js → evolve-AL3NGVRL.js} +62 -61
  114. package/dist/{extensions-KPZ2UHBB.js → extensions-MOVJ32NM.js} +7 -7
  115. package/dist/{fleet-IVTCKDHT.js → fleet-QZHUMAGI.js} +110 -108
  116. package/dist/{fleet-commands-EDWL3IT7.js → fleet-commands-BAYT5FJZ.js} +10 -10
  117. package/dist/{fleet-decisions-YP3YEFGK.js → fleet-decisions-IREVMRU4.js} +7 -6
  118. package/dist/{fleet-graph-ZFWKHY2M.js → fleet-graph-YCTT3HTI.js} +19 -18
  119. package/dist/{fleet-inspect-FVUNCBML.js → fleet-inspect-QVJTDAVB.js} +55 -54
  120. package/dist/{fleet-preflight-UN5XED4R.js → fleet-preflight-25QAFPK4.js} +4 -4
  121. package/dist/{fleet-validate-XOWC4HSX.js → fleet-validate-5O57AAJ7.js} +23 -22
  122. package/dist/{fleet-verify-UN3SODEL.js → fleet-verify-CPH2W2T6.js} +56 -55
  123. package/dist/{fleet-view-TWHJKCN6.js → fleet-view-SWBR3VGQ.js} +55 -54
  124. package/dist/{init-T2QORQ3Y.js → init-J477LKZH.js} +78 -76
  125. package/dist/{interop-IN5I2A66.js → interop-3FCM6XLG.js} +11 -11
  126. package/dist/{library-LSCATDLZ.js → library-QUQEIUG6.js} +28 -27
  127. package/dist/{memory-HYOKAGGJ.js → memory-SGGSEP65.js} +64 -63
  128. package/dist/{models-2GPMFYCM.js → models-HEKUAXXK.js} +49 -43
  129. package/dist/{monitor-E4ASVUJH.js → monitor-HKU57TYQ.js} +61 -60
  130. package/dist/{orchestrator-DDMPR3PY.js → orchestrator-VDFAEFAI.js} +919 -546
  131. package/dist/{panes-E3RUXOW5.js → panes-DN2SSFOH.js} +3 -3
  132. package/dist/{panes-IXKLOKA2.js → panes-TALGNPZT.js} +8 -8
  133. package/dist/{paths-L7LGY6RN.js → paths-NBMFAIEZ.js} +5 -5
  134. package/dist/reset-EAJFFJVB.js +344 -0
  135. package/dist/{resources-OTRSN34L.js → resources-OVKSEFVE.js} +27 -20
  136. package/dist/{run-5DEYH5QK.js → run-7DP7ZF2J.js} +113 -109
  137. package/dist/{share-IHWTLO3M.js → share-WML67FT3.js} +26 -25
  138. package/dist/{skills-IYMXMKW4.js → skills-SG662R2K.js} +39 -31
  139. package/dist/{skills-eval-DROHSJAR.js → skills-eval-VVZEUU46.js} +74 -73
  140. package/dist/{skills-inventory-D7X4L4ZX.js → skills-inventory-I2E23GET.js} +21 -20
  141. package/dist/{slash-commands-QBM7UZ3B.js → slash-commands-S7MBJDQK.js} +35 -34
  142. package/dist/{steer-Z5DO23FJ.js → steer-2LQOMCPB.js} +3 -3
  143. package/dist/{support-U7QOWY26.js → support-CC2UJBJ6.js} +6 -6
  144. package/dist/{targets-P2FUC4IL.js → targets-4QC3HIEW.js} +48 -45
  145. package/dist/{terminal-lease-YREJ3JX2.js → terminal-lease-TUHIJ6Y2.js} +2 -2
  146. package/dist/{tools-5B7RO6MV.js → tools-TFGJICCU.js} +8 -8
  147. package/dist/{trace-YMGMUM6A.js → trace-FXMXUZUF.js} +7 -7
  148. package/dist/uninstall-5PEVOE5B.js +408 -0
  149. package/dist/upgrade-M4WXY6KN.js +303 -0
  150. package/dist/{usage-ME5MPXGX.js → usage-N7ZNVLEM.js} +147 -102
  151. package/dist/{verifiers-BVZ7IWOO.js → verifiers-DJTP4XX6.js} +15 -15
  152. package/dist/{verify-5K7ZKQFC.js → verify-RWE4PPEK.js} +9 -9
  153. package/dist/{wiki-generate-F5W5QTYY.js → wiki-generate-C7IQOXSP.js} +84 -82
  154. package/dist/{with-panes-BYOJCLAM.js → with-panes-4GCGSL7J.js} +9 -9
  155. package/dist/worker/entry.js +61 -60
  156. package/docs/architecture/artifact-placement.md +1 -0
  157. package/docs/architecture/artifact-versions.md +1 -1
  158. package/docs/architecture/context-engine.md +4 -0
  159. package/docs/architecture/middleware-and-components.md +1 -1
  160. package/docs/architecture/model-catalog.md +21 -10
  161. package/docs/architecture/observability.md +12 -1
  162. package/docs/architecture/prompt-envelope-and-tools.md +2 -0
  163. package/docs/architecture/provider-adapter-cookbook.md +63 -0
  164. package/docs/architecture/safety-model.md +15 -5
  165. package/docs/guide/built-in-agents.md +17 -3
  166. package/docs/guide/commands-and-modes.md +1 -1
  167. package/docs/guide/configuration-and-targets.md +97 -9
  168. package/docs/guide/configuration-reference.md +7 -2
  169. package/docs/guide/environment-variables.md +2 -0
  170. package/docs/guide/installation-and-lifecycle.md +37 -4
  171. package/docs/guide/proactive-memory.md +66 -55
  172. package/docs/guide/skills-marketplace.md +18 -0
  173. package/docs/process/development-pipeline.md +34 -1
  174. package/docs/process/eval-runner.md +67 -3
  175. package/evals/behavioral-model.yaml +3 -2
  176. package/package.json +2 -2
  177. package/skills/README.md +7 -5
  178. package/skills/coding/ast-grep/SKILL.md +101 -30
  179. package/skills/coding/ast-grep/evals.md +26 -0
  180. package/skills/coding/coding-standards/SKILL.md +40 -5
  181. package/skills/coding/coding-standards/evals.md +23 -0
  182. package/skills/coding/prototype/SKILL.md +87 -28
  183. package/skills/coding/prototype/evals.md +19 -0
  184. package/skills/coding/tdd/SKILL.md +80 -53
  185. package/skills/coding/tdd/evals.md +20 -0
  186. package/skills/context/context-handoff/SKILL.md +43 -2
  187. package/skills/context/context-handoff/evals.md +44 -0
  188. package/skills/context/context-prime/SKILL.md +45 -15
  189. package/skills/context/context-prime/evals.md +45 -0
  190. package/skills/git/branch-closeout/SKILL.md +132 -0
  191. package/skills/git/branch-closeout/evals.md +133 -0
  192. package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
  193. package/skills/git/file-ticket/SKILL.md +77 -63
  194. package/skills/git/file-ticket/assets/issue-template.md +22 -0
  195. package/skills/git/file-ticket/evals.md +31 -26
  196. package/skills/git/file-ticket/references/issue-discovery.md +49 -0
  197. package/skills/git/fix-issue/SKILL.md +87 -64
  198. package/skills/git/fix-issue/evals.md +35 -31
  199. package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
  200. package/skills/git/resolve-merge-conflicts/SKILL.md +100 -51
  201. package/skills/git/resolve-merge-conflicts/evals.md +52 -25
  202. package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
  203. package/skills/git/ship/SKILL.md +103 -67
  204. package/skills/git/ship/assets/pr-template.md +21 -0
  205. package/skills/git/ship/evals.md +44 -28
  206. package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
  207. package/skills/git/worktree-create/SKILL.md +80 -50
  208. package/skills/git/worktree-create/evals.md +40 -33
  209. package/skills/git/worktree-create/references/worktree-setup.md +62 -66
  210. package/skills/git/worktree-merge/SKILL.md +112 -65
  211. package/skills/git/worktree-merge/evals.md +42 -34
  212. package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
  213. package/skills/planning/archify/SKILL.md +196 -0
  214. package/skills/planning/archify/evals.md +65 -0
  215. package/skills/planning/architecture/SKILL.md +61 -12
  216. package/skills/planning/architecture/evals.md +65 -0
  217. package/skills/planning/backlog/SKILL.md +130 -14
  218. package/skills/planning/backlog/evals.md +142 -0
  219. package/skills/planning/prd/SKILL.md +46 -6
  220. package/skills/planning/prd/evals.md +54 -0
  221. package/skills/planning/product-intent/SKILL.md +57 -2
  222. package/skills/planning/product-intent/evals.md +70 -0
  223. package/skills/planning/tech-spec/SKILL.md +53 -2
  224. package/skills/planning/tech-spec/evals.md +73 -0
  225. package/skills/registry.yaml +58 -50
  226. package/skills/remote.yaml +13 -0
  227. package/skills/research/arxiv-literature/SKILL.md +76 -18
  228. package/skills/research/arxiv-literature/evals.md +50 -0
  229. package/skills/research/experiment-protocol/SKILL.md +20 -1
  230. package/skills/research/experiment-protocol/evals.md +23 -0
  231. package/skills/research/scientific-debugging/SKILL.md +23 -1
  232. package/skills/research/scientific-debugging/evals.md +18 -0
  233. package/skills/research/scientific-modernization/SKILL.md +26 -1
  234. package/skills/research/scientific-modernization/evals.md +27 -0
  235. package/skills/skill-marketplace.json +63 -28
  236. package/skills/workflow/cut-it/SKILL.md +65 -5
  237. package/skills/workflow/cut-it/evals.md +101 -0
  238. package/skills/workflow/design-council/SKILL.md +117 -27
  239. package/skills/workflow/design-council/evals.md +161 -0
  240. package/skills/workflow/grill-me/SKILL.md +86 -10
  241. package/skills/workflow/grill-me/evals.md +153 -0
  242. package/skills/workflow/workflow-distiller/SKILL.md +76 -17
  243. package/skills/workflow/workflow-distiller/evals.md +118 -0
  244. package/src/cli/configure-interop.ts +105 -13
  245. package/src/cli/configure-oauth.ts +57 -0
  246. package/src/cli/configure-onboarding.ts +980 -0
  247. package/src/cli/configure-target.ts +594 -0
  248. package/src/cli/configure.ts +1082 -528
  249. package/src/cli/context-map.ts +114 -0
  250. package/src/cli/context.ts +4 -0
  251. package/src/cli/index.ts +1 -0
  252. package/src/cli/lifecycle-presenter.ts +436 -0
  253. package/src/cli/models.ts +10 -2
  254. package/src/cli/modes/print.ts +5 -1
  255. package/src/cli/reset.ts +228 -106
  256. package/src/cli/run.ts +7 -2
  257. package/src/cli/select.ts +664 -0
  258. package/src/cli/skills.ts +9 -2
  259. package/src/cli/targets.ts +3 -0
  260. package/src/cli/uninstall.ts +233 -165
  261. package/src/cli/upgrade.ts +204 -149
  262. package/src/cli/usage.ts +86 -27
  263. package/src/cli/validate-model.ts +3 -3
  264. package/src/core/config.ts +56 -0
  265. package/src/core/external-diagnostic.ts +44 -0
  266. package/src/core/gateway-routing.ts +157 -0
  267. package/src/core/safe-exec.ts +17 -2
  268. package/src/core/skill-activation.ts +89 -2
  269. package/src/domains/agents/builtins/world-knowledge.md +31 -0
  270. package/src/domains/agents/catalog.ts +1 -1
  271. package/src/domains/agents/result-contract.ts +70 -0
  272. package/src/domains/context/wiki/map-seed.ts +589 -0
  273. package/src/domains/context/wiki/plan.ts +2 -2
  274. package/src/domains/dispatch/admission.ts +29 -0
  275. package/src/domains/dispatch/agent-candidates.ts +10 -0
  276. package/src/domains/dispatch/budget-envelope.ts +86 -1
  277. package/src/domains/dispatch/capability-match.ts +1 -0
  278. package/src/domains/dispatch/capacity-lease.ts +17 -0
  279. package/src/domains/dispatch/contract.ts +11 -1
  280. package/src/domains/dispatch/extension.ts +134 -29
  281. package/src/domains/dispatch/types.ts +3 -0
  282. package/src/domains/dispatch/worker-model-metadata.ts +38 -0
  283. package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
  284. package/src/domains/eval/metrics/token-stream.ts +201 -31
  285. package/src/domains/eval/metrics/tracked.ts +40 -4
  286. package/src/domains/eval/runners/clio-run.ts +5 -2
  287. package/src/domains/eval/schema/suite.ts +28 -0
  288. package/src/domains/eval/schema/verdict.ts +2 -2
  289. package/src/domains/eval/suites/resolve.ts +13 -1
  290. package/src/domains/eval/suites/run.ts +24 -3
  291. package/src/domains/interop/registry.ts +6 -2
  292. package/src/domains/interop/types.ts +4 -0
  293. package/src/domains/lifecycle/migrations/index.ts +4 -0
  294. package/src/domains/memory/task-memory-policy.ts +70 -26
  295. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  296. package/src/domains/middleware/index.ts +0 -1
  297. package/src/domains/middleware/marketplace-offer.ts +3 -35
  298. package/src/domains/middleware/memory-intervention.ts +127 -32
  299. package/src/domains/middleware/memory-step-endpoint.ts +3 -2
  300. package/src/domains/middleware/skills-reminder.ts +31 -2
  301. package/src/domains/observability/compaction-usage.ts +118 -0
  302. package/src/domains/observability/cost.ts +1 -1
  303. package/src/domains/observability/extension.ts +6 -1
  304. package/src/domains/observability/out-of-turn-usage.ts +52 -21
  305. package/src/domains/providers/contract.ts +4 -1
  306. package/src/domains/providers/extension.ts +40 -9
  307. package/src/domains/providers/model-capabilities.ts +9 -0
  308. package/src/domains/providers/model-discovery.ts +2 -0
  309. package/src/domains/providers/model-runtime-capabilities.ts +15 -5
  310. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +32 -12
  311. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
  312. package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
  313. package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
  314. package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
  315. package/src/domains/providers/support.ts +11 -5
  316. package/src/domains/providers/target-model-cache.ts +25 -2
  317. package/src/domains/providers/types/capability-flags.ts +2 -0
  318. package/src/domains/providers/types/runtime-descriptor.ts +20 -1
  319. package/src/domains/providers/types/target-descriptor.ts +19 -0
  320. package/src/domains/resources/index.ts +3 -0
  321. package/src/domains/resources/skills/install.ts +72 -7
  322. package/src/domains/resources/skills/loader.ts +7 -0
  323. package/src/domains/resources/skills/marketplace.ts +63 -11
  324. package/src/domains/safety/autonomy.ts +15 -0
  325. package/src/domains/safety/index.ts +1 -0
  326. package/src/domains/safety/path-policy.ts +1 -1
  327. package/src/domains/safety/policy-engine.ts +34 -11
  328. package/src/domains/safety/protected-artifacts.ts +191 -88
  329. package/src/domains/safety/run-effects.ts +2 -22
  330. package/src/domains/safety/skill-authority.ts +55 -0
  331. package/src/domains/session/compaction/compact.ts +72 -22
  332. package/src/domains/session/entries.ts +6 -0
  333. package/src/domains/session/usage.ts +3 -3
  334. package/src/engine/agent.ts +13 -3
  335. package/src/engine/ai.ts +26 -8
  336. package/src/engine/antigravity/subprocess-runtime.ts +386 -120
  337. package/src/engine/api-registry.ts +3 -0
  338. package/src/engine/apis/openai-completions.ts +117 -14
  339. package/src/engine/external-subprocess.ts +114 -6
  340. package/src/entry/background-model-metadata.ts +18 -0
  341. package/src/entry/compaction-prompt.ts +57 -0
  342. package/src/entry/orchestrator.ts +405 -216
  343. package/src/entry/task-memory-lifecycle.ts +35 -0
  344. package/src/interactive/chat-loop-messages.ts +13 -4
  345. package/src/interactive/chat-loop.ts +65 -2
  346. package/src/interactive/chat-renderer.ts +1 -0
  347. package/src/interactive/cost-overlay.ts +26 -2
  348. package/src/interactive/interactive-slash-runtime.ts +2 -1
  349. package/src/interactive/renderers/worker-entry.ts +32 -0
  350. package/src/interactive/slash-commands.ts +24 -6
  351. package/src/interactive/theme/labels.ts +19 -13
  352. package/src/interactive/turn-context.ts +9 -5
  353. package/src/interactive/turn-recovery.ts +8 -0
  354. package/src/interactive/turn-runtime.ts +27 -11
  355. package/src/interactive/turn-state.ts +7 -0
  356. package/src/interactive/worker-receipts.ts +1 -0
  357. package/src/interactive/worker-stream.ts +6 -1
  358. package/src/tools/context/index.ts +30 -9
  359. package/src/tools/dispatch-arguments.ts +1 -0
  360. package/src/tools/dispatch-event-text.ts +10 -0
  361. package/src/tools/dispatch-plan.ts +1 -0
  362. package/src/tools/dispatch-runner.ts +12 -0
  363. package/src/tools/registry.ts +11 -5
  364. package/src/tools/worker-evidence.ts +3 -1
  365. package/src/worker/spec-contract.ts +4 -0
  366. package/dist/chunk-2Z2IKEXI.js +0 -1554
  367. package/dist/reset-OAQP3W4O.js +0 -230
  368. package/dist/uninstall-N34PCTGJ.js +0 -331
  369. package/dist/upgrade-PXK3S2YM.js +0 -325
package/CHANGELOG.md CHANGED
@@ -2,6 +2,41 @@
2
2
 
3
3
  All notable changes to Clio Coder are documented in this file. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and versions follow Semantic Versioning; pre-1.0 minor releases may include incompatible changes.
4
4
 
5
+ ## 0.4.3 - 2026-09-05
6
+
7
+ This release adds Archify architecture maps and experimental Antigravity research delegation, and tightens thinking controls, session memory, compaction and execution evidence. Usage and cost reports retain explicit coverage limits; full evidence reconciliation is deferred to v0.4.5 or later.
8
+
9
+ ### Added
10
+ - Remote marketplace entries. `skills/remote.yaml` lists skills whose content lives in another repository at a pinned ref; `npm run skills:pin` publishes each into `skills/skill-marketplace.json` with `origin: "remote"`, the upstream tree as `sourceUrl`, the catalog `overlay` package whose files land on top of the clone at install, and the upstream top-level members to `exclude`. The overlay `SKILL.md` is pinned in `skills/registry.yaml`, so `skills:check` fails on its drift. Install stages the fetched tree, applies the exclusions and the overlay, validates the shaped result, and swaps it in atomically; discovery lets an overlay-bearing index entry win over its own catalog folder, and `clio-coder skills update` re-applies the same shaping. Contract: `tests/contracts/skill-remote-entries.test.ts`.
11
+ - The `archify` skill (`skills/planning/archify/`), a remote entry pinned to `tt-a1i/archify` v2.16.0: validated interactive architecture, workflow, sequence, dataflow, and lifecycle diagrams as standalone HTML from a typed JSON spec. Clio ships only the wrapper `SKILL.md` and `evals.md`; the renderer, schemas, and brand-mark notices come from upstream at install time and never enter the npm tarball. The wrapper adds Clio's placement rule (`.clio-coder/artifacts/maps/`), the repository-evidence flow through `clio-coder context map`, and `verify(check="frontend")` after `deliver`, and omits upstream's update-awareness step because it performs a network request during a chat turn.
12
+ - `clio-coder context map [--out <path>] [--json]` writes an archify architecture seed from the codewiki index with no model call: components are the largest directory areas (capped at 12, plus at most three external packages), connections are import edges collapsed area to area, and `meta.repository` is recorded only for a GitHub origin at a full revision; only then do components carry `sources`, each citing an indexed file and its first symbol's line, since archify accepts citations only against a pinned revision. Placement is layered with explicit routes for archify's standard profile; composition warnings may still need operator edits. Pass `--repo-root .` when the seed carries pinned repository evidence. It refuses, naming `clio-coder context index`, when no index exists. Contract: `tests/contracts/context-map-seed.test.ts`.
13
+ - `.clio-coder/artifacts/maps/` is a placement class (human transient) in `docs/architecture/artifact-placement.md`; `docs/guide/skills-marketplace.md` documents remote entries and overlays with archify as the worked example, and `docs/architecture/context-engine.md` documents the seed's guarantees.
14
+ - A distinct, permanently read-only `world-knowledge` shadow agent handles current open-world discovery, ecosystem comparisons, broad external context, and advisory second opinions. Its compact result contract separates supported facts and source identifiers from synthesis, uncertainties, and follow-up verification, and it reports honestly when native discovery/search is unavailable instead of treating URL retrieval as search or fabricating citations.
15
+ - Reusable `branch-closeout` Git skill (`skills/git/branch-closeout/`) for proving merged work on canonical remotes, inspecting dirty or ignored worktree state, safely removing registered worktrees through Git, deleting local branches, optionally removing contributor fork branches, and auditing surviving repository references.
16
+
17
+ ### Changed
18
+ - The local and hosted CI gate checks skill pins once through lint, removing the duplicate explicit pass. The full contract/smoke, trace-viewer and release-package checks remain in place; contributor guidance distinguishes focused checks from the complete release gate.
19
+ - The existing `context.compaction.model` and `context.compaction.systemPrompt` overrides now take effect. An explicit model must uniquely resolve to an available, eligible summary route; invalid choices fail visibly instead of silently using chat. Custom UTF-8 prompt files are reread at compaction time, must be nonempty regular files of at most 65,536 bytes, and resolve relative paths against the session workspace. Unset controls retain the active chat route and built-in prompt; checkpoints record the selected usage route while older checkpoints remain readable (#324).
20
+ - Antigravity external delegation remains experimental and now uses a bounded external-agent subprocess boundary: it is dispatch-only, uses the operator's existing `agy` session, sends literal prompts over structured stdin, accepts only a valid one-terminal stream, bounds and redacts all external output, runs with an allowlisted environment, cancels the POSIX process group, and attributes receipts to external delegation rather than the Gemini API. Its non-generating live `{id,label}` catalog is authoritative and round-trips through the generic model snapshot; failures distinguish missing CLI, sign-in, required CLI update, unavailable catalog, and disappeared configured models. Clio records per-tool recipe budgets as unobserved/not enforced inside the external one-shot loop and never automatically retries a generating run.
21
+ - First-run onboarding can offer **Antigravity CLI — experimental local delegation** only after a valid primary target exists. The optional step never changes chat/background pointers or enables dangerous full access; it can create a `world-knowledge-external` fleet profile and bind `world-knowledge`. Noninteractive `configure` gains `--bind-agent <agentId>` alongside `--agent-profile`, and model/target listings preserve live labels and source/freshness.
22
+ - Hardened the entire Git skill suite under `skills/git/` (`file-ticket`, `fix-issue`, `ship`, `worktree-create`, `worktree-merge`, `resolve-merge-conflicts`). Added formal argument contracts with structural parsing; made workflow bodies project-agnostic without hardcoding repos, remotes, or branch names while preserving the canonical-main-only policy in `CONTRIBUTING.md`; required confirmation before every outward ticket action including duplicate issue comments; decoupled unsupported RCA automation claims from `fix-issue`; separated `ship` into explicit `commit`, `pr`, maintainer-local, and `closeout` modes; corrected rebase ours/theirs reversal semantics and added conflict matrices covering binary, rename, modify/delete, and lockfile conflicts; supported configurable roots, safe path derivation, and strategy controls in worktree operations; and expanded evals across all skills.
23
+ - Branch and worktree closeout is now an explicit final development step: prove the merged result, inspect local state, remove registered worktrees through Git, delete local scaffolding, and report every surviving branch, stash, local-only tag, and canonical remote head. The canonical repository keeps only `main`: maintainer topic and compact release-candidate branches such as `v043` stay local, contributors submit branches from their forks, and dotted names such as `v0.4.3` are reserved for immutable release tags.
24
+
25
+ ### Fixed
26
+ - Dedicated memory, compaction and native worker admission now discover cold LiteLLM target metadata before resolving thinking controls; sharing a gateway URL with chat no longer hides a missing target probe. Memory keeps discovery within its existing cancellation/deadline boundary, rechecks known endpoint capacity at actual launch, and does not turn cancelled metadata into endpoint failure. Compaction now sends its intended thinking-off request through the simple stream API. Workers keep their approved route and reservation while discovery runs within the invocation's cancellation and admission deadline; late cancelled metadata cannot launch a worker. Unknown runtime declarations remain unguessed.
27
+ - Failed or empty compaction now retains known per-stream usage in the existing out-of-turn ledger, including a successful first stream before a failed or empty second split response. Rows retain the originating session and selected route, distinguish completed/error/aborted calls, and keep missing or ambiguous zero usage unknown. For completed compactions, the checkpoint remains the sole durable accounting source; checkpoint-write ambiguity fails visibly without speculative double counting. Usage reports expose known and errored subtotals with missing coverage, and live successful accounting follows the selected compaction route. Adapter prices remain estimates, and existing numeric cost ceilings bound known spending only. Usage reports read the retained failed-compaction records; eval totals and live /cost reseeding do not yet reconcile that out-of-turn store.
28
+ - Thinking controls now survive LiteLLM parameter filtering for declared upstream runtimes. Unanimous per-alias LM Studio metadata selects its explicit off effort, while llama.cpp keeps template controls; only a legitimately resolved effort is added to the gateway request allowance. Gateway routing, authentication and residency stay unchanged, unknown/mixed declarations are not guessed, and returned reasoning is not hidden. Qwen3.8 exposes off/low/medium/xhigh; released high/max choices normalize to xhigh without changing saved preferences or confusing the vendor template default with Clio defaults.
29
+ - Proactive memory prefers its dedicated configured route and can use the active chat model when that route is unavailable, including a shared reasoning model with thinking requested off. A dedicated client error permits one fallback within the original remaining deadline; cancellation, scope changes, timeouts and model output do not trigger retries. Known usage and telemetry remain separate for each attempted route. Memory now consults existing endpoint capacity evidence and observed foreground/dispatch occupancy instead of treating every shared URL as a busy one-slot server; LiteLLM retains gateway routing authority. Unset memory roles stay rules-only, and fallback selection does not change saved settings.
30
+ - Context map seeds now keep distinct directory areas, external packages, and connections identifiable when readable IDs collide. Collision suffixes preserve other existing readable IDs, and internal and external imports with matching names retain their own destinations and counts.
31
+ - Active project and user skill trees now remain operator-owned for both main-agent and worker tool admissions, including full-auto. Direct mutations, recognized shell mutation and Clio installation commands (including `skills sync` and confirmed `library add --yes` with skill dependencies), ancestor deletion, and current symlink aliases are refused even when general default path protections are disabled. Literal shell comments and redirection targets cannot masquerade as help/version arguments to bypass that guard. Quoted search patterns remain read-only, and literal operator filenames do not hide later mutation operands. Unconfirmed library plans remain available. Marketplace matches now require the existing bound operator answer before installation at every autonomy level; operator CLI, hub and slash installation/update workflows remain available. Draft skills outside active roots. Shell command inspection remains a bounded guard rather than an operating-system sandbox; arbitrary programs, dynamic expansions, aliases and concurrent filesystem changes still require supervision (#300).
32
+ - Native session and eval call timing now starts before each provider stream invocation, so TTFT and API duration include the request's wait for response headers and later tool-loop calls have their own clocks. Empty output does not manufacture TTFT. Historical timing values remain unchanged; stdout-only fallback timing still starts at the provider's message-start event and must not be compared as complete request latency.
33
+ - Eval now exposes observed provider terminal reasons, retry phases, and errored-call known usage subtotals for opt-in health gates (#278). Known failed-call spend stays in total accounting, and repeated retry countdown frames do not inflate attempt counts. Missing, partial, or ambiguous all-zero failed usage remains explicitly incomplete; stream cost can reflect adapter pricing and does not certify billing. Recovered tasks keep the existing default pass policy, and retries hidden inside a runtime remain unobserved. Reported failed reasoning remains separate from output/total tokens; an ambiguous adapter estimate is not promoted to provider-reported usage.
34
+ - Completed parallel dispatch receipts keep their sealed ledger status while finalization waits for durable persistence. Heartbeat reconciliation no longer regresses a finished run to running, stale, or dead during ledger lock contention; active workers still receive normal stall detection. Batch host checks and receipt digest verification retain their existing semantics.
35
+ - Eval first-call TTFT now reports `{ value: null, source: "estimated" }` when timing is absent, preserving a measured zero as `{ value: 0, source: "ledger" }`. The first call is selected by its recorded timestamp across session ledgers. Stream fallback measures only observed output after a call start and leaves missing timing absent. Verdict consumers must handle nullable TTFT; historical numeric artifacts remain readable without rewriting (#277).
36
+ - Headless runs that recover from a provider failure with a successful tool-only artifact completion no longer retain the earlier error and fail evaluation despite producing the required artifact. Terminal errors, failed artifacts, cancellation, and shutdown still fail truthfully; recovered runs retain their failure history and reported spend (#275).
37
+ - Transient task memory and its observer state now reset on explicit session and branch switches, including same-session `/tree` navigation. Late background completions cannot mutate the successor bank, deliver reminders, or propose durable memory. Reported usage keeps its originating session identity without inflating the successor's live cost. Ordinary forward turns and compaction retain continuity; abort-ignoring transports may still finish, but their stale content is discarded (#323).
38
+ - Eval tracked token and model-call totals no longer double-count assistant calls recorded by both the native runner's session ledger and stdout fold (#276). Tracked metrics prefer durable assistant-call facts, including timing and cache provenance, and fall back to stream calls when no durable calls exist; durable compaction and tool records remain included. Compaction usage intentionally makes tracked totals differ from stdout-only totals. Artifacts record source counts and warn when observed counts differ or an external runner mixes sources. Partial or mixed ledgers can still omit stream-only calls, and fork-inherited history is not reconciled: no shared call identity proves overlap or complete coverage, so these cases must not be treated as reconciled run totals. Full reconciliation across session, stdout, fork and out-of-turn evidence is deferred to v0.4.5 or later. This release exposes count-based diagnostics but does not automatically reject cost or efficiency comparisons on incomplete evidence.
39
+
5
40
  ## 0.4.2 - 2026-09-02
6
41
 
7
42
  ### Added
package/CONTRIBUTING.md CHANGED
@@ -32,12 +32,21 @@ Local and GitHub PR gate (fast, deterministic):
32
32
  npm run ci
33
33
  ```
34
34
 
35
+ This runs type checking, lint (including boundaries, documentation drift and
36
+ skill pins), one build, the contract/smoke suite, and the trace-viewer suite.
37
+ Use `npm run skills:check` when checking skill pins on their own; it is already
38
+ included in `lint` and `ci`.
39
+
35
40
  Release gate (for maintainers before tags or release artifacts):
36
41
 
37
42
  ```bash
38
43
  npm run ci:release
39
44
  ```
40
45
 
46
+ The release gate includes `ci` and adds the package audit. Running `ci` again
47
+ on the same unchanged tree is unnecessary. Run a focused regression while
48
+ developing a repair, then the full gate for the candidate being reviewed.
49
+
41
50
  Live provider validation (manual/opt-in, after `npm run build`):
42
51
 
43
52
  ```bash
@@ -74,22 +83,34 @@ below together with `.github/workflows/release.yml` and
74
83
  [v0.4.1 release-cut checklist](docs/history/release-cut-checklist.md) is a
75
84
  historical record, not a reusable current checklist.
76
85
 
77
- 1. During development, keep the top changelog section at `## Unreleased` and
78
- bump `version` in `package.json` when opening the release branch. Before the
79
- cut, retitle that section `## <version> - YYYY-MM-DD`.
80
- 2. Run `npm run ci:release`. It runs the full `ci` gate, then
81
- `scripts/check-release.mjs`, which verifies the built `dist/` and audits
82
- the exact npm package contents.
83
- 3. Land the release commit on `main`. There is no need to wait on the `ci`
84
- workflow before tagging: the release workflow runs the same gate itself.
85
- 4. Tag and push: `git tag -a vX.Y.Z && git push origin vX.Y.Z`. The tag must
86
- match `package.json`'s version; the release workflow refuses mismatches.
87
- 5. `.github/workflows/release.yml` verifies the tag against `package.json`,
88
- runs `npm run ci:release` on the tagged tree, and creates the GitHub
89
- release with the tarball attached and the version's `CHANGELOG.md` section
90
- as the body. It does not publish to npm.
91
- 6. A maintainer publishes from the tagged commit with `npm publish`;
86
+ 1. During development, keep the top changelog section at `## Unreleased`. A
87
+ maintainer collects release work on a **local-only** compact candidate
88
+ branch (`v043` for `v0.4.3`) and bumps `version` there. Never push this
89
+ candidate branch to the canonical repository. Before the cut, retitle the
90
+ changelog section `## <version> - YYYY-MM-DD`.
91
+ 2. Run `npm run ci:release` on the exact candidate. It runs the full `ci` gate,
92
+ then `scripts/check-release.mjs`, which verifies the built `dist/` and
93
+ audits the exact npm package contents.
94
+ 3. Fetch `origin`, require the fetched `origin/main` to be the candidate's
95
+ ancestor, then fast-forward local `main` with `git merge --ff-only v043`.
96
+ Re-run the release gate if the candidate changed and verify local `main`
97
+ equals the reviewed candidate SHA.
98
+ 4. Fetch once more and stop on unexpected movement. With explicit maintainer
99
+ authorization, push only `refs/heads/main:refs/heads/main`; no topic or
100
+ release-candidate branch is pushed to canonical `origin`.
101
+ 5. Require CI for that exact `main` SHA to pass. Create the annotated tag on
102
+ that commit and push only it: `git tag -a v0.4.3` followed by
103
+ `git push origin refs/tags/v0.4.3`. The tag must match `package.json`; the
104
+ release workflow refuses mismatches.
105
+ 6. `.github/workflows/release.yml` verifies the tag against `package.json`,
106
+ runs `npm run ci:release` on the tagged tree, and creates the GitHub release
107
+ with the tarball attached and the version's `CHANGELOG.md` section as the
108
+ body. It does not publish to npm.
109
+ 7. A maintainer publishes from the tagged commit with `npm publish`;
92
110
  `prepublishOnly` runs the same `ci:release` gate in release mode first.
111
+ 8. Verify the release and tag, then delete the local compact candidate branch.
112
+ The canonical remote returns to its steady state: `main` plus immutable
113
+ release tags and GitHub releases, with no release branch.
93
114
 
94
115
  What `scripts/check-release.mjs` enforces, and how to respond when it fails:
95
116
 
@@ -105,7 +126,7 @@ What `scripts/check-release.mjs` enforces, and how to respond when it fails:
105
126
  - Runtime resources must resolve from the installed package root: prompt
106
127
  fragments, builtin agents, model catalogs, the Markdown guides in `docs/`, the 128px logo,
107
128
  and `damage-control-rules.yaml`. A new runtime resource must be listed in
108
- both package.json `files` and the required list in `check-release.mjs`.
129
+ both package.json `files` and `scripts/release-manifest.json`.
109
130
  The double bookkeeping is deliberate: neither edit can silently drop a
110
131
  resource the CLI needs at runtime.
111
132
  - Size budgets: 10 MB tarball, 50 MB unpacked, set in `check-release.mjs`.
@@ -122,14 +143,22 @@ that needs them runs.
122
143
 
123
144
  ## Hard Rules
124
145
 
125
- 1. Do not push to `main`.
126
- 2. Open pull requests against `main`.
127
- 3. `main` requires review by `@akougkas`.
146
+ 1. The canonical repository's only branch is `main`. Maintainer topic,
147
+ integration, and release-candidate branches stay local and are never pushed
148
+ to canonical `origin`.
149
+ 2. Contributors push topic branches to their own forks and open pull requests
150
+ from the fork into canonical `main`; they never push a topic branch to the
151
+ canonical repository.
152
+ 3. A maintainer may update canonical `main` only by an explicitly authorized,
153
+ reviewed fast-forward from the exact locally gated candidate. Everyone else
154
+ changes `main` through a pull request reviewed by `@akougkas`.
128
155
  4. Keep every PR focused. Split unrelated docs, runtime, CLI, and TUI work.
129
156
  5. Update `CHANGELOG.md` for user-visible behavior, developer workflow, or
130
157
  release status changes.
131
158
  6. Run `npm run ci` before requesting review.
132
159
  7. Do not commit secrets, local config, generated `dist/`, or scratch plans.
160
+ 8. Push release tags as fully qualified `refs/tags/vX.Y.Z`; never push a
161
+ similarly named branch.
133
162
 
134
163
  ## Architecture Invariants
135
164
 
@@ -170,6 +199,44 @@ Examples:
170
199
  - `fix/session-resume-replay`
171
200
  - `docs/github-governance`
172
201
 
202
+ Maintainer branches are local-only. A temporary release candidate uses the
203
+ compact version spelling with no dots: `v043` for release tag `v0.4.3`. Never
204
+ create or push a branch named `v0.4.3`; dotted `vX.Y.Z` names belong exclusively
205
+ to immutable release tags. The compact branch is local scaffolding and is
206
+ deleted after its reviewed commit reaches `main` and the release succeeds.
207
+
208
+ Contributors use the same topic prefixes in their own forks. The pull request
209
+ head is `<contributor-fork>:<topic>` and its base is canonical `main`. Delete
210
+ the fork branch after merge so both the canonical repository and contributor
211
+ forks return to a small steady state.
212
+
213
+ ### Branch closeout
214
+
215
+ Branch and worktree cleanup is part of finishing work, not optional future
216
+ housekeeping. Use `branch-closeout` (or `ship closeout`) to automate this
217
+ verification and teardown safely. After a PR is merged or a release is tagged:
218
+
219
+ 1. Fetch and prune remote-tracking refs, then verify the PR is merged and its
220
+ result is represented on `origin/main`. An ancestry check is sufficient for
221
+ merge commits; squash and cherry-pick landings require the merged PR and
222
+ resulting commit as evidence rather than a matching subject alone.
223
+ 2. Confirm the source worktree has no tracked or untracked work worth keeping.
224
+ Remove a registered worktree with `git worktree remove <path>`, never
225
+ `rm -rf`; use `--force` only after explicitly authorizing disposal of the
226
+ remaining local artifacts.
227
+ 3. Delete the local topic or release branch. For a contributor PR, delete its
228
+ branch from the contributor's fork after merge. A topic branch must never be
229
+ created on canonical `origin`, and canonical `main` is never deleted.
230
+ 4. Preserve unfinished experiments by filing their result and next decision in
231
+ an issue, not by accumulating anonymous `work/`, `wip/`, or `tmp` refs.
232
+ 5. Report the remaining local branches, worktrees, stashes, local-only tags,
233
+ and canonical remote heads. The expected canonical head set is exactly
234
+ `refs/heads/main`; every additional head is a cleanup failure.
235
+
236
+ For a release, first verify `refs/tags/vX.Y.Z^{commit}` equals the reviewed
237
+ commit on `main`, then close the compact candidate branch such as `v043`.
238
+ Published tags are never deleted, moved, or recreated during cleanup.
239
+
173
240
  ## Commits
174
241
 
175
242
  Use concise conventional subjects:
package/README.md CHANGED
@@ -138,7 +138,13 @@ The complete interactive and CLI reference is
138
138
  Clio stores each model connection as a named **target**: runtime, endpoint,
139
139
  model, credentials, and any verified capability overrides. Interactive chat,
140
140
  proactive memory, fleet defaults, and individual worker profiles can route
141
- independently.
141
+ independently. A LiteLLM target keeps the gateway in charge of physical routing,
142
+ authentication, and backend residency; distinct model routes can share one URL.
143
+ Set `context.memory.target` and `context.memory.model` to opt into a dedicated
144
+ memory model. Unset memory roles remain rules-only; a configured route can fall
145
+ back to active chat when unavailable and request capacity permits.
146
+ `context.compaction.model` selects a dedicated summary model; leaving it unset
147
+ uses active chat. An invalid explicit compaction model fails visibly.
142
148
 
143
149
  | Target family | Supported routes |
144
150
  | --- | --- |
@@ -147,7 +153,7 @@ independently.
147
153
  | Cloud APIs | OpenAI, Anthropic, Google, Groq, Mistral, DeepSeek, OpenRouter, Amazon Bedrock |
148
154
  | Institutional gateways | Argonne ALCF Sophia and Metis over Globus OAuth |
149
155
  | Subscriptions | ChatGPT Plus/Pro through `openai-codex`; Claude Pro/Max through `anthropic-max` |
150
- | Worker integrations | Claude SDK, Claude Code, Google Antigravity, and configured ACP agents |
156
+ | Worker integrations | Claude SDK, Claude Code, experimental Google Antigravity delegation, and configured ACP agents |
151
157
 
152
158
  The interactive wizard is the easiest path:
153
159
 
@@ -222,11 +228,24 @@ directory. See [Context Engine](docs/architecture/context-engine.md),
222
228
  [Proactive Memory](docs/guide/proactive-memory.md) for the detailed contracts.
223
229
 
224
230
  The local skills marketplace may offer a matching shipped skill during a
225
- request. Promotion installs are restricted to Clio's own catalog or this
226
- repository and do not activate the skill automatically. Manual installs remain
227
- available for a source you deliberately choose. See
231
+ request. Every promotion install requires an explicit bound operator answer,
232
+ including in full-auto. Promotion installs retain their catalog source gate,
233
+ and installation does not activate the skill. Active
234
+ project and user skill trees are operator-owned: main and worker tool admissions
235
+ refuse direct and recognized shell mutations. Draft skill changes outside those
236
+ roots, then use the operator's installation or update workflow. This bounded
237
+ command inspection does not confine arbitrary programs or dynamic shell paths.
238
+ Manual installs remain available for a source you deliberately choose. See
228
239
  [Skills Marketplace](docs/guide/skills-marketplace.md).
229
240
 
241
+ For a repository architecture map, run `clio-coder context index` followed by
242
+ `clio-coder context map`. The latter writes a deterministic JSON seed from the
243
+ index's directory areas and imports. The operator-installed `archify` remote
244
+ skill validates and delivers the interactive diagram; Clio ships its wrapper
245
+ and pinned install metadata, while the renderer comes from upstream. Source
246
+ citations require a pinned GitHub revision. Validation can still report
247
+ composition warnings that need human edits.
248
+
230
249
  ## Delegate with bounds
231
250
 
232
251
  Clio's orchestrator can send focused assignments to worker agents instead of
@@ -289,6 +308,16 @@ clio-coder trace phases <run-id>
289
308
  clio-coder trace tail <run-id>
290
309
  ```
291
310
 
311
+ `clio-coder usage report` preserves known failed-compaction spending and labels
312
+ missing coverage. Adapter prices are estimates, and numeric spending ceilings
313
+ bound the known sum; absent telemetry does not prove a call was free. Eval's
314
+ provider-health checks are opt-in and separate from task success. Partial or
315
+ mixed session/stdout evidence and inherited fork history are not reconciled;
316
+ full reconciliation is deferred to v0.4.5 or later, and 0.4.3 does not add an
317
+ automatic cost-comparison rejection. See the
318
+ [Eval Runner](docs/process/eval-runner.md#token-accounting--provenance) for source
319
+ and timing limits.
320
+
292
321
  Evidence helps you audit a run; it does not prove that generated code is
293
322
  scientifically correct. Domain validation, reference results, and human review
294
323
  remain part of the job. The detailed boundaries are in
@@ -354,7 +383,7 @@ clio-coder --version
354
383
  From source, pinned to this version:
355
384
 
356
385
  ```bash
357
- git clone --branch v0.4.2 https://github.com/iowarp/clio-coder.git
386
+ git clone --branch v0.4.3 https://github.com/iowarp/clio-coder.git
358
387
  cd clio-coder
359
388
  npm ci
360
389
  npm run install:local
@@ -6,32 +6,32 @@ import {
6
6
  } from "./chunk-2VTFPG5O.js";
7
7
  import {
8
8
  runClioCommand
9
- } from "./chunk-2HFQNRV3.js";
10
- import "./chunk-M2DAX4F6.js";
11
- import "./chunk-ZTJUVLTU.js";
9
+ } from "./chunk-AX2THNSA.js";
10
+ import "./chunk-4WR7VSYB.js";
12
11
  import "./chunk-I7XBWTYH.js";
13
- import "./chunk-ZW55JB7N.js";
12
+ import "./chunk-PUVDKJ2Y.js";
13
+ import "./chunk-ZTJUVLTU.js";
14
14
  import {
15
15
  printError
16
16
  } from "./chunk-VPKWYKEY.js";
17
17
  import "./chunk-5TSRNF4G.js";
18
- import "./chunk-34BHNEE3.js";
18
+ import "./chunk-GHS5EBTQ.js";
19
19
  import "./chunk-D7E7WCDF.js";
20
- import {
21
- MAX_TIMER_DELAY_MS
22
- } from "./chunk-EBY63B7G.js";
23
20
  import "./chunk-IWHMRKLL.js";
24
21
  import "./chunk-UXCU4E3T.js";
25
22
  import "./chunk-LL4KHSZI.js";
26
23
  import "./chunk-S66XZJOF.js";
27
- import "./chunk-WNP7O5WZ.js";
24
+ import {
25
+ MAX_TIMER_DELAY_MS
26
+ } from "./chunk-EBY63B7G.js";
27
+ import "./chunk-ID64D7PE.js";
28
28
  import "./chunk-336NSSKI.js";
29
29
  import "./chunk-IKCO5N3L.js";
30
30
  import "./chunk-3I7MS7N2.js";
31
31
  import "./chunk-APJ265NV.js";
32
- import "./chunk-BYP5D4HI.js";
33
32
  import "./chunk-WEPFGWHJ.js";
34
33
  import "./chunk-YXLYO42X.js";
34
+ import "./chunk-BYP5D4HI.js";
35
35
  import {
36
36
  init_esm_shims
37
37
  } from "./chunk-3R73A4XB.js";
@@ -127,4 +127,4 @@ async function runAcpCommand(args, options = {}) {
127
127
  export {
128
128
  runAcpCommand
129
129
  };
130
- //# sourceMappingURL=acp-TMDQZDIG.js.map
130
+ //# sourceMappingURL=acp-H2NGRPWO.js.map
@@ -1,87 +1,88 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  SafetyDomainModule
4
- } from "./chunk-54ODD65L.js";
5
- import "./chunk-F2I26BDK.js";
6
- import "./chunk-DYHAXKHD.js";
7
- import "./chunk-QQLGQY2A.js";
8
- import {
9
- ensureClioState
10
- } from "./chunk-XQRY4DTA.js";
11
- import "./chunk-3KIPBMUA.js";
4
+ } from "./chunk-YQWYVTMC.js";
5
+ import "./chunk-MUW2BDDH.js";
6
+ import "./chunk-GWZNEVM2.js";
7
+ import "./chunk-5ICU3EUH.js";
12
8
  import {
13
9
  ConfigDomainModule,
14
10
  loadDomains
15
- } from "./chunk-CYZW7JHJ.js";
16
- import "./chunk-3M6DQK6S.js";
17
- import "./chunk-M2DAX4F6.js";
18
- import "./chunk-4O6MANBS.js";
19
- import "./chunk-LCGCVYZ4.js";
20
- import "./chunk-RVG5JXAL.js";
21
- import "./chunk-3DPEIQKN.js";
11
+ } from "./chunk-WBKFA554.js";
12
+ import "./chunk-4WR7VSYB.js";
22
13
  import {
23
14
  AgentsDomainModule
24
- } from "./chunk-P75RZCJW.js";
25
- import "./chunk-CRFOIAX3.js";
15
+ } from "./chunk-UPZU6GE4.js";
16
+ import "./chunk-RRNP2ANY.js";
26
17
  import "./chunk-DR52UMZW.js";
27
- import "./chunk-O3YUNJZ2.js";
28
- import "./chunk-NDDGJUXD.js";
29
- import "./chunk-XGDPUNND.js";
30
- import "./chunk-3F7VUY77.js";
18
+ import "./chunk-RVG5JXAL.js";
19
+ import "./chunk-2VIKGWFZ.js";
31
20
  import "./chunk-RKKLTLYB.js";
32
- import "./chunk-HLAFFSEK.js";
33
- import "./chunk-77QIVUZB.js";
21
+ import "./chunk-N2Z7HLVY.js";
22
+ import {
23
+ ensureClioState
24
+ } from "./chunk-IGLP3ODT.js";
25
+ import "./chunk-3M6DQK6S.js";
26
+ import "./chunk-LCGCVYZ4.js";
27
+ import "./chunk-LDJG7DW3.js";
28
+ import "./chunk-NDDGJUXD.js";
29
+ import "./chunk-CE5AX47J.js";
30
+ import "./chunk-3DPEIQKN.js";
31
+ import "./chunk-7DRAWPTZ.js";
32
+ import "./chunk-5MEZN6CB.js";
33
+ import "./chunk-NEKRRTYW.js";
34
+ import "./chunk-INY6HTFL.js";
35
+ import "./chunk-I7XBWTYH.js";
36
+ import "./chunk-PUVDKJ2Y.js";
37
+ import "./chunk-4O6MANBS.js";
38
+ import {
39
+ printError
40
+ } from "./chunk-VPKWYKEY.js";
41
+ import "./chunk-5TSRNF4G.js";
34
42
  import "./chunk-5PSMVOLM.js";
35
- import "./chunk-QSNYB6ZV.js";
36
- import "./chunk-QDC3K2U3.js";
37
- import "./chunk-IDNA72AH.js";
38
- import "./chunk-FVDGR2ZL.js";
39
- import "./chunk-VN3SHNBN.js";
40
- import "./chunk-FSP7CMNU.js";
43
+ import "./chunk-RSJ25QSL.js";
44
+ import "./chunk-XIVNBFZS.js";
45
+ import "./chunk-7DICMOS6.js";
41
46
  import "./chunk-HHV2GANA.js";
42
47
  import {
43
48
  isUserVisibleAgent
44
- } from "./chunk-PGF63K6I.js";
45
- import "./chunk-IKOZFYBN.js";
49
+ } from "./chunk-B4OAX3SI.js";
50
+ import "./chunk-I7ZPNEJM.js";
51
+ import "./chunk-GYV6VZOC.js";
46
52
  import "./chunk-UL3WSD3F.js";
47
53
  import "./chunk-ECH6PKUQ.js";
48
54
  import "./chunk-5B2AEOW5.js";
55
+ import "./chunk-QSNYB6ZV.js";
56
+ import "./chunk-JGRC33J2.js";
49
57
  import "./chunk-K6BSR66V.js";
50
- import "./chunk-XPLRXC72.js";
51
- import "./chunk-NEKRRTYW.js";
52
- import "./chunk-JWJGP5DQ.js";
53
- import "./chunk-I7XBWTYH.js";
54
- import "./chunk-ZW55JB7N.js";
55
- import {
56
- printError
57
- } from "./chunk-VPKWYKEY.js";
58
- import "./chunk-5TSRNF4G.js";
59
- import "./chunk-72GZI5EV.js";
60
- import "./chunk-MQXIVJ35.js";
58
+ import "./chunk-QDC3K2U3.js";
59
+ import "./chunk-2JH2WHGE.js";
60
+ import "./chunk-HAXOFFRH.js";
61
61
  import "./chunk-R346GLFC.js";
62
- import "./chunk-PMZVFWSR.js";
63
- import "./chunk-BTK3SSSK.js";
64
- import "./chunk-IHXBNWMM.js";
65
- import "./chunk-34BHNEE3.js";
62
+ import "./chunk-KXDSS5WJ.js";
63
+ import "./chunk-GHS5EBTQ.js";
66
64
  import "./chunk-D7E7WCDF.js";
67
- import "./chunk-HJWWJ6IL.js";
65
+ import "./chunk-BTK3SSSK.js";
66
+ import "./chunk-PMZVFWSR.js";
68
67
  import "./chunk-F4EKGO4N.js";
69
- import "./chunk-JIEGK6UF.js";
70
- import "./chunk-EBY63B7G.js";
71
- import "./chunk-6EJMN2Y3.js";
68
+ import "./chunk-XPLRXC72.js";
72
69
  import "./chunk-IWHMRKLL.js";
73
70
  import "./chunk-UXCU4E3T.js";
74
71
  import "./chunk-LL4KHSZI.js";
72
+ import "./chunk-JSC3U7TI.js";
75
73
  import "./chunk-S66XZJOF.js";
76
- import "./chunk-WNP7O5WZ.js";
74
+ import "./chunk-JIEGK6UF.js";
75
+ import "./chunk-EBY63B7G.js";
76
+ import "./chunk-6EJMN2Y3.js";
77
+ import "./chunk-ID64D7PE.js";
77
78
  import "./chunk-336NSSKI.js";
78
79
  import "./chunk-IKCO5N3L.js";
79
80
  import "./chunk-3I7MS7N2.js";
80
81
  import "./chunk-APJ265NV.js";
81
- import "./chunk-BYP5D4HI.js";
82
82
  import "./chunk-WEPFGWHJ.js";
83
83
  import "./chunk-NUGM5KR6.js";
84
84
  import "./chunk-YXLYO42X.js";
85
+ import "./chunk-BYP5D4HI.js";
85
86
  import {
86
87
  init_esm_shims
87
88
  } from "./chunk-3R73A4XB.js";
@@ -141,4 +142,4 @@ function renderLine(spec) {
141
142
  export {
142
143
  runAgentsCommand
143
144
  };
144
- //# sourceMappingURL=agents-5N5NG3XG.js.map
145
+ //# sourceMappingURL=agents-TL5LLUQP.js.map