@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,10 +1,4 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
- import {
3
- parseFrontmatter
4
- } from "./chunk-CXQ37WJH.js";
5
- import {
6
- enabledExtensionResourceRoots
7
- } from "./chunk-22PQ4TX4.js";
8
2
  import {
9
3
  ArrayOptions,
10
4
  Clone,
@@ -65,36 +59,35 @@ import {
65
59
  guard_default,
66
60
  guard_exports,
67
61
  hash_exports,
68
- settings_exports,
69
- typebox_exports
62
+ settings_exports
70
63
  } from "./chunk-GH5ZR6JP.js";
71
- import {
72
- PATH_BOUNDARY_MAX_ENTRIES,
73
- normalizePathBoundary,
74
- normalizePathBoundaryEntry,
75
- pathBoundaryCovers
76
- } from "./chunk-R2P2U3ZS.js";
77
- import {
78
- resolvePackageRoot
79
- } from "./chunk-E3LEPLQ2.js";
80
- import {
81
- require_dist
82
- } from "./chunk-B5GGDIHT.js";
83
- import {
84
- clioConfigDir
85
- } from "./chunk-CTTI7G3T.js";
86
64
  import {
87
65
  __export,
88
- __toESM,
89
66
  init_esm_shims
90
67
  } from "./chunk-ECBHH7LU.js";
91
68
 
92
- // src/domains/agents/fleet-commands.ts
93
- init_esm_shims();
94
- import { existsSync, readFileSync } from "node:fs";
95
- import { isAbsolute, join, normalize } from "node:path";
96
-
97
- // node_modules/.pnpm/typebox@1.3.0/node_modules/typebox/build/value/index.mjs
69
+ // node_modules/.pnpm/typebox@1.3.0/node_modules/typebox/build/value/value.mjs
70
+ var value_exports = {};
71
+ __export(value_exports, {
72
+ Assert: () => Assert,
73
+ Check: () => Check2,
74
+ Clean: () => Clean,
75
+ Clone: () => Clone2,
76
+ Convert: () => Convert,
77
+ Create: () => Create,
78
+ Decode: () => Decode9,
79
+ Default: () => Default,
80
+ Diff: () => Diff,
81
+ Encode: () => Encode8,
82
+ Equal: () => Equal,
83
+ Errors: () => Errors2,
84
+ HasCodec: () => HasCodec,
85
+ Hash: () => Hash,
86
+ Parse: () => Parse,
87
+ Patch: () => Patch,
88
+ Pointer: () => pointer_exports,
89
+ Repair: () => Repair
90
+ });
98
91
  init_esm_shims();
99
92
 
100
93
  // node_modules/.pnpm/typebox@1.3.0/node_modules/typebox/build/value/assert/index.mjs
@@ -4266,811 +4259,13 @@ function Repair(...args) {
4266
4259
  return repaired;
4267
4260
  }
4268
4261
 
4269
- // node_modules/.pnpm/typebox@1.3.0/node_modules/typebox/build/value/shared/index.mjs
4270
- init_esm_shims();
4271
-
4272
- // node_modules/.pnpm/typebox@1.3.0/node_modules/typebox/build/value/value.mjs
4273
- var value_exports = {};
4274
- __export(value_exports, {
4275
- Assert: () => Assert,
4276
- Check: () => Check2,
4277
- Clean: () => Clean,
4278
- Clone: () => Clone2,
4279
- Convert: () => Convert,
4280
- Create: () => Create,
4281
- Decode: () => Decode9,
4282
- Default: () => Default,
4283
- Diff: () => Diff,
4284
- Encode: () => Encode8,
4285
- Equal: () => Equal,
4286
- Errors: () => Errors2,
4287
- HasCodec: () => HasCodec,
4288
- Hash: () => Hash,
4289
- Parse: () => Parse,
4290
- Patch: () => Patch,
4291
- Pointer: () => pointer_exports,
4292
- Repair: () => Repair
4293
- });
4294
- init_esm_shims();
4295
-
4296
- // src/domains/agents/fleet-commands.ts
4297
- var import_yaml = __toESM(require_dist(), 1);
4298
- var FLEET_COMMAND_MAX_TIMEOUT_MS = 36e5;
4299
- var FLEET_COMMAND_MIN_TIMEOUT_MS = 1e3;
4300
- var FLEET_COMMAND_DEFAULT_TIMEOUT_MS = 6e5;
4301
- var FLEET_COMMAND_BASE_ENV = ["PATH", "HOME", "LANG", "LC_ALL", "TZ", "TMPDIR"];
4302
- var CommandSchema = typebox_exports.Object(
4303
- {
4304
- argv: typebox_exports.Array(typebox_exports.String({ minLength: 1 }), { minItems: 1 }),
4305
- cwd: typebox_exports.Optional(typebox_exports.String({ minLength: 1 })),
4306
- timeoutMs: typebox_exports.Optional(
4307
- typebox_exports.Integer({ minimum: FLEET_COMMAND_MIN_TIMEOUT_MS, maximum: FLEET_COMMAND_MAX_TIMEOUT_MS })
4308
- ),
4309
- env: typebox_exports.Optional(typebox_exports.Array(typebox_exports.String({ minLength: 1 }))),
4310
- description: typebox_exports.Optional(typebox_exports.String())
4311
- },
4312
- { additionalProperties: false }
4313
- );
4314
- var RegistrySchema = typebox_exports.Object(
4315
- {
4316
- version: typebox_exports.Literal(1),
4317
- commands: typebox_exports.Record(typebox_exports.String({ minLength: 1 }), CommandSchema, { minProperties: 1 })
4318
- },
4319
- { additionalProperties: false }
4320
- );
4321
- var COMMAND_ID_RE = /^[a-z0-9][a-z0-9._-]{0,63}$/u;
4322
- var ENV_NAME_RE = /^[A-Z_][A-Z0-9_]*$/u;
4323
- function fleetCommandsPath(cwd) {
4324
- return join(cwd, ".clio-coder", "fleets", "commands.yaml");
4325
- }
4326
- function firstSchemaError(value) {
4327
- if (value_exports.Check(RegistrySchema, value)) return null;
4328
- const first = [...value_exports.Errors(RegistrySchema, value)][0];
4329
- return first ? `${first.instancePath || "(root)"}: ${first.message}` : "command registry failed validation";
4330
- }
4331
- function checkCwd(id, value, sourcePath) {
4332
- if (isAbsolute(value)) {
4333
- throw new Error(`fleet commands ${sourcePath}: command '${id}' cwd must be workspace-relative`);
4334
- }
4335
- const normalized = normalize(value);
4336
- if (normalized === ".." || normalized.startsWith(`..${"/"}`) || normalized.split(/[\\/]/u).includes("..")) {
4337
- throw new Error(`fleet commands ${sourcePath}: command '${id}' cwd escapes the workspace`);
4338
- }
4339
- return normalized === "." ? "" : normalized;
4340
- }
4341
- function parseFleetCommands(raw, sourcePath) {
4342
- let parsed;
4343
- try {
4344
- parsed = import_yaml.default.parse(raw);
4345
- } catch (err) {
4346
- const reason = err instanceof Error ? err.message : String(err);
4347
- throw new Error(`fleet commands ${sourcePath}: invalid YAML (${reason})`);
4348
- }
4349
- const schemaError = firstSchemaError(parsed);
4350
- if (schemaError !== null) throw new Error(`fleet commands ${sourcePath}: ${schemaError}`);
4351
- const registry = parsed;
4352
- const commands = /* @__PURE__ */ new Map();
4353
- for (const [id, entry] of Object.entries(registry.commands)) {
4354
- if (!COMMAND_ID_RE.test(id)) {
4355
- throw new Error(`fleet commands ${sourcePath}: command id '${id}' must match ${COMMAND_ID_RE.source}`);
4356
- }
4357
- const executable = entry.argv[0] ?? "";
4358
- if (executable.trim().length === 0) {
4359
- throw new Error(`fleet commands ${sourcePath}: command '${id}' has an empty executable`);
4360
- }
4361
- for (const name of entry.env ?? []) {
4362
- if (!ENV_NAME_RE.test(name)) {
4363
- throw new Error(`fleet commands ${sourcePath}: command '${id}' env name '${name}' is not a variable name`);
4364
- }
4365
- }
4366
- commands.set(id, {
4367
- id,
4368
- argv: [...entry.argv],
4369
- cwd: entry.cwd === void 0 ? "" : checkCwd(id, entry.cwd, sourcePath),
4370
- timeoutMs: entry.timeoutMs ?? FLEET_COMMAND_DEFAULT_TIMEOUT_MS,
4371
- env: [...entry.env ?? []],
4372
- description: entry.description ?? ""
4373
- });
4374
- }
4375
- return { version: 1, commands, path: sourcePath };
4376
- }
4377
- function loadFleetCommands(cwd) {
4378
- const path = fleetCommandsPath(cwd);
4379
- if (!existsSync(path)) return null;
4380
- return parseFleetCommands(readFileSync(path, "utf8"), path);
4381
- }
4382
-
4383
- // src/domains/agents/fleet-contract.ts
4262
+ // node_modules/.pnpm/typebox@1.3.0/node_modules/typebox/build/value/index.mjs
4384
4263
  init_esm_shims();
4385
- import { existsSync as existsSync2, readdirSync, readFileSync as readFileSync2 } from "node:fs";
4386
- import { basename, join as join2 } from "node:path";
4387
4264
 
4388
- // src/domains/agents/write-boundary.ts
4265
+ // node_modules/.pnpm/typebox@1.3.0/node_modules/typebox/build/value/shared/index.mjs
4389
4266
  init_esm_shims();
4390
- var WRITE_BOUNDARY_MAX_ENTRIES = PATH_BOUNDARY_MAX_ENTRIES;
4391
- function normalizeWriteBoundaryEntry(entry) {
4392
- return normalizePathBoundaryEntry(entry);
4393
- }
4394
- function normalizeWriteBoundary(entries) {
4395
- return normalizePathBoundary(entries);
4396
- }
4397
- function writeBoundaryCovers(boundary, path) {
4398
- return pathBoundaryCovers(boundary, path);
4399
- }
4400
- function describeWriteBoundary(boundary) {
4401
- return boundary.length === 0 ? "(nothing: readonly)" : boundary.join(", ");
4402
- }
4403
-
4404
- // src/domains/agents/fleet-contract.ts
4405
- var FLEET_WRITE_BOUNDARY_VERSION = 4;
4406
- var FLEET_DYNAMIC_STEP_VERSION = 5;
4407
- var FLEET_LOOP_MAX_ATTEMPTS = 5;
4408
- var FleetScopeSchema = typebox_exports.Union([typebox_exports.Literal("readonly"), typebox_exports.Literal("workspace")]);
4409
- function writesSchema(version) {
4410
- return version >= FLEET_WRITE_BOUNDARY_VERSION ? { writes: typebox_exports.Optional(typebox_exports.Array(typebox_exports.String({ minLength: 1 }), { maxItems: WRITE_BOUNDARY_MAX_ENTRIES })) } : {};
4411
- }
4412
- function routeSchema(version) {
4413
- return version >= FLEET_DYNAMIC_STEP_VERSION ? { target: typebox_exports.Optional(typebox_exports.String({ minLength: 1 })), profile: typebox_exports.Optional(typebox_exports.String({ minLength: 1 })) } : {};
4414
- }
4415
- function agentStepSchema(version) {
4416
- return typebox_exports.Object(
4417
- {
4418
- kind: typebox_exports.Optional(typebox_exports.Literal("agent")),
4419
- id: typebox_exports.String({ minLength: 1 }),
4420
- agent: typebox_exports.String({ minLength: 1 }),
4421
- scope: FleetScopeSchema,
4422
- dependencies: typebox_exports.Array(typebox_exports.String({ minLength: 1 })),
4423
- ...writesSchema(version),
4424
- ...routeSchema(version)
4425
- },
4426
- { additionalProperties: false }
4427
- );
4428
- }
4429
- function gateStepSchema() {
4430
- return typebox_exports.Object(
4431
- {
4432
- kind: typebox_exports.Literal("gate"),
4433
- id: typebox_exports.String({ minLength: 1 }),
4434
- agent: typebox_exports.String({ minLength: 1 }),
4435
- path: typebox_exports.String({ minLength: 1 }),
4436
- run: typebox_exports.String({ minLength: 1 }),
4437
- scope: typebox_exports.Optional(typebox_exports.Literal("workspace")),
4438
- dependencies: typebox_exports.Array(typebox_exports.String({ minLength: 1 })),
4439
- ...routeSchema(5)
4440
- },
4441
- { additionalProperties: false }
4442
- );
4443
- }
4444
- function planStepSchema() {
4445
- return typebox_exports.Object(
4446
- {
4447
- kind: typebox_exports.Literal("plan"),
4448
- id: typebox_exports.String({ minLength: 1 }),
4449
- agent: typebox_exports.Optional(typebox_exports.String({ minLength: 1 })),
4450
- roster: typebox_exports.Array(typebox_exports.String({ minLength: 1 }), { minItems: 1, maxItems: 16 }),
4451
- maxTasks: typebox_exports.Integer({ minimum: 1, maximum: 16 }),
4452
- proposals: typebox_exports.Optional(typebox_exports.Boolean()),
4453
- scope: FleetScopeSchema,
4454
- dependencies: typebox_exports.Array(typebox_exports.String({ minLength: 1 })),
4455
- ...writesSchema(5),
4456
- ...routeSchema(5)
4457
- },
4458
- { additionalProperties: false }
4459
- );
4460
- }
4461
- function codeStepSchema(version) {
4462
- return typebox_exports.Object(
4463
- {
4464
- kind: typebox_exports.Literal("code"),
4465
- id: typebox_exports.String({ minLength: 1 }),
4466
- command: typebox_exports.String({ minLength: 1 }),
4467
- scope: FleetScopeSchema,
4468
- dependencies: typebox_exports.Array(typebox_exports.String({ minLength: 1 })),
4469
- ...version >= 3 ? { commitFrom: typebox_exports.Optional(typebox_exports.Array(typebox_exports.String({ minLength: 1 }), { minItems: 1 })) } : {},
4470
- ...writesSchema(version)
4471
- },
4472
- { additionalProperties: false }
4473
- );
4474
- }
4475
- function loopStepSchema(version) {
4476
- return typebox_exports.Object(
4477
- {
4478
- kind: typebox_exports.Literal("loop"),
4479
- id: typebox_exports.String({ minLength: 1 }),
4480
- // Required and finite: this is the whole point of the construct.
4481
- maxAttempts: typebox_exports.Integer({ minimum: 1, maximum: FLEET_LOOP_MAX_ATTEMPTS }),
4482
- dependencies: typebox_exports.Array(typebox_exports.String({ minLength: 1 })),
4483
- check: typebox_exports.Union([
4484
- typebox_exports.Object(
4485
- {
4486
- kind: typebox_exports.Literal("code"),
4487
- command: typebox_exports.String({ minLength: 1 }),
4488
- scope: FleetScopeSchema,
4489
- ...writesSchema(version)
4490
- },
4491
- { additionalProperties: false }
4492
- ),
4493
- ...version >= FLEET_DYNAMIC_STEP_VERSION ? [
4494
- typebox_exports.Object(
4495
- { kind: typebox_exports.Literal("gate"), gate: typebox_exports.String({ minLength: 1 }) },
4496
- { additionalProperties: false }
4497
- )
4498
- ] : [],
4499
- typebox_exports.Object(
4500
- {
4501
- kind: typebox_exports.Literal("agent"),
4502
- agent: typebox_exports.String({ minLength: 1 }),
4503
- scope: FleetScopeSchema,
4504
- ...writesSchema(version),
4505
- ...routeSchema(version)
4506
- },
4507
- { additionalProperties: false }
4508
- )
4509
- ]),
4510
- repair: typebox_exports.Object(
4511
- {
4512
- kind: typebox_exports.Optional(typebox_exports.Literal("agent")),
4513
- agent: typebox_exports.String({ minLength: 1 }),
4514
- scope: FleetScopeSchema,
4515
- ...writesSchema(version),
4516
- ...routeSchema(version)
4517
- },
4518
- { additionalProperties: false }
4519
- )
4520
- },
4521
- { additionalProperties: false }
4522
- );
4523
- }
4524
- function stepSchema(version) {
4525
- if (version === 1) return agentStepSchema(1);
4526
- if (version === 2) return typebox_exports.Union([agentStepSchema(2), codeStepSchema(2)]);
4527
- if (version === 5) {
4528
- return typebox_exports.Union([
4529
- agentStepSchema(version),
4530
- codeStepSchema(version),
4531
- loopStepSchema(version),
4532
- gateStepSchema(),
4533
- planStepSchema()
4534
- ]);
4535
- }
4536
- return typebox_exports.Union([agentStepSchema(version), codeStepSchema(version), loopStepSchema(version)]);
4537
- }
4538
- function frontmatterSchema(version) {
4539
- return typebox_exports.Object(
4540
- {
4541
- version: typebox_exports.Literal(version),
4542
- name: typebox_exports.String({ minLength: 1 }),
4543
- description: typebox_exports.Optional(typebox_exports.String()),
4544
- steps: typebox_exports.Array(stepSchema(version), { minItems: 1 }),
4545
- maxWorkers: typebox_exports.Integer({ minimum: 1 }),
4546
- budgetUsd: typebox_exports.Optional(typebox_exports.Number()),
4547
- onFailure: typebox_exports.Union([typebox_exports.Literal("stop"), typebox_exports.Literal("continue")]),
4548
- ...version >= FLEET_DYNAMIC_STEP_VERSION ? { writers: typebox_exports.Optional(typebox_exports.Literal(1)) } : {}
4549
- },
4550
- { additionalProperties: false }
4551
- );
4552
- }
4553
- var SCHEMAS = {
4554
- 1: frontmatterSchema(1),
4555
- 2: frontmatterSchema(2),
4556
- 3: frontmatterSchema(3),
4557
- 4: frontmatterSchema(4),
4558
- 5: frontmatterSchema(5)
4559
- };
4560
- function contractVersion(frontmatter) {
4561
- const value = frontmatter.version;
4562
- return value === 1 || value === 2 || value === 3 || value === 4 || value === 5 ? value : null;
4563
- }
4564
- function firstSchemaError2(frontmatter, version) {
4565
- const schema = SCHEMAS[version];
4566
- if (value_exports.Check(schema, frontmatter)) return null;
4567
- const first = [...value_exports.Errors(schema, frontmatter)][0];
4568
- return first ? `${first.instancePath || "(root)"}: ${first.message}` : "front matter failed validation";
4569
- }
4570
- function fleetsDir(cwd) {
4571
- return join2(cwd, ".clio-coder", "fleets");
4572
- }
4573
- function normalizedWrites(writes) {
4574
- return writes === void 0 ? {} : { writes: normalizeWriteBoundary(writes) };
4575
- }
4576
- function normalizeStep(step) {
4577
- const route = (value) => ({
4578
- ...value.target !== void 0 ? { target: value.target } : {},
4579
- ...value.profile !== void 0 ? { profile: value.profile } : {}
4580
- });
4581
- if (step.kind === "gate") {
4582
- return {
4583
- kind: "gate",
4584
- id: step.id,
4585
- agent: step.agent ?? "",
4586
- path: step.path ?? "",
4587
- run: step.run ?? "",
4588
- scope: "workspace",
4589
- dependencies: [...step.dependencies],
4590
- ...route(step)
4591
- };
4592
- }
4593
- if (step.kind === "plan") {
4594
- return {
4595
- kind: "plan",
4596
- id: step.id,
4597
- agent: step.agent ?? "architect",
4598
- roster: [...step.roster ?? []],
4599
- maxTasks: step.maxTasks ?? 0,
4600
- proposals: step.proposals ?? false,
4601
- scope: step.scope,
4602
- dependencies: [...step.dependencies],
4603
- ...normalizedWrites(step.writes),
4604
- ...route(step)
4605
- };
4606
- }
4607
- if (step.kind === "loop") {
4608
- const check = step.check;
4609
- const repair = step.repair;
4610
- return {
4611
- kind: "loop",
4612
- id: step.id,
4613
- maxAttempts: step.maxAttempts ?? 0,
4614
- dependencies: [...step.dependencies],
4615
- check: check.kind === "code" ? { kind: "code", command: check.command ?? "", scope: check.scope, ...normalizedWrites(check.writes) } : check.kind === "gate" ? { kind: "gate", gate: check.gate ?? "" } : {
4616
- kind: "agent",
4617
- agent: check.agent ?? "",
4618
- scope: check.scope,
4619
- ...normalizedWrites(check.writes),
4620
- ...route(check)
4621
- },
4622
- repair: {
4623
- kind: "agent",
4624
- agent: repair.agent,
4625
- scope: repair.scope,
4626
- ...normalizedWrites(repair.writes),
4627
- ...route(repair)
4628
- }
4629
- };
4630
- }
4631
- if (step.kind === "code") {
4632
- return {
4633
- kind: "code",
4634
- id: step.id,
4635
- command: step.command ?? "",
4636
- scope: step.scope,
4637
- dependencies: [...step.dependencies],
4638
- ...step.commitFrom !== void 0 ? { commitFrom: [...step.commitFrom] } : {},
4639
- ...normalizedWrites(step.writes)
4640
- };
4641
- }
4642
- return {
4643
- kind: "agent",
4644
- id: step.id,
4645
- agent: step.agent ?? "",
4646
- scope: step.scope,
4647
- dependencies: [...step.dependencies],
4648
- ...normalizedWrites(step.writes),
4649
- ...route(step)
4650
- };
4651
- }
4652
- function fleetLoopCheckStepId(loopId, attempt) {
4653
- return `${loopId}.check.${attempt}`;
4654
- }
4655
- function fleetLoopRepairStepId(loopId, attempt) {
4656
- return `${loopId}.repair.${attempt}`;
4657
- }
4658
- function occupiedIds(contract) {
4659
- const owners = /* @__PURE__ */ new Map();
4660
- for (const step of contract.steps) {
4661
- owners.set(step.id, step.id);
4662
- if (step.kind !== "loop") continue;
4663
- for (let attempt = 1; attempt <= step.maxAttempts; attempt++) {
4664
- owners.set(fleetLoopCheckStepId(step.id, attempt), step.id);
4665
- if (attempt < step.maxAttempts) owners.set(fleetLoopRepairStepId(step.id, attempt), step.id);
4666
- }
4667
- }
4668
- return owners;
4669
- }
4670
- function validateFleetGraph(contract) {
4671
- const declared = /* @__PURE__ */ new Set();
4672
- for (const step of contract.steps) {
4673
- if (declared.has(step.id)) throw new Error(`fleet contract ${contract.path}: duplicate step id '${step.id}'`);
4674
- declared.add(step.id);
4675
- }
4676
- const owners = /* @__PURE__ */ new Map();
4677
- for (const step of contract.steps) {
4678
- if (step.kind !== "loop") continue;
4679
- for (const [generated, owner] of occupiedIds({ steps: [step] })) {
4680
- if (generated === step.id) continue;
4681
- if (declared.has(generated)) {
4682
- throw new Error(
4683
- `fleet contract ${contract.path}: step id '${generated}' collides with an id loop '${owner}' generates`
4684
- );
4685
- }
4686
- owners.set(generated, owner);
4687
- }
4688
- }
4689
- for (const step of contract.steps) {
4690
- if (step.kind === "loop" && step.check.kind === "gate") {
4691
- const gateId = step.check.gate;
4692
- const gate = contract.steps.find((candidate) => candidate.id === gateId);
4693
- if (gate?.kind !== "gate") {
4694
- throw new Error(`fleet contract ${contract.path}: loop '${step.id}' names unknown gate '${gateId}'`);
4695
- }
4696
- }
4697
- for (const dependency of step.dependencies) {
4698
- if (dependency === step.id) throw new Error(`fleet contract ${contract.path}: step '${step.id}' depends on itself`);
4699
- if (!declared.has(dependency)) {
4700
- throw new Error(`fleet contract ${contract.path}: step '${step.id}' has unknown dependency '${dependency}'`);
4701
- }
4702
- }
4703
- }
4704
- const remaining = new Set(declared);
4705
- const settled = /* @__PURE__ */ new Set();
4706
- while (remaining.size > 0) {
4707
- const ready = contract.steps.filter(
4708
- (step) => remaining.has(step.id) && step.dependencies.every((dependency) => settled.has(dependency))
4709
- );
4710
- if (ready.length === 0) {
4711
- throw new Error(`fleet contract ${contract.path}: dependency cycle among steps ${[...remaining].sort().join(", ")}`);
4712
- }
4713
- for (const step of ready) {
4714
- remaining.delete(step.id);
4715
- settled.add(step.id);
4716
- }
4717
- }
4718
- const ancestors = fleetStepAncestors(contract.steps);
4719
- for (const step of contract.steps) {
4720
- if (step.kind !== "code" || step.commitFrom === void 0) continue;
4721
- for (const source of step.commitFrom) {
4722
- const target = contract.steps.find((candidate) => candidate.id === source);
4723
- if (target === void 0) {
4724
- throw new Error(`fleet contract ${contract.path}: commit step '${step.id}' names unknown source '${source}'`);
4725
- }
4726
- if (target.kind === "code") {
4727
- throw new Error(
4728
- `fleet contract ${contract.path}: commit step '${step.id}' source '${source}' is a code step and authors no commit message`
4729
- );
4730
- }
4731
- if (!(ancestors.get(step.id)?.has(source) ?? false)) {
4732
- throw new Error(
4733
- `fleet contract ${contract.path}: commit step '${step.id}' must depend on its message source '${source}'`
4734
- );
4735
- }
4736
- }
4737
- }
4738
- }
4739
- function fleetStepWriteBoundary(version, scope, writes) {
4740
- if (version < FLEET_WRITE_BOUNDARY_VERSION) return void 0;
4741
- return scope === "readonly" ? [] : [...writes ?? []];
4742
- }
4743
- function fleetStepBoundaries(contract) {
4744
- const boundaries = [];
4745
- const add = (id, scope, writes) => {
4746
- boundaries.push({ id, scope, writes: fleetStepWriteBoundary(contract.version, scope, writes) });
4747
- };
4748
- for (const step of contract.steps) {
4749
- if (step.kind === "loop") {
4750
- if (step.check.kind === "gate") {
4751
- const gateId = step.check.gate;
4752
- const gate = contract.steps.find((candidate) => candidate.id === gateId);
4753
- if (gate?.kind === "gate") add(`${step.id}.check`, "workspace", [gate.path]);
4754
- } else add(`${step.id}.check`, step.check.scope, step.check.writes);
4755
- add(`${step.id}.repair`, step.repair.scope, step.repair.writes);
4756
- continue;
4757
- }
4758
- if (step.kind === "gate") {
4759
- add(step.id, "workspace", [step.path]);
4760
- continue;
4761
- }
4762
- add(step.id, step.scope, step.writes);
4763
- }
4764
- return boundaries;
4765
- }
4766
- function validateWriteBoundaries(contract) {
4767
- if (contract.version < FLEET_WRITE_BOUNDARY_VERSION) return;
4768
- for (const position of fleetStepBoundaries(contract)) {
4769
- if (position.scope === "workspace" && (position.writes?.length ?? 0) === 0) {
4770
- throw new Error(
4771
- `fleet contract ${contract.path}: step '${position.id}' has scope 'workspace' and must declare a non-empty 'writes' allowlist at version ${FLEET_WRITE_BOUNDARY_VERSION}`
4772
- );
4773
- }
4774
- }
4775
- for (const step of contract.steps) {
4776
- const declared = step.kind === "loop" ? [
4777
- ...step.check.kind === "gate" ? [] : [{ id: `${step.id}.check`, scope: step.check.scope, writes: step.check.writes }],
4778
- { id: `${step.id}.repair`, scope: step.repair.scope, writes: step.repair.writes }
4779
- ] : step.kind === "gate" ? [] : [{ id: step.id, scope: step.scope, writes: step.writes }];
4780
- for (const position of declared) {
4781
- if (position.scope === "readonly" && position.writes !== void 0) {
4782
- throw new Error(
4783
- `fleet contract ${contract.path}: step '${position.id}' is 'readonly', which is the empty allowlist; remove its 'writes' or give it scope 'workspace'`
4784
- );
4785
- }
4786
- }
4787
- }
4788
- }
4789
- function fleetStepAncestors(steps) {
4790
- const direct = new Map(steps.map((step) => [step.id, step.dependencies]));
4791
- const closure = /* @__PURE__ */ new Map();
4792
- const resolve = (id, seen) => {
4793
- const cached = closure.get(id);
4794
- if (cached !== void 0) return cached;
4795
- const result = /* @__PURE__ */ new Set();
4796
- if (seen.has(id)) return result;
4797
- seen.add(id);
4798
- for (const dependency of direct.get(id) ?? []) {
4799
- result.add(dependency);
4800
- for (const inherited of resolve(dependency, seen)) result.add(inherited);
4801
- }
4802
- closure.set(id, result);
4803
- return result;
4804
- };
4805
- for (const step of steps) resolve(step.id, /* @__PURE__ */ new Set());
4806
- return closure;
4807
- }
4808
- function parseFleetContract(raw, sourcePath) {
4809
- const { frontmatter, body } = parseFrontmatter(raw, sourcePath);
4810
- const version = contractVersion(frontmatter);
4811
- if (version === null) {
4812
- throw new Error(`fleet contract ${sourcePath}: version must be 1, 2, 3, 4, or 5`);
4813
- }
4814
- if (version < FLEET_WRITE_BOUNDARY_VERSION) assertNoWritesBefore(frontmatter, sourcePath, version);
4815
- if (version < FLEET_DYNAMIC_STEP_VERSION) assertNoV5FieldsBefore(frontmatter, sourcePath, version);
4816
- if (version >= FLEET_DYNAMIC_STEP_VERSION) assertNoGateWrites(frontmatter, sourcePath);
4817
- const schemaError = firstSchemaError2(frontmatter, version);
4818
- if (schemaError !== null) {
4819
- throw new Error(`fleet contract ${sourcePath}: ${schemaError}`);
4820
- }
4821
- const fm = frontmatter;
4822
- if (fm.budgetUsd !== void 0 && !(fm.budgetUsd > 0)) {
4823
- throw new Error(`fleet contract ${sourcePath}: budgetUsd must be a positive number`);
4824
- }
4825
- const trimmedBody = body.trim();
4826
- if (trimmedBody.length === 0) {
4827
- throw new Error(`fleet contract ${sourcePath}: prompt body is empty`);
4828
- }
4829
- const contract = {
4830
- version,
4831
- name: fm.name,
4832
- description: fm.description ?? "",
4833
- steps: fm.steps.map(normalizeStep),
4834
- maxWorkers: fm.maxWorkers,
4835
- budgetUsd: fm.budgetUsd ?? null,
4836
- onFailure: fm.onFailure,
4837
- ...fm.writers === 1 ? { writers: 1 } : {},
4838
- body: trimmedBody,
4839
- path: sourcePath
4840
- };
4841
- validateFleetGraph(contract);
4842
- validateWriteBoundaries(contract);
4843
- validateV5Declarations(contract);
4844
- return contract;
4845
- }
4846
- function validateV5Declarations(contract) {
4847
- if (contract.version < FLEET_DYNAMIC_STEP_VERSION) return;
4848
- const route = (id, value) => {
4849
- if (value.target !== void 0 && value.profile !== void 0) {
4850
- throw new Error(`fleet contract ${contract.path}: step '${id}' may declare target or profile, never both`);
4851
- }
4852
- };
4853
- for (const step of contract.steps) {
4854
- if (step.kind === "agent" || step.kind === "plan" || step.kind === "gate") route(step.id, step);
4855
- if (step.kind === "plan" && new Set(step.roster).size !== step.roster.length) {
4856
- throw new Error(`fleet contract ${contract.path}: plan step '${step.id}' roster contains duplicate agents`);
4857
- }
4858
- if (step.kind === "gate") {
4859
- let normalized;
4860
- try {
4861
- normalized = normalizeWriteBoundary([step.path]);
4862
- } catch (error) {
4863
- throw new Error(
4864
- `fleet contract ${contract.path}: gate '${step.id}' path is invalid: ${error instanceof Error ? error.message : String(error)}`
4865
- );
4866
- }
4867
- if (normalized[0] !== step.path.replaceAll("\\", "/")) {
4868
- throw new Error(
4869
- `fleet contract ${contract.path}: gate '${step.id}' path must be normalized and repository-relative`
4870
- );
4871
- }
4872
- }
4873
- if (step.kind !== "loop") continue;
4874
- if (step.check.kind === "agent") route(`${step.id}.check`, step.check);
4875
- route(`${step.id}.repair`, step.repair);
4876
- }
4877
- }
4878
- function assertNoWritesBefore(frontmatter, sourcePath, version) {
4879
- const steps = Array.isArray(frontmatter.steps) ? frontmatter.steps : [];
4880
- const declaresWrites = (value) => typeof value === "object" && value !== null && "writes" in value;
4881
- for (const step of steps) {
4882
- const raw = step;
4883
- if (declaresWrites(raw) || declaresWrites(raw.check) || declaresWrites(raw.repair)) {
4884
- throw new Error(
4885
- `fleet contract ${sourcePath}: 'writes' requires contract version ${FLEET_WRITE_BOUNDARY_VERSION}; this contract declares version ${version}, where the declaration would not be enforced`
4886
- );
4887
- }
4888
- }
4889
- }
4890
- function assertNoGateWrites(frontmatter, sourcePath) {
4891
- for (const value of Array.isArray(frontmatter.steps) ? frontmatter.steps : []) {
4892
- if (typeof value !== "object" || value === null) continue;
4893
- const step = value;
4894
- if (step.kind !== "gate" || typeof step.id !== "string" || step.id.length === 0 || !("writes" in step)) continue;
4895
- throw new Error(
4896
- `fleet contract ${sourcePath}: gate step '${step.id}' must not declare 'writes'; its write boundary is derived from 'path'`
4897
- );
4898
- }
4899
- }
4900
- function assertNoV5FieldsBefore(frontmatter, sourcePath, version) {
4901
- const forbidden = ["target", "profile"];
4902
- if ("writers" in frontmatter) {
4903
- throw new Error(
4904
- `fleet contract ${sourcePath}: 'writers' requires contract version ${FLEET_DYNAMIC_STEP_VERSION}; this contract declares version ${version}`
4905
- );
4906
- }
4907
- for (const value of Array.isArray(frontmatter.steps) ? frontmatter.steps : []) {
4908
- if (typeof value !== "object" || value === null) continue;
4909
- const step = value;
4910
- if (step.kind === "plan" || step.kind === "gate") {
4911
- throw new Error(
4912
- `fleet contract ${sourcePath}: kind '${String(step.kind)}' requires contract version ${FLEET_DYNAMIC_STEP_VERSION}; this contract declares version ${version}`
4913
- );
4914
- }
4915
- for (const candidate of [step, step.check, step.repair]) {
4916
- if (typeof candidate !== "object" || candidate === null) continue;
4917
- for (const field of forbidden) {
4918
- if (field in candidate) {
4919
- throw new Error(
4920
- `fleet contract ${sourcePath}: '${field}' requires contract version ${FLEET_DYNAMIC_STEP_VERSION}; this contract declares version ${version}`
4921
- );
4922
- }
4923
- }
4924
- }
4925
- }
4926
- }
4927
- function fleetCodeSteps(contract) {
4928
- const steps = [];
4929
- for (const step of contract.steps) {
4930
- if (step.kind === "code") steps.push({ id: step.id, command: step.command });
4931
- else if (step.kind === "gate") steps.push({ id: step.id, command: step.run });
4932
- else if (step.kind === "loop" && step.check.kind === "code") {
4933
- steps.push({ id: fleetLoopCheckStepId(step.id, 1), command: step.check.command });
4934
- }
4935
- }
4936
- return steps;
4937
- }
4938
- var FLEET_COMMANDS_REPO_PATH = ".clio-coder/fleets/commands.yaml";
4939
- var FLEET_COMMANDS_REMEDY = "declare each id there under `commands:` with an `argv` list; `clio-coder docs fleet_dispatch` has the schema";
4940
- var FleetCommandRegistryMissingError = class extends Error {
4941
- constructor(contractPath, commands) {
4942
- super(
4943
- `fleet contract ${contractPath}: code steps require a command registry at ${FLEET_COMMANDS_REPO_PATH} declaring ${commands.join(", ")}`
4944
- );
4945
- this.contractPath = contractPath;
4946
- this.commands = commands;
4947
- this.name = "FleetCommandRegistryMissingError";
4948
- }
4949
- contractPath;
4950
- commands;
4951
- };
4952
- function validateFleetCommands(contract, registry) {
4953
- const codeSteps = fleetCodeSteps(contract);
4954
- if (codeSteps.length === 0) return;
4955
- if (registry === null) {
4956
- throw new FleetCommandRegistryMissingError(contract.path, [...new Set(codeSteps.map((step) => step.command))].sort());
4957
- }
4958
- for (const step of codeSteps) {
4959
- if (!registry.commands.has(step.command)) {
4960
- const known = [...registry.commands.keys()].sort().join(", ");
4961
- throw new Error(
4962
- `fleet contract ${contract.path}: step '${step.id}' names unknown command '${step.command}' (registered: ${known || "none"})`
4963
- );
4964
- }
4965
- }
4966
- }
4967
- function builtinFleetsDir() {
4968
- return join2(resolvePackageRoot(), "src", "domains", "agents", "fleets");
4969
- }
4970
- function fleetSources(cwd) {
4971
- return [
4972
- { dir: builtinFleetsDir(), source: "builtin" },
4973
- ...enabledExtensionResourceRoots("fleets", cwd).sort((left, right) => left.source.localeCompare(right.source)).map((root) => ({ dir: root.path, source: "extension" })),
4974
- { dir: join2(clioConfigDir(), "fleets"), source: "user" },
4975
- { dir: fleetsDir(cwd), source: "project" }
4976
- ];
4977
- }
4978
- function fleetContractPath(cwd, name) {
4979
- for (const source of [...fleetSources(cwd)].reverse()) {
4980
- const candidate = join2(source.dir, `${name}.md`);
4981
- if (existsSync2(candidate)) return { path: candidate, source: source.source };
4982
- }
4983
- return null;
4984
- }
4985
- function loadFleetContract(cwd, name) {
4986
- const located = fleetContractPath(cwd, name);
4987
- if (located === null) {
4988
- throw new Error(`fleet contract not found: ${join2(fleetsDir(cwd), `${name}.md`)} (and no builtin named '${name}')`);
4989
- }
4990
- const contract = parseFleetContract(readFileSync2(located.path, "utf8"), located.path);
4991
- validateFleetCommands(contract, loadFleetCommands(cwd));
4992
- return contract;
4993
- }
4994
- function listDirectory(dir) {
4995
- if (!existsSync2(dir)) return [];
4996
- try {
4997
- return readdirSync(dir).filter((name) => name.endsWith(".md")).sort();
4998
- } catch {
4999
- return [];
5000
- }
5001
- }
5002
- function listFleetContracts(cwd) {
5003
- let registry = null;
5004
- let registryError = null;
5005
- try {
5006
- registry = loadFleetCommands(cwd);
5007
- } catch (err) {
5008
- registryError = err instanceof Error ? err.message : String(err);
5009
- }
5010
- const listings = /* @__PURE__ */ new Map();
5011
- const sources = fleetSources(cwd);
5012
- for (const { dir, source } of sources) {
5013
- for (const file of listDirectory(dir)) {
5014
- const path = join2(dir, file);
5015
- const name = basename(file, ".md");
5016
- try {
5017
- const contract = parseFleetContract(readFileSync2(path, "utf8"), path);
5018
- if (registryError !== null && fleetCodeSteps(contract).length > 0) throw new Error(registryError);
5019
- validateFleetCommands(contract, registry);
5020
- listings.set(name, { name, path, source, contract, error: null, needsCommands: null });
5021
- } catch (err) {
5022
- listings.set(name, {
5023
- name,
5024
- path,
5025
- source,
5026
- contract: null,
5027
- error: err instanceof Error ? err.message : String(err),
5028
- // A registry this repo never wrote is unfinished setup. A registry
5029
- // that exists and does not parse, or one missing an id the contract
5030
- // names, is a real error and stays one.
5031
- needsCommands: err instanceof FleetCommandRegistryMissingError ? err.commands : null
5032
- });
5033
- }
5034
- }
5035
- }
5036
- return [...listings.values()].sort((left, right) => left.name.localeCompare(right.name));
5037
- }
5038
- var PLACEHOLDER_RE = /\{\{\s*([A-Za-z_][A-Za-z0-9_-]*)\s*\}\}/g;
5039
- function renderFleetPrompt(body, vars) {
5040
- const missing = /* @__PURE__ */ new Set();
5041
- const rendered = body.replace(PLACEHOLDER_RE, (_match, name) => {
5042
- const value = vars[name];
5043
- if (value === void 0) {
5044
- missing.add(name);
5045
- return "";
5046
- }
5047
- return value;
5048
- });
5049
- if (missing.size > 0) {
5050
- throw new Error(`fleet prompt: unresolved template variables: ${[...missing].join(", ")} (pass --var name=value)`);
5051
- }
5052
- return rendered;
5053
- }
5054
4267
 
5055
4268
  export {
5056
- FLEET_COMMAND_BASE_ENV,
5057
- loadFleetCommands,
5058
- normalizeWriteBoundaryEntry,
5059
- normalizeWriteBoundary,
5060
- writeBoundaryCovers,
5061
- describeWriteBoundary,
5062
- fleetLoopCheckStepId,
5063
- fleetLoopRepairStepId,
5064
- validateFleetGraph,
5065
- fleetStepWriteBoundary,
5066
- fleetStepBoundaries,
5067
- parseFleetContract,
5068
- FLEET_COMMANDS_REPO_PATH,
5069
- FLEET_COMMANDS_REMEDY,
5070
- FleetCommandRegistryMissingError,
5071
- validateFleetCommands,
5072
- loadFleetContract,
5073
- listFleetContracts,
5074
- renderFleetPrompt
4269
+ value_exports
5075
4270
  };
5076
- //# sourceMappingURL=chunk-3WBALRQH.js.map
4271
+ //# sourceMappingURL=chunk-SER7RRAE.js.map