@skaile/workspaces 0.25.0 → 0.27.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 (562) hide show
  1. package/CHANGELOG.md +271 -0
  2. package/README.md +2 -2
  3. package/dist/{asset-feeds-77KLWCBP.js → asset-feeds-DGZO27M7.js} +20 -12
  4. package/dist/asset-feeds-DGZO27M7.js.map +1 -0
  5. package/dist/asset-manager/index.js +12 -11
  6. package/dist/asset-manager/installer.js +11 -10
  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/continue.d.ts +2 -0
  16. package/dist/bridge/drivers/continue.js +103 -0
  17. package/dist/bridge/drivers/continue.js.map +1 -0
  18. package/dist/bridge/drivers/echo.js +1 -1
  19. package/dist/bridge/drivers/gemini.d.ts +2 -0
  20. package/dist/bridge/drivers/gemini.js +10 -0
  21. package/dist/bridge/drivers/gemini.js.map +1 -0
  22. package/dist/bridge/drivers/goose.d.ts +2 -0
  23. package/dist/bridge/drivers/goose.js +88 -0
  24. package/dist/bridge/drivers/goose.js.map +1 -0
  25. package/dist/bridge/drivers/omp.js +64 -50
  26. package/dist/bridge/drivers/omp.js.map +1 -1
  27. package/dist/bridge/drivers/opencode.d.ts +2 -0
  28. package/dist/bridge/drivers/opencode.js +99 -0
  29. package/dist/bridge/drivers/opencode.js.map +1 -0
  30. package/dist/bridge/drivers/qwen.d.ts +2 -0
  31. package/dist/bridge/drivers/qwen.js +57 -0
  32. package/dist/bridge/drivers/qwen.js.map +1 -0
  33. package/dist/bridge/index.js +4 -4
  34. package/dist/bridge/src/drivers/_subprocess-cli.d.ts +136 -0
  35. package/dist/bridge/src/drivers/_subprocess-cli.d.ts.map +1 -0
  36. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  37. package/dist/bridge/src/drivers/codex.d.ts.map +1 -1
  38. package/dist/bridge/src/drivers/continue.d.ts +43 -0
  39. package/dist/bridge/src/drivers/continue.d.ts.map +1 -0
  40. package/dist/bridge/src/drivers/gemini.d.ts +55 -0
  41. package/dist/bridge/src/drivers/gemini.d.ts.map +1 -0
  42. package/dist/bridge/src/drivers/goose.d.ts +42 -0
  43. package/dist/bridge/src/drivers/goose.d.ts.map +1 -0
  44. package/dist/bridge/src/drivers/omp.d.ts +20 -4
  45. package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
  46. package/dist/bridge/src/drivers/opencode.d.ts +43 -0
  47. package/dist/bridge/src/drivers/opencode.d.ts.map +1 -0
  48. package/dist/bridge/src/drivers/qwen.d.ts +39 -0
  49. package/dist/bridge/src/drivers/qwen.d.ts.map +1 -0
  50. package/dist/bridge/src/error-classifier.d.ts +17 -0
  51. package/dist/bridge/src/error-classifier.d.ts.map +1 -1
  52. package/dist/bridge/src/models.d.ts +1 -1
  53. package/dist/bridge/src/models.d.ts.map +1 -1
  54. package/dist/bridge/src/provider-endpoints.d.ts +16 -0
  55. package/dist/bridge/src/provider-endpoints.d.ts.map +1 -0
  56. package/dist/bridge/src/registry.d.ts.map +1 -1
  57. package/dist/bridge/src/validation.d.ts +1 -1
  58. package/dist/bridge/src/validation.d.ts.map +1 -1
  59. package/dist/{chunk-GL45UNVS.js → chunk-2FS4FPZ7.js} +3 -3
  60. package/dist/{chunk-GL45UNVS.js.map → chunk-2FS4FPZ7.js.map} +1 -1
  61. package/dist/{chunk-4FJE6BI6.js → chunk-2NOE4AGD.js} +3 -3
  62. package/dist/{chunk-4FJE6BI6.js.map → chunk-2NOE4AGD.js.map} +1 -1
  63. package/dist/{chunk-3QTZWPGH.js → chunk-3QQSSRYN.js} +168 -90
  64. package/dist/chunk-3QQSSRYN.js.map +1 -0
  65. package/dist/{chunk-4FADEVBN.js → chunk-3ZER5DST.js} +6 -6
  66. package/dist/chunk-3ZER5DST.js.map +1 -0
  67. package/dist/chunk-5RBPPBEK.js +110 -0
  68. package/dist/chunk-5RBPPBEK.js.map +1 -0
  69. package/dist/chunk-5V5KZQIC.js +445 -0
  70. package/dist/chunk-5V5KZQIC.js.map +1 -0
  71. package/dist/{chunk-LSGAYQ2E.js → chunk-5YO3H5Q4.js} +3 -3
  72. package/dist/{chunk-LSGAYQ2E.js.map → chunk-5YO3H5Q4.js.map} +1 -1
  73. package/dist/{chunk-JDX54X4Y.js → chunk-7GWYRVAX.js} +12 -9
  74. package/dist/chunk-7GWYRVAX.js.map +1 -0
  75. package/dist/{chunk-B4ZXBH57.js → chunk-A4ASAIKK.js} +59 -13
  76. package/dist/chunk-A4ASAIKK.js.map +1 -0
  77. package/dist/{chunk-M5TE6YI5.js → chunk-AKSR434V.js} +10 -52
  78. package/dist/chunk-AKSR434V.js.map +1 -0
  79. package/dist/{chunk-KOVLSBXK.js → chunk-BMQKMOQY.js} +81 -79
  80. package/dist/chunk-BMQKMOQY.js.map +1 -0
  81. package/dist/{chunk-FJFHJBGS.js → chunk-BUL5H6J7.js} +9 -9
  82. package/dist/chunk-BUL5H6J7.js.map +1 -0
  83. package/dist/{chunk-GZWJGNNN.js → chunk-DEYYRFQU.js} +3 -3
  84. package/dist/chunk-DEYYRFQU.js.map +1 -0
  85. package/dist/{chunk-SETTLPBD.js → chunk-DGM74UP4.js} +3 -3
  86. package/dist/{chunk-SETTLPBD.js.map → chunk-DGM74UP4.js.map} +1 -1
  87. package/dist/{chunk-UD4ZLXGS.js → chunk-FWHOU3CX.js} +67 -35
  88. package/dist/chunk-FWHOU3CX.js.map +1 -0
  89. package/dist/{chunk-WSZAFRQL.js → chunk-GYPA2Q7F.js} +6 -5
  90. package/dist/chunk-GYPA2Q7F.js.map +1 -0
  91. package/dist/{chunk-WIAHJOMG.js → chunk-IEJ5IOC3.js} +10 -2
  92. package/dist/chunk-IEJ5IOC3.js.map +1 -0
  93. package/dist/chunk-IERB3UXJ.js +215 -0
  94. package/dist/chunk-IERB3UXJ.js.map +1 -0
  95. package/dist/{chunk-FVTV7M76.js → chunk-IFGTRL2I.js} +3 -3
  96. package/dist/chunk-IFGTRL2I.js.map +1 -0
  97. package/dist/{chunk-KT3CK26V.js → chunk-JIQLLZ65.js} +203 -39
  98. package/dist/chunk-JIQLLZ65.js.map +1 -0
  99. package/dist/{chunk-XVL22AWE.js → chunk-M4KLIEIJ.js} +114 -63
  100. package/dist/chunk-M4KLIEIJ.js.map +1 -0
  101. package/dist/{chunk-6FNCZYJY.js → chunk-MBOR7D65.js} +3 -3
  102. package/dist/{chunk-6FNCZYJY.js.map → chunk-MBOR7D65.js.map} +1 -1
  103. package/dist/{chunk-BJWUSHC4.js → chunk-MZDXEFXF.js} +30 -20
  104. package/dist/chunk-MZDXEFXF.js.map +1 -0
  105. package/dist/{chunk-QAVZOJCV.js → chunk-OVRSNIKJ.js} +2 -2
  106. package/dist/chunk-OVRSNIKJ.js.map +1 -0
  107. package/dist/{chunk-DQWREFRQ.js → chunk-PAYAFNXG.js} +22 -3
  108. package/dist/chunk-PAYAFNXG.js.map +1 -0
  109. package/dist/{chunk-D3VO6WNC.js → chunk-PRLD7EXG.js} +3 -3
  110. package/dist/chunk-PRLD7EXG.js.map +1 -0
  111. package/dist/{chunk-NELZIQ2E.js → chunk-QDJKE557.js} +20 -3
  112. package/dist/chunk-QDJKE557.js.map +1 -0
  113. package/dist/{chunk-QXC62DOF.js → chunk-SF4GWVR5.js} +21 -9
  114. package/dist/chunk-SF4GWVR5.js.map +1 -0
  115. package/dist/{chunk-IPUYL6TD.js → chunk-TV72ZJYN.js} +8 -5
  116. package/dist/{chunk-IPUYL6TD.js.map → chunk-TV72ZJYN.js.map} +1 -1
  117. package/dist/{chunk-4QVFQEY2.js → chunk-UAW7VRAL.js} +2 -2
  118. package/dist/{chunk-4QVFQEY2.js.map → chunk-UAW7VRAL.js.map} +1 -1
  119. package/dist/chunk-UBCZVONU.js +28 -0
  120. package/dist/chunk-UBCZVONU.js.map +1 -0
  121. package/dist/{chunk-2XY6732A.js → chunk-UIZKIUC6.js} +6 -6
  122. package/dist/chunk-UIZKIUC6.js.map +1 -0
  123. package/dist/{chunk-ICS76R4T.js → chunk-W7W66MDZ.js} +10 -8
  124. package/dist/chunk-W7W66MDZ.js.map +1 -0
  125. package/dist/{chunk-DCAWIRD6.js → chunk-WRRYESHC.js} +152 -187
  126. package/dist/chunk-WRRYESHC.js.map +1 -0
  127. package/dist/{chunk-XMP6XTMF.js → chunk-XHBPQ7QP.js} +450 -207
  128. package/dist/chunk-XHBPQ7QP.js.map +1 -0
  129. package/dist/chunk-Z3XXKR5E.js +88 -0
  130. package/dist/chunk-Z3XXKR5E.js.map +1 -0
  131. package/dist/{chunk-KLNL7QHN.js → chunk-ZAP2BDHG.js} +30 -5
  132. package/dist/chunk-ZAP2BDHG.js.map +1 -0
  133. package/dist/{chunk-6VTG73UY.js → chunk-ZEKWHJBB.js} +52 -2
  134. package/dist/chunk-ZEKWHJBB.js.map +1 -0
  135. package/dist/{chunk-GCJXPUHG.js → chunk-ZONCCO5N.js} +9 -4
  136. package/dist/chunk-ZONCCO5N.js.map +1 -0
  137. package/dist/cli/index.js +618 -482
  138. package/dist/cli/index.js.map +1 -1
  139. package/dist/cli/src/asset-feeds.d.ts +14 -1
  140. package/dist/cli/src/asset-feeds.d.ts.map +1 -1
  141. package/dist/cli/src/commands/complete-resolvers.d.ts.map +1 -1
  142. package/dist/cli/src/commands/config.d.ts.map +1 -1
  143. package/dist/cli/src/commands/connector.d.ts +7 -0
  144. package/dist/cli/src/commands/connector.d.ts.map +1 -1
  145. package/dist/cli/src/commands/flow.d.ts +3 -2
  146. package/dist/cli/src/commands/flow.d.ts.map +1 -1
  147. package/dist/cli/src/commands/manage.d.ts +46 -23
  148. package/dist/cli/src/commands/manage.d.ts.map +1 -1
  149. package/dist/cli/src/commands/npx.d.ts.map +1 -1
  150. package/dist/cli/src/commands/run.d.ts.map +1 -1
  151. package/dist/cli/src/flow-discovery.d.ts +24 -0
  152. package/dist/cli/src/flow-discovery.d.ts.map +1 -0
  153. package/dist/cli/src/helpers.d.ts +10 -1
  154. package/dist/cli/src/helpers.d.ts.map +1 -1
  155. package/dist/cli/src/open-registry.d.ts +2 -2
  156. package/dist/cli/src/paths.d.ts +26 -9
  157. package/dist/cli/src/paths.d.ts.map +1 -1
  158. package/dist/cli/src/skill-walker.d.ts +9 -5
  159. package/dist/cli/src/skill-walker.d.ts.map +1 -1
  160. package/dist/connectors/config.js +9 -8
  161. package/dist/connectors/index.js +14 -13
  162. package/dist/connectors/rclone-config.js +1 -1
  163. package/dist/connectors/src/connector-manager.d.ts +24 -2
  164. package/dist/connectors/src/connector-manager.d.ts.map +1 -1
  165. package/dist/connectors/src/connector-prompt.d.ts.map +1 -1
  166. package/dist/connectors/src/connector-registry.d.ts +3 -3
  167. package/dist/connectors/src/credential-helper-script.d.ts.map +1 -1
  168. package/dist/connectors/src/index.d.ts +4 -2
  169. package/dist/connectors/src/index.d.ts.map +1 -1
  170. package/dist/connectors/src/managed-gitconfig.d.ts.map +1 -1
  171. package/dist/connectors/src/mount-placeholder.d.ts +68 -0
  172. package/dist/connectors/src/mount-placeholder.d.ts.map +1 -0
  173. package/dist/connectors/src/rclone-config/googledrive.d.ts +1 -1
  174. package/dist/core/discovery.js +1 -1
  175. package/dist/core/index.js +8 -7
  176. package/dist/core/manifest.js +2 -2
  177. package/dist/core/models.js +1 -1
  178. package/dist/core/publish-manifest.d.ts +2 -0
  179. package/dist/core/publish-manifest.js +5 -0
  180. package/dist/core/publish-manifest.js.map +1 -0
  181. package/dist/core/runtime-assets.js +5 -4
  182. package/dist/core/src/discovery.d.ts +27 -0
  183. package/dist/core/src/discovery.d.ts.map +1 -1
  184. package/dist/core/src/index.d.ts +8 -5
  185. package/dist/core/src/index.d.ts.map +1 -1
  186. package/dist/core/src/lock.d.ts.map +1 -1
  187. package/dist/core/src/manifest-yaml-editor.d.ts +62 -0
  188. package/dist/core/src/manifest-yaml-editor.d.ts.map +1 -0
  189. package/dist/core/src/models.d.ts +6 -0
  190. package/dist/core/src/models.d.ts.map +1 -1
  191. package/dist/core/src/publish-manifest.d.ts +160 -0
  192. package/dist/core/src/publish-manifest.d.ts.map +1 -0
  193. package/dist/core/src/repo-manager.d.ts +9 -1
  194. package/dist/core/src/repo-manager.d.ts.map +1 -1
  195. package/dist/core/src/runtime-assets.d.ts +80 -29
  196. package/dist/core/src/runtime-assets.d.ts.map +1 -1
  197. package/dist/core/src/walker.d.ts +19 -6
  198. package/dist/core/src/walker.d.ts.map +1 -1
  199. package/dist/core/src/workspace-config.d.ts +19 -37
  200. package/dist/core/src/workspace-config.d.ts.map +1 -1
  201. package/dist/core/src/workspace-yaml-editor.d.ts +1 -15
  202. package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
  203. package/dist/core/workspace-config.js +4 -3
  204. package/dist/deploy/index.js +51 -80
  205. package/dist/deploy/index.js.map +1 -1
  206. package/dist/deploy/src/targets/container-runtime.d.ts +1 -1
  207. package/dist/deploy/src/targets/container-runtime.d.ts.map +1 -1
  208. package/dist/deploy/src/targets/local.d.ts.map +1 -1
  209. package/dist/deploy/src/targets/nix.d.ts.map +1 -1
  210. package/dist/deploy/src/targets/process-handle.d.ts +7 -5
  211. package/dist/deploy/src/targets/process-handle.d.ts.map +1 -1
  212. package/dist/discovery/index.js +5 -4
  213. package/dist/discovery/src/discover-manifest.d.ts +3 -2
  214. package/dist/discovery/src/discover-manifest.d.ts.map +1 -1
  215. package/dist/discovery/src/discover.d.ts +2 -2
  216. package/dist/discovery/src/discover.d.ts.map +1 -1
  217. package/dist/discovery/src/index.d.ts +1 -1
  218. package/dist/discovery/src/index.d.ts.map +1 -1
  219. package/dist/discovery/src/source-config.d.ts +53 -12
  220. package/dist/discovery/src/source-config.d.ts.map +1 -1
  221. package/dist/discovery/src/tree-entries.d.ts +2 -2
  222. package/dist/discovery/src/tree-entries.d.ts.map +1 -1
  223. package/dist/{ensure-sources-7MOOKY3K.js → ensure-sources-KQQEUDKM.js} +15 -13
  224. package/dist/ensure-sources-KQQEUDKM.js.map +1 -0
  225. package/dist/factory-assets/.skaile-source.yaml +6 -0
  226. package/dist/factory-assets/README.md +36 -0
  227. package/dist/factory-assets/bundles/workspaces-authoring/workspaces-authoring.bundle.yaml +9 -0
  228. package/dist/factory-assets/connectors/deploy/CONNECTOR.md +41 -0
  229. package/dist/{base-assets → factory-assets}/connectors/deploy/adapter.d.ts +2 -2
  230. package/dist/factory-assets/connectors/deploy/adapter.d.ts.map +1 -0
  231. package/dist/factory-assets/connectors/deploy.js +22 -0
  232. package/dist/factory-assets/connectors/devserver/CONNECTOR.md +44 -0
  233. package/dist/{base-assets → factory-assets}/connectors/devserver/adapter.d.ts +2 -2
  234. package/dist/factory-assets/connectors/devserver/adapter.d.ts.map +1 -0
  235. package/dist/factory-assets/connectors/devserver.js +22 -0
  236. package/dist/factory-assets/connectors/flow/CONNECTOR.md +47 -0
  237. package/dist/{base-assets → factory-assets}/connectors/flow/adapter.d.ts +2 -2
  238. package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -0
  239. package/dist/factory-assets/connectors/flow/adapter.js +22 -0
  240. package/dist/factory-assets/connectors/flow/engine/engine.d.ts.map +1 -0
  241. package/dist/{base-assets → factory-assets}/connectors/flow/engine/flow-kind-provider.d.ts +1 -1
  242. package/dist/factory-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +1 -0
  243. package/dist/factory-assets/connectors/flow/engine/flow-manifest.d.ts.map +1 -0
  244. package/dist/factory-assets/connectors/flow/engine/index.d.ts.map +1 -0
  245. package/dist/factory-assets/connectors/flow/engine/loader.d.ts.map +1 -0
  246. package/dist/factory-assets/connectors/flow/engine/types.d.ts.map +1 -0
  247. package/dist/factory-assets/connectors/flow/engine.js +15 -0
  248. package/dist/factory-assets/connectors/flow/index.d.ts.map +1 -0
  249. package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.d.ts +5 -5
  250. package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts.map +1 -0
  251. package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.js +1 -1
  252. package/dist/{base-assets → factory-assets}/connectors/flow/run-flow.d.ts +8 -8
  253. package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -0
  254. package/dist/factory-assets/connectors/flow/run-flow.js +25 -0
  255. package/dist/{base-assets → factory-assets}/connectors/flow/stimulus-driver.d.ts +2 -2
  256. package/dist/factory-assets/connectors/flow/stimulus-driver.d.ts.map +1 -0
  257. package/dist/factory-assets/connectors/flow/stimulus-driver.js +4 -0
  258. package/dist/factory-assets/connectors/flow.js +22 -0
  259. package/dist/factory-assets/connectors/git/CONNECTOR.md +145 -0
  260. package/dist/{base-assets → factory-assets}/connectors/git/driver.d.ts +2 -2
  261. package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -0
  262. package/dist/factory-assets/connectors/git.js +22 -0
  263. package/dist/factory-assets/connectors/gmail/CONNECTOR.md +50 -0
  264. package/dist/{base-assets → factory-assets}/connectors/gmail/adapter.d.ts +2 -2
  265. package/dist/factory-assets/connectors/gmail/adapter.d.ts.map +1 -0
  266. package/dist/factory-assets/connectors/gmail.js +22 -0
  267. package/dist/factory-assets/connectors/googledrive/CONNECTOR.md +150 -0
  268. package/dist/{base-assets → factory-assets}/connectors/googledrive/driver.d.ts +2 -2
  269. package/dist/factory-assets/connectors/googledrive/driver.d.ts.map +1 -0
  270. package/dist/factory-assets/connectors/googledrive.js +22 -0
  271. package/dist/factory-assets/connectors/local/CONNECTOR.md +40 -0
  272. package/dist/{base-assets → factory-assets}/connectors/local/driver.d.ts +2 -2
  273. package/dist/factory-assets/connectors/local/driver.d.ts.map +1 -0
  274. package/dist/factory-assets/connectors/local.js +22 -0
  275. package/dist/factory-assets/connectors/mattermost/CONNECTOR.md +65 -0
  276. package/dist/{base-assets → factory-assets}/connectors/mattermost/adapter.d.ts +2 -2
  277. package/dist/factory-assets/connectors/mattermost/adapter.d.ts.map +1 -0
  278. package/dist/factory-assets/connectors/mattermost.js +22 -0
  279. package/dist/factory-assets/connectors/memory/CONNECTOR.md +40 -0
  280. package/dist/{base-assets → factory-assets}/connectors/memory/adapter.d.ts +2 -2
  281. package/dist/factory-assets/connectors/memory/adapter.d.ts.map +1 -0
  282. package/dist/factory-assets/connectors/memory.js +22 -0
  283. package/dist/factory-assets/connectors/minio/CONNECTOR.md +68 -0
  284. package/dist/{base-assets → factory-assets}/connectors/minio/adapter.d.ts +2 -2
  285. package/dist/factory-assets/connectors/minio/adapter.d.ts.map +1 -0
  286. package/dist/factory-assets/connectors/minio.js +22 -0
  287. package/dist/factory-assets/connectors/postgres/CONNECTOR.md +46 -0
  288. package/dist/{base-assets → factory-assets}/connectors/postgres/adapter.d.ts +2 -2
  289. package/dist/factory-assets/connectors/postgres/adapter.d.ts.map +1 -0
  290. package/dist/factory-assets/connectors/postgres.js +22 -0
  291. package/dist/factory-assets/connectors/s3/CONNECTOR.md +76 -0
  292. package/dist/{base-assets → factory-assets}/connectors/s3/driver.d.ts +2 -2
  293. package/dist/factory-assets/connectors/s3/driver.d.ts.map +1 -0
  294. package/dist/factory-assets/connectors/s3.js +22 -0
  295. package/dist/factory-assets/connectors/sharepoint/CONNECTOR.md +181 -0
  296. package/dist/{base-assets → factory-assets}/connectors/sharepoint/driver.d.ts +2 -2
  297. package/dist/factory-assets/connectors/sharepoint/driver.d.ts.map +1 -0
  298. package/dist/factory-assets/connectors/sharepoint.js +22 -0
  299. package/dist/factory-assets/connectors/sqlite/CONNECTOR.md +44 -0
  300. package/dist/{base-assets → factory-assets}/connectors/sqlite/adapter.d.ts +2 -2
  301. package/dist/factory-assets/connectors/sqlite/adapter.d.ts.map +1 -0
  302. package/dist/factory-assets/connectors/sqlite.js +22 -0
  303. package/dist/factory-assets/connectors/static-server/CONNECTOR.md +41 -0
  304. package/dist/{base-assets → factory-assets}/connectors/static-server/adapter.d.ts +2 -2
  305. package/dist/factory-assets/connectors/static-server/adapter.d.ts.map +1 -0
  306. package/dist/factory-assets/connectors/static-server.js +22 -0
  307. package/dist/factory-assets/connectors/tunnel/CONNECTOR.md +40 -0
  308. package/dist/{base-assets → factory-assets}/connectors/tunnel/adapter.d.ts +2 -2
  309. package/dist/factory-assets/connectors/tunnel/adapter.d.ts.map +1 -0
  310. package/dist/factory-assets/connectors/tunnel.js +22 -0
  311. package/dist/factory-assets/connectors/webdav/CONNECTOR.md +139 -0
  312. package/dist/{base-assets → factory-assets}/connectors/webdav/driver.d.ts +2 -2
  313. package/dist/factory-assets/connectors/webdav/driver.d.ts.map +1 -0
  314. package/dist/factory-assets/connectors/webdav.js +22 -0
  315. package/dist/factory-assets/connectors/xstate/CONNECTOR.md +57 -0
  316. package/dist/{base-assets → factory-assets}/connectors/xstate/adapter.d.ts +2 -2
  317. package/dist/factory-assets/connectors/xstate/adapter.d.ts.map +1 -0
  318. package/dist/factory-assets/connectors/xstate-store/CONNECTOR.md +48 -0
  319. package/dist/{base-assets → factory-assets}/connectors/xstate-store/adapter.d.ts +2 -2
  320. package/dist/factory-assets/connectors/xstate-store/adapter.d.ts.map +1 -0
  321. package/dist/factory-assets/connectors/xstate-store.js +22 -0
  322. package/dist/factory-assets/connectors/xstate.js +22 -0
  323. package/dist/{base-assets → factory-assets}/index.d.ts +1 -1
  324. package/dist/factory-assets/index.d.ts.map +1 -0
  325. package/dist/{base-assets → factory-assets}/index.js +1 -1
  326. package/dist/factory-assets/index.js.map +1 -0
  327. package/dist/factory-assets/skaile.manifest.yaml +25 -0
  328. package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +176 -0
  329. package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +243 -0
  330. package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +197 -0
  331. package/dist/factory-assets/skills/manifest-compliance/SKILL.md +140 -0
  332. package/dist/factory-assets/skills/skaile-author-asset/SKILL.md +239 -0
  333. package/dist/factory-assets/skills/skaile-manage-workspace/SKILL.md +168 -0
  334. package/dist/{flows-DYFTPCPM.js → flows-L3GHQD7F.js} +4 -4
  335. package/dist/{flows-DYFTPCPM.js.map → flows-L3GHQD7F.js.map} +1 -1
  336. package/dist/helpers-F4NZ66VD.js +4 -0
  337. package/dist/{helpers-LTN3HMD3.js.map → helpers-F4NZ66VD.js.map} +1 -1
  338. package/dist/library/index.js +12 -10
  339. package/dist/library/install.d.ts +2 -0
  340. package/dist/library/install.js +16 -0
  341. package/dist/library/install.js.map +1 -0
  342. package/dist/library/src/install/index.d.ts +3 -0
  343. package/dist/library/src/install/index.d.ts.map +1 -0
  344. package/dist/library/src/library.d.ts +2 -0
  345. package/dist/library/src/library.d.ts.map +1 -1
  346. package/dist/library/src/local/library.d.ts +2 -0
  347. package/dist/library/src/local/library.d.ts.map +1 -1
  348. package/dist/library/src/local/local-catalog-source.d.ts +2 -1
  349. package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
  350. package/dist/library/src/local/sidecar-paths.d.ts +4 -4
  351. package/dist/library/src/local/sidecar-paths.d.ts.map +1 -1
  352. package/dist/library/src/local/store-paths.d.ts +4 -3
  353. package/dist/library/src/local/store-paths.d.ts.map +1 -1
  354. package/dist/library/src/pin-resolver.d.ts.map +1 -1
  355. package/dist/library/src/preset/apply.d.ts.map +1 -1
  356. package/dist/library/src/preset/placeholders.d.ts.map +1 -1
  357. package/dist/library/src/remote/remote-catalog-source.d.ts +7 -0
  358. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  359. package/dist/library/src/remote/rest-catalog-source.d.ts +7 -0
  360. package/dist/library/src/remote/rest-catalog-source.d.ts.map +1 -1
  361. package/dist/library/src/sync/manifest-writeback.d.ts +1 -1
  362. package/dist/library/src/sync/manifest-writeback.d.ts.map +1 -1
  363. package/dist/open-library-I7YTADMD.js +23 -0
  364. package/dist/{open-library-GW7DWWNZ.js.map → open-library-I7YTADMD.js.map} +1 -1
  365. package/dist/paths-CE66L3AL.js +15 -0
  366. package/dist/{paths-FKKGS6BA.js.map → paths-CE66L3AL.js.map} +1 -1
  367. package/dist/{plugin-store-R32NH7JE.js → plugin-store-GL5VKYUA.js} +10 -9
  368. package/dist/plugin-store-GL5VKYUA.js.map +1 -0
  369. package/dist/plugins/src/asset-kind-provider.d.ts +1 -1
  370. package/dist/plugins/src/catalog-source.d.ts +13 -0
  371. package/dist/plugins/src/catalog-source.d.ts.map +1 -1
  372. package/dist/resolver/index.js +1 -1
  373. package/dist/resolver/src/parser.d.ts.map +1 -1
  374. package/dist/runner/index.js +20 -19
  375. package/dist/runner/src/capability-registry.d.ts +1 -1
  376. package/dist/runner/src/capability-registry.d.ts.map +1 -1
  377. package/dist/runner/src/resource-handler.d.ts.map +1 -1
  378. package/dist/runner/src/resources.d.ts +1 -1
  379. package/dist/runner/src/serve.d.ts.map +1 -1
  380. package/dist/runner/src/workspace-migration.d.ts.map +1 -1
  381. package/dist/sdk/asset-manager.js +12 -11
  382. package/dist/sdk/bridge.js +4 -4
  383. package/dist/sdk/core.js +8 -7
  384. package/dist/sdk/flow.js +12 -1
  385. package/dist/sdk/index.js +23 -22
  386. package/dist/sdk/index.js.map +1 -1
  387. package/dist/sdk/resolver.js +1 -1
  388. package/dist/sdk/runner.js +20 -19
  389. package/dist/sdk/session.js +1 -1
  390. package/dist/sdk/src/flow/index.d.ts +1 -1
  391. package/dist/sdk/src/flow/index.d.ts.map +1 -1
  392. package/dist/sdk/src/workspace.d.ts +3 -2
  393. package/dist/sdk/src/workspace.d.ts.map +1 -1
  394. package/dist/sdk/telemetry.js +1 -1
  395. package/dist/secrets/index.js +1 -1
  396. package/dist/secrets/src/providers/env.d.ts.map +1 -1
  397. package/dist/secrets/src/providers/local.d.ts.map +1 -1
  398. package/dist/session/index.js +1 -1
  399. package/dist/session/src/mentions.d.ts.map +1 -1
  400. package/dist/{setup-SRPBQOHY.js → setup-4YMN2BDU.js} +14 -13
  401. package/dist/setup-4YMN2BDU.js.map +1 -0
  402. package/dist/skills-6HJ3WINN.js +7 -0
  403. package/dist/{skills-CRL3VJNN.js.map → skills-6HJ3WINN.js.map} +1 -1
  404. package/dist/store-client-BCP5LCAZ.js +15 -0
  405. package/dist/{store-client-INZD2RYD.js.map → store-client-BCP5LCAZ.js.map} +1 -1
  406. package/dist/telemetry/index.js +1 -1
  407. package/dist/telemetry/src/config.d.ts +0 -16
  408. package/dist/telemetry/src/config.d.ts.map +1 -1
  409. package/dist/tui/index.js +20 -19
  410. package/dist/tui/index.js.map +1 -1
  411. package/dist/types/manifests.js +1 -1
  412. package/dist/types/src/flow.d.ts +2 -2
  413. package/dist/types/src/manifests/index.d.ts +1 -1
  414. package/dist/types/src/manifests/skill.d.ts +21 -0
  415. package/dist/types/src/manifests/skill.d.ts.map +1 -1
  416. package/dist/workspace-plugin/adapters/mcp.js +4 -4
  417. package/dist/workspace-plugin/adapters/omp.js +7 -7
  418. package/dist/workspace-plugin/index.js +1 -1
  419. package/dist/workspace-plugin/src/tools/flows.d.ts.map +1 -1
  420. package/package.json +194 -151
  421. package/dist/asset-feeds-77KLWCBP.js.map +0 -1
  422. package/dist/base-assets/connectors/deploy/adapter.d.ts.map +0 -1
  423. package/dist/base-assets/connectors/deploy.js +0 -21
  424. package/dist/base-assets/connectors/devserver/adapter.d.ts.map +0 -1
  425. package/dist/base-assets/connectors/devserver.js +0 -21
  426. package/dist/base-assets/connectors/flow/adapter.d.ts.map +0 -1
  427. package/dist/base-assets/connectors/flow/adapter.js +0 -21
  428. package/dist/base-assets/connectors/flow/engine/engine.d.ts.map +0 -1
  429. package/dist/base-assets/connectors/flow/engine/flow-kind-provider.d.ts.map +0 -1
  430. package/dist/base-assets/connectors/flow/engine/flow-manifest.d.ts.map +0 -1
  431. package/dist/base-assets/connectors/flow/engine/index.d.ts.map +0 -1
  432. package/dist/base-assets/connectors/flow/engine/loader.d.ts.map +0 -1
  433. package/dist/base-assets/connectors/flow/engine/types.d.ts.map +0 -1
  434. package/dist/base-assets/connectors/flow/engine.js +0 -4
  435. package/dist/base-assets/connectors/flow/index.d.ts.map +0 -1
  436. package/dist/base-assets/connectors/flow/prompt-fragments.d.ts.map +0 -1
  437. package/dist/base-assets/connectors/flow/run-flow.d.ts.map +0 -1
  438. package/dist/base-assets/connectors/flow/run-flow.js +0 -24
  439. package/dist/base-assets/connectors/flow/stimulus-driver.d.ts.map +0 -1
  440. package/dist/base-assets/connectors/flow/stimulus-driver.js +0 -4
  441. package/dist/base-assets/connectors/flow.js +0 -21
  442. package/dist/base-assets/connectors/git/driver.d.ts.map +0 -1
  443. package/dist/base-assets/connectors/git.js +0 -21
  444. package/dist/base-assets/connectors/gmail/adapter.d.ts.map +0 -1
  445. package/dist/base-assets/connectors/gmail.js +0 -21
  446. package/dist/base-assets/connectors/googledrive/driver.d.ts.map +0 -1
  447. package/dist/base-assets/connectors/googledrive.js +0 -21
  448. package/dist/base-assets/connectors/local/driver.d.ts.map +0 -1
  449. package/dist/base-assets/connectors/local.js +0 -21
  450. package/dist/base-assets/connectors/mattermost/adapter.d.ts.map +0 -1
  451. package/dist/base-assets/connectors/mattermost.js +0 -21
  452. package/dist/base-assets/connectors/memory/adapter.d.ts.map +0 -1
  453. package/dist/base-assets/connectors/memory.js +0 -21
  454. package/dist/base-assets/connectors/minio/adapter.d.ts.map +0 -1
  455. package/dist/base-assets/connectors/minio.js +0 -21
  456. package/dist/base-assets/connectors/postgres/adapter.d.ts.map +0 -1
  457. package/dist/base-assets/connectors/postgres.js +0 -21
  458. package/dist/base-assets/connectors/s3/driver.d.ts.map +0 -1
  459. package/dist/base-assets/connectors/s3.js +0 -21
  460. package/dist/base-assets/connectors/sharepoint/driver.d.ts.map +0 -1
  461. package/dist/base-assets/connectors/sharepoint.js +0 -21
  462. package/dist/base-assets/connectors/sqlite/adapter.d.ts.map +0 -1
  463. package/dist/base-assets/connectors/sqlite.js +0 -21
  464. package/dist/base-assets/connectors/static-server/adapter.d.ts.map +0 -1
  465. package/dist/base-assets/connectors/static-server.js +0 -21
  466. package/dist/base-assets/connectors/tunnel/adapter.d.ts.map +0 -1
  467. package/dist/base-assets/connectors/tunnel.js +0 -21
  468. package/dist/base-assets/connectors/webdav/driver.d.ts.map +0 -1
  469. package/dist/base-assets/connectors/webdav.js +0 -21
  470. package/dist/base-assets/connectors/xstate/adapter.d.ts.map +0 -1
  471. package/dist/base-assets/connectors/xstate-store/adapter.d.ts.map +0 -1
  472. package/dist/base-assets/connectors/xstate-store.js +0 -21
  473. package/dist/base-assets/connectors/xstate.js +0 -21
  474. package/dist/base-assets/index.d.ts.map +0 -1
  475. package/dist/base-assets/index.js.map +0 -1
  476. package/dist/chunk-2M3XTMOL.js +0 -23
  477. package/dist/chunk-2M3XTMOL.js.map +0 -1
  478. package/dist/chunk-2XY6732A.js.map +0 -1
  479. package/dist/chunk-3QTZWPGH.js.map +0 -1
  480. package/dist/chunk-4FADEVBN.js.map +0 -1
  481. package/dist/chunk-6VTG73UY.js.map +0 -1
  482. package/dist/chunk-B4ZXBH57.js.map +0 -1
  483. package/dist/chunk-BJWUSHC4.js.map +0 -1
  484. package/dist/chunk-D3VO6WNC.js.map +0 -1
  485. package/dist/chunk-DCAWIRD6.js.map +0 -1
  486. package/dist/chunk-DQWREFRQ.js.map +0 -1
  487. package/dist/chunk-FJFHJBGS.js.map +0 -1
  488. package/dist/chunk-FVTV7M76.js.map +0 -1
  489. package/dist/chunk-GCJXPUHG.js.map +0 -1
  490. package/dist/chunk-GZWJGNNN.js.map +0 -1
  491. package/dist/chunk-ICS76R4T.js.map +0 -1
  492. package/dist/chunk-JDX54X4Y.js.map +0 -1
  493. package/dist/chunk-KLNL7QHN.js.map +0 -1
  494. package/dist/chunk-KOVLSBXK.js.map +0 -1
  495. package/dist/chunk-KT3CK26V.js.map +0 -1
  496. package/dist/chunk-M5TE6YI5.js.map +0 -1
  497. package/dist/chunk-NELZIQ2E.js.map +0 -1
  498. package/dist/chunk-QAVZOJCV.js.map +0 -1
  499. package/dist/chunk-QXC62DOF.js.map +0 -1
  500. package/dist/chunk-UD4ZLXGS.js.map +0 -1
  501. package/dist/chunk-WIAHJOMG.js.map +0 -1
  502. package/dist/chunk-WSZAFRQL.js.map +0 -1
  503. package/dist/chunk-XMP6XTMF.js.map +0 -1
  504. package/dist/chunk-XVL22AWE.js.map +0 -1
  505. package/dist/ensure-sources-7MOOKY3K.js.map +0 -1
  506. package/dist/helpers-LTN3HMD3.js +0 -4
  507. package/dist/open-library-GW7DWWNZ.js +0 -21
  508. package/dist/paths-FKKGS6BA.js +0 -4
  509. package/dist/plugin-store-R32NH7JE.js.map +0 -1
  510. package/dist/setup-SRPBQOHY.js.map +0 -1
  511. package/dist/skills-CRL3VJNN.js +0 -7
  512. package/dist/store-client-INZD2RYD.js +0 -14
  513. /package/dist/{base-assets → factory-assets}/connectors/deploy.d.ts +0 -0
  514. /package/dist/{base-assets → factory-assets}/connectors/deploy.js.map +0 -0
  515. /package/dist/{base-assets → factory-assets}/connectors/devserver.d.ts +0 -0
  516. /package/dist/{base-assets → factory-assets}/connectors/devserver.js.map +0 -0
  517. /package/dist/{base-assets → factory-assets}/connectors/flow/adapter.js.map +0 -0
  518. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/engine.d.ts +0 -0
  519. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/flow-manifest.d.ts +0 -0
  520. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/index.d.ts +0 -0
  521. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/loader.d.ts +0 -0
  522. /package/dist/{base-assets → factory-assets}/connectors/flow/engine/types.d.ts +0 -0
  523. /package/dist/{base-assets → factory-assets}/connectors/flow/engine.d.ts +0 -0
  524. /package/dist/{base-assets → factory-assets}/connectors/flow/engine.js.map +0 -0
  525. /package/dist/{base-assets → factory-assets}/connectors/flow/index.d.ts +0 -0
  526. /package/dist/{base-assets → factory-assets}/connectors/flow/prompt-fragments.js.map +0 -0
  527. /package/dist/{base-assets → factory-assets}/connectors/flow/run-flow.js.map +0 -0
  528. /package/dist/{base-assets → factory-assets}/connectors/flow/stimulus-driver.js.map +0 -0
  529. /package/dist/{base-assets → factory-assets}/connectors/flow.d.ts +0 -0
  530. /package/dist/{base-assets → factory-assets}/connectors/flow.js.map +0 -0
  531. /package/dist/{base-assets → factory-assets}/connectors/git.d.ts +0 -0
  532. /package/dist/{base-assets → factory-assets}/connectors/git.js.map +0 -0
  533. /package/dist/{base-assets → factory-assets}/connectors/gmail.d.ts +0 -0
  534. /package/dist/{base-assets → factory-assets}/connectors/gmail.js.map +0 -0
  535. /package/dist/{base-assets → factory-assets}/connectors/googledrive.d.ts +0 -0
  536. /package/dist/{base-assets → factory-assets}/connectors/googledrive.js.map +0 -0
  537. /package/dist/{base-assets → factory-assets}/connectors/local.d.ts +0 -0
  538. /package/dist/{base-assets → factory-assets}/connectors/local.js.map +0 -0
  539. /package/dist/{base-assets → factory-assets}/connectors/mattermost.d.ts +0 -0
  540. /package/dist/{base-assets → factory-assets}/connectors/mattermost.js.map +0 -0
  541. /package/dist/{base-assets → factory-assets}/connectors/memory.d.ts +0 -0
  542. /package/dist/{base-assets → factory-assets}/connectors/memory.js.map +0 -0
  543. /package/dist/{base-assets → factory-assets}/connectors/minio.d.ts +0 -0
  544. /package/dist/{base-assets → factory-assets}/connectors/minio.js.map +0 -0
  545. /package/dist/{base-assets → factory-assets}/connectors/postgres.d.ts +0 -0
  546. /package/dist/{base-assets → factory-assets}/connectors/postgres.js.map +0 -0
  547. /package/dist/{base-assets → factory-assets}/connectors/s3.d.ts +0 -0
  548. /package/dist/{base-assets → factory-assets}/connectors/s3.js.map +0 -0
  549. /package/dist/{base-assets → factory-assets}/connectors/sharepoint.d.ts +0 -0
  550. /package/dist/{base-assets → factory-assets}/connectors/sharepoint.js.map +0 -0
  551. /package/dist/{base-assets → factory-assets}/connectors/sqlite.d.ts +0 -0
  552. /package/dist/{base-assets → factory-assets}/connectors/sqlite.js.map +0 -0
  553. /package/dist/{base-assets → factory-assets}/connectors/static-server.d.ts +0 -0
  554. /package/dist/{base-assets → factory-assets}/connectors/static-server.js.map +0 -0
  555. /package/dist/{base-assets → factory-assets}/connectors/tunnel.d.ts +0 -0
  556. /package/dist/{base-assets → factory-assets}/connectors/tunnel.js.map +0 -0
  557. /package/dist/{base-assets → factory-assets}/connectors/webdav.d.ts +0 -0
  558. /package/dist/{base-assets → factory-assets}/connectors/webdav.js.map +0 -0
  559. /package/dist/{base-assets → factory-assets}/connectors/xstate-store.d.ts +0 -0
  560. /package/dist/{base-assets → factory-assets}/connectors/xstate-store.js.map +0 -0
  561. /package/dist/{base-assets → factory-assets}/connectors/xstate.d.ts +0 -0
  562. /package/dist/{base-assets → factory-assets}/connectors/xstate.js.map +0 -0
@@ -1,12 +1,11 @@
1
- import { discoverAssetsInTree, loadSourceConfig } from './chunk-KT3CK26V.js';
2
- import { parseAssetRef } from './chunk-WIAHJOMG.js';
3
- import { PresetManifestSchema } from './chunk-NELZIQ2E.js';
1
+ import { readManifestSourceConfig, discoverAssetsInTree } from './chunk-JIQLLZ65.js';
2
+ import { installFromManifest } from './chunk-Z3XXKR5E.js';
3
+ import { parseAssetRef } from './chunk-IEJ5IOC3.js';
4
+ import { PresetManifestSchema } from './chunk-QDJKE557.js';
4
5
  import { __export } from './chunk-NSBPE2FW.js';
5
6
  import * as crypto from 'crypto';
6
- import { createHash } from 'crypto';
7
- import * as fs12 from 'fs';
7
+ import * as fs11 from 'fs';
8
8
  import * as path4 from 'path';
9
- import { resolve, join, sep, dirname, isAbsolute } from 'path';
10
9
  import { eq, like, and } from 'drizzle-orm';
11
10
  import * as z2 from 'zod';
12
11
  import * as os from 'os';
@@ -15,7 +14,6 @@ import { createClient } from '@libsql/client';
15
14
  import { drizzle } from 'drizzle-orm/libsql';
16
15
  import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';
17
16
  import { spawnSync } from 'child_process';
18
- import { rm, mkdir, writeFile } from 'fs/promises';
19
17
 
20
18
  // library/src/library.ts
21
19
  var KNOWN_ASSET_KINDS = [
@@ -139,9 +137,9 @@ function projectConfigPath(projectDir) {
139
137
  return path4.join(projectDir, ".skaile", CONFIG_FILENAME);
140
138
  }
141
139
  function loadConfigFile(filePath) {
142
- if (!fs12.existsSync(filePath)) return null;
140
+ if (!fs11.existsSync(filePath)) return null;
143
141
  try {
144
- const content = fs12.readFileSync(filePath, "utf-8");
142
+ const content = fs11.readFileSync(filePath, "utf-8");
145
143
  const raw = parse(content);
146
144
  if (!raw || typeof raw !== "object") return null;
147
145
  return SkaileConfigSchema.partial().parse(raw);
@@ -190,10 +188,10 @@ function resolveConfig(opts) {
190
188
  }
191
189
  function saveConfig(filePath, config) {
192
190
  const dir = path4.dirname(filePath);
193
- if (!fs12.existsSync(dir)) {
194
- fs12.mkdirSync(dir, { recursive: true });
191
+ if (!fs11.existsSync(dir)) {
192
+ fs11.mkdirSync(dir, { recursive: true });
195
193
  }
196
- fs12.writeFileSync(filePath, stringify(config, { indent: 2 }), "utf-8");
194
+ fs11.writeFileSync(filePath, stringify(config, { indent: 2 }), "utf-8");
197
195
  }
198
196
 
199
197
  // library/src/local/schema.ts
@@ -276,9 +274,9 @@ function resolveSidecarPaths(slug) {
276
274
  return {
277
275
  rootDir,
278
276
  sidecarDir,
279
- manifestFile: path4.join(sidecarDir, ".skaile-source.yaml"),
277
+ manifestFile: path4.join(sidecarDir, "skaile.manifest.yaml"),
280
278
  readmeFile: path4.join(sidecarDir, "README.md"),
281
- lockFile: path4.join(sidecarDir, ".skaile-source.lock.json")
279
+ lockFile: path4.join(sidecarDir, "skaile.manifest.lock.json")
282
280
  };
283
281
  }
284
282
  function deriveSlug(sourceConfig, sourcePath, existingSlugs) {
@@ -294,9 +292,9 @@ function deriveSlug(sourceConfig, sourcePath, existingSlugs) {
294
292
  }
295
293
  function listSidecarSlugsOnDisk() {
296
294
  const root = getSidecarRoot();
297
- if (!fs12.existsSync(root)) return [];
295
+ if (!fs11.existsSync(root)) return [];
298
296
  const out = [];
299
- for (const entry of fs12.readdirSync(root, { withFileTypes: true })) {
297
+ for (const entry of fs11.readdirSync(root, { withFileTypes: true })) {
300
298
  if (!entry.isDirectory()) continue;
301
299
  if (entry.name.startsWith(".")) continue;
302
300
  out.push(entry.name);
@@ -321,25 +319,28 @@ function migratedMarkerPath() {
321
319
  function migrateSidecarsToStoreIfNeeded() {
322
320
  const storeRoot = getStoreRoot();
323
321
  const marker = migratedMarkerPath();
324
- if (fs12.existsSync(marker)) return { migrated: 0, storeRoot };
322
+ if (fs11.existsSync(marker)) return { migrated: 0, storeRoot };
325
323
  const sidecarRoot = getSidecarRoot();
326
324
  const manifestsDir = getStoreManifestsDir();
327
325
  const candidates = [];
328
- if (fs12.existsSync(sidecarRoot)) {
329
- for (const entry of fs12.readdirSync(sidecarRoot, { withFileTypes: true })) {
326
+ if (fs11.existsSync(sidecarRoot)) {
327
+ for (const entry of fs11.readdirSync(sidecarRoot, { withFileTypes: true })) {
330
328
  if (!entry.isDirectory()) continue;
331
329
  if (entry.name.startsWith(".")) continue;
332
- const src = path4.join(sidecarRoot, entry.name, ".skaile-source.yaml");
333
- if (fs12.existsSync(src)) candidates.push({ src, slug: entry.name });
330
+ const sidecarDir = path4.join(sidecarRoot, entry.name);
331
+ const current = path4.join(sidecarDir, "skaile.manifest.yaml");
332
+ const legacy = path4.join(sidecarDir, ".skaile-source.yaml");
333
+ const src = fs11.existsSync(current) ? current : fs11.existsSync(legacy) ? legacy : void 0;
334
+ if (src) candidates.push({ src, slug: entry.name });
334
335
  }
335
336
  }
336
- fs12.mkdirSync(manifestsDir, { recursive: true });
337
+ fs11.mkdirSync(manifestsDir, { recursive: true });
337
338
  let migrated = 0;
338
339
  for (const { src, slug } of candidates) {
339
340
  const dest = path4.join(manifestsDir, `${slug}.yaml`);
340
- if (fs12.existsSync(dest)) continue;
341
+ if (fs11.existsSync(dest)) continue;
341
342
  try {
342
- fs12.renameSync(src, dest);
343
+ fs11.renameSync(src, dest);
343
344
  migrated++;
344
345
  } catch (err) {
345
346
  process.stderr.write(
@@ -348,10 +349,10 @@ function migrateSidecarsToStoreIfNeeded() {
348
349
  );
349
350
  }
350
351
  }
351
- if (!fs12.existsSync(path4.join(storeRoot, ".git"))) {
352
+ if (!fs11.existsSync(path4.join(storeRoot, ".git"))) {
352
353
  try {
353
354
  spawnSync("git", ["init", "--quiet"], { cwd: storeRoot, stdio: "ignore" });
354
- fs12.writeFileSync(
355
+ fs11.writeFileSync(
355
356
  path4.join(storeRoot, ".gitignore"),
356
357
  "# Remote-store cache \u2014 local to this machine.\nremote-cache/\n",
357
358
  "utf8"
@@ -359,7 +360,7 @@ function migrateSidecarsToStoreIfNeeded() {
359
360
  } catch {
360
361
  }
361
362
  }
362
- fs12.writeFileSync(marker, (/* @__PURE__ */ new Date()).toISOString(), "utf8");
363
+ fs11.writeFileSync(marker, (/* @__PURE__ */ new Date()).toISOString(), "utf8");
363
364
  return { migrated, storeRoot };
364
365
  }
365
366
 
@@ -506,7 +507,7 @@ async function runLibrariesMigration(client) {
506
507
  await client.batch(stmts);
507
508
  }
508
509
  function assertNoLegacyLibDb(newDbPath) {
509
- if (fs12.existsSync(newDbPath)) return;
510
+ if (fs11.existsSync(newDbPath)) return;
510
511
  const parent = path4.dirname(newDbPath);
511
512
  const skaileHome = path4.join(os.homedir(), ".skaile");
512
513
  const defaultIndexPath2 = path4.join(skaileHome, "index.db");
@@ -522,7 +523,7 @@ function assertNoLegacyLibDb(newDbPath) {
522
523
  candidates.push(path4.join(path4.dirname(parent), "library", "lib.db"));
523
524
  }
524
525
  for (const legacy of candidates) {
525
- if (!fs12.existsSync(legacy)) continue;
526
+ if (!fs11.existsSync(legacy)) continue;
526
527
  throw new Error(
527
528
  `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.`
528
529
  );
@@ -568,90 +569,15 @@ async function createLibraryDb(dbPath) {
568
569
  const db = drizzle(client, { schema: schema_exports });
569
570
  return { db, close: () => client.close() };
570
571
  }
571
- function assertSafeManifestPath(installPath, p) {
572
- const bad = () => {
573
- throw new Error(`unsafe path in manifest: ${p}`);
574
- };
575
- if (!p || p.length === 0) bad();
576
- if (isAbsolute(p) || p.startsWith("/") || p.startsWith("\\")) bad();
577
- const segments = p.split(/[/\\]/);
578
- if (segments.some((s) => s === "..")) bad();
579
- const resolved = resolve(installPath, p);
580
- if (resolved !== installPath && !resolved.startsWith(installPath + sep)) bad();
581
- }
582
- function assertSafeRefComponent(kind, value) {
583
- const hasControlChar = [...value].some((c) => c.charCodeAt(0) < 32);
584
- if (!value || value.startsWith(".") || /[/\\]/.test(value) || hasControlChar) {
585
- throw new Error(`unsafe ref ${kind} component in manifest: '${value}'`);
586
- }
587
- }
588
- async function installFromManifest(opts) {
589
- const { manifest, libraryRoot } = opts;
590
- const fetcher = opts.fetcher ?? (await import('./source-fetch-github-QN4LLTL5.js')).fetchAssetFilesFromGitHub;
591
- let parsed;
592
- try {
593
- parsed = parseAssetRef(manifest.ref);
594
- } catch (e) {
595
- throw new Error(`invalid ref: ${manifest.ref}: ${e instanceof Error ? e.message : String(e)}`);
596
- }
597
- const publisher = parsed.publisher;
598
- const name = parsed.name;
599
- const version = parsed.pin;
600
- if (!publisher) throw new Error(`invalid ref: ${manifest.ref} (missing publisher)`);
601
- if (!version) throw new Error(`invalid ref: ${manifest.ref} (missing version pin)`);
602
- assertSafeRefComponent("publisher", publisher);
603
- assertSafeRefComponent("name", name);
604
- assertSafeRefComponent("version", version);
605
- const root = resolve(libraryRoot);
606
- const installPath = resolve(join(root, `@${publisher}`, name, version));
607
- if (installPath !== root && !installPath.startsWith(root + sep)) {
608
- throw new Error(
609
- `unsafe install path: ref '${manifest.ref}' resolves outside the library root`
610
- );
611
- }
612
- for (const f of manifest.files) {
613
- assertSafeManifestPath(installPath, f.path);
614
- }
615
- const paths = manifest.files.map((f) => f.path);
616
- const bytes = await fetcher({
617
- url: manifest.source.url,
618
- commitSha: manifest.source.commitSha,
619
- paths
620
- });
621
- for (const f of manifest.files) {
622
- assertSafeManifestPath(installPath, f.path);
623
- const buf = bytes[f.path];
624
- if (!buf) throw new Error(`fetcher returned no bytes for ${f.path}`);
625
- const actual = createHash("sha256").update(buf).digest("hex");
626
- if (actual !== f.sha256) {
627
- throw new Error(`hash mismatch for ${f.path}: expected ${f.sha256}, got ${actual}`);
628
- }
629
- }
630
- const sortedLines = manifest.files.slice().sort((a, b) => a.path.localeCompare(b.path)).map((e) => `${e.path}:${e.sha256}
631
- `).join("");
632
- const actualComposite = createHash("sha256").update(sortedLines, "utf-8").digest("hex");
633
- if (actualComposite !== manifest.sha256) {
634
- throw new Error(`composite hash mismatch: expected ${manifest.sha256}, got ${actualComposite}`);
635
- }
636
- await rm(installPath, { recursive: true, force: true });
637
- try {
638
- for (const f of manifest.files) {
639
- const target = join(installPath, f.path);
640
- await mkdir(dirname(target), { recursive: true });
641
- await writeFile(target, bytes[f.path]);
642
- }
643
- } catch (e) {
644
- await rm(installPath, { recursive: true, force: true }).catch(() => {
645
- });
646
- throw e;
647
- }
648
- return { installPath };
649
- }
650
572
 
651
573
  // library/src/local/library.ts
652
574
  function escapeLikePrefix(prefix) {
653
575
  return prefix.replace(/[%_]/g, "\\$&");
654
576
  }
577
+ function stripRefVersion(ref) {
578
+ const at = ref.lastIndexOf("@");
579
+ return at > 0 ? ref.slice(0, at) : ref;
580
+ }
655
581
  function rowToLibrary(row) {
656
582
  const cfg = (() => {
657
583
  try {
@@ -748,12 +674,12 @@ var LocalIndex = class {
748
674
  dbPath = resolveIndexPath();
749
675
  this._kindRegistry = optionsOrDir?.kindRegistry;
750
676
  }
751
- if (!fs12.existsSync(dir)) {
752
- fs12.mkdirSync(dir, { recursive: true });
677
+ if (!fs11.existsSync(dir)) {
678
+ fs11.mkdirSync(dir, { recursive: true });
753
679
  }
754
680
  const dbParent = path4.dirname(dbPath);
755
- if (!fs12.existsSync(dbParent)) {
756
- fs12.mkdirSync(dbParent, { recursive: true });
681
+ if (!fs11.existsSync(dbParent)) {
682
+ fs11.mkdirSync(dbParent, { recursive: true });
757
683
  }
758
684
  this.libraryDir = dir;
759
685
  this.dbPath = dbPath;
@@ -1002,10 +928,21 @@ var LocalIndex = class {
1002
928
  if (filter.defPin) conditions.push(eq(instances.defPin, filter.defPin));
1003
929
  const where = conditions.length > 0 ? and(...conditions) : void 0;
1004
930
  let rows = where ? await db.select().from(instances).where(where).all() : await db.select().from(instances).all();
931
+ if (filter.kind) {
932
+ const kindByBase = await this.buildInstanceKindMap(db);
933
+ rows = rows.filter((r) => kindByBase.get(stripRefVersion(r.defRef)) === filter.kind);
934
+ }
1005
935
  if (filter.offset) rows = rows.slice(filter.offset);
1006
936
  if (filter.limit) rows = rows.slice(0, filter.limit);
1007
937
  return rows.map(rowToInstance);
1008
938
  }
939
+ /** Map every cached asset def's version-stripped ref base to its kind. */
940
+ async buildInstanceKindMap(db) {
941
+ const defs = await db.select().from(assetDefinitions).all();
942
+ const map = /* @__PURE__ */ new Map();
943
+ for (const d of defs) map.set(stripRefVersion(d.id), d.kind);
944
+ return map;
945
+ }
1009
946
  async updateInstance(id, patch) {
1010
947
  const db = await this.ensureDb();
1011
948
  const existing = await db.select().from(instances).where(eq(instances.id, id)).get();
@@ -1369,8 +1306,8 @@ var LibraryManager = class {
1369
1306
  const lib = await this.requireLibrary(nameOrId);
1370
1307
  const db = await this.lib.dbHandle();
1371
1308
  await db.delete(libraries).where(eq(libraries.id, lib.id)).run();
1372
- if (opts.purge && fs12.existsSync(lib.path)) {
1373
- fs12.rmSync(lib.path, { recursive: true, force: true });
1309
+ if (opts.purge && fs11.existsSync(lib.path)) {
1310
+ fs11.rmSync(lib.path, { recursive: true, force: true });
1374
1311
  }
1375
1312
  }
1376
1313
  /**
@@ -1387,7 +1324,7 @@ var LibraryManager = class {
1387
1324
  );
1388
1325
  if (writableDefault) return { library: writableDefault, created: false };
1389
1326
  const personalPath = path4.join(librariesDir, "personal");
1390
- fs12.mkdirSync(personalPath, { recursive: true });
1327
+ fs11.mkdirSync(personalPath, { recursive: true });
1391
1328
  const lib = await this.addLibrary({
1392
1329
  name: "personal",
1393
1330
  path: personalPath,
@@ -1449,11 +1386,11 @@ var SidecarGit = class {
1449
1386
  * @docLink packages/library/concepts#sidecar-git
1450
1387
  */
1451
1388
  async ensureInitialized() {
1452
- if (!fs12.existsSync(this.rootDir)) {
1453
- fs12.mkdirSync(this.rootDir, { recursive: true });
1389
+ if (!fs11.existsSync(this.rootDir)) {
1390
+ fs11.mkdirSync(this.rootDir, { recursive: true });
1454
1391
  }
1455
1392
  const gitDir = path4.join(this.rootDir, ".git");
1456
- const freshRepo = !fs12.existsSync(gitDir);
1393
+ const freshRepo = !fs11.existsSync(gitDir);
1457
1394
  if (freshRepo) {
1458
1395
  const init = this.spawn(["init", "-b", "main"]);
1459
1396
  if (init.exitCode !== 0) {
@@ -1461,9 +1398,9 @@ var SidecarGit = class {
1461
1398
  }
1462
1399
  }
1463
1400
  const attrsPath = path4.join(this.rootDir, ".gitattributes");
1464
- if (!fs12.existsSync(attrsPath)) fs12.writeFileSync(attrsPath, GITATTRIBUTES, "utf-8");
1401
+ if (!fs11.existsSync(attrsPath)) fs11.writeFileSync(attrsPath, GITATTRIBUTES, "utf-8");
1465
1402
  const readmePath = path4.join(this.rootDir, "README.md");
1466
- if (!fs12.existsSync(readmePath)) fs12.writeFileSync(readmePath, ROOT_README, "utf-8");
1403
+ if (!fs11.existsSync(readmePath)) fs11.writeFileSync(readmePath, ROOT_README, "utf-8");
1467
1404
  if (!this.hasGlobalGitConfig("user.name")) {
1468
1405
  this.spawn(["config", "user.name", FALLBACK_USER_NAME]);
1469
1406
  }
@@ -1489,7 +1426,7 @@ var SidecarGit = class {
1489
1426
  async commit(slug, message, opts) {
1490
1427
  if (opts?.skip) return;
1491
1428
  const slugDir = path4.join(this.rootDir, slug);
1492
- if (fs12.existsSync(slugDir)) {
1429
+ if (fs11.existsSync(slugDir)) {
1493
1430
  this.spawn(["add", "--", slug]);
1494
1431
  } else {
1495
1432
  this.spawn(["add", "-A"]);
@@ -1600,8 +1537,8 @@ function parseWorkspaceV2(raw) {
1600
1537
  }
1601
1538
  function loadWorkspaceV2(dir, filename = "skaile.yaml") {
1602
1539
  const filePath = path4.join(dir, filename);
1603
- if (!fs12.existsSync(filePath)) return null;
1604
- const content = fs12.readFileSync(filePath, "utf-8");
1540
+ if (!fs11.existsSync(filePath)) return null;
1541
+ const content = fs11.readFileSync(filePath, "utf-8");
1605
1542
  const raw = parse(content);
1606
1543
  if (!raw || typeof raw !== "object") return null;
1607
1544
  return parseWorkspaceV2(raw);
@@ -1609,32 +1546,32 @@ function loadWorkspaceV2(dir, filename = "skaile.yaml") {
1609
1546
  function saveWorkspaceV2(dir, v2, filename = "skaile.yaml") {
1610
1547
  const filePath = path4.join(dir, filename);
1611
1548
  let existing = {};
1612
- if (fs12.existsSync(filePath)) {
1613
- const content = fs12.readFileSync(filePath, "utf-8");
1549
+ if (fs11.existsSync(filePath)) {
1550
+ const content = fs11.readFileSync(filePath, "utf-8");
1614
1551
  existing = parse(content) ?? {};
1615
1552
  }
1616
1553
  existing.version = 2;
1617
1554
  if (v2.library !== void 0) existing.library = v2.library;
1618
1555
  if (v2.presets_applied !== void 0) existing.presets_applied = v2.presets_applied;
1619
- if (!fs12.existsSync(dir)) {
1620
- fs12.mkdirSync(dir, { recursive: true });
1556
+ if (!fs11.existsSync(dir)) {
1557
+ fs11.mkdirSync(dir, { recursive: true });
1621
1558
  }
1622
- fs12.writeFileSync(filePath, stringify(existing, { indent: 2 }), "utf-8");
1559
+ fs11.writeFileSync(filePath, stringify(existing, { indent: 2 }), "utf-8");
1623
1560
  }
1624
1561
  var LOCK_FILENAME = "skaile.lock.yaml";
1625
1562
  function loadLockFile(dir) {
1626
1563
  const filePath = path4.join(dir, LOCK_FILENAME);
1627
- if (!fs12.existsSync(filePath)) return null;
1628
- const content = fs12.readFileSync(filePath, "utf-8");
1564
+ if (!fs11.existsSync(filePath)) return null;
1565
+ const content = fs11.readFileSync(filePath, "utf-8");
1629
1566
  const raw = parse(content);
1630
1567
  return LockFileSchema.parse(raw);
1631
1568
  }
1632
1569
  function saveLockFile(dir, lock) {
1633
1570
  const filePath = path4.join(dir, LOCK_FILENAME);
1634
- if (!fs12.existsSync(dir)) {
1635
- fs12.mkdirSync(dir, { recursive: true });
1571
+ if (!fs11.existsSync(dir)) {
1572
+ fs11.mkdirSync(dir, { recursive: true });
1636
1573
  }
1637
- fs12.writeFileSync(
1574
+ fs11.writeFileSync(
1638
1575
  filePath,
1639
1576
  `# Auto-generated by skaile. Do not edit manually.
1640
1577
  ${stringify(lock, { indent: 2 })}`,
@@ -1652,31 +1589,29 @@ function createEmptyLockFile() {
1652
1589
  }
1653
1590
  function detectWorkspaceVersion(dir, filename = "skaile.yaml") {
1654
1591
  const filePath = path4.join(dir, filename);
1655
- if (!fs12.existsSync(filePath)) return null;
1656
- const content = fs12.readFileSync(filePath, "utf-8");
1592
+ if (!fs11.existsSync(filePath)) return null;
1593
+ const content = fs11.readFileSync(filePath, "utf-8");
1657
1594
  const raw = parse(content);
1658
1595
  if (!raw || typeof raw !== "object") return null;
1659
1596
  return raw.version === 2 ? 2 : 1;
1660
1597
  }
1661
- var MANIFEST_FILENAME = ".skaile-source.yaml";
1598
+ var MANIFEST_FILENAME = "skaile.manifest.yaml";
1662
1599
  async function writeManifestIfMissing(input) {
1663
1600
  const manifestPath = path4.join(input.libraryPath, MANIFEST_FILENAME);
1664
- if (fs12.existsSync(manifestPath)) return { wrote: false, manifestPath };
1601
+ if (fs11.existsSync(manifestPath)) return { wrote: false, manifestPath };
1665
1602
  const now = (/* @__PURE__ */ new Date()).toISOString();
1666
- const yaml = `# Generated by skaile library add on ${now}
1603
+ const yaml = `# Generated by skaile library add on ${now} (structure: ${input.structure})
1667
1604
  # Edit by hand to inline discovered assets; or run \`skaile library refresh-manifest\`.
1668
- version: 2
1669
- structure: ${input.structure}
1670
1605
  publisher: ""
1671
1606
  assets: []
1672
1607
  `;
1673
- fs12.writeFileSync(manifestPath, yaml, "utf-8");
1608
+ fs11.writeFileSync(manifestPath, yaml, "utf-8");
1674
1609
  if (input.ownership !== "owner") {
1675
1610
  const excludePath = path4.join(input.libraryPath, ".git", "info", "exclude");
1676
- if (fs12.existsSync(path4.dirname(excludePath))) {
1677
- const current = fs12.existsSync(excludePath) ? fs12.readFileSync(excludePath, "utf-8") : "";
1611
+ if (fs11.existsSync(path4.dirname(excludePath))) {
1612
+ const current = fs11.existsSync(excludePath) ? fs11.readFileSync(excludePath, "utf-8") : "";
1678
1613
  if (!current.includes(MANIFEST_FILENAME)) {
1679
- fs12.writeFileSync(
1614
+ fs11.writeFileSync(
1680
1615
  excludePath,
1681
1616
  (current.endsWith("\n") || current === "" ? current : `${current}
1682
1617
  `) + `# skaile-managed local-overlay manifest
@@ -1692,10 +1627,10 @@ ${MANIFEST_FILENAME}
1692
1627
  function migrateWorkspaceConfig(dir, opts) {
1693
1628
  const filename = opts?.filename ?? "skaile.yaml";
1694
1629
  const filePath = path4.join(dir, filename);
1695
- if (!fs12.existsSync(filePath)) {
1630
+ if (!fs11.existsSync(filePath)) {
1696
1631
  return { migrated: false, version: 1, warnings: ["No skaile.yaml found"] };
1697
1632
  }
1698
- const content = fs12.readFileSync(filePath, "utf-8");
1633
+ const content = fs11.readFileSync(filePath, "utf-8");
1699
1634
  const raw = parse(content);
1700
1635
  if (!raw || typeof raw !== "object") {
1701
1636
  return { migrated: false, version: 1, warnings: ["Invalid YAML content"] };
@@ -1727,7 +1662,7 @@ function migrateWorkspaceConfig(dir, opts) {
1727
1662
  } else {
1728
1663
  doc.set("version", 2);
1729
1664
  }
1730
- fs12.writeFileSync(filePath, doc.toString(), "utf-8");
1665
+ fs11.writeFileSync(filePath, doc.toString(), "utf-8");
1731
1666
  }
1732
1667
  return {
1733
1668
  migrated: !opts?.dryRun,
@@ -1769,10 +1704,10 @@ function resolvePin(pin, availableVersions) {
1769
1704
  const base = pin.slice(0, -2);
1770
1705
  const parts = base.split(".");
1771
1706
  const major = Number.parseInt(parts[0], 10);
1772
- const minor = parts.length > 1 ? Number.parseInt(parts[1], 10) : 0;
1707
+ const minor = parts.length > 1 ? Number.parseInt(parts[1], 10) : void 0;
1773
1708
  if (Number.isNaN(major)) return null;
1774
1709
  const match = parsed.find(
1775
- (v) => v.major === major && (Number.isNaN(minor) || v.minor === minor)
1710
+ (v) => v.major === major && (minor === void 0 || v.minor === minor)
1776
1711
  );
1777
1712
  return match ? { version: match.raw, match: "range" } : null;
1778
1713
  }
@@ -1810,6 +1745,8 @@ function parseRangeTarget(range) {
1810
1745
  patch: Number.isNaN(patch) ? 0 : patch
1811
1746
  };
1812
1747
  }
1748
+
1749
+ // library/src/local/local-catalog-source.ts
1813
1750
  var LocalCatalogSource = class {
1814
1751
  constructor(library, sourceId, rootPath, registry, options) {
1815
1752
  this.library = library;
@@ -1838,6 +1775,17 @@ var LocalCatalogSource = class {
1838
1775
  const defs = await this.library.listAssetDefs(libraryFilter);
1839
1776
  return defs.map(defToCatalogAsset);
1840
1777
  }
1778
+ async listVersions(ref) {
1779
+ const parsed = parseAssetRef(ref);
1780
+ const defs = await this.library.listAssetDefs({
1781
+ libraryId: this.sourceId,
1782
+ kind: parsed.kind
1783
+ });
1784
+ const wantPublisher = parsed.publisher?.replace(/^@/, "");
1785
+ return defs.filter(
1786
+ (d) => d.name === parsed.name && (wantPublisher === void 0 || d.publisher.replace(/^@/, "") === wantPublisher)
1787
+ ).map((d) => d.version);
1788
+ }
1841
1789
  async fetchTarball(_ref, _sha256) {
1842
1790
  throw new Error(
1843
1791
  "LocalCatalogSource does not support tarball delivery. Assets are available on disk."
@@ -1864,7 +1812,7 @@ var LocalCatalogSource = class {
1864
1812
  includeDev: syncOpts?.includeDev ?? false
1865
1813
  };
1866
1814
  if (!this.sidecarPath) {
1867
- opts.sourceConfig = loadSourceConfigIfPresent(this.rootPath);
1815
+ opts.sourceConfig = readManifestSourceConfig(this.rootPath);
1868
1816
  }
1869
1817
  const result = discoverAssetsInTree(this.rootPath, opts);
1870
1818
  let assetsUpdated = 0;
@@ -1912,18 +1860,6 @@ function defToCatalogAsset(def) {
1912
1860
  manifest: def.manifest
1913
1861
  };
1914
1862
  }
1915
- function loadSourceConfigIfPresent(rootPath) {
1916
- const configPath = path4.join(rootPath, ".skaile-source.yaml");
1917
- if (!fs12.existsSync(configPath)) return void 0;
1918
- try {
1919
- const content = fs12.readFileSync(configPath, "utf-8");
1920
- const result = loadSourceConfig(content);
1921
- if (!result.ok) return void 0;
1922
- return result.config;
1923
- } catch {
1924
- return void 0;
1925
- }
1926
- }
1927
1863
  function defaultCacheDir() {
1928
1864
  return path4.join(os.homedir(), ".skaile", "catalog-cache");
1929
1865
  }
@@ -2002,17 +1938,17 @@ var CatalogCache = class {
2002
1938
  /** Read a cached tarball from disk if present, otherwise `null`. */
2003
1939
  readTarball(sha256) {
2004
1940
  const p = this.tarballPath(sha256);
2005
- if (!fs12.existsSync(p)) return null;
2006
- return fs12.readFileSync(p);
1941
+ if (!fs11.existsSync(p)) return null;
1942
+ return fs11.readFileSync(p);
2007
1943
  }
2008
1944
  /** Persist a tarball blob to disk (atomic write). */
2009
1945
  writeTarball(sha256, bytes) {
2010
1946
  const dir = path4.join(this.dir, TARBALL_DIR);
2011
- if (!fs12.existsSync(dir)) fs12.mkdirSync(dir, { recursive: true });
1947
+ if (!fs11.existsSync(dir)) fs11.mkdirSync(dir, { recursive: true });
2012
1948
  const finalPath = this.tarballPath(sha256);
2013
1949
  const tmpPath = `${finalPath}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
2014
- fs12.writeFileSync(tmpPath, bytes);
2015
- fs12.renameSync(tmpPath, finalPath);
1950
+ fs11.writeFileSync(tmpPath, bytes);
1951
+ fs11.renameSync(tmpPath, finalPath);
2016
1952
  }
2017
1953
  // ── public: invalidation ────────────────────────────────────────────────
2018
1954
  /**
@@ -2032,8 +1968,8 @@ var CatalogCache = class {
2032
1968
  invalidateEverything() {
2033
1969
  this.invalidateAll();
2034
1970
  const tarballDir = path4.join(this.dir, TARBALL_DIR);
2035
- if (fs12.existsSync(tarballDir)) {
2036
- fs12.rmSync(tarballDir, { recursive: true, force: true });
1971
+ if (fs11.existsSync(tarballDir)) {
1972
+ fs11.rmSync(tarballDir, { recursive: true, force: true });
2037
1973
  }
2038
1974
  }
2039
1975
  /** Return whether `ttlMs` is zero (air-gapped mode). */
@@ -2042,9 +1978,9 @@ var CatalogCache = class {
2042
1978
  }
2043
1979
  // ── private ─────────────────────────────────────────────────────────────
2044
1980
  ensureDir() {
2045
- if (!fs12.existsSync(this.dir)) fs12.mkdirSync(this.dir, { recursive: true });
1981
+ if (!fs11.existsSync(this.dir)) fs11.mkdirSync(this.dir, { recursive: true });
2046
1982
  const tarballDir = path4.join(this.dir, TARBALL_DIR);
2047
- if (!fs12.existsSync(tarballDir)) fs12.mkdirSync(tarballDir, { recursive: true });
1983
+ if (!fs11.existsSync(tarballDir)) fs11.mkdirSync(tarballDir, { recursive: true });
2048
1984
  }
2049
1985
  indexPath() {
2050
1986
  return path4.join(this.dir, INDEX_FILE);
@@ -2052,12 +1988,12 @@ var CatalogCache = class {
2052
1988
  loadIndex() {
2053
1989
  if (this.index) return this.index;
2054
1990
  const p = this.indexPath();
2055
- if (!fs12.existsSync(p)) {
1991
+ if (!fs11.existsSync(p)) {
2056
1992
  this.index = { version: 1, resolve: {}, list: {} };
2057
1993
  return this.index;
2058
1994
  }
2059
1995
  try {
2060
- const raw = JSON.parse(fs12.readFileSync(p, "utf-8"));
1996
+ const raw = JSON.parse(fs11.readFileSync(p, "utf-8"));
2061
1997
  if (raw && typeof raw === "object" && raw.version === 1) {
2062
1998
  this.index = {
2063
1999
  version: 1,
@@ -2075,8 +2011,8 @@ var CatalogCache = class {
2075
2011
  this.index = idx;
2076
2012
  const p = this.indexPath();
2077
2013
  const tmp = `${p}.${process.pid}.${Math.random().toString(36).slice(2)}.tmp`;
2078
- fs12.writeFileSync(tmp, JSON.stringify(idx, null, 2), "utf-8");
2079
- fs12.renameSync(tmp, p);
2014
+ fs11.writeFileSync(tmp, JSON.stringify(idx, null, 2), "utf-8");
2015
+ fs11.renameSync(tmp, p);
2080
2016
  }
2081
2017
  };
2082
2018
  function filterKey(filter) {
@@ -2232,6 +2168,20 @@ var RemoteCatalogSource = class {
2232
2168
  this.cache.writeTarball(sha256, buf);
2233
2169
  return buf;
2234
2170
  }
2171
+ /**
2172
+ * Enumerate available versions for a version-less ref. The Catalog has no
2173
+ * dedicated version-list route, so this derives versions from `listAssets`
2174
+ * (filtered to the publisher) and keeps only the matching kind+name. Reuses
2175
+ * the cached list path, so repeated calls are cheap.
2176
+ */
2177
+ async listVersions(ref) {
2178
+ const parsed = parseAssetRef(ref);
2179
+ const wantPublisher = parsed.publisher?.replace(/^@/, "");
2180
+ const assets = await this.listAssets(wantPublisher ? { publisher: wantPublisher } : void 0);
2181
+ return assets.filter(
2182
+ (a) => a.kind === parsed.kind && a.name === parsed.name && (wantPublisher === void 0 || a.publisher.replace(/^@/, "") === wantPublisher)
2183
+ ).map((a) => a.version);
2184
+ }
2235
2185
  /**
2236
2186
  * Single synthetic Source pointing at the configured Catalog URL. Phase 2
2237
2187
  * is single-Source per spec; multi-source federation is Phase 4.8.
@@ -2655,6 +2605,20 @@ var RestCatalogSource = class {
2655
2605
  this.cache.writeTarball(sha256, buf);
2656
2606
  return buf;
2657
2607
  }
2608
+ /**
2609
+ * Enumerate available versions for a version-less ref. The forge-store REST
2610
+ * API has no version-list route, so this derives versions from `listAssets`
2611
+ * (filtered to the publisher) and keeps only the matching kind+name. Reuses
2612
+ * the cached list path, so repeated calls are cheap.
2613
+ */
2614
+ async listVersions(ref) {
2615
+ const parsed = parseAssetRef(ref);
2616
+ const wantPublisher = parsed.publisher?.replace(/^@/, "");
2617
+ const assets = await this.listAssets(wantPublisher ? { publisher: wantPublisher } : void 0);
2618
+ return assets.filter(
2619
+ (a) => a.kind === parsed.kind && a.name === parsed.name && (wantPublisher === void 0 || a.publisher.replace(/^@/, "") === wantPublisher)
2620
+ ).map((a) => a.version);
2621
+ }
2658
2622
  /**
2659
2623
  * Single synthetic Source pointing at the configured forge-store URL.
2660
2624
  */
@@ -2857,9 +2821,9 @@ function validateKnowledge(data) {
2857
2821
  }
2858
2822
  function collectDirRecursive(baseDir, relativeDir) {
2859
2823
  const full = path4.join(baseDir, relativeDir);
2860
- if (!fs12.existsSync(full) || !fs12.statSync(full).isDirectory()) return [];
2824
+ if (!fs11.existsSync(full) || !fs11.statSync(full).isDirectory()) return [];
2861
2825
  const results = [];
2862
- for (const entry of fs12.readdirSync(full, { withFileTypes: true })) {
2826
+ for (const entry of fs11.readdirSync(full, { withFileTypes: true })) {
2863
2827
  const rel = path4.posix.join(relativeDir, entry.name);
2864
2828
  if (entry.isDirectory()) {
2865
2829
  results.push(...collectDirRecursive(baseDir, rel));
@@ -3067,6 +3031,9 @@ function validateAllPlaceholders(placeholders, inputs) {
3067
3031
  }
3068
3032
  async function queryInstancePickerChoices(library, options) {
3069
3033
  const filter = {};
3034
+ if (options?.kind) {
3035
+ filter.kind = options.kind;
3036
+ }
3070
3037
  if (options?.defRefPrefix) {
3071
3038
  filter.defRef = options.defRefPrefix;
3072
3039
  }
@@ -3266,8 +3233,8 @@ function resolveTemplate(template, context) {
3266
3233
  });
3267
3234
  return { value: result, hasSecret: false };
3268
3235
  }
3269
- function setNestedValue(obj, path14, value) {
3270
- const parts = path14.split(".");
3236
+ function setNestedValue(obj, path13, value) {
3237
+ const parts = path13.split(".");
3271
3238
  let current = obj;
3272
3239
  for (let i = 0; i < parts.length - 1; i++) {
3273
3240
  const key = parts[i];
@@ -3300,11 +3267,9 @@ async function applyPreset(presetRef, manifest, inputs, opts) {
3300
3267
  itemResults
3301
3268
  );
3302
3269
  result.errors.push(...itemResult.errors);
3303
- for (const inst of itemResult.instances) {
3304
- result.instances.push(inst);
3305
- if (item.id && itemResult.instances.length > 0) {
3306
- itemResults.set(item.id, itemResult.instances[0]);
3307
- }
3270
+ result.instances.push(...itemResult.instances);
3271
+ if (item.id && itemResult.instances.length > 0) {
3272
+ itemResults.set(item.id, itemResult.instances[0]);
3308
3273
  }
3309
3274
  result.subscriptions.push(...itemResult.subscriptions);
3310
3275
  }
@@ -3568,6 +3533,6 @@ function deepEqual(a, b) {
3568
3533
  return JSON.stringify(a) === JSON.stringify(b);
3569
3534
  }
3570
3535
 
3571
- 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 };
3572
- //# sourceMappingURL=chunk-DCAWIRD6.js.map
3573
- //# sourceMappingURL=chunk-DCAWIRD6.js.map
3536
+ 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, 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 };
3537
+ //# sourceMappingURL=chunk-WRRYESHC.js.map
3538
+ //# sourceMappingURL=chunk-WRRYESHC.js.map