@iowarp/clio-coder 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/CONTRIBUTING.md +142 -52
  3. package/README.md +434 -473
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-ZILU3AUO.js → acp-H2NGRPWO.js} +12 -12
  6. package/dist/{agents-HYWGBGQR.js → agents-TL5LLUQP.js} +56 -55
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-N3QT7CBO.js → auth-E5SW4HMS.js} +23 -21
  9. package/dist/builtins-IA7V7FUC.js +22 -0
  10. package/dist/{chunk-7RY5VZPH.js → chunk-2APPQIER.js} +8 -8
  11. package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
  12. package/dist/{chunk-JA5QWE4Z.js → chunk-2UG5F4C5.js} +1973 -1664
  13. package/dist/{chunk-5YHDIDBP.js → chunk-2UH2KFUP.js} +2 -2
  14. package/dist/{chunk-CTJ4RNAA.js → chunk-2VIKGWFZ.js} +2 -2
  15. package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
  16. package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
  17. package/dist/chunk-3EBYEESD.js +314 -0
  18. package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
  19. package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
  20. package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
  21. package/dist/chunk-4UVU7BJ5.js +39 -0
  22. package/dist/{chunk-VKRH2TCS.js → chunk-4WR7VSYB.js} +2 -2
  23. package/dist/{chunk-BBTJOK6Y.js → chunk-54CBCGIR.js} +5 -5
  24. package/dist/{chunk-AP73CFDC.js → chunk-5ICU3EUH.js} +2 -2
  25. package/dist/chunk-5MEZN6CB.js +1334 -0
  26. package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
  27. package/dist/{chunk-ABLSQ6JX.js → chunk-64I3JVYM.js} +8 -2
  28. package/dist/{chunk-AFKWHWXF.js → chunk-6PTFB5VS.js} +39 -22
  29. package/dist/{chunk-VN3SHNBN.js → chunk-7DICMOS6.js} +2 -2
  30. package/dist/chunk-7DRAWPTZ.js +360 -0
  31. package/dist/chunk-7E7I3WLS.js +3762 -0
  32. package/dist/{chunk-BJGUKIG4.js → chunk-7ZYNNDKC.js} +7 -7
  33. package/dist/{chunk-XKA2ICR3.js → chunk-AF4YM7Z4.js} +652 -252
  34. package/dist/{chunk-GVQJ5CCZ.js → chunk-AX2THNSA.js} +12 -12
  35. package/dist/{chunk-IG7BCQBA.js → chunk-B4OAX3SI.js} +65 -3
  36. package/dist/{chunk-TD3PGPQA.js → chunk-B4VEBZKF.js} +3 -3
  37. package/dist/{chunk-74YWRRU5.js → chunk-BEPZRGGU.js} +10 -10
  38. package/dist/{chunk-FEFIFZTL.js → chunk-CE5AX47J.js} +2 -2
  39. package/dist/{chunk-UAPGZHYC.js → chunk-DWUOQKRU.js} +25 -11
  40. package/dist/{chunk-THYWACCR.js → chunk-E3TPLWFX.js} +3 -3
  41. package/dist/{chunk-7EPLI7VL.js → chunk-EKCHAPYA.js} +2 -2
  42. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  43. package/dist/{chunk-PJJ6MY27.js → chunk-F5JHEYZM.js} +7 -7
  44. package/dist/{chunk-6CCS4G3W.js → chunk-FTMGRKEF.js} +3 -3
  45. package/dist/{chunk-SINK3QR6.js → chunk-G76U63X4.js} +17 -17
  46. package/dist/{chunk-EIMVLWB3.js → chunk-GHS5EBTQ.js} +64 -9
  47. package/dist/{chunk-QMXC4JB7.js → chunk-GI7YYQ3F.js} +187 -1419
  48. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  49. package/dist/{chunk-6HMJX2VU.js → chunk-GWZNEVM2.js} +44 -12
  50. package/dist/chunk-GYV6VZOC.js +26 -0
  51. package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
  52. package/dist/{chunk-UXN6JT4W.js → chunk-HEQY7ZFI.js} +3 -3
  53. package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
  54. package/dist/{chunk-GCSMB2KY.js → chunk-I7ZPNEJM.js} +145 -102
  55. package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
  56. package/dist/{chunk-QTFGO774.js → chunk-IGLP3ODT.js} +29 -16
  57. package/dist/chunk-IJNZMHLA.js +101 -0
  58. package/dist/{chunk-BDPT6GTK.js → chunk-INY6HTFL.js} +7 -7
  59. package/dist/{chunk-PBP4B7XR.js → chunk-IUE3Y34X.js} +2 -2
  60. package/dist/{chunk-6NJQITNH.js → chunk-IWT4SF4R.js} +6 -3
  61. package/dist/{chunk-R23Z6K6I.js → chunk-JDAY6FIL.js} +19 -19
  62. package/dist/chunk-JEQ3XTHC.js +42 -0
  63. package/dist/{chunk-FSP7CMNU.js → chunk-JGRC33J2.js} +50 -4
  64. package/dist/{chunk-TVH4ONAM.js → chunk-JKKCYP3C.js} +10 -10
  65. package/dist/{chunk-HJWWJ6IL.js → chunk-JSC3U7TI.js} +16 -4
  66. package/dist/{chunk-C537JADH.js → chunk-KK4JZPBQ.js} +19 -141
  67. package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
  68. package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
  69. package/dist/{chunk-6DWBAZ5U.js → chunk-L47TF46W.js} +5 -7
  70. package/dist/{chunk-HUAS7ITX.js → chunk-LDJG7DW3.js} +91 -42
  71. package/dist/{chunk-CDNVLKUX.js → chunk-LLDJM5XK.js} +13 -7
  72. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  73. package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
  74. package/dist/{chunk-VKFQTNDV.js → chunk-MUW2BDDH.js} +4 -4
  75. package/dist/{chunk-E67WX76H.js → chunk-MWUZBSAQ.js} +104 -152
  76. package/dist/{chunk-OJTRZGR3.js → chunk-N2Z7HLVY.js} +21 -21
  77. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  78. package/dist/{chunk-FYUN5KZ3.js → chunk-NIQJ66N4.js} +21 -21
  79. package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
  80. package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
  81. package/dist/{chunk-VEGN6WIQ.js → chunk-O5CVSAG5.js} +3 -3
  82. package/dist/{chunk-MOPSG2X7.js → chunk-OML5D5V5.js} +8 -8
  83. package/dist/{chunk-2VG7KLYV.js → chunk-PAJQJ7BS.js} +5816 -3255
  84. package/dist/{chunk-ZW55JB7N.js → chunk-PUVDKJ2Y.js} +2 -2
  85. package/dist/{chunk-BTGG6BG2.js → chunk-QWGDJJYJ.js} +158 -19
  86. package/dist/chunk-R6Q67RJH.js +134 -0
  87. package/dist/{chunk-ZJLUDYFY.js → chunk-RRNP2ANY.js} +6 -6
  88. package/dist/{chunk-PVAMAVBB.js → chunk-RSJ25QSL.js} +102 -2
  89. package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
  90. package/dist/chunk-SKHCAU7K.js +385 -0
  91. package/dist/chunk-SZAA6XDG.js +30 -0
  92. package/dist/{chunk-J4HBWF6Y.js → chunk-TM6LQDI3.js} +131 -28
  93. package/dist/chunk-UOIZ7DA4.js +41 -0
  94. package/dist/{chunk-MA3H6DM5.js → chunk-UPZU6GE4.js} +25 -3
  95. package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
  96. package/dist/{chunk-N5UK64DP.js → chunk-V2ANDPVT.js} +4 -4
  97. package/dist/{chunk-AK5XEFVZ.js → chunk-VA5FNYMT.js} +26 -13
  98. package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
  99. package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
  100. package/dist/{chunk-QKIFBZKT.js → chunk-VW6DOEDG.js} +497 -81
  101. package/dist/{chunk-SCYB3HA4.js → chunk-W6RRQCPQ.js} +63 -19
  102. package/dist/{chunk-2NM363SV.js → chunk-WBKFA554.js} +10 -10
  103. package/dist/{chunk-R32CLGZ6.js → chunk-WCXUNS7U.js} +82 -21
  104. package/dist/{chunk-GPPB3JBE.js → chunk-WRBAGUNF.js} +3 -3
  105. package/dist/{chunk-IXJT6DCX.js → chunk-XIVNBFZS.js} +85 -30
  106. package/dist/{chunk-UEDMSP56.js → chunk-XPWWI35G.js} +417 -201
  107. package/dist/chunk-XRZT5WY5.js +47 -0
  108. package/dist/{chunk-3QSOM6PA.js → chunk-Y3CBHOR6.js} +2 -2
  109. package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
  110. package/dist/{chunk-AKB4GYDL.js → chunk-YQWYVTMC.js} +5 -5
  111. package/dist/{chunk-6I5ILFOF.js → chunk-ZA4VCIGV.js} +3 -3
  112. package/dist/{chunk-7OBGU7UB.js → chunk-ZDN3Y73Y.js} +12 -18
  113. package/dist/{chunk-3I5NY75V.js → chunk-ZWPRK62N.js} +8 -5
  114. package/dist/cli/index.js +41 -39
  115. package/dist/{clio-IT3G3VQH.js → clio-CMMK4KRR.js} +9 -9
  116. package/dist/{code-nav-RK6S7F6E.js → code-nav-MDZNQS33.js} +89 -21
  117. package/dist/{components-UBWCQSRW.js → components-UCUQ4QXW.js} +4 -4
  118. package/dist/{config-3QZRWZJF.js → config-SVM5P5YI.js} +131 -84
  119. package/dist/{configure-FL7Y3KJF.js → configure-LE3IK2TJ.js} +28 -26
  120. package/dist/{context-5HE7ODYK.js → context-2OHRKS42.js} +69 -64
  121. package/dist/{context-KYQFRVDC.js → context-E3VC7RX5.js} +15 -11
  122. package/dist/{context-XNHL75JV.js → context-VNCR7KAG.js} +93 -65
  123. package/dist/{context-clear-N545L53A.js → context-clear-BW4O37TG.js} +64 -60
  124. package/dist/context-map-COB37XXN.js +505 -0
  125. package/dist/{context-working-set-QHKXSV2F.js → context-working-set-VDS25HXZ.js} +19 -18
  126. package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-5AHT53RF.js} +93 -82
  127. package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
  128. package/dist/{doctor-ZGPEGHIP.js → doctor-WNNVO6FY.js} +48 -47
  129. package/dist/{eval-GXLL44RD.js → eval-7G7SGAYO.js} +287 -115
  130. package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-Y6QRFOH5.js} +4 -4
  131. package/dist/{evidence-HWLBRH3Q.js → evidence-VD6736FQ.js} +67 -64
  132. package/dist/{evolve-FTZBMNVW.js → evolve-AL3NGVRL.js} +65 -62
  133. package/dist/{extensions-VHRBEID7.js → extensions-MOVJ32NM.js} +9 -7
  134. package/dist/{fleet-CKZHJWZJ.js → fleet-QZHUMAGI.js} +114 -111
  135. package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-BAYT5FJZ.js} +10 -10
  136. package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-IREVMRU4.js} +7 -6
  137. package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-YCTT3HTI.js} +22 -19
  138. package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-QVJTDAVB.js} +58 -55
  139. package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-25QAFPK4.js} +4 -4
  140. package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-5O57AAJ7.js} +26 -23
  141. package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-CPH2W2T6.js} +59 -56
  142. package/dist/{fleet-view-WAMJYNDT.js → fleet-view-SWBR3VGQ.js} +58 -55
  143. package/dist/{init-5XQRBOFV.js → init-J477LKZH.js} +82 -79
  144. package/dist/{interop-34TVO25M.js → interop-3FCM6XLG.js} +11 -11
  145. package/dist/{library-3QY6KF57.js → library-QUQEIUG6.js} +30 -27
  146. package/dist/{memory-L4UTIIIW.js → memory-SGGSEP65.js} +67 -64
  147. package/dist/{models-ZVX3QOWE.js → models-HEKUAXXK.js} +53 -46
  148. package/dist/{monitor-CEKVSYTS.js → monitor-HKU57TYQ.js} +63 -60
  149. package/dist/{orchestrator-77BAP6BC.js → orchestrator-VDFAEFAI.js} +1831 -1057
  150. package/dist/{panes-7STHOAUJ.js → panes-DN2SSFOH.js} +5 -5
  151. package/dist/{panes-SHAUIRXY.js → panes-TALGNPZT.js} +29 -14
  152. package/dist/{paths-L7LGY6RN.js → paths-NBMFAIEZ.js} +5 -5
  153. package/dist/reset-EAJFFJVB.js +344 -0
  154. package/dist/{resources-74GKTLSF.js → resources-OVKSEFVE.js} +29 -20
  155. package/dist/{run-HBAUJNNZ.js → run-7DP7ZF2J.js} +120 -115
  156. package/dist/{share-G3APVLVP.js → share-WML67FT3.js} +32 -27
  157. package/dist/{skills-35HHUKCR.js → skills-SG662R2K.js} +41 -31
  158. package/dist/{skills-eval-QN4HSHDC.js → skills-eval-VVZEUU46.js} +78 -77
  159. package/dist/{skills-inventory-J357J34F.js → skills-inventory-I2E23GET.js} +23 -20
  160. package/dist/{slash-commands-JZZCQA32.js → slash-commands-S7MBJDQK.js} +40 -36
  161. package/dist/{steer-XAVHJM22.js → steer-2LQOMCPB.js} +3 -3
  162. package/dist/{support-U7QOWY26.js → support-CC2UJBJ6.js} +6 -6
  163. package/dist/{targets-DSM6CY3M.js → targets-4QC3HIEW.js} +54 -54
  164. package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-TUHIJ6Y2.js} +5 -5
  165. package/dist/{tools-MKNWVPBH.js → tools-TFGJICCU.js} +10 -10
  166. package/dist/{trace-ECQ7TIYZ.js → trace-FXMXUZUF.js} +55 -7
  167. package/dist/uninstall-5PEVOE5B.js +408 -0
  168. package/dist/upgrade-M4WXY6KN.js +303 -0
  169. package/dist/{usage-X52N3IDJ.js → usage-N7ZNVLEM.js} +151 -104
  170. package/dist/{verifiers-EJTVVSMA.js → verifiers-DJTP4XX6.js} +15 -15
  171. package/dist/{verify-YJL6XET2.js → verify-RWE4PPEK.js} +9 -9
  172. package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
  173. package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-C7IQOXSP.js} +89 -86
  174. package/dist/{with-panes-OBOBFIIR.js → with-panes-4GCGSL7J.js} +53 -257
  175. package/dist/worker/entry.js +90 -74
  176. package/docs/README.md +176 -81
  177. package/docs/{acp.md → architecture/acp.md} +36 -20
  178. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  179. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  180. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +27 -23
  181. package/docs/architecture/artifact-versions.md +90 -0
  182. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  183. package/docs/{context-engine.md → architecture/context-engine.md} +29 -25
  184. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  185. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  186. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  187. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  188. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  189. package/docs/{model-catalog.md → architecture/model-catalog.md} +61 -27
  190. package/docs/{observability.md → architecture/observability.md} +38 -14
  191. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  192. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +57 -20
  193. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +99 -25
  194. package/docs/{safety-model.md → architecture/safety-model.md} +35 -20
  195. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  196. package/docs/architecture/time-conventions.md +125 -0
  197. package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
  198. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  199. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  200. package/docs/{built-in-agents.md → guide/built-in-agents.md} +65 -35
  201. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +66 -61
  202. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +323 -297
  203. package/docs/guide/configuration-reference.md +1163 -0
  204. package/docs/{environment-variables.md → guide/environment-variables.md} +33 -28
  205. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
  206. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  207. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
  208. package/docs/{glossary.md → guide/glossary.md} +14 -11
  209. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +81 -17
  210. package/docs/guide/panes-and-files.md +290 -0
  211. package/docs/{proactive-memory.md → guide/proactive-memory.md} +131 -107
  212. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  213. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +25 -3
  214. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  215. package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
  216. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
  217. package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
  218. package/docs/process/development-pipeline.md +152 -0
  219. package/docs/process/documentation-coverage.md +100 -0
  220. package/docs/process/documentation-guide.md +187 -0
  221. package/docs/{eval-runner.md → process/eval-runner.md} +108 -53
  222. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  223. package/docs/{evolution.md → process/evolution.md} +2 -2
  224. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
  225. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  226. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  227. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  228. package/evals/README.md +2 -2
  229. package/evals/behavioral-model.yaml +3 -2
  230. package/package.json +10 -8
  231. package/skills/README.md +52 -41
  232. package/skills/coding/ast-grep/SKILL.md +102 -31
  233. package/skills/coding/ast-grep/evals.md +26 -0
  234. package/skills/coding/coding-standards/SKILL.md +41 -6
  235. package/skills/coding/coding-standards/evals.md +23 -0
  236. package/skills/coding/prototype/SKILL.md +88 -29
  237. package/skills/coding/prototype/evals.md +19 -0
  238. package/skills/coding/tdd/SKILL.md +81 -54
  239. package/skills/coding/tdd/evals.md +20 -0
  240. package/skills/context/context-handoff/SKILL.md +44 -3
  241. package/skills/context/context-handoff/evals.md +44 -0
  242. package/skills/context/context-prime/SKILL.md +46 -16
  243. package/skills/context/context-prime/evals.md +45 -0
  244. package/skills/git/branch-closeout/SKILL.md +132 -0
  245. package/skills/git/branch-closeout/evals.md +133 -0
  246. package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
  247. package/skills/git/file-ticket/SKILL.md +78 -64
  248. package/skills/git/file-ticket/assets/issue-template.md +22 -0
  249. package/skills/git/file-ticket/evals.md +31 -26
  250. package/skills/git/file-ticket/references/issue-discovery.md +49 -0
  251. package/skills/git/fix-issue/SKILL.md +88 -65
  252. package/skills/git/fix-issue/evals.md +35 -31
  253. package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
  254. package/skills/git/resolve-merge-conflicts/SKILL.md +101 -52
  255. package/skills/git/resolve-merge-conflicts/evals.md +52 -25
  256. package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
  257. package/skills/git/ship/SKILL.md +103 -67
  258. package/skills/git/ship/assets/pr-template.md +21 -0
  259. package/skills/git/ship/evals.md +44 -28
  260. package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
  261. package/skills/git/worktree-create/SKILL.md +80 -50
  262. package/skills/git/worktree-create/evals.md +40 -33
  263. package/skills/git/worktree-create/references/worktree-setup.md +62 -66
  264. package/skills/git/worktree-merge/SKILL.md +112 -65
  265. package/skills/git/worktree-merge/evals.md +42 -34
  266. package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
  267. package/skills/meta/clio-coder-dev/SKILL.md +9 -5
  268. package/skills/meta/clio-coder-dev/evals.md +3 -2
  269. package/skills/meta/clio-coder-test/SKILL.md +102 -95
  270. package/skills/meta/clio-coder-test/evals.md +9 -4
  271. package/skills/meta/clio-coder-test/references/harness.md +100 -124
  272. package/skills/meta/clio-coder-test/references/test-map.md +77 -50
  273. package/skills/meta/credentials/SKILL.md +2 -2
  274. package/skills/meta/find-skills/SKILL.md +2 -2
  275. package/skills/meta/herdr/SKILL.md +2 -2
  276. package/skills/meta/skill-craft/SKILL.md +22 -16
  277. package/skills/planning/archify/SKILL.md +196 -0
  278. package/skills/planning/archify/evals.md +65 -0
  279. package/skills/planning/architecture/SKILL.md +62 -13
  280. package/skills/planning/architecture/evals.md +65 -0
  281. package/skills/planning/backlog/SKILL.md +131 -15
  282. package/skills/planning/backlog/evals.md +142 -0
  283. package/skills/planning/prd/SKILL.md +47 -7
  284. package/skills/planning/prd/evals.md +54 -0
  285. package/skills/planning/product-intent/SKILL.md +58 -3
  286. package/skills/planning/product-intent/evals.md +70 -0
  287. package/skills/planning/tech-spec/SKILL.md +54 -3
  288. package/skills/planning/tech-spec/evals.md +73 -0
  289. package/skills/registry.yaml +70 -62
  290. package/skills/remote.yaml +13 -0
  291. package/skills/research/arxiv-literature/SKILL.md +77 -19
  292. package/skills/research/arxiv-literature/evals.md +50 -0
  293. package/skills/research/experiment-protocol/SKILL.md +21 -2
  294. package/skills/research/experiment-protocol/evals.md +23 -0
  295. package/skills/research/scientific-debugging/SKILL.md +24 -2
  296. package/skills/research/scientific-debugging/evals.md +18 -0
  297. package/skills/research/scientific-modernization/SKILL.md +27 -2
  298. package/skills/research/scientific-modernization/evals.md +27 -0
  299. package/skills/skill-marketplace.json +97 -62
  300. package/skills/workflow/cut-it/SKILL.md +66 -6
  301. package/skills/workflow/cut-it/evals.md +101 -0
  302. package/skills/workflow/design-council/SKILL.md +118 -28
  303. package/skills/workflow/design-council/evals.md +161 -0
  304. package/skills/workflow/grill-me/SKILL.md +87 -11
  305. package/skills/workflow/grill-me/evals.md +153 -0
  306. package/skills/workflow/workflow-distiller/SKILL.md +77 -18
  307. package/skills/workflow/workflow-distiller/evals.md +118 -0
  308. package/src/cli/args.ts +2 -2
  309. package/src/cli/bootstrap-generate.ts +1 -1
  310. package/src/cli/config-inspect.ts +65 -12
  311. package/src/cli/configure-interop.ts +105 -13
  312. package/src/cli/configure-oauth.ts +57 -0
  313. package/src/cli/configure-onboarding.ts +980 -0
  314. package/src/cli/configure-target.ts +594 -0
  315. package/src/cli/configure.ts +1082 -532
  316. package/src/cli/context-map.ts +114 -0
  317. package/src/cli/context.ts +4 -0
  318. package/src/cli/docs.ts +22 -14
  319. package/src/cli/doctor-naming.ts +5 -5
  320. package/src/cli/doctor-toolchain.ts +3 -3
  321. package/src/cli/eval.ts +1 -2
  322. package/src/cli/extensions.ts +2 -1
  323. package/src/cli/fleet.ts +1 -1
  324. package/src/cli/index.ts +3 -1
  325. package/src/cli/internal-dispatch.ts +3 -4
  326. package/src/cli/lifecycle-presenter.ts +436 -0
  327. package/src/cli/models.ts +10 -2
  328. package/src/cli/modes/print.ts +5 -1
  329. package/src/cli/panes.ts +19 -5
  330. package/src/cli/reset.ts +228 -106
  331. package/src/cli/run.ts +9 -4
  332. package/src/cli/select.ts +664 -0
  333. package/src/cli/share.ts +5 -1
  334. package/src/cli/skills-eval.ts +3 -3
  335. package/src/cli/skills.ts +9 -2
  336. package/src/cli/targets.ts +5 -6
  337. package/src/cli/trace.ts +55 -4
  338. package/src/cli/uninstall.ts +233 -165
  339. package/src/cli/upgrade.ts +204 -149
  340. package/src/cli/usage.ts +86 -27
  341. package/src/cli/validate-model.ts +3 -3
  342. package/src/cli/wiki-generate.ts +1 -1
  343. package/src/core/artifact-paths.ts +1 -1
  344. package/src/core/bash-exec.ts +131 -86
  345. package/src/core/bus-events.ts +51 -6
  346. package/src/core/config.ts +61 -1
  347. package/src/core/defaults.ts +7 -4
  348. package/src/core/dispatch-outcome.ts +16 -0
  349. package/src/core/external-diagnostic.ts +44 -0
  350. package/src/core/gateway-routing.ts +157 -0
  351. package/src/core/guardrails.ts +10 -49
  352. package/src/core/prompt-hint.ts +9 -0
  353. package/src/core/safe-exec.ts +17 -2
  354. package/src/core/skill-activation.ts +89 -2
  355. package/src/domains/agents/builtins/architect.md +2 -3
  356. package/src/domains/agents/builtins/coder.md +3 -2
  357. package/src/domains/agents/builtins/debugger.md +2 -2
  358. package/src/domains/agents/builtins/documenter.md +2 -2
  359. package/src/domains/agents/builtins/git-master.md +1 -1
  360. package/src/domains/agents/builtins/oracle.md +1 -1
  361. package/src/domains/agents/builtins/provenance.md +1 -1
  362. package/src/domains/agents/builtins/researcher.md +1 -1
  363. package/src/domains/agents/builtins/scout.md +1 -1
  364. package/src/domains/agents/builtins/tester.md +2 -2
  365. package/src/domains/agents/builtins/verifier.md +2 -2
  366. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  367. package/src/domains/agents/builtins/world-knowledge.md +31 -0
  368. package/src/domains/agents/catalog.ts +13 -15
  369. package/src/domains/agents/contract.ts +2 -0
  370. package/src/domains/agents/extension.ts +23 -1
  371. package/src/domains/agents/result-contract.ts +70 -0
  372. package/src/domains/config/keybindings.ts +8 -0
  373. package/src/domains/context/extension.ts +0 -3
  374. package/src/domains/context/wiki/map-seed.ts +589 -0
  375. package/src/domains/context/wiki/plan.ts +2 -2
  376. package/src/domains/context/working-set/path-index.ts +1 -0
  377. package/src/domains/dispatch/admission.ts +29 -0
  378. package/src/domains/dispatch/agent-candidates.ts +10 -0
  379. package/src/domains/dispatch/budget-envelope.ts +86 -1
  380. package/src/domains/dispatch/capability-match.ts +11 -0
  381. package/src/domains/dispatch/capacity-lease.ts +17 -0
  382. package/src/domains/dispatch/contract.ts +11 -1
  383. package/src/domains/dispatch/extension.ts +237 -49
  384. package/src/domains/dispatch/host-verification.ts +435 -39
  385. package/src/domains/dispatch/intent-requirements.ts +10 -0
  386. package/src/domains/dispatch/intent.ts +18 -1
  387. package/src/domains/dispatch/path-scope.ts +235 -24
  388. package/src/domains/dispatch/run-event-journal.ts +4 -15
  389. package/src/domains/dispatch/state.ts +2 -3
  390. package/src/domains/dispatch/transport.ts +45 -21
  391. package/src/domains/dispatch/types.ts +58 -3
  392. package/src/domains/dispatch/worker-model-metadata.ts +38 -0
  393. package/src/domains/eval/artifacts/store.ts +5 -0
  394. package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
  395. package/src/domains/eval/metrics/token-stream.ts +201 -31
  396. package/src/domains/eval/metrics/tracked.ts +40 -4
  397. package/src/domains/eval/runners/clio-run.ts +5 -2
  398. package/src/domains/eval/schema/suite.ts +28 -0
  399. package/src/domains/eval/schema/verdict.ts +2 -2
  400. package/src/domains/eval/store.ts +8 -1
  401. package/src/domains/eval/suites/resolve.ts +13 -1
  402. package/src/domains/eval/suites/run.ts +24 -3
  403. package/src/domains/evidence/trust-status.ts +10 -1
  404. package/src/domains/extensions/contract.ts +15 -1
  405. package/src/domains/extensions/discovery.ts +238 -41
  406. package/src/domains/extensions/extension.ts +105 -6
  407. package/src/domains/extensions/index.ts +24 -0
  408. package/src/domains/extensions/integrity.ts +189 -0
  409. package/src/domains/extensions/manager.ts +17 -1
  410. package/src/domains/extensions/resource-path.ts +27 -0
  411. package/src/domains/extensions/resources.ts +18 -38
  412. package/src/domains/extensions/snapshot-store.ts +39 -0
  413. package/src/domains/extensions/snapshot.ts +180 -0
  414. package/src/domains/extensions/state.ts +385 -57
  415. package/src/domains/extensions/types.ts +118 -1
  416. package/src/domains/interop/registry.ts +6 -2
  417. package/src/domains/interop/types.ts +4 -0
  418. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  419. package/src/domains/lifecycle/migrations/index.ts +6 -0
  420. package/src/domains/lifecycle/naming-resources.ts +19 -4
  421. package/src/domains/lifecycle/naming-yazi.ts +10 -5
  422. package/src/domains/memory/task-memory-policy.ts +70 -26
  423. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  424. package/src/domains/middleware/contract.ts +26 -0
  425. package/src/domains/middleware/extension.ts +24 -24
  426. package/src/domains/middleware/hook-receipts.ts +27 -4
  427. package/src/domains/middleware/hooks-io.ts +65 -32
  428. package/src/domains/middleware/hooks.ts +64 -0
  429. package/src/domains/middleware/index.ts +28 -5
  430. package/src/domains/middleware/marketplace-offer.ts +3 -35
  431. package/src/domains/middleware/memory-intervention.ts +127 -32
  432. package/src/domains/middleware/memory-step-endpoint.ts +3 -2
  433. package/src/domains/middleware/registrations.ts +326 -0
  434. package/src/domains/middleware/runtime.ts +28 -0
  435. package/src/domains/middleware/skills-reminder.ts +31 -2
  436. package/src/domains/middleware/snapshot.ts +20 -7
  437. package/src/domains/mux/contract.ts +38 -0
  438. package/src/domains/mux/detect.ts +6 -13
  439. package/src/domains/mux/index.ts +1 -1
  440. package/src/domains/mux/operations.ts +44 -5
  441. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  442. package/src/domains/mux/yazi/session.ts +53 -4
  443. package/src/domains/mux/yazi/theme.ts +117 -17
  444. package/src/domains/observability/compaction-usage.ts +118 -0
  445. package/src/domains/observability/contract.ts +10 -11
  446. package/src/domains/observability/cost.ts +1 -1
  447. package/src/domains/observability/extension.ts +17 -4
  448. package/src/domains/observability/out-of-turn-usage.ts +52 -21
  449. package/src/domains/observability/projection.ts +14 -90
  450. package/src/domains/observability/trace-store.ts +43 -7
  451. package/src/domains/prompts/compiler.ts +73 -53
  452. package/src/domains/prompts/contract.ts +15 -3
  453. package/src/domains/prompts/extension.ts +97 -9
  454. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
  455. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  456. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  457. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  458. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  459. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  460. package/src/domains/prompts/fragments/operating/skills.md +10 -24
  461. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  462. package/src/domains/providers/contract.ts +4 -1
  463. package/src/domains/providers/extension.ts +40 -9
  464. package/src/domains/providers/index.ts +1 -1
  465. package/src/domains/providers/model-capabilities.ts +9 -0
  466. package/src/domains/providers/model-discovery.ts +2 -0
  467. package/src/domains/providers/model-runtime-capabilities.ts +99 -25
  468. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +699 -114
  469. package/src/domains/providers/runtime-resolution.ts +31 -0
  470. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
  471. package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
  472. package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
  473. package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
  474. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  475. package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
  476. package/src/domains/providers/support.ts +11 -5
  477. package/src/domains/providers/target-model-cache.ts +25 -2
  478. package/src/domains/providers/types/capability-flags.ts +2 -0
  479. package/src/domains/providers/types/cost-provenance.ts +19 -0
  480. package/src/domains/providers/types/local-model-quirks.ts +85 -37
  481. package/src/domains/providers/types/runtime-descriptor.ts +20 -1
  482. package/src/domains/providers/types/target-descriptor.ts +19 -0
  483. package/src/domains/resources/index.ts +3 -0
  484. package/src/domains/resources/skills/install.ts +72 -7
  485. package/src/domains/resources/skills/loader.ts +23 -19
  486. package/src/domains/resources/skills/marketplace.ts +63 -11
  487. package/src/domains/safety/autonomy.ts +15 -0
  488. package/src/domains/safety/call-target.ts +1 -1
  489. package/src/domains/safety/index.ts +1 -0
  490. package/src/domains/safety/loop-detector.ts +7 -4
  491. package/src/domains/safety/path-policy.ts +1 -1
  492. package/src/domains/safety/policy-engine.ts +34 -11
  493. package/src/domains/safety/protected-artifacts.ts +191 -88
  494. package/src/domains/safety/run-effects.ts +2 -22
  495. package/src/domains/safety/skill-authority.ts +55 -0
  496. package/src/domains/session/compaction/compact.ts +72 -22
  497. package/src/domains/session/entries.ts +6 -0
  498. package/src/domains/session/task-board.ts +10 -9
  499. package/src/domains/session/usage.ts +3 -3
  500. package/src/domains/share/archive.ts +164 -7
  501. package/src/engine/acp/server.ts +62 -9
  502. package/src/engine/agent.ts +13 -3
  503. package/src/engine/ai.ts +26 -8
  504. package/src/engine/antigravity/subprocess-runtime.ts +386 -120
  505. package/src/engine/api-registry.ts +3 -0
  506. package/src/engine/apis/llamacpp-residency.ts +3 -4
  507. package/src/engine/apis/lmstudio.ts +3 -3
  508. package/src/engine/apis/ollama-native.ts +6 -6
  509. package/src/engine/apis/openai-completions.ts +145 -39
  510. package/src/engine/apis/output-budget.ts +8 -18
  511. package/src/engine/apis/residency.ts +8 -27
  512. package/src/engine/external-subprocess.ts +114 -6
  513. package/src/engine/gemma-channel-filter.ts +19 -0
  514. package/src/engine/loop-guard.ts +92 -12
  515. package/src/engine/worker-runtime.ts +40 -11
  516. package/src/engine/worker-tools.ts +3 -1
  517. package/src/entry/background-model-metadata.ts +18 -0
  518. package/src/entry/compaction-prompt.ts +57 -0
  519. package/src/entry/extension-hook-sources.ts +28 -0
  520. package/src/entry/extension-reload.ts +309 -0
  521. package/src/entry/orchestrator.ts +464 -251
  522. package/src/entry/task-memory-lifecycle.ts +35 -0
  523. package/src/interactive/application-controller.ts +2 -1
  524. package/src/interactive/bus-notices.ts +8 -1
  525. package/src/interactive/chat-loop-messages.ts +16 -17
  526. package/src/interactive/chat-loop.ts +75 -3
  527. package/src/interactive/chat-panel.ts +36 -13
  528. package/src/interactive/chat-renderer.ts +72 -7
  529. package/src/interactive/cost-overlay.ts +26 -2
  530. package/src/interactive/dispatch-board.ts +6 -11
  531. package/src/interactive/footer/widgets.ts +13 -0
  532. package/src/interactive/interactive-application.ts +39 -4
  533. package/src/interactive/interactive-input-runtime.ts +4 -0
  534. package/src/interactive/interactive-presentation.ts +2 -2
  535. package/src/interactive/interactive-slash-runtime.ts +4 -1
  536. package/src/interactive/overlays/extensions.ts +9 -1
  537. package/src/interactive/overlays/help-reference.ts +13 -0
  538. package/src/interactive/overlays/settings.ts +27 -16
  539. package/src/interactive/panes-runtime.ts +111 -35
  540. package/src/interactive/prompt-cache-identity.ts +88 -0
  541. package/src/interactive/renderers/worker-entry.ts +32 -0
  542. package/src/interactive/slash-commands.ts +153 -20
  543. package/src/interactive/stream-pacing-policy.ts +0 -23
  544. package/src/interactive/theme/labels.ts +19 -13
  545. package/src/interactive/turn-context.ts +39 -20
  546. package/src/interactive/turn-recovery.ts +8 -0
  547. package/src/interactive/turn-runtime.ts +27 -11
  548. package/src/interactive/turn-state.ts +7 -0
  549. package/src/interactive/worker-receipts.ts +1 -0
  550. package/src/interactive/worker-stream.ts +6 -1
  551. package/src/interactive/yazi-bridge.ts +60 -6
  552. package/src/tools/agent-tools.ts +30 -1
  553. package/src/tools/artifact.ts +2 -2
  554. package/src/tools/ask-user.ts +3 -3
  555. package/src/tools/bash.ts +1 -1
  556. package/src/tools/bootstrap.ts +4 -0
  557. package/src/tools/builtin-tool-catalog.ts +52 -22
  558. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  559. package/src/tools/codewiki/code-nav.ts +99 -13
  560. package/src/tools/context/docs-engine.ts +20 -7
  561. package/src/tools/context/index.ts +59 -21
  562. package/src/tools/core-bootstrap.ts +28 -6
  563. package/src/tools/credential-present.ts +1 -2
  564. package/src/tools/dispatch-arguments.ts +6 -1
  565. package/src/tools/dispatch-event-text.ts +10 -0
  566. package/src/tools/dispatch-plan.ts +49 -4
  567. package/src/tools/dispatch-run-events.ts +1 -1
  568. package/src/tools/dispatch-runner.ts +12 -0
  569. package/src/tools/dispatch-schema.ts +338 -0
  570. package/src/tools/dispatch-types.ts +3 -0
  571. package/src/tools/dispatch.ts +9 -254
  572. package/src/tools/ledger.ts +3 -5
  573. package/src/tools/monitor-surface.ts +5 -13
  574. package/src/tools/observation.ts +4 -5
  575. package/src/tools/panes-surface.ts +4 -11
  576. package/src/tools/panes.ts +4 -2
  577. package/src/tools/policy.ts +15 -2
  578. package/src/tools/read.ts +5 -6
  579. package/src/tools/registry.ts +41 -12
  580. package/src/tools/result-shaping.ts +18 -14
  581. package/src/tools/steer-surface.ts +1 -1
  582. package/src/tools/tasks.ts +1 -1
  583. package/src/tools/truncate.ts +6 -5
  584. package/src/tools/verify/surface.ts +6 -12
  585. package/src/tools/web-fetch-surface.ts +1 -3
  586. package/src/tools/worker-evidence.ts +3 -1
  587. package/src/worker/spec-contract.ts +4 -0
  588. package/dist/builtins-UJLMOVOV.js +0 -17
  589. package/dist/chunk-5QIAJV2D.js +0 -48
  590. package/dist/chunk-JZWT5J3Y.js +0 -814
  591. package/dist/chunk-K7VKOLQQ.js +0 -15
  592. package/dist/chunk-PMZCIOCJ.js +0 -25
  593. package/dist/chunk-SUW5DORT.js +0 -819
  594. package/dist/chunk-UOV2BYIW.js +0 -107
  595. package/dist/chunk-WR6U3OVP.js +0 -45
  596. package/dist/chunk-Y45G3AXC.js +0 -1558
  597. package/dist/reset-EOLM7GVE.js +0 -230
  598. package/dist/uninstall-N34PCTGJ.js +0 -331
  599. package/dist/upgrade-H7TOM7YL.js +0 -323
  600. package/docs/artifact-versions.md +0 -67
  601. package/docs/development-pipeline.md +0 -121
  602. package/docs/documentation-coverage.md +0 -46
  603. package/docs/documentation-guide.md +0 -167
  604. package/docs/time-conventions.md +0 -101
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-5TSRNF4G.js";
8
8
  import {
9
9
  authStoragePath
10
- } from "./chunk-WNP7O5WZ.js";
10
+ } from "./chunk-ID64D7PE.js";
11
11
  import {
12
12
  init_esm_shims
13
13
  } from "./chunk-3R73A4XB.js";
@@ -35,4 +35,4 @@ export {
35
35
  printPlaintextCredentialWarning,
36
36
  credentialWriteFailed
37
37
  };
38
- //# sourceMappingURL=chunk-ZW55JB7N.js.map
38
+ //# sourceMappingURL=chunk-PUVDKJ2Y.js.map
@@ -1,43 +1,50 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
2
  import {
3
3
  migrateSettingsV1Document
4
- } from "./chunk-AP73CFDC.js";
4
+ } from "./chunk-5ICU3EUH.js";
5
5
  import {
6
6
  parseAgentRecipeSchema
7
- } from "./chunk-ZJLUDYFY.js";
7
+ } from "./chunk-RRNP2ANY.js";
8
8
  import {
9
9
  parseFleetContract
10
- } from "./chunk-CTJ4RNAA.js";
10
+ } from "./chunk-2VIKGWFZ.js";
11
11
  import {
12
12
  parseFrontmatter
13
13
  } from "./chunk-RKKLTLYB.js";
14
+ import {
15
+ extensionBaseDir,
16
+ extensionContentDigest,
17
+ installExtension,
18
+ listInstalledExtensions,
19
+ loadManifestFromRoot
20
+ } from "./chunk-5MEZN6CB.js";
14
21
  import {
15
22
  assertAgentSpecPolicy,
16
23
  normalizeAgentSpec
17
- } from "./chunk-IG7BCQBA.js";
24
+ } from "./chunk-B4OAX3SI.js";
18
25
  import {
19
26
  readSettings,
20
27
  settingsPath,
21
28
  updateSettings,
22
29
  validateSettings
23
- } from "./chunk-EIMVLWB3.js";
30
+ } from "./chunk-GHS5EBTQ.js";
24
31
  import {
25
32
  readClioVersion
26
33
  } from "./chunk-IWHMRKLL.js";
27
34
  import {
28
35
  DEFAULT_SETTINGS
29
- } from "./chunk-BWW4HLO4.js";
36
+ } from "./chunk-UXCU4E3T.js";
30
37
  import {
31
38
  require_dist
32
39
  } from "./chunk-APJ265NV.js";
33
- import {
34
- clioConfigDir,
35
- resolveClioDirs
36
- } from "./chunk-BYP5D4HI.js";
37
40
  import {
38
41
  safeResourceBackupPath,
39
42
  safeResourceWrite
40
43
  } from "./chunk-WEPFGWHJ.js";
44
+ import {
45
+ clioConfigDir,
46
+ resolveClioDirs
47
+ } from "./chunk-BYP5D4HI.js";
41
48
  import {
42
49
  __toESM,
43
50
  init_esm_shims
@@ -47,7 +54,18 @@ import {
47
54
  init_esm_shims();
48
55
  var import_yaml = __toESM(require_dist(), 1);
49
56
  import { createHash } from "node:crypto";
50
- import { existsSync, lstatSync, readdirSync, readFileSync, realpathSync, statSync } from "node:fs";
57
+ import {
58
+ existsSync,
59
+ lstatSync,
60
+ mkdirSync,
61
+ mkdtempSync,
62
+ readdirSync,
63
+ readFileSync,
64
+ realpathSync,
65
+ rmSync,
66
+ statSync
67
+ } from "node:fs";
68
+ import { tmpdir } from "node:os";
51
69
  import path from "node:path";
52
70
  var PROJECT_CONTEXT_FILES = ["CLIO-CODER.md", "AGENTS.md", "CODEX.md", "GEMINI.md", "CLAUDE.md"];
53
71
  var SETTINGS_FRAGMENT_PATH = "settings.fragment.yaml";
@@ -218,7 +236,14 @@ function createShareArchive(options = {}) {
218
236
  if (includes.includeExtensions) {
219
237
  for (const scope of scopes) {
220
238
  const root = scope === "user" ? path.join(clioConfigDir(), "extensions") : path.join(cwd, ".clio-coder", "extensions");
221
- addTree(files, "extension", scope, root, `${scope}/extensions`, (rel) => path.basename(rel) !== "state.json");
239
+ addTree(
240
+ files,
241
+ "extension",
242
+ scope,
243
+ root,
244
+ `${scope}/extensions`,
245
+ (relativePath) => !relativePath.split("/")[0]?.startsWith(".") && path.basename(relativePath) !== "state.json"
246
+ );
222
247
  }
223
248
  }
224
249
  if (includes.includeSettings) {
@@ -427,6 +452,79 @@ function preflightImportTargets(archive, options) {
427
452
  if (diagnostics.length > 0) return { targets: [], diagnostics };
428
453
  return { targets, diagnostics };
429
454
  }
455
+ function withStagedExtensionPackage(input, fn) {
456
+ const stagingParent = mkdtempSync(path.join(tmpdir(), "clio-share-extension-"));
457
+ const root = path.join(stagingParent, input.id);
458
+ try {
459
+ mkdirSync(root, { recursive: true });
460
+ for (const file of input.files) safeResourceWrite(path.join(root, file.relativePath), file.buffer);
461
+ return fn(root);
462
+ } finally {
463
+ rmSync(stagingParent, { recursive: true, force: true });
464
+ }
465
+ }
466
+ function prepareExtensionPackages(targets, options) {
467
+ const diagnostics = [];
468
+ const grouped = /* @__PURE__ */ new Map();
469
+ for (const target of targets) {
470
+ if (target.entry.type !== "extension") continue;
471
+ const segments = relativePathSegments(target.entry.relativePath);
472
+ const id = segments?.[0];
473
+ const packagePath = segments?.slice(1).join("/");
474
+ if (!id || !packagePath) {
475
+ diagnostics.push({
476
+ type: "error",
477
+ message: `extension archive path must be <id>/<package-path>: ${pathDiagnostic(target.entry)}`,
478
+ path: target.entry.relativePath
479
+ });
480
+ continue;
481
+ }
482
+ const scope = target.scope;
483
+ const key = `${scope}\0${id}`;
484
+ const group = grouped.get(key) ?? { id, scope, files: [] };
485
+ if (group.files.some((file) => file.relativePath === packagePath)) {
486
+ diagnostics.push({ type: "error", message: `duplicate extension archive path ${target.entry.relativePath}` });
487
+ continue;
488
+ }
489
+ group.files.push({ relativePath: packagePath, buffer: target.buffer });
490
+ grouped.set(key, group);
491
+ }
492
+ const packages = [];
493
+ for (const group of [...grouped.values()].sort((a, b) => `${a.scope}/${a.id}`.localeCompare(`${b.scope}/${b.id}`))) {
494
+ try {
495
+ const contentDigest = withStagedExtensionPackage(group, (root) => {
496
+ const candidate = loadManifestFromRoot(root);
497
+ if (!candidate.valid || !candidate.manifest) {
498
+ throw new Error(candidate.diagnostics.map((diagnostic) => diagnostic.message).join("; ") || "manifest is invalid");
499
+ }
500
+ if (candidate.manifest.id !== group.id) {
501
+ throw new Error(`manifest id ${candidate.manifest.id} does not match archive package ${group.id}`);
502
+ }
503
+ return extensionContentDigest(root);
504
+ });
505
+ const cwd = path.resolve(options.cwd ?? process.cwd());
506
+ const targetRoot = path.join(extensionBaseDir(group.scope, cwd), group.id);
507
+ const existing = listInstalledExtensions(cwd, { scope: group.scope, all: true }).find(
508
+ (extension) => extension.id === group.id && extension.rootPath === targetRoot
509
+ );
510
+ const alreadyVerified = existing?.valid === true && existing.provenance?.contentDigest === contentDigest && existing.observedContentDigest === contentDigest;
511
+ if (existsSync(targetRoot) && !alreadyVerified && !options.force) {
512
+ diagnostics.push({
513
+ type: "conflict",
514
+ message: `extension ${group.id} is not already installed with the archive's verified digest; re-run with --force to use the canonical installer`,
515
+ path: targetRoot
516
+ });
517
+ }
518
+ packages.push({ ...group, contentDigest, install: !alreadyVerified });
519
+ } catch (error) {
520
+ diagnostics.push({
521
+ type: "error",
522
+ message: `extension ${group.id} in share archive is invalid: ${error instanceof Error ? error.message : String(error)}`
523
+ });
524
+ }
525
+ }
526
+ return { packages, diagnostics };
527
+ }
430
528
  function versionDiagnostics(archive) {
431
529
  const current = readClioVersion();
432
530
  const [curMajor, curMinor] = current.split(".");
@@ -473,14 +571,21 @@ function prepareShareImport(filePath, options = {}) {
473
571
  archive: null,
474
572
  actions: [],
475
573
  diagnostics: [{ type: "error", message: err instanceof Error ? err.message : String(err), path: filePath }],
476
- targets: []
574
+ targets: [],
575
+ extensionPackages: []
477
576
  };
478
577
  }
479
578
  const diagnostics = [...versionDiagnostics(archive)];
480
579
  const actions = [];
481
580
  const preflight = preflightImportTargets(archive, options);
482
581
  if (preflight.diagnostics.length > 0) {
483
- return { archive, actions: [], diagnostics: [...diagnostics, ...preflight.diagnostics], targets: [] };
582
+ return {
583
+ archive,
584
+ actions: [],
585
+ diagnostics: [...diagnostics, ...preflight.diagnostics],
586
+ targets: [],
587
+ extensionPackages: []
588
+ };
484
589
  }
485
590
  for (const targetInfo of preflight.targets) {
486
591
  const { entry, target, scope, buffer } = targetInfo;
@@ -523,7 +628,9 @@ function prepareShareImport(filePath, options = {}) {
523
628
  }
524
629
  actions.push({ action: "write", type: entry.type, scope, path: target });
525
630
  }
526
- return { archive, actions, diagnostics, targets: preflight.targets };
631
+ const extensions = prepareExtensionPackages(preflight.targets, options);
632
+ diagnostics.push(...extensions.diagnostics);
633
+ return { archive, actions, diagnostics, targets: preflight.targets, extensionPackages: extensions.packages };
527
634
  }
528
635
  function publicImportPlan(prepared, recovery) {
529
636
  return {
@@ -559,10 +666,42 @@ function importShareArchive(filePath, options = {}) {
559
666
  };
560
667
  let failed;
561
668
  try {
669
+ for (const extensionPackage of prepared.extensionPackages) {
670
+ if (!extensionPackage.install) continue;
671
+ const cwd = path.resolve(options.cwd ?? process.cwd());
672
+ failed = path.join(extensionBaseDir(extensionPackage.scope, cwd), extensionPackage.id);
673
+ const result = withStagedExtensionPackage(
674
+ extensionPackage,
675
+ (root) => installExtension(root, {
676
+ cwd,
677
+ scope: extensionPackage.scope,
678
+ ...options.force !== void 0 ? { force: options.force } : {}
679
+ })
680
+ );
681
+ for (const backup of [result.recovery?.stateBackup, result.recovery?.packageBackup]) {
682
+ if (backup && !backups.includes(backup)) backups.push(backup);
683
+ }
684
+ const errors = result.diagnostics.filter((diagnostic) => diagnostic.type === "error");
685
+ if (!result.extension || errors.length > 0) {
686
+ throw new Error(errors.map((diagnostic) => diagnostic.message).join("; ") || "canonical install failed");
687
+ }
688
+ if (result.extension.provenance?.contentDigest !== extensionPackage.contentDigest) {
689
+ throw new Error(`canonical install digest mismatch for extension ${extensionPackage.id}`);
690
+ }
691
+ for (const diagnostic of result.diagnostics) {
692
+ prepared.diagnostics.push({
693
+ type: "warning",
694
+ message: diagnostic.message,
695
+ ...diagnostic.path ? { path: diagnostic.path } : {}
696
+ });
697
+ }
698
+ if (!written.includes(result.extension.rootPath)) written.push(result.extension.rootPath);
699
+ failed = void 0;
700
+ }
562
701
  for (let index = 0; index < prepared.targets.length; index += 1) {
563
702
  const targetInfo = prepared.targets[index];
564
703
  const action = prepared.actions[index];
565
- if (!targetInfo || !action || action.action === "skip") continue;
704
+ if (!targetInfo || !action || action.action === "skip" || targetInfo.entry.type === "extension") continue;
566
705
  failed = targetInfo.target;
567
706
  if (targetInfo.entry.type === "settings") {
568
707
  const path2 = mergeSettingsFragment(targetInfo.buffer);
@@ -577,7 +716,7 @@ function importShareArchive(filePath, options = {}) {
577
716
  );
578
717
  failed = void 0;
579
718
  }
580
- return plan;
719
+ return publicImportPlan(prepared, backups.length > 0 ? { written, backups } : void 0);
581
720
  } catch (err) {
582
721
  if (failed) {
583
722
  const expectedBackup = safeResourceBackupPath(failed);
@@ -596,7 +735,7 @@ function importShareArchive(filePath, options = {}) {
596
735
  ...prepared.diagnostics,
597
736
  {
598
737
  type: "error",
599
- message: `share import failed while writing${failed ? ` ${failed}` : ""}: ${reason}`,
738
+ message: `share import failed${failed ? ` while importing ${failed}` : ""}: ${reason}`,
600
739
  ...failed ? { path: failed } : {}
601
740
  }
602
741
  ]
@@ -653,4 +792,4 @@ export {
653
792
  importShareArchive,
654
793
  ShareDomainModule
655
794
  };
656
- //# sourceMappingURL=chunk-BTGG6BG2.js.map
795
+ //# sourceMappingURL=chunk-QWGDJJYJ.js.map
@@ -0,0 +1,134 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ init_esm_shims
4
+ } from "./chunk-3R73A4XB.js";
5
+
6
+ // src/domains/context/wiki/plan.ts
7
+ init_esm_shims();
8
+ var WIKI_DEPTH_STRATEGY = {
9
+ simple: { areaDepth: 1, areaShare: 0.08, minAreaLines: 400 },
10
+ medium: { areaDepth: 2, areaShare: 0.03, minAreaLines: 250 },
11
+ detailed: { areaDepth: 3, areaShare: 8e-3, minAreaLines: 150 }
12
+ };
13
+ var MAX_PAGE_SOURCES = 8;
14
+ function areaForPath(path, maxDepth) {
15
+ const directories = path.split("/").filter(Boolean).slice(0, -1);
16
+ if (directories.length === 0) return ".";
17
+ return directories.slice(0, Math.max(1, maxDepth)).join("/");
18
+ }
19
+ function classifyDepth(sourceFiles, sourceLines) {
20
+ if (sourceFiles <= 150 && sourceLines <= 3e4) return "simple";
21
+ if (sourceFiles <= 800 && sourceLines <= 15e4) return "medium";
22
+ return "detailed";
23
+ }
24
+ function slugSegment(segment) {
25
+ const slug = segment.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
26
+ return slug.length > 0 ? slug : "section";
27
+ }
28
+ function areaSegments(area) {
29
+ const parts = area.split("/").filter((part) => part.length > 0 && part !== ".");
30
+ if (parts.length === 0) return ["root"];
31
+ if (parts[0] !== "src") return parts;
32
+ return parts.length === 1 ? ["source"] : parts.slice(1);
33
+ }
34
+ function pagePathForArea(area) {
35
+ return `${areaSegments(area).map(slugSegment).join("/")}.md`;
36
+ }
37
+ function titleForArea(area) {
38
+ const name = areaSegments(area).join(" ").replace(/[-_]+/g, " ").trim();
39
+ return name.length > 0 ? name.charAt(0).toUpperCase() + name.slice(1) : "Overview";
40
+ }
41
+ function rankedSources(files) {
42
+ return [...files].sort((a, b) => {
43
+ const roleRank = (file) => file.role === "entry" ? 0 : file.role === "test" ? 2 : 1;
44
+ return roleRank(a) - roleRank(b) || b.loc - a.loc || a.path.localeCompare(b.path);
45
+ }).slice(0, MAX_PAGE_SOURCES).map((file) => file.path);
46
+ }
47
+ function collectAreas(source, areaDepth) {
48
+ const byKey = /* @__PURE__ */ new Map();
49
+ for (const file of source) {
50
+ const key = areaForPath(file.path, areaDepth);
51
+ const area = byKey.get(key) ?? { key, files: [], lines: 0 };
52
+ area.files.push(file);
53
+ area.lines += Math.max(0, file.loc);
54
+ byKey.set(key, area);
55
+ }
56
+ return [...byKey.values()].sort((a, b) => b.lines - a.lines || a.key.localeCompare(b.key));
57
+ }
58
+ function overviewPage(source) {
59
+ const entries = source.filter((file) => file.role === "entry");
60
+ return {
61
+ path: "architecture.md",
62
+ title: "Architecture",
63
+ intent: "Explain what this repository is, its top-level composition, how a request or command flows through it, and where the boundaries between its major areas are.",
64
+ sources: rankedSources(entries.length > 0 ? entries : source),
65
+ status: "pending",
66
+ attempts: 0
67
+ };
68
+ }
69
+ function buildCandidatePlan(codewiki, depth) {
70
+ const source = codewiki.files.filter((file) => file.lang !== "config");
71
+ const totalLines = source.reduce((total, file) => total + Math.max(0, file.loc), 0);
72
+ const { areaDepth, areaShare, minAreaLines } = WIKI_DEPTH_STRATEGY[depth];
73
+ const threshold = Math.max(minAreaLines, Math.floor(totalLines * areaShare));
74
+ const areas = collectAreas(source, areaDepth);
75
+ const included = areas.filter((area) => area.lines >= threshold);
76
+ const selected = included.length > 0 ? included : areas.slice(0, 1);
77
+ const selectedKeys = new Set(selected.map((area) => area.key));
78
+ const extras = /* @__PURE__ */ new Map();
79
+ for (const area of areas) {
80
+ if (selectedKeys.has(area.key)) continue;
81
+ const ancestor = selected.find((candidate) => area.key.startsWith(`${candidate.key}/`));
82
+ const host = ancestor?.key ?? selected[0]?.key;
83
+ if (host === void 0) continue;
84
+ extras.set(host, [...extras.get(host) ?? [], ...area.files]);
85
+ }
86
+ const pages = selected.map((area) => {
87
+ const files = [...area.files, ...extras.get(area.key) ?? []];
88
+ return {
89
+ path: pagePathForArea(area.key),
90
+ title: titleForArea(area.key),
91
+ intent: `Document ${area.key} (${area.files.length} indexed files, ${area.lines} lines): what it owns, its entry points and important symbols, the state and lifecycle invariants it enforces, an upstream caller and a downstream dependency, the focused tests that prove its behavior, and what to watch when editing it.`,
92
+ sources: rankedSources(files),
93
+ status: "pending",
94
+ attempts: 0
95
+ };
96
+ });
97
+ return dedupePagePaths({
98
+ version: 1,
99
+ overview: "",
100
+ pages: [overviewPage(source), ...pages]
101
+ });
102
+ }
103
+ function dedupePagePaths(plan) {
104
+ const seen = /* @__PURE__ */ new Set();
105
+ const pages = [];
106
+ for (const page of plan.pages) {
107
+ let path = page.path;
108
+ let suffix = 2;
109
+ while (seen.has(path)) {
110
+ path = page.path.replace(/\.md$/, `-${suffix}.md`);
111
+ suffix += 1;
112
+ }
113
+ seen.add(path);
114
+ pages.push({ ...page, path });
115
+ }
116
+ return { ...plan, pages };
117
+ }
118
+ function planWikiGeneration(codewiki, requestedDepth = "auto") {
119
+ const source = codewiki.files.filter((file) => file.lang !== "config");
120
+ const sourceFiles = source.length;
121
+ const sourceLines = source.reduce((total, file) => total + Math.max(0, file.loc), 0);
122
+ const depth = requestedDepth === "auto" ? classifyDepth(sourceFiles, sourceLines) : requestedDepth;
123
+ return { requestedDepth, depth, sourceFiles, sourceLines, plan: buildCandidatePlan(codewiki, depth) };
124
+ }
125
+
126
+ export {
127
+ WIKI_DEPTH_STRATEGY,
128
+ areaForPath,
129
+ classifyDepth,
130
+ pagePathForArea,
131
+ buildCandidatePlan,
132
+ planWikiGeneration
133
+ };
134
+ //# sourceMappingURL=chunk-R6Q67RJH.js.map
@@ -1,13 +1,13 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
- import {
3
- loadSkills
4
- } from "./chunk-HUAS7ITX.js";
5
2
  import {
6
3
  parseFrontmatter
7
4
  } from "./chunk-RKKLTLYB.js";
5
+ import {
6
+ loadSkills
7
+ } from "./chunk-LDJG7DW3.js";
8
8
  import {
9
9
  enabledExtensionResourceRoots
10
- } from "./chunk-SUW5DORT.js";
10
+ } from "./chunk-7DRAWPTZ.js";
11
11
  import {
12
12
  assertAgentSpecPolicy,
13
13
  isAgentAudience,
@@ -19,7 +19,7 @@ import {
19
19
  isShadowAgent,
20
20
  normalizeAgentSpec,
21
21
  parseResultContract
22
- } from "./chunk-IG7BCQBA.js";
22
+ } from "./chunk-B4OAX3SI.js";
23
23
  import {
24
24
  resolvePackageRoot
25
25
  } from "./chunk-IWHMRKLL.js";
@@ -396,4 +396,4 @@ export {
396
396
  parseAgentRecipeSchema,
397
397
  discoverAgentRecipes
398
398
  };
399
- //# sourceMappingURL=chunk-ZJLUDYFY.js.map
399
+ //# sourceMappingURL=chunk-RRNP2ANY.js.map
@@ -4,7 +4,7 @@ import {
4
4
  extractCommandDeleteTargets,
5
5
  extractCommandWriteTargets,
6
6
  toolMutationPaths
7
- } from "./chunk-GCSMB2KY.js";
7
+ } from "./chunk-I7ZPNEJM.js";
8
8
  import {
9
9
  isProjectVerifierCheckId,
10
10
  isVerificationScriptName
@@ -384,9 +384,109 @@ function asRecord(value) {
384
384
  return value !== null && typeof value === "object" ? value : null;
385
385
  }
386
386
 
387
+ // src/domains/safety/loop-detector.ts
388
+ init_esm_shims();
389
+ var DEFAULT_WINDOW_MS = 3e4;
390
+ var DEFAULT_MAX_REPEATS = 3;
391
+ var DEFAULT_KEEP_LAST_ATTEMPTS = 48;
392
+ function createLoopState(opts) {
393
+ const windowMs = opts?.windowMs ?? DEFAULT_WINDOW_MS;
394
+ const maxRepeats = opts?.maxRepeats ?? DEFAULT_MAX_REPEATS;
395
+ const keepLastAttempts = opts?.keepLastAttempts ?? DEFAULT_KEEP_LAST_ATTEMPTS;
396
+ return { recent: [], windowMs, maxRepeats, keepLastAttempts };
397
+ }
398
+ function hashToolCall(tool, args) {
399
+ let argPart;
400
+ try {
401
+ argPart = canonicalSerialize(args ?? {}, /* @__PURE__ */ new WeakSet());
402
+ } catch {
403
+ argPart = "<unrepresentable>";
404
+ }
405
+ return `${tool}${argPart}`;
406
+ }
407
+ function canonicalSerialize(value, seen) {
408
+ if (value === null) return "null";
409
+ if (typeof value === "number") {
410
+ if (!Number.isFinite(value)) {
411
+ throw new Error(`canonicalSerialize: non-finite number ${String(value)} is not representable`);
412
+ }
413
+ return JSON.stringify(value);
414
+ }
415
+ if (typeof value === "string" || typeof value === "boolean") {
416
+ return JSON.stringify(value);
417
+ }
418
+ if (typeof value === "bigint") {
419
+ throw new Error("canonicalSerialize: bigint is not representable");
420
+ }
421
+ if (typeof value === "symbol" || typeof value === "function" || value === void 0) {
422
+ throw new Error(`canonicalSerialize: ${typeof value} is not representable`);
423
+ }
424
+ if (Array.isArray(value)) {
425
+ if (seen.has(value)) throw new Error("canonicalSerialize: circular reference is not representable");
426
+ seen.add(value);
427
+ try {
428
+ const parts = [];
429
+ for (let i = 0; i < value.length; i++) {
430
+ if (!(i in value) || value[i] === void 0) {
431
+ parts.push("null");
432
+ continue;
433
+ }
434
+ parts.push(canonicalSerialize(value[i], seen));
435
+ }
436
+ return `[${parts.join(",")}]`;
437
+ } finally {
438
+ seen.delete(value);
439
+ }
440
+ }
441
+ if (typeof value === "object") {
442
+ if (value instanceof Date) {
443
+ const jsonValue = value.toJSON();
444
+ return jsonValue === null ? "null" : JSON.stringify(jsonValue);
445
+ }
446
+ if (seen.has(value)) throw new Error("canonicalSerialize: circular reference is not representable");
447
+ seen.add(value);
448
+ const obj = value;
449
+ try {
450
+ const keys = Object.keys(obj).sort();
451
+ const parts = [];
452
+ for (const key of keys) {
453
+ const child = obj[key];
454
+ if (child === void 0) continue;
455
+ parts.push(`${JSON.stringify(key)}:${canonicalSerialize(child, seen)}`);
456
+ }
457
+ return `{${parts.join(",")}}`;
458
+ } finally {
459
+ seen.delete(value);
460
+ }
461
+ }
462
+ throw new Error(`canonicalSerialize: unsupported value of type ${typeof value}`);
463
+ }
464
+ function observe(state, key, now) {
465
+ const cutoff = now - state.windowMs;
466
+ const keepLast = state.keepLastAttempts ?? DEFAULT_KEEP_LAST_ATTEMPTS;
467
+ const appended = [...state.recent, { key, at: now }];
468
+ const floorStart = Math.max(0, appended.length - keepLast);
469
+ const next = appended.filter((entry, index) => index >= floorStart || entry.at >= cutoff);
470
+ let count = 0;
471
+ for (const entry of next) {
472
+ if (entry.key === key) count += 1;
473
+ }
474
+ const looping = count >= state.maxRepeats;
475
+ const newState = {
476
+ recent: next,
477
+ windowMs: state.windowMs,
478
+ maxRepeats: state.maxRepeats,
479
+ keepLastAttempts: keepLast
480
+ };
481
+ return [newState, { looping, key, count }];
482
+ }
483
+
387
484
  export {
485
+ createLoopState,
486
+ hashToolCall,
487
+ observe,
388
488
  DEFAULT_RECENT_ENTRY_LIMIT,
389
489
  assessFinishContract,
390
490
  typedValidationSummary
391
491
  };
392
- //# sourceMappingURL=chunk-PVAMAVBB.js.map
492
+ //# sourceMappingURL=chunk-RSJ25QSL.js.map
@@ -13,14 +13,6 @@ var GUARDRAIL_DEFAULTS = {
13
13
  observationTurnBudgetBytes: 192 * 1024,
14
14
  internalDispatchTimeoutMs: 15 * 60 * 1e3
15
15
  };
16
- var GUARDRAIL_ENV_VARS = {
17
- turnToolCallBudget: "CLIO_CODER_TURN_TOOL_CALL_BUDGET",
18
- workerToolCallCap: "CLIO_CODER_WORKER_TOOL_CALL_CAP",
19
- maxDispatchRuns: "CLIO_CODER_MAX_DISPATCH_RUNS",
20
- readMaxBytes: "CLIO_CODER_READ_MAX_BYTES",
21
- observationTurnBudgetBytes: "CLIO_CODER_OBSERVATION_TURN_BUDGET_BYTES",
22
- internalDispatchTimeoutMs: "CLIO_CODER_INTERNAL_DISPATCH_TIMEOUT_MS"
23
- };
24
16
  function guardrailValuesFromSettings(settings) {
25
17
  return {
26
18
  turnToolCallBudget: settings.safety.limits.chatToolCallsPerTurn,
@@ -31,9 +23,6 @@ function guardrailValuesFromSettings(settings) {
31
23
  internalDispatchTimeoutMs: settings.fleet.limits.internalRunTimeoutMs
32
24
  };
33
25
  }
34
- var GUARDRAIL_ENV_ALIASES = {
35
- maxDispatchRuns: "CLIO_CODER_MAX_RUNS"
36
- };
37
26
  function workerSynthesisReserveDirective(remaining, cap) {
38
27
  return `budget reserve: only ${remaining} of your ${cap} tool calls remain, and they are reserved for verification reads and synthesis. Stop broad exploration now: re-read the locations you will cite, then answer in prose. Calls that are not reads will be blocked.`;
39
28
  }
@@ -59,21 +48,12 @@ var configured = {};
59
48
  function configureGuardrails(values) {
60
49
  configured = { ...values ?? {} };
61
50
  }
62
- function parsePositiveSafeInt(raw) {
63
- if (raw === void 0) return void 0;
64
- const normalized = raw.trim();
65
- if (!/^[1-9]\d*$/.test(normalized)) return void 0;
66
- const parsed = Number(normalized);
67
- return Number.isSafeInteger(parsed) ? parsed : void 0;
68
- }
69
- function resolveGuardrail(key, env = process.env) {
70
- const alias = GUARDRAIL_ENV_ALIASES[key];
71
- return parsePositiveSafeInt(env[GUARDRAIL_ENV_VARS[key]]) ?? (alias ? parsePositiveSafeInt(env[alias]) : void 0) ?? configured[key] ?? GUARDRAIL_DEFAULTS[key];
51
+ function resolveGuardrail(key) {
52
+ return configured[key] ?? GUARDRAIL_DEFAULTS[key];
72
53
  }
73
54
 
74
55
  export {
75
56
  GUARDRAIL_DEFAULTS,
76
- GUARDRAIL_ENV_VARS,
77
57
  guardrailValuesFromSettings,
78
58
  workerSynthesisReserveDirective,
79
59
  workerSynthesisReserveBlockReason,
@@ -85,4 +65,4 @@ export {
85
65
  configureGuardrails,
86
66
  resolveGuardrail
87
67
  };
88
- //# sourceMappingURL=chunk-NLFAQR7Z.js.map
68
+ //# sourceMappingURL=chunk-S66XZJOF.js.map