@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
@@ -0,0 +1,291 @@
1
+ # Harness extensions
2
+
3
+ > **Visual blueprint:** See the [visual reference](../html/harness_extensions_blueprint.html) in the source checkout.
4
+
5
+ Harness extensions add executable capabilities to Clio. Library recipes may also carry explicitly invoked workflow or evaluation scripts. Installing or browsing a recipe never registers harness tools, hooks, operator commands, or UI. A domain workflow that combines prompts, agents, skills, fleets, and reference files is a plugin, installed with `clio-coder library install <path>`.
6
+
7
+ An extension declares command tools in `clio-coder-extension.yaml`, `.yml`, or `.json`. Clio discovers and validates declarations without importing or executing package code. Tools become available in a new session after installation. Native workers can use a tool when their admitted recipe includes its qualified name; narrower profiles such as `minimal-local` exclude extension commands.
8
+
9
+ ## Create a command tool
10
+
11
+ Create a directory containing this `clio-coder-extension.yaml`:
12
+
13
+ ```yaml
14
+ id: local-analysis
15
+ name: Local Analysis
16
+ version: 1.0.0
17
+ description: Local analysis capabilities for Clio.
18
+ compatibility:
19
+ clio: ">=0.4.7"
20
+ capabilities:
21
+ tools:
22
+ - name: summarize
23
+ description: Return the count and sum of supplied measurements.
24
+ runtime: node
25
+ entrypoint: tools/summarize.cjs
26
+ timeoutMs: 10000
27
+ maxOutputBytes: 16384
28
+ inputSchema:
29
+ type: object
30
+ properties:
31
+ values:
32
+ type: array
33
+ items:
34
+ type: number
35
+ maxItems: 1000
36
+ required: [values]
37
+ additionalProperties: false
38
+ ```
39
+
40
+ Add `tools/summarize.cjs`:
41
+
42
+ ```javascript
43
+ const { values } = JSON.parse(process.argv[2]);
44
+ console.log(JSON.stringify({
45
+ count: values.length,
46
+ sum: values.reduce((sum, value) => sum + value, 0),
47
+ }));
48
+ ```
49
+
50
+ Install the directory and start a new Clio session:
51
+
52
+ ```bash
53
+ clio-coder extensions install /path/to/local-analysis --user
54
+ clio-coder extensions list --all --json
55
+ clio-coder
56
+ ```
57
+
58
+ The model can call `extension_local-analysis__summarize` with `{"values":[1,2,3]}`. A recipe requests that same qualified name in `tools.required` or `tools.optional`. Python tools use `runtime: python3` and read `json.loads(sys.argv[1])`; Clio launches Python with `-I` to isolate interpreter configuration.
59
+
60
+ ## Command contract
61
+
62
+ Each tool declares `name`, `description`, `runtime`, `entrypoint`, and `inputSchema`. Supported runtimes are `node` and `python3`. Clio uses its current Node executable and resolves `python3` from the normal tool environment. Entrypoints are ordinary files inside the installed package; symlinks, hard links, absolute paths, and parent traversal are refused. Helper files remain covered by the full package digest.
63
+
64
+ Clio passes the validated JSON object as one argument and runs a fixed argument vector with no shell. The child runs in the workspace directory. Standard output must contain exactly one JSON value. Use standard error for diagnostics. Nonzero exits, invalid JSON, cancellation, timeout, and exceeded output limits return tool errors with execution metadata and package provenance.
65
+
66
+ Input is limited to 64 KiB. `timeoutMs` defaults to 120000 and is bounded at 300000. `maxOutputBytes` defaults to 600000 and is bounded at 1048576. Output limits include standard output and standard error together.
67
+
68
+ Schemas support `type`, `description`, `properties`, `required`, `additionalProperties`, `items`, scalar `enum`, `minimum`, `maximum`, `minLength`, `maxLength`, `minItems`, and `maxItems`. The root must be an object. Each object declares its properties and `additionalProperties: false`; array schemas declare `items`. References and executable schema keywords are refused. Clio validates each invocation against the schema before starting the child.
69
+
70
+ Qualified names use `extension_<id>__<name>` and must fit 64 characters. Package IDs use provider-safe lowercase letters, numbers, single underscores, and hyphens; local tool names start with a letter and use lowercase letters, numbers, and single underscores. Duplicate and colliding tool registrations are refused.
71
+
72
+ The manifest keys are `id`, `name`, `version`, `description`, `capabilities`, `compatibility`, and optional `runtime` (described below). A manifest naming `resources`, `prompts`, `skills`, `agents`, `fleets`, or `themes` is invalid, and the diagnostic points at `clio-coder library install <path>`. `capabilities` is optional: a package whose only contribution is a root `hooks.yaml` is a valid harness extension with no command tools.
73
+
74
+ ## Admission and lifecycle
75
+
76
+ Every model-visible extension command tool is an execution action and runs sequentially. Packages cannot declare themselves read-only. The registry evaluates both the qualified capability call and its fixed executable command through Clio's existing safety policy, autonomy, approval, and middleware rules. Read-only autonomy blocks commands; workers with explicit write confinement cannot execute an unconfined extension command. Installation does not bypass command approval. The child receives Clio's normal allowlisted tool environment, which excludes provider credentials and interpreter injection variables.
77
+
78
+ Command tools are installed programs with the filesystem and network access of the invoking process. Entry containment and environment filtering do not create an operating-system sandbox. Install code you trust, as you would a local executable script.
79
+
80
+ The existing extension lifecycle applies:
81
+
82
+ ```bash
83
+ clio-coder extensions disable local-analysis --user
84
+ clio-coder extensions enable local-analysis --user
85
+ clio-coder extensions install /path/to/new-local-analysis --user --force
86
+ clio-coder extensions remove local-analysis --user
87
+ ```
88
+
89
+ Installation records and verifies the entire package tree. Each invocation rechecks the effective installed package, enabled state, canonical root, and digest. Disabling, removing, replacing, or modifying a package revokes existing tool calls. A disabled project installation also suppresses the user installation with the same ID.
90
+
91
+ ## Extension reload: runtime capabilities, integrity verification, and frozen session tool schemas
92
+
93
+ Harness extensions distinguish reloadable runtime capabilities from frozen model tool definitions:
94
+ - **Reloading at idle (`/extensions reload`)**: Extension snapshots, hooks declared in `hooks.yaml`, and operator runtimes reload at idle when the session is not executing tools or commands. `/extensions reload` re-reads installed extension files and re-verifies tree integrity against `extensions/state.json`. Reload is **not unconditionally successful**: if an installed package file has been modified on disk without being properly reinstalled via `clio-coder extensions install`, it fails integrity checks and reports degraded runtime activation. Similarly, if the active process limit (up to 4 child processes) is exceeded or staging is interrupted by session activity, reload reports a failure or queues until idle.
95
+ - **Operator runtimes vs command tools**: An extension operator runtime (`api.handle(...)`, `api.on(...)`) requires a shipped Node `.mjs` entrypoint (`parseExtensionRuntime` in `src/domains/extensions/runtime-schema.ts`) and provides bounded status indicators and UI panels. Its `session_open` and `turn_end` events are passive observations, fundamentally distinct from effect-producing, blocking pre-tool/post-tool interceptors in `hooks.yaml`. Separately, harness command tools execute individual tool invocations under either `runtime: node` or `python3`.
96
+ - **Capabilities that require a new session**: Model-visible command-tool schemas are frozen when a session starts. Adding a new command tool, modifying its parameter schema, or removing a tool cannot alter an in-flight conversation or worker registry; restart Clio to pick up tool schema changes.
97
+ - **Recipe resources vs extensions**: Recipe resources (skills, prompts, agents, fleets) belong to the Library, not harness extensions, and are refreshed independently via `/library reload`. A new native worker constructs its own verified registry, and ordinary allowed-tool surfaces and worker attestation apply. External command-line worker runtimes do not gain Clio command tools.
98
+
99
+ ## Operator commands, status, and panels
100
+
101
+ An optional `runtime` adds local code-backed slash commands and observations in
102
+ an interactive session. It uses a fresh disposable Node child per package.
103
+ Discovery, installation, validation and `extensions list` remain code-free.
104
+ Installing or enabling trusted runtime code makes it eligible to execute on the
105
+ next interactive startup or explicit extension reload. Module initialization,
106
+ commands and observations run with your user account's filesystem and network
107
+ authority, independently of model-tool autonomy. The API provides no tool,
108
+ provider, credential, model, worker or session mutation methods. This is
109
+ lifecycle isolation, not an operating-system sandbox.
110
+
111
+ ```json
112
+ {
113
+ "id": "lab-status",
114
+ "name": "Local experiment status",
115
+ "version": "1.0.0",
116
+ "description": "Inspect local experiment records.",
117
+ "compatibility": { "clio": ">=0.4.7" },
118
+ "runtime": {
119
+ "api": 1,
120
+ "entrypoint": "extension.mjs",
121
+ "commands": [{ "name": "dashboard", "description": "Show local experiment status." }],
122
+ "events": ["session_open", "turn_end"],
123
+ "ui": ["status", "panel"]
124
+ }
125
+ }
126
+ ```
127
+
128
+ Only `.mjs` entrypoints are supported. Ship JavaScript and contained assets;
129
+ author TypeScript with your own build if desired. Clio never installs
130
+ dependencies or runs package lifecycle scripts. Each runtime loads from a
131
+ private copy whose complete digest matches the reviewed installation. Contained
132
+ relative helpers and assets are copied and refreshed too. Mutable external
133
+ imports, native add-ons, detached subprocesses, remote state, and files written
134
+ by the extension are outside the reload guarantee.
135
+
136
+ The default export registers exactly the declared commands and observations.
137
+ Registration closes when the factory settles; it cannot add tools or new
138
+ commands later. Import author types with
139
+ `import type { ExtensionApi, ExtensionOutput } from '@iowarp/clio-coder/extensions'`.
140
+ This package export contains types only; Clio injects the implementation.
141
+
142
+ ```javascript
143
+ /** @param {import('@iowarp/clio-coder/extensions').ExtensionApi} api */
144
+ export default function extension(api) {
145
+ api.handle("dashboard", (_args, context) => {
146
+ context.signal.throwIfAborted();
147
+ return {
148
+ text: "SYNTHETIC FIXTURE: 2 of 3 jobs completed",
149
+ status: { text: "SYNTHETIC: 2/3 completed", tone: "neutral" },
150
+ panel: {
151
+ title: "Synthetic experiment",
152
+ sections: [
153
+ { kind: "metrics", items: [{ label: "Completed jobs", value: "2/3" }] },
154
+ { kind: "text", text: "Demonstration data; no cluster jobs were submitted." }
155
+ ]
156
+ }
157
+ };
158
+ });
159
+ api.on("session_open", () => ({ text: "", status: { text: "Synthetic fixture ready" } }));
160
+ api.on("turn_end", () => ({ text: "" }));
161
+ api.onDispose(() => { /* best-effort local cleanup */ });
162
+ }
163
+ ```
164
+
165
+ Commands receive the unexpanded argument string and a context with `signal`,
166
+ `requestId`, and a read-only snapshot of `workspace`, `sessionId`, `generation`
167
+ and `mode`. No conversation body, tool arguments or credentials cross this
168
+ API. Results render locally for the operator and never start a model turn or
169
+ become a session transcript entry. The required `text` is also the headless
170
+ fallback; include the same useful findings and evidence qualifiers there.
171
+
172
+ `session_open` receives a `startup`, `reload`, or `session-change` reason.
173
+ `turn_end` receives `completed`, meaning the foreground turn settled, not that
174
+ its scientific or engineering objective passed validation. Observers are
175
+ asynchronous observations, distinct from effect-producing `hooks.yaml`.
176
+ Observers may return status, but cannot open a panel or steal focus. There is
177
+ one coalesced pending observation; a busy runtime skips observations. No timer
178
+ polling or arbitrary event bus subscription API is exposed. Runtime globals
179
+ reset on reload and on resume, fork, workspace change or branch switch.
180
+
181
+ UI is bounded data. A status is one string (160 characters) and an optional
182
+ `neutral`, `positive`, `warning`, or `error` tone; `status: null` clears it.
183
+ The footer displays a single additive line with host-assigned owner labels;
184
+ core activity, approval cues and notices retain ownership. The Extensions
185
+ reference shows each owner's full current status if the footer truncates it.
186
+ Panels support plain text, labeled metrics, and tables. Clio owns wrapping,
187
+ scrolling, Escape, focus and permission interruption. Terminal controls are
188
+ stripped. Background code cannot open panels; a command opens one only when
189
+ no other overlay needs the screen. An unavailable panel falls back to text.
190
+ Panels expire with their instance and close on observed revocation when they
191
+ hold the overlay slot; an interrupted expired panel shows an expiry message.
192
+
193
+ ## Invoke and manage operator runtimes
194
+
195
+ ```bash
196
+ # From the source checkout, or use the examples directory in the installed package:
197
+ clio-coder extensions install examples/extensions/lab-status --project
198
+ clio-coder extensions list --all --json
199
+ clio-coder extensions run lab-status dashboard
200
+ clio-coder extensions run lab-status dashboard --json -- /path/to/local-record.json
201
+ ```
202
+
203
+ Inside an interactive session, invoke `/ext:lab-status:dashboard` or append a
204
+ local JSON filename. Browse `/extensions` and use
205
+ `/extensions reload` after a reviewed reinstall or enable. These are the canonical
206
+ harness routes; `/library extensions` and `/library extensions reload` are retired.
207
+ `/library reload` refreshes recipe resources independently and never loads runtime code.
208
+
209
+ Canonical commands use `/ext:<extension-id>:<command>`. Existing extension IDs
210
+ are preserved, including dots and underscores. Local command names start with
211
+ a lowercase letter and contain lowercase letters, digits or underscores.
212
+ There are no short aliases. Built-ins retain ownership; an existing prompt
213
+ with the same canonical spelling remains a prompt and disables that extension
214
+ command with a conflict diagnostic. This includes unavailable and display-only
215
+ prompts. Completion and dispatch share that collision projection. Avoid `ext:`
216
+ when authoring new prompt names. Unknown canonical commands error; escaped
217
+ `\/ext:...` remains ordinary model text.
218
+
219
+ `extensions run` is the explicit headless operator path. It starts only the
220
+ selected installed runtime, supplies `sessionId: null`, sends no synthetic
221
+ session observation, prints one fallback or JSON result, then disposes the
222
+ runtime. SIGINT/SIGTERM cancel it. A CLI invocation does not reload any other
223
+ running session. Ordinary `clio-coder run`, ACP sessions and native workers do
224
+ not start operator/UI runtimes. They retain existing admitted command tools;
225
+ a slash token is not permission to run an operator extension in a worker.
226
+
227
+ Installation eligibility, extension snapshot/hook generation, operator runtime
228
+ readiness and model tool schemas are separate facts:
229
+
230
+ - Listing says `eligible`, not that another process has activated the package.
231
+ The live Extensions reference reports runtime state, generation, failures,
232
+ available commands and current status. Tool evidence is taken from the actual
233
+ session registry when that host provides it. Other hosts explicitly label the
234
+ comparison as a runtime-startup observation, which does not prove a model
235
+ schema binding.
236
+ - Idle reload restarts every child using verified copies. During reload,
237
+ commands are unavailable. Reload requested during a turn, command, local
238
+ shell operation or modal interaction is queued to an idle boundary.
239
+ - The existing synchronous snapshot/hook pair still commits together. Runtime
240
+ staging happens first, then that pair commits, then the runtime generation
241
+ publishes and children acknowledge activation. Startup/handler failures are
242
+ reported as degraded runtime state. A rejected reload leaves no replacement
243
+ runtimes active; old children are already stopped and require a retry.
244
+ This deliberately does not promise atomic rollback of arbitrary code or
245
+ preserve module globals across reloads.
246
+ - Each command rechecks installed scope, enabled state, canonical root and
247
+ whole-tree digest before and after execution. A slow host tick also observes
248
+ revocation while idle. No timer or scan runs when there are no active runtimes
249
+ or pending reloads. Active runtimes receive a full admission check at a
250
+ 30-second minimum interval, lengthened to at least 100 times the last scan
251
+ duration on slower filesystems. Checks may therefore be delayed on HPC/shared
252
+ storage. Commands and observations still verify before and after execution;
253
+ the slow timer is only proactive revocation detection. Once observed, old
254
+ requests and UI lose authority and the child is disposed. Disable/remove is
255
+ scoped; a disabled project copy suppresses a user copy, while project removal
256
+ may reveal it on reload. Installation, enable and update need explicit reload
257
+ to start newly eligible code.
258
+ - Tool schemas stay frozen. **Editing only UI in a mixed tool/runtime package
259
+ changes the full package digest and revokes that session's old tool calls.**
260
+ Reinstalling and reloading the UI cannot rebind those calls. Start a new
261
+ session, or keep rapidly developed UI in a separate runtime-only package.
262
+ Existing declarative extension hooks retain captured generations until reload;
263
+ they do not acquire the command tools' per-invocation digest recheck.
264
+
265
+ At most four runtimes run concurrently; further eligible packages show a limit
266
+ diagnostic. There are at most 32 commands, two observations and eight disposal
267
+ callbacks per runtime. Startup/activation each have a 5-second deadline;
268
+ commands default to 30 seconds and may declare `timeoutMs` from 100 through
269
+ 300000. Observations have a 2-second deadline. Arguments are limited to 16 KiB;
270
+ results to 64 KiB (text 32768 characters), and protocol messages to 96 KiB and
271
+ 128 messages per second. Panels have at most 16 sections, 32 metric items,
272
+ 8 table columns and 100 rows per table. stdout/stderr are discarded as
273
+ non-protocol diagnostic streams and their combined 64 KiB lifetime cap fails
274
+ the runtime. Failures are bounded diagnostics, not arbitrary terminal output.
275
+
276
+ Cancellation fences the result immediately, signals the handler, allows
277
+ 250 ms of best-effort disposal, then kills the child. Timeouts/protocol failures
278
+ kill it directly. Linux/macOS process groups also stop ordinary descendants;
279
+ Windows has direct-child termination only. A detached daemon, external job,
280
+ already-written file, or an unresponsive child after an ungraceful parent death
281
+ cannot be reclaimed by this lifecycle contract. No OS containment is claimed.
282
+
283
+ ## Scientific examples
284
+
285
+ [The worked examples](../../examples/extensions/README.md) are included in the
286
+ npm package. `lab-status` reads a bounded local JSON experiment record and uses
287
+ an explicitly synthetic fixture by default. It performs no SSH, provider calls,
288
+ remote cluster queries or submissions. `measurements` is a separate existing
289
+ command-tool package that computes count, mean, extrema and sample standard
290
+ deviation of supplied finite numbers. Units and provenance stay caller-supplied;
291
+ a singleton's sample standard deviation is unavailable (`null`).
@@ -96,7 +96,8 @@ The tables above cover the per-user roots. A repository Clio works in also grows
96
96
  | `.clio-coder/profile.yaml` | Operator input | Operator profile; closed enums and bounded path lists. | Yes. | Kept |
97
97
  | `.clio-coder/fleets/*.md`, `.clio-coder/fleets/commands.yaml` | Overlay | Fleet contracts and their command registry. Adds to the fleets shipped under `src/domains/agents/fleets/`. | Yes; shipped fleets remain. | Kept |
98
98
  | `.clio-coder/agents/*.md` | Overlay | Project agent recipes. Composes with shipped builtins and the user's `~/.config/clio-coder/agents`; a project recipe reusing a builtin id is **ignored**, not applied, with a note on stderr. | Yes; shipped agents remain. | Kept, and named |
99
- | `.clio-coder/skills/**` | Overlay | Project skills, trusted as repository-local. This is where `clio-coder skills install <name>` lands a catalog skill; the shipped catalog under the package's `skills/` is a marketplace to install from, not a discovery root, so nothing appears here until the operator installs it. | Yes; the shipped catalog remains installable. | Kept, and named |
99
+ | `.clio-coder/skills/**` | Overlay | Loose project skills placed here by the operator, trusted as repository-local. Library installations use the managed package store below. | Yes; loose skills must be restored by the operator. | Kept, and named |
100
+ | `.clio-coder/plugins/<name>/`, `.clio-coder/plugins/state.json` | Operator input | Complete installed library packages of all five kinds and their scoped state. `clio-coder library install skill:<name> --project` installs here. The bundled `library/` remains the catalog source. | Use `clio-coder library remove <kind>:<name> --project` to keep package state consistent. | Kept, not named |
100
101
  | `CLIO-CODER.md` (repository root) | Runtime state | The generated project handbook. Human-reviewable, but written by `context init`. | Yes; regenerate with `clio-coder context init`. | Kept unless `--all` |
101
102
  | `.clio-coder/codewiki.json` | Runtime state | Structural index, schema v5. | Yes; rebuilt by `clio-coder context index`. | **Removed** |
102
103
  | `.clio-coder/state.json` | Runtime state | Index fingerprint and freshness stamps. | Yes; forces a rebuild. | **Removed** |
@@ -110,12 +111,12 @@ The tables above cover the per-user roots. A repository Clio works in also grows
110
111
  user configuration directory, not in any repository.
111
112
 
112
113
  None of `.clio-coder/` is published by Clio's own package. The directories Clio ships
113
- (`src/domains/agents/builtins/`, `src/domains/agents/fleets/`, the whole `skills/` catalog
114
- with its `registry.yaml` and `skill-marketplace.json`, `src/domains/prompts/fragments/`,
114
+ (`src/domains/agents/builtins/`, `src/domains/agents/fleets/`, the whole `library/` catalog
115
+ with its registry, recipe packages and skill provenance records, `src/domains/prompts/fragments/`,
115
116
  `src/domains/providers/models/`) are read from the installed package root; the `.clio-coder/`
116
117
  entries above compose with them and never replace them on disk. Builtin agent recipes bind
117
118
  skills straight out of the package catalog; the operator's own session reaches the same
118
- catalog only as a marketplace, through `clio-coder skills install <name>` or `/skill <name>`.
119
+ catalog only as a marketplace, through `clio-coder library install skill:<name>` or `/skill <name>`.
119
120
 
120
121
  ---
121
122
 
@@ -252,13 +253,12 @@ sessions; the uninstall operation below deliberately removes those roots.
252
253
 
253
254
  #### Current migration contract
254
255
 
255
- The v0.4.2 source tree registers five migrations in execution order:
256
+ The source tree registers four migrations in execution order:
256
257
 
257
258
  1. `2026-09-01-settings-v2`
258
- 2. `2026-09-01-extension-install-digests`
259
- 3. `2026-09-01-clio-coder-naming`
260
- 4. `2026-09-01-retire-panes-knobs`
261
- 5. `2026-08-18-lmstudio-runtime-id`
259
+ 2. `2026-09-01-clio-coder-naming`
260
+ 3. `2026-09-01-retire-panes-knobs`
261
+ 4. `2026-08-18-lmstudio-runtime-id`
262
262
 
263
263
  Applied IDs are recorded in `<stateDir>/migrations.json`. An ID already in that
264
264
  manifest is skipped, and each successful migration is recorded immediately so a
@@ -0,0 +1,243 @@
1
+ # Coding agent interoperability
2
+
3
+ > **Visual blueprint:** See the [visual reference](../html/interop_blueprint.html) in the source checkout.
4
+
5
+ Interoperability runs both ways. Inbound, Clio can discover resources held by
6
+ Claude Code, Codex, Antigravity CLI, GitHub Copilot CLI, and OpenCode, then adopt
7
+ safe text resources into the library after approval. Outbound, the same canonical
8
+ `library/` sources this repository ships are installable by Claude Code and
9
+ loadable by Codex without a converted copy. Inspection and adoption use zero
10
+ model tokens. Gemini, Cursor, and the shared Agent Skills convention retain their
11
+ existing presence detection; this inventory does not extend their capabilities.
12
+
13
+ ## Outbound: Use this library from Claude Code
14
+
15
+ The repository is a standard Claude Code marketplace. `.claude-plugin/marketplace.json`
16
+ is generated by `pnpm run library:pin` from the pinned packages in
17
+ `library/registry.yaml`, so it cannot describe a package the repository does not
18
+ actually contain.
19
+
20
+ ```bash
21
+ claude plugin marketplace add iowarp/clio-coder
22
+ claude plugin install tdd@clio-coder
23
+ claude plugin install materio@clio-coder
24
+ ```
25
+
26
+ A local checkout or the installed npm package works the same way, because every
27
+ entry's source is a relative path inside the repository:
28
+
29
+ ```bash
30
+ claude plugin marketplace add ./path/to/clio-coder
31
+ claude plugin marketplace add "$(npm root -g)/@iowarp/clio-coder"
32
+ ```
33
+
34
+ The marketplace publishes 34 entries: the 33 curated skill packages and the
35
+ `materio` bundle. What each entry becomes on the Claude Code side:
36
+
37
+ | Source layout | What Claude Code loads |
38
+ | --- | --- |
39
+ | `library/skills/<category>/<name>/` with a root `SKILL.md` | One skill, named by the `SKILL.md` frontmatter, with its `references/` companions |
40
+ | `library/plugins/materio/` with a `skills/` directory | Materio's six portable skills and nothing else |
41
+
42
+ Nothing is converted and no recipe body is duplicated. The packages carry their
43
+ portable Agent Plugins `plugin.json`, which Claude Code does not read; the
44
+ marketplace entry supplies the name, description, version, category and license
45
+ it shows. `claude plugin validate . --strict` passes on the generated file, so no
46
+ entry needs `strict: false` and no package needs a second `.claude-plugin/plugin.json`.
47
+
48
+ Materio's Clio-native agents, prompts and fleets sit at declared resource paths
49
+ that no peer host scans. They travel with the installed bytes and are never
50
+ presented as Claude-native components. `claude plugin details materio` reports
51
+ `Skills (6)` and `Agents (0)`.
52
+
53
+ ### Not every library package is published
54
+
55
+ A library package is published only when a host would load a real skill surface
56
+ from it, and only when it carries nothing that host default-scans into a native
57
+ component. Claude Code scans a plugin root for `agents/`, `commands/`, `hooks/`,
58
+ `output-styles/` and `.mcp.json` without being asked, so a package that keeps
59
+ Clio agent recipes in a top-level `agents/` directory would have them shown as
60
+ native Claude agents. That is a compatibility claim nobody measured, so the
61
+ generator leaves the package out and `pnpm run library:pin` prints the reason.
62
+
63
+ Those packages remain valid first-class library packages, and agent-, prompt- and
64
+ fleet-only packages are normal contributions. They simply have no peer-host
65
+ projection. An author who wants one package to serve both audiences declares its
66
+ Clio resource roots at paths no host scans, for example `"agents": "native/agents"`,
67
+ and keeps a `skills/` directory or root `SKILL.md` for the portable surface.
68
+
69
+ ## Outbound: Use this library from Codex
70
+
71
+ Codex scans `.agents/skills` at the repository root, in the working directory and
72
+ in `$HOME`, recurses into subdirectories, and follows symlinks. The repository's
73
+ own `.agents/skills` links straight at the canonical trees:
74
+
75
+ ```text
76
+ .agents/skills/clio-coder -> ../../library/skills
77
+ .agents/skills/materio -> ../../library/plugins/materio/skills
78
+ ```
79
+
80
+ A Codex session started anywhere in a clone therefore sees all 33 curated skills
81
+ and Materio's 6 portable skills under their canonical names, with no install step
82
+ and no copied `SKILL.md`. To get the same catalog in every repository, link the
83
+ canonical directories into your user skills root:
84
+
85
+ ```bash
86
+ mkdir -p ~/.agents/skills
87
+ ln -s /path/to/clio-coder/library/skills ~/.agents/skills/clio-coder
88
+ ln -s /path/to/clio-coder/library/plugins/materio/skills ~/.agents/skills/materio
89
+ ```
90
+
91
+ The clone convenience requires Git to materialize symbolic links. On Windows,
92
+ enable Git symlink support (`core.symlinks=true`) with the required OS permission,
93
+ or install individual skills using the following route.
94
+
95
+ To install individual skills instead, use Codex's own installer, which accepts a
96
+ GitHub repository path:
97
+
98
+ ```text
99
+ $skill-installer install tdd from iowarp/clio-coder/library/skills/coding/tdd
100
+ ```
101
+
102
+ Disable one without deleting it through `[[skills.config]]` in `~/.codex/config.toml`.
103
+
104
+ There is deliberately no Codex plugin marketplace here. Portable Codex plugins
105
+ discover only a root `skills/` directory, the standalone packages carry a root
106
+ `SKILL.md`, and a `.codex-plugin` overlay cannot override that while the portable
107
+ root `plugin.json` is present. Publishing one would claim a compatibility that
108
+ does not exist.
109
+
110
+ ## Inspect installed hosts
111
+
112
+ ```bash
113
+ clio-coder interop inspect
114
+ clio-coder interop inspect --json
115
+ ```
116
+
117
+ Inspection reports binary presence, a bounded version probe (or unknown),
118
+ connection and ACP adapter state, and resource counts derived from the disk
119
+ inventory. User and current-project resources are distinguished. JSON omits
120
+ native source paths and declaration values, including MCP credentials.
121
+ A cache directory establishes available content; installation and activation
122
+ remain unknown unless a host's installation registry establishes them.
123
+ Malformed, unreadable, symbolic-link, oversized, or unsupported configurations
124
+ produce an unknown inventory diagnostic instead of an invented zero.
125
+
126
+ The scanner reads these configuration layouts, honoring the named host home
127
+ variable when present. An explicit fixture home ignores process host overrides.
128
+ It never traverses session history or starts a conversational agent.
129
+
130
+ | Host | User root | Project roots | Inventory and evidence commands |
131
+ | --- | --- | --- | --- |
132
+ | Claude Code | `~/.claude` (`CLAUDE_CONFIG_DIR`) | `.claude` | Skills, agents, commands, output styles, hooks, MCP (including `~/.claude.json` and project-root `.mcp.json`); installed plugin paths, versions and marketplace from `plugins/installed_plugins.json`. Evidence: `claude --version`, `claude plugin list --json`. |
133
+ | Codex | `~/.codex` (`CODEX_HOME`), shared `~/.agents` | `.codex`, `.agents` | Skills, TOML agents, legacy prompts, hooks, MCP, plugin cache and plugin configuration. Evidence: `codex --version`, `codex plugin list --json`. |
134
+ | Antigravity CLI | `~/.gemini/config` (`ANTIGRAVITY_HOME`) | `.agents` | Skills, agents, commands, plugins, import manifest, hooks, MCP. Evidence: `agy --version`, `agy plugin list`. Imported commands may already be converted into skills. |
135
+ | GitHub Copilot CLI | `~/.copilot` (`COPILOT_HOME`) | `.github`, `.copilot` | Skills, agents, commands, hooks, MCP, plugin directories and local directory marketplaces in `settings.json`. Remote marketplace source paths remain unknown when no local installation is found. Evidence: `copilot --help`, `copilot plugin --help`, `copilot plugin list`. |
136
+ | OpenCode | `~/.config/opencode` (`OPENCODE_CONFIG_DIR`, or `XDG_CONFIG_HOME/opencode`) | `.opencode` | Skills, singular/plural agent and command directories, MCP declarations and `opencode.json` at the project root, JavaScript/TypeScript plugins and tools. Evidence: `opencode --version`, `opencode agent list`. JSONC that cannot be parsed as JSON is reported unknown. |
137
+
138
+ The listing commands above were checked in disposable profiles; runtime inspection
139
+ uses the disk inventory and bounded version probes in disposable profiles, so
140
+ CLI alias or log side effects cannot change the operator's home or project. Listing status itself remains
141
+ unknown. In particular, Clio does not invoke OpenCode's agent listing against an
142
+ operator profile because host startup can import executable modules.
143
+
144
+ ## Inbound: Review and adopt foreign resources
145
+
146
+ ### Reviewing foreign plugin source, trust, and unsupported components
147
+
148
+ ```bash
149
+ clio-coder interop adopt claude-code --dry-run
150
+ clio-coder interop adopt codex --kind skill --project
151
+ clio-coder interop adopt claude-code --kind plugin --user --yes
152
+ clio-coder interop adopt copilot --kind prompt --user
153
+ ```
154
+
155
+ The host names are `claude-code`, `codex`, `antigravity`, `copilot`, and
156
+ `opencode`; `claude` and `agy` are accepted aliases. `--kind` selects `skill`,
157
+ `agent`, `prompt`, or `plugin`. The destination defaults to user scope;
158
+ `--project` chooses the current project's library. Destination scope does not
159
+ filter source scope: every matching discovered user and project resource is
160
+ reviewed in the plan.
161
+
162
+ The plan lists each source, destination, digest, and reason for installing or
163
+ skipping it. Its SHA-256 identifies the reviewed projection; the library engine
164
+ also records its standard full-tree integrity pin when publishing the package. `--dry-run` prints the plan and writes nothing. Otherwise Clio asks
165
+ for approval in a terminal. Without a terminal, the plan remains unexecuted
166
+ unless `--yes` was supplied. Declining installs nothing. Installation rechecks
167
+ the source against the reviewed content; a changed source requires a new plan.
168
+ Each package publishes atomically through the library engine; a multi-package
169
+ plan may report successful packages alongside failures.
170
+
171
+ | Resource | Adoption behavior |
172
+ | --- | --- |
173
+ | Skill | Text-only skill directory, with required name and description, packaged through the library engine. Executable, non-text, or symbolic-link companions cause a skip. Foreign audit stamps are not retained. |
174
+ | Prompt or command | Markdown body becomes a Clio prompt. Host execution settings and frontmatter are omitted; the description is retained. |
175
+ | Agent or subagent | Markdown persona or TOML `developer_instructions` becomes a Clio recipe limited to read, grep, find, and ls. Host tools, model, permissions, hooks, and skill bindings are omitted and the plan says so. |
176
+ | Plugin | Accepts a valid portable root `plugin.json`, or a supported `.claude-plugin/plugin.json` / `.codex-plugin/plugin.json` package. Clio adopts a data-only projection of its skills, prompts, agents, and text references. Host extension metadata, hooks, MCP, scripts, tools, fleets, and non-text files are omitted. Dependencies on removed components cause a skip. Package `requires` declarations are preserved; required packages must already be installed, active, and valid in the destination scope. Missing requirements are named in the plan, checked again after approval, and never imported automatically. |
177
+ | Hook, MCP server, executable module, output style | Listed as not adoptable, with a reason. Nothing is registered or executed. |
178
+
179
+ Claude-only and Codex-only plugin manifests use the same reviewed conversion as
180
+ `library import`. Supported Claude commands become prompts, and Claude agent
181
+ bindings are retained when their required skills convert in the same package.
182
+ Unsupported companions and host features are listed in the plan. A portable
183
+ package is refused when retained recipes require omitted files; for example,
184
+ the tested WTF-P bundle requires action JSON files outside the supported text
185
+ projection. Use ordinary `library install` for a reviewed portable package whose
186
+ complete recipe assets are required, or import supported individual resources.
187
+
188
+ Installed packages retain `{kind: "interop", host, source}` provenance and
189
+ `trust: "foreign"`, with the original absolute source path. Skill and prompt
190
+ loading keeps the existing `integrations.projectResources.trustProjectImports`
191
+ opt-in, including when a project resource is adopted to user scope. Approval to
192
+ copy a resource does not grant that trust. Same plugin id/version or matching
193
+ installed package content is skipped; identifier collisions are not replaced.
194
+ Library integrity checks, drift detection, disable, and removal apply normally.
195
+ To refresh a foreign source, remove the old library package and review a new adoption plan; no host files are ever
196
+ moved, removed, or modified.
197
+
198
+ ## Inbound: Install or import an explicit foreign package (Claude Code, Codex)
199
+
200
+ Adoption above starts from what an installed host already has. To install or import an explicit Claude Code plugin or Codex package directly—whether from a local directory or a GitHub repository tree—use `clio-coder library import`:
201
+
202
+ ```bash
203
+ clio-coder library import ./vendor/some-plugin --dry-run
204
+ clio-coder library import https://github.com/owner/repo/tree/main/plugins/thing --project
205
+ clio-coder library import ./vendor/some-plugin --format claude --yes
206
+ ```
207
+
208
+ In an active session, `/library import <path-or-url>` stages and reviews that exact foreign package in the Library. When installing a Claude Code plugin or Codex package, Clio parses the vendor manifest (e.g. `.claude-plugin/plugin.json`) and presents an interactive review before any managed installation or workspace mutation occurs (staging writes temporary inspection files prior to acceptance). The review details four critical facets:
209
+ 1. **Source and Provenance**: Displays the verified package source path or repository tree URL, format (`claude-code` or `codex`), and transport.
210
+ 2. **Projected Declarative Resources**: Converts text skills (with markdown instructions), commands (converted into prompts), and basic agent personas into native library recipes.
211
+ 3. **Foreign Trust Tier**: Marks the package with foreign trust (`trust: "foreign"`). Under Clio's safety model, foreign package skills and prompts—whether installed at project scope or user scope—remain untrusted and withheld from model turns until `integrations.projectResources.trustProjectImports` (`skills.trustProjectCompatRoots`) is enabled. Bound agent recipes require all referenced skills to be trusted.
212
+ 4. **Unsupported and Omitted Components**: All executable foreign mechanisms—including MCP servers (`.mcp.json`), lifecycle hooks (`hooks/`), shell scripts (`scripts/`), and daemon runners—are explicitly omitted and listed in the review plan. They are never registered as harness tools or executed.
213
+
214
+ Cancelling the review cleans up temporary staging files without modifying managed package state or workspace files. The Library's `o` key is the separate route into the local-agent discovery surface below, which starts from what an installed host already has rather than from a source you name.
215
+
216
+ Detection is deterministic. A root `plugin.json` always takes precedence; an
217
+ invalid root is refused before any vendor fallback. With no root manifest, `.claude-plugin/plugin.json`
218
+ selects the Claude Code format and `.codex-plugin/plugin.json` selects Codex. When
219
+ both hidden manifests are present the import is ambiguous and `--format` is
220
+ required. A directory with none of the three is not importable.
221
+
222
+ Publication, content validation and the project-import trust gate are reported
223
+ separately. An enabled trust gate is a prerequisite for runtime admission, not
224
+ a claim that every recipe is available.
225
+
226
+ The same review contract as adoption applies: `--dry-run` prints the projected
227
+ plan and writes nothing, the plan names every converted resource, every
228
+ unsupported host feature and every omitted file, and the source directory is
229
+ never modified. Imported packages install with `trust: "foreign"` and keep
230
+ `{kind: "import", source, transport, format}` provenance, so they stay visibly
231
+ foreign in the library after installation. A skill whose instructions reference a
232
+ companion that was omitted is reported unsupported rather than claimed working.
233
+
234
+ ## Terminal flow
235
+
236
+ Open `/interop` to inspect inventory or connect an external delegation peer.
237
+ Inventory detail folds behind Enter and wraps in the scrolling detail pane.
238
+ Select a host, press `p` for a project destination or `u` for user, and press `k`
239
+ to cycle the kind filter. Press `i` to review the full adoption plan, then `y`
240
+ to approve it or `b` to return without installing. Escape closes the overlay.
241
+ Connection remains a separate action: `a` connects a proposed peer and `d`
242
+ declines it. `/agents` browses the library's own agent recipes and is a separate
243
+ surface from this one.
@@ -20,7 +20,7 @@ Inside a herdr session, Clio can open panes beside itself and close them
20
20
  when it quits:
21
21
 
22
22
  - **The files pane.** A file view docked below the session. `/files` or
23
- `Alt+E` opens it and moves the keyboard into it; the same key or command
23
+ `Alt+E` opens it and moves the keyboard into it; after Ctrl+Y returns focus to Clio, the same key or command
24
24
  closes it. Picking a file sends it back to the composer as an `@file`
25
25
  mention and returns the keyboard to the prompt. The engine behind it is a
26
26
  vendored file manager, installed on request with
@@ -140,7 +140,7 @@ version, or the theme changed since, and the next open regenerates it.
140
140
  | Surface | What it does |
141
141
  | --- | --- |
142
142
  | `/files` | Toggle the files pane: open it below the session and move the keyboard into it, or close it and return the keyboard to the composer. |
143
- | `Alt+E` | The same toggle as a key (`clio-coder.files.toggle`; `Ctrl+G` then `e` on terminals without Alt). |
143
+ | `Alt+E` | Toggle from Clio focus (`clio-coder.files.toggle`; `Ctrl+G` then `e` on terminals without Alt). |
144
144
  | `/files open` | Open the pane, or focus it when it is already open. |
145
145
  | `/files close` | Close the pane. |
146
146
  | `/files pick` | Borrow the pane for one selection, then close it. Outside herdr, `/files` always behaves this way. |
@@ -174,7 +174,7 @@ the draft`.
174
174
 
175
175
  ### What closes what
176
176
 
177
- - `/files`, `Alt+E`, and `/files close` close the files pane. A pane the
177
+ - From Clio focus, `/files`, `Alt+E`, and `/files close` close the files pane. Yazi owns its own keys until Ctrl+Y returns the selection and focus. A pane the
178
178
  operator closed from herdr is treated as closed the moment herdr reports
179
179
  it, so the next toggle opens rather than trying to close a pane that is
180
180
  not there.