@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
@@ -8,29 +8,29 @@ import {
8
8
  readRootEntries,
9
9
  splitYamlFrontmatter,
10
10
  stringField
11
- } from "./chunk-XGDPUNND.js";
11
+ } from "./chunk-CE5AX47J.js";
12
12
  import {
13
13
  enabledExtensionResourceRoots
14
- } from "./chunk-HLAFFSEK.js";
14
+ } from "./chunk-7DRAWPTZ.js";
15
15
  import {
16
16
  ToolNames
17
17
  } from "./chunk-K6BSR66V.js";
18
18
  import {
19
19
  INTEROP_AGENT_KINDS,
20
20
  interopSourceRank
21
- } from "./chunk-IHXBNWMM.js";
21
+ } from "./chunk-KXDSS5WJ.js";
22
22
  import {
23
23
  warnLegacyNaming
24
24
  } from "./chunk-D7E7WCDF.js";
25
25
  import {
26
26
  resolvePackageRoot
27
27
  } from "./chunk-IWHMRKLL.js";
28
- import {
29
- clioConfigDir
30
- } from "./chunk-BYP5D4HI.js";
31
28
  import {
32
29
  fsyncDirectory
33
30
  } from "./chunk-WEPFGWHJ.js";
31
+ import {
32
+ clioConfigDir
33
+ } from "./chunk-BYP5D4HI.js";
34
34
  import {
35
35
  init_esm_shims
36
36
  } from "./chunk-3R73A4XB.js";
@@ -123,6 +123,12 @@ function parseMarketplaceIndex(indexPath, diagnostics = []) {
123
123
  }
124
124
  const kind = record.kind === "agent" || record.kind === "prompt" || record.kind === "fleet" ? record.kind : "skill";
125
125
  const requires = Array.isArray(record.requires) ? record.requires.filter((entry) => typeof entry === "string") : void 0;
126
+ const overlay = optionalString(record.overlay);
127
+ if (overlay && (path.isAbsolute(overlay) || overlay.split("/").includes(".."))) {
128
+ diagnostics.push(`skill marketplace index entry has an overlay outside the package: ${skill.name}`);
129
+ return [];
130
+ }
131
+ const exclude = optionalTriggerList(record.exclude);
126
132
  return [
127
133
  {
128
134
  kind,
@@ -134,6 +140,8 @@ function parseMarketplaceIndex(indexPath, diagnostics = []) {
134
140
  ...category ? { category } : {},
135
141
  ...triggers ? { triggers } : {},
136
142
  ...requires ? { requires } : {},
143
+ ...overlay ? { overlay } : {},
144
+ ...exclude ? { exclude } : {},
137
145
  origin: "index"
138
146
  }
139
147
  ];
@@ -205,22 +213,22 @@ function discoverMarketplaceSkills(options = {}) {
205
213
  const diagnostics = [];
206
214
  const skills = [];
207
215
  const seen = /* @__PURE__ */ new Set();
216
+ const indexPath = options.indexPath === null ? null : options.indexPath ?? process.env.CLIO_CODER_SKILL_MARKETPLACE_INDEX ?? null;
217
+ const resolvedIndexPath = indexPath ?? defaultIndexPath();
218
+ const indexSkills = options.indexPath !== null && resolvedIndexPath && existsSync(resolvedIndexPath) ? parseMarketplaceIndex(resolvedIndexPath, diagnostics) : [];
219
+ const overlayNames = new Set(indexSkills.filter((skill) => skill.overlay).map((skill) => skill.name));
208
220
  const catalogDir = resolveCatalogDir(options);
209
221
  if (catalogDir) {
210
222
  for (const skill of catalogSkills(catalogDir, diagnostics)) {
211
- if (seen.has(skill.name)) continue;
223
+ if (seen.has(skill.name) || overlayNames.has(skill.name)) continue;
212
224
  seen.add(skill.name);
213
225
  skills.push(skill);
214
226
  }
215
227
  }
216
- const indexPath = options.indexPath === null ? null : options.indexPath ?? process.env.CLIO_CODER_SKILL_MARKETPLACE_INDEX ?? null;
217
- const resolvedIndexPath = indexPath ?? defaultIndexPath();
218
- if (options.indexPath !== null && resolvedIndexPath && existsSync(resolvedIndexPath)) {
219
- for (const skill of parseMarketplaceIndex(resolvedIndexPath, diagnostics)) {
220
- if (seen.has(skill.name)) continue;
221
- seen.add(skill.name);
222
- skills.push(skill);
223
- }
228
+ for (const skill of indexSkills) {
229
+ if (seen.has(skill.name)) continue;
230
+ seen.add(skill.name);
231
+ skills.push(skill);
224
232
  }
225
233
  if (skills.length === 0 && diagnostics.length === 0) {
226
234
  diagnostics.push(MARKETPLACE_UNCONFIGURED);
@@ -230,6 +238,21 @@ function discoverMarketplaceSkills(options = {}) {
230
238
  function getMarketplaceSkills(options = {}) {
231
239
  return discoverMarketplaceSkills(options).skills;
232
240
  }
241
+ function marketplaceInstallShaping(skill) {
242
+ const shaping = {};
243
+ if (skill.overlay) shaping.overlay = path.join(resolvePackageRoot(), skill.overlay);
244
+ if (skill.exclude && skill.exclude.length > 0) shaping.exclude = [...skill.exclude];
245
+ return shaping;
246
+ }
247
+ function resolveMarketplaceShaping(options = {}) {
248
+ return (installed) => {
249
+ const entry = getMarketplaceSkills(options).find(
250
+ (skill) => skill.name === installed.name && skill.sourceUrl === installed.sourceUrl
251
+ );
252
+ if (!entry || !entry.overlay && !entry.exclude) return void 0;
253
+ return marketplaceInstallShaping(entry);
254
+ };
255
+ }
233
256
  function installSkill(input) {
234
257
  const requested = input.source.trim();
235
258
  const source = requested === "clio-dev" ? "clio-coder-dev" : requested === "clio-test" ? "clio-coder-test" : requested;
@@ -242,7 +265,7 @@ function installSkill(input) {
242
265
  if (!skill) {
243
266
  throw new Error(`"${source}" is neither an existing local path nor available in the local marketplace`);
244
267
  }
245
- return installSkillFromSource({ ...input, source: skill.sourceUrl });
268
+ return installSkillFromSource({ ...input, ...marketplaceInstallShaping(skill), source: skill.sourceUrl });
246
269
  }
247
270
  return installSkillFromSource({ ...input, source });
248
271
  }
@@ -810,6 +833,7 @@ function skillCatalogValidity(list) {
810
833
  if (list.items.length === 0) return { ok: false, reason: "no-skills" };
811
834
  return { ok: true, reason: null };
812
835
  }
836
+ var SKILL_SURFACE_CLEAR_ARG = "off";
813
837
  function parseSkillCommand(input) {
814
838
  const trimmed = input.trim();
815
839
  if (!trimmed.startsWith("/skill ")) return null;
@@ -1025,16 +1049,40 @@ function fetchSource(spec) {
1025
1049
  throw err instanceof Error ? err : new Error(String(err));
1026
1050
  }
1027
1051
  }
1028
- function copySkillDir(from, to) {
1052
+ function copySkillDir(from, to, exclude = []) {
1029
1053
  mkdirSync(path3.dirname(to), { recursive: true });
1054
+ const excluded = new Set(exclude);
1030
1055
  cpSync(from, to, {
1031
1056
  recursive: true,
1032
1057
  filter: (source) => {
1033
1058
  const base = path3.basename(source);
1034
- return base !== ".git" && base !== "node_modules";
1059
+ if (base === ".git" || base === "node_modules") return false;
1060
+ return !(excluded.size > 0 && path3.dirname(source) === from && excluded.has(base));
1035
1061
  }
1036
1062
  });
1037
1063
  }
1064
+ function shapeSource(fetched, shaping) {
1065
+ const exclude = shaping.exclude ?? [];
1066
+ if (!shaping.overlay && exclude.length === 0) return fetched;
1067
+ if (shaping.overlay && !existsSync3(shaping.overlay)) {
1068
+ fetched.cleanup();
1069
+ throw new Error(`skill overlay directory does not exist: ${shaping.overlay}`);
1070
+ }
1071
+ const tmp = mkdtempSync(path3.join(tmpdir(), "clio-coder-skill-shape-"));
1072
+ const shaped = path3.join(tmp, "skill");
1073
+ const cleanup = () => {
1074
+ rmSync(tmp, { recursive: true, force: true });
1075
+ fetched.cleanup();
1076
+ };
1077
+ try {
1078
+ copySkillDir(fetched.skillDir, shaped, exclude);
1079
+ if (shaping.overlay) copySkillDir(shaping.overlay, shaped);
1080
+ return { skillDir: resolveSkillDir(shaped), cleanup };
1081
+ } catch (err) {
1082
+ cleanup();
1083
+ throw err instanceof Error ? err : new Error(String(err));
1084
+ }
1085
+ }
1038
1086
  var skillSwapSequence = 0;
1039
1087
  function swapSkillDir(stage, dest) {
1040
1088
  const suffix = `${process.pid}-${++skillSwapSequence}`;
@@ -1079,7 +1127,7 @@ function installSkillFromSource(input) {
1079
1127
  if (!spec) throw new Error(`unsupported skill source: ${input.source}`);
1080
1128
  const cwd = input.cwd ?? process.cwd();
1081
1129
  const scope = input.scope ?? "project";
1082
- const fetched = fetchSource(spec);
1130
+ const fetched = shapeSource(fetchSource(spec), input);
1083
1131
  try {
1084
1132
  const { skill, warnings } = validateSourceSkill(fetched.skillDir);
1085
1133
  const name = (input.name ?? skill.name).trim();
@@ -1126,12 +1174,17 @@ function managedSkills(cwd, configDir) {
1126
1174
  (skill) => skill.source === "clio-coder" && (skill.scope === "user" || skill.scope === "project")
1127
1175
  );
1128
1176
  }
1129
- function updateOne(skill, force) {
1177
+ function updateOne(skill, force, shaping = {}) {
1130
1178
  const sourceUrl = skill.provenance?.installUrl;
1131
1179
  if (!sourceUrl) return { name: skill.name, status: "no-source", detail: "no source-url provenance recorded" };
1132
1180
  const spec = parseSkillSourceSpec(sourceUrl);
1133
1181
  if (!spec) return { name: skill.name, status: "error", detail: `unsupported source-url: ${sourceUrl}` };
1134
- const fetched = fetchSource(spec);
1182
+ let fetched;
1183
+ try {
1184
+ fetched = shapeSource(fetchSource(spec), shaping);
1185
+ } catch (err) {
1186
+ return { name: skill.name, status: "error", detail: err instanceof Error ? err.message : String(err) };
1187
+ }
1135
1188
  try {
1136
1189
  validateSourceSkill(fetched.skillDir);
1137
1190
  const remoteFile = path3.join(fetched.skillDir, "SKILL.md");
@@ -1172,13 +1225,14 @@ function updateOne(skill, force) {
1172
1225
  function updateSkills(input = {}) {
1173
1226
  const cwd = input.cwd ?? process.cwd();
1174
1227
  const skills = managedSkills(cwd, input.configDir);
1228
+ const shapingFor = (skill) => skill.provenance?.installUrl && input.resolveShaping?.({ name: skill.name, sourceUrl: skill.provenance.installUrl }) || {};
1175
1229
  if (input.name) {
1176
1230
  const skill = skills.find((entry) => entry.name === input.name);
1177
1231
  if (!skill) return [{ name: input.name, status: "error", detail: "not found in Clio-managed skill roots" }];
1178
- return [updateOne(skill, input.force === true)];
1232
+ return [updateOne(skill, input.force === true, shapingFor(skill))];
1179
1233
  }
1180
1234
  if (input.all !== true) throw new Error("updateSkills requires a name or all=true");
1181
- return skills.filter((skill) => skill.provenance?.installUrl).map((skill) => updateOne(skill, input.force === true));
1235
+ return skills.filter((skill) => skill.provenance?.installUrl).map((skill) => updateOne(skill, input.force === true, shapingFor(skill)));
1182
1236
  }
1183
1237
 
1184
1238
  export {
@@ -1187,14 +1241,17 @@ export {
1187
1241
  MARKETPLACE_UNCONFIGURED,
1188
1242
  discoverMarketplaceSkills,
1189
1243
  getMarketplaceSkills,
1244
+ marketplaceInstallShaping,
1245
+ resolveMarketplaceShaping,
1190
1246
  installSkill,
1191
1247
  projectCompatTrusted,
1192
1248
  defaultSkillRoots,
1193
1249
  loadSkills,
1194
1250
  modelVisibleSkills,
1195
1251
  skillCatalogValidity,
1252
+ SKILL_SURFACE_CLEAR_ARG,
1196
1253
  parseSkillCommand,
1197
1254
  expandSkillInvocationInput,
1198
1255
  parsePendingSkillRequests
1199
1256
  };
1200
- //# sourceMappingURL=chunk-O3YUNJZ2.js.map
1257
+ //# sourceMappingURL=chunk-LDJG7DW3.js.map
@@ -2,14 +2,14 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  resolveAuthTarget,
4
4
  resolveRuntimeAuthTarget
5
- } from "./chunk-WNP7O5WZ.js";
5
+ } from "./chunk-ID64D7PE.js";
6
6
  import {
7
7
  getRuntimeRegistry
8
8
  } from "./chunk-NUGM5KR6.js";
9
9
  import {
10
10
  catalogProviderForRuntime,
11
11
  listCatalogModelsForRuntime
12
- } from "./chunk-O42A54GG.js";
12
+ } from "./chunk-5OIVVPHF.js";
13
13
  import {
14
14
  init_esm_shims
15
15
  } from "./chunk-3R73A4XB.js";
@@ -20,6 +20,7 @@ var SUMMARY_BY_RUNTIME_ID = {
20
20
  alcf: "ALCF inference gateway (Sophia/Metis) via Globus",
21
21
  anthropic: "Anthropic API",
22
22
  "anthropic-max": "Claude Pro/Max subscription via Anthropic OAuth",
23
+ "antigravity-code": "Experimental local delegation via the installed Antigravity CLI",
23
24
  bedrock: "Amazon Bedrock",
24
25
  "claude-code": "Claude Code subscription via installed claude CLI",
25
26
  "claude-sdk": "Claude Code subscription via Claude Agent SDK",
@@ -35,24 +36,28 @@ var SUMMARY_BY_RUNTIME_ID = {
35
36
  llamacpp: "llama.cpp server (auto-detect surface)",
36
37
  "anthropic-compat": "Generic Anthropic-compatible REST",
37
38
  "openai-compat": "Generic OpenAI-compatible REST",
38
- litellm: "LiteLLM gateway with per-alias capability discovery and routed-model attribution"
39
+ litellm: "LiteLLM gateway with per-route capability discovery and physical-model attribution"
39
40
  };
40
41
  function groupPriority(group) {
41
42
  switch (group) {
42
43
  case "featured":
43
44
  return 0;
44
- case "subscription":
45
+ case "external-worker":
45
46
  return 1;
46
- case "cloud-api":
47
+ case "subscription":
47
48
  return 2;
48
- case "local-http":
49
+ case "cloud-api":
49
50
  return 3;
51
+ case "local-http":
52
+ return 4;
50
53
  }
51
54
  }
52
55
  function supportGroupLabel(group) {
53
56
  switch (group) {
54
57
  case "featured":
55
58
  return "Featured";
59
+ case "external-worker":
60
+ return "External delegation";
56
61
  case "subscription":
57
62
  return "Subscriptions";
58
63
  case "cloud-api":
@@ -63,6 +68,7 @@ function supportGroupLabel(group) {
63
68
  }
64
69
  function classifyGroup(runtime) {
65
70
  if (runtime.id === "openai-codex") return "featured";
71
+ if (runtime.externalAgentLoop !== void 0) return "external-worker";
66
72
  if (runtime.id === "alcf") return "cloud-api";
67
73
  if (runtime.auth === "oauth" || runtime.auth === "claude-cli") return "subscription";
68
74
  if (catalogProviderForRuntime(runtime.id) || runtime.auth === "api-key" && !runtime.probe) {
@@ -170,4 +176,4 @@ export {
170
176
  configuredTargetsForRuntime,
171
177
  resolveProviderReference
172
178
  };
173
- //# sourceMappingURL=chunk-CDNVLKUX.js.map
179
+ //# sourceMappingURL=chunk-LLDJM5XK.js.map
@@ -1,13 +1,13 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  runPending
4
- } from "./chunk-DYHAXKHD.js";
4
+ } from "./chunk-GWZNEVM2.js";
5
5
  import {
6
6
  runDoctor
7
- } from "./chunk-QQLGQY2A.js";
7
+ } from "./chunk-N2Z7HLVY.js";
8
8
  import {
9
9
  readStateInfo
10
- } from "./chunk-XQRY4DTA.js";
10
+ } from "./chunk-IGLP3ODT.js";
11
11
  import {
12
12
  getVersionInfo
13
13
  } from "./chunk-XPLRXC72.js";
@@ -63,4 +63,4 @@ export {
63
63
  describeUpgradeNotice,
64
64
  LifecycleDomainModule
65
65
  };
66
- //# sourceMappingURL=chunk-F2I26BDK.js.map
66
+ //# sourceMappingURL=chunk-MUW2BDDH.js.map
@@ -3,22 +3,22 @@ import {
3
3
  appendOutOfTurnUsageRow,
4
4
  readEvidenceIndex,
5
5
  writeEvidenceIndexRowQueued
6
- } from "./chunk-AK5XEFVZ.js";
7
- import {
8
- createDispatchTraceMirror,
9
- traceDatabasePath
10
- } from "./chunk-VKPAQYEB.js";
6
+ } from "./chunk-VA5FNYMT.js";
11
7
  import {
12
8
  FAILURE_CAUSE_TAGS,
13
9
  buildEvidence,
14
10
  createCostTracker
15
- } from "./chunk-I66ZTYNP.js";
11
+ } from "./chunk-AF4YM7Z4.js";
12
+ import {
13
+ createDispatchTraceMirror,
14
+ traceDatabasePath
15
+ } from "./chunk-VKPAQYEB.js";
16
16
  import {
17
17
  uncachedPrefillTokens
18
18
  } from "./chunk-3DPEIQKN.js";
19
19
  import {
20
20
  resolveCostProvenance
21
- } from "./chunk-BYMNWQ7O.js";
21
+ } from "./chunk-XPWWI35G.js";
22
22
  import {
23
23
  BusChannels
24
24
  } from "./chunk-F4EKGO4N.js";
@@ -30,73 +30,6 @@ import {
30
30
  init_esm_shims
31
31
  } from "./chunk-3R73A4XB.js";
32
32
 
33
- // src/domains/observability/background-memory-usage.ts
34
- init_esm_shims();
35
- function backgroundMemoryUsageRow(usage, options) {
36
- return {
37
- label: "background-memory",
38
- sessionId: options.sessionId,
39
- repoIdentity: options.repoIdentity,
40
- timestamp: (options.now ?? /* @__PURE__ */ new Date()).toISOString(),
41
- target: usage.targetId,
42
- attributedModelId: usage.attributedModelId,
43
- usage: {
44
- input: usage.input,
45
- output: usage.output,
46
- cacheRead: usage.cacheRead,
47
- cacheWrite: usage.cacheWrite,
48
- reasoning: usage.reasoning,
49
- totalTokens: usage.totalTokens,
50
- costUsd: usage.costUsd,
51
- costProvenance: usage.costProvenance
52
- },
53
- timing: { durationMs: usage.durationMs },
54
- ...usage.backend === null ? {} : {
55
- promptCache: {
56
- promptTokens: usage.backend.promptTokens,
57
- cachedTokens: usage.backend.cachedTokens,
58
- uncachedPrefillTokens: uncachedPrefillTokens({
59
- promptTokens: usage.backend.promptTokens,
60
- cachedTokens: usage.backend.cachedTokens,
61
- predictedTokens: 0,
62
- promptMs: usage.backend.promptMs,
63
- predictedMs: 0,
64
- source: "llamacpp-timings"
65
- }),
66
- promptMs: usage.backend.promptMs,
67
- source: usage.backend.source
68
- }
69
- }
70
- };
71
- }
72
- function recordBackgroundMemoryStep(input) {
73
- input.observability?.recordTokens(
74
- input.usage.targetId,
75
- input.usage.attributedModelId,
76
- input.usage.totalTokens,
77
- input.usage.costUsd,
78
- {
79
- input: input.usage.input,
80
- output: input.usage.output,
81
- cacheRead: input.usage.cacheRead,
82
- cacheWrite: input.usage.cacheWrite,
83
- reasoningTokens: input.usage.reasoning,
84
- totalTokens: input.usage.totalTokens,
85
- apiCalls: 1
86
- },
87
- input.usage.costProvenance,
88
- void 0,
89
- "background-memory"
90
- );
91
- const row = backgroundMemoryUsageRow(input.usage, {
92
- sessionId: input.sessionId,
93
- repoIdentity: input.repoIdentity,
94
- ...input.now === void 0 ? {} : { now: input.now }
95
- });
96
- (input.appendRow ?? appendOutOfTurnUsageRow)(input.stateDir, row);
97
- return row;
98
- }
99
-
100
33
  // src/domains/observability/index.ts
101
34
  init_esm_shims();
102
35
 
@@ -504,6 +437,9 @@ function createTelemetry(histogramCapacity = DEFAULT_HISTOGRAM_CAPACITY) {
504
437
  }
505
438
 
506
439
  // src/domains/observability/extension.ts
440
+ function dispatchHasEvidenceLedger(payload) {
441
+ return payload.lineage !== void 0;
442
+ }
507
443
  function recordDispatchCost(telemetry, cost, payload) {
508
444
  if (!payload.targetId || !payload.wireModelId || typeof payload.tokenCount !== "number") {
509
445
  return;
@@ -621,7 +557,7 @@ function createObservabilityBundle(context, options = {}) {
621
557
  telemetry.record("histogram", "dispatch.duration_ms", payload.durationMs);
622
558
  }
623
559
  recordDispatchCost(telemetry, cost, payload);
624
- if (typeof payload.runId === "string" && payload.runId.length > 0) {
560
+ if (typeof payload.runId === "string" && payload.runId.length > 0 && dispatchHasEvidenceLedger(payload)) {
625
561
  trackBuild(payload.runId, false, payload.lineage?.attempt);
626
562
  }
627
563
  })
@@ -688,6 +624,73 @@ var ObservabilityManifest = {
688
624
  dependsOn: ["providers", "session"]
689
625
  };
690
626
 
627
+ // src/domains/observability/background-memory-usage.ts
628
+ init_esm_shims();
629
+ function backgroundMemoryUsageRow(usage, options) {
630
+ return {
631
+ label: "background-memory",
632
+ sessionId: options.sessionId,
633
+ repoIdentity: options.repoIdentity,
634
+ timestamp: (options.now ?? /* @__PURE__ */ new Date()).toISOString(),
635
+ target: usage.targetId,
636
+ attributedModelId: usage.attributedModelId,
637
+ usage: {
638
+ input: usage.input,
639
+ output: usage.output,
640
+ cacheRead: usage.cacheRead,
641
+ cacheWrite: usage.cacheWrite,
642
+ reasoning: usage.reasoning,
643
+ totalTokens: usage.totalTokens,
644
+ costUsd: usage.costUsd,
645
+ costProvenance: usage.costProvenance
646
+ },
647
+ timing: { durationMs: usage.durationMs },
648
+ ...usage.backend === null ? {} : {
649
+ promptCache: {
650
+ promptTokens: usage.backend.promptTokens,
651
+ cachedTokens: usage.backend.cachedTokens,
652
+ uncachedPrefillTokens: uncachedPrefillTokens({
653
+ promptTokens: usage.backend.promptTokens,
654
+ cachedTokens: usage.backend.cachedTokens,
655
+ predictedTokens: 0,
656
+ promptMs: usage.backend.promptMs,
657
+ predictedMs: 0,
658
+ source: "llamacpp-timings"
659
+ }),
660
+ promptMs: usage.backend.promptMs,
661
+ source: usage.backend.source
662
+ }
663
+ }
664
+ };
665
+ }
666
+ function recordBackgroundMemoryStep(input) {
667
+ input.observability?.recordTokens(
668
+ input.usage.targetId,
669
+ input.usage.attributedModelId,
670
+ input.usage.totalTokens,
671
+ input.usage.costUsd,
672
+ {
673
+ input: input.usage.input,
674
+ output: input.usage.output,
675
+ cacheRead: input.usage.cacheRead,
676
+ cacheWrite: input.usage.cacheWrite,
677
+ reasoningTokens: input.usage.reasoning,
678
+ totalTokens: input.usage.totalTokens,
679
+ apiCalls: 1
680
+ },
681
+ input.usage.costProvenance,
682
+ void 0,
683
+ "background-memory"
684
+ );
685
+ const row = backgroundMemoryUsageRow(input.usage, {
686
+ sessionId: input.sessionId,
687
+ repoIdentity: input.repoIdentity,
688
+ ...input.now === void 0 ? {} : { now: input.now }
689
+ });
690
+ (input.appendRow ?? appendOutOfTurnUsageRow)(input.stateDir, row);
691
+ return row;
692
+ }
693
+
691
694
  // src/domains/observability/index.ts
692
695
  var ObservabilityDomainModule = {
693
696
  manifest: ObservabilityManifest,
@@ -707,4 +710,4 @@ export {
707
710
  ObservabilityDomainModule,
708
711
  createObservabilityDomainModule
709
712
  };
710
- //# sourceMappingURL=chunk-HKMD33FO.js.map
713
+ //# sourceMappingURL=chunk-MWUZBSAQ.js.map
@@ -1,50 +1,50 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  readStateInfoResult
4
- } from "./chunk-XQRY4DTA.js";
4
+ } from "./chunk-IGLP3ODT.js";
5
+ import {
6
+ loadSkills
7
+ } from "./chunk-LDJG7DW3.js";
5
8
  import {
6
9
  foldPromptCacheTelemetry,
7
10
  hasPromptCacheTelemetry,
8
11
  topExpectedColdReason
9
12
  } from "./chunk-3DPEIQKN.js";
10
- import {
11
- loadSkills
12
- } from "./chunk-O3YUNJZ2.js";
13
- import {
14
- isSessionEntry
15
- } from "./chunk-FSP7CMNU.js";
16
- import {
17
- getVersionInfo
18
- } from "./chunk-XPLRXC72.js";
19
13
  import {
20
14
  fingerprintNativeRuntime
21
15
  } from "./chunk-NEKRRTYW.js";
22
16
  import {
23
17
  detectInteropAgents,
24
18
  resolveOnPath
25
- } from "./chunk-JWJGP5DQ.js";
19
+ } from "./chunk-INY6HTFL.js";
26
20
  import {
27
21
  initializeClioHome
28
22
  } from "./chunk-I7XBWTYH.js";
23
+ import {
24
+ isSessionEntry
25
+ } from "./chunk-JGRC33J2.js";
29
26
  import {
30
27
  credentialsPresent
31
- } from "./chunk-72GZI5EV.js";
28
+ } from "./chunk-2JH2WHGE.js";
32
29
  import {
33
30
  readSessionFileEntries
34
- } from "./chunk-MQXIVJ35.js";
31
+ } from "./chunk-HAXOFFRH.js";
35
32
  import {
36
33
  interopAgentKind
37
- } from "./chunk-IHXBNWMM.js";
34
+ } from "./chunk-KXDSS5WJ.js";
38
35
  import {
39
36
  formatSettingsIssues,
40
37
  readSettings,
41
38
  validateSettingsFile
42
- } from "./chunk-34BHNEE3.js";
39
+ } from "./chunk-GHS5EBTQ.js";
40
+ import {
41
+ getVersionInfo
42
+ } from "./chunk-XPLRXC72.js";
43
43
  import {
44
44
  openAuthStorage,
45
45
  resolveAuthTarget,
46
46
  targetRequiresAuth
47
- } from "./chunk-WNP7O5WZ.js";
47
+ } from "./chunk-ID64D7PE.js";
48
48
  import {
49
49
  resolveClioDirs
50
50
  } from "./chunk-BYP5D4HI.js";
@@ -360,7 +360,7 @@ async function runDoctorFleetChecks(projectRoot = process.cwd()) {
360
360
  }
361
361
  const nodes = settings.fleet?.nodes ?? [];
362
362
  if (nodes.length === 0) return [];
363
- const { runFleetNodePreflight } = await import("./fleet-preflight-UN5XED4R.js");
363
+ const { runFleetNodePreflight } = await import("./fleet-preflight-25QAFPK4.js");
364
364
  const targets = (settings.targets ?? []).map((target) => ({
365
365
  id: target.id,
366
366
  runtimeId: target.runtime,
@@ -507,8 +507,8 @@ async function runDoctorModelChecks() {
507
507
  if (settings.targets.length === 0) return [];
508
508
  const [{ getRuntimeRegistry }, { registerBuiltinRuntimes }, { listKnownModelsForRuntime }] = await Promise.all([
509
509
  import("./registry-LG64LTF4.js"),
510
- import("./builtins-K6TNDT24.js"),
511
- import("./support-U7QOWY26.js")
510
+ import("./builtins-IA7V7FUC.js"),
511
+ import("./support-CC2UJBJ6.js")
512
512
  ]);
513
513
  const registry = getRuntimeRegistry();
514
514
  if (registry.list().length === 0) registerBuiltinRuntimes(registry);
@@ -559,4 +559,4 @@ export {
559
559
  runDoctorRuntimeChecks,
560
560
  runDoctorModelChecks
561
561
  };
562
- //# sourceMappingURL=chunk-QQLGQY2A.js.map
562
+ //# sourceMappingURL=chunk-N2Z7HLVY.js.map