@iowarp/clio-coder 0.4.6 → 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 (657) hide show
  1. package/.claude-plugin/marketplace.json +283 -0
  2. package/CHANGELOG.md +50 -0
  3. package/CONTRIBUTING.md +102 -29
  4. package/NOTICE +8 -0
  5. package/README.md +37 -5
  6. package/dist/{acp-UVEVWSDL.js → acp-W3Y3TRHD.js} +12 -12
  7. package/dist/{agents-VWY37DTK.js → agents-J4ICNLQ3.js} +52 -52
  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-PCV2XQDV.js → auth-X2UJUMOC.js} +24 -24
  13. package/dist/{builtins-PD652MTK.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-3BJGMT2D.js → chunk-3XE4NRLF.js} +1 -1
  20. package/dist/{chunk-N2OKBREN.js → chunk-4MFBBY2Z.js} +3 -3
  21. package/dist/{chunk-5VTJP36Q.js → chunk-4N2RZ4TO.js} +2 -2
  22. package/dist/{chunk-WNGF5AJX.js → chunk-4QKAITQT.js} +3 -3
  23. package/dist/chunk-4UHVS5T7.js +207 -0
  24. package/dist/{chunk-GLYBJ4RQ.js → chunk-5AJPUR72.js} +6 -6
  25. package/dist/{chunk-5CY4Q6QI.js → chunk-5EQO5NWP.js} +105 -3
  26. package/dist/{chunk-6HAO6X5B.js → chunk-65BGHOUR.js} +8 -5
  27. package/dist/{chunk-6VRRJT7L.js → chunk-6CA2BHOR.js} +2 -2
  28. package/dist/{chunk-HL26ADLH.js → chunk-6CB2IL4N.js} +2 -1
  29. package/dist/{chunk-E7RF4KBO.js → chunk-6LRLOJHQ.js} +3 -3
  30. package/dist/{chunk-HXHFDHB6.js → chunk-6TAATXXH.js} +6 -6
  31. package/dist/{chunk-P6M7RKMI.js → chunk-6YHPAAZR.js} +3 -3
  32. package/dist/{chunk-5QRX7SLS.js → chunk-7EEGBKV4.js} +7 -7
  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-PZN2LQY6.js → chunk-BO4XV5VX.js} +4 -4
  36. package/dist/{chunk-I2K2NCZQ.js → chunk-BQQ5MXUC.js} +6 -6
  37. package/dist/{chunk-X3BI7HTV.js → chunk-C3G5PNUO.js} +21 -21
  38. package/dist/{chunk-SRZOW5L2.js → chunk-C6GEXX4L.js} +1 -1
  39. package/dist/{chunk-6RYDAVQT.js → chunk-CE64C5K5.js} +219 -64
  40. package/dist/chunk-CP3HIR5H.js +2119 -0
  41. package/dist/{chunk-BBV5TKE6.js → chunk-CPXGJI2A.js} +2 -2
  42. package/dist/{chunk-IGLVVNEG.js → chunk-CULVKYTK.js} +4 -4
  43. package/dist/{chunk-DXLUVUD4.js → chunk-D2T66PDV.js} +5 -5
  44. package/dist/{chunk-NF3BK5WR.js → chunk-DACXIVVF.js} +5 -5
  45. package/dist/{chunk-IKRWLEDA.js → chunk-DLIYANB7.js} +20 -15
  46. package/dist/{chunk-RGZNQ5CT.js → chunk-DO7M3LSX.js} +9 -9
  47. package/dist/{chunk-2QPI3TR3.js → chunk-DVJL77SO.js} +2 -2
  48. package/dist/{chunk-ODUTYZIU.js → chunk-EUEXGXXR.js} +5 -5
  49. package/dist/{chunk-WKUYQBCG.js → chunk-EUZRMP4Y.js} +18 -16
  50. package/dist/{chunk-JMPL7NUB.js → chunk-G4LGUTOE.js} +4 -4
  51. package/dist/{chunk-CBSKDFWL.js → chunk-GEVQNST4.js} +2 -2
  52. package/dist/{chunk-NNWJYUNO.js → chunk-GFQ7P2UF.js} +7 -7
  53. package/dist/{chunk-SXQKNKRA.js → chunk-GI5RRMAH.js} +14 -14
  54. package/dist/{chunk-HPTJF6DG.js → chunk-GVZFCJHE.js} +336 -83
  55. package/dist/{chunk-ACCKVSHU.js → chunk-GXIWHXDB.js} +3 -3
  56. package/dist/{chunk-LUL5Z66S.js → chunk-HOX4YZ2K.js} +6 -5
  57. package/dist/chunk-HRAKUPIH.js +57 -0
  58. package/dist/{chunk-F5Z7EWMN.js → chunk-IJMW64DX.js} +50 -50
  59. package/dist/{chunk-QNWRHOMF.js → chunk-IMOD2YPV.js} +16 -9
  60. package/dist/{chunk-HZ2T2YED.js → chunk-IQCNVLO6.js} +28 -8
  61. package/dist/{chunk-HZFBVU5X.js → chunk-ISNCCX42.js} +8 -8
  62. package/dist/{chunk-7JSSKXG2.js → chunk-IZYTT3CD.js} +7 -3
  63. package/dist/chunk-KKEYGFX4.js +915 -0
  64. package/dist/{chunk-HHVJNVUJ.js → chunk-KS7ETA3P.js} +2 -2
  65. package/dist/{chunk-BLTEAUCB.js → chunk-L3Z5ANCV.js} +7 -7
  66. package/dist/{chunk-4VMV6OS6.js → chunk-LBFQMYS3.js} +2 -2
  67. package/dist/{chunk-URBGEOH3.js → chunk-M6Z2V6YU.js} +5 -5
  68. package/dist/{chunk-BT7HGDOX.js → chunk-MBJO5VNZ.js} +12 -12
  69. package/dist/chunk-MNQN3X6Y.js +595 -0
  70. package/dist/{chunk-3QKXHCGS.js → chunk-MZHXENL7.js} +5 -5
  71. package/dist/chunk-MZNWZUJM.js +1801 -0
  72. package/dist/{chunk-7YJWEF2L.js → chunk-N37QC5FV.js} +5 -5
  73. package/dist/{chunk-TJFDL26W.js → chunk-NCCQ6DVS.js} +7 -7
  74. package/dist/{chunk-P5JMBPDJ.js → chunk-NO7J45X6.js} +162 -47
  75. package/dist/chunk-OH3YYA3B.js +15 -0
  76. package/dist/{chunk-22PQ4TX4.js → chunk-P4DL2LM5.js} +16 -77
  77. package/dist/{chunk-LIN2K3EL.js → chunk-PFLOULP3.js} +4 -4
  78. package/dist/{chunk-QXFBABFJ.js → chunk-QKWL7SYE.js} +11 -11
  79. package/dist/chunk-RFCKPS2V.js +26 -0
  80. package/dist/{chunk-ZS43Y2FT.js → chunk-RTLNFZMD.js} +12 -4
  81. package/dist/{chunk-U7H5WRG5.js → chunk-RXFPB32E.js} +8 -6
  82. package/dist/{chunk-Q7NNUHQV.js → chunk-SEDI5K5B.js} +16 -16
  83. package/dist/{chunk-WV6TDAPN.js → chunk-SELG4SUR.js} +7 -7
  84. package/dist/{chunk-3WBALRQH.js → chunk-SER7RRAE.js} +27 -832
  85. package/dist/{chunk-K2HL3GBL.js → chunk-T4TY5GG3.js} +165 -15
  86. package/dist/chunk-T7QQBNLH.js +691 -0
  87. package/dist/{chunk-6OII3LOK.js → chunk-TLTGZTXI.js} +3 -3
  88. package/dist/chunk-TZ6UVP2H.js +637 -0
  89. package/dist/{chunk-3JLFK5MW.js → chunk-TZHN5ITX.js} +13 -41
  90. package/dist/{chunk-VANN3GDP.js → chunk-U3TPUXOQ.js} +399 -234
  91. package/dist/{chunk-VHMX7SXF.js → chunk-UA3W4FGC.js} +6 -6
  92. package/dist/{chunk-3O2ZAUGQ.js → chunk-UA6W4XFJ.js} +2 -2
  93. package/dist/chunk-UWD3JD5X.js +709 -0
  94. package/dist/chunk-V4ZKOKRB.js +13433 -0
  95. package/dist/{chunk-NC4KV7EL.js → chunk-VCRVEDUC.js} +5 -5
  96. package/dist/{chunk-4DU2TVI4.js → chunk-VMATUZB6.js} +12 -10
  97. package/dist/{chunk-J2FYEQ5L.js → chunk-VTYHHQ57.js} +2 -2
  98. package/dist/chunk-WB7POC6M.js +891 -0
  99. package/dist/{chunk-3HQVBIKD.js → chunk-WBVKKTUT.js} +2 -2
  100. package/dist/{chunk-EHOSNVVM.js → chunk-WLHX3MM5.js} +6 -2
  101. package/dist/{chunk-24T2YZ7A.js → chunk-WN552PKN.js} +553 -298
  102. package/dist/{chunk-4U4TKZFR.js → chunk-WT5TRMO4.js} +51 -26
  103. package/dist/{chunk-XWMSPJYN.js → chunk-WURGVOZJ.js} +56 -12
  104. package/dist/{chunk-7WUZEB2M.js → chunk-XR3XJN2M.js} +2 -2
  105. package/dist/chunk-XW2UZICE.js +372 -0
  106. package/dist/{chunk-2AKYFREM.js → chunk-XZ6UFQ52.js} +11 -11
  107. package/dist/chunk-Y3JU5RPK.js +8 -0
  108. package/dist/chunk-YKRJTYNP.js +1143 -0
  109. package/dist/{chunk-PWWSIB2A.js → chunk-ZGIGW4ZG.js} +5 -5
  110. package/dist/cli/index.js +34 -36
  111. package/dist/{clio-QQCMTUZE.js → clio-L2P7S2R2.js} +9 -9
  112. package/dist/{code-nav-GUPM6766.js → code-nav-B5LNX4KU.js} +25 -25
  113. package/dist/{components-TNIKXCBH.js → components-63MMQKUT.js} +6 -6
  114. package/dist/{config-IIM7YOD3.js → config-YXARKGTX.js} +70 -67
  115. package/dist/{configure-4ZM5HWJX.js → configure-LMVQJ46J.js} +47 -35
  116. package/dist/{context-OL5P3HEP.js → context-7HJEWTTP.js} +87 -44
  117. package/dist/{context-44BZLJ3J.js → context-XSZKKFBW.js} +14 -14
  118. package/dist/{context-AIDVQKMW.js → context-YG2LZDYZ.js} +60 -58
  119. package/dist/{context-clear-OQV76MYP.js → context-clear-AC5NXHM2.js} +57 -55
  120. package/dist/{context-index-HP2JFUWA.js → context-index-KKTPRV5G.js} +3 -3
  121. package/dist/{context-map-INTXD54D.js → context-map-T7ROR5D5.js} +4 -4
  122. package/dist/{context-working-set-ZUW3EGLS.js → context-working-set-F4Q4J3NS.js} +12 -10
  123. package/dist/{detail-UXPWRANG.js → detail-H73BEF2N.js} +58 -56
  124. package/dist/{dispatch-runner-P3ZW6G77.js → dispatch-runner-3RY5FSJC.js} +74 -72
  125. package/dist/{doctor-JJVGPZWT.js → doctor-EQYJOGUG.js} +44 -30
  126. package/dist/{eval-V2RTN3UH.js → eval-4P7O6CCE.js} +109 -46
  127. package/dist/{evidence-35PYWGSO.js → evidence-D6GUSYJW.js} +57 -55
  128. package/dist/{evidence-CIGGKI6J.js → evidence-O76QF7TZ.js} +62 -59
  129. package/dist/{evolve-33SM3NJP.js → evolve-H47BCETS.js} +58 -56
  130. package/dist/{extensions-YVRHX6ZI.js → extensions-NNL3ZOCU.js} +98 -20
  131. package/dist/{fleet-LFO7SIPC.js → fleet-KMNS6NOM.js} +106 -99
  132. package/dist/{fleet-commands-RLK72GU3.js → fleet-commands-DOWSYCBX.js} +14 -14
  133. package/dist/{fleet-decisions-3SBSCTCW.js → fleet-decisions-S3PTZV2D.js} +9 -9
  134. package/dist/{fleet-graph-JZIBCGMW.js → fleet-graph-F2DE2TME.js} +26 -24
  135. package/dist/{fleet-inspect-2L5YGGZJ.js → fleet-inspect-EN2Q6IVB.js} +60 -57
  136. package/dist/{fleet-preflight-QRSHIIDE.js → fleet-preflight-FRLETDD3.js} +3 -3
  137. package/dist/{fleet-validate-LIAVKDUU.js → fleet-validate-B2XDLS57.js} +28 -29
  138. package/dist/{fleet-verify-JIK3OQZR.js → fleet-verify-4JKUWGJ7.js} +57 -55
  139. package/dist/{fleet-view-IWHYGQKK.js → fleet-view-BHJFW26B.js} +60 -57
  140. package/dist/{init-NJEDOTQW.js → init-XAT5N5YM.js} +79 -74
  141. package/dist/interop-FVECHFKG.js +246 -0
  142. package/dist/{inventory-74UL7UHU.js → inventory-7KFQGLCV.js} +60 -57
  143. package/dist/library-NY2XOT75.js +492 -0
  144. package/dist/library-QAPAO23R.js +306 -0
  145. package/dist/library-import-5Y6MAS3R.js +183 -0
  146. package/dist/library-inventory-JT6HWITQ.js +56 -0
  147. package/dist/library-validation-EQUH25DC.js +42 -0
  148. package/dist/{memory-I76I5VUH.js → memory-DYVTTCP6.js} +58 -56
  149. package/dist/{models-D4YDIQZQ.js → models-MASFJ6Y2.js} +48 -36
  150. package/dist/{monitor-NKVD55HX.js → monitor-YMP4NXJJ.js} +64 -61
  151. package/dist/{orchestrator-I6OATVPK.js → orchestrator-AFQRRTEI.js} +3685 -1841
  152. package/dist/{panes-7BTYH3XQ.js → panes-D3Y2KFG5.js} +4 -4
  153. package/dist/{panes-WPOMEMRH.js → panes-NICTHQCV.js} +7 -7
  154. package/dist/{paths-J3KN7UAO.js → paths-PSFAUIGO.js} +5 -5
  155. package/dist/{preload-EJAWJEIO.js → preload-5Q7VXRFJ.js} +57 -55
  156. package/dist/{reset-4XMQKDNZ.js → reset-7NKZK7JN.js} +9 -9
  157. package/dist/{resources-TVYVXK3Q.js → resources-NILSIZAT.js} +94 -38
  158. package/dist/{run-OWQNNSJU.js → run-BPZGEBZV.js} +121 -105
  159. package/dist/{share-NPZZMUXG.js → share-EZ6ERBMH.js} +31 -28
  160. package/dist/skills-BTVVNYVM.js +100 -0
  161. package/dist/{skills-eval-J5TCKSJA.js → skills-eval-UY34MNK7.js} +110 -72
  162. package/dist/{skills-inventory-7II4DM57.js → skills-inventory-JDHSIA7I.js} +30 -25
  163. package/dist/{slash-commands-MDSDSWYF.js → slash-commands-K4FNQ2AT.js} +49 -46
  164. package/dist/{steer-S7D7IKPU.js → steer-2B3EQGFH.js} +4 -4
  165. package/dist/{support-5VAEC32W.js → support-L2SOL3IE.js} +7 -7
  166. package/dist/{targets-KILZEOCE.js → targets-44VKGFLN.js} +64 -58
  167. package/dist/{tasks-R6P6OV22.js → tasks-3KODKFU7.js} +12 -12
  168. package/dist/{terminal-lease-LZCG2KN3.js → terminal-lease-LXA7MMPO.js} +32 -19
  169. package/dist/{tools-6OCQ6SVB.js → tools-3UB7TEVR.js} +7 -7
  170. package/dist/{trace-JHLXWUMN.js → trace-TAMIU4OJ.js} +5 -4
  171. package/dist/{tui-primitives-RCY2HN7G.js → tui-primitives-A6MUW32V.js} +3 -2
  172. package/dist/{uninstall-FXYMFFRT.js → uninstall-QYVRPEM4.js} +9 -9
  173. package/dist/{upgrade-D2OZH6IQ.js → upgrade-7PMKM2JH.js} +15 -16
  174. package/dist/{usage-PIASNUS4.js → usage-6EQV7EQK.js} +70 -67
  175. package/dist/{verifiers-LTHUY2PX.js → verifiers-JLITWSHU.js} +15 -15
  176. package/dist/{verify-HYF7KBVE.js → verify-T7NAEVIG.js} +13 -13
  177. package/dist/{web-fetch-MQN4FH3X.js → web-fetch-W4TNW4Q7.js} +4 -4
  178. package/dist/{wiki-generate-RK7JQ5NP.js → wiki-generate-T2TJQJUA.js} +81 -76
  179. package/dist/{with-panes-OFTNAR4Y.js → with-panes-CHFC7HGI.js} +4 -4
  180. package/dist/worker/entry.js +283 -76
  181. package/docs/README.md +43 -0
  182. package/docs/architecture/architecture.md +8 -7
  183. package/docs/architecture/artifact-versions.md +3 -3
  184. package/docs/architecture/context-engine.md +35 -1
  185. package/docs/architecture/library.md +32 -0
  186. package/docs/architecture/middleware-and-components.md +1 -1
  187. package/docs/architecture/model-catalog.md +21 -1
  188. package/docs/architecture/pi-boundary.md +18 -0
  189. package/docs/architecture/prompt-envelope-and-tools.md +5 -5
  190. package/docs/architecture/safety-model.md +21 -2
  191. package/docs/architecture/session-lifecycle.md +12 -1
  192. package/docs/architecture/tui-design.md +108 -9
  193. package/docs/architecture/worker-context.md +106 -0
  194. package/docs/guide/authoring-plugins.md +160 -0
  195. package/docs/guide/built-in-agents.md +5 -5
  196. package/docs/guide/commands-and-modes.md +161 -56
  197. package/docs/guide/configuration-and-targets.md +1 -1
  198. package/docs/guide/configuration-reference.md +27 -34
  199. package/docs/guide/environment-variables.md +2 -2
  200. package/docs/guide/exit-codes-and-output.md +1 -1
  201. package/docs/guide/extensions-and-sharing.md +93 -53
  202. package/docs/guide/fleet-dispatch.md +31 -4
  203. package/docs/guide/glossary.md +1 -1
  204. package/docs/guide/harness-extensions.md +291 -0
  205. package/docs/guide/installation-and-lifecycle.md +9 -9
  206. package/docs/guide/interop.md +243 -0
  207. package/docs/guide/panes-and-files.md +3 -3
  208. package/docs/guide/plugins.md +80 -0
  209. package/docs/guide/resource-library.md +111 -45
  210. package/docs/guide/skills-marketplace.md +35 -72
  211. package/docs/guide/tool-usage.md +19 -7
  212. package/docs/guide/troubleshooting.md +1 -1
  213. package/docs/process/development-pipeline.md +14 -14
  214. package/docs/process/documentation-coverage.md +28 -1
  215. package/docs/process/documentation-guide.md +15 -7
  216. package/docs/process/eval-runner.md +8 -3
  217. package/docs/process/performance-methodology.md +1 -1
  218. package/docs/process/release-cut-checklist.md +4 -0
  219. package/docs/process/scientific-validation.md +23 -0
  220. package/evals/scalar-decision-machinery.ts +1 -1
  221. package/examples/extensions/README.md +67 -0
  222. package/examples/extensions/lab-status/clio-coder-extension.json +14 -0
  223. package/examples/extensions/lab-status/extension.mjs +68 -0
  224. package/examples/extensions/lab-status/jobs.synthetic.json +9 -0
  225. package/examples/extensions/measurements/clio-coder-extension.json +28 -0
  226. package/examples/extensions/measurements/summarize.cjs +23 -0
  227. package/library/README.md +109 -0
  228. package/library/_authoring/templates/agent/README.md +28 -0
  229. package/library/_authoring/templates/agent/agents/benchmark-scout.md +30 -0
  230. package/library/_authoring/templates/agent/plugin.json +23 -0
  231. package/library/_authoring/templates/fleet/README.md +29 -0
  232. package/library/_authoring/templates/fleet/fleets/pipeline-review.md +31 -0
  233. package/library/_authoring/templates/fleet/plugin.json +23 -0
  234. package/library/_authoring/templates/plugin/README.md +37 -0
  235. package/library/_authoring/templates/plugin/agents/data-curator.md +31 -0
  236. package/library/_authoring/templates/plugin/assets/curation-guide.md +22 -0
  237. package/library/_authoring/templates/plugin/plugin.json +42 -0
  238. package/library/_authoring/templates/plugin/prompts/inspect-dataset.md +15 -0
  239. package/library/_authoring/templates/plugin/skills/dataset-curation/SKILL.md +36 -0
  240. package/library/_authoring/templates/plugin/skills/dataset-curation/evals.md +17 -0
  241. package/library/_authoring/templates/prompt/README.md +28 -0
  242. package/library/_authoring/templates/prompt/plugin.json +23 -0
  243. package/library/_authoring/templates/prompt/prompts/paper-summary.md +26 -0
  244. package/library/_authoring/templates/skill/README.md +24 -0
  245. package/library/_authoring/templates/skill/SKILL.md +39 -0
  246. package/library/_authoring/templates/skill/evals.md +30 -0
  247. package/library/_authoring/templates/skill/plugin.json +23 -0
  248. package/library/agents/README.md +7 -0
  249. package/library/fleets/README.md +7 -0
  250. package/library/plugins/materio/README.md +137 -0
  251. package/library/plugins/materio/ai.iowarp.clio/agents/materio-lab-definer.md +208 -0
  252. package/library/plugins/materio/ai.iowarp.clio/agents/materio-literature-reviewer.md +308 -0
  253. package/library/plugins/materio/ai.iowarp.clio/agents/materio-research-explorer.md +249 -0
  254. package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-executor.md +416 -0
  255. package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-verifier.md +60 -0
  256. package/library/plugins/materio/ai.iowarp.clio/agents/materio-workflow-planner.md +238 -0
  257. package/library/plugins/materio/ai.iowarp.clio/fleets/materio-execute-task.md +50 -0
  258. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/add-task.md +66 -0
  259. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/archive-task.md +65 -0
  260. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/checkpoint.md +26 -0
  261. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-research-tasks.md +230 -0
  262. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-virtual-lab.md +181 -0
  263. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/execute-task.md +292 -0
  264. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/help.md +129 -0
  265. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/identify-research.md +206 -0
  266. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/literature-review.md +201 -0
  267. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/pause-research.md +12 -0
  268. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/progress.md +105 -0
  269. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/remove-task.md +63 -0
  270. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/resume-research.md +64 -0
  271. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/settings.md +16 -0
  272. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/status.md +92 -0
  273. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/upload-data.md +104 -0
  274. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/wtfp.md +145 -0
  275. package/library/plugins/materio/ai.iowarp.clio/references/execution.md +56 -0
  276. package/library/plugins/materio/ai.iowarp.portability/provenance.json +9 -0
  277. package/library/plugins/materio/assets/actions/add-task.md +86 -0
  278. package/library/plugins/materio/assets/actions/archive-task.md +84 -0
  279. package/library/plugins/materio/assets/actions/checkpoint.md +47 -0
  280. package/library/plugins/materio/assets/actions/define-research-tasks.md +228 -0
  281. package/library/plugins/materio/assets/actions/define-virtual-lab.md +179 -0
  282. package/library/plugins/materio/assets/actions/execute-task.md +290 -0
  283. package/library/plugins/materio/assets/actions/help.md +140 -0
  284. package/library/plugins/materio/assets/actions/identify-research.md +204 -0
  285. package/library/plugins/materio/assets/actions/literature-review.md +199 -0
  286. package/library/plugins/materio/assets/actions/pause-research.md +34 -0
  287. package/library/plugins/materio/assets/actions/progress.md +125 -0
  288. package/library/plugins/materio/assets/actions/remove-task.md +82 -0
  289. package/library/plugins/materio/assets/actions/resume-research.md +84 -0
  290. package/library/plugins/materio/assets/actions/settings.md +38 -0
  291. package/library/plugins/materio/assets/actions/status.md +112 -0
  292. package/library/plugins/materio/assets/actions/upload-data.md +123 -0
  293. package/library/plugins/materio/assets/actions/wtfp.md +179 -0
  294. package/library/plugins/materio/assets/references/research-domains.md +134 -0
  295. package/library/plugins/materio/assets/references/research-policy.md +77 -0
  296. package/library/plugins/materio/assets/references/traditional-workflows.md +146 -0
  297. package/library/plugins/materio/assets/scripts/check_physics.py +271 -0
  298. package/library/plugins/materio/assets/scripts/check_scripts.py +248 -0
  299. package/library/plugins/materio/assets/scripts/project_plugin.py +165 -0
  300. package/library/plugins/materio/assets/scripts/research_state.py +400 -0
  301. package/library/plugins/materio/assets/scripts/verify_citations.py +616 -0
  302. package/library/plugins/materio/assets/templates/RESEARCH.md +39 -0
  303. package/library/plugins/materio/assets/templates/VIRTUAL-LAB.md +120 -0
  304. package/library/plugins/materio/assets/templates/WORKFLOW.md +42 -0
  305. package/library/plugins/materio/assets/templates/config.json +5 -0
  306. package/library/plugins/materio/evals/scripts.yaml +29 -0
  307. package/library/plugins/materio/plugin.json +530 -0
  308. package/library/plugins/materio/skills/materio-lab-definer/SKILL.md +74 -0
  309. package/library/plugins/materio/skills/materio-literature-reviewer/SKILL.md +64 -0
  310. package/library/plugins/materio/skills/materio-research-explorer/SKILL.md +74 -0
  311. package/library/plugins/materio/skills/materio-task-executor/SKILL.md +214 -0
  312. package/library/plugins/materio/skills/materio-task-verifier/SKILL.md +46 -0
  313. package/library/plugins/materio/skills/materio-workflow-planner/SKILL.md +79 -0
  314. package/library/plugins/materio/tests/test_check_physics.py +139 -0
  315. package/library/plugins/materio/tests/test_check_scripts.py +140 -0
  316. package/library/plugins/materio/tests/test_research_state.py +291 -0
  317. package/library/plugins/materio/tests/test_verify_citations.py +337 -0
  318. package/library/prompts/README.md +7 -0
  319. package/library/registry.yaml +921 -0
  320. package/library/skills/README.md +120 -0
  321. package/{skills → library/skills}/coding/ast-grep/SKILL.md +1 -1
  322. package/{skills → library/skills}/coding/ast-grep/evals.md +1 -1
  323. package/library/skills/coding/ast-grep/plugin.json +23 -0
  324. package/{skills → library/skills}/coding/coding-standards/SKILL.md +1 -1
  325. package/{skills → library/skills}/coding/coding-standards/evals.md +1 -1
  326. package/library/skills/coding/coding-standards/plugin.json +23 -0
  327. package/{skills → library/skills}/coding/prototype/SKILL.md +1 -1
  328. package/{skills → library/skills}/coding/prototype/evals.md +1 -1
  329. package/library/skills/coding/prototype/plugin.json +23 -0
  330. package/{skills → library/skills}/coding/tdd/SKILL.md +1 -1
  331. package/{skills → library/skills}/coding/tdd/evals.md +1 -1
  332. package/library/skills/coding/tdd/plugin.json +23 -0
  333. package/{skills → library/skills}/context/context-handoff/SKILL.md +1 -1
  334. package/{skills → library/skills}/context/context-handoff/evals.md +1 -1
  335. package/library/skills/context/context-handoff/plugin.json +23 -0
  336. package/{skills → library/skills}/context/context-prime/SKILL.md +1 -1
  337. package/{skills → library/skills}/context/context-prime/evals.md +1 -1
  338. package/library/skills/context/context-prime/plugin.json +23 -0
  339. package/{skills → library/skills}/git/branch-closeout/SKILL.md +1 -1
  340. package/library/skills/git/branch-closeout/plugin.json +23 -0
  341. package/{skills → library/skills}/git/file-ticket/SKILL.md +1 -1
  342. package/library/skills/git/file-ticket/plugin.json +23 -0
  343. package/{skills → library/skills}/git/fix-issue/SKILL.md +1 -1
  344. package/library/skills/git/fix-issue/plugin.json +23 -0
  345. package/{skills → library/skills}/git/resolve-merge-conflicts/SKILL.md +1 -1
  346. package/{skills → library/skills}/git/resolve-merge-conflicts/evals.md +1 -1
  347. package/library/skills/git/resolve-merge-conflicts/plugin.json +23 -0
  348. package/{skills → library/skills}/git/ship/SKILL.md +1 -1
  349. package/library/skills/git/ship/plugin.json +23 -0
  350. package/{skills → library/skills}/git/worktree-create/SKILL.md +1 -1
  351. package/library/skills/git/worktree-create/plugin.json +23 -0
  352. package/{skills → library/skills}/git/worktree-merge/SKILL.md +1 -1
  353. package/library/skills/git/worktree-merge/plugin.json +23 -0
  354. package/{skills → library/skills}/meta/clio-coder-dev/SKILL.md +1 -1
  355. package/{skills → library/skills}/meta/clio-coder-dev/evals.md +1 -1
  356. package/library/skills/meta/clio-coder-dev/plugin.json +23 -0
  357. package/{skills → library/skills}/meta/clio-coder-test/SKILL.md +1 -1
  358. package/{skills → library/skills}/meta/clio-coder-test/evals.md +1 -1
  359. package/library/skills/meta/clio-coder-test/plugin.json +23 -0
  360. package/{skills → library/skills}/meta/credentials/SKILL.md +1 -1
  361. package/{skills → library/skills}/meta/credentials/evals.md +1 -1
  362. package/library/skills/meta/credentials/plugin.json +23 -0
  363. package/library/skills/meta/find-skills/SKILL.md +85 -0
  364. package/library/skills/meta/find-skills/evals.md +65 -0
  365. package/library/skills/meta/find-skills/plugin.json +23 -0
  366. package/{skills → library/skills}/meta/herdr/SKILL.md +1 -1
  367. package/{skills → library/skills}/meta/herdr/evals.md +1 -1
  368. package/library/skills/meta/herdr/plugin.json +23 -0
  369. package/{skills → library/skills}/meta/skill-craft/SKILL.md +23 -9
  370. package/{skills → library/skills}/meta/skill-craft/evals.md +11 -3
  371. package/library/skills/meta/skill-craft/plugin.json +23 -0
  372. package/{skills → library/skills}/planning/archify/SKILL.md +13 -13
  373. package/library/skills/planning/archify/plugin.json +23 -0
  374. package/{skills → library/skills}/planning/architecture/SKILL.md +1 -1
  375. package/{skills → library/skills}/planning/architecture/evals.md +1 -1
  376. package/library/skills/planning/architecture/plugin.json +23 -0
  377. package/{skills → library/skills}/planning/backlog/SKILL.md +1 -1
  378. package/{skills → library/skills}/planning/backlog/evals.md +1 -1
  379. package/library/skills/planning/backlog/plugin.json +23 -0
  380. package/{skills → library/skills}/planning/prd/SKILL.md +1 -1
  381. package/{skills → library/skills}/planning/prd/evals.md +1 -1
  382. package/library/skills/planning/prd/plugin.json +23 -0
  383. package/{skills → library/skills}/planning/product-intent/SKILL.md +1 -1
  384. package/{skills → library/skills}/planning/product-intent/evals.md +1 -1
  385. package/library/skills/planning/product-intent/plugin.json +23 -0
  386. package/{skills → library/skills}/planning/tech-spec/SKILL.md +1 -1
  387. package/{skills → library/skills}/planning/tech-spec/evals.md +1 -1
  388. package/library/skills/planning/tech-spec/plugin.json +23 -0
  389. package/{skills → library/skills}/registry.yaml +7 -7
  390. package/{skills → library/skills}/remote.yaml +1 -1
  391. package/{skills → library/skills}/research/arxiv-literature/SKILL.md +1 -1
  392. package/{skills → library/skills}/research/arxiv-literature/evals.md +1 -1
  393. package/library/skills/research/arxiv-literature/plugin.json +23 -0
  394. package/{skills → library/skills}/research/experiment-protocol/SKILL.md +1 -1
  395. package/{skills → library/skills}/research/experiment-protocol/evals.md +1 -1
  396. package/library/skills/research/experiment-protocol/plugin.json +23 -0
  397. package/{skills → library/skills}/research/scientific-debugging/SKILL.md +1 -1
  398. package/{skills → library/skills}/research/scientific-debugging/evals.md +1 -1
  399. package/library/skills/research/scientific-debugging/plugin.json +23 -0
  400. package/{skills → library/skills}/research/scientific-modernization/SKILL.md +1 -1
  401. package/{skills → library/skills}/research/scientific-modernization/evals.md +1 -1
  402. package/library/skills/research/scientific-modernization/plugin.json +23 -0
  403. package/{skills → library/skills}/skill-marketplace.json +37 -37
  404. package/{skills → library/skills}/workflow/cut-it/SKILL.md +1 -1
  405. package/{skills → library/skills}/workflow/cut-it/evals.md +1 -1
  406. package/library/skills/workflow/cut-it/plugin.json +23 -0
  407. package/{skills → library/skills}/workflow/design-council/SKILL.md +1 -1
  408. package/{skills → library/skills}/workflow/design-council/evals.md +1 -1
  409. package/library/skills/workflow/design-council/plugin.json +23 -0
  410. package/{skills → library/skills}/workflow/grill-me/SKILL.md +1 -1
  411. package/{skills → library/skills}/workflow/grill-me/evals.md +1 -1
  412. package/library/skills/workflow/grill-me/plugin.json +23 -0
  413. package/{skills → library/skills}/workflow/workflow-distiller/SKILL.md +14 -11
  414. package/{skills → library/skills}/workflow/workflow-distiller/evals.md +14 -6
  415. package/library/skills/workflow/workflow-distiller/plugin.json +23 -0
  416. package/package.json +12 -5
  417. package/src/cli/agents.ts +1 -1
  418. package/src/cli/config-inspect.ts +1 -1
  419. package/src/cli/configure.ts +2 -2
  420. package/src/cli/eval.ts +40 -6
  421. package/src/cli/extensions.ts +74 -8
  422. package/src/cli/fleet-preflight.ts +2 -0
  423. package/src/cli/fleet.ts +2 -0
  424. package/src/cli/index.ts +1 -3
  425. package/src/cli/interop-inspect.ts +61 -33
  426. package/src/cli/interop.ts +79 -9
  427. package/src/cli/library-import.ts +139 -0
  428. package/src/cli/library.ts +418 -120
  429. package/src/cli/run.ts +26 -9
  430. package/src/cli/skills-eval.ts +43 -6
  431. package/src/cli/skills-inventory.ts +6 -2
  432. package/src/cli/skills.ts +44 -491
  433. package/src/core/bus-events.ts +5 -0
  434. package/src/core/defaults.ts +1 -1
  435. package/src/core/recent-models.ts +2 -2
  436. package/src/core/session-routing.ts +3 -3
  437. package/src/core/state-file-lock.ts +1 -1
  438. package/src/core/tool-names.ts +5 -0
  439. package/src/domains/agents/extension.ts +42 -6
  440. package/src/domains/agents/fleet-commands.ts +92 -1
  441. package/src/domains/agents/fleet-contract.ts +87 -19
  442. package/src/domains/agents/recipe.ts +5 -4
  443. package/src/domains/agents/registry.ts +80 -24
  444. package/src/domains/config/keybindings.ts +155 -95
  445. package/src/domains/context/worker/contract.ts +91 -0
  446. package/src/domains/context/worker/pressure.ts +120 -0
  447. package/src/domains/context/worker/recall.ts +62 -0
  448. package/src/domains/context/worker/select.ts +164 -0
  449. package/src/domains/context/worker/snapshot.ts +35 -0
  450. package/src/domains/context/worker/store.ts +16 -0
  451. package/src/domains/context/working-set/replay/synthetic.ts +2 -1
  452. package/src/domains/dispatch/active-route-planner.ts +2 -0
  453. package/src/domains/dispatch/backoff.ts +1 -0
  454. package/src/domains/dispatch/code-step.ts +12 -2
  455. package/src/domains/dispatch/contract.ts +3 -0
  456. package/src/domains/dispatch/execution-plan.ts +2 -0
  457. package/src/domains/dispatch/extension.ts +109 -27
  458. package/src/domains/dispatch/fleet-plan.ts +10 -0
  459. package/src/domains/dispatch/fleet-run.ts +1 -0
  460. package/src/domains/dispatch/orphan-recovery.ts +1 -0
  461. package/src/domains/dispatch/receipt-integrity.ts +4 -0
  462. package/src/domains/dispatch/state.ts +1 -0
  463. package/src/domains/dispatch/types.ts +5 -0
  464. package/src/domains/dispatch/validation.ts +12 -0
  465. package/src/domains/dispatch/workspace-checkpoint.ts +1 -1
  466. package/src/domains/evidence/failure-attribution.ts +1 -0
  467. package/src/domains/evidence/trust-status.ts +22 -3
  468. package/src/domains/extensions/command-schema.ts +145 -0
  469. package/src/domains/extensions/command-tools.ts +15 -0
  470. package/src/domains/extensions/compatibility.ts +7 -0
  471. package/src/domains/extensions/contract.ts +0 -4
  472. package/src/domains/extensions/discovery.ts +69 -205
  473. package/src/domains/extensions/extension.ts +0 -4
  474. package/src/domains/extensions/index.ts +1 -5
  475. package/src/domains/extensions/manager.ts +1 -6
  476. package/src/domains/extensions/operator-commands.ts +29 -0
  477. package/src/domains/extensions/operator-runtime.ts +483 -0
  478. package/src/domains/extensions/public-api.ts +53 -0
  479. package/src/domains/extensions/runtime-child.mjs +114 -0
  480. package/src/domains/extensions/runtime-process.ts +306 -0
  481. package/src/domains/extensions/runtime-schema.ts +146 -0
  482. package/src/domains/extensions/{resources.ts → snapshot-access.ts} +1 -17
  483. package/src/domains/extensions/snapshot.ts +4 -32
  484. package/src/domains/extensions/state.ts +5 -83
  485. package/src/domains/extensions/types.ts +33 -34
  486. package/src/domains/interop/adopt.ts +546 -0
  487. package/src/domains/interop/detect.ts +50 -12
  488. package/src/domains/interop/foreign.ts +554 -0
  489. package/src/domains/interop/import.ts +277 -0
  490. package/src/domains/interop/index.ts +24 -0
  491. package/src/domains/interop/install.ts +6 -0
  492. package/src/domains/interop/inventory.ts +351 -0
  493. package/src/domains/interop/projection.ts +360 -0
  494. package/src/domains/interop/registry.ts +106 -3
  495. package/src/domains/interop/types.ts +51 -0
  496. package/src/domains/lifecycle/migrations/index.ts +0 -2
  497. package/src/domains/lifecycle/naming-resources.ts +1 -1
  498. package/src/domains/middleware/marketplace-offer.ts +1 -1
  499. package/src/domains/mux/contract.ts +1 -1
  500. package/src/domains/plugins/catalog.ts +204 -0
  501. package/src/domains/plugins/contract.ts +24 -0
  502. package/src/domains/plugins/discovery.ts +316 -0
  503. package/src/domains/plugins/extension.ts +40 -0
  504. package/src/domains/plugins/index.ts +77 -0
  505. package/src/domains/plugins/integrity.ts +6 -0
  506. package/src/domains/plugins/manifest.ts +3 -0
  507. package/src/domains/plugins/resources.ts +102 -0
  508. package/src/domains/plugins/state.ts +753 -0
  509. package/src/domains/plugins/types.ts +217 -0
  510. package/src/domains/prompts/extension.ts +9 -2
  511. package/src/domains/prompts/fragments/operating/skills.md +10 -10
  512. package/src/domains/resources/common-loader.ts +9 -6
  513. package/src/domains/resources/index.ts +67 -0
  514. package/src/domains/resources/library-actions.ts +836 -0
  515. package/src/domains/resources/library-evals.ts +38 -0
  516. package/src/domains/resources/library-inventory.ts +1048 -0
  517. package/src/domains/resources/library-types.ts +50 -0
  518. package/src/domains/resources/library-validation.ts +634 -0
  519. package/src/domains/resources/library.ts +437 -156
  520. package/src/domains/resources/package-references.ts +66 -0
  521. package/src/domains/resources/prompts/loader.ts +75 -41
  522. package/src/domains/resources/skills/install.ts +2 -2
  523. package/src/domains/resources/skills/loader.ts +77 -22
  524. package/src/domains/resources/skills/marketplace.ts +48 -57
  525. package/src/domains/resources/skills/promotion.ts +2 -2
  526. package/src/domains/resources/skills/provenance-pin.ts +17 -4
  527. package/src/domains/safety/action-classifier.ts +2 -2
  528. package/src/domains/safety/default-path-policy.ts +3 -1
  529. package/src/domains/safety/policy-engine.ts +1 -1
  530. package/src/domains/safety/protected-artifacts.ts +21 -5
  531. package/src/domains/safety/skill-authority.ts +5 -2
  532. package/src/domains/share/archive.ts +1 -1
  533. package/src/engine/apis/openai-completions.ts +52 -2
  534. package/src/engine/notices/pi-tui-LICENSE +21 -0
  535. package/src/engine/tui.ts +3 -0
  536. package/src/engine/worker-runtime.ts +58 -14
  537. package/src/engine/worker-tools.ts +5 -0
  538. package/src/entry/orchestrator.ts +26 -5
  539. package/src/entry/plugin-reload.ts +18 -0
  540. package/src/interactive/application-controller.ts +67 -21
  541. package/src/interactive/chat-loop.ts +32 -5
  542. package/src/interactive/chat-panel.ts +5 -1
  543. package/src/interactive/clio-editor.ts +53 -21
  544. package/src/interactive/command-output.ts +56 -1
  545. package/src/interactive/editor-submit.ts +65 -28
  546. package/src/interactive/fleet-run-preview.ts +2 -0
  547. package/src/interactive/follow-up-queue-panel.ts +3 -3
  548. package/src/interactive/footer/dashboard.ts +4 -1
  549. package/src/interactive/footer/notifications.ts +2 -2
  550. package/src/interactive/footer/widgets.ts +2 -2
  551. package/src/interactive/interactive-application.ts +209 -21
  552. package/src/interactive/interactive-input-runtime.ts +254 -7
  553. package/src/interactive/interactive-presentation.ts +41 -12
  554. package/src/interactive/interactive-slash-runtime.ts +37 -8
  555. package/src/interactive/keybinding-manager.ts +156 -79
  556. package/src/interactive/keyboard-owner.ts +37 -0
  557. package/src/interactive/leader-key.ts +49 -102
  558. package/src/interactive/leader-menu.ts +45 -0
  559. package/src/interactive/overlay-ask-user-lifecycle.ts +9 -1
  560. package/src/interactive/overlay-frame.ts +15 -0
  561. package/src/interactive/overlay-key-routing.ts +46 -47
  562. package/src/interactive/overlay-lifecycle.ts +30 -15
  563. package/src/interactive/overlay-resource-openers.ts +56 -46
  564. package/src/interactive/overlays/ask-user.ts +630 -556
  565. package/src/interactive/overlays/extension-panel.ts +70 -0
  566. package/src/interactive/overlays/extensions.ts +28 -5
  567. package/src/interactive/overlays/fleet-run-approval.ts +7 -3
  568. package/src/interactive/overlays/help-reference.ts +89 -40
  569. package/src/interactive/overlays/interop.ts +122 -3
  570. package/src/interactive/overlays/keybinding-detail.ts +2 -2
  571. package/src/interactive/overlays/library-lifecycle.ts +90 -0
  572. package/src/interactive/overlays/library-model.ts +574 -0
  573. package/src/interactive/overlays/library-review.ts +557 -0
  574. package/src/interactive/overlays/library-tabs.ts +3 -15
  575. package/src/interactive/overlays/library.ts +602 -0
  576. package/src/interactive/overlays/list-overlay.ts +218 -39
  577. package/src/interactive/overlays/model-selector.ts +28 -25
  578. package/src/interactive/overlays/session-selector.ts +9 -3
  579. package/src/interactive/overlays/settings.ts +25 -18
  580. package/src/interactive/overlays/tree-selector.ts +16 -11
  581. package/src/interactive/permission-hint.ts +13 -0
  582. package/src/interactive/permission-overlay.ts +77 -28
  583. package/src/interactive/prompt-source-label.ts +21 -0
  584. package/src/interactive/renderers/reference-card.ts +35 -0
  585. package/src/interactive/renderers/worker-entry.ts +35 -3
  586. package/src/interactive/slash-autocomplete.ts +99 -1
  587. package/src/interactive/slash-commands.ts +390 -67
  588. package/src/interactive/slash-spec.ts +0 -1
  589. package/src/interactive/terminal-lease.ts +44 -12
  590. package/src/interactive/turn-queues.ts +8 -7
  591. package/src/interactive/turn-runtime.ts +1 -1
  592. package/src/interactive/view/view-overlay.ts +19 -14
  593. package/src/interactive/welcome-dashboard.ts +525 -408
  594. package/src/tools/bootstrap.ts +8 -0
  595. package/src/tools/builtin-tool-catalog.ts +7 -2
  596. package/src/tools/context/index.ts +58 -5
  597. package/src/tools/context/library.ts +465 -0
  598. package/src/tools/context/surface.ts +20 -6
  599. package/src/tools/core-bootstrap.ts +3 -0
  600. package/src/tools/dispatch-admission.ts +24 -1
  601. package/src/tools/dispatch-arguments.ts +8 -0
  602. package/src/tools/dispatch-plan.ts +32 -0
  603. package/src/tools/dispatch-schema.ts +31 -1
  604. package/src/tools/dispatch-types.ts +3 -0
  605. package/src/tools/dispatch.ts +1 -1
  606. package/src/tools/harness-extensions.ts +169 -0
  607. package/src/tools/observation.ts +4 -0
  608. package/src/tools/policy.ts +7 -1
  609. package/src/tools/registry.ts +19 -1
  610. package/src/tools/worker-evidence.ts +5 -0
  611. package/src/worker/context-seed.ts +192 -0
  612. package/src/worker/entry.ts +1 -0
  613. package/src/worker/spec-contract.ts +8 -1
  614. package/dist/chunk-3UW3KU4A.js +0 -21
  615. package/dist/chunk-536HXRFE.js +0 -1257
  616. package/dist/chunk-B3MOMLJ4.js +0 -433
  617. package/dist/chunk-CXQ37WJH.js +0 -45
  618. package/dist/chunk-KTFSFCVN.js +0 -46
  619. package/dist/chunk-QCOV5DFY.js +0 -911
  620. package/dist/chunk-QRFXEO6Y.js +0 -17
  621. package/dist/chunk-VAHLPXPY.js +0 -399
  622. package/dist/interop-RVCAYECG.js +0 -115
  623. package/dist/library-CTKZA7K3.js +0 -226
  624. package/dist/skills-OXFEAWMT.js +0 -510
  625. package/skills/README.md +0 -418
  626. package/skills/meta/find-skills/SKILL.md +0 -78
  627. package/skills/meta/find-skills/evals.md +0 -47
  628. package/src/domains/extensions/resource-path.ts +0 -27
  629. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +0 -27
  630. package/src/interactive/overlays/agents.ts +0 -70
  631. package/src/interactive/overlays/library-install-confirm.ts +0 -152
  632. package/src/interactive/overlays/prompts.ts +0 -89
  633. package/src/interactive/overlays/skills-hub.ts +0 -615
  634. /package/{skills → library/skills}/coding/ast-grep/references/rule_reference.md +0 -0
  635. /package/{skills → library/skills}/coding/prototype/references/LOGIC.md +0 -0
  636. /package/{skills → library/skills}/coding/prototype/references/UI.md +0 -0
  637. /package/{skills → library/skills}/coding/tdd/references/mocking.md +0 -0
  638. /package/{skills → library/skills}/coding/tdd/references/tests.md +0 -0
  639. /package/{skills → library/skills}/context/context-handoff/scripts/new-handoff.sh +0 -0
  640. /package/{skills → library/skills}/git/branch-closeout/evals.md +0 -0
  641. /package/{skills → library/skills}/git/branch-closeout/references/closeout-checklist.md +0 -0
  642. /package/{skills → library/skills}/git/file-ticket/assets/issue-template.md +0 -0
  643. /package/{skills → library/skills}/git/file-ticket/evals.md +0 -0
  644. /package/{skills → library/skills}/git/file-ticket/references/issue-discovery.md +0 -0
  645. /package/{skills → library/skills}/git/fix-issue/evals.md +0 -0
  646. /package/{skills → library/skills}/git/fix-issue/references/diagnosis-and-rca.md +0 -0
  647. /package/{skills → library/skills}/git/resolve-merge-conflicts/references/conflict-matrix.md +0 -0
  648. /package/{skills → library/skills}/git/ship/assets/pr-template.md +0 -0
  649. /package/{skills → library/skills}/git/ship/evals.md +0 -0
  650. /package/{skills → library/skills}/git/ship/references/remote-and-branch-policy.md +0 -0
  651. /package/{skills → library/skills}/git/worktree-create/evals.md +0 -0
  652. /package/{skills → library/skills}/git/worktree-create/references/worktree-setup.md +0 -0
  653. /package/{skills → library/skills}/git/worktree-merge/evals.md +0 -0
  654. /package/{skills → library/skills}/git/worktree-merge/references/merge-strategies.md +0 -0
  655. /package/{skills → library/skills}/meta/clio-coder-test/references/harness.md +0 -0
  656. /package/{skills → library/skills}/meta/clio-coder-test/references/test-map.md +0 -0
  657. /package/{skills → library/skills}/planning/archify/evals.md +0 -0
@@ -1,6 +1,6 @@
1
1
  import type { ClioKeybinding } from "../domains/config/keybindings.js";
2
- import { isKeyRelease, matchesKey } from "../engine/tui.js";
3
- import { MUTATION_PREVIEW_KEY } from "./permission-hint.js";
2
+ import { isKeyRelease, isKeyRepeat, matchesKey } from "../engine/tui.js";
3
+ import { MUTATION_PREVIEW_KEY, PERMISSION_TERMS_KEY } from "./permission-hint.js";
4
4
 
5
5
  export type OverlayState =
6
6
  | "closed"
@@ -23,8 +23,6 @@ export type OverlayState =
23
23
  | "cwd-fallback"
24
24
  | "ask-user"
25
25
  | "help"
26
- | "agents"
27
- | "prompts"
28
26
  | "extensions"
29
27
  | "interop"
30
28
  | "skills-hub"
@@ -48,12 +46,14 @@ export interface PermissionOverlayKeyDeps {
48
46
  * so the draft that makes Enter inert can be cleared without first denying
49
47
  * the call. Only the deletion keys in `isDraftEditKey` arrive here.
50
48
  */
51
- editDraft?: (data: string) => void;
49
+ editDraft?: (operation: DraftEditOperation) => void;
52
50
  /** Whether this card has a mutation the operator can read locally (issue #254). */
53
51
  canInspectMutation?: () => boolean;
54
52
  isInspectingMutation?: () => boolean;
55
53
  toggleMutationInspection?: () => void;
56
54
  scrollMutationInspection?: (delta: number) => void;
55
+ /** Fold or unfold the standing approval terms on the card. */
56
+ togglePermissionTerms?: () => void;
57
57
  }
58
58
 
59
59
  export interface DispatchBoardOverlayKeyDeps {
@@ -80,24 +80,29 @@ export interface AskUserOverlayKeyDeps {
80
80
  cancelAskUser: () => void;
81
81
  }
82
82
 
83
- export interface OverlayKeyDeps extends PermissionOverlayKeyDeps, DispatchBoardOverlayKeyDeps, AskUserOverlayKeyDeps {}
83
+ export interface OverlayKeyDeps extends PermissionOverlayKeyDeps, DispatchBoardOverlayKeyDeps, AskUserOverlayKeyDeps {
84
+ canToggleOwner?: () => boolean;
85
+ }
84
86
 
85
87
  export function isEscapeKey(data: string): boolean {
86
88
  return matchesKey(data, "escape") && !isKeyRelease(data);
87
89
  }
88
90
 
89
- const DRAFT_EDIT_KEYS = ["backspace", "delete", "ctrl+u", "ctrl+w", "alt+backspace", "ctrl+k"] as const;
90
-
91
- /**
92
- * The keys that only ever remove text from the composer. They are the one
93
- * class of input a pending permission prompt lets through, because they
94
- * cannot type a command, cannot submit, and are the way out of the inert-Enter
95
- * state a draft puts the prompt in.
96
- */
97
- function isDraftEditKey(data: string): boolean {
98
- return !isKeyRelease(data) && DRAFT_EDIT_KEYS.some((key) => matchesKey(data, key));
99
- }
100
-
91
+ export type DraftEditOperation =
92
+ | "deleteCharBackward"
93
+ | "deleteCharForward"
94
+ | "deleteToLineStart"
95
+ | "deleteToLineEnd"
96
+ | "deleteWordBackward";
97
+ const DRAFT_EDITS: ReadonlyArray<readonly [import("../engine/tui.js").KeyId, DraftEditOperation]> = [
98
+ ["backspace", "deleteCharBackward"],
99
+ ["delete", "deleteCharForward"],
100
+ ["ctrl+u", "deleteToLineStart"],
101
+ ["ctrl+k", "deleteToLineEnd"],
102
+ ["ctrl+w", "deleteWordBackward"],
103
+ ["alt+backspace", "deleteWordBackward"],
104
+ ["ctrl+backspace", "deleteWordBackward"],
105
+ ];
101
106
  /** Rows one page key moves the open mutation. Matches the window the card renders. */
102
107
  const MUTATION_PAGE_ROWS = 16;
103
108
 
@@ -119,8 +124,9 @@ function routePermissionOverlayKey(data: string, deps: PermissionOverlayKeyDeps)
119
124
  if (!(deps.composerHasDraft?.() ?? false)) deps.confirmPermission();
120
125
  return true;
121
126
  }
122
- if (deps.editDraft && isDraftEditKey(data)) {
123
- deps.editDraft(data);
127
+ const edit = DRAFT_EDITS.find(([key]) => matchesKey(data, key));
128
+ if (deps.editDraft && edit) {
129
+ deps.editDraft(edit[1]);
124
130
  return true;
125
131
  }
126
132
  // Reading the mutation is the one thing this dialog does that is not an
@@ -136,6 +142,14 @@ function routePermissionOverlayKey(data: string, deps: PermissionOverlayKeyDeps)
136
142
  deps.toggleMutationInspection();
137
143
  return true;
138
144
  }
145
+ if (
146
+ matchesKey(data, PERMISSION_TERMS_KEY) &&
147
+ deps.togglePermissionTerms &&
148
+ !(deps.isInspectingMutation?.() ?? false)
149
+ ) {
150
+ deps.togglePermissionTerms();
151
+ return true;
152
+ }
139
153
  if ((deps.isInspectingMutation?.() ?? false) && deps.scrollMutationInspection && !isKeyRelease(data)) {
140
154
  const delta = mutationScrollDelta(data);
141
155
  if (delta !== 0) {
@@ -208,15 +222,6 @@ function routeCostOverlayKey(data: string, deps: CloseOverlayKeyDeps): boolean {
208
222
  return false;
209
223
  }
210
224
 
211
- /** Pure overlay key router for the /model overlay. Esc closes; arrows and Enter fall through. */
212
- function routeModelOverlayKey(data: string, deps: CloseOverlayKeyDeps): boolean {
213
- if (isEscapeKey(data)) {
214
- deps.closeOverlay();
215
- return true;
216
- }
217
- return false;
218
- }
219
-
220
225
  /** Pure overlay key router for the /fork message-picker. */
221
226
  function routeMessagePickerOverlayKey(data: string, deps: CloseOverlayKeyDeps): boolean {
222
227
  if (isEscapeKey(data)) {
@@ -226,15 +231,6 @@ function routeMessagePickerOverlayKey(data: string, deps: CloseOverlayKeyDeps):
226
231
  return false;
227
232
  }
228
233
 
229
- /** Pure overlay key router for ask_user. */
230
- function routeAskUserOverlayKey(data: string, deps: AskUserOverlayKeyDeps): boolean {
231
- if (isEscapeKey(data)) {
232
- deps.cancelAskUser();
233
- return true;
234
- }
235
- return false;
236
- }
237
-
238
234
  export function overlayOwnsInput(overlayState: OverlayState): boolean {
239
235
  return overlayState !== "closed";
240
236
  }
@@ -246,12 +242,17 @@ export function routeOverlayKey(
246
242
  matches: (data: string, id: ClioKeybinding) => boolean,
247
243
  ): boolean {
248
244
  if (overlayState === "closed") return false;
245
+ if (isKeyRelease(data)) return true;
246
+ if (data.includes("\x1b[200~") && overlayState === "permission-confirm") return true;
249
247
  if (
250
- (overlayState === "dispatch-board" && matches(data, "clio-coder.dispatchBoard.toggle")) ||
251
- (overlayState === "tasks" && matches(data, "clio-coder.tasks.open")) ||
252
- (overlayState === "tree" && matches(data, "clio-coder.session.tree")) ||
253
- (overlayState === "model" && matches(data, "clio-coder.model.select")) ||
254
- (overlayState === "help" && matches(data, "clio-coder.leader"))
248
+ !isKeyRepeat(data) &&
249
+ (deps.canToggleOwner?.() ?? true) &&
250
+ ((overlayState === "dispatch-board" && matches(data, "clio-coder.dispatchBoard.toggle")) ||
251
+ (overlayState === "tasks" && matches(data, "clio-coder.tasks.open")) ||
252
+ (overlayState === "tree" && matches(data, "clio-coder.session.tree")) ||
253
+ (overlayState === "model" && matches(data, "clio-coder.model.select")) ||
254
+ (overlayState === "skills-hub" && matches(data, "clio-coder.library.toggle")) ||
255
+ false)
255
256
  ) {
256
257
  deps.closeOverlay();
257
258
  return true;
@@ -287,7 +288,7 @@ export function routeOverlayKey(
287
288
  if (overlayState === "decisions") return false;
288
289
  if (overlayState === "memory") return false;
289
290
  if (overlayState === "view") return false;
290
- if (overlayState === "model") return routeModelOverlayKey(data, deps);
291
+ if (overlayState === "model") return false;
291
292
  // The scope dialog owns Esc itself: cancelling it must leave the model where
292
293
  // it was, and a router-level close cannot say that to the caller waiting on it.
293
294
  if (overlayState === "model-scope") return false;
@@ -299,11 +300,9 @@ export function routeOverlayKey(
299
300
  if (overlayState === "tree") return false;
300
301
  if (overlayState === "message-picker") return routeMessagePickerOverlayKey(data, deps);
301
302
  if (overlayState === "cwd-fallback") return false;
302
- if (overlayState === "ask-user") return routeAskUserOverlayKey(data, deps);
303
+ if (overlayState === "ask-user") return false;
303
304
  if (
304
305
  overlayState === "help" ||
305
- overlayState === "agents" ||
306
- overlayState === "prompts" ||
307
306
  overlayState === "extensions" ||
308
307
  overlayState === "interop" ||
309
308
  overlayState === "skills-hub"
@@ -1,12 +1,12 @@
1
1
  import type { LibraryEntryKind } from "../domains/resources/index.js";
2
- import { appendNotice } from "./command-output.js";
2
+ import { appendInterviewRecord, appendNotice } from "./command-output.js";
3
3
  import { createOverlayAskUserLifecycle, type OverlayAskUserLifecycle } from "./overlay-ask-user-lifecycle.js";
4
4
  import { createOverlayAuthLifecycle } from "./overlay-auth-lifecycle.js";
5
5
  import { showClioOverlayFrame } from "./overlay-frame.js";
6
6
  import { createOverlayGeneralOpeners } from "./overlay-general-openers.js";
7
7
  import { createOverlayModelSelectors } from "./overlay-model-selectors.js";
8
8
  import { createOverlayPermissionLifecycle, type OverlayPermissionLifecycle } from "./overlay-permission-lifecycle.js";
9
- import { createOverlayResourceOpeners } from "./overlay-resource-openers.js";
9
+ import { createOverlayResourceOpeners, type LibraryOpenRequest } from "./overlay-resource-openers.js";
10
10
  import { createOverlaySessionLifecycle } from "./overlay-session-lifecycle.js";
11
11
  import { createOverlayTransitions } from "./overlay-transitions.js";
12
12
  import {
@@ -124,14 +124,13 @@ export interface OverlayLifecycleRuntimeDeps {
124
124
  openMemoryOverlay?: typeof import("./memory-overlay.js").openMemoryOverlay;
125
125
  openViewOverlay?: typeof import("./view/view-overlay.js").openViewOverlay;
126
126
  openHelpOverlay?: typeof import("./overlays/help-reference.js").openHelpOverlay;
127
- openAgentsOverlay?: typeof import("./overlays/agents.js").openAgentsOverlay;
128
- openSkillsHub?: typeof import("./overlays/skills-hub.js").openSkillsHub;
129
- openPromptsOverlay?: typeof import("./overlays/prompts.js").openPromptsOverlay;
127
+ openSkillsHub?: typeof import("./overlays/library.js").openLibraryOverlay;
130
128
  openExtensionsOverlay?: typeof import("./overlays/extensions.js").openExtensionsOverlay;
131
129
  openInteropOverlay?: typeof import("./overlays/interop.js").openInteropOverlay;
132
130
  }
133
131
 
134
132
  export interface OverlayLifecycleController {
133
+ openExtensionPanelState: import("./overlay-resource-openers.js").OverlayResourceOpeners["openExtensionPanelState"];
135
134
  getState(): OverlayState;
136
135
  closeOverlay(): void;
137
136
  finishAuthOverlay(dismiss: boolean): void;
@@ -161,9 +160,7 @@ export interface OverlayLifecycleController {
161
160
  openTreeOverlayState(): void;
162
161
  openMessagePickerOverlayState(): void;
163
162
  openHelpOverlayState(query?: string): void;
164
- openAgentsOverlayState(): void;
165
- openSkillsHubState(tab?: LibraryEntryKind): void;
166
- openPromptsOverlayState(): void;
163
+ openSkillsHubState(request?: LibraryOpenRequest | LibraryEntryKind): void;
167
164
  openExtensionsOverlayState(): void;
168
165
  openInteropOverlayState(): void;
169
166
  toggleDispatchBoardOverlay(): void;
@@ -175,6 +172,8 @@ export interface OverlayLifecycleController {
175
172
  isInspectingMutation(): boolean;
176
173
  toggleMutationInspection(): void;
177
174
  scrollMutationInspection(delta: number): void;
175
+ /** Fold or unfold the standing approval terms on the live permission card. */
176
+ togglePermissionTerms(): void;
178
177
  cancelAskUser(): void;
179
178
  dispose(): void;
180
179
  }
@@ -215,9 +214,7 @@ export function createOverlayLifecycle(deps: OverlayLifecycleRuntimeDeps): Overl
215
214
  openMemoryOverlay: openMemoryOverlayFactory,
216
215
  openViewOverlay: openViewOverlayFactory,
217
216
  openHelpOverlay: openHelpOverlayFactory,
218
- openAgentsOverlay: openAgentsOverlayFactory,
219
217
  openSkillsHub: openSkillsHubFactory,
220
- openPromptsOverlay: openPromptsOverlayFactory,
221
218
  openExtensionsOverlay: openExtensionsOverlayFactory,
222
219
  openInteropOverlay: openInteropOverlayFactory,
223
220
  } = deps;
@@ -289,7 +286,13 @@ export function createOverlayLifecycle(deps: OverlayLifecycleRuntimeDeps): Overl
289
286
  // Read per frame: the footer names what Enter does right now, and
290
287
  // that depends on whether the composer holds a draft and on whether
291
288
  // the mutation is open.
292
- footerHint: (innerWidth) => permissionOverlayHint(innerWidth, editor.getText().length > 0, inspectionHint()),
289
+ footerHint: (innerWidth) =>
290
+ permissionOverlayHint(
291
+ innerWidth,
292
+ editor.getText().length > 0,
293
+ inspectionHint(),
294
+ body.isShowingTerms() ? "open" : "closed",
295
+ ),
293
296
  });
294
297
  if (!overlayTransitions.showPermission(handle)) {
295
298
  handle.hide();
@@ -330,6 +333,17 @@ export function createOverlayLifecycle(deps: OverlayLifecycleRuntimeDeps): Overl
330
333
  ...(deps.app.registerAskUserHandler ? { registerHandler: deps.app.registerAskUserHandler } : {}),
331
334
  ...(openAskUserOverlayFactory ? { openAskUserOverlay: openAskUserOverlayFactory } : {}),
332
335
  ...(deps.onOperatorParked ? { onOperatorParked: deps.onOperatorParked } : {}),
336
+ onRoundAnswered: (questions, answers) =>
337
+ appendInterviewRecord(
338
+ answers.map((answer) => ({
339
+ label:
340
+ questions.find((question) => question.question === answer.question)?.header ??
341
+ answer.question.split("\n").find((line) => line.trim().length > 0) ??
342
+ answer.question,
343
+ answer: answer.answer,
344
+ })),
345
+ busNoticeSink,
346
+ ),
333
347
  });
334
348
 
335
349
  const overlayModelSelectors = createOverlayModelSelectors({
@@ -362,9 +376,7 @@ export function createOverlayLifecycle(deps: OverlayLifecycleRuntimeDeps): Overl
362
376
  ...(deps.app.resources ? { resources: deps.app.resources } : {}),
363
377
  closeOverlay,
364
378
  ...(openHelpOverlayFactory ? { openHelpOverlay: openHelpOverlayFactory } : {}),
365
- ...(openAgentsOverlayFactory ? { openAgentsOverlay: openAgentsOverlayFactory } : {}),
366
379
  ...(openSkillsHubFactory ? { openSkillsHub: openSkillsHubFactory } : {}),
367
- ...(openPromptsOverlayFactory ? { openPromptsOverlay: openPromptsOverlayFactory } : {}),
368
380
  ...(openExtensionsOverlayFactory ? { openExtensionsOverlay: openExtensionsOverlayFactory } : {}),
369
381
  ...(openInteropOverlayFactory ? { openInteropOverlay: openInteropOverlayFactory } : {}),
370
382
  });
@@ -488,10 +500,9 @@ export function createOverlayLifecycle(deps: OverlayLifecycleRuntimeDeps): Overl
488
500
  openTreeOverlayState,
489
501
  openMessagePickerOverlayState,
490
502
  openHelpOverlayState: overlayResourceOpeners.openHelpOverlayState,
491
- openAgentsOverlayState: overlayResourceOpeners.openAgentsOverlayState,
492
503
  openSkillsHubState: overlayResourceOpeners.openSkillsHubState,
493
- openPromptsOverlayState: overlayResourceOpeners.openPromptsOverlayState,
494
504
  openExtensionsOverlayState: overlayResourceOpeners.openExtensionsOverlayState,
505
+ openExtensionPanelState: overlayResourceOpeners.openExtensionPanelState,
495
506
  openInteropOverlayState: overlayResourceOpeners.openInteropOverlayState,
496
507
  toggleDispatchBoardOverlay,
497
508
  confirmPermission: () => {
@@ -514,6 +525,10 @@ export function createOverlayLifecycle(deps: OverlayLifecycleRuntimeDeps): Overl
514
525
  permissionBody?.scrollInspect(delta);
515
526
  tui.requestRender();
516
527
  },
528
+ togglePermissionTerms: () => {
529
+ permissionBody?.toggleTerms();
530
+ tui.requestRender();
531
+ },
517
532
  cancelAskUser: overlayAskUser.cancel,
518
533
  dispose: () => {
519
534
  overlayPermission?.dispose();
@@ -1,16 +1,18 @@
1
+ import type { ExtensionPanel } from "../domains/extensions/public-api.js";
1
2
  import type { LibraryEntryKind, ResourcesContract } from "../domains/resources/index.js";
2
- import { installSkill as installMarketplaceSkill } from "../domains/resources/skills/marketplace.js";
3
3
  import type { TUI } from "../engine/tui.js";
4
4
  import type { ClioEditor } from "./clio-editor.js";
5
5
  import type { ClioKeybindingManager } from "./keybinding-manager.js";
6
6
  import type { OverlayTransitions } from "./overlay-transitions.js";
7
- import { openAgentsOverlay } from "./overlays/agents.js";
7
+ import { openExtensionPanel } from "./overlays/extension-panel.js";
8
8
  import { openExtensionsOverlay } from "./overlays/extensions.js";
9
9
  import { openHelpOverlay } from "./overlays/help-reference.js";
10
10
  import { openInteropOverlay } from "./overlays/interop.js";
11
- import { openPromptsOverlay } from "./overlays/prompts.js";
12
- import { openSkillsHub } from "./overlays/skills-hub.js";
13
- import type { SlashCommandContext } from "./slash-commands.js";
11
+ import { openLibraryOverlay } from "./overlays/library.js";
12
+ import { createLibraryLifecycle, libraryRefreshHost } from "./overlays/library-lifecycle.js";
13
+ import type { LibraryBrowseRequest, SlashCommandContext } from "./slash-commands.js";
14
+
15
+ export type { LibraryBrowseRequest as LibraryOpenRequest } from "./slash-commands.js";
14
16
 
15
17
  export interface OverlayResourceOpenersDeps {
16
18
  tui: TUI;
@@ -21,80 +23,90 @@ export interface OverlayResourceOpenersDeps {
21
23
  resources?: Pick<ResourcesContract, "skills">;
22
24
  closeOverlay: () => void;
23
25
  openHelpOverlay?: typeof openHelpOverlay;
24
- openAgentsOverlay?: typeof openAgentsOverlay;
25
- openSkillsHub?: typeof openSkillsHub;
26
- openPromptsOverlay?: typeof openPromptsOverlay;
26
+ openSkillsHub?: typeof openLibraryOverlay;
27
27
  openExtensionsOverlay?: typeof openExtensionsOverlay;
28
28
  openInteropOverlay?: typeof openInteropOverlay;
29
- installSkill?: typeof installMarketplaceSkill;
30
29
  }
31
30
 
32
31
  export interface OverlayResourceOpeners {
32
+ openExtensionPanelState(owner: string, panel: ExtensionPanel, valid: () => boolean): boolean;
33
33
  openHelpOverlayState(query?: string): void;
34
- openAgentsOverlayState(): void;
35
- openSkillsHubState(tab?: LibraryEntryKind): void;
36
- openPromptsOverlayState(): void;
34
+ openSkillsHubState(request?: LibraryBrowseRequest | LibraryEntryKind): void;
37
35
  openExtensionsOverlayState(): void;
38
36
  openInteropOverlayState(): void;
39
37
  }
40
38
 
39
+ /** The session's own resource reload, or nothing when this host has none wired. */
40
+ function reloadResources(ctx: SlashCommandContext): (() => { generation: number }) | undefined {
41
+ const reload = ctx.reloadPlugins;
42
+ return reload ? () => reload() : undefined;
43
+ }
44
+
41
45
  export function createOverlayResourceOpeners(deps: OverlayResourceOpenersDeps): OverlayResourceOpeners {
42
46
  const openHelp = deps.openHelpOverlay ?? openHelpOverlay;
43
- const openAgents = deps.openAgentsOverlay ?? openAgentsOverlay;
44
- const openSkills = deps.openSkillsHub ?? openSkillsHub;
45
- const openPrompts = deps.openPromptsOverlay ?? openPromptsOverlay;
47
+ const openLibrary = deps.openSkillsHub ?? openLibraryOverlay;
46
48
  const openExtensions = deps.openExtensionsOverlay ?? openExtensionsOverlay;
47
49
  const openInterop = deps.openInteropOverlay ?? openInteropOverlay;
48
- const installSkill = deps.installSkill ?? installMarketplaceSkill;
49
50
 
50
51
  const openHelpOverlayState = (query?: string): void => {
51
52
  if (deps.transitions.state !== "closed") return;
52
53
  deps.transitions.state = "help";
53
- deps.transitions.handle = openHelp(deps.tui, deps.keybindings, deps.closeOverlay, query);
54
+ const ctx = deps.getSlashContext();
55
+ deps.transitions.handle = openHelp(
56
+ deps.tui,
57
+ deps.keybindings,
58
+ deps.closeOverlay,
59
+ query,
60
+ ctx.operatorExtensions?.commands(ctx.listPrompts().items.map((prompt) => prompt.name)),
61
+ );
54
62
  deps.tui.requestRender();
55
63
  };
56
64
 
57
- const openAgentsOverlayState = (): void => {
65
+ const openInteropOverlayState = (): void => {
58
66
  if (deps.transitions.state !== "closed") return;
59
- deps.transitions.state = "agents";
60
- deps.transitions.handle = openAgents(deps.tui, deps.getSlashContext(), deps.closeOverlay);
67
+ deps.transitions.state = "interop";
68
+ deps.transitions.handle = openInterop(deps.tui, deps.getSlashContext(), deps.closeOverlay);
61
69
  deps.tui.requestRender();
62
70
  };
63
71
 
64
- const openSkillsHubState = (tab?: LibraryEntryKind): void => {
72
+ const openSkillsHubState = (request?: LibraryBrowseRequest | LibraryEntryKind): void => {
65
73
  if (deps.transitions.state !== "closed") return;
74
+ const open: LibraryBrowseRequest = typeof request === "string" ? { tab: request } : (request ?? {});
66
75
  deps.transitions.state = "skills-hub";
67
- deps.transitions.handle = openSkills(deps.tui, {
68
- ...(tab ? { initialTab: tab } : {}),
76
+ const ctx = deps.getSlashContext();
77
+ deps.transitions.handle = openLibrary(deps.tui, {
78
+ ...(open.tab ? { initialTab: open.tab } : {}),
79
+ ...(open.focus ? { focus: open.focus } : {}),
80
+ ...(open.intent ? { intent: open.intent } : {}),
81
+ ...(open.importSource ? { importSource: open.importSource } : {}),
82
+ ...(open.scope ? { initialScope: open.scope } : {}),
83
+ // The session's own resource reload is the refresh a committed change
84
+ // asks for. It is reported separately from the write and can be retried
85
+ // on its own, so a refresh failure never restates a successful install.
86
+ lifecycle: createLibraryLifecycle(libraryRefreshHost(reloadResources(ctx))),
69
87
  // A fleet's `use` is its approval preview, which is a surface of its own.
70
- // The hub closes first so the preview owns the overlay slot, exactly as
71
- // `/fleet run <name>` typed into the composer would.
88
+ // The Library closes first so the preview owns the overlay slot, exactly
89
+ // as `/fleet run <name>` typed into the composer would.
72
90
  openFleetRun: (name) => {
73
91
  deps.closeOverlay();
74
92
  deps.getSlashContext().startFleetRun?.(name, {});
75
93
  },
76
- listSkills: () => deps.resources?.skills(process.cwd()) ?? { items: [], diagnostics: [] },
94
+ // Discovery is explicit. Opening the Library never sweeps another
95
+ // agent's home; this is the only route that does, and only on `o`.
96
+ openImport: () => {
97
+ deps.closeOverlay();
98
+ openInteropOverlayState();
99
+ },
77
100
  setEditorText: (text) => {
78
101
  deps.editor.setText(text);
79
102
  deps.tui.requestRender();
80
103
  },
81
104
  notice: (level, text) => deps.getSlashContext().notice(level, text),
82
- installSkill: async (name) => {
83
- const result = installSkill({ source: name, scope: "project" });
84
- return { name: result.name, path: result.path, warnings: result.warnings };
85
- },
86
105
  onClose: deps.closeOverlay,
87
106
  });
88
107
  deps.tui.requestRender();
89
108
  };
90
109
 
91
- const openPromptsOverlayState = (): void => {
92
- if (deps.transitions.state !== "closed") return;
93
- deps.transitions.state = "prompts";
94
- deps.transitions.handle = openPrompts(deps.tui, deps.getSlashContext(), deps.closeOverlay);
95
- deps.tui.requestRender();
96
- };
97
-
98
110
  const openExtensionsOverlayState = (): void => {
99
111
  if (deps.transitions.state !== "closed") return;
100
112
  deps.transitions.state = "extensions";
@@ -102,18 +114,16 @@ export function createOverlayResourceOpeners(deps: OverlayResourceOpenersDeps):
102
114
  deps.tui.requestRender();
103
115
  };
104
116
 
105
- const openInteropOverlayState = (): void => {
106
- if (deps.transitions.state !== "closed") return;
107
- deps.transitions.state = "interop";
108
- deps.transitions.handle = openInterop(deps.tui, deps.getSlashContext(), deps.closeOverlay);
109
- deps.tui.requestRender();
110
- };
111
-
112
117
  return {
118
+ openExtensionPanelState(owner, panel, valid) {
119
+ if (deps.transitions.state !== "closed") return false;
120
+ deps.transitions.state = "extensions";
121
+ deps.transitions.handle = openExtensionPanel(deps.tui, owner, panel, valid, deps.closeOverlay);
122
+ deps.tui.requestRender();
123
+ return true;
124
+ },
113
125
  openHelpOverlayState,
114
- openAgentsOverlayState,
115
126
  openSkillsHubState,
116
- openPromptsOverlayState,
117
127
  openExtensionsOverlayState,
118
128
  openInteropOverlayState,
119
129
  };