@iowarp/clio-coder 0.4.9 → 0.5.0

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 (1172) hide show
  1. package/.claude-plugin/marketplace.json +11 -3
  2. package/CHANGELOG.md +153 -0
  3. package/CODE_OF_CONDUCT.md +10 -0
  4. package/CONTRIBUTING.md +208 -382
  5. package/NOTICE +8 -2
  6. package/README.md +199 -418
  7. package/ROADMAP.md +82 -0
  8. package/SECURITY.md +14 -11
  9. package/dist/acp-KS7ARGV6.js +132 -0
  10. package/dist/agents-YOGJ2YEJ.js +163 -0
  11. package/dist/assets/codewiki.json +1 -1
  12. package/dist/auth-CEDCO6O6.js +557 -0
  13. package/dist/background-YWTBPSQU.js +39 -0
  14. package/dist/builtins-GDYO4RTR.js +23 -0
  15. package/dist/chunk-27YTM2CV.js +175 -0
  16. package/dist/chunk-2AF6YC7Q.js +75 -0
  17. package/dist/chunk-2DTIWSAW.js +381 -0
  18. package/dist/chunk-2EMLKSCX.js +262 -0
  19. package/dist/chunk-2OJ3YZQP.js +665 -0
  20. package/dist/chunk-2VLYHHFT.js +35 -0
  21. package/dist/chunk-2WVPJF3Z.js +204 -0
  22. package/dist/chunk-33OASOS6.js +176 -0
  23. package/dist/chunk-3BD2LXYJ.js +19 -0
  24. package/dist/chunk-3JHUFKG7.js +30 -0
  25. package/dist/chunk-3JLTRPN7.js +711 -0
  26. package/dist/chunk-3LT34CAM.js +2796 -0
  27. package/dist/chunk-3O5JWP4L.js +1670 -0
  28. package/dist/chunk-3UW3KU4A.js +21 -0
  29. package/dist/chunk-4A6YRGV4.js +569 -0
  30. package/dist/chunk-4D2BRCZ3.js +67 -0
  31. package/dist/chunk-4SYHGVDE.js +668 -0
  32. package/dist/chunk-4VDHLCF5.js +66 -0
  33. package/dist/chunk-4WOOTKFD.js +637 -0
  34. package/dist/chunk-4WV4PI66.js +80 -0
  35. package/dist/chunk-53OXPRI6.js +195 -0
  36. package/dist/chunk-55RMDDFM.js +1347 -0
  37. package/dist/chunk-56XP4FJU.js +2025 -0
  38. package/dist/chunk-5B3RTYAK.js +123 -0
  39. package/dist/chunk-5CD243WE.js +45 -0
  40. package/dist/chunk-5JQR5B4D.js +709 -0
  41. package/dist/chunk-5KQEUIWM.js +597 -0
  42. package/dist/chunk-5LP5FNNR.js +915 -0
  43. package/dist/chunk-62UK7AGW.js +9344 -0
  44. package/dist/chunk-6CTHLZFB.js +563 -0
  45. package/dist/chunk-6EJYVCTN.js +23 -0
  46. package/dist/chunk-6OWUM2NC.js +12289 -0
  47. package/dist/chunk-6RJMYYIE.js +1023 -0
  48. package/dist/chunk-6W75D37F.js +643 -0
  49. package/dist/chunk-733ZBT5P.js +1721 -0
  50. package/dist/chunk-77DCC6JZ.js +3710 -0
  51. package/dist/chunk-7QXCO3AF.js +156 -0
  52. package/dist/chunk-7RET77VB.js +481 -0
  53. package/dist/chunk-A4MVRV4C.js +65 -0
  54. package/dist/chunk-ALJWT6O6.js +93 -0
  55. package/dist/chunk-AVSR2HKI.js +232 -0
  56. package/dist/chunk-B7GY6QER.js +42 -0
  57. package/dist/chunk-BFOSV5EZ.js +178 -0
  58. package/dist/chunk-BGOIM7NB.js +103 -0
  59. package/dist/chunk-BJH6WFIB.js +372 -0
  60. package/dist/chunk-BOBCCDJ6.js +1533 -0
  61. package/dist/chunk-BRCOSE7O.js +117 -0
  62. package/dist/chunk-BYFHHCFV.js +601 -0
  63. package/dist/chunk-C2CPOIH2.js +83 -0
  64. package/dist/chunk-C7AQTPCE.js +694 -0
  65. package/dist/chunk-CBAQPTDU.js +165 -0
  66. package/dist/chunk-CDQ2UC6W.js +125 -0
  67. package/dist/chunk-CN6SW5DC.js +177 -0
  68. package/dist/chunk-CRHPCPZP.js +132 -0
  69. package/dist/chunk-CTFPFW3H.js +44 -0
  70. package/dist/chunk-D3KWFOUT.js +103 -0
  71. package/dist/chunk-D65E25JG.js +185 -0
  72. package/dist/chunk-DCGHJQ2U.js +236 -0
  73. package/dist/chunk-DE2LU267.js +106 -0
  74. package/dist/chunk-DF6PI6GN.js +97 -0
  75. package/dist/chunk-DGC6X6XR.js +53 -0
  76. package/dist/chunk-DOUISWEE.js +526 -0
  77. package/dist/chunk-DR3TAEUA.js +188 -0
  78. package/dist/chunk-DVTBERFY.js +33 -0
  79. package/dist/chunk-DXSETN72.js +1051 -0
  80. package/dist/chunk-DZLR4UEH.js +128 -0
  81. package/dist/chunk-E6IPKW2E.js +77 -0
  82. package/dist/chunk-EG4ARXPC.js +139 -0
  83. package/dist/chunk-EKV4UBCM.js +652 -0
  84. package/dist/chunk-EOJPDNUP.js +1325 -0
  85. package/dist/chunk-EX57VVWW.js +4157 -0
  86. package/dist/chunk-EYTLV3W3.js +5937 -0
  87. package/dist/chunk-EZD2BXGP.js +475 -0
  88. package/dist/chunk-EZDCA34W.js +314 -0
  89. package/dist/chunk-FD2I4KBR.js +33 -0
  90. package/dist/chunk-FD3IAHQM.js +27 -0
  91. package/dist/chunk-FFYTC2KQ.js +416 -0
  92. package/dist/chunk-FGSQHUCK.js +110 -0
  93. package/dist/chunk-GCQFN7YI.js +32 -0
  94. package/dist/chunk-GGPF6LLE.js +38 -0
  95. package/dist/chunk-GGWI3OVM.js +215 -0
  96. package/dist/chunk-GLIQT7SU.js +172 -0
  97. package/dist/chunk-GN7QBEEI.js +95 -0
  98. package/dist/chunk-GRHOXDKB.js +1104 -0
  99. package/dist/chunk-HMN2C6YL.js +54 -0
  100. package/dist/chunk-HOEDA42N.js +310 -0
  101. package/dist/chunk-HOYZUKG7.js +192 -0
  102. package/dist/chunk-HQVN7G4F.js +1021 -0
  103. package/dist/chunk-HSQQFDB3.js +519 -0
  104. package/dist/chunk-I4ELN5BX.js +47 -0
  105. package/dist/chunk-I4Y4WKZR.js +386 -0
  106. package/dist/chunk-IFPDAD7R.js +797 -0
  107. package/dist/chunk-IN7DGBVS.js +582 -0
  108. package/dist/chunk-ISHUS7HC.js +396 -0
  109. package/dist/chunk-JPXLJSGR.js +191 -0
  110. package/dist/chunk-JQCLXSFI.js +69 -0
  111. package/dist/chunk-KBUTSJSR.js +61 -0
  112. package/dist/chunk-KW5HXKLJ.js +56 -0
  113. package/dist/chunk-L4APUGCT.js +139 -0
  114. package/dist/chunk-L7G7K4I2.js +505 -0
  115. package/dist/chunk-LAR7DX5E.js +1840 -0
  116. package/dist/chunk-LAVUQX3B.js +462 -0
  117. package/dist/chunk-LJRBX7QR.js +116 -0
  118. package/dist/chunk-LNOXCGN2.js +1864 -0
  119. package/dist/chunk-LTWH2ACR.js +23002 -0
  120. package/dist/chunk-LYJJ6546.js +661 -0
  121. package/dist/chunk-M2IPMWCN.js +457 -0
  122. package/dist/chunk-MGLRTOCK.js +101 -0
  123. package/dist/chunk-MZF5IKZT.js +160 -0
  124. package/dist/chunk-N24R6KWS.js +386 -0
  125. package/dist/chunk-NASYVWDB.js +604 -0
  126. package/dist/chunk-NBXFPI7U.js +195 -0
  127. package/dist/chunk-NDPF2N2L.js +400 -0
  128. package/dist/chunk-NFSK2VNU.js +446 -0
  129. package/dist/chunk-NG3QQSXY.js +43 -0
  130. package/dist/chunk-NOCSM22Y.js +63 -0
  131. package/dist/chunk-NVPXXW2H.js +1143 -0
  132. package/dist/chunk-O63U2I6I.js +30 -0
  133. package/dist/chunk-OJXOA6YU.js +98 -0
  134. package/dist/chunk-OPD7GL6F.js +1196 -0
  135. package/dist/chunk-OQ2EOAHA.js +14399 -0
  136. package/dist/chunk-OV62D6KO.js +688 -0
  137. package/dist/chunk-OZ76TLGU.js +740 -0
  138. package/dist/chunk-P4GNZPXO.js +1156 -0
  139. package/dist/chunk-PS6JAWJZ.js +78 -0
  140. package/dist/chunk-PXRCXGLK.js +1865 -0
  141. package/dist/chunk-QDUUOZ3S.js +108 -0
  142. package/dist/chunk-QG6I2T5E.js +1416 -0
  143. package/dist/chunk-QHSBROEW.js +308 -0
  144. package/dist/chunk-QNUQ7K7D.js +46 -0
  145. package/dist/chunk-QZTTRSJE.js +333 -0
  146. package/dist/chunk-R2UUNSNQ.js +1605 -0
  147. package/dist/chunk-R7FGRZNF.js +1794 -0
  148. package/dist/chunk-RNDCROSG.js +199 -0
  149. package/dist/chunk-S36CXHO2.js +302 -0
  150. package/dist/chunk-SJGS3GDI.js +575 -0
  151. package/dist/chunk-SQZHXUB3.js +510 -0
  152. package/dist/chunk-SUTLW6ND.js +686 -0
  153. package/dist/chunk-SYF7FVBL.js +179 -0
  154. package/dist/chunk-T2MDZES3.js +1577 -0
  155. package/dist/chunk-T33IYTZM.js +1146 -0
  156. package/dist/chunk-TDGYTWM6.js +49 -0
  157. package/dist/chunk-TGL5FZVD.js +132 -0
  158. package/dist/chunk-TGWZXJ7L.js +1205 -0
  159. package/dist/chunk-TKDRT2DF.js +114 -0
  160. package/dist/chunk-TV2EBCSQ.js +152 -0
  161. package/dist/chunk-U26XXPJS.js +367 -0
  162. package/dist/chunk-U5QU5ZOD.js +419 -0
  163. package/dist/chunk-U6YTUVOX.js +1011 -0
  164. package/dist/chunk-UCINIRHW.js +188 -0
  165. package/dist/chunk-UJD5MPP6.js +52 -0
  166. package/dist/chunk-URCXX7WJ.js +146 -0
  167. package/dist/chunk-UX2L5CUD.js +898 -0
  168. package/dist/chunk-UZVYEF57.js +114 -0
  169. package/dist/chunk-V35KZDUZ.js +218 -0
  170. package/dist/chunk-VESL6DQY.js +1058 -0
  171. package/dist/chunk-VKHLUZNO.js +986 -0
  172. package/dist/chunk-VOYUCAQF.js +584 -0
  173. package/dist/chunk-VYRQHORQ.js +414 -0
  174. package/dist/chunk-W53XSRQE.js +245 -0
  175. package/dist/chunk-X4CEFOSG.js +226 -0
  176. package/dist/chunk-XDHUDE5K.js +380 -0
  177. package/dist/chunk-XISLDHEL.js +1290 -0
  178. package/dist/chunk-XM34YQ2Y.js +169 -0
  179. package/dist/chunk-XMDBTYCH.js +661 -0
  180. package/dist/chunk-XS2QPZJE.js +449 -0
  181. package/dist/chunk-YBUECLAF.js +618 -0
  182. package/dist/chunk-YQ6XEFVK.js +332 -0
  183. package/dist/chunk-YYLCPDCC.js +990 -0
  184. package/dist/chunk-Z4GLJ6J4.js +1035 -0
  185. package/dist/chunk-ZARZ4POR.js +210 -0
  186. package/dist/chunk-ZJPORZTC.js +119 -0
  187. package/dist/chunk-ZNUZ3EXD.js +243 -0
  188. package/dist/chunk-ZPST2KQO.js +49 -0
  189. package/dist/chunk-ZR5YA6ZF.js +512 -0
  190. package/dist/chunk-ZU4JPCPR.js +319 -0
  191. package/dist/chunk-ZUKUCZYZ.js +39 -0
  192. package/dist/cli/index.js +56 -45
  193. package/dist/clio-K2PBVCEM.js +27 -0
  194. package/dist/clio-context-tools-GR4OHFSO.js +145 -0
  195. package/dist/code-nav-4X3OI6DK.js +715 -0
  196. package/dist/codewiki/build-worker.js +4 -4
  197. package/dist/compile-cache-YRB6QRO7.js +18 -0
  198. package/dist/components-RQOJ6NUR.js +675 -0
  199. package/dist/config-Q5J7UBAB.js +291 -0
  200. package/dist/config-XE7XYZLU.js +38 -0
  201. package/dist/config-graph-P3555574.js +175 -0
  202. package/dist/configure-KIJ32ZO6.js +104 -0
  203. package/dist/context-LFBQOSXT.js +344 -0
  204. package/dist/context-NNLBES2Y.js +82 -0
  205. package/dist/context-WBH3KSVR.js +302 -0
  206. package/dist/context-clear-YOHMQ6SQ.js +208 -0
  207. package/dist/context-index-X2N5UAIF.js +120 -0
  208. package/dist/context-map-HOSMGUG2.js +555 -0
  209. package/dist/context-working-set-MRAEVDNV.js +1564 -0
  210. package/dist/data-tool-JJPBGMQJ.js +2986 -0
  211. package/dist/detail-RHJOTGN4.js +139 -0
  212. package/dist/dispatch-runner-NC7PYNIO.js +2477 -0
  213. package/dist/docs-K4GBWRUX.js +342 -0
  214. package/dist/doctor-S5KZ2GTN.js +1138 -0
  215. package/dist/doctor-deep-2EJQSHIZ.js +130 -0
  216. package/dist/domain-loader-MB34FDPD.js +13 -0
  217. package/dist/eval-3D6M36N7.js +5220 -0
  218. package/dist/eval-inventory-SM3HNM47.js +260 -0
  219. package/dist/evals-FO6JEUCN.js +104 -0
  220. package/dist/evidence-6IYN52ET.js +262 -0
  221. package/dist/evidence-JVECPI3F.js +250 -0
  222. package/dist/evidence-XNVPPLVK.js +410 -0
  223. package/dist/evolve-TLPUDJDM.js +634 -0
  224. package/dist/extensions-ROZJ5X3J.js +311 -0
  225. package/dist/fleet-6RJWIOEO.js +284 -0
  226. package/dist/fleet-WKVBF5SZ.js +942 -0
  227. package/dist/fleet-commands-L6WFT7KZ.js +76 -0
  228. package/dist/fleet-decisions-BTQMWU5A.js +55 -0
  229. package/dist/fleet-graph-553DZ67Q.js +141 -0
  230. package/dist/fleet-inspect-236FZPRB.js +329 -0
  231. package/dist/fleet-new-CKUXP3CO.js +48 -0
  232. package/dist/fleet-preflight-NZQHABWO.js +95 -0
  233. package/dist/fleet-validate-7NLAE26R.js +96 -0
  234. package/dist/fleet-verify-E3RO6A5W.js +226 -0
  235. package/dist/fleet-view-KMZQY7YJ.js +144 -0
  236. package/dist/gui/client/assets/abnfDiagram-VCTEODGH-DPBWQwNn.js +1 -0
  237. package/dist/gui/client/assets/architecture-7GRP2DOG-D1w8FrFW.js +1 -0
  238. package/dist/gui/client/assets/architectureDiagram-5GKGNRK7-CVPgKd1-.js +36 -0
  239. package/dist/gui/client/assets/blockDiagram-I7D4REHJ-BLmnqkK5.js +129 -0
  240. package/dist/gui/client/assets/c4Diagram-7LVT6UL2-4AU9cfM7.js +38 -0
  241. package/dist/gui/client/assets/channel-DwFZ0m8S.js +1 -0
  242. package/dist/gui/client/assets/chunk-4HAMMTFA-EOWkKCav.js +62 -0
  243. package/dist/gui/client/assets/chunk-75Z2AOVW-CygeoIMl.js +2 -0
  244. package/dist/gui/client/assets/chunk-DU6HZSFF-s27fViLb.js +125 -0
  245. package/dist/gui/client/assets/chunk-F27PBJKO-BrHvwLsZ.js +1 -0
  246. package/dist/gui/client/assets/chunk-GMAD6QVW-DzPh-7jt.js +72 -0
  247. package/dist/gui/client/assets/chunk-GVQU2GXP-pIaQkIzm.js +1 -0
  248. package/dist/gui/client/assets/chunk-IMKFNOWR-BGJVE_Br.js +231 -0
  249. package/dist/gui/client/assets/chunk-L3NEJ4N5-B3YLuhww.js +1 -0
  250. package/dist/gui/client/assets/chunk-OSK3NFVY-BRj61HHU.js +10 -0
  251. package/dist/gui/client/assets/chunk-P2QGCYS3-Sno90KxP.js +1 -0
  252. package/dist/gui/client/assets/chunk-POPQ4Y6H-Cw8NTbxr.js +1 -0
  253. package/dist/gui/client/assets/chunk-PWAF6VOD-BIhHgz37.js +1 -0
  254. package/dist/gui/client/assets/chunk-SHT3W25Y-Cqv7npBj.js +168 -0
  255. package/dist/gui/client/assets/chunk-SVP7TREG-Hxzl6Dee.js +88 -0
  256. package/dist/gui/client/assets/chunk-TICWLB2K-CIFVyVP2.js +206 -0
  257. package/dist/gui/client/assets/classDiagram-ZZMXUADV-BJbAiI_w.js +1 -0
  258. package/dist/gui/client/assets/classDiagram-v2-VYDZK3BY-BJbAiI_w.js +1 -0
  259. package/dist/gui/client/assets/cynefin-OW5HDTMX-DecLWZ-y.js +1 -0
  260. package/dist/gui/client/assets/cynefinDiagram-5FMLGOSQ-CK-T2N-D.js +62 -0
  261. package/dist/gui/client/assets/dagre-GXQ25YYZ-C0dfg-OS.js +4 -0
  262. package/dist/gui/client/assets/diagram-S7CK7UJ4-EaJukVh-.js +30 -0
  263. package/dist/gui/client/assets/diagram-UQ7AKVKN-xcOucEtP.js +41 -0
  264. package/dist/gui/client/assets/diagram-VSXAHHWV-3AUJACMf.js +3 -0
  265. package/dist/gui/client/assets/diagram-VX7I27RA-TPknLqam.js +24 -0
  266. package/dist/gui/client/assets/diagram-Z3DM3KII-wa1q3YMF.js +24 -0
  267. package/dist/gui/client/assets/ebnfDiagram-PWID7BFC-JBCF2-s7.js +1 -0
  268. package/dist/gui/client/assets/erDiagram-RLTQ6QDP-CmXjXPc4.js +99 -0
  269. package/dist/gui/client/assets/eventmodeling-NTZA5JFV-D_1aJWYl.js +1 -0
  270. package/dist/gui/client/assets/flowDiagram-HODETNUW-BQtZlael.js +1 -0
  271. package/dist/gui/client/assets/framework-Bq-znqwW.js +9 -0
  272. package/dist/gui/client/assets/ganttDiagram-EL5Y4UJY-IPaL_kaa.js +292 -0
  273. package/dist/gui/client/assets/gitGraph-4MIJSDKK-Oy0Q3hoc.js +1 -0
  274. package/dist/gui/client/assets/gitGraphDiagram-WWUBYQGX-jtAuBmbc.js +106 -0
  275. package/dist/gui/client/assets/index-CuFuBEdL.css +1 -0
  276. package/dist/gui/client/assets/index-hMbEIsX0.js +87 -0
  277. package/dist/gui/client/assets/info-A6RAGUB7-UtEs1tv7.js +1 -0
  278. package/dist/gui/client/assets/infoDiagram-27XIBGKW-hlwR1pBW.js +2 -0
  279. package/dist/gui/client/assets/ishikawaDiagram-5VMMS53U-C6vMtfsd.js +70 -0
  280. package/dist/gui/client/assets/journeyDiagram-3NMN7TZE-EAwAl_PS.js +139 -0
  281. package/dist/gui/client/assets/kanban-definition-UXKFOSKX-CQOhRKHW.js +89 -0
  282. package/dist/gui/client/assets/line-DbcwGZTW.js +1 -0
  283. package/dist/gui/client/assets/mermaid-parser.core-C2QfVcHd.js +7 -0
  284. package/dist/gui/client/assets/mermaid.core-N9qUTre1.js +44 -0
  285. package/dist/gui/client/assets/mindmap-definition-YA3MSWOX-BR_FL9gK.js +96 -0
  286. package/dist/gui/client/assets/packet-AYTQ26CC-CbBJ2oAa.js +1 -0
  287. package/dist/gui/client/assets/pegDiagram-XKGWAZYB-BruU0IHM.js +1 -0
  288. package/dist/gui/client/assets/pie-WAS4IAKB-BWdSng4H.js +1 -0
  289. package/dist/gui/client/assets/pieDiagram-E7YTZNPT-CR3ljgdU.js +39 -0
  290. package/dist/gui/client/assets/quadrantDiagram-AXDQQJYC-C-boKslr.js +7 -0
  291. package/dist/gui/client/assets/radar-RG4KPBEZ-CGlOnAKG.js +1 -0
  292. package/dist/gui/client/assets/railroad-74A4TZTK-CDvuAlyC.js +1 -0
  293. package/dist/gui/client/assets/railroad-abnf-HS5TGJTU-CQUA9crC.js +1 -0
  294. package/dist/gui/client/assets/railroad-ebnf-LZEXJU2U-CD857gxq.js +1 -0
  295. package/dist/gui/client/assets/railroad-peg-WCYAUIDC-DUV4k35E.js +1 -0
  296. package/dist/gui/client/assets/railroadDiagram-O6MQD6OU-DMR4LXmA.js +1 -0
  297. package/dist/gui/client/assets/requirementDiagram-BXWQKSXE-DVltaF6c.js +84 -0
  298. package/dist/gui/client/assets/sankeyDiagram-P5KCCOFB-CHdNz472.js +40 -0
  299. package/dist/gui/client/assets/sequenceDiagram-WJ2MYXX4-DaMafIty.js +162 -0
  300. package/dist/gui/client/assets/stateDiagram-D77RDMKH-CEbBHqn3.js +1 -0
  301. package/dist/gui/client/assets/stateDiagram-v2-MP3YSRHH-B3JgDdFg.js +1 -0
  302. package/dist/gui/client/assets/swimlanes-42K2YHIH-BlPHndnJ.js +1 -0
  303. package/dist/gui/client/assets/swimlanesDiagram-VR7AAH4N-BPabHwsZ.js +8 -0
  304. package/dist/gui/client/assets/timeline-definition-24CTP7MA-E4Y1lPBI.js +120 -0
  305. package/dist/gui/client/assets/treeView-Q6P3EWNA-DrY0uhTN.js +1 -0
  306. package/dist/gui/client/assets/treemap-WGGIJYW6-CVotnLHf.js +1 -0
  307. package/dist/gui/client/assets/vennDiagram-4TSXK5OY-DJNrLIOF.js +34 -0
  308. package/dist/gui/client/assets/wardley-WFR3VGLG-ClOpAp5S.js +1 -0
  309. package/dist/gui/client/assets/wardleyDiagram-VM6X3IG4-qhMoKOXc.js +78 -0
  310. package/dist/gui/client/assets/xychartDiagram-S5SC5T6Z-CTuXoo9R.js +7 -0
  311. package/dist/gui/client/index.html +6 -0
  312. package/dist/gui/ops-worker.js +167 -0
  313. package/dist/gui/reads-worker.js +473 -0
  314. package/dist/gui/server.js +9780 -0
  315. package/dist/gui-QJS7XQMV.js +16 -0
  316. package/dist/init-DV5B6HQG.js +354 -0
  317. package/dist/install-6C45YXFP.js +19 -0
  318. package/dist/install-O7NSRU2W.js +13 -0
  319. package/dist/interactive-OXGYZYAS.js +22381 -0
  320. package/dist/interop-J7UOBOSF.js +254 -0
  321. package/dist/inventory-OEGIL6PY.js +144 -0
  322. package/dist/library-B3UPGY4V.js +83 -0
  323. package/dist/library-MXQA5DLT.js +309 -0
  324. package/dist/library-ROZAMUIL.js +496 -0
  325. package/dist/library-import-2LTWOVBD.js +190 -0
  326. package/dist/library-inventory-LJ3XHLWO.js +60 -0
  327. package/dist/library-validation-DARHHUNW.js +46 -0
  328. package/dist/mcp-2GSPYQ54.js +28 -0
  329. package/dist/memory-J3STUUIK.js +537 -0
  330. package/dist/models-Y3GMFJ2V.js +314 -0
  331. package/dist/monitor-LHNH577J.js +811 -0
  332. package/dist/orchestrator-DTAPXULA.js +12117 -0
  333. package/dist/panes-A743ONZ5.js +103 -0
  334. package/dist/panes-CTNO57ZY.js +76 -0
  335. package/dist/paths-3SBYJQDP.js +68 -0
  336. package/dist/preload-OJBMAIXF.js +140 -0
  337. package/dist/providers-CMETPZNS.js +232 -0
  338. package/dist/registry-37T4U6X2.js +15 -0
  339. package/dist/reset-O7EUCYWO.js +346 -0
  340. package/dist/resources-FY6XYFN2.js +189 -0
  341. package/dist/run-H64MEVTA.js +1067 -0
  342. package/dist/run-script-PQ5NRU3X.js +42 -0
  343. package/dist/settings-SNIQNXCW.js +73 -0
  344. package/dist/settings-controls-X6GMCPVG.js +202 -0
  345. package/dist/share-CAFMMQLM.js +299 -0
  346. package/dist/skills-ERKQUC7L.js +114 -0
  347. package/dist/skills-eval-CQ23MYQK.js +1099 -0
  348. package/dist/skills-inventory-TVUYJDVN.js +142 -0
  349. package/dist/slash-commands-ROG3KIFJ.js +107 -0
  350. package/dist/startup-background-KDWCQMWT.js +247 -0
  351. package/dist/steer-KKYXJSH4.js +77 -0
  352. package/dist/support-M3RCUUEL.js +40 -0
  353. package/dist/system-ZDW44ZGX.js +142 -0
  354. package/dist/target-runtimes-PWA22WVW.js +73 -0
  355. package/dist/targets-AJWA6E7Z.js +1207 -0
  356. package/dist/tasks-6L2JJRC5.js +39 -0
  357. package/dist/terminal-lease-YFUSDPAD.js +432 -0
  358. package/dist/tools-5XJUABRD.js +30 -0
  359. package/dist/trace-LA5MVR4Y.js +527 -0
  360. package/dist/tree-sitter-TQW3Y52T.js +4673 -0
  361. package/dist/tui-primitives-IUCVWLH5.js +19 -0
  362. package/dist/uninstall-SAWGGXAB.js +448 -0
  363. package/dist/upgrade-HSNSVTZG.js +300 -0
  364. package/dist/usage-XSILDHKF.js +1083 -0
  365. package/dist/verifiers-ECA5GIHL.js +633 -0
  366. package/dist/verify-R6QQCCEB.js +31 -0
  367. package/dist/version-PLZYB5KW.js +22 -0
  368. package/dist/web-fetch-PVZNMBOB.js +803 -0
  369. package/dist/wiki-generate-RP22WP5K.js +647 -0
  370. package/dist/with-panes-W3PAZPRF.js +629 -0
  371. package/dist/worker/entry.js +324 -284
  372. package/dist/workspace-check-3764ZKC2.js +83 -0
  373. package/docs/README.md +26 -10
  374. package/docs/architecture/acp.md +179 -12
  375. package/docs/architecture/artifact-placement.md +1 -1
  376. package/docs/architecture/capacity-and-scheduling.md +7 -8
  377. package/docs/architecture/context-engine.md +350 -95
  378. package/docs/architecture/model-catalog.md +18 -11
  379. package/docs/architecture/observability.md +1 -1
  380. package/docs/architecture/pi-boundary.md +59 -6
  381. package/docs/architecture/prompt-envelope-and-tools.md +147 -39
  382. package/docs/architecture/provider-adapter-cookbook.md +2 -2
  383. package/docs/architecture/safety-model.md +18 -4
  384. package/docs/architecture/trace-store.md +2 -2
  385. package/docs/architecture/tui-design.md +41 -81
  386. package/docs/architecture/worker-dispatch-mechanics.md +9 -1
  387. package/docs/gui/README.md +69 -0
  388. package/docs/gui/boundary-doctrine.md +104 -0
  389. package/docs/gui/chat-rendering-spec.md +1440 -0
  390. package/docs/gui/cli-surface-routing.md +148 -0
  391. package/docs/gui/delivery-order.md +53 -0
  392. package/docs/gui/event-bus-coverage.md +103 -0
  393. package/docs/gui/inspector-presentation.md +71 -0
  394. package/docs/gui/parity/01-cli-surface.md +74 -0
  395. package/docs/gui/parity/02-slash-and-surfaces.md +110 -0
  396. package/docs/gui/parity/03-domains-and-plan.md +69 -0
  397. package/docs/gui/performance-baseline.md +76 -0
  398. package/docs/gui/settings-write-surface.md +267 -0
  399. package/docs/gui/workflow-coverage.md +64 -0
  400. package/docs/guide/built-in-agents.md +1 -1
  401. package/docs/guide/commands-and-modes.md +256 -99
  402. package/docs/guide/configuration-and-targets.md +485 -124
  403. package/docs/guide/configuration-reference.md +165 -82
  404. package/docs/guide/doctor.md +127 -0
  405. package/docs/guide/environment-variables.md +1 -1
  406. package/docs/guide/exit-codes-and-output.md +3 -1
  407. package/docs/guide/extensions-and-sharing.md +3 -14
  408. package/docs/guide/fleet-dispatch.md +231 -45
  409. package/docs/guide/glossary.md +1 -1
  410. package/docs/guide/installation-and-lifecycle.md +27 -16
  411. package/docs/guide/interop.md +2 -2
  412. package/docs/guide/proactive-memory.md +154 -68
  413. package/docs/guide/resource-library.md +4 -0
  414. package/docs/guide/skills-marketplace.md +8 -4
  415. package/docs/guide/slurm.md +88 -0
  416. package/docs/guide/tool-usage.md +134 -11
  417. package/docs/guide/troubleshooting.md +4 -2
  418. package/docs/process/battletest-2026-09-20-fixes.md +161 -0
  419. package/docs/process/configure-tree-proposal.md +637 -0
  420. package/docs/process/documentation-coverage.md +8 -0
  421. package/docs/process/documentation-guide.md +18 -1
  422. package/docs/process/eval-runner.md +58 -14
  423. package/docs/process/performance-methodology.md +11 -3
  424. package/docs/process/release-cut-checklist.md +29 -3
  425. package/docs/process/tool-audit-v0.4.9.md +3 -0
  426. package/examples/extensions/README.md +1 -3
  427. package/examples/extensions/lab-status/clio-coder-extension.json +1 -1
  428. package/examples/extensions/measurements/clio-coder-extension.json +1 -1
  429. package/library/registry.yaml +30 -5
  430. package/library/skills/git/fix-issue/SKILL.md +2 -1
  431. package/library/skills/git/fix-issue/plugin.json +1 -1
  432. package/library/skills/git/ship/SKILL.md +2 -1
  433. package/library/skills/git/ship/plugin.json +1 -1
  434. package/library/skills/meta/clio-coder-test/SKILL.md +5 -6
  435. package/library/skills/meta/clio-coder-test/evals.md +2 -2
  436. package/library/skills/meta/clio-coder-test/references/test-map.md +2 -2
  437. package/library/skills/registry.yaml +9 -5
  438. package/library/skills/research/slurm-jobs/SKILL.md +110 -0
  439. package/library/skills/research/slurm-jobs/evals.md +39 -0
  440. package/library/skills/research/slurm-jobs/plugin.json +23 -0
  441. package/library/skills/skill-marketplace.json +18 -2
  442. package/package.json +15 -10
  443. package/src/cli/args.ts +59 -0
  444. package/src/cli/argv.ts +7 -0
  445. package/src/cli/clio.ts +9 -1
  446. package/src/cli/configure-controls.ts +136 -0
  447. package/src/cli/configure-onboarding.ts +24 -7
  448. package/src/cli/configure-quick.ts +32 -7
  449. package/src/cli/configure-target.ts +11 -1
  450. package/src/cli/configure.ts +253 -256
  451. package/src/cli/docs-server.ts +290 -0
  452. package/src/cli/docs.ts +60 -15
  453. package/src/cli/doctor-deep.ts +126 -0
  454. package/src/cli/doctor-hpc.ts +122 -0
  455. package/src/cli/doctor-slurm.ts +130 -0
  456. package/src/cli/doctor-task-worktrees.ts +88 -0
  457. package/src/cli/doctor.ts +165 -16
  458. package/src/cli/fleet-verify.ts +3 -2
  459. package/src/cli/gui.ts +111 -0
  460. package/src/cli/index.ts +14 -4
  461. package/src/cli/library.ts +2 -7
  462. package/src/cli/modes/json-stream.ts +4 -2
  463. package/src/cli/modes/print.ts +252 -25
  464. package/src/cli/run.ts +199 -71
  465. package/src/cli/skills.ts +25 -7
  466. package/src/cli/targets.ts +87 -9
  467. package/src/cli/uninstall.ts +28 -8
  468. package/src/cli/usage.ts +2 -1
  469. package/src/cli/workspace-check.ts +71 -0
  470. package/src/core/bash-exec.ts +8 -2
  471. package/src/core/bus-events.ts +32 -3
  472. package/src/core/cache-telemetry.ts +3 -2
  473. package/src/core/compile-cache.ts +11 -1
  474. package/src/core/config.ts +59 -6
  475. package/src/core/defaults.ts +27 -5
  476. package/src/core/diagnostics.ts +25 -0
  477. package/src/core/event-bus.ts +2 -1
  478. package/src/core/gateway-routing.ts +10 -3
  479. package/src/core/git-commit-attribution.ts +2 -1
  480. package/src/core/naming-compat.ts +6 -4
  481. package/src/core/package-root.ts +0 -9
  482. package/src/core/path-canonical.ts +143 -24
  483. package/src/core/residency-target-key.ts +2 -6
  484. package/src/core/run-overrides.ts +1 -1
  485. package/src/core/settings-awareness.ts +108 -0
  486. package/src/core/settings-controls.ts +673 -0
  487. package/src/core/settings-navigation.ts +116 -0
  488. package/src/core/theme-token-hex.ts +19 -9
  489. package/src/core/turn-constraints.ts +52 -0
  490. package/src/domains/agents/builtins/scout.md +7 -17
  491. package/src/domains/agents/catalog.ts +5 -1
  492. package/src/domains/agents/extension.ts +2 -1
  493. package/src/domains/agents/registry.ts +4 -3
  494. package/src/domains/agents/result-contract.ts +132 -1
  495. package/src/domains/config/classify.ts +11 -7
  496. package/src/domains/config/extension.ts +5 -1
  497. package/src/domains/config/keybindings.ts +2 -2
  498. package/src/domains/context/codewiki/coordinator.ts +10 -0
  499. package/src/domains/context/worker/snapshot.ts +6 -3
  500. package/src/domains/dispatch/active-route-planner.ts +2 -0
  501. package/src/domains/dispatch/agent-candidates.ts +5 -1
  502. package/src/domains/dispatch/capability-match.ts +1 -1
  503. package/src/domains/dispatch/contract.ts +28 -0
  504. package/src/domains/dispatch/event-pump.ts +37 -3
  505. package/src/domains/dispatch/extension.ts +391 -48
  506. package/src/domains/dispatch/failure-classification.ts +37 -2
  507. package/src/domains/dispatch/receipt-integrity.ts +3 -0
  508. package/src/domains/dispatch/run-identity.ts +10 -3
  509. package/src/domains/dispatch/target-breaker.ts +163 -0
  510. package/src/domains/dispatch/types.ts +29 -2
  511. package/src/domains/dispatch/worker-model-loads.ts +66 -0
  512. package/src/domains/dispatch/worker-protocol.ts +20 -1
  513. package/src/domains/dispatch/worker-spawn.ts +28 -2
  514. package/src/domains/eval/artifacts/redact.ts +9 -0
  515. package/src/domains/eval/metrics/noop.ts +61 -0
  516. package/src/domains/eval/reports/junit.ts +5 -1
  517. package/src/domains/eval/reports/text.ts +7 -0
  518. package/src/domains/eval/runners/clio-run.ts +19 -8
  519. package/src/domains/eval/runners/external-command.ts +29 -4
  520. package/src/domains/eval/schema/adapter.ts +6 -2
  521. package/src/domains/eval/schema/suite.ts +2 -0
  522. package/src/domains/eval/schema/validate.ts +3 -0
  523. package/src/domains/eval/suites/run.ts +167 -26
  524. package/src/domains/evidence/detail.ts +3 -2
  525. package/src/domains/extensions/operator-runtime.ts +11 -4
  526. package/src/domains/gateway/mcp/client.ts +1 -1
  527. package/src/domains/lifecycle/doctor.ts +42 -26
  528. package/src/domains/lifecycle/migrations/2026-09-18-ollama-runtime-id.ts +38 -0
  529. package/src/domains/lifecycle/migrations/index.ts +2 -0
  530. package/src/domains/middleware/demo-guidance.ts +36 -0
  531. package/src/domains/middleware/dispatch-nudge.ts +1 -1
  532. package/src/domains/middleware/memory-intervention.ts +51 -4
  533. package/src/domains/middleware/runtime.ts +5 -4
  534. package/src/domains/middleware/skills-reminder.ts +29 -52
  535. package/src/domains/middleware/task-nudge.ts +1 -0
  536. package/src/domains/middleware/watchdog.ts +4 -0
  537. package/src/domains/observability/extension.ts +2 -1
  538. package/src/domains/observability/out-of-turn-usage.ts +3 -2
  539. package/src/domains/observability/projection.ts +3 -2
  540. package/src/domains/observability/worker-progress.ts +48 -0
  541. package/src/domains/prompts/compiler.ts +148 -52
  542. package/src/domains/prompts/contract.ts +3 -3
  543. package/src/domains/prompts/demo-guidance.ts +8 -0
  544. package/src/domains/prompts/extension.ts +12 -7
  545. package/src/domains/prompts/fragments/identity/clio.md +2 -1
  546. package/src/domains/prompts/fragments/identity/docs-routing.md +2 -0
  547. package/src/domains/prompts/fragments/identity/self-awareness.md +4 -0
  548. package/src/domains/prompts/fragments/operating/contract.md +16 -7
  549. package/src/domains/prompts/fragments/operating/delegation.md +29 -13
  550. package/src/domains/prompts/fragments/operating/skills.md +18 -10
  551. package/src/domains/prompts/fragments/operating/worker.md +2 -0
  552. package/src/domains/providers/cache-deployment.ts +45 -2
  553. package/src/domains/providers/contract.ts +52 -11
  554. package/src/domains/providers/extension.ts +230 -53
  555. package/src/domains/providers/model-discovery.ts +22 -8
  556. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +5 -7
  557. package/src/domains/providers/plugins.ts +3 -4
  558. package/src/domains/providers/probe/fingerprint.ts +2 -2
  559. package/src/domains/providers/probe/reasoning.ts +9 -16
  560. package/src/domains/providers/probe/tool-call.ts +236 -0
  561. package/src/domains/providers/registry.ts +51 -8
  562. package/src/domains/providers/runtime-resolution.ts +60 -12
  563. package/src/domains/providers/runtimes/boot-manifest.ts +1 -1
  564. package/src/domains/providers/runtimes/builtins.ts +2 -2
  565. package/src/domains/providers/runtimes/common/lmstudio-http.ts +57 -41
  566. package/src/domains/providers/runtimes/common/local-synth.ts +3 -1
  567. package/src/domains/providers/runtimes/common/ollama-model-ids.ts +11 -0
  568. package/src/domains/providers/runtimes/common/probe-helpers.ts +53 -0
  569. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +3 -1
  570. package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +7 -13
  571. package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +7 -17
  572. package/src/domains/providers/runtimes/local-native/llamacpp.ts +1 -0
  573. package/src/domains/providers/runtimes/local-native/ollama.ts +211 -0
  574. package/src/domains/providers/runtimes/protocol/litellm.ts +77 -65
  575. package/src/domains/providers/support.ts +1 -1
  576. package/src/domains/providers/types/local-model-quirks.ts +2 -3
  577. package/src/domains/providers/types/runtime-descriptor.ts +23 -3
  578. package/src/domains/providers/types/target-descriptor.ts +15 -3
  579. package/src/domains/resources/collision.ts +7 -2
  580. package/src/domains/resources/index.ts +1 -0
  581. package/src/domains/resources/library-actions.ts +4 -2
  582. package/src/domains/resources/library-inventory.ts +6 -2
  583. package/src/domains/resources/prompts/loader.ts +20 -7
  584. package/src/domains/resources/skills/availability.ts +56 -0
  585. package/src/domains/resources/skills/loader.ts +20 -9
  586. package/src/domains/safety/action-classifier.ts +282 -31
  587. package/src/domains/safety/audit.ts +2 -1
  588. package/src/domains/safety/autonomy.ts +54 -11
  589. package/src/domains/safety/decision-presentation.ts +17 -4
  590. package/src/domains/safety/finish-contract-registration.ts +25 -1
  591. package/src/domains/safety/finish-contract.ts +20 -5
  592. package/src/domains/safety/path-policy.ts +6 -2
  593. package/src/domains/safety/policy-engine.ts +168 -48
  594. package/src/domains/safety/protected-artifacts.ts +527 -16
  595. package/src/domains/safety/read-scope.ts +120 -0
  596. package/src/domains/safety/skill-authority.ts +52 -16
  597. package/src/domains/scheduling/cluster.ts +14 -3
  598. package/src/domains/scheduling/contract.ts +7 -0
  599. package/src/domains/scheduling/extension.ts +20 -9
  600. package/src/domains/scheduling/local-capacity.ts +160 -0
  601. package/src/domains/session/context-accounting.ts +44 -31
  602. package/src/domains/session/context-ledger.ts +10 -3
  603. package/src/domains/session/entries.ts +4 -0
  604. package/src/domains/session/history.ts +1 -1
  605. package/src/domains/session/prompt-cache.ts +1 -0
  606. package/src/domains/session/prompt-manifest.ts +3 -1
  607. package/src/domains/session/retry.ts +4 -6
  608. package/src/domains/session/task-board.ts +19 -4
  609. package/src/domains/session/tree/preview.ts +3 -2
  610. package/src/engine/acp/commands.ts +653 -0
  611. package/src/engine/acp/server.ts +639 -20
  612. package/src/engine/acp/tool-mediator.ts +30 -7
  613. package/src/engine/acp/types.ts +58 -0
  614. package/src/engine/agent.ts +55 -10
  615. package/src/engine/ai.ts +11 -2
  616. package/src/engine/api-registry.ts +5 -4
  617. package/src/engine/apis/degraded-inference.ts +243 -0
  618. package/src/engine/apis/llamacpp-residency.ts +50 -6
  619. package/src/engine/apis/lmstudio-residency.ts +3 -5
  620. package/src/engine/apis/lmstudio.ts +137 -31
  621. package/src/engine/apis/ollama-http.ts +118 -0
  622. package/src/engine/apis/ollama-native.ts +216 -97
  623. package/src/engine/apis/openai-completions.ts +191 -189
  624. package/src/engine/apis/output-budget.ts +3 -1
  625. package/src/engine/apis/residency-lock.ts +2 -1
  626. package/src/engine/apis/residency.ts +339 -89
  627. package/src/engine/apis/sampling-overrides.ts +23 -2
  628. package/src/engine/apis/types.ts +1 -2
  629. package/src/engine/claude/tool-safety.ts +30 -5
  630. package/src/engine/context.ts +13 -0
  631. package/src/engine/env-api-keys.ts +2 -1
  632. package/src/engine/gemma-channel-filter.ts +3 -2
  633. package/src/engine/instrumented-tui.ts +25 -0
  634. package/src/engine/loop-guard.ts +172 -6
  635. package/src/engine/pi-mono-names.ts +16 -0
  636. package/src/engine/prewarm.ts +44 -15
  637. package/src/engine/provider-payload.ts +52 -14
  638. package/src/engine/session.ts +4 -2
  639. package/src/engine/worker-events.ts +9 -1
  640. package/src/engine/worker-runtime.ts +269 -42
  641. package/src/engine/worker-tools.ts +8 -3
  642. package/src/entry/boot-options.ts +23 -0
  643. package/src/entry/orchestrator.ts +207 -36
  644. package/src/interactive/assistant-generation-timing.ts +52 -0
  645. package/src/interactive/chat-loop-messages.ts +4 -1
  646. package/src/interactive/chat-loop.ts +59 -9
  647. package/src/interactive/chat-panel.ts +10 -1
  648. package/src/interactive/clio-editor.ts +51 -79
  649. package/src/interactive/context-meter.ts +1 -0
  650. package/src/interactive/context-overlay.ts +21 -8
  651. package/src/interactive/cost-overlay.ts +1 -1
  652. package/src/interactive/dispatch-board.ts +39 -8
  653. package/src/interactive/editor-bash.ts +0 -34
  654. package/src/interactive/editor-rails.ts +43 -0
  655. package/src/interactive/editor-submit.ts +34 -2
  656. package/src/interactive/footer/dashboard.ts +67 -38
  657. package/src/interactive/footer/demo-hints.ts +40 -0
  658. package/src/interactive/footer/key-hints.ts +21 -0
  659. package/src/interactive/footer/notifications.ts +1 -1
  660. package/src/interactive/footer/pages.ts +486 -0
  661. package/src/interactive/footer/system-metrics.ts +147 -0
  662. package/src/interactive/footer/widgets.ts +158 -63
  663. package/src/interactive/footer-panel.ts +29 -7
  664. package/src/interactive/interactive-application.ts +109 -21
  665. package/src/interactive/interactive-event-projection.ts +6 -2
  666. package/src/interactive/interactive-presentation.ts +25 -29
  667. package/src/interactive/interactive-slash-runtime.ts +32 -18
  668. package/src/interactive/interactive-subscriptions.ts +25 -5
  669. package/src/interactive/interactive-tickers.ts +21 -5
  670. package/src/interactive/keybinding-manager.ts +9 -0
  671. package/src/interactive/overlay-frame.ts +29 -7
  672. package/src/interactive/overlay-lifecycle.ts +5 -3
  673. package/src/interactive/overlay-model-selectors.ts +4 -0
  674. package/src/interactive/overlay-permission-lifecycle.ts +6 -5
  675. package/src/interactive/overlays/ask-user.ts +103 -110
  676. package/src/interactive/overlays/help-reference.ts +1 -0
  677. package/src/interactive/overlays/message-picker.ts +3 -29
  678. package/src/interactive/overlays/session-selector.ts +3 -2
  679. package/src/interactive/overlays/settings-sections.ts +2 -30
  680. package/src/interactive/overlays/settings.ts +310 -607
  681. package/src/interactive/permission-hint.ts +3 -3
  682. package/src/interactive/permission-overlay.ts +45 -27
  683. package/src/interactive/renderers/doctor-report.ts +43 -0
  684. package/src/interactive/renderers/tool-execution.ts +87 -62
  685. package/src/interactive/renderers/worker-entry.ts +76 -3
  686. package/src/interactive/side-question.ts +3 -1
  687. package/src/interactive/slash-commands.ts +78 -23
  688. package/src/interactive/startup-background.ts +131 -0
  689. package/src/interactive/startup-diagnostics.ts +16 -0
  690. package/src/interactive/status/state-machine.ts +16 -3
  691. package/src/interactive/status/types.ts +2 -0
  692. package/src/interactive/status/verbs.ts +1 -1
  693. package/src/interactive/terminal-lease.ts +26 -22
  694. package/src/interactive/theme/components.ts +1 -1
  695. package/src/interactive/theme/rules.ts +1 -1
  696. package/src/interactive/theme/tokens.ts +16 -10
  697. package/src/interactive/transcript-detail.ts +4 -0
  698. package/src/interactive/turn-context.ts +56 -20
  699. package/src/interactive/turn-middleware.ts +57 -9
  700. package/src/interactive/turn-prewarm.ts +121 -18
  701. package/src/interactive/turn-recovery.ts +10 -8
  702. package/src/interactive/turn-runtime.ts +74 -29
  703. package/src/interactive/turn-state.ts +3 -0
  704. package/src/interactive/welcome-art.ts +36 -0
  705. package/src/interactive/welcome-dashboard.ts +209 -49
  706. package/src/interactive/worker-replay.ts +4 -0
  707. package/src/interactive/worker-stream.ts +17 -2
  708. package/src/tools/agent-tools.ts +22 -1
  709. package/src/tools/builtin-tool-catalog.ts +2 -2
  710. package/src/tools/codewiki/code-nav.ts +1 -1
  711. package/src/tools/codewiki/shared.ts +39 -1
  712. package/src/tools/compete-worktrees.ts +8 -91
  713. package/src/tools/context/docs-engine.ts +44 -12
  714. package/src/tools/context/index.ts +126 -22
  715. package/src/tools/context/library.ts +1 -1
  716. package/src/tools/context/surface.ts +12 -7
  717. package/src/tools/core-bootstrap.ts +3 -0
  718. package/src/tools/dispatch-runner.ts +18 -0
  719. package/src/tools/dispatch-schema.ts +187 -206
  720. package/src/tools/edit.ts +46 -42
  721. package/src/tools/file-mutation-queue.ts +25 -26
  722. package/src/tools/gateway/clio-context-surface.ts +1 -1
  723. package/src/tools/gateway/index.ts +7 -3
  724. package/src/tools/gateway/mcp-capabilities.ts +5 -3
  725. package/src/tools/grep.ts +14 -2
  726. package/src/tools/ls.ts +1 -4
  727. package/src/tools/monitor.ts +14 -1
  728. package/src/tools/observation.ts +1 -3
  729. package/src/tools/path-utils.ts +51 -18
  730. package/src/tools/process-lease.ts +99 -0
  731. package/src/tools/read.ts +1 -1
  732. package/src/tools/registry.ts +71 -9
  733. package/src/tools/task-worktree.ts +296 -17
  734. package/src/tools/tasks.ts +29 -7
  735. package/src/tools/worker-evidence.ts +60 -1
  736. package/src/tools/worktree-root.ts +252 -0
  737. package/src/tools/write.ts +34 -30
  738. package/src/worker/entry.ts +18 -1
  739. package/src/worker/protocol.ts +54 -1
  740. package/src/worker/spec-contract.ts +22 -2
  741. package/dist/acp-ZWZCPS2A.js +0 -130
  742. package/dist/agents-LYSOWZUE.js +0 -150
  743. package/dist/auth-WBQGKWQ5.js +0 -551
  744. package/dist/background-BUMOBAQN.js +0 -37
  745. package/dist/builtins-ODRJOEDI.js +0 -22
  746. package/dist/chunk-2DRRZ57Q.js +0 -571
  747. package/dist/chunk-2JBZYUPY.js +0 -105
  748. package/dist/chunk-2VBWFXYE.js +0 -198
  749. package/dist/chunk-2X2R3UTH.js +0 -1018
  750. package/dist/chunk-32KJPXAM.js +0 -75
  751. package/dist/chunk-37LW32LZ.js +0 -32
  752. package/dist/chunk-3A3CUMKA.js +0 -54
  753. package/dist/chunk-3AND2EFU.js +0 -215
  754. package/dist/chunk-3RDHGNU7.js +0 -647
  755. package/dist/chunk-3SUDBGEI.js +0 -1323
  756. package/dist/chunk-3TQN67I2.js +0 -396
  757. package/dist/chunk-3U4BL2EV.js +0 -103
  758. package/dist/chunk-3UQADNG2.js +0 -302
  759. package/dist/chunk-434LRQ6Z.js +0 -13441
  760. package/dist/chunk-4ATBOFRP.js +0 -7802
  761. package/dist/chunk-4DNL43EZ.js +0 -139
  762. package/dist/chunk-4HFJKRGZ.js +0 -5250
  763. package/dist/chunk-555E2WVV.js +0 -322
  764. package/dist/chunk-5GZICIYO.js +0 -462
  765. package/dist/chunk-5PHVPU4G.js +0 -160
  766. package/dist/chunk-5RTEFNBP.js +0 -197
  767. package/dist/chunk-64XJW7NT.js +0 -380
  768. package/dist/chunk-6TKOFFGE.js +0 -1058
  769. package/dist/chunk-6UJ7RDI7.js +0 -1143
  770. package/dist/chunk-7FBCRWVT.js +0 -1801
  771. package/dist/chunk-7JSOSVLP.js +0 -283
  772. package/dist/chunk-7N3OLLSL.js +0 -637
  773. package/dist/chunk-7QQRPB2E.js +0 -915
  774. package/dist/chunk-A6DULIMH.js +0 -986
  775. package/dist/chunk-AB3QXXBC.js +0 -123
  776. package/dist/chunk-ACCECAH4.js +0 -49
  777. package/dist/chunk-AM6CEP2K.js +0 -2120
  778. package/dist/chunk-AUHVBIDW.js +0 -19
  779. package/dist/chunk-AY4XE6GN.js +0 -665
  780. package/dist/chunk-BBA2TAWV.js +0 -667
  781. package/dist/chunk-BFPHMSK7.js +0 -169
  782. package/dist/chunk-BMNVVKEW.js +0 -604
  783. package/dist/chunk-CKK25WN3.js +0 -72
  784. package/dist/chunk-CTGZCEI6.js +0 -33
  785. package/dist/chunk-DIAJYJYG.js +0 -446
  786. package/dist/chunk-DVNAPPXU.js +0 -27
  787. package/dist/chunk-DXVMLM3Z.js +0 -92
  788. package/dist/chunk-E3LEPLQ2.js +0 -68
  789. package/dist/chunk-EHZRAB4U.js +0 -63
  790. package/dist/chunk-EM2DIQAJ.js +0 -179
  791. package/dist/chunk-EM2WNQS2.js +0 -93
  792. package/dist/chunk-ETF4ROKH.js +0 -595
  793. package/dist/chunk-F2YM3JY4.js +0 -22513
  794. package/dist/chunk-FEBQWHJT.js +0 -1023
  795. package/dist/chunk-FPS4R2RN.js +0 -1975
  796. package/dist/chunk-GD55RTIW.js +0 -33
  797. package/dist/chunk-GJDRMBDI.js +0 -573
  798. package/dist/chunk-GREYLTZ5.js +0 -658
  799. package/dist/chunk-H2WSCZZT.js +0 -238
  800. package/dist/chunk-H6IUCY6Q.js +0 -117
  801. package/dist/chunk-H72DCH3E.js +0 -563
  802. package/dist/chunk-H7TXJR23.js +0 -705
  803. package/dist/chunk-HBJQQTKM.js +0 -40
  804. package/dist/chunk-HCVKSGNZ.js +0 -990
  805. package/dist/chunk-HVCAY2FH.js +0 -67
  806. package/dist/chunk-I47EJPYL.js +0 -1377
  807. package/dist/chunk-IALGWTLO.js +0 -36
  808. package/dist/chunk-IALZJE37.js +0 -1710
  809. package/dist/chunk-IC7JXLOM.js +0 -1577
  810. package/dist/chunk-IOSVTTCD.js +0 -108
  811. package/dist/chunk-IPTPMLA6.js +0 -475
  812. package/dist/chunk-IZZI3SKQ.js +0 -128
  813. package/dist/chunk-JABWPKFY.js +0 -27
  814. package/dist/chunk-JIYWMQZ5.js +0 -175
  815. package/dist/chunk-JKU34ACI.js +0 -693
  816. package/dist/chunk-JOBN2YQQ.js +0 -176
  817. package/dist/chunk-JOL2QRLE.js +0 -152
  818. package/dist/chunk-JTR3VSV3.js +0 -44
  819. package/dist/chunk-JU6MAMRJ.js +0 -362
  820. package/dist/chunk-JURMQWVJ.js +0 -15
  821. package/dist/chunk-K2BLQC5E.js +0 -262
  822. package/dist/chunk-K3XN4LZ4.js +0 -402
  823. package/dist/chunk-KIVFXGBM.js +0 -688
  824. package/dist/chunk-KKRXONXG.js +0 -43
  825. package/dist/chunk-KOAHT3N2.js +0 -395
  826. package/dist/chunk-KP5BPXR3.js +0 -73
  827. package/dist/chunk-KQ6IDQIB.js +0 -39
  828. package/dist/chunk-KRJQG47M.js +0 -1289
  829. package/dist/chunk-KW6OJ7IY.js +0 -221
  830. package/dist/chunk-L3NBWLSN.js +0 -314
  831. package/dist/chunk-L4RUTLRL.js +0 -59
  832. package/dist/chunk-LGTVWPRN.js +0 -47
  833. package/dist/chunk-LSQW6KZO.js +0 -200
  834. package/dist/chunk-LTR5QCLS.js +0 -446
  835. package/dist/chunk-LWJYOHT3.js +0 -165
  836. package/dist/chunk-M6YLF66Z.js +0 -2687
  837. package/dist/chunk-MJ4QEJVT.js +0 -185
  838. package/dist/chunk-MO65K5CH.js +0 -1148
  839. package/dist/chunk-MTOZEQHL.js +0 -637
  840. package/dist/chunk-MZDPF35R.js +0 -45
  841. package/dist/chunk-MZKYVIWW.js +0 -188
  842. package/dist/chunk-NBPA5QM6.js +0 -386
  843. package/dist/chunk-NMBEW4PP.js +0 -688
  844. package/dist/chunk-NPLLK3HO.js +0 -3610
  845. package/dist/chunk-NSYGPIVW.js +0 -39
  846. package/dist/chunk-NXTV5OI5.js +0 -1020
  847. package/dist/chunk-NYDG4QP4.js +0 -689
  848. package/dist/chunk-OA2GDACN.js +0 -146
  849. package/dist/chunk-PJI57EC6.js +0 -236
  850. package/dist/chunk-PJJBUGMR.js +0 -4484
  851. package/dist/chunk-PNJE7JPS.js +0 -50
  852. package/dist/chunk-PP23PZEV.js +0 -1347
  853. package/dist/chunk-PPIFDSBK.js +0 -409
  854. package/dist/chunk-PTFISXQO.js +0 -319
  855. package/dist/chunk-QB33Z5S7.js +0 -1865
  856. package/dist/chunk-QGNII5VC.js +0 -110
  857. package/dist/chunk-QH3ZTUOA.js +0 -113
  858. package/dist/chunk-QI72X67S.js +0 -481
  859. package/dist/chunk-QJMRYTCX.js +0 -56
  860. package/dist/chunk-QKHZZFKH.js +0 -98
  861. package/dist/chunk-RDKX2PME.js +0 -66
  862. package/dist/chunk-RL7LJYN4.js +0 -66
  863. package/dist/chunk-RPMNIFRY.js +0 -65
  864. package/dist/chunk-RQROVOV3.js +0 -670
  865. package/dist/chunk-S34A7BSP.js +0 -97
  866. package/dist/chunk-SJETVJHX.js +0 -119
  867. package/dist/chunk-SJMNU4ZS.js +0 -634
  868. package/dist/chunk-SL2RDHKO.js +0 -19
  869. package/dist/chunk-SLLG2G44.js +0 -85
  870. package/dist/chunk-SQAZN2V3.js +0 -2744
  871. package/dist/chunk-SQBT46OF.js +0 -814
  872. package/dist/chunk-SRCEQKQS.js +0 -165
  873. package/dist/chunk-TCUOGIL2.js +0 -52
  874. package/dist/chunk-TIWPKCVO.js +0 -42
  875. package/dist/chunk-U44YYLVV.js +0 -1529
  876. package/dist/chunk-UIU7MGZ3.js +0 -486
  877. package/dist/chunk-USBBEKHW.js +0 -177
  878. package/dist/chunk-VHKTOLEW.js +0 -1416
  879. package/dist/chunk-VPWGADBG.js +0 -3151
  880. package/dist/chunk-VQD7NH7Z.js +0 -356
  881. package/dist/chunk-VWFCAK34.js +0 -697
  882. package/dist/chunk-W5RM7YAH.js +0 -78
  883. package/dist/chunk-W72LLZAV.js +0 -243
  884. package/dist/chunk-WGRDABW7.js +0 -207
  885. package/dist/chunk-WWRV5RJI.js +0 -165
  886. package/dist/chunk-XCUDZQLX.js +0 -195
  887. package/dist/chunk-XFLSL7BT.js +0 -386
  888. package/dist/chunk-XJZEDCNT.js +0 -391
  889. package/dist/chunk-XLLEL3K7.js +0 -709
  890. package/dist/chunk-XNZWWDC3.js +0 -686
  891. package/dist/chunk-XRECG65F.js +0 -308
  892. package/dist/chunk-XTQ7MEJG.js +0 -457
  893. package/dist/chunk-XW2UZICE.js +0 -372
  894. package/dist/chunk-Y3M2T5RO.js +0 -891
  895. package/dist/chunk-YGDMBK7O.js +0 -567
  896. package/dist/chunk-YJCCMYYT.js +0 -125
  897. package/dist/chunk-YPQOPFP7.js +0 -797
  898. package/dist/chunk-YQYINEJI.js +0 -132
  899. package/dist/chunk-ZF6CV4WZ.js +0 -5614
  900. package/dist/chunk-ZKJU55MX.js +0 -326
  901. package/dist/chunk-ZKQ63XZ5.js +0 -1196
  902. package/dist/chunk-ZKVMDNAN.js +0 -962
  903. package/dist/chunk-ZST3FRCV.js +0 -132
  904. package/dist/clio-JUDCLNHC.js +0 -26
  905. package/dist/clio-context-tools-FT672MNZ.js +0 -136
  906. package/dist/code-nav-7OVCTP2Z.js +0 -688
  907. package/dist/compile-cache-WJEPUZEJ.js +0 -16
  908. package/dist/components-OZXZMDWU.js +0 -674
  909. package/dist/config-P3ZQVF63.js +0 -275
  910. package/dist/config-graph-GKAOBAS5.js +0 -160
  911. package/dist/configure-25LRYZJG.js +0 -86
  912. package/dist/context-72VQV7JX.js +0 -73
  913. package/dist/context-COWRWXP3.js +0 -286
  914. package/dist/context-WB3D474G.js +0 -344
  915. package/dist/context-clear-Y4LYMWC6.js +0 -192
  916. package/dist/context-index-W6A4V7OC.js +0 -120
  917. package/dist/context-map-DKL3QT6D.js +0 -555
  918. package/dist/context-working-set-TMZYVC7A.js +0 -1560
  919. package/dist/data-tool-KMBWKKWR.js +0 -2987
  920. package/dist/detail-4GLROGY5.js +0 -123
  921. package/dist/dispatch-runner-TR3LBP5P.js +0 -2446
  922. package/dist/docs-ZK777W2G.js +0 -101
  923. package/dist/doctor-WC4OV2OB.js +0 -814
  924. package/dist/eval-FUNWJNUJ.js +0 -5050
  925. package/dist/eval-inventory-CX24K2JT.js +0 -260
  926. package/dist/evals-L73EBHSU.js +0 -104
  927. package/dist/evidence-AVJ2RTHX.js +0 -392
  928. package/dist/evidence-P4NZOAK7.js +0 -233
  929. package/dist/evidence-Y55WKYHH.js +0 -246
  930. package/dist/evolve-MAWKRYWF.js +0 -617
  931. package/dist/extensions-PYQH3H47.js +0 -308
  932. package/dist/fleet-M4H2QBWT.js +0 -268
  933. package/dist/fleet-ULBXXRDR.js +0 -923
  934. package/dist/fleet-commands-7NNC4JZU.js +0 -76
  935. package/dist/fleet-decisions-EHEY7KPU.js +0 -52
  936. package/dist/fleet-graph-LQ2AHZT3.js +0 -136
  937. package/dist/fleet-inspect-5IGBIIYZ.js +0 -312
  938. package/dist/fleet-new-RCKGSRDV.js +0 -48
  939. package/dist/fleet-preflight-UTTNOKMG.js +0 -27
  940. package/dist/fleet-validate-YGILJKA6.js +0 -91
  941. package/dist/fleet-verify-AUWTCDKR.js +0 -210
  942. package/dist/fleet-view-TGUFCY5A.js +0 -127
  943. package/dist/init-GFN2Z7NF.js +0 -333
  944. package/dist/install-3RZDDP23.js +0 -13
  945. package/dist/install-6PIF6F6W.js +0 -19
  946. package/dist/interop-EF5JUWWK.js +0 -246
  947. package/dist/inventory-I6VJDDYF.js +0 -127
  948. package/dist/library-3J5IO2OJ.js +0 -75
  949. package/dist/library-IJTOFTDS.js +0 -307
  950. package/dist/library-Z3KZSHPE.js +0 -492
  951. package/dist/library-import-IMKFLDHX.js +0 -183
  952. package/dist/library-inventory-CQP5D6GU.js +0 -56
  953. package/dist/library-validation-33UTX7AI.js +0 -42
  954. package/dist/mcp-5FWZKUS6.js +0 -26
  955. package/dist/memory-36CWN67Y.js +0 -520
  956. package/dist/models-KQ6PQJJQ.js +0 -302
  957. package/dist/monitor-XX6ZD6KC.js +0 -785
  958. package/dist/orchestrator-SK6HDAOP.js +0 -42067
  959. package/dist/panes-L27QRXUH.js +0 -74
  960. package/dist/panes-LXZIWNOZ.js +0 -103
  961. package/dist/paths-7DJDU4P4.js +0 -67
  962. package/dist/preload-K2TDYI4Y.js +0 -124
  963. package/dist/registry-DESGAXWK.js +0 -11
  964. package/dist/reset-73VU3XNT.js +0 -345
  965. package/dist/resources-3BYJYVYL.js +0 -181
  966. package/dist/run-AR7PY6GW.js +0 -896
  967. package/dist/run-script-H2KUDIII.js +0 -41
  968. package/dist/settings-3VMBMWID.js +0 -72
  969. package/dist/share-HVWH4FPF.js +0 -293
  970. package/dist/skills-5TYEY75Q.js +0 -100
  971. package/dist/skills-eval-CK3MD63Z.js +0 -1083
  972. package/dist/skills-inventory-KSFYG3I6.js +0 -138
  973. package/dist/slash-commands-DMVHML7P.js +0 -98
  974. package/dist/steer-XCD6V3EW.js +0 -77
  975. package/dist/support-JAZL6VBR.js +0 -38
  976. package/dist/system-3TDQRMZZ.js +0 -116
  977. package/dist/targets-EZKHAYRN.js +0 -1117
  978. package/dist/tasks-SNEFHWYW.js +0 -36
  979. package/dist/terminal-lease-BNLFA4OF.js +0 -419
  980. package/dist/tools-7IM6BDCE.js +0 -28
  981. package/dist/trace-C3MBGD4S.js +0 -524
  982. package/dist/tree-sitter-AQUUOSYM.js +0 -4673
  983. package/dist/tui-primitives-36BY2774.js +0 -18
  984. package/dist/uninstall-WWLOSZ42.js +0 -432
  985. package/dist/upgrade-ETK2JNSJ.js +0 -297
  986. package/dist/usage-S2HOB7BZ.js +0 -1065
  987. package/dist/verifiers-QDTEVH7R.js +0 -632
  988. package/dist/verify-SUKUK6XM.js +0 -31
  989. package/dist/version-RFPKO6T7.js +0 -21
  990. package/dist/web/client/assets/abnfDiagram-VCTEODGH-BznNOe_I.js +0 -1
  991. package/dist/web/client/assets/architecture-7GRP2DOG-BQO9DL_y.js +0 -1
  992. package/dist/web/client/assets/architectureDiagram-5GKGNRK7-CKPbdvyx.js +0 -36
  993. package/dist/web/client/assets/blockDiagram-I7D4REHJ-prINbpbM.js +0 -129
  994. package/dist/web/client/assets/c4Diagram-7LVT6UL2-DkVRKtyU.js +0 -38
  995. package/dist/web/client/assets/channel-c4EeUUqA.js +0 -1
  996. package/dist/web/client/assets/chunk-4HAMMTFA-CV0Z1ApC.js +0 -62
  997. package/dist/web/client/assets/chunk-75Z2AOVW-D34Nohxq.js +0 -2
  998. package/dist/web/client/assets/chunk-DU6HZSFF-Das_cS-O.js +0 -125
  999. package/dist/web/client/assets/chunk-F27PBJKO-CmRojxkG.js +0 -1
  1000. package/dist/web/client/assets/chunk-GMAD6QVW-ClYZmc73.js +0 -72
  1001. package/dist/web/client/assets/chunk-GVQU2GXP-B2BiHFt-.js +0 -1
  1002. package/dist/web/client/assets/chunk-IMKFNOWR-BGApZ8nP.js +0 -231
  1003. package/dist/web/client/assets/chunk-L3NEJ4N5-DIzCgpkY.js +0 -1
  1004. package/dist/web/client/assets/chunk-OSK3NFVY-BPT-yePv.js +0 -10
  1005. package/dist/web/client/assets/chunk-P2QGCYS3-BC1WTc2t.js +0 -1
  1006. package/dist/web/client/assets/chunk-POPQ4Y6H-BSjzBmZU.js +0 -1
  1007. package/dist/web/client/assets/chunk-PWAF6VOD-BIjLs86Z.js +0 -1
  1008. package/dist/web/client/assets/chunk-SHT3W25Y-CduDz2cm.js +0 -168
  1009. package/dist/web/client/assets/chunk-SVP7TREG-XUn4pPAP.js +0 -88
  1010. package/dist/web/client/assets/chunk-TICWLB2K-DcBy2DKy.js +0 -206
  1011. package/dist/web/client/assets/classDiagram-ZZMXUADV-C0HR7YKN.js +0 -1
  1012. package/dist/web/client/assets/classDiagram-v2-VYDZK3BY-C0HR7YKN.js +0 -1
  1013. package/dist/web/client/assets/cynefin-OW5HDTMX-BecPbyM6.js +0 -1
  1014. package/dist/web/client/assets/cynefinDiagram-5FMLGOSQ-BzMzFwyT.js +0 -62
  1015. package/dist/web/client/assets/dagre-GXQ25YYZ-CAWJmRMG.js +0 -4
  1016. package/dist/web/client/assets/diagram-S7CK7UJ4--lp0ALmn.js +0 -30
  1017. package/dist/web/client/assets/diagram-UQ7AKVKN-gKUnsjcj.js +0 -41
  1018. package/dist/web/client/assets/diagram-VSXAHHWV-BoN5D1Gh.js +0 -3
  1019. package/dist/web/client/assets/diagram-VX7I27RA-BMtuswQ6.js +0 -24
  1020. package/dist/web/client/assets/diagram-Z3DM3KII-DtU8LXrA.js +0 -24
  1021. package/dist/web/client/assets/ebnfDiagram-PWID7BFC-DDcnv9BH.js +0 -1
  1022. package/dist/web/client/assets/erDiagram-RLTQ6QDP-DvRb4iDL.js +0 -99
  1023. package/dist/web/client/assets/eventmodeling-NTZA5JFV-01h4SbTc.js +0 -1
  1024. package/dist/web/client/assets/flowDiagram-HODETNUW-Bll_YZ6T.js +0 -1
  1025. package/dist/web/client/assets/framework-YGoR34M4.js +0 -9
  1026. package/dist/web/client/assets/ganttDiagram-EL5Y4UJY-DdFZ9hvH.js +0 -292
  1027. package/dist/web/client/assets/gitGraph-4MIJSDKK-DjD_AAMj.js +0 -1
  1028. package/dist/web/client/assets/gitGraphDiagram-WWUBYQGX-CDyN9n2u.js +0 -106
  1029. package/dist/web/client/assets/index-CVcy0FAn.js +0 -75
  1030. package/dist/web/client/assets/index-Dsi52apB.css +0 -1
  1031. package/dist/web/client/assets/info-A6RAGUB7-C_XK8Hq0.js +0 -1
  1032. package/dist/web/client/assets/infoDiagram-27XIBGKW-DIe4tJ1i.js +0 -2
  1033. package/dist/web/client/assets/ishikawaDiagram-5VMMS53U-CVl5unKI.js +0 -70
  1034. package/dist/web/client/assets/journeyDiagram-3NMN7TZE-CPEB1Vt8.js +0 -139
  1035. package/dist/web/client/assets/kanban-definition-UXKFOSKX-j-9WXjYQ.js +0 -89
  1036. package/dist/web/client/assets/line-BIDAcEtX.js +0 -1
  1037. package/dist/web/client/assets/mermaid-parser.core-Ux4vssh0.js +0 -7
  1038. package/dist/web/client/assets/mermaid.core-CDuwVKeh.js +0 -44
  1039. package/dist/web/client/assets/mindmap-definition-YA3MSWOX-5MlQEeQ6.js +0 -96
  1040. package/dist/web/client/assets/packet-AYTQ26CC-DRO66c9Q.js +0 -1
  1041. package/dist/web/client/assets/pegDiagram-XKGWAZYB-BakZnSjM.js +0 -1
  1042. package/dist/web/client/assets/pie-WAS4IAKB-BEzcmhz8.js +0 -1
  1043. package/dist/web/client/assets/pieDiagram-E7YTZNPT-DpmqgoPt.js +0 -39
  1044. package/dist/web/client/assets/quadrantDiagram-AXDQQJYC-DuMPwwV2.js +0 -7
  1045. package/dist/web/client/assets/radar-RG4KPBEZ-Djm3oXl5.js +0 -1
  1046. package/dist/web/client/assets/railroad-74A4TZTK-Cpvkwsao.js +0 -1
  1047. package/dist/web/client/assets/railroad-abnf-HS5TGJTU-CpRQ3ruG.js +0 -1
  1048. package/dist/web/client/assets/railroad-ebnf-LZEXJU2U-1Rm5a5eJ.js +0 -1
  1049. package/dist/web/client/assets/railroad-peg-WCYAUIDC-C8344cTh.js +0 -1
  1050. package/dist/web/client/assets/railroadDiagram-O6MQD6OU-CgMS4B6R.js +0 -1
  1051. package/dist/web/client/assets/requirementDiagram-BXWQKSXE-CX5eoNdN.js +0 -84
  1052. package/dist/web/client/assets/sankeyDiagram-P5KCCOFB-CODBX2N3.js +0 -40
  1053. package/dist/web/client/assets/sequenceDiagram-WJ2MYXX4-eUhhF8OR.js +0 -162
  1054. package/dist/web/client/assets/stateDiagram-D77RDMKH-vR6l0NC2.js +0 -1
  1055. package/dist/web/client/assets/stateDiagram-v2-MP3YSRHH-BYUm8jLY.js +0 -1
  1056. package/dist/web/client/assets/swimlanes-42K2YHIH-v9Tw_zX7.js +0 -1
  1057. package/dist/web/client/assets/swimlanesDiagram-VR7AAH4N-B2jdCvhD.js +0 -8
  1058. package/dist/web/client/assets/timeline-definition-24CTP7MA-DxianbhU.js +0 -120
  1059. package/dist/web/client/assets/treeView-Q6P3EWNA-DLxnZb9R.js +0 -1
  1060. package/dist/web/client/assets/treemap-WGGIJYW6-I7UnZ6xJ.js +0 -1
  1061. package/dist/web/client/assets/vennDiagram-4TSXK5OY-Ar7M8Mrj.js +0 -34
  1062. package/dist/web/client/assets/wardley-WFR3VGLG-B8ZSHeDu.js +0 -1
  1063. package/dist/web/client/assets/wardleyDiagram-VM6X3IG4-Qks2FmIn.js +0 -78
  1064. package/dist/web/client/assets/xychartDiagram-S5SC5T6Z-BBBjRtiE.js +0 -7
  1065. package/dist/web/client/index.html +0 -6
  1066. package/dist/web/ops-worker.js +0 -37
  1067. package/dist/web/reads-worker.js +0 -1726
  1068. package/dist/web/server.js +0 -8499
  1069. package/dist/web-EMGUGGEI.js +0 -13
  1070. package/dist/web-fetch-6BRRVQON.js +0 -805
  1071. package/dist/wiki-generate-XHSJTDOP.js +0 -627
  1072. package/dist/with-panes-Z6BTEHMZ.js +0 -628
  1073. package/evals/README.md +0 -9
  1074. package/evals/behavioral-corpus-grader.mjs +0 -236
  1075. package/evals/behavioral-machinery-baseline.json +0 -2276
  1076. package/evals/behavioral-machinery-driver.ts +0 -250
  1077. package/evals/behavioral-machinery-support.ts +0 -254
  1078. package/evals/behavioral-machinery.yaml +0 -614
  1079. package/evals/behavioral-model-negative-control.yaml +0 -69
  1080. package/evals/behavioral-model.yaml +0 -482
  1081. package/evals/fixtures/behavioral-facts.txt +0 -3
  1082. package/evals/fixtures/behavioral-main.ts +0 -7
  1083. package/evals/fixtures/decoy/note.txt +0 -2
  1084. package/evals/fixtures/docs-retrieval.json +0 -102
  1085. package/evals/fixtures/private/credentials.txt +0 -1
  1086. package/evals/fixtures/scalar-decision.json +0 -17
  1087. package/evals/fixtures/scout-citation-pipeline.json +0 -55
  1088. package/evals/fixtures/source-explanation.json +0 -74
  1089. package/evals/fixtures/tool-arguments.json +0 -18
  1090. package/evals/fixtures/tool-surface/read.txt +0 -4
  1091. package/evals/fixtures/tool-surface/subdir/keep.txt +0 -1
  1092. package/evals/no-edit-memory-grader.mjs +0 -149
  1093. package/evals/scalar-decision-grader.py +0 -41
  1094. package/evals/scalar-decision-machinery.ts +0 -145
  1095. package/evals/source-explanation-grader.mjs +0 -118
  1096. package/evals/tool-surface-grader.mjs +0 -53
  1097. package/evals/tool-surface-model.yaml +0 -274
  1098. package/evals/tracked-metrics-baseline.yaml +0 -229
  1099. package/evals/tracked-metrics-grader.mjs +0 -129
  1100. package/src/cli/web.ts +0 -79
  1101. package/src/domains/providers/runtimes/local-native/ollama-native.ts +0 -122
  1102. /package/dist/assets/{web-notices → gui-notices}/@hono__node-server-LICENSE +0 -0
  1103. /package/dist/assets/{web-notices → gui-notices}/hono-LICENSE +0 -0
  1104. /package/dist/{web → gui}/client/THIRD_PARTY_LICENSES.md +0 -0
  1105. /package/dist/{web → gui}/client/assets/arc-Pry-7G1_.js +0 -0
  1106. /package/dist/{web → gui}/client/assets/array-BifhSqXX.js +0 -0
  1107. /package/dist/{web → gui}/client/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2 +0 -0
  1108. /package/dist/{web → gui}/client/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2 +0 -0
  1109. /package/dist/{web → gui}/client/assets/chunk-2Q5K7J3B-C1jixKkw.js +0 -0
  1110. /package/dist/{web → gui}/client/assets/chunk-5VM5RSS4-ZNzvKenW.js +0 -0
  1111. /package/dist/{web → gui}/client/assets/chunk-FOHPRMQF-CoA4358r.js +0 -0
  1112. /package/dist/{web → gui}/client/assets/chunk-JWPE2WC7-DVXcaiue.js +0 -0
  1113. /package/dist/{web → gui}/client/assets/chunk-XXDRQBXY-DqAYeljN.js +0 -0
  1114. /package/dist/{web → gui}/client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +0 -0
  1115. /package/dist/{web → gui}/client/assets/commit-mono-latin-400-normal-s0S3qwFW.woff +0 -0
  1116. /package/dist/{web → gui}/client/assets/commit-mono-latin-400-normal-wzhe4RuD.woff2 +0 -0
  1117. /package/dist/{web → gui}/client/assets/cose-bilkent-JH36ORCC-CVh1icwb.js +0 -0
  1118. /package/dist/{web → gui}/client/assets/cytoscape.esm-c2aL46s-.js +0 -0
  1119. /package/dist/{web → gui}/client/assets/dagre-C-rnJpZF.js +0 -0
  1120. /package/dist/{web → gui}/client/assets/defaultLocale-BFoDCU3G.js +0 -0
  1121. /package/dist/{web → gui}/client/assets/dist-v5Q1xZ2K.js +0 -0
  1122. /package/dist/{web → gui}/client/assets/graphlib-DS17s2tU.js +0 -0
  1123. /package/dist/{web → gui}/client/assets/init-C-OQMol4.js +0 -0
  1124. /package/dist/{web → gui}/client/assets/katex-ZlcWpGUi.js +0 -0
  1125. /package/dist/{web → gui}/client/assets/linear-SzVmGSw4.js +0 -0
  1126. /package/dist/{web → gui}/client/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2 +0 -0
  1127. /package/dist/{web → gui}/client/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2 +0 -0
  1128. /package/dist/{web → gui}/client/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2 +0 -0
  1129. /package/dist/{web → gui}/client/assets/ordinal-BDEzSJ7C.js +0 -0
  1130. /package/dist/{web → gui}/client/assets/path-fybaL0A-.js +0 -0
  1131. /package/dist/{web → gui}/client/assets/prism-bash-D6zCJ74D.js +0 -0
  1132. /package/dist/{web → gui}/client/assets/prism-c-04YixN25.js +0 -0
  1133. /package/dist/{web → gui}/client/assets/prism-clike-DapgWyxx.js +0 -0
  1134. /package/dist/{web → gui}/client/assets/prism-core-BtsZdCS6.js +0 -0
  1135. /package/dist/{web → gui}/client/assets/prism-cpp-C-lJbC-6.js +0 -0
  1136. /package/dist/{web → gui}/client/assets/prism-css-CPgOzxXp.js +0 -0
  1137. /package/dist/{web → gui}/client/assets/prism-diff-BF8m0_mq.js +0 -0
  1138. /package/dist/{web → gui}/client/assets/prism-docker-DkT6yOFj.js +0 -0
  1139. /package/dist/{web → gui}/client/assets/prism-fortran-Be5x3y1V.js +0 -0
  1140. /package/dist/{web → gui}/client/assets/prism-go-C_8qAH5n.js +0 -0
  1141. /package/dist/{web → gui}/client/assets/prism-ini-BESK3y0r.js +0 -0
  1142. /package/dist/{web → gui}/client/assets/prism-javascript-BnO-swvr.js +0 -0
  1143. /package/dist/{web → gui}/client/assets/prism-json-Dp_-W-Hv.js +0 -0
  1144. /package/dist/{web → gui}/client/assets/prism-jsx-D-D0NWtC.js +0 -0
  1145. /package/dist/{web → gui}/client/assets/prism-julia-DIjOgiAV.js +0 -0
  1146. /package/dist/{web → gui}/client/assets/prism-latex-DNMbqcH_.js +0 -0
  1147. /package/dist/{web → gui}/client/assets/prism-makefile-CRKWLQ8l.js +0 -0
  1148. /package/dist/{web → gui}/client/assets/prism-markdown-C0FPJ1Iz.js +0 -0
  1149. /package/dist/{web → gui}/client/assets/prism-markup-Cp04rIa1.js +0 -0
  1150. /package/dist/{web → gui}/client/assets/prism-matlab-D-nk08al.js +0 -0
  1151. /package/dist/{web → gui}/client/assets/prism-python-CfiSVtM6.js +0 -0
  1152. /package/dist/{web → gui}/client/assets/prism-r-QmNGR8LX.js +0 -0
  1153. /package/dist/{web → gui}/client/assets/prism-rust-Bu9N8X3N.js +0 -0
  1154. /package/dist/{web → gui}/client/assets/prism-shell-session-Be4UuYoM.js +0 -0
  1155. /package/dist/{web → gui}/client/assets/prism-sql-CYhVDMEE.js +0 -0
  1156. /package/dist/{web → gui}/client/assets/prism-toml-DKb54GAT.js +0 -0
  1157. /package/dist/{web → gui}/client/assets/prism-tsx-p6J2Kc_4.js +0 -0
  1158. /package/dist/{web → gui}/client/assets/prism-typescript-BMqONzxf.js +0 -0
  1159. /package/dist/{web → gui}/client/assets/prism-yaml-C0JHu8gr.js +0 -0
  1160. /package/dist/{web → gui}/client/assets/purify.es-ChwZkWde.js +0 -0
  1161. /package/dist/{web → gui}/client/assets/rolldown-runtime-hePW80VL.js +0 -0
  1162. /package/dist/{web → gui}/client/assets/rough.esm-Dy-Kn_BL.js +0 -0
  1163. /package/dist/{web → gui}/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +0 -0
  1164. /package/dist/{web → gui}/client/assets/src-B6xuSHsQ.js +0 -0
  1165. /package/dist/{web → gui}/client/clio-coder-logo.webp +0 -0
  1166. /package/dist/{web → gui}/client/icon-192.png +0 -0
  1167. /package/dist/{web → gui}/client/icon-512.png +0 -0
  1168. /package/dist/{web → gui}/client/manifest.webmanifest +0 -0
  1169. /package/dist/{web → gui}/client/offline.css +0 -0
  1170. /package/dist/{web → gui}/client/offline.html +0 -0
  1171. /package/dist/{web → gui}/client/offline.js +0 -0
  1172. /package/dist/{web → gui}/client/sw.js +0 -0
@@ -1,1020 +0,0 @@
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-4DNL43EZ.js";
9
- import {
10
- foldWorkingSet
11
- } from "./chunk-IPTPMLA6.js";
12
- import {
13
- checkSkillDrift
14
- } from "./chunk-MTOZEQHL.js";
15
- import {
16
- discoverMarketplaceSkills,
17
- loadSkills,
18
- modelVisibleSkills
19
- } from "./chunk-7FBCRWVT.js";
20
- import {
21
- contextToolSurface
22
- } from "./chunk-HBJQQTKM.js";
23
- import {
24
- OBSERVE_SELF_CAPS,
25
- finalizeObservation,
26
- observationBudgetExhausted,
27
- reserveObservation
28
- } from "./chunk-ZKQ63XZ5.js";
29
- import {
30
- truncateHead
31
- } from "./chunk-GHXGMFQ5.js";
32
- import {
33
- ToolNames
34
- } from "./chunk-V4XJWDHR.js";
35
- import {
36
- SKILL_INSTALL_OFFER_OPTION_NEVER,
37
- SKILL_INSTALL_OFFER_OPTION_NOT_NOW,
38
- SKILL_INSTALL_OFFER_OPTION_PROJECT,
39
- SKILL_INSTALL_OFFER_OPTION_USER,
40
- SKILL_SUGGESTION_ANCHOR
41
- } from "./chunk-NBPA5QM6.js";
42
- import {
43
- resolvePackageRoot
44
- } from "./chunk-E3LEPLQ2.js";
45
- import {
46
- init_esm_shims
47
- } from "./chunk-ECBHH7LU.js";
48
-
49
- // src/tools/context/index.ts
50
- init_esm_shims();
51
- import { readdirSync as readdirSync2 } from "node:fs";
52
- import path from "node:path";
53
-
54
- // src/tools/context/docs-engine.ts
55
- init_esm_shims();
56
- import { existsSync, readdirSync, readFileSync } from "node:fs";
57
- import { basename, join, relative, resolve } from "node:path";
58
- var DEFAULT_LIMIT = 5;
59
- var MAX_LIMIT = 12;
60
- var SNIPPET_MAX = 360;
61
- var SNIPPET_CONTEXT_LINES = 2;
62
- var BODY_K1 = 1.2;
63
- var BODY_B = 0.75;
64
- var HEADING_WEIGHT = 3.5;
65
- var TITLE_WEIGHT = 2;
66
- var PHRASE_BODY_BOOST = 3;
67
- var PHRASE_HEADING_BOOST = 7;
68
- var COVERAGE_BOOST = 4;
69
- var EXPANDED_TERM_WEIGHT = 0.45;
70
- var STOP_WORDS = /* @__PURE__ */ new Set([
71
- "a",
72
- "an",
73
- "and",
74
- "are",
75
- "as",
76
- "at",
77
- "be",
78
- "by",
79
- "can",
80
- "for",
81
- "from",
82
- "how",
83
- "in",
84
- "into",
85
- "is",
86
- "it",
87
- "of",
88
- "on",
89
- "or",
90
- "that",
91
- "the",
92
- "this",
93
- "to",
94
- "what",
95
- "when",
96
- "where",
97
- "with"
98
- ]);
99
- var VOCABULARY_ALIASES = [
100
- {
101
- triggers: ["approval", "confirm", "confirmation", "deny", "permission", "permissions", "prompt"],
102
- expansions: ["autonomy", "ask", "deny", "safety", "policy", "full-auto", "read-only"]
103
- },
104
- {
105
- triggers: ["agent", "agents", "dispatch", "fleet", "worker", "workers", "run"],
106
- expansions: ["agent", "dispatch", "fleet", "profile", "worker", "receipt", "run"]
107
- },
108
- {
109
- triggers: ["model", "models", "provider", "runtime", "target", "targets", "endpoint"],
110
- expansions: ["catalog", "model", "probe", "provider", "runtime", "target", "wireModels"]
111
- },
112
- {
113
- triggers: ["auth", "credential", "credentials", "login", "oauth", "subscription"],
114
- expansions: ["auth", "credential", "login", "oauth", "target", "runtime"]
115
- },
116
- {
117
- triggers: ["memory", "evidence", "receipt", "receipts", "audit", "accountability", "provenance"],
118
- expansions: ["accountability", "evidence", "findings", "memory", "receipt", "run", "audit"]
119
- },
120
- {
121
- triggers: ["validate", "validated", "validation", "verify", "verified", "test", "tests", "rigor"],
122
- expansions: ["validation", "verify", "evidence", "rigor", "finish", "contract", "check"]
123
- },
124
- {
125
- triggers: ["bash", "command", "commands", "shell", "terminal", "tool", "tools"],
126
- expansions: ["bash", "command", "tool", "registry", "safety", "result", "cap"]
127
- },
128
- {
129
- triggers: ["context", "compact", "compaction", "token", "tokens", "cache", "prompt"],
130
- expansions: ["context", "compaction", "prompt", "token", "cache", "window"]
131
- },
132
- {
133
- triggers: ["hook", "hooks", "middleware", "component", "components", "budget"],
134
- expansions: ["middleware", "hook", "effect", "component", "budget", "registration"]
135
- },
136
- {
137
- triggers: ["install", "upgrade", "uninstall", "doctor", "lifecycle", "reset", "paths"],
138
- expansions: ["install", "lifecycle", "doctor", "reset", "state", "config", "paths"]
139
- },
140
- {
141
- triggers: ["skill", "skills", "marketplace"],
142
- expansions: ["skill", "skills", "marketplace", "discovery", "context"]
143
- },
144
- {
145
- triggers: ["docs", "documentation", "manual", "self"],
146
- expansions: ["documentation", "docs", "context", "blueprint", "guide"]
147
- }
148
- ];
149
- var cachedIndex = null;
150
- function normalizeText(text) {
151
- return text.toLowerCase().replace(/[`'"’]/g, "").replace(/[^a-z0-9]+/g, " ").replace(/\s+/g, " ").trim();
152
- }
153
- function rawTokens(text) {
154
- return normalizeText(text).split(" ").filter(Boolean);
155
- }
156
- function stemToken(token) {
157
- if (token.length <= 3) return token;
158
- if (token.endsWith("ies") && token.length > 4) return `${token.slice(0, -3)}y`;
159
- if (token.endsWith("ing") && token.length > 5) return token.slice(0, -3);
160
- if (token.endsWith("ed") && token.length > 4) return token.slice(0, -2);
161
- if (token.endsWith("es") && token.length > 4) return token.slice(0, -2);
162
- if (token.endsWith("s") && token.length > 4) return token.slice(0, -1);
163
- return token;
164
- }
165
- function tokenize(text, options = {}) {
166
- const tokens = rawTokens(text).map(stemToken);
167
- return options.keepStopWords ? tokens : tokens.filter((token) => !STOP_WORDS.has(token));
168
- }
169
- function countTerms(tokens) {
170
- const counts = /* @__PURE__ */ new Map();
171
- for (const token of tokens) counts.set(token, (counts.get(token) ?? 0) + 1);
172
- return counts;
173
- }
174
- function unique(items) {
175
- return [...new Set(items)];
176
- }
177
- function slugify(heading) {
178
- return normalizeText(heading).replace(/\s+/g, "-") || "section";
179
- }
180
- function titleFromFile(name) {
181
- return basename(name, ".md").split(/[-_]+/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
182
- }
183
- function parseSections(file, markdown) {
184
- const lines = markdown.split(/\r?\n/);
185
- const sections = [];
186
- let title = titleFromFile(file);
187
- let heading = "(overview)";
188
- let level = 0;
189
- let headingLine = 1;
190
- let bodyStartLine = 1;
191
- let buffer = [];
192
- let inFence = false;
193
- const stack = [];
194
- const breadcrumbFor = () => {
195
- const parts = stack.map((entry) => entry.text);
196
- if (heading === "(overview)") return title;
197
- return parts.length > 0 ? parts.join(" > ") : heading;
198
- };
199
- const flush = (endLine) => {
200
- const body = buffer.join("\n").trim();
201
- if (body.length > 0 || heading !== "(overview)") {
202
- sections.push({
203
- file,
204
- title,
205
- heading,
206
- breadcrumb: breadcrumbFor(),
207
- level,
208
- anchor: heading === "(overview)" ? "" : `#${slugify(heading)}`,
209
- startLine: headingLine,
210
- bodyStartLine,
211
- endLine: Math.max(headingLine, endLine),
212
- body,
213
- bodyLines: [...buffer]
214
- });
215
- }
216
- buffer = [];
217
- };
218
- for (let i = 0; i < lines.length; i += 1) {
219
- const line = lines[i] ?? "";
220
- if (/^\s*(```|~~~)/.test(line)) inFence = !inFence;
221
- const headingMatch = inFence ? null : /^(#{1,6})\s+(.+?)\s*#*\s*$/.exec(line);
222
- if (headingMatch) {
223
- flush(i);
224
- level = (headingMatch[1] ?? "").length;
225
- heading = (headingMatch[2] ?? "").trim();
226
- if (level === 1) title = heading;
227
- while (stack.length > 0 && (stack[stack.length - 1]?.level ?? 0) >= level) stack.pop();
228
- stack.push({ level, text: heading });
229
- headingLine = i + 1;
230
- bodyStartLine = i + 2;
231
- continue;
232
- }
233
- buffer.push(line);
234
- }
235
- flush(lines.length);
236
- return sections;
237
- }
238
- function indexSection(section) {
239
- const headingText = `${section.title} ${section.breadcrumb} ${section.heading}`;
240
- const bodyTokens = tokenize(section.body);
241
- const headingTokens = tokenize(headingText);
242
- const titleTokens = tokenize(section.title);
243
- const bodyCounts = countTerms(bodyTokens);
244
- const headingCounts = countTerms(headingTokens);
245
- const titleCounts = countTerms(titleTokens);
246
- const terms = /* @__PURE__ */ new Set([...bodyCounts.keys(), ...headingCounts.keys(), ...titleCounts.keys()]);
247
- return {
248
- ...section,
249
- bodyCounts,
250
- headingCounts,
251
- titleCounts,
252
- bodyLength: Math.max(1, bodyTokens.length),
253
- terms,
254
- normalizedBody: normalizeText(section.body),
255
- normalizedHeading: normalizeText(headingText)
256
- };
257
- }
258
- function candidateDocFiles(root) {
259
- const docsDir = join(root, "docs");
260
- const htmlDir = join(docsDir, "html");
261
- const files = [];
262
- const walk = (dir) => {
263
- let entries;
264
- try {
265
- entries = readdirSync(dir, { withFileTypes: true });
266
- } catch {
267
- return;
268
- }
269
- for (const entry of entries.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0)) {
270
- const absolute = join(dir, entry.name);
271
- if (entry.isDirectory()) {
272
- if (absolute !== htmlDir) walk(absolute);
273
- continue;
274
- }
275
- if (entry.isFile() && entry.name.toLowerCase().endsWith(".md")) {
276
- files.push(relative(root, absolute).replaceAll("\\", "/"));
277
- }
278
- }
279
- };
280
- walk(docsDir);
281
- for (const name of ["README.md", "CHANGELOG.md", "CLIO-CODER.md"]) {
282
- if (existsSync(join(root, name))) files.push(name);
283
- }
284
- return files;
285
- }
286
- function buildDocumentFrequency(sections) {
287
- const df = /* @__PURE__ */ new Map();
288
- for (const section of sections) {
289
- for (const term of section.terms) df.set(term, (df.get(term) ?? 0) + 1);
290
- }
291
- return df;
292
- }
293
- function loadDocsIndex() {
294
- let root;
295
- try {
296
- const override = process.env.CLIO_CODER_PACKAGE_ROOT?.trim();
297
- if (override) {
298
- root = resolve(override);
299
- } else {
300
- root = resolvePackageRoot();
301
- }
302
- } catch (err) {
303
- return { ok: false, message: err instanceof Error ? err.message : String(err) };
304
- }
305
- const docsDir = join(root, "docs");
306
- if (cachedIndex && cachedIndex.dir === docsDir) return { ok: true, index: cachedIndex };
307
- const files = candidateDocFiles(root);
308
- if (files.length === 0) return { ok: false, message: `bundled docs directory not found at ${docsDir}` };
309
- const sections = [];
310
- const indexedFiles = [];
311
- let docCount = 0;
312
- for (const file of files) {
313
- let raw;
314
- try {
315
- raw = readFileSync(join(root, file), "utf8");
316
- } catch {
317
- continue;
318
- }
319
- docCount += 1;
320
- indexedFiles.push(file);
321
- for (const section of parseSections(file, raw)) sections.push(indexSection(section));
322
- }
323
- if (sections.length === 0) return { ok: false, message: `no markdown sections found under ${docsDir}` };
324
- const totalLength = sections.reduce((sum, section) => sum + section.bodyLength, 0);
325
- cachedIndex = {
326
- dir: docsDir,
327
- files: indexedFiles,
328
- sections,
329
- docCount,
330
- avgBodyLength: totalLength / sections.length,
331
- documentFrequency: buildDocumentFrequency(sections)
332
- };
333
- return { ok: true, index: cachedIndex };
334
- }
335
- function makeQueryPlan(query) {
336
- const originalTokens = unique(tokenize(query));
337
- const originalSet = new Set(originalTokens);
338
- const expanded = [];
339
- for (const rule of VOCABULARY_ALIASES) {
340
- const triggerTokens = rule.triggers.flatMap((trigger) => tokenize(trigger));
341
- if (!triggerTokens.some((token) => originalSet.has(token))) continue;
342
- expanded.push(...rule.expansions.flatMap((term) => tokenize(term)));
343
- }
344
- const expandedTerms = unique(expanded).filter((term) => !originalSet.has(term));
345
- const weightedTerms = [
346
- ...originalTokens.map((term) => ({ term, source: "query", weight: 1 })),
347
- ...expandedTerms.map((term) => ({ term, source: "alias", weight: EXPANDED_TERM_WEIGHT }))
348
- ];
349
- const normalizedQuery = normalizeText(query);
350
- const phraseCandidates = [
351
- normalizedQuery,
352
- ...rawTokens(query).slice(0, -1).map((token, index, tokens) => `${token} ${tokens[index + 1] ?? ""}`.trim())
353
- ];
354
- const phrases = unique(phraseCandidates.filter((phrase) => phrase.includes(" ") && phrase.length >= 5));
355
- return { query, originalTokens, weightedTerms, expandedTerms, phrases };
356
- }
357
- function idf(index, term) {
358
- const df = index.documentFrequency.get(term) ?? 0;
359
- return Math.log(1 + (index.sections.length - df + 0.5) / (df + 0.5));
360
- }
361
- function bm25(count, sectionLength, avgLength) {
362
- if (count <= 0) return 0;
363
- return count * (BODY_K1 + 1) / (count + BODY_K1 * (1 - BODY_B + BODY_B * (sectionLength / avgLength)));
364
- }
365
- function phraseSignals(section, phrases) {
366
- let score = 0;
367
- const signals = [];
368
- for (const phrase of phrases) {
369
- if (section.normalizedHeading.includes(phrase)) {
370
- score += PHRASE_HEADING_BOOST;
371
- signals.push(`heading phrase: ${phrase}`);
372
- }
373
- if (section.normalizedBody.includes(phrase)) {
374
- score += PHRASE_BODY_BOOST;
375
- signals.push(`body phrase: ${phrase}`);
376
- }
377
- }
378
- return { score, signals };
379
- }
380
- function scoreSection(index, section, plan) {
381
- let score = 0;
382
- const matchedTerms = [];
383
- const signals = [];
384
- let originalHits = 0;
385
- for (const weighted of plan.weightedTerms) {
386
- const bodyCount = section.bodyCounts.get(weighted.term) ?? 0;
387
- const headingCount = section.headingCounts.get(weighted.term) ?? 0;
388
- const titleCount = section.titleCounts.get(weighted.term) ?? 0;
389
- if (bodyCount + headingCount + titleCount === 0) continue;
390
- const termIdf = idf(index, weighted.term);
391
- const bodyScore = termIdf * bm25(bodyCount, section.bodyLength, index.avgBodyLength);
392
- const headingScore = headingCount > 0 ? termIdf * HEADING_WEIGHT : 0;
393
- const titleScore = titleCount > 0 ? termIdf * TITLE_WEIGHT : 0;
394
- score += weighted.weight * (bodyScore + headingScore + titleScore);
395
- matchedTerms.push(weighted.term);
396
- if (weighted.source === "query") originalHits += 1;
397
- if (headingCount > 0) signals.push(`heading: ${weighted.term}`);
398
- else if (titleCount > 0) signals.push(`title: ${weighted.term}`);
399
- }
400
- const phrases = phraseSignals(section, plan.phrases);
401
- score += phrases.score;
402
- signals.push(...phrases.signals);
403
- const coverage = plan.originalTokens.length === 0 ? 0 : originalHits / plan.originalTokens.length;
404
- score += coverage * COVERAGE_BOOST;
405
- if (score <= 0) return null;
406
- return {
407
- section,
408
- score,
409
- matchedTerms: unique(matchedTerms).slice(0, 12),
410
- signals: unique(signals).slice(0, 6),
411
- coverage
412
- };
413
- }
414
- function cleanSnippet(text) {
415
- return text.replace(/^\s{0,3}#{1,6}\s+/gm, "").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/\s+/g, " ").trim();
416
- }
417
- function snippetFor(section, plan) {
418
- const needles = unique([...plan.phrases, ...plan.originalTokens, ...plan.expandedTerms.slice(0, 8)]).filter(
419
- (needle) => needle.length > 0
420
- );
421
- let hitLine = -1;
422
- let bestNeedleCount = 0;
423
- for (let i = 0; i < section.bodyLines.length; i += 1) {
424
- const normalized = normalizeText(section.bodyLines[i] ?? "");
425
- let needleCount = 0;
426
- for (const needle of needles) {
427
- if (normalized.includes(needle)) needleCount += 1;
428
- }
429
- if (needleCount > bestNeedleCount) {
430
- bestNeedleCount = needleCount;
431
- hitLine = i;
432
- }
433
- }
434
- if (hitLine < 0) hitLine = section.bodyLines.findIndex((line) => line.trim().length > 0);
435
- if (hitLine < 0) {
436
- return {
437
- text: section.heading === "(overview)" ? section.title : section.heading,
438
- startLine: section.startLine,
439
- endLine: section.startLine
440
- };
441
- }
442
- const from = Math.max(0, hitLine - SNIPPET_CONTEXT_LINES);
443
- const to = Math.min(section.bodyLines.length - 1, hitLine + SNIPPET_CONTEXT_LINES);
444
- let snippet = cleanSnippet(section.bodyLines.slice(from, to + 1).join(" "));
445
- if (snippet.length > SNIPPET_MAX) snippet = `${snippet.slice(0, SNIPPET_MAX - 3).trimEnd()}...`;
446
- return {
447
- text: snippet,
448
- startLine: section.bodyStartLine + from,
449
- endLine: section.bodyStartLine + to
450
- };
451
- }
452
- function clampDocsLimit(value) {
453
- if (typeof value === "number" && Number.isFinite(value) && value > 0) return Math.min(Math.floor(value), MAX_LIMIT);
454
- return DEFAULT_LIMIT;
455
- }
456
- function resultPayload(index, plan, scored) {
457
- const results = scored.map((entry, i) => {
458
- const snippet = snippetFor(entry.section, plan);
459
- return {
460
- rank: i + 1,
461
- file: entry.section.file,
462
- heading: entry.section.heading,
463
- breadcrumb: entry.section.breadcrumb,
464
- anchor: entry.section.anchor,
465
- lines: { start: entry.section.startLine, end: entry.section.endLine },
466
- snippetLines: { start: snippet.startLine, end: snippet.endLine },
467
- snippet: snippet.text,
468
- score: Number(entry.score.toFixed(3)),
469
- coverage: Number(entry.coverage.toFixed(2)),
470
- matchedTerms: entry.matchedTerms,
471
- signals: entry.signals
472
- };
473
- });
474
- return {
475
- version: 2,
476
- query: plan.query,
477
- corpus: {
478
- docs: index.docCount,
479
- sections: index.sections.length,
480
- files: index.files,
481
- excludes: ["docs/html/**"]
482
- },
483
- terms: {
484
- query: plan.originalTokens,
485
- expanded: plan.expandedTerms,
486
- phrases: plan.phrases
487
- },
488
- resultCount: results.length,
489
- results,
490
- 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."
491
- };
492
- }
493
- function listDocsCorpus() {
494
- const loaded = loadDocsIndex();
495
- if (!loaded.ok) return { ok: false, message: loaded.message };
496
- const index = loaded.index;
497
- const payload = {
498
- version: 2,
499
- corpus: {
500
- docs: index.docCount,
501
- sections: index.sections.length,
502
- files: index.files,
503
- excludes: ["docs/html/**"]
504
- },
505
- 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."
506
- };
507
- return { ok: true, payload, fileCount: index.files.length };
508
- }
509
- function searchDocs(query, limitArg) {
510
- const plan = makeQueryPlan(query);
511
- if (plan.originalTokens.length === 0) return { ok: false, message: "query has no searchable terms" };
512
- const loaded = loadDocsIndex();
513
- if (!loaded.ok) return { ok: false, message: loaded.message };
514
- const limit = clampDocsLimit(limitArg);
515
- const ranked = loaded.index.sections.map((section) => scoreSection(loaded.index, section, plan)).filter((entry) => entry !== null).sort(
516
- (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)
517
- );
518
- const shown = ranked.slice(0, limit);
519
- const next = shown.length === 0 ? `query=${plan.expandedTerms[0] ?? "overview"}` : null;
520
- const payload = {
521
- ...resultPayload(loaded.index, plan, shown),
522
- omitted: ranked.length - shown.length,
523
- ...next !== null ? { next } : {}
524
- };
525
- return { ok: true, payload, resultCount: shown.length, rankedTotal: ranked.length, next };
526
- }
527
-
528
- // src/tools/context/index.ts
529
- var DEFAULT_TREE_ENTRIES = 50;
530
- function cwdFromDeps(deps) {
531
- return deps?.getCwd?.() ?? process.cwd();
532
- }
533
- function buildResourceTree(baseDir, maxEntries) {
534
- const out = [];
535
- const walk = (dir) => {
536
- if (out.length >= maxEntries) return;
537
- let entries;
538
- try {
539
- entries = readdirSync2(dir, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name));
540
- } catch {
541
- return;
542
- }
543
- for (const entry of entries) {
544
- if (out.length >= maxEntries) return;
545
- if (entry.name.startsWith(".") || entry.name === "node_modules") continue;
546
- const full = path.join(dir, entry.name);
547
- const rel = path.relative(baseDir, full).split(path.sep).join("/");
548
- if (entry.isDirectory()) {
549
- out.push(`${rel}/`);
550
- walk(full);
551
- } else if (entry.isFile()) {
552
- out.push(rel);
553
- }
554
- }
555
- };
556
- walk(baseDir);
557
- return out;
558
- }
559
- function skillSourceOrigin(skill) {
560
- return skill.sourceInfo.source ?? `${skill.source}-${skill.scope}`;
561
- }
562
- function skillExecutionFrame(skill, workspaceRoot) {
563
- return [
564
- "How to read this skill:",
565
- `- 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.`,
566
- "- 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.",
567
- "- The skill describes a workflow. Your safety policy, permissions, and tool surface still bind it.",
568
- ""
569
- ];
570
- }
571
- function renderSkillBody(skill, tree) {
572
- const sourceOrigin = skillSourceOrigin(skill);
573
- const lines = [
574
- `<skill name="${skill.name}" scope="${skill.scope}" source="${skill.source}" origin="${sourceOrigin}" hash="${skill.hash}">`,
575
- `path: ${skill.filePath}`,
576
- `base_dir: ${skill.baseDir}`,
577
- `source_origin: ${sourceOrigin}`,
578
- `disable_model_invocation: ${skill.disableModelInvocation}`
579
- ];
580
- if (skill.allowedTools) lines.push(`allowed_tools: ${skill.allowedTools.join(", ")}`);
581
- if (skill.disallowedTools) lines.push(`disallowed_tools: ${skill.disallowedTools.join(", ")}`);
582
- if (skill.diagnostics.length > 0) {
583
- lines.push(`diagnostics: ${skill.diagnostics.map((d) => d.message).join("; ")}`);
584
- }
585
- const metadataKeys = Object.keys(skill.metadata);
586
- if (metadataKeys.length > 0) lines.push(`metadata: ${metadataKeys.join(", ")}`);
587
- if (tree) {
588
- lines.push("resources:");
589
- for (const entry of tree) lines.push(` ${entry}`);
590
- }
591
- lines.push("", skill.content, "</skill>");
592
- return lines.join("\n");
593
- }
594
- function policyIsRecipeBound(policy) {
595
- return policy.requests.length > 0 && policy.requests.every((request) => request.source === "recipe");
596
- }
597
- 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.`;
598
- function pendingSkillPolicyError(name, options) {
599
- const policy = options?.pendingSkillPolicy;
600
- if (!policy) {
601
- return NO_PENDING_SKILL_DENIAL;
602
- }
603
- const recipeBound = policyIsRecipeBound(policy);
604
- if (policy.modelActivation === true && !recipeBound) {
605
- if (!policy.loadedSkillNames.has(name)) return null;
606
- const window = policy.carriedSurface === true ? "in this session" : "this turn";
607
- return `context: skill ${name} already loaded ${window}; continue with the loaded workflow and call ask_user if an interview/choice is needed.`;
608
- }
609
- const allowed = [...new Set(policy.allowedSkillNames.map((entry) => entry.trim()).filter(Boolean))];
610
- if (allowed.length === 0) {
611
- return NO_PENDING_SKILL_DENIAL;
612
- }
613
- if (!allowed.includes(name)) {
614
- if (recipeBound) return `context: this agent run may load only its declared skill(s): ${allowed.join(", ")}.`;
615
- if (policy.carriedSurface === true) return NO_PENDING_SKILL_DENIAL;
616
- return `context: this turn has pending skill request(s): ${allowed.join(", ")}. Load only those before doing anything else.`;
617
- }
618
- if (policy.loadedSkillNames.has(name)) {
619
- if (recipeBound) return `context: skill ${name} is already loaded in this run; continue with its workflow.`;
620
- const window = policy.carriedSurface === true ? "in this session" : "this turn";
621
- return `context: pending skill ${name} already loaded ${window}; continue with the loaded workflow and call ask_user if an interview/choice is needed.`;
622
- }
623
- return null;
624
- }
625
- function pendingSkillRequestFor(name, options) {
626
- return options?.pendingSkillPolicy?.requests.find((request) => request.name === name) ?? null;
627
- }
628
- function operatorRequestedManualSkill(skill, request) {
629
- return skill.trusted && skill.disableModelInvocation && request?.installed === true && (request.source === "slash-command" || request.source === "selector");
630
- }
631
- function renderPendingSkillTask(name, options) {
632
- const request = pendingSkillRequestFor(name, options);
633
- if (!request) return [];
634
- if (request.source === "recipe") return [];
635
- const task = request.args.trim();
636
- const lines = [
637
- "Pending skill request",
638
- `name: ${request.name}`,
639
- `source: ${request.source}`,
640
- `task: ${task.length > 0 ? task : "(none supplied)"}`
641
- ];
642
- if (task.length > 0) {
643
- lines.push(
644
- "",
645
- "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."
646
- );
647
- }
648
- lines.push("");
649
- return lines;
650
- }
651
- function marketplaceRowsFor(deps, installed, options) {
652
- if (deps.skillMarketplace === false) return [];
653
- if (deps.getSkillLoaderOptions?.().disableDiscovery === true) return [];
654
- const policy = options?.pendingSkillPolicy;
655
- if (policy && policyIsRecipeBound(policy)) return [];
656
- const installedNames = new Set(installed.map((skill) => skill.name));
657
- try {
658
- return discoverMarketplaceSkills({ cwd: cwdFromDeps(deps) }).skills.filter(
659
- (entry) => !installedNames.has(entry.name)
660
- );
661
- } catch {
662
- return [];
663
- }
664
- }
665
- function renderSkillsList(skills, marketplace, marketplaceOffered, modelActivation) {
666
- if (skills.length === 0 && marketplace.length === 0) {
667
- return marketplaceOffered ? "No skills are installed and no marketplace is configured." : "No skills are installed.";
668
- }
669
- const lines = ["Available skills.", ""];
670
- if (skills.length > 0) {
671
- lines.push("Installed:");
672
- for (const skill of skills) {
673
- lines.push(`- ${skill.name} (${skill.scope}): ${skill.description}`);
674
- }
675
- } else {
676
- lines.push("Installed: none.");
677
- }
678
- if (marketplace.length > 0) {
679
- lines.push("", "Marketplace (not installed; /skill <name> offers to install):");
680
- for (const entry of marketplace) {
681
- const category = entry.category ? ` [${entry.category}]` : "";
682
- lines.push(`- ${entry.name}${category}: ${entry.description}`);
683
- }
684
- }
685
- lines.push(
686
- "",
687
- 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.`
688
- );
689
- if (marketplace.length > 0) {
690
- lines.push(
691
- `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.`
692
- );
693
- }
694
- return lines.join("\n");
695
- }
696
- function runWorkspaceScope(deps, reservation, options) {
697
- const workspace = deps.workspace;
698
- if (!workspace?.hasSession()) {
699
- return { kind: "error", message: "context: workspace scope requires a bound session; none is active here" };
700
- }
701
- let snap = workspace.getSnapshot();
702
- if (!snap) {
703
- snap = workspace.probeWorkspace();
704
- workspace.saveSnapshot(snap);
705
- }
706
- const payload = withSkillsPointer(deps, snap);
707
- return finalizeObservation({
708
- tool: ToolNames.Context,
709
- unit: "results",
710
- format: "json",
711
- output: JSON.stringify(payload, null, 2),
712
- shownCount: 1,
713
- totalCount: 1,
714
- truncated: false,
715
- reservation,
716
- ...options ? { options } : {}
717
- });
718
- }
719
- function withSkillsPointer(deps, snap) {
720
- let installed = 0;
721
- let installable = 0;
722
- try {
723
- const list = loadSkills({ cwd: cwdFromDeps(deps), ...deps.getSkillLoaderOptions?.() ?? {} });
724
- const visible = modelVisibleSkills(list.items);
725
- installed = visible.length;
726
- installable = marketplaceRowsFor(deps, visible, void 0).length;
727
- } catch {
728
- return { ...snap };
729
- }
730
- if (installed === 0 && installable === 0) return { ...snap };
731
- return {
732
- ...snap,
733
- 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.`
734
- };
735
- }
736
- function runDocsScope(args, reservation, options, toolName = ToolNames.Context) {
737
- const query = typeof args.query === "string" ? args.query.trim() : "";
738
- if (query.length === 0) {
739
- const corpus = listDocsCorpus();
740
- if (!corpus.ok) return { kind: "error", message: `${toolName}: ${corpus.message}` };
741
- return finalizeObservation({
742
- tool: toolName,
743
- unit: "entries",
744
- format: "json",
745
- output: JSON.stringify(corpus.payload),
746
- shownCount: corpus.fileCount,
747
- totalCount: corpus.fileCount,
748
- truncated: false,
749
- reservation,
750
- ...options ? { options } : {}
751
- });
752
- }
753
- const outcome = searchDocs(query, args.limit);
754
- if (!outcome.ok) return { kind: "error", message: `${toolName}: ${outcome.message}` };
755
- return finalizeObservation({
756
- tool: toolName,
757
- unit: "sections",
758
- format: "json",
759
- output: JSON.stringify(outcome.payload),
760
- shownCount: outcome.resultCount,
761
- totalCount: outcome.rankedTotal,
762
- truncated: outcome.resultCount < outcome.rankedTotal,
763
- ...outcome.next !== null ? { next: outcome.next } : {},
764
- reservation,
765
- ...options ? { options } : {}
766
- });
767
- }
768
- function runSkillsScope(deps, args, reservation, options) {
769
- const name = typeof args.name === "string" ? args.name.trim() : "";
770
- if (name.length === 0) {
771
- const list2 = loadSkills({ cwd: cwdFromDeps(deps), ...deps.getSkillLoaderOptions?.() ?? {} });
772
- const visible2 = modelVisibleSkills(list2.items);
773
- const marketplace = marketplaceRowsFor(deps, list2.items, options);
774
- const rendered = renderSkillsList(
775
- visible2,
776
- marketplace,
777
- deps.skillMarketplace !== false,
778
- options?.pendingSkillPolicy?.modelActivation === true
779
- );
780
- const truncation2 = truncateHead(rendered, { maxBytes: reservation.callCapBytes, maxLines: Number.MAX_SAFE_INTEGER });
781
- const total = visible2.length + marketplace.length;
782
- return finalizeObservation({
783
- tool: ToolNames.Context,
784
- unit: "entries",
785
- output: truncation2.content,
786
- ...truncation2.truncated ? { fullOutput: rendered } : {},
787
- shownCount: total,
788
- totalCount: total,
789
- truncated: truncation2.truncated,
790
- details: {
791
- skills: visible2.map((skill2) => ({ name: skill2.name, scope: skill2.scope })),
792
- marketplace: marketplace.map((entry) => ({
793
- name: entry.name,
794
- ...entry.category ? { category: entry.category } : {}
795
- }))
796
- },
797
- reservation,
798
- ...options ? { options } : {}
799
- });
800
- }
801
- const policyError = pendingSkillPolicyError(name, options);
802
- if (policyError) return { kind: "error", message: policyError };
803
- const list = loadSkills({ cwd: cwdFromDeps(deps), ...deps.getSkillLoaderOptions?.() ?? {} });
804
- const visible = modelVisibleSkills(list.items);
805
- const pendingRequest = pendingSkillRequestFor(name, options);
806
- const skill = visible.find((item) => item.name === name) ?? list.items.find((item) => item.name === name && operatorRequestedManualSkill(item, pendingRequest));
807
- if (!skill) {
808
- const unavailable = list.items.find((item) => item.name === name);
809
- if (unavailable) {
810
- return {
811
- kind: "error",
812
- 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.`
813
- };
814
- }
815
- const installable = marketplaceRowsFor(deps, list.items, options).some((entry) => entry.name === name);
816
- if (installable) {
817
- return {
818
- kind: "error",
819
- 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.`
820
- };
821
- }
822
- const available = visible.map((item) => item.name).join(", ");
823
- const suffix = available.length > 0 ? ` Available skills: ${available}.` : " No skills are currently available.";
824
- return { kind: "error", message: `context: unknown skill "${name}".${suffix}` };
825
- }
826
- const includeTree = args.include_tree === true;
827
- const tree = includeTree ? buildResourceTree(skill.baseDir, DEFAULT_TREE_ENTRIES) : null;
828
- const pendingTask = pendingRequest?.args.trim() ?? "";
829
- const driftReport = checkSkillDrift(skill, cwdFromDeps(deps));
830
- const drift = driftReport?.verdict ?? null;
831
- 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;
832
- const body = [
833
- ...driftWarning !== null ? [driftWarning] : [],
834
- ...renderPendingSkillTask(name, options),
835
- ...skillExecutionFrame(skill, cwdFromDeps(deps)),
836
- renderSkillBody(skill, tree)
837
- ].join("\n");
838
- const pendingPolicy = options?.pendingSkillPolicy;
839
- if (pendingPolicy) {
840
- pendingPolicy.loadedSkillNames.add(name);
841
- pendingPolicy.loadedSkillPolicies.set(name, {
842
- ...skill.allowedTools ? { allowedTools: skill.allowedTools } : {},
843
- ...skill.disallowedTools ? { disallowedTools: skill.disallowedTools } : {}
844
- });
845
- }
846
- const truncation = truncateHead(body, { maxBytes: reservation.callCapBytes, maxLines: Number.MAX_SAFE_INTEGER });
847
- return finalizeObservation({
848
- tool: ToolNames.Context,
849
- unit: "sections",
850
- output: truncation.content,
851
- ...truncation.truncated ? { fullOutput: body } : {},
852
- shownCount: 1,
853
- totalCount: 1,
854
- truncated: truncation.truncated,
855
- details: {
856
- name: skill.name,
857
- description: skill.description,
858
- ...pendingTask.length > 0 ? { pendingTask } : {},
859
- path: skill.filePath,
860
- baseDir: skill.baseDir,
861
- hash: skill.hash,
862
- source: skill.source,
863
- sourceOrigin: skillSourceOrigin(skill),
864
- sourceInfo: skill.sourceInfo,
865
- scope: skill.scope,
866
- disableModelInvocation: skill.disableModelInvocation,
867
- ...skill.allowedTools ? { allowedTools: skill.allowedTools } : {},
868
- ...skill.disallowedTools ? { disallowedTools: skill.disallowedTools } : {},
869
- diagnostics: skill.diagnostics.map((d) => d.message),
870
- metadata: skill.metadata,
871
- ...skill.provenance ? { provenance: skill.provenance } : {},
872
- ...drift !== null ? { drift } : {},
873
- ...tree ? { tree } : {}
874
- },
875
- reservation,
876
- ...options ? { options } : {}
877
- });
878
- }
879
- function runRecallScope(deps, args, reservation, options) {
880
- if (deps.workerRecall) {
881
- const result2 = deps.workerRecall(args);
882
- if ("error" in result2) return { kind: "error", message: `context: ${result2.error}` };
883
- const truncated = truncateHead(result2.body, {
884
- maxBytes: reservation.callCapBytes,
885
- maxLines: Number.MAX_SAFE_INTEGER
886
- });
887
- return finalizeObservation({
888
- tool: ToolNames.Context,
889
- unit: "results",
890
- output: truncated.content,
891
- ...truncated.truncated ? { fullOutput: result2.body } : {},
892
- shownCount: result2.shown,
893
- totalCount: result2.total,
894
- truncated: truncated.truncated || result2.nextOffset !== void 0,
895
- details: { workerRecall: { ref: args.ref ?? null, nextOffset: result2.nextOffset ?? null } },
896
- reservation,
897
- ...options ? { options } : {}
898
- });
899
- }
900
- const session = deps.session;
901
- if (!session?.hasSession()) {
902
- return { kind: "error", message: "context: recall scope requires a bound session; none is active here" };
903
- }
904
- const ref = typeof args.ref === "string" ? args.ref.trim() : "";
905
- const entries = session.readEntries();
906
- const leaf = session.activeLeafTurnId();
907
- const view = foldWorkingSet(entries, leaf);
908
- if (args.ref === void 0) {
909
- const listing = recallableRefListing(entries, view, {
910
- ...leaf === void 0 ? {} : { activeLeafTurnId: leaf },
911
- ...typeof args.query === "string" ? { query: args.query } : {},
912
- ...typeof args.limit === "number" ? { limit: args.limit } : {},
913
- ...typeof args.offset === "number" ? { offset: args.offset } : {}
914
- });
915
- const output = [
916
- ...listing.refs,
917
- listing.nextOffset === void 0 ? "End of matching recallable refs." : `More matches: repeat this query with offset=${listing.nextOffset}.`,
918
- 'Recall an exact persisted body with context(scope="recall", ref="<turnId>").'
919
- ].join("\n");
920
- const truncation2 = truncateHead(output, { maxBytes: reservation.callCapBytes, maxLines: Number.MAX_SAFE_INTEGER });
921
- return finalizeObservation({
922
- tool: ToolNames.Context,
923
- unit: "results",
924
- output: truncation2.content,
925
- ...truncation2.truncated ? { fullOutput: output } : {},
926
- shownCount: listing.refs.length,
927
- totalCount: listing.total,
928
- truncated: truncation2.truncated || listing.remaining > 0,
929
- details: { recallDiscovery: listing },
930
- reservation,
931
- ...options ? { options } : {}
932
- });
933
- }
934
- const resolved = resolveRecall(entries, view, ref, leaf);
935
- if (!resolved.ok)
936
- return { kind: "error", message: `context: ${recallErrorMessage(resolved.error, entries, view, leaf)}` };
937
- const { result } = resolved;
938
- const fields = buildRecallFields(result, {
939
- trigger: "tool",
940
- ...options?.toolCallId ? { toolCallId: options.toolCallId } : {}
941
- });
942
- const parentTurnId = recallParentTurnId(entries, leaf);
943
- let recorded;
944
- try {
945
- recorded = session.appendEntry({ ...fields, parentTurnId });
946
- } catch (err) {
947
- return {
948
- kind: "error",
949
- message: `context: recall of ${result.ref.entry} could not be recorded: ${err instanceof Error ? err.message : String(err)}`
950
- };
951
- }
952
- session.onRecalled?.({ ref: result.ref.entry, trigger: "tool", tokensReadmitted: result.tokens, at: Date.now() });
953
- const evictedState = view.evicted.get(result.ref.entry);
954
- const truncation = truncateHead(result.body, {
955
- maxBytes: reservation.callCapBytes,
956
- maxLines: Number.MAX_SAFE_INTEGER
957
- });
958
- return finalizeObservation({
959
- tool: ToolNames.Context,
960
- unit: "results",
961
- output: truncation.content,
962
- ...truncation.truncated ? { fullOutput: result.body } : {},
963
- shownCount: 1,
964
- totalCount: 1,
965
- truncated: truncation.truncated,
966
- details: {
967
- recall: {
968
- ref: result.ref.entry,
969
- state: result.state,
970
- tokensReadmitted: result.tokens,
971
- recallTurnId: recorded.turnId,
972
- ...evictedState ? { reason: evictedState.reason, evictedAtTurnId: evictedState.evictedAtTurnId } : {},
973
- ...result.offloadPath !== void 0 ? { offloadPath: result.offloadPath } : {}
974
- }
975
- },
976
- reservation,
977
- ...options ? { options } : {}
978
- });
979
- }
980
- function createContextTool(deps = {}) {
981
- return {
982
- ...contextToolSurface,
983
- async run(args, options) {
984
- const scope = typeof args.scope === "string" ? args.scope : "";
985
- if (scope === "docs" || scope === "library") {
986
- const capability = scope === "docs" ? ToolNames.ClioDocs : ToolNames.ClioLibrary;
987
- return {
988
- kind: "error",
989
- message: `context: scope "${scope}" is a gateway capability now: call gateway(op="call", capability="${capability}", args={...}) or gateway(op="describe", capability="${capability}") for its arguments.`
990
- };
991
- }
992
- if (scope !== "workspace" && scope !== "skills" && scope !== "recall") {
993
- return {
994
- kind: "error",
995
- message: `context: scope must be workspace, skills, or recall; got '${scope}'`
996
- };
997
- }
998
- const selfCap = scope === "skills" ? OBSERVE_SELF_CAPS.contextSkills : OBSERVE_SELF_CAPS.contextWorkspace;
999
- const reservation = reserveObservation(selfCap, options);
1000
- if (reservation.exhausted) {
1001
- return observationBudgetExhausted({
1002
- tool: ToolNames.Context,
1003
- unit: scope === "skills" ? "entries" : "results",
1004
- reservation,
1005
- subject: `scope=${scope}`,
1006
- hint: "Continue in a follow-up turn."
1007
- });
1008
- }
1009
- if (scope === "workspace") return runWorkspaceScope(deps, reservation, options);
1010
- if (scope === "recall") return runRecallScope(deps, args, reservation, options);
1011
- return runSkillsScope(deps, args, reservation, options);
1012
- }
1013
- };
1014
- }
1015
-
1016
- export {
1017
- runDocsScope,
1018
- createContextTool
1019
- };
1020
- //# sourceMappingURL=chunk-NXTV5OI5.js.map