@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
@@ -45,20 +45,14 @@ var verifyToolSurface = {
45
45
  parameters: typebox_exports.Object({
46
46
  check: typebox_exports.Optional(
47
47
  typebox_exports.String({
48
- description: `Declared project check ID, package script (${VERIFICATION_SCRIPT_FAMILY_HINT}), or "frontend". Omit to list available checks.`
48
+ description: `Check id, package script (${VERIFICATION_SCRIPT_FAMILY_HINT}), or "frontend"; omit to list.`
49
49
  })
50
50
  ),
51
- path: typebox_exports.Optional(typebox_exports.String({ description: "check=frontend: artifact file under the workspace root." })),
52
- args: typebox_exports.Optional(
53
- typebox_exports.Array(typebox_exports.String(), { description: "Package scripts only: extra arguments passed after --." })
54
- ),
55
- browser: typebox_exports.Optional(
56
- StringEnum(BROWSER_MODES, { description: "check=frontend: headless browser mode (default auto)." })
57
- ),
58
- cwd: typebox_exports.Optional(typebox_exports.String({ description: "Package-script working directory; ignored by project checks." })),
59
- timeout_ms: typebox_exports.Optional(
60
- typebox_exports.Number({ description: "Package/frontend timeout in ms; project checks use their declared timeoutMs." })
61
- ),
51
+ path: typebox_exports.Optional(typebox_exports.String({ description: "frontend: artifact file under the workspace root." })),
52
+ args: typebox_exports.Optional(typebox_exports.Array(typebox_exports.String(), { description: "Package scripts only: arguments after --." })),
53
+ browser: typebox_exports.Optional(StringEnum(BROWSER_MODES, { description: "frontend: headless browser mode (default auto)." })),
54
+ cwd: typebox_exports.Optional(typebox_exports.String({ description: "Package scripts only: working directory." })),
55
+ timeout_ms: typebox_exports.Optional(typebox_exports.Number({ description: "Package and frontend checks only: timeout in ms." })),
62
56
  max_output_bytes: typebox_exports.Optional(typebox_exports.Number({ description: "Output cap in bytes (default 600000)." }))
63
57
  }),
64
58
  baseActionClass: "execute",
@@ -177,4 +171,4 @@ export {
177
171
  prepareVerifyArguments,
178
172
  verifyToolSurface
179
173
  };
180
- //# sourceMappingURL=chunk-7OBGU7UB.js.map
174
+ //# sourceMappingURL=chunk-7BHIY2MW.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
  sha256
4
- } from "./chunk-6NJQITNH.js";
4
+ } from "./chunk-B74PXLU7.js";
5
5
  import {
6
6
  resolvePackageRoot
7
7
  } from "./chunk-IWHMRKLL.js";
@@ -225,4 +225,4 @@ export {
225
225
  renderCodewikiDigest,
226
226
  loadFragments
227
227
  };
228
- //# sourceMappingURL=chunk-3QSOM6PA.js.map
228
+ //# sourceMappingURL=chunk-AZ4WMN4W.js.map
@@ -3,13 +3,13 @@ import {
3
3
  ROUTE_POLICY_VERSION,
4
4
  isRouteDecisionAgentSelection,
5
5
  isRoutingIntent
6
- } from "./chunk-7EPLI7VL.js";
6
+ } from "./chunk-HIICAHCJ.js";
7
7
  import {
8
8
  isExecutionRole
9
9
  } from "./chunk-H7IXIC72.js";
10
10
  import {
11
11
  readSettings
12
- } from "./chunk-EIMVLWB3.js";
12
+ } from "./chunk-34BHNEE3.js";
13
13
  import {
14
14
  readClioVersion,
15
15
  resolvePackageRoot
@@ -677,6 +677,9 @@ function adaptRunReceiptValidationStatus(receipt) {
677
677
  if (receipt.hostVerification?.status === "verified") {
678
678
  return attributed("validated", receiptSource(receipt), { kind: "validator", id: "host-verification" }, artifacts);
679
679
  }
680
+ if (receipt.hostVerification?.status === "not_implicated") {
681
+ return attributed("unknown", receiptSource(receipt), { kind: "validator", id: "host-verification" }, artifacts);
682
+ }
680
683
  if (qualityHasFailure(receipt.quality)) {
681
684
  return attributed("failed", receiptSource(receipt), { kind: "validator", id: "receipt-quality" }, artifacts);
682
685
  }
@@ -1409,4 +1412,4 @@ export {
1409
1412
  loadEvalTaskFile,
1410
1413
  EvalTaskFileError
1411
1414
  };
1412
- //# sourceMappingURL=chunk-6NJQITNH.js.map
1415
+ //# sourceMappingURL=chunk-B74PXLU7.js.map
@@ -14,9 +14,8 @@ import {
14
14
  } from "./chunk-6XLNIQDB.js";
15
15
  import {
16
16
  GUARDRAIL_DEFAULTS,
17
- GUARDRAIL_ENV_VARS,
18
17
  resolveGuardrail
19
- } from "./chunk-NLFAQR7Z.js";
18
+ } from "./chunk-S66XZJOF.js";
20
19
  import {
21
20
  clioStateDir
22
21
  } from "./chunk-BYP5D4HI.js";
@@ -27,7 +26,7 @@ import {
27
26
  // src/tools/truncate.ts
28
27
  init_esm_shims();
29
28
  var DEFAULT_MAX_LINES = 2e3;
30
- var DEFAULT_MAX_BYTES = 16 * 1024;
29
+ var DEFAULT_MAX_BYTES = 64 * 1024;
31
30
  function splitLinesForCounting(content) {
32
31
  if (content.length === 0) return [];
33
32
  const lines = content.split("\n");
@@ -487,7 +486,7 @@ function toolResultPresentationPolicy(result) {
487
486
  }
488
487
 
489
488
  // src/tools/result-shaping.ts
490
- var DEFAULT_TOOL_RESULT_MAX_BYTES = DEFAULT_MAX_BYTES + 2 * 1024;
489
+ var DEFAULT_TOOL_RESULT_MAX_BYTES = DEFAULT_MAX_BYTES;
491
490
  var RESULT_TRUNCATION_MARKER = "\n[tool result truncated]";
492
491
  var RESULT_OFFLOAD_MAX_BYTES = 10 * 1024 * 1024;
493
492
  var TAIL_NOTICE_RESERVE_BYTES = 512;
@@ -495,9 +494,11 @@ var TOOL_OFFLOAD_MAX_AGE_MS = 14 * 24 * 60 * 60 * 1e3;
495
494
  function mergeDetails(details, resultSize) {
496
495
  return { ...details ?? {}, resultSize };
497
496
  }
498
- function maxBytesFor(spec) {
497
+ function maxBytesFor(spec, context) {
499
498
  const configured = spec.metadata?.resultSizePolicy?.maxBytes;
500
- return typeof configured === "number" && Number.isFinite(configured) && configured > 0 ? Math.floor(configured) : DEFAULT_TOOL_RESULT_MAX_BYTES;
499
+ const policyMax = typeof configured === "number" && Number.isFinite(configured) && configured > 0 ? Math.floor(configured) : DEFAULT_TOOL_RESULT_MAX_BYTES;
500
+ const sessionMax = context?.toolResultMaxBytes;
501
+ return typeof sessionMax === "number" && Number.isFinite(sessionMax) && sessionMax > 0 ? Math.min(policyMax, Math.floor(sessionMax)) : policyMax;
501
502
  }
502
503
  function followUpHint(spec) {
503
504
  return spec.metadata?.resultSizePolicy?.followUpHint ?? "Use a narrower query, offset/limit arguments, or a more specific tool call to inspect the omitted content.";
@@ -506,11 +507,11 @@ function offloadMaxBytesFor(spec) {
506
507
  const configured = spec.metadata?.resultSizePolicy?.offloadMaxBytes;
507
508
  return typeof configured === "number" && Number.isFinite(configured) && configured > 0 ? Math.floor(configured) : RESULT_OFFLOAD_MAX_BYTES;
508
509
  }
509
- function toolResultDigestFor(spec, result, requestedDisposition) {
510
+ function toolResultDigestFor(spec, result, requestedDisposition, context) {
510
511
  const text = resultText(result);
511
- const disposition = normalizeToolResultDisposition(spec, maxBytesFor(spec), requestedDisposition);
512
+ const disposition = normalizeToolResultDisposition(spec, maxBytesFor(spec, context), requestedDisposition);
512
513
  if (disposition === null) {
513
- const projected = shapeLegacyToolResult(spec, result);
514
+ const projected = shapeLegacyToolResult(spec, result, context);
514
515
  return legacyToolResultDigest(resultText(projected), { outcome: result.kind });
515
516
  }
516
517
  const capturedBytes = capturedBytesFor(result, text);
@@ -654,7 +655,7 @@ ${note}`;
654
655
  }
655
656
  function shapeLegacyToolResult(spec, result, context, overflow = "head") {
656
657
  if (existingOffloadPath(result.details) !== null) return result;
657
- const maxBytes = maxBytesFor(spec);
658
+ const maxBytes = maxBytesFor(spec, context);
658
659
  const offloadMaxBytes = offloadMaxBytesFor(spec);
659
660
  const text = result.kind === "ok" ? result.output : result.message;
660
661
  const bytes = byteLength(text);
@@ -741,7 +742,7 @@ function withOffloadMetadata(result, offloadPath, capturedBytes, displayedBytes,
741
742
  }
742
743
  function shapeToolResult(spec, result, context, requestedDisposition) {
743
744
  if (existingDisposition(result.details) !== null) return result;
744
- const hardMaxBytes = maxBytesFor(spec);
745
+ const hardMaxBytes = maxBytesFor(spec, context);
745
746
  const disposition = normalizeToolResultDisposition(spec, hardMaxBytes, requestedDisposition);
746
747
  if (disposition === null) return shapeLegacyToolResult(spec, result, context);
747
748
  const capturedText = resultText(result);
@@ -837,7 +838,6 @@ var OBSERVE_SELF_CAPS = {
837
838
  contextWorkspace: 50 * 1024
838
839
  };
839
840
  var DEFAULT_OBSERVATION_TURN_BUDGET_BYTES = GUARDRAIL_DEFAULTS.observationTurnBudgetBytes;
840
- var OBSERVATION_TURN_BUDGET_ENV = GUARDRAIL_ENV_VARS.observationTurnBudgetBytes;
841
841
  var MIN_BUDGET_SLICE_BYTES = 1024;
842
842
  var BUDGET_TRACK_LIMIT = 256;
843
843
  var MAX_EXHAUSTED_NOTICES_PER_TURN = 3;
@@ -847,8 +847,8 @@ function boundContinuation(next) {
847
847
  if (next === void 0 || next.length <= MAX_CONTINUATION_CHARS) return next;
848
848
  return `${Array.from(next).slice(0, MAX_CONTINUATION_CHARS).join("")}\u2026`;
849
849
  }
850
- function observationTurnBudgetLimit(env = process.env) {
851
- return Math.max(MIN_BUDGET_SLICE_BYTES, resolveGuardrail("observationTurnBudgetBytes", env));
850
+ function observationTurnBudgetLimit() {
851
+ return Math.max(MIN_BUDGET_SLICE_BYTES, resolveGuardrail("observationTurnBudgetBytes"));
852
852
  }
853
853
  function budgetKey(options) {
854
854
  const turnId = options?.turnId?.trim();
@@ -1097,4 +1097,4 @@ export {
1097
1097
  observationBudgetExhausted,
1098
1098
  finalizeObservation
1099
1099
  };
1100
- //# sourceMappingURL=chunk-R23Z6K6I.js.map
1100
+ //# sourceMappingURL=chunk-B7HM5Z7T.js.map
@@ -4,26 +4,26 @@ import {
4
4
  loadProjectRules,
5
5
  renderOperatorProfile,
6
6
  selectActiveRules
7
- } from "./chunk-C537JADH.js";
7
+ } from "./chunk-SSEYRH53.js";
8
8
  import {
9
9
  loadFragments
10
- } from "./chunk-3QSOM6PA.js";
10
+ } from "./chunk-AZ4WMN4W.js";
11
11
  import {
12
12
  compile,
13
13
  compileWorker
14
- } from "./chunk-XKA2ICR3.js";
14
+ } from "./chunk-I66ZTYNP.js";
15
15
  import {
16
16
  sha256
17
- } from "./chunk-6NJQITNH.js";
17
+ } from "./chunk-B74PXLU7.js";
18
18
  import {
19
19
  classifyProjectPreload
20
20
  } from "./chunk-JVCV3ICN.js";
21
21
  import {
22
22
  isUserVisibleAgent
23
- } from "./chunk-IG7BCQBA.js";
23
+ } from "./chunk-PGF63K6I.js";
24
24
  import {
25
25
  BusChannels
26
- } from "./chunk-HLW2MRKE.js";
26
+ } from "./chunk-F4EKGO4N.js";
27
27
  import {
28
28
  init_esm_shims
29
29
  } from "./chunk-3R73A4XB.js";
@@ -33,7 +33,6 @@ init_esm_shims();
33
33
  var DEFAULT_DISPATCH_AGENT_ID = "coder";
34
34
  var OPERATOR_ONLY_SHADOW_AGENT_IDS = /* @__PURE__ */ new Set(["oracle"]);
35
35
  var FLEET_PROMPT_PURPOSE_MAX_CHARS = 64;
36
- var FLEET_DELEGATION_RULE = "Delegate when the task has two or more independent file-scoped subtasks, or any broad exploration. You keep synthesis and validation; a single narrow change stays with you.";
37
36
  var FLEET_HANDOFF_RULE = "A file you assigned to a worker is not yours to edit while its dispatch is pending or after it succeeds; if you already changed it, say so in your report.";
38
37
  var FLEET_REFUSAL_DISCLOSURE = "When admission refuses a dispatch, report the refusal and the reason it gave; never substitute another agent without saying why.";
39
38
  var FLEET_ANTI_CHURN_RULE = "A dispatch with the same target files and the same goal as one you already ran is a repeat however differently you word it: read that run's receipt, or run the check yourself, instead of dispatching again.";
@@ -62,11 +61,14 @@ function renderFleetPromptSection(input) {
62
61
  if (publicSpecs.length === 0 && shadowSpecs.length === 0) return "";
63
62
  const lines = [
64
63
  "# Fleet",
65
- FLEET_DELEGATION_RULE,
66
64
  FLEET_HANDOFF_RULE,
67
65
  FLEET_ANTI_CHURN_RULE,
68
66
  FLEET_REFUSAL_DISCLOSURE,
69
- `Workers you reach with \`dispatch\`, by \`agent\` id (default ${DEFAULT_DISPATCH_AGENT_ID}). Capability class is what a worker may do: a read-only worker cannot edit.`,
67
+ // `agent:"auto"` baselines by task shape and can still land on a worker
68
+ // whose capability class is wrong for the job, so a pinned id is the
69
+ // reliable path; said here, next to the ids, rather than in the Tool
70
+ // Contract.
71
+ `Workers you reach with \`dispatch\` by \`agent\` id (default ${DEFAULT_DISPATCH_AGENT_ID}); agent:"auto" is a fallback, not a router. Capability class is what a worker may do: a read-only worker cannot edit.`,
70
72
  FLEET_SPECIALIST_ROUTING
71
73
  ];
72
74
  if (publicSpecs.length > 0) {
@@ -191,6 +193,9 @@ var CLIO_REPO_AWARENESS_ID = "context.clio-repo-awareness";
191
193
  var WORKSPACE_ROOT_ID = "context.workspace-root";
192
194
  function createPromptsBundle(context, options = {}) {
193
195
  let table = null;
196
+ let fragmentEpoch = 0;
197
+ let sessionSourceEpoch = 0;
198
+ const sessionSourceSnapshots = /* @__PURE__ */ new Map();
194
199
  const suppressContextFiles = options.noContextFiles === true;
195
200
  function config() {
196
201
  return context.getContract("config");
@@ -208,6 +213,7 @@ function createPromptsBundle(context, options = {}) {
208
213
  function reload() {
209
214
  try {
210
215
  table = loadFragments();
216
+ fragmentEpoch += 1;
211
217
  } catch (err) {
212
218
  const msg = err instanceof Error ? err.message : String(err);
213
219
  process.stderr.write(`[clio-coder:prompts] reload failed: ${msg}
@@ -220,7 +226,39 @@ function createPromptsBundle(context, options = {}) {
220
226
  }
221
227
  return false;
222
228
  }
229
+ function sessionSourceKey(sessionId, cwd) {
230
+ return `${sessionId}\0${cwd}`;
231
+ }
232
+ function captureSessionSourceSnapshot(cwd) {
233
+ let projectContext = null;
234
+ if (!suppressContextFiles) {
235
+ projectContext = contextDomain()?.renderPromptContext(cwd) ?? null;
236
+ for (const warning of projectContext?.warnings ?? []) process.stderr.write(`${warning}
237
+ `);
238
+ }
239
+ return {
240
+ projectContext,
241
+ customization: captureCustomizationSources(cwd),
242
+ workspaceRoot: workspaceRootFragment(cwd),
243
+ clioRepoAwareness: clioRepoAwarenessFragments(cwd)
244
+ };
245
+ }
246
+ function sessionSourceSnapshot(sessionId, cwd) {
247
+ const key = sessionSourceKey(sessionId, cwd);
248
+ const existing = sessionSourceSnapshots.get(key);
249
+ if (existing) return existing;
250
+ const captured = captureSessionSourceSnapshot(cwd);
251
+ sessionSourceSnapshots.set(key, captured);
252
+ return captured;
253
+ }
254
+ function invalidateSessionSources() {
255
+ sessionSourceSnapshots.clear();
256
+ sessionSourceEpoch += 1;
257
+ }
223
258
  const contract = {
259
+ inputEpoch() {
260
+ return `${fragmentEpoch}:${agentsDomain()?.revision() ?? 0}:${sessionSourceEpoch}`;
261
+ },
224
262
  async compileSessionPrompt(input) {
225
263
  if (!table) throw new Error("prompts domain not started");
226
264
  if (table.byId.size === 0) {
@@ -230,11 +268,12 @@ function createPromptsBundle(context, options = {}) {
230
268
  const settings = configContract?.get();
231
269
  const safety = input.autonomy ?? settings?.safety.autonomy ?? "auto-edit";
232
270
  const cwd = input.cwd ?? process.cwd();
271
+ const sources = sessionSourceSnapshot(input.sessionId, cwd);
233
272
  let contextFiles = "";
234
273
  let projectPreload = null;
235
274
  let projectHandbookFiles = [];
236
275
  if (!suppressContextFiles) {
237
- const projectContext = contextDomain()?.renderPromptContext(cwd);
276
+ const projectContext = sources.projectContext;
238
277
  contextFiles = projectContext ? selectProjectContext(projectContext, input.sessionInputs.providerSupportsTools ?? null) : "";
239
278
  if (projectContext) {
240
279
  projectPreload = classifyProjectPreload({
@@ -243,8 +282,6 @@ function createPromptsBundle(context, options = {}) {
243
282
  });
244
283
  projectHandbookFiles = projectContext.handbookFiles;
245
284
  }
246
- for (const warning of projectContext?.warnings ?? []) process.stderr.write(`${warning}
247
- `);
248
285
  }
249
286
  const roster = fleetRoster();
250
287
  const sessionInputs = {
@@ -258,9 +295,9 @@ function createPromptsBundle(context, options = {}) {
258
295
  safety: `safety.${safety}`,
259
296
  sessionInputs,
260
297
  additionalFragments: [
261
- ...workspaceRootFragment(cwd),
262
- ...clioRepoAwarenessFragments(cwd),
263
- ...customizationFragments(cwd, input.workingContextPaths ?? []).fragments
298
+ ...sources.workspaceRoot,
299
+ ...sources.clioRepoAwareness,
300
+ ...renderCustomizationFragments(sources.customization, cwd, input.workingContextPaths ?? []).fragments
264
301
  ]
265
302
  });
266
303
  return { ...compiled, projectPreload, projectHandbookFiles };
@@ -286,10 +323,12 @@ function createPromptsBundle(context, options = {}) {
286
323
  reload
287
324
  };
288
325
  let unsubscribeHotReload = null;
326
+ let unsubscribeExtensionsReload = null;
289
327
  const extension = {
290
328
  async start() {
291
329
  try {
292
330
  table = loadFragments();
331
+ fragmentEpoch += 1;
293
332
  } catch (err) {
294
333
  const msg = err instanceof Error ? err.message : String(err);
295
334
  process.stderr.write(`[clio-coder:prompts] initial load failed: ${msg}
@@ -297,26 +336,49 @@ function createPromptsBundle(context, options = {}) {
297
336
  table = { byId: /* @__PURE__ */ new Map(), rootDir: "" };
298
337
  }
299
338
  unsubscribeHotReload = context.bus.on(BusChannels.ConfigHotReload, (payload) => {
339
+ invalidateSessionSources();
300
340
  const diff = payload?.diff;
301
341
  const paths = diff?.hotReload ?? [];
302
342
  if (!diffTouchesFragments(paths)) return;
303
343
  reload();
304
344
  });
345
+ unsubscribeExtensionsReload = context.bus.on(BusChannels.ExtensionsReloaded, (payload) => {
346
+ if (payload?.changed !== true) return;
347
+ reload();
348
+ });
305
349
  },
306
350
  async stop() {
307
351
  unsubscribeHotReload?.();
308
352
  unsubscribeHotReload = null;
353
+ unsubscribeExtensionsReload?.();
354
+ unsubscribeExtensionsReload = null;
355
+ sessionSourceSnapshots.clear();
309
356
  }
310
357
  };
311
358
  return { extension, contract };
312
359
  }
313
360
  function customizationFragments(cwd, workingContextPaths) {
361
+ return renderCustomizationFragments(captureCustomizationSources(cwd), cwd, workingContextPaths);
362
+ }
363
+ function captureCustomizationSources(cwd) {
364
+ let rules = [];
365
+ let operatorProfile = null;
366
+ try {
367
+ rules = loadProjectRules(cwd).rules;
368
+ } catch {
369
+ }
370
+ try {
371
+ operatorProfile = loadOperatorProfile(cwd);
372
+ } catch {
373
+ }
374
+ return { rules, operatorProfile };
375
+ }
376
+ function renderCustomizationFragments(sources, cwd, workingContextPaths) {
314
377
  const fragments = [];
315
378
  let activeRuleIds = [];
316
379
  let operatorProfileApplied = false;
317
380
  try {
318
- const loaded = loadProjectRules(cwd);
319
- const active = selectActiveRules(loaded.rules, normalizeWorkingContextPaths(cwd, workingContextPaths));
381
+ const active = selectActiveRules(sources.rules, normalizeWorkingContextPaths(cwd, workingContextPaths));
320
382
  if (active.length > 0) {
321
383
  const body = ["# Project rules", ...active.map((rule) => rule.body)].join("\n\n");
322
384
  fragments.push({
@@ -331,8 +393,7 @@ function customizationFragments(cwd, workingContextPaths) {
331
393
  } catch {
332
394
  }
333
395
  try {
334
- const profile = loadOperatorProfile(cwd);
335
- const rendered = renderOperatorProfile(profile.profile);
396
+ const rendered = renderOperatorProfile(sources.operatorProfile?.profile ?? {});
336
397
  if (rendered.text.length > 0) {
337
398
  fragments.push({
338
399
  id: "context.operator-profile",
@@ -659,4 +720,4 @@ export {
659
720
  createPromptsDomainModule,
660
721
  SchedulingDomainModule
661
722
  };
662
- //# sourceMappingURL=chunk-R32CLGZ6.js.map
723
+ //# sourceMappingURL=chunk-BO7Y52RY.js.map