@iowarp/clio-coder 0.4.5 → 0.4.7

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 (700) hide show
  1. package/.claude-plugin/marketplace.json +283 -0
  2. package/CHANGELOG.md +74 -0
  3. package/CONTRIBUTING.md +116 -38
  4. package/NOTICE +24 -0
  5. package/README.md +341 -682
  6. package/dist/{acp-H3CU2HBQ.js → acp-W3Y3TRHD.js} +12 -12
  7. package/dist/{agents-IXQQZ7BD.js → agents-J4ICNLQ3.js} +57 -56
  8. package/dist/assets/codewiki.json +1 -1
  9. package/dist/assets/tui-notices/get-east-asian-width-LICENSE +9 -0
  10. package/dist/assets/tui-notices/marked-LICENSE +44 -0
  11. package/dist/assets/tui-notices/pi-tui-LICENSE +21 -0
  12. package/dist/{auth-R7KYF7N3.js → auth-X2UJUMOC.js} +25 -25
  13. package/dist/{builtins-CRFDQUVP.js → builtins-XLXWWSRF.js} +6 -6
  14. package/dist/{chunk-DZK63TZJ.js → chunk-24S3DN22.js} +336 -612
  15. package/dist/{chunk-NTK3WTHM.js → chunk-24TOGHPO.js} +2 -2
  16. package/dist/{chunk-M6TAYK66.js → chunk-2O2LVQQK.js} +11 -4
  17. package/dist/{chunk-OQM5IVJY.js → chunk-34XHRVKG.js} +3 -3
  18. package/dist/{chunk-LY4N4TTL.js → chunk-3LXJOICS.js} +2 -2
  19. package/dist/{chunk-SE4ZKILO.js → chunk-3XE4NRLF.js} +30 -9
  20. package/dist/{chunk-YYB3MC65.js → chunk-4MFBBY2Z.js} +3 -3
  21. package/dist/{chunk-5VTJP36Q.js → chunk-4N2RZ4TO.js} +2 -2
  22. package/dist/{chunk-FKIOX6DS.js → chunk-4QKAITQT.js} +10 -5
  23. package/dist/chunk-4UHVS5T7.js +207 -0
  24. package/dist/{chunk-VLPTKCKT.js → chunk-5AJPUR72.js} +6 -6
  25. package/dist/{chunk-5CY4Q6QI.js → chunk-5EQO5NWP.js} +105 -3
  26. package/dist/{chunk-RXIOCVBZ.js → chunk-65BGHOUR.js} +8 -5
  27. package/dist/{chunk-T53XI6I7.js → chunk-6CA2BHOR.js} +2 -2
  28. package/dist/{chunk-HL26ADLH.js → chunk-6CB2IL4N.js} +2 -1
  29. package/dist/{chunk-HR3HPQ76.js → chunk-6LRLOJHQ.js} +3 -3
  30. package/dist/{chunk-HXHFDHB6.js → chunk-6TAATXXH.js} +6 -6
  31. package/dist/{chunk-WFKDPU7U.js → chunk-6YHPAAZR.js} +3 -3
  32. package/dist/{chunk-ZMZQEBKI.js → chunk-7EEGBKV4.js} +11 -11
  33. package/dist/{chunk-BS4GAMUB.js → chunk-A67NR5AT.js} +2 -2
  34. package/dist/{chunk-WJIMKGD6.js → chunk-BAU36233.js} +8 -8
  35. package/dist/{chunk-MDU3C27C.js → chunk-BO4XV5VX.js} +8 -8
  36. package/dist/{chunk-KF6GFW6O.js → chunk-BQQ5MXUC.js} +11 -11
  37. package/dist/{chunk-K6RDB7IA.js → chunk-C3G5PNUO.js} +23 -23
  38. package/dist/{chunk-SRZOW5L2.js → chunk-C6GEXX4L.js} +1 -1
  39. package/dist/{chunk-U2JOLB7O.js → chunk-CE64C5K5.js} +227 -72
  40. package/dist/chunk-CP3HIR5H.js +2119 -0
  41. package/dist/{chunk-BBV5TKE6.js → chunk-CPXGJI2A.js} +2 -2
  42. package/dist/{chunk-5DDOTTG4.js → chunk-CULVKYTK.js} +5 -5
  43. package/dist/{chunk-F34AR6O3.js → chunk-D2T66PDV.js} +6 -6
  44. package/dist/{chunk-NF3BK5WR.js → chunk-DACXIVVF.js} +5 -5
  45. package/dist/{chunk-4SVIVOMC.js → chunk-DLIYANB7.js} +20 -15
  46. package/dist/{chunk-E3BQTQUP.js → chunk-DO7M3LSX.js} +9 -9
  47. package/dist/{chunk-2QPI3TR3.js → chunk-DVJL77SO.js} +2 -2
  48. package/dist/chunk-EM2WNQS2.js +93 -0
  49. package/dist/{chunk-ODUTYZIU.js → chunk-EUEXGXXR.js} +5 -5
  50. package/dist/{chunk-UL36QJX6.js → chunk-EUZRMP4Y.js} +18 -16
  51. package/dist/{chunk-R6MAYTMS.js → chunk-G4LGUTOE.js} +4 -4
  52. package/dist/{chunk-CBSKDFWL.js → chunk-GEVQNST4.js} +2 -2
  53. package/dist/{chunk-XXBQKW32.js → chunk-GFQ7P2UF.js} +7 -7
  54. package/dist/{chunk-SBZX6ARC.js → chunk-GI5RRMAH.js} +14 -14
  55. package/dist/{chunk-KDWLXVMN.js → chunk-GVZFCJHE.js} +343 -113
  56. package/dist/{chunk-633EXGZA.js → chunk-GXIWHXDB.js} +3 -3
  57. package/dist/{chunk-LUL5Z66S.js → chunk-HOX4YZ2K.js} +6 -5
  58. package/dist/chunk-HRAKUPIH.js +57 -0
  59. package/dist/{chunk-KYKNBD4Y.js → chunk-IJMW64DX.js} +978 -258
  60. package/dist/{chunk-DIMRLNIC.js → chunk-IMOD2YPV.js} +16 -9
  61. package/dist/{chunk-6CDNRHWH.js → chunk-IQCNVLO6.js} +28 -8
  62. package/dist/{chunk-UTUNT5QL.js → chunk-ISNCCX42.js} +9 -9
  63. package/dist/{chunk-RLTT5GVY.js → chunk-IZYTT3CD.js} +9 -5
  64. package/dist/{chunk-5ZMXGW7P.js → chunk-KAFMW7WM.js} +4 -85
  65. package/dist/chunk-KKEYGFX4.js +915 -0
  66. package/dist/{chunk-HHVJNVUJ.js → chunk-KS7ETA3P.js} +2 -2
  67. package/dist/{chunk-UXAC2FX4.js → chunk-L3Z5ANCV.js} +7 -7
  68. package/dist/{chunk-EHCPSZJF.js → chunk-LBFQMYS3.js} +2 -2
  69. package/dist/{chunk-QEQISF75.js → chunk-LK2FN5JY.js} +1 -1
  70. package/dist/{chunk-URBGEOH3.js → chunk-M6Z2V6YU.js} +5 -5
  71. package/dist/{chunk-DRD2A54W.js → chunk-MBJO5VNZ.js} +18 -18
  72. package/dist/chunk-MNQN3X6Y.js +595 -0
  73. package/dist/{chunk-GXCCHKN6.js → chunk-MZHXENL7.js} +7 -7
  74. package/dist/chunk-MZNWZUJM.js +1801 -0
  75. package/dist/{chunk-7YJWEF2L.js → chunk-N37QC5FV.js} +5 -5
  76. package/dist/{chunk-WLMSOT73.js → chunk-NCCQ6DVS.js} +7 -7
  77. package/dist/{chunk-TZ7MFRG4.js → chunk-NO7J45X6.js} +170 -53
  78. package/dist/chunk-OH3YYA3B.js +15 -0
  79. package/dist/{chunk-22PQ4TX4.js → chunk-P4DL2LM5.js} +16 -77
  80. package/dist/{chunk-R6MICQYU.js → chunk-PFLOULP3.js} +4 -4
  81. package/dist/{chunk-MC3JSVR6.js → chunk-QJMRYTCX.js} +7 -7
  82. package/dist/{chunk-ILJ7DWGE.js → chunk-QKWL7SYE.js} +12 -12
  83. package/dist/chunk-R2CT5YDO.js +66 -0
  84. package/dist/chunk-RFCKPS2V.js +26 -0
  85. package/dist/{chunk-ONRTXOZY.js → chunk-RTLNFZMD.js} +12 -4
  86. package/dist/{chunk-U7H5WRG5.js → chunk-RXFPB32E.js} +8 -6
  87. package/dist/{chunk-S32UQ5GL.js → chunk-SEDI5K5B.js} +18 -18
  88. package/dist/{chunk-ICO4TQ2F.js → chunk-SELG4SUR.js} +41 -25
  89. package/dist/{chunk-YEJIG7LN.js → chunk-SER7RRAE.js} +27 -832
  90. package/dist/{chunk-K2HL3GBL.js → chunk-T4TY5GG3.js} +165 -15
  91. package/dist/chunk-T7QQBNLH.js +691 -0
  92. package/dist/{chunk-HGSLRG33.js → chunk-TLTGZTXI.js} +3 -3
  93. package/dist/chunk-TZ6UVP2H.js +637 -0
  94. package/dist/{chunk-EWD5P3GK.js → chunk-TZHN5ITX.js} +13 -41
  95. package/dist/{chunk-7TKWWPD7.js → chunk-U3TPUXOQ.js} +398 -253
  96. package/dist/{chunk-GNQRWTMY.js → chunk-UA3W4FGC.js} +6 -6
  97. package/dist/{chunk-O2RQ7LCK.js → chunk-UA6W4XFJ.js} +2 -2
  98. package/dist/chunk-UWD3JD5X.js +709 -0
  99. package/dist/chunk-V4ZKOKRB.js +13433 -0
  100. package/dist/{chunk-NC4KV7EL.js → chunk-VCRVEDUC.js} +5 -5
  101. package/dist/{chunk-I7VLWRK2.js → chunk-VMATUZB6.js} +12 -10
  102. package/dist/{chunk-J2FYEQ5L.js → chunk-VTYHHQ57.js} +2 -2
  103. package/dist/chunk-WB7POC6M.js +891 -0
  104. package/dist/{chunk-GVYWZNRK.js → chunk-WBVKKTUT.js} +2 -2
  105. package/dist/{chunk-EHOSNVVM.js → chunk-WLHX3MM5.js} +6 -2
  106. package/dist/{chunk-SDWNDICN.js → chunk-WN552PKN.js} +573 -316
  107. package/dist/{chunk-TEG3RYVZ.js → chunk-WT5TRMO4.js} +51 -26
  108. package/dist/{chunk-NY6IWDVU.js → chunk-WURGVOZJ.js} +56 -12
  109. package/dist/{chunk-7WUZEB2M.js → chunk-XR3XJN2M.js} +2 -2
  110. package/dist/chunk-XW2UZICE.js +372 -0
  111. package/dist/{chunk-FSTIBAGM.js → chunk-XZ6UFQ52.js} +11 -11
  112. package/dist/chunk-Y3JU5RPK.js +8 -0
  113. package/dist/chunk-YKRJTYNP.js +1143 -0
  114. package/dist/{chunk-7HBHHVCK.js → chunk-YPRSNUTC.js} +2 -2
  115. package/dist/{chunk-PWWSIB2A.js → chunk-ZGIGW4ZG.js} +5 -5
  116. package/dist/cli/index.js +34 -36
  117. package/dist/{clio-5I2IBFYL.js → clio-L2P7S2R2.js} +9 -9
  118. package/dist/{code-nav-YXIAEZVS.js → code-nav-B5LNX4KU.js} +25 -25
  119. package/dist/{components-TNIKXCBH.js → components-63MMQKUT.js} +6 -6
  120. package/dist/{config-Y2JDJ3JJ.js → config-YXARKGTX.js} +81 -77
  121. package/dist/configure-LMVQJ46J.js +85 -0
  122. package/dist/{context-QQ53HSGJ.js → context-7HJEWTTP.js} +92 -48
  123. package/dist/{context-S2EEC3EJ.js → context-XSZKKFBW.js} +14 -14
  124. package/dist/{context-P5YSEO55.js → context-YG2LZDYZ.js} +67 -64
  125. package/dist/{context-clear-TMEQCOTH.js → context-clear-AC5NXHM2.js} +64 -61
  126. package/dist/{context-index-HP2JFUWA.js → context-index-KKTPRV5G.js} +3 -3
  127. package/dist/{context-map-INTXD54D.js → context-map-T7ROR5D5.js} +4 -4
  128. package/dist/{context-working-set-CNLSQN5K.js → context-working-set-F4Q4J3NS.js} +15 -12
  129. package/dist/{detail-5572VLBO.js → detail-H73BEF2N.js} +65 -62
  130. package/dist/{dispatch-runner-FRHD6P2O.js → dispatch-runner-3RY5FSJC.js} +83 -80
  131. package/dist/{doctor-N3LCM2LG.js → doctor-EQYJOGUG.js} +47 -32
  132. package/dist/{eval-BUU3ZOUZ.js → eval-4P7O6CCE.js} +114 -50
  133. package/dist/{evidence-DTGEN456.js → evidence-D6GUSYJW.js} +64 -61
  134. package/dist/{evidence-SQ5DNFEN.js → evidence-O76QF7TZ.js} +69 -65
  135. package/dist/{evolve-IJNUFZDS.js → evolve-H47BCETS.js} +65 -62
  136. package/dist/{extensions-YVRHX6ZI.js → extensions-NNL3ZOCU.js} +98 -20
  137. package/dist/{fleet-ZNNVSYFO.js → fleet-KMNS6NOM.js} +115 -107
  138. package/dist/{fleet-commands-5YE7NPJL.js → fleet-commands-DOWSYCBX.js} +15 -15
  139. package/dist/{fleet-decisions-3SBSCTCW.js → fleet-decisions-S3PTZV2D.js} +9 -9
  140. package/dist/{fleet-graph-6HHPWF5T.js → fleet-graph-F2DE2TME.js} +26 -24
  141. package/dist/{fleet-inspect-JEYMGCGC.js → fleet-inspect-EN2Q6IVB.js} +67 -63
  142. package/dist/{fleet-preflight-QRSHIIDE.js → fleet-preflight-FRLETDD3.js} +3 -3
  143. package/dist/{fleet-validate-4PM4GDDL.js → fleet-validate-B2XDLS57.js} +28 -29
  144. package/dist/{fleet-verify-NJDTHTO3.js → fleet-verify-4JKUWGJ7.js} +64 -61
  145. package/dist/{fleet-view-UP2BWQQY.js → fleet-view-BHJFW26B.js} +67 -63
  146. package/dist/{init-S3GZQ5ZF.js → init-XAT5N5YM.js} +86 -80
  147. package/dist/interop-FVECHFKG.js +246 -0
  148. package/dist/{inventory-K2OZ36YJ.js → inventory-7KFQGLCV.js} +67 -63
  149. package/dist/library-NY2XOT75.js +492 -0
  150. package/dist/library-QAPAO23R.js +306 -0
  151. package/dist/library-import-5Y6MAS3R.js +183 -0
  152. package/dist/library-inventory-JT6HWITQ.js +56 -0
  153. package/dist/library-validation-EQUH25DC.js +42 -0
  154. package/dist/{memory-OQOXQGYD.js → memory-DYVTTCP6.js} +65 -62
  155. package/dist/{models-3IK2Y5WE.js → models-MASFJ6Y2.js} +51 -38
  156. package/dist/{monitor-FTJLTKCQ.js → monitor-YMP4NXJJ.js} +73 -69
  157. package/dist/{orchestrator-N47O7SFD.js → orchestrator-AFQRRTEI.js} +4255 -2845
  158. package/dist/{panes-7BTYH3XQ.js → panes-D3Y2KFG5.js} +4 -4
  159. package/dist/{panes-WPOMEMRH.js → panes-NICTHQCV.js} +7 -7
  160. package/dist/{paths-J3KN7UAO.js → paths-PSFAUIGO.js} +5 -5
  161. package/dist/{preload-65U34NG6.js → preload-5Q7VXRFJ.js} +64 -61
  162. package/dist/{reset-MUVQDLNL.js → reset-7NKZK7JN.js} +11 -9
  163. package/dist/{resources-LM76COAO.js → resources-NILSIZAT.js} +94 -38
  164. package/dist/{run-3VFZQ33N.js → run-BPZGEBZV.js} +131 -114
  165. package/dist/{share-4JUB4BL7.js → share-EZ6ERBMH.js} +31 -28
  166. package/dist/skills-BTVVNYVM.js +100 -0
  167. package/dist/{skills-eval-G6T57L7M.js → skills-eval-UY34MNK7.js} +117 -78
  168. package/dist/{skills-inventory-WLM46PJH.js → skills-inventory-JDHSIA7I.js} +30 -25
  169. package/dist/{slash-commands-GBARG3Y7.js → slash-commands-K4FNQ2AT.js} +53 -49
  170. package/dist/{steer-S7D7IKPU.js → steer-2B3EQGFH.js} +4 -4
  171. package/dist/{support-5VAEC32W.js → support-L2SOL3IE.js} +7 -7
  172. package/dist/{targets-N5REUETU.js → targets-44VKGFLN.js} +69 -47
  173. package/dist/{tasks-6BVY5YZF.js → tasks-3KODKFU7.js} +14 -14
  174. package/dist/{terminal-lease-57UEOJKS.js → terminal-lease-LXA7MMPO.js} +32 -19
  175. package/dist/{tools-6OCQ6SVB.js → tools-3UB7TEVR.js} +7 -7
  176. package/dist/{trace-JHLXWUMN.js → trace-TAMIU4OJ.js} +5 -4
  177. package/dist/{tui-primitives-RCY2HN7G.js → tui-primitives-A6MUW32V.js} +3 -2
  178. package/dist/{uninstall-FXYMFFRT.js → uninstall-QYVRPEM4.js} +9 -9
  179. package/dist/{upgrade-4HD5HAIV.js → upgrade-7PMKM2JH.js} +17 -18
  180. package/dist/{usage-4GWM2WWP.js → usage-6EQV7EQK.js} +77 -73
  181. package/dist/{verifiers-GSKWKWVG.js → verifiers-JLITWSHU.js} +16 -16
  182. package/dist/{verify-3AS3ULCY.js → verify-T7NAEVIG.js} +13 -13
  183. package/dist/{web-fetch-MQN4FH3X.js → web-fetch-W4TNW4Q7.js} +4 -4
  184. package/dist/{wiki-generate-7BV7XWIY.js → wiki-generate-T2TJQJUA.js} +90 -84
  185. package/dist/{with-panes-OFTNAR4Y.js → with-panes-CHFC7HGI.js} +4 -4
  186. package/dist/worker/entry.js +297 -88
  187. package/docs/README.md +43 -0
  188. package/docs/architecture/architecture.md +8 -7
  189. package/docs/architecture/artifact-versions.md +3 -3
  190. package/docs/architecture/context-engine.md +36 -2
  191. package/docs/architecture/library.md +32 -0
  192. package/docs/architecture/middleware-and-components.md +1 -1
  193. package/docs/architecture/model-catalog.md +21 -1
  194. package/docs/architecture/pi-boundary.md +18 -0
  195. package/docs/architecture/prompt-envelope-and-tools.md +5 -5
  196. package/docs/architecture/safety-model.md +21 -2
  197. package/docs/architecture/session-lifecycle.md +12 -1
  198. package/docs/architecture/tui-design.md +153 -39
  199. package/docs/architecture/worker-context.md +106 -0
  200. package/docs/guide/authoring-plugins.md +160 -0
  201. package/docs/guide/built-in-agents.md +5 -5
  202. package/docs/guide/commands-and-modes.md +186 -80
  203. package/docs/guide/configuration-and-targets.md +123 -28
  204. package/docs/guide/configuration-reference.md +36 -38
  205. package/docs/guide/environment-variables.md +2 -2
  206. package/docs/guide/exit-codes-and-output.md +1 -1
  207. package/docs/guide/extensions-and-sharing.md +93 -53
  208. package/docs/guide/fleet-dispatch.md +32 -10
  209. package/docs/guide/glossary.md +2 -2
  210. package/docs/guide/harness-extensions.md +291 -0
  211. package/docs/guide/installation-and-lifecycle.md +53 -20
  212. package/docs/guide/interop.md +243 -0
  213. package/docs/guide/panes-and-files.md +3 -3
  214. package/docs/guide/plugins.md +80 -0
  215. package/docs/guide/resource-library.md +111 -45
  216. package/docs/guide/skills-marketplace.md +35 -72
  217. package/docs/guide/tool-usage.md +19 -7
  218. package/docs/guide/troubleshooting.md +1 -1
  219. package/docs/process/development-pipeline.md +15 -15
  220. package/docs/process/documentation-coverage.md +29 -2
  221. package/docs/process/documentation-guide.md +15 -7
  222. package/docs/process/eval-runner.md +8 -3
  223. package/docs/process/performance-methodology.md +1 -1
  224. package/docs/process/release-cut-checklist.md +22 -6
  225. package/docs/process/scientific-validation.md +23 -0
  226. package/evals/scalar-decision-machinery.ts +1 -1
  227. package/examples/extensions/README.md +67 -0
  228. package/examples/extensions/lab-status/clio-coder-extension.json +14 -0
  229. package/examples/extensions/lab-status/extension.mjs +68 -0
  230. package/examples/extensions/lab-status/jobs.synthetic.json +9 -0
  231. package/examples/extensions/measurements/clio-coder-extension.json +28 -0
  232. package/examples/extensions/measurements/summarize.cjs +23 -0
  233. package/library/README.md +109 -0
  234. package/library/_authoring/templates/agent/README.md +28 -0
  235. package/library/_authoring/templates/agent/agents/benchmark-scout.md +30 -0
  236. package/library/_authoring/templates/agent/plugin.json +23 -0
  237. package/library/_authoring/templates/fleet/README.md +29 -0
  238. package/library/_authoring/templates/fleet/fleets/pipeline-review.md +31 -0
  239. package/library/_authoring/templates/fleet/plugin.json +23 -0
  240. package/library/_authoring/templates/plugin/README.md +37 -0
  241. package/library/_authoring/templates/plugin/agents/data-curator.md +31 -0
  242. package/library/_authoring/templates/plugin/assets/curation-guide.md +22 -0
  243. package/library/_authoring/templates/plugin/plugin.json +42 -0
  244. package/library/_authoring/templates/plugin/prompts/inspect-dataset.md +15 -0
  245. package/library/_authoring/templates/plugin/skills/dataset-curation/SKILL.md +36 -0
  246. package/library/_authoring/templates/plugin/skills/dataset-curation/evals.md +17 -0
  247. package/library/_authoring/templates/prompt/README.md +28 -0
  248. package/library/_authoring/templates/prompt/plugin.json +23 -0
  249. package/library/_authoring/templates/prompt/prompts/paper-summary.md +26 -0
  250. package/library/_authoring/templates/skill/README.md +24 -0
  251. package/library/_authoring/templates/skill/SKILL.md +39 -0
  252. package/library/_authoring/templates/skill/evals.md +30 -0
  253. package/library/_authoring/templates/skill/plugin.json +23 -0
  254. package/library/agents/README.md +7 -0
  255. package/library/fleets/README.md +7 -0
  256. package/library/plugins/materio/README.md +137 -0
  257. package/library/plugins/materio/ai.iowarp.clio/agents/materio-lab-definer.md +208 -0
  258. package/library/plugins/materio/ai.iowarp.clio/agents/materio-literature-reviewer.md +308 -0
  259. package/library/plugins/materio/ai.iowarp.clio/agents/materio-research-explorer.md +249 -0
  260. package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-executor.md +416 -0
  261. package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-verifier.md +60 -0
  262. package/library/plugins/materio/ai.iowarp.clio/agents/materio-workflow-planner.md +238 -0
  263. package/library/plugins/materio/ai.iowarp.clio/fleets/materio-execute-task.md +50 -0
  264. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/add-task.md +66 -0
  265. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/archive-task.md +65 -0
  266. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/checkpoint.md +26 -0
  267. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-research-tasks.md +230 -0
  268. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-virtual-lab.md +181 -0
  269. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/execute-task.md +292 -0
  270. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/help.md +129 -0
  271. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/identify-research.md +206 -0
  272. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/literature-review.md +201 -0
  273. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/pause-research.md +12 -0
  274. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/progress.md +105 -0
  275. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/remove-task.md +63 -0
  276. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/resume-research.md +64 -0
  277. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/settings.md +16 -0
  278. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/status.md +92 -0
  279. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/upload-data.md +104 -0
  280. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/wtfp.md +145 -0
  281. package/library/plugins/materio/ai.iowarp.clio/references/execution.md +56 -0
  282. package/library/plugins/materio/ai.iowarp.portability/provenance.json +9 -0
  283. package/library/plugins/materio/assets/actions/add-task.md +86 -0
  284. package/library/plugins/materio/assets/actions/archive-task.md +84 -0
  285. package/library/plugins/materio/assets/actions/checkpoint.md +47 -0
  286. package/library/plugins/materio/assets/actions/define-research-tasks.md +228 -0
  287. package/library/plugins/materio/assets/actions/define-virtual-lab.md +179 -0
  288. package/library/plugins/materio/assets/actions/execute-task.md +290 -0
  289. package/library/plugins/materio/assets/actions/help.md +140 -0
  290. package/library/plugins/materio/assets/actions/identify-research.md +204 -0
  291. package/library/plugins/materio/assets/actions/literature-review.md +199 -0
  292. package/library/plugins/materio/assets/actions/pause-research.md +34 -0
  293. package/library/plugins/materio/assets/actions/progress.md +125 -0
  294. package/library/plugins/materio/assets/actions/remove-task.md +82 -0
  295. package/library/plugins/materio/assets/actions/resume-research.md +84 -0
  296. package/library/plugins/materio/assets/actions/settings.md +38 -0
  297. package/library/plugins/materio/assets/actions/status.md +112 -0
  298. package/library/plugins/materio/assets/actions/upload-data.md +123 -0
  299. package/library/plugins/materio/assets/actions/wtfp.md +179 -0
  300. package/library/plugins/materio/assets/references/research-domains.md +134 -0
  301. package/library/plugins/materio/assets/references/research-policy.md +77 -0
  302. package/library/plugins/materio/assets/references/traditional-workflows.md +146 -0
  303. package/library/plugins/materio/assets/scripts/check_physics.py +271 -0
  304. package/library/plugins/materio/assets/scripts/check_scripts.py +248 -0
  305. package/library/plugins/materio/assets/scripts/project_plugin.py +165 -0
  306. package/library/plugins/materio/assets/scripts/research_state.py +400 -0
  307. package/library/plugins/materio/assets/scripts/verify_citations.py +616 -0
  308. package/library/plugins/materio/assets/templates/RESEARCH.md +39 -0
  309. package/library/plugins/materio/assets/templates/VIRTUAL-LAB.md +120 -0
  310. package/library/plugins/materio/assets/templates/WORKFLOW.md +42 -0
  311. package/library/plugins/materio/assets/templates/config.json +5 -0
  312. package/library/plugins/materio/evals/scripts.yaml +29 -0
  313. package/library/plugins/materio/plugin.json +530 -0
  314. package/library/plugins/materio/skills/materio-lab-definer/SKILL.md +74 -0
  315. package/library/plugins/materio/skills/materio-literature-reviewer/SKILL.md +64 -0
  316. package/library/plugins/materio/skills/materio-research-explorer/SKILL.md +74 -0
  317. package/library/plugins/materio/skills/materio-task-executor/SKILL.md +214 -0
  318. package/library/plugins/materio/skills/materio-task-verifier/SKILL.md +46 -0
  319. package/library/plugins/materio/skills/materio-workflow-planner/SKILL.md +79 -0
  320. package/library/plugins/materio/tests/test_check_physics.py +139 -0
  321. package/library/plugins/materio/tests/test_check_scripts.py +140 -0
  322. package/library/plugins/materio/tests/test_research_state.py +291 -0
  323. package/library/plugins/materio/tests/test_verify_citations.py +337 -0
  324. package/library/prompts/README.md +7 -0
  325. package/library/registry.yaml +921 -0
  326. package/library/skills/README.md +120 -0
  327. package/{skills → library/skills}/coding/ast-grep/SKILL.md +1 -1
  328. package/{skills → library/skills}/coding/ast-grep/evals.md +1 -1
  329. package/library/skills/coding/ast-grep/plugin.json +23 -0
  330. package/{skills → library/skills}/coding/coding-standards/SKILL.md +1 -1
  331. package/{skills → library/skills}/coding/coding-standards/evals.md +1 -1
  332. package/library/skills/coding/coding-standards/plugin.json +23 -0
  333. package/{skills → library/skills}/coding/prototype/SKILL.md +1 -1
  334. package/{skills → library/skills}/coding/prototype/evals.md +1 -1
  335. package/library/skills/coding/prototype/plugin.json +23 -0
  336. package/{skills → library/skills}/coding/tdd/SKILL.md +1 -1
  337. package/{skills → library/skills}/coding/tdd/evals.md +1 -1
  338. package/library/skills/coding/tdd/plugin.json +23 -0
  339. package/{skills → library/skills}/context/context-handoff/SKILL.md +1 -1
  340. package/{skills → library/skills}/context/context-handoff/evals.md +1 -1
  341. package/library/skills/context/context-handoff/plugin.json +23 -0
  342. package/{skills → library/skills}/context/context-prime/SKILL.md +1 -1
  343. package/{skills → library/skills}/context/context-prime/evals.md +1 -1
  344. package/library/skills/context/context-prime/plugin.json +23 -0
  345. package/{skills → library/skills}/git/branch-closeout/SKILL.md +1 -1
  346. package/library/skills/git/branch-closeout/plugin.json +23 -0
  347. package/{skills → library/skills}/git/file-ticket/SKILL.md +1 -1
  348. package/library/skills/git/file-ticket/plugin.json +23 -0
  349. package/{skills → library/skills}/git/fix-issue/SKILL.md +1 -1
  350. package/library/skills/git/fix-issue/plugin.json +23 -0
  351. package/{skills → library/skills}/git/resolve-merge-conflicts/SKILL.md +1 -1
  352. package/{skills → library/skills}/git/resolve-merge-conflicts/evals.md +1 -1
  353. package/library/skills/git/resolve-merge-conflicts/plugin.json +23 -0
  354. package/{skills → library/skills}/git/ship/SKILL.md +1 -1
  355. package/library/skills/git/ship/plugin.json +23 -0
  356. package/{skills → library/skills}/git/worktree-create/SKILL.md +1 -1
  357. package/library/skills/git/worktree-create/plugin.json +23 -0
  358. package/{skills → library/skills}/git/worktree-merge/SKILL.md +1 -1
  359. package/library/skills/git/worktree-merge/plugin.json +23 -0
  360. package/{skills → library/skills}/meta/clio-coder-dev/SKILL.md +1 -1
  361. package/{skills → library/skills}/meta/clio-coder-dev/evals.md +1 -1
  362. package/library/skills/meta/clio-coder-dev/plugin.json +23 -0
  363. package/{skills → library/skills}/meta/clio-coder-test/SKILL.md +1 -1
  364. package/{skills → library/skills}/meta/clio-coder-test/evals.md +1 -1
  365. package/library/skills/meta/clio-coder-test/plugin.json +23 -0
  366. package/{skills → library/skills}/meta/credentials/SKILL.md +1 -1
  367. package/{skills → library/skills}/meta/credentials/evals.md +1 -1
  368. package/library/skills/meta/credentials/plugin.json +23 -0
  369. package/library/skills/meta/find-skills/SKILL.md +85 -0
  370. package/library/skills/meta/find-skills/evals.md +65 -0
  371. package/library/skills/meta/find-skills/plugin.json +23 -0
  372. package/{skills → library/skills}/meta/herdr/SKILL.md +1 -1
  373. package/{skills → library/skills}/meta/herdr/evals.md +1 -1
  374. package/library/skills/meta/herdr/plugin.json +23 -0
  375. package/{skills → library/skills}/meta/skill-craft/SKILL.md +23 -9
  376. package/{skills → library/skills}/meta/skill-craft/evals.md +11 -3
  377. package/library/skills/meta/skill-craft/plugin.json +23 -0
  378. package/{skills → library/skills}/planning/archify/SKILL.md +13 -13
  379. package/library/skills/planning/archify/plugin.json +23 -0
  380. package/{skills → library/skills}/planning/architecture/SKILL.md +1 -1
  381. package/{skills → library/skills}/planning/architecture/evals.md +1 -1
  382. package/library/skills/planning/architecture/plugin.json +23 -0
  383. package/{skills → library/skills}/planning/backlog/SKILL.md +1 -1
  384. package/{skills → library/skills}/planning/backlog/evals.md +1 -1
  385. package/library/skills/planning/backlog/plugin.json +23 -0
  386. package/{skills → library/skills}/planning/prd/SKILL.md +1 -1
  387. package/{skills → library/skills}/planning/prd/evals.md +1 -1
  388. package/library/skills/planning/prd/plugin.json +23 -0
  389. package/{skills → library/skills}/planning/product-intent/SKILL.md +1 -1
  390. package/{skills → library/skills}/planning/product-intent/evals.md +1 -1
  391. package/library/skills/planning/product-intent/plugin.json +23 -0
  392. package/{skills → library/skills}/planning/tech-spec/SKILL.md +1 -1
  393. package/{skills → library/skills}/planning/tech-spec/evals.md +1 -1
  394. package/library/skills/planning/tech-spec/plugin.json +23 -0
  395. package/{skills → library/skills}/registry.yaml +7 -7
  396. package/{skills → library/skills}/remote.yaml +1 -1
  397. package/{skills → library/skills}/research/arxiv-literature/SKILL.md +1 -1
  398. package/{skills → library/skills}/research/arxiv-literature/evals.md +1 -1
  399. package/library/skills/research/arxiv-literature/plugin.json +23 -0
  400. package/{skills → library/skills}/research/experiment-protocol/SKILL.md +1 -1
  401. package/{skills → library/skills}/research/experiment-protocol/evals.md +1 -1
  402. package/library/skills/research/experiment-protocol/plugin.json +23 -0
  403. package/{skills → library/skills}/research/scientific-debugging/SKILL.md +1 -1
  404. package/{skills → library/skills}/research/scientific-debugging/evals.md +1 -1
  405. package/library/skills/research/scientific-debugging/plugin.json +23 -0
  406. package/{skills → library/skills}/research/scientific-modernization/SKILL.md +1 -1
  407. package/{skills → library/skills}/research/scientific-modernization/evals.md +1 -1
  408. package/library/skills/research/scientific-modernization/plugin.json +23 -0
  409. package/{skills → library/skills}/skill-marketplace.json +37 -37
  410. package/{skills → library/skills}/workflow/cut-it/SKILL.md +1 -1
  411. package/{skills → library/skills}/workflow/cut-it/evals.md +1 -1
  412. package/library/skills/workflow/cut-it/plugin.json +23 -0
  413. package/{skills → library/skills}/workflow/design-council/SKILL.md +1 -1
  414. package/{skills → library/skills}/workflow/design-council/evals.md +1 -1
  415. package/library/skills/workflow/design-council/plugin.json +23 -0
  416. package/{skills → library/skills}/workflow/grill-me/SKILL.md +1 -1
  417. package/{skills → library/skills}/workflow/grill-me/evals.md +1 -1
  418. package/library/skills/workflow/grill-me/plugin.json +23 -0
  419. package/{skills → library/skills}/workflow/workflow-distiller/SKILL.md +14 -11
  420. package/{skills → library/skills}/workflow/workflow-distiller/evals.md +14 -6
  421. package/library/skills/workflow/workflow-distiller/plugin.json +23 -0
  422. package/package.json +12 -5
  423. package/src/cli/agents.ts +1 -1
  424. package/src/cli/ask.ts +10 -10
  425. package/src/cli/config-inspect.ts +1 -1
  426. package/src/cli/configure-editor.ts +51 -0
  427. package/src/cli/configure-interop.ts +1 -1
  428. package/src/cli/configure-oauth.ts +1 -1
  429. package/src/cli/configure-onboarding.ts +232 -96
  430. package/src/cli/configure-prompts.ts +76 -0
  431. package/src/cli/configure-quick.ts +274 -0
  432. package/src/cli/configure-target.ts +14 -2
  433. package/src/cli/configure.ts +415 -176
  434. package/src/cli/eval.ts +40 -6
  435. package/src/cli/extensions.ts +74 -8
  436. package/src/cli/fleet-preflight.ts +2 -0
  437. package/src/cli/fleet.ts +2 -0
  438. package/src/cli/index.ts +1 -3
  439. package/src/cli/interop-inspect.ts +61 -33
  440. package/src/cli/interop.ts +79 -9
  441. package/src/cli/library-import.ts +139 -0
  442. package/src/cli/library.ts +418 -120
  443. package/src/cli/oauth-manual-input.ts +1 -1
  444. package/src/cli/reset.ts +2 -0
  445. package/src/cli/run.ts +26 -9
  446. package/src/cli/select.ts +35 -4
  447. package/src/cli/skills-eval.ts +43 -6
  448. package/src/cli/skills-inventory.ts +6 -2
  449. package/src/cli/skills.ts +44 -491
  450. package/src/cli/upgrade.ts +2 -2
  451. package/src/core/bus-events.ts +5 -0
  452. package/src/core/config.ts +6 -1
  453. package/src/core/defaults.ts +34 -12
  454. package/src/{interactive → core}/external-editor.ts +4 -4
  455. package/src/core/recent-models.ts +2 -2
  456. package/src/core/session-routing.ts +3 -3
  457. package/src/core/state-file-lock.ts +1 -1
  458. package/src/core/tool-names.ts +5 -0
  459. package/src/domains/agents/extension.ts +42 -6
  460. package/src/domains/agents/fleet-commands.ts +92 -1
  461. package/src/domains/agents/fleet-contract.ts +87 -19
  462. package/src/domains/agents/recipe.ts +5 -4
  463. package/src/domains/agents/registry.ts +80 -24
  464. package/src/domains/config/classify.ts +1 -1
  465. package/src/domains/config/keybindings.ts +156 -124
  466. package/src/domains/context/worker/contract.ts +91 -0
  467. package/src/domains/context/worker/pressure.ts +120 -0
  468. package/src/domains/context/worker/recall.ts +62 -0
  469. package/src/domains/context/worker/select.ts +164 -0
  470. package/src/domains/context/worker/snapshot.ts +35 -0
  471. package/src/domains/context/worker/store.ts +16 -0
  472. package/src/domains/context/working-set/replay/synthetic.ts +2 -1
  473. package/src/domains/dispatch/active-route-planner.ts +2 -0
  474. package/src/domains/dispatch/backoff.ts +1 -0
  475. package/src/domains/dispatch/code-step.ts +12 -2
  476. package/src/domains/dispatch/contract.ts +3 -0
  477. package/src/domains/dispatch/execution-plan.ts +2 -0
  478. package/src/domains/dispatch/extension.ts +109 -27
  479. package/src/domains/dispatch/fleet-plan.ts +10 -0
  480. package/src/domains/dispatch/fleet-run.ts +1 -0
  481. package/src/domains/dispatch/orphan-recovery.ts +1 -0
  482. package/src/domains/dispatch/receipt-integrity.ts +4 -0
  483. package/src/domains/dispatch/state.ts +1 -0
  484. package/src/domains/dispatch/types.ts +5 -0
  485. package/src/domains/dispatch/validation.ts +12 -0
  486. package/src/domains/dispatch/workspace-checkpoint.ts +1 -1
  487. package/src/domains/evidence/failure-attribution.ts +1 -0
  488. package/src/domains/evidence/trust-status.ts +22 -3
  489. package/src/domains/extensions/command-schema.ts +145 -0
  490. package/src/domains/extensions/command-tools.ts +15 -0
  491. package/src/domains/extensions/compatibility.ts +7 -0
  492. package/src/domains/extensions/contract.ts +0 -4
  493. package/src/domains/extensions/discovery.ts +69 -205
  494. package/src/domains/extensions/extension.ts +0 -4
  495. package/src/domains/extensions/index.ts +1 -5
  496. package/src/domains/extensions/manager.ts +1 -6
  497. package/src/domains/extensions/operator-commands.ts +29 -0
  498. package/src/domains/extensions/operator-runtime.ts +483 -0
  499. package/src/domains/extensions/public-api.ts +53 -0
  500. package/src/domains/extensions/runtime-child.mjs +114 -0
  501. package/src/domains/extensions/runtime-process.ts +306 -0
  502. package/src/domains/extensions/runtime-schema.ts +146 -0
  503. package/src/domains/extensions/{resources.ts → snapshot-access.ts} +1 -17
  504. package/src/domains/extensions/snapshot.ts +4 -32
  505. package/src/domains/extensions/state.ts +5 -83
  506. package/src/domains/extensions/types.ts +33 -34
  507. package/src/domains/interop/adopt.ts +546 -0
  508. package/src/domains/interop/detect.ts +50 -12
  509. package/src/domains/interop/foreign.ts +554 -0
  510. package/src/domains/interop/import.ts +277 -0
  511. package/src/domains/interop/index.ts +24 -0
  512. package/src/domains/interop/install.ts +6 -0
  513. package/src/domains/interop/inventory.ts +351 -0
  514. package/src/domains/interop/projection.ts +360 -0
  515. package/src/domains/interop/registry.ts +106 -3
  516. package/src/domains/interop/types.ts +51 -0
  517. package/src/domains/lifecycle/migrations/index.ts +0 -2
  518. package/src/domains/lifecycle/naming-resources.ts +1 -1
  519. package/src/domains/middleware/marketplace-offer.ts +1 -1
  520. package/src/domains/mux/contract.ts +1 -1
  521. package/src/domains/plugins/catalog.ts +204 -0
  522. package/src/domains/plugins/contract.ts +24 -0
  523. package/src/domains/plugins/discovery.ts +316 -0
  524. package/src/domains/plugins/extension.ts +40 -0
  525. package/src/domains/plugins/index.ts +77 -0
  526. package/src/domains/plugins/integrity.ts +6 -0
  527. package/src/domains/plugins/manifest.ts +3 -0
  528. package/src/domains/plugins/resources.ts +102 -0
  529. package/src/domains/plugins/state.ts +753 -0
  530. package/src/domains/plugins/types.ts +217 -0
  531. package/src/domains/prompts/extension.ts +9 -2
  532. package/src/domains/prompts/fragments/operating/skills.md +10 -10
  533. package/src/domains/providers/probe/fingerprint.ts +13 -6
  534. package/src/domains/providers/probe/reasoning.ts +2 -0
  535. package/src/domains/providers/runtimes/common/probe-helpers.ts +23 -7
  536. package/src/domains/providers/runtimes/protocol/anthropic-compat.ts +7 -2
  537. package/src/domains/providers/runtimes/protocol/openai-compat.ts +10 -4
  538. package/src/domains/resources/common-loader.ts +9 -6
  539. package/src/domains/resources/index.ts +67 -0
  540. package/src/domains/resources/library-actions.ts +836 -0
  541. package/src/domains/resources/library-evals.ts +38 -0
  542. package/src/domains/resources/library-inventory.ts +1048 -0
  543. package/src/domains/resources/library-types.ts +50 -0
  544. package/src/domains/resources/library-validation.ts +634 -0
  545. package/src/domains/resources/library.ts +437 -156
  546. package/src/domains/resources/package-references.ts +66 -0
  547. package/src/domains/resources/prompts/loader.ts +75 -41
  548. package/src/domains/resources/skills/install.ts +2 -2
  549. package/src/domains/resources/skills/loader.ts +77 -22
  550. package/src/domains/resources/skills/marketplace.ts +48 -57
  551. package/src/domains/resources/skills/promotion.ts +2 -2
  552. package/src/domains/resources/skills/provenance-pin.ts +17 -4
  553. package/src/domains/safety/action-classifier.ts +2 -2
  554. package/src/domains/safety/default-path-policy.ts +3 -1
  555. package/src/domains/safety/policy-engine.ts +1 -1
  556. package/src/domains/safety/protected-artifacts.ts +21 -5
  557. package/src/domains/safety/skill-authority.ts +5 -2
  558. package/src/domains/share/archive.ts +1 -1
  559. package/src/engine/apis/openai-completions.ts +52 -2
  560. package/src/engine/notices/pi-tui-LICENSE +21 -0
  561. package/src/engine/tui.ts +3 -0
  562. package/src/engine/worker-runtime.ts +58 -14
  563. package/src/engine/worker-tools.ts +5 -0
  564. package/src/entry/orchestrator.ts +26 -5
  565. package/src/entry/plugin-reload.ts +18 -0
  566. package/src/interactive/application-controller.ts +68 -52
  567. package/src/interactive/chat-loop.ts +32 -5
  568. package/src/interactive/chat-panel.ts +168 -638
  569. package/src/interactive/chat-renderer.ts +13 -30
  570. package/src/interactive/clio-editor.ts +53 -21
  571. package/src/interactive/command-output.ts +56 -1
  572. package/src/interactive/dispatch-board.ts +1 -3
  573. package/src/interactive/editor-submit.ts +73 -59
  574. package/src/interactive/fleet-run-preview.ts +2 -0
  575. package/src/interactive/follow-up-queue-panel.ts +3 -3
  576. package/src/interactive/footer/dashboard.ts +12 -4
  577. package/src/interactive/footer/notifications.ts +2 -2
  578. package/src/interactive/footer/widgets.ts +52 -93
  579. package/src/interactive/interactive-application.ts +225 -63
  580. package/src/interactive/interactive-event-projection.ts +2 -44
  581. package/src/interactive/interactive-input-runtime.ts +257 -35
  582. package/src/interactive/interactive-presentation.ts +71 -21
  583. package/src/interactive/interactive-slash-runtime.ts +40 -48
  584. package/src/interactive/keybinding-manager.ts +156 -79
  585. package/src/interactive/keyboard-owner.ts +37 -0
  586. package/src/interactive/layout.ts +29 -4
  587. package/src/interactive/leader-key.ts +49 -102
  588. package/src/interactive/leader-menu.ts +45 -0
  589. package/src/interactive/overlay-ask-user-lifecycle.ts +9 -1
  590. package/src/interactive/overlay-frame.ts +15 -0
  591. package/src/interactive/overlay-general-openers.ts +2 -0
  592. package/src/interactive/overlay-key-routing.ts +46 -47
  593. package/src/interactive/overlay-lifecycle.ts +31 -15
  594. package/src/interactive/overlay-resource-openers.ts +56 -46
  595. package/src/interactive/overlay-session-lifecycle.ts +1 -1
  596. package/src/interactive/overlays/ask-user.ts +630 -556
  597. package/src/interactive/overlays/extension-panel.ts +70 -0
  598. package/src/interactive/overlays/extensions.ts +28 -5
  599. package/src/interactive/overlays/fleet-run-approval.ts +7 -3
  600. package/src/interactive/overlays/help-reference.ts +89 -40
  601. package/src/interactive/overlays/interop.ts +122 -3
  602. package/src/interactive/overlays/keybinding-detail.ts +2 -2
  603. package/src/interactive/overlays/library-lifecycle.ts +90 -0
  604. package/src/interactive/overlays/library-model.ts +574 -0
  605. package/src/interactive/overlays/library-review.ts +557 -0
  606. package/src/interactive/overlays/library-tabs.ts +3 -15
  607. package/src/interactive/overlays/library.ts +602 -0
  608. package/src/interactive/overlays/list-overlay.ts +218 -39
  609. package/src/interactive/overlays/model-selector.ts +28 -25
  610. package/src/interactive/overlays/session-selector.ts +9 -3
  611. package/src/interactive/overlays/settings.ts +34 -26
  612. package/src/interactive/overlays/tree-selector.ts +16 -11
  613. package/src/interactive/permission-hint.ts +13 -0
  614. package/src/interactive/permission-overlay.ts +77 -28
  615. package/src/interactive/prompt-source-label.ts +21 -0
  616. package/src/interactive/renderers/preview.ts +16 -0
  617. package/src/interactive/renderers/reference-card.ts +35 -0
  618. package/src/interactive/renderers/tool-execution.ts +67 -160
  619. package/src/interactive/renderers/worker-entry.ts +90 -42
  620. package/src/interactive/slash-autocomplete.ts +100 -7
  621. package/src/interactive/slash-commands.ts +396 -105
  622. package/src/interactive/slash-spec.ts +0 -1
  623. package/src/interactive/status/controller.ts +0 -5
  624. package/src/interactive/status/state-machine.ts +44 -26
  625. package/src/interactive/status/types.ts +3 -0
  626. package/src/interactive/status/verbs.ts +13 -12
  627. package/src/interactive/terminal-lease.ts +44 -12
  628. package/src/interactive/transcript-detail.ts +50 -112
  629. package/src/interactive/turn-queues.ts +8 -7
  630. package/src/interactive/turn-runtime.ts +1 -1
  631. package/src/interactive/view/artifacts.ts +4 -0
  632. package/src/interactive/view/view-overlay.ts +58 -43
  633. package/src/interactive/welcome-dashboard.ts +525 -408
  634. package/src/tools/bootstrap.ts +8 -0
  635. package/src/tools/builtin-tool-catalog.ts +7 -2
  636. package/src/tools/context/index.ts +58 -5
  637. package/src/tools/context/library.ts +465 -0
  638. package/src/tools/context/surface.ts +20 -6
  639. package/src/tools/core-bootstrap.ts +3 -0
  640. package/src/tools/dispatch-admission.ts +24 -1
  641. package/src/tools/dispatch-arguments.ts +8 -0
  642. package/src/tools/dispatch-plan.ts +32 -0
  643. package/src/tools/dispatch-schema.ts +31 -1
  644. package/src/tools/dispatch-types.ts +3 -0
  645. package/src/tools/dispatch.ts +1 -1
  646. package/src/tools/harness-extensions.ts +169 -0
  647. package/src/tools/observation.ts +4 -0
  648. package/src/tools/policy.ts +7 -1
  649. package/src/tools/presentation.ts +1 -1
  650. package/src/tools/registry.ts +20 -2
  651. package/src/tools/verify/numeric.ts +4 -4
  652. package/src/tools/worker-evidence.ts +5 -0
  653. package/src/worker/context-seed.ts +192 -0
  654. package/src/worker/entry.ts +1 -0
  655. package/src/worker/spec-contract.ts +8 -1
  656. package/dist/chunk-3UW3KU4A.js +0 -21
  657. package/dist/chunk-6SYEGZI3.js +0 -433
  658. package/dist/chunk-CXQ37WJH.js +0 -45
  659. package/dist/chunk-EQEJJ53P.js +0 -399
  660. package/dist/chunk-KTFSFCVN.js +0 -46
  661. package/dist/chunk-QRFXEO6Y.js +0 -17
  662. package/dist/chunk-T7FDXNRU.js +0 -1257
  663. package/dist/chunk-U7VQ4NI4.js +0 -911
  664. package/dist/configure-SML6UBZ5.js +0 -55
  665. package/dist/interop-YOTGXFJM.js +0 -115
  666. package/dist/library-GJI6W6OK.js +0 -226
  667. package/dist/skills-S36AAJHU.js +0 -510
  668. package/skills/README.md +0 -418
  669. package/skills/meta/find-skills/SKILL.md +0 -78
  670. package/skills/meta/find-skills/evals.md +0 -47
  671. package/src/domains/extensions/resource-path.ts +0 -27
  672. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +0 -27
  673. package/src/interactive/overlays/agents.ts +0 -70
  674. package/src/interactive/overlays/library-install-confirm.ts +0 -152
  675. package/src/interactive/overlays/prompts.ts +0 -89
  676. package/src/interactive/overlays/skills-hub.ts +0 -615
  677. /package/{skills → library/skills}/coding/ast-grep/references/rule_reference.md +0 -0
  678. /package/{skills → library/skills}/coding/prototype/references/LOGIC.md +0 -0
  679. /package/{skills → library/skills}/coding/prototype/references/UI.md +0 -0
  680. /package/{skills → library/skills}/coding/tdd/references/mocking.md +0 -0
  681. /package/{skills → library/skills}/coding/tdd/references/tests.md +0 -0
  682. /package/{skills → library/skills}/context/context-handoff/scripts/new-handoff.sh +0 -0
  683. /package/{skills → library/skills}/git/branch-closeout/evals.md +0 -0
  684. /package/{skills → library/skills}/git/branch-closeout/references/closeout-checklist.md +0 -0
  685. /package/{skills → library/skills}/git/file-ticket/assets/issue-template.md +0 -0
  686. /package/{skills → library/skills}/git/file-ticket/evals.md +0 -0
  687. /package/{skills → library/skills}/git/file-ticket/references/issue-discovery.md +0 -0
  688. /package/{skills → library/skills}/git/fix-issue/evals.md +0 -0
  689. /package/{skills → library/skills}/git/fix-issue/references/diagnosis-and-rca.md +0 -0
  690. /package/{skills → library/skills}/git/resolve-merge-conflicts/references/conflict-matrix.md +0 -0
  691. /package/{skills → library/skills}/git/ship/assets/pr-template.md +0 -0
  692. /package/{skills → library/skills}/git/ship/evals.md +0 -0
  693. /package/{skills → library/skills}/git/ship/references/remote-and-branch-policy.md +0 -0
  694. /package/{skills → library/skills}/git/worktree-create/evals.md +0 -0
  695. /package/{skills → library/skills}/git/worktree-create/references/worktree-setup.md +0 -0
  696. /package/{skills → library/skills}/git/worktree-merge/evals.md +0 -0
  697. /package/{skills → library/skills}/git/worktree-merge/references/merge-strategies.md +0 -0
  698. /package/{skills → library/skills}/meta/clio-coder-test/references/harness.md +0 -0
  699. /package/{skills → library/skills}/meta/clio-coder-test/references/test-map.md +0 -0
  700. /package/{skills → library/skills}/planning/archify/evals.md +0 -0
@@ -5,16 +5,16 @@ import {
5
5
  } from "./chunk-JABWPKFY.js";
6
6
  import {
7
7
  webFetchToolSurface
8
- } from "./chunk-BBV5TKE6.js";
8
+ } from "./chunk-CPXGJI2A.js";
9
9
  import {
10
10
  verifyToolSurface
11
- } from "./chunk-GXCCHKN6.js";
11
+ } from "./chunk-MZHXENL7.js";
12
12
  import {
13
13
  codeNavToolSurface
14
- } from "./chunk-PWWSIB2A.js";
14
+ } from "./chunk-ZGIGW4ZG.js";
15
15
  import {
16
16
  contextToolSurface
17
- } from "./chunk-KTFSFCVN.js";
17
+ } from "./chunk-HRAKUPIH.js";
18
18
  import {
19
19
  RESPONSE_SCHEMA_RUNTIME_ID,
20
20
  bashTool,
@@ -23,17 +23,23 @@ import {
23
23
  readMaxBytes,
24
24
  readTool,
25
25
  renderAgentLedger
26
- } from "./chunk-TZ7MFRG4.js";
27
- import {
28
- hashToolCall
29
- } from "./chunk-KF6GFW6O.js";
26
+ } from "./chunk-NO7J45X6.js";
30
27
  import {
31
28
  createTaskBoardStore,
32
29
  taskBoardCounts
33
- } from "./chunk-7HBHHVCK.js";
30
+ } from "./chunk-YPRSNUTC.js";
34
31
  import {
35
32
  describeCallAction
36
33
  } from "./chunk-2GPGAE5W.js";
34
+ import {
35
+ isLoadableExtension
36
+ } from "./chunk-OH3YYA3B.js";
37
+ import {
38
+ extensionToolName,
39
+ listInstalledExtensions,
40
+ parseExtensionManifest,
41
+ resolveExtensionEntrypoint
42
+ } from "./chunk-24S3DN22.js";
37
43
  import {
38
44
  networkToolsDisabled
39
45
  } from "./chunk-SL2RDHKO.js";
@@ -59,58 +65,71 @@ import {
59
65
  reserveObservation,
60
66
  toolResultContextText,
61
67
  truncateHead
62
- } from "./chunk-RLTT5GVY.js";
68
+ } from "./chunk-IZYTT3CD.js";
63
69
  import {
64
70
  GREP_MAX_LINE_LENGTH,
65
71
  truncateLine
66
72
  } from "./chunk-KECNXMDE.js";
67
- import {
68
- formatModelRejection
69
- } from "./chunk-4SVIVOMC.js";
70
73
  import {
71
74
  applyToolProfile
72
- } from "./chunk-CBSKDFWL.js";
73
- import {
74
- classify
75
- } from "./chunk-LUL5Z66S.js";
76
- import {
77
- protectArtifact,
78
- protectedArtifactMutationBlockReason
79
- } from "./chunk-M6TAYK66.js";
75
+ } from "./chunk-GEVQNST4.js";
80
76
  import {
81
77
  gitTool
82
- } from "./chunk-WJIMKGD6.js";
83
- import {
84
- CLIO_ARTIFACT_DIR,
85
- artifactDefaultPath
86
- } from "./chunk-NTTS3O53.js";
87
- import {
88
- typebox_exports
89
- } from "./chunk-GH5ZR6JP.js";
78
+ } from "./chunk-BAU36233.js";
90
79
  import {
91
80
  parseAgentLedgerBody
92
81
  } from "./chunk-VQD7NH7Z.js";
93
82
  import {
94
83
  decisionRef,
95
84
  skillActivationFromToolDetails
96
- } from "./chunk-5ZMXGW7P.js";
85
+ } from "./chunk-KAFMW7WM.js";
97
86
  import {
98
- byteLength,
99
- truncateUtf8
100
- } from "./chunk-MYI32N4R.js";
87
+ hashToolCall
88
+ } from "./chunk-BQQ5MXUC.js";
101
89
  import {
102
- ToolNames,
103
- isBuiltinToolName
104
- } from "./chunk-EHOSNVVM.js";
90
+ formatModelRejection
91
+ } from "./chunk-DLIYANB7.js";
105
92
  import {
106
93
  assertSafeId
107
94
  } from "./chunk-UHW5V7HC.js";
95
+ import {
96
+ byteLength,
97
+ truncateUtf8
98
+ } from "./chunk-MYI32N4R.js";
108
99
  import {
109
100
  BusChannels
110
- } from "./chunk-HL26ADLH.js";
101
+ } from "./chunk-6CB2IL4N.js";
111
102
  import {
112
103
  incompleteInstallationAdvice
113
104
  } from "./chunk-3A3CUMKA.js";
105
+ import {
106
+ StringEnum,
107
+ engineStreamSimple
108
+ } from "./chunk-5CMARGPF.js";
109
+ import {
110
+ value_exports
111
+ } from "./chunk-SER7RRAE.js";
112
+ import {
113
+ extensionContentDigestWithCapture
114
+ } from "./chunk-XW2UZICE.js";
115
+ import {
116
+ classify
117
+ } from "./chunk-HOX4YZ2K.js";
118
+ import {
119
+ protectArtifact,
120
+ protectedArtifactMutationBlockReason
121
+ } from "./chunk-2O2LVQQK.js";
122
+ import {
123
+ typebox_exports
124
+ } from "./chunk-GH5ZR6JP.js";
125
+ import {
126
+ CLIO_ARTIFACT_DIR,
127
+ artifactDefaultPath
128
+ } from "./chunk-NTTS3O53.js";
129
+ import {
130
+ ToolNames,
131
+ isBuiltinToolName
132
+ } from "./chunk-WLHX3MM5.js";
114
133
  import {
115
134
  GUARDRAIL_DEFAULTS,
116
135
  resolveGuardrail,
@@ -120,17 +139,18 @@ import {
120
139
  workerToolCallCapSynthesisReason
121
140
  } from "./chunk-C27U2TYG.js";
122
141
  import {
123
- buildSafeToolEnv
142
+ buildSafeToolEnv,
143
+ runCommandVector
124
144
  } from "./chunk-GJ24ODAX.js";
125
145
  import {
126
- StringEnum,
127
- engineStreamSimple
128
- } from "./chunk-5CMARGPF.js";
146
+ require_dist
147
+ } from "./chunk-B5GGDIHT.js";
129
148
  import {
130
149
  clioDataDir,
131
150
  clioStateDir
132
151
  } from "./chunk-CTTI7G3T.js";
133
152
  import {
153
+ __toESM,
134
154
  init_esm_shims
135
155
  } from "./chunk-ECBHH7LU.js";
136
156
 
@@ -1730,16 +1750,16 @@ var Diff = class {
1730
1750
  }
1731
1751
  }
1732
1752
  }
1733
- addToPath(path4, added, removed, oldPosInc, options) {
1734
- const last = path4.lastComponent;
1753
+ addToPath(path5, added, removed, oldPosInc, options) {
1754
+ const last = path5.lastComponent;
1735
1755
  if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) {
1736
1756
  return {
1737
- oldPos: path4.oldPos + oldPosInc,
1757
+ oldPos: path5.oldPos + oldPosInc,
1738
1758
  lastComponent: { count: last.count + 1, added, removed, previousComponent: last.previousComponent }
1739
1759
  };
1740
1760
  } else {
1741
1761
  return {
1742
- oldPos: path4.oldPos + oldPosInc,
1762
+ oldPos: path5.oldPos + oldPosInc,
1743
1763
  lastComponent: { count: 1, added, removed, previousComponent: last }
1744
1764
  };
1745
1765
  }
@@ -2394,27 +2414,27 @@ function resolveMatch(content, oldText, newText) {
2394
2414
  if (fuzzyMatch.found) return fuzzyMatch;
2395
2415
  return findIndentationRelaxedMatch(content, oldText, newText);
2396
2416
  }
2397
- function notFoundError(path4, editIndex, totalEdits) {
2417
+ function notFoundError(path5, editIndex, totalEdits) {
2398
2418
  if (totalEdits === 1) {
2399
2419
  return new Error(
2400
- `Could not find the exact text in ${path4}. The old text must match exactly including all whitespace and newlines.`
2420
+ `Could not find the exact text in ${path5}. The old text must match exactly including all whitespace and newlines.`
2401
2421
  );
2402
2422
  }
2403
2423
  return new Error(
2404
- `Could not find edits[${editIndex}] in ${path4}. The oldText must match exactly including all whitespace and newlines.`
2424
+ `Could not find edits[${editIndex}] in ${path5}. The oldText must match exactly including all whitespace and newlines.`
2405
2425
  );
2406
2426
  }
2407
- function duplicateError(path4, editIndex, totalEdits, occurrences) {
2427
+ function duplicateError(path5, editIndex, totalEdits, occurrences) {
2408
2428
  if (totalEdits === 1) {
2409
2429
  return new Error(
2410
- `Found ${occurrences} occurrences of the text in ${path4}. The text must be unique. Please provide more context to make it unique.`
2430
+ `Found ${occurrences} occurrences of the text in ${path5}. The text must be unique. Please provide more context to make it unique.`
2411
2431
  );
2412
2432
  }
2413
2433
  return new Error(
2414
- `Found ${occurrences} occurrences of edits[${editIndex}] in ${path4}. Each oldText must be unique. Please provide more context to make it unique.`
2434
+ `Found ${occurrences} occurrences of edits[${editIndex}] in ${path5}. Each oldText must be unique. Please provide more context to make it unique.`
2415
2435
  );
2416
2436
  }
2417
- function applyEditsToNormalizedContent(normalizedContent, edits, path4) {
2437
+ function applyEditsToNormalizedContent(normalizedContent, edits, path5) {
2418
2438
  const normalizedEdits = edits.map((edit) => ({
2419
2439
  oldText: normalizeToLF(edit.oldText),
2420
2440
  newText: normalizeToLF(edit.newText)
@@ -2422,7 +2442,7 @@ function applyEditsToNormalizedContent(normalizedContent, edits, path4) {
2422
2442
  for (let i = 0; i < normalizedEdits.length; i += 1) {
2423
2443
  if ((normalizedEdits[i]?.oldText ?? "").length === 0) {
2424
2444
  throw new Error(
2425
- normalizedEdits.length === 1 ? `oldText must not be empty in ${path4}.` : `edits[${i}].oldText must not be empty in ${path4}.`
2445
+ normalizedEdits.length === 1 ? `oldText must not be empty in ${path5}.` : `edits[${i}].oldText must not be empty in ${path5}.`
2426
2446
  );
2427
2447
  }
2428
2448
  }
@@ -2432,8 +2452,8 @@ function applyEditsToNormalizedContent(normalizedContent, edits, path4) {
2432
2452
  const edit = normalizedEdits[i];
2433
2453
  if (!edit) continue;
2434
2454
  const match = resolveMatch(baseContent, edit.oldText, edit.newText);
2435
- if (!match.found) throw notFoundError(path4, i, normalizedEdits.length);
2436
- if (match.occurrences > 1) throw duplicateError(path4, i, normalizedEdits.length, match.occurrences);
2455
+ if (!match.found) throw notFoundError(path5, i, normalizedEdits.length);
2456
+ if (match.occurrences > 1) throw duplicateError(path5, i, normalizedEdits.length, match.occurrences);
2437
2457
  matchedEdits.push({
2438
2458
  editIndex: i,
2439
2459
  matchIndex: match.index,
@@ -2448,7 +2468,7 @@ function applyEditsToNormalizedContent(normalizedContent, edits, path4) {
2448
2468
  if (!previous || !current) continue;
2449
2469
  if (previous.matchIndex + previous.matchLength > current.matchIndex) {
2450
2470
  throw new Error(
2451
- `edits[${previous.editIndex}] and edits[${current.editIndex}] overlap in ${path4}. Merge them into one edit or target disjoint regions.`
2471
+ `edits[${previous.editIndex}] and edits[${current.editIndex}] overlap in ${path5}. Merge them into one edit or target disjoint regions.`
2452
2472
  );
2453
2473
  }
2454
2474
  }
@@ -2460,7 +2480,7 @@ function applyEditsToNormalizedContent(normalizedContent, edits, path4) {
2460
2480
  }
2461
2481
  if (baseContent === newContent) {
2462
2482
  throw new Error(
2463
- normalizedEdits.length === 1 ? `No changes made to ${path4}. The replacement produced identical content.` : `No changes made to ${path4}. The replacements produced identical content.`
2483
+ normalizedEdits.length === 1 ? `No changes made to ${path5}. The replacement produced identical content.` : `No changes made to ${path5}. The replacements produced identical content.`
2464
2484
  );
2465
2485
  }
2466
2486
  return { baseContent, newContent };
@@ -2685,7 +2705,7 @@ var evidenceTool = {
2685
2705
  try {
2686
2706
  const dataDir = clioDataDir();
2687
2707
  if (mode === "list") {
2688
- const { evidenceInventorySnapshot } = await import("./inventory-K2OZ36YJ.js");
2708
+ const { evidenceInventorySnapshot } = await import("./inventory-7KFQGLCV.js");
2689
2709
  return boundedResult(await evidenceInventorySnapshot(Date.now, dataDir));
2690
2710
  }
2691
2711
  const id = mode === "inspect" ? args.id : args.runId;
@@ -2693,8 +2713,8 @@ var evidenceTool = {
2693
2713
  return { kind: "error", message: `evidence: ${mode} requires ${mode === "inspect" ? "id" : "runId"}` };
2694
2714
  }
2695
2715
  assertSafeId(id, mode === "inspect" ? "evidence" : "run");
2696
- const { buildEvidence, EvidenceNotFoundError, inspectEvidence, loadEvidenceGateDecisions } = await import("./evidence-DTGEN456.js");
2697
- const { evidenceDetailSnapshot } = await import("./detail-5572VLBO.js");
2716
+ const { buildEvidence, EvidenceNotFoundError, inspectEvidence, loadEvidenceGateDecisions } = await import("./evidence-D6GUSYJW.js");
2717
+ const { evidenceDetailSnapshot } = await import("./detail-H73BEF2N.js");
2698
2718
  let evidenceId = mode === "run" ? `run-${id}` : id;
2699
2719
  let inspected;
2700
2720
  try {
@@ -3485,12 +3505,12 @@ function bodyFromArgs(args) {
3485
3505
  case "finding": {
3486
3506
  const claim = stringArg(args, "claim");
3487
3507
  if (claim === null) return { error: "ledger: a finding requires claim (the one thing you observed)" };
3488
- const path4 = stringArg(args, "path");
3508
+ const path5 = stringArg(args, "path");
3489
3509
  const line = typeof args.line === "number" ? args.line : void 0;
3490
3510
  return {
3491
3511
  kind: "finding",
3492
3512
  claim,
3493
- ...path4 === null ? {} : { path: path4 },
3513
+ ...path5 === null ? {} : { path: path5 },
3494
3514
  ...line === void 0 ? {} : { line }
3495
3515
  };
3496
3516
  }
@@ -3616,9 +3636,9 @@ function normalizePaths(value) {
3616
3636
  if (!Array.isArray(value)) return null;
3617
3637
  const paths = [];
3618
3638
  for (const item of value) {
3619
- const path4 = trimString2(item);
3620
- if (path4 === null) return null;
3621
- if (!paths.includes(path4)) paths.push(path4);
3639
+ const path5 = trimString2(item);
3640
+ if (path5 === null) return null;
3641
+ if (!paths.includes(path5)) paths.push(path5);
3622
3642
  }
3623
3643
  return paths;
3624
3644
  }
@@ -3806,7 +3826,12 @@ var OBSERVE_ENVELOPE_SELF_CAPS = [
3806
3826
  [ToolNames.CodeNav, () => OBSERVE_SELF_CAPS.codeNav],
3807
3827
  [
3808
3828
  ToolNames.Context,
3809
- () => Math.max(OBSERVE_SELF_CAPS.contextDocs, OBSERVE_SELF_CAPS.contextSkills, OBSERVE_SELF_CAPS.contextWorkspace)
3829
+ () => Math.max(
3830
+ OBSERVE_SELF_CAPS.contextDocs,
3831
+ OBSERVE_SELF_CAPS.contextSkills,
3832
+ OBSERVE_SELF_CAPS.contextWorkspace,
3833
+ OBSERVE_SELF_CAPS.contextLibrary
3834
+ )
3810
3835
  ]
3811
3836
  ];
3812
3837
  var SESSION_BOUND_TOOLS = /* @__PURE__ */ new Set([]);
@@ -4187,7 +4212,7 @@ function registerCoreTools(registry, deps = {}) {
4187
4212
  if (includeNetworkTools) {
4188
4213
  registry.register({
4189
4214
  ...builtin(
4190
- lazyTool(webFetchToolSurface, async () => (await import("./web-fetch-MQN4FH3X.js")).webFetchTool),
4215
+ lazyTool(webFetchToolSurface, async () => (await import("./web-fetch-W4TNW4Q7.js")).webFetchTool),
4191
4216
  { path: "src/tools/web-fetch.ts", scope: "core" }
4192
4217
  )
4193
4218
  });
@@ -4197,17 +4222,18 @@ function registerCoreTools(registry, deps = {}) {
4197
4222
  });
4198
4223
  registry.register({
4199
4224
  ...builtin(
4200
- lazyTool(verifyToolSurface, async () => (await import("./verify-3AS3ULCY.js")).verifyTool),
4225
+ lazyTool(verifyToolSurface, async () => (await import("./verify-T7NAEVIG.js")).verifyTool),
4201
4226
  { path: "src/tools/verify/index.ts", scope: "core" }
4202
4227
  )
4203
4228
  });
4204
4229
  registry.register({
4205
4230
  ...builtin(
4206
- lazyTool(codeNavToolSurface, async () => (await import("./code-nav-YXIAEZVS.js")).codeNavTool),
4231
+ lazyTool(codeNavToolSurface, async () => (await import("./code-nav-B5LNX4KU.js")).codeNavTool),
4207
4232
  { path: "src/tools/codewiki/code-nav.ts", scope: "core" }
4208
4233
  )
4209
4234
  });
4210
4235
  const skillToolDeps = {
4236
+ ...deps.workerRecall ? { workerRecall: deps.workerRecall } : {},
4211
4237
  getCwd: () => deps.session?.current()?.cwd ?? process.cwd(),
4212
4238
  ...deps.getSkillLoaderOptions ? { getSkillLoaderOptions: deps.getSkillLoaderOptions } : {},
4213
4239
  ...deps.skillMarketplace !== void 0 ? { skillMarketplace: deps.skillMarketplace } : {}
@@ -4237,7 +4263,7 @@ function registerCoreTools(registry, deps = {}) {
4237
4263
  registry.register({
4238
4264
  ...builtin(
4239
4265
  lazyTool(contextToolSurface, async () => {
4240
- const { createContextTool } = await import("./context-QQ53HSGJ.js");
4266
+ const { createContextTool } = await import("./context-7HJEWTTP.js");
4241
4267
  if (!session) return createContextTool(skillToolDeps);
4242
4268
  const { probeWorkspace } = await import("./workspace-DZ7JADBG.js");
4243
4269
  return createContextTool({
@@ -4304,6 +4330,134 @@ function assertRegisteredBuiltinTools(registry, registration, includeDispatchToo
4304
4330
  assertBuiltinToolPolicy(registry.listAll(), { ...registration, includeDispatchTools, includePanesTools });
4305
4331
  }
4306
4332
 
4333
+ // src/tools/harness-extensions.ts
4334
+ init_esm_shims();
4335
+ import path4 from "node:path";
4336
+ var import_yaml = __toESM(require_dist(), 1);
4337
+ var MAX_INPUT_BYTES = 64 * 1024;
4338
+ function quoted(value) {
4339
+ return `'${value.replaceAll("'", "'\\''")}'`;
4340
+ }
4341
+ function jsonInput(args) {
4342
+ const input = JSON.stringify(args);
4343
+ if (Buffer.byteLength(input) > MAX_INPUT_BYTES) throw new Error(`command tool input exceeds ${MAX_INPUT_BYTES} bytes`);
4344
+ return input;
4345
+ }
4346
+ function commandVector(extension, tool) {
4347
+ const entrypoint = resolveExtensionEntrypoint(extension.rootPath, tool.entrypoint);
4348
+ return tool.runtime === "node" ? { file: process.execPath, args: ["--", entrypoint] } : { file: "python3", args: ["-I", entrypoint] };
4349
+ }
4350
+ function verifiedCommands(extension) {
4351
+ const manifestName = path4.basename(extension.manifestPath);
4352
+ const verified = extensionContentDigestWithCapture(extension.rootPath, { capture: [manifestName] });
4353
+ if (verified.digest !== extension.provenance.contentDigest)
4354
+ throw new Error("installed extension changed while loading tools");
4355
+ const bytes = verified.captured.get(manifestName);
4356
+ if (!bytes) throw new Error("verified extension manifest bytes are absent");
4357
+ const parsed = parseExtensionManifest(
4358
+ manifestName.endsWith(".json") ? JSON.parse(bytes.toString("utf8")) : (0, import_yaml.parse)(bytes.toString("utf8")),
4359
+ extension.manifestPath
4360
+ );
4361
+ if (!parsed.manifest || parsed.diagnostics.some((entry) => entry.type === "error"))
4362
+ throw new Error("verified extension manifest is invalid");
4363
+ if (parsed.manifest.id !== extension.id || parsed.manifest.version !== extension.version)
4364
+ throw new Error("verified extension identity changed while loading tools");
4365
+ return parsed.manifest.capabilities?.tools ?? [];
4366
+ }
4367
+ function createCommandTool(extension, tool, cwd) {
4368
+ const name = extensionToolName(extension.id, tool.name);
4369
+ const vector = commandVector(extension, tool);
4370
+ return {
4371
+ name,
4372
+ description: `${tool.description}
4373
+ Harness extension ${extension.id}@${extension.version}; runs an installed command with JSON input and output.`,
4374
+ parameters: tool.inputSchema,
4375
+ baseActionClass: "execute",
4376
+ executionMode: "sequential",
4377
+ sourceInfo: { path: extension.manifestPath, scope: "domain", extension: extension.provenance },
4378
+ metadata: {
4379
+ objective: tool.description,
4380
+ uiLabel: `${extension.id}/${tool.name}`,
4381
+ retrySafety: "not_retry_safe",
4382
+ resultSizePolicy: { kind: "bounded", maxBytes: tool.maxOutputBytes ?? 6e5 },
4383
+ costLatency: "local_slow"
4384
+ },
4385
+ safetyCall(args) {
4386
+ let input = "[invalid JSON input]";
4387
+ try {
4388
+ input = jsonInput(args);
4389
+ } catch {
4390
+ }
4391
+ return { tool: "bash", args: { command: [vector.file, ...vector.args, input].map(quoted).join(" "), cwd } };
4392
+ },
4393
+ async run(args, options) {
4394
+ try {
4395
+ const input = jsonInput(args);
4396
+ if (!value_exports.Check(tool.inputSchema, args))
4397
+ return { kind: "error", message: `${name}: input does not match its declared JSON schema` };
4398
+ if (options?.signal?.aborted) return { kind: "error", message: `${name}: aborted before execution` };
4399
+ const current = listInstalledExtensions(cwd).find(
4400
+ (entry) => entry.id === extension.id && isLoadableExtension(entry)
4401
+ );
4402
+ if (!current || !isLoadableExtension(current) || current.scope !== extension.scope || current.provenance.canonicalRoot !== extension.provenance.canonicalRoot || current.provenance.contentDigest !== extension.provenance.contentDigest) {
4403
+ return {
4404
+ kind: "error",
4405
+ message: `${name}: extension disabled, removed, replaced, or changed; restart after reviewing its installation`
4406
+ };
4407
+ }
4408
+ const activeVector = commandVector(current, tool);
4409
+ const result = await runCommandVector(activeVector.file, [...activeVector.args, input], {
4410
+ cwd,
4411
+ workspaceRoot: cwd,
4412
+ timeoutMs: tool.timeoutMs ?? 12e4,
4413
+ maxOutputBytes: tool.maxOutputBytes ?? 6e5,
4414
+ ...options?.signal ? { signal: options.signal } : {}
4415
+ });
4416
+ const details = {
4417
+ extension: extension.provenance,
4418
+ argv: [result.file, ...result.args],
4419
+ cwd: result.cwd,
4420
+ exitCode: result.exitCode,
4421
+ durationMs: result.durationMs,
4422
+ aborted: result.aborted,
4423
+ timedOut: result.timedOut,
4424
+ outputCapped: result.outputCapped,
4425
+ stderr: result.stderr
4426
+ };
4427
+ if (result.aborted || result.timedOut || result.outputCapped || result.exitCode !== 0) {
4428
+ const reason = result.aborted ? "aborted" : result.timedOut ? "timed out" : result.outputCapped ? "output limit exceeded" : `exited with code ${result.exitCode}`;
4429
+ return { kind: "error", message: `${name}: ${reason}`, details };
4430
+ }
4431
+ try {
4432
+ return { kind: "ok", output: JSON.stringify(JSON.parse(result.stdout)), details };
4433
+ } catch {
4434
+ return { kind: "error", message: `${name}: command stdout must contain one JSON value`, details };
4435
+ }
4436
+ } catch (error) {
4437
+ return { kind: "error", message: `${name}: ${error instanceof Error ? error.message : String(error)}` };
4438
+ }
4439
+ }
4440
+ };
4441
+ }
4442
+ function registerHarnessExtensionTools(registry, cwd = process.cwd()) {
4443
+ const diagnostics = [];
4444
+ for (const extension of listInstalledExtensions(cwd)) {
4445
+ if (!isLoadableExtension(extension) || !extension.capabilities) continue;
4446
+ try {
4447
+ const tools = verifiedCommands(extension).map((tool) => createCommandTool(extension, tool, path4.resolve(cwd)));
4448
+ for (const tool of tools) if (registry.get(tool.name)) throw new Error(`tool collision: ${tool.name}`);
4449
+ for (const tool of tools) registry.register(tool);
4450
+ } catch (error) {
4451
+ diagnostics.push({
4452
+ type: "error",
4453
+ path: extension.rootPath,
4454
+ message: `extension ${extension.id}: ${error instanceof Error ? error.message : String(error)}`
4455
+ });
4456
+ }
4457
+ }
4458
+ return diagnostics;
4459
+ }
4460
+
4307
4461
  export {
4308
4462
  createProtectedArtifactsRegistration,
4309
4463
  INTERACTIVE_LOOP_BLOCK_BUDGET,
@@ -4333,6 +4487,7 @@ export {
4333
4487
  generateDiffString,
4334
4488
  lazyTool,
4335
4489
  registerCoreTools,
4336
- assertRegisteredBuiltinTools
4490
+ assertRegisteredBuiltinTools,
4491
+ registerHarnessExtensionTools
4337
4492
  };
4338
- //# sourceMappingURL=chunk-U2JOLB7O.js.map
4493
+ //# sourceMappingURL=chunk-CE64C5K5.js.map