@iowarp/clio-coder 0.4.7 → 0.4.9

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 (675) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +111 -0
  3. package/CONTRIBUTING.md +83 -74
  4. package/README.md +69 -47
  5. package/dist/{acp-W3Y3TRHD.js → acp-ZWZCPS2A.js} +15 -15
  6. package/dist/{agents-J4ICNLQ3.js → agents-LYSOWZUE.js} +61 -59
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/assets/web-notices/@hono__node-server-LICENSE +21 -0
  9. package/dist/assets/web-notices/hono-LICENSE +21 -0
  10. package/dist/{auth-X2UJUMOC.js → auth-WBQGKWQ5.js} +27 -27
  11. package/dist/background-BUMOBAQN.js +37 -0
  12. package/dist/{builtins-XLXWWSRF.js → builtins-ODRJOEDI.js} +7 -7
  13. package/dist/{chunk-C3G5PNUO.js → chunk-2DRRZ57Q.js} +36 -27
  14. package/dist/chunk-2JBZYUPY.js +105 -0
  15. package/dist/chunk-2KUBKL63.js +336 -0
  16. package/dist/chunk-2VBWFXYE.js +198 -0
  17. package/dist/{chunk-XZ6UFQ52.js → chunk-2X2R3UTH.js} +25 -15
  18. package/dist/{chunk-M6Z2V6YU.js → chunk-37LW32LZ.js} +5 -5
  19. package/dist/{chunk-6LRLOJHQ.js → chunk-3AND2EFU.js} +11 -62
  20. package/dist/{chunk-FQOOGXBH.js → chunk-3RDHGNU7.js} +101 -33
  21. package/dist/{chunk-D2T66PDV.js → chunk-3SUDBGEI.js} +41 -208
  22. package/dist/{chunk-5AJPUR72.js → chunk-3TQN67I2.js} +9 -9
  23. package/dist/{chunk-LBFQMYS3.js → chunk-3U4BL2EV.js} +5 -3
  24. package/dist/{chunk-UFYNOQK4.js → chunk-3UQADNG2.js} +7 -7
  25. package/dist/{chunk-V4ZKOKRB.js → chunk-434LRQ6Z.js} +61 -53
  26. package/dist/{chunk-NO7J45X6.js → chunk-4ATBOFRP.js} +713 -218
  27. package/dist/{chunk-ECOMVOHP.js → chunk-4DNL43EZ.js} +3 -3
  28. package/dist/{chunk-WT5TRMO4.js → chunk-4HFJKRGZ.js} +255 -82
  29. package/dist/{chunk-5A6XR3RJ.js → chunk-555E2WVV.js} +16 -2
  30. package/dist/{chunk-WURGVOZJ.js → chunk-5RTEFNBP.js} +18 -14
  31. package/dist/{config-YXARKGTX.js → chunk-64XJW7NT.js} +24 -268
  32. package/dist/{chunk-24S3DN22.js → chunk-6TKOFFGE.js} +4 -4
  33. package/dist/{chunk-YKRJTYNP.js → chunk-6UJ7RDI7.js} +4 -4
  34. package/dist/{chunk-MZNWZUJM.js → chunk-7FBCRWVT.js} +288 -288
  35. package/dist/{chunk-UA6W4XFJ.js → chunk-7JSOSVLP.js} +2 -2
  36. package/dist/chunk-7N3OLLSL.js +637 -0
  37. package/dist/{chunk-KKEYGFX4.js → chunk-7QQRPB2E.js} +11 -11
  38. package/dist/{chunk-N37QC5FV.js → chunk-A6DULIMH.js} +21 -9
  39. package/dist/{fleet-decisions-S3PTZV2D.js → chunk-AB3QXXBC.js} +5 -41
  40. package/dist/chunk-ACCECAH4.js +49 -0
  41. package/dist/{chunk-CP3HIR5H.js → chunk-AM6CEP2K.js} +20 -19
  42. package/dist/chunk-AUHVBIDW.js +19 -0
  43. package/dist/{chunk-BQQ5MXUC.js → chunk-AY4XE6GN.js} +19 -13
  44. package/dist/{chunk-ISNCCX42.js → chunk-BBA2TAWV.js} +10 -9
  45. package/dist/chunk-BFPHMSK7.js +169 -0
  46. package/dist/{chunk-LVFANMOH.js → chunk-BHJMMCXS.js} +4 -4
  47. package/dist/{chunk-DO7M3LSX.js → chunk-BMNVVKEW.js} +40 -93
  48. package/dist/{chunk-VTYHHQ57.js → chunk-CTGZCEI6.js} +2 -2
  49. package/dist/{chunk-RTLNFZMD.js → chunk-DIAJYJYG.js} +3 -3
  50. package/dist/chunk-EHZRAB4U.js +63 -0
  51. package/dist/{chunk-KS7ETA3P.js → chunk-EM2DIQAJ.js} +3 -3
  52. package/dist/{chunk-MNQN3X6Y.js → chunk-ETF4ROKH.js} +5 -5
  53. package/dist/{chunk-WN552PKN.js → chunk-F2YM3JY4.js} +744 -1134
  54. package/dist/{chunk-7EEGBKV4.js → chunk-FEBQWHJT.js} +24 -19
  55. package/dist/{chunk-4QKAITQT.js → chunk-FPS4R2RN.js} +74 -10
  56. package/dist/chunk-G5R53COU.js +68 -0
  57. package/dist/chunk-GHXGMFQ5.js +40 -0
  58. package/dist/{chunk-GFQ7P2UF.js → chunk-GJDRMBDI.js} +10 -10
  59. package/dist/{chunk-LZBMXNLP.js → chunk-GM4TY6VN.js} +43 -6
  60. package/dist/{chunk-NCCQ6DVS.js → chunk-GREYLTZ5.js} +8 -8
  61. package/dist/{chunk-HOX4YZ2K.js → chunk-H2WSCZZT.js} +19 -3
  62. package/dist/{chunk-3LXJOICS.js → chunk-H6IUCY6Q.js} +2 -2
  63. package/dist/{chunk-BO4XV5VX.js → chunk-H72DCH3E.js} +95 -206
  64. package/dist/{chunk-SEDI5K5B.js → chunk-H7TXJR23.js} +20 -20
  65. package/dist/chunk-HBJQQTKM.js +40 -0
  66. package/dist/chunk-HCVKSGNZ.js +990 -0
  67. package/dist/chunk-HVCAY2FH.js +67 -0
  68. package/dist/{chunk-34XHRVKG.js → chunk-I47EJPYL.js} +3 -3
  69. package/dist/{chunk-4N2RZ4TO.js → chunk-IALGWTLO.js} +3 -3
  70. package/dist/{chunk-IQCNVLO6.js → chunk-IALZJE37.js} +10 -7
  71. package/dist/{chunk-DLIYANB7.js → chunk-IC7JXLOM.js} +16 -11
  72. package/dist/{chunk-G4LGUTOE.js → chunk-IOSVTTCD.js} +5 -5
  73. package/dist/{chunk-DBREN25X.js → chunk-IPTPMLA6.js} +8 -3
  74. package/dist/{chunk-V552WL53.js → chunk-IZZI3SKQ.js} +3 -67
  75. package/dist/{chunk-TN5FW4XY.js → chunk-JIYWMQZ5.js} +12 -9
  76. package/dist/{chunk-T7QQBNLH.js → chunk-JKU34ACI.js} +10 -8
  77. package/dist/chunk-JOBN2YQQ.js +176 -0
  78. package/dist/chunk-JOL2QRLE.js +152 -0
  79. package/dist/{chunk-GXIWHXDB.js → chunk-JTR3VSV3.js} +3 -3
  80. package/dist/{chunk-T334FW2H.js → chunk-JU6MAMRJ.js} +7 -7
  81. package/dist/chunk-JURMQWVJ.js +15 -0
  82. package/dist/{chunk-CULVKYTK.js → chunk-K3XN4LZ4.js} +5 -5
  83. package/dist/{chunk-3T4DXWP6.js → chunk-KIVFXGBM.js} +27 -7
  84. package/dist/chunk-KKRXONXG.js +43 -0
  85. package/dist/{chunk-YPRSNUTC.js → chunk-KOAHT3N2.js} +2 -2
  86. package/dist/chunk-KP5BPXR3.js +73 -0
  87. package/dist/{chunk-UA3W4FGC.js → chunk-KRJQG47M.js} +6 -6
  88. package/dist/{chunk-GI5RRMAH.js → chunk-KW6OJ7IY.js} +19 -21
  89. package/dist/{chunk-A46ILRS2.js → chunk-L3NBWLSN.js} +4 -4
  90. package/dist/{chunk-MZHXENL7.js → chunk-L4RUTLRL.js} +8 -8
  91. package/dist/{chunk-P5SC4DLJ.js → chunk-LGTVWPRN.js} +2 -2
  92. package/dist/{chunk-65BGHOUR.js → chunk-LSQW6KZO.js} +5 -5
  93. package/dist/{chunk-TZHN5ITX.js → chunk-LWJYOHT3.js} +8 -8
  94. package/dist/{chunk-U3TPUXOQ.js → chunk-M6YLF66Z.js} +74 -40
  95. package/dist/chunk-MJ4QEJVT.js +185 -0
  96. package/dist/{chunk-T4TY5GG3.js → chunk-MO65K5CH.js} +5 -5
  97. package/dist/{chunk-TZ6UVP2H.js → chunk-MTOZEQHL.js} +8 -8
  98. package/dist/chunk-MZDPF35R.js +45 -0
  99. package/dist/{chunk-P4DL2LM5.js → chunk-MZKYVIWW.js} +8 -119
  100. package/dist/{chunk-KAFMW7WM.js → chunk-NBPA5QM6.js} +2 -2
  101. package/dist/{chunk-EUEXGXXR.js → chunk-NMBEW4PP.js} +5 -5
  102. package/dist/{chunk-SELG4SUR.js → chunk-NPLLK3HO.js} +72 -89
  103. package/dist/{chunk-VCRVEDUC.js → chunk-NSYGPIVW.js} +5 -5
  104. package/dist/{context-7HJEWTTP.js → chunk-NXTV5OI5.js} +36 -90
  105. package/dist/{chunk-IMOD2YPV.js → chunk-NYDG4QP4.js} +9 -19
  106. package/dist/{chunk-6CA2BHOR.js → chunk-OA2GDACN.js} +5 -5
  107. package/dist/{chunk-A67NR5AT.js → chunk-PJI57EC6.js} +14 -11
  108. package/dist/{chunk-IJMW64DX.js → chunk-PJJBUGMR.js} +50 -50
  109. package/dist/{chunk-CPXGJI2A.js → chunk-PNJE7JPS.js} +20 -5
  110. package/dist/chunk-PP23PZEV.js +1347 -0
  111. package/dist/chunk-PPIFDSBK.js +409 -0
  112. package/dist/{chunk-T52TPHYC.js → chunk-PTFISXQO.js} +8 -7
  113. package/dist/{chunk-C6GEXX4L.js → chunk-QB33Z5S7.js} +5 -5
  114. package/dist/{chunk-VMATUZB6.js → chunk-QGNII5VC.js} +10 -10
  115. package/dist/{chunk-TLTGZTXI.js → chunk-QI72X67S.js} +104 -27
  116. package/dist/chunk-QKHZZFKH.js +98 -0
  117. package/dist/{chunk-PFLOULP3.js → chunk-RDKX2PME.js} +4 -4
  118. package/dist/{chunk-B5ZTR6KZ.js → chunk-RL7LJYN4.js} +1 -1
  119. package/dist/chunk-RPMNIFRY.js +65 -0
  120. package/dist/{chunk-L3Z5ANCV.js → chunk-RQROVOV3.js} +13 -11
  121. package/dist/{chunk-6YHPAAZR.js → chunk-S34A7BSP.js} +3 -3
  122. package/dist/{chunk-5ZSZEYJK.js → chunk-SJETVJHX.js} +2 -2
  123. package/dist/{chunk-77CZRFTE.js → chunk-SJMNU4ZS.js} +2 -2
  124. package/dist/chunk-SLLG2G44.js +85 -0
  125. package/dist/{chunk-GVZFCJHE.js → chunk-SQAZN2V3.js} +48 -22
  126. package/dist/{chunk-2O2LVQQK.js → chunk-SQBT46OF.js} +2 -2
  127. package/dist/{chunk-ZGIGW4ZG.js → chunk-TCUOGIL2.js} +5 -5
  128. package/dist/{chunk-DACXIVVF.js → chunk-TIWPKCVO.js} +5 -5
  129. package/dist/{chunk-5CMARGPF.js → chunk-UIU7MGZ3.js} +11 -2
  130. package/dist/chunk-USBBEKHW.js +177 -0
  131. package/dist/{chunk-WLHX3MM5.js → chunk-V4XJWDHR.js} +21 -11
  132. package/dist/{chunk-MBJO5VNZ.js → chunk-VPWGADBG.js} +33 -33
  133. package/dist/{chunk-UUQ5G6EZ.js → chunk-VWFCAK34.js} +6 -6
  134. package/dist/{chunk-6CB2IL4N.js → chunk-W5RM7YAH.js} +1 -1
  135. package/dist/{chunk-4MFBBY2Z.js → chunk-W72LLZAV.js} +3 -3
  136. package/dist/{chunk-4UHVS5T7.js → chunk-WGRDABW7.js} +8 -8
  137. package/dist/{chunk-XR3XJN2M.js → chunk-WWRV5RJI.js} +4 -4
  138. package/dist/{chunk-24TOGHPO.js → chunk-X6FLVUM5.js} +4 -4
  139. package/dist/{chunk-6YA46L5A.js → chunk-XFLSL7BT.js} +2 -2
  140. package/dist/{chunk-QKWL7SYE.js → chunk-XJZEDCNT.js} +50 -39
  141. package/dist/{chunk-UWD3JD5X.js → chunk-XLLEL3K7.js} +10 -10
  142. package/dist/{chunk-2GPGAE5W.js → chunk-XNIZBOFV.js} +15 -1
  143. package/dist/chunk-XNZWWDC3.js +686 -0
  144. package/dist/{chunk-WBVKKTUT.js → chunk-XRECG65F.js} +2 -2
  145. package/dist/chunk-XTQ7MEJG.js +457 -0
  146. package/dist/{chunk-GEVQNST4.js → chunk-XZWSP67B.js} +2 -2
  147. package/dist/{chunk-WB7POC6M.js → chunk-Y3M2T5RO.js} +6 -6
  148. package/dist/{chunk-RXFPB32E.js → chunk-YJCCMYYT.js} +2 -2
  149. package/dist/{chunk-EUZRMP4Y.js → chunk-YPQOPFP7.js} +20 -20
  150. package/dist/{chunk-USZA7GWL.js → chunk-YQ3GFEUY.js} +2 -2
  151. package/dist/{chunk-BAU36233.js → chunk-YQYINEJI.js} +9 -9
  152. package/dist/{chunk-CE64C5K5.js → chunk-ZF6CV4WZ.js} +1356 -235
  153. package/dist/{chunk-3XE4NRLF.js → chunk-ZKJU55MX.js} +4 -2
  154. package/dist/{chunk-IZYTT3CD.js → chunk-ZKQ63XZ5.js} +16 -39
  155. package/dist/{chunk-6TAATXXH.js → chunk-ZKVMDNAN.js} +7 -7
  156. package/dist/chunk-ZST3FRCV.js +132 -0
  157. package/dist/cli/index.js +50 -38
  158. package/dist/{clio-L2P7S2R2.js → clio-JUDCLNHC.js} +11 -11
  159. package/dist/clio-context-tools-FT672MNZ.js +136 -0
  160. package/dist/{code-nav-B5LNX4KU.js → code-nav-7OVCTP2Z.js} +39 -37
  161. package/dist/{components-63MMQKUT.js → components-OZXZMDWU.js} +11 -11
  162. package/dist/config-P3ZQVF63.js +275 -0
  163. package/dist/config-graph-GKAOBAS5.js +160 -0
  164. package/dist/{configure-LMVQJ46J.js → configure-25LRYZJG.js} +56 -55
  165. package/dist/context-72VQV7JX.js +73 -0
  166. package/dist/{context-YG2LZDYZ.js → context-COWRWXP3.js} +89 -83
  167. package/dist/{context-XSZKKFBW.js → context-WB3D474G.js} +16 -16
  168. package/dist/{context-clear-AC5NXHM2.js → context-clear-Y4LYMWC6.js} +88 -82
  169. package/dist/{context-index-KKTPRV5G.js → context-index-W6A4V7OC.js} +4 -4
  170. package/dist/{context-map-T7ROR5D5.js → context-map-DKL3QT6D.js} +3 -3
  171. package/dist/{context-working-set-F4Q4J3NS.js → context-working-set-TMZYVC7A.js} +27 -25
  172. package/dist/data-tool-KMBWKKWR.js +2987 -0
  173. package/dist/{detail-H73BEF2N.js → detail-4GLROGY5.js} +89 -83
  174. package/dist/{dispatch-runner-3RY5FSJC.js → dispatch-runner-TR3LBP5P.js} +113 -107
  175. package/dist/docs-ZK777W2G.js +101 -0
  176. package/dist/{doctor-EQYJOGUG.js → doctor-WC4OV2OB.js} +76 -73
  177. package/dist/{eval-4P7O6CCE.js → eval-FUNWJNUJ.js} +88 -73
  178. package/dist/{eval-inventory-QOYZERXJ.js → eval-inventory-CX24K2JT.js} +5 -60
  179. package/dist/evals-L73EBHSU.js +104 -0
  180. package/dist/{evidence-O76QF7TZ.js → evidence-AVJ2RTHX.js} +99 -93
  181. package/dist/{evidence-D6GUSYJW.js → evidence-P4NZOAK7.js} +88 -82
  182. package/dist/evidence-Y55WKYHH.js +246 -0
  183. package/dist/{evolve-H47BCETS.js → evolve-MAWKRYWF.js} +93 -87
  184. package/dist/{extensions-NNL3ZOCU.js → extensions-PYQH3H47.js} +14 -13
  185. package/dist/fleet-M4H2QBWT.js +268 -0
  186. package/dist/{fleet-KMNS6NOM.js → fleet-ULBXXRDR.js} +146 -138
  187. package/dist/{fleet-commands-DOWSYCBX.js → fleet-commands-7NNC4JZU.js} +18 -17
  188. package/dist/fleet-decisions-EHEY7KPU.js +52 -0
  189. package/dist/{fleet-graph-F2DE2TME.js → fleet-graph-LQ2AHZT3.js} +24 -24
  190. package/dist/{fleet-inspect-EN2Q6IVB.js → fleet-inspect-5IGBIIYZ.js} +98 -258
  191. package/dist/{fleet-preflight-FRLETDD3.js → fleet-preflight-UTTNOKMG.js} +9 -4
  192. package/dist/{fleet-validate-B2XDLS57.js → fleet-validate-YGILJKA6.js} +29 -29
  193. package/dist/{fleet-verify-4JKUWGJ7.js → fleet-verify-AUWTCDKR.js} +88 -82
  194. package/dist/{fleet-view-BHJFW26B.js → fleet-view-TGUFCY5A.js} +90 -84
  195. package/dist/{init-XAT5N5YM.js → init-GFN2Z7NF.js} +111 -104
  196. package/dist/install-6PIF6F6W.js +19 -0
  197. package/dist/{interop-FVECHFKG.js → interop-EF5JUWWK.js} +29 -29
  198. package/dist/{inventory-7KFQGLCV.js → inventory-I6VJDDYF.js} +90 -84
  199. package/dist/library-3J5IO2OJ.js +75 -0
  200. package/dist/{library-QAPAO23R.js → library-IJTOFTDS.js} +20 -19
  201. package/dist/{library-NY2XOT75.js → library-Z3KZSHPE.js} +35 -35
  202. package/dist/{library-import-5Y6MAS3R.js → library-import-IMKFLDHX.js} +29 -29
  203. package/dist/{library-inventory-JT6HWITQ.js → library-inventory-CQP5D6GU.js} +21 -21
  204. package/dist/{library-validation-EQUH25DC.js → library-validation-33UTX7AI.js} +19 -19
  205. package/dist/mcp-5FWZKUS6.js +26 -0
  206. package/dist/{memory-DYVTTCP6.js → memory-36CWN67Y.js} +93 -87
  207. package/dist/{models-MASFJ6Y2.js → models-KQ6PQJJQ.js} +57 -56
  208. package/dist/{monitor-YMP4NXJJ.js → monitor-XX6ZD6KC.js} +98 -91
  209. package/dist/{orchestrator-AFQRRTEI.js → orchestrator-SK6HDAOP.js} +1537 -832
  210. package/dist/{panes-NICTHQCV.js → panes-L27QRXUH.js} +14 -14
  211. package/dist/{panes-D3Y2KFG5.js → panes-LXZIWNOZ.js} +4 -4
  212. package/dist/{paths-PSFAUIGO.js → paths-7DJDU4P4.js} +6 -6
  213. package/dist/{preload-5Q7VXRFJ.js → preload-K2TDYI4Y.js} +88 -82
  214. package/dist/{reset-7NKZK7JN.js → reset-73VU3XNT.js} +13 -13
  215. package/dist/{resources-NILSIZAT.js → resources-3BYJYVYL.js} +24 -24
  216. package/dist/{run-BPZGEBZV.js → run-AR7PY6GW.js} +144 -136
  217. package/dist/run-script-H2KUDIII.js +41 -0
  218. package/dist/settings-3VMBMWID.js +72 -0
  219. package/dist/{share-EZ6ERBMH.js → share-HVWH4FPF.js} +30 -30
  220. package/dist/{skills-BTVVNYVM.js → skills-5TYEY75Q.js} +30 -30
  221. package/dist/{skills-eval-UY34MNK7.js → skills-eval-CK3MD63Z.js} +114 -103
  222. package/dist/{skills-inventory-JDHSIA7I.js → skills-inventory-KSFYG3I6.js} +24 -24
  223. package/dist/{slash-commands-K4FNQ2AT.js → slash-commands-DMVHML7P.js} +60 -57
  224. package/dist/{steer-2B3EQGFH.js → steer-XCD6V3EW.js} +4 -4
  225. package/dist/{support-L2SOL3IE.js → support-JAZL6VBR.js} +7 -7
  226. package/dist/system-3TDQRMZZ.js +116 -0
  227. package/dist/{targets-44VKGFLN.js → targets-EZKHAYRN.js} +74 -72
  228. package/dist/{tasks-3KODKFU7.js → tasks-SNEFHWYW.js} +18 -18
  229. package/dist/{terminal-lease-LXA7MMPO.js → terminal-lease-BNLFA4OF.js} +8 -7
  230. package/dist/{tools-3UB7TEVR.js → tools-7IM6BDCE.js} +12 -12
  231. package/dist/{trace-TAMIU4OJ.js → trace-C3MBGD4S.js} +16 -65
  232. package/dist/{tui-primitives-A6MUW32V.js → tui-primitives-36BY2774.js} +2 -2
  233. package/dist/{uninstall-QYVRPEM4.js → uninstall-WWLOSZ42.js} +35 -10
  234. package/dist/{upgrade-7PMKM2JH.js → upgrade-ETK2JNSJ.js} +42 -51
  235. package/dist/{usage-6EQV7EQK.js → usage-S2HOB7BZ.js} +112 -102
  236. package/dist/{verifiers-JLITWSHU.js → verifiers-QDTEVH7R.js} +26 -24
  237. package/dist/{verify-T7NAEVIG.js → verify-SUKUK6XM.js} +16 -15
  238. package/dist/web/client/THIRD_PARTY_LICENSES.md +1809 -0
  239. package/dist/web/client/assets/abnfDiagram-VCTEODGH-BznNOe_I.js +1 -0
  240. package/dist/web/client/assets/arc-Pry-7G1_.js +1 -0
  241. package/dist/web/client/assets/architecture-7GRP2DOG-BQO9DL_y.js +1 -0
  242. package/dist/web/client/assets/architectureDiagram-5GKGNRK7-CKPbdvyx.js +36 -0
  243. package/dist/web/client/assets/array-BifhSqXX.js +1 -0
  244. package/dist/web/client/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2 +0 -0
  245. package/dist/web/client/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2 +0 -0
  246. package/dist/web/client/assets/blockDiagram-I7D4REHJ-prINbpbM.js +129 -0
  247. package/dist/web/client/assets/c4Diagram-7LVT6UL2-DkVRKtyU.js +38 -0
  248. package/dist/web/client/assets/channel-c4EeUUqA.js +1 -0
  249. package/dist/web/client/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  250. package/dist/web/client/assets/chunk-4HAMMTFA-CV0Z1ApC.js +62 -0
  251. package/dist/web/client/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  252. package/dist/web/client/assets/chunk-75Z2AOVW-D34Nohxq.js +2 -0
  253. package/dist/web/client/assets/chunk-DU6HZSFF-Das_cS-O.js +125 -0
  254. package/dist/web/client/assets/chunk-F27PBJKO-CmRojxkG.js +1 -0
  255. package/dist/web/client/assets/chunk-FOHPRMQF-CoA4358r.js +161 -0
  256. package/dist/web/client/assets/chunk-GMAD6QVW-ClYZmc73.js +72 -0
  257. package/dist/web/client/assets/chunk-GVQU2GXP-B2BiHFt-.js +1 -0
  258. package/dist/web/client/assets/chunk-IMKFNOWR-BGApZ8nP.js +231 -0
  259. package/dist/web/client/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  260. package/dist/web/client/assets/chunk-L3NEJ4N5-DIzCgpkY.js +1 -0
  261. package/dist/web/client/assets/chunk-OSK3NFVY-BPT-yePv.js +10 -0
  262. package/dist/web/client/assets/chunk-P2QGCYS3-BC1WTc2t.js +1 -0
  263. package/dist/web/client/assets/chunk-POPQ4Y6H-BSjzBmZU.js +1 -0
  264. package/dist/web/client/assets/chunk-PWAF6VOD-BIjLs86Z.js +1 -0
  265. package/dist/web/client/assets/chunk-SHT3W25Y-CduDz2cm.js +168 -0
  266. package/dist/web/client/assets/chunk-SVP7TREG-XUn4pPAP.js +88 -0
  267. package/dist/web/client/assets/chunk-TICWLB2K-DcBy2DKy.js +206 -0
  268. package/dist/web/client/assets/chunk-XXDRQBXY-DqAYeljN.js +1 -0
  269. package/dist/web/client/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  270. package/dist/web/client/assets/classDiagram-ZZMXUADV-C0HR7YKN.js +1 -0
  271. package/dist/web/client/assets/classDiagram-v2-VYDZK3BY-C0HR7YKN.js +1 -0
  272. package/dist/web/client/assets/commit-mono-latin-400-normal-s0S3qwFW.woff +0 -0
  273. package/dist/web/client/assets/commit-mono-latin-400-normal-wzhe4RuD.woff2 +0 -0
  274. package/dist/web/client/assets/cose-bilkent-JH36ORCC-CVh1icwb.js +1 -0
  275. package/dist/web/client/assets/cynefin-OW5HDTMX-BecPbyM6.js +1 -0
  276. package/dist/web/client/assets/cynefinDiagram-5FMLGOSQ-BzMzFwyT.js +62 -0
  277. package/dist/web/client/assets/cytoscape.esm-c2aL46s-.js +321 -0
  278. package/dist/web/client/assets/dagre-C-rnJpZF.js +1 -0
  279. package/dist/web/client/assets/dagre-GXQ25YYZ-CAWJmRMG.js +4 -0
  280. package/dist/web/client/assets/defaultLocale-BFoDCU3G.js +1 -0
  281. package/dist/web/client/assets/diagram-S7CK7UJ4--lp0ALmn.js +30 -0
  282. package/dist/web/client/assets/diagram-UQ7AKVKN-gKUnsjcj.js +41 -0
  283. package/dist/web/client/assets/diagram-VSXAHHWV-BoN5D1Gh.js +3 -0
  284. package/dist/web/client/assets/diagram-VX7I27RA-BMtuswQ6.js +24 -0
  285. package/dist/web/client/assets/diagram-Z3DM3KII-DtU8LXrA.js +24 -0
  286. package/dist/web/client/assets/dist-v5Q1xZ2K.js +1 -0
  287. package/dist/web/client/assets/ebnfDiagram-PWID7BFC-DDcnv9BH.js +1 -0
  288. package/dist/web/client/assets/erDiagram-RLTQ6QDP-DvRb4iDL.js +99 -0
  289. package/dist/web/client/assets/eventmodeling-NTZA5JFV-01h4SbTc.js +1 -0
  290. package/dist/web/client/assets/flowDiagram-HODETNUW-Bll_YZ6T.js +1 -0
  291. package/dist/web/client/assets/framework-YGoR34M4.js +9 -0
  292. package/dist/web/client/assets/ganttDiagram-EL5Y4UJY-DdFZ9hvH.js +292 -0
  293. package/dist/web/client/assets/gitGraph-4MIJSDKK-DjD_AAMj.js +1 -0
  294. package/dist/web/client/assets/gitGraphDiagram-WWUBYQGX-CDyN9n2u.js +106 -0
  295. package/dist/web/client/assets/graphlib-DS17s2tU.js +1 -0
  296. package/dist/web/client/assets/index-CVcy0FAn.js +75 -0
  297. package/dist/web/client/assets/index-Dsi52apB.css +1 -0
  298. package/dist/web/client/assets/info-A6RAGUB7-C_XK8Hq0.js +1 -0
  299. package/dist/web/client/assets/infoDiagram-27XIBGKW-DIe4tJ1i.js +2 -0
  300. package/dist/web/client/assets/init-C-OQMol4.js +1 -0
  301. package/dist/web/client/assets/ishikawaDiagram-5VMMS53U-CVl5unKI.js +70 -0
  302. package/dist/web/client/assets/journeyDiagram-3NMN7TZE-CPEB1Vt8.js +139 -0
  303. package/dist/web/client/assets/kanban-definition-UXKFOSKX-j-9WXjYQ.js +89 -0
  304. package/dist/web/client/assets/katex-ZlcWpGUi.js +257 -0
  305. package/dist/web/client/assets/line-BIDAcEtX.js +1 -0
  306. package/dist/web/client/assets/linear-SzVmGSw4.js +1 -0
  307. package/dist/web/client/assets/mermaid-parser.core-Ux4vssh0.js +7 -0
  308. package/dist/web/client/assets/mermaid.core-CDuwVKeh.js +44 -0
  309. package/dist/web/client/assets/mindmap-definition-YA3MSWOX-5MlQEeQ6.js +96 -0
  310. package/dist/web/client/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2 +0 -0
  311. package/dist/web/client/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2 +0 -0
  312. package/dist/web/client/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2 +0 -0
  313. package/dist/web/client/assets/ordinal-BDEzSJ7C.js +1 -0
  314. package/dist/web/client/assets/packet-AYTQ26CC-DRO66c9Q.js +1 -0
  315. package/dist/web/client/assets/path-fybaL0A-.js +1 -0
  316. package/dist/web/client/assets/pegDiagram-XKGWAZYB-BakZnSjM.js +1 -0
  317. package/dist/web/client/assets/pie-WAS4IAKB-BEzcmhz8.js +1 -0
  318. package/dist/web/client/assets/pieDiagram-E7YTZNPT-DpmqgoPt.js +39 -0
  319. package/dist/web/client/assets/prism-bash-D6zCJ74D.js +1 -0
  320. package/dist/web/client/assets/prism-c-04YixN25.js +1 -0
  321. package/dist/web/client/assets/prism-clike-DapgWyxx.js +1 -0
  322. package/dist/web/client/assets/prism-core-BtsZdCS6.js +1 -0
  323. package/dist/web/client/assets/prism-cpp-C-lJbC-6.js +1 -0
  324. package/dist/web/client/assets/prism-css-CPgOzxXp.js +1 -0
  325. package/dist/web/client/assets/prism-diff-BF8m0_mq.js +3 -0
  326. package/dist/web/client/assets/prism-docker-DkT6yOFj.js +1 -0
  327. package/dist/web/client/assets/prism-fortran-Be5x3y1V.js +1 -0
  328. package/dist/web/client/assets/prism-go-C_8qAH5n.js +1 -0
  329. package/dist/web/client/assets/prism-ini-BESK3y0r.js +1 -0
  330. package/dist/web/client/assets/prism-javascript-BnO-swvr.js +1 -0
  331. package/dist/web/client/assets/prism-json-Dp_-W-Hv.js +1 -0
  332. package/dist/web/client/assets/prism-jsx-D-D0NWtC.js +1 -0
  333. package/dist/web/client/assets/prism-julia-DIjOgiAV.js +1 -0
  334. package/dist/web/client/assets/prism-latex-DNMbqcH_.js +1 -0
  335. package/dist/web/client/assets/prism-makefile-CRKWLQ8l.js +1 -0
  336. package/dist/web/client/assets/prism-markdown-C0FPJ1Iz.js +1 -0
  337. package/dist/web/client/assets/prism-markup-Cp04rIa1.js +1 -0
  338. package/dist/web/client/assets/prism-matlab-D-nk08al.js +1 -0
  339. package/dist/web/client/assets/prism-python-CfiSVtM6.js +1 -0
  340. package/dist/web/client/assets/prism-r-QmNGR8LX.js +1 -0
  341. package/dist/web/client/assets/prism-rust-Bu9N8X3N.js +1 -0
  342. package/dist/web/client/assets/prism-shell-session-Be4UuYoM.js +1 -0
  343. package/dist/web/client/assets/prism-sql-CYhVDMEE.js +1 -0
  344. package/dist/web/client/assets/prism-toml-DKb54GAT.js +1 -0
  345. package/dist/web/client/assets/prism-tsx-p6J2Kc_4.js +1 -0
  346. package/dist/web/client/assets/prism-typescript-BMqONzxf.js +1 -0
  347. package/dist/web/client/assets/prism-yaml-C0JHu8gr.js +1 -0
  348. package/dist/web/client/assets/purify.es-ChwZkWde.js +3 -0
  349. package/dist/web/client/assets/quadrantDiagram-AXDQQJYC-DuMPwwV2.js +7 -0
  350. package/dist/web/client/assets/radar-RG4KPBEZ-Djm3oXl5.js +1 -0
  351. package/dist/web/client/assets/railroad-74A4TZTK-Cpvkwsao.js +1 -0
  352. package/dist/web/client/assets/railroad-abnf-HS5TGJTU-CpRQ3ruG.js +1 -0
  353. package/dist/web/client/assets/railroad-ebnf-LZEXJU2U-1Rm5a5eJ.js +1 -0
  354. package/dist/web/client/assets/railroad-peg-WCYAUIDC-C8344cTh.js +1 -0
  355. package/dist/web/client/assets/railroadDiagram-O6MQD6OU-CgMS4B6R.js +1 -0
  356. package/dist/web/client/assets/requirementDiagram-BXWQKSXE-CX5eoNdN.js +84 -0
  357. package/dist/web/client/assets/rolldown-runtime-hePW80VL.js +1 -0
  358. package/dist/web/client/assets/rough.esm-Dy-Kn_BL.js +1 -0
  359. package/dist/web/client/assets/sankeyDiagram-P5KCCOFB-CODBX2N3.js +40 -0
  360. package/dist/web/client/assets/sequenceDiagram-WJ2MYXX4-eUhhF8OR.js +162 -0
  361. package/dist/web/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +1 -0
  362. package/dist/web/client/assets/src-B6xuSHsQ.js +1 -0
  363. package/dist/web/client/assets/stateDiagram-D77RDMKH-vR6l0NC2.js +1 -0
  364. package/dist/web/client/assets/stateDiagram-v2-MP3YSRHH-BYUm8jLY.js +1 -0
  365. package/dist/web/client/assets/swimlanes-42K2YHIH-v9Tw_zX7.js +1 -0
  366. package/dist/web/client/assets/swimlanesDiagram-VR7AAH4N-B2jdCvhD.js +8 -0
  367. package/dist/web/client/assets/timeline-definition-24CTP7MA-DxianbhU.js +120 -0
  368. package/dist/web/client/assets/treeView-Q6P3EWNA-DLxnZb9R.js +1 -0
  369. package/dist/web/client/assets/treemap-WGGIJYW6-I7UnZ6xJ.js +1 -0
  370. package/dist/web/client/assets/vennDiagram-4TSXK5OY-Ar7M8Mrj.js +34 -0
  371. package/dist/web/client/assets/wardley-WFR3VGLG-B8ZSHeDu.js +1 -0
  372. package/dist/web/client/assets/wardleyDiagram-VM6X3IG4-Qks2FmIn.js +78 -0
  373. package/dist/web/client/assets/xychartDiagram-S5SC5T6Z-BBBjRtiE.js +7 -0
  374. package/dist/web/client/clio-coder-logo.webp +0 -0
  375. package/dist/web/client/icon-192.png +0 -0
  376. package/dist/web/client/icon-512.png +0 -0
  377. package/dist/web/client/index.html +6 -0
  378. package/dist/web/client/manifest.webmanifest +15 -0
  379. package/dist/web/client/offline.css +55 -0
  380. package/dist/web/client/offline.html +5 -0
  381. package/dist/web/client/offline.js +27 -0
  382. package/dist/web/client/sw.js +34 -0
  383. package/dist/web/ops-worker.js +37 -0
  384. package/dist/web/reads-worker.js +1726 -0
  385. package/dist/web/server.js +8499 -0
  386. package/dist/web-EMGUGGEI.js +13 -0
  387. package/dist/{web-fetch-W4TNW4Q7.js → web-fetch-6BRRVQON.js} +22 -5
  388. package/dist/{wiki-generate-T2TJQJUA.js → wiki-generate-XHSJTDOP.js} +120 -113
  389. package/dist/{with-panes-CHFC7HGI.js → with-panes-Z6BTEHMZ.js} +12 -12
  390. package/dist/worker/entry.js +113 -99
  391. package/docs/README.md +28 -27
  392. package/docs/architecture/acp.md +5 -9
  393. package/docs/architecture/alcf-provider.md +0 -3
  394. package/docs/architecture/architecture.md +0 -3
  395. package/docs/architecture/artifact-placement.md +12 -4
  396. package/docs/architecture/artifact-versions.md +0 -3
  397. package/docs/architecture/capacity-and-scheduling.md +0 -3
  398. package/docs/architecture/context-engine.md +0 -3
  399. package/docs/architecture/context-working-set.md +0 -3
  400. package/docs/architecture/dispatch-architecture-rationale.md +0 -3
  401. package/docs/architecture/dispatch-typed-intent.md +0 -3
  402. package/docs/architecture/evidence-and-memory.md +0 -3
  403. package/docs/architecture/library.md +1 -3
  404. package/docs/architecture/middleware-and-components.md +0 -3
  405. package/docs/architecture/model-catalog.md +1 -4
  406. package/docs/architecture/observability.md +0 -3
  407. package/docs/architecture/pi-boundary.md +6 -9
  408. package/docs/architecture/prompt-envelope-and-tools.md +37 -30
  409. package/docs/architecture/provider-adapter-cookbook.md +1 -4
  410. package/docs/architecture/safety-model.md +19 -9
  411. package/docs/architecture/session-lifecycle.md +10 -7
  412. package/docs/architecture/time-conventions.md +0 -3
  413. package/docs/architecture/trace-store.md +28 -20
  414. package/docs/architecture/tui-design.md +38 -18
  415. package/docs/architecture/worker-context.md +1 -3
  416. package/docs/architecture/worker-dispatch-mechanics.md +1 -4
  417. package/docs/guide/authoring-plugins.md +1 -3
  418. package/docs/guide/built-in-agents.md +0 -3
  419. package/docs/guide/commands-and-modes.md +41 -25
  420. package/docs/guide/configuration-and-targets.md +204 -9
  421. package/docs/guide/configuration-reference.md +125 -17
  422. package/docs/guide/environment-variables.md +2 -8
  423. package/docs/guide/exit-codes-and-output.md +0 -3
  424. package/docs/guide/extensions-and-sharing.md +0 -3
  425. package/docs/guide/fleet-dispatch.md +3 -5
  426. package/docs/guide/glossary.md +1 -4
  427. package/docs/guide/harness-extensions.md +0 -2
  428. package/docs/guide/installation-and-lifecycle.md +3 -6
  429. package/docs/guide/interop.md +0 -2
  430. package/docs/guide/panes-and-files.md +0 -3
  431. package/docs/guide/plugins.md +0 -3
  432. package/docs/guide/proactive-memory.md +0 -3
  433. package/docs/guide/resource-library.md +1 -3
  434. package/docs/guide/skills-marketplace.md +0 -2
  435. package/docs/guide/tool-usage.md +166 -67
  436. package/docs/guide/troubleshooting.md +1 -4
  437. package/docs/history/config-knobs-audit.md +0 -3
  438. package/docs/history/release-cut-checklist.md +0 -3
  439. package/docs/process/development-pipeline.md +0 -3
  440. package/docs/process/documentation-coverage.md +3 -3
  441. package/docs/process/documentation-guide.md +16 -22
  442. package/docs/process/eval-runner.md +0 -3
  443. package/docs/process/evals-internal.md +0 -3
  444. package/docs/process/evolution.md +0 -3
  445. package/docs/process/fleet-demo-runbook.md +6 -9
  446. package/docs/process/git-commit-provenance.md +0 -3
  447. package/docs/process/performance-methodology.md +1 -4
  448. package/docs/process/release-cut-checklist.md +114 -221
  449. package/docs/process/scientific-validation.md +23 -6
  450. package/docs/process/tool-audit-v0.4.9.md +357 -0
  451. package/library/registry.yaml +2 -2
  452. package/library/skills/meta/clio-coder-test/SKILL.md +25 -15
  453. package/library/skills/meta/clio-coder-test/evals.md +16 -2
  454. package/library/skills/meta/clio-coder-test/plugin.json +1 -1
  455. package/library/skills/meta/clio-coder-test/references/test-map.md +19 -18
  456. package/library/skills/registry.yaml +2 -2
  457. package/library/skills/skill-marketplace.json +1 -1
  458. package/package.json +13 -11
  459. package/src/cli/argv.ts +31 -0
  460. package/src/cli/clio.ts +17 -13
  461. package/src/cli/config.ts +4 -0
  462. package/src/cli/docs.ts +65 -328
  463. package/src/cli/doctor-panes.ts +1 -1
  464. package/src/cli/doctor.ts +3 -1
  465. package/src/cli/index.ts +17 -2
  466. package/src/cli/mcp.ts +106 -0
  467. package/src/cli/skills-eval.ts +8 -2
  468. package/src/cli/trace.ts +4 -65
  469. package/src/cli/uninstall.ts +26 -0
  470. package/src/cli/upgrade.ts +34 -38
  471. package/src/cli/usage.ts +3 -0
  472. package/src/cli/verifiers.ts +1 -1
  473. package/src/cli/web.ts +79 -0
  474. package/src/core/bash-exec.ts +27 -4
  475. package/src/core/bus-events.ts +3 -4
  476. package/src/core/config.ts +73 -1
  477. package/src/core/defaults.ts +10 -1
  478. package/src/core/domain-loader.ts +37 -28
  479. package/src/core/event-bus.ts +1 -1
  480. package/src/core/run-records.ts +438 -0
  481. package/src/core/safe-exec.ts +506 -56
  482. package/src/core/skill-activation.ts +5 -3
  483. package/src/core/termination.ts +16 -12
  484. package/src/core/tool-names.ts +33 -12
  485. package/src/domains/agents/contract.ts +1 -1
  486. package/src/domains/agents/extension.ts +18 -10
  487. package/src/domains/config/extension.ts +5 -4
  488. package/src/domains/context/clio-md.ts +1 -1
  489. package/src/domains/context/worker/pressure.ts +6 -2
  490. package/src/domains/context/working-set/path-index.ts +7 -2
  491. package/src/domains/dispatch/code-step.ts +7 -2
  492. package/src/domains/dispatch/contract.ts +7 -0
  493. package/src/domains/dispatch/execution-role.ts +3 -3
  494. package/src/domains/dispatch/execution-scheduler.ts +204 -79
  495. package/src/domains/dispatch/extension.ts +206 -26
  496. package/src/domains/dispatch/fleet-preflight.ts +18 -3
  497. package/src/domains/dispatch/fleet-run.ts +1 -0
  498. package/src/domains/dispatch/gate-decisions.ts +3 -3
  499. package/src/domains/dispatch/heartbeat.ts +1 -1
  500. package/src/domains/dispatch/host-verification.ts +16 -14
  501. package/src/domains/dispatch/index.ts +1 -0
  502. package/src/domains/dispatch/orphan-recovery.ts +1 -0
  503. package/src/domains/dispatch/receipt-findings.ts +3 -4
  504. package/src/domains/dispatch/receipt-integrity.ts +3 -0
  505. package/src/domains/dispatch/reservation-store.ts +7 -9
  506. package/src/domains/dispatch/route-facts.ts +1 -1
  507. package/src/domains/dispatch/state.ts +4 -5
  508. package/src/domains/dispatch/types.ts +3 -1
  509. package/src/domains/eval/metrics/tracked.ts +22 -2
  510. package/src/domains/evidence/build.ts +35 -7
  511. package/src/domains/extensions/operator-runtime.ts +3 -1
  512. package/src/domains/gateway/mcp/client.ts +923 -0
  513. package/src/domains/gateway/mcp/config.ts +456 -0
  514. package/src/domains/gateway/mcp/index.ts +88 -0
  515. package/src/domains/gateway/mcp/protocol.ts +273 -0
  516. package/src/domains/gateway/mcp/trust.ts +263 -0
  517. package/src/domains/lifecycle/doctor.ts +17 -3
  518. package/src/domains/middleware/hooks.ts +2 -2
  519. package/src/domains/mux/contract.ts +5 -9
  520. package/src/domains/mux/detect.ts +1 -1
  521. package/src/domains/mux/extension.ts +1 -1
  522. package/src/domains/mux/protocol.ts +5 -7
  523. package/src/domains/mux/socket-client.ts +3 -3
  524. package/src/domains/observability/accountability.ts +2 -2
  525. package/src/domains/observability/background-memory-usage.ts +3 -0
  526. package/src/domains/observability/compaction-usage.ts +2 -0
  527. package/src/domains/observability/contract.ts +7 -3
  528. package/src/domains/observability/cost.ts +5 -0
  529. package/src/domains/observability/evidence-index.ts +2 -2
  530. package/src/domains/observability/extension.ts +1 -0
  531. package/src/domains/observability/out-of-turn-usage.ts +2 -0
  532. package/src/domains/observability/projection.ts +10 -0
  533. package/src/domains/observability/trace-store.ts +65 -5
  534. package/src/domains/prompts/compiler.ts +41 -23
  535. package/src/domains/prompts/extension.ts +4 -17
  536. package/src/domains/prompts/fragments/identity/docs-routing.md +2 -2
  537. package/src/domains/prompts/fragments/operating/skills.md +12 -10
  538. package/src/domains/providers/cache-deployment.ts +147 -0
  539. package/src/domains/providers/catalog.ts +12 -7
  540. package/src/domains/providers/extension.ts +27 -5
  541. package/src/domains/providers/index.ts +6 -1
  542. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +42 -10
  543. package/src/domains/providers/plugins.ts +3 -13
  544. package/src/domains/providers/probe/http.ts +44 -59
  545. package/src/domains/providers/probe/reasoning.ts +2 -0
  546. package/src/domains/providers/runtimes/common/local-synth.ts +4 -0
  547. package/src/domains/providers/runtimes/local-native/llamacpp-embed.ts +20 -31
  548. package/src/domains/providers/runtimes/local-native/llamacpp-rerank.ts +9 -4
  549. package/src/domains/providers/types/target-descriptor.ts +17 -0
  550. package/src/domains/safety/action-classifier.ts +17 -1
  551. package/src/domains/safety/call-target.ts +14 -0
  552. package/src/domains/safety/contract.ts +1 -1
  553. package/src/domains/safety/finish-contract.ts +9 -3
  554. package/src/domains/safety/loop-detector.ts +1 -1
  555. package/src/domains/safety/policy-engine.ts +7 -0
  556. package/src/domains/safety/protected-artifacts.ts +3 -4
  557. package/src/domains/safety/rejection-feedback.ts +1 -1
  558. package/src/domains/safety/scope.ts +2 -3
  559. package/src/domains/safety/validation-contract.ts +3 -2
  560. package/src/domains/scheduling/budget.ts +5 -3
  561. package/src/domains/scheduling/contract.ts +2 -1
  562. package/src/domains/scheduling/extension.ts +3 -3
  563. package/src/domains/session/compaction/branch-summary.ts +1 -1
  564. package/src/domains/session/compaction/compact.ts +29 -3
  565. package/src/domains/session/compaction/cut-point.ts +1 -1
  566. package/src/domains/session/compaction/tokens.ts +5 -10
  567. package/src/domains/session/contract.ts +1 -1
  568. package/src/domains/session/cwd-fallback.ts +2 -2
  569. package/src/domains/session/entries.ts +1 -0
  570. package/src/domains/session/handoff.ts +5 -1
  571. package/src/domains/session/history.ts +6 -0
  572. package/src/domains/session/manager.ts +14 -7
  573. package/src/domains/session/retry.ts +2 -1
  574. package/src/domains/session/session-artifacts.ts +12 -7
  575. package/src/domains/session/task-board.ts +2 -3
  576. package/src/domains/session/usage.ts +6 -7
  577. package/src/engine/acp/server.ts +11 -0
  578. package/src/engine/ai.ts +2 -0
  579. package/src/engine/apis/openai-completions.ts +17 -4
  580. package/src/engine/loop-guard.ts +7 -0
  581. package/src/engine/prewarm.ts +232 -0
  582. package/src/engine/provider-diagnostics.ts +6 -1
  583. package/src/engine/provider-error-body.ts +65 -0
  584. package/src/engine/session.ts +118 -29
  585. package/src/engine/worker-runtime.ts +3 -0
  586. package/src/entry/boot-options.ts +2 -0
  587. package/src/entry/orchestrator.ts +38 -18
  588. package/src/interactive/chat-loop-messages.ts +3 -0
  589. package/src/interactive/chat-loop-policy.ts +1 -0
  590. package/src/interactive/chat-loop.ts +10 -12
  591. package/src/interactive/chat-panel.ts +23 -9
  592. package/src/interactive/chat-renderer.ts +33 -11
  593. package/src/interactive/clio-editor.ts +13 -5
  594. package/src/interactive/dispatch-board.ts +70 -30
  595. package/src/interactive/editor-submit.ts +30 -25
  596. package/src/interactive/footer/widgets.ts +12 -9
  597. package/src/interactive/interactive-presentation.ts +2 -3
  598. package/src/interactive/mux-bridge.ts +3 -7
  599. package/src/interactive/overlay-general-openers.ts +14 -7
  600. package/src/interactive/overlays/cwd-fallback.ts +1 -1
  601. package/src/interactive/overlays/library-model.ts +114 -35
  602. package/src/interactive/overlays/library.ts +52 -5
  603. package/src/interactive/overlays/list-overlay.ts +4 -1
  604. package/src/interactive/overlays/session-selector.ts +28 -23
  605. package/src/interactive/overlays/settings.ts +20 -1
  606. package/src/interactive/overlays/tree-selector.ts +47 -10
  607. package/src/interactive/panes-runtime.ts +1 -1
  608. package/src/interactive/prewarm.ts +11 -197
  609. package/src/interactive/renderers/compaction-summary.ts +1 -1
  610. package/src/interactive/renderers/provider-error.ts +118 -0
  611. package/src/interactive/renderers/retry-status.ts +59 -23
  612. package/src/interactive/renderers/tool-execution.ts +67 -7
  613. package/src/interactive/renderers/worker-answer.ts +198 -0
  614. package/src/interactive/renderers/worker-entry.ts +57 -163
  615. package/src/interactive/session-usage-reseed.ts +2 -0
  616. package/src/interactive/side-question.ts +2 -0
  617. package/src/interactive/slash-commands.ts +26 -1
  618. package/src/interactive/slash-spec.ts +2 -2
  619. package/src/interactive/theme/labels.ts +66 -30
  620. package/src/interactive/turn-context.ts +1 -0
  621. package/src/interactive/turn-persistence.ts +9 -1
  622. package/src/interactive/turn-prewarm.ts +126 -19
  623. package/src/interactive/turn-recovery.ts +2 -1
  624. package/src/interactive/turn-runtime.ts +36 -5
  625. package/src/interactive/view/artifacts.ts +3 -2
  626. package/src/interactive/view/view-overlay.ts +96 -20
  627. package/src/tools/agent-tools.ts +21 -7
  628. package/src/tools/artifact.ts +16 -8
  629. package/src/tools/bash.ts +90 -11
  630. package/src/tools/bootstrap.ts +42 -4
  631. package/src/tools/builtin-tool-catalog.ts +80 -11
  632. package/src/tools/context/index.ts +27 -31
  633. package/src/tools/context/library.ts +3 -1
  634. package/src/tools/context/surface.ts +12 -26
  635. package/src/tools/core-bootstrap.ts +72 -1
  636. package/src/tools/data/csv.ts +1189 -0
  637. package/src/tools/data/index.ts +308 -0
  638. package/src/tools/data/json.ts +1799 -0
  639. package/src/tools/data/jsonl.ts +561 -0
  640. package/src/tools/data/shared.ts +452 -0
  641. package/src/tools/edit-diff.ts +0 -7
  642. package/src/tools/edit.ts +115 -18
  643. package/src/tools/file-mutation-queue.ts +114 -4
  644. package/src/tools/find.ts +108 -29
  645. package/src/tools/gateway/caps.ts +11 -0
  646. package/src/tools/gateway/clio-context-surface.ts +41 -0
  647. package/src/tools/gateway/clio-context-tools.ts +77 -0
  648. package/src/tools/gateway/data-surface.ts +138 -0
  649. package/src/tools/gateway/data-tool.ts +201 -0
  650. package/src/tools/gateway/index.ts +342 -0
  651. package/src/tools/gateway/mcp-capabilities.ts +469 -0
  652. package/src/tools/grep.ts +88 -33
  653. package/src/tools/harness-extensions.ts +3 -0
  654. package/src/tools/ignore-policy.ts +7 -5
  655. package/src/tools/ls.ts +111 -20
  656. package/src/tools/policy.ts +35 -13
  657. package/src/tools/presentation.ts +6 -0
  658. package/src/tools/read.ts +634 -156
  659. package/src/tools/registry.ts +106 -8
  660. package/src/tools/run-script.ts +997 -0
  661. package/src/tools/spawn-hygiene.ts +157 -5
  662. package/src/tools/surface.ts +163 -0
  663. package/src/tools/verify/authoring.ts +8 -3
  664. package/src/tools/verify/catalog.ts +14 -1
  665. package/src/tools/verify/numeric.ts +367 -59
  666. package/src/tools/verify/perf.ts +171 -9
  667. package/src/tools/verify/scripts.ts +178 -26
  668. package/src/tools/web-fetch-surface.ts +22 -0
  669. package/src/tools/web-fetch.ts +26 -1
  670. package/src/tools/write.ts +45 -19
  671. package/src/worker/spec-contract.ts +27 -0
  672. package/dist/chunk-B6UM3OZC.js +0 -15
  673. package/dist/chunk-GJ24ODAX.js +0 -196
  674. package/dist/chunk-HRAKUPIH.js +0 -57
  675. package/dist/docs-BL7ROUFN.js +0 -292
@@ -10,13 +10,13 @@ import {
10
10
  refKey,
11
11
  toolResultPayload,
12
12
  toolResultText
13
- } from "./chunk-DBREN25X.js";
13
+ } from "./chunk-IPTPMLA6.js";
14
14
  import {
15
15
  filterEntriesToActivePath
16
16
  } from "./chunk-O5F25NIE.js";
17
17
  import {
18
18
  ceilChars
19
- } from "./chunk-77CZRFTE.js";
19
+ } from "./chunk-SJMNU4ZS.js";
20
20
  import {
21
21
  init_esm_shims
22
22
  } from "./chunk-ECBHH7LU.js";
@@ -136,4 +136,4 @@ export {
136
136
  recallableRefListing,
137
137
  recallErrorMessage
138
138
  };
139
- //# sourceMappingURL=chunk-ECOMVOHP.js.map
139
+ //# sourceMappingURL=chunk-4DNL43EZ.js.map
@@ -3,20 +3,26 @@ import {
3
3
  createSentinelStripper,
4
4
  stripTokenizerSentinels
5
5
  } from "./chunk-MCJKEGHO.js";
6
+ import {
7
+ credentialsPresent
8
+ } from "./chunk-CTGZCEI6.js";
9
+ import {
10
+ getSharedBus
11
+ } from "./chunk-RL7LJYN4.js";
6
12
  import {
7
13
  ceilChars,
8
14
  estimateAgentMessageTokens,
9
15
  toolSchemaChars
10
- } from "./chunk-77CZRFTE.js";
16
+ } from "./chunk-SJMNU4ZS.js";
11
17
  import {
12
- credentialsPresent
13
- } from "./chunk-VTYHHQ57.js";
18
+ BusChannels
19
+ } from "./chunk-W5RM7YAH.js";
14
20
  import {
15
- getSharedBus
16
- } from "./chunk-B5ZTR6KZ.js";
21
+ readSettings
22
+ } from "./chunk-FPS4R2RN.js";
17
23
  import {
18
- BusChannels
19
- } from "./chunk-6CB2IL4N.js";
24
+ warnLegacyNaming
25
+ } from "./chunk-DVNAPPXU.js";
20
26
  import {
21
27
  CLIO_CONTEXT_WINDOW_WARN_BELOW,
22
28
  CLIO_MIN_CONTEXT_WINDOW,
@@ -33,17 +39,20 @@ import {
33
39
  registerBuiltinRuntimes,
34
40
  requestLmStudioJson,
35
41
  resolveLmStudioInstance
36
- } from "./chunk-SELG4SUR.js";
42
+ } from "./chunk-NPLLK3HO.js";
37
43
  import {
38
44
  listKnownModelsForRuntime
39
- } from "./chunk-KS7ETA3P.js";
45
+ } from "./chunk-EM2DIQAJ.js";
40
46
  import {
41
47
  authNotRequiredStatus,
42
48
  openAuthStorage,
43
49
  registerClioOAuthProviders,
44
50
  resolveAuthTarget,
45
51
  targetRequiresAuth
46
- } from "./chunk-6TAATXXH.js";
52
+ } from "./chunk-ZKVMDNAN.js";
53
+ import {
54
+ require_dist
55
+ } from "./chunk-B5GGDIHT.js";
47
56
  import {
48
57
  getRuntimeRegistry
49
58
  } from "./chunk-SRCEQKQS.js";
@@ -52,31 +61,19 @@ import {
52
61
  getCatalogModelForRuntime,
53
62
  mergeCapabilities,
54
63
  resolveCostProvenance
55
- } from "./chunk-TN5FW4XY.js";
64
+ } from "./chunk-JIYWMQZ5.js";
56
65
  import {
57
66
  activateExternalPluginApiBridge,
58
67
  calculateEngineCost,
59
68
  ensurePiAiRegistered,
60
69
  registerEngineApiProvider
61
- } from "./chunk-5CMARGPF.js";
62
- import {
63
- readSettings
64
- } from "./chunk-4QKAITQT.js";
65
- import {
66
- warnLegacyNaming
67
- } from "./chunk-DVNAPPXU.js";
70
+ } from "./chunk-UIU7MGZ3.js";
68
71
  import {
69
72
  sleep
70
73
  } from "./chunk-6EXUUOSN.js";
71
74
  import {
72
75
  withStateFileLock
73
76
  } from "./chunk-DVJL77SO.js";
74
- import {
75
- require_dist
76
- } from "./chunk-B5GGDIHT.js";
77
- import {
78
- safeResourceWrite
79
- } from "./chunk-ZZFWWYLX.js";
80
77
  import {
81
78
  clioCacheDir,
82
79
  clioConfigDir,
@@ -85,11 +82,29 @@ import {
85
82
  resolveClioDirs,
86
83
  stateRootRemoved
87
84
  } from "./chunk-CTTI7G3T.js";
85
+ import {
86
+ safeResourceWrite
87
+ } from "./chunk-ZZFWWYLX.js";
88
88
  import {
89
89
  __toESM,
90
90
  init_esm_shims
91
91
  } from "./chunk-ECBHH7LU.js";
92
92
 
93
+ // src/domains/providers/types/cost-provenance.ts
94
+ init_esm_shims();
95
+ function normalizeCostProvenance(value) {
96
+ return value ?? "unknown";
97
+ }
98
+ var COST_PROVENANCE_VALUES = /* @__PURE__ */ new Set([
99
+ "known",
100
+ "known_free",
101
+ "estimated",
102
+ "unknown"
103
+ ]);
104
+ function resolveCostProvenance2(value, fallback) {
105
+ return typeof value === "string" && COST_PROVENANCE_VALUES.has(value) ? value : fallback;
106
+ }
107
+
93
108
  // src/domains/providers/endpoint-capacity.ts
94
109
  init_esm_shims();
95
110
 
@@ -135,8 +150,8 @@ function endpointSlotsTtlMs(env = process.env) {
135
150
  }
136
151
  function validRecord(key, value) {
137
152
  if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
138
- const record = value;
139
- return record.endpointKey === key && typeof record.runtimeId === "string" && record.runtimeId.length > 0 && typeof record.slots === "number" && Number.isInteger(record.slots) && record.slots > 0 && typeof record.observedAt === "string" && Number.isFinite(Date.parse(record.observedAt));
153
+ const record2 = value;
154
+ return record2.endpointKey === key && typeof record2.runtimeId === "string" && record2.runtimeId.length > 0 && typeof record2.slots === "number" && Number.isInteger(record2.slots) && record2.slots > 0 && typeof record2.observedAt === "string" && Number.isFinite(Date.parse(record2.observedAt));
140
155
  }
141
156
  function readRecords() {
142
157
  const path = endpointSlotsPath();
@@ -149,17 +164,17 @@ function readRecords() {
149
164
  return [];
150
165
  }
151
166
  }
152
- function fresh(record, nowMs, ttlMs) {
153
- const observedMs = Date.parse(record.observedAt);
167
+ function fresh(record2, nowMs, ttlMs) {
168
+ const observedMs = Date.parse(record2.observedAt);
154
169
  return observedMs <= nowMs && nowMs - observedMs < ttlMs;
155
170
  }
156
171
  function readDiscoveredEndpointSlots(options) {
157
172
  const nowMs = options?.nowMs ?? Date.now();
158
173
  const ttlMs = options?.ttlMs ?? endpointSlotsTtlMs();
159
174
  const out = {};
160
- for (const record of readRecords()) {
161
- if (!fresh(record, nowMs, ttlMs)) continue;
162
- out[record.endpointKey] = record;
175
+ for (const record2 of readRecords()) {
176
+ if (!fresh(record2, nowMs, ttlMs)) continue;
177
+ out[record2.endpointKey] = record2;
163
178
  }
164
179
  return Object.freeze(out);
165
180
  }
@@ -167,7 +182,7 @@ function writeRecords(records) {
167
182
  const kept = [...records].sort((a, b) => Date.parse(b.observedAt) - Date.parse(a.observedAt)).slice(0, MAX_ENDPOINT_SLOT_RECORDS);
168
183
  const file = {
169
184
  version: 1,
170
- endpoints: Object.fromEntries(kept.map((record) => [record.endpointKey, { ...record }]))
185
+ endpoints: Object.fromEntries(kept.map((record2) => [record2.endpointKey, { ...record2 }]))
171
186
  };
172
187
  safeResourceWrite(endpointSlotsPath(), `${JSON.stringify(file, null, 2)}
173
188
  `, { encoding: "utf8" });
@@ -182,7 +197,7 @@ async function recordDiscoveredEndpointSlots(entry, options) {
182
197
  await withStateFileLock(endpointSlotsPath(), () => {
183
198
  if (stateRootRemoved()) return;
184
199
  const kept = readRecords().filter(
185
- (record) => record.endpointKey !== entry.endpointKey && fresh(record, nowMs, ttlMs)
200
+ (record2) => record2.endpointKey !== entry.endpointKey && fresh(record2, nowMs, ttlMs)
186
201
  );
187
202
  kept.push({
188
203
  endpointKey: entry.endpointKey,
@@ -754,13 +769,13 @@ function runOverrides(env = process.env) {
754
769
  return {};
755
770
  }
756
771
  if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) return {};
757
- const record = parsed;
772
+ const record2 = parsed;
758
773
  const out = {};
759
- const maxContextTokens = record.maxContextTokens;
774
+ const maxContextTokens = record2.maxContextTokens;
760
775
  if (typeof maxContextTokens === "number" && Number.isInteger(maxContextTokens) && maxContextTokens > 0) {
761
776
  out.maxContextTokens = maxContextTokens;
762
777
  }
763
- const sampling = record.sampling;
778
+ const sampling = record2.sampling;
764
779
  if (sampling !== null && typeof sampling === "object" && !Array.isArray(sampling)) {
765
780
  const numeric = {};
766
781
  for (const [key, value] of Object.entries(sampling)) {
@@ -1960,14 +1975,14 @@ function resolveRuntimeTarget(providers, input) {
1960
1975
  }
1961
1976
  function modelHintPatch(target, model) {
1962
1977
  if (!model || typeof model !== "object") return {};
1963
- const record = model;
1978
+ const record2 = model;
1964
1979
  const patch = {};
1965
- if (!target.modelReasoningAuthoritative && typeof record.reasoning === "boolean") patch.reasoning = record.reasoning;
1966
- const contextWindow = nonNegativeFiniteNumber(record.contextWindow);
1980
+ if (!target.modelReasoningAuthoritative && typeof record2.reasoning === "boolean") patch.reasoning = record2.reasoning;
1981
+ const contextWindow = nonNegativeFiniteNumber(record2.contextWindow);
1967
1982
  if (contextWindow !== void 0 && target.capabilities.contextWindow <= 0) patch.contextWindow = contextWindow;
1968
- const maxTokens = nonNegativeFiniteNumber(record.maxTokens);
1983
+ const maxTokens = nonNegativeFiniteNumber(record2.maxTokens);
1969
1984
  if (maxTokens !== void 0 && target.capabilities.maxTokens <= 0) patch.maxTokens = maxTokens;
1970
- if (Array.isArray(record.input)) patch.vision = record.input.includes("image");
1985
+ if (Array.isArray(record2.input)) patch.vision = record2.input.includes("image");
1971
1986
  return patch;
1972
1987
  }
1973
1988
  function withoutStaleRuntimeDiagnostics(diagnostics, decisions) {
@@ -2135,21 +2150,6 @@ function resolveContextWindowDetails(target, runtime, wireModelId, knowledgeBase
2135
2150
  };
2136
2151
  }
2137
2152
 
2138
- // src/domains/providers/types/cost-provenance.ts
2139
- init_esm_shims();
2140
- function normalizeCostProvenance(value) {
2141
- return value ?? "unknown";
2142
- }
2143
- var COST_PROVENANCE_VALUES = /* @__PURE__ */ new Set([
2144
- "known",
2145
- "known_free",
2146
- "estimated",
2147
- "unknown"
2148
- ]);
2149
- function resolveCostProvenance2(value, fallback) {
2150
- return typeof value === "string" && COST_PROVENANCE_VALUES.has(value) ? value : fallback;
2151
- }
2152
-
2153
2153
  // src/domains/providers/index.ts
2154
2154
  init_esm_shims();
2155
2155
 
@@ -2414,8 +2414,8 @@ function remainingContextMaxTokens(model, context, options, limits) {
2414
2414
 
2415
2415
  // src/engine/apis/sampling-overrides.ts
2416
2416
  init_esm_shims();
2417
- function numberField(record, key) {
2418
- const value = record[key];
2417
+ function numberField(record2, key) {
2418
+ const value = record2[key];
2419
2419
  return typeof value === "number" && Number.isFinite(value) ? value : void 0;
2420
2420
  }
2421
2421
  function runSamplingOverrides(env = process.env) {
@@ -2840,7 +2840,7 @@ var ollamaNativeApiProvider = {
2840
2840
 
2841
2841
  // src/engine/apis/openai-completions.ts
2842
2842
  init_esm_shims();
2843
- import { TextDecoder } from "node:util";
2843
+ import { TextDecoder as TextDecoder2 } from "node:util";
2844
2844
  import {
2845
2845
  createAssistantMessageEventStream as createAssistantMessageEventStream3
2846
2846
  } from "@earendil-works/pi-ai";
@@ -2912,8 +2912,8 @@ function liteLLMGatewayRoutingFromHeaders(headers) {
2912
2912
  };
2913
2913
  return Object.keys(observation).length > 1 ? observation : null;
2914
2914
  }
2915
- function gatewayRoutingObservationFromRecord(record) {
2916
- const value = record.gatewayRouting;
2915
+ function gatewayRoutingObservationFromRecord(record2) {
2916
+ const value = record2.gatewayRouting;
2917
2917
  if (value === null || typeof value !== "object" || Array.isArray(value)) return null;
2918
2918
  const raw = value;
2919
2919
  if (raw.gateway !== "litellm") return null;
@@ -3074,6 +3074,60 @@ function harmonyPrefixTailLength(value) {
3074
3074
  return 0;
3075
3075
  }
3076
3076
 
3077
+ // src/engine/provider-error-body.ts
3078
+ init_esm_shims();
3079
+ var SDK_BODY_CHARS = 4e3;
3080
+ var SDK_MARKER = /\.\.\. \[truncated (\d+) chars\]/u;
3081
+ var MAX_RESTORED_ERROR_BODY_CHARS = 65536;
3082
+ var MAX_CAPTURE_BYTES = 4 * 1024 * 1024;
3083
+ async function captureErrorBody(response) {
3084
+ if (response.ok || response.body === null) return null;
3085
+ try {
3086
+ const reader = response.clone().body?.getReader();
3087
+ if (reader === void 0) return null;
3088
+ const decoder = new TextDecoder();
3089
+ let text = "";
3090
+ let bytes = 0;
3091
+ for (; ; ) {
3092
+ const { done, value } = await reader.read();
3093
+ if (done) break;
3094
+ bytes += value.byteLength;
3095
+ if (bytes > MAX_CAPTURE_BYTES) {
3096
+ await reader.cancel().catch(() => {
3097
+ });
3098
+ return null;
3099
+ }
3100
+ text += decoder.decode(value, { stream: true });
3101
+ }
3102
+ return text + decoder.decode();
3103
+ } catch {
3104
+ return null;
3105
+ }
3106
+ }
3107
+ function restoreTruncatedErrorBody(message, capturedBody) {
3108
+ if (capturedBody === null) return message;
3109
+ const marker = SDK_MARKER.exec(message);
3110
+ if (marker === null || marker.index < SDK_BODY_CHARS) return message;
3111
+ let parsed;
3112
+ try {
3113
+ parsed = JSON.parse(capturedBody);
3114
+ } catch {
3115
+ return message;
3116
+ }
3117
+ const start = marker.index - SDK_BODY_CHARS;
3118
+ const kept = message.slice(start, marker.index);
3119
+ const dropped = Number(marker[1]);
3120
+ const nested = typeof parsed === "object" && parsed !== null ? parsed.error : void 0;
3121
+ for (const candidate of [nested, parsed]) {
3122
+ if (typeof candidate !== "object" || candidate === null) continue;
3123
+ const full = JSON.stringify(candidate).trim();
3124
+ if (full.length - SDK_BODY_CHARS !== dropped || !full.startsWith(kept)) continue;
3125
+ const restored = full.length > MAX_RESTORED_ERROR_BODY_CHARS ? `${full.slice(0, MAX_RESTORED_ERROR_BODY_CHARS)}... [truncated ${full.length - MAX_RESTORED_ERROR_BODY_CHARS} chars]` : full;
3126
+ return `${message.slice(0, start)}${restored}${message.slice(marker.index + marker[0].length)}`;
3127
+ }
3128
+ return message;
3129
+ }
3130
+
3077
3131
  // src/engine/apis/llamacpp-residency.ts
3078
3132
  init_esm_shims();
3079
3133
  import { performance } from "node:perf_hooks";
@@ -3606,6 +3660,7 @@ function captureResponseModelId(response, capture, model) {
3606
3660
  if (runtimeMetadata(model)?.runtimeId === "litellm") {
3607
3661
  capture.gatewayRouting = liteLLMGatewayRoutingFromHeaders(response.headers);
3608
3662
  }
3663
+ if (!response.ok) capture.errorBody = captureErrorBody(response);
3609
3664
  if (!response.body || !response.headers.get("content-type")?.toLowerCase().includes("text/event-stream")) {
3610
3665
  return response;
3611
3666
  }
@@ -3636,8 +3691,9 @@ function withResponseModelIdCapture(model, options, sourceFactory) {
3636
3691
  backendTimings: null,
3637
3692
  backendTimingsSource: backendTimingsSourceForModel(model),
3638
3693
  gatewayRouting: null,
3694
+ errorBody: null,
3639
3695
  buffer: "",
3640
- decoder: new TextDecoder()
3696
+ decoder: new TextDecoder2()
3641
3697
  };
3642
3698
  const fetchImpl = options.fetch ?? ((input, init) => globalThis.fetch(input, init));
3643
3699
  const capturedOptions = {
@@ -3655,6 +3711,9 @@ function withResponseModelIdCapture(model, options, sourceFactory) {
3655
3711
  if (capture.gatewayRouting !== null) event.message.gatewayRouting = capture.gatewayRouting;
3656
3712
  if (capture.backendTimings !== null) event.message.backendTimings = capture.backendTimings;
3657
3713
  } else if (event.type === "error") {
3714
+ if (event.error.errorMessage !== void 0 && capture.errorBody !== null) {
3715
+ event.error.errorMessage = restoreTruncatedErrorBody(event.error.errorMessage, await capture.errorBody);
3716
+ }
3658
3717
  event.error.responseModelIdObservation = observation;
3659
3718
  if (capture.gatewayRouting !== null) event.error.gatewayRouting = capture.gatewayRouting;
3660
3719
  if (capture.backendTimings !== null) event.error.backendTimings = capture.backendTimings;
@@ -3836,23 +3895,23 @@ function applyLmStudioPayload(payload, model, resolved) {
3836
3895
  }
3837
3896
  return next;
3838
3897
  }
3839
- function applyLlamaCppPromptCachePayload(payload, model) {
3898
+ function applyLlamaCppPromptCachePayload(payload, model, retention) {
3840
3899
  const metadata2 = runtimeMetadata(model);
3841
3900
  if (model.provider !== "llamacpp" || metadata2?.runtimeId !== "llamacpp") return payload;
3842
3901
  if (payload.cache_prompt !== void 0) return payload;
3843
- return { ...payload, cache_prompt: true };
3902
+ return { ...payload, cache_prompt: retention !== "none" };
3844
3903
  }
3845
3904
  function shouldApplyLlamaCppPromptCache(model) {
3846
3905
  const metadata2 = runtimeMetadata(model);
3847
3906
  return model.provider === "llamacpp" && metadata2?.runtimeId === "llamacpp";
3848
3907
  }
3849
- function composeThinkingOnPayload(resolved, base) {
3908
+ function composeThinkingOnPayload(resolved, base, retention) {
3850
3909
  return async (payload, model) => {
3851
3910
  if (!isPlainRecord(payload)) {
3852
3911
  return base ? await base(payload, model) : void 0;
3853
3912
  }
3854
3913
  const next = applyLmStudioPayload(
3855
- applyThinkingPayload(applyLlamaCppPromptCachePayload(payload, model), resolved.thinking, resolved, model),
3914
+ applyThinkingPayload(applyLlamaCppPromptCachePayload(payload, model, retention), resolved.thinking, resolved, model),
3856
3915
  model,
3857
3916
  resolved
3858
3917
  );
@@ -3888,7 +3947,7 @@ function withSamplingOverrides(model, options, resolved) {
3888
3947
  };
3889
3948
  }
3890
3949
  if (promptCache || lmstudio || applied.mechanism === "effort-levels" || applied.mechanism === "budget-tokens" || applied.mechanism === "on-off" || applied.mechanism === "none") {
3891
- merged.onPayload = composeThinkingOnPayload(resolved, options?.onPayload);
3950
+ merged.onPayload = composeThinkingOnPayload(resolved, options?.onPayload, options?.cacheRetention);
3892
3951
  }
3893
3952
  return merged;
3894
3953
  }
@@ -4401,16 +4460,10 @@ function resolveProviderKnowledgeBaseRoots(importMetaUrl, options = {}) {
4401
4460
  // src/domains/providers/plugins.ts
4402
4461
  init_esm_shims();
4403
4462
  import { join as join5 } from "node:path";
4404
- function extractPluginPackages(settings) {
4405
- if (!settings || typeof settings !== "object") return [];
4406
- const raw = settings.runtimePlugins;
4407
- if (!Array.isArray(raw)) return [];
4408
- return raw.filter((entry) => typeof entry === "string" && entry.length > 0);
4409
- }
4410
4463
  async function loadPluginRuntimes(registry, settings) {
4411
4464
  const loaded = [];
4412
4465
  const pluginDir = join5(clioConfigDir(), "runtimes");
4413
- const packages = extractPluginPackages(settings);
4466
+ const packages = settings?.integrations.runtimePlugins ?? [];
4414
4467
  try {
4415
4468
  const ids = await registry.loadFromDir(pluginDir, activateExternalPluginApiBridge);
4416
4469
  loaded.push(...ids);
@@ -4680,6 +4733,7 @@ function createProvidersBundle(context) {
4680
4733
  const statuses = /* @__PURE__ */ new Map();
4681
4734
  const reasoningCache = /* @__PURE__ */ new Map();
4682
4735
  const unsubscribeConfigListeners = [];
4736
+ let stopped = false;
4683
4737
  function reasoningCacheKey(targetId, modelId) {
4684
4738
  return `${targetId}:${modelId}`;
4685
4739
  }
@@ -4688,6 +4742,10 @@ function createProvidersBundle(context) {
4688
4742
  if (config) return config.get();
4689
4743
  return readSettings();
4690
4744
  }
4745
+ function currentProbeTarget(probed) {
4746
+ if (stopped) return void 0;
4747
+ return readConfig().targets.find((target) => sameProbeIdentity(probed, target));
4748
+ }
4691
4749
  async function buildProbeContextForTarget(target, desc, signal) {
4692
4750
  const probeCtx = {
4693
4751
  credentialsPresent: credentialsPresent(),
@@ -4731,6 +4789,7 @@ function createProvidersBundle(context) {
4731
4789
  return { available: false, reason: `missing auth (${envHint}store:${authTarget.providerId})` };
4732
4790
  }
4733
4791
  function buildStatus(target, desc, probe, previous) {
4792
+ if (previous && !sameProbeIdentity(previous.target, target)) previous = void 0;
4734
4793
  if (!desc) {
4735
4794
  const out2 = {
4736
4795
  target,
@@ -4787,6 +4846,8 @@ function createProvidersBundle(context) {
4787
4846
  }
4788
4847
  async function probeTargetInternal(target, live, options) {
4789
4848
  options?.signal?.throwIfAborted();
4849
+ if (stopped) return null;
4850
+ target = structuredClone(target);
4790
4851
  const previous = statuses.get(target.id);
4791
4852
  const desc = registry.get(target.runtime);
4792
4853
  if (!desc) {
@@ -4802,6 +4863,7 @@ function createProvidersBundle(context) {
4802
4863
  }
4803
4864
  const probeCtx = await buildProbeContextForTarget(target, desc, options?.signal);
4804
4865
  options?.signal?.throwIfAborted();
4866
+ if (!currentProbeTarget(target)) return null;
4805
4867
  let probeResult;
4806
4868
  try {
4807
4869
  probeResult = await desc.probe(target, probeCtx);
@@ -4809,6 +4871,7 @@ function createProvidersBundle(context) {
4809
4871
  probeResult = { ok: false, error: err instanceof Error ? err.message : String(err) };
4810
4872
  }
4811
4873
  options?.signal?.throwIfAborted();
4874
+ if (!currentProbeTarget(target)) return null;
4812
4875
  if (probeResult.ok && typeof desc.probeModels === "function" && !probeResult.models) {
4813
4876
  try {
4814
4877
  const ids = await desc.probeModels(target, probeCtx);
@@ -4817,6 +4880,7 @@ function createProvidersBundle(context) {
4817
4880
  }
4818
4881
  }
4819
4882
  options?.signal?.throwIfAborted();
4883
+ if (!currentProbeTarget(target)) return null;
4820
4884
  if (probeResult.ok && options?.reasoning !== false && typeof desc.probeReasoning === "function") {
4821
4885
  const settings = readConfig();
4822
4886
  const orchestratorTarget = settings.chat.target === target.id ? settings.chat.model : null;
@@ -4825,6 +4889,7 @@ function createProvidersBundle(context) {
4825
4889
  try {
4826
4890
  const result = await desc.probeReasoning(target, candidateModelId, probeCtx);
4827
4891
  options?.signal?.throwIfAborted();
4892
+ if (!currentProbeTarget(target)) return null;
4828
4893
  reasoningCache.set(reasoningCacheKey(target.id, candidateModelId), result.reasoning);
4829
4894
  const capabilityModelId = probeResult.capabilityModelId ?? null;
4830
4895
  if (capabilityModelId === null || capabilityModelId === candidateModelId) {
@@ -4846,7 +4911,9 @@ function createProvidersBundle(context) {
4846
4911
  }
4847
4912
  }
4848
4913
  options?.signal?.throwIfAborted();
4849
- const status = buildStatus(target, desc, probeResult, previous);
4914
+ const current = currentProbeTarget(target);
4915
+ if (!current) return null;
4916
+ const status = buildStatus(current, desc, probeResult, previous);
4850
4917
  statuses.set(target.id, status);
4851
4918
  if (probeResult.ok && probeResult.models !== void 0) {
4852
4919
  recordTargetModelSnapshot(
@@ -4860,14 +4927,18 @@ function createProvidersBundle(context) {
4860
4927
  return status;
4861
4928
  }
4862
4929
  async function probeReasoningForModelInternal(targetId, modelId) {
4930
+ if (stopped) return null;
4863
4931
  const settings = readConfig();
4864
- const target = settings.targets.find((ep) => ep.id === targetId);
4865
- if (!target) return null;
4932
+ const configuredTarget = settings.targets.find((ep) => ep.id === targetId);
4933
+ if (!configuredTarget) return null;
4934
+ const target = structuredClone(configuredTarget);
4866
4935
  const desc = registry.get(target.runtime);
4867
4936
  if (!desc || typeof desc.probeReasoning !== "function") return null;
4868
4937
  const probeCtx = await buildProbeContextForTarget(target, desc);
4938
+ if (!currentProbeTarget(target)) return null;
4869
4939
  try {
4870
4940
  const result = await desc.probeReasoning(target, modelId, probeCtx);
4941
+ if (!currentProbeTarget(target)) return null;
4871
4942
  reasoningCache.set(reasoningCacheKey(targetId, modelId), result.reasoning);
4872
4943
  return result.reasoning;
4873
4944
  } catch {
@@ -4898,6 +4969,7 @@ function createProvidersBundle(context) {
4898
4969
  }
4899
4970
  const extension = {
4900
4971
  async start() {
4972
+ stopped = false;
4901
4973
  ensurePiAiRegistered();
4902
4974
  registerClioApiProviders();
4903
4975
  registerClioOAuthProviders();
@@ -4918,6 +4990,7 @@ function createProvidersBundle(context) {
4918
4990
  }
4919
4991
  },
4920
4992
  async stop() {
4993
+ stopped = true;
4921
4994
  for (const unsubscribe of unsubscribeConfigListeners.splice(0)) unsubscribe();
4922
4995
  }
4923
4996
  };
@@ -5018,6 +5091,105 @@ var ProvidersManifest = {
5018
5091
  dependsOn: ["config"]
5019
5092
  };
5020
5093
 
5094
+ // src/domains/providers/cache-deployment.ts
5095
+ init_esm_shims();
5096
+ function record(value) {
5097
+ return value !== null && typeof value === "object" && !Array.isArray(value) ? value : {};
5098
+ }
5099
+ async function observeCacheDeployment(target, wireModelId, options = {}) {
5100
+ const binding = target.cache?.deployment;
5101
+ const observation = {
5102
+ observedAt: Date.now(),
5103
+ backend: binding?.backend ?? "unknown",
5104
+ model: binding?.model ?? wireModelId,
5105
+ build: null,
5106
+ epoch: null,
5107
+ endpoint: null,
5108
+ requestControls: [],
5109
+ warm: "unsupported",
5110
+ administration: "unsupported",
5111
+ reason: "deployment-unbound"
5112
+ };
5113
+ if (!binding) return observation;
5114
+ try {
5115
+ const control = new URL(binding.controlUrl);
5116
+ if (!["http:", "https:"].includes(control.protocol) || control.username || control.password || control.search || control.hash) {
5117
+ return { ...observation, reason: "deployment-invalid" };
5118
+ }
5119
+ const root = control.href.replace(/\/$/, "").replace(/\/v1$/, "");
5120
+ observation.endpoint = canonicalEndpointUrl(root);
5121
+ const signal = AbortSignal.any([AbortSignal.timeout(2e3), ...options.signal ? [options.signal] : []]);
5122
+ const get = async (url, headers) => {
5123
+ const response = await (options.fetchImpl ?? fetch)(url, {
5124
+ method: "GET",
5125
+ signal,
5126
+ redirect: "error",
5127
+ credentials: "omit",
5128
+ ...headers ? { headers } : {}
5129
+ });
5130
+ if (!response.ok) throw new Error("discovery unavailable");
5131
+ return await response.json();
5132
+ };
5133
+ const gateway = target.runtime === "litellm";
5134
+ if (gateway) {
5135
+ if (!binding.gatewayDeploymentId || !target.url) return { ...observation, reason: "gateway-unbound" };
5136
+ const gatewayRoot = target.url.replace(/\/$/, "").replace(/\/v1$/, "");
5137
+ const info = record(
5138
+ await get(`${gatewayRoot}/v1/model/info`, {
5139
+ ...target.auth?.headers,
5140
+ ...options.gatewayApiKey ? { authorization: `Bearer ${options.gatewayApiKey}` } : {}
5141
+ })
5142
+ );
5143
+ const rows = Array.isArray(info.data) ? info.data.map(record).filter((row2) => row2.model_name === wireModelId) : [];
5144
+ const row = rows.length === 1 ? rows[0] : void 0;
5145
+ const params = record(row?.litellm_params);
5146
+ const modelInfo = record(row?.model_info);
5147
+ if (!row || modelInfo.id !== binding.gatewayDeploymentId || params.model !== binding.model && params.model !== `openai/${binding.model}` || canonicalEndpointUrl(typeof params.api_base === "string" ? params.api_base : void 0) !== observation.endpoint) {
5148
+ return { ...observation, reason: "gateway-route-mismatch" };
5149
+ }
5150
+ } else if (target.runtime !== binding.backend || wireModelId !== binding.model || canonicalEndpointUrl(target.url) !== observation.endpoint) {
5151
+ return { ...observation, reason: "deployment-mismatch" };
5152
+ }
5153
+ if (binding.backend === "vllm") {
5154
+ const version = record(await get(`${root}/version`));
5155
+ observation.build = typeof version.version === "string" ? version.version : null;
5156
+ return {
5157
+ ...observation,
5158
+ reason: observation.build === binding.build ? "vllm-scheduler-unverified" : "deployment-build-mismatch"
5159
+ };
5160
+ }
5161
+ let props = record(await get(`${root}/props`));
5162
+ const router = props.role === "router";
5163
+ if (router) {
5164
+ const models = record(await get(`${root}/models`));
5165
+ const selected = Array.isArray(models.data) ? models.data.map(record).find((row) => row.id === binding.model) : void 0;
5166
+ if (record(selected?.status).value !== "loaded") return { ...observation, reason: "model-not-loaded" };
5167
+ props = record(await get(`${root}/props?model=${encodeURIComponent(binding.model)}&autoload=false`));
5168
+ }
5169
+ observation.build = typeof props.build_info === "string" ? props.build_info : null;
5170
+ if (observation.build !== binding.build) return { ...observation, reason: "deployment-build-mismatch" };
5171
+ if (!observation.build.endsWith("-c841aee"))
5172
+ return { ...observation, reason: "deployment-cache-protocol-unverified" };
5173
+ if (props.is_sleeping !== false) return { ...observation, reason: "model-not-loaded" };
5174
+ if (typeof props.model_alias === "string" && props.model_alias !== binding.model)
5175
+ return { ...observation, reason: "deployment-model-mismatch" };
5176
+ if (!router) {
5177
+ const models = record(await get(`${root}/v1/models`));
5178
+ if (!Array.isArray(models.data) || models.data.length !== 1 || record(models.data[0]).id !== binding.model)
5179
+ return { ...observation, reason: "deployment-model-mismatch" };
5180
+ }
5181
+ if (typeof props.start_time === "string") observation.epoch = props.start_time;
5182
+ const slots = await get(`${root}/slots?model=${encodeURIComponent(binding.model)}&autoload=false`);
5183
+ if (!Array.isArray(slots) || slots.length === 0 || slots.some((slot) => record(slot).is_processing !== false)) {
5184
+ return { ...observation, reason: "endpoint-busy-or-unknown" };
5185
+ }
5186
+ if (gateway) return { ...observation, reason: "gateway-cache-transport-unverified" };
5187
+ return { ...observation, requestControls: ["cache_prompt"], warm: "bounded", reason: "loaded-idle-deployment" };
5188
+ } catch {
5189
+ return { ...observation, reason: options.signal?.aborted ? "superseded" : "deployment-unavailable" };
5190
+ }
5191
+ }
5192
+
5021
5193
  // src/domains/providers/index.ts
5022
5194
  var ProvidersDomainModule = {
5023
5195
  manifest: ProvidersManifest,
@@ -5025,6 +5197,10 @@ var ProvidersDomainModule = {
5025
5197
  };
5026
5198
 
5027
5199
  export {
5200
+ gatewayRoutingObservationFromRecord,
5201
+ gatewayRoutingObservationLabel,
5202
+ normalizeCostProvenance,
5203
+ resolveCostProvenance2 as resolveCostProvenance,
5028
5204
  residencyTargetKey,
5029
5205
  setGlobalDefaultMaxOutputTokens,
5030
5206
  resolveReservedOutputTokens,
@@ -5040,8 +5216,6 @@ export {
5040
5216
  setResidencyNoticeSink,
5041
5217
  setProtectedModelsProvider,
5042
5218
  withRunOverrides,
5043
- gatewayRoutingObservationFromRecord,
5044
- gatewayRoutingObservationLabel,
5045
5219
  applyModelCapabilityPatch,
5046
5220
  probeCapabilitiesForModel,
5047
5221
  resolveModelCapabilities,
@@ -5056,6 +5230,7 @@ export {
5056
5230
  readTargetModelSnapshot,
5057
5231
  recordTargetModelSnapshot,
5058
5232
  FileKnowledgeBase,
5233
+ observeCacheDeployment,
5059
5234
  isOrchestratorEligibleRuntime,
5060
5235
  isDispatchEligibleRuntime,
5061
5236
  modelResidencyForStatus,
@@ -5070,8 +5245,6 @@ export {
5070
5245
  firstRuntimeResolutionError,
5071
5246
  runtimeResolutionWarnings,
5072
5247
  runtimeResolutionWarningsBesideThinkingNotice,
5073
- normalizeCostProvenance,
5074
- resolveCostProvenance2 as resolveCostProvenance,
5075
5248
  ProvidersDomainModule
5076
5249
  };
5077
- //# sourceMappingURL=chunk-WT5TRMO4.js.map
5250
+ //# sourceMappingURL=chunk-4HFJKRGZ.js.map