@skaile/workspaces 0.24.0 → 0.26.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 (520) hide show
  1. package/CHANGELOG.md +276 -0
  2. package/README.md +2 -2
  3. package/dist/{asset-feeds-WKIKSZ6Z.js → asset-feeds-WMVTI7KW.js} +11 -10
  4. package/dist/asset-feeds-WMVTI7KW.js.map +1 -0
  5. package/dist/asset-manager/index.js +11 -10
  6. package/dist/asset-manager/installer.js +10 -9
  7. package/dist/asset-manager/renderers.js +2 -2
  8. package/dist/asset-manager/src/index.d.ts +6 -7
  9. package/dist/asset-manager/src/index.d.ts.map +1 -1
  10. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  11. package/dist/bridge/drivers/claude-sdk.js +14 -7
  12. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  13. package/dist/bridge/drivers/codex.js +8 -34
  14. package/dist/bridge/drivers/codex.js.map +1 -1
  15. package/dist/bridge/drivers/echo.js +1 -1
  16. package/dist/bridge/drivers/omp.js +64 -50
  17. package/dist/bridge/drivers/omp.js.map +1 -1
  18. package/dist/bridge/index.js +4 -4
  19. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  20. package/dist/bridge/src/drivers/codex.d.ts.map +1 -1
  21. package/dist/bridge/src/drivers/omp.d.ts +20 -4
  22. package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
  23. package/dist/bridge/src/error-classifier.d.ts +17 -0
  24. package/dist/bridge/src/error-classifier.d.ts.map +1 -1
  25. package/dist/bridge/src/models.d.ts +1 -1
  26. package/dist/bridge/src/models.d.ts.map +1 -1
  27. package/dist/bridge/src/provider-endpoints.d.ts +16 -0
  28. package/dist/bridge/src/provider-endpoints.d.ts.map +1 -0
  29. package/dist/bridge/src/validation.d.ts +1 -1
  30. package/dist/bridge/src/validation.d.ts.map +1 -1
  31. package/dist/{chunk-M5TE6YI5.js → chunk-23M4XZQW.js} +10 -52
  32. package/dist/chunk-23M4XZQW.js.map +1 -0
  33. package/dist/{chunk-DH4N5AW4.js → chunk-2FS4FPZ7.js} +3 -3
  34. package/dist/{chunk-DH4N5AW4.js.map → chunk-2FS4FPZ7.js.map} +1 -1
  35. package/dist/{chunk-6VTG73UY.js → chunk-45H3UO2R.js} +2 -2
  36. package/dist/{chunk-6VTG73UY.js.map → chunk-45H3UO2R.js.map} +1 -1
  37. package/dist/chunk-4SQ6Y6U7.js +28 -0
  38. package/dist/chunk-4SQ6Y6U7.js.map +1 -0
  39. package/dist/{chunk-LSGAYQ2E.js → chunk-5YO3H5Q4.js} +3 -3
  40. package/dist/{chunk-LSGAYQ2E.js.map → chunk-5YO3H5Q4.js.map} +1 -1
  41. package/dist/{chunk-JDX54X4Y.js → chunk-7GWYRVAX.js} +12 -9
  42. package/dist/chunk-7GWYRVAX.js.map +1 -0
  43. package/dist/{chunk-46COM7M5.js → chunk-7OBGSR7O.js} +5 -5
  44. package/dist/chunk-7OBGSR7O.js.map +1 -0
  45. package/dist/{chunk-2RFOFHSM.js → chunk-BKF3UFF4.js} +21 -9
  46. package/dist/chunk-BKF3UFF4.js.map +1 -0
  47. package/dist/{chunk-KOVLSBXK.js → chunk-BMQKMOQY.js} +81 -79
  48. package/dist/chunk-BMQKMOQY.js.map +1 -0
  49. package/dist/{chunk-J2TITSXF.js → chunk-BQRRBGDE.js} +2 -2
  50. package/dist/{chunk-J2TITSXF.js.map → chunk-BQRRBGDE.js.map} +1 -1
  51. package/dist/{chunk-5ESCS2OS.js → chunk-C32BRO2W.js} +67 -35
  52. package/dist/chunk-C32BRO2W.js.map +1 -0
  53. package/dist/{chunk-GZWJGNNN.js → chunk-DEYYRFQU.js} +3 -3
  54. package/dist/chunk-DEYYRFQU.js.map +1 -0
  55. package/dist/{chunk-YX3UWPJ5.js → chunk-IEJ5IOC3.js} +27 -49
  56. package/dist/chunk-IEJ5IOC3.js.map +1 -0
  57. package/dist/chunk-IERB3UXJ.js +215 -0
  58. package/dist/chunk-IERB3UXJ.js.map +1 -0
  59. package/dist/{chunk-FVTV7M76.js → chunk-IFGTRL2I.js} +3 -3
  60. package/dist/chunk-IFGTRL2I.js.map +1 -0
  61. package/dist/{chunk-LJ52ZKIU.js → chunk-JIQLLZ65.js} +203 -39
  62. package/dist/chunk-JIQLLZ65.js.map +1 -0
  63. package/dist/{chunk-Z3M5K67G.js → chunk-KL2MQ6WI.js} +114 -63
  64. package/dist/chunk-KL2MQ6WI.js.map +1 -0
  65. package/dist/{chunk-6FNCZYJY.js → chunk-MBOR7D65.js} +3 -3
  66. package/dist/{chunk-6FNCZYJY.js.map → chunk-MBOR7D65.js.map} +1 -1
  67. package/dist/{chunk-QAVZOJCV.js → chunk-OVRSNIKJ.js} +2 -2
  68. package/dist/chunk-OVRSNIKJ.js.map +1 -0
  69. package/dist/{chunk-DQWREFRQ.js → chunk-PAYAFNXG.js} +22 -3
  70. package/dist/chunk-PAYAFNXG.js.map +1 -0
  71. package/dist/{chunk-D3VO6WNC.js → chunk-PRLD7EXG.js} +3 -3
  72. package/dist/chunk-PRLD7EXG.js.map +1 -0
  73. package/dist/{chunk-N6TA6RSH.js → chunk-PY7AQRGH.js} +59 -13
  74. package/dist/chunk-PY7AQRGH.js.map +1 -0
  75. package/dist/{chunk-NELZIQ2E.js → chunk-QDJKE557.js} +20 -3
  76. package/dist/chunk-QDJKE557.js.map +1 -0
  77. package/dist/{chunk-OYRW5RCM.js → chunk-QHXS3YDV.js} +9 -9
  78. package/dist/chunk-QHXS3YDV.js.map +1 -0
  79. package/dist/{chunk-2F3RUZXC.js → chunk-RTAIGPTF.js} +161 -106
  80. package/dist/chunk-RTAIGPTF.js.map +1 -0
  81. package/dist/{chunk-IPUYL6TD.js → chunk-TV72ZJYN.js} +8 -5
  82. package/dist/{chunk-IPUYL6TD.js.map → chunk-TV72ZJYN.js.map} +1 -1
  83. package/dist/{chunk-ICS76R4T.js → chunk-W7W66MDZ.js} +10 -8
  84. package/dist/chunk-W7W66MDZ.js.map +1 -0
  85. package/dist/{chunk-JQBHCJ6N.js → chunk-WD4LP66U.js} +329 -121
  86. package/dist/chunk-WD4LP66U.js.map +1 -0
  87. package/dist/{chunk-AFLH7B64.js → chunk-XGLGS5B4.js} +3 -3
  88. package/dist/{chunk-AFLH7B64.js.map → chunk-XGLGS5B4.js.map} +1 -1
  89. package/dist/{chunk-HIIARTRZ.js → chunk-YDTW4GT6.js} +450 -207
  90. package/dist/chunk-YDTW4GT6.js.map +1 -0
  91. package/dist/{chunk-2XY6732A.js → chunk-YRU4WB6Y.js} +5 -5
  92. package/dist/chunk-YRU4WB6Y.js.map +1 -0
  93. package/dist/{chunk-542K7SR6.js → chunk-Z5DI7PDG.js} +173 -90
  94. package/dist/chunk-Z5DI7PDG.js.map +1 -0
  95. package/dist/{chunk-KLNL7QHN.js → chunk-ZAP2BDHG.js} +30 -5
  96. package/dist/chunk-ZAP2BDHG.js.map +1 -0
  97. package/dist/{chunk-GCJXPUHG.js → chunk-ZONCCO5N.js} +9 -4
  98. package/dist/chunk-ZONCCO5N.js.map +1 -0
  99. package/dist/{chunk-ODPII24X.js → chunk-ZYDE52WE.js} +3 -3
  100. package/dist/{chunk-ODPII24X.js.map → chunk-ZYDE52WE.js.map} +1 -1
  101. package/dist/cli/index.js +566 -425
  102. package/dist/cli/index.js.map +1 -1
  103. package/dist/cli/src/commands/complete-resolvers.d.ts.map +1 -1
  104. package/dist/cli/src/commands/config.d.ts.map +1 -1
  105. package/dist/cli/src/commands/connector.d.ts +7 -0
  106. package/dist/cli/src/commands/connector.d.ts.map +1 -1
  107. package/dist/cli/src/commands/flow.d.ts +3 -2
  108. package/dist/cli/src/commands/flow.d.ts.map +1 -1
  109. package/dist/cli/src/commands/npx.d.ts.map +1 -1
  110. package/dist/cli/src/commands/project.d.ts.map +1 -1
  111. package/dist/cli/src/commands/run.d.ts.map +1 -1
  112. package/dist/cli/src/commands/validate.d.ts.map +1 -1
  113. package/dist/cli/src/flow-discovery.d.ts +24 -0
  114. package/dist/cli/src/flow-discovery.d.ts.map +1 -0
  115. package/dist/cli/src/open-registry.d.ts +2 -2
  116. package/dist/cli/src/paths.d.ts +26 -9
  117. package/dist/cli/src/paths.d.ts.map +1 -1
  118. package/dist/cli/src/skill-walker.d.ts +9 -5
  119. package/dist/cli/src/skill-walker.d.ts.map +1 -1
  120. package/dist/connectors/config.js +8 -7
  121. package/dist/connectors/index.js +13 -12
  122. package/dist/connectors/rclone-config.js +1 -1
  123. package/dist/connectors/src/connector-manager.d.ts +24 -2
  124. package/dist/connectors/src/connector-manager.d.ts.map +1 -1
  125. package/dist/connectors/src/connector-prompt.d.ts.map +1 -1
  126. package/dist/connectors/src/connector-registry.d.ts +3 -3
  127. package/dist/connectors/src/credential-helper-script.d.ts.map +1 -1
  128. package/dist/connectors/src/index.d.ts +4 -2
  129. package/dist/connectors/src/index.d.ts.map +1 -1
  130. package/dist/connectors/src/managed-gitconfig.d.ts.map +1 -1
  131. package/dist/connectors/src/mount-placeholder.d.ts +68 -0
  132. package/dist/connectors/src/mount-placeholder.d.ts.map +1 -0
  133. package/dist/connectors/src/rclone-config/googledrive.d.ts +1 -1
  134. package/dist/core/discovery.js +1 -1
  135. package/dist/core/index.js +7 -6
  136. package/dist/core/manifest.js +2 -2
  137. package/dist/core/models.js +1 -1
  138. package/dist/core/publish-manifest.d.ts +2 -0
  139. package/dist/core/publish-manifest.js +5 -0
  140. package/dist/core/publish-manifest.js.map +1 -0
  141. package/dist/core/runtime-assets.js +5 -4
  142. package/dist/core/src/discovery.d.ts +27 -0
  143. package/dist/core/src/discovery.d.ts.map +1 -1
  144. package/dist/core/src/index.d.ts +9 -6
  145. package/dist/core/src/index.d.ts.map +1 -1
  146. package/dist/core/src/lock.d.ts.map +1 -1
  147. package/dist/core/src/manifest-yaml-editor.d.ts +62 -0
  148. package/dist/core/src/manifest-yaml-editor.d.ts.map +1 -0
  149. package/dist/core/src/models.d.ts +16 -3
  150. package/dist/core/src/models.d.ts.map +1 -1
  151. package/dist/core/src/publish-manifest.d.ts +160 -0
  152. package/dist/core/src/publish-manifest.d.ts.map +1 -0
  153. package/dist/core/src/repo-manager.d.ts +9 -1
  154. package/dist/core/src/repo-manager.d.ts.map +1 -1
  155. package/dist/core/src/runtime-assets.d.ts +80 -29
  156. package/dist/core/src/runtime-assets.d.ts.map +1 -1
  157. package/dist/core/src/walker.d.ts +19 -6
  158. package/dist/core/src/walker.d.ts.map +1 -1
  159. package/dist/core/src/workspace-config.d.ts +30 -36
  160. package/dist/core/src/workspace-config.d.ts.map +1 -1
  161. package/dist/core/src/workspace-yaml-editor.d.ts +1 -15
  162. package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
  163. package/dist/core/workspace-config.js +4 -3
  164. package/dist/deploy/index.js +50 -79
  165. package/dist/deploy/index.js.map +1 -1
  166. package/dist/deploy/src/targets/container-runtime.d.ts +1 -1
  167. package/dist/deploy/src/targets/container-runtime.d.ts.map +1 -1
  168. package/dist/deploy/src/targets/local.d.ts.map +1 -1
  169. package/dist/deploy/src/targets/nix.d.ts.map +1 -1
  170. package/dist/deploy/src/targets/process-handle.d.ts +7 -5
  171. package/dist/deploy/src/targets/process-handle.d.ts.map +1 -1
  172. package/dist/discovery/index.js +5 -4
  173. package/dist/discovery/src/discover-manifest.d.ts +3 -2
  174. package/dist/discovery/src/discover-manifest.d.ts.map +1 -1
  175. package/dist/discovery/src/discover.d.ts +2 -2
  176. package/dist/discovery/src/discover.d.ts.map +1 -1
  177. package/dist/discovery/src/index.d.ts +1 -1
  178. package/dist/discovery/src/index.d.ts.map +1 -1
  179. package/dist/discovery/src/source-config.d.ts +53 -12
  180. package/dist/discovery/src/source-config.d.ts.map +1 -1
  181. package/dist/discovery/src/tree-entries.d.ts +2 -2
  182. package/dist/discovery/src/tree-entries.d.ts.map +1 -1
  183. package/dist/{ensure-sources-OJUBGX6Z.js → ensure-sources-CVULUVH4.js} +12 -11
  184. package/dist/ensure-sources-CVULUVH4.js.map +1 -0
  185. package/dist/factory-assets/.skaile-source.yaml +6 -0
  186. package/dist/factory-assets/README.md +36 -0
  187. package/dist/factory-assets/bundles/workspaces-authoring/workspaces-authoring.bundle.yaml +9 -0
  188. package/dist/factory-assets/connectors/deploy/CONNECTOR.md +41 -0
  189. package/dist/{base-assets → factory-assets}/connectors/deploy/adapter.d.ts +2 -2
  190. package/dist/factory-assets/connectors/deploy/adapter.d.ts.map +1 -0
  191. package/dist/factory-assets/connectors/deploy.js +22 -0
  192. package/dist/factory-assets/connectors/devserver/CONNECTOR.md +44 -0
  193. package/dist/{base-assets → factory-assets}/connectors/devserver/adapter.d.ts +2 -2
  194. package/dist/factory-assets/connectors/devserver/adapter.d.ts.map +1 -0
  195. package/dist/factory-assets/connectors/devserver.js +22 -0
  196. package/dist/factory-assets/connectors/flow/CONNECTOR.md +47 -0
  197. package/dist/{base-assets → factory-assets}/connectors/flow/adapter.d.ts +2 -2
  198. package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -0
  199. package/dist/factory-assets/connectors/flow/adapter.js +22 -0
  200. package/dist/factory-assets/connectors/flow/engine/engine.d.ts.map +1 -0
  201. package/dist/{base-assets → factory-assets}/connectors/flow/engine/flow-kind-provider.d.ts +1 -1
  202. package/dist/factory-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +1 -0
  203. package/dist/factory-assets/connectors/flow/engine/flow-manifest.d.ts.map +1 -0
  204. package/dist/factory-assets/connectors/flow/engine/index.d.ts.map +1 -0
  205. package/dist/factory-assets/connectors/flow/engine/loader.d.ts.map +1 -0
  206. package/dist/factory-assets/connectors/flow/engine/types.d.ts.map +1 -0
  207. package/dist/factory-assets/connectors/flow/engine.js +15 -0
  208. package/dist/factory-assets/connectors/flow/index.d.ts.map +1 -0
  209. package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.d.ts +5 -5
  210. package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts.map +1 -0
  211. package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.js +1 -1
  212. package/dist/{base-assets → factory-assets}/connectors/flow/run-flow.d.ts +8 -8
  213. package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -0
  214. package/dist/factory-assets/connectors/flow/run-flow.js +25 -0
  215. package/dist/{base-assets → factory-assets}/connectors/flow/stimulus-driver.d.ts +2 -2
  216. package/dist/factory-assets/connectors/flow/stimulus-driver.d.ts.map +1 -0
  217. package/dist/factory-assets/connectors/flow/stimulus-driver.js +4 -0
  218. package/dist/factory-assets/connectors/flow.js +22 -0
  219. package/dist/factory-assets/connectors/git/CONNECTOR.md +145 -0
  220. package/dist/{base-assets → factory-assets}/connectors/git/driver.d.ts +2 -2
  221. package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -0
  222. package/dist/factory-assets/connectors/git.js +22 -0
  223. package/dist/factory-assets/connectors/gmail/CONNECTOR.md +50 -0
  224. package/dist/{base-assets → factory-assets}/connectors/gmail/adapter.d.ts +2 -2
  225. package/dist/factory-assets/connectors/gmail/adapter.d.ts.map +1 -0
  226. package/dist/factory-assets/connectors/gmail.js +22 -0
  227. package/dist/factory-assets/connectors/googledrive/CONNECTOR.md +150 -0
  228. package/dist/{base-assets → factory-assets}/connectors/googledrive/driver.d.ts +2 -2
  229. package/dist/factory-assets/connectors/googledrive/driver.d.ts.map +1 -0
  230. package/dist/factory-assets/connectors/googledrive.js +22 -0
  231. package/dist/factory-assets/connectors/local/CONNECTOR.md +40 -0
  232. package/dist/{base-assets → factory-assets}/connectors/local/driver.d.ts +2 -2
  233. package/dist/factory-assets/connectors/local/driver.d.ts.map +1 -0
  234. package/dist/factory-assets/connectors/local.js +22 -0
  235. package/dist/factory-assets/connectors/mattermost/CONNECTOR.md +65 -0
  236. package/dist/{base-assets → factory-assets}/connectors/mattermost/adapter.d.ts +2 -2
  237. package/dist/factory-assets/connectors/mattermost/adapter.d.ts.map +1 -0
  238. package/dist/factory-assets/connectors/mattermost.js +22 -0
  239. package/dist/factory-assets/connectors/memory/CONNECTOR.md +40 -0
  240. package/dist/{base-assets → factory-assets}/connectors/memory/adapter.d.ts +2 -2
  241. package/dist/factory-assets/connectors/memory/adapter.d.ts.map +1 -0
  242. package/dist/factory-assets/connectors/memory.js +22 -0
  243. package/dist/factory-assets/connectors/minio/CONNECTOR.md +68 -0
  244. package/dist/{base-assets → factory-assets}/connectors/minio/adapter.d.ts +2 -2
  245. package/dist/factory-assets/connectors/minio/adapter.d.ts.map +1 -0
  246. package/dist/factory-assets/connectors/minio.js +22 -0
  247. package/dist/factory-assets/connectors/postgres/CONNECTOR.md +46 -0
  248. package/dist/{base-assets → factory-assets}/connectors/postgres/adapter.d.ts +2 -2
  249. package/dist/factory-assets/connectors/postgres/adapter.d.ts.map +1 -0
  250. package/dist/factory-assets/connectors/postgres.js +22 -0
  251. package/dist/factory-assets/connectors/s3/CONNECTOR.md +76 -0
  252. package/dist/{base-assets → factory-assets}/connectors/s3/driver.d.ts +2 -2
  253. package/dist/factory-assets/connectors/s3/driver.d.ts.map +1 -0
  254. package/dist/factory-assets/connectors/s3.js +22 -0
  255. package/dist/factory-assets/connectors/sharepoint/CONNECTOR.md +181 -0
  256. package/dist/{base-assets → factory-assets}/connectors/sharepoint/driver.d.ts +2 -2
  257. package/dist/factory-assets/connectors/sharepoint/driver.d.ts.map +1 -0
  258. package/dist/factory-assets/connectors/sharepoint.js +22 -0
  259. package/dist/factory-assets/connectors/sqlite/CONNECTOR.md +44 -0
  260. package/dist/{base-assets → factory-assets}/connectors/sqlite/adapter.d.ts +2 -2
  261. package/dist/factory-assets/connectors/sqlite/adapter.d.ts.map +1 -0
  262. package/dist/factory-assets/connectors/sqlite.js +22 -0
  263. package/dist/factory-assets/connectors/static-server/CONNECTOR.md +41 -0
  264. package/dist/{base-assets → factory-assets}/connectors/static-server/adapter.d.ts +2 -2
  265. package/dist/factory-assets/connectors/static-server/adapter.d.ts.map +1 -0
  266. package/dist/factory-assets/connectors/static-server.js +22 -0
  267. package/dist/factory-assets/connectors/tunnel/CONNECTOR.md +40 -0
  268. package/dist/{base-assets → factory-assets}/connectors/tunnel/adapter.d.ts +2 -2
  269. package/dist/factory-assets/connectors/tunnel/adapter.d.ts.map +1 -0
  270. package/dist/factory-assets/connectors/tunnel.js +22 -0
  271. package/dist/factory-assets/connectors/webdav/CONNECTOR.md +139 -0
  272. package/dist/{base-assets → factory-assets}/connectors/webdav/driver.d.ts +2 -2
  273. package/dist/factory-assets/connectors/webdav/driver.d.ts.map +1 -0
  274. package/dist/factory-assets/connectors/webdav.js +22 -0
  275. package/dist/factory-assets/connectors/xstate/CONNECTOR.md +57 -0
  276. package/dist/{base-assets → factory-assets}/connectors/xstate/adapter.d.ts +2 -2
  277. package/dist/factory-assets/connectors/xstate/adapter.d.ts.map +1 -0
  278. package/dist/factory-assets/connectors/xstate-store/CONNECTOR.md +48 -0
  279. package/dist/{base-assets → factory-assets}/connectors/xstate-store/adapter.d.ts +2 -2
  280. package/dist/factory-assets/connectors/xstate-store/adapter.d.ts.map +1 -0
  281. package/dist/factory-assets/connectors/xstate-store.js +22 -0
  282. package/dist/factory-assets/connectors/xstate.js +22 -0
  283. package/dist/{base-assets → factory-assets}/index.d.ts +1 -1
  284. package/dist/factory-assets/index.d.ts.map +1 -0
  285. package/dist/{base-assets → factory-assets}/index.js +1 -1
  286. package/dist/factory-assets/index.js.map +1 -0
  287. package/dist/factory-assets/skaile.manifest.yaml +25 -0
  288. package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +176 -0
  289. package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +243 -0
  290. package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +197 -0
  291. package/dist/factory-assets/skills/manifest-compliance/SKILL.md +140 -0
  292. package/dist/factory-assets/skills/skaile-author-asset/SKILL.md +239 -0
  293. package/dist/factory-assets/skills/skaile-manage-workspace/SKILL.md +168 -0
  294. package/dist/{flows-DYFTPCPM.js → flows-JZFJD5IN.js} +3 -3
  295. package/dist/{flows-DYFTPCPM.js.map → flows-JZFJD5IN.js.map} +1 -1
  296. package/dist/library/index.js +14 -5
  297. package/dist/library/src/install/install-from-manifest.d.ts.map +1 -1
  298. package/dist/library/src/library.d.ts +2 -0
  299. package/dist/library/src/library.d.ts.map +1 -1
  300. package/dist/library/src/local/library.d.ts +2 -0
  301. package/dist/library/src/local/library.d.ts.map +1 -1
  302. package/dist/library/src/local/local-catalog-source.d.ts +2 -1
  303. package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
  304. package/dist/library/src/local/sidecar-paths.d.ts +4 -4
  305. package/dist/library/src/local/sidecar-paths.d.ts.map +1 -1
  306. package/dist/library/src/local/store-paths.d.ts +4 -3
  307. package/dist/library/src/local/store-paths.d.ts.map +1 -1
  308. package/dist/library/src/pin-resolver.d.ts.map +1 -1
  309. package/dist/library/src/preset/apply.d.ts.map +1 -1
  310. package/dist/library/src/preset/placeholders.d.ts.map +1 -1
  311. package/dist/library/src/remote/remote-catalog-source.d.ts +7 -0
  312. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  313. package/dist/library/src/remote/rest-catalog-source.d.ts +7 -0
  314. package/dist/library/src/remote/rest-catalog-source.d.ts.map +1 -1
  315. package/dist/library/src/sync/manifest-writeback.d.ts +1 -1
  316. package/dist/library/src/sync/manifest-writeback.d.ts.map +1 -1
  317. package/dist/open-library-WYASW4BH.js +22 -0
  318. package/dist/{open-library-67FSSQWE.js.map → open-library-WYASW4BH.js.map} +1 -1
  319. package/dist/paths-BMW6JYW6.js +15 -0
  320. package/dist/{paths-FKKGS6BA.js.map → paths-BMW6JYW6.js.map} +1 -1
  321. package/dist/{plugin-store-IZ5SCRAV.js → plugin-store-O5VR45CA.js} +9 -8
  322. package/dist/plugin-store-O5VR45CA.js.map +1 -0
  323. package/dist/plugins/src/asset-kind-provider.d.ts +1 -1
  324. package/dist/plugins/src/catalog-source.d.ts +13 -0
  325. package/dist/plugins/src/catalog-source.d.ts.map +1 -1
  326. package/dist/resolver/index.js +1 -1
  327. package/dist/resolver/src/parser.d.ts.map +1 -1
  328. package/dist/runner/index.js +20 -19
  329. package/dist/runner/src/capability-registry.d.ts +1 -1
  330. package/dist/runner/src/capability-registry.d.ts.map +1 -1
  331. package/dist/runner/src/external-mcp.d.ts +112 -0
  332. package/dist/runner/src/external-mcp.d.ts.map +1 -0
  333. package/dist/runner/src/resource-handler.d.ts.map +1 -1
  334. package/dist/runner/src/resources.d.ts +10 -2
  335. package/dist/runner/src/resources.d.ts.map +1 -1
  336. package/dist/runner/src/serve.d.ts.map +1 -1
  337. package/dist/runner/src/session-builder.d.ts +12 -0
  338. package/dist/runner/src/session-builder.d.ts.map +1 -1
  339. package/dist/runner/src/workspace-migration.d.ts.map +1 -1
  340. package/dist/sdk/asset-manager.js +11 -10
  341. package/dist/sdk/bridge.js +4 -4
  342. package/dist/sdk/core.js +7 -6
  343. package/dist/sdk/flow.js +12 -1
  344. package/dist/sdk/index.js +23 -22
  345. package/dist/sdk/index.js.map +1 -1
  346. package/dist/sdk/resolver.js +1 -1
  347. package/dist/sdk/runner.js +20 -19
  348. package/dist/sdk/session.js +1 -1
  349. package/dist/sdk/src/flow/index.d.ts +1 -1
  350. package/dist/sdk/src/flow/index.d.ts.map +1 -1
  351. package/dist/sdk/src/workspace.d.ts +3 -2
  352. package/dist/sdk/src/workspace.d.ts.map +1 -1
  353. package/dist/sdk/telemetry.js +1 -1
  354. package/dist/secrets/index.js +1 -1
  355. package/dist/secrets/src/providers/env.d.ts.map +1 -1
  356. package/dist/secrets/src/providers/local.d.ts.map +1 -1
  357. package/dist/session/index.js +1 -1
  358. package/dist/session/src/mentions.d.ts.map +1 -1
  359. package/dist/{setup-J7CYEQOF.js → setup-YNLFR5GB.js} +13 -12
  360. package/dist/setup-YNLFR5GB.js.map +1 -0
  361. package/dist/skills-6HJ3WINN.js +7 -0
  362. package/dist/{skills-CRL3VJNN.js.map → skills-6HJ3WINN.js.map} +1 -1
  363. package/dist/store-client-CENBEASX.js +15 -0
  364. package/dist/{store-client-AEI6Y3KD.js.map → store-client-CENBEASX.js.map} +1 -1
  365. package/dist/telemetry/index.js +1 -1
  366. package/dist/telemetry/src/config.d.ts +0 -16
  367. package/dist/telemetry/src/config.d.ts.map +1 -1
  368. package/dist/tui/index.js +20 -19
  369. package/dist/tui/index.js.map +1 -1
  370. package/dist/types/manifests.js +1 -1
  371. package/dist/types/src/flow.d.ts +2 -2
  372. package/dist/types/src/install-manifest.d.ts +1 -1
  373. package/dist/types/src/install-manifest.d.ts.map +1 -1
  374. package/dist/types/src/manifests/index.d.ts +1 -1
  375. package/dist/types/src/manifests/skill.d.ts +21 -0
  376. package/dist/types/src/manifests/skill.d.ts.map +1 -1
  377. package/dist/workspace-plugin/adapters/mcp.js +4 -4
  378. package/dist/workspace-plugin/adapters/omp.js +7 -7
  379. package/dist/workspace-plugin/index.js +1 -1
  380. package/dist/workspace-plugin/src/tools/flows.d.ts.map +1 -1
  381. package/package.json +158 -151
  382. package/dist/asset-feeds-WKIKSZ6Z.js.map +0 -1
  383. package/dist/base-assets/connectors/deploy/adapter.d.ts.map +0 -1
  384. package/dist/base-assets/connectors/deploy.js +0 -21
  385. package/dist/base-assets/connectors/devserver/adapter.d.ts.map +0 -1
  386. package/dist/base-assets/connectors/devserver.js +0 -21
  387. package/dist/base-assets/connectors/flow/adapter.d.ts.map +0 -1
  388. package/dist/base-assets/connectors/flow/adapter.js +0 -21
  389. package/dist/base-assets/connectors/flow/engine/engine.d.ts.map +0 -1
  390. package/dist/base-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +0 -1
  391. package/dist/base-assets/connectors/flow/engine/flow-manifest.d.ts.map +0 -1
  392. package/dist/base-assets/connectors/flow/engine/index.d.ts.map +0 -1
  393. package/dist/base-assets/connectors/flow/engine/loader.d.ts.map +0 -1
  394. package/dist/base-assets/connectors/flow/engine/types.d.ts.map +0 -1
  395. package/dist/base-assets/connectors/flow/engine.js +0 -4
  396. package/dist/base-assets/connectors/flow/index.d.ts.map +0 -1
  397. package/dist/base-assets/connectors/flow/prompt-fragments.d.ts.map +0 -1
  398. package/dist/base-assets/connectors/flow/run-flow.d.ts.map +0 -1
  399. package/dist/base-assets/connectors/flow/run-flow.js +0 -24
  400. package/dist/base-assets/connectors/flow/stimulus-driver.d.ts.map +0 -1
  401. package/dist/base-assets/connectors/flow/stimulus-driver.js +0 -4
  402. package/dist/base-assets/connectors/flow.js +0 -21
  403. package/dist/base-assets/connectors/git/driver.d.ts.map +0 -1
  404. package/dist/base-assets/connectors/git.js +0 -21
  405. package/dist/base-assets/connectors/gmail/adapter.d.ts.map +0 -1
  406. package/dist/base-assets/connectors/gmail.js +0 -21
  407. package/dist/base-assets/connectors/googledrive/driver.d.ts.map +0 -1
  408. package/dist/base-assets/connectors/googledrive.js +0 -21
  409. package/dist/base-assets/connectors/local/driver.d.ts.map +0 -1
  410. package/dist/base-assets/connectors/local.js +0 -21
  411. package/dist/base-assets/connectors/mattermost/adapter.d.ts.map +0 -1
  412. package/dist/base-assets/connectors/mattermost.js +0 -21
  413. package/dist/base-assets/connectors/memory/adapter.d.ts.map +0 -1
  414. package/dist/base-assets/connectors/memory.js +0 -21
  415. package/dist/base-assets/connectors/minio/adapter.d.ts.map +0 -1
  416. package/dist/base-assets/connectors/minio.js +0 -21
  417. package/dist/base-assets/connectors/postgres/adapter.d.ts.map +0 -1
  418. package/dist/base-assets/connectors/postgres.js +0 -21
  419. package/dist/base-assets/connectors/s3/driver.d.ts.map +0 -1
  420. package/dist/base-assets/connectors/s3.js +0 -21
  421. package/dist/base-assets/connectors/sharepoint/driver.d.ts.map +0 -1
  422. package/dist/base-assets/connectors/sharepoint.js +0 -21
  423. package/dist/base-assets/connectors/sqlite/adapter.d.ts.map +0 -1
  424. package/dist/base-assets/connectors/sqlite.js +0 -21
  425. package/dist/base-assets/connectors/static-server/adapter.d.ts.map +0 -1
  426. package/dist/base-assets/connectors/static-server.js +0 -21
  427. package/dist/base-assets/connectors/tunnel/adapter.d.ts.map +0 -1
  428. package/dist/base-assets/connectors/tunnel.js +0 -21
  429. package/dist/base-assets/connectors/webdav/driver.d.ts.map +0 -1
  430. package/dist/base-assets/connectors/webdav.js +0 -21
  431. package/dist/base-assets/connectors/xstate/adapter.d.ts.map +0 -1
  432. package/dist/base-assets/connectors/xstate-store/adapter.d.ts.map +0 -1
  433. package/dist/base-assets/connectors/xstate-store.js +0 -21
  434. package/dist/base-assets/connectors/xstate.js +0 -21
  435. package/dist/base-assets/index.d.ts.map +0 -1
  436. package/dist/base-assets/index.js.map +0 -1
  437. package/dist/chunk-2F3RUZXC.js.map +0 -1
  438. package/dist/chunk-2M3XTMOL.js +0 -23
  439. package/dist/chunk-2M3XTMOL.js.map +0 -1
  440. package/dist/chunk-2RFOFHSM.js.map +0 -1
  441. package/dist/chunk-2XY6732A.js.map +0 -1
  442. package/dist/chunk-46COM7M5.js.map +0 -1
  443. package/dist/chunk-542K7SR6.js.map +0 -1
  444. package/dist/chunk-5ESCS2OS.js.map +0 -1
  445. package/dist/chunk-D3VO6WNC.js.map +0 -1
  446. package/dist/chunk-DQWREFRQ.js.map +0 -1
  447. package/dist/chunk-FVTV7M76.js.map +0 -1
  448. package/dist/chunk-GCJXPUHG.js.map +0 -1
  449. package/dist/chunk-GZWJGNNN.js.map +0 -1
  450. package/dist/chunk-HIIARTRZ.js.map +0 -1
  451. package/dist/chunk-ICS76R4T.js.map +0 -1
  452. package/dist/chunk-JDX54X4Y.js.map +0 -1
  453. package/dist/chunk-JQBHCJ6N.js.map +0 -1
  454. package/dist/chunk-KLNL7QHN.js.map +0 -1
  455. package/dist/chunk-KOVLSBXK.js.map +0 -1
  456. package/dist/chunk-LJ52ZKIU.js.map +0 -1
  457. package/dist/chunk-M5TE6YI5.js.map +0 -1
  458. package/dist/chunk-N6TA6RSH.js.map +0 -1
  459. package/dist/chunk-NELZIQ2E.js.map +0 -1
  460. package/dist/chunk-OYRW5RCM.js.map +0 -1
  461. package/dist/chunk-QAVZOJCV.js.map +0 -1
  462. package/dist/chunk-YX3UWPJ5.js.map +0 -1
  463. package/dist/chunk-Z3M5K67G.js.map +0 -1
  464. package/dist/ensure-sources-OJUBGX6Z.js.map +0 -1
  465. package/dist/open-library-67FSSQWE.js +0 -13
  466. package/dist/paths-FKKGS6BA.js +0 -4
  467. package/dist/plugin-store-IZ5SCRAV.js.map +0 -1
  468. package/dist/setup-J7CYEQOF.js.map +0 -1
  469. package/dist/skills-CRL3VJNN.js +0 -7
  470. package/dist/store-client-AEI6Y3KD.js +0 -14
  471. /package/dist/{base-assets → factory-assets}/connectors/deploy.d.ts +0 -0
  472. /package/dist/{base-assets → factory-assets}/connectors/deploy.js.map +0 -0
  473. /package/dist/{base-assets → factory-assets}/connectors/devserver.d.ts +0 -0
  474. /package/dist/{base-assets → factory-assets}/connectors/devserver.js.map +0 -0
  475. /package/dist/{base-assets → factory-assets}/connectors/flow/adapter.js.map +0 -0
  476. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/engine.d.ts +0 -0
  477. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/flow-manifest.d.ts +0 -0
  478. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/index.d.ts +0 -0
  479. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/loader.d.ts +0 -0
  480. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/types.d.ts +0 -0
  481. /package/dist/{base-assets → factory-assets}/connectors/flow/engine.d.ts +0 -0
  482. /package/dist/{base-assets → factory-assets}/connectors/flow/engine.js.map +0 -0
  483. /package/dist/{base-assets → factory-assets}/connectors/flow/index.d.ts +0 -0
  484. /package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.js.map +0 -0
  485. /package/dist/{base-assets → factory-assets}/connectors/flow/run-flow.js.map +0 -0
  486. /package/dist/{base-assets → factory-assets}/connectors/flow/stimulus-driver.js.map +0 -0
  487. /package/dist/{base-assets → factory-assets}/connectors/flow.d.ts +0 -0
  488. /package/dist/{base-assets → factory-assets}/connectors/flow.js.map +0 -0
  489. /package/dist/{base-assets → factory-assets}/connectors/git.d.ts +0 -0
  490. /package/dist/{base-assets → factory-assets}/connectors/git.js.map +0 -0
  491. /package/dist/{base-assets → factory-assets}/connectors/gmail.d.ts +0 -0
  492. /package/dist/{base-assets → factory-assets}/connectors/gmail.js.map +0 -0
  493. /package/dist/{base-assets → factory-assets}/connectors/googledrive.d.ts +0 -0
  494. /package/dist/{base-assets → factory-assets}/connectors/googledrive.js.map +0 -0
  495. /package/dist/{base-assets → factory-assets}/connectors/local.d.ts +0 -0
  496. /package/dist/{base-assets → factory-assets}/connectors/local.js.map +0 -0
  497. /package/dist/{base-assets → factory-assets}/connectors/mattermost.d.ts +0 -0
  498. /package/dist/{base-assets → factory-assets}/connectors/mattermost.js.map +0 -0
  499. /package/dist/{base-assets → factory-assets}/connectors/memory.d.ts +0 -0
  500. /package/dist/{base-assets → factory-assets}/connectors/memory.js.map +0 -0
  501. /package/dist/{base-assets → factory-assets}/connectors/minio.d.ts +0 -0
  502. /package/dist/{base-assets → factory-assets}/connectors/minio.js.map +0 -0
  503. /package/dist/{base-assets → factory-assets}/connectors/postgres.d.ts +0 -0
  504. /package/dist/{base-assets → factory-assets}/connectors/postgres.js.map +0 -0
  505. /package/dist/{base-assets → factory-assets}/connectors/s3.d.ts +0 -0
  506. /package/dist/{base-assets → factory-assets}/connectors/s3.js.map +0 -0
  507. /package/dist/{base-assets → factory-assets}/connectors/sharepoint.d.ts +0 -0
  508. /package/dist/{base-assets → factory-assets}/connectors/sharepoint.js.map +0 -0
  509. /package/dist/{base-assets → factory-assets}/connectors/sqlite.d.ts +0 -0
  510. /package/dist/{base-assets → factory-assets}/connectors/sqlite.js.map +0 -0
  511. /package/dist/{base-assets → factory-assets}/connectors/static-server.d.ts +0 -0
  512. /package/dist/{base-assets → factory-assets}/connectors/static-server.js.map +0 -0
  513. /package/dist/{base-assets → factory-assets}/connectors/tunnel.d.ts +0 -0
  514. /package/dist/{base-assets → factory-assets}/connectors/tunnel.js.map +0 -0
  515. /package/dist/{base-assets → factory-assets}/connectors/webdav.d.ts +0 -0
  516. /package/dist/{base-assets → factory-assets}/connectors/webdav.js.map +0 -0
  517. /package/dist/{base-assets → factory-assets}/connectors/xstate-store.d.ts +0 -0
  518. /package/dist/{base-assets → factory-assets}/connectors/xstate-store.js.map +0 -0
  519. /package/dist/{base-assets → factory-assets}/connectors/xstate.d.ts +0 -0
  520. /package/dist/{base-assets → factory-assets}/connectors/xstate.js.map +0 -0
@@ -1,9 +1,10 @@
1
- import { discoverAssetsInTree, loadSourceConfig } from './chunk-LJ52ZKIU.js';
2
- import { PresetManifestSchema } from './chunk-NELZIQ2E.js';
1
+ import { readManifestSourceConfig, discoverAssetsInTree } from './chunk-JIQLLZ65.js';
2
+ import { parseAssetRef } from './chunk-IEJ5IOC3.js';
3
+ import { PresetManifestSchema } from './chunk-QDJKE557.js';
3
4
  import { __export } from './chunk-NSBPE2FW.js';
4
5
  import * as crypto from 'crypto';
5
6
  import { createHash } from 'crypto';
6
- import * as fs12 from 'fs';
7
+ import * as fs11 from 'fs';
7
8
  import * as path4 from 'path';
8
9
  import { resolve, join, sep, dirname, isAbsolute } from 'path';
9
10
  import { eq, like, and } from 'drizzle-orm';
@@ -138,9 +139,9 @@ function projectConfigPath(projectDir) {
138
139
  return path4.join(projectDir, ".skaile", CONFIG_FILENAME);
139
140
  }
140
141
  function loadConfigFile(filePath) {
141
- if (!fs12.existsSync(filePath)) return null;
142
+ if (!fs11.existsSync(filePath)) return null;
142
143
  try {
143
- const content = fs12.readFileSync(filePath, "utf-8");
144
+ const content = fs11.readFileSync(filePath, "utf-8");
144
145
  const raw = parse(content);
145
146
  if (!raw || typeof raw !== "object") return null;
146
147
  return SkaileConfigSchema.partial().parse(raw);
@@ -189,10 +190,10 @@ function resolveConfig(opts) {
189
190
  }
190
191
  function saveConfig(filePath, config) {
191
192
  const dir = path4.dirname(filePath);
192
- if (!fs12.existsSync(dir)) {
193
- fs12.mkdirSync(dir, { recursive: true });
193
+ if (!fs11.existsSync(dir)) {
194
+ fs11.mkdirSync(dir, { recursive: true });
194
195
  }
195
- fs12.writeFileSync(filePath, stringify(config, { indent: 2 }), "utf-8");
196
+ fs11.writeFileSync(filePath, stringify(config, { indent: 2 }), "utf-8");
196
197
  }
197
198
 
198
199
  // library/src/local/schema.ts
@@ -275,9 +276,9 @@ function resolveSidecarPaths(slug) {
275
276
  return {
276
277
  rootDir,
277
278
  sidecarDir,
278
- manifestFile: path4.join(sidecarDir, ".skaile-source.yaml"),
279
+ manifestFile: path4.join(sidecarDir, "skaile.manifest.yaml"),
279
280
  readmeFile: path4.join(sidecarDir, "README.md"),
280
- lockFile: path4.join(sidecarDir, ".skaile-source.lock.json")
281
+ lockFile: path4.join(sidecarDir, "skaile.manifest.lock.json")
281
282
  };
282
283
  }
283
284
  function deriveSlug(sourceConfig, sourcePath, existingSlugs) {
@@ -293,9 +294,9 @@ function deriveSlug(sourceConfig, sourcePath, existingSlugs) {
293
294
  }
294
295
  function listSidecarSlugsOnDisk() {
295
296
  const root = getSidecarRoot();
296
- if (!fs12.existsSync(root)) return [];
297
+ if (!fs11.existsSync(root)) return [];
297
298
  const out = [];
298
- for (const entry of fs12.readdirSync(root, { withFileTypes: true })) {
299
+ for (const entry of fs11.readdirSync(root, { withFileTypes: true })) {
299
300
  if (!entry.isDirectory()) continue;
300
301
  if (entry.name.startsWith(".")) continue;
301
302
  out.push(entry.name);
@@ -320,25 +321,28 @@ function migratedMarkerPath() {
320
321
  function migrateSidecarsToStoreIfNeeded() {
321
322
  const storeRoot = getStoreRoot();
322
323
  const marker = migratedMarkerPath();
323
- if (fs12.existsSync(marker)) return { migrated: 0, storeRoot };
324
+ if (fs11.existsSync(marker)) return { migrated: 0, storeRoot };
324
325
  const sidecarRoot = getSidecarRoot();
325
326
  const manifestsDir = getStoreManifestsDir();
326
327
  const candidates = [];
327
- if (fs12.existsSync(sidecarRoot)) {
328
- for (const entry of fs12.readdirSync(sidecarRoot, { withFileTypes: true })) {
328
+ if (fs11.existsSync(sidecarRoot)) {
329
+ for (const entry of fs11.readdirSync(sidecarRoot, { withFileTypes: true })) {
329
330
  if (!entry.isDirectory()) continue;
330
331
  if (entry.name.startsWith(".")) continue;
331
- const src = path4.join(sidecarRoot, entry.name, ".skaile-source.yaml");
332
- if (fs12.existsSync(src)) candidates.push({ src, slug: entry.name });
332
+ const sidecarDir = path4.join(sidecarRoot, entry.name);
333
+ const current = path4.join(sidecarDir, "skaile.manifest.yaml");
334
+ const legacy = path4.join(sidecarDir, ".skaile-source.yaml");
335
+ const src = fs11.existsSync(current) ? current : fs11.existsSync(legacy) ? legacy : void 0;
336
+ if (src) candidates.push({ src, slug: entry.name });
333
337
  }
334
338
  }
335
- fs12.mkdirSync(manifestsDir, { recursive: true });
339
+ fs11.mkdirSync(manifestsDir, { recursive: true });
336
340
  let migrated = 0;
337
341
  for (const { src, slug } of candidates) {
338
342
  const dest = path4.join(manifestsDir, `${slug}.yaml`);
339
- if (fs12.existsSync(dest)) continue;
343
+ if (fs11.existsSync(dest)) continue;
340
344
  try {
341
- fs12.renameSync(src, dest);
345
+ fs11.renameSync(src, dest);
342
346
  migrated++;
343
347
  } catch (err) {
344
348
  process.stderr.write(
@@ -347,10 +351,10 @@ function migrateSidecarsToStoreIfNeeded() {
347
351
  );
348
352
  }
349
353
  }
350
- if (!fs12.existsSync(path4.join(storeRoot, ".git"))) {
354
+ if (!fs11.existsSync(path4.join(storeRoot, ".git"))) {
351
355
  try {
352
356
  spawnSync("git", ["init", "--quiet"], { cwd: storeRoot, stdio: "ignore" });
353
- fs12.writeFileSync(
357
+ fs11.writeFileSync(
354
358
  path4.join(storeRoot, ".gitignore"),
355
359
  "# Remote-store cache \u2014 local to this machine.\nremote-cache/\n",
356
360
  "utf8"
@@ -358,7 +362,7 @@ function migrateSidecarsToStoreIfNeeded() {
358
362
  } catch {
359
363
  }
360
364
  }
361
- fs12.writeFileSync(marker, (/* @__PURE__ */ new Date()).toISOString(), "utf8");
365
+ fs11.writeFileSync(marker, (/* @__PURE__ */ new Date()).toISOString(), "utf8");
362
366
  return { migrated, storeRoot };
363
367
  }
364
368
 
@@ -505,7 +509,7 @@ async function runLibrariesMigration(client) {
505
509
  await client.batch(stmts);
506
510
  }
507
511
  function assertNoLegacyLibDb(newDbPath) {
508
- if (fs12.existsSync(newDbPath)) return;
512
+ if (fs11.existsSync(newDbPath)) return;
509
513
  const parent = path4.dirname(newDbPath);
510
514
  const skaileHome = path4.join(os.homedir(), ".skaile");
511
515
  const defaultIndexPath2 = path4.join(skaileHome, "index.db");
@@ -521,7 +525,7 @@ function assertNoLegacyLibDb(newDbPath) {
521
525
  candidates.push(path4.join(path4.dirname(parent), "library", "lib.db"));
522
526
  }
523
527
  for (const legacy of candidates) {
524
- if (!fs12.existsSync(legacy)) continue;
528
+ if (!fs11.existsSync(legacy)) continue;
525
529
  throw new Error(
526
530
  `Found legacy index database at ${legacy}. The lib.db \u2192 index.db relocation ran for one release and has been removed. Move the file manually to ${newDbPath} (and any -wal / -shm siblings), then retry.`
527
531
  );
@@ -587,9 +591,17 @@ function assertSafeRefComponent(kind, value) {
587
591
  async function installFromManifest(opts) {
588
592
  const { manifest, libraryRoot } = opts;
589
593
  const fetcher = opts.fetcher ?? (await import('./source-fetch-github-QN4LLTL5.js')).fetchAssetFilesFromGitHub;
590
- const m = manifest.ref.match(/^@?([^/@\s]+)\/([^/@\s]+)@([^/@\s]+)$/);
591
- if (!m) throw new Error(`invalid ref: ${manifest.ref}`);
592
- const [, publisher, name, version] = m;
594
+ let parsed;
595
+ try {
596
+ parsed = parseAssetRef(manifest.ref);
597
+ } catch (e) {
598
+ throw new Error(`invalid ref: ${manifest.ref}: ${e instanceof Error ? e.message : String(e)}`);
599
+ }
600
+ const publisher = parsed.publisher;
601
+ const name = parsed.name;
602
+ const version = parsed.pin;
603
+ if (!publisher) throw new Error(`invalid ref: ${manifest.ref} (missing publisher)`);
604
+ if (!version) throw new Error(`invalid ref: ${manifest.ref} (missing version pin)`);
593
605
  assertSafeRefComponent("publisher", publisher);
594
606
  assertSafeRefComponent("name", name);
595
607
  assertSafeRefComponent("version", version);
@@ -643,6 +655,10 @@ async function installFromManifest(opts) {
643
655
  function escapeLikePrefix(prefix) {
644
656
  return prefix.replace(/[%_]/g, "\\$&");
645
657
  }
658
+ function stripRefVersion(ref) {
659
+ const at = ref.lastIndexOf("@");
660
+ return at > 0 ? ref.slice(0, at) : ref;
661
+ }
646
662
  function rowToLibrary(row) {
647
663
  const cfg = (() => {
648
664
  try {
@@ -739,12 +755,12 @@ var LocalIndex = class {
739
755
  dbPath = resolveIndexPath();
740
756
  this._kindRegistry = optionsOrDir?.kindRegistry;
741
757
  }
742
- if (!fs12.existsSync(dir)) {
743
- fs12.mkdirSync(dir, { recursive: true });
758
+ if (!fs11.existsSync(dir)) {
759
+ fs11.mkdirSync(dir, { recursive: true });
744
760
  }
745
761
  const dbParent = path4.dirname(dbPath);
746
- if (!fs12.existsSync(dbParent)) {
747
- fs12.mkdirSync(dbParent, { recursive: true });
762
+ if (!fs11.existsSync(dbParent)) {
763
+ fs11.mkdirSync(dbParent, { recursive: true });
748
764
  }
749
765
  this.libraryDir = dir;
750
766
  this.dbPath = dbPath;
@@ -993,10 +1009,21 @@ var LocalIndex = class {
993
1009
  if (filter.defPin) conditions.push(eq(instances.defPin, filter.defPin));
994
1010
  const where = conditions.length > 0 ? and(...conditions) : void 0;
995
1011
  let rows = where ? await db.select().from(instances).where(where).all() : await db.select().from(instances).all();
1012
+ if (filter.kind) {
1013
+ const kindByBase = await this.buildInstanceKindMap(db);
1014
+ rows = rows.filter((r) => kindByBase.get(stripRefVersion(r.defRef)) === filter.kind);
1015
+ }
996
1016
  if (filter.offset) rows = rows.slice(filter.offset);
997
1017
  if (filter.limit) rows = rows.slice(0, filter.limit);
998
1018
  return rows.map(rowToInstance);
999
1019
  }
1020
+ /** Map every cached asset def's version-stripped ref base to its kind. */
1021
+ async buildInstanceKindMap(db) {
1022
+ const defs = await db.select().from(assetDefinitions).all();
1023
+ const map = /* @__PURE__ */ new Map();
1024
+ for (const d of defs) map.set(stripRefVersion(d.id), d.kind);
1025
+ return map;
1026
+ }
1000
1027
  async updateInstance(id, patch) {
1001
1028
  const db = await this.ensureDb();
1002
1029
  const existing = await db.select().from(instances).where(eq(instances.id, id)).get();
@@ -1360,8 +1387,8 @@ var LibraryManager = class {
1360
1387
  const lib = await this.requireLibrary(nameOrId);
1361
1388
  const db = await this.lib.dbHandle();
1362
1389
  await db.delete(libraries).where(eq(libraries.id, lib.id)).run();
1363
- if (opts.purge && fs12.existsSync(lib.path)) {
1364
- fs12.rmSync(lib.path, { recursive: true, force: true });
1390
+ if (opts.purge && fs11.existsSync(lib.path)) {
1391
+ fs11.rmSync(lib.path, { recursive: true, force: true });
1365
1392
  }
1366
1393
  }
1367
1394
  /**
@@ -1378,7 +1405,7 @@ var LibraryManager = class {
1378
1405
  );
1379
1406
  if (writableDefault) return { library: writableDefault, created: false };
1380
1407
  const personalPath = path4.join(librariesDir, "personal");
1381
- fs12.mkdirSync(personalPath, { recursive: true });
1408
+ fs11.mkdirSync(personalPath, { recursive: true });
1382
1409
  const lib = await this.addLibrary({
1383
1410
  name: "personal",
1384
1411
  path: personalPath,
@@ -1440,11 +1467,11 @@ var SidecarGit = class {
1440
1467
  * @docLink packages/library/concepts#sidecar-git
1441
1468
  */
1442
1469
  async ensureInitialized() {
1443
- if (!fs12.existsSync(this.rootDir)) {
1444
- fs12.mkdirSync(this.rootDir, { recursive: true });
1470
+ if (!fs11.existsSync(this.rootDir)) {
1471
+ fs11.mkdirSync(this.rootDir, { recursive: true });
1445
1472
  }
1446
1473
  const gitDir = path4.join(this.rootDir, ".git");
1447
- const freshRepo = !fs12.existsSync(gitDir);
1474
+ const freshRepo = !fs11.existsSync(gitDir);
1448
1475
  if (freshRepo) {
1449
1476
  const init = this.spawn(["init", "-b", "main"]);
1450
1477
  if (init.exitCode !== 0) {
@@ -1452,9 +1479,9 @@ var SidecarGit = class {
1452
1479
  }
1453
1480
  }
1454
1481
  const attrsPath = path4.join(this.rootDir, ".gitattributes");
1455
- if (!fs12.existsSync(attrsPath)) fs12.writeFileSync(attrsPath, GITATTRIBUTES, "utf-8");
1482
+ if (!fs11.existsSync(attrsPath)) fs11.writeFileSync(attrsPath, GITATTRIBUTES, "utf-8");
1456
1483
  const readmePath = path4.join(this.rootDir, "README.md");
1457
- if (!fs12.existsSync(readmePath)) fs12.writeFileSync(readmePath, ROOT_README, "utf-8");
1484
+ if (!fs11.existsSync(readmePath)) fs11.writeFileSync(readmePath, ROOT_README, "utf-8");
1458
1485
  if (!this.hasGlobalGitConfig("user.name")) {
1459
1486
  this.spawn(["config", "user.name", FALLBACK_USER_NAME]);
1460
1487
  }
@@ -1480,7 +1507,7 @@ var SidecarGit = class {
1480
1507
  async commit(slug, message, opts) {
1481
1508
  if (opts?.skip) return;
1482
1509
  const slugDir = path4.join(this.rootDir, slug);
1483
- if (fs12.existsSync(slugDir)) {
1510
+ if (fs11.existsSync(slugDir)) {
1484
1511
  this.spawn(["add", "--", slug]);
1485
1512
  } else {
1486
1513
  this.spawn(["add", "-A"]);
@@ -1591,8 +1618,8 @@ function parseWorkspaceV2(raw) {
1591
1618
  }
1592
1619
  function loadWorkspaceV2(dir, filename = "skaile.yaml") {
1593
1620
  const filePath = path4.join(dir, filename);
1594
- if (!fs12.existsSync(filePath)) return null;
1595
- const content = fs12.readFileSync(filePath, "utf-8");
1621
+ if (!fs11.existsSync(filePath)) return null;
1622
+ const content = fs11.readFileSync(filePath, "utf-8");
1596
1623
  const raw = parse(content);
1597
1624
  if (!raw || typeof raw !== "object") return null;
1598
1625
  return parseWorkspaceV2(raw);
@@ -1600,32 +1627,32 @@ function loadWorkspaceV2(dir, filename = "skaile.yaml") {
1600
1627
  function saveWorkspaceV2(dir, v2, filename = "skaile.yaml") {
1601
1628
  const filePath = path4.join(dir, filename);
1602
1629
  let existing = {};
1603
- if (fs12.existsSync(filePath)) {
1604
- const content = fs12.readFileSync(filePath, "utf-8");
1630
+ if (fs11.existsSync(filePath)) {
1631
+ const content = fs11.readFileSync(filePath, "utf-8");
1605
1632
  existing = parse(content) ?? {};
1606
1633
  }
1607
1634
  existing.version = 2;
1608
1635
  if (v2.library !== void 0) existing.library = v2.library;
1609
1636
  if (v2.presets_applied !== void 0) existing.presets_applied = v2.presets_applied;
1610
- if (!fs12.existsSync(dir)) {
1611
- fs12.mkdirSync(dir, { recursive: true });
1637
+ if (!fs11.existsSync(dir)) {
1638
+ fs11.mkdirSync(dir, { recursive: true });
1612
1639
  }
1613
- fs12.writeFileSync(filePath, stringify(existing, { indent: 2 }), "utf-8");
1640
+ fs11.writeFileSync(filePath, stringify(existing, { indent: 2 }), "utf-8");
1614
1641
  }
1615
1642
  var LOCK_FILENAME = "skaile.lock.yaml";
1616
1643
  function loadLockFile(dir) {
1617
1644
  const filePath = path4.join(dir, LOCK_FILENAME);
1618
- if (!fs12.existsSync(filePath)) return null;
1619
- const content = fs12.readFileSync(filePath, "utf-8");
1645
+ if (!fs11.existsSync(filePath)) return null;
1646
+ const content = fs11.readFileSync(filePath, "utf-8");
1620
1647
  const raw = parse(content);
1621
1648
  return LockFileSchema.parse(raw);
1622
1649
  }
1623
1650
  function saveLockFile(dir, lock) {
1624
1651
  const filePath = path4.join(dir, LOCK_FILENAME);
1625
- if (!fs12.existsSync(dir)) {
1626
- fs12.mkdirSync(dir, { recursive: true });
1652
+ if (!fs11.existsSync(dir)) {
1653
+ fs11.mkdirSync(dir, { recursive: true });
1627
1654
  }
1628
- fs12.writeFileSync(
1655
+ fs11.writeFileSync(
1629
1656
  filePath,
1630
1657
  `# Auto-generated by skaile. Do not edit manually.
1631
1658
  ${stringify(lock, { indent: 2 })}`,
@@ -1643,31 +1670,29 @@ function createEmptyLockFile() {
1643
1670
  }
1644
1671
  function detectWorkspaceVersion(dir, filename = "skaile.yaml") {
1645
1672
  const filePath = path4.join(dir, filename);
1646
- if (!fs12.existsSync(filePath)) return null;
1647
- const content = fs12.readFileSync(filePath, "utf-8");
1673
+ if (!fs11.existsSync(filePath)) return null;
1674
+ const content = fs11.readFileSync(filePath, "utf-8");
1648
1675
  const raw = parse(content);
1649
1676
  if (!raw || typeof raw !== "object") return null;
1650
1677
  return raw.version === 2 ? 2 : 1;
1651
1678
  }
1652
- var MANIFEST_FILENAME = ".skaile-source.yaml";
1679
+ var MANIFEST_FILENAME = "skaile.manifest.yaml";
1653
1680
  async function writeManifestIfMissing(input) {
1654
1681
  const manifestPath = path4.join(input.libraryPath, MANIFEST_FILENAME);
1655
- if (fs12.existsSync(manifestPath)) return { wrote: false, manifestPath };
1682
+ if (fs11.existsSync(manifestPath)) return { wrote: false, manifestPath };
1656
1683
  const now = (/* @__PURE__ */ new Date()).toISOString();
1657
- const yaml = `# Generated by skaile library add on ${now}
1684
+ const yaml = `# Generated by skaile library add on ${now} (structure: ${input.structure})
1658
1685
  # Edit by hand to inline discovered assets; or run \`skaile library refresh-manifest\`.
1659
- version: 2
1660
- structure: ${input.structure}
1661
1686
  publisher: ""
1662
1687
  assets: []
1663
1688
  `;
1664
- fs12.writeFileSync(manifestPath, yaml, "utf-8");
1689
+ fs11.writeFileSync(manifestPath, yaml, "utf-8");
1665
1690
  if (input.ownership !== "owner") {
1666
1691
  const excludePath = path4.join(input.libraryPath, ".git", "info", "exclude");
1667
- if (fs12.existsSync(path4.dirname(excludePath))) {
1668
- const current = fs12.existsSync(excludePath) ? fs12.readFileSync(excludePath, "utf-8") : "";
1692
+ if (fs11.existsSync(path4.dirname(excludePath))) {
1693
+ const current = fs11.existsSync(excludePath) ? fs11.readFileSync(excludePath, "utf-8") : "";
1669
1694
  if (!current.includes(MANIFEST_FILENAME)) {
1670
- fs12.writeFileSync(
1695
+ fs11.writeFileSync(
1671
1696
  excludePath,
1672
1697
  (current.endsWith("\n") || current === "" ? current : `${current}
1673
1698
  `) + `# skaile-managed local-overlay manifest
@@ -1683,10 +1708,10 @@ ${MANIFEST_FILENAME}
1683
1708
  function migrateWorkspaceConfig(dir, opts) {
1684
1709
  const filename = opts?.filename ?? "skaile.yaml";
1685
1710
  const filePath = path4.join(dir, filename);
1686
- if (!fs12.existsSync(filePath)) {
1711
+ if (!fs11.existsSync(filePath)) {
1687
1712
  return { migrated: false, version: 1, warnings: ["No skaile.yaml found"] };
1688
1713
  }
1689
- const content = fs12.readFileSync(filePath, "utf-8");
1714
+ const content = fs11.readFileSync(filePath, "utf-8");
1690
1715
  const raw = parse(content);
1691
1716
  if (!raw || typeof raw !== "object") {
1692
1717
  return { migrated: false, version: 1, warnings: ["Invalid YAML content"] };
@@ -1718,7 +1743,7 @@ function migrateWorkspaceConfig(dir, opts) {
1718
1743
  } else {
1719
1744
  doc.set("version", 2);
1720
1745
  }
1721
- fs12.writeFileSync(filePath, doc.toString(), "utf-8");
1746
+ fs11.writeFileSync(filePath, doc.toString(), "utf-8");
1722
1747
  }
1723
1748
  return {
1724
1749
  migrated: !opts?.dryRun,
@@ -1760,10 +1785,10 @@ function resolvePin(pin, availableVersions) {
1760
1785
  const base = pin.slice(0, -2);
1761
1786
  const parts = base.split(".");
1762
1787
  const major = Number.parseInt(parts[0], 10);
1763
- const minor = parts.length > 1 ? Number.parseInt(parts[1], 10) : 0;
1788
+ const minor = parts.length > 1 ? Number.parseInt(parts[1], 10) : void 0;
1764
1789
  if (Number.isNaN(major)) return null;
1765
1790
  const match = parsed.find(
1766
- (v) => v.major === major && (Number.isNaN(minor) || v.minor === minor)
1791
+ (v) => v.major === major && (minor === void 0 || v.minor === minor)
1767
1792
  );
1768
1793
  return match ? { version: match.raw, match: "range" } : null;
1769
1794
  }
@@ -1801,6 +1826,8 @@ function parseRangeTarget(range) {
1801
1826
  patch: Number.isNaN(patch) ? 0 : patch
1802
1827
  };
1803
1828
  }
1829
+
1830
+ // library/src/local/local-catalog-source.ts
1804
1831
  var LocalCatalogSource = class {
1805
1832
  constructor(library, sourceId, rootPath, registry, options) {
1806
1833
  this.library = library;
@@ -1829,6 +1856,17 @@ var LocalCatalogSource = class {
1829
1856
  const defs = await this.library.listAssetDefs(libraryFilter);
1830
1857
  return defs.map(defToCatalogAsset);
1831
1858
  }
1859
+ async listVersions(ref) {
1860
+ const parsed = parseAssetRef(ref);
1861
+ const defs = await this.library.listAssetDefs({
1862
+ libraryId: this.sourceId,
1863
+ kind: parsed.kind
1864
+ });
1865
+ const wantPublisher = parsed.publisher?.replace(/^@/, "");
1866
+ return defs.filter(
1867
+ (d) => d.name === parsed.name && (wantPublisher === void 0 || d.publisher.replace(/^@/, "") === wantPublisher)
1868
+ ).map((d) => d.version);
1869
+ }
1832
1870
  async fetchTarball(_ref, _sha256) {
1833
1871
  throw new Error(
1834
1872
  "LocalCatalogSource does not support tarball delivery. Assets are available on disk."
@@ -1855,7 +1893,7 @@ var LocalCatalogSource = class {
1855
1893
  includeDev: syncOpts?.includeDev ?? false
1856
1894
  };
1857
1895
  if (!this.sidecarPath) {
1858
- opts.sourceConfig = loadSourceConfigIfPresent(this.rootPath);
1896
+ opts.sourceConfig = readManifestSourceConfig(this.rootPath);
1859
1897
  }
1860
1898
  const result = discoverAssetsInTree(this.rootPath, opts);
1861
1899
  let assetsUpdated = 0;
@@ -1903,18 +1941,6 @@ function defToCatalogAsset(def) {
1903
1941
  manifest: def.manifest
1904
1942
  };
1905
1943
  }
1906
- function loadSourceConfigIfPresent(rootPath) {
1907
- const configPath = path4.join(rootPath, ".skaile-source.yaml");
1908
- if (!fs12.existsSync(configPath)) return void 0;
1909
- try {
1910
- const content = fs12.readFileSync(configPath, "utf-8");
1911
- const result = loadSourceConfig(content);
1912
- if (!result.ok) return void 0;
1913
- return result.config;
1914
- } catch {
1915
- return void 0;
1916
- }
1917
- }
1918
1944
  function defaultCacheDir() {
1919
1945
  return path4.join(os.homedir(), ".skaile", "catalog-cache");
1920
1946
  }
@@ -1993,17 +2019,17 @@ var CatalogCache = class {
1993
2019
  /** Read a cached tarball from disk if present, otherwise `null`. */
1994
2020
  readTarball(sha256) {
1995
2021
  const p = this.tarballPath(sha256);
1996
- if (!fs12.existsSync(p)) return null;
1997
- return fs12.readFileSync(p);
2022
+ if (!fs11.existsSync(p)) return null;
2023
+ return fs11.readFileSync(p);
1998
2024
  }
1999
2025
  /** Persist a tarball blob to disk (atomic write). */
2000
2026
  writeTarball(sha256, bytes) {
2001
2027
  const dir = path4.join(this.dir, TARBALL_DIR);
2002
- if (!fs12.existsSync(dir)) fs12.mkdirSync(dir, { recursive: true });
2028
+ if (!fs11.existsSync(dir)) fs11.mkdirSync(dir, { recursive: true });
2003
2029
  const finalPath = this.tarballPath(sha256);
2004
2030
  const tmpPath = `${finalPath}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
2005
- fs12.writeFileSync(tmpPath, bytes);
2006
- fs12.renameSync(tmpPath, finalPath);
2031
+ fs11.writeFileSync(tmpPath, bytes);
2032
+ fs11.renameSync(tmpPath, finalPath);
2007
2033
  }
2008
2034
  // ── public: invalidation ────────────────────────────────────────────────
2009
2035
  /**
@@ -2023,8 +2049,8 @@ var CatalogCache = class {
2023
2049
  invalidateEverything() {
2024
2050
  this.invalidateAll();
2025
2051
  const tarballDir = path4.join(this.dir, TARBALL_DIR);
2026
- if (fs12.existsSync(tarballDir)) {
2027
- fs12.rmSync(tarballDir, { recursive: true, force: true });
2052
+ if (fs11.existsSync(tarballDir)) {
2053
+ fs11.rmSync(tarballDir, { recursive: true, force: true });
2028
2054
  }
2029
2055
  }
2030
2056
  /** Return whether `ttlMs` is zero (air-gapped mode). */
@@ -2033,9 +2059,9 @@ var CatalogCache = class {
2033
2059
  }
2034
2060
  // ── private ─────────────────────────────────────────────────────────────
2035
2061
  ensureDir() {
2036
- if (!fs12.existsSync(this.dir)) fs12.mkdirSync(this.dir, { recursive: true });
2062
+ if (!fs11.existsSync(this.dir)) fs11.mkdirSync(this.dir, { recursive: true });
2037
2063
  const tarballDir = path4.join(this.dir, TARBALL_DIR);
2038
- if (!fs12.existsSync(tarballDir)) fs12.mkdirSync(tarballDir, { recursive: true });
2064
+ if (!fs11.existsSync(tarballDir)) fs11.mkdirSync(tarballDir, { recursive: true });
2039
2065
  }
2040
2066
  indexPath() {
2041
2067
  return path4.join(this.dir, INDEX_FILE);
@@ -2043,12 +2069,12 @@ var CatalogCache = class {
2043
2069
  loadIndex() {
2044
2070
  if (this.index) return this.index;
2045
2071
  const p = this.indexPath();
2046
- if (!fs12.existsSync(p)) {
2072
+ if (!fs11.existsSync(p)) {
2047
2073
  this.index = { version: 1, resolve: {}, list: {} };
2048
2074
  return this.index;
2049
2075
  }
2050
2076
  try {
2051
- const raw = JSON.parse(fs12.readFileSync(p, "utf-8"));
2077
+ const raw = JSON.parse(fs11.readFileSync(p, "utf-8"));
2052
2078
  if (raw && typeof raw === "object" && raw.version === 1) {
2053
2079
  this.index = {
2054
2080
  version: 1,
@@ -2066,8 +2092,8 @@ var CatalogCache = class {
2066
2092
  this.index = idx;
2067
2093
  const p = this.indexPath();
2068
2094
  const tmp = `${p}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
2069
- fs12.writeFileSync(tmp, JSON.stringify(idx, null, 2), "utf-8");
2070
- fs12.renameSync(tmp, p);
2095
+ fs11.writeFileSync(tmp, JSON.stringify(idx, null, 2), "utf-8");
2096
+ fs11.renameSync(tmp, p);
2071
2097
  }
2072
2098
  };
2073
2099
  function filterKey(filter) {
@@ -2223,6 +2249,20 @@ var RemoteCatalogSource = class {
2223
2249
  this.cache.writeTarball(sha256, buf);
2224
2250
  return buf;
2225
2251
  }
2252
+ /**
2253
+ * Enumerate available versions for a version-less ref. The Catalog has no
2254
+ * dedicated version-list route, so this derives versions from `listAssets`
2255
+ * (filtered to the publisher) and keeps only the matching kind+name. Reuses
2256
+ * the cached list path, so repeated calls are cheap.
2257
+ */
2258
+ async listVersions(ref) {
2259
+ const parsed = parseAssetRef(ref);
2260
+ const wantPublisher = parsed.publisher?.replace(/^@/, "");
2261
+ const assets = await this.listAssets(wantPublisher ? { publisher: wantPublisher } : void 0);
2262
+ return assets.filter(
2263
+ (a) => a.kind === parsed.kind && a.name === parsed.name && (wantPublisher === void 0 || a.publisher.replace(/^@/, "") === wantPublisher)
2264
+ ).map((a) => a.version);
2265
+ }
2226
2266
  /**
2227
2267
  * Single synthetic Source pointing at the configured Catalog URL. Phase 2
2228
2268
  * is single-Source per spec; multi-source federation is Phase 4.8.
@@ -2646,6 +2686,20 @@ var RestCatalogSource = class {
2646
2686
  this.cache.writeTarball(sha256, buf);
2647
2687
  return buf;
2648
2688
  }
2689
+ /**
2690
+ * Enumerate available versions for a version-less ref. The forge-store REST
2691
+ * API has no version-list route, so this derives versions from `listAssets`
2692
+ * (filtered to the publisher) and keeps only the matching kind+name. Reuses
2693
+ * the cached list path, so repeated calls are cheap.
2694
+ */
2695
+ async listVersions(ref) {
2696
+ const parsed = parseAssetRef(ref);
2697
+ const wantPublisher = parsed.publisher?.replace(/^@/, "");
2698
+ const assets = await this.listAssets(wantPublisher ? { publisher: wantPublisher } : void 0);
2699
+ return assets.filter(
2700
+ (a) => a.kind === parsed.kind && a.name === parsed.name && (wantPublisher === void 0 || a.publisher.replace(/^@/, "") === wantPublisher)
2701
+ ).map((a) => a.version);
2702
+ }
2649
2703
  /**
2650
2704
  * Single synthetic Source pointing at the configured forge-store URL.
2651
2705
  */
@@ -2848,9 +2902,9 @@ function validateKnowledge(data) {
2848
2902
  }
2849
2903
  function collectDirRecursive(baseDir, relativeDir) {
2850
2904
  const full = path4.join(baseDir, relativeDir);
2851
- if (!fs12.existsSync(full) || !fs12.statSync(full).isDirectory()) return [];
2905
+ if (!fs11.existsSync(full) || !fs11.statSync(full).isDirectory()) return [];
2852
2906
  const results = [];
2853
- for (const entry of fs12.readdirSync(full, { withFileTypes: true })) {
2907
+ for (const entry of fs11.readdirSync(full, { withFileTypes: true })) {
2854
2908
  const rel = path4.posix.join(relativeDir, entry.name);
2855
2909
  if (entry.isDirectory()) {
2856
2910
  results.push(...collectDirRecursive(baseDir, rel));
@@ -3058,6 +3112,9 @@ function validateAllPlaceholders(placeholders, inputs) {
3058
3112
  }
3059
3113
  async function queryInstancePickerChoices(library, options) {
3060
3114
  const filter = {};
3115
+ if (options?.kind) {
3116
+ filter.kind = options.kind;
3117
+ }
3061
3118
  if (options?.defRefPrefix) {
3062
3119
  filter.defRef = options.defRefPrefix;
3063
3120
  }
@@ -3257,8 +3314,8 @@ function resolveTemplate(template, context) {
3257
3314
  });
3258
3315
  return { value: result, hasSecret: false };
3259
3316
  }
3260
- function setNestedValue(obj, path14, value) {
3261
- const parts = path14.split(".");
3317
+ function setNestedValue(obj, path13, value) {
3318
+ const parts = path13.split(".");
3262
3319
  let current = obj;
3263
3320
  for (let i = 0; i < parts.length - 1; i++) {
3264
3321
  const key = parts[i];
@@ -3291,11 +3348,9 @@ async function applyPreset(presetRef, manifest, inputs, opts) {
3291
3348
  itemResults
3292
3349
  );
3293
3350
  result.errors.push(...itemResult.errors);
3294
- for (const inst of itemResult.instances) {
3295
- result.instances.push(inst);
3296
- if (item.id && itemResult.instances.length > 0) {
3297
- itemResults.set(item.id, itemResult.instances[0]);
3298
- }
3351
+ result.instances.push(...itemResult.instances);
3352
+ if (item.id && itemResult.instances.length > 0) {
3353
+ itemResults.set(item.id, itemResult.instances[0]);
3299
3354
  }
3300
3355
  result.subscriptions.push(...itemResult.subscriptions);
3301
3356
  }
@@ -3560,5 +3615,5 @@ function deepEqual(a, b) {
3560
3615
  }
3561
3616
 
3562
3617
  export { CatalogCache, CatalogConfigSchema, CatalogHttpError, DuplicateLibraryNameError, DuplicateSubscriptionError, GitSyncDriver, InstanceHasConsumersError, InstanceNotFoundError, InterpolationError, KNOWN_ASSET_KINDS, KnowledgeManifestSchema, LIBRARY_BACKENDS, LIBRARY_OWNERSHIPS, LIBRARY_STRUCTURES, LOCAL_CATALOG_URL, LibraryConfigSchema, LibraryError, LibraryInstanceRefSchema, LibraryManager, LibrarySectionSchema, LibrarySyncError, LocalCatalogSource, LocalIndex, LocalSyncDriver, LockFileSchema, LockSubscriptionSchema, OfflineError, OperationNotPermittedError, PIN_POLICIES, PinPolicySchema, PresetAppliedSchema, PresetExpandedSchema, RemoteCatalogSource, RequiresEdgeSchema, RestCatalogSource, SidecarGit, SkaileConfigSchema, SourceNotFoundError, SubscriptionNotFoundError, TarballHashMismatchError, UserLibraryNotFoundError, WorkspaceConfigV2Schema, applyNonStructuralUpgrade, applyPreset, applyPresetFromData, classifyRef, createEmptyLockFile, deriveSlug, detectChanges, detectNestedPresetRefs, detectWorkspaceVersion, evaluateUpgrade, extractLibraryInstanceId, extractReferencedKeys, filterKey, getConfigDefaults, getDefaultValue, getSidecarRoot, getStoreManifestsDir, getStoreRoot, hasInterpolationTokens, installFromManifest, interpolate, isLocalCatalogUrl, isSecretPlaceholder, knowledgeKindProvider, listSidecarSlugsOnDisk, loadLockFile, loadWorkspaceV2, migrateSidecarsToStoreIfNeeded, migrateWorkspaceConfig, parsePreset, parsePresetYaml, parseWorkspaceV2, projectConfigPath, queryInstancePickerChoices, resolveAllItems, resolveConfig, resolveIndexPath, resolveItem, resolveLibraryDir, resolvePin, resolveSidecarPaths, saveConfig, saveLockFile, saveWorkspaceV2, sha256Hex, skaileHomeDir, storeSecrets, trpcGetUrl, userConfigPath, validateAllPlaceholders, validateKnowledge, validateNestingDepth, validatePlaceholder, writeManifestIfMissing };
3563
- //# sourceMappingURL=chunk-2F3RUZXC.js.map
3564
- //# sourceMappingURL=chunk-2F3RUZXC.js.map
3618
+ //# sourceMappingURL=chunk-RTAIGPTF.js.map
3619
+ //# sourceMappingURL=chunk-RTAIGPTF.js.map