@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
@@ -19,8 +19,94 @@ init_esm_shims();
19
19
  import { spawn } from "node:child_process";
20
20
  import { StringDecoder } from "node:string_decoder";
21
21
  var BASH_HARD_CAP_BYTES = 16 * 1024 * 1024;
22
- var CLIO_CONTROL_ENV_KEYS = ["CLIO_CODER_INTERACTIVE", "CLIO_CODER_RESUME_SESSION_ID"];
22
+ var CLIO_CONTROL_ENV_KEYS = ["CLIO_CODER_INTERACTIVE"];
23
23
  var BASH_UPDATE_THROTTLE_MS = 100;
24
+ var SYSTEM_PROGRESS_SCHEDULER = {
25
+ now: Date.now,
26
+ setTimeout: (callback, delayMs) => setTimeout(callback, delayMs),
27
+ clearTimeout: (timer) => clearTimeout(timer)
28
+ };
29
+ function createBashOutputProgressController(onUpdate, scheduler = SYSTEM_PROGRESS_SCHEDULER) {
30
+ let phase = "active";
31
+ let stdout = "";
32
+ let stderr = "";
33
+ const stdoutDecoder = new StringDecoder("utf8");
34
+ const stderrDecoder = new StringDecoder("utf8");
35
+ let decodersFinished = false;
36
+ let outputBytes = 0;
37
+ let outputCapped = false;
38
+ let updateTimer = null;
39
+ let updateDirty = false;
40
+ let lastUpdateAt = 0;
41
+ const snapshot = () => ({ stdout, stderr, outputBytes });
42
+ const finishDecoders = () => {
43
+ if (decodersFinished) return;
44
+ decodersFinished = true;
45
+ if (outputCapped) return;
46
+ stdout += stdoutDecoder.end();
47
+ stderr += stderrDecoder.end();
48
+ };
49
+ const emitUpdate = (final = false) => {
50
+ if (onUpdate === void 0 || !updateDirty) return;
51
+ if (phase !== "active" && !(final && phase === "settling")) return;
52
+ updateDirty = false;
53
+ lastUpdateAt = scheduler.now();
54
+ try {
55
+ onUpdate(snapshot());
56
+ } catch {
57
+ }
58
+ };
59
+ const clearUpdateTimer = () => {
60
+ if (updateTimer === null) return;
61
+ scheduler.clearTimeout(updateTimer);
62
+ updateTimer = null;
63
+ };
64
+ const scheduleUpdate = () => {
65
+ if (onUpdate === void 0 || phase !== "active") return;
66
+ updateDirty = true;
67
+ const delay = BASH_UPDATE_THROTTLE_MS - (scheduler.now() - lastUpdateAt);
68
+ if (delay <= 0) {
69
+ clearUpdateTimer();
70
+ emitUpdate();
71
+ return;
72
+ }
73
+ updateTimer ??= scheduler.setTimeout(() => {
74
+ updateTimer = null;
75
+ emitUpdate();
76
+ }, delay);
77
+ };
78
+ return {
79
+ start() {
80
+ if (phase !== "active" || onUpdate === void 0) return;
81
+ updateDirty = true;
82
+ emitUpdate();
83
+ },
84
+ append(target, chunk) {
85
+ if (phase !== "active" || outputCapped) return false;
86
+ const remaining = BASH_HARD_CAP_BYTES - outputBytes;
87
+ const accepted = chunk.byteLength <= remaining ? chunk : chunk.subarray(0, Math.max(0, remaining));
88
+ outputBytes += accepted.byteLength;
89
+ if (accepted.byteLength > 0) {
90
+ const decoded = target === "stdout" ? stdoutDecoder.write(accepted) : stderrDecoder.write(accepted);
91
+ if (target === "stdout") stdout += decoded;
92
+ else stderr += decoded;
93
+ }
94
+ if (accepted.byteLength < chunk.byteLength) outputCapped = true;
95
+ scheduleUpdate();
96
+ return outputCapped;
97
+ },
98
+ settle() {
99
+ if (phase === "settled") return { ...snapshot(), outputCapped };
100
+ if (phase === "settling") return { ...snapshot(), outputCapped };
101
+ phase = "settling";
102
+ clearUpdateTimer();
103
+ finishDecoders();
104
+ emitUpdate(true);
105
+ phase = "settled";
106
+ return { ...snapshot(), outputCapped };
107
+ }
108
+ };
109
+ }
24
110
  function buildToolEnv() {
25
111
  const env = { ...process.env };
26
112
  env.AI_AGENT = AI_AGENT_NAME;
@@ -96,65 +182,14 @@ async function runBashCommand(command, options = {}) {
96
182
  let timeoutId = null;
97
183
  let killGraceTimer = null;
98
184
  let killSent = false;
99
- let stdout = "";
100
- let stderr = "";
101
- const stdoutDecoder = new StringDecoder("utf8");
102
- const stderrDecoder = new StringDecoder("utf8");
103
- let decodersFinished = false;
104
- let outputBytes = 0;
105
- let outputCapped = false;
106
- let updateTimer = null;
107
- let updateDirty = false;
108
- let lastUpdateAt = 0;
185
+ const output = createBashOutputProgressController(options.onUpdate);
109
186
  const child = spawn("/bin/bash", [plan.mode, command], {
110
187
  ...options.cwd === void 0 ? {} : { cwd: options.cwd },
111
188
  env: attribution.env,
112
189
  detached: process.platform !== "win32",
113
190
  stdio: ["ignore", "pipe", "pipe"]
114
191
  });
115
- const finishDecoders = () => {
116
- if (decodersFinished) return;
117
- decodersFinished = true;
118
- if (outputCapped) return;
119
- stdout += stdoutDecoder.end();
120
- stderr += stderrDecoder.end();
121
- };
122
- const emitUpdate = () => {
123
- if (options.onUpdate === void 0 || !updateDirty) return;
124
- updateDirty = false;
125
- lastUpdateAt = Date.now();
126
- try {
127
- options.onUpdate({ stdout, stderr, outputBytes: Math.min(outputBytes, BASH_HARD_CAP_BYTES) });
128
- } catch {
129
- }
130
- };
131
- const clearUpdateTimer = () => {
132
- if (updateTimer === null) return;
133
- clearTimeout(updateTimer);
134
- updateTimer = null;
135
- };
136
- const scheduleUpdate = () => {
137
- if (options.onUpdate === void 0) return;
138
- updateDirty = true;
139
- const delay = BASH_UPDATE_THROTTLE_MS - (Date.now() - lastUpdateAt);
140
- if (delay <= 0) {
141
- clearUpdateTimer();
142
- emitUpdate();
143
- return;
144
- }
145
- updateTimer ??= setTimeout(() => {
146
- updateTimer = null;
147
- emitUpdate();
148
- }, delay);
149
- };
150
- const finishUpdates = () => {
151
- clearUpdateTimer();
152
- emitUpdate();
153
- };
154
- if (options.onUpdate !== void 0) {
155
- updateDirty = true;
156
- emitUpdate();
157
- }
192
+ output.start();
158
193
  const clearKillGraceTimer = () => {
159
194
  if (!killGraceTimer) return;
160
195
  clearTimeout(killGraceTimer);
@@ -195,22 +230,7 @@ async function runBashCommand(command, options = {}) {
195
230
  options.signal?.addEventListener("abort", onAbort, { once: true });
196
231
  }
197
232
  const appendChunk = (target, chunk) => {
198
- if (outputCapped) return;
199
- const remaining = BASH_HARD_CAP_BYTES - outputBytes;
200
- const accepted = chunk.byteLength <= remaining ? chunk : chunk.subarray(0, Math.max(0, remaining));
201
- outputBytes += accepted.byteLength;
202
- if (accepted.byteLength > 0) {
203
- const decoded = target === "stdout" ? stdoutDecoder.write(accepted) : stderrDecoder.write(accepted);
204
- if (target === "stdout") stdout += decoded;
205
- else stderr += decoded;
206
- }
207
- if (accepted.byteLength < chunk.byteLength) {
208
- outputCapped = true;
209
- scheduleUpdate();
210
- killChild();
211
- return;
212
- }
213
- scheduleUpdate();
233
+ if (output.append(target, chunk)) killChild();
214
234
  };
215
235
  child.stdout?.on("data", (chunk) => appendChunk("stdout", chunk));
216
236
  child.stderr?.on("data", (chunk) => appendChunk("stderr", chunk));
@@ -219,19 +239,15 @@ async function runBashCommand(command, options = {}) {
219
239
  settled = true;
220
240
  if (timeoutId) clearTimeout(timeoutId);
221
241
  clearKillGraceTimer();
222
- finishDecoders();
223
- finishUpdates();
242
+ const finalOutput = output.settle();
224
243
  options.signal?.removeEventListener("abort", onAbort);
225
244
  resolve({
226
245
  error,
227
- stdout,
228
- stderr,
246
+ ...finalOutput,
229
247
  exitCode: null,
230
248
  signal: null,
231
249
  aborted,
232
- timedOut,
233
- outputCapped,
234
- outputBytes
250
+ timedOut
235
251
  });
236
252
  });
237
253
  child.on("close", (code, signalName) => {
@@ -239,8 +255,7 @@ async function runBashCommand(command, options = {}) {
239
255
  settled = true;
240
256
  if (timeoutId) clearTimeout(timeoutId);
241
257
  clearKillGraceTimer();
242
- finishDecoders();
243
- finishUpdates();
258
+ const finalOutput = output.settle();
244
259
  options.signal?.removeEventListener("abort", onAbort);
245
260
  const error = code === 0 && signalName === null ? null : {
246
261
  name: "Error",
@@ -250,14 +265,11 @@ async function runBashCommand(command, options = {}) {
250
265
  };
251
266
  resolve({
252
267
  error,
253
- stdout,
254
- stderr,
268
+ ...finalOutput,
255
269
  exitCode: code,
256
270
  signal: signalName,
257
271
  aborted,
258
- timedOut,
259
- outputCapped,
260
- outputBytes
272
+ timedOut
261
273
  });
262
274
  });
263
275
  });
@@ -268,4 +280,4 @@ export {
268
280
  combineBashOutput,
269
281
  runBashCommand
270
282
  };
271
- //# sourceMappingURL=chunk-U2WB7TZS.js.map
283
+ //# sourceMappingURL=chunk-NMJXSHBJ.js.map
@@ -8,10 +8,10 @@ import {
8
8
  readRootEntries,
9
9
  splitYamlFrontmatter,
10
10
  stringField
11
- } from "./chunk-FEFIFZTL.js";
11
+ } from "./chunk-XGDPUNND.js";
12
12
  import {
13
13
  enabledExtensionResourceRoots
14
- } from "./chunk-SUW5DORT.js";
14
+ } from "./chunk-HLAFFSEK.js";
15
15
  import {
16
16
  ToolNames
17
17
  } from "./chunk-K6BSR66V.js";
@@ -282,19 +282,8 @@ function defaultPrecedenceForScope(scope) {
282
282
  return SKILL_PRECEDENCE.cli;
283
283
  }
284
284
  }
285
- var warnedLegacyProjectTrustEnv = false;
286
285
  function projectCompatTrusted(explicit) {
287
- if (explicit === true) return true;
288
- if (process.env.CLIO_CODER_TRUST_PROJECT_RESOURCES === "1") return true;
289
- if (process.env.CLIO_CODER_TRUST_PROJECT_SKILLS !== "1") return false;
290
- if (!warnedLegacyProjectTrustEnv) {
291
- warnedLegacyProjectTrustEnv = true;
292
- process.emitWarning("CLIO_CODER_TRUST_PROJECT_SKILLS is deprecated; use CLIO_CODER_TRUST_PROJECT_RESOURCES instead", {
293
- code: "CLIO_CODER_DEPRECATED_ENV",
294
- type: "DeprecationWarning"
295
- });
296
- }
297
- return true;
286
+ return explicit === true;
298
287
  }
299
288
  function defaultSkillRoots(input = {}) {
300
289
  const cwd = input.cwd ?? process.cwd();
@@ -441,7 +430,10 @@ function validateDescription(description) {
441
430
  }
442
431
  return [];
443
432
  }
444
- function extractMetadata(frontmatter) {
433
+ function warnLegacySkillMetadata(filePath) {
434
+ warnLegacyNaming(`clio: skill metadata in ${filePath}`, "clio-coder: skill metadata");
435
+ }
436
+ function extractMetadata(frontmatter, filePath) {
445
437
  const metadata = {};
446
438
  for (const [key, value] of Object.entries(frontmatter)) {
447
439
  if (CORE_FRONTMATTER_KEYS.has(key)) continue;
@@ -450,7 +442,7 @@ function extractMetadata(frontmatter) {
450
442
  continue;
451
443
  }
452
444
  if (key === "clio") {
453
- warnLegacyNaming("clio: skill metadata", "clio-coder: skill metadata");
445
+ warnLegacySkillMetadata(filePath);
454
446
  if (!("clio-coder" in frontmatter)) metadata.clioCoder = value;
455
447
  continue;
456
448
  }
@@ -458,10 +450,10 @@ function extractMetadata(frontmatter) {
458
450
  }
459
451
  return metadata;
460
452
  }
461
- function extractProvenance(frontmatter) {
453
+ function extractProvenance(frontmatter, filePath) {
462
454
  const canonicalRaw = frontmatter["clio-coder"];
463
455
  const legacyRaw = frontmatter.clio;
464
- if (legacyRaw !== void 0) warnLegacyNaming("clio: skill metadata", "clio-coder: skill metadata");
456
+ if (legacyRaw !== void 0) warnLegacySkillMetadata(filePath);
465
457
  const clioCoderRaw = canonicalRaw ?? legacyRaw;
466
458
  const clioCoder = clioCoderRaw !== null && typeof clioCoderRaw === "object" && !Array.isArray(clioCoderRaw) ? clioCoderRaw : void 0;
467
459
  const field = (...keys) => {
@@ -601,7 +593,7 @@ function loadSkillFile(filePath, root) {
601
593
  scope,
602
594
  ...root.origin ? { source: root.origin } : {}
603
595
  };
604
- const provenance = extractProvenance(parsed.frontmatter);
596
+ const provenance = extractProvenance(parsed.frontmatter, filePath);
605
597
  const allowedTools = declaredToolSurface(parsed.frontmatter, "allowed-tools", filePath, diagnostics);
606
598
  const disallowedTools = declaredToolSurface(parsed.frontmatter, "disallowed-tools", filePath, diagnostics);
607
599
  const skill = {
@@ -621,7 +613,7 @@ function loadSkillFile(filePath, root) {
621
613
  pathSubject,
622
614
  trusted: root.trusted ?? true,
623
615
  precedence: root.precedence ?? defaultPrecedenceForScope(scope),
624
- metadata: extractMetadata(parsed.frontmatter),
616
+ metadata: extractMetadata(parsed.frontmatter, filePath),
625
617
  diagnostics,
626
618
  ...provenance ? { provenance } : {}
627
619
  };
@@ -1205,4 +1197,4 @@ export {
1205
1197
  expandSkillInvocationInput,
1206
1198
  parsePendingSkillRequests
1207
1199
  };
1208
- //# sourceMappingURL=chunk-HUAS7ITX.js.map
1200
+ //# sourceMappingURL=chunk-O3YUNJZ2.js.map
@@ -1,13 +1,16 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  discoverAgentRecipes
4
- } from "./chunk-ZJLUDYFY.js";
4
+ } from "./chunk-CRFOIAX3.js";
5
5
  import {
6
6
  assertAgentIdNamespace
7
7
  } from "./chunk-DR52UMZW.js";
8
8
  import {
9
9
  normalizeAgentSpec
10
- } from "./chunk-IG7BCQBA.js";
10
+ } from "./chunk-PGF63K6I.js";
11
+ import {
12
+ BusChannels
13
+ } from "./chunk-F4EKGO4N.js";
11
14
  import {
12
15
  init_esm_shims
13
16
  } from "./chunk-3R73A4XB.js";
@@ -21,6 +24,7 @@ function createAgentsBundle(_context) {
21
24
  let recipes = [];
22
25
  let specs = [];
23
26
  let diagnostics = [];
27
+ let revision = 0;
24
28
  function discover() {
25
29
  const nextDiagnostics = [];
26
30
  const merged = discoverAgentRecipes(process.cwd(), nextDiagnostics);
@@ -29,15 +33,33 @@ function createAgentsBundle(_context) {
29
33
  recipes = merged;
30
34
  specs = recipes.map(normalizeAgentSpec);
31
35
  diagnostics = nextDiagnostics;
36
+ revision += 1;
32
37
  }
38
+ let unsubscribeExtensionsReload = null;
33
39
  const extension = {
34
40
  async start() {
35
41
  discover();
42
+ unsubscribeExtensionsReload = _context.bus.on(BusChannels.ExtensionsReloaded, (payload) => {
43
+ if (payload?.changed !== true) return;
44
+ try {
45
+ discover();
46
+ } catch (error) {
47
+ process.stderr.write(
48
+ `[clio-coder:agents] rediscovery after extension reload failed: ${error instanceof Error ? error.message : String(error)}
49
+ `
50
+ );
51
+ }
52
+ });
36
53
  },
37
54
  async stop() {
55
+ unsubscribeExtensionsReload?.();
56
+ unsubscribeExtensionsReload = null;
38
57
  }
39
58
  };
40
59
  const contract = {
60
+ revision() {
61
+ return revision;
62
+ },
41
63
  list() {
42
64
  return recipes;
43
65
  },
@@ -124,4 +146,4 @@ var AgentsDomainModule = {
124
146
  export {
125
147
  AgentsDomainModule
126
148
  };
127
- //# sourceMappingURL=chunk-MA3H6DM5.js.map
149
+ //# sourceMappingURL=chunk-P75RZCJW.js.map
@@ -3,7 +3,7 @@ import {
3
3
  artifactDefaultPath,
4
4
  extractCommandCdTargets,
5
5
  extractCommandWriteTargets
6
- } from "./chunk-GCSMB2KY.js";
6
+ } from "./chunk-IKOZFYBN.js";
7
7
  import {
8
8
  canonicalizeExistingPath
9
9
  } from "./chunk-ECH6PKUQ.js";
@@ -1419,4 +1419,4 @@ export {
1419
1419
  parseResultContract,
1420
1420
  parseWorkerResultContract
1421
1421
  };
1422
- //# sourceMappingURL=chunk-IG7BCQBA.js.map
1422
+ //# sourceMappingURL=chunk-PGF63K6I.js.map
@@ -0,0 +1,42 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ typebox_exports
4
+ } from "./chunk-5B2AEOW5.js";
5
+ import {
6
+ ToolNames
7
+ } from "./chunk-K6BSR66V.js";
8
+ import {
9
+ StringEnum
10
+ } from "./chunk-VXMFAE2W.js";
11
+ import {
12
+ init_esm_shims
13
+ } from "./chunk-3R73A4XB.js";
14
+
15
+ // src/tools/monitor-surface.ts
16
+ init_esm_shims();
17
+ var monitorToolSurface = {
18
+ name: ToolNames.Monitor,
19
+ description: "Inspect dispatched runs: list enumerates them; status, peek, receipt, and tools observe one run; wait blocks on one run without collecting; collect is the terminal operation for a detached batch or run list, required before final synthesis.",
20
+ parameters: typebox_exports.Object({
21
+ run_id: typebox_exports.Optional(
22
+ typebox_exports.String({ description: "Run id from dispatch output or monitor list; omit with mode=list." })
23
+ ),
24
+ mode: typebox_exports.Optional(
25
+ StringEnum(["status", "peek", "receipt", "list", "wait", "collect", "tools"], {
26
+ description: "Defaults to status with run_id and list without. tools lists a run's tool calls with outcomes and per-tool totals."
27
+ })
28
+ ),
29
+ batch_id: typebox_exports.Optional(typebox_exports.String({ description: "Detached batch id (mode=collect)." })),
30
+ run_ids: typebox_exports.Optional(typebox_exports.Array(typebox_exports.String(), { description: "Run ids to collect (mode=collect)." })),
31
+ timeout_ms: typebox_exports.Optional(
32
+ typebox_exports.Number({ description: "mode=wait: max ms to block (default 60000, max 600000); collect never blocks." })
33
+ )
34
+ }),
35
+ baseActionClass: "read",
36
+ executionMode: "parallel"
37
+ };
38
+
39
+ export {
40
+ monitorToolSurface
41
+ };
42
+ //# sourceMappingURL=chunk-PJX3WQUQ.js.map
@@ -245,13 +245,11 @@ function applyMutation(board, mutation) {
245
245
  error: "done requires note as the evidence that the task actually finished (the command you ran, the file:line you verified). If the work did not happen, use block with a reason or drop it."
246
246
  };
247
247
  }
248
- if (target.status === "pending") {
249
- return {
250
- error: `task ${target.id} was never started, so it cannot be completed. Start it and do the work, or record the truth with block (reason) or drop.`
251
- };
252
- }
253
248
  }
254
249
  const notes = [];
250
+ if (mutation.op === "done" && target.status === "pending") {
251
+ notes.push(`started ${target.id} implicitly: done on a pending task records the start and the completion together`);
252
+ }
255
253
  const tasks = board.tasks.map((task) => {
256
254
  if (task.id !== target.id) {
257
255
  if (mutation.op === "start" && task.status === "active") {
@@ -373,4 +371,4 @@ export {
373
371
  foldSessionTaskHistory,
374
372
  createTaskBoardStore
375
373
  };
376
- //# sourceMappingURL=chunk-6DWBAZ5U.js.map
374
+ //# sourceMappingURL=chunk-Q4XWMHX6.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
  readStateInfoResult
4
- } from "./chunk-QTFGO774.js";
4
+ } from "./chunk-XQRY4DTA.js";
5
5
  import {
6
6
  foldPromptCacheTelemetry,
7
7
  hasPromptCacheTelemetry,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-3DPEIQKN.js";
10
10
  import {
11
11
  loadSkills
12
- } from "./chunk-HUAS7ITX.js";
12
+ } from "./chunk-O3YUNJZ2.js";
13
13
  import {
14
14
  isSessionEntry
15
15
  } from "./chunk-FSP7CMNU.js";
@@ -22,10 +22,10 @@ import {
22
22
  import {
23
23
  detectInteropAgents,
24
24
  resolveOnPath
25
- } from "./chunk-BDPT6GTK.js";
25
+ } from "./chunk-JWJGP5DQ.js";
26
26
  import {
27
27
  initializeClioHome
28
- } from "./chunk-7PWAODYW.js";
28
+ } from "./chunk-I7XBWTYH.js";
29
29
  import {
30
30
  credentialsPresent
31
31
  } from "./chunk-72GZI5EV.js";
@@ -39,7 +39,7 @@ import {
39
39
  formatSettingsIssues,
40
40
  readSettings,
41
41
  validateSettingsFile
42
- } from "./chunk-EIMVLWB3.js";
42
+ } from "./chunk-34BHNEE3.js";
43
43
  import {
44
44
  openAuthStorage,
45
45
  resolveAuthTarget,
@@ -360,7 +360,7 @@ async function runDoctorFleetChecks(projectRoot = process.cwd()) {
360
360
  }
361
361
  const nodes = settings.fleet?.nodes ?? [];
362
362
  if (nodes.length === 0) return [];
363
- const { runFleetNodePreflight } = await import("./fleet-preflight-PBY4VYOM.js");
363
+ const { runFleetNodePreflight } = await import("./fleet-preflight-UN5XED4R.js");
364
364
  const targets = (settings.targets ?? []).map((target) => ({
365
365
  id: target.id,
366
366
  runtimeId: target.runtime,
@@ -507,7 +507,7 @@ async function runDoctorModelChecks() {
507
507
  if (settings.targets.length === 0) return [];
508
508
  const [{ getRuntimeRegistry }, { registerBuiltinRuntimes }, { listKnownModelsForRuntime }] = await Promise.all([
509
509
  import("./registry-LG64LTF4.js"),
510
- import("./builtins-UJLMOVOV.js"),
510
+ import("./builtins-K6TNDT24.js"),
511
511
  import("./support-U7QOWY26.js")
512
512
  ]);
513
513
  const registry = getRuntimeRegistry();
@@ -559,4 +559,4 @@ export {
559
559
  runDoctorRuntimeChecks,
560
560
  runDoctorModelChecks
561
561
  };
562
- //# sourceMappingURL=chunk-OJTRZGR3.js.map
562
+ //# sourceMappingURL=chunk-QQLGQY2A.js.map