@iowarp/clio-coder 0.4.1 → 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 (604) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/CONTRIBUTING.md +142 -52
  3. package/README.md +434 -473
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-ZILU3AUO.js → acp-H2NGRPWO.js} +12 -12
  6. package/dist/{agents-HYWGBGQR.js → agents-TL5LLUQP.js} +56 -55
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-N3QT7CBO.js → auth-E5SW4HMS.js} +23 -21
  9. package/dist/builtins-IA7V7FUC.js +22 -0
  10. package/dist/{chunk-7RY5VZPH.js → chunk-2APPQIER.js} +8 -8
  11. package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
  12. package/dist/{chunk-JA5QWE4Z.js → chunk-2UG5F4C5.js} +1973 -1664
  13. package/dist/{chunk-5YHDIDBP.js → chunk-2UH2KFUP.js} +2 -2
  14. package/dist/{chunk-CTJ4RNAA.js → chunk-2VIKGWFZ.js} +2 -2
  15. package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
  16. package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
  17. package/dist/chunk-3EBYEESD.js +314 -0
  18. package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
  19. package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
  20. package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
  21. package/dist/chunk-4UVU7BJ5.js +39 -0
  22. package/dist/{chunk-VKRH2TCS.js → chunk-4WR7VSYB.js} +2 -2
  23. package/dist/{chunk-BBTJOK6Y.js → chunk-54CBCGIR.js} +5 -5
  24. package/dist/{chunk-AP73CFDC.js → chunk-5ICU3EUH.js} +2 -2
  25. package/dist/chunk-5MEZN6CB.js +1334 -0
  26. package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
  27. package/dist/{chunk-ABLSQ6JX.js → chunk-64I3JVYM.js} +8 -2
  28. package/dist/{chunk-AFKWHWXF.js → chunk-6PTFB5VS.js} +39 -22
  29. package/dist/{chunk-VN3SHNBN.js → chunk-7DICMOS6.js} +2 -2
  30. package/dist/chunk-7DRAWPTZ.js +360 -0
  31. package/dist/chunk-7E7I3WLS.js +3762 -0
  32. package/dist/{chunk-BJGUKIG4.js → chunk-7ZYNNDKC.js} +7 -7
  33. package/dist/{chunk-XKA2ICR3.js → chunk-AF4YM7Z4.js} +652 -252
  34. package/dist/{chunk-GVQJ5CCZ.js → chunk-AX2THNSA.js} +12 -12
  35. package/dist/{chunk-IG7BCQBA.js → chunk-B4OAX3SI.js} +65 -3
  36. package/dist/{chunk-TD3PGPQA.js → chunk-B4VEBZKF.js} +3 -3
  37. package/dist/{chunk-74YWRRU5.js → chunk-BEPZRGGU.js} +10 -10
  38. package/dist/{chunk-FEFIFZTL.js → chunk-CE5AX47J.js} +2 -2
  39. package/dist/{chunk-UAPGZHYC.js → chunk-DWUOQKRU.js} +25 -11
  40. package/dist/{chunk-THYWACCR.js → chunk-E3TPLWFX.js} +3 -3
  41. package/dist/{chunk-7EPLI7VL.js → chunk-EKCHAPYA.js} +2 -2
  42. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  43. package/dist/{chunk-PJJ6MY27.js → chunk-F5JHEYZM.js} +7 -7
  44. package/dist/{chunk-6CCS4G3W.js → chunk-FTMGRKEF.js} +3 -3
  45. package/dist/{chunk-SINK3QR6.js → chunk-G76U63X4.js} +17 -17
  46. package/dist/{chunk-EIMVLWB3.js → chunk-GHS5EBTQ.js} +64 -9
  47. package/dist/{chunk-QMXC4JB7.js → chunk-GI7YYQ3F.js} +187 -1419
  48. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  49. package/dist/{chunk-6HMJX2VU.js → chunk-GWZNEVM2.js} +44 -12
  50. package/dist/chunk-GYV6VZOC.js +26 -0
  51. package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
  52. package/dist/{chunk-UXN6JT4W.js → chunk-HEQY7ZFI.js} +3 -3
  53. package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
  54. package/dist/{chunk-GCSMB2KY.js → chunk-I7ZPNEJM.js} +145 -102
  55. package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
  56. package/dist/{chunk-QTFGO774.js → chunk-IGLP3ODT.js} +29 -16
  57. package/dist/chunk-IJNZMHLA.js +101 -0
  58. package/dist/{chunk-BDPT6GTK.js → chunk-INY6HTFL.js} +7 -7
  59. package/dist/{chunk-PBP4B7XR.js → chunk-IUE3Y34X.js} +2 -2
  60. package/dist/{chunk-6NJQITNH.js → chunk-IWT4SF4R.js} +6 -3
  61. package/dist/{chunk-R23Z6K6I.js → chunk-JDAY6FIL.js} +19 -19
  62. package/dist/chunk-JEQ3XTHC.js +42 -0
  63. package/dist/{chunk-FSP7CMNU.js → chunk-JGRC33J2.js} +50 -4
  64. package/dist/{chunk-TVH4ONAM.js → chunk-JKKCYP3C.js} +10 -10
  65. package/dist/{chunk-HJWWJ6IL.js → chunk-JSC3U7TI.js} +16 -4
  66. package/dist/{chunk-C537JADH.js → chunk-KK4JZPBQ.js} +19 -141
  67. package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
  68. package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
  69. package/dist/{chunk-6DWBAZ5U.js → chunk-L47TF46W.js} +5 -7
  70. package/dist/{chunk-HUAS7ITX.js → chunk-LDJG7DW3.js} +91 -42
  71. package/dist/{chunk-CDNVLKUX.js → chunk-LLDJM5XK.js} +13 -7
  72. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  73. package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
  74. package/dist/{chunk-VKFQTNDV.js → chunk-MUW2BDDH.js} +4 -4
  75. package/dist/{chunk-E67WX76H.js → chunk-MWUZBSAQ.js} +104 -152
  76. package/dist/{chunk-OJTRZGR3.js → chunk-N2Z7HLVY.js} +21 -21
  77. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  78. package/dist/{chunk-FYUN5KZ3.js → chunk-NIQJ66N4.js} +21 -21
  79. package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
  80. package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
  81. package/dist/{chunk-VEGN6WIQ.js → chunk-O5CVSAG5.js} +3 -3
  82. package/dist/{chunk-MOPSG2X7.js → chunk-OML5D5V5.js} +8 -8
  83. package/dist/{chunk-2VG7KLYV.js → chunk-PAJQJ7BS.js} +5816 -3255
  84. package/dist/{chunk-ZW55JB7N.js → chunk-PUVDKJ2Y.js} +2 -2
  85. package/dist/{chunk-BTGG6BG2.js → chunk-QWGDJJYJ.js} +158 -19
  86. package/dist/chunk-R6Q67RJH.js +134 -0
  87. package/dist/{chunk-ZJLUDYFY.js → chunk-RRNP2ANY.js} +6 -6
  88. package/dist/{chunk-PVAMAVBB.js → chunk-RSJ25QSL.js} +102 -2
  89. package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
  90. package/dist/chunk-SKHCAU7K.js +385 -0
  91. package/dist/chunk-SZAA6XDG.js +30 -0
  92. package/dist/{chunk-J4HBWF6Y.js → chunk-TM6LQDI3.js} +131 -28
  93. package/dist/chunk-UOIZ7DA4.js +41 -0
  94. package/dist/{chunk-MA3H6DM5.js → chunk-UPZU6GE4.js} +25 -3
  95. package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
  96. package/dist/{chunk-N5UK64DP.js → chunk-V2ANDPVT.js} +4 -4
  97. package/dist/{chunk-AK5XEFVZ.js → chunk-VA5FNYMT.js} +26 -13
  98. package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
  99. package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
  100. package/dist/{chunk-QKIFBZKT.js → chunk-VW6DOEDG.js} +497 -81
  101. package/dist/{chunk-SCYB3HA4.js → chunk-W6RRQCPQ.js} +63 -19
  102. package/dist/{chunk-2NM363SV.js → chunk-WBKFA554.js} +10 -10
  103. package/dist/{chunk-R32CLGZ6.js → chunk-WCXUNS7U.js} +82 -21
  104. package/dist/{chunk-GPPB3JBE.js → chunk-WRBAGUNF.js} +3 -3
  105. package/dist/{chunk-IXJT6DCX.js → chunk-XIVNBFZS.js} +85 -30
  106. package/dist/{chunk-UEDMSP56.js → chunk-XPWWI35G.js} +417 -201
  107. package/dist/chunk-XRZT5WY5.js +47 -0
  108. package/dist/{chunk-3QSOM6PA.js → chunk-Y3CBHOR6.js} +2 -2
  109. package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
  110. package/dist/{chunk-AKB4GYDL.js → chunk-YQWYVTMC.js} +5 -5
  111. package/dist/{chunk-6I5ILFOF.js → chunk-ZA4VCIGV.js} +3 -3
  112. package/dist/{chunk-7OBGU7UB.js → chunk-ZDN3Y73Y.js} +12 -18
  113. package/dist/{chunk-3I5NY75V.js → chunk-ZWPRK62N.js} +8 -5
  114. package/dist/cli/index.js +41 -39
  115. package/dist/{clio-IT3G3VQH.js → clio-CMMK4KRR.js} +9 -9
  116. package/dist/{code-nav-RK6S7F6E.js → code-nav-MDZNQS33.js} +89 -21
  117. package/dist/{components-UBWCQSRW.js → components-UCUQ4QXW.js} +4 -4
  118. package/dist/{config-3QZRWZJF.js → config-SVM5P5YI.js} +131 -84
  119. package/dist/{configure-FL7Y3KJF.js → configure-LE3IK2TJ.js} +28 -26
  120. package/dist/{context-5HE7ODYK.js → context-2OHRKS42.js} +69 -64
  121. package/dist/{context-KYQFRVDC.js → context-E3VC7RX5.js} +15 -11
  122. package/dist/{context-XNHL75JV.js → context-VNCR7KAG.js} +93 -65
  123. package/dist/{context-clear-N545L53A.js → context-clear-BW4O37TG.js} +64 -60
  124. package/dist/context-map-COB37XXN.js +505 -0
  125. package/dist/{context-working-set-QHKXSV2F.js → context-working-set-VDS25HXZ.js} +19 -18
  126. package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-5AHT53RF.js} +93 -82
  127. package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
  128. package/dist/{doctor-ZGPEGHIP.js → doctor-WNNVO6FY.js} +48 -47
  129. package/dist/{eval-GXLL44RD.js → eval-7G7SGAYO.js} +287 -115
  130. package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-Y6QRFOH5.js} +4 -4
  131. package/dist/{evidence-HWLBRH3Q.js → evidence-VD6736FQ.js} +67 -64
  132. package/dist/{evolve-FTZBMNVW.js → evolve-AL3NGVRL.js} +65 -62
  133. package/dist/{extensions-VHRBEID7.js → extensions-MOVJ32NM.js} +9 -7
  134. package/dist/{fleet-CKZHJWZJ.js → fleet-QZHUMAGI.js} +114 -111
  135. package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-BAYT5FJZ.js} +10 -10
  136. package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-IREVMRU4.js} +7 -6
  137. package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-YCTT3HTI.js} +22 -19
  138. package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-QVJTDAVB.js} +58 -55
  139. package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-25QAFPK4.js} +4 -4
  140. package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-5O57AAJ7.js} +26 -23
  141. package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-CPH2W2T6.js} +59 -56
  142. package/dist/{fleet-view-WAMJYNDT.js → fleet-view-SWBR3VGQ.js} +58 -55
  143. package/dist/{init-5XQRBOFV.js → init-J477LKZH.js} +82 -79
  144. package/dist/{interop-34TVO25M.js → interop-3FCM6XLG.js} +11 -11
  145. package/dist/{library-3QY6KF57.js → library-QUQEIUG6.js} +30 -27
  146. package/dist/{memory-L4UTIIIW.js → memory-SGGSEP65.js} +67 -64
  147. package/dist/{models-ZVX3QOWE.js → models-HEKUAXXK.js} +53 -46
  148. package/dist/{monitor-CEKVSYTS.js → monitor-HKU57TYQ.js} +63 -60
  149. package/dist/{orchestrator-77BAP6BC.js → orchestrator-VDFAEFAI.js} +1831 -1057
  150. package/dist/{panes-7STHOAUJ.js → panes-DN2SSFOH.js} +5 -5
  151. package/dist/{panes-SHAUIRXY.js → panes-TALGNPZT.js} +29 -14
  152. package/dist/{paths-L7LGY6RN.js → paths-NBMFAIEZ.js} +5 -5
  153. package/dist/reset-EAJFFJVB.js +344 -0
  154. package/dist/{resources-74GKTLSF.js → resources-OVKSEFVE.js} +29 -20
  155. package/dist/{run-HBAUJNNZ.js → run-7DP7ZF2J.js} +120 -115
  156. package/dist/{share-G3APVLVP.js → share-WML67FT3.js} +32 -27
  157. package/dist/{skills-35HHUKCR.js → skills-SG662R2K.js} +41 -31
  158. package/dist/{skills-eval-QN4HSHDC.js → skills-eval-VVZEUU46.js} +78 -77
  159. package/dist/{skills-inventory-J357J34F.js → skills-inventory-I2E23GET.js} +23 -20
  160. package/dist/{slash-commands-JZZCQA32.js → slash-commands-S7MBJDQK.js} +40 -36
  161. package/dist/{steer-XAVHJM22.js → steer-2LQOMCPB.js} +3 -3
  162. package/dist/{support-U7QOWY26.js → support-CC2UJBJ6.js} +6 -6
  163. package/dist/{targets-DSM6CY3M.js → targets-4QC3HIEW.js} +54 -54
  164. package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-TUHIJ6Y2.js} +5 -5
  165. package/dist/{tools-MKNWVPBH.js → tools-TFGJICCU.js} +10 -10
  166. package/dist/{trace-ECQ7TIYZ.js → trace-FXMXUZUF.js} +55 -7
  167. package/dist/uninstall-5PEVOE5B.js +408 -0
  168. package/dist/upgrade-M4WXY6KN.js +303 -0
  169. package/dist/{usage-X52N3IDJ.js → usage-N7ZNVLEM.js} +151 -104
  170. package/dist/{verifiers-EJTVVSMA.js → verifiers-DJTP4XX6.js} +15 -15
  171. package/dist/{verify-YJL6XET2.js → verify-RWE4PPEK.js} +9 -9
  172. package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
  173. package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-C7IQOXSP.js} +89 -86
  174. package/dist/{with-panes-OBOBFIIR.js → with-panes-4GCGSL7J.js} +53 -257
  175. package/dist/worker/entry.js +90 -74
  176. package/docs/README.md +176 -81
  177. package/docs/{acp.md → architecture/acp.md} +36 -20
  178. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  179. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  180. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +27 -23
  181. package/docs/architecture/artifact-versions.md +90 -0
  182. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  183. package/docs/{context-engine.md → architecture/context-engine.md} +29 -25
  184. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  185. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  186. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  187. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  188. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  189. package/docs/{model-catalog.md → architecture/model-catalog.md} +61 -27
  190. package/docs/{observability.md → architecture/observability.md} +38 -14
  191. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  192. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +57 -20
  193. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +99 -25
  194. package/docs/{safety-model.md → architecture/safety-model.md} +35 -20
  195. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  196. package/docs/architecture/time-conventions.md +125 -0
  197. package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
  198. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  199. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  200. package/docs/{built-in-agents.md → guide/built-in-agents.md} +65 -35
  201. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +66 -61
  202. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +323 -297
  203. package/docs/guide/configuration-reference.md +1163 -0
  204. package/docs/{environment-variables.md → guide/environment-variables.md} +33 -28
  205. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
  206. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  207. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
  208. package/docs/{glossary.md → guide/glossary.md} +14 -11
  209. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +81 -17
  210. package/docs/guide/panes-and-files.md +290 -0
  211. package/docs/{proactive-memory.md → guide/proactive-memory.md} +131 -107
  212. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  213. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +25 -3
  214. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  215. package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
  216. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
  217. package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
  218. package/docs/process/development-pipeline.md +152 -0
  219. package/docs/process/documentation-coverage.md +100 -0
  220. package/docs/process/documentation-guide.md +187 -0
  221. package/docs/{eval-runner.md → process/eval-runner.md} +108 -53
  222. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  223. package/docs/{evolution.md → process/evolution.md} +2 -2
  224. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
  225. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  226. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  227. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  228. package/evals/README.md +2 -2
  229. package/evals/behavioral-model.yaml +3 -2
  230. package/package.json +10 -8
  231. package/skills/README.md +52 -41
  232. package/skills/coding/ast-grep/SKILL.md +102 -31
  233. package/skills/coding/ast-grep/evals.md +26 -0
  234. package/skills/coding/coding-standards/SKILL.md +41 -6
  235. package/skills/coding/coding-standards/evals.md +23 -0
  236. package/skills/coding/prototype/SKILL.md +88 -29
  237. package/skills/coding/prototype/evals.md +19 -0
  238. package/skills/coding/tdd/SKILL.md +81 -54
  239. package/skills/coding/tdd/evals.md +20 -0
  240. package/skills/context/context-handoff/SKILL.md +44 -3
  241. package/skills/context/context-handoff/evals.md +44 -0
  242. package/skills/context/context-prime/SKILL.md +46 -16
  243. package/skills/context/context-prime/evals.md +45 -0
  244. package/skills/git/branch-closeout/SKILL.md +132 -0
  245. package/skills/git/branch-closeout/evals.md +133 -0
  246. package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
  247. package/skills/git/file-ticket/SKILL.md +78 -64
  248. package/skills/git/file-ticket/assets/issue-template.md +22 -0
  249. package/skills/git/file-ticket/evals.md +31 -26
  250. package/skills/git/file-ticket/references/issue-discovery.md +49 -0
  251. package/skills/git/fix-issue/SKILL.md +88 -65
  252. package/skills/git/fix-issue/evals.md +35 -31
  253. package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
  254. package/skills/git/resolve-merge-conflicts/SKILL.md +101 -52
  255. package/skills/git/resolve-merge-conflicts/evals.md +52 -25
  256. package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
  257. package/skills/git/ship/SKILL.md +103 -67
  258. package/skills/git/ship/assets/pr-template.md +21 -0
  259. package/skills/git/ship/evals.md +44 -28
  260. package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
  261. package/skills/git/worktree-create/SKILL.md +80 -50
  262. package/skills/git/worktree-create/evals.md +40 -33
  263. package/skills/git/worktree-create/references/worktree-setup.md +62 -66
  264. package/skills/git/worktree-merge/SKILL.md +112 -65
  265. package/skills/git/worktree-merge/evals.md +42 -34
  266. package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
  267. package/skills/meta/clio-coder-dev/SKILL.md +9 -5
  268. package/skills/meta/clio-coder-dev/evals.md +3 -2
  269. package/skills/meta/clio-coder-test/SKILL.md +102 -95
  270. package/skills/meta/clio-coder-test/evals.md +9 -4
  271. package/skills/meta/clio-coder-test/references/harness.md +100 -124
  272. package/skills/meta/clio-coder-test/references/test-map.md +77 -50
  273. package/skills/meta/credentials/SKILL.md +2 -2
  274. package/skills/meta/find-skills/SKILL.md +2 -2
  275. package/skills/meta/herdr/SKILL.md +2 -2
  276. package/skills/meta/skill-craft/SKILL.md +22 -16
  277. package/skills/planning/archify/SKILL.md +196 -0
  278. package/skills/planning/archify/evals.md +65 -0
  279. package/skills/planning/architecture/SKILL.md +62 -13
  280. package/skills/planning/architecture/evals.md +65 -0
  281. package/skills/planning/backlog/SKILL.md +131 -15
  282. package/skills/planning/backlog/evals.md +142 -0
  283. package/skills/planning/prd/SKILL.md +47 -7
  284. package/skills/planning/prd/evals.md +54 -0
  285. package/skills/planning/product-intent/SKILL.md +58 -3
  286. package/skills/planning/product-intent/evals.md +70 -0
  287. package/skills/planning/tech-spec/SKILL.md +54 -3
  288. package/skills/planning/tech-spec/evals.md +73 -0
  289. package/skills/registry.yaml +70 -62
  290. package/skills/remote.yaml +13 -0
  291. package/skills/research/arxiv-literature/SKILL.md +77 -19
  292. package/skills/research/arxiv-literature/evals.md +50 -0
  293. package/skills/research/experiment-protocol/SKILL.md +21 -2
  294. package/skills/research/experiment-protocol/evals.md +23 -0
  295. package/skills/research/scientific-debugging/SKILL.md +24 -2
  296. package/skills/research/scientific-debugging/evals.md +18 -0
  297. package/skills/research/scientific-modernization/SKILL.md +27 -2
  298. package/skills/research/scientific-modernization/evals.md +27 -0
  299. package/skills/skill-marketplace.json +97 -62
  300. package/skills/workflow/cut-it/SKILL.md +66 -6
  301. package/skills/workflow/cut-it/evals.md +101 -0
  302. package/skills/workflow/design-council/SKILL.md +118 -28
  303. package/skills/workflow/design-council/evals.md +161 -0
  304. package/skills/workflow/grill-me/SKILL.md +87 -11
  305. package/skills/workflow/grill-me/evals.md +153 -0
  306. package/skills/workflow/workflow-distiller/SKILL.md +77 -18
  307. package/skills/workflow/workflow-distiller/evals.md +118 -0
  308. package/src/cli/args.ts +2 -2
  309. package/src/cli/bootstrap-generate.ts +1 -1
  310. package/src/cli/config-inspect.ts +65 -12
  311. package/src/cli/configure-interop.ts +105 -13
  312. package/src/cli/configure-oauth.ts +57 -0
  313. package/src/cli/configure-onboarding.ts +980 -0
  314. package/src/cli/configure-target.ts +594 -0
  315. package/src/cli/configure.ts +1082 -532
  316. package/src/cli/context-map.ts +114 -0
  317. package/src/cli/context.ts +4 -0
  318. package/src/cli/docs.ts +22 -14
  319. package/src/cli/doctor-naming.ts +5 -5
  320. package/src/cli/doctor-toolchain.ts +3 -3
  321. package/src/cli/eval.ts +1 -2
  322. package/src/cli/extensions.ts +2 -1
  323. package/src/cli/fleet.ts +1 -1
  324. package/src/cli/index.ts +3 -1
  325. package/src/cli/internal-dispatch.ts +3 -4
  326. package/src/cli/lifecycle-presenter.ts +436 -0
  327. package/src/cli/models.ts +10 -2
  328. package/src/cli/modes/print.ts +5 -1
  329. package/src/cli/panes.ts +19 -5
  330. package/src/cli/reset.ts +228 -106
  331. package/src/cli/run.ts +9 -4
  332. package/src/cli/select.ts +664 -0
  333. package/src/cli/share.ts +5 -1
  334. package/src/cli/skills-eval.ts +3 -3
  335. package/src/cli/skills.ts +9 -2
  336. package/src/cli/targets.ts +5 -6
  337. package/src/cli/trace.ts +55 -4
  338. package/src/cli/uninstall.ts +233 -165
  339. package/src/cli/upgrade.ts +204 -149
  340. package/src/cli/usage.ts +86 -27
  341. package/src/cli/validate-model.ts +3 -3
  342. package/src/cli/wiki-generate.ts +1 -1
  343. package/src/core/artifact-paths.ts +1 -1
  344. package/src/core/bash-exec.ts +131 -86
  345. package/src/core/bus-events.ts +51 -6
  346. package/src/core/config.ts +61 -1
  347. package/src/core/defaults.ts +7 -4
  348. package/src/core/dispatch-outcome.ts +16 -0
  349. package/src/core/external-diagnostic.ts +44 -0
  350. package/src/core/gateway-routing.ts +157 -0
  351. package/src/core/guardrails.ts +10 -49
  352. package/src/core/prompt-hint.ts +9 -0
  353. package/src/core/safe-exec.ts +17 -2
  354. package/src/core/skill-activation.ts +89 -2
  355. package/src/domains/agents/builtins/architect.md +2 -3
  356. package/src/domains/agents/builtins/coder.md +3 -2
  357. package/src/domains/agents/builtins/debugger.md +2 -2
  358. package/src/domains/agents/builtins/documenter.md +2 -2
  359. package/src/domains/agents/builtins/git-master.md +1 -1
  360. package/src/domains/agents/builtins/oracle.md +1 -1
  361. package/src/domains/agents/builtins/provenance.md +1 -1
  362. package/src/domains/agents/builtins/researcher.md +1 -1
  363. package/src/domains/agents/builtins/scout.md +1 -1
  364. package/src/domains/agents/builtins/tester.md +2 -2
  365. package/src/domains/agents/builtins/verifier.md +2 -2
  366. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  367. package/src/domains/agents/builtins/world-knowledge.md +31 -0
  368. package/src/domains/agents/catalog.ts +13 -15
  369. package/src/domains/agents/contract.ts +2 -0
  370. package/src/domains/agents/extension.ts +23 -1
  371. package/src/domains/agents/result-contract.ts +70 -0
  372. package/src/domains/config/keybindings.ts +8 -0
  373. package/src/domains/context/extension.ts +0 -3
  374. package/src/domains/context/wiki/map-seed.ts +589 -0
  375. package/src/domains/context/wiki/plan.ts +2 -2
  376. package/src/domains/context/working-set/path-index.ts +1 -0
  377. package/src/domains/dispatch/admission.ts +29 -0
  378. package/src/domains/dispatch/agent-candidates.ts +10 -0
  379. package/src/domains/dispatch/budget-envelope.ts +86 -1
  380. package/src/domains/dispatch/capability-match.ts +11 -0
  381. package/src/domains/dispatch/capacity-lease.ts +17 -0
  382. package/src/domains/dispatch/contract.ts +11 -1
  383. package/src/domains/dispatch/extension.ts +237 -49
  384. package/src/domains/dispatch/host-verification.ts +435 -39
  385. package/src/domains/dispatch/intent-requirements.ts +10 -0
  386. package/src/domains/dispatch/intent.ts +18 -1
  387. package/src/domains/dispatch/path-scope.ts +235 -24
  388. package/src/domains/dispatch/run-event-journal.ts +4 -15
  389. package/src/domains/dispatch/state.ts +2 -3
  390. package/src/domains/dispatch/transport.ts +45 -21
  391. package/src/domains/dispatch/types.ts +58 -3
  392. package/src/domains/dispatch/worker-model-metadata.ts +38 -0
  393. package/src/domains/eval/artifacts/store.ts +5 -0
  394. package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
  395. package/src/domains/eval/metrics/token-stream.ts +201 -31
  396. package/src/domains/eval/metrics/tracked.ts +40 -4
  397. package/src/domains/eval/runners/clio-run.ts +5 -2
  398. package/src/domains/eval/schema/suite.ts +28 -0
  399. package/src/domains/eval/schema/verdict.ts +2 -2
  400. package/src/domains/eval/store.ts +8 -1
  401. package/src/domains/eval/suites/resolve.ts +13 -1
  402. package/src/domains/eval/suites/run.ts +24 -3
  403. package/src/domains/evidence/trust-status.ts +10 -1
  404. package/src/domains/extensions/contract.ts +15 -1
  405. package/src/domains/extensions/discovery.ts +238 -41
  406. package/src/domains/extensions/extension.ts +105 -6
  407. package/src/domains/extensions/index.ts +24 -0
  408. package/src/domains/extensions/integrity.ts +189 -0
  409. package/src/domains/extensions/manager.ts +17 -1
  410. package/src/domains/extensions/resource-path.ts +27 -0
  411. package/src/domains/extensions/resources.ts +18 -38
  412. package/src/domains/extensions/snapshot-store.ts +39 -0
  413. package/src/domains/extensions/snapshot.ts +180 -0
  414. package/src/domains/extensions/state.ts +385 -57
  415. package/src/domains/extensions/types.ts +118 -1
  416. package/src/domains/interop/registry.ts +6 -2
  417. package/src/domains/interop/types.ts +4 -0
  418. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  419. package/src/domains/lifecycle/migrations/index.ts +6 -0
  420. package/src/domains/lifecycle/naming-resources.ts +19 -4
  421. package/src/domains/lifecycle/naming-yazi.ts +10 -5
  422. package/src/domains/memory/task-memory-policy.ts +70 -26
  423. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  424. package/src/domains/middleware/contract.ts +26 -0
  425. package/src/domains/middleware/extension.ts +24 -24
  426. package/src/domains/middleware/hook-receipts.ts +27 -4
  427. package/src/domains/middleware/hooks-io.ts +65 -32
  428. package/src/domains/middleware/hooks.ts +64 -0
  429. package/src/domains/middleware/index.ts +28 -5
  430. package/src/domains/middleware/marketplace-offer.ts +3 -35
  431. package/src/domains/middleware/memory-intervention.ts +127 -32
  432. package/src/domains/middleware/memory-step-endpoint.ts +3 -2
  433. package/src/domains/middleware/registrations.ts +326 -0
  434. package/src/domains/middleware/runtime.ts +28 -0
  435. package/src/domains/middleware/skills-reminder.ts +31 -2
  436. package/src/domains/middleware/snapshot.ts +20 -7
  437. package/src/domains/mux/contract.ts +38 -0
  438. package/src/domains/mux/detect.ts +6 -13
  439. package/src/domains/mux/index.ts +1 -1
  440. package/src/domains/mux/operations.ts +44 -5
  441. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  442. package/src/domains/mux/yazi/session.ts +53 -4
  443. package/src/domains/mux/yazi/theme.ts +117 -17
  444. package/src/domains/observability/compaction-usage.ts +118 -0
  445. package/src/domains/observability/contract.ts +10 -11
  446. package/src/domains/observability/cost.ts +1 -1
  447. package/src/domains/observability/extension.ts +17 -4
  448. package/src/domains/observability/out-of-turn-usage.ts +52 -21
  449. package/src/domains/observability/projection.ts +14 -90
  450. package/src/domains/observability/trace-store.ts +43 -7
  451. package/src/domains/prompts/compiler.ts +73 -53
  452. package/src/domains/prompts/contract.ts +15 -3
  453. package/src/domains/prompts/extension.ts +97 -9
  454. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
  455. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  456. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  457. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  458. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  459. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  460. package/src/domains/prompts/fragments/operating/skills.md +10 -24
  461. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  462. package/src/domains/providers/contract.ts +4 -1
  463. package/src/domains/providers/extension.ts +40 -9
  464. package/src/domains/providers/index.ts +1 -1
  465. package/src/domains/providers/model-capabilities.ts +9 -0
  466. package/src/domains/providers/model-discovery.ts +2 -0
  467. package/src/domains/providers/model-runtime-capabilities.ts +99 -25
  468. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +699 -114
  469. package/src/domains/providers/runtime-resolution.ts +31 -0
  470. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
  471. package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
  472. package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
  473. package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
  474. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  475. package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
  476. package/src/domains/providers/support.ts +11 -5
  477. package/src/domains/providers/target-model-cache.ts +25 -2
  478. package/src/domains/providers/types/capability-flags.ts +2 -0
  479. package/src/domains/providers/types/cost-provenance.ts +19 -0
  480. package/src/domains/providers/types/local-model-quirks.ts +85 -37
  481. package/src/domains/providers/types/runtime-descriptor.ts +20 -1
  482. package/src/domains/providers/types/target-descriptor.ts +19 -0
  483. package/src/domains/resources/index.ts +3 -0
  484. package/src/domains/resources/skills/install.ts +72 -7
  485. package/src/domains/resources/skills/loader.ts +23 -19
  486. package/src/domains/resources/skills/marketplace.ts +63 -11
  487. package/src/domains/safety/autonomy.ts +15 -0
  488. package/src/domains/safety/call-target.ts +1 -1
  489. package/src/domains/safety/index.ts +1 -0
  490. package/src/domains/safety/loop-detector.ts +7 -4
  491. package/src/domains/safety/path-policy.ts +1 -1
  492. package/src/domains/safety/policy-engine.ts +34 -11
  493. package/src/domains/safety/protected-artifacts.ts +191 -88
  494. package/src/domains/safety/run-effects.ts +2 -22
  495. package/src/domains/safety/skill-authority.ts +55 -0
  496. package/src/domains/session/compaction/compact.ts +72 -22
  497. package/src/domains/session/entries.ts +6 -0
  498. package/src/domains/session/task-board.ts +10 -9
  499. package/src/domains/session/usage.ts +3 -3
  500. package/src/domains/share/archive.ts +164 -7
  501. package/src/engine/acp/server.ts +62 -9
  502. package/src/engine/agent.ts +13 -3
  503. package/src/engine/ai.ts +26 -8
  504. package/src/engine/antigravity/subprocess-runtime.ts +386 -120
  505. package/src/engine/api-registry.ts +3 -0
  506. package/src/engine/apis/llamacpp-residency.ts +3 -4
  507. package/src/engine/apis/lmstudio.ts +3 -3
  508. package/src/engine/apis/ollama-native.ts +6 -6
  509. package/src/engine/apis/openai-completions.ts +145 -39
  510. package/src/engine/apis/output-budget.ts +8 -18
  511. package/src/engine/apis/residency.ts +8 -27
  512. package/src/engine/external-subprocess.ts +114 -6
  513. package/src/engine/gemma-channel-filter.ts +19 -0
  514. package/src/engine/loop-guard.ts +92 -12
  515. package/src/engine/worker-runtime.ts +40 -11
  516. package/src/engine/worker-tools.ts +3 -1
  517. package/src/entry/background-model-metadata.ts +18 -0
  518. package/src/entry/compaction-prompt.ts +57 -0
  519. package/src/entry/extension-hook-sources.ts +28 -0
  520. package/src/entry/extension-reload.ts +309 -0
  521. package/src/entry/orchestrator.ts +464 -251
  522. package/src/entry/task-memory-lifecycle.ts +35 -0
  523. package/src/interactive/application-controller.ts +2 -1
  524. package/src/interactive/bus-notices.ts +8 -1
  525. package/src/interactive/chat-loop-messages.ts +16 -17
  526. package/src/interactive/chat-loop.ts +75 -3
  527. package/src/interactive/chat-panel.ts +36 -13
  528. package/src/interactive/chat-renderer.ts +72 -7
  529. package/src/interactive/cost-overlay.ts +26 -2
  530. package/src/interactive/dispatch-board.ts +6 -11
  531. package/src/interactive/footer/widgets.ts +13 -0
  532. package/src/interactive/interactive-application.ts +39 -4
  533. package/src/interactive/interactive-input-runtime.ts +4 -0
  534. package/src/interactive/interactive-presentation.ts +2 -2
  535. package/src/interactive/interactive-slash-runtime.ts +4 -1
  536. package/src/interactive/overlays/extensions.ts +9 -1
  537. package/src/interactive/overlays/help-reference.ts +13 -0
  538. package/src/interactive/overlays/settings.ts +27 -16
  539. package/src/interactive/panes-runtime.ts +111 -35
  540. package/src/interactive/prompt-cache-identity.ts +88 -0
  541. package/src/interactive/renderers/worker-entry.ts +32 -0
  542. package/src/interactive/slash-commands.ts +153 -20
  543. package/src/interactive/stream-pacing-policy.ts +0 -23
  544. package/src/interactive/theme/labels.ts +19 -13
  545. package/src/interactive/turn-context.ts +39 -20
  546. package/src/interactive/turn-recovery.ts +8 -0
  547. package/src/interactive/turn-runtime.ts +27 -11
  548. package/src/interactive/turn-state.ts +7 -0
  549. package/src/interactive/worker-receipts.ts +1 -0
  550. package/src/interactive/worker-stream.ts +6 -1
  551. package/src/interactive/yazi-bridge.ts +60 -6
  552. package/src/tools/agent-tools.ts +30 -1
  553. package/src/tools/artifact.ts +2 -2
  554. package/src/tools/ask-user.ts +3 -3
  555. package/src/tools/bash.ts +1 -1
  556. package/src/tools/bootstrap.ts +4 -0
  557. package/src/tools/builtin-tool-catalog.ts +52 -22
  558. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  559. package/src/tools/codewiki/code-nav.ts +99 -13
  560. package/src/tools/context/docs-engine.ts +20 -7
  561. package/src/tools/context/index.ts +59 -21
  562. package/src/tools/core-bootstrap.ts +28 -6
  563. package/src/tools/credential-present.ts +1 -2
  564. package/src/tools/dispatch-arguments.ts +6 -1
  565. package/src/tools/dispatch-event-text.ts +10 -0
  566. package/src/tools/dispatch-plan.ts +49 -4
  567. package/src/tools/dispatch-run-events.ts +1 -1
  568. package/src/tools/dispatch-runner.ts +12 -0
  569. package/src/tools/dispatch-schema.ts +338 -0
  570. package/src/tools/dispatch-types.ts +3 -0
  571. package/src/tools/dispatch.ts +9 -254
  572. package/src/tools/ledger.ts +3 -5
  573. package/src/tools/monitor-surface.ts +5 -13
  574. package/src/tools/observation.ts +4 -5
  575. package/src/tools/panes-surface.ts +4 -11
  576. package/src/tools/panes.ts +4 -2
  577. package/src/tools/policy.ts +15 -2
  578. package/src/tools/read.ts +5 -6
  579. package/src/tools/registry.ts +41 -12
  580. package/src/tools/result-shaping.ts +18 -14
  581. package/src/tools/steer-surface.ts +1 -1
  582. package/src/tools/tasks.ts +1 -1
  583. package/src/tools/truncate.ts +6 -5
  584. package/src/tools/verify/surface.ts +6 -12
  585. package/src/tools/web-fetch-surface.ts +1 -3
  586. package/src/tools/worker-evidence.ts +3 -1
  587. package/src/worker/spec-contract.ts +4 -0
  588. package/dist/builtins-UJLMOVOV.js +0 -17
  589. package/dist/chunk-5QIAJV2D.js +0 -48
  590. package/dist/chunk-JZWT5J3Y.js +0 -814
  591. package/dist/chunk-K7VKOLQQ.js +0 -15
  592. package/dist/chunk-PMZCIOCJ.js +0 -25
  593. package/dist/chunk-SUW5DORT.js +0 -819
  594. package/dist/chunk-UOV2BYIW.js +0 -107
  595. package/dist/chunk-WR6U3OVP.js +0 -45
  596. package/dist/chunk-Y45G3AXC.js +0 -1558
  597. package/dist/reset-EOLM7GVE.js +0 -230
  598. package/dist/uninstall-N34PCTGJ.js +0 -331
  599. package/dist/upgrade-H7TOM7YL.js +0 -323
  600. package/docs/artifact-versions.md +0 -67
  601. package/docs/development-pipeline.md +0 -121
  602. package/docs/documentation-coverage.md +0 -46
  603. package/docs/documentation-guide.md +0 -167
  604. package/docs/time-conventions.md +0 -101
@@ -0,0 +1,303 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ detectInstallMethod
4
+ } from "./chunk-UOIZ7DA4.js";
5
+ import {
6
+ listMigrations,
7
+ readMigrationManifest,
8
+ runPending
9
+ } from "./chunk-GWZNEVM2.js";
10
+ import "./chunk-5ICU3EUH.js";
11
+ import {
12
+ readStateInfo
13
+ } from "./chunk-IGLP3ODT.js";
14
+ import "./chunk-3M6DQK6S.js";
15
+ import "./chunk-LCGCVYZ4.js";
16
+ import "./chunk-NDDGJUXD.js";
17
+ import "./chunk-5MEZN6CB.js";
18
+ import {
19
+ createLifecyclePresenter,
20
+ shortenPath
21
+ } from "./chunk-SKHCAU7K.js";
22
+ import "./chunk-2IR2NMPA.js";
23
+ import {
24
+ initializeClioHome
25
+ } from "./chunk-I7XBWTYH.js";
26
+ import "./chunk-PUVDKJ2Y.js";
27
+ import {
28
+ printError
29
+ } from "./chunk-VPKWYKEY.js";
30
+ import "./chunk-5TSRNF4G.js";
31
+ import "./chunk-QSNYB6ZV.js";
32
+ import "./chunk-QDC3K2U3.js";
33
+ import "./chunk-KXDSS5WJ.js";
34
+ import "./chunk-GHS5EBTQ.js";
35
+ import "./chunk-D7E7WCDF.js";
36
+ import {
37
+ getVersionInfo
38
+ } from "./chunk-XPLRXC72.js";
39
+ import "./chunk-IWHMRKLL.js";
40
+ import "./chunk-UXCU4E3T.js";
41
+ import "./chunk-LL4KHSZI.js";
42
+ import "./chunk-S66XZJOF.js";
43
+ import "./chunk-EBY63B7G.js";
44
+ import "./chunk-ID64D7PE.js";
45
+ import "./chunk-336NSSKI.js";
46
+ import "./chunk-IKCO5N3L.js";
47
+ import "./chunk-3I7MS7N2.js";
48
+ import "./chunk-APJ265NV.js";
49
+ import "./chunk-WEPFGWHJ.js";
50
+ import "./chunk-YXLYO42X.js";
51
+ import {
52
+ clioStateDir
53
+ } from "./chunk-BYP5D4HI.js";
54
+ import {
55
+ init_esm_shims
56
+ } from "./chunk-3R73A4XB.js";
57
+
58
+ // src/cli/upgrade.ts
59
+ init_esm_shims();
60
+ import { spawn } from "node:child_process";
61
+ var CHANNELS = ["latest", "beta", "dev"];
62
+ var HELP = `clio-coder upgrade [--dry-run] [--channel=<latest|beta|dev>] [--skip-migrations] [--json]
63
+
64
+ Upgrade Clio Coder and apply pending state migrations. An npm-installed
65
+ binary is reinstalled via npm; a source-checkout install instead prints
66
+ the git-based update steps and never touches the global npm prefix.
67
+
68
+ Flags:
69
+ --dry-run print planned actions without changing anything
70
+ --channel=<chan> npm dist-tag to install (latest|beta|dev). npm installs only.
71
+ --skip-migrations skip migrations after the install step
72
+ --json emit machine-readable JSON output
73
+ --help, -h show this message
74
+ `;
75
+ var SOURCE_UPGRADE_STEPS = ["git pull", "npm run install:local", "hash -r"];
76
+ var SOURCE_UPGRADE_LEAD = "To update the checkout itself, run:";
77
+ function parseUpgradeArgs(argv) {
78
+ let dryRun = false;
79
+ let channel = "latest";
80
+ let skipMigrations = false;
81
+ let help = false;
82
+ let postInstall = false;
83
+ let json = false;
84
+ const toChannel = (value) => {
85
+ if (value === void 0 || !CHANNELS.includes(value)) {
86
+ throw new Error(`--channel must be one of ${CHANNELS.join("|")}, got '${value ?? ""}'`);
87
+ }
88
+ return value;
89
+ };
90
+ for (let i = 0; i < argv.length; i += 1) {
91
+ const arg = argv[i];
92
+ if (arg === void 0 || arg === "upgrade") continue;
93
+ if (arg === "--help" || arg === "-h") help = true;
94
+ else if (arg === "--dry-run") dryRun = true;
95
+ else if (arg === "--skip-migrations") skipMigrations = true;
96
+ else if (arg === "--post-install") postInstall = true;
97
+ else if (arg === "--json") json = true;
98
+ else if (arg.startsWith("--channel=")) channel = toChannel(arg.slice("--channel=".length));
99
+ else if (arg === "--channel") {
100
+ channel = toChannel(argv[i + 1]);
101
+ i += 1;
102
+ } else throw new Error(`unknown upgrade argument: ${arg}`);
103
+ }
104
+ return { dryRun, channel, skipMigrations, help, postInstall, json };
105
+ }
106
+ async function lookUpAvailableVersion(channel, method, noNetwork) {
107
+ const seam = process.env.CLIO_CODER_TEST_UPGRADE_AVAILABLE;
108
+ if (seam) return { asked: true, version: seam === "unreachable" ? null : seam };
109
+ if (noNetwork) return { asked: false, reason: "network checks are disabled" };
110
+ if (method === "source") return { asked: false, reason: "source checkout" };
111
+ try {
112
+ const res = await fetch(`https://registry.npmjs.org/@iowarp/clio-coder/${channel}`, {
113
+ headers: { Accept: "application/json" },
114
+ signal: AbortSignal.timeout(2500)
115
+ });
116
+ if (!res.ok) return { asked: true, version: null };
117
+ const data = await res.json();
118
+ return { asked: true, version: typeof data.version === "string" ? data.version : null };
119
+ } catch {
120
+ return { asked: true, version: null };
121
+ }
122
+ }
123
+ async function runChild(command, args, label) {
124
+ await new Promise((resolve, reject) => {
125
+ const child = spawn(command, [...args], { stdio: ["ignore", "pipe", "pipe"] });
126
+ let tail = "";
127
+ const keepTail = (chunk) => {
128
+ tail = `${tail}${chunk.toString("utf8")}`.slice(-2e3);
129
+ };
130
+ child.stdout?.on("data", keepTail);
131
+ child.stderr?.on("data", keepTail);
132
+ child.on("error", reject);
133
+ child.on("close", (code) => {
134
+ if (code === 0) {
135
+ resolve();
136
+ return;
137
+ }
138
+ const lastLine = tail.trimEnd().split("\n").at(-1) ?? "";
139
+ reject(new Error(`${label} exited with code ${code ?? -1}${lastLine ? `: ${lastLine}` : ""}`));
140
+ });
141
+ });
142
+ }
143
+ async function runNpmInstall(channel) {
144
+ if (process.env.CLIO_CODER_TEST_UPGRADE_FAIL === "npm") {
145
+ throw new Error("npm ERR! 404 Not Found (mock failure)");
146
+ }
147
+ await runChild("npm", ["install", "-g", `@iowarp/clio-coder@${channel}`], "npm install");
148
+ }
149
+ async function runDoctorFixAfterInstall() {
150
+ if (process.env.CLIO_CODER_TEST_UPGRADE_FAIL === "doctor") {
151
+ throw new Error("mock doctor fix failure");
152
+ }
153
+ await runChild("clio-coder", ["doctor", "--fix"], "clio-coder doctor --fix");
154
+ }
155
+ async function runPostInstallUpgrade(opts) {
156
+ const args = ["upgrade", "--post-install", `--channel=${opts.channel}`];
157
+ if (opts.skipMigrations) args.push("--skip-migrations");
158
+ await runChild("clio-coder", args, "clio-coder upgrade --post-install");
159
+ }
160
+ async function runUpgradeCommand(argv) {
161
+ let opts;
162
+ try {
163
+ opts = parseUpgradeArgs(argv);
164
+ } catch (err) {
165
+ printError(err instanceof Error ? err.message : String(err));
166
+ return 2;
167
+ }
168
+ if (opts.help) {
169
+ process.stdout.write(HELP);
170
+ return 0;
171
+ }
172
+ const presenter = createLifecyclePresenter({ json: opts.json });
173
+ presenter.header("Upgrade", "upgrade");
174
+ const before = getVersionInfo().clio;
175
+ const stateDir = clioStateDir();
176
+ const method = detectInstallMethod();
177
+ const methodLabel = method === "source" ? "source checkout" : "npm global";
178
+ presenter.setMethod(methodLabel);
179
+ const noNetwork = Boolean(process.env.CLIO_CODER_TEST_UPGRADE_NO_NETWORK);
180
+ const lookup = await lookUpAvailableVersion(opts.channel, method, noNetwork);
181
+ const availableVersion = lookup.asked ? lookup.version : null;
182
+ presenter.step(`Installation method: ${methodLabel}`);
183
+ presenter.step(`Current version: ${before}`);
184
+ if (availableVersion !== null) presenter.step(`Available version: ${availableVersion}`);
185
+ else if (!lookup.asked) presenter.step(`Available version: not checked (${lookup.reason})`);
186
+ else presenter.step("Available version: unknown (the registry could not be reached)");
187
+ if (method === "npm") presenter.step(`Channel: ${opts.channel}`);
188
+ presenter.step(`State dir: ${shortenPath(stateDir)}`);
189
+ const migrations = listMigrations();
190
+ const migrationIds = migrations.map((m) => m.id);
191
+ const appliedIds = new Set(readMigrationManifest(stateDir).applied);
192
+ const pendingMigrationIds = opts.skipMigrations ? [] : migrationIds.filter((id) => !appliedIds.has(id));
193
+ const recorded = readStateInfo()?.version ?? null;
194
+ const describeRefresh = () => recorded === null ? "state metadata (none recorded)" : recorded === before ? `state metadata (already ${before})` : `state metadata ${recorded} -> ${before}`;
195
+ const versionIsCurrent = (lookup.asked ? lookup.version === before : true) && (recorded === null || recorded === before);
196
+ const hasPendingMigrations = pendingMigrationIds.length > 0;
197
+ if (versionIsCurrent && !hasPendingMigrations) {
198
+ presenter.warn(`Already on ${before}, with no pending migrations. Nothing to do.`);
199
+ if (method === "source") presenter.commandAdvice(SOURCE_UPGRADE_LEAD, SOURCE_UPGRADE_STEPS.join("\n"));
200
+ if (opts.dryRun) presenter.warn("Dry run: no changes made");
201
+ presenter.done("Done");
202
+ return 0;
203
+ }
204
+ if (opts.dryRun) {
205
+ if (method === "source") presenter.commandAdvice(SOURCE_UPGRADE_LEAD, SOURCE_UPGRADE_STEPS.join("\n"));
206
+ else presenter.note(`Would run: npm install -g @iowarp/clio-coder@${opts.channel}`);
207
+ if (opts.skipMigrations) presenter.note("Would skip migrations (--skip-migrations).");
208
+ else if (pendingMigrationIds.length === 0) presenter.note("No pending migrations.");
209
+ else {
210
+ presenter.note(
211
+ `Would apply ${pendingMigrationIds.length} pending migration${pendingMigrationIds.length === 1 ? "" : "s"}:`
212
+ );
213
+ for (const id of pendingMigrationIds) presenter.substep(id, "\u2013");
214
+ }
215
+ presenter.note(`Would refresh ${describeRefresh()}.`);
216
+ presenter.warn("Dry run: no changes made");
217
+ presenter.done("Done");
218
+ return 0;
219
+ }
220
+ if (opts.postInstall) {
221
+ presenter.note("Running post-install checks with the active clio-coder binary.");
222
+ } else if (method === "source") {
223
+ presenter.note("Source checkout: no npm install to run.");
224
+ } else if (noNetwork) {
225
+ presenter.note("CLIO_CODER_TEST_UPGRADE_NO_NETWORK is set; skipping npm install.");
226
+ } else {
227
+ try {
228
+ await runNpmInstall(opts.channel);
229
+ presenter.completedStep(`Installed @iowarp/clio-coder@${opts.channel}`);
230
+ } catch (err) {
231
+ presenter.fail("npm install failed", err instanceof Error ? err.message : String(err));
232
+ presenter.commandAdvice(
233
+ "To upgrade by hand, run:",
234
+ `npm install -g @iowarp/clio-coder@${opts.channel}
235
+ clio-coder doctor --fix`
236
+ );
237
+ presenter.finish();
238
+ return 1;
239
+ }
240
+ try {
241
+ await runPostInstallUpgrade(opts);
242
+ presenter.done("Done");
243
+ return 0;
244
+ } catch (err) {
245
+ presenter.fail("post-install checks failed", err instanceof Error ? err.message : String(err));
246
+ presenter.commandAdvice("To finish the upgrade by hand, run:", "clio-coder doctor --fix");
247
+ presenter.finish();
248
+ return 1;
249
+ }
250
+ }
251
+ let appliedCount = 0;
252
+ if (opts.skipMigrations) {
253
+ presenter.note("Skipping migrations (--skip-migrations).");
254
+ } else {
255
+ let result;
256
+ try {
257
+ if (process.env.CLIO_CODER_TEST_UPGRADE_FAIL === "migration") {
258
+ throw new Error("mock migration failure in 2026-09-01-settings-v2");
259
+ }
260
+ result = await runPending(stateDir);
261
+ } catch (err) {
262
+ presenter.fail("migration failed", err instanceof Error ? err.message : String(err));
263
+ presenter.commandAdvice(
264
+ "The rest of the upgrade does not depend on it. To continue, run:",
265
+ "clio-coder upgrade --skip-migrations"
266
+ );
267
+ presenter.finish();
268
+ return 1;
269
+ }
270
+ const applied = [...result.applied];
271
+ appliedCount = applied.length;
272
+ if (appliedCount === 0) presenter.note("No pending migrations.");
273
+ else for (const id of applied) presenter.completedStep(`Applied migration ${id}`);
274
+ }
275
+ if (method === "source" || noNetwork) {
276
+ const refresh = describeRefresh();
277
+ initializeClioHome();
278
+ presenter.completedStep(`Refreshed ${refresh}`);
279
+ } else {
280
+ try {
281
+ await runDoctorFixAfterInstall();
282
+ presenter.completedStep("Checked the install with clio-coder doctor --fix");
283
+ } catch (err) {
284
+ presenter.fail("doctor fix failed", err instanceof Error ? err.message : String(err));
285
+ presenter.commandAdvice("To resolve the findings by hand, run:", "clio-coder doctor --fix");
286
+ presenter.finish();
287
+ return 1;
288
+ }
289
+ }
290
+ if (method === "source") presenter.commandAdvice(SOURCE_UPGRADE_LEAD, SOURCE_UPGRADE_STEPS.join("\n"));
291
+ const after = getVersionInfo().clio;
292
+ if (appliedCount > 0 || (recorded ?? before) !== after) {
293
+ presenter.note(
294
+ `Now on ${after}${appliedCount > 0 ? `, ${appliedCount} migration${appliedCount === 1 ? "" : "s"} applied` : ""}.`
295
+ );
296
+ }
297
+ presenter.done("Done");
298
+ return 0;
299
+ }
300
+ export {
301
+ runUpgradeCommand
302
+ };
303
+ //# sourceMappingURL=upgrade-M4WXY6KN.js.map
@@ -1,14 +1,23 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ summarizeFailedCompactionUsage
4
+ } from "./chunk-IJNZMHLA.js";
2
5
  import {
3
6
  readEvidenceIndex,
4
7
  readOutOfTurnUsageRows
5
- } from "./chunk-AK5XEFVZ.js";
8
+ } from "./chunk-VA5FNYMT.js";
6
9
  import {
7
10
  loadMemoryRecordsSync
8
- } from "./chunk-74YWRRU5.js";
9
- import "./chunk-XKA2ICR3.js";
10
- import "./chunk-GPPB3JBE.js";
11
- import "./chunk-6NJQITNH.js";
11
+ } from "./chunk-BEPZRGGU.js";
12
+ import "./chunk-G76U63X4.js";
13
+ import "./chunk-UPZU6GE4.js";
14
+ import "./chunk-RRNP2ANY.js";
15
+ import "./chunk-DR52UMZW.js";
16
+ import "./chunk-AF4YM7Z4.js";
17
+ import "./chunk-B4VEBZKF.js";
18
+ import "./chunk-E3TPLWFX.js";
19
+ import "./chunk-WRBAGUNF.js";
20
+ import "./chunk-IWT4SF4R.js";
12
21
  import {
13
22
  addResponseModelIdObservationCount,
14
23
  emptyResponseModelIdObservationCounts,
@@ -17,107 +26,104 @@ import {
17
26
  parseSessionEntries,
18
27
  readAuditRows,
19
28
  responseModelIdObservationCountsLabel
20
- } from "./chunk-TVH4ONAM.js";
21
- import "./chunk-TD3PGPQA.js";
22
- import "./chunk-THYWACCR.js";
29
+ } from "./chunk-JKKCYP3C.js";
30
+ import "./chunk-FTMGRKEF.js";
31
+ import "./chunk-XRZT5WY5.js";
23
32
  import "./chunk-RVG5JXAL.js";
24
- import {
25
- foldPromptCacheTelemetry,
26
- hasPromptCacheTelemetry
27
- } from "./chunk-3DPEIQKN.js";
28
- import "./chunk-6CCS4G3W.js";
29
- import "./chunk-6VC4OV3Z.js";
33
+ import "./chunk-VIA6RFQZ.js";
30
34
  import "./chunk-T56WDKA5.js";
31
35
  import "./chunk-W6GROXXM.js";
32
- import "./chunk-AFKWHWXF.js";
36
+ import "./chunk-2VIKGWFZ.js";
37
+ import "./chunk-RKKLTLYB.js";
38
+ import "./chunk-6PTFB5VS.js";
33
39
  import "./chunk-TXOTCRLG.js";
34
- import "./chunk-HVDIIIQW.js";
35
- import "./chunk-SINK3QR6.js";
36
- import "./chunk-MA3H6DM5.js";
37
- import "./chunk-ZJLUDYFY.js";
38
- import "./chunk-DR52UMZW.js";
39
40
  import {
40
41
  loadSkills
41
- } from "./chunk-HUAS7ITX.js";
42
+ } from "./chunk-LDJG7DW3.js";
42
43
  import "./chunk-NDDGJUXD.js";
43
- import "./chunk-FEFIFZTL.js";
44
- import "./chunk-CTJ4RNAA.js";
45
- import "./chunk-RKKLTLYB.js";
46
- import "./chunk-SUW5DORT.js";
47
- import "./chunk-I66EAJFY.js";
48
- import "./chunk-2VG7KLYV.js";
49
- import "./chunk-7EPLI7VL.js";
50
- import "./chunk-6DWBAZ5U.js";
51
- import "./chunk-PVAMAVBB.js";
52
- import "./chunk-IXJT6DCX.js";
53
- import "./chunk-TVHHYFHE.js";
44
+ import "./chunk-CE5AX47J.js";
45
+ import {
46
+ foldPromptCacheTelemetry,
47
+ hasPromptCacheTelemetry
48
+ } from "./chunk-3DPEIQKN.js";
49
+ import "./chunk-7DRAWPTZ.js";
50
+ import "./chunk-5MEZN6CB.js";
51
+ import "./chunk-PUVDKJ2Y.js";
52
+ import "./chunk-HVDIIIQW.js";
53
+ import {
54
+ formatColumns,
55
+ printError
56
+ } from "./chunk-VPKWYKEY.js";
57
+ import "./chunk-5TSRNF4G.js";
58
+ import "./chunk-2WZ546HR.js";
59
+ import "./chunk-PAJQJ7BS.js";
60
+ import "./chunk-EKCHAPYA.js";
61
+ import "./chunk-L47TF46W.js";
62
+ import "./chunk-RSJ25QSL.js";
63
+ import "./chunk-XIVNBFZS.js";
64
+ import "./chunk-NEDJ26B5.js";
54
65
  import "./chunk-42FMPA75.js";
55
66
  import "./chunk-H7IXIC72.js";
56
- import "./chunk-VN3SHNBN.js";
67
+ import "./chunk-7DICMOS6.js";
57
68
  import "./chunk-OQE5J4C6.js";
58
- import "./chunk-FSP7CMNU.js";
59
- import "./chunk-R23Z6K6I.js";
60
- import "./chunk-OZNBF4L3.js";
61
- import "./chunk-4BJ5BYCE.js";
62
- import "./chunk-6XLNIQDB.js";
63
- import "./chunk-U2WB7TZS.js";
64
- import "./chunk-VAVR4IJY.js";
65
- import "./chunk-2LEAKD4C.js";
66
69
  import "./chunk-HHV2GANA.js";
67
- import "./chunk-IG7BCQBA.js";
68
- import "./chunk-GCSMB2KY.js";
70
+ import "./chunk-B4OAX3SI.js";
71
+ import "./chunk-I7ZPNEJM.js";
72
+ import "./chunk-GYV6VZOC.js";
69
73
  import "./chunk-UL3WSD3F.js";
74
+ import "./chunk-JDAY6FIL.js";
75
+ import "./chunk-OZNBF4L3.js";
70
76
  import "./chunk-ECH6PKUQ.js";
77
+ import "./chunk-6XLNIQDB.js";
71
78
  import "./chunk-5B2AEOW5.js";
79
+ import "./chunk-VAVR4IJY.js";
80
+ import "./chunk-JGRC33J2.js";
81
+ import "./chunk-4BJ5BYCE.js";
72
82
  import "./chunk-K6BSR66V.js";
73
- import "./chunk-XAKHZX5N.js";
74
- import "./chunk-33YXPOE3.js";
75
- import "./chunk-7CR24IG7.js";
76
- import "./chunk-XPLRXC72.js";
77
- import "./chunk-ZW55JB7N.js";
78
- import {
79
- formatColumns,
80
- printError
81
- } from "./chunk-VPKWYKEY.js";
82
- import "./chunk-5TSRNF4G.js";
83
- import "./chunk-UEDMSP56.js";
83
+ import "./chunk-XPWWI35G.js";
84
84
  import "./chunk-CFGTUFWB.js";
85
- import "./chunk-72GZI5EV.js";
86
- import "./chunk-CWVRRIEI.js";
85
+ import "./chunk-NZMNUPZZ.js";
86
+ import "./chunk-2JH2WHGE.js";
87
87
  import {
88
88
  cwdHash
89
- } from "./chunk-MQXIVJ35.js";
89
+ } from "./chunk-HAXOFFRH.js";
90
90
  import "./chunk-R346GLFC.js";
91
- import "./chunk-PMZVFWSR.js";
92
- import "./chunk-HLW2MRKE.js";
93
- import "./chunk-BTK3SSSK.js";
94
- import "./chunk-IHXBNWMM.js";
95
- import "./chunk-EIMVLWB3.js";
91
+ import "./chunk-KXDSS5WJ.js";
92
+ import "./chunk-GHS5EBTQ.js";
96
93
  import "./chunk-D7E7WCDF.js";
97
- import "./chunk-HJWWJ6IL.js";
94
+ import "./chunk-BTK3SSSK.js";
95
+ import "./chunk-NMJXSHBJ.js";
96
+ import "./chunk-PMZVFWSR.js";
97
+ import "./chunk-F4EKGO4N.js";
98
+ import "./chunk-XAKHZX5N.js";
99
+ import "./chunk-33YXPOE3.js";
100
+ import "./chunk-7CR24IG7.js";
101
+ import "./chunk-XPLRXC72.js";
102
+ import "./chunk-IWHMRKLL.js";
103
+ import "./chunk-VW6DOEDG.js";
104
+ import "./chunk-UXCU4E3T.js";
105
+ import "./chunk-LL4KHSZI.js";
106
+ import "./chunk-JSC3U7TI.js";
107
+ import "./chunk-S66XZJOF.js";
98
108
  import "./chunk-JIEGK6UF.js";
99
109
  import "./chunk-EBY63B7G.js";
100
110
  import "./chunk-6EJMN2Y3.js";
101
- import "./chunk-IWHMRKLL.js";
102
- import "./chunk-QKIFBZKT.js";
103
- import "./chunk-BWW4HLO4.js";
104
- import "./chunk-LL4KHSZI.js";
105
- import "./chunk-NLFAQR7Z.js";
106
- import "./chunk-CDNVLKUX.js";
107
- import "./chunk-WNP7O5WZ.js";
111
+ import "./chunk-LLDJM5XK.js";
112
+ import "./chunk-ID64D7PE.js";
108
113
  import "./chunk-336NSSKI.js";
109
114
  import "./chunk-IKCO5N3L.js";
110
115
  import "./chunk-3I7MS7N2.js";
111
116
  import "./chunk-APJ265NV.js";
117
+ import "./chunk-WEPFGWHJ.js";
118
+ import "./chunk-NUGM5KR6.js";
119
+ import "./chunk-5OIVVPHF.js";
120
+ import "./chunk-YPC6ZR5L.js";
121
+ import "./chunk-YXLYO42X.js";
122
+ import "./chunk-2LEAKD4C.js";
112
123
  import {
113
124
  clioDataDir,
114
125
  clioStateDir
115
126
  } from "./chunk-BYP5D4HI.js";
116
- import "./chunk-WEPFGWHJ.js";
117
- import "./chunk-NUGM5KR6.js";
118
- import "./chunk-O42A54GG.js";
119
- import "./chunk-VXMFAE2W.js";
120
- import "./chunk-YXLYO42X.js";
121
127
  import {
122
128
  init_esm_shims
123
129
  } from "./chunk-3R73A4XB.js";
@@ -167,19 +173,20 @@ function addResponseModelIdObservation(counts, call) {
167
173
  addResponseModelIdObservationCount(counts, call.responseModelIdObservation, call.apiCalls ?? 1);
168
174
  }
169
175
  function emptyCallOrigins() {
170
- return { rows: 0, sideQuestions: 0, handoffs: 0, prewarms: 0, backgroundMemory: 0 };
176
+ return { rows: 0, sideQuestions: 0, handoffs: 0, prewarms: 0, backgroundMemory: 0, failedCompaction: 0 };
171
177
  }
172
178
  function turnsOf(origins) {
173
- return origins.rows - origins.sideQuestions - origins.handoffs - origins.prewarms - origins.backgroundMemory;
179
+ return origins.rows - origins.sideQuestions - origins.handoffs - origins.prewarms - origins.backgroundMemory - origins.failedCompaction;
174
180
  }
175
181
  function hasLabelledCall(origins) {
176
- return origins.sideQuestions > 0 || origins.handoffs > 0 || origins.prewarms > 0 || origins.backgroundMemory > 0;
182
+ return origins.sideQuestions > 0 || origins.handoffs > 0 || origins.prewarms > 0 || origins.backgroundMemory > 0 || origins.failedCompaction > 0;
177
183
  }
178
184
  function addOutOfTurnRow(origins, row) {
179
185
  origins.rows += 1;
180
186
  if (row.label === "side-question") origins.sideQuestions += 1;
181
187
  else if (row.label === "prewarm") origins.prewarms += 1;
182
188
  else if (row.label === "background-memory") origins.backgroundMemory += 1;
189
+ else if (row.label === "failed-compaction") origins.failedCompaction += 1;
183
190
  else origins.handoffs += 1;
184
191
  }
185
192
  function outOfTurnUsageCall(row) {
@@ -188,15 +195,28 @@ function outOfTurnUsageCall(row) {
188
195
  attributedModelId: row.attributedModelId,
189
196
  requestedModelId: row.attributedModelId,
190
197
  responseModelIdObservation: { state: "not-observed" },
191
- input: row.usage.input,
192
- output: row.usage.output,
193
- cacheRead: row.usage.cacheRead,
194
- cacheWrite: row.usage.cacheWrite,
195
- reasoningTokens: row.usage.reasoning,
196
- totalTokens: row.usage.totalTokens,
197
- costUsd: row.usage.costUsd
198
+ input: row.usage.input ?? 0,
199
+ output: row.usage.output ?? 0,
200
+ cacheRead: row.usage.cacheRead ?? 0,
201
+ cacheWrite: row.usage.cacheWrite ?? 0,
202
+ reasoningTokens: row.usage.reasoning ?? 0,
203
+ totalTokens: row.usage.totalTokens ?? 0,
204
+ costUsd: row.usage.costUsd ?? 0
198
205
  };
199
206
  }
207
+ function reportedUsageTotals(totals, rows) {
208
+ const failedCompaction = summarizeFailedCompactionUsage(rows);
209
+ if (failedCompaction.calls === 0) return totals;
210
+ const reported = { ...totals, knownSubtotals: true, failedCompaction };
211
+ for (const [field, missing] of Object.entries(failedCompaction.unobservedUsageCalls)) {
212
+ const key = field === "reasoning" ? "reasoningTokens" : field;
213
+ if (missing > 0 && reported[key] === 0) reported[key] = null;
214
+ }
215
+ return reported;
216
+ }
217
+ function usageAmount(value) {
218
+ return typeof value === "number" ? String(value) : "unknown";
219
+ }
200
220
  function addUsageCall(totals, call) {
201
221
  totals.apiCalls += call.apiCalls ?? 1;
202
222
  totals.input += call.input;
@@ -413,6 +433,8 @@ async function runUsageCommand(argv) {
413
433
  addOutOfTurnRow(callOrigins, row);
414
434
  }
415
435
  const usageMeasurable = presence.sessionsPresent || outOfTurnRows.length > 0;
436
+ const reportedTotals = reportedUsageTotals(usageTotals, outOfTurnRows);
437
+ const failedCompaction = summarizeFailedCompactionUsage(outOfTurnRows);
416
438
  const usageRows = [...usageByModel.values()].sort(
417
439
  (a, b) => b.totals.totalTokens - a.totals.totalTokens || a.providerId.localeCompare(b.providerId)
418
440
  );
@@ -487,13 +509,14 @@ async function runUsageCommand(argv) {
487
509
  emit({
488
510
  kind: "fact",
489
511
  fact: "tokens",
490
- ...usageTotals,
512
+ ...reportedTotals,
491
513
  ...hasLabelledCall(callOrigins) ? {
492
514
  turns: turnsOf(callOrigins),
493
515
  sideQuestions: callOrigins.sideQuestions,
494
516
  handoffs: callOrigins.handoffs,
495
517
  prewarms: callOrigins.prewarms,
496
- backgroundMemorySteps: callOrigins.backgroundMemory
518
+ backgroundMemorySteps: callOrigins.backgroundMemory,
519
+ ...callOrigins.failedCompaction > 0 ? { failedCompactionCalls: callOrigins.failedCompaction } : {}
497
520
  } : {}
498
521
  });
499
522
  for (const row of usageRows) {
@@ -504,7 +527,12 @@ async function runUsageCommand(argv) {
504
527
  attributedModelId: row.attributedModelId,
505
528
  requestedModelIds: [...row.requestedModelIds].sort(),
506
529
  responseModelIdObservationCounts: row.responseModelIdObservationCounts,
507
- ...row.totals
530
+ ...reportedUsageTotals(
531
+ row.totals,
532
+ outOfTurnRows.filter(
533
+ (call) => call.target === row.providerId && call.attributedModelId === row.attributedModelId
534
+ )
535
+ )
508
536
  });
509
537
  }
510
538
  for (const session of cacheSessions) {
@@ -564,7 +592,7 @@ async function runUsageCommand(argv) {
564
592
  out(` audited tool calls in window: ${auditToolCalls.length} (${auditBlocked.length} blocked/denied)`);
565
593
  if (usageMeasurable) {
566
594
  out(
567
- ` tokens in window: ${usageTotals.totalTokens} over ${usageTotals.apiCalls} model calls (input ${usageTotals.input}, output ${usageTotals.output}, cache read ${usageTotals.cacheRead}, cache write ${usageTotals.cacheWrite}, reasoning ${usageTotals.reasoningTokens})`
595
+ ` tokens in window: ${usageAmount(reportedTotals.totalTokens)} over ${usageTotals.apiCalls} model calls (input ${usageAmount(reportedTotals.input)}, output ${usageAmount(reportedTotals.output)}, cache read ${usageAmount(reportedTotals.cacheRead)}, cache write ${usageAmount(reportedTotals.cacheWrite)}, reasoning ${usageAmount(reportedTotals.reasoningTokens)})`
568
596
  );
569
597
  if (hasLabelledCall(callOrigins)) {
570
598
  out(` turns in window: ${turnsOf(callOrigins)}`);
@@ -575,7 +603,18 @@ async function runUsageCommand(argv) {
575
603
  out(` background memory steps in window: ${callOrigins.backgroundMemory}`);
576
604
  }
577
605
  }
578
- out(` provider-reported cost in window: $${usageTotals.costUsd.toFixed(4)}`);
606
+ if (failedCompaction.calls > 0) {
607
+ out(
608
+ ` failed-compaction streams: ${failedCompaction.calls} (${failedCompaction.erroredCalls} errored, ${failedCompaction.abortedCalls} aborted, ${failedCompaction.successfulCalls} completed before the attempt failed)`
609
+ );
610
+ out(" usage figures are known subtotals; missing compaction usage is not zero or a complete spending bound");
611
+ out(
612
+ ` errored compaction known cost: ${failedCompaction.erroredKnownUsage.costUsd === null ? "unknown" : `$${failedCompaction.erroredKnownUsage.costUsd.toFixed(4)}`}`
613
+ );
614
+ }
615
+ out(
616
+ ` ${failedCompaction.calls > 0 ? "known reported/estimated" : "provider-reported"} cost in window: ${typeof reportedTotals.costUsd === "number" ? `$${reportedTotals.costUsd.toFixed(4)}` : "unknown"}`
617
+ );
579
618
  }
580
619
  if (usageRows.length > 0) {
581
620
  out("");
@@ -596,19 +635,27 @@ async function runUsageCommand(argv) {
596
635
  "tokens",
597
636
  "cost"
598
637
  ],
599
- ...usageRows.map((row) => [
600
- row.providerId,
601
- row.attributedModelId,
602
- [...row.requestedModelIds].sort().join(","),
603
- responseModelIdObservationCountsLabel(row.responseModelIdObservationCounts),
604
- String(row.totals.apiCalls),
605
- String(row.totals.input),
606
- String(row.totals.output),
607
- String(row.totals.cacheRead),
608
- String(row.totals.reasoningTokens),
609
- String(row.totals.totalTokens),
610
- `$${row.totals.costUsd.toFixed(4)}`
611
- ])
638
+ ...usageRows.map((row) => {
639
+ const reported = reportedUsageTotals(
640
+ row.totals,
641
+ outOfTurnRows.filter(
642
+ (call) => call.target === row.providerId && call.attributedModelId === row.attributedModelId
643
+ )
644
+ );
645
+ return [
646
+ row.providerId,
647
+ row.attributedModelId,
648
+ [...row.requestedModelIds].sort().join(","),
649
+ responseModelIdObservationCountsLabel(row.responseModelIdObservationCounts),
650
+ String(row.totals.apiCalls),
651
+ usageAmount(reported.input),
652
+ usageAmount(reported.output),
653
+ usageAmount(reported.cacheRead),
654
+ usageAmount(reported.reasoningTokens),
655
+ usageAmount(reported.totalTokens),
656
+ typeof reported.costUsd === "number" ? `$${reported.costUsd.toFixed(4)}` : "unknown"
657
+ ];
658
+ })
612
659
  ])
613
660
  )
614
661
  );
@@ -961,4 +1008,4 @@ function isRecord(value) {
961
1008
  export {
962
1009
  runUsageCommand
963
1010
  };
964
- //# sourceMappingURL=usage-X52N3IDJ.js.map
1011
+ //# sourceMappingURL=usage-N7ZNVLEM.js.map