@skaile/workspaces 4.33.0 → 4.35.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 (231) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +3 -3
  3. package/dist/{asset-feeds-CZGV7GCG.js → asset-feeds-NL3526ZV.js} +11 -11
  4. package/dist/{asset-feeds-CZGV7GCG.js.map → asset-feeds-NL3526ZV.js.map} +1 -1
  5. package/dist/asset-manager/catalog-deployer.js +5 -5
  6. package/dist/asset-manager/index.js +11 -11
  7. package/dist/asset-manager/installer.js +8 -8
  8. package/dist/asset-manager/renderers.js +2 -2
  9. package/dist/asset-manager/src/index.d.ts +30 -24
  10. package/dist/asset-manager/src/index.d.ts.map +1 -1
  11. package/dist/asset-manager/src/renderers.d.ts +2 -2
  12. package/dist/bridge/drivers/claude-sdk.js +9 -9
  13. package/dist/bridge/drivers/codex.js +8 -8
  14. package/dist/bridge/drivers/continue.js +10 -10
  15. package/dist/bridge/drivers/continue.js.map +1 -1
  16. package/dist/bridge/drivers/echo.js +2 -2
  17. package/dist/bridge/drivers/gemini.js +6 -6
  18. package/dist/bridge/drivers/goose.js +10 -10
  19. package/dist/bridge/drivers/goose.js.map +1 -1
  20. package/dist/bridge/drivers/omp.js +3 -3
  21. package/dist/bridge/drivers/omp.js.map +1 -1
  22. package/dist/bridge/drivers/opencode.js +11 -11
  23. package/dist/bridge/drivers/opencode.js.map +1 -1
  24. package/dist/bridge/drivers/qwen.js +6 -6
  25. package/dist/bridge/index.js +10 -10
  26. package/dist/bridge/src/capability-dispatch.d.ts +1 -1
  27. package/dist/bridge/src/drivers/_subprocess-cli.d.ts +3 -3
  28. package/dist/bridge/src/drivers/continue.d.ts +1 -1
  29. package/dist/bridge/src/drivers/gemini.d.ts +3 -3
  30. package/dist/bridge/src/drivers/goose.d.ts +1 -1
  31. package/dist/bridge/src/drivers/opencode.d.ts +1 -1
  32. package/dist/bridge/src/provider-materialize/continue-config-yaml.d.ts +2 -2
  33. package/dist/bridge/src/provider-materialize/credential-env.d.ts +4 -4
  34. package/dist/bridge/src/provider-materialize/env-drivers.d.ts +18 -18
  35. package/dist/bridge/src/provider-materialize/goose-custom-providers.d.ts +1 -1
  36. package/dist/bridge/src/provider-materialize/opencode-config.d.ts +1 -1
  37. package/dist/bridge/src/provider-materialize/session-config-home.d.ts +5 -5
  38. package/dist/bridge/src/registry.d.ts +10 -10
  39. package/dist/bridge/src/types.d.ts +9 -9
  40. package/dist/{chunk-AAPFZCQX.js → chunk-24X2GGSC.js} +6 -6
  41. package/dist/{chunk-AAPFZCQX.js.map → chunk-24X2GGSC.js.map} +1 -1
  42. package/dist/{chunk-WPISSDEI.js → chunk-3ELIPWCH.js} +6 -6
  43. package/dist/{chunk-WPISSDEI.js.map → chunk-3ELIPWCH.js.map} +1 -1
  44. package/dist/{chunk-HL6SZ7Z3.js → chunk-5YXKEM7Q.js} +7 -7
  45. package/dist/{chunk-HL6SZ7Z3.js.map → chunk-5YXKEM7Q.js.map} +1 -1
  46. package/dist/{chunk-HXC5VF3L.js → chunk-66A35U4V.js} +36 -35
  47. package/dist/chunk-66A35U4V.js.map +1 -0
  48. package/dist/{chunk-ENUCD5MW.js → chunk-75LXFKQR.js} +4 -4
  49. package/dist/{chunk-ENUCD5MW.js.map → chunk-75LXFKQR.js.map} +1 -1
  50. package/dist/{chunk-GMXG2JGN.js → chunk-7ERHZQ7O.js} +3 -3
  51. package/dist/{chunk-GMXG2JGN.js.map → chunk-7ERHZQ7O.js.map} +1 -1
  52. package/dist/{chunk-JULFGNQN.js → chunk-7HJ6SFFF.js} +3 -3
  53. package/dist/{chunk-JULFGNQN.js.map → chunk-7HJ6SFFF.js.map} +1 -1
  54. package/dist/{chunk-DKCFWSVW.js → chunk-7LBPHRRP.js} +3 -3
  55. package/dist/chunk-7LBPHRRP.js.map +1 -0
  56. package/dist/{chunk-A7WRTOFI.js → chunk-AKO6XHGV.js} +5 -5
  57. package/dist/{chunk-A7WRTOFI.js.map → chunk-AKO6XHGV.js.map} +1 -1
  58. package/dist/{chunk-3C6Q6TCZ.js → chunk-AO7TCPOS.js} +62 -18
  59. package/dist/chunk-AO7TCPOS.js.map +1 -0
  60. package/dist/{chunk-54A5QAIV.js → chunk-C3256F2F.js} +2 -2
  61. package/dist/{chunk-54A5QAIV.js.map → chunk-C3256F2F.js.map} +1 -1
  62. package/dist/{chunk-2JANXYTJ.js → chunk-DHLE66FV.js} +3 -3
  63. package/dist/{chunk-2JANXYTJ.js.map → chunk-DHLE66FV.js.map} +1 -1
  64. package/dist/{chunk-BR2IXOWX.js → chunk-DOF77WEV.js} +6 -6
  65. package/dist/{chunk-BR2IXOWX.js.map → chunk-DOF77WEV.js.map} +1 -1
  66. package/dist/{chunk-MENCWIHW.js → chunk-EB4ZTESQ.js} +4 -4
  67. package/dist/chunk-EB4ZTESQ.js.map +1 -0
  68. package/dist/{chunk-XUVQSDNV.js → chunk-GKTFGCQZ.js} +3 -3
  69. package/dist/chunk-GKTFGCQZ.js.map +1 -0
  70. package/dist/{chunk-GTVQUHBN.js → chunk-GORUF3YZ.js} +10 -10
  71. package/dist/{chunk-GTVQUHBN.js.map → chunk-GORUF3YZ.js.map} +1 -1
  72. package/dist/{chunk-ACDHNOT7.js → chunk-IFUQ6XBQ.js} +87 -10
  73. package/dist/chunk-IFUQ6XBQ.js.map +1 -0
  74. package/dist/{chunk-6J4WBP3C.js → chunk-IGNY4C6K.js} +21 -21
  75. package/dist/{chunk-6J4WBP3C.js.map → chunk-IGNY4C6K.js.map} +1 -1
  76. package/dist/{chunk-I6NZG7WX.js → chunk-J4ANCOQ4.js} +6 -6
  77. package/dist/chunk-J4ANCOQ4.js.map +1 -0
  78. package/dist/{chunk-5RHPNNWP.js → chunk-JRIU5GA7.js} +3 -3
  79. package/dist/{chunk-5RHPNNWP.js.map → chunk-JRIU5GA7.js.map} +1 -1
  80. package/dist/{chunk-F3HNW354.js → chunk-KIFJWSNC.js} +3 -3
  81. package/dist/{chunk-F3HNW354.js.map → chunk-KIFJWSNC.js.map} +1 -1
  82. package/dist/{chunk-DF7C3KZK.js → chunk-LRCSWOZO.js} +14 -14
  83. package/dist/chunk-LRCSWOZO.js.map +1 -0
  84. package/dist/{chunk-TAZMDZFP.js → chunk-MTWZ7KHZ.js} +3 -3
  85. package/dist/{chunk-TAZMDZFP.js.map → chunk-MTWZ7KHZ.js.map} +1 -1
  86. package/dist/{chunk-QDRQKQOU.js → chunk-N2UGG6WV.js} +3 -3
  87. package/dist/{chunk-QDRQKQOU.js.map → chunk-N2UGG6WV.js.map} +1 -1
  88. package/dist/{chunk-4T25XCWX.js → chunk-NVQLE4MK.js} +3 -3
  89. package/dist/{chunk-4T25XCWX.js.map → chunk-NVQLE4MK.js.map} +1 -1
  90. package/dist/{chunk-C4JDLXPI.js → chunk-QJOOD3OV.js} +3 -3
  91. package/dist/{chunk-C4JDLXPI.js.map → chunk-QJOOD3OV.js.map} +1 -1
  92. package/dist/{chunk-NPS765HV.js → chunk-RHESVS7V.js} +9 -9
  93. package/dist/{chunk-NPS765HV.js.map → chunk-RHESVS7V.js.map} +1 -1
  94. package/dist/{chunk-6GSZLKA5.js → chunk-T762W5CI.js} +3 -3
  95. package/dist/chunk-T762W5CI.js.map +1 -0
  96. package/dist/{chunk-3ZE7X5Y6.js → chunk-TB3LJ6NA.js} +3 -3
  97. package/dist/{chunk-3ZE7X5Y6.js.map → chunk-TB3LJ6NA.js.map} +1 -1
  98. package/dist/{chunk-N7B3LZ7V.js → chunk-TGE33MKN.js} +2 -2
  99. package/dist/{chunk-N7B3LZ7V.js.map → chunk-TGE33MKN.js.map} +1 -1
  100. package/dist/{chunk-DRAI3JH5.js → chunk-TGJIX77V.js} +11 -11
  101. package/dist/chunk-TGJIX77V.js.map +1 -0
  102. package/dist/{chunk-UWJAJP6T.js → chunk-TTITGVXV.js} +2 -2
  103. package/dist/{chunk-UWJAJP6T.js.map → chunk-TTITGVXV.js.map} +1 -1
  104. package/dist/{chunk-N3AH66VX.js → chunk-TUTVTGMG.js} +4 -4
  105. package/dist/{chunk-N3AH66VX.js.map → chunk-TUTVTGMG.js.map} +1 -1
  106. package/dist/{chunk-HGPSZXZP.js → chunk-VOXFI3XS.js} +3 -3
  107. package/dist/{chunk-HGPSZXZP.js.map → chunk-VOXFI3XS.js.map} +1 -1
  108. package/dist/{chunk-SK36WO2Z.js → chunk-XTOTP7MJ.js} +2 -2
  109. package/dist/{chunk-SK36WO2Z.js.map → chunk-XTOTP7MJ.js.map} +1 -1
  110. package/dist/cli/index.js +119 -119
  111. package/dist/cli/index.js.map +1 -1
  112. package/dist/cli/src/commands/catalog.d.ts +1 -1
  113. package/dist/cli/src/commands/integration.d.ts +2 -2
  114. package/dist/cli/src/commands/plugin/claude-code.d.ts +2 -2
  115. package/dist/cli/src/commands/plugin/codex.d.ts +2 -2
  116. package/dist/cli/src/commands/plugin/omp.d.ts +2 -2
  117. package/dist/cli/src/commands/plugin/types.d.ts +13 -13
  118. package/dist/cli/src/commands/plugin/types.d.ts.map +1 -1
  119. package/dist/cli/src/commands/run.d.ts +1 -1
  120. package/dist/connectors/config.js +3 -3
  121. package/dist/connectors/index.js +13 -13
  122. package/dist/connectors/src/connect-failure-carry-over.d.ts +38 -0
  123. package/dist/connectors/src/connect-failure-carry-over.d.ts.map +1 -0
  124. package/dist/connectors/src/connector-manager.d.ts +15 -0
  125. package/dist/connectors/src/connector-manager.d.ts.map +1 -1
  126. package/dist/connectors/src/index.d.ts +1 -0
  127. package/dist/connectors/src/index.d.ts.map +1 -1
  128. package/dist/core/driver-targets.js +1 -1
  129. package/dist/core/index.js +5 -5
  130. package/dist/core/runtime-assets.js +3 -3
  131. package/dist/core/src/driver-targets.d.ts +8 -8
  132. package/dist/core/src/index.d.ts +8 -2
  133. package/dist/core/src/index.d.ts.map +1 -1
  134. package/dist/core/src/settings.d.ts +1 -1
  135. package/dist/core/src/workspace-config.d.ts +16 -15
  136. package/dist/core/src/workspace-config.d.ts.map +1 -1
  137. package/dist/core/store.js +2 -2
  138. package/dist/core/workspace-config.js +2 -2
  139. package/dist/deploy/index.js +5 -5
  140. package/dist/discovery/index.js +2 -2
  141. package/dist/{ensure-sources-JGKHWDC4.js → ensure-sources-DVPPPCBS.js} +14 -14
  142. package/dist/{ensure-sources-JGKHWDC4.js.map → ensure-sources-DVPPPCBS.js.map} +1 -1
  143. package/dist/factory-assets/connectors/box.js +13 -13
  144. package/dist/factory-assets/connectors/deploy.js +13 -13
  145. package/dist/factory-assets/connectors/devserver.js +13 -13
  146. package/dist/factory-assets/connectors/flow/CONNECTOR.md +2 -2
  147. package/dist/factory-assets/connectors/flow/adapter.js +13 -13
  148. package/dist/factory-assets/connectors/flow/engine.js +6 -6
  149. package/dist/factory-assets/connectors/flow/run-flow.d.ts +1 -1
  150. package/dist/factory-assets/connectors/flow/run-flow.js +14 -14
  151. package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts +3 -3
  152. package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts.map +1 -1
  153. package/dist/factory-assets/connectors/flow.js +13 -13
  154. package/dist/factory-assets/connectors/git.js +13 -13
  155. package/dist/factory-assets/connectors/gmail.js +13 -13
  156. package/dist/factory-assets/connectors/googledrive.js +13 -13
  157. package/dist/factory-assets/connectors/local.js +13 -13
  158. package/dist/factory-assets/connectors/mattermost.js +13 -13
  159. package/dist/factory-assets/connectors/memory.js +13 -13
  160. package/dist/factory-assets/connectors/minio.js +13 -13
  161. package/dist/factory-assets/connectors/postgres.js +13 -13
  162. package/dist/factory-assets/connectors/s3.js +13 -13
  163. package/dist/factory-assets/connectors/sharepoint.js +13 -13
  164. package/dist/factory-assets/connectors/sqlite.js +13 -13
  165. package/dist/factory-assets/connectors/static-server.js +13 -13
  166. package/dist/factory-assets/connectors/tunnel.js +13 -13
  167. package/dist/factory-assets/connectors/webdav.js +13 -13
  168. package/dist/factory-assets/connectors/xstate-store.js +13 -13
  169. package/dist/factory-assets/connectors/xstate.js +13 -13
  170. package/dist/{flows-QTUSWYKY.js → flows-X7JFAVRR.js} +8 -8
  171. package/dist/{flows-QTUSWYKY.js.map → flows-X7JFAVRR.js.map} +1 -1
  172. package/dist/{helpers-6X4HJKWS.js → helpers-KLO5VUVZ.js} +14 -14
  173. package/dist/{helpers-6X4HJKWS.js.map → helpers-KLO5VUVZ.js.map} +1 -1
  174. package/dist/library/index.js +8 -8
  175. package/dist/{library-publish-MGN3N73A.js → library-publish-X6JGR7K3.js} +18 -18
  176. package/dist/{library-publish-MGN3N73A.js.map → library-publish-X6JGR7K3.js.map} +1 -1
  177. package/dist/{open-library-4PFE2CJ7.js → open-library-S2ZFKJUK.js} +16 -16
  178. package/dist/{open-library-4PFE2CJ7.js.map → open-library-S2ZFKJUK.js.map} +1 -1
  179. package/dist/{paths-IOOMNHTC.js → paths-OI5IIS22.js} +8 -8
  180. package/dist/{paths-IOOMNHTC.js.map → paths-OI5IIS22.js.map} +1 -1
  181. package/dist/plugin-registry/src/targets.d.ts +5 -5
  182. package/dist/plugin-registry/src/targets.d.ts.map +1 -1
  183. package/dist/{plugin-store-OIIPB2MQ.js → plugin-store-C67RLSPD.js} +7 -7
  184. package/dist/{plugin-store-OIIPB2MQ.js.map → plugin-store-C67RLSPD.js.map} +1 -1
  185. package/dist/{project-MD4HQ62C.js → project-7VOTYB7O.js} +15 -15
  186. package/dist/{project-MD4HQ62C.js.map → project-7VOTYB7O.js.map} +1 -1
  187. package/dist/resolver/index.js +5 -5
  188. package/dist/runner/index.js +18 -18
  189. package/dist/runner/src/manifest.d.ts +1 -1
  190. package/dist/runner/src/resources.d.ts.map +1 -1
  191. package/dist/runner/src/serve.d.ts +47 -1
  192. package/dist/runner/src/serve.d.ts.map +1 -1
  193. package/dist/runner/src/session-builder.d.ts +2 -2
  194. package/dist/runner/src/session-stimulus.d.ts +5 -0
  195. package/dist/runner/src/session-stimulus.d.ts.map +1 -1
  196. package/dist/runner/src/session.d.ts +1 -1
  197. package/dist/runner/src/session.d.ts.map +1 -1
  198. package/dist/sdk/asset-manager.js +11 -11
  199. package/dist/sdk/bridge.js +10 -10
  200. package/dist/sdk/core.js +5 -5
  201. package/dist/sdk/flow.js +6 -6
  202. package/dist/sdk/index.js +18 -18
  203. package/dist/sdk/resolver.js +5 -5
  204. package/dist/sdk/runner.js +18 -18
  205. package/dist/{setup-PB35G5SG.js → setup-RO3PGJYS.js} +19 -19
  206. package/dist/{setup-PB35G5SG.js.map → setup-RO3PGJYS.js.map} +1 -1
  207. package/dist/{skills-DH75K326.js → skills-4YTVHMOH.js} +7 -7
  208. package/dist/{skills-DH75K326.js.map → skills-4YTVHMOH.js.map} +1 -1
  209. package/dist/{source-Y5OF6IZU.js → source-ZZLLOP2U.js} +17 -17
  210. package/dist/{source-Y5OF6IZU.js.map → source-ZZLLOP2U.js.map} +1 -1
  211. package/dist/{source-manifest-publish-YWFVYTEI.js → source-manifest-publish-7WRQDIXO.js} +19 -19
  212. package/dist/{source-manifest-publish-YWFVYTEI.js.map → source-manifest-publish-7WRQDIXO.js.map} +1 -1
  213. package/dist/tui/index.js +18 -18
  214. package/dist/types/manifests.js +1 -1
  215. package/dist/types/src/manifests/agent.d.ts +4 -4
  216. package/dist/types/src/runtime.d.ts +4 -4
  217. package/dist/workspace-plugin/adapters/mcp.js +7 -7
  218. package/dist/workspace-plugin/adapters/omp.js +7 -7
  219. package/dist/workspace-plugin/index.js +1 -1
  220. package/dist/workspace-plugin/src/plugin.d.ts +1 -1
  221. package/package.json +1 -1
  222. package/dist/chunk-3C6Q6TCZ.js.map +0 -1
  223. package/dist/chunk-6GSZLKA5.js.map +0 -1
  224. package/dist/chunk-ACDHNOT7.js.map +0 -1
  225. package/dist/chunk-DF7C3KZK.js.map +0 -1
  226. package/dist/chunk-DKCFWSVW.js.map +0 -1
  227. package/dist/chunk-DRAI3JH5.js.map +0 -1
  228. package/dist/chunk-HXC5VF3L.js.map +0 -1
  229. package/dist/chunk-I6NZG7WX.js.map +0 -1
  230. package/dist/chunk-MENCWIHW.js.map +0 -1
  231. package/dist/chunk-XUVQSDNV.js.map +0 -1
package/dist/cli/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
- import { AI_RESOURCES } from '../chunk-GMXG2JGN.js';
3
- import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-6J4WBP3C.js';
4
- import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError } from '../chunk-A7WRTOFI.js';
5
- import { getStoreConfig, storeFetch, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, isStoreAuthenticated, getStoreToken, getStoreIdentity } from '../chunk-3ZE7X5Y6.js';
6
- import { makeSourceCommand, syncProjectSources } from '../chunk-GTVQUHBN.js';
7
- import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-AAPFZCQX.js';
8
- import { logErr, S, logOk, logInfo, logWarn, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth } from '../chunk-C4JDLXPI.js';
2
+ import { AI_RESOURCES } from '../chunk-7ERHZQ7O.js';
3
+ import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-IGNY4C6K.js';
4
+ import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError } from '../chunk-AKO6XHGV.js';
5
+ import { getStoreConfig, storeFetch, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, isStoreAuthenticated, getStoreToken, getStoreIdentity } from '../chunk-TB3LJ6NA.js';
6
+ import { makeSourceCommand, syncProjectSources } from '../chunk-GORUF3YZ.js';
7
+ import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-24X2GGSC.js';
8
+ import { logErr, S, logOk, logInfo, logWarn, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth } from '../chunk-QJOOD3OV.js';
9
9
  import { LocalSecretsProvider } from '../chunk-6BEGKO2Q.js';
10
- import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-3C6Q6TCZ.js';
11
- import { buildClaudePluginFiles } from '../chunk-SK36WO2Z.js';
12
- import '../chunk-QDRQKQOU.js';
13
- import '../chunk-54A5QAIV.js';
10
+ import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-AO7TCPOS.js';
11
+ import { buildClaudePluginFiles } from '../chunk-XTOTP7MJ.js';
12
+ import '../chunk-N2UGG6WV.js';
13
+ import '../chunk-C3256F2F.js';
14
14
  import '../chunk-P2DLXBZK.js';
15
15
  import '../chunk-7IH3RKKK.js';
16
16
  import '../chunk-4ZTPYIBE.js';
@@ -24,48 +24,48 @@ import '../chunk-5LKOAX7I.js';
24
24
  import '../chunk-32NA4TVC.js';
25
25
  import '../chunk-W3UDISS2.js';
26
26
  import '../chunk-HCYS7GFP.js';
27
- import { runFlow, resumeFlow } from '../chunk-I6NZG7WX.js';
27
+ import { runFlow, resumeFlow } from '../chunk-J4ANCOQ4.js';
28
28
  import '../chunk-4R6DROGN.js';
29
29
  import { validateFlowVersions, parseSkillFrontmatter } from '../chunk-T3YUSWVK.js';
30
30
  import '../chunk-Q6NDQ6BH.js';
31
31
  import '../chunk-6X4DHKHP.js';
32
- import '../chunk-ACDHNOT7.js';
32
+ import '../chunk-IFUQ6XBQ.js';
33
33
  import '../chunk-ZWTCXL3H.js';
34
- import '../chunk-2JANXYTJ.js';
35
- import '../chunk-4T25XCWX.js';
34
+ import '../chunk-DHLE66FV.js';
35
+ import '../chunk-NVQLE4MK.js';
36
36
  import '../chunk-LX3FKVLL.js';
37
37
  import '../chunk-EINLFFP6.js';
38
38
  import '../chunk-LOO5CB5M.js';
39
- import '../chunk-UWJAJP6T.js';
40
- import '../chunk-ENUCD5MW.js';
39
+ import '../chunk-TTITGVXV.js';
40
+ import '../chunk-75LXFKQR.js';
41
41
  import '../chunk-XBSQ4KMC.js';
42
42
  import '../chunk-YROR332M.js';
43
- import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-TAZMDZFP.js';
43
+ import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-MTWZ7KHZ.js';
44
44
  import '../chunk-6E6PKKAD.js';
45
45
  import '../chunk-IFGTRL2I.js';
46
- import { projectAiAssetsRoots, loadFlow, loadAllFlowEntries, findFlowFileInRoots } from '../chunk-JULFGNQN.js';
46
+ import { projectAiAssetsRoots, loadFlow, loadAllFlowEntries, findFlowFileInRoots } from '../chunk-7HJ6SFFF.js';
47
47
  import '../chunk-YYH5EVPM.js';
48
48
  import '../chunk-DIQDYNXZ.js';
49
49
  import '../chunk-K3IBZ2UZ.js';
50
50
  import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind, flowSkillVersionPins } from '../chunk-UDFWBALP.js';
51
51
  import '../chunk-ORH2BZEM.js';
52
52
  import '../chunk-JS7DCCDA.js';
53
- import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-HXC5VF3L.js';
54
- import { getStoreManifestsDir, getDefaultValue, isSecretPlaceholder } from '../chunk-BR2IXOWX.js';
55
- import '../chunk-HGPSZXZP.js';
53
+ import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-66A35U4V.js';
54
+ import { getStoreManifestsDir, getDefaultValue, isSecretPlaceholder } from '../chunk-DOF77WEV.js';
55
+ import '../chunk-VOXFI3XS.js';
56
56
  import '../chunk-VOEBLPXO.js';
57
57
  import '../chunk-R7FOF242.js';
58
58
  import '../chunk-JXT46QFC.js';
59
- import '../chunk-HL6SZ7Z3.js';
59
+ import '../chunk-5YXKEM7Q.js';
60
60
  import '../chunk-CGYEHQOX.js';
61
- import { resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, aiResourceRoots, readLock, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile } from '../chunk-WPISSDEI.js';
61
+ import { resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, aiResourceRoots, readLock, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile } from '../chunk-3ELIPWCH.js';
62
62
  import '../chunk-4GY63JU6.js';
63
- import { factoryAssetRoots } from '../chunk-5RHPNNWP.js';
64
- import '../chunk-F3HNW354.js';
63
+ import { factoryAssetRoots } from '../chunk-JRIU5GA7.js';
64
+ import '../chunk-KIFJWSNC.js';
65
65
  import { DRIVER_DEFAULTS } from '../chunk-K5GBV4SA.js';
66
66
  import { detectDomains, assetSearchDirs } from '../chunk-QVZA2MDT.js';
67
- import { globalCacheRoot, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, matchPin, coerceVersion, loadSkWorkspaceConfig, resolveSkWorkspaceConfig, storeManifestSlug, isWorkspaceConfigFilename } from '../chunk-DF7C3KZK.js';
68
- import { SUPPORTED_DRIVER_TARGETS } from '../chunk-MENCWIHW.js';
67
+ import { globalCacheRoot, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, matchPin, coerceVersion, loadSkWorkspaceConfig, resolveSkWorkspaceConfig, storeManifestSlug, isWorkspaceConfigFilename } from '../chunk-LRCSWOZO.js';
68
+ import { SUPPORTED_DRIVER_TARGETS } from '../chunk-EB4ZTESQ.js';
69
69
  import { SKAILE_MANIFEST_FILENAME, decodeSkaileManifest, loadSkPublishManifest, saveSkPublishManifest } from '../chunk-P4VHQA4N.js';
70
70
  import { parseFrontmatter, scanDirectory } from '../chunk-2FBPAR2V.js';
71
71
  import { parseAssetRef, ASSET_KINDS, isValidAssetName, slugifyAssetName, ASSET_NAME_HINT, assetRefToStr } from '../chunk-GEEW6SY2.js';
@@ -76,8 +76,8 @@ import '../chunk-C3CAXQMA.js';
76
76
  import '../chunk-BOFL7GIF.js';
77
77
  import '../chunk-KTBKW2FI.js';
78
78
  import '../chunk-UQ6LFBPZ.js';
79
- import '../chunk-DKCFWSVW.js';
80
- import { validatePreset } from '../chunk-N7B3LZ7V.js';
79
+ import '../chunk-7LBPHRRP.js';
80
+ import { validatePreset } from '../chunk-TGE33MKN.js';
81
81
  import '../chunk-NSBPE2FW.js';
82
82
  import * as fs12 from 'fs';
83
83
  import fs12__default, { readFileSync, existsSync, mkdirSync, writeFileSync, lstatSync, rmSync, readdirSync, statSync } from 'fs';
@@ -129,7 +129,7 @@ async function runSearch(kind, query, opts) {
129
129
  }
130
130
  }
131
131
  async function searchIndex(query, kind) {
132
- const { openLibrary: openLibrary2 } = await import('../open-library-4PFE2CJ7.js');
132
+ const { openLibrary: openLibrary2 } = await import('../open-library-S2ZFKJUK.js');
133
133
  const library = await openLibrary2();
134
134
  try {
135
135
  const defs = await library.listAssetDefs(kind ? { kind } : {});
@@ -182,7 +182,7 @@ async function searchLocal(query, kind, opts, showStore, airGapped) {
182
182
  const factory = await searchFactory(projectDir, query, kind);
183
183
  let entries = unionEntries(await searchIndex(query, kind), factory);
184
184
  if (entries.length === 0 && !query && !kind && !airGapped) {
185
- const { autoSyncForSearch } = await import('../source-Y5OF6IZU.js');
185
+ const { autoSyncForSearch } = await import('../source-ZZLLOP2U.js');
186
186
  if (await autoSyncForSearch(projectDir)) {
187
187
  entries = unionEntries(await searchIndex(query, kind), factory);
188
188
  }
@@ -236,7 +236,7 @@ async function searchStore(query, kind, opts, airGapped) {
236
236
  logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
237
237
  return;
238
238
  }
239
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-4PFE2CJ7.js');
239
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-S2ZFKJUK.js');
240
240
  try {
241
241
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
242
242
  const assets = await remote.listAssets(kind ? { kind } : {});
@@ -271,13 +271,13 @@ function makeSearchCommand() {
271
271
  await runSearch(kind, query, opts);
272
272
  });
273
273
  }
274
- function parseBackendFilter(raw) {
274
+ function parseHarnessFilter(raw) {
275
275
  if (!raw) return void 0;
276
276
  const ids = raw.split(",").map((s) => s.trim()).filter(Boolean);
277
277
  const out = [];
278
278
  for (const id of ids) {
279
279
  if (!SUPPORTED_DRIVER_TARGETS.includes(id)) {
280
- logErr(`unknown backend '${id}' \u2014 expected one of: ${SUPPORTED_DRIVER_TARGETS.join(", ")}`);
280
+ logErr(`unknown harness '${id}' \u2014 expected one of: ${SUPPORTED_DRIVER_TARGETS.join(", ")}`);
281
281
  process.exit(1);
282
282
  }
283
283
  out.push(id);
@@ -336,9 +336,9 @@ async function promptSoftDepRemovals(am2, ref, io) {
336
336
  }
337
337
  }
338
338
  function makeAddCommand() {
339
- 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 backend").option(
340
- "--backend <ids>",
341
- "Comma-separated global backends to deploy into (default: all resolved); implies --global"
339
+ 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(
340
+ "--harness <ids>",
341
+ "Comma-separated global harnesses to deploy into (default: all resolved); implies --global"
342
342
  ).option("--target <agent>", "Driver target", "claude-code").option(
343
343
  "--link",
344
344
  "symlink local-path assets instead of copying (dev loop; machine-local, not for committing)"
@@ -350,11 +350,11 @@ function makeAddCommand() {
350
350
  logErr("--with-soft-deps and --no-soft-deps are mutually exclusive.");
351
351
  process.exit(1);
352
352
  }
353
- const backends = parseBackendFilter(opts.backend);
353
+ const harnesses = parseHarnessFilter(opts.harness);
354
354
  const am2 = new AssetManager({
355
355
  projectDir: path36__default.resolve(opts.projectDir),
356
- global: opts.global || backends !== void 0,
357
- backends,
356
+ global: opts.global || harnesses !== void 0,
357
+ harnesses,
358
358
  driverTarget: opts.target
359
359
  });
360
360
  const spinner4 = p5.spinner();
@@ -389,15 +389,15 @@ function makeAddCommand() {
389
389
  });
390
390
  }
391
391
  function makeRemoveCommand() {
392
- return new Command("remove").description("Remove from skaile.yaml + undeploy").argument("<ref>", "Asset reference (kind:name)").option("--project-dir <path>", "Project directory", process.cwd()).option("--global", "Remove from ~/.skaile/skaile.yaml + undeploy from every global backend").option(
393
- "--backend <ids>",
394
- "Comma-separated global backends to undeploy from (default: all resolved); implies --global"
392
+ return new Command("remove").description("Remove from skaile.yaml + undeploy").argument("<ref>", "Asset reference (kind:name)").option("--project-dir <path>", "Project directory", process.cwd()).option("--global", "Remove from ~/.skaile/skaile.yaml + undeploy from every global harness").option(
393
+ "--harness <ids>",
394
+ "Comma-separated global harnesses to undeploy from (default: all resolved); implies --global"
395
395
  ).option("--target <agent>", "Driver target", "claude-code").option("--no-soft-deps", "skip the orphaned-soft-dep prompt (don't remove, don't report)").action(async (ref, opts) => {
396
- const backends = parseBackendFilter(opts.backend);
396
+ const harnesses = parseHarnessFilter(opts.harness);
397
397
  const am2 = new AssetManager({
398
398
  projectDir: path36__default.resolve(opts.projectDir),
399
- global: opts.global || backends !== void 0,
400
- backends,
399
+ global: opts.global || harnesses !== void 0,
400
+ harnesses,
401
401
  driverTarget: opts.target
402
402
  });
403
403
  const ok = am2.remove(ref);
@@ -425,13 +425,13 @@ function stateLabel(s) {
425
425
  function makeListCommand() {
426
426
  return new Command("list").description("List declared dependencies from skaile.yaml with state").argument("[kind]", "Filter by asset kind").option("--project-dir <path>", "Project directory", process.cwd()).option(
427
427
  "-g, --global",
428
- "Read the global SSOT (~/.skaile/skaile.yaml); report state per backend"
429
- ).option("--backend <ids>", "Comma-separated global backends to report (implies --global)").option("--json", "Output as JSON").addOption(
428
+ "Read the global SSOT (~/.skaile/skaile.yaml); report state per harness"
429
+ ).option("--harness <ids>", "Comma-separated global harnesses to report (implies --global)").option("--json", "Output as JSON").addOption(
430
430
  new Option("--target <agent>", "Driver target").default("claude-code").choices(SUPPORTED_DRIVER_TARGETS)
431
431
  ).action(async (kind, opts) => {
432
- const backends = parseBackendFilter(opts.backend);
433
- if (opts.global || backends) {
434
- runGlobalList(kind, opts, backends);
432
+ const harnesses = parseHarnessFilter(opts.harness);
433
+ if (opts.global || harnesses) {
434
+ runGlobalList(kind, opts, harnesses);
435
435
  return;
436
436
  }
437
437
  const am2 = new AssetManager({
@@ -478,11 +478,11 @@ function makeListCommand() {
478
478
  console.log();
479
479
  });
480
480
  }
481
- function runGlobalList(kind, opts, backends) {
481
+ function runGlobalList(kind, opts, harnesses) {
482
482
  const am2 = new AssetManager({
483
483
  projectDir: path36__default.resolve(opts.projectDir),
484
484
  global: true,
485
- backends
485
+ harnesses
486
486
  });
487
487
  let rows;
488
488
  try {
@@ -501,15 +501,15 @@ function runGlobalList(kind, opts, backends) {
501
501
  }
502
502
  const kindW = Math.max(4, ...rows.map((e) => e.kind.length));
503
503
  const nameW = Math.max(4, ...rows.map((e) => e.name.length));
504
- const beW = Math.max(7, ...rows.map((e) => e.backend.length));
504
+ const beW = Math.max(7, ...rows.map((e) => e.harness.length));
505
505
  console.log();
506
506
  console.log(
507
- ` ${S.dim("KIND".padEnd(kindW))} ${S.dim("NAME".padEnd(nameW))} ${S.dim("BACKEND".padEnd(beW))} ${S.dim("STATE")}`
507
+ ` ${S.dim("KIND".padEnd(kindW))} ${S.dim("NAME".padEnd(nameW))} ${S.dim("HARNESS".padEnd(beW))} ${S.dim("STATE")}`
508
508
  );
509
509
  console.log(` ${S.rule(kindW + nameW + beW + 6 + "installed".length)}`);
510
510
  for (const e of rows) {
511
511
  console.log(
512
- ` ${kindColorPad(e.kind, kindW)} ${e.name.padEnd(nameW)} ${e.backend.padEnd(beW)} ${stateLabel(e.state)}`
512
+ ` ${kindColorPad(e.kind, kindW)} ${e.name.padEnd(nameW)} ${e.harness.padEnd(beW)} ${stateLabel(e.state)}`
513
513
  );
514
514
  }
515
515
  console.log(`
@@ -551,7 +551,7 @@ async function resolveInfoEntry(am2, ref, opts) {
551
551
  return { entry: match ?? deployed };
552
552
  }
553
553
  const lookup = opts.storeLookup ?? (async (filter) => {
554
- const { resolveCatalogSource } = await import('../open-library-4PFE2CJ7.js');
554
+ const { resolveCatalogSource } = await import('../open-library-S2ZFKJUK.js');
555
555
  const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
556
556
  try {
557
557
  return await source.listAssets(filter);
@@ -567,7 +567,7 @@ async function resolveInfoEntry(am2, ref, opts) {
567
567
  );
568
568
  return { entry: hit ? catalogAssetToEntry(hit) : null };
569
569
  } catch (err) {
570
- const { LocalCatalogDisabledError } = await import('../open-library-4PFE2CJ7.js');
570
+ const { LocalCatalogDisabledError } = await import('../open-library-S2ZFKJUK.js');
571
571
  const storeNote = err instanceof Error ? err.message : String(err);
572
572
  const disabled = err instanceof LocalCatalogDisabledError || /catalog\.url/i.test(storeNote);
573
573
  return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
@@ -1187,7 +1187,7 @@ function makeCatalogCommand() {
1187
1187
  return catalog;
1188
1188
  }
1189
1189
  async function runLocalCatalogTest(projectDir) {
1190
- const { resolveCatalogSource } = await import('../open-library-4PFE2CJ7.js');
1190
+ const { resolveCatalogSource } = await import('../open-library-S2ZFKJUK.js');
1191
1191
  let resolved;
1192
1192
  try {
1193
1193
  resolved = await resolveCatalogSource({ projectDir });
@@ -2249,7 +2249,7 @@ async function ensureTargetsRegistered(projectDir) {
2249
2249
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
2250
2250
  const config = resolveSkWorkspaceConfig2(projectDir);
2251
2251
  if (config.plugins && config.plugins.length > 0) {
2252
- const { ensurePluginsLoaded } = await import('../plugin-store-OIIPB2MQ.js');
2252
+ const { ensurePluginsLoaded } = await import('../plugin-store-C67RLSPD.js');
2253
2253
  const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
2254
2254
  for (const f of result.failed) logWarn(f.error);
2255
2255
  }
@@ -2630,7 +2630,7 @@ async function status(projectDir) {
2630
2630
  const mcpInstalled = !!(mcp?.mcpServers && SKAILE_MCP_NAME in mcp.mcpServers);
2631
2631
  if (!pluginInstalled && !mcpInstalled) {
2632
2632
  return {
2633
- backend: "claude-code",
2633
+ harness: "claude-code",
2634
2634
  installed: "no",
2635
2635
  enabled: "n/a",
2636
2636
  method: "\u2014",
@@ -2640,7 +2640,7 @@ async function status(projectDir) {
2640
2640
  if (pluginInstalled) {
2641
2641
  const disabled2 = settings?.disabledPlugins?.includes(dir) ?? false;
2642
2642
  return {
2643
- backend: "claude-code",
2643
+ harness: "claude-code",
2644
2644
  installed: "yes",
2645
2645
  enabled: disabled2 ? "no" : "yes",
2646
2646
  method: "plugin",
@@ -2649,7 +2649,7 @@ async function status(projectDir) {
2649
2649
  }
2650
2650
  const disabled = settings?.disabledMcpjsonServers?.includes(SKAILE_MCP_NAME) ?? false;
2651
2651
  return {
2652
- backend: "claude-code",
2652
+ harness: "claude-code",
2653
2653
  installed: "yes",
2654
2654
  enabled: disabled ? "no" : "yes",
2655
2655
  method: "mcp",
@@ -2729,7 +2729,7 @@ async function status2(projectDir) {
2729
2729
  const installed = !!(cfg?.mcp_servers && SKAILE_MCP_NAME2 in cfg.mcp_servers);
2730
2730
  if (!installed) {
2731
2731
  return {
2732
- backend: "codex",
2732
+ harness: "codex",
2733
2733
  installed: "no",
2734
2734
  enabled: "n/a",
2735
2735
  method: "\u2014",
@@ -2737,7 +2737,7 @@ async function status2(projectDir) {
2737
2737
  };
2738
2738
  }
2739
2739
  return {
2740
- backend: "codex",
2740
+ harness: "codex",
2741
2741
  installed: "yes",
2742
2742
  enabled: "n/a",
2743
2743
  method: "mcp",
@@ -2773,7 +2773,7 @@ async function status3(projectDir) {
2773
2773
  const extPath = path36__default.join(projectDir, ".omp", "extensions", "skaile.ts");
2774
2774
  if (existsSync(extPath)) {
2775
2775
  return {
2776
- backend: "omp",
2776
+ harness: "omp",
2777
2777
  installed: "yes",
2778
2778
  enabled: "n/a",
2779
2779
  method: "extension",
@@ -2781,7 +2781,7 @@ async function status3(projectDir) {
2781
2781
  };
2782
2782
  }
2783
2783
  return {
2784
- backend: "omp",
2784
+ harness: "omp",
2785
2785
  installed: "no",
2786
2786
  enabled: "n/a",
2787
2787
  method: "\u2014",
@@ -2790,14 +2790,14 @@ async function status3(projectDir) {
2790
2790
  }
2791
2791
 
2792
2792
  // cli/src/commands/integration.ts
2793
- var ALL_BACKENDS = ["claude-code", "omp", "codex"];
2793
+ var ALL_HARNESSES = ["claude-code", "omp", "codex"];
2794
2794
  var TOGGLE_SUPPORTED = ["claude-code"];
2795
2795
  function resolveDriver(driver) {
2796
- if (driver === "all") return [...ALL_BACKENDS];
2796
+ if (driver === "all") return [...ALL_HARNESSES];
2797
2797
  if (driver === "claude-code" || driver === "omp" || driver === "codex") return [driver];
2798
2798
  throw new Error(`unknown driver: ${driver} (expected: claude-code | omp | codex | all)`);
2799
2799
  }
2800
- async function runBackendStep(label, body) {
2800
+ async function runHarnessStep(label, body) {
2801
2801
  try {
2802
2802
  await body();
2803
2803
  return 0;
@@ -2844,16 +2844,16 @@ async function runInstall(opts) {
2844
2844
  const targets = resolveDriver(opts.driver);
2845
2845
  let exitCode = 0;
2846
2846
  if (targets.includes("claude-code")) {
2847
- exitCode |= await runBackendStep(
2847
+ exitCode |= await runHarnessStep(
2848
2848
  "claude-code install",
2849
2849
  () => installClaudeCode(projectDir, opts)
2850
2850
  );
2851
2851
  }
2852
2852
  if (targets.includes("omp")) {
2853
- exitCode |= await runBackendStep("omp install", () => installOmp(projectDir));
2853
+ exitCode |= await runHarnessStep("omp install", () => installOmp(projectDir));
2854
2854
  }
2855
2855
  if (targets.includes("codex")) {
2856
- exitCode |= await runBackendStep("codex install", () => installCodex(projectDir));
2856
+ exitCode |= await runHarnessStep("codex install", () => installCodex(projectDir));
2857
2857
  }
2858
2858
  if (exitCode === 0) logOk("Plugin installed.");
2859
2859
  return exitCode;
@@ -2878,16 +2878,16 @@ async function runUninstall(opts) {
2878
2878
  const targets = resolveDriver(opts.driver);
2879
2879
  let exitCode = 0;
2880
2880
  if (targets.includes("claude-code")) {
2881
- exitCode |= await runBackendStep(
2881
+ exitCode |= await runHarnessStep(
2882
2882
  "claude-code uninstall",
2883
2883
  () => uninstallClaudeCode(projectDir)
2884
2884
  );
2885
2885
  }
2886
2886
  if (targets.includes("omp")) {
2887
- exitCode |= await runBackendStep("omp uninstall", () => uninstallOmp(projectDir));
2887
+ exitCode |= await runHarnessStep("omp uninstall", () => uninstallOmp(projectDir));
2888
2888
  }
2889
2889
  if (targets.includes("codex")) {
2890
- exitCode |= await runBackendStep("codex uninstall", () => uninstallCodex(projectDir));
2890
+ exitCode |= await runHarnessStep("codex uninstall", () => uninstallCodex(projectDir));
2891
2891
  }
2892
2892
  if (exitCode === 0) logOk("Plugin uninstalled.");
2893
2893
  return exitCode;
@@ -2907,7 +2907,7 @@ async function toggleTarget(t, projectDir, action3) {
2907
2907
  return 0;
2908
2908
  }
2909
2909
  if (t !== "claude-code") return 0;
2910
- return runBackendStep(`claude-code ${action3}`, async () => {
2910
+ return runHarnessStep(`claude-code ${action3}`, async () => {
2911
2911
  const r = action3 === "enable" ? await enable(projectDir) : await disable(projectDir);
2912
2912
  if (r.changed) {
2913
2913
  logOk(`claude-code: ${action3}d`);
@@ -2949,7 +2949,7 @@ async function runStatus2(opts) {
2949
2949
  function printStatusTable(rows) {
2950
2950
  if (rows.length === 0) return;
2951
2951
  const cols = [
2952
- { key: "backend", header: "backend" },
2952
+ { key: "harness", header: "harness" },
2953
2953
  { key: "installed", header: "installed" },
2954
2954
  { key: "enabled", header: "enabled" },
2955
2955
  { key: "method", header: "method" },
@@ -3034,7 +3034,7 @@ function makeIntegrationCommand() {
3034
3034
  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) => {
3035
3035
  process.exitCode = await runToggle(opts, "disable");
3036
3036
  });
3037
- cmd.command("status").description("Show install / enable status across backends").option("--driver <name>", "Target: claude-code | omp | codex | all", "all").option("--project-dir <path>", "Project directory", process.cwd()).action(async (opts) => {
3037
+ 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) => {
3038
3038
  process.exitCode = await runStatus2(opts);
3039
3039
  });
3040
3040
  cmd.command("hook <event>").description(
@@ -3504,16 +3504,16 @@ function makeLibraryCommand() {
3504
3504
  });
3505
3505
  cmd.command("publish <lib>").description("Push + register the library's manifest atomically (needs git backend)").option("--asset <ref>", "Publish only the single asset matching this ref/name").option("--create-repo", "Provision + link a public github repo if the library has no remote").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(
3506
3506
  async (lib, opts) => {
3507
- const { runLibraryPublish } = await import('../library-publish-MGN3N73A.js');
3507
+ const { runLibraryPublish } = await import('../library-publish-X6JGR7K3.js');
3508
3508
  await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
3509
3509
  }
3510
3510
  );
3511
3511
  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) => {
3512
- const { runLibraryRegister } = await import('../library-publish-MGN3N73A.js');
3512
+ const { runLibraryRegister } = await import('../library-publish-X6JGR7K3.js');
3513
3513
  await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
3514
3514
  });
3515
3515
  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) => {
3516
- const { runLibraryYank } = await import('../library-publish-MGN3N73A.js');
3516
+ const { runLibraryYank } = await import('../library-publish-X6JGR7K3.js');
3517
3517
  await withStoreErrorHandling(() => runLibraryYank(lib, opts));
3518
3518
  });
3519
3519
  return cmd;
@@ -4235,7 +4235,7 @@ function scheduleSoftDepPreview() {
4235
4235
  }
4236
4236
  async function loadAssets() {
4237
4237
  softDepPreviewCache.clear();
4238
- const { gatherAssetFeeds } = await import('../asset-feeds-CZGV7GCG.js');
4238
+ const { gatherAssetFeeds } = await import('../asset-feeds-NL3526ZV.js');
4239
4239
  const { entries, domains, notes } = await gatherAssetFeeds(am, am.projectDir);
4240
4240
  if (notes.length > 0) {
4241
4241
  state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
@@ -4441,7 +4441,7 @@ function reconcileCollapsedSets(rows) {
4441
4441
  async function loadSourcesAndLibraries() {
4442
4442
  try {
4443
4443
  const [{ openLibraryManager: openLibraryManager2 }, { skaileHomeDir }, { getGlobalCacheDir: getGlobalCacheDir2 }] = await Promise.all([
4444
- import('../open-library-4PFE2CJ7.js'),
4444
+ import('../open-library-S2ZFKJUK.js'),
4445
4445
  import('../library/index.js'),
4446
4446
  import('../core/index.js')
4447
4447
  ]);
@@ -6083,7 +6083,7 @@ function action2(fn) {
6083
6083
  };
6084
6084
  }
6085
6085
  async function reconcileAndReport(projectDir, plugins) {
6086
- const { reconcilePlugins } = await import('../plugin-store-OIIPB2MQ.js');
6086
+ const { reconcilePlugins } = await import('../plugin-store-C67RLSPD.js');
6087
6087
  if (plugins.length === 0) {
6088
6088
  logInfo("No plugins declared \u2014 nothing to reconcile.");
6089
6089
  return;
@@ -6099,7 +6099,7 @@ async function reconcileAndReport(projectDir, plugins) {
6099
6099
  async function runInstall2(spec, opts) {
6100
6100
  const projectDir = path36__default.resolve(opts.projectDir);
6101
6101
  const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
6102
- const { specName } = await import('../plugin-store-OIIPB2MQ.js');
6102
+ const { specName } = await import('../plugin-store-C67RLSPD.js');
6103
6103
  const yamlPath = path36__default.join(projectDir, "skaile.yaml");
6104
6104
  const editor = WorkspaceYamlEditor2.load(yamlPath);
6105
6105
  const replaced = editor.addPlugin(spec, specName);
@@ -6111,7 +6111,7 @@ async function runInstall2(spec, opts) {
6111
6111
  async function runRemove(name, opts) {
6112
6112
  const projectDir = path36__default.resolve(opts.projectDir);
6113
6113
  const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
6114
- const { specName } = await import('../plugin-store-OIIPB2MQ.js');
6114
+ const { specName } = await import('../plugin-store-C67RLSPD.js');
6115
6115
  const yamlPath = path36__default.join(projectDir, "skaile.yaml");
6116
6116
  const editor = WorkspaceYamlEditor2.load(yamlPath);
6117
6117
  const removed = editor.removePlugin(name, specName);
@@ -6139,7 +6139,7 @@ async function runList(opts) {
6139
6139
  const registry = createPluginRegistry();
6140
6140
  if (declared.length > 0) {
6141
6141
  try {
6142
- const { loadPlugins } = await import('../plugin-store-OIIPB2MQ.js');
6142
+ const { loadPlugins } = await import('../plugin-store-C67RLSPD.js');
6143
6143
  const result = await loadPlugins(projectDir, declared, registry);
6144
6144
  for (const f of result.failed) logWarn(f.error);
6145
6145
  } catch (err) {
@@ -6968,7 +6968,7 @@ function friendlyDriverError(err) {
6968
6968
  const hint = e.hint ?? e.detail?.hint;
6969
6969
  const base = hint ?? "The configured agent binary is not installed or not on your PATH.";
6970
6970
  return `${base}
6971
- Try a different backend with \`--driver claude-sdk\`.`;
6971
+ Try a different harness with \`--driver claude-sdk\`.`;
6972
6972
  }
6973
6973
 
6974
6974
  // cli/src/commands/run.ts
@@ -7004,7 +7004,7 @@ function makeFlowEventHandler() {
7004
7004
  };
7005
7005
  }
7006
7006
  function makeRunCommand() {
7007
- 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>", "Driver backend (claude-sdk, codex, omp)").option("--model <name>", "Model override").option("--label <label>", "Human-readable session label").option("--dry-run", "Print plan without executing").option("--skill <name>", "Skill name (for single-shot mode)").action(async (positional, opts) => {
7007
+ 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>", "Harness to run (claude-sdk, codex, omp)").option("--model <name>", "Model override").option("--label <label>", "Human-readable session label").option("--dry-run", "Print plan without executing").option("--skill <name>", "Skill name (for single-shot mode)").action(async (positional, opts) => {
7008
7008
  const projectDir = path36__default.resolve(opts.projectDir);
7009
7009
  const cliDriver = opts.driver;
7010
7010
  const dryRun = opts.dryRun ?? false;
@@ -7160,7 +7160,7 @@ function makeClearCommand() {
7160
7160
  });
7161
7161
  }
7162
7162
  function makeReplCommand() {
7163
- return new Command("repl").description("Start an interactive agent session").option("--project-dir <path>", "Project directory").option("--driver <name>", "Driver backend (claude-sdk, omp)").option("--model <name>", "Model override").option("--resume", "Resume last session").option("--resume-session <id>", "Resume specific session").action(async (opts) => {
7163
+ return new Command("repl").description("Start an interactive agent session").option("--project-dir <path>", "Project directory").option("--driver <name>", "Harness to run (claude-sdk, omp)").option("--model <name>", "Model override").option("--resume", "Resume last session").option("--resume-session <id>", "Resume specific session").action(async (opts) => {
7164
7164
  const { findWorkspaceRoot } = await import('../core/index.js');
7165
7165
  const { startRepl } = await import('../tui/index.js');
7166
7166
  const os2 = await import('os');
@@ -7194,10 +7194,10 @@ function makeReplCommand() {
7194
7194
  const claudeDir = path36__default.join(os2.homedir(), ".claude");
7195
7195
  if (fs12__default.existsSync(claudeDir)) {
7196
7196
  driverOverride = "claude-sdk";
7197
- logInfo(`Detected ${S.cmd("~/.claude")} \u2192 using ${S.cmd("claude-sdk")} backend`);
7197
+ logInfo(`Detected ${S.cmd("~/.claude")} \u2192 using ${S.cmd("claude-sdk")} harness`);
7198
7198
  } else {
7199
7199
  driverOverride = "omp";
7200
- logInfo(`Using ${S.cmd("omp")} backend`);
7200
+ logInfo(`Using ${S.cmd("omp")} harness`);
7201
7201
  }
7202
7202
  }
7203
7203
  console.log();
@@ -7224,7 +7224,7 @@ function makeServeCommand() {
7224
7224
  "Restrict the AI provider registry to these entry ids (comma-separated)"
7225
7225
  ).option("--compile-test", "Build a compiled binary and run it (simulates Docker environment)").option(
7226
7226
  "--with-codex",
7227
- "Include the Codex backend in the compiled binary (used with --compile-test)"
7227
+ "Include the Codex harness in the compiled binary (used with --compile-test)"
7228
7228
  ).action(
7229
7229
  async (opts) => {
7230
7230
  if (opts.compileTest && opts.managedCodexConfig)
@@ -7264,12 +7264,12 @@ function makeServeCommand() {
7264
7264
  );
7265
7265
  }
7266
7266
  async function ensurePluginsLoadedForServe(projectDir) {
7267
- const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-6X4HJKWS.js');
7267
+ const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-KLO5VUVZ.js');
7268
7268
  try {
7269
7269
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
7270
7270
  const config = resolveSkWorkspaceConfig2(projectDir);
7271
7271
  if (!config.plugins || config.plugins.length === 0) return;
7272
- const { ensurePluginsLoaded } = await import('../plugin-store-OIIPB2MQ.js');
7272
+ const { ensurePluginsLoaded } = await import('../plugin-store-C67RLSPD.js');
7273
7273
  const { pluginRegistry } = await import('../plugin-registry/index.js');
7274
7274
  const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
7275
7275
  if (result.loaded.length > 0) {
@@ -7283,14 +7283,14 @@ async function ensurePluginsLoadedForServe(projectDir) {
7283
7283
  }
7284
7284
  }
7285
7285
  async function runCompileTest(opts) {
7286
- const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-6X4HJKWS.js');
7286
+ const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-KLO5VUVZ.js');
7287
7287
  const { tmpdir } = await import('os');
7288
7288
  const { dirname: dirname4, join: join7, resolve: resolve5 } = await import('path');
7289
7289
  const { fileURLToPath: fileURLToPath2 } = await import('url');
7290
7290
  const { unlinkSync, existsSync: existsSync15 } = await import('fs');
7291
7291
  const { spawn } = await import('child_process');
7292
7292
  const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
7293
- const { MONOREPO_ROOT } = await import('../paths-IOOMNHTC.js');
7293
+ const { MONOREPO_ROOT } = await import('../paths-OI5IIS22.js');
7294
7294
  if (MONOREPO_ROOT === null) {
7295
7295
  logErr2("--compile-test is only available inside the skaile-dev workspace.");
7296
7296
  logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
@@ -8166,7 +8166,7 @@ function makeStoreCommand() {
8166
8166
  process.exit(2);
8167
8167
  });
8168
8168
  store.command("search <query>").description("Search the AI Asset Store catalog by name, description, or publisher").option("--kind <kind>", "Filter by asset kind (skill, agent, prompt, flow, \u2026)").option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (query, opts) => {
8169
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-4PFE2CJ7.js');
8169
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-S2ZFKJUK.js');
8170
8170
  try {
8171
8171
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
8172
8172
  const assets = await remote.listAssets(opts.kind ? { kind: opts.kind } : {});
@@ -8199,8 +8199,8 @@ function makeStoreCommand() {
8199
8199
  }
8200
8200
  });
8201
8201
  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) => {
8202
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-4PFE2CJ7.js');
8203
- const { supportsInstallManifest } = await import('../project-MD4HQ62C.js');
8202
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-S2ZFKJUK.js');
8203
+ const { supportsInstallManifest } = await import('../project-7VOTYB7O.js');
8204
8204
  try {
8205
8205
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
8206
8206
  const asset = await remote.resolve(ref);
@@ -9097,7 +9097,7 @@ Execution:
9097
9097
  integration uninstall [--driver all] Uninstall agent integration
9098
9098
  integration enable Enable integration (claude-code only)
9099
9099
  integration disable Disable integration (claude-code only)
9100
- integration status Show install / enable state across backends
9100
+ integration status Show install / enable state across harnesses
9101
9101
  plugin install <spec> Add a registry plugin to skaile.yaml + reconcile
9102
9102
  plugin remove <name> Remove a registry plugin from skaile.yaml
9103
9103
  plugin list List declared plugins + the targets they contribute
@@ -9157,21 +9157,21 @@ Advanced:
9157
9157
  `;
9158
9158
  }
9159
9159
  });
9160
- var BACKEND_DEFAULTS = {
9160
+ var HARNESS_DEFAULTS = {
9161
9161
  "claude-code": { driver: "claude-sdk", provider: "anthropic" },
9162
9162
  omp: { driver: "omp" },
9163
9163
  codex: { driver: "codex", provider: "openai" }
9164
9164
  };
9165
- program.command("init [project-dir]").description("Initialize a project directory (defaults to current directory)").option("--backend <name>", "Coding-agent backend (claude-code | omp | codex)", "claude-code").option("--no-git", "Skip git init and .gitignore").action(
9165
+ 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(
9166
9166
  (projectDir, opts) => runInit(projectDir, opts)
9167
9167
  );
9168
9168
  async function runInit(projectDir, opts) {
9169
9169
  const { mkdirSync: mkdirSync5, writeFileSync: writeFileSync6 } = await import('fs');
9170
9170
  const { stringify: stringify2 } = await import('yaml');
9171
9171
  const { DRIVER_TARGETS, SUPPORTED_DRIVER_TARGETS: SUPPORTED_DRIVER_TARGETS2 } = await import('../core/index.js');
9172
- const backend = opts.backend;
9173
- if (!SUPPORTED_DRIVER_TARGETS2.includes(backend)) {
9174
- logErr(`Unknown backend "${opts.backend}". Supported: ${SUPPORTED_DRIVER_TARGETS2.join(", ")}`);
9172
+ const harness = opts.harness;
9173
+ if (!SUPPORTED_DRIVER_TARGETS2.includes(harness)) {
9174
+ logErr(`Unknown harness "${opts.harness}". Supported: ${SUPPORTED_DRIVER_TARGETS2.join(", ")}`);
9175
9175
  process.exitCode = 1;
9176
9176
  return;
9177
9177
  }
@@ -9195,10 +9195,10 @@ async function runInit(projectDir, opts) {
9195
9195
  }
9196
9196
  const wsConfigPath = path36__default.join(resolved, "skaile.yaml");
9197
9197
  if (!existsSync15(wsConfigPath)) {
9198
- writeFileSync6(wsConfigPath, stringify2(buildInitWorkspaceConfig(projectName, backend)));
9198
+ writeFileSync6(wsConfigPath, stringify2(buildInitWorkspaceConfig(projectName, harness)));
9199
9199
  created.push("skaile.yaml");
9200
9200
  }
9201
- for (const dir of new Set(Object.values(DRIVER_TARGETS[backend].local))) {
9201
+ for (const dir of new Set(Object.values(DRIVER_TARGETS[harness].local))) {
9202
9202
  const full = path36__default.join(resolved, dir);
9203
9203
  if (!existsSync15(full)) {
9204
9204
  mkdirSync5(full, { recursive: true });
@@ -9212,18 +9212,18 @@ async function runInit(projectDir, opts) {
9212
9212
  await hydrateInitSources(resolved, created);
9213
9213
  printInitSummary(resolved, projectDir, created);
9214
9214
  }
9215
- function buildInitWorkspaceConfig(projectName, backend) {
9216
- const backendDefaults = BACKEND_DEFAULTS[backend];
9215
+ function buildInitWorkspaceConfig(projectName, harness) {
9216
+ const harnessDefaults = HARNESS_DEFAULTS[harness];
9217
9217
  return {
9218
9218
  name: projectName,
9219
9219
  description: `${projectName} AI skill dependencies`,
9220
9220
  "agent-config": {
9221
9221
  default: {
9222
- agent: backend,
9223
- // provider/model are omitted for backends that don't fix them (omp, codex).
9224
- ...backendDefaults.provider ? { provider: backendDefaults.provider } : {},
9225
- ...backendDefaults.model ? { model: backendDefaults.model } : {},
9226
- driver: backendDefaults.driver,
9222
+ agent: harness,
9223
+ // provider/model are omitted for harnesses that don't fix them (omp, codex).
9224
+ ...harnessDefaults.provider ? { provider: harnessDefaults.provider } : {},
9225
+ ...harnessDefaults.model ? { model: harnessDefaults.model } : {},
9226
+ driver: harnessDefaults.driver,
9227
9227
  max_turns: 200
9228
9228
  }
9229
9229
  }
@@ -9288,7 +9288,7 @@ async function bootstrapUserConfig() {
9288
9288
  }
9289
9289
  async function hydrateInitSources(resolved, created) {
9290
9290
  try {
9291
- const { ensureSourcesCloned } = await import('../ensure-sources-JGKHWDC4.js');
9291
+ const { ensureSourcesCloned } = await import('../ensure-sources-DVPPPCBS.js');
9292
9292
  const hydrate = ensureSourcesCloned(resolved, { quiet: true });
9293
9293
  for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
9294
9294
  if (hydrate.failed.length > 0) {
@@ -9328,7 +9328,7 @@ function printInitSummary(resolved, projectDir, created) {
9328
9328
  console.log();
9329
9329
  }
9330
9330
  program.command("setup").description("Interactive provider setup wizard").action(async () => {
9331
- const { cmdSetup } = await import('../setup-PB35G5SG.js');
9331
+ const { cmdSetup } = await import('../setup-RO3PGJYS.js');
9332
9332
  await cmdSetup([], { projectDir: process.cwd() });
9333
9333
  });
9334
9334
  program.addCommand(makeInstallCommand());