@skaile/workspaces 0.21.0 → 0.22.0-beta.1

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 (333) hide show
  1. package/CHANGELOG.md +176 -0
  2. package/dist/{asset-feeds-CI76R7FI.js → asset-feeds-QXCSAJRN.js} +11 -11
  3. package/dist/{asset-feeds-CI76R7FI.js.map → asset-feeds-QXCSAJRN.js.map} +1 -1
  4. package/dist/asset-manager/catalog-deployer.d.ts +2 -0
  5. package/dist/asset-manager/contrib.d.ts +2 -0
  6. package/dist/asset-manager/fragments.d.ts +2 -0
  7. package/dist/asset-manager/history.d.ts +2 -0
  8. package/dist/asset-manager/index.d.ts +2 -0
  9. package/dist/asset-manager/index.js +9 -9
  10. package/dist/asset-manager/installer.d.ts +2 -0
  11. package/dist/asset-manager/installer.js +8 -8
  12. package/dist/asset-manager/renderers.d.ts +2 -0
  13. package/dist/asset-manager/src/index.d.ts +18 -7
  14. package/dist/asset-manager/src/index.d.ts.map +1 -1
  15. package/dist/asset-manager/src/installer.d.ts +3 -3
  16. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  17. package/dist/base-assets/connectors/deploy.d.ts +2 -0
  18. package/dist/base-assets/connectors/deploy.js +10 -9
  19. package/dist/base-assets/connectors/devserver.d.ts +2 -0
  20. package/dist/base-assets/connectors/devserver.js +10 -9
  21. package/dist/base-assets/connectors/flow/adapter.js +10 -9
  22. package/dist/base-assets/connectors/flow/engine.d.ts +2 -0
  23. package/dist/base-assets/connectors/flow/run-flow.js +11 -10
  24. package/dist/base-assets/connectors/flow.d.ts +2 -0
  25. package/dist/base-assets/connectors/flow.js +10 -9
  26. package/dist/base-assets/connectors/git.d.ts +2 -0
  27. package/dist/base-assets/connectors/git.js +10 -9
  28. package/dist/base-assets/connectors/gmail.d.ts +2 -0
  29. package/dist/base-assets/connectors/gmail.js +10 -9
  30. package/dist/base-assets/connectors/googledrive.d.ts +2 -0
  31. package/dist/base-assets/connectors/googledrive.js +10 -9
  32. package/dist/base-assets/connectors/local.d.ts +2 -0
  33. package/dist/base-assets/connectors/local.js +10 -9
  34. package/dist/base-assets/connectors/mattermost.d.ts +2 -0
  35. package/dist/base-assets/connectors/mattermost.js +10 -9
  36. package/dist/base-assets/connectors/memory.d.ts +2 -0
  37. package/dist/base-assets/connectors/memory.js +10 -9
  38. package/dist/base-assets/connectors/minio.d.ts +2 -0
  39. package/dist/base-assets/connectors/minio.js +10 -9
  40. package/dist/base-assets/connectors/postgres.d.ts +2 -0
  41. package/dist/base-assets/connectors/postgres.js +10 -9
  42. package/dist/base-assets/connectors/s3.d.ts +2 -0
  43. package/dist/base-assets/connectors/s3.js +10 -9
  44. package/dist/base-assets/connectors/sharepoint.d.ts +2 -0
  45. package/dist/base-assets/connectors/sharepoint.js +10 -9
  46. package/dist/base-assets/connectors/sqlite.d.ts +2 -0
  47. package/dist/base-assets/connectors/sqlite.js +10 -9
  48. package/dist/base-assets/connectors/static-server.d.ts +2 -0
  49. package/dist/base-assets/connectors/static-server.js +10 -9
  50. package/dist/base-assets/connectors/tunnel.d.ts +2 -0
  51. package/dist/base-assets/connectors/tunnel.js +10 -9
  52. package/dist/base-assets/connectors/webdav.d.ts +2 -0
  53. package/dist/base-assets/connectors/webdav.js +10 -9
  54. package/dist/base-assets/connectors/xstate-store.d.ts +2 -0
  55. package/dist/base-assets/connectors/xstate-store.js +10 -9
  56. package/dist/base-assets/connectors/xstate.d.ts +2 -0
  57. package/dist/base-assets/connectors/xstate.js +10 -9
  58. package/dist/bridge/drivers/claude-sdk.d.ts +2 -0
  59. package/dist/bridge/drivers/claude-sdk.js +13 -3
  60. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  61. package/dist/bridge/drivers/codex.d.ts +2 -0
  62. package/dist/bridge/drivers/codex.js +13 -3
  63. package/dist/bridge/drivers/codex.js.map +1 -1
  64. package/dist/bridge/drivers/echo.d.ts +2 -0
  65. package/dist/bridge/drivers/echo.js +13 -4
  66. package/dist/bridge/drivers/echo.js.map +1 -1
  67. package/dist/bridge/drivers/omp.d.ts +2 -0
  68. package/dist/bridge/drivers/omp.js +13 -3
  69. package/dist/bridge/drivers/omp.js.map +1 -1
  70. package/dist/bridge/index.d.ts +2 -0
  71. package/dist/bridge/index.js +3 -2
  72. package/dist/bridge/src/drivers/claude-sdk.d.ts +7 -0
  73. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  74. package/dist/bridge/src/drivers/codex.d.ts +7 -0
  75. package/dist/bridge/src/drivers/codex.d.ts.map +1 -1
  76. package/dist/bridge/src/drivers/echo.d.ts +6 -0
  77. package/dist/bridge/src/drivers/echo.d.ts.map +1 -1
  78. package/dist/bridge/src/drivers/omp.d.ts +6 -0
  79. package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
  80. package/dist/bridge/src/registry.d.ts +34 -34
  81. package/dist/bridge/src/registry.d.ts.map +1 -1
  82. package/dist/{chunk-ZWIG55ZX.js → chunk-2XY6732A.js} +3 -3
  83. package/dist/{chunk-ZWIG55ZX.js.map → chunk-2XY6732A.js.map} +1 -1
  84. package/dist/{chunk-NCUTHLRV.js → chunk-3ECS5PFD.js} +4 -4
  85. package/dist/{chunk-NCUTHLRV.js.map → chunk-3ECS5PFD.js.map} +1 -1
  86. package/dist/{chunk-FRPKLIEZ.js → chunk-4AZKT2BU.js} +13 -13
  87. package/dist/chunk-4AZKT2BU.js.map +1 -0
  88. package/dist/chunk-6E6PKKAD.js +161 -0
  89. package/dist/chunk-6E6PKKAD.js.map +1 -0
  90. package/dist/{chunk-4ACWI5YT.js → chunk-6VTG73UY.js} +48 -36
  91. package/dist/chunk-6VTG73UY.js.map +1 -0
  92. package/dist/{chunk-H45ANMIU.js → chunk-APAOQLPT.js} +3 -3
  93. package/dist/{chunk-H45ANMIU.js.map → chunk-APAOQLPT.js.map} +1 -1
  94. package/dist/{chunk-4S4TZDCD.js → chunk-D7K72XEY.js} +3 -3
  95. package/dist/{chunk-4S4TZDCD.js.map → chunk-D7K72XEY.js.map} +1 -1
  96. package/dist/{chunk-2WVQMRIE.js → chunk-DKGDOALM.js} +5 -5
  97. package/dist/{chunk-2WVQMRIE.js.map → chunk-DKGDOALM.js.map} +1 -1
  98. package/dist/{chunk-DFUXWNTS.js → chunk-GFNW72LW.js} +17 -5
  99. package/dist/chunk-GFNW72LW.js.map +1 -0
  100. package/dist/{chunk-37JKX6D7.js → chunk-I3UEM3FX.js} +36 -8
  101. package/dist/chunk-I3UEM3FX.js.map +1 -0
  102. package/dist/{chunk-5QNQLSBW.js → chunk-J3VKAEQP.js} +514 -143
  103. package/dist/chunk-J3VKAEQP.js.map +1 -0
  104. package/dist/{chunk-BSY56QS7.js → chunk-JHF66MCK.js} +49 -3
  105. package/dist/chunk-JHF66MCK.js.map +1 -0
  106. package/dist/{chunk-XAVM2BAJ.js → chunk-LT4DLEYE.js} +114 -619
  107. package/dist/chunk-LT4DLEYE.js.map +1 -0
  108. package/dist/{chunk-S2OVTCAL.js → chunk-M5TE6YI5.js} +3 -3
  109. package/dist/{chunk-S2OVTCAL.js.map → chunk-M5TE6YI5.js.map} +1 -1
  110. package/dist/{chunk-RDH4SSMH.js → chunk-NJLHHZIW.js} +2 -2
  111. package/dist/{chunk-RDH4SSMH.js.map → chunk-NJLHHZIW.js.map} +1 -1
  112. package/dist/{chunk-XGWGLIHZ.js → chunk-PTIHB2TV.js} +5 -5
  113. package/dist/{chunk-XGWGLIHZ.js.map → chunk-PTIHB2TV.js.map} +1 -1
  114. package/dist/{chunk-W5DFC35Z.js → chunk-UMOENHVH.js} +279 -133
  115. package/dist/chunk-UMOENHVH.js.map +1 -0
  116. package/dist/{chunk-G4BR355S.js → chunk-V3QMSM5I.js} +38 -43
  117. package/dist/chunk-V3QMSM5I.js.map +1 -0
  118. package/dist/{chunk-DEQ3OOTU.js → chunk-VCYXVP2S.js} +263 -177
  119. package/dist/chunk-VCYXVP2S.js.map +1 -0
  120. package/dist/{chunk-KFDTS7RX.js → chunk-XIHFJVOD.js} +3 -3
  121. package/dist/{chunk-KFDTS7RX.js.map → chunk-XIHFJVOD.js.map} +1 -1
  122. package/dist/cli/index.d.ts +2 -0
  123. package/dist/cli/index.js +762 -472
  124. package/dist/cli/index.js.map +1 -1
  125. package/dist/cli/src/commands/deploy.d.ts +24 -0
  126. package/dist/cli/src/commands/deploy.d.ts.map +1 -0
  127. package/dist/cli/src/commands/integration.d.ts +19 -0
  128. package/dist/cli/src/commands/integration.d.ts.map +1 -0
  129. package/dist/cli/src/commands/manage.d.ts +1 -1
  130. package/dist/cli/src/commands/plugin-registry-cmd.d.ts +22 -0
  131. package/dist/cli/src/commands/plugin-registry-cmd.d.ts.map +1 -0
  132. package/dist/cli/src/commands/project.d.ts.map +1 -1
  133. package/dist/cli/src/commands/serve.d.ts.map +1 -1
  134. package/dist/cli/src/commands/source.d.ts.map +1 -1
  135. package/dist/cli/src/commands/update.d.ts.map +1 -1
  136. package/dist/cli/src/ensure-sources.d.ts.map +1 -1
  137. package/dist/cli/src/plugin-store/index.d.ts +37 -0
  138. package/dist/cli/src/plugin-store/index.d.ts.map +1 -0
  139. package/dist/cli/src/plugin-store/load.d.ts +35 -0
  140. package/dist/cli/src/plugin-store/load.d.ts.map +1 -0
  141. package/dist/cli/src/plugin-store/paths.d.ts +23 -0
  142. package/dist/cli/src/plugin-store/paths.d.ts.map +1 -0
  143. package/dist/cli/src/plugin-store/reconcile.d.ts +50 -0
  144. package/dist/cli/src/plugin-store/reconcile.d.ts.map +1 -0
  145. package/dist/cli/src/plugin-store/spec.d.ts +25 -0
  146. package/dist/cli/src/plugin-store/spec.d.ts.map +1 -0
  147. package/dist/client/index.d.ts +2 -0
  148. package/dist/connectors/config.d.ts +2 -0
  149. package/dist/connectors/config.js +8 -8
  150. package/dist/connectors/index.d.ts +2 -0
  151. package/dist/connectors/index.js +10 -9
  152. package/dist/connectors/rclone-config.d.ts +2 -0
  153. package/dist/connectors/rclone.d.ts +2 -0
  154. package/dist/connectors/src/connector-manager.d.ts.map +1 -1
  155. package/dist/connectors/src/connector-registry.d.ts +42 -22
  156. package/dist/connectors/src/connector-registry.d.ts.map +1 -1
  157. package/dist/connectors/src/index.d.ts +2 -3
  158. package/dist/connectors/src/index.d.ts.map +1 -1
  159. package/dist/connectors-shared/index.d.ts +2 -0
  160. package/dist/connectors-shared/index.js +8 -0
  161. package/dist/connectors-shared/index.js.map +1 -0
  162. package/dist/connectors-shared/src/index.d.ts +11 -0
  163. package/dist/connectors-shared/src/index.d.ts.map +1 -0
  164. package/dist/connectors-shared/src/schemas.d.ts +10 -0
  165. package/dist/connectors-shared/src/schemas.d.ts.map +1 -0
  166. package/dist/connectors-shared/src/types.d.ts +11 -0
  167. package/dist/connectors-shared/src/types.d.ts.map +1 -0
  168. package/dist/core/discovery.d.ts +2 -0
  169. package/dist/core/driver-targets.d.ts +2 -0
  170. package/dist/core/framework.d.ts +2 -0
  171. package/dist/core/index.d.ts +2 -0
  172. package/dist/core/index.js +7 -7
  173. package/dist/core/logging.d.ts +2 -0
  174. package/dist/core/manifest.d.ts +2 -0
  175. package/dist/core/manifest.js +2 -2
  176. package/dist/core/models.d.ts +2 -0
  177. package/dist/core/models.js +1 -1
  178. package/dist/core/runtime-assets.d.ts +2 -0
  179. package/dist/core/runtime-assets.js +4 -4
  180. package/dist/core/src/index.d.ts +8 -6
  181. package/dist/core/src/index.d.ts.map +1 -1
  182. package/dist/core/src/lock.d.ts +64 -24
  183. package/dist/core/src/lock.d.ts.map +1 -1
  184. package/dist/core/src/models.d.ts +66 -47
  185. package/dist/core/src/models.d.ts.map +1 -1
  186. package/dist/core/src/repo-manager.d.ts +62 -34
  187. package/dist/core/src/repo-manager.d.ts.map +1 -1
  188. package/dist/core/src/runtime-assets.d.ts.map +1 -1
  189. package/dist/core/src/walker.d.ts +52 -0
  190. package/dist/core/src/walker.d.ts.map +1 -0
  191. package/dist/core/src/workspace-config.d.ts +174 -45
  192. package/dist/core/src/workspace-config.d.ts.map +1 -1
  193. package/dist/core/src/workspace-yaml-editor.d.ts +53 -16
  194. package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
  195. package/dist/core/store.d.ts +2 -0
  196. package/dist/core/workspace-config.d.ts +2 -0
  197. package/dist/core/workspace-config.js +3 -3
  198. package/dist/deploy/index.d.ts +2 -0
  199. package/dist/deploy/index.js +473 -0
  200. package/dist/deploy/index.js.map +1 -0
  201. package/dist/deploy/src/handle-store.d.ts +22 -0
  202. package/dist/deploy/src/handle-store.d.ts.map +1 -0
  203. package/dist/deploy/src/index.d.ts +21 -0
  204. package/dist/deploy/src/index.d.ts.map +1 -0
  205. package/dist/deploy/src/targets/container-runtime.d.ts +39 -0
  206. package/dist/deploy/src/targets/container-runtime.d.ts.map +1 -0
  207. package/dist/deploy/src/targets/docker.d.ts +19 -0
  208. package/dist/deploy/src/targets/docker.d.ts.map +1 -0
  209. package/dist/deploy/src/targets/local.d.ts +30 -0
  210. package/dist/deploy/src/targets/local.d.ts.map +1 -0
  211. package/dist/deploy/src/targets/podman.d.ts +19 -0
  212. package/dist/deploy/src/targets/podman.d.ts.map +1 -0
  213. package/dist/deploy/src/targets/port.d.ts +10 -0
  214. package/dist/deploy/src/targets/port.d.ts.map +1 -0
  215. package/dist/deploy/src/targets/stream-lines.d.ts +44 -0
  216. package/dist/deploy/src/targets/stream-lines.d.ts.map +1 -0
  217. package/dist/discovery/index.d.ts +2 -0
  218. package/dist/discovery/index.js +3 -3
  219. package/dist/discovery/src/source-config.d.ts +2 -2
  220. package/dist/{ensure-sources-IDVQ77NJ.js → ensure-sources-SL2S4UEX.js} +22 -18
  221. package/dist/ensure-sources-SL2S4UEX.js.map +1 -0
  222. package/dist/{flows-6BNO4GKK.js → flows-DYFTPCPM.js} +4 -4
  223. package/dist/{flows-6BNO4GKK.js.map → flows-DYFTPCPM.js.map} +1 -1
  224. package/dist/library/index.d.ts +2 -0
  225. package/dist/library/index.js +4 -4
  226. package/dist/library/src/remote/remote-catalog-source.d.ts +17 -0
  227. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  228. package/dist/open-library-M4DB3D3J.js +13 -0
  229. package/dist/{open-library-IOYWFK7M.js.map → open-library-M4DB3D3J.js.map} +1 -1
  230. package/dist/plugin-registry/index.d.ts +2 -0
  231. package/dist/plugin-registry/index.js +4 -0
  232. package/dist/plugin-registry/index.js.map +1 -0
  233. package/dist/plugin-registry/src/context.d.ts +29 -0
  234. package/dist/plugin-registry/src/context.d.ts.map +1 -0
  235. package/dist/plugin-registry/src/deploy-handle.d.ts +76 -0
  236. package/dist/plugin-registry/src/deploy-handle.d.ts.map +1 -0
  237. package/dist/plugin-registry/src/deploy-helpers.d.ts +69 -0
  238. package/dist/plugin-registry/src/deploy-helpers.d.ts.map +1 -0
  239. package/dist/plugin-registry/src/errors.d.ts +23 -0
  240. package/dist/plugin-registry/src/errors.d.ts.map +1 -0
  241. package/dist/plugin-registry/src/index.d.ts +18 -0
  242. package/dist/plugin-registry/src/index.d.ts.map +1 -0
  243. package/dist/plugin-registry/src/internal.d.ts +13 -0
  244. package/dist/plugin-registry/src/internal.d.ts.map +1 -0
  245. package/dist/plugin-registry/src/registry.d.ts +26 -0
  246. package/dist/plugin-registry/src/registry.d.ts.map +1 -0
  247. package/dist/plugin-registry/src/targets.d.ts +46 -0
  248. package/dist/plugin-registry/src/targets.d.ts.map +1 -0
  249. package/dist/plugin-store-AJ3FGXIC.js +144 -0
  250. package/dist/plugin-store-AJ3FGXIC.js.map +1 -0
  251. package/dist/plugins/index.d.ts +2 -0
  252. package/dist/resolver/index.d.ts +2 -0
  253. package/dist/runner/index.d.ts +2 -0
  254. package/dist/runner/index.js +15 -14
  255. package/dist/runner/prompt-assembly.d.ts +2 -0
  256. package/dist/runner/src/resources.d.ts.map +1 -1
  257. package/dist/runner/src/serve.d.ts.map +1 -1
  258. package/dist/sdk/asset-manager.d.ts +2 -0
  259. package/dist/sdk/asset-manager.js +9 -9
  260. package/dist/sdk/bridge.d.ts +2 -0
  261. package/dist/sdk/bridge.js +3 -2
  262. package/dist/sdk/client.d.ts +2 -0
  263. package/dist/sdk/core.d.ts +2 -0
  264. package/dist/sdk/core.js +7 -7
  265. package/dist/sdk/flow.d.ts +2 -0
  266. package/dist/sdk/index.d.ts +2 -0
  267. package/dist/sdk/index.js +51 -17
  268. package/dist/sdk/index.js.map +1 -1
  269. package/dist/sdk/resolver.d.ts +2 -0
  270. package/dist/sdk/runner.d.ts +2 -0
  271. package/dist/sdk/runner.js +15 -14
  272. package/dist/sdk/session.d.ts +2 -0
  273. package/dist/sdk/src/local-runtime.d.ts +8 -0
  274. package/dist/sdk/src/local-runtime.d.ts.map +1 -1
  275. package/dist/sdk/src/transport.d.ts +7 -1
  276. package/dist/sdk/src/transport.d.ts.map +1 -1
  277. package/dist/sdk/store.d.ts +2 -0
  278. package/dist/sdk/telemetry.d.ts +2 -0
  279. package/dist/sdk/transport/ws/client.d.ts +2 -0
  280. package/dist/sdk/transport/ws/server.d.ts +2 -0
  281. package/dist/sdk/transport/ws.d.ts +2 -0
  282. package/dist/sdk/transport.d.ts +2 -0
  283. package/dist/sdk/types.d.ts +2 -0
  284. package/dist/secrets/index.d.ts +2 -0
  285. package/dist/session/index.d.ts +2 -0
  286. package/dist/{setup-AIOLUTKV.js → setup-GBSQX7JF.js} +12 -11
  287. package/dist/setup-GBSQX7JF.js.map +1 -0
  288. package/dist/store/index.d.ts +2 -0
  289. package/dist/store/react.d.ts +2 -0
  290. package/dist/store/vue.d.ts +2 -0
  291. package/dist/store-client-5WBRUC5U.js +14 -0
  292. package/dist/{store-client-CYEH2GKC.js.map → store-client-5WBRUC5U.js.map} +1 -1
  293. package/dist/telemetry/index.d.ts +2 -0
  294. package/dist/transport/index.d.ts +2 -0
  295. package/dist/transport/ws/client.d.ts +2 -0
  296. package/dist/transport/ws/server.d.ts +2 -0
  297. package/dist/transport/ws.d.ts +2 -0
  298. package/dist/tui/index.d.ts +2 -0
  299. package/dist/tui/index.js +15 -14
  300. package/dist/tui/index.js.map +1 -1
  301. package/dist/types/index.d.ts +2 -0
  302. package/dist/types/manifests.d.ts +2 -0
  303. package/dist/workspace-plugin/adapters/mcp.d.ts +2 -0
  304. package/dist/workspace-plugin/adapters/mcp.js +2 -2
  305. package/dist/workspace-plugin/adapters/omp.d.ts +2 -0
  306. package/dist/workspace-plugin/adapters/omp.js +3 -3
  307. package/dist/workspace-plugin/index.d.ts +2 -0
  308. package/dist/workspace-plugin/index.js +1 -1
  309. package/package.json +23 -24
  310. package/dist/base-assets/connectors/redis/adapter.d.ts +0 -39
  311. package/dist/base-assets/connectors/redis/adapter.d.ts.map +0 -1
  312. package/dist/base-assets/connectors/redis.js +0 -20
  313. package/dist/base-assets/connectors/redis.js.map +0 -1
  314. package/dist/base-assets/connectors/yjs/adapter.d.ts +0 -50
  315. package/dist/base-assets/connectors/yjs/adapter.d.ts.map +0 -1
  316. package/dist/base-assets/connectors/yjs.js +0 -20
  317. package/dist/base-assets/connectors/yjs.js.map +0 -1
  318. package/dist/chunk-37JKX6D7.js.map +0 -1
  319. package/dist/chunk-4ACWI5YT.js.map +0 -1
  320. package/dist/chunk-5QNQLSBW.js.map +0 -1
  321. package/dist/chunk-BSY56QS7.js.map +0 -1
  322. package/dist/chunk-DEQ3OOTU.js.map +0 -1
  323. package/dist/chunk-DFUXWNTS.js.map +0 -1
  324. package/dist/chunk-FRPKLIEZ.js.map +0 -1
  325. package/dist/chunk-G4BR355S.js.map +0 -1
  326. package/dist/chunk-W5DFC35Z.js.map +0 -1
  327. package/dist/chunk-XAVM2BAJ.js.map +0 -1
  328. package/dist/cli/src/commands/plugin.d.ts +0 -14
  329. package/dist/cli/src/commands/plugin.d.ts.map +0 -1
  330. package/dist/ensure-sources-IDVQ77NJ.js.map +0 -1
  331. package/dist/open-library-IOYWFK7M.js +0 -13
  332. package/dist/setup-AIOLUTKV.js.map +0 -1
  333. package/dist/store-client-CYEH2GKC.js +0 -14
@@ -1,7 +1,7 @@
1
- import { readLinks, getRepoCommit, resolveSkWorkspaceConfig } from './chunk-5QNQLSBW.js';
1
+ import { resolveSkWorkspaceConfig } from './chunk-J3VKAEQP.js';
2
2
  import { createHash } from 'crypto';
3
3
  import fs, { writeFileSync, existsSync, readFileSync, mkdirSync, cpSync, readdirSync } from 'fs';
4
- import path, { join, resolve, dirname, basename } from 'path';
4
+ import path, { join, dirname, basename } from 'path';
5
5
  import { stringify, parse, parseDocument, Document, isMap, isSeq } from 'yaml';
6
6
  import { spawnSync, spawn } from 'child_process';
7
7
  import fsp from 'fs/promises';
@@ -13,105 +13,107 @@ function writeLock(lockPath, data) {
13
13
  }
14
14
  function readLock(lockPath) {
15
15
  if (!existsSync(lockPath)) return null;
16
+ let raw;
16
17
  try {
17
- return parse(readFileSync(lockPath, "utf8"));
18
+ raw = parse(readFileSync(lockPath, "utf8"));
18
19
  } catch {
19
20
  return null;
20
21
  }
22
+ if (!raw || typeof raw !== "object") return null;
23
+ const r = raw;
24
+ if (r.schema_version !== 2) {
25
+ throw new Error(
26
+ "lockfile schema v1 detected. The lockfile shape changed in @skaile/workspaces 4.x. Regenerate: `rm skaile.lock.yaml && skaile install`."
27
+ );
28
+ }
29
+ return r;
21
30
  }
22
31
  function computeHash(filePath) {
23
- const content = readFileSync(filePath, "utf8");
32
+ const content = readFileSync(filePath);
24
33
  return createHash("sha256").update(content).digest("hex");
25
34
  }
26
- function buildLockFile(repositories, resolved, resolvedBy, reposDir, projectDir) {
27
- const lockRepos = {};
28
- const links = projectDir ? readLinks(projectDir) : {};
29
- for (const [name, decl] of Object.entries(repositories)) {
30
- const entry = { branch: decl.branch ?? "main" };
31
- if (decl.url) {
32
- entry.url = decl.url;
33
- const repoDir = links[name] ?? join(reposDir, name);
34
- if (existsSync(join(repoDir, ".git"))) {
35
- entry.commit = getRepoCommit(repoDir) ?? void 0;
36
- }
37
- }
38
- if (decl.path) entry.path = decl.path;
39
- lockRepos[name] = entry;
40
- }
35
+ function compositeHash(files) {
36
+ const lines = files.slice().sort((a, b) => a.path.localeCompare(b.path)).map((f) => `${f.path}:${f.sha256}
37
+ `).join("");
38
+ return createHash("sha256").update(lines).digest("hex");
39
+ }
40
+ function buildLockFile(resolved, overridesApplied) {
41
41
  const assets = {};
42
- for (const e of resolved) {
43
- const key = `${e.kind}:${e.name}`;
44
- let source = e.source;
45
- if (e.repository) {
46
- const decl = repositories[e.repository];
47
- if (decl) {
48
- let repoDir;
49
- if (links[e.repository]) {
50
- repoDir = links[e.repository];
51
- } else if (decl.path) {
52
- repoDir = resolve(join(reposDir, ".."), decl.path);
53
- } else {
54
- repoDir = join(reposDir, e.repository);
55
- }
56
- if (source.startsWith(repoDir)) {
57
- source = source.slice(repoDir.length).replace(/^\//, "");
58
- }
59
- }
60
- }
61
- assets[key] = {
62
- version: e.version,
63
- repository: e.repository ?? "unknown",
64
- source,
65
- domain: e.domain,
66
- integrity: existsSync(e.source) ? `sha256-${computeHash(e.source)}` : "",
67
- resolved_by: resolvedBy.get(key) ?? "direct"
42
+ const sourceMap = /* @__PURE__ */ new Map();
43
+ for (const c of resolved) {
44
+ const canonicalRef = `${c.publisher}/${c.kind}:${c.name}@${c.version}`;
45
+ assets[canonicalRef] = {
46
+ sha256: c.sha256,
47
+ source: { url: c.sourceUrl, commit: c.commit },
48
+ files: c.files,
49
+ override_applied: overridesApplied.has(canonicalRef)
68
50
  };
51
+ if (!sourceMap.has(c.sourceUrl)) {
52
+ sourceMap.set(c.sourceUrl, { url: c.sourceUrl, commit: c.commit });
53
+ }
69
54
  }
70
55
  return {
71
- lockfile_version: 1,
56
+ schema_version: 2,
57
+ locked_at: (/* @__PURE__ */ new Date()).toISOString(),
58
+ assets,
59
+ sources: Array.from(sourceMap.values()).sort((a, b) => a.url.localeCompare(b.url))
60
+ };
61
+ }
62
+ function lockPathFor(projectDir) {
63
+ return join(projectDir, "skaile.lock.yaml");
64
+ }
65
+ function readPluginsLockSlice(projectDir) {
66
+ try {
67
+ return readLock(lockPathFor(projectDir))?.plugins;
68
+ } catch {
69
+ return void 0;
70
+ }
71
+ }
72
+ function writePluginsLockSlice(projectDir, slice) {
73
+ const lockPath = lockPathFor(projectDir);
74
+ let existing = null;
75
+ try {
76
+ existing = readLock(lockPath);
77
+ } catch {
78
+ existing = null;
79
+ }
80
+ const next = existing ?? {
81
+ schema_version: 2,
72
82
  locked_at: (/* @__PURE__ */ new Date()).toISOString(),
73
- repositories: lockRepos,
74
- assets
83
+ assets: {},
84
+ sources: []
75
85
  };
86
+ next.plugins = slice;
87
+ writeLock(lockPath, next);
76
88
  }
77
- function verifyLock(lock, reposDir) {
89
+ function verifyLock(lock, resolveCloneDir) {
78
90
  const drifted = [];
79
91
  const missing = [];
80
- for (const [name, lockRepo] of Object.entries(lock.repositories)) {
81
- if (!lockRepo.commit || lockRepo.path) continue;
82
- const repoDir = join(reposDir, name);
83
- const currentCommit = existsSync(join(repoDir, ".git")) ? getRepoCommit(repoDir) : null;
84
- if (currentCommit && currentCommit !== lockRepo.commit) ;
85
- }
86
92
  for (const [ref, entry] of Object.entries(lock.assets)) {
87
- const repoDecl = lock.repositories[entry.repository];
88
- if (!repoDecl) {
93
+ const cloneDir = resolveCloneDir(entry.source.url);
94
+ if (!cloneDir) {
89
95
  missing.push(ref);
90
96
  continue;
91
97
  }
92
- let repoDir;
93
- if (repoDecl.path) {
94
- repoDir = resolve(join(reposDir, ".."), repoDecl.path);
95
- } else {
96
- repoDir = join(reposDir, entry.repository);
98
+ let allPresent = true;
99
+ const recomputed = [];
100
+ for (const f of entry.files) {
101
+ const abs = join(cloneDir, f.path);
102
+ if (!existsSync(abs)) {
103
+ allPresent = false;
104
+ break;
105
+ }
106
+ recomputed.push({ path: f.path, sha256: computeHash(abs) });
97
107
  }
98
- const fullPath = entry.source.startsWith("/") ? entry.source : join(repoDir, entry.source);
99
- if (!existsSync(fullPath)) {
108
+ if (!allPresent) {
100
109
  missing.push(ref);
101
110
  continue;
102
111
  }
103
- if (entry.integrity) {
104
- const currentHash = `sha256-${computeHash(fullPath)}`;
105
- if (currentHash !== entry.integrity) {
106
- drifted.push(ref);
107
- }
112
+ if (compositeHash(recomputed) !== entry.sha256) {
113
+ drifted.push(ref);
108
114
  }
109
115
  }
110
- return {
111
- ok: drifted.length === 0 && missing.length === 0,
112
- drifted,
113
- missing
114
- };
116
+ return { ok: drifted.length === 0 && missing.length === 0, drifted, missing };
115
117
  }
116
118
  function extractForPatch(entry, patchDir) {
117
119
  const ref = `${entry.kind}-${entry.name}`;
@@ -362,9 +364,9 @@ function portableSpawn(cmd, opts = {}) {
362
364
  stdio: ["ignore", "pipe", "pipe"],
363
365
  detached: opts.detached
364
366
  });
365
- const exited = new Promise((resolve2) => {
366
- child.on("close", (code) => resolve2(code ?? 0));
367
- child.on("error", () => resolve2(-1));
367
+ const exited = new Promise((resolve) => {
368
+ child.on("close", (code) => resolve(code ?? 0));
369
+ child.on("error", () => resolve(-1));
368
370
  });
369
371
  return {
370
372
  pid: child.pid ?? -1,
@@ -482,51 +484,24 @@ var WorkspaceYamlEditor = class _WorkspaceYamlEditor {
482
484
  const node = this.doc.get("agent-config", true) ?? this.doc.get("agent_config", true);
483
485
  return isMap(node) ? node : void 0;
484
486
  }
485
- // ── AI Resources ──────────────────────────────────────────────────────────
486
- /** Get all ai_resources entries. */
487
- getAiResources() {
488
- const val = this.doc.get("ai_resources");
489
- if (!Array.isArray(val)) return [];
490
- return val;
487
+ // ── Publisher / version (publication half) ──────────────────────────────────
488
+ /** Get the publication-half `publisher:` field. */
489
+ getPublisher() {
490
+ const v = this.doc.get("publisher");
491
+ return v != null ? String(v) : void 0;
491
492
  }
492
- /**
493
- * Add or update an AI resource entry by name.
494
- * If an entry with the same name exists, it is replaced.
495
- */
496
- setAiResource(entry) {
497
- const node = this.doc.get("ai_resources", true);
498
- if (!node || !isSeq(node)) {
499
- this.doc.set("ai_resources", this.doc.createNode([entry]));
500
- return;
501
- }
502
- let found = false;
503
- for (let i = 0; i < node.items.length; i++) {
504
- const item = node.items[i];
505
- if (isMap(item)) {
506
- const nameVal = item.get("name");
507
- if (nameVal === entry.name) {
508
- node.set(i, this.doc.createNode(entry));
509
- found = true;
510
- break;
511
- }
512
- }
513
- }
514
- if (!found) {
515
- node.add(this.doc.createNode(entry));
516
- }
493
+ /** Set the publication-half `publisher:` field. */
494
+ setPublisher(p) {
495
+ this.doc.set("publisher", p);
517
496
  }
518
- /** Remove an AI resource entry by name. */
519
- removeAiResource(name) {
520
- const node = this.doc.get("ai_resources", true);
521
- if (!node || !isSeq(node)) return false;
522
- for (let i = 0; i < node.items.length; i++) {
523
- const item = node.items[i];
524
- if (isMap(item) && item.get("name") === name) {
525
- node.delete(i);
526
- return true;
527
- }
528
- }
529
- return false;
497
+ /** Get the publication-half `version:` field. */
498
+ getVersion() {
499
+ const v = this.doc.get("version");
500
+ return v != null ? String(v) : void 0;
501
+ }
502
+ /** Set the publication-half `version:` field. */
503
+ setVersion(v) {
504
+ this.doc.set("version", v);
530
505
  }
531
506
  // ── Connectors ─────────────────────────────────────────────────────────────
532
507
  /** Get all connectors. */
@@ -570,16 +545,75 @@ var WorkspaceYamlEditor = class _WorkspaceYamlEditor {
570
545
  }
571
546
  return false;
572
547
  }
548
+ // ── Plugins ────────────────────────────────────────────────────────────────
549
+ /** Get all `plugins:` specifiers. */
550
+ getPlugins() {
551
+ const node = this.doc.get("plugins", true);
552
+ if (!isSeq(node)) return [];
553
+ const out = [];
554
+ for (const item of node.items) {
555
+ const cur = item != null && typeof item === "object" && "value" in item ? item.value : item;
556
+ if (typeof cur === "string") out.push(cur);
557
+ }
558
+ return out;
559
+ }
560
+ /**
561
+ * Add a plugin specifier to `plugins:`, deduped by package name.
562
+ * If an entry with the same package name exists it is replaced (so a version
563
+ * bump re-pins in place); otherwise the spec is appended.
564
+ *
565
+ * @param spec - npm specifier, e.g. `"@skaile/provider-fly@^0.1.0"`.
566
+ * @param nameOf - Extracts the package name from a spec (caller passes `parseSpec`-derived names).
567
+ * @returns `true` when an existing entry was replaced, `false` when appended.
568
+ */
569
+ addPlugin(spec, nameOf) {
570
+ const node = this.doc.get("plugins", true);
571
+ if (!node || !isSeq(node)) {
572
+ this.doc.set("plugins", this.doc.createNode([spec]));
573
+ return false;
574
+ }
575
+ const wantName = nameOf(spec);
576
+ for (let i = 0; i < node.items.length; i++) {
577
+ const item = node.items[i];
578
+ const cur = item != null && typeof item === "object" && "value" in item ? item.value : item;
579
+ if (typeof cur === "string" && nameOf(cur) === wantName) {
580
+ node.set(i, this.doc.createNode(spec));
581
+ return true;
582
+ }
583
+ }
584
+ node.add(this.doc.createNode(spec));
585
+ return false;
586
+ }
587
+ /**
588
+ * Remove the `plugins:` entry whose package name matches `name`.
589
+ *
590
+ * @param name - Package name to remove (e.g. `"@skaile/provider-fly"`).
591
+ * @param nameOf - Extracts the package name from a spec.
592
+ * @returns `true` when an entry was removed.
593
+ */
594
+ removePlugin(name, nameOf) {
595
+ const node = this.doc.get("plugins", true);
596
+ if (!node || !isSeq(node)) return false;
597
+ for (let i = 0; i < node.items.length; i++) {
598
+ const item = node.items[i];
599
+ const cur = item != null && typeof item === "object" && "value" in item ? item.value : item;
600
+ if (typeof cur === "string" && nameOf(cur) === name) {
601
+ node.delete(i);
602
+ return true;
603
+ }
604
+ }
605
+ return false;
606
+ }
573
607
  // ── Sources ────────────────────────────────────────────────────────────────
574
- /** Get all source entries. */
608
+ /** Get all source entries (`{url, pin?}`). */
575
609
  getSources() {
576
610
  const val = this.doc.get("sources");
577
611
  if (!Array.isArray(val)) return [];
578
612
  return val;
579
613
  }
580
614
  /**
581
- * Add or update a source entry by name.
582
- * If an entry with the same name exists, it is replaced.
615
+ * Add or update a source entry, matched by `url`.
616
+ * If an entry with the same url exists, it is replaced.
583
617
  */
584
618
  setSource(entry) {
585
619
  const node = this.doc.get("sources", true);
@@ -590,23 +624,135 @@ var WorkspaceYamlEditor = class _WorkspaceYamlEditor {
590
624
  let found = false;
591
625
  for (let i = 0; i < node.items.length; i++) {
592
626
  const item = node.items[i];
593
- if (isMap(item) && item.get("name") === entry.name) {
627
+ if (isMap(item) && item.get("url") === entry.url) {
594
628
  node.set(i, this.doc.createNode(entry));
595
629
  found = true;
596
630
  break;
597
631
  }
598
632
  }
599
- if (!found) {
600
- node.add(this.doc.createNode(entry));
601
- }
633
+ if (!found) node.add(this.doc.createNode(entry));
602
634
  }
603
- /** Remove a source entry by name. Returns true when an entry was removed. */
604
- removeSource(name) {
635
+ /** Remove a source entry by url. Returns true when an entry was removed. */
636
+ removeSource(url) {
605
637
  const node = this.doc.get("sources", true);
606
638
  if (!node || !isSeq(node)) return false;
607
639
  for (let i = 0; i < node.items.length; i++) {
608
640
  const item = node.items[i];
609
- if (isMap(item) && item.get("name") === name) {
641
+ if (isMap(item) && item.get("url") === url) {
642
+ node.delete(i);
643
+ return true;
644
+ }
645
+ }
646
+ return false;
647
+ }
648
+ // ── Stores ─────────────────────────────────────────────────────────────────
649
+ /** Get all store entries (`{url}`). */
650
+ getStores() {
651
+ const val = this.doc.get("stores");
652
+ if (!Array.isArray(val)) return [];
653
+ return val;
654
+ }
655
+ /** Add or update a store entry, matched by `url`. */
656
+ setStore(entry) {
657
+ const node = this.doc.get("stores", true);
658
+ if (!node || !isSeq(node)) {
659
+ this.doc.set("stores", this.doc.createNode([entry]));
660
+ return;
661
+ }
662
+ let found = false;
663
+ for (let i = 0; i < node.items.length; i++) {
664
+ const item = node.items[i];
665
+ if (isMap(item) && item.get("url") === entry.url) {
666
+ node.set(i, this.doc.createNode(entry));
667
+ found = true;
668
+ break;
669
+ }
670
+ }
671
+ if (!found) node.add(this.doc.createNode(entry));
672
+ }
673
+ /** Remove a store entry by url. Returns true when an entry was removed. */
674
+ removeStore(url) {
675
+ const node = this.doc.get("stores", true);
676
+ if (!node || !isSeq(node)) return false;
677
+ for (let i = 0; i < node.items.length; i++) {
678
+ const item = node.items[i];
679
+ if (isMap(item) && item.get("url") === url) {
680
+ node.delete(i);
681
+ return true;
682
+ }
683
+ }
684
+ return false;
685
+ }
686
+ // ── Overrides ────────────────────────────────────────────────────────────────
687
+ /** Get all override entries (`{ref, source, reason}`). */
688
+ getOverrides() {
689
+ const val = this.doc.get("overrides");
690
+ if (!Array.isArray(val)) return [];
691
+ return val;
692
+ }
693
+ /** Add or update an override entry, matched by `ref`. */
694
+ setOverride(entry) {
695
+ const node = this.doc.get("overrides", true);
696
+ if (!node || !isSeq(node)) {
697
+ this.doc.set("overrides", this.doc.createNode([entry]));
698
+ return;
699
+ }
700
+ let found = false;
701
+ for (let i = 0; i < node.items.length; i++) {
702
+ const item = node.items[i];
703
+ if (isMap(item) && item.get("ref") === entry.ref) {
704
+ node.set(i, this.doc.createNode(entry));
705
+ found = true;
706
+ break;
707
+ }
708
+ }
709
+ if (!found) node.add(this.doc.createNode(entry));
710
+ }
711
+ /** Remove an override entry by ref. Returns true when an entry was removed. */
712
+ removeOverride(ref) {
713
+ const node = this.doc.get("overrides", true);
714
+ if (!node || !isSeq(node)) return false;
715
+ for (let i = 0; i < node.items.length; i++) {
716
+ const item = node.items[i];
717
+ if (isMap(item) && item.get("ref") === ref) {
718
+ node.delete(i);
719
+ return true;
720
+ }
721
+ }
722
+ return false;
723
+ }
724
+ // ── Publication assets ───────────────────────────────────────────────────────
725
+ /** Get all publication-half `assets:` entries. */
726
+ getPublicationAssets() {
727
+ const val = this.doc.get("assets");
728
+ if (!Array.isArray(val)) return [];
729
+ return val;
730
+ }
731
+ /** Add or update a publication asset entry, matched by `kind` + `name`. */
732
+ setPublicationAsset(entry) {
733
+ const node = this.doc.get("assets", true);
734
+ if (!node || !isSeq(node)) {
735
+ this.doc.set("assets", this.doc.createNode([entry]));
736
+ return;
737
+ }
738
+ let found = false;
739
+ for (let i = 0; i < node.items.length; i++) {
740
+ const item = node.items[i];
741
+ if (isMap(item) && item.get("kind") === entry.kind && item.get("name") === entry.name) {
742
+ node.set(i, this.doc.createNode(entry));
743
+ found = true;
744
+ break;
745
+ }
746
+ }
747
+ if (!found) node.add(this.doc.createNode(entry));
748
+ }
749
+ /** Remove a publication asset entry by kind + name. Returns true when removed. */
750
+ removePublicationAsset(kind, name) {
751
+ const node = this.doc.get("assets", true);
752
+ if (!node || !isSeq(node)) return false;
753
+ for (let i = 0; i < node.items.length; i++) {
754
+ const item = node.items[i];
755
+ if (isMap(item) && item.get("kind") === kind && item.get("name") === name) {
610
756
  node.delete(i);
611
757
  return true;
612
758
  }
@@ -620,6 +766,6 @@ var WorkspaceYamlEditor = class _WorkspaceYamlEditor {
620
766
  }
621
767
  };
622
768
 
623
- export { ALL_PROVIDERS, SETTINGS_DEFAULTS, WorkspaceYamlEditor, applyPatch, buildLockFile, computeHash, detectEnvApiKeys, extractForPatch, generatePatch, globalSettingsPath, listPatches, loadSettings, mapLegacyFields, maskApiKey, migrateSettings, portableSpawn, portableSpawnSync, projectSettingsPath, providerEnvKey, readLock, readPatch, resolveAllKeys, resolveApiKey, resolveSettings, savePatch, saveSettings, verifyLock, walkForSettings, writeLock };
624
- //# sourceMappingURL=chunk-W5DFC35Z.js.map
625
- //# sourceMappingURL=chunk-W5DFC35Z.js.map
769
+ export { ALL_PROVIDERS, SETTINGS_DEFAULTS, WorkspaceYamlEditor, applyPatch, buildLockFile, computeHash, detectEnvApiKeys, extractForPatch, generatePatch, globalSettingsPath, listPatches, loadSettings, mapLegacyFields, maskApiKey, migrateSettings, portableSpawn, portableSpawnSync, projectSettingsPath, providerEnvKey, readLock, readPatch, readPluginsLockSlice, resolveAllKeys, resolveApiKey, resolveSettings, savePatch, saveSettings, verifyLock, walkForSettings, writeLock, writePluginsLockSlice };
770
+ //# sourceMappingURL=chunk-UMOENHVH.js.map
771
+ //# sourceMappingURL=chunk-UMOENHVH.js.map