@iowarp/clio-coder 0.4.6 → 0.4.8

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 (1142) hide show
  1. package/.claude-plugin/marketplace.json +283 -0
  2. package/CHANGELOG.md +79 -0
  3. package/CONTRIBUTING.md +178 -96
  4. package/NOTICE +8 -0
  5. package/README.md +100 -47
  6. package/dist/acp-JWPQZM2D.js +130 -0
  7. package/dist/agents-4GCDIRVX.js +149 -0
  8. package/dist/assets/codewiki.json +1 -1
  9. package/dist/assets/tui-notices/get-east-asian-width-LICENSE +9 -0
  10. package/dist/assets/tui-notices/marked-LICENSE +44 -0
  11. package/dist/assets/tui-notices/pi-tui-LICENSE +21 -0
  12. package/dist/assets/web-notices/@hono__node-server-LICENSE +21 -0
  13. package/dist/assets/web-notices/hono-LICENSE +21 -0
  14. package/dist/auth-SYAKTDQE.js +551 -0
  15. package/dist/background-OW67WMYR.js +37 -0
  16. package/dist/builtins-TKS63VNV.js +22 -0
  17. package/dist/chunk-2JSCCEKO.js +85 -0
  18. package/dist/chunk-2SXGG2IV.js +391 -0
  19. package/dist/chunk-2U2U5POA.js +59 -0
  20. package/dist/chunk-2ZWLMA3T.js +658 -0
  21. package/dist/chunk-36XSBPXL.js +579 -0
  22. package/dist/chunk-3IQOZRQ6.js +396 -0
  23. package/dist/chunk-3XE4NRLF.js +324 -0
  24. package/dist/chunk-44U2OUSM.js +243 -0
  25. package/dist/chunk-4P6M2TTE.js +119 -0
  26. package/dist/chunk-526ABLHD.js +1219 -0
  27. package/dist/chunk-5C2OQHLR.js +674 -0
  28. package/dist/chunk-5D2FNBMG.js +185 -0
  29. package/dist/chunk-5EQO5NWP.js +243 -0
  30. package/dist/chunk-5HULHKT2.js +32 -0
  31. package/dist/chunk-5UG6EZI3.js +66 -0
  32. package/dist/chunk-5W4FRA5Q.js +22283 -0
  33. package/dist/chunk-6R5MBXBJ.js +386 -0
  34. package/dist/chunk-6TKOFFGE.js +1058 -0
  35. package/dist/chunk-6UJ7RDI7.js +1143 -0
  36. package/dist/chunk-6X7VOCDY.js +44 -0
  37. package/dist/chunk-7QQRPB2E.js +915 -0
  38. package/dist/chunk-ARRUMZ7X.js +1377 -0
  39. package/dist/chunk-ATB3Q7YO.js +663 -0
  40. package/dist/chunk-AUHVBIDW.js +19 -0
  41. package/dist/chunk-BE4I3UJ2.js +668 -0
  42. package/dist/chunk-BFPHMSK7.js +169 -0
  43. package/dist/chunk-BHJMMCXS.js +466 -0
  44. package/dist/chunk-BIY22UUK.js +1322 -0
  45. package/dist/chunk-D55WO5J7.js +110 -0
  46. package/dist/chunk-DVJL77SO.js +162 -0
  47. package/dist/chunk-E2NSPYLC.js +814 -0
  48. package/dist/chunk-EFXMQYI6.js +4484 -0
  49. package/dist/chunk-EPYATQMG.js +2718 -0
  50. package/dist/chunk-EXKUF426.js +1801 -0
  51. package/dist/chunk-F7Y6QTPL.js +689 -0
  52. package/dist/chunk-FB3KTE2J.js +1710 -0
  53. package/dist/chunk-FNVPQQYT.js +117 -0
  54. package/dist/chunk-GEVQNST4.js +101 -0
  55. package/dist/chunk-GEYX2NZ5.js +697 -0
  56. package/dist/chunk-GJBJHJNY.js +2120 -0
  57. package/dist/chunk-GM4TY6VN.js +1233 -0
  58. package/dist/chunk-GVU4CXPJ.js +5191 -0
  59. package/dist/chunk-H5DPSUBB.js +637 -0
  60. package/dist/chunk-H77XBUBM.js +688 -0
  61. package/dist/chunk-HMGAKB7E.js +380 -0
  62. package/dist/chunk-HP7KJ5O2.js +797 -0
  63. package/dist/chunk-HVCAY2FH.js +67 -0
  64. package/dist/chunk-ICYIUNO4.js +35 -0
  65. package/dist/chunk-IILXVWJY.js +223 -0
  66. package/dist/chunk-JCVIL6TY.js +595 -0
  67. package/dist/chunk-JIMWEYWO.js +63 -0
  68. package/dist/chunk-JLBVCROW.js +562 -0
  69. package/dist/chunk-JOBN2YQQ.js +176 -0
  70. package/dist/chunk-JOL2QRLE.js +152 -0
  71. package/dist/chunk-JRA6OBHY.js +974 -0
  72. package/dist/chunk-JV25I7ID.js +1865 -0
  73. package/dist/chunk-JYKUMHCQ.js +705 -0
  74. package/dist/chunk-K3W6BF5C.js +283 -0
  75. package/dist/chunk-K45LHSCI.js +194 -0
  76. package/dist/chunk-K53E2PTW.js +1289 -0
  77. package/dist/chunk-K5UJD6MM.js +39 -0
  78. package/dist/chunk-KGP3UQGJ.js +200 -0
  79. package/dist/chunk-KKRXONXG.js +43 -0
  80. package/dist/chunk-KWJXCL2X.js +103 -0
  81. package/dist/chunk-L75H5B3B.js +446 -0
  82. package/dist/chunk-LLCGGVSW.js +108 -0
  83. package/dist/chunk-LZCCBLRC.js +57 -0
  84. package/dist/chunk-LZDLYSUN.js +197 -0
  85. package/dist/chunk-MATCRH3M.js +667 -0
  86. package/dist/chunk-MEHBW2SP.js +132 -0
  87. package/dist/chunk-MUXNDNMZ.js +659 -0
  88. package/dist/chunk-MWMW53WW.js +7346 -0
  89. package/dist/chunk-MZDPF35R.js +45 -0
  90. package/dist/chunk-MZKYVIWW.js +188 -0
  91. package/dist/chunk-O2QJDRWP.js +362 -0
  92. package/dist/chunk-O3HSB2YL.js +693 -0
  93. package/dist/chunk-OEMFEL26.js +891 -0
  94. package/dist/chunk-OH3YYA3B.js +15 -0
  95. package/dist/chunk-OPC4DQD6.js +634 -0
  96. package/dist/chunk-ORRNGQDV.js +207 -0
  97. package/dist/chunk-P4JS3MH5.js +165 -0
  98. package/dist/chunk-P7GTE4FX.js +308 -0
  99. package/dist/chunk-PAQVETLA.js +962 -0
  100. package/dist/chunk-PFZJMXIY.js +146 -0
  101. package/dist/chunk-PGEFOTJB.js +1974 -0
  102. package/dist/chunk-PJ5H5B7A.js +3151 -0
  103. package/dist/chunk-PMUUAABD.js +604 -0
  104. package/dist/chunk-Q32C6AWI.js +236 -0
  105. package/dist/chunk-QGIC5SX5.js +139 -0
  106. package/dist/chunk-QLAGXTTV.js +482 -0
  107. package/dist/chunk-QLKCCC2J.js +573 -0
  108. package/dist/chunk-QWUSS2QP.js +3630 -0
  109. package/dist/chunk-QYSAZMSH.js +47 -0
  110. package/dist/chunk-R5NRX5N4.js +123 -0
  111. package/dist/chunk-RAUOKUZV.js +1572 -0
  112. package/dist/chunk-RBES4TCZ.js +302 -0
  113. package/dist/chunk-RFCKPS2V.js +26 -0
  114. package/dist/chunk-RFULVPBX.js +318 -0
  115. package/dist/chunk-RKFNU5UA.js +404 -0
  116. package/dist/chunk-RM3XJX7P.js +1148 -0
  117. package/dist/chunk-RNLAPBJL.js +386 -0
  118. package/dist/chunk-RPMNIFRY.js +65 -0
  119. package/dist/chunk-RRZFRIJP.js +42 -0
  120. package/dist/chunk-RXI7K4J5.js +4493 -0
  121. package/dist/chunk-SER7RRAE.js +4271 -0
  122. package/dist/chunk-STC6CWUZ.js +402 -0
  123. package/dist/chunk-TEHVMHOK.js +97 -0
  124. package/dist/chunk-TOPICHGR.js +33 -0
  125. package/dist/chunk-U3TPUXOQ.js +2653 -0
  126. package/dist/chunk-UB33F3YW.js +709 -0
  127. package/dist/chunk-UDAK6GR2.js +175 -0
  128. package/dist/chunk-USBBEKHW.js +177 -0
  129. package/dist/chunk-V4ZKOKRB.js +13433 -0
  130. package/dist/chunk-W5RM7YAH.js +78 -0
  131. package/dist/chunk-W7KNI3F5.js +215 -0
  132. package/dist/chunk-WFTSK7N3.js +637 -0
  133. package/dist/chunk-WJWNZXRM.js +395 -0
  134. package/dist/chunk-WLHX3MM5.js +63 -0
  135. package/dist/chunk-WS4FOGLY.js +686 -0
  136. package/dist/chunk-WTZVSMQZ.js +52 -0
  137. package/dist/chunk-WWRV5RJI.js +165 -0
  138. package/dist/chunk-X6FLVUM5.js +141 -0
  139. package/dist/chunk-XC5POIL4.js +68 -0
  140. package/dist/chunk-XTLJDC2X.js +1013 -0
  141. package/dist/chunk-XW2UZICE.js +372 -0
  142. package/dist/chunk-Y3JU5RPK.js +8 -0
  143. package/dist/chunk-YGIV24MF.js +1018 -0
  144. package/dist/chunk-YJCCMYYT.js +125 -0
  145. package/dist/chunk-YKIIWURD.js +36 -0
  146. package/dist/chunk-YQ3GFEUY.js +341 -0
  147. package/dist/chunk-YXANQGCX.js +179 -0
  148. package/dist/chunk-YXFKLMX2.js +222 -0
  149. package/dist/chunk-ZST3FRCV.js +132 -0
  150. package/dist/cli/index.js +40 -40
  151. package/dist/clio-BPBAPZGA.js +26 -0
  152. package/dist/code-nav-KBQ3RIFK.js +686 -0
  153. package/dist/components-6DKAXWFN.js +674 -0
  154. package/dist/config-FWL5JK2H.js +270 -0
  155. package/dist/config-graph-ACDB26L2.js +156 -0
  156. package/dist/configure-ZIZ4YV62.js +85 -0
  157. package/dist/context-EZZPT2ZV.js +1074 -0
  158. package/dist/context-VIL5MFRH.js +282 -0
  159. package/dist/context-Z3GOBHDK.js +344 -0
  160. package/dist/context-clear-ZPB3L7MN.js +188 -0
  161. package/dist/context-index-W6A4V7OC.js +120 -0
  162. package/dist/context-map-DKL3QT6D.js +555 -0
  163. package/dist/context-working-set-2GLBVF7L.js +1559 -0
  164. package/dist/detail-VSBWYSGZ.js +119 -0
  165. package/dist/dispatch-runner-EEEHGKX4.js +2442 -0
  166. package/dist/docs-VMMWFVHL.js +101 -0
  167. package/dist/doctor-V5L4IQGP.js +812 -0
  168. package/dist/eval-VJYJ2BV3.js +5050 -0
  169. package/dist/eval-inventory-CX24K2JT.js +260 -0
  170. package/dist/evals-J2H5V6DD.js +104 -0
  171. package/dist/evidence-POWAEBEW.js +229 -0
  172. package/dist/evidence-XCCCLS36.js +242 -0
  173. package/dist/evidence-Y35YSXH6.js +388 -0
  174. package/dist/evolve-GPG72VB6.js +613 -0
  175. package/dist/extensions-YIZ7W3DA.js +308 -0
  176. package/dist/fleet-2MDCQ2VK.js +264 -0
  177. package/dist/fleet-W2AF3TOJ.js +919 -0
  178. package/dist/fleet-commands-WS56G26H.js +75 -0
  179. package/dist/fleet-decisions-MYGZ3JW7.js +52 -0
  180. package/dist/fleet-graph-ELTBXBAV.js +136 -0
  181. package/dist/fleet-inspect-45IK73L4.js +308 -0
  182. package/dist/fleet-preflight-T5NCZKHE.js +22 -0
  183. package/dist/fleet-validate-VG4JBLA4.js +91 -0
  184. package/dist/fleet-verify-VTSABAYO.js +206 -0
  185. package/dist/fleet-view-XC7WMKSS.js +123 -0
  186. package/dist/init-VTJNNTIP.js +329 -0
  187. package/dist/install-6PIF6F6W.js +19 -0
  188. package/dist/interop-IU6BNA7C.js +246 -0
  189. package/dist/inventory-QPQUTUUZ.js +123 -0
  190. package/dist/library-HUTAS57T.js +492 -0
  191. package/dist/library-LF7DLU6S.js +306 -0
  192. package/dist/library-Q3NWL5CM.js +75 -0
  193. package/dist/library-import-PPW4YUC5.js +183 -0
  194. package/dist/library-inventory-DIRVFRZU.js +56 -0
  195. package/dist/library-validation-XHUZ3INE.js +42 -0
  196. package/dist/memory-Z2LSKNV6.js +516 -0
  197. package/dist/models-3FTREYPY.js +302 -0
  198. package/dist/monitor-HF2MQRB3.js +781 -0
  199. package/dist/orchestrator-UYPA6W4S.js +41502 -0
  200. package/dist/panes-736XB73K.js +74 -0
  201. package/dist/panes-C4P3PIWT.js +103 -0
  202. package/dist/paths-JQ4QYIYB.js +67 -0
  203. package/dist/preload-XSLRYH3Y.js +120 -0
  204. package/dist/reset-V7QSPZYE.js +345 -0
  205. package/dist/resources-OJGDFHYT.js +181 -0
  206. package/dist/run-T354SMDW.js +892 -0
  207. package/dist/settings-MWZXO6RV.js +72 -0
  208. package/dist/share-Y5ZKJPND.js +293 -0
  209. package/dist/skills-4GLZC4LN.js +100 -0
  210. package/dist/skills-eval-L5T7GODM.js +1074 -0
  211. package/dist/skills-inventory-LASKXEZI.js +138 -0
  212. package/dist/slash-commands-OIMRU36D.js +95 -0
  213. package/dist/steer-KMAM2Y2C.js +77 -0
  214. package/dist/support-AWC3XKPX.js +38 -0
  215. package/dist/system-CD75NYBU.js +116 -0
  216. package/dist/targets-VSZX2J2S.js +1116 -0
  217. package/dist/tasks-AN567LYH.js +36 -0
  218. package/dist/terminal-lease-6KTWNHVY.js +418 -0
  219. package/dist/tools-AGRK3V5J.js +28 -0
  220. package/dist/trace-P4MQZD33.js +524 -0
  221. package/dist/tui-primitives-A6MUW32V.js +18 -0
  222. package/dist/uninstall-BRUTEPIC.js +432 -0
  223. package/dist/upgrade-SBCGHQGJ.js +307 -0
  224. package/dist/usage-BIDVTO6V.js +1061 -0
  225. package/dist/verifiers-LTGCAMXS.js +630 -0
  226. package/dist/verify-OZU4LLNP.js +30 -0
  227. package/dist/web/client/THIRD_PARTY_LICENSES.md +1809 -0
  228. package/dist/web/client/assets/abnfDiagram-VCTEODGH-C5wfoHm3.js +1 -0
  229. package/dist/web/client/assets/arc-oH91sfLl.js +1 -0
  230. package/dist/web/client/assets/architecture-7GRP2DOG-EGozsYEO.js +1 -0
  231. package/dist/web/client/assets/architectureDiagram-5GKGNRK7-z9FokbJl.js +36 -0
  232. package/dist/web/client/assets/array-BifhSqXX.js +1 -0
  233. package/dist/web/client/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2 +0 -0
  234. package/dist/web/client/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2 +0 -0
  235. package/dist/web/client/assets/blockDiagram-I7D4REHJ-wi0_CYHL.js +129 -0
  236. package/dist/web/client/assets/c4Diagram-7LVT6UL2-DV7NYc2W.js +38 -0
  237. package/dist/web/client/assets/channel-CiUWbHN9.js +1 -0
  238. package/dist/web/client/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  239. package/dist/web/client/assets/chunk-4HAMMTFA-Bhsegh3F.js +62 -0
  240. package/dist/web/client/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  241. package/dist/web/client/assets/chunk-75Z2AOVW-RQCckcQG.js +2 -0
  242. package/dist/web/client/assets/chunk-DU6HZSFF-C5USiOAy.js +125 -0
  243. package/dist/web/client/assets/chunk-F27PBJKO-BcNqv2x1.js +1 -0
  244. package/dist/web/client/assets/chunk-FOHPRMQF-CoA4358r.js +161 -0
  245. package/dist/web/client/assets/chunk-GMAD6QVW-Bq8JWiZT.js +72 -0
  246. package/dist/web/client/assets/chunk-GVQU2GXP-DbchrAeJ.js +1 -0
  247. package/dist/web/client/assets/chunk-IMKFNOWR-DrpvjocK.js +231 -0
  248. package/dist/web/client/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  249. package/dist/web/client/assets/chunk-L3NEJ4N5-DHLmTnCe.js +1 -0
  250. package/dist/web/client/assets/chunk-OSK3NFVY-CsRbtN9n.js +10 -0
  251. package/dist/web/client/assets/chunk-P2QGCYS3-aqPbxoMh.js +1 -0
  252. package/dist/web/client/assets/chunk-POPQ4Y6H-Dl5vw0h0.js +1 -0
  253. package/dist/web/client/assets/chunk-PWAF6VOD-D7OBRSdO.js +1 -0
  254. package/dist/web/client/assets/chunk-SHT3W25Y-CdKCIwuB.js +168 -0
  255. package/dist/web/client/assets/chunk-SVP7TREG-B94Nu_1-.js +88 -0
  256. package/dist/web/client/assets/chunk-TICWLB2K-jjRQI_hk.js +206 -0
  257. package/dist/web/client/assets/chunk-XXDRQBXY-azkbKE37.js +1 -0
  258. package/dist/web/client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  259. package/dist/web/client/assets/classDiagram-ZZMXUADV-CMODalmo.js +1 -0
  260. package/dist/web/client/assets/classDiagram-v2-VYDZK3BY-CMODalmo.js +1 -0
  261. package/dist/web/client/assets/commit-mono-latin-400-normal-s0S3qwFW.woff +0 -0
  262. package/dist/web/client/assets/commit-mono-latin-400-normal-wzhe4RuD.woff2 +0 -0
  263. package/dist/web/client/assets/cose-bilkent-JH36ORCC-RbQL23qS.js +1 -0
  264. package/dist/web/client/assets/cynefin-OW5HDTMX--i9RDU5f.js +1 -0
  265. package/dist/web/client/assets/cynefinDiagram-5FMLGOSQ-cRcvyBdp.js +62 -0
  266. package/dist/web/client/assets/cytoscape.esm-c2aL46s-.js +321 -0
  267. package/dist/web/client/assets/dagre-C-rnJpZF.js +1 -0
  268. package/dist/web/client/assets/dagre-GXQ25YYZ-C9mZmAPe.js +4 -0
  269. package/dist/web/client/assets/defaultLocale-BFoDCU3G.js +1 -0
  270. package/dist/web/client/assets/diagram-S7CK7UJ4-Oj_zlLDY.js +30 -0
  271. package/dist/web/client/assets/diagram-UQ7AKVKN-BWKbbfcR.js +41 -0
  272. package/dist/web/client/assets/diagram-VSXAHHWV-C3N3f7DO.js +3 -0
  273. package/dist/web/client/assets/diagram-VX7I27RA-CtDKDAWe.js +24 -0
  274. package/dist/web/client/assets/diagram-Z3DM3KII-B8bkBRCz.js +24 -0
  275. package/dist/web/client/assets/dist-D0_q-A2b.js +1 -0
  276. package/dist/web/client/assets/ebnfDiagram-PWID7BFC-CskW-Whx.js +1 -0
  277. package/dist/web/client/assets/erDiagram-RLTQ6QDP-C-83cgCW.js +99 -0
  278. package/dist/web/client/assets/eventmodeling-NTZA5JFV-DjVq8wKU.js +1 -0
  279. package/dist/web/client/assets/flowDiagram-HODETNUW-BUiCBGXt.js +1 -0
  280. package/dist/web/client/assets/ganttDiagram-EL5Y4UJY-B2lb8lvF.js +292 -0
  281. package/dist/web/client/assets/gitGraph-4MIJSDKK-B40cQtBE.js +1 -0
  282. package/dist/web/client/assets/gitGraphDiagram-WWUBYQGX-CH-7P7Di.js +106 -0
  283. package/dist/web/client/assets/graphlib-DS17s2tU.js +1 -0
  284. package/dist/web/client/assets/index-Dsi52apB.css +1 -0
  285. package/dist/web/client/assets/index-FSIC94pi.js +83 -0
  286. package/dist/web/client/assets/info-A6RAGUB7-eCCE9D_Q.js +1 -0
  287. package/dist/web/client/assets/infoDiagram-27XIBGKW-DRnvqMjM.js +2 -0
  288. package/dist/web/client/assets/init-C-OQMol4.js +1 -0
  289. package/dist/web/client/assets/ishikawaDiagram-5VMMS53U-DBA_55wp.js +70 -0
  290. package/dist/web/client/assets/journeyDiagram-3NMN7TZE-C-ewpNl7.js +139 -0
  291. package/dist/web/client/assets/kanban-definition-UXKFOSKX-B1taGsu0.js +89 -0
  292. package/dist/web/client/assets/katex-ZlcWpGUi.js +257 -0
  293. package/dist/web/client/assets/line-lZ0kyxDI.js +1 -0
  294. package/dist/web/client/assets/linear-DIc8FgZj.js +1 -0
  295. package/dist/web/client/assets/mermaid-parser.core-SXolxpXw.js +7 -0
  296. package/dist/web/client/assets/mermaid.core-DXgQtkNg.js +44 -0
  297. package/dist/web/client/assets/mindmap-definition-YA3MSWOX-DXJas9K7.js +96 -0
  298. package/dist/web/client/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2 +0 -0
  299. package/dist/web/client/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2 +0 -0
  300. package/dist/web/client/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2 +0 -0
  301. package/dist/web/client/assets/ordinal-BDEzSJ7C.js +1 -0
  302. package/dist/web/client/assets/packet-AYTQ26CC-OqVl_07o.js +1 -0
  303. package/dist/web/client/assets/path-fybaL0A-.js +1 -0
  304. package/dist/web/client/assets/pegDiagram-XKGWAZYB-CPE_zdfN.js +1 -0
  305. package/dist/web/client/assets/pie-WAS4IAKB-DAxnMBLe.js +1 -0
  306. package/dist/web/client/assets/pieDiagram-E7YTZNPT-Uwjpufxv.js +39 -0
  307. package/dist/web/client/assets/prism-bash-D6zCJ74D.js +1 -0
  308. package/dist/web/client/assets/prism-c-04YixN25.js +1 -0
  309. package/dist/web/client/assets/prism-clike-DapgWyxx.js +1 -0
  310. package/dist/web/client/assets/prism-core-BngLtbUd.js +1 -0
  311. package/dist/web/client/assets/prism-cpp-C-lJbC-6.js +1 -0
  312. package/dist/web/client/assets/prism-css-CPgOzxXp.js +1 -0
  313. package/dist/web/client/assets/prism-diff-BF8m0_mq.js +3 -0
  314. package/dist/web/client/assets/prism-docker-DkT6yOFj.js +1 -0
  315. package/dist/web/client/assets/prism-fortran-Be5x3y1V.js +1 -0
  316. package/dist/web/client/assets/prism-go-C_8qAH5n.js +1 -0
  317. package/dist/web/client/assets/prism-ini-BESK3y0r.js +1 -0
  318. package/dist/web/client/assets/prism-javascript-BnO-swvr.js +1 -0
  319. package/dist/web/client/assets/prism-json-Dp_-W-Hv.js +1 -0
  320. package/dist/web/client/assets/prism-jsx-D-D0NWtC.js +1 -0
  321. package/dist/web/client/assets/prism-julia-DIjOgiAV.js +1 -0
  322. package/dist/web/client/assets/prism-latex-DNMbqcH_.js +1 -0
  323. package/dist/web/client/assets/prism-makefile-CRKWLQ8l.js +1 -0
  324. package/dist/web/client/assets/prism-markdown-C0FPJ1Iz.js +1 -0
  325. package/dist/web/client/assets/prism-markup-Cp04rIa1.js +1 -0
  326. package/dist/web/client/assets/prism-matlab-D-nk08al.js +1 -0
  327. package/dist/web/client/assets/prism-python-CfiSVtM6.js +1 -0
  328. package/dist/web/client/assets/prism-r-QmNGR8LX.js +1 -0
  329. package/dist/web/client/assets/prism-rust-Bu9N8X3N.js +1 -0
  330. package/dist/web/client/assets/prism-shell-session-Be4UuYoM.js +1 -0
  331. package/dist/web/client/assets/prism-sql-CYhVDMEE.js +1 -0
  332. package/dist/web/client/assets/prism-toml-DKb54GAT.js +1 -0
  333. package/dist/web/client/assets/prism-tsx-p6J2Kc_4.js +1 -0
  334. package/dist/web/client/assets/prism-typescript-BMqONzxf.js +1 -0
  335. package/dist/web/client/assets/prism-yaml-C0JHu8gr.js +1 -0
  336. package/dist/web/client/assets/purify.es-ChwZkWde.js +3 -0
  337. package/dist/web/client/assets/quadrantDiagram-AXDQQJYC-Bjs4yjgs.js +7 -0
  338. package/dist/web/client/assets/radar-RG4KPBEZ-CuCKjHM3.js +1 -0
  339. package/dist/web/client/assets/railroad-74A4TZTK-CnQK-Cc1.js +1 -0
  340. package/dist/web/client/assets/railroad-abnf-HS5TGJTU-BcW01NZG.js +1 -0
  341. package/dist/web/client/assets/railroad-ebnf-LZEXJU2U-B7YCEDDd.js +1 -0
  342. package/dist/web/client/assets/railroad-peg-WCYAUIDC-DjNZbSTZ.js +1 -0
  343. package/dist/web/client/assets/railroadDiagram-O6MQD6OU-BDDIPNLL.js +1 -0
  344. package/dist/web/client/assets/requirementDiagram-BXWQKSXE-B5Ydyxc1.js +84 -0
  345. package/dist/web/client/assets/rough.esm-Dy-Kn_BL.js +1 -0
  346. package/dist/web/client/assets/sankeyDiagram-P5KCCOFB-Bw2Qym75.js +40 -0
  347. package/dist/web/client/assets/sequenceDiagram-WJ2MYXX4-BZf36nO0.js +162 -0
  348. package/dist/web/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +1 -0
  349. package/dist/web/client/assets/src-yeptRXpt.js +1 -0
  350. package/dist/web/client/assets/stateDiagram-D77RDMKH-DnH6JRkp.js +1 -0
  351. package/dist/web/client/assets/stateDiagram-v2-MP3YSRHH-C7QtHeK4.js +1 -0
  352. package/dist/web/client/assets/swimlanes-42K2YHIH-D9PZmtZg.js +1 -0
  353. package/dist/web/client/assets/swimlanesDiagram-VR7AAH4N-CBZlPFky.js +8 -0
  354. package/dist/web/client/assets/timeline-definition-24CTP7MA-CrkZZBo7.js +120 -0
  355. package/dist/web/client/assets/treeView-Q6P3EWNA-C9zDShoC.js +1 -0
  356. package/dist/web/client/assets/treemap-WGGIJYW6-B-plj9yK.js +1 -0
  357. package/dist/web/client/assets/vennDiagram-4TSXK5OY-VeOdaphN.js +34 -0
  358. package/dist/web/client/assets/wardley-WFR3VGLG-Wl1P_m6L.js +1 -0
  359. package/dist/web/client/assets/wardleyDiagram-VM6X3IG4-B85-R9t2.js +78 -0
  360. package/dist/web/client/assets/xychartDiagram-S5SC5T6Z-BrD8OW8m.js +7 -0
  361. package/dist/web/client/clio-coder-logo.webp +0 -0
  362. package/dist/web/client/icon-192.png +0 -0
  363. package/dist/web/client/icon-512.png +0 -0
  364. package/dist/web/client/index.html +4 -0
  365. package/dist/web/client/manifest.webmanifest +15 -0
  366. package/dist/web/client/offline.css +55 -0
  367. package/dist/web/client/offline.html +5 -0
  368. package/dist/web/client/offline.js +27 -0
  369. package/dist/web/client/sw.js +34 -0
  370. package/dist/web/ops-worker.js +37 -0
  371. package/dist/web/reads-worker.js +1726 -0
  372. package/dist/web/server.js +8499 -0
  373. package/dist/web-EU6ATJWA.js +13 -0
  374. package/dist/web-fetch-U22Q7HV4.js +788 -0
  375. package/dist/wiki-generate-LZRLFG6I.js +623 -0
  376. package/dist/with-panes-X5CZOGML.js +628 -0
  377. package/dist/worker/entry.js +300 -93
  378. package/docs/README.md +58 -14
  379. package/docs/architecture/acp.md +5 -9
  380. package/docs/architecture/alcf-provider.md +0 -3
  381. package/docs/architecture/architecture.md +8 -10
  382. package/docs/architecture/artifact-placement.md +0 -3
  383. package/docs/architecture/artifact-versions.md +3 -6
  384. package/docs/architecture/capacity-and-scheduling.md +0 -3
  385. package/docs/architecture/context-engine.md +35 -4
  386. package/docs/architecture/context-working-set.md +0 -3
  387. package/docs/architecture/dispatch-architecture-rationale.md +0 -3
  388. package/docs/architecture/dispatch-typed-intent.md +0 -3
  389. package/docs/architecture/evidence-and-memory.md +0 -3
  390. package/docs/architecture/library.md +30 -0
  391. package/docs/architecture/middleware-and-components.md +1 -4
  392. package/docs/architecture/model-catalog.md +21 -4
  393. package/docs/architecture/observability.md +0 -3
  394. package/docs/architecture/pi-boundary.md +23 -8
  395. package/docs/architecture/prompt-envelope-and-tools.md +6 -9
  396. package/docs/architecture/provider-adapter-cookbook.md +1 -4
  397. package/docs/architecture/safety-model.md +21 -5
  398. package/docs/architecture/session-lifecycle.md +12 -4
  399. package/docs/architecture/time-conventions.md +0 -3
  400. package/docs/architecture/trace-store.md +28 -20
  401. package/docs/architecture/tui-design.md +108 -12
  402. package/docs/architecture/worker-context.md +104 -0
  403. package/docs/architecture/worker-dispatch-mechanics.md +1 -4
  404. package/docs/guide/authoring-plugins.md +158 -0
  405. package/docs/guide/built-in-agents.md +5 -8
  406. package/docs/guide/commands-and-modes.md +162 -61
  407. package/docs/guide/configuration-and-targets.md +198 -5
  408. package/docs/guide/configuration-reference.md +36 -38
  409. package/docs/guide/environment-variables.md +2 -5
  410. package/docs/guide/exit-codes-and-output.md +1 -4
  411. package/docs/guide/extensions-and-sharing.md +92 -55
  412. package/docs/guide/fleet-dispatch.md +31 -7
  413. package/docs/guide/glossary.md +1 -4
  414. package/docs/guide/harness-extensions.md +289 -0
  415. package/docs/guide/installation-and-lifecycle.md +10 -13
  416. package/docs/guide/interop.md +241 -0
  417. package/docs/guide/panes-and-files.md +3 -6
  418. package/docs/guide/plugins.md +77 -0
  419. package/docs/guide/proactive-memory.md +0 -3
  420. package/docs/guide/resource-library.md +109 -45
  421. package/docs/guide/skills-marketplace.md +34 -73
  422. package/docs/guide/tool-usage.md +19 -10
  423. package/docs/guide/troubleshooting.md +1 -4
  424. package/docs/history/config-knobs-audit.md +0 -3
  425. package/docs/history/release-cut-checklist.md +0 -3
  426. package/docs/process/development-pipeline.md +14 -17
  427. package/docs/process/documentation-coverage.md +31 -4
  428. package/docs/process/documentation-guide.md +28 -27
  429. package/docs/process/eval-runner.md +8 -6
  430. package/docs/process/evals-internal.md +0 -3
  431. package/docs/process/evolution.md +0 -3
  432. package/docs/process/fleet-demo-runbook.md +0 -3
  433. package/docs/process/git-commit-provenance.md +0 -3
  434. package/docs/process/performance-methodology.md +2 -5
  435. package/docs/process/release-cut-checklist.md +114 -217
  436. package/docs/process/scientific-validation.md +23 -3
  437. package/evals/scalar-decision-machinery.ts +1 -1
  438. package/examples/extensions/README.md +67 -0
  439. package/examples/extensions/lab-status/clio-coder-extension.json +14 -0
  440. package/examples/extensions/lab-status/extension.mjs +68 -0
  441. package/examples/extensions/lab-status/jobs.synthetic.json +9 -0
  442. package/examples/extensions/measurements/clio-coder-extension.json +28 -0
  443. package/examples/extensions/measurements/summarize.cjs +23 -0
  444. package/library/README.md +109 -0
  445. package/library/_authoring/templates/agent/README.md +28 -0
  446. package/library/_authoring/templates/agent/agents/benchmark-scout.md +30 -0
  447. package/library/_authoring/templates/agent/plugin.json +23 -0
  448. package/library/_authoring/templates/fleet/README.md +29 -0
  449. package/library/_authoring/templates/fleet/fleets/pipeline-review.md +31 -0
  450. package/library/_authoring/templates/fleet/plugin.json +23 -0
  451. package/library/_authoring/templates/plugin/README.md +37 -0
  452. package/library/_authoring/templates/plugin/agents/data-curator.md +31 -0
  453. package/library/_authoring/templates/plugin/assets/curation-guide.md +22 -0
  454. package/library/_authoring/templates/plugin/plugin.json +42 -0
  455. package/library/_authoring/templates/plugin/prompts/inspect-dataset.md +15 -0
  456. package/library/_authoring/templates/plugin/skills/dataset-curation/SKILL.md +36 -0
  457. package/library/_authoring/templates/plugin/skills/dataset-curation/evals.md +17 -0
  458. package/library/_authoring/templates/prompt/README.md +28 -0
  459. package/library/_authoring/templates/prompt/plugin.json +23 -0
  460. package/library/_authoring/templates/prompt/prompts/paper-summary.md +26 -0
  461. package/library/_authoring/templates/skill/README.md +24 -0
  462. package/library/_authoring/templates/skill/SKILL.md +39 -0
  463. package/library/_authoring/templates/skill/evals.md +30 -0
  464. package/library/_authoring/templates/skill/plugin.json +23 -0
  465. package/library/agents/README.md +7 -0
  466. package/library/fleets/README.md +7 -0
  467. package/library/plugins/materio/README.md +137 -0
  468. package/library/plugins/materio/ai.iowarp.clio/agents/materio-lab-definer.md +208 -0
  469. package/library/plugins/materio/ai.iowarp.clio/agents/materio-literature-reviewer.md +308 -0
  470. package/library/plugins/materio/ai.iowarp.clio/agents/materio-research-explorer.md +249 -0
  471. package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-executor.md +416 -0
  472. package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-verifier.md +60 -0
  473. package/library/plugins/materio/ai.iowarp.clio/agents/materio-workflow-planner.md +238 -0
  474. package/library/plugins/materio/ai.iowarp.clio/fleets/materio-execute-task.md +50 -0
  475. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/add-task.md +66 -0
  476. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/archive-task.md +65 -0
  477. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/checkpoint.md +26 -0
  478. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-research-tasks.md +230 -0
  479. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-virtual-lab.md +181 -0
  480. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/execute-task.md +292 -0
  481. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/help.md +129 -0
  482. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/identify-research.md +206 -0
  483. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/literature-review.md +201 -0
  484. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/pause-research.md +12 -0
  485. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/progress.md +105 -0
  486. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/remove-task.md +63 -0
  487. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/resume-research.md +64 -0
  488. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/settings.md +16 -0
  489. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/status.md +92 -0
  490. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/upload-data.md +104 -0
  491. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/wtfp.md +145 -0
  492. package/library/plugins/materio/ai.iowarp.clio/references/execution.md +56 -0
  493. package/library/plugins/materio/ai.iowarp.portability/provenance.json +9 -0
  494. package/library/plugins/materio/assets/actions/add-task.md +86 -0
  495. package/library/plugins/materio/assets/actions/archive-task.md +84 -0
  496. package/library/plugins/materio/assets/actions/checkpoint.md +47 -0
  497. package/library/plugins/materio/assets/actions/define-research-tasks.md +228 -0
  498. package/library/plugins/materio/assets/actions/define-virtual-lab.md +179 -0
  499. package/library/plugins/materio/assets/actions/execute-task.md +290 -0
  500. package/library/plugins/materio/assets/actions/help.md +140 -0
  501. package/library/plugins/materio/assets/actions/identify-research.md +204 -0
  502. package/library/plugins/materio/assets/actions/literature-review.md +199 -0
  503. package/library/plugins/materio/assets/actions/pause-research.md +34 -0
  504. package/library/plugins/materio/assets/actions/progress.md +125 -0
  505. package/library/plugins/materio/assets/actions/remove-task.md +82 -0
  506. package/library/plugins/materio/assets/actions/resume-research.md +84 -0
  507. package/library/plugins/materio/assets/actions/settings.md +38 -0
  508. package/library/plugins/materio/assets/actions/status.md +112 -0
  509. package/library/plugins/materio/assets/actions/upload-data.md +123 -0
  510. package/library/plugins/materio/assets/actions/wtfp.md +179 -0
  511. package/library/plugins/materio/assets/references/research-domains.md +134 -0
  512. package/library/plugins/materio/assets/references/research-policy.md +77 -0
  513. package/library/plugins/materio/assets/references/traditional-workflows.md +146 -0
  514. package/library/plugins/materio/assets/scripts/check_physics.py +271 -0
  515. package/library/plugins/materio/assets/scripts/check_scripts.py +248 -0
  516. package/library/plugins/materio/assets/scripts/project_plugin.py +165 -0
  517. package/library/plugins/materio/assets/scripts/research_state.py +400 -0
  518. package/library/plugins/materio/assets/scripts/verify_citations.py +616 -0
  519. package/library/plugins/materio/assets/templates/RESEARCH.md +39 -0
  520. package/library/plugins/materio/assets/templates/VIRTUAL-LAB.md +120 -0
  521. package/library/plugins/materio/assets/templates/WORKFLOW.md +42 -0
  522. package/library/plugins/materio/assets/templates/config.json +5 -0
  523. package/library/plugins/materio/evals/scripts.yaml +29 -0
  524. package/library/plugins/materio/plugin.json +530 -0
  525. package/library/plugins/materio/skills/materio-lab-definer/SKILL.md +74 -0
  526. package/library/plugins/materio/skills/materio-literature-reviewer/SKILL.md +64 -0
  527. package/library/plugins/materio/skills/materio-research-explorer/SKILL.md +74 -0
  528. package/library/plugins/materio/skills/materio-task-executor/SKILL.md +214 -0
  529. package/library/plugins/materio/skills/materio-task-verifier/SKILL.md +46 -0
  530. package/library/plugins/materio/skills/materio-workflow-planner/SKILL.md +79 -0
  531. package/library/plugins/materio/tests/test_check_physics.py +139 -0
  532. package/library/plugins/materio/tests/test_check_scripts.py +140 -0
  533. package/library/plugins/materio/tests/test_research_state.py +291 -0
  534. package/library/plugins/materio/tests/test_verify_citations.py +337 -0
  535. package/library/prompts/README.md +7 -0
  536. package/library/registry.yaml +921 -0
  537. package/library/skills/README.md +120 -0
  538. package/library/skills/coding/ast-grep/SKILL.md +213 -0
  539. package/library/skills/coding/ast-grep/evals.md +82 -0
  540. package/library/skills/coding/ast-grep/plugin.json +23 -0
  541. package/library/skills/coding/coding-standards/SKILL.md +164 -0
  542. package/library/skills/coding/coding-standards/evals.md +57 -0
  543. package/library/skills/coding/coding-standards/plugin.json +23 -0
  544. package/library/skills/coding/prototype/SKILL.md +151 -0
  545. package/library/skills/coding/prototype/evals.md +61 -0
  546. package/library/skills/coding/prototype/plugin.json +23 -0
  547. package/library/skills/coding/tdd/SKILL.md +134 -0
  548. package/library/skills/coding/tdd/evals.md +61 -0
  549. package/library/skills/coding/tdd/plugin.json +23 -0
  550. package/library/skills/context/context-handoff/SKILL.md +176 -0
  551. package/library/skills/context/context-handoff/evals.md +101 -0
  552. package/library/skills/context/context-handoff/plugin.json +23 -0
  553. package/library/skills/context/context-prime/SKILL.md +131 -0
  554. package/library/skills/context/context-prime/evals.md +99 -0
  555. package/library/skills/context/context-prime/plugin.json +23 -0
  556. package/library/skills/git/branch-closeout/SKILL.md +132 -0
  557. package/library/skills/git/branch-closeout/plugin.json +23 -0
  558. package/library/skills/git/file-ticket/SKILL.md +126 -0
  559. package/library/skills/git/file-ticket/plugin.json +23 -0
  560. package/library/skills/git/fix-issue/SKILL.md +136 -0
  561. package/library/skills/git/fix-issue/plugin.json +23 -0
  562. package/library/skills/git/resolve-merge-conflicts/SKILL.md +151 -0
  563. package/library/skills/git/resolve-merge-conflicts/evals.md +85 -0
  564. package/library/skills/git/resolve-merge-conflicts/plugin.json +23 -0
  565. package/library/skills/git/ship/SKILL.md +134 -0
  566. package/library/skills/git/ship/plugin.json +23 -0
  567. package/library/skills/git/worktree-create/SKILL.md +127 -0
  568. package/library/skills/git/worktree-create/plugin.json +23 -0
  569. package/library/skills/git/worktree-merge/SKILL.md +147 -0
  570. package/library/skills/git/worktree-merge/plugin.json +23 -0
  571. package/library/skills/meta/clio-coder-dev/SKILL.md +101 -0
  572. package/library/skills/meta/clio-coder-dev/evals.md +46 -0
  573. package/library/skills/meta/clio-coder-dev/plugin.json +23 -0
  574. package/library/skills/meta/clio-coder-test/SKILL.md +156 -0
  575. package/library/skills/meta/clio-coder-test/evals.md +62 -0
  576. package/library/skills/meta/clio-coder-test/plugin.json +23 -0
  577. package/library/skills/meta/clio-coder-test/references/test-map.md +97 -0
  578. package/library/skills/meta/credentials/SKILL.md +132 -0
  579. package/library/skills/meta/credentials/evals.md +104 -0
  580. package/library/skills/meta/credentials/plugin.json +23 -0
  581. package/library/skills/meta/find-skills/SKILL.md +85 -0
  582. package/library/skills/meta/find-skills/evals.md +65 -0
  583. package/library/skills/meta/find-skills/plugin.json +23 -0
  584. package/library/skills/meta/herdr/SKILL.md +133 -0
  585. package/library/skills/meta/herdr/evals.md +38 -0
  586. package/library/skills/meta/herdr/plugin.json +23 -0
  587. package/library/skills/meta/skill-craft/SKILL.md +139 -0
  588. package/library/skills/meta/skill-craft/evals.md +49 -0
  589. package/library/skills/meta/skill-craft/plugin.json +23 -0
  590. package/library/skills/planning/archify/SKILL.md +196 -0
  591. package/library/skills/planning/archify/plugin.json +23 -0
  592. package/library/skills/planning/architecture/SKILL.md +184 -0
  593. package/library/skills/planning/architecture/evals.md +101 -0
  594. package/library/skills/planning/architecture/plugin.json +23 -0
  595. package/library/skills/planning/backlog/SKILL.md +212 -0
  596. package/library/skills/planning/backlog/evals.md +185 -0
  597. package/library/skills/planning/backlog/plugin.json +23 -0
  598. package/library/skills/planning/prd/SKILL.md +129 -0
  599. package/library/skills/planning/prd/evals.md +103 -0
  600. package/library/skills/planning/prd/plugin.json +23 -0
  601. package/library/skills/planning/product-intent/SKILL.md +173 -0
  602. package/library/skills/planning/product-intent/evals.md +106 -0
  603. package/library/skills/planning/product-intent/plugin.json +23 -0
  604. package/library/skills/planning/tech-spec/SKILL.md +172 -0
  605. package/library/skills/planning/tech-spec/evals.md +120 -0
  606. package/library/skills/planning/tech-spec/plugin.json +23 -0
  607. package/library/skills/registry.yaml +144 -0
  608. package/library/skills/remote.yaml +13 -0
  609. package/library/skills/research/arxiv-literature/SKILL.md +168 -0
  610. package/library/skills/research/arxiv-literature/evals.md +108 -0
  611. package/library/skills/research/arxiv-literature/plugin.json +23 -0
  612. package/library/skills/research/experiment-protocol/SKILL.md +148 -0
  613. package/library/skills/research/experiment-protocol/evals.md +114 -0
  614. package/library/skills/research/experiment-protocol/plugin.json +23 -0
  615. package/library/skills/research/scientific-debugging/SKILL.md +149 -0
  616. package/library/skills/research/scientific-debugging/evals.md +156 -0
  617. package/library/skills/research/scientific-debugging/plugin.json +23 -0
  618. package/library/skills/research/scientific-modernization/SKILL.md +170 -0
  619. package/library/skills/research/scientific-modernization/evals.md +111 -0
  620. package/library/skills/research/scientific-modernization/plugin.json +23 -0
  621. package/library/skills/skill-marketplace.json +507 -0
  622. package/library/skills/workflow/cut-it/SKILL.md +153 -0
  623. package/library/skills/workflow/cut-it/evals.md +143 -0
  624. package/library/skills/workflow/cut-it/plugin.json +23 -0
  625. package/library/skills/workflow/design-council/SKILL.md +233 -0
  626. package/library/skills/workflow/design-council/evals.md +258 -0
  627. package/library/skills/workflow/design-council/plugin.json +23 -0
  628. package/library/skills/workflow/grill-me/SKILL.md +267 -0
  629. package/library/skills/workflow/grill-me/evals.md +231 -0
  630. package/library/skills/workflow/grill-me/plugin.json +23 -0
  631. package/library/skills/workflow/workflow-distiller/SKILL.md +204 -0
  632. package/library/skills/workflow/workflow-distiller/evals.md +233 -0
  633. package/library/skills/workflow/workflow-distiller/plugin.json +23 -0
  634. package/package.json +23 -14
  635. package/src/cli/agents.ts +1 -1
  636. package/src/cli/config-inspect.ts +1 -1
  637. package/src/cli/configure.ts +2 -2
  638. package/src/cli/docs.ts +65 -328
  639. package/src/cli/eval.ts +40 -6
  640. package/src/cli/extensions.ts +74 -8
  641. package/src/cli/fleet-preflight.ts +2 -0
  642. package/src/cli/fleet.ts +2 -0
  643. package/src/cli/index.ts +4 -4
  644. package/src/cli/interop-inspect.ts +61 -33
  645. package/src/cli/interop.ts +79 -9
  646. package/src/cli/library-import.ts +139 -0
  647. package/src/cli/library.ts +418 -120
  648. package/src/cli/run.ts +26 -9
  649. package/src/cli/skills-eval.ts +43 -6
  650. package/src/cli/skills-inventory.ts +6 -2
  651. package/src/cli/skills.ts +44 -491
  652. package/src/cli/trace.ts +4 -65
  653. package/src/cli/uninstall.ts +26 -0
  654. package/src/cli/usage.ts +3 -0
  655. package/src/cli/web.ts +79 -0
  656. package/src/core/bus-events.ts +8 -4
  657. package/src/core/config.ts +71 -0
  658. package/src/core/defaults.ts +1 -1
  659. package/src/core/domain-loader.ts +37 -28
  660. package/src/core/recent-models.ts +2 -2
  661. package/src/core/session-routing.ts +3 -3
  662. package/src/core/state-file-lock.ts +1 -1
  663. package/src/core/termination.ts +13 -9
  664. package/src/core/tool-names.ts +5 -0
  665. package/src/domains/agents/contract.ts +1 -1
  666. package/src/domains/agents/extension.ts +53 -9
  667. package/src/domains/agents/fleet-commands.ts +92 -1
  668. package/src/domains/agents/fleet-contract.ts +87 -19
  669. package/src/domains/agents/recipe.ts +5 -4
  670. package/src/domains/agents/registry.ts +80 -24
  671. package/src/domains/config/extension.ts +5 -4
  672. package/src/domains/config/keybindings.ts +155 -95
  673. package/src/domains/context/worker/contract.ts +91 -0
  674. package/src/domains/context/worker/pressure.ts +120 -0
  675. package/src/domains/context/worker/recall.ts +62 -0
  676. package/src/domains/context/worker/select.ts +164 -0
  677. package/src/domains/context/worker/snapshot.ts +35 -0
  678. package/src/domains/context/worker/store.ts +16 -0
  679. package/src/domains/context/working-set/replay/synthetic.ts +2 -1
  680. package/src/domains/dispatch/active-route-planner.ts +2 -0
  681. package/src/domains/dispatch/backoff.ts +1 -0
  682. package/src/domains/dispatch/code-step.ts +12 -2
  683. package/src/domains/dispatch/contract.ts +3 -0
  684. package/src/domains/dispatch/execution-plan.ts +2 -0
  685. package/src/domains/dispatch/extension.ts +184 -39
  686. package/src/domains/dispatch/fleet-plan.ts +10 -0
  687. package/src/domains/dispatch/fleet-run.ts +1 -0
  688. package/src/domains/dispatch/index.ts +1 -0
  689. package/src/domains/dispatch/orphan-recovery.ts +2 -0
  690. package/src/domains/dispatch/receipt-integrity.ts +7 -0
  691. package/src/domains/dispatch/state.ts +2 -2
  692. package/src/domains/dispatch/types.ts +7 -0
  693. package/src/domains/dispatch/validation.ts +12 -0
  694. package/src/domains/dispatch/workspace-checkpoint.ts +1 -1
  695. package/src/domains/eval/metrics/tracked.ts +22 -2
  696. package/src/domains/evidence/failure-attribution.ts +1 -0
  697. package/src/domains/evidence/trust-status.ts +22 -3
  698. package/src/domains/extensions/command-schema.ts +145 -0
  699. package/src/domains/extensions/command-tools.ts +15 -0
  700. package/src/domains/extensions/compatibility.ts +7 -0
  701. package/src/domains/extensions/contract.ts +0 -4
  702. package/src/domains/extensions/discovery.ts +69 -205
  703. package/src/domains/extensions/extension.ts +0 -4
  704. package/src/domains/extensions/index.ts +1 -5
  705. package/src/domains/extensions/manager.ts +1 -6
  706. package/src/domains/extensions/operator-commands.ts +29 -0
  707. package/src/domains/extensions/operator-runtime.ts +485 -0
  708. package/src/domains/extensions/public-api.ts +53 -0
  709. package/src/domains/extensions/runtime-child.mjs +114 -0
  710. package/src/domains/extensions/runtime-process.ts +306 -0
  711. package/src/domains/extensions/runtime-schema.ts +146 -0
  712. package/src/domains/extensions/snapshot-access.ts +21 -0
  713. package/src/domains/extensions/snapshot.ts +4 -32
  714. package/src/domains/extensions/state.ts +5 -83
  715. package/src/domains/extensions/types.ts +33 -34
  716. package/src/domains/interop/adopt.ts +546 -0
  717. package/src/domains/interop/detect.ts +50 -12
  718. package/src/domains/interop/foreign.ts +554 -0
  719. package/src/domains/interop/import.ts +277 -0
  720. package/src/domains/interop/index.ts +24 -0
  721. package/src/domains/interop/install.ts +6 -0
  722. package/src/domains/interop/inventory.ts +351 -0
  723. package/src/domains/interop/projection.ts +360 -0
  724. package/src/domains/interop/registry.ts +106 -3
  725. package/src/domains/interop/types.ts +51 -0
  726. package/src/domains/lifecycle/migrations/index.ts +0 -2
  727. package/src/domains/lifecycle/naming-resources.ts +1 -1
  728. package/src/domains/middleware/hooks.ts +2 -2
  729. package/src/domains/middleware/marketplace-offer.ts +1 -1
  730. package/src/domains/mux/contract.ts +1 -1
  731. package/src/domains/observability/background-memory-usage.ts +3 -0
  732. package/src/domains/observability/compaction-usage.ts +2 -0
  733. package/src/domains/observability/cost.ts +5 -0
  734. package/src/domains/observability/extension.ts +1 -0
  735. package/src/domains/observability/out-of-turn-usage.ts +2 -0
  736. package/src/domains/observability/trace-store.ts +65 -5
  737. package/src/domains/plugins/catalog.ts +204 -0
  738. package/src/domains/plugins/contract.ts +24 -0
  739. package/src/domains/plugins/discovery.ts +316 -0
  740. package/src/domains/plugins/extension.ts +40 -0
  741. package/src/domains/plugins/index.ts +77 -0
  742. package/src/domains/plugins/integrity.ts +6 -0
  743. package/src/domains/plugins/manifest.ts +3 -0
  744. package/src/domains/plugins/resources.ts +102 -0
  745. package/src/domains/plugins/state.ts +753 -0
  746. package/src/domains/plugins/types.ts +217 -0
  747. package/src/domains/prompts/extension.ts +4 -10
  748. package/src/domains/prompts/fragments/operating/skills.md +10 -10
  749. package/src/domains/providers/cache-deployment.ts +147 -0
  750. package/src/domains/providers/catalog.ts +12 -7
  751. package/src/domains/providers/extension.ts +27 -5
  752. package/src/domains/providers/index.ts +1 -0
  753. package/src/domains/providers/plugins.ts +3 -13
  754. package/src/domains/providers/runtimes/common/local-synth.ts +4 -0
  755. package/src/domains/providers/types/target-descriptor.ts +17 -0
  756. package/src/domains/resources/common-loader.ts +9 -6
  757. package/src/domains/resources/index.ts +67 -0
  758. package/src/domains/resources/library-actions.ts +836 -0
  759. package/src/domains/resources/library-evals.ts +38 -0
  760. package/src/domains/resources/library-inventory.ts +1048 -0
  761. package/src/domains/resources/library-types.ts +50 -0
  762. package/src/domains/resources/library-validation.ts +634 -0
  763. package/src/domains/resources/library.ts +437 -156
  764. package/src/domains/resources/package-references.ts +66 -0
  765. package/src/domains/resources/prompts/loader.ts +75 -41
  766. package/src/domains/resources/skills/install.ts +2 -2
  767. package/src/domains/resources/skills/loader.ts +77 -22
  768. package/src/domains/resources/skills/marketplace.ts +48 -57
  769. package/src/domains/resources/skills/promotion.ts +2 -2
  770. package/src/domains/resources/skills/provenance-pin.ts +17 -4
  771. package/src/domains/safety/action-classifier.ts +2 -2
  772. package/src/domains/safety/default-path-policy.ts +3 -1
  773. package/src/domains/safety/policy-engine.ts +1 -1
  774. package/src/domains/safety/protected-artifacts.ts +21 -5
  775. package/src/domains/safety/skill-authority.ts +5 -2
  776. package/src/domains/session/compaction/compact.ts +4 -1
  777. package/src/domains/session/entries.ts +1 -0
  778. package/src/domains/session/usage.ts +6 -7
  779. package/src/domains/share/archive.ts +1 -1
  780. package/src/engine/acp/server.ts +11 -0
  781. package/src/engine/ai.ts +2 -0
  782. package/src/engine/apis/openai-completions.ts +61 -6
  783. package/src/engine/notices/pi-tui-LICENSE +21 -0
  784. package/src/engine/prewarm.ts +232 -0
  785. package/src/engine/provider-diagnostics.ts +6 -1
  786. package/src/engine/tui.ts +3 -0
  787. package/src/engine/worker-runtime.ts +58 -14
  788. package/src/engine/worker-tools.ts +5 -0
  789. package/src/entry/orchestrator.ts +46 -21
  790. package/src/entry/plugin-reload.ts +18 -0
  791. package/src/interactive/application-controller.ts +67 -21
  792. package/src/interactive/chat-loop-messages.ts +3 -0
  793. package/src/interactive/chat-loop.ts +32 -11
  794. package/src/interactive/chat-panel.ts +5 -1
  795. package/src/interactive/clio-editor.ts +53 -21
  796. package/src/interactive/command-output.ts +56 -1
  797. package/src/interactive/editor-submit.ts +65 -28
  798. package/src/interactive/fleet-run-preview.ts +2 -0
  799. package/src/interactive/follow-up-queue-panel.ts +3 -3
  800. package/src/interactive/footer/dashboard.ts +4 -1
  801. package/src/interactive/footer/notifications.ts +2 -2
  802. package/src/interactive/footer/widgets.ts +2 -2
  803. package/src/interactive/interactive-application.ts +209 -21
  804. package/src/interactive/interactive-input-runtime.ts +254 -7
  805. package/src/interactive/interactive-presentation.ts +41 -12
  806. package/src/interactive/interactive-slash-runtime.ts +37 -8
  807. package/src/interactive/keybinding-manager.ts +156 -79
  808. package/src/interactive/keyboard-owner.ts +37 -0
  809. package/src/interactive/leader-key.ts +49 -102
  810. package/src/interactive/leader-menu.ts +45 -0
  811. package/src/interactive/overlay-ask-user-lifecycle.ts +9 -1
  812. package/src/interactive/overlay-frame.ts +15 -0
  813. package/src/interactive/overlay-key-routing.ts +46 -47
  814. package/src/interactive/overlay-lifecycle.ts +30 -15
  815. package/src/interactive/overlay-resource-openers.ts +56 -46
  816. package/src/interactive/overlays/ask-user.ts +630 -556
  817. package/src/interactive/overlays/extension-panel.ts +70 -0
  818. package/src/interactive/overlays/extensions.ts +28 -5
  819. package/src/interactive/overlays/fleet-run-approval.ts +7 -3
  820. package/src/interactive/overlays/help-reference.ts +89 -40
  821. package/src/interactive/overlays/interop.ts +122 -3
  822. package/src/interactive/overlays/keybinding-detail.ts +2 -2
  823. package/src/interactive/overlays/library-lifecycle.ts +90 -0
  824. package/src/interactive/overlays/library-model.ts +574 -0
  825. package/src/interactive/overlays/library-review.ts +557 -0
  826. package/src/interactive/overlays/library-tabs.ts +3 -15
  827. package/src/interactive/overlays/library.ts +602 -0
  828. package/src/interactive/overlays/list-overlay.ts +218 -39
  829. package/src/interactive/overlays/model-selector.ts +28 -25
  830. package/src/interactive/overlays/session-selector.ts +9 -3
  831. package/src/interactive/overlays/settings.ts +25 -18
  832. package/src/interactive/overlays/tree-selector.ts +16 -11
  833. package/src/interactive/permission-hint.ts +13 -0
  834. package/src/interactive/permission-overlay.ts +77 -28
  835. package/src/interactive/prewarm.ts +11 -197
  836. package/src/interactive/prompt-source-label.ts +21 -0
  837. package/src/interactive/renderers/reference-card.ts +35 -0
  838. package/src/interactive/renderers/worker-entry.ts +35 -3
  839. package/src/interactive/session-usage-reseed.ts +2 -0
  840. package/src/interactive/side-question.ts +2 -0
  841. package/src/interactive/slash-autocomplete.ts +99 -1
  842. package/src/interactive/slash-commands.ts +390 -67
  843. package/src/interactive/slash-spec.ts +0 -1
  844. package/src/interactive/terminal-lease.ts +44 -12
  845. package/src/interactive/turn-context.ts +1 -0
  846. package/src/interactive/turn-persistence.ts +3 -0
  847. package/src/interactive/turn-prewarm.ts +126 -19
  848. package/src/interactive/turn-queues.ts +8 -7
  849. package/src/interactive/turn-runtime.ts +15 -1
  850. package/src/interactive/view/view-overlay.ts +19 -14
  851. package/src/interactive/welcome-dashboard.ts +525 -408
  852. package/src/tools/bootstrap.ts +8 -0
  853. package/src/tools/builtin-tool-catalog.ts +15 -6
  854. package/src/tools/context/index.ts +58 -5
  855. package/src/tools/context/library.ts +465 -0
  856. package/src/tools/context/surface.ts +20 -6
  857. package/src/tools/core-bootstrap.ts +3 -0
  858. package/src/tools/dispatch-admission.ts +24 -1
  859. package/src/tools/dispatch-arguments.ts +8 -0
  860. package/src/tools/dispatch-plan.ts +32 -0
  861. package/src/tools/dispatch-schema.ts +31 -1
  862. package/src/tools/dispatch-types.ts +3 -0
  863. package/src/tools/dispatch.ts +1 -1
  864. package/src/tools/harness-extensions.ts +169 -0
  865. package/src/tools/observation.ts +4 -0
  866. package/src/tools/policy.ts +7 -1
  867. package/src/tools/registry.ts +31 -3
  868. package/src/tools/worker-evidence.ts +5 -0
  869. package/src/worker/context-seed.ts +192 -0
  870. package/src/worker/entry.ts +1 -0
  871. package/src/worker/spec-contract.ts +35 -1
  872. package/dist/acp-UVEVWSDL.js +0 -130
  873. package/dist/agents-VWY37DTK.js +0 -148
  874. package/dist/auth-PCV2XQDV.js +0 -551
  875. package/dist/builtins-PD652MTK.js +0 -22
  876. package/dist/chunk-22PQ4TX4.js +0 -360
  877. package/dist/chunk-24T2YZ7A.js +0 -22648
  878. package/dist/chunk-2AKYFREM.js +0 -1008
  879. package/dist/chunk-2QPI3TR3.js +0 -162
  880. package/dist/chunk-3BJGMT2D.js +0 -324
  881. package/dist/chunk-3HQVBIKD.js +0 -308
  882. package/dist/chunk-3JLFK5MW.js +0 -193
  883. package/dist/chunk-3O2ZAUGQ.js +0 -283
  884. package/dist/chunk-3QKXHCGS.js +0 -59
  885. package/dist/chunk-3T4DXWP6.js +0 -668
  886. package/dist/chunk-3UW3KU4A.js +0 -21
  887. package/dist/chunk-3WBALRQH.js +0 -5076
  888. package/dist/chunk-4DU2TVI4.js +0 -108
  889. package/dist/chunk-4U4TKZFR.js +0 -5052
  890. package/dist/chunk-4VMV6OS6.js +0 -101
  891. package/dist/chunk-536HXRFE.js +0 -1257
  892. package/dist/chunk-5CMARGPF.js +0 -477
  893. package/dist/chunk-5CY4Q6QI.js +0 -141
  894. package/dist/chunk-5QRX7SLS.js +0 -1018
  895. package/dist/chunk-5VTJP36Q.js +0 -36
  896. package/dist/chunk-5ZSZEYJK.js +0 -119
  897. package/dist/chunk-6HAO6X5B.js +0 -197
  898. package/dist/chunk-6OII3LOK.js +0 -404
  899. package/dist/chunk-6RYDAVQT.js +0 -4338
  900. package/dist/chunk-6VRRJT7L.js +0 -146
  901. package/dist/chunk-6YA46L5A.js +0 -386
  902. package/dist/chunk-77CZRFTE.js +0 -634
  903. package/dist/chunk-7JSSKXG2.js +0 -1215
  904. package/dist/chunk-7WUZEB2M.js +0 -165
  905. package/dist/chunk-7YJWEF2L.js +0 -974
  906. package/dist/chunk-ACCKVSHU.js +0 -44
  907. package/dist/chunk-B3MOMLJ4.js +0 -433
  908. package/dist/chunk-BBV5TKE6.js +0 -35
  909. package/dist/chunk-BLTEAUCB.js +0 -668
  910. package/dist/chunk-BS4GAMUB.js +0 -233
  911. package/dist/chunk-BT7HGDOX.js +0 -3151
  912. package/dist/chunk-CBSKDFWL.js +0 -101
  913. package/dist/chunk-CXQ37WJH.js +0 -45
  914. package/dist/chunk-DXLUVUD4.js +0 -1490
  915. package/dist/chunk-DZK63TZJ.js +0 -1334
  916. package/dist/chunk-E7RF4KBO.js +0 -266
  917. package/dist/chunk-ECOMVOHP.js +0 -139
  918. package/dist/chunk-EHOSNVVM.js +0 -59
  919. package/dist/chunk-F5Z7EWMN.js +0 -4484
  920. package/dist/chunk-FQOOGXBH.js +0 -579
  921. package/dist/chunk-GLYBJ4RQ.js +0 -396
  922. package/dist/chunk-HHVJNVUJ.js +0 -179
  923. package/dist/chunk-HL26ADLH.js +0 -77
  924. package/dist/chunk-HPTJF6DG.js +0 -2465
  925. package/dist/chunk-HXHFDHB6.js +0 -962
  926. package/dist/chunk-HZ2T2YED.js +0 -1687
  927. package/dist/chunk-HZFBVU5X.js +0 -666
  928. package/dist/chunk-I2K2NCZQ.js +0 -659
  929. package/dist/chunk-IGLVVNEG.js +0 -402
  930. package/dist/chunk-IKRWLEDA.js +0 -1567
  931. package/dist/chunk-J2FYEQ5L.js +0 -33
  932. package/dist/chunk-JMPL7NUB.js +0 -108
  933. package/dist/chunk-K2HL3GBL.js +0 -998
  934. package/dist/chunk-KAFMW7WM.js +0 -386
  935. package/dist/chunk-KTFSFCVN.js +0 -46
  936. package/dist/chunk-LIN2K3EL.js +0 -66
  937. package/dist/chunk-LUL5Z66S.js +0 -221
  938. package/dist/chunk-LVFANMOH.js +0 -466
  939. package/dist/chunk-LY4N4TTL.js +0 -117
  940. package/dist/chunk-LZBMXNLP.js +0 -1196
  941. package/dist/chunk-M6TAYK66.js +0 -807
  942. package/dist/chunk-N2OKBREN.js +0 -243
  943. package/dist/chunk-NC4KV7EL.js +0 -39
  944. package/dist/chunk-NF3BK5WR.js +0 -42
  945. package/dist/chunk-NNWJYUNO.js +0 -573
  946. package/dist/chunk-NTK3WTHM.js +0 -141
  947. package/dist/chunk-ODUTYZIU.js +0 -688
  948. package/dist/chunk-OQM5IVJY.js +0 -1377
  949. package/dist/chunk-P5JMBPDJ.js +0 -7192
  950. package/dist/chunk-P5SC4DLJ.js +0 -47
  951. package/dist/chunk-P6M7RKMI.js +0 -97
  952. package/dist/chunk-PWWSIB2A.js +0 -52
  953. package/dist/chunk-PZN2LQY6.js +0 -674
  954. package/dist/chunk-Q7NNUHQV.js +0 -705
  955. package/dist/chunk-QCOV5DFY.js +0 -911
  956. package/dist/chunk-QNWRHOMF.js +0 -692
  957. package/dist/chunk-QRFXEO6Y.js +0 -17
  958. package/dist/chunk-QXFBABFJ.js +0 -380
  959. package/dist/chunk-RGZNQ5CT.js +0 -657
  960. package/dist/chunk-SRZOW5L2.js +0 -1865
  961. package/dist/chunk-SXQKNKRA.js +0 -223
  962. package/dist/chunk-T334FW2H.js +0 -362
  963. package/dist/chunk-T52TPHYC.js +0 -318
  964. package/dist/chunk-TJFDL26W.js +0 -658
  965. package/dist/chunk-TN5FW4XY.js +0 -172
  966. package/dist/chunk-U7H5WRG5.js +0 -123
  967. package/dist/chunk-UFYNOQK4.js +0 -302
  968. package/dist/chunk-URBGEOH3.js +0 -32
  969. package/dist/chunk-USZA7GWL.js +0 -341
  970. package/dist/chunk-UUQ5G6EZ.js +0 -697
  971. package/dist/chunk-VAHLPXPY.js +0 -399
  972. package/dist/chunk-VANN3GDP.js +0 -2488
  973. package/dist/chunk-VHMX7SXF.js +0 -1289
  974. package/dist/chunk-WJIMKGD6.js +0 -132
  975. package/dist/chunk-WKUYQBCG.js +0 -795
  976. package/dist/chunk-WNGF5AJX.js +0 -1911
  977. package/dist/chunk-WV6TDAPN.js +0 -3627
  978. package/dist/chunk-X3BI7HTV.js +0 -562
  979. package/dist/chunk-XWMSPJYN.js +0 -149
  980. package/dist/chunk-YPRSNUTC.js +0 -395
  981. package/dist/chunk-ZS43Y2FT.js +0 -438
  982. package/dist/clio-QQCMTUZE.js +0 -26
  983. package/dist/code-nav-GUPM6766.js +0 -686
  984. package/dist/components-TNIKXCBH.js +0 -674
  985. package/dist/config-IIM7YOD3.js +0 -621
  986. package/dist/configure-4ZM5HWJX.js +0 -73
  987. package/dist/context-44BZLJ3J.js +0 -344
  988. package/dist/context-AIDVQKMW.js +0 -278
  989. package/dist/context-OL5P3HEP.js +0 -1031
  990. package/dist/context-clear-OQV76MYP.js +0 -184
  991. package/dist/context-index-HP2JFUWA.js +0 -120
  992. package/dist/context-map-INTXD54D.js +0 -555
  993. package/dist/context-working-set-ZUW3EGLS.js +0 -1556
  994. package/dist/detail-UXPWRANG.js +0 -115
  995. package/dist/dispatch-runner-P3ZW6G77.js +0 -2438
  996. package/dist/docs-BL7ROUFN.js +0 -292
  997. package/dist/doctor-JJVGPZWT.js +0 -797
  998. package/dist/eval-V2RTN3UH.js +0 -4972
  999. package/dist/eval-inventory-QOYZERXJ.js +0 -315
  1000. package/dist/evidence-35PYWGSO.js +0 -225
  1001. package/dist/evidence-CIGGKI6J.js +0 -383
  1002. package/dist/evolve-33SM3NJP.js +0 -609
  1003. package/dist/extensions-YVRHX6ZI.js +0 -229
  1004. package/dist/fleet-LFO7SIPC.js +0 -908
  1005. package/dist/fleet-commands-RLK72GU3.js +0 -75
  1006. package/dist/fleet-decisions-3SBSCTCW.js +0 -159
  1007. package/dist/fleet-graph-JZIBCGMW.js +0 -134
  1008. package/dist/fleet-inspect-2L5YGGZJ.js +0 -469
  1009. package/dist/fleet-preflight-QRSHIIDE.js +0 -22
  1010. package/dist/fleet-validate-LIAVKDUU.js +0 -92
  1011. package/dist/fleet-verify-JIK3OQZR.js +0 -202
  1012. package/dist/fleet-view-IWHYGQKK.js +0 -118
  1013. package/dist/init-NJEDOTQW.js +0 -321
  1014. package/dist/interop-RVCAYECG.js +0 -115
  1015. package/dist/inventory-74UL7UHU.js +0 -118
  1016. package/dist/library-CTKZA7K3.js +0 -226
  1017. package/dist/memory-I76I5VUH.js +0 -512
  1018. package/dist/models-D4YDIQZQ.js +0 -289
  1019. package/dist/monitor-NKVD55HX.js +0 -775
  1020. package/dist/orchestrator-I6OATVPK.js +0 -39518
  1021. package/dist/panes-7BTYH3XQ.js +0 -103
  1022. package/dist/panes-WPOMEMRH.js +0 -74
  1023. package/dist/paths-J3KN7UAO.js +0 -67
  1024. package/dist/preload-EJAWJEIO.js +0 -116
  1025. package/dist/reset-4XMQKDNZ.js +0 -345
  1026. package/dist/resources-TVYVXK3Q.js +0 -125
  1027. package/dist/run-OWQNNSJU.js +0 -872
  1028. package/dist/share-NPZZMUXG.js +0 -290
  1029. package/dist/skills-OXFEAWMT.js +0 -510
  1030. package/dist/skills-eval-J5TCKSJA.js +0 -1034
  1031. package/dist/skills-inventory-7II4DM57.js +0 -133
  1032. package/dist/slash-commands-MDSDSWYF.js +0 -92
  1033. package/dist/steer-S7D7IKPU.js +0 -77
  1034. package/dist/support-5VAEC32W.js +0 -38
  1035. package/dist/targets-KILZEOCE.js +0 -1109
  1036. package/dist/tasks-R6P6OV22.js +0 -36
  1037. package/dist/terminal-lease-LZCG2KN3.js +0 -405
  1038. package/dist/tools-6OCQ6SVB.js +0 -28
  1039. package/dist/trace-JHLXWUMN.js +0 -572
  1040. package/dist/tui-primitives-RCY2HN7G.js +0 -17
  1041. package/dist/uninstall-FXYMFFRT.js +0 -407
  1042. package/dist/upgrade-D2OZH6IQ.js +0 -307
  1043. package/dist/usage-PIASNUS4.js +0 -1052
  1044. package/dist/verifiers-LTHUY2PX.js +0 -630
  1045. package/dist/verify-HYF7KBVE.js +0 -30
  1046. package/dist/web-fetch-MQN4FH3X.js +0 -788
  1047. package/dist/wiki-generate-RK7JQ5NP.js +0 -615
  1048. package/dist/with-panes-OFTNAR4Y.js +0 -628
  1049. package/skills/README.md +0 -418
  1050. package/skills/coding/ast-grep/SKILL.md +0 -213
  1051. package/skills/coding/ast-grep/evals.md +0 -82
  1052. package/skills/coding/coding-standards/SKILL.md +0 -164
  1053. package/skills/coding/coding-standards/evals.md +0 -57
  1054. package/skills/coding/prototype/SKILL.md +0 -151
  1055. package/skills/coding/prototype/evals.md +0 -61
  1056. package/skills/coding/tdd/SKILL.md +0 -134
  1057. package/skills/coding/tdd/evals.md +0 -61
  1058. package/skills/context/context-handoff/SKILL.md +0 -176
  1059. package/skills/context/context-handoff/evals.md +0 -101
  1060. package/skills/context/context-prime/SKILL.md +0 -131
  1061. package/skills/context/context-prime/evals.md +0 -99
  1062. package/skills/git/branch-closeout/SKILL.md +0 -132
  1063. package/skills/git/file-ticket/SKILL.md +0 -126
  1064. package/skills/git/fix-issue/SKILL.md +0 -136
  1065. package/skills/git/resolve-merge-conflicts/SKILL.md +0 -151
  1066. package/skills/git/resolve-merge-conflicts/evals.md +0 -85
  1067. package/skills/git/ship/SKILL.md +0 -134
  1068. package/skills/git/worktree-create/SKILL.md +0 -127
  1069. package/skills/git/worktree-merge/SKILL.md +0 -147
  1070. package/skills/meta/clio-coder-dev/SKILL.md +0 -101
  1071. package/skills/meta/clio-coder-dev/evals.md +0 -46
  1072. package/skills/meta/clio-coder-test/SKILL.md +0 -146
  1073. package/skills/meta/clio-coder-test/evals.md +0 -48
  1074. package/skills/meta/clio-coder-test/references/test-map.md +0 -96
  1075. package/skills/meta/credentials/SKILL.md +0 -132
  1076. package/skills/meta/credentials/evals.md +0 -104
  1077. package/skills/meta/find-skills/SKILL.md +0 -78
  1078. package/skills/meta/find-skills/evals.md +0 -47
  1079. package/skills/meta/herdr/SKILL.md +0 -133
  1080. package/skills/meta/herdr/evals.md +0 -38
  1081. package/skills/meta/skill-craft/SKILL.md +0 -125
  1082. package/skills/meta/skill-craft/evals.md +0 -41
  1083. package/skills/planning/archify/SKILL.md +0 -196
  1084. package/skills/planning/architecture/SKILL.md +0 -184
  1085. package/skills/planning/architecture/evals.md +0 -101
  1086. package/skills/planning/backlog/SKILL.md +0 -212
  1087. package/skills/planning/backlog/evals.md +0 -185
  1088. package/skills/planning/prd/SKILL.md +0 -129
  1089. package/skills/planning/prd/evals.md +0 -103
  1090. package/skills/planning/product-intent/SKILL.md +0 -173
  1091. package/skills/planning/product-intent/evals.md +0 -106
  1092. package/skills/planning/tech-spec/SKILL.md +0 -172
  1093. package/skills/planning/tech-spec/evals.md +0 -120
  1094. package/skills/registry.yaml +0 -144
  1095. package/skills/remote.yaml +0 -13
  1096. package/skills/research/arxiv-literature/SKILL.md +0 -168
  1097. package/skills/research/arxiv-literature/evals.md +0 -108
  1098. package/skills/research/experiment-protocol/SKILL.md +0 -148
  1099. package/skills/research/experiment-protocol/evals.md +0 -114
  1100. package/skills/research/scientific-debugging/SKILL.md +0 -149
  1101. package/skills/research/scientific-debugging/evals.md +0 -156
  1102. package/skills/research/scientific-modernization/SKILL.md +0 -170
  1103. package/skills/research/scientific-modernization/evals.md +0 -111
  1104. package/skills/skill-marketplace.json +0 -507
  1105. package/skills/workflow/cut-it/SKILL.md +0 -153
  1106. package/skills/workflow/cut-it/evals.md +0 -143
  1107. package/skills/workflow/design-council/SKILL.md +0 -233
  1108. package/skills/workflow/design-council/evals.md +0 -258
  1109. package/skills/workflow/grill-me/SKILL.md +0 -267
  1110. package/skills/workflow/grill-me/evals.md +0 -231
  1111. package/skills/workflow/workflow-distiller/SKILL.md +0 -201
  1112. package/skills/workflow/workflow-distiller/evals.md +0 -225
  1113. package/src/domains/extensions/resource-path.ts +0 -27
  1114. package/src/domains/extensions/resources.ts +0 -37
  1115. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +0 -27
  1116. package/src/interactive/overlays/agents.ts +0 -70
  1117. package/src/interactive/overlays/library-install-confirm.ts +0 -152
  1118. package/src/interactive/overlays/prompts.ts +0 -89
  1119. package/src/interactive/overlays/skills-hub.ts +0 -615
  1120. /package/{skills → library/skills}/coding/ast-grep/references/rule_reference.md +0 -0
  1121. /package/{skills → library/skills}/coding/prototype/references/LOGIC.md +0 -0
  1122. /package/{skills → library/skills}/coding/prototype/references/UI.md +0 -0
  1123. /package/{skills → library/skills}/coding/tdd/references/mocking.md +0 -0
  1124. /package/{skills → library/skills}/coding/tdd/references/tests.md +0 -0
  1125. /package/{skills → library/skills}/context/context-handoff/scripts/new-handoff.sh +0 -0
  1126. /package/{skills → library/skills}/git/branch-closeout/evals.md +0 -0
  1127. /package/{skills → library/skills}/git/branch-closeout/references/closeout-checklist.md +0 -0
  1128. /package/{skills → library/skills}/git/file-ticket/assets/issue-template.md +0 -0
  1129. /package/{skills → library/skills}/git/file-ticket/evals.md +0 -0
  1130. /package/{skills → library/skills}/git/file-ticket/references/issue-discovery.md +0 -0
  1131. /package/{skills → library/skills}/git/fix-issue/evals.md +0 -0
  1132. /package/{skills → library/skills}/git/fix-issue/references/diagnosis-and-rca.md +0 -0
  1133. /package/{skills → library/skills}/git/resolve-merge-conflicts/references/conflict-matrix.md +0 -0
  1134. /package/{skills → library/skills}/git/ship/assets/pr-template.md +0 -0
  1135. /package/{skills → library/skills}/git/ship/evals.md +0 -0
  1136. /package/{skills → library/skills}/git/ship/references/remote-and-branch-policy.md +0 -0
  1137. /package/{skills → library/skills}/git/worktree-create/evals.md +0 -0
  1138. /package/{skills → library/skills}/git/worktree-create/references/worktree-setup.md +0 -0
  1139. /package/{skills → library/skills}/git/worktree-merge/evals.md +0 -0
  1140. /package/{skills → library/skills}/git/worktree-merge/references/merge-strategies.md +0 -0
  1141. /package/{skills → library/skills}/meta/clio-coder-test/references/harness.md +0 -0
  1142. /package/{skills → library/skills}/planning/archify/evals.md +0 -0
@@ -0,0 +1,1074 @@
1
+ import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import {
3
+ buildRecallFields,
4
+ recallErrorMessage,
5
+ recallParentTurnId,
6
+ recallableRefListing,
7
+ resolveRecall
8
+ } from "./chunk-QGIC5SX5.js";
9
+ import {
10
+ foldWorkingSet
11
+ } from "./chunk-DBREN25X.js";
12
+ import {
13
+ checkSkillDrift
14
+ } from "./chunk-H5DPSUBB.js";
15
+ import "./chunk-JCVIL6TY.js";
16
+ import "./chunk-O5F25NIE.js";
17
+ import "./chunk-UB33F3YW.js";
18
+ import "./chunk-ORRNGQDV.js";
19
+ import "./chunk-OEMFEL26.js";
20
+ import {
21
+ discoverMarketplaceSkills,
22
+ loadSkills,
23
+ modelVisibleSkills
24
+ } from "./chunk-EXKUF426.js";
25
+ import "./chunk-DNCE23JJ.js";
26
+ import "./chunk-YJCCMYYT.js";
27
+ import "./chunk-7QQRPB2E.js";
28
+ import "./chunk-6UJ7RDI7.js";
29
+ import {
30
+ contextToolSurface
31
+ } from "./chunk-LZCCBLRC.js";
32
+ import {
33
+ OBSERVE_SELF_CAPS,
34
+ finalizeObservation,
35
+ observationBudgetExhausted,
36
+ reserveObservation,
37
+ truncateHead
38
+ } from "./chunk-526ABLHD.js";
39
+ import "./chunk-KECNXMDE.js";
40
+ import "./chunk-WXA2CFJO.js";
41
+ import "./chunk-OPC4DQD6.js";
42
+ import "./chunk-RAUOKUZV.js";
43
+ import "./chunk-X6FLVUM5.js";
44
+ import "./chunk-5C2OQHLR.js";
45
+ import "./chunk-QLAGXTTV.js";
46
+ import "./chunk-B6UM3OZC.js";
47
+ import "./chunk-MYI32N4R.js";
48
+ import "./chunk-VNBICSS2.js";
49
+ import "./chunk-DXVMLM3Z.js";
50
+ import "./chunk-ARRUMZ7X.js";
51
+ import "./chunk-XW2UZICE.js";
52
+ import "./chunk-PGEFOTJB.js";
53
+ import "./chunk-DVNAPPXU.js";
54
+ import "./chunk-5EQO5NWP.js";
55
+ import "./chunk-YXFKLMX2.js";
56
+ import "./chunk-E2NSPYLC.js";
57
+ import "./chunk-R2P2U3ZS.js";
58
+ import "./chunk-NTTS3O53.js";
59
+ import "./chunk-KQ6IDQIB.js";
60
+ import "./chunk-M4KFUXS7.js";
61
+ import {
62
+ ToolNames
63
+ } from "./chunk-WLHX3MM5.js";
64
+ import "./chunk-3XE4NRLF.js";
65
+ import "./chunk-U2MSJ57E.js";
66
+ import "./chunk-C27U2TYG.js";
67
+ import "./chunk-B5GGDIHT.js";
68
+ import "./chunk-GJ24ODAX.js";
69
+ import "./chunk-LTR5QCLS.js";
70
+ import "./chunk-6EXUUOSN.js";
71
+ import "./chunk-ZTNFYMIO.js";
72
+ import {
73
+ SKILL_INSTALL_OFFER_OPTION_NEVER,
74
+ SKILL_INSTALL_OFFER_OPTION_NOT_NOW,
75
+ SKILL_INSTALL_OFFER_OPTION_PROJECT,
76
+ SKILL_INSTALL_OFFER_OPTION_USER,
77
+ SKILL_SUGGESTION_ANCHOR
78
+ } from "./chunk-6R5MBXBJ.js";
79
+ import "./chunk-O3VV6IVK.js";
80
+ import "./chunk-EM2WNQS2.js";
81
+ import "./chunk-36XSBPXL.js";
82
+ import "./chunk-UHW5V7HC.js";
83
+ import "./chunk-DVJL77SO.js";
84
+ import "./chunk-KMF54VH3.js";
85
+ import "./chunk-SER7RRAE.js";
86
+ import "./chunk-GH5ZR6JP.js";
87
+ import "./chunk-TK2BMCBZ.js";
88
+ import "./chunk-CTTI7G3T.js";
89
+ import "./chunk-ZZFWWYLX.js";
90
+ import "./chunk-GD55RTIW.js";
91
+ import {
92
+ resolvePackageRoot
93
+ } from "./chunk-E3LEPLQ2.js";
94
+ import {
95
+ init_esm_shims
96
+ } from "./chunk-ECBHH7LU.js";
97
+
98
+ // src/tools/context/index.ts
99
+ init_esm_shims();
100
+ import { readdirSync as readdirSync2 } from "node:fs";
101
+ import path from "node:path";
102
+
103
+ // src/tools/context/docs-engine.ts
104
+ init_esm_shims();
105
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
106
+ import { basename, join, relative, resolve } from "node:path";
107
+ var DEFAULT_LIMIT = 5;
108
+ var MAX_LIMIT = 12;
109
+ var SNIPPET_MAX = 360;
110
+ var SNIPPET_CONTEXT_LINES = 2;
111
+ var BODY_K1 = 1.2;
112
+ var BODY_B = 0.75;
113
+ var HEADING_WEIGHT = 3.5;
114
+ var TITLE_WEIGHT = 2;
115
+ var PHRASE_BODY_BOOST = 3;
116
+ var PHRASE_HEADING_BOOST = 7;
117
+ var COVERAGE_BOOST = 4;
118
+ var EXPANDED_TERM_WEIGHT = 0.45;
119
+ var STOP_WORDS = /* @__PURE__ */ new Set([
120
+ "a",
121
+ "an",
122
+ "and",
123
+ "are",
124
+ "as",
125
+ "at",
126
+ "be",
127
+ "by",
128
+ "can",
129
+ "for",
130
+ "from",
131
+ "how",
132
+ "in",
133
+ "into",
134
+ "is",
135
+ "it",
136
+ "of",
137
+ "on",
138
+ "or",
139
+ "that",
140
+ "the",
141
+ "this",
142
+ "to",
143
+ "what",
144
+ "when",
145
+ "where",
146
+ "with"
147
+ ]);
148
+ var VOCABULARY_ALIASES = [
149
+ {
150
+ triggers: ["approval", "confirm", "confirmation", "deny", "permission", "permissions", "prompt"],
151
+ expansions: ["autonomy", "ask", "deny", "safety", "policy", "full-auto", "read-only"]
152
+ },
153
+ {
154
+ triggers: ["agent", "agents", "dispatch", "fleet", "worker", "workers", "run"],
155
+ expansions: ["agent", "dispatch", "fleet", "profile", "worker", "receipt", "run"]
156
+ },
157
+ {
158
+ triggers: ["model", "models", "provider", "runtime", "target", "targets", "endpoint"],
159
+ expansions: ["catalog", "model", "probe", "provider", "runtime", "target", "wireModels"]
160
+ },
161
+ {
162
+ triggers: ["auth", "credential", "credentials", "login", "oauth", "subscription"],
163
+ expansions: ["auth", "credential", "login", "oauth", "target", "runtime"]
164
+ },
165
+ {
166
+ triggers: ["memory", "evidence", "receipt", "receipts", "audit", "accountability", "provenance"],
167
+ expansions: ["accountability", "evidence", "findings", "memory", "receipt", "run", "audit"]
168
+ },
169
+ {
170
+ triggers: ["validate", "validated", "validation", "verify", "verified", "test", "tests", "rigor"],
171
+ expansions: ["validation", "verify", "evidence", "rigor", "finish", "contract", "check"]
172
+ },
173
+ {
174
+ triggers: ["bash", "command", "commands", "shell", "terminal", "tool", "tools"],
175
+ expansions: ["bash", "command", "tool", "registry", "safety", "result", "cap"]
176
+ },
177
+ {
178
+ triggers: ["context", "compact", "compaction", "token", "tokens", "cache", "prompt"],
179
+ expansions: ["context", "compaction", "prompt", "token", "cache", "window"]
180
+ },
181
+ {
182
+ triggers: ["hook", "hooks", "middleware", "component", "components", "budget"],
183
+ expansions: ["middleware", "hook", "effect", "component", "budget", "registration"]
184
+ },
185
+ {
186
+ triggers: ["install", "upgrade", "uninstall", "doctor", "lifecycle", "reset", "paths"],
187
+ expansions: ["install", "lifecycle", "doctor", "reset", "state", "config", "paths"]
188
+ },
189
+ {
190
+ triggers: ["skill", "skills", "marketplace"],
191
+ expansions: ["skill", "skills", "marketplace", "discovery", "context"]
192
+ },
193
+ {
194
+ triggers: ["docs", "documentation", "manual", "self"],
195
+ expansions: ["documentation", "docs", "context", "blueprint", "guide"]
196
+ }
197
+ ];
198
+ var cachedIndex = null;
199
+ function normalizeText(text) {
200
+ return text.toLowerCase().replace(/[`'"’]/g, "").replace(/[^a-z0-9]+/g, " ").replace(/\s+/g, " ").trim();
201
+ }
202
+ function rawTokens(text) {
203
+ return normalizeText(text).split(" ").filter(Boolean);
204
+ }
205
+ function stemToken(token) {
206
+ if (token.length <= 3) return token;
207
+ if (token.endsWith("ies") && token.length > 4) return `${token.slice(0, -3)}y`;
208
+ if (token.endsWith("ing") && token.length > 5) return token.slice(0, -3);
209
+ if (token.endsWith("ed") && token.length > 4) return token.slice(0, -2);
210
+ if (token.endsWith("es") && token.length > 4) return token.slice(0, -2);
211
+ if (token.endsWith("s") && token.length > 4) return token.slice(0, -1);
212
+ return token;
213
+ }
214
+ function tokenize(text, options = {}) {
215
+ const tokens = rawTokens(text).map(stemToken);
216
+ return options.keepStopWords ? tokens : tokens.filter((token) => !STOP_WORDS.has(token));
217
+ }
218
+ function countTerms(tokens) {
219
+ const counts = /* @__PURE__ */ new Map();
220
+ for (const token of tokens) counts.set(token, (counts.get(token) ?? 0) + 1);
221
+ return counts;
222
+ }
223
+ function unique(items) {
224
+ return [...new Set(items)];
225
+ }
226
+ function slugify(heading) {
227
+ return normalizeText(heading).replace(/\s+/g, "-") || "section";
228
+ }
229
+ function titleFromFile(name) {
230
+ return basename(name, ".md").split(/[-_]+/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
231
+ }
232
+ function parseSections(file, markdown) {
233
+ const lines = markdown.split(/\r?\n/);
234
+ const sections = [];
235
+ let title = titleFromFile(file);
236
+ let heading = "(overview)";
237
+ let level = 0;
238
+ let headingLine = 1;
239
+ let bodyStartLine = 1;
240
+ let buffer = [];
241
+ let inFence = false;
242
+ const stack = [];
243
+ const breadcrumbFor = () => {
244
+ const parts = stack.map((entry) => entry.text);
245
+ if (heading === "(overview)") return title;
246
+ return parts.length > 0 ? parts.join(" > ") : heading;
247
+ };
248
+ const flush = (endLine) => {
249
+ const body = buffer.join("\n").trim();
250
+ if (body.length > 0 || heading !== "(overview)") {
251
+ sections.push({
252
+ file,
253
+ title,
254
+ heading,
255
+ breadcrumb: breadcrumbFor(),
256
+ level,
257
+ anchor: heading === "(overview)" ? "" : `#${slugify(heading)}`,
258
+ startLine: headingLine,
259
+ bodyStartLine,
260
+ endLine: Math.max(headingLine, endLine),
261
+ body,
262
+ bodyLines: [...buffer]
263
+ });
264
+ }
265
+ buffer = [];
266
+ };
267
+ for (let i = 0; i < lines.length; i += 1) {
268
+ const line = lines[i] ?? "";
269
+ if (/^\s*(```|~~~)/.test(line)) inFence = !inFence;
270
+ const headingMatch = inFence ? null : /^(#{1,6})\s+(.+?)\s*#*\s*$/.exec(line);
271
+ if (headingMatch) {
272
+ flush(i);
273
+ level = (headingMatch[1] ?? "").length;
274
+ heading = (headingMatch[2] ?? "").trim();
275
+ if (level === 1) title = heading;
276
+ while (stack.length > 0 && (stack[stack.length - 1]?.level ?? 0) >= level) stack.pop();
277
+ stack.push({ level, text: heading });
278
+ headingLine = i + 1;
279
+ bodyStartLine = i + 2;
280
+ continue;
281
+ }
282
+ buffer.push(line);
283
+ }
284
+ flush(lines.length);
285
+ return sections;
286
+ }
287
+ function indexSection(section) {
288
+ const headingText = `${section.title} ${section.breadcrumb} ${section.heading}`;
289
+ const bodyTokens = tokenize(section.body);
290
+ const headingTokens = tokenize(headingText);
291
+ const titleTokens = tokenize(section.title);
292
+ const bodyCounts = countTerms(bodyTokens);
293
+ const headingCounts = countTerms(headingTokens);
294
+ const titleCounts = countTerms(titleTokens);
295
+ const terms = /* @__PURE__ */ new Set([...bodyCounts.keys(), ...headingCounts.keys(), ...titleCounts.keys()]);
296
+ return {
297
+ ...section,
298
+ bodyCounts,
299
+ headingCounts,
300
+ titleCounts,
301
+ bodyLength: Math.max(1, bodyTokens.length),
302
+ terms,
303
+ normalizedBody: normalizeText(section.body),
304
+ normalizedHeading: normalizeText(headingText)
305
+ };
306
+ }
307
+ function candidateDocFiles(root) {
308
+ const docsDir = join(root, "docs");
309
+ const htmlDir = join(docsDir, "html");
310
+ const files = [];
311
+ const walk = (dir) => {
312
+ let entries;
313
+ try {
314
+ entries = readdirSync(dir, { withFileTypes: true });
315
+ } catch {
316
+ return;
317
+ }
318
+ for (const entry of entries.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)) {
319
+ const absolute = join(dir, entry.name);
320
+ if (entry.isDirectory()) {
321
+ if (absolute !== htmlDir) walk(absolute);
322
+ continue;
323
+ }
324
+ if (entry.isFile() && entry.name.toLowerCase().endsWith(".md")) {
325
+ files.push(relative(root, absolute).replaceAll("\\", "/"));
326
+ }
327
+ }
328
+ };
329
+ walk(docsDir);
330
+ for (const name of ["README.md", "CHANGELOG.md", "CLIO-CODER.md"]) {
331
+ if (existsSync(join(root, name))) files.push(name);
332
+ }
333
+ return files;
334
+ }
335
+ function buildDocumentFrequency(sections) {
336
+ const df = /* @__PURE__ */ new Map();
337
+ for (const section of sections) {
338
+ for (const term of section.terms) df.set(term, (df.get(term) ?? 0) + 1);
339
+ }
340
+ return df;
341
+ }
342
+ function loadDocsIndex() {
343
+ let root;
344
+ try {
345
+ const override = process.env.CLIO_CODER_PACKAGE_ROOT?.trim();
346
+ if (override) {
347
+ root = resolve(override);
348
+ } else {
349
+ root = resolvePackageRoot();
350
+ }
351
+ } catch (err) {
352
+ return { ok: false, message: err instanceof Error ? err.message : String(err) };
353
+ }
354
+ const docsDir = join(root, "docs");
355
+ if (cachedIndex && cachedIndex.dir === docsDir) return { ok: true, index: cachedIndex };
356
+ const files = candidateDocFiles(root);
357
+ if (files.length === 0) return { ok: false, message: `bundled docs directory not found at ${docsDir}` };
358
+ const sections = [];
359
+ const indexedFiles = [];
360
+ let docCount = 0;
361
+ for (const file of files) {
362
+ let raw;
363
+ try {
364
+ raw = readFileSync(join(root, file), "utf8");
365
+ } catch {
366
+ continue;
367
+ }
368
+ docCount += 1;
369
+ indexedFiles.push(file);
370
+ for (const section of parseSections(file, raw)) sections.push(indexSection(section));
371
+ }
372
+ if (sections.length === 0) return { ok: false, message: `no markdown sections found under ${docsDir}` };
373
+ const totalLength = sections.reduce((sum, section) => sum + section.bodyLength, 0);
374
+ cachedIndex = {
375
+ dir: docsDir,
376
+ files: indexedFiles,
377
+ sections,
378
+ docCount,
379
+ avgBodyLength: totalLength / sections.length,
380
+ documentFrequency: buildDocumentFrequency(sections)
381
+ };
382
+ return { ok: true, index: cachedIndex };
383
+ }
384
+ function makeQueryPlan(query) {
385
+ const originalTokens = unique(tokenize(query));
386
+ const originalSet = new Set(originalTokens);
387
+ const expanded = [];
388
+ for (const rule of VOCABULARY_ALIASES) {
389
+ const triggerTokens = rule.triggers.flatMap((trigger) => tokenize(trigger));
390
+ if (!triggerTokens.some((token) => originalSet.has(token))) continue;
391
+ expanded.push(...rule.expansions.flatMap((term) => tokenize(term)));
392
+ }
393
+ const expandedTerms = unique(expanded).filter((term) => !originalSet.has(term));
394
+ const weightedTerms = [
395
+ ...originalTokens.map((term) => ({ term, source: "query", weight: 1 })),
396
+ ...expandedTerms.map((term) => ({ term, source: "alias", weight: EXPANDED_TERM_WEIGHT }))
397
+ ];
398
+ const normalizedQuery = normalizeText(query);
399
+ const phraseCandidates = [
400
+ normalizedQuery,
401
+ ...rawTokens(query).slice(0, -1).map((token, index, tokens) => `${token} ${tokens[index + 1] ?? ""}`.trim())
402
+ ];
403
+ const phrases = unique(phraseCandidates.filter((phrase) => phrase.includes(" ") && phrase.length >= 5));
404
+ return { query, originalTokens, weightedTerms, expandedTerms, phrases };
405
+ }
406
+ function idf(index, term) {
407
+ const df = index.documentFrequency.get(term) ?? 0;
408
+ return Math.log(1 + (index.sections.length - df + 0.5) / (df + 0.5));
409
+ }
410
+ function bm25(count, sectionLength, avgLength) {
411
+ if (count <= 0) return 0;
412
+ return count * (BODY_K1 + 1) / (count + BODY_K1 * (1 - BODY_B + BODY_B * (sectionLength / avgLength)));
413
+ }
414
+ function phraseSignals(section, phrases) {
415
+ let score = 0;
416
+ const signals = [];
417
+ for (const phrase of phrases) {
418
+ if (section.normalizedHeading.includes(phrase)) {
419
+ score += PHRASE_HEADING_BOOST;
420
+ signals.push(`heading phrase: ${phrase}`);
421
+ }
422
+ if (section.normalizedBody.includes(phrase)) {
423
+ score += PHRASE_BODY_BOOST;
424
+ signals.push(`body phrase: ${phrase}`);
425
+ }
426
+ }
427
+ return { score, signals };
428
+ }
429
+ function scoreSection(index, section, plan) {
430
+ let score = 0;
431
+ const matchedTerms = [];
432
+ const signals = [];
433
+ let originalHits = 0;
434
+ for (const weighted of plan.weightedTerms) {
435
+ const bodyCount = section.bodyCounts.get(weighted.term) ?? 0;
436
+ const headingCount = section.headingCounts.get(weighted.term) ?? 0;
437
+ const titleCount = section.titleCounts.get(weighted.term) ?? 0;
438
+ if (bodyCount + headingCount + titleCount === 0) continue;
439
+ const termIdf = idf(index, weighted.term);
440
+ const bodyScore = termIdf * bm25(bodyCount, section.bodyLength, index.avgBodyLength);
441
+ const headingScore = headingCount > 0 ? termIdf * HEADING_WEIGHT : 0;
442
+ const titleScore = titleCount > 0 ? termIdf * TITLE_WEIGHT : 0;
443
+ score += weighted.weight * (bodyScore + headingScore + titleScore);
444
+ matchedTerms.push(weighted.term);
445
+ if (weighted.source === "query") originalHits += 1;
446
+ if (headingCount > 0) signals.push(`heading: ${weighted.term}`);
447
+ else if (titleCount > 0) signals.push(`title: ${weighted.term}`);
448
+ }
449
+ const phrases = phraseSignals(section, plan.phrases);
450
+ score += phrases.score;
451
+ signals.push(...phrases.signals);
452
+ const coverage = plan.originalTokens.length === 0 ? 0 : originalHits / plan.originalTokens.length;
453
+ score += coverage * COVERAGE_BOOST;
454
+ if (score <= 0) return null;
455
+ return {
456
+ section,
457
+ score,
458
+ matchedTerms: unique(matchedTerms).slice(0, 12),
459
+ signals: unique(signals).slice(0, 6),
460
+ coverage
461
+ };
462
+ }
463
+ function cleanSnippet(text) {
464
+ return text.replace(/^\s{0,3}#{1,6}\s+/gm, "").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/\s+/g, " ").trim();
465
+ }
466
+ function snippetFor(section, plan) {
467
+ const needles = unique([...plan.phrases, ...plan.originalTokens, ...plan.expandedTerms.slice(0, 8)]).filter(
468
+ (needle) => needle.length > 0
469
+ );
470
+ let hitLine = -1;
471
+ let bestNeedleCount = 0;
472
+ for (let i = 0; i < section.bodyLines.length; i += 1) {
473
+ const normalized = normalizeText(section.bodyLines[i] ?? "");
474
+ let needleCount = 0;
475
+ for (const needle of needles) {
476
+ if (normalized.includes(needle)) needleCount += 1;
477
+ }
478
+ if (needleCount > bestNeedleCount) {
479
+ bestNeedleCount = needleCount;
480
+ hitLine = i;
481
+ }
482
+ }
483
+ if (hitLine < 0) hitLine = section.bodyLines.findIndex((line) => line.trim().length > 0);
484
+ if (hitLine < 0) {
485
+ return {
486
+ text: section.heading === "(overview)" ? section.title : section.heading,
487
+ startLine: section.startLine,
488
+ endLine: section.startLine
489
+ };
490
+ }
491
+ const from = Math.max(0, hitLine - SNIPPET_CONTEXT_LINES);
492
+ const to = Math.min(section.bodyLines.length - 1, hitLine + SNIPPET_CONTEXT_LINES);
493
+ let snippet = cleanSnippet(section.bodyLines.slice(from, to + 1).join(" "));
494
+ if (snippet.length > SNIPPET_MAX) snippet = `${snippet.slice(0, SNIPPET_MAX - 3).trimEnd()}...`;
495
+ return {
496
+ text: snippet,
497
+ startLine: section.bodyStartLine + from,
498
+ endLine: section.bodyStartLine + to
499
+ };
500
+ }
501
+ function clampDocsLimit(value) {
502
+ if (typeof value === "number" && Number.isFinite(value) && value > 0) return Math.min(Math.floor(value), MAX_LIMIT);
503
+ return DEFAULT_LIMIT;
504
+ }
505
+ function resultPayload(index, plan, scored) {
506
+ const results = scored.map((entry, i) => {
507
+ const snippet = snippetFor(entry.section, plan);
508
+ return {
509
+ rank: i + 1,
510
+ file: entry.section.file,
511
+ heading: entry.section.heading,
512
+ breadcrumb: entry.section.breadcrumb,
513
+ anchor: entry.section.anchor,
514
+ lines: { start: entry.section.startLine, end: entry.section.endLine },
515
+ snippetLines: { start: snippet.startLine, end: snippet.endLine },
516
+ snippet: snippet.text,
517
+ score: Number(entry.score.toFixed(3)),
518
+ coverage: Number(entry.coverage.toFixed(2)),
519
+ matchedTerms: entry.matchedTerms,
520
+ signals: entry.signals
521
+ };
522
+ });
523
+ return {
524
+ version: 2,
525
+ query: plan.query,
526
+ corpus: {
527
+ docs: index.docCount,
528
+ sections: index.sections.length,
529
+ files: index.files,
530
+ excludes: ["docs/html/**"]
531
+ },
532
+ terms: {
533
+ query: plan.originalTokens,
534
+ expanded: plan.expandedTerms,
535
+ phrases: plan.phrases
536
+ },
537
+ resultCount: results.length,
538
+ results,
539
+ followUp: results.length > 0 ? "Cited files are Clio's bundled docs: read them from the installed documentation path named in your prompt, never by searching the workspace for them. For more depth, run another context scope=docs query with more specific terms." : "Try Clio vocabulary such as target, autonomy, dispatch, evidence, middleware, context, validation, install, or model catalog."
540
+ };
541
+ }
542
+ function listDocsCorpus() {
543
+ const loaded = loadDocsIndex();
544
+ if (!loaded.ok) return { ok: false, message: loaded.message };
545
+ const index = loaded.index;
546
+ const payload = {
547
+ version: 2,
548
+ corpus: {
549
+ docs: index.docCount,
550
+ sections: index.sections.length,
551
+ files: index.files,
552
+ excludes: ["docs/html/**"]
553
+ },
554
+ followUp: "Pass query=<terms> to search these bundled docs; they ship with Clio and are not workspace files. Try Clio vocabulary such as target, autonomy, dispatch, evidence, middleware, context, validation, install, or model catalog."
555
+ };
556
+ return { ok: true, payload, fileCount: index.files.length };
557
+ }
558
+ function searchDocs(query, limitArg) {
559
+ const plan = makeQueryPlan(query);
560
+ if (plan.originalTokens.length === 0) return { ok: false, message: "query has no searchable terms" };
561
+ const loaded = loadDocsIndex();
562
+ if (!loaded.ok) return { ok: false, message: loaded.message };
563
+ const limit = clampDocsLimit(limitArg);
564
+ const ranked = loaded.index.sections.map((section) => scoreSection(loaded.index, section, plan)).filter((entry) => entry !== null).sort(
565
+ (a, b) => b.score - a.score || b.coverage - a.coverage || a.section.file.localeCompare(b.section.file) || a.section.startLine - b.section.startLine || a.section.heading.localeCompare(b.section.heading)
566
+ );
567
+ const shown = ranked.slice(0, limit);
568
+ const next = shown.length === 0 ? `query=${plan.expandedTerms[0] ?? "overview"}` : null;
569
+ const payload = {
570
+ ...resultPayload(loaded.index, plan, shown),
571
+ omitted: ranked.length - shown.length,
572
+ ...next !== null ? { next } : {}
573
+ };
574
+ return { ok: true, payload, resultCount: shown.length, rankedTotal: ranked.length, next };
575
+ }
576
+
577
+ // src/tools/context/index.ts
578
+ var DEFAULT_TREE_ENTRIES = 50;
579
+ function cwdFromDeps(deps) {
580
+ return deps?.getCwd?.() ?? process.cwd();
581
+ }
582
+ function buildResourceTree(baseDir, maxEntries) {
583
+ const out = [];
584
+ const walk = (dir) => {
585
+ if (out.length >= maxEntries) return;
586
+ let entries;
587
+ try {
588
+ entries = readdirSync2(dir, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name));
589
+ } catch {
590
+ return;
591
+ }
592
+ for (const entry of entries) {
593
+ if (out.length >= maxEntries) return;
594
+ if (entry.name.startsWith(".") || entry.name === "node_modules") continue;
595
+ const full = path.join(dir, entry.name);
596
+ const rel = path.relative(baseDir, full).split(path.sep).join("/");
597
+ if (entry.isDirectory()) {
598
+ out.push(`${rel}/`);
599
+ walk(full);
600
+ } else if (entry.isFile()) {
601
+ out.push(rel);
602
+ }
603
+ }
604
+ };
605
+ walk(baseDir);
606
+ return out;
607
+ }
608
+ function skillSourceOrigin(skill) {
609
+ return skill.sourceInfo.source ?? `${skill.source}-${skill.scope}`;
610
+ }
611
+ function skillExecutionFrame(skill, workspaceRoot) {
612
+ return [
613
+ "How to read this skill:",
614
+ `- Workspace root: ${workspaceRoot}. Run every command and resolve every repository path there. ${skill.baseDir} holds only this skill's own resource files; it is never the working directory.`,
615
+ "- This skill may name tools, subagents, or commands from another harness. Use Clio's equivalent from your own tool list; if there is no equivalent, say so and continue without that step. Never invent one, and never substitute repeated calls to a different agent for an agent the skill named.",
616
+ "- The skill describes a workflow. Your safety policy, permissions, and tool surface still bind it.",
617
+ ""
618
+ ];
619
+ }
620
+ function renderSkillBody(skill, tree) {
621
+ const sourceOrigin = skillSourceOrigin(skill);
622
+ const lines = [
623
+ `<skill name="${skill.name}" scope="${skill.scope}" source="${skill.source}" origin="${sourceOrigin}" hash="${skill.hash}">`,
624
+ `path: ${skill.filePath}`,
625
+ `base_dir: ${skill.baseDir}`,
626
+ `source_origin: ${sourceOrigin}`,
627
+ `disable_model_invocation: ${skill.disableModelInvocation}`
628
+ ];
629
+ if (skill.allowedTools) lines.push(`allowed_tools: ${skill.allowedTools.join(", ")}`);
630
+ if (skill.disallowedTools) lines.push(`disallowed_tools: ${skill.disallowedTools.join(", ")}`);
631
+ if (skill.diagnostics.length > 0) {
632
+ lines.push(`diagnostics: ${skill.diagnostics.map((d) => d.message).join("; ")}`);
633
+ }
634
+ const metadataKeys = Object.keys(skill.metadata);
635
+ if (metadataKeys.length > 0) lines.push(`metadata: ${metadataKeys.join(", ")}`);
636
+ if (tree) {
637
+ lines.push("resources:");
638
+ for (const entry of tree) lines.push(` ${entry}`);
639
+ }
640
+ lines.push("", skill.content, "</skill>");
641
+ return lines.join("\n");
642
+ }
643
+ function policyIsRecipeBound(policy) {
644
+ return policy.requests.length > 0 && policy.requests.every((request) => request.source === "recipe");
645
+ }
646
+ var NO_PENDING_SKILL_DENIAL = `context: no pending skill request is active this turn; only the operator can activate a skill, so do not retry this load. If a listed skill matches the task, open your reply with the line \`${SKILL_SUGGESTION_ANCHOR}\` and continue the task without it; only the operator can run it. Otherwise continue without skills.`;
647
+ function pendingSkillPolicyError(name, options) {
648
+ const policy = options?.pendingSkillPolicy;
649
+ if (!policy) {
650
+ return NO_PENDING_SKILL_DENIAL;
651
+ }
652
+ const recipeBound = policyIsRecipeBound(policy);
653
+ if (policy.modelActivation === true && !recipeBound) {
654
+ if (!policy.loadedSkillNames.has(name)) return null;
655
+ const window = policy.carriedSurface === true ? "in this session" : "this turn";
656
+ return `context: skill ${name} already loaded ${window}; continue with the loaded workflow and call ask_user if an interview/choice is needed.`;
657
+ }
658
+ const allowed = [...new Set(policy.allowedSkillNames.map((entry) => entry.trim()).filter(Boolean))];
659
+ if (allowed.length === 0) {
660
+ return NO_PENDING_SKILL_DENIAL;
661
+ }
662
+ if (!allowed.includes(name)) {
663
+ if (recipeBound) return `context: this agent run may load only its declared skill(s): ${allowed.join(", ")}.`;
664
+ if (policy.carriedSurface === true) return NO_PENDING_SKILL_DENIAL;
665
+ return `context: this turn has pending skill request(s): ${allowed.join(", ")}. Load only those before doing anything else.`;
666
+ }
667
+ if (policy.loadedSkillNames.has(name)) {
668
+ if (recipeBound) return `context: skill ${name} is already loaded in this run; continue with its workflow.`;
669
+ const window = policy.carriedSurface === true ? "in this session" : "this turn";
670
+ return `context: pending skill ${name} already loaded ${window}; continue with the loaded workflow and call ask_user if an interview/choice is needed.`;
671
+ }
672
+ return null;
673
+ }
674
+ function pendingSkillRequestFor(name, options) {
675
+ return options?.pendingSkillPolicy?.requests.find((request) => request.name === name) ?? null;
676
+ }
677
+ function operatorRequestedManualSkill(skill, request) {
678
+ return skill.trusted && skill.disableModelInvocation && request?.installed === true && (request.source === "slash-command" || request.source === "selector");
679
+ }
680
+ function renderPendingSkillTask(name, options) {
681
+ const request = pendingSkillRequestFor(name, options);
682
+ if (!request) return [];
683
+ if (request.source === "recipe") return [];
684
+ const task = request.args.trim();
685
+ const lines = [
686
+ "Pending skill request",
687
+ `name: ${request.name}`,
688
+ `source: ${request.source}`,
689
+ `task: ${task.length > 0 ? task : "(none supplied)"}`
690
+ ];
691
+ if (task.length > 0) {
692
+ lines.push(
693
+ "",
694
+ "Treat task as the user's starting subject for this skill workflow. Do not ask what the subject is again; ask_user only for missing follow-up decisions."
695
+ );
696
+ }
697
+ lines.push("");
698
+ return lines;
699
+ }
700
+ function marketplaceRowsFor(deps, installed, options) {
701
+ if (deps.skillMarketplace === false) return [];
702
+ if (deps.getSkillLoaderOptions?.().disableDiscovery === true) return [];
703
+ const policy = options?.pendingSkillPolicy;
704
+ if (policy && policyIsRecipeBound(policy)) return [];
705
+ const installedNames = new Set(installed.map((skill) => skill.name));
706
+ try {
707
+ return discoverMarketplaceSkills({ cwd: cwdFromDeps(deps) }).skills.filter(
708
+ (entry) => !installedNames.has(entry.name)
709
+ );
710
+ } catch {
711
+ return [];
712
+ }
713
+ }
714
+ function renderSkillsList(skills, marketplace, marketplaceOffered, modelActivation) {
715
+ if (skills.length === 0 && marketplace.length === 0) {
716
+ return marketplaceOffered ? "No skills are installed and no marketplace is configured." : "No skills are installed.";
717
+ }
718
+ const lines = ["Available skills.", ""];
719
+ if (skills.length > 0) {
720
+ lines.push("Installed:");
721
+ for (const skill of skills) {
722
+ lines.push(`- ${skill.name} (${skill.scope}): ${skill.description}`);
723
+ }
724
+ } else {
725
+ lines.push("Installed: none.");
726
+ }
727
+ if (marketplace.length > 0) {
728
+ lines.push("", "Marketplace (not installed; /skill <name> offers to install):");
729
+ for (const entry of marketplace) {
730
+ const category = entry.category ? ` [${entry.category}]` : "";
731
+ lines.push(`- ${entry.name}${category}: ${entry.description}`);
732
+ }
733
+ }
734
+ lines.push(
735
+ "",
736
+ modelActivation ? `If one skill above matches the current task, load it now with context(scope="skills", name="<name>") and continue in the same turn; at this autonomy level you activate installed skills yourself and do not wait for the operator. Marketplace rows below are not installed and still need the operator. If none match, do not mention skills.` : `If one skill above matches the current task, begin your reply with the line \`${SKILL_SUGGESTION_ANCHOR}\` (a comma-separated sequence, in order, when several compose), then continue the task in the same turn without it; only the operator can run it. If none match, do not mention skills.`
737
+ );
738
+ if (marketplace.length > 0) {
739
+ lines.push(
740
+ `When no installed skill serves the task but a marketplace skill above genuinely does, you may instead ask the operator with ask_user (mode=single_question, header "Install skill") whether to install it, offering exactly: "${SKILL_INSTALL_OFFER_OPTION_PROJECT}", "${SKILL_INSTALL_OFFER_OPTION_USER}", "${SKILL_INSTALL_OFFER_OPTION_NOT_NOW}", "${SKILL_INSTALL_OFFER_OPTION_NEVER}". The harness handles the answer and any install; never install or load a skill yourself.`
741
+ );
742
+ }
743
+ return lines.join("\n");
744
+ }
745
+ function runWorkspaceScope(deps, reservation, options) {
746
+ const workspace = deps.workspace;
747
+ if (!workspace?.hasSession()) {
748
+ return { kind: "error", message: "context: workspace scope requires a bound session; none is active here" };
749
+ }
750
+ let snap = workspace.getSnapshot();
751
+ if (!snap) {
752
+ snap = workspace.probeWorkspace();
753
+ workspace.saveSnapshot(snap);
754
+ }
755
+ const payload = withSkillsPointer(deps, snap);
756
+ return finalizeObservation({
757
+ tool: ToolNames.Context,
758
+ unit: "results",
759
+ format: "json",
760
+ output: JSON.stringify(payload, null, 2),
761
+ shownCount: 1,
762
+ totalCount: 1,
763
+ truncated: false,
764
+ reservation,
765
+ ...options ? { options } : {}
766
+ });
767
+ }
768
+ function withSkillsPointer(deps, snap) {
769
+ let installed = 0;
770
+ let installable = 0;
771
+ try {
772
+ const list = loadSkills({ cwd: cwdFromDeps(deps), ...deps.getSkillLoaderOptions?.() ?? {} });
773
+ const visible = modelVisibleSkills(list.items);
774
+ installed = visible.length;
775
+ installable = marketplaceRowsFor(deps, visible, void 0).length;
776
+ } catch {
777
+ return { ...snap };
778
+ }
779
+ if (installed === 0 && installable === 0) return { ...snap };
780
+ return {
781
+ ...snap,
782
+ skills: `Skills: ${installed} installed, ${installable} installable from the marketplace. If one matches this task, or the operator names a skill, list them with context(scope="skills") and suggest /skill <name> to the operator; load only on operator request.`
783
+ };
784
+ }
785
+ function runDocsScope(args, reservation, options) {
786
+ const query = typeof args.query === "string" ? args.query.trim() : "";
787
+ if (query.length === 0) {
788
+ const corpus = listDocsCorpus();
789
+ if (!corpus.ok) return { kind: "error", message: `context: ${corpus.message}` };
790
+ return finalizeObservation({
791
+ tool: ToolNames.Context,
792
+ unit: "entries",
793
+ format: "json",
794
+ output: JSON.stringify(corpus.payload),
795
+ shownCount: corpus.fileCount,
796
+ totalCount: corpus.fileCount,
797
+ truncated: false,
798
+ reservation,
799
+ ...options ? { options } : {}
800
+ });
801
+ }
802
+ const outcome = searchDocs(query, args.limit);
803
+ if (!outcome.ok) return { kind: "error", message: `context: ${outcome.message}` };
804
+ return finalizeObservation({
805
+ tool: ToolNames.Context,
806
+ unit: "sections",
807
+ format: "json",
808
+ output: JSON.stringify(outcome.payload),
809
+ shownCount: outcome.resultCount,
810
+ totalCount: outcome.rankedTotal,
811
+ truncated: outcome.resultCount < outcome.rankedTotal,
812
+ ...outcome.next !== null ? { next: outcome.next } : {},
813
+ reservation,
814
+ ...options ? { options } : {}
815
+ });
816
+ }
817
+ function runSkillsScope(deps, args, reservation, options) {
818
+ const name = typeof args.name === "string" ? args.name.trim() : "";
819
+ if (name.length === 0) {
820
+ const list2 = loadSkills({ cwd: cwdFromDeps(deps), ...deps.getSkillLoaderOptions?.() ?? {} });
821
+ const visible2 = modelVisibleSkills(list2.items);
822
+ const marketplace = marketplaceRowsFor(deps, list2.items, options);
823
+ const rendered = renderSkillsList(
824
+ visible2,
825
+ marketplace,
826
+ deps.skillMarketplace !== false,
827
+ options?.pendingSkillPolicy?.modelActivation === true
828
+ );
829
+ const truncation2 = truncateHead(rendered, { maxBytes: reservation.callCapBytes, maxLines: Number.MAX_SAFE_INTEGER });
830
+ const total = visible2.length + marketplace.length;
831
+ return finalizeObservation({
832
+ tool: ToolNames.Context,
833
+ unit: "entries",
834
+ output: truncation2.content,
835
+ ...truncation2.truncated ? { fullOutput: rendered } : {},
836
+ shownCount: total,
837
+ totalCount: total,
838
+ truncated: truncation2.truncated,
839
+ details: {
840
+ skills: visible2.map((skill2) => ({ name: skill2.name, scope: skill2.scope })),
841
+ marketplace: marketplace.map((entry) => ({
842
+ name: entry.name,
843
+ ...entry.category ? { category: entry.category } : {}
844
+ }))
845
+ },
846
+ reservation,
847
+ ...options ? { options } : {}
848
+ });
849
+ }
850
+ const policyError = pendingSkillPolicyError(name, options);
851
+ if (policyError) return { kind: "error", message: policyError };
852
+ const list = loadSkills({ cwd: cwdFromDeps(deps), ...deps.getSkillLoaderOptions?.() ?? {} });
853
+ const visible = modelVisibleSkills(list.items);
854
+ const pendingRequest = pendingSkillRequestFor(name, options);
855
+ const skill = visible.find((item) => item.name === name) ?? list.items.find((item) => item.name === name && operatorRequestedManualSkill(item, pendingRequest));
856
+ if (!skill) {
857
+ const unavailable = list.items.find((item) => item.name === name);
858
+ if (unavailable) {
859
+ return {
860
+ kind: "error",
861
+ message: unavailable.trusted ? `context: skill "${name}" requires explicit operator activation with /skill ${name}; it disables model invocation. Do not retry this load.` : `context: skill "${name}" was discovered in an untrusted ${unavailable.source}/${unavailable.scope} source and cannot be activated. Open /library to inspect its source and trust or install a reviewed native package. Do not retry this load.`
862
+ };
863
+ }
864
+ const installable = marketplaceRowsFor(deps, list.items, options).some((entry) => entry.name === name);
865
+ if (installable) {
866
+ return {
867
+ kind: "error",
868
+ message: `context: skill "${name}" is not installed; it is available in the marketplace. Ask the operator to run /skill ${name}, which offers to install it, and wait. Do not retry this load.`
869
+ };
870
+ }
871
+ const available = visible.map((item) => item.name).join(", ");
872
+ const suffix = available.length > 0 ? ` Available skills: ${available}.` : " No skills are currently available.";
873
+ return { kind: "error", message: `context: unknown skill "${name}".${suffix}` };
874
+ }
875
+ const includeTree = args.include_tree === true;
876
+ const tree = includeTree ? buildResourceTree(skill.baseDir, DEFAULT_TREE_ENTRIES) : null;
877
+ const pendingTask = pendingRequest?.args.trim() ?? "";
878
+ const driftReport = checkSkillDrift(skill, cwdFromDeps(deps));
879
+ const drift = driftReport?.verdict ?? null;
880
+ const driftWarning = driftReport?.verdict === "mismatch" ? `WARNING skill_drift: '${skill.name}' content (sha256 ${skill.hash.slice(0, 12)}\u2026) no longer matches the hash recorded for it ${driftReport.authority === "pinned-manifest" ? "in the audited skill catalog" : "when it was installed on this machine"} (expected ${driftReport.expected.slice(0, 12)}\u2026); the installed skill drifted from the content it claims to be.` : null;
881
+ const body = [
882
+ ...driftWarning !== null ? [driftWarning] : [],
883
+ ...renderPendingSkillTask(name, options),
884
+ ...skillExecutionFrame(skill, cwdFromDeps(deps)),
885
+ renderSkillBody(skill, tree)
886
+ ].join("\n");
887
+ const pendingPolicy = options?.pendingSkillPolicy;
888
+ if (pendingPolicy) {
889
+ pendingPolicy.loadedSkillNames.add(name);
890
+ pendingPolicy.loadedSkillPolicies.set(name, {
891
+ ...skill.allowedTools ? { allowedTools: skill.allowedTools } : {},
892
+ ...skill.disallowedTools ? { disallowedTools: skill.disallowedTools } : {}
893
+ });
894
+ }
895
+ const truncation = truncateHead(body, { maxBytes: reservation.callCapBytes, maxLines: Number.MAX_SAFE_INTEGER });
896
+ return finalizeObservation({
897
+ tool: ToolNames.Context,
898
+ unit: "sections",
899
+ output: truncation.content,
900
+ ...truncation.truncated ? { fullOutput: body } : {},
901
+ shownCount: 1,
902
+ totalCount: 1,
903
+ truncated: truncation.truncated,
904
+ details: {
905
+ name: skill.name,
906
+ description: skill.description,
907
+ ...pendingTask.length > 0 ? { pendingTask } : {},
908
+ path: skill.filePath,
909
+ baseDir: skill.baseDir,
910
+ hash: skill.hash,
911
+ source: skill.source,
912
+ sourceOrigin: skillSourceOrigin(skill),
913
+ sourceInfo: skill.sourceInfo,
914
+ scope: skill.scope,
915
+ disableModelInvocation: skill.disableModelInvocation,
916
+ ...skill.allowedTools ? { allowedTools: skill.allowedTools } : {},
917
+ ...skill.disallowedTools ? { disallowedTools: skill.disallowedTools } : {},
918
+ diagnostics: skill.diagnostics.map((d) => d.message),
919
+ metadata: skill.metadata,
920
+ ...skill.provenance ? { provenance: skill.provenance } : {},
921
+ ...drift !== null ? { drift } : {},
922
+ ...tree ? { tree } : {}
923
+ },
924
+ reservation,
925
+ ...options ? { options } : {}
926
+ });
927
+ }
928
+ function runRecallScope(deps, args, reservation, options) {
929
+ if (deps.workerRecall) {
930
+ const result2 = deps.workerRecall(args);
931
+ if ("error" in result2) return { kind: "error", message: `context: ${result2.error}` };
932
+ const truncated = truncateHead(result2.body, {
933
+ maxBytes: reservation.callCapBytes,
934
+ maxLines: Number.MAX_SAFE_INTEGER
935
+ });
936
+ return finalizeObservation({
937
+ tool: ToolNames.Context,
938
+ unit: "results",
939
+ output: truncated.content,
940
+ ...truncated.truncated ? { fullOutput: result2.body } : {},
941
+ shownCount: result2.shown,
942
+ totalCount: result2.total,
943
+ truncated: truncated.truncated || result2.nextOffset !== void 0,
944
+ details: { workerRecall: { ref: args.ref ?? null, nextOffset: result2.nextOffset ?? null } },
945
+ reservation,
946
+ ...options ? { options } : {}
947
+ });
948
+ }
949
+ const session = deps.session;
950
+ if (!session?.hasSession()) {
951
+ return { kind: "error", message: "context: recall scope requires a bound session; none is active here" };
952
+ }
953
+ const ref = typeof args.ref === "string" ? args.ref.trim() : "";
954
+ const entries = session.readEntries();
955
+ const leaf = session.activeLeafTurnId();
956
+ const view = foldWorkingSet(entries, leaf);
957
+ if (args.ref === void 0) {
958
+ const listing = recallableRefListing(entries, view, {
959
+ ...leaf === void 0 ? {} : { activeLeafTurnId: leaf },
960
+ ...typeof args.query === "string" ? { query: args.query } : {},
961
+ ...typeof args.limit === "number" ? { limit: args.limit } : {},
962
+ ...typeof args.offset === "number" ? { offset: args.offset } : {}
963
+ });
964
+ const output = [
965
+ ...listing.refs,
966
+ listing.nextOffset === void 0 ? "End of matching recallable refs." : `More matches: repeat this query with offset=${listing.nextOffset}.`,
967
+ 'Recall an exact persisted body with context(scope="recall", ref="<turnId>").'
968
+ ].join("\n");
969
+ const truncation2 = truncateHead(output, { maxBytes: reservation.callCapBytes, maxLines: Number.MAX_SAFE_INTEGER });
970
+ return finalizeObservation({
971
+ tool: ToolNames.Context,
972
+ unit: "results",
973
+ output: truncation2.content,
974
+ ...truncation2.truncated ? { fullOutput: output } : {},
975
+ shownCount: listing.refs.length,
976
+ totalCount: listing.total,
977
+ truncated: truncation2.truncated || listing.remaining > 0,
978
+ details: { recallDiscovery: listing },
979
+ reservation,
980
+ ...options ? { options } : {}
981
+ });
982
+ }
983
+ const resolved = resolveRecall(entries, view, ref, leaf);
984
+ if (!resolved.ok)
985
+ return { kind: "error", message: `context: ${recallErrorMessage(resolved.error, entries, view, leaf)}` };
986
+ const { result } = resolved;
987
+ const fields = buildRecallFields(result, {
988
+ trigger: "tool",
989
+ ...options?.toolCallId ? { toolCallId: options.toolCallId } : {}
990
+ });
991
+ const parentTurnId = recallParentTurnId(entries, leaf);
992
+ let recorded;
993
+ try {
994
+ recorded = session.appendEntry({ ...fields, parentTurnId });
995
+ } catch (err) {
996
+ return {
997
+ kind: "error",
998
+ message: `context: recall of ${result.ref.entry} could not be recorded: ${err instanceof Error ? err.message : String(err)}`
999
+ };
1000
+ }
1001
+ session.onRecalled?.({ ref: result.ref.entry, trigger: "tool", tokensReadmitted: result.tokens, at: Date.now() });
1002
+ const evictedState = view.evicted.get(result.ref.entry);
1003
+ const truncation = truncateHead(result.body, {
1004
+ maxBytes: reservation.callCapBytes,
1005
+ maxLines: Number.MAX_SAFE_INTEGER
1006
+ });
1007
+ return finalizeObservation({
1008
+ tool: ToolNames.Context,
1009
+ unit: "results",
1010
+ output: truncation.content,
1011
+ ...truncation.truncated ? { fullOutput: result.body } : {},
1012
+ shownCount: 1,
1013
+ totalCount: 1,
1014
+ truncated: truncation.truncated,
1015
+ details: {
1016
+ recall: {
1017
+ ref: result.ref.entry,
1018
+ state: result.state,
1019
+ tokensReadmitted: result.tokens,
1020
+ recallTurnId: recorded.turnId,
1021
+ ...evictedState ? { reason: evictedState.reason, evictedAtTurnId: evictedState.evictedAtTurnId } : {},
1022
+ ...result.offloadPath !== void 0 ? { offloadPath: result.offloadPath } : {}
1023
+ }
1024
+ },
1025
+ reservation,
1026
+ ...options ? { options } : {}
1027
+ });
1028
+ }
1029
+ function createContextTool(deps = {}) {
1030
+ return {
1031
+ ...contextToolSurface,
1032
+ async run(args, options) {
1033
+ const scope = typeof args.scope === "string" ? args.scope : "";
1034
+ if (scope !== "workspace" && scope !== "docs" && scope !== "skills" && scope !== "library" && scope !== "recall") {
1035
+ return {
1036
+ kind: "error",
1037
+ message: `context: scope must be workspace, docs, skills, library, or recall; got '${scope}'`
1038
+ };
1039
+ }
1040
+ const selfCap = scope === "docs" ? OBSERVE_SELF_CAPS.contextDocs : scope === "skills" ? OBSERVE_SELF_CAPS.contextSkills : scope === "library" ? OBSERVE_SELF_CAPS.contextLibrary : OBSERVE_SELF_CAPS.contextWorkspace;
1041
+ const reservation = reserveObservation(selfCap, options);
1042
+ if (reservation.exhausted) {
1043
+ return observationBudgetExhausted({
1044
+ tool: ToolNames.Context,
1045
+ unit: scope === "docs" ? "sections" : scope === "skills" || scope === "library" ? "entries" : "results",
1046
+ reservation,
1047
+ subject: `scope=${scope}`,
1048
+ hint: "Continue in a follow-up turn."
1049
+ });
1050
+ }
1051
+ if (scope === "workspace") return runWorkspaceScope(deps, reservation, options);
1052
+ if (scope === "docs") return runDocsScope(args, reservation, options);
1053
+ if (scope === "recall") return runRecallScope(deps, args, reservation, options);
1054
+ if (scope === "library") {
1055
+ const { runLibraryScope } = await import("./library-LF7DLU6S.js");
1056
+ return runLibraryScope(
1057
+ {
1058
+ getCwd: () => cwdFromDeps(deps),
1059
+ ...deps.skillMarketplace !== void 0 ? { skillMarketplace: deps.skillMarketplace } : {},
1060
+ ...deps.getSkillLoaderOptions ? { skillLoaderOptions: deps.getSkillLoaderOptions() } : {}
1061
+ },
1062
+ args,
1063
+ reservation,
1064
+ options
1065
+ );
1066
+ }
1067
+ return runSkillsScope(deps, args, reservation, options);
1068
+ }
1069
+ };
1070
+ }
1071
+ export {
1072
+ createContextTool
1073
+ };
1074
+ //# sourceMappingURL=context-EZZPT2ZV.js.map