@iowarp/clio-coder 0.4.1 → 0.4.2

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 (437) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/CONTRIBUTING.md +59 -36
  3. package/README.md +404 -472
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-ZILU3AUO.js → acp-TMDQZDIG.js} +7 -7
  6. package/dist/{agents-HYWGBGQR.js → agents-5N5NG3XG.js} +28 -28
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-N3QT7CBO.js → auth-Z5CCBXKQ.js} +8 -9
  9. package/dist/{builtins-UJLMOVOV.js → builtins-K6TNDT24.js} +4 -4
  10. package/dist/{chunk-GVQJ5CCZ.js → chunk-2HFQNRV3.js} +7 -7
  11. package/dist/{chunk-QMXC4JB7.js → chunk-2NHR3NAY.js} +163 -1401
  12. package/dist/chunk-2X4RYJTJ.js +39 -0
  13. package/dist/{chunk-Y45G3AXC.js → chunk-2Z2IKEXI.js} +6 -10
  14. package/dist/{chunk-EIMVLWB3.js → chunk-34BHNEE3.js} +7 -3
  15. package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
  16. package/dist/chunk-3EBYEESD.js +314 -0
  17. package/dist/{chunk-CTJ4RNAA.js → chunk-3F7VUY77.js} +2 -2
  18. package/dist/{chunk-AP73CFDC.js → chunk-3KIPBMUA.js} +2 -2
  19. package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
  20. package/dist/{chunk-VEGN6WIQ.js → chunk-462T4EGZ.js} +2 -2
  21. package/dist/{chunk-AFKWHWXF.js → chunk-4JDLP6ZS.js} +33 -16
  22. package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
  23. package/dist/{chunk-AKB4GYDL.js → chunk-54ODD65L.js} +5 -5
  24. package/dist/{chunk-BBTJOK6Y.js → chunk-5KW52TEP.js} +3 -3
  25. package/dist/{chunk-6CCS4G3W.js → chunk-5PFYMY2V.js} +2 -2
  26. package/dist/chunk-77QIVUZB.js +1334 -0
  27. package/dist/{chunk-7OBGU7UB.js → chunk-7BHIY2MW.js} +7 -13
  28. package/dist/{chunk-3QSOM6PA.js → chunk-AZ4WMN4W.js} +2 -2
  29. package/dist/{chunk-6NJQITNH.js → chunk-B74PXLU7.js} +6 -3
  30. package/dist/{chunk-R23Z6K6I.js → chunk-B7HM5Z7T.js} +15 -15
  31. package/dist/{chunk-R32CLGZ6.js → chunk-BO7Y52RY.js} +81 -20
  32. package/dist/{chunk-UEDMSP56.js → chunk-BYMNWQ7O.js} +123 -148
  33. package/dist/{chunk-ZJLUDYFY.js → chunk-CRFOIAX3.js} +4 -4
  34. package/dist/{chunk-2NM363SV.js → chunk-CYZW7JHJ.js} +7 -7
  35. package/dist/{chunk-6HMJX2VU.js → chunk-DYHAXKHD.js} +38 -10
  36. package/dist/{chunk-THYWACCR.js → chunk-DZAW46HP.js} +3 -3
  37. package/dist/{chunk-FYUN5KZ3.js → chunk-DZEK6CJN.js} +17 -17
  38. package/dist/{chunk-3I5NY75V.js → chunk-E7GT7O5N.js} +5 -5
  39. package/dist/{chunk-VKFQTNDV.js → chunk-F2I26BDK.js} +4 -4
  40. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  41. package/dist/{chunk-IXJT6DCX.js → chunk-FVDGR2ZL.js} +3 -3
  42. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  43. package/dist/{chunk-7EPLI7VL.js → chunk-HIICAHCJ.js} +2 -2
  44. package/dist/{chunk-E67WX76H.js → chunk-HKMD33FO.js} +29 -80
  45. package/dist/chunk-HLAFFSEK.js +360 -0
  46. package/dist/{chunk-UAPGZHYC.js → chunk-I64IFBLB.js} +9 -2
  47. package/dist/{chunk-XKA2ICR3.js → chunk-I66ZTYNP.js} +440 -175
  48. package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
  49. package/dist/{chunk-PVAMAVBB.js → chunk-IDNA72AH.js} +102 -2
  50. package/dist/{chunk-GCSMB2KY.js → chunk-IKOZFYBN.js} +1 -1
  51. package/dist/{chunk-2VG7KLYV.js → chunk-IKSLQ4XV.js} +5460 -3241
  52. package/dist/{chunk-QKIFBZKT.js → chunk-IMXMHHMQ.js} +166 -25
  53. package/dist/{chunk-74YWRRU5.js → chunk-JBCS7CRR.js} +2 -2
  54. package/dist/{chunk-BDPT6GTK.js → chunk-JWJGP5DQ.js} +2 -2
  55. package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
  56. package/dist/chunk-KPXDY6QF.js +47 -0
  57. package/dist/{chunk-ABLSQ6JX.js → chunk-LJID3DYZ.js} +7 -1
  58. package/dist/{chunk-VKRH2TCS.js → chunk-M2DAX4F6.js} +2 -2
  59. package/dist/{chunk-6I5ILFOF.js → chunk-M2WXEHER.js} +2 -2
  60. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  61. package/dist/{chunk-N5UK64DP.js → chunk-MCMZMDAC.js} +2 -2
  62. package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
  63. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  64. package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
  65. package/dist/{chunk-HUAS7ITX.js → chunk-O3YUNJZ2.js} +13 -21
  66. package/dist/{chunk-MA3H6DM5.js → chunk-P75RZCJW.js} +25 -3
  67. package/dist/{chunk-IG7BCQBA.js → chunk-PGF63K6I.js} +2 -2
  68. package/dist/chunk-PJX3WQUQ.js +42 -0
  69. package/dist/{chunk-6DWBAZ5U.js → chunk-Q4XWMHX6.js} +4 -6
  70. package/dist/{chunk-OJTRZGR3.js → chunk-QQLGQY2A.js} +8 -8
  71. package/dist/{chunk-J4HBWF6Y.js → chunk-RLYRBIYQ.js} +115 -20
  72. package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
  73. package/dist/{chunk-C537JADH.js → chunk-SSEYRH53.js} +6 -7
  74. package/dist/chunk-SZAA6XDG.js +30 -0
  75. package/dist/{chunk-MOPSG2X7.js → chunk-TPEQIQIE.js} +6 -6
  76. package/dist/{chunk-JA5QWE4Z.js → chunk-UBRFI4HS.js} +1879 -1650
  77. package/dist/{chunk-BTGG6BG2.js → chunk-UH347SHR.js} +154 -15
  78. package/dist/{chunk-5YHDIDBP.js → chunk-UH632ZYL.js} +2 -2
  79. package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
  80. package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
  81. package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
  82. package/dist/{chunk-UXN6JT4W.js → chunk-W4YEMFBX.js} +2 -2
  83. package/dist/{chunk-TD3PGPQA.js → chunk-W6NIE6OW.js} +2 -2
  84. package/dist/{chunk-TVH4ONAM.js → chunk-X7IARSHT.js} +3 -3
  85. package/dist/{chunk-PJJ6MY27.js → chunk-XE3PCIXH.js} +3 -3
  86. package/dist/{chunk-FEFIFZTL.js → chunk-XGDPUNND.js} +2 -2
  87. package/dist/{chunk-SCYB3HA4.js → chunk-XOXV5GKE.js} +51 -16
  88. package/dist/{chunk-QTFGO774.js → chunk-XQRY4DTA.js} +24 -11
  89. package/dist/{chunk-BJGUKIG4.js → chunk-YJISEZKC.js} +2 -2
  90. package/dist/{chunk-GPPB3JBE.js → chunk-ZGNYYXQ6.js} +2 -2
  91. package/dist/{chunk-SINK3QR6.js → chunk-ZNT2M6TG.js} +7 -7
  92. package/dist/{chunk-7RY5VZPH.js → chunk-ZW4HH5JJ.js} +6 -6
  93. package/dist/cli/index.js +33 -32
  94. package/dist/{clio-IT3G3VQH.js → clio-7VB377CC.js} +7 -7
  95. package/dist/{code-nav-RK6S7F6E.js → code-nav-YVLCYA7V.js} +85 -17
  96. package/dist/{config-3QZRWZJF.js → config-4HVOS65E.js} +88 -43
  97. package/dist/{configure-FL7Y3KJF.js → configure-PIWO7B24.js} +10 -10
  98. package/dist/{context-5HE7ODYK.js → context-IYEHL3WQ.js} +33 -31
  99. package/dist/{context-XNHL75JV.js → context-KQYIWPWT.js} +47 -34
  100. package/dist/{context-KYQFRVDC.js → context-N6ZE3LGJ.js} +11 -11
  101. package/dist/{context-clear-N545L53A.js → context-clear-G4OGZJDS.js} +33 -31
  102. package/dist/{context-working-set-QHKXSV2F.js → context-working-set-BWLF6LJP.js} +7 -7
  103. package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-2QQAITS3.js} +38 -38
  104. package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
  105. package/dist/{doctor-ZGPEGHIP.js → doctor-LHBD36VU.js} +23 -22
  106. package/dist/{eval-GXLL44RD.js → eval-C45FYRJ6.js} +21 -20
  107. package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-6DEJPLBF.js} +2 -2
  108. package/dist/{evidence-HWLBRH3Q.js → evidence-6SHONYAF.js} +30 -28
  109. package/dist/{evolve-FTZBMNVW.js → evolve-KRKMV72X.js} +30 -28
  110. package/dist/{extensions-VHRBEID7.js → extensions-KPZ2UHBB.js} +5 -3
  111. package/dist/{fleet-CKZHJWZJ.js → fleet-IVTCKDHT.js} +62 -61
  112. package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-EDWL3IT7.js} +5 -5
  113. package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-YP3YEFGK.js} +4 -4
  114. package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-ZFWKHY2M.js} +16 -14
  115. package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-FVUNCBML.js} +31 -29
  116. package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-UN5XED4R.js} +2 -2
  117. package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-XOWC4HSX.js} +17 -15
  118. package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-UN3SODEL.js} +30 -28
  119. package/dist/{fleet-view-WAMJYNDT.js → fleet-view-TWHJKCN6.js} +31 -29
  120. package/dist/{init-5XQRBOFV.js → init-T2QORQ3Y.js} +50 -49
  121. package/dist/{interop-34TVO25M.js → interop-IN5I2A66.js} +5 -5
  122. package/dist/{library-3QY6KF57.js → library-LSCATDLZ.js} +15 -13
  123. package/dist/{memory-L4UTIIIW.js → memory-HYOKAGGJ.js} +31 -29
  124. package/dist/{models-ZVX3QOWE.js → models-2GPMFYCM.js} +22 -21
  125. package/dist/{monitor-CEKVSYTS.js → monitor-E4ASVUJH.js} +34 -32
  126. package/dist/{orchestrator-77BAP6BC.js → orchestrator-DDMPR3PY.js} +984 -583
  127. package/dist/{panes-7STHOAUJ.js → panes-E3RUXOW5.js} +4 -4
  128. package/dist/{panes-SHAUIRXY.js → panes-IXKLOKA2.js} +23 -8
  129. package/dist/{reset-EOLM7GVE.js → reset-OAQP3W4O.js} +4 -4
  130. package/dist/{resources-74GKTLSF.js → resources-OTRSN34L.js} +15 -13
  131. package/dist/{run-HBAUJNNZ.js → run-5DEYH5QK.js} +60 -59
  132. package/dist/{share-G3APVLVP.js → share-IHWTLO3M.js} +19 -15
  133. package/dist/{skills-35HHUKCR.js → skills-IYMXMKW4.js} +17 -15
  134. package/dist/{skills-eval-QN4HSHDC.js → skills-eval-DROHSJAR.js} +36 -36
  135. package/dist/{skills-inventory-J357J34F.js → skills-inventory-D7X4L4ZX.js} +15 -13
  136. package/dist/{slash-commands-JZZCQA32.js → slash-commands-QBM7UZ3B.js} +21 -18
  137. package/dist/{steer-XAVHJM22.js → steer-Z5DO23FJ.js} +2 -2
  138. package/dist/{targets-DSM6CY3M.js → targets-P2FUC4IL.js} +25 -28
  139. package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-YREJ3JX2.js} +5 -5
  140. package/dist/{tools-MKNWVPBH.js → tools-5B7RO6MV.js} +4 -4
  141. package/dist/{trace-ECQ7TIYZ.js → trace-YMGMUM6A.js} +55 -7
  142. package/dist/{upgrade-H7TOM7YL.js → upgrade-PXK3S2YM.js} +11 -9
  143. package/dist/{usage-X52N3IDJ.js → usage-ME5MPXGX.js} +36 -34
  144. package/dist/{verifiers-EJTVVSMA.js → verifiers-BVZ7IWOO.js} +5 -5
  145. package/dist/{verify-YJL6XET2.js → verify-5K7ZKQFC.js} +4 -4
  146. package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
  147. package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-F5W5QTYY.js} +48 -47
  148. package/dist/{with-panes-OBOBFIIR.js → with-panes-BYOJCLAM.js} +51 -255
  149. package/dist/worker/entry.js +45 -30
  150. package/docs/README.md +176 -81
  151. package/docs/{acp.md → architecture/acp.md} +36 -20
  152. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  153. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  154. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +26 -23
  155. package/docs/architecture/artifact-versions.md +90 -0
  156. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  157. package/docs/{context-engine.md → architecture/context-engine.md} +25 -25
  158. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  159. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  160. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  161. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  162. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  163. package/docs/{model-catalog.md → architecture/model-catalog.md} +40 -17
  164. package/docs/{observability.md → architecture/observability.md} +26 -13
  165. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  166. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +55 -20
  167. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +35 -24
  168. package/docs/{safety-model.md → architecture/safety-model.md} +20 -15
  169. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  170. package/docs/architecture/time-conventions.md +125 -0
  171. package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
  172. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  173. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  174. package/docs/{built-in-agents.md → guide/built-in-agents.md} +50 -34
  175. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +65 -60
  176. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +227 -289
  177. package/docs/guide/configuration-reference.md +1158 -0
  178. package/docs/{environment-variables.md → guide/environment-variables.md} +31 -28
  179. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
  180. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  181. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
  182. package/docs/{glossary.md → guide/glossary.md} +14 -11
  183. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +44 -13
  184. package/docs/guide/panes-and-files.md +290 -0
  185. package/docs/{proactive-memory.md → guide/proactive-memory.md} +79 -66
  186. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  187. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +7 -3
  188. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  189. package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
  190. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
  191. package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
  192. package/docs/{development-pipeline.md → process/development-pipeline.md} +24 -26
  193. package/docs/process/documentation-coverage.md +100 -0
  194. package/docs/process/documentation-guide.md +187 -0
  195. package/docs/{eval-runner.md → process/eval-runner.md} +41 -50
  196. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  197. package/docs/{evolution.md → process/evolution.md} +2 -2
  198. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
  199. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  200. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  201. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  202. package/evals/README.md +2 -2
  203. package/package.json +9 -7
  204. package/skills/README.md +46 -37
  205. package/skills/coding/ast-grep/SKILL.md +2 -2
  206. package/skills/coding/coding-standards/SKILL.md +2 -2
  207. package/skills/coding/prototype/SKILL.md +2 -2
  208. package/skills/coding/tdd/SKILL.md +2 -2
  209. package/skills/context/context-handoff/SKILL.md +2 -2
  210. package/skills/context/context-prime/SKILL.md +2 -2
  211. package/skills/git/file-ticket/SKILL.md +2 -2
  212. package/skills/git/fix-issue/SKILL.md +3 -3
  213. package/skills/git/resolve-merge-conflicts/SKILL.md +2 -2
  214. package/skills/git/ship/SKILL.md +2 -2
  215. package/skills/git/worktree-create/SKILL.md +2 -2
  216. package/skills/git/worktree-merge/SKILL.md +2 -2
  217. package/skills/meta/clio-coder-dev/SKILL.md +9 -5
  218. package/skills/meta/clio-coder-dev/evals.md +3 -2
  219. package/skills/meta/clio-coder-test/SKILL.md +102 -95
  220. package/skills/meta/clio-coder-test/evals.md +9 -4
  221. package/skills/meta/clio-coder-test/references/harness.md +100 -124
  222. package/skills/meta/clio-coder-test/references/test-map.md +77 -50
  223. package/skills/meta/credentials/SKILL.md +2 -2
  224. package/skills/meta/find-skills/SKILL.md +2 -2
  225. package/skills/meta/herdr/SKILL.md +2 -2
  226. package/skills/meta/skill-craft/SKILL.md +22 -16
  227. package/skills/planning/architecture/SKILL.md +2 -2
  228. package/skills/planning/backlog/SKILL.md +2 -2
  229. package/skills/planning/prd/SKILL.md +2 -2
  230. package/skills/planning/product-intent/SKILL.md +2 -2
  231. package/skills/planning/tech-spec/SKILL.md +2 -2
  232. package/skills/registry.yaml +62 -62
  233. package/skills/research/arxiv-literature/SKILL.md +2 -2
  234. package/skills/research/experiment-protocol/SKILL.md +2 -2
  235. package/skills/research/scientific-debugging/SKILL.md +2 -2
  236. package/skills/research/scientific-modernization/SKILL.md +2 -2
  237. package/skills/skill-marketplace.json +62 -62
  238. package/skills/workflow/cut-it/SKILL.md +2 -2
  239. package/skills/workflow/design-council/SKILL.md +2 -2
  240. package/skills/workflow/grill-me/SKILL.md +2 -2
  241. package/skills/workflow/workflow-distiller/SKILL.md +2 -2
  242. package/src/cli/args.ts +2 -2
  243. package/src/cli/bootstrap-generate.ts +1 -1
  244. package/src/cli/config-inspect.ts +65 -12
  245. package/src/cli/configure.ts +0 -4
  246. package/src/cli/docs.ts +22 -14
  247. package/src/cli/doctor-naming.ts +5 -5
  248. package/src/cli/doctor-toolchain.ts +3 -3
  249. package/src/cli/eval.ts +1 -2
  250. package/src/cli/extensions.ts +2 -1
  251. package/src/cli/fleet.ts +1 -1
  252. package/src/cli/index.ts +2 -1
  253. package/src/cli/internal-dispatch.ts +3 -4
  254. package/src/cli/panes.ts +19 -5
  255. package/src/cli/run.ts +2 -2
  256. package/src/cli/share.ts +5 -1
  257. package/src/cli/skills-eval.ts +3 -3
  258. package/src/cli/targets.ts +2 -6
  259. package/src/cli/trace.ts +55 -4
  260. package/src/cli/wiki-generate.ts +1 -1
  261. package/src/core/artifact-paths.ts +1 -1
  262. package/src/core/bash-exec.ts +131 -86
  263. package/src/core/bus-events.ts +51 -6
  264. package/src/core/config.ts +5 -1
  265. package/src/core/defaults.ts +7 -4
  266. package/src/core/dispatch-outcome.ts +16 -0
  267. package/src/core/guardrails.ts +10 -49
  268. package/src/core/prompt-hint.ts +9 -0
  269. package/src/domains/agents/builtins/architect.md +2 -3
  270. package/src/domains/agents/builtins/coder.md +3 -2
  271. package/src/domains/agents/builtins/debugger.md +2 -2
  272. package/src/domains/agents/builtins/documenter.md +2 -2
  273. package/src/domains/agents/builtins/git-master.md +1 -1
  274. package/src/domains/agents/builtins/oracle.md +1 -1
  275. package/src/domains/agents/builtins/provenance.md +1 -1
  276. package/src/domains/agents/builtins/researcher.md +1 -1
  277. package/src/domains/agents/builtins/scout.md +1 -1
  278. package/src/domains/agents/builtins/tester.md +2 -2
  279. package/src/domains/agents/builtins/verifier.md +2 -2
  280. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  281. package/src/domains/agents/catalog.ts +12 -14
  282. package/src/domains/agents/contract.ts +2 -0
  283. package/src/domains/agents/extension.ts +23 -1
  284. package/src/domains/config/keybindings.ts +8 -0
  285. package/src/domains/context/extension.ts +0 -3
  286. package/src/domains/context/working-set/path-index.ts +1 -0
  287. package/src/domains/dispatch/capability-match.ts +10 -0
  288. package/src/domains/dispatch/extension.ts +105 -22
  289. package/src/domains/dispatch/host-verification.ts +435 -39
  290. package/src/domains/dispatch/intent-requirements.ts +10 -0
  291. package/src/domains/dispatch/intent.ts +18 -1
  292. package/src/domains/dispatch/path-scope.ts +235 -24
  293. package/src/domains/dispatch/run-event-journal.ts +4 -15
  294. package/src/domains/dispatch/state.ts +2 -3
  295. package/src/domains/dispatch/transport.ts +45 -21
  296. package/src/domains/dispatch/types.ts +55 -3
  297. package/src/domains/eval/artifacts/store.ts +5 -0
  298. package/src/domains/eval/store.ts +8 -1
  299. package/src/domains/evidence/trust-status.ts +10 -1
  300. package/src/domains/extensions/contract.ts +15 -1
  301. package/src/domains/extensions/discovery.ts +238 -41
  302. package/src/domains/extensions/extension.ts +105 -6
  303. package/src/domains/extensions/index.ts +24 -0
  304. package/src/domains/extensions/integrity.ts +189 -0
  305. package/src/domains/extensions/manager.ts +17 -1
  306. package/src/domains/extensions/resource-path.ts +27 -0
  307. package/src/domains/extensions/resources.ts +18 -38
  308. package/src/domains/extensions/snapshot-store.ts +39 -0
  309. package/src/domains/extensions/snapshot.ts +180 -0
  310. package/src/domains/extensions/state.ts +385 -57
  311. package/src/domains/extensions/types.ts +118 -1
  312. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  313. package/src/domains/lifecycle/migrations/index.ts +2 -0
  314. package/src/domains/lifecycle/naming-resources.ts +19 -4
  315. package/src/domains/lifecycle/naming-yazi.ts +10 -5
  316. package/src/domains/middleware/contract.ts +26 -0
  317. package/src/domains/middleware/extension.ts +24 -24
  318. package/src/domains/middleware/hook-receipts.ts +27 -4
  319. package/src/domains/middleware/hooks-io.ts +65 -32
  320. package/src/domains/middleware/hooks.ts +64 -0
  321. package/src/domains/middleware/index.ts +28 -4
  322. package/src/domains/middleware/registrations.ts +326 -0
  323. package/src/domains/middleware/runtime.ts +28 -0
  324. package/src/domains/middleware/snapshot.ts +20 -7
  325. package/src/domains/mux/contract.ts +38 -0
  326. package/src/domains/mux/detect.ts +6 -13
  327. package/src/domains/mux/index.ts +1 -1
  328. package/src/domains/mux/operations.ts +44 -5
  329. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  330. package/src/domains/mux/yazi/session.ts +53 -4
  331. package/src/domains/mux/yazi/theme.ts +117 -17
  332. package/src/domains/observability/contract.ts +10 -11
  333. package/src/domains/observability/extension.ts +11 -3
  334. package/src/domains/observability/projection.ts +14 -90
  335. package/src/domains/observability/trace-store.ts +43 -7
  336. package/src/domains/prompts/compiler.ts +73 -53
  337. package/src/domains/prompts/contract.ts +15 -3
  338. package/src/domains/prompts/extension.ts +97 -9
  339. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
  340. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  341. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  342. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  343. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  344. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  345. package/src/domains/prompts/fragments/operating/skills.md +10 -24
  346. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  347. package/src/domains/providers/index.ts +1 -1
  348. package/src/domains/providers/model-runtime-capabilities.ts +85 -21
  349. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +669 -104
  350. package/src/domains/providers/runtime-resolution.ts +31 -0
  351. package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
  352. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  353. package/src/domains/providers/types/cost-provenance.ts +19 -0
  354. package/src/domains/providers/types/local-model-quirks.ts +85 -37
  355. package/src/domains/resources/skills/loader.ts +16 -19
  356. package/src/domains/safety/call-target.ts +1 -1
  357. package/src/domains/safety/loop-detector.ts +7 -4
  358. package/src/domains/session/task-board.ts +10 -9
  359. package/src/domains/share/archive.ts +164 -7
  360. package/src/engine/acp/server.ts +62 -9
  361. package/src/engine/apis/llamacpp-residency.ts +3 -4
  362. package/src/engine/apis/lmstudio.ts +3 -3
  363. package/src/engine/apis/ollama-native.ts +6 -6
  364. package/src/engine/apis/openai-completions.ts +28 -25
  365. package/src/engine/apis/output-budget.ts +8 -18
  366. package/src/engine/apis/residency.ts +8 -27
  367. package/src/engine/gemma-channel-filter.ts +19 -0
  368. package/src/engine/loop-guard.ts +92 -12
  369. package/src/engine/worker-runtime.ts +40 -11
  370. package/src/engine/worker-tools.ts +3 -1
  371. package/src/entry/extension-hook-sources.ts +28 -0
  372. package/src/entry/extension-reload.ts +309 -0
  373. package/src/entry/orchestrator.ts +59 -35
  374. package/src/interactive/application-controller.ts +2 -1
  375. package/src/interactive/bus-notices.ts +8 -1
  376. package/src/interactive/chat-loop-messages.ts +3 -13
  377. package/src/interactive/chat-loop.ts +10 -1
  378. package/src/interactive/chat-panel.ts +36 -13
  379. package/src/interactive/chat-renderer.ts +71 -7
  380. package/src/interactive/dispatch-board.ts +6 -11
  381. package/src/interactive/footer/widgets.ts +13 -0
  382. package/src/interactive/interactive-application.ts +39 -4
  383. package/src/interactive/interactive-input-runtime.ts +4 -0
  384. package/src/interactive/interactive-presentation.ts +2 -2
  385. package/src/interactive/interactive-slash-runtime.ts +2 -0
  386. package/src/interactive/overlays/extensions.ts +9 -1
  387. package/src/interactive/overlays/help-reference.ts +13 -0
  388. package/src/interactive/overlays/settings.ts +27 -16
  389. package/src/interactive/panes-runtime.ts +111 -35
  390. package/src/interactive/prompt-cache-identity.ts +88 -0
  391. package/src/interactive/slash-commands.ts +129 -14
  392. package/src/interactive/stream-pacing-policy.ts +0 -23
  393. package/src/interactive/turn-context.ts +30 -15
  394. package/src/interactive/yazi-bridge.ts +60 -6
  395. package/src/tools/agent-tools.ts +30 -1
  396. package/src/tools/artifact.ts +2 -2
  397. package/src/tools/ask-user.ts +3 -3
  398. package/src/tools/bash.ts +1 -1
  399. package/src/tools/bootstrap.ts +4 -0
  400. package/src/tools/builtin-tool-catalog.ts +52 -22
  401. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  402. package/src/tools/codewiki/code-nav.ts +99 -13
  403. package/src/tools/context/docs-engine.ts +20 -7
  404. package/src/tools/context/index.ts +29 -12
  405. package/src/tools/core-bootstrap.ts +28 -6
  406. package/src/tools/credential-present.ts +1 -2
  407. package/src/tools/dispatch-arguments.ts +5 -1
  408. package/src/tools/dispatch-plan.ts +48 -4
  409. package/src/tools/dispatch-run-events.ts +1 -1
  410. package/src/tools/dispatch-schema.ts +338 -0
  411. package/src/tools/dispatch-types.ts +3 -0
  412. package/src/tools/dispatch.ts +9 -254
  413. package/src/tools/ledger.ts +3 -5
  414. package/src/tools/monitor-surface.ts +5 -13
  415. package/src/tools/observation.ts +4 -5
  416. package/src/tools/panes-surface.ts +4 -11
  417. package/src/tools/panes.ts +4 -2
  418. package/src/tools/policy.ts +15 -2
  419. package/src/tools/read.ts +5 -6
  420. package/src/tools/registry.ts +30 -7
  421. package/src/tools/result-shaping.ts +18 -14
  422. package/src/tools/steer-surface.ts +1 -1
  423. package/src/tools/tasks.ts +1 -1
  424. package/src/tools/truncate.ts +6 -5
  425. package/src/tools/verify/surface.ts +6 -12
  426. package/src/tools/web-fetch-surface.ts +1 -3
  427. package/dist/chunk-5QIAJV2D.js +0 -48
  428. package/dist/chunk-JZWT5J3Y.js +0 -814
  429. package/dist/chunk-K7VKOLQQ.js +0 -15
  430. package/dist/chunk-PMZCIOCJ.js +0 -25
  431. package/dist/chunk-SUW5DORT.js +0 -819
  432. package/dist/chunk-UOV2BYIW.js +0 -107
  433. package/dist/chunk-WR6U3OVP.js +0 -45
  434. package/docs/artifact-versions.md +0 -67
  435. package/docs/documentation-coverage.md +0 -46
  436. package/docs/documentation-guide.md +0 -167
  437. package/docs/time-conventions.md +0 -101
@@ -1,32 +1,39 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  migrateSettingsV1Document
4
- } from "./chunk-AP73CFDC.js";
4
+ } from "./chunk-3KIPBMUA.js";
5
5
  import {
6
6
  parseAgentRecipeSchema
7
- } from "./chunk-ZJLUDYFY.js";
7
+ } from "./chunk-CRFOIAX3.js";
8
8
  import {
9
9
  parseFleetContract
10
- } from "./chunk-CTJ4RNAA.js";
10
+ } from "./chunk-3F7VUY77.js";
11
11
  import {
12
12
  parseFrontmatter
13
13
  } from "./chunk-RKKLTLYB.js";
14
+ import {
15
+ extensionBaseDir,
16
+ extensionContentDigest,
17
+ installExtension,
18
+ listInstalledExtensions,
19
+ loadManifestFromRoot
20
+ } from "./chunk-77QIVUZB.js";
14
21
  import {
15
22
  assertAgentSpecPolicy,
16
23
  normalizeAgentSpec
17
- } from "./chunk-IG7BCQBA.js";
24
+ } from "./chunk-PGF63K6I.js";
18
25
  import {
19
26
  readSettings,
20
27
  settingsPath,
21
28
  updateSettings,
22
29
  validateSettings
23
- } from "./chunk-EIMVLWB3.js";
30
+ } from "./chunk-34BHNEE3.js";
24
31
  import {
25
32
  readClioVersion
26
33
  } from "./chunk-IWHMRKLL.js";
27
34
  import {
28
35
  DEFAULT_SETTINGS
29
- } from "./chunk-BWW4HLO4.js";
36
+ } from "./chunk-UXCU4E3T.js";
30
37
  import {
31
38
  require_dist
32
39
  } from "./chunk-APJ265NV.js";
@@ -47,7 +54,18 @@ import {
47
54
  init_esm_shims();
48
55
  var import_yaml = __toESM(require_dist(), 1);
49
56
  import { createHash } from "node:crypto";
50
- import { existsSync, lstatSync, readdirSync, readFileSync, realpathSync, statSync } from "node:fs";
57
+ import {
58
+ existsSync,
59
+ lstatSync,
60
+ mkdirSync,
61
+ mkdtempSync,
62
+ readdirSync,
63
+ readFileSync,
64
+ realpathSync,
65
+ rmSync,
66
+ statSync
67
+ } from "node:fs";
68
+ import { tmpdir } from "node:os";
51
69
  import path from "node:path";
52
70
  var PROJECT_CONTEXT_FILES = ["CLIO-CODER.md", "AGENTS.md", "CODEX.md", "GEMINI.md", "CLAUDE.md"];
53
71
  var SETTINGS_FRAGMENT_PATH = "settings.fragment.yaml";
@@ -218,7 +236,14 @@ function createShareArchive(options = {}) {
218
236
  if (includes.includeExtensions) {
219
237
  for (const scope of scopes) {
220
238
  const root = scope === "user" ? path.join(clioConfigDir(), "extensions") : path.join(cwd, ".clio-coder", "extensions");
221
- addTree(files, "extension", scope, root, `${scope}/extensions`, (rel) => path.basename(rel) !== "state.json");
239
+ addTree(
240
+ files,
241
+ "extension",
242
+ scope,
243
+ root,
244
+ `${scope}/extensions`,
245
+ (relativePath) => !relativePath.split("/")[0]?.startsWith(".") && path.basename(relativePath) !== "state.json"
246
+ );
222
247
  }
223
248
  }
224
249
  if (includes.includeSettings) {
@@ -427,6 +452,79 @@ function preflightImportTargets(archive, options) {
427
452
  if (diagnostics.length > 0) return { targets: [], diagnostics };
428
453
  return { targets, diagnostics };
429
454
  }
455
+ function withStagedExtensionPackage(input, fn) {
456
+ const stagingParent = mkdtempSync(path.join(tmpdir(), "clio-share-extension-"));
457
+ const root = path.join(stagingParent, input.id);
458
+ try {
459
+ mkdirSync(root, { recursive: true });
460
+ for (const file of input.files) safeResourceWrite(path.join(root, file.relativePath), file.buffer);
461
+ return fn(root);
462
+ } finally {
463
+ rmSync(stagingParent, { recursive: true, force: true });
464
+ }
465
+ }
466
+ function prepareExtensionPackages(targets, options) {
467
+ const diagnostics = [];
468
+ const grouped = /* @__PURE__ */ new Map();
469
+ for (const target of targets) {
470
+ if (target.entry.type !== "extension") continue;
471
+ const segments = relativePathSegments(target.entry.relativePath);
472
+ const id = segments?.[0];
473
+ const packagePath = segments?.slice(1).join("/");
474
+ if (!id || !packagePath) {
475
+ diagnostics.push({
476
+ type: "error",
477
+ message: `extension archive path must be <id>/<package-path>: ${pathDiagnostic(target.entry)}`,
478
+ path: target.entry.relativePath
479
+ });
480
+ continue;
481
+ }
482
+ const scope = target.scope;
483
+ const key = `${scope}\0${id}`;
484
+ const group = grouped.get(key) ?? { id, scope, files: [] };
485
+ if (group.files.some((file) => file.relativePath === packagePath)) {
486
+ diagnostics.push({ type: "error", message: `duplicate extension archive path ${target.entry.relativePath}` });
487
+ continue;
488
+ }
489
+ group.files.push({ relativePath: packagePath, buffer: target.buffer });
490
+ grouped.set(key, group);
491
+ }
492
+ const packages = [];
493
+ for (const group of [...grouped.values()].sort((a, b) => `${a.scope}/${a.id}`.localeCompare(`${b.scope}/${b.id}`))) {
494
+ try {
495
+ const contentDigest = withStagedExtensionPackage(group, (root) => {
496
+ const candidate = loadManifestFromRoot(root);
497
+ if (!candidate.valid || !candidate.manifest) {
498
+ throw new Error(candidate.diagnostics.map((diagnostic) => diagnostic.message).join("; ") || "manifest is invalid");
499
+ }
500
+ if (candidate.manifest.id !== group.id) {
501
+ throw new Error(`manifest id ${candidate.manifest.id} does not match archive package ${group.id}`);
502
+ }
503
+ return extensionContentDigest(root);
504
+ });
505
+ const cwd = path.resolve(options.cwd ?? process.cwd());
506
+ const targetRoot = path.join(extensionBaseDir(group.scope, cwd), group.id);
507
+ const existing = listInstalledExtensions(cwd, { scope: group.scope, all: true }).find(
508
+ (extension) => extension.id === group.id && extension.rootPath === targetRoot
509
+ );
510
+ const alreadyVerified = existing?.valid === true && existing.provenance?.contentDigest === contentDigest && existing.observedContentDigest === contentDigest;
511
+ if (existsSync(targetRoot) && !alreadyVerified && !options.force) {
512
+ diagnostics.push({
513
+ type: "conflict",
514
+ message: `extension ${group.id} is not already installed with the archive's verified digest; re-run with --force to use the canonical installer`,
515
+ path: targetRoot
516
+ });
517
+ }
518
+ packages.push({ ...group, contentDigest, install: !alreadyVerified });
519
+ } catch (error) {
520
+ diagnostics.push({
521
+ type: "error",
522
+ message: `extension ${group.id} in share archive is invalid: ${error instanceof Error ? error.message : String(error)}`
523
+ });
524
+ }
525
+ }
526
+ return { packages, diagnostics };
527
+ }
430
528
  function versionDiagnostics(archive) {
431
529
  const current = readClioVersion();
432
530
  const [curMajor, curMinor] = current.split(".");
@@ -473,14 +571,21 @@ function prepareShareImport(filePath, options = {}) {
473
571
  archive: null,
474
572
  actions: [],
475
573
  diagnostics: [{ type: "error", message: err instanceof Error ? err.message : String(err), path: filePath }],
476
- targets: []
574
+ targets: [],
575
+ extensionPackages: []
477
576
  };
478
577
  }
479
578
  const diagnostics = [...versionDiagnostics(archive)];
480
579
  const actions = [];
481
580
  const preflight = preflightImportTargets(archive, options);
482
581
  if (preflight.diagnostics.length > 0) {
483
- return { archive, actions: [], diagnostics: [...diagnostics, ...preflight.diagnostics], targets: [] };
582
+ return {
583
+ archive,
584
+ actions: [],
585
+ diagnostics: [...diagnostics, ...preflight.diagnostics],
586
+ targets: [],
587
+ extensionPackages: []
588
+ };
484
589
  }
485
590
  for (const targetInfo of preflight.targets) {
486
591
  const { entry, target, scope, buffer } = targetInfo;
@@ -523,7 +628,9 @@ function prepareShareImport(filePath, options = {}) {
523
628
  }
524
629
  actions.push({ action: "write", type: entry.type, scope, path: target });
525
630
  }
526
- return { archive, actions, diagnostics, targets: preflight.targets };
631
+ const extensions = prepareExtensionPackages(preflight.targets, options);
632
+ diagnostics.push(...extensions.diagnostics);
633
+ return { archive, actions, diagnostics, targets: preflight.targets, extensionPackages: extensions.packages };
527
634
  }
528
635
  function publicImportPlan(prepared, recovery) {
529
636
  return {
@@ -559,10 +666,42 @@ function importShareArchive(filePath, options = {}) {
559
666
  };
560
667
  let failed;
561
668
  try {
669
+ for (const extensionPackage of prepared.extensionPackages) {
670
+ if (!extensionPackage.install) continue;
671
+ const cwd = path.resolve(options.cwd ?? process.cwd());
672
+ failed = path.join(extensionBaseDir(extensionPackage.scope, cwd), extensionPackage.id);
673
+ const result = withStagedExtensionPackage(
674
+ extensionPackage,
675
+ (root) => installExtension(root, {
676
+ cwd,
677
+ scope: extensionPackage.scope,
678
+ ...options.force !== void 0 ? { force: options.force } : {}
679
+ })
680
+ );
681
+ for (const backup of [result.recovery?.stateBackup, result.recovery?.packageBackup]) {
682
+ if (backup && !backups.includes(backup)) backups.push(backup);
683
+ }
684
+ const errors = result.diagnostics.filter((diagnostic) => diagnostic.type === "error");
685
+ if (!result.extension || errors.length > 0) {
686
+ throw new Error(errors.map((diagnostic) => diagnostic.message).join("; ") || "canonical install failed");
687
+ }
688
+ if (result.extension.provenance?.contentDigest !== extensionPackage.contentDigest) {
689
+ throw new Error(`canonical install digest mismatch for extension ${extensionPackage.id}`);
690
+ }
691
+ for (const diagnostic of result.diagnostics) {
692
+ prepared.diagnostics.push({
693
+ type: "warning",
694
+ message: diagnostic.message,
695
+ ...diagnostic.path ? { path: diagnostic.path } : {}
696
+ });
697
+ }
698
+ if (!written.includes(result.extension.rootPath)) written.push(result.extension.rootPath);
699
+ failed = void 0;
700
+ }
562
701
  for (let index = 0; index < prepared.targets.length; index += 1) {
563
702
  const targetInfo = prepared.targets[index];
564
703
  const action = prepared.actions[index];
565
- if (!targetInfo || !action || action.action === "skip") continue;
704
+ if (!targetInfo || !action || action.action === "skip" || targetInfo.entry.type === "extension") continue;
566
705
  failed = targetInfo.target;
567
706
  if (targetInfo.entry.type === "settings") {
568
707
  const path2 = mergeSettingsFragment(targetInfo.buffer);
@@ -577,7 +716,7 @@ function importShareArchive(filePath, options = {}) {
577
716
  );
578
717
  failed = void 0;
579
718
  }
580
- return plan;
719
+ return publicImportPlan(prepared, backups.length > 0 ? { written, backups } : void 0);
581
720
  } catch (err) {
582
721
  if (failed) {
583
722
  const expectedBackup = safeResourceBackupPath(failed);
@@ -596,7 +735,7 @@ function importShareArchive(filePath, options = {}) {
596
735
  ...prepared.diagnostics,
597
736
  {
598
737
  type: "error",
599
- message: `share import failed while writing${failed ? ` ${failed}` : ""}: ${reason}`,
738
+ message: `share import failed${failed ? ` while importing ${failed}` : ""}: ${reason}`,
600
739
  ...failed ? { path: failed } : {}
601
740
  }
602
741
  ]
@@ -653,4 +792,4 @@ export {
653
792
  importShareArchive,
654
793
  ShareDomainModule
655
794
  };
656
- //# sourceMappingURL=chunk-BTGG6BG2.js.map
795
+ //# sourceMappingURL=chunk-UH347SHR.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  compileExecutionPlan
4
- } from "./chunk-THYWACCR.js";
4
+ } from "./chunk-DZAW46HP.js";
5
5
  import {
6
6
  deriveExecutionRole
7
7
  } from "./chunk-H7IXIC72.js";
@@ -94,4 +94,4 @@ function compileScoutTransition(input) {
94
94
  export {
95
95
  compileScoutTransition
96
96
  };
97
- //# sourceMappingURL=chunk-5YHDIDBP.js.map
97
+ //# sourceMappingURL=chunk-UH632ZYL.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-LL4KHSZI.js";
5
5
  import {
6
6
  GUARDRAIL_DEFAULTS
7
- } from "./chunk-NLFAQR7Z.js";
7
+ } from "./chunk-S66XZJOF.js";
8
8
  import {
9
9
  init_esm_shims
10
10
  } from "./chunk-3R73A4XB.js";
@@ -48,13 +48,13 @@ var DEFAULT_SETTINGS = {
48
48
  chat: {
49
49
  target: null,
50
50
  model: null,
51
- thinkingLevel: "off",
51
+ thinkingLevel: "low",
52
52
  modelPicker: {
53
53
  cycleSet: [],
54
54
  favorites: [],
55
55
  recentLimit: 12
56
56
  },
57
- maxOutputTokens: 32768,
57
+ maxOutputTokens: 0,
58
58
  prewarm: true,
59
59
  retry: {
60
60
  enabled: true,
@@ -92,6 +92,7 @@ var DEFAULT_SETTINGS = {
92
92
  history: { maxRuns: GUARDRAIL_DEFAULTS.maxDispatchRuns, journal: true }
93
93
  },
94
94
  context: {
95
+ toolResultMaxBytes: 65536,
95
96
  workingSet: DEFAULT_WORKING_SET_SETTINGS,
96
97
  compaction: {
97
98
  auto: true,
@@ -172,12 +173,12 @@ targets: []
172
173
  chat:
173
174
  target: null
174
175
  model: null
175
- thinkingLevel: off
176
+ thinkingLevel: low
176
177
  modelPicker:
177
178
  cycleSet: []
178
179
  favorites: []
179
180
  recentLimit: 12
180
- maxOutputTokens: 32768
181
+ maxOutputTokens: 0
181
182
  prewarm: true
182
183
  retry:
183
184
  enabled: true
@@ -216,6 +217,7 @@ fleet:
216
217
  journal: true
217
218
 
218
219
  context:
220
+ toolResultMaxBytes: 65536
219
221
  workingSet:
220
222
  enabled: true
221
223
  policy: structural-v1
@@ -298,4 +300,4 @@ export {
298
300
  DEFAULT_SETTINGS,
299
301
  DEFAULT_SETTINGS_YAML
300
302
  };
301
- //# sourceMappingURL=chunk-BWW4HLO4.js.map
303
+ //# sourceMappingURL=chunk-UXCU4E3T.js.map
@@ -18,20 +18,12 @@ var RUN_EVENT_JOURNAL_DIR = "runs";
18
18
  var RUN_EVENT_JOURNAL_FILE = "events.ndjson";
19
19
  var RUN_EVENT_JOURNAL_CAP_BYTES = 2 * 1024 * 1024;
20
20
  var RUN_EVENT_JOURNAL_FLUSH_BYTES = 8 * 1024;
21
- var RUN_EVENT_JOURNAL_ENV_VAR = "CLIO_CODER_RUN_JOURNAL";
22
21
  var configuredEnabled;
23
22
  function configureRunEventJournal(enabled) {
24
23
  configuredEnabled = enabled;
25
24
  }
26
- function parseEnvFlag(raw) {
27
- if (raw === void 0) return void 0;
28
- const normalized = raw.trim().toLowerCase();
29
- if (normalized === "1" || normalized === "true" || normalized === "on") return true;
30
- if (normalized === "0" || normalized === "false" || normalized === "off") return false;
31
- return void 0;
32
- }
33
- function runEventJournalEnabled(env = process.env) {
34
- return parseEnvFlag(env[RUN_EVENT_JOURNAL_ENV_VAR]) ?? configuredEnabled ?? true;
25
+ function runEventJournalEnabled() {
26
+ return configuredEnabled ?? true;
35
27
  }
36
28
  function runEventJournalRoot() {
37
29
  return join(clioStateDir(), RUN_EVENT_JOURNAL_DIR);
@@ -362,4 +354,4 @@ export {
362
354
  defaultRunEventJournal,
363
355
  readRunEventJournal
364
356
  };
365
- //# sourceMappingURL=chunk-6VC4OV3Z.js.map
357
+ //# sourceMappingURL=chunk-VIA6RFQZ.js.map
@@ -137,7 +137,8 @@ CREATE TABLE runs (
137
137
  started_at TEXT NOT NULL,
138
138
  ended_at TEXT,
139
139
  total_tokens INTEGER,
140
- total_cost_usd REAL
140
+ total_cost_usd REAL,
141
+ source TEXT NOT NULL DEFAULT 'dispatch' CHECK(source IN ('dispatch','session'))
141
142
  );
142
143
 
143
144
  CREATE TABLE phases (
@@ -235,6 +236,12 @@ function ensureProcessOwnerColumns(db) {
235
236
  if (columns.some((column) => column.name === "host")) return;
236
237
  db.exec("ALTER TABLE processes ADD COLUMN host TEXT; ALTER TABLE processes ADD COLUMN birth_token TEXT;");
237
238
  }
239
+ function ensureRunSourceColumn(db) {
240
+ const columns = db.prepare("PRAGMA table_info(runs)").all();
241
+ if (columns.some((column) => column.name === "source")) return;
242
+ db.exec("ALTER TABLE runs ADD COLUMN source TEXT NOT NULL DEFAULT 'dispatch';");
243
+ db.prepare("UPDATE runs SET source = 'session' WHERE assignment_id = ?").run(SESSION_TRACE_ASSIGNMENT_ID);
244
+ }
238
245
  function reconcileAbandonedRuns(db) {
239
246
  const owners = db.prepare(`SELECT r.run_id, r.started_at, p.pid, p.host, p.birth_token FROM runs r
240
247
  JOIN processes p ON p.id = (SELECT MAX(id) FROM processes WHERE run_id = r.run_id AND host IS NOT NULL)
@@ -264,6 +271,7 @@ var TraceStore = class {
264
271
  else if (version !== TRACE_SCHEMA_VERSION) throw new TraceSchemaVersionError(version);
265
272
  this.transaction(() => {
266
273
  ensureProcessOwnerColumns(this.db);
274
+ ensureRunSourceColumn(this.db);
267
275
  reconcileAbandonedRuns(this.db);
268
276
  });
269
277
  }
@@ -352,8 +360,8 @@ var TraceStore = class {
352
360
  upsertRun(input, at = (/* @__PURE__ */ new Date()).toISOString()) {
353
361
  this.transaction(() => {
354
362
  this.db.prepare(`INSERT INTO runs
355
- (run_id, assignment_id, request, status, agent, target, model, runtime, node, started_at)
356
- VALUES (?, ?, ?, 'queued', ?, ?, ?, ?, ?, ?)
363
+ (run_id, assignment_id, request, status, agent, target, model, runtime, node, started_at, source)
364
+ VALUES (?, ?, ?, 'queued', ?, ?, ?, ?, ?, ?, 'dispatch')
357
365
  ON CONFLICT(run_id) DO UPDATE SET request=excluded.request, agent=excluded.agent,
358
366
  target=excluded.target, model=excluded.model, runtime=excluded.runtime, node=excluded.node`).run(
359
367
  input.runId,
@@ -671,8 +679,8 @@ var TraceStore = class {
671
679
  startSessionTurn(input) {
672
680
  this.transaction(() => {
673
681
  this.db.prepare(`INSERT INTO runs
674
- (run_id, assignment_id, request, status, agent, target, model, runtime, node, started_at)
675
- VALUES (?, ?, ?, 'running', ?, ?, ?, ?, NULL, ?)
682
+ (run_id, assignment_id, request, status, agent, target, model, runtime, node, started_at, source)
683
+ VALUES (?, ?, ?, 'running', ?, ?, ?, ?, NULL, ?, 'session')
676
684
  ON CONFLICT(run_id) DO NOTHING`).run(
677
685
  input.runId,
678
686
  SESSION_TRACE_ASSIGNMENT_ID,
@@ -780,17 +788,28 @@ var TraceReader = class {
780
788
  const mode = this.db.prepare("PRAGMA journal_mode").get();
781
789
  if (mode.journal_mode.toLowerCase() !== "wal")
782
790
  throw new Error(`trace database journal mode is ${mode.journal_mode}, expected WAL`);
791
+ const runColumns = this.db.prepare("PRAGMA table_info(runs)").all();
792
+ this.runsSourceExpr = runColumns.some((column) => column.name === "source") ? "*" : `*, CASE WHEN assignment_id = '${SESSION_TRACE_ASSIGNMENT_ID}' THEN 'session' ELSE 'dispatch' END AS source`;
783
793
  }
784
794
  path;
785
795
  db;
796
+ /**
797
+ * `runs.source` is an additive column (see ensureRunSourceColumn) a
798
+ * TraceStore writer backfills in place. A read-only reader can open a
799
+ * database no writer has touched since before the column existed — the
800
+ * trace viewer opening a dormant install's trace.sqlite fresh is the
801
+ * realistic case — and cannot ALTER TABLE to fix that itself, so it
802
+ * derives the same value the migration would have written instead.
803
+ */
804
+ runsSourceExpr;
786
805
  close() {
787
806
  this.db.close();
788
807
  }
789
808
  runs(limit = 50) {
790
- return this.db.prepare("SELECT * FROM runs ORDER BY started_at DESC LIMIT ?").all(clampInt(limit, 1, 500));
809
+ return this.db.prepare(`SELECT ${this.runsSourceExpr} FROM runs ORDER BY started_at DESC LIMIT ?`).all(clampInt(limit, 1, 500));
791
810
  }
792
811
  run(runId) {
793
- return this.db.prepare("SELECT * FROM runs WHERE run_id=?").get(runId) ?? null;
812
+ return this.db.prepare(`SELECT ${this.runsSourceExpr} FROM runs WHERE run_id=?`).get(runId) ?? null;
794
813
  }
795
814
  phases(runId) {
796
815
  return this.db.prepare("SELECT * FROM phases WHERE run_id=? ORDER BY seq, phase_id").all(runId);
@@ -1174,4 +1193,4 @@ export {
1174
1193
  createDispatchTraceMirror,
1175
1194
  assertTraceSelectOnly
1176
1195
  };
1177
- //# sourceMappingURL=chunk-ZAZB4JMW.js.map
1196
+ //# sourceMappingURL=chunk-VKPAQYEB.js.map
@@ -16,7 +16,7 @@ import {
16
16
  init_esm_shims();
17
17
  var steerToolSurface = {
18
18
  name: ToolNames.Steer,
19
- description: "Control a running native worker whose run id is already available. Parent-model mid-run control requires detach:true because ordinary dispatch auto-waits and dispatch/steer are sequential; the interactive operator/TUI may steer an active synchronous native run through the dispatch contract. ACP runs have no input channel.",
19
+ description: "Guide or cancel a running native worker by run id. Only a detached run can be steered from here, because an ordinary dispatch auto-waits; ACP runs have no input channel.",
20
20
  parameters: typebox_exports.Object({
21
21
  run_id: typebox_exports.String({ description: "Run id from dispatch output or monitor list." }),
22
22
  action: StringEnum(["guide", "cancel"], { description: "What to do." }),
@@ -29,4 +29,4 @@ var steerToolSurface = {
29
29
  export {
30
30
  steerToolSurface
31
31
  };
32
- //# sourceMappingURL=chunk-UXN6JT4W.js.map
32
+ //# sourceMappingURL=chunk-W4YEMFBX.js.map
@@ -4,7 +4,7 @@ import {
4
4
  normalizeWriteBoundary,
5
5
  normalizeWriteBoundaryEntry,
6
6
  writeBoundaryCovers
7
- } from "./chunk-CTJ4RNAA.js";
7
+ } from "./chunk-3F7VUY77.js";
8
8
  import {
9
9
  asDirectoryPathBoundary,
10
10
  pathBoundaryEntryCovers
@@ -1199,4 +1199,4 @@ export {
1199
1199
  preflightWriteBoundaries,
1200
1200
  createWriteBoundaryEnforcer
1201
1201
  };
1202
- //# sourceMappingURL=chunk-TD3PGPQA.js.map
1202
+ //# sourceMappingURL=chunk-W6NIE6OW.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-FSP7CMNU.js";
12
12
  import {
13
13
  protectArtifact
14
- } from "./chunk-GCSMB2KY.js";
14
+ } from "./chunk-IKOZFYBN.js";
15
15
  import {
16
16
  stripTokenizerSentinels
17
17
  } from "./chunk-CFGTUFWB.js";
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-MQXIVJ35.js";
30
30
  import {
31
31
  BusChannels
32
- } from "./chunk-HLW2MRKE.js";
32
+ } from "./chunk-F4EKGO4N.js";
33
33
  import {
34
34
  clioStateDir,
35
35
  stateRootRemoved
@@ -1481,4 +1481,4 @@ export {
1481
1481
  ledgerUsageCalls,
1482
1482
  SessionDomainModule
1483
1483
  };
1484
- //# sourceMappingURL=chunk-TVH4ONAM.js.map
1484
+ //# sourceMappingURL=chunk-X7IARSHT.js.map
@@ -4,14 +4,14 @@ import {
4
4
  listChecks,
5
5
  runProjectCheck,
6
6
  runScriptCheck
7
- } from "./chunk-N5UK64DP.js";
7
+ } from "./chunk-MCMZMDAC.js";
8
8
  import {
9
9
  BROWSER_MODES,
10
10
  maxOutputArg,
11
11
  prepareVerifyArguments,
12
12
  timeoutArg,
13
13
  verifyToolSurface
14
- } from "./chunk-7OBGU7UB.js";
14
+ } from "./chunk-7BHIY2MW.js";
15
15
  import {
16
16
  escapeRegExp
17
17
  } from "./chunk-VG7TBQIY.js";
@@ -633,4 +633,4 @@ var verifyTool = {
633
633
  export {
634
634
  verifyTool
635
635
  };
636
- //# sourceMappingURL=chunk-PJJ6MY27.js.map
636
+ //# sourceMappingURL=chunk-XE3PCIXH.js.map
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  enabledExtensionResourceRoots
4
- } from "./chunk-SUW5DORT.js";
4
+ } from "./chunk-HLAFFSEK.js";
5
5
  import {
6
6
  require_dist
7
7
  } from "./chunk-APJ265NV.js";
@@ -120,4 +120,4 @@ export {
120
120
  splitYamlFrontmatter,
121
121
  stringField
122
122
  };
123
- //# sourceMappingURL=chunk-FEFIFZTL.js.map
123
+ //# sourceMappingURL=chunk-XGDPUNND.js.map
@@ -2,12 +2,12 @@ import { createRequire as __clioCreateRequire } from "node:module"; const requir
2
2
  import {
3
3
  canonicalJson,
4
4
  sha256
5
- } from "./chunk-6NJQITNH.js";
5
+ } from "./chunk-B74PXLU7.js";
6
6
  import {
7
7
  addResponseModelIdObservationCount,
8
8
  emptyResponseModelIdObservationCounts,
9
9
  responseModelIdObservationFromRecord
10
- } from "./chunk-TVH4ONAM.js";
10
+ } from "./chunk-X7IARSHT.js";
11
11
  import {
12
12
  uncachedPrefillTokens
13
13
  } from "./chunk-3DPEIQKN.js";
@@ -20,7 +20,7 @@ import {
20
20
  } from "./chunk-CWVRRIEI.js";
21
21
  import {
22
22
  settingsPath
23
- } from "./chunk-EIMVLWB3.js";
23
+ } from "./chunk-34BHNEE3.js";
24
24
  import {
25
25
  expandConfigPath
26
26
  } from "./chunk-336NSSKI.js";
@@ -154,6 +154,50 @@ function extractMessage(err) {
154
154
  return "";
155
155
  }
156
156
 
157
+ // src/interactive/prompt-cache-identity.ts
158
+ init_esm_shims();
159
+ function attachedToolSchemasFromState(tools) {
160
+ const schemas = [];
161
+ for (const tool of tools) {
162
+ if (!tool || typeof tool !== "object" || Array.isArray(tool)) continue;
163
+ const record = tool;
164
+ schemas.push({
165
+ name: typeof record.name === "string" ? record.name : "",
166
+ description: typeof record.description === "string" ? record.description : "",
167
+ parameters: record.parameters ?? null
168
+ });
169
+ }
170
+ return schemas;
171
+ }
172
+ function attachedToolSchemaBytes(schemas) {
173
+ try {
174
+ const bytes = JSON.stringify(schemas);
175
+ if (bytes === void 0) throw new Error("JSON.stringify returned undefined");
176
+ return bytes;
177
+ } catch (err) {
178
+ const reason = err instanceof Error ? err.message : String(err);
179
+ throw new Error(`attached tool schemas are not JSON-serializable: ${reason}`, { cause: err });
180
+ }
181
+ }
182
+ function mainPromptCacheIdentity(input) {
183
+ return sha256(
184
+ canonicalJson({
185
+ version: 2,
186
+ targetId: input.targetId,
187
+ runtimeId: input.runtimeId,
188
+ wireModelId: input.wireModelId,
189
+ autonomy: input.autonomy,
190
+ sessionId: input.sessionId,
191
+ cwd: input.cwd,
192
+ workingContextPaths: [...input.workingContextPaths].sort((a, b) => a.localeCompare(b)),
193
+ contextWindowSource: input.contextWindowSource,
194
+ promptInputEpoch: input.promptInputEpoch,
195
+ sessionInputs: input.sessionInputs,
196
+ attachedToolSchemaBytes: attachedToolSchemaBytes(input.attachedToolSchemas)
197
+ })
198
+ );
199
+ }
200
+
157
201
  // src/interactive/chat-loop-messages.ts
158
202
  function notConfiguredNotice() {
159
203
  return [
@@ -272,18 +316,7 @@ function pendingSkillRequestPreamble(requests) {
272
316
  ].join("\n");
273
317
  }
274
318
  function toolSignatureFromState(tools) {
275
- const schemas = [];
276
- for (const tool of tools) {
277
- if (!tool || typeof tool !== "object" || Array.isArray(tool)) continue;
278
- const record = tool;
279
- schemas.push({
280
- name: typeof record.name === "string" ? record.name : "",
281
- description: typeof record.description === "string" ? record.description : "",
282
- parameters: record.parameters ?? null
283
- });
284
- }
285
- schemas.sort((a, b) => a.name.localeCompare(b.name));
286
- return sha256(canonicalJson(schemas));
319
+ return sha256(attachedToolSchemaBytes(attachedToolSchemasFromState(tools)));
287
320
  }
288
321
  function fallbackIdentityPrompt() {
289
322
  return [
@@ -1117,6 +1150,8 @@ async function expandInlineFileReferencesAsync(input, options = {}) {
1117
1150
 
1118
1151
  export {
1119
1152
  toContextOverflowError,
1153
+ attachedToolSchemasFromState,
1154
+ mainPromptCacheIdentity,
1120
1155
  notConfiguredNotice,
1121
1156
  extractText,
1122
1157
  extractUserText,
@@ -1150,4 +1185,4 @@ export {
1150
1185
  readFileArgsAsync,
1151
1186
  expandInlineFileReferencesAsync
1152
1187
  };
1153
- //# sourceMappingURL=chunk-SCYB3HA4.js.map
1188
+ //# sourceMappingURL=chunk-XOXV5GKE.js.map