@skaile/workspaces 5.19.0 → 6.0.0

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 (663) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +8 -8
  3. package/dist/app-sdk/index.js +1 -1
  4. package/dist/{asset-feeds-QGLI3AXI.js → asset-feeds-PXUWCXVI.js} +18 -18
  5. package/dist/{asset-feeds-QGLI3AXI.js.map → asset-feeds-PXUWCXVI.js.map} +1 -1
  6. package/dist/asset-manager/catalog-deployer.js +8 -8
  7. package/dist/asset-manager/index.js +14 -14
  8. package/dist/asset-manager/installer.js +11 -11
  9. package/dist/asset-manager/renderers.js +10 -10
  10. package/dist/asset-manager/src/index.d.ts +22 -22
  11. package/dist/asset-manager/src/index.d.ts.map +1 -1
  12. package/dist/asset-manager/src/install-agent.d.ts +2 -2
  13. package/dist/asset-manager/src/install-agent.d.ts.map +1 -1
  14. package/dist/asset-manager/src/install-instances.d.ts +8 -8
  15. package/dist/asset-manager/src/install-instances.d.ts.map +1 -1
  16. package/dist/asset-manager/src/installer.d.ts +3 -3
  17. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  18. package/dist/asset-manager/src/mcp-config.d.ts +14 -14
  19. package/dist/asset-manager/src/mcp-config.d.ts.map +1 -1
  20. package/dist/asset-manager/src/renderers.d.ts +12 -12
  21. package/dist/asset-manager/src/renderers.d.ts.map +1 -1
  22. package/dist/bridge/codex-app-server.js +2 -2
  23. package/dist/bridge/harnesses/claude-sdk.d.ts +2 -0
  24. package/dist/bridge/{drivers → harnesses}/claude-sdk.js +63 -63
  25. package/dist/bridge/harnesses/claude-sdk.js.map +1 -0
  26. package/dist/bridge/{drivers/gemini.d.ts → harnesses/codex.d.ts} +1 -1
  27. package/dist/bridge/{drivers → harnesses}/codex.js +50 -50
  28. package/dist/bridge/harnesses/codex.js.map +1 -0
  29. package/dist/bridge/{drivers/claude-sdk.d.ts → harnesses/continue.d.ts} +1 -1
  30. package/dist/bridge/{drivers → harnesses}/continue.js +27 -27
  31. package/dist/bridge/harnesses/continue.js.map +1 -0
  32. package/dist/bridge/{drivers → harnesses}/echo.d.ts +1 -1
  33. package/dist/bridge/{drivers → harnesses}/echo.js +27 -27
  34. package/dist/bridge/harnesses/echo.js.map +1 -0
  35. package/dist/bridge/{drivers/continue.d.ts → harnesses/gemini.d.ts} +1 -1
  36. package/dist/bridge/harnesses/gemini.js +18 -0
  37. package/dist/bridge/{drivers → harnesses}/goose.d.ts +1 -1
  38. package/dist/bridge/{drivers → harnesses}/goose.js +27 -27
  39. package/dist/bridge/harnesses/goose.js.map +1 -0
  40. package/dist/bridge/{drivers → harnesses}/omp.d.ts +1 -1
  41. package/dist/bridge/{drivers → harnesses}/omp.js +31 -31
  42. package/dist/bridge/harnesses/omp.js.map +1 -0
  43. package/dist/bridge/{drivers → harnesses}/opencode.d.ts +1 -1
  44. package/dist/bridge/{drivers → harnesses}/opencode.js +28 -28
  45. package/dist/bridge/harnesses/opencode.js.map +1 -0
  46. package/dist/bridge/{drivers → harnesses}/qwen.d.ts +1 -1
  47. package/dist/bridge/{drivers → harnesses}/qwen.js +20 -20
  48. package/dist/bridge/harnesses/qwen.js.map +1 -0
  49. package/dist/bridge/index.js +22 -22
  50. package/dist/bridge/src/agent-exec.d.ts +2 -2
  51. package/dist/bridge/src/agent-transcript.d.ts +1 -1
  52. package/dist/bridge/src/agent-transcript.d.ts.map +1 -1
  53. package/dist/bridge/src/approval-card.d.ts +3 -3
  54. package/dist/bridge/src/capability-dispatch.d.ts +5 -5
  55. package/dist/bridge/src/cloud.d.ts +4 -4
  56. package/dist/bridge/src/codex/config-toml.d.ts +3 -3
  57. package/dist/bridge/src/codex/friendly-error.d.ts +1 -1
  58. package/dist/bridge/src/codex/friendly-error.d.ts.map +1 -1
  59. package/dist/bridge/src/codex/{managed-driver.d.ts → managed-harness.d.ts} +5 -5
  60. package/dist/bridge/src/codex/managed-harness.d.ts.map +1 -0
  61. package/dist/bridge/src/codex/native-approvals.d.ts +1 -1
  62. package/dist/bridge/src/codex/native-approvals.d.ts.map +1 -1
  63. package/dist/bridge/src/error-classifier.d.ts +7 -7
  64. package/dist/bridge/src/{driver-capabilities.d.ts → harness-capabilities.d.ts} +18 -18
  65. package/dist/bridge/src/harness-capabilities.d.ts.map +1 -0
  66. package/dist/bridge/src/{driver-model-check.d.ts → harness-model-check.d.ts} +9 -9
  67. package/dist/bridge/src/harness-model-check.d.ts.map +1 -0
  68. package/dist/bridge/src/{drivers → harnesses}/_subprocess-cli.d.ts +8 -8
  69. package/dist/bridge/src/harnesses/_subprocess-cli.d.ts.map +1 -0
  70. package/dist/bridge/src/{drivers → harnesses}/claude-context-usage.d.ts +5 -5
  71. package/dist/bridge/src/harnesses/claude-context-usage.d.ts.map +1 -0
  72. package/dist/bridge/src/{drivers → harnesses}/claude-sdk.d.ts +27 -27
  73. package/dist/bridge/src/harnesses/claude-sdk.d.ts.map +1 -0
  74. package/dist/bridge/src/{drivers → harnesses}/claude-self-turns.d.ts +5 -5
  75. package/dist/bridge/src/harnesses/claude-self-turns.d.ts.map +1 -0
  76. package/dist/bridge/src/{drivers → harnesses}/claude-tool-allowlist.d.ts +4 -4
  77. package/dist/bridge/src/harnesses/claude-tool-allowlist.d.ts.map +1 -0
  78. package/dist/bridge/src/{drivers → harnesses}/codex.d.ts +14 -14
  79. package/dist/bridge/src/harnesses/codex.d.ts.map +1 -0
  80. package/dist/bridge/src/{drivers → harnesses}/continue.d.ts +12 -12
  81. package/dist/bridge/src/harnesses/continue.d.ts.map +1 -0
  82. package/dist/bridge/src/{drivers → harnesses}/echo.d.ts +16 -16
  83. package/dist/bridge/src/harnesses/echo.d.ts.map +1 -0
  84. package/dist/bridge/src/{drivers → harnesses}/flow-script.d.ts +9 -9
  85. package/dist/bridge/src/harnesses/flow-script.d.ts.map +1 -0
  86. package/dist/bridge/src/{drivers → harnesses}/gemini.d.ts +15 -15
  87. package/dist/bridge/src/harnesses/gemini.d.ts.map +1 -0
  88. package/dist/bridge/src/{drivers → harnesses}/goose.d.ts +10 -10
  89. package/dist/bridge/src/harnesses/goose.d.ts.map +1 -0
  90. package/dist/bridge/src/{drivers → harnesses}/omp-models-yml.d.ts +12 -12
  91. package/dist/bridge/src/harnesses/omp-models-yml.d.ts.map +1 -0
  92. package/dist/bridge/src/{drivers → harnesses}/omp.d.ts +23 -23
  93. package/dist/bridge/src/harnesses/omp.d.ts.map +1 -0
  94. package/dist/bridge/src/{drivers → harnesses}/opencode.d.ts +11 -11
  95. package/dist/bridge/src/harnesses/opencode.d.ts.map +1 -0
  96. package/dist/bridge/src/{drivers → harnesses}/qwen.d.ts +12 -12
  97. package/dist/bridge/src/harnesses/qwen.d.ts.map +1 -0
  98. package/dist/bridge/src/{drivers → harnesses}/recovery-policy.d.ts +4 -4
  99. package/dist/bridge/src/harnesses/recovery-policy.d.ts.map +1 -0
  100. package/dist/bridge/src/{drivers → harnesses}/resume-probe.d.ts +3 -3
  101. package/dist/bridge/src/harnesses/resume-probe.d.ts.map +1 -0
  102. package/dist/bridge/src/{drivers → harnesses}/sanitize-assistant-text.d.ts +1 -1
  103. package/dist/bridge/src/harnesses/sanitize-assistant-text.d.ts.map +1 -0
  104. package/dist/bridge/src/{drivers → harnesses}/scrub-transcript.d.ts +1 -1
  105. package/dist/bridge/src/harnesses/scrub-transcript.d.ts.map +1 -0
  106. package/dist/bridge/src/index.d.ts +4 -4
  107. package/dist/bridge/src/index.d.ts.map +1 -1
  108. package/dist/bridge/src/logger.d.ts +4 -4
  109. package/dist/bridge/src/models.d.ts +1 -1
  110. package/dist/bridge/src/normalizer.d.ts +2 -2
  111. package/dist/bridge/src/provider-materialize/continue-config-yaml.d.ts +5 -5
  112. package/dist/bridge/src/provider-materialize/continue-config-yaml.d.ts.map +1 -1
  113. package/dist/bridge/src/provider-materialize/credential-env.d.ts +3 -3
  114. package/dist/bridge/src/provider-materialize/{env-drivers.d.ts → env-harnesses.d.ts} +19 -19
  115. package/dist/bridge/src/provider-materialize/env-harnesses.d.ts.map +1 -0
  116. package/dist/bridge/src/provider-materialize/goose-custom-providers.d.ts +5 -5
  117. package/dist/bridge/src/provider-materialize/goose-custom-providers.d.ts.map +1 -1
  118. package/dist/bridge/src/provider-materialize/opencode-config.d.ts +7 -7
  119. package/dist/bridge/src/provider-materialize/opencode-config.d.ts.map +1 -1
  120. package/dist/bridge/src/provider-materialize/session-config-home.d.ts +5 -5
  121. package/dist/bridge/src/provider-materialize/session-config-home.d.ts.map +1 -1
  122. package/dist/bridge/src/provider-registry-derive.d.ts +4 -4
  123. package/dist/bridge/src/provider-registry-derive.d.ts.map +1 -1
  124. package/dist/bridge/src/reconfigure-ledger.d.ts +8 -8
  125. package/dist/bridge/src/reconfigure-ledger.d.ts.map +1 -1
  126. package/dist/bridge/src/registry.d.ts +34 -41
  127. package/dist/bridge/src/registry.d.ts.map +1 -1
  128. package/dist/bridge/src/runner-private-env.d.ts +2 -2
  129. package/dist/bridge/src/runtime.d.ts +11 -11
  130. package/dist/bridge/src/runtime.d.ts.map +1 -1
  131. package/dist/bridge/src/types.d.ts +158 -158
  132. package/dist/bridge/src/types.d.ts.map +1 -1
  133. package/dist/{chunk-2PBSAH3Z.js → chunk-2UUKCROR.js} +4 -4
  134. package/dist/{chunk-2PBSAH3Z.js.map → chunk-2UUKCROR.js.map} +1 -1
  135. package/dist/{chunk-WG6V4ISA.js → chunk-3IXIEHUB.js} +7 -7
  136. package/dist/{chunk-WG6V4ISA.js.map → chunk-3IXIEHUB.js.map} +1 -1
  137. package/dist/{chunk-JTOWA6RS.js → chunk-3JKGY2YC.js} +37 -42
  138. package/dist/chunk-3JKGY2YC.js.map +1 -0
  139. package/dist/{chunk-X5YPJV4N.js → chunk-3MWQKQUB.js} +2 -2
  140. package/dist/{chunk-X5YPJV4N.js.map → chunk-3MWQKQUB.js.map} +1 -1
  141. package/dist/{chunk-EPBKISS5.js → chunk-3TG2NV2F.js} +2 -2
  142. package/dist/chunk-3TG2NV2F.js.map +1 -0
  143. package/dist/{chunk-L2AMXONH.js → chunk-3X7VTCPG.js} +2 -2
  144. package/dist/chunk-3X7VTCPG.js.map +1 -0
  145. package/dist/{chunk-VJ7NU7GD.js → chunk-4DWBSTYA.js} +4 -4
  146. package/dist/chunk-4DWBSTYA.js.map +1 -0
  147. package/dist/{chunk-7SCS64BG.js → chunk-4XWLB7JB.js} +48 -48
  148. package/dist/chunk-4XWLB7JB.js.map +1 -0
  149. package/dist/{chunk-5TBFN46Z.js → chunk-5KRMNUL4.js} +4 -4
  150. package/dist/chunk-5KRMNUL4.js.map +1 -0
  151. package/dist/{chunk-YIF2IJUA.js → chunk-6GWSDPBP.js} +3 -3
  152. package/dist/{chunk-YIF2IJUA.js.map → chunk-6GWSDPBP.js.map} +1 -1
  153. package/dist/{chunk-MKRWN7XP.js → chunk-7CV3HFWJ.js} +5 -5
  154. package/dist/chunk-7CV3HFWJ.js.map +1 -0
  155. package/dist/{chunk-YROR332M.js → chunk-7DN6JKP2.js} +2 -2
  156. package/dist/chunk-7DN6JKP2.js.map +1 -0
  157. package/dist/{chunk-IZCR27MU.js → chunk-7EKQDY2T.js} +3 -3
  158. package/dist/chunk-7EKQDY2T.js.map +1 -0
  159. package/dist/{chunk-2LSDMJI2.js → chunk-7TPYPVAH.js} +4 -4
  160. package/dist/{chunk-2LSDMJI2.js.map → chunk-7TPYPVAH.js.map} +1 -1
  161. package/dist/{chunk-ICSCSM5D.js → chunk-ADPM6AYF.js} +3 -3
  162. package/dist/{chunk-ICSCSM5D.js.map → chunk-ADPM6AYF.js.map} +1 -1
  163. package/dist/{chunk-Y5MBW5EU.js → chunk-AF432MS3.js} +3 -3
  164. package/dist/{chunk-Y5MBW5EU.js.map → chunk-AF432MS3.js.map} +1 -1
  165. package/dist/{chunk-F6AA42GW.js → chunk-ARWKK325.js} +5 -5
  166. package/dist/{chunk-F6AA42GW.js.map → chunk-ARWKK325.js.map} +1 -1
  167. package/dist/{chunk-AJ7EGIFR.js → chunk-BIRW3HOG.js} +3 -3
  168. package/dist/chunk-BIRW3HOG.js.map +1 -0
  169. package/dist/{chunk-X4ZZTHU3.js → chunk-DHYSUJ3H.js} +4 -4
  170. package/dist/{chunk-X4ZZTHU3.js.map → chunk-DHYSUJ3H.js.map} +1 -1
  171. package/dist/{chunk-C7WBGSBV.js → chunk-DUMTLYSO.js} +10 -10
  172. package/dist/chunk-DUMTLYSO.js.map +1 -0
  173. package/dist/{chunk-XJVBUDDJ.js → chunk-E3GPGTW3.js} +8 -8
  174. package/dist/chunk-E3GPGTW3.js.map +1 -0
  175. package/dist/{chunk-335ENCCS.js → chunk-E572OHGY.js} +2 -2
  176. package/dist/{chunk-335ENCCS.js.map → chunk-E572OHGY.js.map} +1 -1
  177. package/dist/{chunk-CQJH4G2K.js → chunk-F2GOZMRA.js} +63 -64
  178. package/dist/chunk-F2GOZMRA.js.map +1 -0
  179. package/dist/{chunk-6E6PKKAD.js → chunk-G5SUWZEU.js} +18 -8
  180. package/dist/chunk-G5SUWZEU.js.map +1 -0
  181. package/dist/{chunk-2GXSSZAM.js → chunk-GEQSUC6U.js} +12 -12
  182. package/dist/chunk-GEQSUC6U.js.map +1 -0
  183. package/dist/{chunk-IP2IPMEH.js → chunk-GN4VVSAA.js} +18 -18
  184. package/dist/chunk-GN4VVSAA.js.map +1 -0
  185. package/dist/{chunk-W4Q6CKJ5.js → chunk-HK7HMEPT.js} +11 -11
  186. package/dist/chunk-HK7HMEPT.js.map +1 -0
  187. package/dist/{chunk-Y56YIT6J.js → chunk-JCPD4QRM.js} +4 -4
  188. package/dist/chunk-JCPD4QRM.js.map +1 -0
  189. package/dist/{chunk-VSZWNUZC.js → chunk-JDR6ILCW.js} +4 -4
  190. package/dist/chunk-JDR6ILCW.js.map +1 -0
  191. package/dist/{chunk-K4O6L3WH.js → chunk-KNY356I3.js} +3 -3
  192. package/dist/{chunk-K4O6L3WH.js.map → chunk-KNY356I3.js.map} +1 -1
  193. package/dist/{chunk-4ZTPYIBE.js → chunk-KW37WNXY.js} +12 -12
  194. package/dist/chunk-KW37WNXY.js.map +1 -0
  195. package/dist/{chunk-QG6GHTRM.js → chunk-KX2PT5Q4.js} +8 -8
  196. package/dist/chunk-KX2PT5Q4.js.map +1 -0
  197. package/dist/{chunk-N46LQR46.js → chunk-L4YKW5AY.js} +37 -26
  198. package/dist/chunk-L4YKW5AY.js.map +1 -0
  199. package/dist/{chunk-I7TWVK6N.js → chunk-LN6QB7XI.js} +3 -3
  200. package/dist/{chunk-I7TWVK6N.js.map → chunk-LN6QB7XI.js.map} +1 -1
  201. package/dist/{chunk-MJHSLODD.js → chunk-LSI2IVFT.js} +2 -2
  202. package/dist/chunk-LSI2IVFT.js.map +1 -0
  203. package/dist/{chunk-VIM3PWZM.js → chunk-MCUJTNY5.js} +3 -3
  204. package/dist/{chunk-VIM3PWZM.js.map → chunk-MCUJTNY5.js.map} +1 -1
  205. package/dist/{chunk-EAZECHPM.js → chunk-NBAGV6L2.js} +5 -5
  206. package/dist/chunk-NBAGV6L2.js.map +1 -0
  207. package/dist/{chunk-ZQSOJH6I.js → chunk-NMI2TWMH.js} +21 -11
  208. package/dist/chunk-NMI2TWMH.js.map +1 -0
  209. package/dist/{chunk-MRHVPQNO.js → chunk-OAHVKSQJ.js} +112 -119
  210. package/dist/chunk-OAHVKSQJ.js.map +1 -0
  211. package/dist/{chunk-V257LUBM.js → chunk-OHNKYHRR.js} +40 -13
  212. package/dist/chunk-OHNKYHRR.js.map +1 -0
  213. package/dist/{chunk-TIIXG3PN.js → chunk-OTIB4D2K.js} +3 -3
  214. package/dist/{chunk-TIIXG3PN.js.map → chunk-OTIB4D2K.js.map} +1 -1
  215. package/dist/{chunk-WST6UITC.js → chunk-OULSJRXV.js} +17 -17
  216. package/dist/chunk-OULSJRXV.js.map +1 -0
  217. package/dist/{chunk-I37INEWE.js → chunk-QOM5Z62G.js} +3 -3
  218. package/dist/{chunk-I37INEWE.js.map → chunk-QOM5Z62G.js.map} +1 -1
  219. package/dist/{chunk-HT35SQZD.js → chunk-SNEE6UGY.js} +28 -28
  220. package/dist/chunk-SNEE6UGY.js.map +1 -0
  221. package/dist/{chunk-R4I3VBSS.js → chunk-SRODW6M2.js} +4 -4
  222. package/dist/{chunk-R4I3VBSS.js.map → chunk-SRODW6M2.js.map} +1 -1
  223. package/dist/{chunk-IF6IA3PZ.js → chunk-SZXGRHQQ.js} +3 -3
  224. package/dist/{chunk-IF6IA3PZ.js.map → chunk-SZXGRHQQ.js.map} +1 -1
  225. package/dist/{chunk-J24CY3PF.js → chunk-T2BDID2J.js} +37 -37
  226. package/dist/chunk-T2BDID2J.js.map +1 -0
  227. package/dist/{chunk-WOIRYY5L.js → chunk-TKHJXPSB.js} +11 -11
  228. package/dist/{chunk-WOIRYY5L.js.map → chunk-TKHJXPSB.js.map} +1 -1
  229. package/dist/{chunk-PYJS5K7V.js → chunk-U56GGCC2.js} +3 -3
  230. package/dist/{chunk-PYJS5K7V.js.map → chunk-U56GGCC2.js.map} +1 -1
  231. package/dist/{chunk-XM6T2AZ2.js → chunk-UL22SDGR.js} +6 -6
  232. package/dist/{chunk-XM6T2AZ2.js.map → chunk-UL22SDGR.js.map} +1 -1
  233. package/dist/{chunk-XWOPZW26.js → chunk-UVVVR4XO.js} +38 -38
  234. package/dist/chunk-UVVVR4XO.js.map +1 -0
  235. package/dist/{chunk-A6SMCEEE.js → chunk-VBI7HGHB.js} +11 -11
  236. package/dist/{chunk-A6SMCEEE.js.map → chunk-VBI7HGHB.js.map} +1 -1
  237. package/dist/{chunk-7NT4F6SR.js → chunk-VJRTDKXS.js} +462 -446
  238. package/dist/chunk-VJRTDKXS.js.map +1 -0
  239. package/dist/{chunk-IG5LZ3WU.js → chunk-VTETQCR6.js} +10 -10
  240. package/dist/chunk-VTETQCR6.js.map +1 -0
  241. package/dist/{chunk-EFLKSMCO.js → chunk-VUJXZDCY.js} +5 -5
  242. package/dist/{chunk-EFLKSMCO.js.map → chunk-VUJXZDCY.js.map} +1 -1
  243. package/dist/{chunk-25ZVWL2R.js → chunk-VXEYX73S.js} +4 -4
  244. package/dist/{chunk-25ZVWL2R.js.map → chunk-VXEYX73S.js.map} +1 -1
  245. package/dist/{chunk-M3WPBTGJ.js → chunk-WD3L5QSU.js} +2 -2
  246. package/dist/{chunk-M3WPBTGJ.js.map → chunk-WD3L5QSU.js.map} +1 -1
  247. package/dist/{chunk-COJIL7G4.js → chunk-WDAIWDLK.js} +7 -7
  248. package/dist/chunk-WDAIWDLK.js.map +1 -0
  249. package/dist/{chunk-FPHNJE4M.js → chunk-WEH33JSG.js} +14 -14
  250. package/dist/chunk-WEH33JSG.js.map +1 -0
  251. package/dist/{chunk-RO6VOM6Z.js → chunk-WYHQUCHR.js} +13 -13
  252. package/dist/{chunk-RO6VOM6Z.js.map → chunk-WYHQUCHR.js.map} +1 -1
  253. package/dist/{chunk-R6O6YWU7.js → chunk-WYZXSJBK.js} +3 -3
  254. package/dist/{chunk-R6O6YWU7.js.map → chunk-WYZXSJBK.js.map} +1 -1
  255. package/dist/{chunk-RPZVHXQ3.js → chunk-XFIEVEU7.js} +4 -4
  256. package/dist/chunk-XFIEVEU7.js.map +1 -0
  257. package/dist/{chunk-Q6E6FM7P.js → chunk-XKNXPLKR.js} +6 -6
  258. package/dist/{chunk-Q6E6FM7P.js.map → chunk-XKNXPLKR.js.map} +1 -1
  259. package/dist/{chunk-HU5HVKY7.js → chunk-Y2TO2U7W.js} +4 -4
  260. package/dist/{chunk-HU5HVKY7.js.map → chunk-Y2TO2U7W.js.map} +1 -1
  261. package/dist/{chunk-ZX4KRWRB.js → chunk-YGRZNFRO.js} +4 -4
  262. package/dist/{chunk-ZX4KRWRB.js.map → chunk-YGRZNFRO.js.map} +1 -1
  263. package/dist/{chunk-5BEFNLOR.js → chunk-Z7ZEZZB6.js} +8 -8
  264. package/dist/chunk-Z7ZEZZB6.js.map +1 -0
  265. package/dist/{chunk-PHRNUTSG.js → chunk-ZFUZ5AKM.js} +4 -4
  266. package/dist/{chunk-PHRNUTSG.js.map → chunk-ZFUZ5AKM.js.map} +1 -1
  267. package/dist/claude-code-VJGYBXQR.js +10 -0
  268. package/dist/{claude-code-2PU7TITZ.js.map → claude-code-VJGYBXQR.js.map} +1 -1
  269. package/dist/cli/index.js +471 -308
  270. package/dist/cli/index.js.map +1 -1
  271. package/dist/cli/src/commands/catalog.d.ts +3 -3
  272. package/dist/cli/src/commands/complete-resolvers.d.ts.map +1 -1
  273. package/dist/cli/src/commands/config.d.ts +2 -2
  274. package/dist/cli/src/commands/config.d.ts.map +1 -1
  275. package/dist/cli/src/commands/integration.d.ts +1 -1
  276. package/dist/cli/src/commands/integration.d.ts.map +1 -1
  277. package/dist/cli/src/commands/migrate-files.d.ts +14 -0
  278. package/dist/cli/src/commands/migrate-files.d.ts.map +1 -1
  279. package/dist/cli/src/commands/migrate-harness.d.ts +49 -0
  280. package/dist/cli/src/commands/migrate-harness.d.ts.map +1 -0
  281. package/dist/cli/src/commands/migrate.d.ts +4 -2
  282. package/dist/cli/src/commands/migrate.d.ts.map +1 -1
  283. package/dist/cli/src/commands/plugin/types.d.ts +1 -6
  284. package/dist/cli/src/commands/plugin/types.d.ts.map +1 -1
  285. package/dist/cli/src/commands/plugin-registry-cmd.d.ts +1 -1
  286. package/dist/cli/src/commands/preset-export.d.ts +1 -1
  287. package/dist/cli/src/commands/project.d.ts +1 -1
  288. package/dist/cli/src/commands/run.d.ts +2 -2
  289. package/dist/cli/src/commands/run.d.ts.map +1 -1
  290. package/dist/cli/src/commands/serve-preflight.d.ts +11 -11
  291. package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -1
  292. package/dist/cli/src/commands/serve.d.ts +1 -1
  293. package/dist/cli/src/commands/serve.d.ts.map +1 -1
  294. package/dist/cli/src/commands/validate.d.ts.map +1 -1
  295. package/dist/cli/src/harness-error.d.ts +47 -0
  296. package/dist/cli/src/harness-error.d.ts.map +1 -0
  297. package/dist/cli/src/helpers.d.ts +5 -5
  298. package/dist/cli/src/helpers.d.ts.map +1 -1
  299. package/dist/cli/src/plugin-store/index.d.ts +2 -2
  300. package/dist/cli/src/setup.d.ts +3 -3
  301. package/dist/cli/src/setup.d.ts.map +1 -1
  302. package/dist/connectors/config.js +3 -3
  303. package/dist/connectors/index.js +27 -27
  304. package/dist/connectors/src/connector-prompt.d.ts +5 -5
  305. package/dist/connectors/src/connector-registry.d.ts +1 -1
  306. package/dist/connectors-CXZLXAFZ.js +48 -0
  307. package/dist/{connectors-RBGZ3M7G.js.map → connectors-CXZLXAFZ.js.map} +1 -1
  308. package/dist/connectors-shared/index.js +2 -2
  309. package/dist/core/framework.js +1 -1
  310. package/dist/{bridge/drivers/codex.d.ts → core/harness-targets.d.ts} +1 -1
  311. package/dist/core/harness-targets.js +4 -0
  312. package/dist/core/harness-targets.js.map +1 -0
  313. package/dist/core/index.js +8 -8
  314. package/dist/core/provider-registry-credentials.js +2 -2
  315. package/dist/core/provider-registry.js +1 -1
  316. package/dist/core/runtime-assets.js +3 -3
  317. package/dist/core/src/asset-roots.d.ts +2 -2
  318. package/dist/core/src/framework.d.ts +21 -21
  319. package/dist/core/src/framework.d.ts.map +1 -1
  320. package/dist/core/src/{driver-sdk.d.ts → harness-sdk.d.ts} +9 -9
  321. package/dist/core/src/harness-sdk.d.ts.map +1 -0
  322. package/dist/core/src/harness-targets.d.ts +71 -0
  323. package/dist/core/src/harness-targets.d.ts.map +1 -0
  324. package/dist/core/src/index.d.ts +8 -8
  325. package/dist/core/src/index.d.ts.map +1 -1
  326. package/dist/core/src/provider-registry.d.ts +2 -2
  327. package/dist/core/src/settings.d.ts +17 -16
  328. package/dist/core/src/settings.d.ts.map +1 -1
  329. package/dist/core/src/store.d.ts +12 -12
  330. package/dist/core/src/store.d.ts.map +1 -1
  331. package/dist/core/src/workspace-config.d.ts +31 -21
  332. package/dist/core/src/workspace-config.d.ts.map +1 -1
  333. package/dist/core/src/workspace-yaml-editor.d.ts +1 -1
  334. package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
  335. package/dist/core/store.js +2 -2
  336. package/dist/core/workspace-config.js +2 -2
  337. package/dist/deploy/index.js +9 -9
  338. package/dist/discovery/index.js +2 -2
  339. package/dist/{ensure-sources-GKVLE6L5.js → ensure-sources-UPTHZKGF.js} +17 -17
  340. package/dist/{ensure-sources-GKVLE6L5.js.map → ensure-sources-UPTHZKGF.js.map} +1 -1
  341. package/dist/factory-assets/connectors/box.js +27 -27
  342. package/dist/factory-assets/connectors/deploy.js +27 -27
  343. package/dist/factory-assets/connectors/devserver.js +27 -27
  344. package/dist/factory-assets/connectors/flow/CONNECTOR.md +5 -5
  345. package/dist/factory-assets/connectors/flow/adapter.d.ts +3 -3
  346. package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
  347. package/dist/factory-assets/connectors/flow/adapter.js +27 -27
  348. package/dist/factory-assets/connectors/flow/engine/types.d.ts +1 -1
  349. package/dist/factory-assets/connectors/flow/engine.js +9 -9
  350. package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts +2 -2
  351. package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts.map +1 -1
  352. package/dist/factory-assets/connectors/flow/orchestrator-turn.d.ts +4 -4
  353. package/dist/factory-assets/connectors/flow/orchestrator-turn.d.ts.map +1 -1
  354. package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts +1 -1
  355. package/dist/factory-assets/connectors/flow/prompt-fragments.js +1 -1
  356. package/dist/factory-assets/connectors/flow/run-flow.d.ts +12 -12
  357. package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
  358. package/dist/factory-assets/connectors/flow/run-flow.js +28 -28
  359. package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts +1 -1
  360. package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts.map +1 -1
  361. package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts +22 -22
  362. package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts.map +1 -1
  363. package/dist/factory-assets/connectors/flow.js +27 -27
  364. package/dist/factory-assets/connectors/git.js +27 -27
  365. package/dist/factory-assets/connectors/gmail.js +27 -27
  366. package/dist/factory-assets/connectors/googledrive.js +27 -27
  367. package/dist/factory-assets/connectors/local.js +27 -27
  368. package/dist/factory-assets/connectors/mattermost.js +27 -27
  369. package/dist/factory-assets/connectors/memory.js +27 -27
  370. package/dist/factory-assets/connectors/minio.js +27 -27
  371. package/dist/factory-assets/connectors/postgres.js +27 -27
  372. package/dist/factory-assets/connectors/s3.js +27 -27
  373. package/dist/factory-assets/connectors/sharepoint.js +27 -27
  374. package/dist/factory-assets/connectors/sqlite.js +27 -27
  375. package/dist/factory-assets/connectors/static-server.js +27 -27
  376. package/dist/factory-assets/connectors/tunnel.js +27 -27
  377. package/dist/factory-assets/connectors/webdav.js +27 -27
  378. package/dist/factory-assets/connectors/xstate-store.js +27 -27
  379. package/dist/factory-assets/connectors/xstate.js +27 -27
  380. package/dist/factory-assets/skills/skaile-manage-workspace/SKILL.md +1 -1
  381. package/dist/{flows-W2FB7WIM.js → flows-TJQIMGUX.js} +13 -13
  382. package/dist/{flows-W2FB7WIM.js.map → flows-TJQIMGUX.js.map} +1 -1
  383. package/dist/{helpers-34QNVIGB.js → helpers-DE53KG3E.js} +17 -17
  384. package/dist/{helpers-34QNVIGB.js.map → helpers-DE53KG3E.js.map} +1 -1
  385. package/dist/library/index.js +11 -11
  386. package/dist/{library-publish-RUQTKTJU.js → library-publish-KKQ2ULLX.js} +55 -55
  387. package/dist/{library-publish-RUQTKTJU.js.map → library-publish-KKQ2ULLX.js.map} +1 -1
  388. package/dist/model-endpoint/index.js +12 -12
  389. package/dist/model-endpoint/src/resolve.d.ts +1 -1
  390. package/dist/{open-library-PVTIUQUF.js → open-library-RJGJIW5H.js} +20 -20
  391. package/dist/{open-library-PVTIUQUF.js.map → open-library-RJGJIW5H.js.map} +1 -1
  392. package/dist/open-registry-3QS3J7KO.js +32 -0
  393. package/dist/{open-registry-SOIS3TA2.js.map → open-registry-3QS3J7KO.js.map} +1 -1
  394. package/dist/paths-QAV4C3KX.js +22 -0
  395. package/dist/{paths-JLNX7Y4X.js.map → paths-QAV4C3KX.js.map} +1 -1
  396. package/dist/plugin-registry/index.js +1 -1
  397. package/dist/plugin-registry/src/context.d.ts +3 -3
  398. package/dist/plugin-registry/src/context.d.ts.map +1 -1
  399. package/dist/plugin-registry/src/deploy-handle.d.ts +1 -1
  400. package/dist/plugin-registry/src/index.d.ts +2 -2
  401. package/dist/plugin-registry/src/index.d.ts.map +1 -1
  402. package/dist/plugin-registry/src/internal.d.ts.map +1 -1
  403. package/dist/plugin-registry/src/registry.d.ts +3 -3
  404. package/dist/plugin-registry/src/registry.d.ts.map +1 -1
  405. package/dist/plugin-registry/src/targets.d.ts +9 -9
  406. package/dist/plugin-registry/src/targets.d.ts.map +1 -1
  407. package/dist/{plugin-store-G2GWAHSD.js → plugin-store-MSH6GK6T.js} +12 -12
  408. package/dist/{plugin-store-G2GWAHSD.js.map → plugin-store-MSH6GK6T.js.map} +1 -1
  409. package/dist/plugins/src/asset-kind-provider.d.ts +1 -1
  410. package/dist/project-HZW2MZPA.js +84 -0
  411. package/dist/{project-EX47PUBN.js.map → project-HZW2MZPA.js.map} +1 -1
  412. package/dist/resolver/index.js +8 -8
  413. package/dist/runner/index.js +42 -42
  414. package/dist/runner/src/agent.d.ts +3 -3
  415. package/dist/runner/src/agent.d.ts.map +1 -1
  416. package/dist/runner/src/agents/in-process-host.d.ts +1 -1
  417. package/dist/runner/src/agents/instances.d.ts +1 -1
  418. package/dist/runner/src/agents/instances.d.ts.map +1 -1
  419. package/dist/runner/src/agents/run-controller.d.ts +7 -7
  420. package/dist/runner/src/agents/run-controller.d.ts.map +1 -1
  421. package/dist/runner/src/agents/standalone-surface.d.ts +2 -2
  422. package/dist/runner/src/agents/standalone-surface.d.ts.map +1 -1
  423. package/dist/runner/src/ai-provider-switch.d.ts +7 -7
  424. package/dist/runner/src/assistant-home.d.ts +1 -1
  425. package/dist/runner/src/capability-registry.d.ts +2 -2
  426. package/dist/runner/src/coalesced-restart.d.ts +2 -2
  427. package/dist/runner/src/compaction/context-window.d.ts +8 -8
  428. package/dist/runner/src/compaction/context-window.d.ts.map +1 -1
  429. package/dist/runner/src/compaction/orchestrator.d.ts +24 -24
  430. package/dist/runner/src/compaction/orchestrator.d.ts.map +1 -1
  431. package/dist/runner/src/compaction-gate.d.ts +30 -30
  432. package/dist/runner/src/compaction-gate.d.ts.map +1 -1
  433. package/dist/runner/src/composition/dry-run.d.ts +2 -2
  434. package/dist/runner/src/composition/dry-run.d.ts.map +1 -1
  435. package/dist/runner/src/composition/resolve-instance.d.ts +2 -2
  436. package/dist/runner/src/composition/resolve.d.ts +1 -1
  437. package/dist/runner/src/config.d.ts +3 -3
  438. package/dist/runner/src/config.d.ts.map +1 -1
  439. package/dist/runner/src/context-usage/collector.d.ts +15 -15
  440. package/dist/runner/src/context-usage/collector.d.ts.map +1 -1
  441. package/dist/runner/src/context-usage/compose.d.ts +6 -6
  442. package/dist/runner/src/context-usage/compose.d.ts.map +1 -1
  443. package/dist/runner/src/context-usage/estimator.d.ts +1 -1
  444. package/dist/runner/src/context-usage/index.d.ts +1 -1
  445. package/dist/runner/src/context-usage/index.d.ts.map +1 -1
  446. package/dist/runner/src/context-usage/transcript-tracker.d.ts +2 -2
  447. package/dist/runner/src/context-usage/transcript-tracker.d.ts.map +1 -1
  448. package/dist/runner/src/credential-notice.d.ts +3 -3
  449. package/dist/runner/src/credential-notice.d.ts.map +1 -1
  450. package/dist/runner/src/credential-rotated.d.ts +1 -1
  451. package/dist/runner/src/final-text.d.ts +1 -1
  452. package/dist/runner/src/{driver-swap-gate.d.ts → harness-swap-gate.d.ts} +21 -21
  453. package/dist/runner/src/harness-swap-gate.d.ts.map +1 -0
  454. package/dist/runner/src/late-mcp-rebuild.d.ts +6 -6
  455. package/dist/runner/src/late-mcp-rebuild.d.ts.map +1 -1
  456. package/dist/runner/src/lifecycle-handler.d.ts +1 -1
  457. package/dist/runner/src/lifecycle-handler.d.ts.map +1 -1
  458. package/dist/runner/src/manifest.d.ts +1 -1
  459. package/dist/runner/src/mcp-runtime-handlers.d.ts +6 -6
  460. package/dist/runner/src/mcp-runtime-handlers.d.ts.map +1 -1
  461. package/dist/runner/src/model-endpoint-discovery.d.ts +1 -1
  462. package/dist/runner/src/pending-turns.d.ts +3 -3
  463. package/dist/runner/src/platform-blocks.d.ts +5 -5
  464. package/dist/runner/src/platform-blocks.d.ts.map +1 -1
  465. package/dist/runner/src/prompt-turn-queue.d.ts +1 -1
  466. package/dist/runner/src/provider-quota-forwarder.d.ts +1 -1
  467. package/dist/runner/src/provider-quota-forwarder.d.ts.map +1 -1
  468. package/dist/runner/src/reconfigure-handler.d.ts +14 -14
  469. package/dist/runner/src/reconfigure-handler.d.ts.map +1 -1
  470. package/dist/runner/src/resource-handler.d.ts +1 -1
  471. package/dist/runner/src/resources.d.ts +5 -5
  472. package/dist/runner/src/resources.d.ts.map +1 -1
  473. package/dist/runner/src/runner-capabilities.d.ts +7 -7
  474. package/dist/runner/src/runtime-session-emit.d.ts +5 -5
  475. package/dist/runner/src/runtime-session-emit.d.ts.map +1 -1
  476. package/dist/runner/src/s3-presign-client.d.ts +1 -1
  477. package/dist/runner/src/serve-credentials.d.ts +7 -7
  478. package/dist/runner/src/serve-credentials.d.ts.map +1 -1
  479. package/dist/runner/src/serve.d.ts +32 -32
  480. package/dist/runner/src/serve.d.ts.map +1 -1
  481. package/dist/runner/src/session-builder.d.ts +41 -41
  482. package/dist/runner/src/session-builder.d.ts.map +1 -1
  483. package/dist/runner/src/session-capability-wiring.d.ts +9 -9
  484. package/dist/runner/src/session-capability-wiring.d.ts.map +1 -1
  485. package/dist/runner/src/session-stimulus.d.ts +1 -1
  486. package/dist/runner/src/session.d.ts +5 -5
  487. package/dist/runner/src/session.d.ts.map +1 -1
  488. package/dist/runner/src/skill-staging.d.ts +16 -16
  489. package/dist/runner/src/skill-staging.d.ts.map +1 -1
  490. package/dist/runner/src/turn-end-contract.d.ts +5 -5
  491. package/dist/runner/src/turn-end-contract.d.ts.map +1 -1
  492. package/dist/runner/src/turn-scheduler.d.ts +22 -22
  493. package/dist/runner/src/turn-scheduler.d.ts.map +1 -1
  494. package/dist/runner/src/turn-status-replay.d.ts +1 -1
  495. package/dist/runner/src/usage-limit-turn-hold.d.ts +1 -1
  496. package/dist/sdk/asset-manager.js +14 -14
  497. package/dist/sdk/bridge.js +22 -22
  498. package/dist/sdk/core.js +8 -8
  499. package/dist/sdk/flow.js +9 -9
  500. package/dist/sdk/index.js +46 -46
  501. package/dist/sdk/index.js.map +1 -1
  502. package/dist/sdk/resolver.js +8 -8
  503. package/dist/sdk/runner.js +42 -42
  504. package/dist/sdk/session.js +2 -2
  505. package/dist/sdk/src/agent-session.d.ts +1 -1
  506. package/dist/sdk/src/local-runtime.d.ts +1 -1
  507. package/dist/sdk/src/local-runtime.d.ts.map +1 -1
  508. package/dist/sdk/src/types.d.ts +1 -1
  509. package/dist/sdk/src/types.d.ts.map +1 -1
  510. package/dist/sdk/store.js +2 -2
  511. package/dist/sdk/transport/ws/server.js +9 -9
  512. package/dist/sdk/transport/ws.js +9 -9
  513. package/dist/sdk/transport.js +9 -9
  514. package/dist/sdk/types.js +1 -1
  515. package/dist/{serve-preflight-QXRKGOI5.js → serve-preflight-L4POEHNQ.js} +42 -42
  516. package/dist/serve-preflight-L4POEHNQ.js.map +1 -0
  517. package/dist/session/index.js +2 -2
  518. package/dist/session/src/dispatcher.d.ts +2 -2
  519. package/dist/sessions-2Q7SSYPT.js +5 -0
  520. package/dist/{sessions-DICDEONJ.js.map → sessions-2Q7SSYPT.js.map} +1 -1
  521. package/dist/{setup-AFZQNGKA.js → setup-AGYB4PKR.js} +47 -47
  522. package/dist/setup-AGYB4PKR.js.map +1 -0
  523. package/dist/{skills-YYYC6D5X.js → skills-2LMQ2IAD.js} +12 -12
  524. package/dist/{skills-YYYC6D5X.js.map → skills-2LMQ2IAD.js.map} +1 -1
  525. package/dist/source-GBMYD3RO.js +85 -0
  526. package/dist/{source-DGPCT5IC.js.map → source-GBMYD3RO.js.map} +1 -1
  527. package/dist/{source-manifest-publish-AGJ63JF2.js → source-manifest-publish-FK22TVQT.js} +54 -54
  528. package/dist/{source-manifest-publish-AGJ63JF2.js.map → source-manifest-publish-FK22TVQT.js.map} +1 -1
  529. package/dist/store/index.js +2 -2
  530. package/dist/store/src/store.d.ts +3 -3
  531. package/dist/store/src/store.d.ts.map +1 -1
  532. package/dist/transport/index.js +9 -9
  533. package/dist/transport/ws/server.js +9 -9
  534. package/dist/transport/ws.js +9 -9
  535. package/dist/tui/index.js +62 -62
  536. package/dist/tui/index.js.map +1 -1
  537. package/dist/tui/src/repl-session.d.ts +5 -5
  538. package/dist/tui/src/repl.d.ts +5 -5
  539. package/dist/tui/src/repl.d.ts.map +1 -1
  540. package/dist/types/index.js +1 -1
  541. package/dist/types/manifests.js +1 -1
  542. package/dist/types/src/agent-lifecycle.d.ts +1 -1
  543. package/dist/types/src/agent-lifecycle.d.ts.map +1 -1
  544. package/dist/types/src/ask-slots.d.ts +1 -1
  545. package/dist/types/src/capabilities.d.ts +1 -1
  546. package/dist/types/src/context-usage.d.ts +22 -22
  547. package/dist/types/src/context-usage.d.ts.map +1 -1
  548. package/dist/types/src/events.d.ts +49 -49
  549. package/dist/types/src/events.d.ts.map +1 -1
  550. package/dist/types/src/index.d.ts +2 -2
  551. package/dist/types/src/index.d.ts.map +1 -1
  552. package/dist/types/src/lifecycle.d.ts +6 -6
  553. package/dist/types/src/lifecycle.d.ts.map +1 -1
  554. package/dist/types/src/logging.d.ts +1 -1
  555. package/dist/types/src/manifests/agent.d.ts +3 -3
  556. package/dist/types/src/protocol.d.ts +4 -4
  557. package/dist/types/src/runtime.d.ts +38 -38
  558. package/dist/types/src/runtime.d.ts.map +1 -1
  559. package/dist/types/src/version.d.ts +22 -11
  560. package/dist/types/src/version.d.ts.map +1 -1
  561. package/dist/validator-DRHMJ457.js +5 -0
  562. package/dist/{validator-FA2PFW6N.js.map → validator-DRHMJ457.js.map} +1 -1
  563. package/dist/workspace-plugin/adapters/mcp.js +34 -34
  564. package/dist/workspace-plugin/adapters/omp.js +26 -26
  565. package/dist/workspace-plugin/adapters/omp.js.map +1 -1
  566. package/dist/workspace-plugin/index.js +3 -3
  567. package/dist/workspace-plugin/src/plugin.d.ts +5 -5
  568. package/dist/workspace-plugin/src/plugin.d.ts.map +1 -1
  569. package/dist/workspace-plugin/src/tools/flows.d.ts +1 -1
  570. package/dist/workspace-plugin/src/tools/validator.d.ts +6 -6
  571. package/dist/workspace-plugin/src/tools/validator.d.ts.map +1 -1
  572. package/dist/workspace-plugin/src/types.d.ts +2 -2
  573. package/dist/workspace-plugin/src/types.d.ts.map +1 -1
  574. package/package.json +59 -59
  575. package/dist/bridge/drivers/claude-sdk.js.map +0 -1
  576. package/dist/bridge/drivers/codex.js.map +0 -1
  577. package/dist/bridge/drivers/continue.js.map +0 -1
  578. package/dist/bridge/drivers/echo.js.map +0 -1
  579. package/dist/bridge/drivers/gemini.js +0 -18
  580. package/dist/bridge/drivers/goose.js.map +0 -1
  581. package/dist/bridge/drivers/omp.js.map +0 -1
  582. package/dist/bridge/drivers/opencode.js.map +0 -1
  583. package/dist/bridge/drivers/qwen.js.map +0 -1
  584. package/dist/bridge/src/codex/managed-driver.d.ts.map +0 -1
  585. package/dist/bridge/src/driver-capabilities.d.ts.map +0 -1
  586. package/dist/bridge/src/driver-model-check.d.ts.map +0 -1
  587. package/dist/bridge/src/drivers/_subprocess-cli.d.ts.map +0 -1
  588. package/dist/bridge/src/drivers/claude-context-usage.d.ts.map +0 -1
  589. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +0 -1
  590. package/dist/bridge/src/drivers/claude-self-turns.d.ts.map +0 -1
  591. package/dist/bridge/src/drivers/claude-tool-allowlist.d.ts.map +0 -1
  592. package/dist/bridge/src/drivers/codex.d.ts.map +0 -1
  593. package/dist/bridge/src/drivers/continue.d.ts.map +0 -1
  594. package/dist/bridge/src/drivers/echo.d.ts.map +0 -1
  595. package/dist/bridge/src/drivers/flow-script.d.ts.map +0 -1
  596. package/dist/bridge/src/drivers/gemini.d.ts.map +0 -1
  597. package/dist/bridge/src/drivers/goose.d.ts.map +0 -1
  598. package/dist/bridge/src/drivers/omp-models-yml.d.ts.map +0 -1
  599. package/dist/bridge/src/drivers/omp.d.ts.map +0 -1
  600. package/dist/bridge/src/drivers/opencode.d.ts.map +0 -1
  601. package/dist/bridge/src/drivers/qwen.d.ts.map +0 -1
  602. package/dist/bridge/src/drivers/recovery-policy.d.ts.map +0 -1
  603. package/dist/bridge/src/drivers/resume-probe.d.ts.map +0 -1
  604. package/dist/bridge/src/drivers/sanitize-assistant-text.d.ts.map +0 -1
  605. package/dist/bridge/src/drivers/scrub-transcript.d.ts.map +0 -1
  606. package/dist/bridge/src/provider-materialize/env-drivers.d.ts.map +0 -1
  607. package/dist/chunk-2GXSSZAM.js.map +0 -1
  608. package/dist/chunk-4ZTPYIBE.js.map +0 -1
  609. package/dist/chunk-5BEFNLOR.js.map +0 -1
  610. package/dist/chunk-5TBFN46Z.js.map +0 -1
  611. package/dist/chunk-6E6PKKAD.js.map +0 -1
  612. package/dist/chunk-7NT4F6SR.js.map +0 -1
  613. package/dist/chunk-7SCS64BG.js.map +0 -1
  614. package/dist/chunk-AJ7EGIFR.js.map +0 -1
  615. package/dist/chunk-C7WBGSBV.js.map +0 -1
  616. package/dist/chunk-COJIL7G4.js.map +0 -1
  617. package/dist/chunk-CQJH4G2K.js.map +0 -1
  618. package/dist/chunk-EAZECHPM.js.map +0 -1
  619. package/dist/chunk-EPBKISS5.js.map +0 -1
  620. package/dist/chunk-FPHNJE4M.js.map +0 -1
  621. package/dist/chunk-HT35SQZD.js.map +0 -1
  622. package/dist/chunk-IG5LZ3WU.js.map +0 -1
  623. package/dist/chunk-IP2IPMEH.js.map +0 -1
  624. package/dist/chunk-IZCR27MU.js.map +0 -1
  625. package/dist/chunk-J24CY3PF.js.map +0 -1
  626. package/dist/chunk-JTOWA6RS.js.map +0 -1
  627. package/dist/chunk-L2AMXONH.js.map +0 -1
  628. package/dist/chunk-MJHSLODD.js.map +0 -1
  629. package/dist/chunk-MKRWN7XP.js.map +0 -1
  630. package/dist/chunk-MRHVPQNO.js.map +0 -1
  631. package/dist/chunk-N46LQR46.js.map +0 -1
  632. package/dist/chunk-QG6GHTRM.js.map +0 -1
  633. package/dist/chunk-RPZVHXQ3.js.map +0 -1
  634. package/dist/chunk-V257LUBM.js.map +0 -1
  635. package/dist/chunk-VJ7NU7GD.js.map +0 -1
  636. package/dist/chunk-VSZWNUZC.js.map +0 -1
  637. package/dist/chunk-W4Q6CKJ5.js.map +0 -1
  638. package/dist/chunk-WST6UITC.js.map +0 -1
  639. package/dist/chunk-XJVBUDDJ.js.map +0 -1
  640. package/dist/chunk-XWOPZW26.js.map +0 -1
  641. package/dist/chunk-Y56YIT6J.js.map +0 -1
  642. package/dist/chunk-YROR332M.js.map +0 -1
  643. package/dist/chunk-ZQSOJH6I.js.map +0 -1
  644. package/dist/claude-code-2PU7TITZ.js +0 -10
  645. package/dist/cli/src/driver-error.d.ts +0 -28
  646. package/dist/cli/src/driver-error.d.ts.map +0 -1
  647. package/dist/connectors-RBGZ3M7G.js +0 -48
  648. package/dist/core/driver-targets.d.ts +0 -2
  649. package/dist/core/driver-targets.js +0 -4
  650. package/dist/core/driver-targets.js.map +0 -1
  651. package/dist/core/src/driver-sdk.d.ts.map +0 -1
  652. package/dist/core/src/driver-targets.d.ts +0 -71
  653. package/dist/core/src/driver-targets.d.ts.map +0 -1
  654. package/dist/open-registry-SOIS3TA2.js +0 -32
  655. package/dist/paths-JLNX7Y4X.js +0 -22
  656. package/dist/project-EX47PUBN.js +0 -84
  657. package/dist/runner/src/driver-swap-gate.d.ts.map +0 -1
  658. package/dist/serve-preflight-QXRKGOI5.js.map +0 -1
  659. package/dist/sessions-DICDEONJ.js +0 -5
  660. package/dist/setup-AFZQNGKA.js.map +0 -1
  661. package/dist/source-DGPCT5IC.js +0 -85
  662. package/dist/validator-FA2PFW6N.js +0 -5
  663. /package/dist/bridge/{drivers → harnesses}/gemini.js.map +0 -0
package/dist/cli/index.js CHANGED
@@ -1,65 +1,65 @@
1
1
  #!/usr/bin/env node
2
- import { makeValidateCommand, scanIdentities, isRecord } from '../chunk-ZQSOJH6I.js';
2
+ import { makeValidateCommand, scanIdentities, isRecord } from '../chunk-NMI2TWMH.js';
3
3
  import { storeNotInstallableReason } from '../chunk-PUK7TQT4.js';
4
- import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError, removeProviderEntry } from '../chunk-WG6V4ISA.js';
5
- import { makeInstallCommand, makeCheckCommand, makeCleanCommand, pinComposedAgents, reportRewritten, reportReplaced, reportRelocked, reportMoved, reportStoreNotChecked, globalProblems, editedConventionFiles, supportsInstallManifest, REF_HINT, reportInstalledSoftDeps } from '../chunk-FPHNJE4M.js';
4
+ import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError, removeProviderEntry } from '../chunk-3IXIEHUB.js';
5
+ import { makeInstallCommand, makeCheckCommand, makeCleanCommand, pinComposedAgents, reportRewritten, reportReplaced, reportRelocked, reportMoved, reportStoreNotChecked, globalProblems, editedConventionFiles, supportsInstallManifest, REF_HINT, reportInstalledSoftDeps } from '../chunk-WEH33JSG.js';
6
6
  import { createSpinner } from '../chunk-NESV47MF.js';
7
- import { getStoreConfig, storeFetch, isStoreAuthenticated, getStoreToken } from '../chunk-25ZVWL2R.js';
8
- import { makeSourceCommand, syncProjectSources, divergedSourceClones } from '../chunk-RO6VOM6Z.js';
9
- import { deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, exitOnLibrarySymlinks, resolveLibraryPublisherDetailed, getStoreIdentity, warnLibraryNameFallback, indexLibrary, warnIgnoredDomainFiles, removedDomainOption, rejectRemovedDomainOption, requireValidPublisherOrExit, exitOnManifestPublisherProblems, findAssetManifestFile, checkAssetFile, registerLibraryAsset, DOMAIN_REMOVED_HINT, reportLibrarySymlinks, checkAsset, manifestPublisherProblems, exitOnManifestRootProblems, manifestRequiresProblems, composeRefContext, registeredAssetKeys, assetEntryRef, duplicateAssetMessage, unresolvedManifestDependencies, findEntryManifestFile, unheldRequiresOfFile, warnLegacyBundleFiles, checkComposeKinds } from '../chunk-WOIRYY5L.js';
10
- import { openCatalogSource, LocalCatalogDisabledError, openLibraryManager, openLibrary } from '../chunk-X4ZZTHU3.js';
11
- import { AI_RESOURCES } from '../chunk-2PBSAH3Z.js';
12
- import { loadDeclaredPlugins } from '../chunk-ZX4KRWRB.js';
13
- import { status, enable, disable, install, uninstall } from '../chunk-HU5HVKY7.js';
14
- import { logErr, S, logOk, logInfo, logWarn, TARGET_DEFAULT_HINT, parseHarnessFilter, requireProjectConfig, deferredWarnings, warnPlaceholderBodies, warnFilesOnlyDelegates, reportLegacyOmpCopies, logNoProject, warnLegacyClaudeCopies, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-QG6GHTRM.js';
15
- import { getKindRegistry, getKnownKinds } from '../chunk-F6AA42GW.js';
7
+ import { getStoreConfig, storeFetch, isStoreAuthenticated, getStoreToken } from '../chunk-VXEYX73S.js';
8
+ import { makeSourceCommand, syncProjectSources, divergedSourceClones } from '../chunk-WYHQUCHR.js';
9
+ import { deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, exitOnLibrarySymlinks, resolveLibraryPublisherDetailed, getStoreIdentity, warnLibraryNameFallback, indexLibrary, warnIgnoredDomainFiles, removedDomainOption, rejectRemovedDomainOption, requireValidPublisherOrExit, exitOnManifestPublisherProblems, findAssetManifestFile, checkAssetFile, registerLibraryAsset, DOMAIN_REMOVED_HINT, reportLibrarySymlinks, checkAsset, manifestPublisherProblems, exitOnManifestRootProblems, manifestRequiresProblems, composeRefContext, registeredAssetKeys, assetEntryRef, duplicateAssetMessage, unresolvedManifestDependencies, findEntryManifestFile, unheldRequiresOfFile, warnLegacyBundleFiles, checkComposeKinds } from '../chunk-TKHJXPSB.js';
10
+ import { openCatalogSource, LocalCatalogDisabledError, openLibraryManager, openLibrary } from '../chunk-DHYSUJ3H.js';
11
+ import { AI_RESOURCES } from '../chunk-2UUKCROR.js';
12
+ import { loadDeclaredPlugins } from '../chunk-YGRZNFRO.js';
13
+ import { status, enable, disable, install, uninstall } from '../chunk-Y2TO2U7W.js';
14
+ import { logErr, S, logOk, logInfo, logWarn, TARGET_DEFAULT_HINT, parseHarnessFilter, requireProjectConfig, deferredWarnings, warnPlaceholderBodies, warnFilesOnlyDelegates, reportLegacyOmpCopies, logNoProject, warnLegacyClaudeCopies, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-KX2PT5Q4.js';
15
+ import { getKindRegistry, getKnownKinds } from '../chunk-ARWKK325.js';
16
16
  import { LocalSecretsProvider } from '../chunk-ILFGVSTJ.js';
17
- import { resolveInstanceAgentDir, instanceSessionOverrides, runAgentChat, isCompositionError, resolveSessionId, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, hashAgentFiles, createCompositionContentSource, compileComposition, manifestModelForDriver, instanceForSession, resolveAgentInstance, describeComposition, MarkdownStreamer, createFinalTextFallback } from '../chunk-7NT4F6SR.js';
18
- import '../chunk-A6SMCEEE.js';
19
- import '../chunk-WST6UITC.js';
20
- import '../chunk-2LSDMJI2.js';
21
- import '../chunk-R4I3VBSS.js';
22
- import '../chunk-R6O6YWU7.js';
23
- import '../chunk-PYJS5K7V.js';
17
+ import { resolveInstanceAgentDir, instanceSessionOverrides, runAgentChat, isCompositionError, resolveSessionId, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, hashAgentFiles, createCompositionContentSource, compileComposition, manifestModelForHarness, instanceForSession, resolveAgentInstance, describeComposition, MarkdownStreamer, createFinalTextFallback } from '../chunk-VJRTDKXS.js';
18
+ import '../chunk-VBI7HGHB.js';
19
+ import '../chunk-OULSJRXV.js';
20
+ import '../chunk-7TPYPVAH.js';
21
+ import '../chunk-SRODW6M2.js';
22
+ import '../chunk-WYZXSJBK.js';
23
+ import '../chunk-U56GGCC2.js';
24
24
  import '../chunk-6Z5KTFJT.js';
25
- import '../chunk-4ZTPYIBE.js';
26
- import '../chunk-X5YPJV4N.js';
27
- import '../chunk-XJVBUDDJ.js';
25
+ import '../chunk-KW37WNXY.js';
26
+ import '../chunk-3MWQKQUB.js';
27
+ import '../chunk-E3GPGTW3.js';
28
28
  import '../chunk-O7SG5PC2.js';
29
29
  import '../chunk-7QBNJTTQ.js';
30
30
  import '../chunk-O2SYFJWP.js';
31
- import '../chunk-Y5MBW5EU.js';
31
+ import '../chunk-AF432MS3.js';
32
32
  import '../chunk-32NA4TVC.js';
33
33
  import '../chunk-W3UDISS2.js';
34
- import '../chunk-PHRNUTSG.js';
35
- import { runFlow, resumeFlow } from '../chunk-J24CY3PF.js';
34
+ import '../chunk-ZFUZ5AKM.js';
35
+ import { runFlow, resumeFlow } from '../chunk-T2BDID2J.js';
36
36
  import '../chunk-4R6DROGN.js';
37
37
  import { parseSkillRequirements, validateRequirements } from '../chunk-FKU57Q5Q.js';
38
38
  import '../chunk-H6UVIKQ2.js';
39
- import '../chunk-HT35SQZD.js';
40
- import '../chunk-YIF2IJUA.js';
41
- import '../chunk-I7TWVK6N.js';
42
- import { checkModelProvider, checkDriverModel } from '../chunk-7SCS64BG.js';
43
- import '../chunk-COJIL7G4.js';
44
- import '../chunk-VJ7NU7GD.js';
45
- import '../chunk-VSZWNUZC.js';
39
+ import '../chunk-SNEE6UGY.js';
40
+ import '../chunk-6GWSDPBP.js';
41
+ import '../chunk-LN6QB7XI.js';
42
+ import { checkModelProvider, checkHarnessModel } from '../chunk-4XWLB7JB.js';
43
+ import '../chunk-WDAIWDLK.js';
44
+ import '../chunk-4DWBSTYA.js';
45
+ import '../chunk-JDR6ILCW.js';
46
46
  import '../chunk-LOO5CB5M.js';
47
- import '../chunk-AJ7EGIFR.js';
48
- import '../chunk-MKRWN7XP.js';
49
- import '../chunk-2GXSSZAM.js';
50
- import '../chunk-RPZVHXQ3.js';
51
- import '../chunk-YROR332M.js';
52
- import '../chunk-XWOPZW26.js';
53
- import { listDrivers, getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-CQJH4G2K.js';
54
- import '../chunk-6E6PKKAD.js';
47
+ import '../chunk-BIRW3HOG.js';
48
+ import '../chunk-7CV3HFWJ.js';
49
+ import '../chunk-GEQSUC6U.js';
50
+ import '../chunk-XFIEVEU7.js';
51
+ import '../chunk-7DN6JKP2.js';
52
+ import '../chunk-UVVVR4XO.js';
53
+ import { listHarnesses, getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-F2GOZMRA.js';
54
+ import '../chunk-G5SUWZEU.js';
55
55
  import '../chunk-IFGTRL2I.js';
56
- import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-IF6IA3PZ.js';
57
- import '../chunk-M3WPBTGJ.js';
56
+ import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-SZXGRHQQ.js';
57
+ import '../chunk-WD3L5QSU.js';
58
58
  import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind } from '../chunk-7RGTAEG6.js';
59
- import '../chunk-Y56YIT6J.js';
60
- import { LibraryEntryError, AssetManager, parseRefTolerant, MissingManifestError, parseCanonicalLockKey, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-MRHVPQNO.js';
61
- import { CatalogHttpError, libraryDirMissing, missingLibraryDirMessage, cloneOrInitGitRepo, trackOriginBranch, stampManifestPublisher, isGitRepo, ensureGitRepo, conflictingAssetRoot, scanUnlistedAssets, setManifestPublisher, LIBRARY_OWNERSHIPS, assertManifestEditable, installLibraryAsset, getStoreManifestsDir, assertValidLibraryName, unparsableAssetFiles, syncManifestWithDisk, renamedLibraryName, storeManifestFile, getDefaultValue, isSecretPlaceholder } from '../chunk-XM6T2AZ2.js';
62
- import { flowFileNameError, SEMVER_RE } from '../chunk-I37INEWE.js';
59
+ import '../chunk-JCPD4QRM.js';
60
+ import { LibraryEntryError, AssetManager, parseRefTolerant, MissingManifestError, parseCanonicalLockKey, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-OAHVKSQJ.js';
61
+ import { CatalogHttpError, libraryDirMissing, missingLibraryDirMessage, cloneOrInitGitRepo, trackOriginBranch, stampManifestPublisher, isGitRepo, ensureGitRepo, conflictingAssetRoot, scanUnlistedAssets, setManifestPublisher, LIBRARY_OWNERSHIPS, assertManifestEditable, installLibraryAsset, getStoreManifestsDir, assertValidLibraryName, unparsableAssetFiles, syncManifestWithDisk, renamedLibraryName, storeManifestFile, getDefaultValue, isSecretPlaceholder } from '../chunk-UL22SDGR.js';
62
+ import { flowFileNameError, SEMVER_RE } from '../chunk-QOM5Z62G.js';
63
63
  import '../chunk-7XSAW5OC.js';
64
64
  import '../chunk-BFMYYNDT.js';
65
65
  import '../chunk-3TXEJN4W.js';
@@ -67,28 +67,28 @@ import '../chunk-ISHJITXJ.js';
67
67
  import '../chunk-LNFKL23K.js';
68
68
  import '../chunk-X3RMRJNR.js';
69
69
  import '../chunk-NUELZWCF.js';
70
- import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-JTOWA6RS.js';
70
+ import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-3JKGY2YC.js';
71
71
  import '../chunk-NOA6EJXE.js';
72
72
  import '../chunk-KTBKW2FI.js';
73
73
  import '../chunk-UQ6LFBPZ.js';
74
- import '../chunk-C7WBGSBV.js';
75
- import { effectiveComposes, validatePreset, validateAgent, composeSlotDiagnostics, agentDeprecationDiagnostics, SLOT_ID_PATTERN } from '../chunk-335ENCCS.js';
76
- import { loadSettings, globalSettingsPath, resolveSettings, projectSettingsPath, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, resolveSettingsWithSources, readLock, globalInstallDir, GLOBAL_INSTALL_DIR_NAME, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile, aiResourceRoots } from '../chunk-N46LQR46.js';
74
+ import '../chunk-DUMTLYSO.js';
75
+ import { effectiveComposes, validatePreset, validateAgent, composeSlotDiagnostics, agentDeprecationDiagnostics, SLOT_ID_PATTERN } from '../chunk-E572OHGY.js';
76
+ import { loadSettings, globalSettingsPath, resolveSettings, projectSettingsPath, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, resolveSettingsWithSources, readLock, globalInstallDir, GLOBAL_INSTALL_DIR_NAME, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile, aiResourceRoots } from '../chunk-L4YKW5AY.js';
77
77
  import '../chunk-4GY63JU6.js';
78
- import { factoryAssetRoots } from '../chunk-TIIXG3PN.js';
79
- import { deployedDir } from '../chunk-5TBFN46Z.js';
80
- import { DEFAULT_DRIVER_ID, DRIVER_DEFAULTS } from '../chunk-5BEFNLOR.js';
78
+ import { factoryAssetRoots } from '../chunk-OTIB4D2K.js';
79
+ import { deployedDir } from '../chunk-5KRMNUL4.js';
80
+ import { DEFAULT_HARNESS_ID, HARNESS_DEFAULTS } from '../chunk-Z7ZEZZB6.js';
81
81
  import { findKindDirs } from '../chunk-MWXYN6NY.js';
82
- import { SourceEntryError, LegacyKeyError, resolveSkWorkspaceConfig, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, resolveAgentDefinitionDir, effectiveAgentInstances, matchPin, coerceVersion, loadSkWorkspaceConfig, isWorkspaceConfigFilename } from '../chunk-V257LUBM.js';
82
+ import { SourceEntryError, LegacyKeyError, resolveSkWorkspaceConfig, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, resolveAgentDefinitionDir, effectiveAgentInstances, matchPin, coerceVersion, loadSkWorkspaceConfig, findWorkspaceRoot, isWorkspaceConfigFilename, SKAILE_YAML_DEFAULT, AGENT_PROFILE_FIELDS } from '../chunk-OHNKYHRR.js';
83
83
  import { globalCacheRoot, globalSkaileDir, userConfigPath } from '../chunk-L5VSIPQD.js';
84
- import { DRIVER_TARGETS, SUPPORTED_DRIVER_TARGETS, driverTargetForDriver } from '../chunk-IG5LZ3WU.js';
84
+ import { HARNESS_TARGETS, SUPPORTED_HARNESSES, harnessNameForHarnessId } from '../chunk-VTETQCR6.js';
85
85
  import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest, decodeSkaileManifest, LIBRARY_GITIGNORE, librarySymlinkMessage, isNonAssetPath, isNonAssetDir, encodeSkaileManifest } from '../chunk-UQ33Y4DM.js';
86
86
  import { pluginTitle } from '../chunk-RVRB27AN.js';
87
87
  import { dedupeRequirements, parseFrontmatter, scanDirectory, parseRequires } from '../chunk-GOCWM7FN.js';
88
88
  import { parseAssetRef, isValidPublisher, PUBLISHER_HINT, isValidAssetName, ASSET_NAME_HINT, depToStr, assetRefToStr, slugifyAssetName, parseAssetRefLoose } from '../chunk-WDXZA7QW.js';
89
- import { portableSpawn, portableSpawnSync } from '../chunk-ICSCSM5D.js';
89
+ import { portableSpawn, portableSpawnSync } from '../chunk-ADPM6AYF.js';
90
90
  import { openSqlite } from '../chunk-DKXNKFKP.js';
91
- import { parseModelRef, resolveEntryBaseUrl } from '../chunk-MJHSLODD.js';
91
+ import { parseModelRef, resolveEntryBaseUrl } from '../chunk-LSI2IVFT.js';
92
92
  import '../chunk-C3CAXQMA.js';
93
93
  import { registerLogStore, LogStore, StdoutSink } from '../chunk-BOFL7GIF.js';
94
94
  import '../chunk-NSBPE2FW.js';
@@ -233,7 +233,7 @@ async function runSearch(kind, query, opts) {
233
233
  }
234
234
  }
235
235
  async function searchIndex(query, kind) {
236
- const { openLibrary: openLibrary2 } = await import('../open-library-PVTIUQUF.js');
236
+ const { openLibrary: openLibrary2 } = await import('../open-library-RJGJIW5H.js');
237
237
  const library = await openLibrary2();
238
238
  try {
239
239
  const { libraryDirMissing: libraryDirMissing2 } = await import('../library/index.js');
@@ -385,14 +385,14 @@ async function expandCompetingOrigins(entries, projectDir) {
385
385
  }
386
386
  async function searchLocal(query, kind, opts, showStore, airGapped) {
387
387
  const projectDir = path18__default.resolve(opts.projectDir);
388
- const { restoreSourceReaders } = await import('../source-DGPCT5IC.js');
388
+ const { restoreSourceReaders } = await import('../source-GBMYD3RO.js');
389
389
  for (const name of await restoreSourceReaders(projectDir)) {
390
390
  logInfo(`Re-registered source "${name}" (its library entry was removed elsewhere).`);
391
391
  }
392
392
  const factory = await searchFactory(projectDir, query, kind);
393
393
  let entries = unionEntries(await searchIndex(query, kind), factory);
394
394
  if (entries.length === 0 && !query && !kind && !airGapped) {
395
- const { autoSyncForSearch } = await import('../source-DGPCT5IC.js');
395
+ const { autoSyncForSearch } = await import('../source-GBMYD3RO.js');
396
396
  if (await autoSyncForSearch(projectDir)) {
397
397
  entries = unionEntries(await searchIndex(query, kind), factory);
398
398
  }
@@ -506,7 +506,7 @@ async function searchStore(query, kind, opts, airGapped) {
506
506
  logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
507
507
  return;
508
508
  }
509
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-PVTIUQUF.js');
509
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-RJGJIW5H.js');
510
510
  try {
511
511
  const remote = await openCatalogSource2({ projectDir: path18__default.resolve(opts.projectDir) });
512
512
  const assets = await remote.listAssets(kind ? { kind } : {});
@@ -615,7 +615,7 @@ function makeAddCommand() {
615
615
  return new Command("add").description("Add to skaile.yaml + deploy").argument("<ref>", "Asset reference (kind:@<publisher>/name#<version>)").option("--project-dir <path>", "Project directory", process.cwd()).option("--global", "Record in ~/.skaile/skaile.yaml + deploy to every global harness").option(
616
616
  "--harness <ids>",
617
617
  "Comma-separated global harnesses to deploy into (default: all resolved); implies --global"
618
- ).option("--target <agent>", `Driver target (${TARGET_DEFAULT_HINT})`).option(
618
+ ).option("--target <agent>", `Harness target (${TARGET_DEFAULT_HINT})`).option(
619
619
  "--link",
620
620
  "symlink local-path assets instead of copying (dev loop; machine-local, not for committing)"
621
621
  ).option(
@@ -638,7 +638,7 @@ function makeAddCommand() {
638
638
  projectDir: path18__default.resolve(opts.projectDir),
639
639
  global: opts.global || harnesses !== void 0,
640
640
  harnesses,
641
- driverTarget: opts.target,
641
+ harness: opts.target,
642
642
  verboseCollisions: opts.verbose === true,
643
643
  onLibraryCollision: (msg, keys) => {
644
644
  collisionKeys.push(...keys ?? [msg.split(" exists in ")[0]]);
@@ -706,7 +706,7 @@ function makeAddCommand() {
706
706
  );
707
707
  } else if (!installTargetOf(getKindRegistry(), kind))
708
708
  logInfo(
709
- `Recorded in skaile.yaml (store bytes are fetched + verified into .skaile/cache/store). ${kind} assets are not deployed into the driver target \u2014 they are composed when skaile runs the agent.`
709
+ `Recorded in skaile.yaml (store bytes are fetched + verified into .skaile/cache/store). ${kind} assets are not deployed into the harness target \u2014 they are composed when skaile runs the agent.`
710
710
  );
711
711
  else logInfo("Nothing to deploy (already up to date).");
712
712
  } else {
@@ -715,7 +715,7 @@ function makeAddCommand() {
715
715
  logOk(library ? `${a} (library ${library})` : a);
716
716
  }
717
717
  warnPlaceholderBodies(placeholderBodies, placeholderDescriptions);
718
- if (!am2.global) warnFilesOnlyDelegates(am2.projectDir, am2.driverTarget);
718
+ if (!am2.global) warnFilesOnlyDelegates(am2.projectDir, am2.harness);
719
719
  if (am2.global) {
720
720
  for (const a of added) {
721
721
  const { kind, name } = parseAssetRef(a);
@@ -764,7 +764,7 @@ function makeRemoveCommand() {
764
764
  return new Command("remove").description("Remove from skaile.yaml + undeploy").argument("<ref>", "Asset reference (kind:@publisher/name, or kind:name)").option("--project-dir <path>", "Project directory", process.cwd()).option("--global", "Remove from ~/.skaile/skaile.yaml + undeploy from every global harness").option(
765
765
  "--harness <ids>",
766
766
  "Comma-separated global harnesses to undeploy from (default: all resolved); implies --global"
767
- ).option("--target <agent>", `Driver target (${TARGET_DEFAULT_HINT})`).option(
767
+ ).option("--target <agent>", `Harness target (${TARGET_DEFAULT_HINT})`).option(
768
768
  "--force",
769
769
  "Remove even when another installed asset requires it, or when the folder is not one the lock holds"
770
770
  ).option("--no-soft-deps", "skip the orphaned-soft-dep prompt (don't remove, don't report)").action(async (ref, opts) => {
@@ -776,7 +776,7 @@ function makeRemoveCommand() {
776
776
  projectDir: path18__default.resolve(opts.projectDir),
777
777
  global: opts.global || harnesses !== void 0,
778
778
  harnesses,
779
- driverTarget: opts.target
779
+ harness: opts.target
780
780
  });
781
781
  let result;
782
782
  try {
@@ -834,8 +834,8 @@ function makeListCommand() {
834
834
  "-g, --global",
835
835
  "Read the global SSOT (~/.skaile/skaile.yaml); report state per harness"
836
836
  ).option("--harness <ids>", "Comma-separated global harnesses to report (implies --global)").option("--json", "Output as JSON").addOption(
837
- new Option("--target <agent>", `Driver target (${TARGET_DEFAULT_HINT})`).choices(
838
- SUPPORTED_DRIVER_TARGETS
837
+ new Option("--target <agent>", `Harness target (${TARGET_DEFAULT_HINT})`).choices(
838
+ SUPPORTED_HARNESSES
839
839
  )
840
840
  ).action(async (kind, opts) => {
841
841
  const harnesses = parseHarnessFilter(opts.harness);
@@ -846,7 +846,7 @@ function makeListCommand() {
846
846
  const am2 = new AssetManager({
847
847
  registry: getKindRegistry(),
848
848
  projectDir: path18__default.resolve(opts.projectDir),
849
- driverTarget: opts.target
849
+ harness: opts.target
850
850
  });
851
851
  let declared;
852
852
  try {
@@ -1014,7 +1014,7 @@ async function resolveInfoEntry(am2, ref, opts) {
1014
1014
  return { entry: match ?? deployed };
1015
1015
  }
1016
1016
  const lookup = opts.storeLookup ?? (async (filter) => {
1017
- const { resolveCatalogSource } = await import('../open-library-PVTIUQUF.js');
1017
+ const { resolveCatalogSource } = await import('../open-library-RJGJIW5H.js');
1018
1018
  const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
1019
1019
  try {
1020
1020
  return await source.listAssets(filter);
@@ -1030,7 +1030,7 @@ async function resolveInfoEntry(am2, ref, opts) {
1030
1030
  );
1031
1031
  return { entry: hit ? catalogAssetToEntry(hit) : null };
1032
1032
  } catch (err) {
1033
- const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-PVTIUQUF.js');
1033
+ const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-RJGJIW5H.js');
1034
1034
  const storeNote = err instanceof Error ? err.message : String(err);
1035
1035
  const disabled = err instanceof LocalCatalogDisabledError2 || /catalog\.url/i.test(storeNote);
1036
1036
  return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
@@ -1741,7 +1741,7 @@ function makeCatalogCommand() {
1741
1741
  return catalog;
1742
1742
  }
1743
1743
  async function runLocalCatalogTest(projectDir) {
1744
- const { resolveCatalogSource } = await import('../open-library-PVTIUQUF.js');
1744
+ const { resolveCatalogSource } = await import('../open-library-RJGJIW5H.js');
1745
1745
  let resolved;
1746
1746
  try {
1747
1747
  resolved = await resolveCatalogSource({ projectDir });
@@ -1917,7 +1917,7 @@ async function scanLibraryFlowEntries() {
1917
1917
  const { LocalIndex, resolveIndexPath, scanAuthoringLibraries } = await import('../library/index.js');
1918
1918
  const indexPath = resolveIndexPath();
1919
1919
  if (!existsSync(indexPath)) return entries;
1920
- const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-SOIS3TA2.js');
1920
+ const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-3QS3J7KO.js');
1921
1921
  const index = new LocalIndex({ indexPath });
1922
1922
  try {
1923
1923
  for (const { library, assets } of await scanAuthoringLibraries(index, getKindRegistry2())) {
@@ -2023,7 +2023,7 @@ function resolveSessionIds(projectDir) {
2023
2023
  return [];
2024
2024
  }
2025
2025
  }
2026
- var CONFIG_KEYS = ["provider", "model", "driver", "framework", "projectDir", "apiKey"];
2026
+ var CONFIG_KEYS = ["provider", "model", "harness", "framework", "projectDir", "apiKey"];
2027
2027
 
2028
2028
  // cli/src/commands/complete.ts
2029
2029
  function makeCompleteCommand(program2) {
@@ -2070,14 +2070,26 @@ function resolveDynamic(words, cword) {
2070
2070
  if (cmd === "config" && ["get", "set"].includes(sub) && isLast(3)) return CONFIG_KEYS;
2071
2071
  return null;
2072
2072
  }
2073
-
2074
- // cli/src/driver-error.ts
2075
- function unknownDriverMessage(driver) {
2076
- const known = listDrivers().map((d) => d.id);
2077
- if (known.includes(driver)) return void 0;
2078
- return `Unknown agent driver: "${driver}". Available: ${known.join(", ")}`;
2073
+ function unknownHarnessMessage(harness) {
2074
+ const known = listHarnesses().map((d) => d.id);
2075
+ if (known.includes(harness)) return void 0;
2076
+ return `Unknown agent harness: "${harness}". Available: ${known.join(", ")}`;
2077
+ }
2078
+ var warnedDriverFlag = false;
2079
+ function warnDriverFlagDeprecated() {
2080
+ if (warnedDriverFlag) return;
2081
+ warnedDriverFlag = true;
2082
+ console.error("--driver is deprecated; use --harness");
2083
+ }
2084
+ function driverAliasOption() {
2085
+ return new Option("--driver <name>", "Deprecated alias of --harness").hideHelp();
2079
2086
  }
2080
- function friendlyDriverError(err) {
2087
+ function foldDriverFlag(opts, fallback) {
2088
+ const { driver, ...rest } = opts;
2089
+ if (driver !== void 0) warnDriverFlagDeprecated();
2090
+ return { ...rest, harness: rest.harness ?? driver ?? fallback };
2091
+ }
2092
+ function friendlyHarnessError(err) {
2081
2093
  const e = err;
2082
2094
  if (!e) return null;
2083
2095
  const isSpawnEnoent = e.code === "ENOENT" && (e.syscall?.startsWith("spawn") === true || /^spawn .*ENOENT/.test(e.message ?? ""));
@@ -2086,9 +2098,9 @@ function friendlyDriverError(err) {
2086
2098
  const hint = e.hint ?? e.detail?.hint;
2087
2099
  const base = hint ?? "The configured agent binary is not installed or not on your PATH.";
2088
2100
  return `${base}
2089
- Try a different harness with \`--driver claude-sdk\`.`;
2101
+ Try a different harness with \`--harness claude-sdk\`.`;
2090
2102
  }
2091
- function driverErrorNotes(err) {
2103
+ function harnessErrorNotes(err) {
2092
2104
  const e = err;
2093
2105
  const notes = [];
2094
2106
  const category = e?.category ?? e?.detail?.category;
@@ -2102,7 +2114,12 @@ function driverErrorNotes(err) {
2102
2114
  }
2103
2115
 
2104
2116
  // cli/src/commands/config.ts
2105
- var PERSONAL_KEYS = /* @__PURE__ */ new Set(["driver", "model"]);
2117
+ var PERSONAL_KEYS = /* @__PURE__ */ new Set(["harness", "model"]);
2118
+ function resolveDriverKeyAlias(key) {
2119
+ if (key !== "driver") return key;
2120
+ console.error("`driver` is deprecated; use `harness`");
2121
+ return "harness";
2122
+ }
2106
2123
  var CATALOG_KEYS = /* @__PURE__ */ new Set(["catalog.url", "catalog.cache_ttl", "catalog.framing"]);
2107
2124
  async function setCatalogKey(key, raw) {
2108
2125
  const { CatalogConfigSchema, saveConfig } = await import('../library/index.js');
@@ -2160,7 +2177,7 @@ function collectWorkspaceDefaults(projectDir) {
2160
2177
  const wsDefaults = {};
2161
2178
  const ws = resolveSkWorkspaceConfig(projectDir);
2162
2179
  const p6 = ws.agent_config?.default ?? {};
2163
- if (p6.driver) wsDefaults.driver = p6.driver;
2180
+ if (p6.harness) wsDefaults.harness = p6.harness;
2164
2181
  if (p6.model) wsDefaults.model = p6.model;
2165
2182
  if (p6.skills_dir) wsDefaults.skills_dir = p6.skills_dir;
2166
2183
  if (p6.agents_dir) wsDefaults.agents_dir = p6.agents_dir;
@@ -2174,7 +2191,7 @@ function printEffectiveSection(config, sources) {
2174
2191
  console.log();
2175
2192
  console.log(S.heading(" Effective Config"));
2176
2193
  console.log(` ${S.rule(40)}`);
2177
- for (const key of ["driver", "model"]) {
2194
+ for (const key of ["harness", "model"]) {
2178
2195
  const value = config[key];
2179
2196
  if (value !== void 0) {
2180
2197
  const origin = sources[key];
@@ -2201,7 +2218,7 @@ function printModelSelectionSection(config, projectDir) {
2201
2218
  console.log(` ${S.rule(40)}`);
2202
2219
  const selector = config.model;
2203
2220
  if (!selector) {
2204
- console.log(` ${S.dim("no model: selector \u2014 the driver applies its own default")}`);
2221
+ console.log(` ${S.dim("no model: selector \u2014 the harness applies its own default")}`);
2205
2222
  } else {
2206
2223
  const resolved = parseModelRef(selector, registry, config.roles);
2207
2224
  if (!resolved) {
@@ -2233,8 +2250,8 @@ function printModelSelectionSection(config, projectDir) {
2233
2250
  }
2234
2251
  }
2235
2252
  function printResolvedPathsSection(config) {
2236
- const fw = config.driver ?? DEFAULT_DRIVER_ID;
2237
- const paths = DRIVER_DEFAULTS[fw] ?? DRIVER_DEFAULTS[DEFAULT_DRIVER_ID];
2253
+ const fw = config.harness ?? DEFAULT_HARNESS_ID;
2254
+ const paths = HARNESS_DEFAULTS[fw] ?? HARNESS_DEFAULTS[DEFAULT_HARNESS_ID];
2238
2255
  if (!paths) return;
2239
2256
  console.log();
2240
2257
  console.log(` ${S.heading("Resolved Paths")} ${S.dim(`(${fw})`)}`);
@@ -2309,7 +2326,8 @@ function unsetApiKeySugar(provider, projectDir) {
2309
2326
  function makeConfigCommand() {
2310
2327
  const cmd = new Command("config").description("Manage personal config (.skaile/settings.json)");
2311
2328
  cmd.command("show").description("Show effective config with sources").option("--project-dir <path>", "Project directory").action((opts) => showConfig(opts));
2312
- cmd.command("get <key>").description("Get an effective config value").option("--project-dir <path>", "Project directory").option("--global", "Read ~/.skaile/settings.json only, not the project's value").action(async (key, opts) => {
2329
+ cmd.command("get <key>").description("Get an effective config value").option("--project-dir <path>", "Project directory").option("--global", "Read ~/.skaile/settings.json only, not the project's value").action(async (rawKey, opts) => {
2330
+ const key = resolveDriverKeyAlias(rawKey);
2313
2331
  const projectDir = opts.projectDir ? path18__default.resolve(opts.projectDir) : process.cwd();
2314
2332
  if (CATALOG_KEYS.has(key)) {
2315
2333
  const { resolveConfig } = await import('../library/index.js');
@@ -2322,74 +2340,78 @@ function makeConfigCommand() {
2322
2340
  console.log(value ?? S.dim("(not set)"));
2323
2341
  });
2324
2342
  cmd.command("set <key> <value>").description(
2325
- "Set a personal config value (driver, model, apiKey.<provider>) or a catalog setting (catalog.url, catalog.cache_ttl, catalog.framing). `config unset <key>` removes every one of them again"
2326
- ).option("--project-dir <path>", "Project directory").option("--global", "Write to ~/.skaile/settings.json instead of project-local").action(async (key, value, opts) => {
2327
- const projectDir = opts.projectDir ? path18__default.resolve(opts.projectDir) : process.cwd();
2328
- if (CATALOG_KEYS.has(key)) {
2329
- await setCatalogKey(key, value);
2330
- return;
2331
- }
2332
- if (key === "provider" || key === "cloud" || key === "cloudConfig") {
2333
- logErr(
2334
- `'${key}' is no longer a setting \u2014 an endpoint is an AI provider registry entry and a session selects one with a model reference.
2343
+ "Set a personal config value (harness, model, apiKey.<provider>) or a catalog setting (catalog.url, catalog.cache_ttl, catalog.framing). `config unset <key>` removes every one of them again"
2344
+ ).option("--project-dir <path>", "Project directory").option("--global", "Write to ~/.skaile/settings.json instead of project-local").action(
2345
+ async (rawKey, value, opts) => {
2346
+ const key = resolveDriverKeyAlias(rawKey);
2347
+ const projectDir = opts.projectDir ? path18__default.resolve(opts.projectDir) : process.cwd();
2348
+ if (CATALOG_KEYS.has(key)) {
2349
+ await setCatalogKey(key, value);
2350
+ return;
2351
+ }
2352
+ if (key === "provider" || key === "cloud" || key === "cloudConfig") {
2353
+ logErr(
2354
+ `'${key}' is no longer a setting \u2014 an endpoint is an AI provider registry entry and a session selects one with a model reference.
2335
2355
  Define it: skaile providers add <id> --preset <preset>
2336
2356
  Select it: skaile config set model <providerId>/<modelId>`
2337
- );
2338
- process.exit(1);
2339
- }
2340
- const isApiKey = key.startsWith(API_KEY_PREFIX);
2341
- if (!PERSONAL_KEYS.has(key) && !isApiKey) {
2342
- logErr(
2343
- `'${key}' is not a personal setting.
2357
+ );
2358
+ process.exit(1);
2359
+ }
2360
+ const isApiKey = key.startsWith(API_KEY_PREFIX);
2361
+ if (!PERSONAL_KEYS.has(key) && !isApiKey) {
2362
+ logErr(
2363
+ `'${key}' is not a personal setting.
2344
2364
  Personal keys: ${[...PERSONAL_KEYS].join(", ")}, ${API_KEY_PREFIX}<provider>
2345
- Project config (driver, model, paths, resources) belongs in skaile.yaml`
2346
- );
2347
- process.exit(1);
2348
- }
2349
- if (isApiKey) {
2350
- setApiKeySugar(key.slice(API_KEY_PREFIX.length), value, projectDir);
2351
- return;
2352
- }
2353
- if (key === "driver") {
2354
- await loadDeclaredPlugins(projectDir);
2355
- const unknown = unknownDriverMessage(value);
2356
- if (unknown) {
2357
- logErr(unknown);
2365
+ Project config (harness, model, paths, resources) belongs in skaile.yaml`
2366
+ );
2358
2367
  process.exit(1);
2359
2368
  }
2360
- }
2361
- const projectDriver = key === "driver" ? resolveSkWorkspaceConfig(projectDir).agent_config?.default?.driver : void 0;
2362
- const filePath = opts.global ? globalSettingsPath() : projectSettingsPath(projectDir);
2363
- const existing = await loadSettings(filePath);
2364
- await saveSettings({ ...existing, [key]: value }, filePath);
2365
- logOk(`Set ${pc5.bold(key)} = ${value}`);
2366
- console.log(S.dim(` \u2192 ${filePath}`));
2367
- if (projectDriver && projectDriver !== value) {
2368
- logWarn(
2369
- `skaile.yaml sets driver ${projectDriver}; a personal driver does not override the project harness.
2370
- Remove this one again: skaile config unset driver${opts.global ? " --global" : ""}`
2371
- );
2372
- }
2373
- if (key === "model") {
2374
- const view = loadRegistryView({ projectDir });
2375
- const resolved = parseModelRef(value, view.merged);
2376
- if (!resolved) {
2369
+ if (isApiKey) {
2370
+ setApiKeySugar(key.slice(API_KEY_PREFIX.length), value, projectDir);
2371
+ return;
2372
+ }
2373
+ if (key === "harness") {
2374
+ await loadDeclaredPlugins(projectDir);
2375
+ const unknown = unknownHarnessMessage(value);
2376
+ if (unknown) {
2377
+ logErr(unknown);
2378
+ process.exit(1);
2379
+ }
2380
+ }
2381
+ const projectHarness = key === "harness" ? resolveSkWorkspaceConfig(projectDir).agent_config?.default?.harness : void 0;
2382
+ const filePath = opts.global ? globalSettingsPath() : projectSettingsPath(projectDir);
2383
+ const existing = await loadSettings(filePath);
2384
+ await saveSettings({ ...existing, [key]: value }, filePath);
2385
+ logOk(`Set ${pc5.bold(key)} = ${value}`);
2386
+ console.log(S.dim(` \u2192 ${filePath}`));
2387
+ if (projectHarness && projectHarness !== value) {
2377
2388
  logWarn(
2378
- "no AI provider is configured yet \u2014 add one with `skaile providers add <id> --preset <preset>`"
2389
+ `skaile.yaml sets harness ${projectHarness}; a personal harness does not override the project harness.
2390
+ Remove this one again: skaile config unset harness${opts.global ? " --global" : ""}`
2379
2391
  );
2380
- } else {
2381
- console.log(
2382
- S.dim(
2383
- ` \u2192 resolves to ${resolved.providerId}${resolved.providerModelId ? `/${resolved.providerModelId}` : ""}`
2384
- )
2385
- );
2386
- for (const warning of resolved.warnings) logWarn(warning);
2392
+ }
2393
+ if (key === "model") {
2394
+ const view = loadRegistryView({ projectDir });
2395
+ const resolved = parseModelRef(value, view.merged);
2396
+ if (!resolved) {
2397
+ logWarn(
2398
+ "no AI provider is configured yet \u2014 add one with `skaile providers add <id> --preset <preset>`"
2399
+ );
2400
+ } else {
2401
+ console.log(
2402
+ S.dim(
2403
+ ` \u2192 resolves to ${resolved.providerId}${resolved.providerModelId ? `/${resolved.providerModelId}` : ""}`
2404
+ )
2405
+ );
2406
+ for (const warning of resolved.warnings) logWarn(warning);
2407
+ }
2387
2408
  }
2388
2409
  }
2389
- });
2410
+ );
2390
2411
  cmd.command("unset <key>").description(
2391
- "Remove a value that `config set` wrote: driver, model, apiKey.<provider> (removes the provider entry) or catalog.url, catalog.cache_ttl, catalog.framing (the default applies again)"
2392
- ).option("--project-dir <path>", "Project directory").option("--global", "Remove from ~/.skaile/settings.json instead of project-local").action(async (key, opts) => {
2412
+ "Remove a value that `config set` wrote: harness, model, apiKey.<provider> (removes the provider entry) or catalog.url, catalog.cache_ttl, catalog.framing (the default applies again)"
2413
+ ).option("--project-dir <path>", "Project directory").option("--global", "Remove from ~/.skaile/settings.json instead of project-local").action(async (rawKey, opts) => {
2414
+ const key = resolveDriverKeyAlias(rawKey);
2393
2415
  const projectDir = opts.projectDir ? path18__default.resolve(opts.projectDir) : process.cwd();
2394
2416
  if (CATALOG_KEYS.has(key)) {
2395
2417
  await unsetCatalogKey(key);
@@ -2998,7 +3020,7 @@ function makeDebugCommand() {
2998
3020
  cmd.command("mcp").description("List MCP servers and their registered tools").action(async (_, parent) => {
2999
3021
  await runDebugQuery("mcp", parent.parent.opts());
3000
3022
  });
3001
- cmd.command("config").description("Dump driver config (API keys redacted)").action(async (_, parent) => {
3023
+ cmd.command("config").description("Dump harness config (API keys redacted)").action(async (_, parent) => {
3002
3024
  await runDebugQuery("config", parent.parent.opts());
3003
3025
  });
3004
3026
  cmd.command("state [store]").description("Read a shared state store snapshot (or list all stores)").action(async (store, _, parent) => {
@@ -3058,7 +3080,7 @@ async function ensureTargetsRegistered(projectDir) {
3058
3080
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
3059
3081
  const config = resolveSkWorkspaceConfig2(projectDir);
3060
3082
  if (config.plugins && config.plugins.length > 0) {
3061
- const { ensurePluginsLoaded } = await import('../plugin-store-G2GWAHSD.js');
3083
+ const { ensurePluginsLoaded } = await import('../plugin-store-MSH6GK6T.js');
3062
3084
  const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
3063
3085
  for (const f of result.failed) logWarn(f.error);
3064
3086
  }
@@ -3627,12 +3649,15 @@ async function status3(projectDir) {
3627
3649
  // cli/src/commands/integration.ts
3628
3650
  var ALL_HARNESSES = ["claude-code", "omp", "codex"];
3629
3651
  var TOGGLE_SUPPORTED = ["claude-code"];
3630
- function resolveDriver(driver) {
3631
- if (driver === "all") return [...ALL_HARNESSES];
3632
- if (driver === "claude-code" || driver === "omp" || driver === "codex") return [driver];
3633
- logErr(`Unknown driver "${driver}". Supported: ${ALL_HARNESSES.join(", ")}, all`);
3652
+ function resolveHarness(harness) {
3653
+ if (harness === "all") return [...ALL_HARNESSES];
3654
+ if (harness === "claude-code" || harness === "omp" || harness === "codex") return [harness];
3655
+ logErr(`Unknown harness "${harness}". Supported: ${ALL_HARNESSES.join(", ")}, all`);
3634
3656
  return null;
3635
3657
  }
3658
+ function withHarness(raw, fallback) {
3659
+ return foldDriverFlag(raw, fallback);
3660
+ }
3636
3661
  async function runHarnessStep(label, body) {
3637
3662
  try {
3638
3663
  await body();
@@ -3698,7 +3723,7 @@ ${await trustEntry(projectDir)}`
3698
3723
  }
3699
3724
  async function runInstall(opts) {
3700
3725
  const projectDir = path18__default.resolve(opts.projectDir);
3701
- const targets = resolveDriver(opts.driver);
3726
+ const targets = resolveHarness(opts.harness);
3702
3727
  if (!targets) return 1;
3703
3728
  let exitCode = 0;
3704
3729
  if (targets.includes("claude-code")) {
@@ -3761,7 +3786,7 @@ async function uninstallCodex(projectDir) {
3761
3786
  }
3762
3787
  async function runUninstall(opts) {
3763
3788
  const projectDir = path18__default.resolve(opts.projectDir);
3764
- const targets = resolveDriver(opts.driver);
3789
+ const targets = resolveHarness(opts.harness);
3765
3790
  if (!targets) return 1;
3766
3791
  let exitCode = 0;
3767
3792
  if (targets.includes("claude-code")) {
@@ -3866,8 +3891,8 @@ async function toggleTarget(t, projectDir, action3) {
3866
3891
  }
3867
3892
  async function runToggle(opts, action3) {
3868
3893
  const projectDir = path18__default.resolve(opts.projectDir);
3869
- const requestedAll = opts.driver === "all";
3870
- const targets = resolveDriver(opts.driver);
3894
+ const requestedAll = opts.harness === "all";
3895
+ const targets = resolveHarness(opts.harness);
3871
3896
  if (!targets) return 1;
3872
3897
  const usageError = checkToggleSupported(targets, requestedAll, action3);
3873
3898
  if (usageError !== null) return usageError;
@@ -3879,7 +3904,7 @@ async function runToggle(opts, action3) {
3879
3904
  }
3880
3905
  async function runStatus2(opts) {
3881
3906
  const projectDir = path18__default.resolve(opts.projectDir);
3882
- const targets = resolveDriver(opts.driver);
3907
+ const targets = resolveHarness(opts.harness);
3883
3908
  if (!targets) return 1;
3884
3909
  const rows = [];
3885
3910
  let exitCode = 0;
@@ -4008,23 +4033,23 @@ function makeIntegrationCommand() {
4008
4033
  const cmd = new Command("integration").description(
4009
4034
  "Manage skaile agent integration / workspace-plugin adapter (Claude Code / OMP / Codex)"
4010
4035
  );
4011
- cmd.command("install").description("Install skaile workspace plugin").option("--driver <name>", "Target: claude-code | omp | codex | all", "all").option("--project-dir <path>", "Project directory", process.cwd()).option(
4036
+ cmd.command("install").description("Install skaile workspace plugin").option("--harness <name>", "Target: claude-code | omp | codex | all (default: all)").addOption(driverAliasOption()).option("--project-dir <path>", "Project directory", process.cwd()).option(
4012
4037
  "--full",
4013
4038
  "Claude Code: generate the full .claude/plugins/skaile/ directory (MCP + hooks) instead of the default MCP-only install"
4014
- ).action(async (opts) => {
4015
- process.exitCode = await runInstall(opts);
4039
+ ).action(async (raw) => {
4040
+ process.exitCode = await runInstall(withHarness(raw, "all"));
4016
4041
  });
4017
- cmd.command("uninstall").description("Uninstall skaile workspace plugin").option("--driver <name>", "Target: claude-code | omp | codex | all", "all").option("--project-dir <path>", "Project directory", process.cwd()).action(async (opts) => {
4018
- process.exitCode = await runUninstall(opts);
4042
+ cmd.command("uninstall").description("Uninstall skaile workspace plugin").option("--harness <name>", "Target: claude-code | omp | codex | all (default: all)").addOption(driverAliasOption()).option("--project-dir <path>", "Project directory", process.cwd()).action(async (raw) => {
4043
+ process.exitCode = await runUninstall(withHarness(raw, "all"));
4019
4044
  });
4020
- cmd.command("enable").description("Enable an installed plugin (claude-code only)").option("--driver <name>", "Target: claude-code | all", "claude-code").option("--project-dir <path>", "Project directory", process.cwd()).action(async (opts) => {
4021
- process.exitCode = await runToggle(opts, "enable");
4045
+ cmd.command("enable").description("Enable an installed plugin (claude-code only)").option("--harness <name>", "Target: claude-code | all (default: claude-code)").addOption(driverAliasOption()).option("--project-dir <path>", "Project directory", process.cwd()).action(async (raw) => {
4046
+ process.exitCode = await runToggle(withHarness(raw, "claude-code"), "enable");
4022
4047
  });
4023
- cmd.command("disable").description("Disable an installed plugin (claude-code only)").option("--driver <name>", "Target: claude-code | all", "claude-code").option("--project-dir <path>", "Project directory", process.cwd()).action(async (opts) => {
4024
- process.exitCode = await runToggle(opts, "disable");
4048
+ cmd.command("disable").description("Disable an installed plugin (claude-code only)").option("--harness <name>", "Target: claude-code | all (default: claude-code)").addOption(driverAliasOption()).option("--project-dir <path>", "Project directory", process.cwd()).action(async (raw) => {
4049
+ process.exitCode = await runToggle(withHarness(raw, "claude-code"), "disable");
4025
4050
  });
4026
- cmd.command("status").description("Show install / enable status across harnesses").option("--driver <name>", "Target: claude-code | omp | codex | all", "all").option("--project-dir <path>", "Project directory", process.cwd()).action(async (opts) => {
4027
- process.exitCode = await runStatus2(opts);
4051
+ cmd.command("status").description("Show install / enable status across harnesses").option("--harness <name>", "Target: claude-code | omp | codex | all (default: all)").addOption(driverAliasOption()).option("--project-dir <path>", "Project directory", process.cwd()).action(async (raw) => {
4052
+ process.exitCode = await runStatus2(withHarness(raw, "all"));
4028
4053
  });
4029
4054
  cmd.command("omp-exec <kind> <name>").description(
4030
4055
  "Run one tool or slash command of the omp extension (used by .omp/extensions/skaile.ts)"
@@ -4220,7 +4245,7 @@ function assertManifestEditableOrExit(libraryPath) {
4220
4245
  }
4221
4246
  var DEPLOYED_COPY_DIRS = [
4222
4247
  ...new Set(
4223
- Object.values(DRIVER_TARGETS).flatMap(
4248
+ Object.values(HARNESS_TARGETS).flatMap(
4224
4249
  (t) => Object.values(t.local).filter((d) => typeof d === "string")
4225
4250
  )
4226
4251
  )
@@ -4427,7 +4452,7 @@ function remoteBranches(url) {
4427
4452
  return r.stdout.split("\n").map((line) => line.split(" ")[1]?.replace(/^refs\/heads\//, "")).filter((b) => !!b);
4428
4453
  }
4429
4454
  async function warnIfNotGithubRemote(name, url) {
4430
- const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-RUQTKTJU.js');
4455
+ const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-KKQ2ULLX.js');
4431
4456
  if (!isGithubRemote(url)) logWarn(notGithubRemoteMessage(name, url));
4432
4457
  }
4433
4458
  function scaffoldLibraryFiles(dir, name) {
@@ -5149,16 +5174,16 @@ function makeLibraryCommand() {
5149
5174
  "With --create-repo: create the repo private (the store only accepts public repos)"
5150
5175
  ).option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; push nothing and call no store endpoint").action(
5151
5176
  async (lib, opts) => {
5152
- const { runLibraryPublish } = await import('../library-publish-RUQTKTJU.js');
5177
+ const { runLibraryPublish } = await import('../library-publish-KKQ2ULLX.js');
5153
5178
  await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
5154
5179
  }
5155
5180
  );
5156
5181
  cmd.command("register <lib>").description("Register the library's manifest without pushing (bytes already on github)").option("--asset <ref>", "Publish only the single asset matching this ref/name").option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; call no store endpoint").action(async (lib, opts) => {
5157
- const { runLibraryRegister } = await import('../library-publish-RUQTKTJU.js');
5182
+ const { runLibraryRegister } = await import('../library-publish-KKQ2ULLX.js');
5158
5183
  await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
5159
5184
  });
5160
5185
  cmd.command("yank <lib>").description("Retract the library's published assets from the store").option("--asset <ref>", "Yank only the single asset matching this ref/name").action(async (lib, opts) => {
5161
- const { runLibraryYank } = await import('../library-publish-RUQTKTJU.js');
5186
+ const { runLibraryYank } = await import('../library-publish-KKQ2ULLX.js');
5162
5187
  await withStoreErrorHandling(() => runLibraryYank(lib, opts));
5163
5188
  });
5164
5189
  return cmd;
@@ -5308,7 +5333,7 @@ function colorLine(line) {
5308
5333
  if (/error|Error|ERROR|failed|Failed/.test(line)) return pc5.red(line);
5309
5334
  if (/connector|MCP|tool/.test(line)) return pc5.yellow(line);
5310
5335
  if (/rebuilt|registered|ready/.test(line)) return pc5.green(line);
5311
- if (/\[driver\]/.test(line)) return pc5.cyan(line);
5336
+ if (/\[harness\]/.test(line)) return pc5.cyan(line);
5312
5337
  if (/\[serve\]/.test(line)) return pc5.dim(line);
5313
5338
  return line;
5314
5339
  }
@@ -5818,7 +5843,7 @@ function scheduleSoftDepPreview() {
5818
5843
  }
5819
5844
  async function loadAssets() {
5820
5845
  softDepPreviewCache.clear();
5821
- const { gatherAssetFeeds } = await import('../asset-feeds-QGLI3AXI.js');
5846
+ const { gatherAssetFeeds } = await import('../asset-feeds-PXUWCXVI.js');
5822
5847
  const { entries, notes } = await gatherAssetFeeds(am, am.projectDir);
5823
5848
  if (notes.length > 0) {
5824
5849
  state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
@@ -6022,7 +6047,7 @@ function reconcileCollapsedSets(rows) {
6022
6047
  async function loadSourcesAndLibraries() {
6023
6048
  try {
6024
6049
  const [{ openLibraryManager: openLibraryManager2 }, { getGlobalCacheDir: getGlobalCacheDir2, globalSkaileDir: globalSkaileDir2 }] = await Promise.all([
6025
- import('../open-library-PVTIUQUF.js'),
6050
+ import('../open-library-RJGJIW5H.js'),
6026
6051
  import('../core/index.js')
6027
6052
  ]);
6028
6053
  const { manager, library, close } = await openLibraryManager2();
@@ -6993,8 +7018,8 @@ function makeManageCommand() {
6993
7018
  }
6994
7019
  function makeMcpServerCommand() {
6995
7020
  return new Command("mcp-server").description("Start skaile workspace MCP server (stdio transport)").option("--project-dir <path>", "Project directory (default: cwd)", process.cwd()).action(async (opts) => {
6996
- const path41 = await import('path');
6997
- const projectDir = path41.default.resolve(opts.projectDir);
7021
+ const path42 = await import('path');
7022
+ const projectDir = path42.default.resolve(opts.projectDir);
6998
7023
  const { LogStore: LogStore2, StdoutSink: StdoutSink2, registerLogStore: registerLogStore2 } = await import('../core/logging.js');
6999
7024
  registerLogStore2(
7000
7025
  new LogStore2({
@@ -7207,6 +7232,35 @@ function changeLabel(change, base) {
7207
7232
  return `move ${rel(change.from)} \u2192 ${rel(change.to)}`;
7208
7233
  }
7209
7234
  }
7235
+ function resolveMode(opts, writeFlag = "--write") {
7236
+ if (opts.write && opts.dryRun) {
7237
+ logErr(`${writeFlag} and --dry-run are mutually exclusive.`);
7238
+ process.exit(1);
7239
+ }
7240
+ return opts.write === true;
7241
+ }
7242
+ function printChanges(changes, base) {
7243
+ for (const change of changes) {
7244
+ console.log();
7245
+ console.log(colorizeDiff(renderChange(change, base)).trimEnd());
7246
+ }
7247
+ }
7248
+ function finish(changes, write, base, writeFlag = "--write") {
7249
+ console.log();
7250
+ if (changes.length === 0) {
7251
+ logOk("Nothing to migrate.");
7252
+ return;
7253
+ }
7254
+ if (!write) {
7255
+ logInfo(
7256
+ `Dry run: ${changes.length} file change(s) planned, nothing written. Re-run with ${writeFlag} to apply.`
7257
+ );
7258
+ return;
7259
+ }
7260
+ applyChanges2(changes);
7261
+ logOk(`Applied ${changes.length} file change(s):`);
7262
+ for (const change of changes) console.log(` ${S.dim(changeLabel(change, base))}`);
7263
+ }
7210
7264
 
7211
7265
  // cli/src/commands/migrate-agents.ts
7212
7266
  var TARGET_SPEC_VERSION = "0.2";
@@ -8139,6 +8193,142 @@ function planAssetMigration(options) {
8139
8193
  unknownTypes
8140
8194
  };
8141
8195
  }
8196
+ var SKAILE_YAML_SUFFIX = ".skaile.yaml";
8197
+ var OLD_KEY = "driver";
8198
+ var NEW_KEY = "harness";
8199
+ var AGENT_CONFIG_KEYS = ["agent-config", "agent_config", "agentConfig"];
8200
+ function renameInMap(map, where, notes) {
8201
+ const oldIdx = map.items.findIndex((p6) => isScalar(p6.key) && p6.key.value === OLD_KEY);
8202
+ if (oldIdx < 0) return false;
8203
+ const hasNew = map.items.some((p6) => isScalar(p6.key) && p6.key.value === NEW_KEY);
8204
+ if (hasNew) {
8205
+ map.items.splice(oldIdx, 1);
8206
+ notes.push(
8207
+ `${where}: both \`harness\` and \`driver\` set; kept \`harness\`, dropped \`driver\``
8208
+ );
8209
+ } else {
8210
+ (map.items[oldIdx]?.key).value = NEW_KEY;
8211
+ notes.push(`${where}: \`driver\` \u2192 \`harness\``);
8212
+ }
8213
+ return true;
8214
+ }
8215
+ function migrateHarnessYaml(text, label = SKAILE_YAML_DEFAULT) {
8216
+ const doc = parseDocument(text);
8217
+ if (doc.errors.length > 0) {
8218
+ throw new Error(`invalid YAML: ${doc.errors[0]?.message ?? "parse error"}`);
8219
+ }
8220
+ const root = doc.contents;
8221
+ if (!isMap(root)) return { output: text, notes: [] };
8222
+ const notes = [];
8223
+ let changed = false;
8224
+ for (const key of AGENT_CONFIG_KEYS) {
8225
+ const block = root.get(key, true);
8226
+ if (!isMap(block)) continue;
8227
+ const flat = AGENT_PROFILE_FIELDS.some((f) => {
8228
+ const v = block.get(f, true);
8229
+ return isScalar(v) && typeof v.value === "string";
8230
+ });
8231
+ if (flat) {
8232
+ changed = renameInMap(block, `${label}: ${key}`, notes) || changed;
8233
+ continue;
8234
+ }
8235
+ for (const pair of block.items) {
8236
+ if (!isMap(pair.value) || !isScalar(pair.key)) continue;
8237
+ changed = renameInMap(pair.value, `${label}: ${key}.${String(pair.key.value)}`, notes) || changed;
8238
+ }
8239
+ }
8240
+ return { output: changed ? String(doc) : text, notes };
8241
+ }
8242
+ function migrateHarnessSettings(text, label = "settings.json") {
8243
+ let parsed;
8244
+ try {
8245
+ parsed = JSON.parse(text);
8246
+ } catch {
8247
+ return { output: text, notes: [] };
8248
+ }
8249
+ if (!isRecord(parsed) || !(OLD_KEY in parsed)) return { output: text, notes: [] };
8250
+ const notes = [];
8251
+ const out = {};
8252
+ for (const [k, v] of Object.entries(parsed)) {
8253
+ if (k !== OLD_KEY) {
8254
+ out[k] = v;
8255
+ } else if (NEW_KEY in parsed) {
8256
+ notes.push(
8257
+ `${label}: both \`harness\` and \`driver\` set; kept \`harness\`, dropped \`driver\``
8258
+ );
8259
+ } else {
8260
+ out[NEW_KEY] = v;
8261
+ notes.push(`${label}: \`driver\` \u2192 \`harness\``);
8262
+ }
8263
+ }
8264
+ const trailing = text.endsWith("\n") ? "\n" : "";
8265
+ return { output: `${JSON.stringify(out, null, 2)}${trailing}`, notes };
8266
+ }
8267
+ function workspaceYamlFiles(projectDir) {
8268
+ const files = [];
8269
+ if (existsSync(path18__default.join(projectDir, SKAILE_YAML_DEFAULT))) {
8270
+ files.push(path18__default.join(projectDir, SKAILE_YAML_DEFAULT));
8271
+ }
8272
+ try {
8273
+ for (const entry of readdirSync(projectDir).sort()) {
8274
+ if (entry.endsWith(SKAILE_YAML_SUFFIX)) files.push(path18__default.join(projectDir, entry));
8275
+ }
8276
+ } catch {
8277
+ }
8278
+ return files;
8279
+ }
8280
+ function planHarnessMigration(opts) {
8281
+ const changes = [];
8282
+ const notes = [];
8283
+ const seen = /* @__PURE__ */ new Set();
8284
+ const plan = (file, rewrite) => {
8285
+ if (seen.has(file) || !existsSync(file)) return;
8286
+ seen.add(file);
8287
+ const before = readText(file);
8288
+ const label = path18__default.basename(file);
8289
+ let result;
8290
+ try {
8291
+ result = rewrite(before, label);
8292
+ } catch (error) {
8293
+ notes.push(`${file}: skipped \u2014 ${error.message}`);
8294
+ return;
8295
+ }
8296
+ if (result.output === before) return;
8297
+ notes.push(...result.notes);
8298
+ changes.push({ type: "write", path: file, before, after: result.output });
8299
+ };
8300
+ for (const file of workspaceYamlFiles(opts.projectDir)) plan(file, migrateHarnessYaml);
8301
+ plan(projectSettingsPath(opts.projectDir), migrateHarnessSettings);
8302
+ plan(globalSettingsPath(), migrateHarnessSettings);
8303
+ return { changes, notes };
8304
+ }
8305
+ function runMigrateHarness(opts) {
8306
+ const apply = resolveMode(
8307
+ { write: opts.apply === true || opts.write === true, dryRun: opts.dryRun },
8308
+ "--apply"
8309
+ );
8310
+ const cwd = process.cwd();
8311
+ const projectDir = path18__default.resolve(opts.projectDir ?? findWorkspaceRoot(cwd) ?? cwd);
8312
+ const plan = planHarnessMigration({ projectDir });
8313
+ for (const note of plan.notes) console.log(` ${note}`);
8314
+ printChanges(plan.changes, projectDir);
8315
+ finish(plan.changes, apply, projectDir, "--apply");
8316
+ }
8317
+ function addMigrateHarnessCommand(migrate) {
8318
+ migrate.command("harness").description(
8319
+ "Rename the `driver` key to `harness` in skaile.yaml agent-config and settings.json"
8320
+ ).option("--project-dir <path>", "Project directory (default: the workspace root of the cwd)").option("--apply", "Write the changes (default: print a diff and write nothing)").option("--write", "Same as --apply").option("--dry-run", "Print the diff and write nothing (the default)").addHelpText(
8321
+ "after",
8322
+ `
8323
+ Rewrites (the connector/mount \`driver\` of connectors: and mounts: is never touched):
8324
+ skaile.yaml agent-config.<profile>.driver -> harness (also the flat agent-config: { driver: \u2026 } shape)
8325
+ .skaile/settings.json, ~/.skaile/settings.json driver -> harness
8326
+ A profile or file that sets both keeps \`harness\` and drops \`driver\`.
8327
+
8328
+ Dry run by default: prints a unified diff per file. Pass --apply to write.
8329
+ `
8330
+ ).action((opts) => runMigrateHarness(opts));
8331
+ }
8142
8332
 
8143
8333
  // cli/src/commands/migrate-legacy-entry.ts
8144
8334
  var ANTHROPIC_VERSION_HEADER = { "anthropic-version": "2023-06-01" };
@@ -8237,9 +8427,9 @@ function legacyProfileEntry(inputs = {}) {
8237
8427
 
8238
8428
  // cli/src/commands/migrate-providers.ts
8239
8429
  var LEGACY_PROFILE_KEYS = ["provider", "cloud", "cloud_config", "cloudConfig"];
8240
- var AGENT_CONFIG_KEYS = ["agent-config", "agent_config", "agentConfig"];
8430
+ var AGENT_CONFIG_KEYS2 = ["agent-config", "agent_config", "agentConfig"];
8241
8431
  var FLAT_PROFILE_FIELDS = [
8242
- "driver",
8432
+ "harness",
8243
8433
  "provider",
8244
8434
  "cloud",
8245
8435
  "model",
@@ -8281,7 +8471,7 @@ function workspaceConfigFiles(dir) {
8281
8471
  return names.filter((name) => isWorkspaceConfigFilename(name)).sort().map((name) => path18__default.join(dir, name));
8282
8472
  }
8283
8473
  function readAgentConfigBlock(raw) {
8284
- const key = AGENT_CONFIG_KEYS.find((candidate) => raw[candidate] !== void 0);
8474
+ const key = AGENT_CONFIG_KEYS2.find((candidate) => raw[candidate] !== void 0);
8285
8475
  if (!key) return void 0;
8286
8476
  const block = raw[key];
8287
8477
  if (typeof block !== "object" || block === null || Array.isArray(block)) return void 0;
@@ -8532,35 +8722,6 @@ Rewrites (run on a repo root):
8532
8722
 
8533
8723
  Dry run by default: prints a unified diff per file. Pass --write to apply.
8534
8724
  `;
8535
- function resolveMode(opts) {
8536
- if (opts.write && opts.dryRun) {
8537
- logErr("--write and --dry-run are mutually exclusive.");
8538
- process.exit(1);
8539
- }
8540
- return opts.write === true;
8541
- }
8542
- function printChanges(changes, base) {
8543
- for (const change of changes) {
8544
- console.log();
8545
- console.log(colorizeDiff(renderChange(change, base)).trimEnd());
8546
- }
8547
- }
8548
- function finish(changes, write, base) {
8549
- console.log();
8550
- if (changes.length === 0) {
8551
- logOk("Nothing to migrate.");
8552
- return;
8553
- }
8554
- if (!write) {
8555
- logInfo(
8556
- `Dry run: ${changes.length} file change(s) planned, nothing written. Re-run with --write to apply.`
8557
- );
8558
- return;
8559
- }
8560
- applyChanges2(changes);
8561
- logOk(`Applied ${changes.length} file change(s):`);
8562
- for (const change of changes) console.log(` ${S.dim(changeLabel(change, base))}`);
8563
- }
8564
8725
  async function runMigrateAgents(paths, opts) {
8565
8726
  const write = resolveMode(opts);
8566
8727
  const base = process.cwd();
@@ -8625,6 +8786,7 @@ function makeMigrateCommand() {
8625
8786
  cmd.command("assets").description(
8626
8787
  "Move persona/ruleset files, bundles and the publication half of skaile.yaml onto the kind model"
8627
8788
  ).argument("[root]", "Repo root to migrate (default: current directory)").option("--write", "Apply the changes (default: print a diff and write nothing)").option("--dry-run", "Print the diff and write nothing (the default)").addHelpText("after", ASSETS_HELP).action((root, opts) => runMigrateAssets(root, opts));
8789
+ addMigrateHarnessCommand(cmd);
8628
8790
  return cmd;
8629
8791
  }
8630
8792
  function makeNpxCommand() {
@@ -8680,7 +8842,7 @@ function makeNpxCommand() {
8680
8842
  registry: getKindRegistry(),
8681
8843
  projectDir,
8682
8844
  global: opts.global,
8683
- driverTarget: opts.target,
8845
+ harness: opts.target,
8684
8846
  onLibraryCollision: warnings.push
8685
8847
  });
8686
8848
  spinner.start(`Installing ${skillRef}`);
@@ -8771,15 +8933,15 @@ function outdatedStatus(e) {
8771
8933
  }
8772
8934
  function makeOutdatedCommand() {
8773
8935
  return new Command("outdated").description("Check for assets behind their repo or library").argument("[ref]", "Check a specific asset (kind:@publisher/name)").option("--project-dir <path>", "Project directory", process.cwd()).addOption(
8774
- new Option("--target <agent>", `Driver target (${TARGET_DEFAULT_HINT})`).choices(
8775
- SUPPORTED_DRIVER_TARGETS
8936
+ new Option("--target <agent>", `Harness target (${TARGET_DEFAULT_HINT})`).choices(
8937
+ SUPPORTED_HARNESSES
8776
8938
  )
8777
8939
  ).action(async (filter, opts) => {
8778
8940
  requireProjectConfig(opts.projectDir);
8779
8941
  const am2 = new AssetManager({
8780
8942
  registry: getKindRegistry(),
8781
8943
  projectDir: path18__default.resolve(opts.projectDir),
8782
- driverTarget: opts.target
8944
+ harness: opts.target
8783
8945
  });
8784
8946
  const entries = await am2.outdated();
8785
8947
  if (entries.length === 0) {
@@ -8884,7 +9046,7 @@ function action2(fn) {
8884
9046
  };
8885
9047
  }
8886
9048
  async function reconcileAndReport(projectDir, plugins, opts = {}) {
8887
- const { reconcilePlugins } = await import('../plugin-store-G2GWAHSD.js');
9049
+ const { reconcilePlugins } = await import('../plugin-store-MSH6GK6T.js');
8888
9050
  if (plugins.length === 0) {
8889
9051
  logInfo("No plugins declared \u2014 nothing to reconcile.");
8890
9052
  return;
@@ -8899,13 +9061,13 @@ async function reconcileAndReport(projectDir, plugins, opts = {}) {
8899
9061
  }
8900
9062
  }
8901
9063
  async function verifyPluginLoads(projectDir, spec) {
8902
- const { loadPlugins } = await import('../plugin-store-G2GWAHSD.js');
9064
+ const { loadPlugins } = await import('../plugin-store-MSH6GK6T.js');
8903
9065
  const { createPluginRegistry } = await import('../plugin-registry/index.js');
8904
9066
  const registry = createPluginRegistry();
8905
9067
  const result = await loadPlugins(projectDir, [spec], registry);
8906
9068
  const failure = result.failed[0];
8907
9069
  if (failure) throw new Error(failure.error);
8908
- const contributed = ["driver", "connector", "deployTarget"].flatMap(
9070
+ const contributed = ["harness", "connector", "deployTarget"].flatMap(
8909
9071
  (kind) => registry.list(kind).map((m) => `${kind} ${m.id}`)
8910
9072
  );
8911
9073
  logOk(`Loaded ${S.cmd(spec)}${contributed.length > 0 ? ` (${contributed.join(", ")})` : ""}`);
@@ -8913,7 +9075,7 @@ async function verifyPluginLoads(projectDir, spec) {
8913
9075
  async function runInstall2(spec, opts) {
8914
9076
  const projectDir = path18__default.resolve(opts.projectDir);
8915
9077
  const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
8916
- const { specName, rollbackPluginStore } = await import('../plugin-store-G2GWAHSD.js');
9078
+ const { specName, rollbackPluginStore } = await import('../plugin-store-MSH6GK6T.js');
8917
9079
  const yamlPath = path18__default.join(projectDir, "skaile.yaml");
8918
9080
  if (!existsSync(yamlPath)) {
8919
9081
  throw new Error(`no skaile.yaml in ${projectDir}; run \`skaile init\` first`);
@@ -8942,7 +9104,7 @@ async function runInstall2(spec, opts) {
8942
9104
  async function runRemove(name, opts) {
8943
9105
  const projectDir = path18__default.resolve(opts.projectDir);
8944
9106
  const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
8945
- const { specName } = await import('../plugin-store-G2GWAHSD.js');
9107
+ const { specName } = await import('../plugin-store-MSH6GK6T.js');
8946
9108
  const yamlPath = path18__default.join(projectDir, "skaile.yaml");
8947
9109
  if (!existsSync(yamlPath)) {
8948
9110
  logInfo(`No plugin matching ${S.cmd(name)}: there is no skaile.yaml in ${projectDir}.`);
@@ -8974,7 +9136,7 @@ async function runList(opts) {
8974
9136
  const registry = createPluginRegistry();
8975
9137
  if (declared.length > 0) {
8976
9138
  try {
8977
- const { loadPlugins } = await import('../plugin-store-G2GWAHSD.js');
9139
+ const { loadPlugins } = await import('../plugin-store-MSH6GK6T.js');
8978
9140
  const result = await loadPlugins(projectDir, declared, registry);
8979
9141
  for (const f of result.failed) logWarn(f.error);
8980
9142
  } catch (err) {
@@ -8982,7 +9144,7 @@ async function runList(opts) {
8982
9144
  }
8983
9145
  }
8984
9146
  const kinds = [
8985
- { kind: "driver", label: "drivers" },
9147
+ { kind: "harness", label: "harnesses" },
8986
9148
  { kind: "connector", label: "connectors" },
8987
9149
  { kind: "deployTarget", label: "deploy targets" }
8988
9150
  ];
@@ -9000,7 +9162,7 @@ async function runList(opts) {
9000
9162
  }
9001
9163
  function makePluginCommand() {
9002
9164
  const cmd = new Command("plugin").description(
9003
- "Manage registry plugins (drivers / connectors / deploy targets) declared in skaile.yaml"
9165
+ "Manage registry plugins (harnesses / connectors / deploy targets) declared in skaile.yaml"
9004
9166
  );
9005
9167
  cmd.command("install <spec>").description("Add a plugin spec to skaile.yaml plugins and reconcile the store").option("--project-dir <path>", "Project directory", process.cwd()).action(action2(runInstall2));
9006
9168
  cmd.command("remove <name>").description("Remove a plugin (by package name) from skaile.yaml plugins and reconcile").option("--project-dir <path>", "Project directory", process.cwd()).action(action2(runRemove));
@@ -9242,8 +9404,8 @@ function redactSecrets(preset, findings) {
9242
9404
  }
9243
9405
  return { preset: next, keys };
9244
9406
  }
9245
- function placeholderKey(itemId, path41) {
9246
- return `${itemId}_${path41}`.replace(/[^a-zA-Z0-9]+/g, "_").replace(/^_+|_+$/g, "").toUpperCase();
9407
+ function placeholderKey(itemId, path42) {
9408
+ return `${itemId}_${path42}`.replace(/[^a-zA-Z0-9]+/g, "_").replace(/^_+|_+$/g, "").toUpperCase();
9247
9409
  }
9248
9410
  function setAtPath(root, segments, value) {
9249
9411
  let node = root;
@@ -9835,17 +9997,17 @@ function resolveSingleShotAgentDir(projectDir, agentDefinition) {
9835
9997
  }
9836
9998
  return dir;
9837
9999
  }
9838
- async function printCompositionDryRun(projectDir, agentDir, driver, model, instanceIdOverride) {
10000
+ async function printCompositionDryRun(projectDir, agentDir, harness, model, instanceIdOverride) {
9839
10001
  const manifest = agentDir ? await loadAgentManifest(agentDir) : void 0;
9840
- const refusal = checkDriverModel(driver, {
10002
+ const refusal = checkHarnessModel(harness, {
9841
10003
  registry: loadRegistryView({ projectDir }).merged,
9842
- model: model ?? manifestModelForDriver(manifest, driver)
10004
+ model: model ?? manifestModelForHarness(manifest, harness)
9843
10005
  });
9844
10006
  if (refusal) throw new Error(refusal);
9845
10007
  console.log();
9846
10008
  console.log(` ${S.label("Project dir:")} ${projectDir}`);
9847
10009
  console.log(` ${S.label("Agent dir:")} ${agentDir ?? S.dim("(none)")}`);
9848
- console.log(` ${S.label("Driver:")} ${driver}${model ? S.dim(` / ${model}`) : ""}`);
10010
+ console.log(` ${S.label("Harness:")} ${harness}${model ? S.dim(` / ${model}`) : ""}`);
9849
10011
  console.log(` ${S.warn("(dry run \u2014 no model will be started)")}`);
9850
10012
  console.log();
9851
10013
  if (!agentDir || !manifest) {
@@ -9863,7 +10025,7 @@ async function printCompositionDryRun(projectDir, agentDir, driver, model, insta
9863
10025
  asset: { manifest, dir: agentDir },
9864
10026
  projectDir,
9865
10027
  registry: getKindRegistry(),
9866
- host: { nativeSubagents: driverTargetForDriver(driver) !== void 0 },
10028
+ host: { nativeSubagents: harnessNameForHarnessId(harness) !== void 0 },
9867
10029
  dryRun: true
9868
10030
  });
9869
10031
  console.log(` ${S.label("Instance:")} ${instanceId2}`);
@@ -9886,7 +10048,7 @@ async function printCompositionDryRun(projectDir, agentDir, driver, model, insta
9886
10048
  }
9887
10049
  async function findSkillFile(projectDir, skill) {
9888
10050
  const name = skill.trim().replace(/^skill:/, "").replace(/^@[^/]+\//, "").replace(/#.*$/, "");
9889
- for (const target of SUPPORTED_DRIVER_TARGETS) {
10051
+ for (const target of SUPPORTED_HARNESSES) {
9890
10052
  const file = path18__default.join(deployedDir("skill", name, target, false, projectDir), "SKILL.md");
9891
10053
  if (fs8__default.existsSync(file)) return file;
9892
10054
  }
@@ -9999,11 +10161,11 @@ function isNearFlowId(typed, id) {
9999
10161
  const b = id.toLowerCase();
10000
10162
  return a.length >= 3 && (b.includes(a) || a.includes(b) || editDistance2(a, b) <= 2);
10001
10163
  }
10002
- function driverOptionDescription() {
10003
- return `Harness to run (${listDrivers().map((d) => d.id).join(", ")})`;
10164
+ function harnessOptionDescription() {
10165
+ return `Harness to run (${listHarnesses().map((d) => d.id).join(", ")})`;
10004
10166
  }
10005
10167
  function makeRunCommand() {
10006
- const cmd = new Command("run").description("Start a flow or run a single-shot text prompt").argument("[flow-id-or-text...]", "Flow ID or text prompt").option("--project-dir <path>", "Project directory", process.cwd()).option("--driver <name>", driverOptionDescription()).option("--model <name>", "Model override").option("--label <label>", "Human-readable session label").option("--dry-run", "Print plan without executing (single-shot: resolved composition items)").option(
10168
+ const cmd = new Command("run").description("Start a flow or run a single-shot text prompt").argument("[flow-id-or-text...]", "Flow ID or text prompt").option("--project-dir <path>", "Project directory", process.cwd()).option("--harness <name>", harnessOptionDescription()).addOption(driverAliasOption()).option("--model <name>", "Model override").option("--label <label>", "Human-readable session label").option("--dry-run", "Print plan without executing (single-shot: resolved composition items)").option(
10007
10169
  "--agent-definition <ref|path>",
10008
10170
  "Agent asset for this one invocation (agent:@pub/name, ai-assets://\u2026, or a directory with agent.yaml); single-shot prompts only"
10009
10171
  ).option(
@@ -10012,7 +10174,7 @@ function makeRunCommand() {
10012
10174
  ).option("--skill <name>", "Skill name (for single-shot mode)").action(async (positional, opts) => {
10013
10175
  const projectDir = path18__default.resolve(opts.projectDir);
10014
10176
  await loadDeclaredPlugins(projectDir);
10015
- const cliDriver = opts.driver;
10177
+ const cliHarness = foldDriverFlag(opts).harness;
10016
10178
  const dryRun = opts.dryRun ?? false;
10017
10179
  const agentDefinition = opts.agentDefinition?.trim() || void 0;
10018
10180
  const instanceId2 = opts.instance?.trim() || void 0;
@@ -10046,17 +10208,17 @@ function makeRunCommand() {
10046
10208
  flowId = selected;
10047
10209
  }
10048
10210
  const config = await resolveSettings(projectDir, {
10049
- driver: cliDriver,
10211
+ harness: cliHarness,
10050
10212
  model: opts.model
10051
10213
  });
10052
- const driver = config.driver ?? DEFAULT_DRIVER_ID;
10214
+ const harness = config.harness ?? DEFAULT_HARNESS_ID;
10053
10215
  const model = config.model;
10054
- const unknownDriver = unknownDriverMessage(driver);
10055
- if (unknownDriver) {
10056
- logErr(unknownDriver);
10216
+ const unknownHarness = unknownHarnessMessage(harness);
10217
+ if (unknownHarness) {
10218
+ logErr(unknownHarness);
10057
10219
  process.exit(1);
10058
10220
  }
10059
- const providerRefusal = checkModelProvider(driver, {
10221
+ const providerRefusal = checkModelProvider(harness, {
10060
10222
  registry: loadRegistryView({ projectDir }).merged,
10061
10223
  model
10062
10224
  });
@@ -10104,7 +10266,7 @@ function makeRunCommand() {
10104
10266
  try {
10105
10267
  const agentDir = instanceId2 ? resolveInstanceAgentDir(projectDir, resolveSkWorkspaceConfig(projectDir), instanceId2) : resolveSingleShotAgentDir(projectDir, agentDefinition);
10106
10268
  if (dryRun) {
10107
- await printCompositionDryRun(projectDir, agentDir, driver, model, instanceId2);
10269
+ await printCompositionDryRun(projectDir, agentDir, harness, model, instanceId2);
10108
10270
  if (opts.skill && !await printSkillDryRun(projectDir, opts.skill)) {
10109
10271
  process.exit(1);
10110
10272
  }
@@ -10116,7 +10278,7 @@ function makeRunCommand() {
10116
10278
  projectDir,
10117
10279
  ...agentDir ? { agentDir } : {},
10118
10280
  ...instanceId2 ? { instanceId: instanceId2 } : {},
10119
- driver: config.driver,
10281
+ harness: config.harness,
10120
10282
  model: instanceModel ?? config.model,
10121
10283
  ...instanceModel ? { modelRef: instanceModel } : {},
10122
10284
  ...overrides.maxTurns !== void 0 ? { maxTurns: overrides.maxTurns } : {},
@@ -10129,12 +10291,12 @@ function makeRunCommand() {
10129
10291
  logErr(`${err.code}: ${err.message}`);
10130
10292
  process.exit(1);
10131
10293
  }
10132
- const friendly = friendlyDriverError(err);
10294
+ const friendly = friendlyHarnessError(err);
10133
10295
  if (friendly) {
10134
10296
  logErr(friendly);
10135
10297
  } else {
10136
10298
  logErr(err instanceof Error ? err.message : String(err));
10137
- for (const note of driverErrorNotes(err)) console.error(` ${S.dim(note)}`);
10299
+ for (const note of harnessErrorNotes(err)) console.error(` ${S.dim(note)}`);
10138
10300
  }
10139
10301
  process.exit(1);
10140
10302
  }
@@ -10152,7 +10314,7 @@ function makeRunCommand() {
10152
10314
  console.log();
10153
10315
  console.log(` ${S.label("Flow:")} ${S.heading(flow.name)}`);
10154
10316
  console.log(` ${S.label("Project dir:")} ${projectDir}`);
10155
- console.log(` ${S.label("Driver:")} ${driver}${model ? S.dim(` / ${model}`) : ""}`);
10317
+ console.log(` ${S.label("Harness:")} ${harness}${model ? S.dim(` / ${model}`) : ""}`);
10156
10318
  if (opts.label) console.log(` ${S.label("Label:")} ${opts.label}`);
10157
10319
  if (dryRun) console.log(` ${S.warn("(dry run \u2014 no agent will be started)")}`);
10158
10320
  console.log();
@@ -10160,7 +10322,7 @@ function makeRunCommand() {
10160
10322
  await runFlow({
10161
10323
  projectDir,
10162
10324
  flowPath,
10163
- driver,
10325
+ harness,
10164
10326
  model,
10165
10327
  sessionLabel: opts.label,
10166
10328
  dryRun,
@@ -10168,7 +10330,7 @@ function makeRunCommand() {
10168
10330
  onLog: (line) => console.log(line)
10169
10331
  });
10170
10332
  } catch (err) {
10171
- const friendly = friendlyDriverError(err);
10333
+ const friendly = friendlyHarnessError(err);
10172
10334
  logErr(friendly ?? (err instanceof Error ? err.message : String(err)));
10173
10335
  process.exit(1);
10174
10336
  }
@@ -10212,7 +10374,7 @@ function makeResumeCommand() {
10212
10374
  onLog: (line) => console.log(line)
10213
10375
  });
10214
10376
  } catch (err) {
10215
- const friendly = friendlyDriverError(err);
10377
+ const friendly = friendlyHarnessError(err);
10216
10378
  logErr(friendly ?? (err instanceof Error ? err.message : String(err)));
10217
10379
  process.exit(1);
10218
10380
  }
@@ -10236,7 +10398,7 @@ function makeStatusCommand() {
10236
10398
  console.log(` ${S.label("Status:")} ${statusColor(session.status ?? "unknown")}`);
10237
10399
  if (session.error) console.log(` ${S.label("Error:")} ${session.error}`);
10238
10400
  console.log(
10239
- ` ${S.label("Driver:")} ${session.driver}${session.model ? S.dim(` / ${session.model}`) : ""}`
10401
+ ` ${S.label("Harness:")} ${session.harness}${session.model ? S.dim(` / ${session.model}`) : ""}`
10240
10402
  );
10241
10403
  console.log(` ${S.label("Updated:")} ${session.updatedAt} ${S.dim(`(${age}s ago)`)}`);
10242
10404
  console.log(
@@ -10253,19 +10415,19 @@ function makeClearCommand() {
10253
10415
  });
10254
10416
  }
10255
10417
  function makeReplCommand() {
10256
- return new Command("repl").description("Start an interactive agent session").option("--project-dir <path>", "Project directory").option("--driver <name>", driverOptionDescription()).option("--model <name>", "Model override").option("--resume", "Resume last session").option("--resume-session <id>", "Resume specific session").option(
10418
+ return new Command("repl").description("Start an interactive agent session").option("--project-dir <path>", "Project directory").option("--harness <name>", harnessOptionDescription()).addOption(driverAliasOption()).option("--model <name>", "Model override").option("--resume", "Resume last session").option("--resume-session <id>", "Resume specific session").option(
10257
10419
  "--instance <id>",
10258
10420
  "Run the skaile.yaml `agents:` instance <id> (`default` is the primary `agent:`) with its overrides"
10259
10421
  ).action(async (opts) => {
10260
- const { findWorkspaceRoot } = await import('../core/index.js');
10422
+ const { findWorkspaceRoot: findWorkspaceRoot2 } = await import('../core/index.js');
10261
10423
  const { startRepl } = await import('../tui/index.js');
10262
10424
  const os2 = await import('os');
10263
10425
  const userCwd = path18__default.resolve(opts.projectDir ?? process.cwd());
10264
- const workspaceRoot = findWorkspaceRoot(userCwd);
10426
+ const workspaceRoot = findWorkspaceRoot2(userCwd);
10265
10427
  const instanceId2 = opts.instance?.trim() || void 0;
10266
10428
  let projectDir;
10267
10429
  let agentCwd;
10268
- let driverOverride = opts.driver;
10430
+ let harnessOverride = foldDriverFlag(opts).harness;
10269
10431
  if (workspaceRoot) {
10270
10432
  projectDir = workspaceRoot;
10271
10433
  agentCwd = userCwd;
@@ -10293,13 +10455,13 @@ function makeReplCommand() {
10293
10455
  projectDir = tmpDir;
10294
10456
  agentCwd = userCwd;
10295
10457
  logOk(`Temporary workspace: ${S.cmd(tmpDir)}`);
10296
- if (!driverOverride) {
10458
+ if (!harnessOverride) {
10297
10459
  const claudeDir = path18__default.join(os2.homedir(), ".claude");
10298
10460
  if (fs8__default.existsSync(claudeDir)) {
10299
- driverOverride = "claude-sdk";
10461
+ harnessOverride = "claude-sdk";
10300
10462
  logInfo(`Detected ${S.cmd("~/.claude")} \u2192 using ${S.cmd("claude-sdk")} harness`);
10301
10463
  } else {
10302
- driverOverride = "omp";
10464
+ harnessOverride = "omp";
10303
10465
  logInfo(`Using ${S.cmd("omp")} harness`);
10304
10466
  }
10305
10467
  }
@@ -10307,7 +10469,7 @@ function makeReplCommand() {
10307
10469
  }
10308
10470
  await loadDeclaredPlugins(projectDir);
10309
10471
  const effective = await resolveSettings(projectDir, {
10310
- driver: driverOverride,
10472
+ harness: harnessOverride,
10311
10473
  model: opts.model
10312
10474
  });
10313
10475
  let effectiveModel = effective.model;
@@ -10317,7 +10479,7 @@ function makeReplCommand() {
10317
10479
  } catch {
10318
10480
  }
10319
10481
  }
10320
- const providerRefusal = checkModelProvider(effective.driver ?? DEFAULT_DRIVER_ID, {
10482
+ const providerRefusal = checkModelProvider(effective.harness ?? DEFAULT_HARNESS_ID, {
10321
10483
  registry: loadRegistryView({ projectDir }).merged,
10322
10484
  model: effectiveModel
10323
10485
  });
@@ -10329,14 +10491,14 @@ function makeReplCommand() {
10329
10491
  await startRepl({
10330
10492
  projectDir,
10331
10493
  cwd: agentCwd !== projectDir ? agentCwd : void 0,
10332
- driver: driverOverride,
10494
+ harness: harnessOverride,
10333
10495
  model: opts.model,
10334
10496
  resume: opts.resume,
10335
10497
  resumeSessionId: opts.resumeSession,
10336
10498
  ...instanceId2 ? { instanceId: instanceId2 } : {}
10337
10499
  });
10338
10500
  } catch (err) {
10339
- logErr(friendlyDriverError(err) ?? (err instanceof Error ? err.message : String(err)));
10501
+ logErr(friendlyHarnessError(err) ?? (err instanceof Error ? err.message : String(err)));
10340
10502
  process.exit(1);
10341
10503
  }
10342
10504
  });
@@ -10393,12 +10555,12 @@ function makeServeCommand() {
10393
10555
  ).option("--project-dir <path>", "Project directory", process.cwd()).option(
10394
10556
  "--managed-codex-config <path>",
10395
10557
  "Explicit private host configuration for managed Codex"
10396
- ).option("--driver <name>", "Override driver").option("--model <name>", "Override model").option("--provider <name>", "Override provider").option(
10558
+ ).option("--harness <name>", "Override harness").addOption(driverAliasOption()).option("--model <name>", "Override model").option("--provider <name>", "Override provider").option(
10397
10559
  "--session-id <id>",
10398
10560
  "Label for the session; does not restore the conversation (use --resume-session-id)"
10399
10561
  ).option(
10400
10562
  "--resume-session-id <id>",
10401
- "driverSessionId of an earlier session (from its session_info event); restores that conversation"
10563
+ "harnessSessionId of an earlier session (from its session_info event); restores that conversation"
10402
10564
  ).option(
10403
10565
  "--providers <ids>",
10404
10566
  "Restrict the AI provider registry to these entry ids (comma-separated)"
@@ -10409,7 +10571,8 @@ function makeServeCommand() {
10409
10571
  "--with-codex",
10410
10572
  "Include the Codex harness in the compiled binary (used with --compile-test)"
10411
10573
  ).action(
10412
- async (opts) => {
10574
+ async (rawOpts) => {
10575
+ const opts = foldDriverFlag(rawOpts);
10413
10576
  if (opts.compileTest && opts.managedCodexConfig)
10414
10577
  throw new Error("Managed Codex configuration is unsupported with --compile-test");
10415
10578
  if (opts.compileTest) {
@@ -10455,10 +10618,10 @@ function makeServeCommand() {
10455
10618
  }
10456
10619
  const providers = parseProviderIds(opts.providers);
10457
10620
  const modelEndpoint = parseModelEndpointFlag(opts.modelEndpoint);
10458
- const { checkDriverSdk, checkModelEndpointPeer, checkServeModel } = await import('../serve-preflight-QXRKGOI5.js');
10459
- const driverProblem = managedCodex ? null : await checkDriverSdk(opts.projectDir, opts.driver);
10460
- if (driverProblem) {
10461
- logErr(driverProblem);
10621
+ const { checkHarnessSdk, checkModelEndpointPeer, checkServeModel } = await import('../serve-preflight-L4POEHNQ.js');
10622
+ const harnessProblem = managedCodex ? null : await checkHarnessSdk(opts.projectDir, opts.harness);
10623
+ if (harnessProblem) {
10624
+ logErr(harnessProblem);
10462
10625
  process.exitCode = 1;
10463
10626
  return;
10464
10627
  }
@@ -10469,7 +10632,7 @@ function makeServeCommand() {
10469
10632
  return;
10470
10633
  }
10471
10634
  const modelProblem = managedCodex ? null : await checkServeModel(opts.projectDir, {
10472
- driver: opts.driver,
10635
+ harness: opts.harness,
10473
10636
  model: opts.model,
10474
10637
  providers
10475
10638
  });
@@ -10498,7 +10661,7 @@ function makeServeCommand() {
10498
10661
  // `nix` deploy targets set it for children meant to outlive them.
10499
10662
  exitOnBrokenPipe: process.env.SKAILE_SERVE_EXIT_ON_BROKEN_STDOUT !== "0",
10500
10663
  projectDir: opts.projectDir,
10501
- driver: opts.driver,
10664
+ harness: opts.harness,
10502
10665
  model: opts.model,
10503
10666
  provider: opts.provider,
10504
10667
  sessionId: opts.sessionId,
@@ -10516,12 +10679,12 @@ function makeServeCommand() {
10516
10679
  );
10517
10680
  }
10518
10681
  async function ensurePluginsLoadedForServe(projectDir) {
10519
- const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-34QNVIGB.js');
10682
+ const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-DE53KG3E.js');
10520
10683
  try {
10521
10684
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
10522
10685
  const config = resolveSkWorkspaceConfig2(projectDir);
10523
10686
  if (!config.plugins || config.plugins.length === 0) return;
10524
- const { ensurePluginsLoaded } = await import('../plugin-store-G2GWAHSD.js');
10687
+ const { ensurePluginsLoaded } = await import('../plugin-store-MSH6GK6T.js');
10525
10688
  const { pluginRegistry } = await import('../plugin-registry/index.js');
10526
10689
  const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
10527
10690
  if (result.loaded.length > 0) {
@@ -10535,14 +10698,14 @@ async function ensurePluginsLoadedForServe(projectDir) {
10535
10698
  }
10536
10699
  }
10537
10700
  async function runCompileTest(opts) {
10538
- const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-34QNVIGB.js');
10701
+ const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-DE53KG3E.js');
10539
10702
  const { tmpdir } = await import('os');
10540
10703
  const { dirname: dirname3, join: join6, resolve: resolve4 } = await import('path');
10541
10704
  const { fileURLToPath: fileURLToPath2 } = await import('url');
10542
- const { unlinkSync, existsSync: existsSync21 } = await import('fs');
10705
+ const { unlinkSync, existsSync: existsSync22 } = await import('fs');
10543
10706
  const { spawn } = await import('child_process');
10544
10707
  const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
10545
- const { MONOREPO_ROOT } = await import('../paths-JLNX7Y4X.js');
10708
+ const { MONOREPO_ROOT } = await import('../paths-QAV4C3KX.js');
10546
10709
  if (MONOREPO_ROOT === null) {
10547
10710
  logErr2("--compile-test is only available inside the skaile-dev workspace.");
10548
10711
  logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
@@ -10586,7 +10749,7 @@ async function runCompileTest(opts) {
10586
10749
  }
10587
10750
  logOk2(`Binary built (${S2.dim(outfile)})`);
10588
10751
  const serveArgs = [outfile, "serve", "--port", opts.port, "--project-dir", opts.projectDir];
10589
- if (opts.driver) serveArgs.push("--driver", opts.driver);
10752
+ if (opts.harness) serveArgs.push("--harness", opts.harness);
10590
10753
  if (opts.model) serveArgs.push("--model", opts.model);
10591
10754
  if (opts.provider) serveArgs.push("--provider", opts.provider);
10592
10755
  if (opts.sessionId) serveArgs.push("--session-id", opts.sessionId);
@@ -10604,7 +10767,7 @@ async function runCompileTest(opts) {
10604
10767
  } catch {
10605
10768
  }
10606
10769
  try {
10607
- if (existsSync21(outfile)) unlinkSync(outfile);
10770
+ if (existsSync22(outfile)) unlinkSync(outfile);
10608
10771
  } catch {
10609
10772
  }
10610
10773
  }
@@ -11372,7 +11535,7 @@ function makeShowCommand() {
11372
11535
  const am2 = new AssetManager({
11373
11536
  registry: getKindRegistry(),
11374
11537
  projectDir: path18__default.resolve(opts.projectDir),
11375
- driverTarget: opts.target
11538
+ harness: opts.target
11376
11539
  });
11377
11540
  if (!kind) {
11378
11541
  showOverview(am2);
@@ -11481,8 +11644,8 @@ function makeStoreCommand() {
11481
11644
  "--all",
11482
11645
  `List every match (default: ${STORE_ROW_LIMIT} rows, only what \`skaile add\` can install)`
11483
11646
  ).option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (query, opts) => {
11484
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-PVTIUQUF.js');
11485
- const { getKnownKinds: getKnownKinds2 } = await import('../open-registry-SOIS3TA2.js');
11647
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-RJGJIW5H.js');
11648
+ const { getKnownKinds: getKnownKinds2 } = await import('../open-registry-3QS3J7KO.js');
11486
11649
  const projectDir = path18__default.resolve(opts.projectDir);
11487
11650
  if (opts.kind && !getKnownKinds2().has(opts.kind)) {
11488
11651
  logErr(
@@ -11540,8 +11703,8 @@ function makeStoreCommand() {
11540
11703
  }
11541
11704
  });
11542
11705
  store.command("show <ref>").description("Show a store asset's details + provenance (source, files, integrity)").option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (ref, opts) => {
11543
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-PVTIUQUF.js');
11544
- const { supportsInstallManifest: supportsInstallManifest2 } = await import('../project-EX47PUBN.js');
11706
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-RJGJIW5H.js');
11707
+ const { supportsInstallManifest: supportsInstallManifest2 } = await import('../project-HZW2MZPA.js');
11545
11708
  try {
11546
11709
  parseAssetRef(ref);
11547
11710
  } catch (e) {
@@ -12243,8 +12406,8 @@ Execution:
12243
12406
  resume Resume last session
12244
12407
  serve [--compile-test] Start WebSocket agent server
12245
12408
  mcp-server Start workspace MCP server (for .mcp.json)
12246
- integration install [--driver all] Install agent integration (claude-code | omp | codex)
12247
- integration uninstall [--driver all] Uninstall agent integration
12409
+ integration install [--harness all] Install agent integration (claude-code | omp | codex)
12410
+ integration uninstall [--harness all] Uninstall agent integration
12248
12411
  integration enable Enable integration (claude-code only)
12249
12412
  integration disable Disable integration (claude-code only)
12250
12413
  integration status Show install / enable state across harnesses
@@ -12308,10 +12471,10 @@ Advanced:
12308
12471
  `;
12309
12472
  }
12310
12473
  });
12311
- var HARNESS_DEFAULTS = {
12312
- "claude-code": { driver: "claude-sdk" },
12313
- omp: { driver: "omp" },
12314
- codex: { driver: "codex" }
12474
+ var INIT_HARNESS_DEFAULTS = {
12475
+ "claude-code": { harness: "claude-sdk" },
12476
+ omp: { harness: "omp" },
12477
+ codex: { harness: "codex" }
12315
12478
  };
12316
12479
  program.command("init [project-dir]").description("Initialize a project directory (defaults to current directory)").option("--harness <name>", "Coding-agent harness (claude-code | omp | codex)", "claude-code").option("--no-git", "Skip git init and .gitignore").action(
12317
12480
  (projectDir, opts) => runInit(projectDir, opts)
@@ -12319,39 +12482,39 @@ program.command("init [project-dir]").description("Initialize a project director
12319
12482
  async function runInit(projectDir, opts) {
12320
12483
  const { mkdirSync: mkdirSync5, writeFileSync: writeFileSync7 } = await import('fs');
12321
12484
  const { stringify: stringify2 } = await import('yaml');
12322
- const { DRIVER_TARGETS: DRIVER_TARGETS2, SUPPORTED_DRIVER_TARGETS: SUPPORTED_DRIVER_TARGETS2 } = await import('../core/index.js');
12485
+ const { HARNESS_TARGETS: HARNESS_TARGETS2, SUPPORTED_HARNESSES: SUPPORTED_HARNESSES2 } = await import('../core/index.js');
12323
12486
  const harness = opts.harness;
12324
- if (!SUPPORTED_DRIVER_TARGETS2.includes(harness)) {
12325
- logErr(`Unknown harness "${opts.harness}". Supported: ${SUPPORTED_DRIVER_TARGETS2.join(", ")}`);
12487
+ if (!SUPPORTED_HARNESSES2.includes(harness)) {
12488
+ logErr(`Unknown harness "${opts.harness}". Supported: ${SUPPORTED_HARNESSES2.join(", ")}`);
12326
12489
  process.exitCode = 1;
12327
12490
  return;
12328
12491
  }
12329
12492
  const resolved = path18__default.resolve(projectDir ?? ".");
12330
12493
  const projectName = path18__default.basename(resolved);
12331
12494
  const created = [];
12332
- const { existsSync: existsSync21 } = await import('fs');
12333
- if (!existsSync21(resolved)) {
12495
+ const { existsSync: existsSync22 } = await import('fs');
12496
+ if (!existsSync22(resolved)) {
12334
12497
  mkdirSync5(resolved, { recursive: true });
12335
12498
  created.push(".");
12336
12499
  }
12337
12500
  const skaileDir = path18__default.join(resolved, ".skaile");
12338
- if (!existsSync21(skaileDir)) {
12501
+ if (!existsSync22(skaileDir)) {
12339
12502
  mkdirSync5(path18__default.join(skaileDir, "sessions"), { recursive: true });
12340
12503
  created.push(".skaile/");
12341
12504
  }
12342
12505
  const settingsPath = path18__default.join(skaileDir, "settings.json");
12343
- if (!existsSync21(settingsPath)) {
12506
+ if (!existsSync22(settingsPath)) {
12344
12507
  writeFileSync7(settingsPath, "{}\n");
12345
12508
  created.push(".skaile/settings.json");
12346
12509
  }
12347
12510
  const wsConfigPath = path18__default.join(resolved, "skaile.yaml");
12348
- if (!existsSync21(wsConfigPath)) {
12511
+ if (!existsSync22(wsConfigPath)) {
12349
12512
  writeFileSync7(wsConfigPath, stringify2(buildInitWorkspaceConfig(projectName, harness)));
12350
12513
  created.push("skaile.yaml");
12351
12514
  }
12352
- for (const dir of new Set(Object.values(DRIVER_TARGETS2[harness].local))) {
12515
+ for (const dir of new Set(Object.values(HARNESS_TARGETS2[harness].local))) {
12353
12516
  const full = path18__default.join(resolved, dir);
12354
- if (!existsSync21(full)) {
12517
+ if (!existsSync22(full)) {
12355
12518
  mkdirSync5(full, { recursive: true });
12356
12519
  created.push(`${dir}/`);
12357
12520
  }
@@ -12364,7 +12527,7 @@ async function runInit(projectDir, opts) {
12364
12527
  printInitSummary(resolved, projectDir, created);
12365
12528
  }
12366
12529
  function buildInitWorkspaceConfig(projectName, harness) {
12367
- const harnessDefaults = HARNESS_DEFAULTS[harness];
12530
+ const harnessDefaults = INIT_HARNESS_DEFAULTS[harness];
12368
12531
  return {
12369
12532
  name: projectName,
12370
12533
  description: `${projectName} AI skill dependencies`,
@@ -12373,7 +12536,7 @@ function buildInitWorkspaceConfig(projectName, harness) {
12373
12536
  agent: harness,
12374
12537
  // model is omitted unless a harness fixes it (none do today).
12375
12538
  ...harnessDefaults.model ? { model: harnessDefaults.model } : {},
12376
- driver: harnessDefaults.driver,
12539
+ harness: harnessDefaults.harness,
12377
12540
  max_turns: 200
12378
12541
  }
12379
12542
  }
@@ -12381,7 +12544,7 @@ function buildInitWorkspaceConfig(projectName, harness) {
12381
12544
  }
12382
12545
  async function initGitScaffold(resolved, created) {
12383
12546
  const { execSync: execSync2 } = await import('child_process');
12384
- const { existsSync: existsSync21, readFileSync: readFileSync13, writeFileSync: writeFileSync7 } = await import('fs');
12547
+ const { existsSync: existsSync22, readFileSync: readFileSync13, writeFileSync: writeFileSync7 } = await import('fs');
12385
12548
  const gitignorePath = path18__default.join(resolved, ".gitignore");
12386
12549
  const entries = [
12387
12550
  "node_modules/",
@@ -12417,7 +12580,7 @@ async function initGitScaffold(resolved, created) {
12417
12580
  ".env",
12418
12581
  ".env.local"
12419
12582
  ];
12420
- const existing = existsSync21(gitignorePath) ? readFileSync13(gitignorePath, "utf-8") : "";
12583
+ const existing = existsSync22(gitignorePath) ? readFileSync13(gitignorePath, "utf-8") : "";
12421
12584
  const have = new Set(existing.split("\n").map((l) => l.trim()));
12422
12585
  const append = entries.filter((e) => !have.has(e));
12423
12586
  if (append.length > 0) {
@@ -12426,7 +12589,7 @@ async function initGitScaffold(resolved, created) {
12426
12589
  `);
12427
12590
  if (!existing) created.push(".gitignore");
12428
12591
  }
12429
- if (!existsSync21(path18__default.join(resolved, ".git"))) {
12592
+ if (!existsSync22(path18__default.join(resolved, ".git"))) {
12430
12593
  try {
12431
12594
  execSync2("git init", { cwd: resolved, stdio: "pipe" });
12432
12595
  created.push(".git/");
@@ -12456,7 +12619,7 @@ async function bootstrapUserConfig() {
12456
12619
  }
12457
12620
  async function hydrateInitSources(resolved, created) {
12458
12621
  try {
12459
- const { ensureSourcesCloned } = await import('../ensure-sources-GKVLE6L5.js');
12622
+ const { ensureSourcesCloned } = await import('../ensure-sources-UPTHZKGF.js');
12460
12623
  const hydrate = ensureSourcesCloned(resolved, { quiet: true });
12461
12624
  for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
12462
12625
  if (hydrate.failed.length > 0) {
@@ -12496,7 +12659,7 @@ function printInitSummary(resolved, projectDir, created) {
12496
12659
  console.log();
12497
12660
  }
12498
12661
  program.command("setup").description("Interactive provider setup wizard").action(async () => {
12499
- const { cmdSetup } = await import('../setup-AFZQNGKA.js');
12662
+ const { cmdSetup } = await import('../setup-AGYB4PKR.js');
12500
12663
  await cmdSetup([], { projectDir: process.cwd() });
12501
12664
  });
12502
12665
  program.addCommand(makeInstallCommand());
@@ -12576,7 +12739,7 @@ program.hook("postAction", async (_thisCommand, actionCommand) => {
12576
12739
  const opts = actionCommand.opts();
12577
12740
  if (opts.global || opts.dryRun) return;
12578
12741
  const projectDir = path18__default.resolve(opts.projectDir ?? process.cwd());
12579
- const { refreshPluginSkills } = await import('../claude-code-2PU7TITZ.js');
12742
+ const { refreshPluginSkills } = await import('../claude-code-VJGYBXQR.js');
12580
12743
  try {
12581
12744
  if (await refreshPluginSkills(projectDir)) {
12582
12745
  logInfo(`Updated ${S.cmd(".claude/plugins/skaile/skills")} (the --full plugin copy)`);