@skaile/workspaces 5.11.0 → 5.13.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 (472) hide show
  1. package/CHANGELOG.md +193 -0
  2. package/README.md +4 -4
  3. package/dist/{asset-feeds-CXGQIDFR.js → asset-feeds-ALMTHLPV.js} +26 -23
  4. package/dist/asset-feeds-ALMTHLPV.js.map +1 -0
  5. package/dist/asset-manager/catalog-deployer.js +10 -10
  6. package/dist/asset-manager/fragments.js +1 -1
  7. package/dist/asset-manager/index.js +18 -18
  8. package/dist/asset-manager/installer.js +13 -13
  9. package/dist/asset-manager/renderers.js +11 -11
  10. package/dist/asset-manager/src/fragments.d.ts +5 -0
  11. package/dist/asset-manager/src/fragments.d.ts.map +1 -1
  12. package/dist/asset-manager/src/index.d.ts +140 -12
  13. package/dist/asset-manager/src/index.d.ts.map +1 -1
  14. package/dist/asset-manager/src/install-agent.d.ts +9 -1
  15. package/dist/asset-manager/src/install-agent.d.ts.map +1 -1
  16. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  17. package/dist/asset-manager/src/renderers.d.ts +5 -0
  18. package/dist/asset-manager/src/renderers.d.ts.map +1 -1
  19. package/dist/bridge/drivers/claude-sdk.js +21 -16
  20. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  21. package/dist/bridge/drivers/codex.js +101 -29
  22. package/dist/bridge/drivers/codex.js.map +1 -1
  23. package/dist/bridge/drivers/continue.js +12 -12
  24. package/dist/bridge/drivers/echo.js +2 -2
  25. package/dist/bridge/drivers/gemini.js +7 -7
  26. package/dist/bridge/drivers/goose.js +12 -12
  27. package/dist/bridge/drivers/omp.js +135 -33
  28. package/dist/bridge/drivers/omp.js.map +1 -1
  29. package/dist/bridge/drivers/opencode.js +12 -12
  30. package/dist/bridge/drivers/qwen.js +7 -7
  31. package/dist/bridge/index.js +14 -14
  32. package/dist/bridge/src/codex/config-toml.d.ts +16 -3
  33. package/dist/bridge/src/codex/config-toml.d.ts.map +1 -1
  34. package/dist/bridge/src/codex/managed-driver.d.ts.map +1 -1
  35. package/dist/bridge/src/drivers/claude-sdk.d.ts +1 -1
  36. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  37. package/dist/bridge/src/drivers/codex.d.ts +6 -0
  38. package/dist/bridge/src/drivers/codex.d.ts.map +1 -1
  39. package/dist/bridge/src/drivers/omp-models-yml.d.ts +32 -0
  40. package/dist/bridge/src/drivers/omp-models-yml.d.ts.map +1 -1
  41. package/dist/bridge/src/drivers/omp.d.ts +29 -6
  42. package/dist/bridge/src/drivers/omp.d.ts.map +1 -1
  43. package/dist/bridge/src/provider-materialize/credential-env.d.ts +15 -0
  44. package/dist/bridge/src/provider-materialize/credential-env.d.ts.map +1 -1
  45. package/dist/{chunk-T42WRQ4O.js → chunk-2BIESC6S.js} +3 -3
  46. package/dist/{chunk-T42WRQ4O.js.map → chunk-2BIESC6S.js.map} +1 -1
  47. package/dist/{chunk-CPWLNZGJ.js → chunk-4DLQESIY.js} +3 -3
  48. package/dist/{chunk-CPWLNZGJ.js.map → chunk-4DLQESIY.js.map} +1 -1
  49. package/dist/{chunk-HZXUXHIV.js → chunk-4L4R5LV3.js} +89 -12
  50. package/dist/chunk-4L4R5LV3.js.map +1 -0
  51. package/dist/{chunk-CAHB6MHA.js → chunk-4NJ3QQHZ.js} +5 -5
  52. package/dist/{chunk-CAHB6MHA.js.map → chunk-4NJ3QQHZ.js.map} +1 -1
  53. package/dist/{chunk-ZCAJZ4B2.js → chunk-57SF6W6E.js} +147 -4
  54. package/dist/chunk-57SF6W6E.js.map +1 -0
  55. package/dist/{chunk-FH7W6TJ4.js → chunk-5FYOM4RF.js} +106 -25
  56. package/dist/chunk-5FYOM4RF.js.map +1 -0
  57. package/dist/{chunk-R7NHYEJF.js → chunk-5SKVCMRC.js} +15 -7
  58. package/dist/chunk-5SKVCMRC.js.map +1 -0
  59. package/dist/{chunk-CJERAGFY.js → chunk-6GICC4RJ.js} +44 -13
  60. package/dist/chunk-6GICC4RJ.js.map +1 -0
  61. package/dist/{chunk-G4FFOV3N.js → chunk-6JKIOPT3.js} +4 -4
  62. package/dist/{chunk-G4FFOV3N.js.map → chunk-6JKIOPT3.js.map} +1 -1
  63. package/dist/{chunk-T7CTHHG7.js → chunk-6NQDDCIL.js} +3 -3
  64. package/dist/{chunk-T7CTHHG7.js.map → chunk-6NQDDCIL.js.map} +1 -1
  65. package/dist/{chunk-XUSALIEI.js → chunk-7SMP4GNW.js} +6 -6
  66. package/dist/{chunk-XUSALIEI.js.map → chunk-7SMP4GNW.js.map} +1 -1
  67. package/dist/{chunk-Y3HTGHJC.js → chunk-AHCI4V5L.js} +3 -3
  68. package/dist/{chunk-Y3HTGHJC.js.map → chunk-AHCI4V5L.js.map} +1 -1
  69. package/dist/{chunk-M3B6EIJD.js → chunk-B7CZYFB2.js} +4 -4
  70. package/dist/{chunk-M3B6EIJD.js.map → chunk-B7CZYFB2.js.map} +1 -1
  71. package/dist/{chunk-PBBPZYVG.js → chunk-BF422IDP.js} +112 -46
  72. package/dist/chunk-BF422IDP.js.map +1 -0
  73. package/dist/{chunk-47U4GZ4M.js → chunk-BVJU2GKE.js} +20 -3
  74. package/dist/chunk-BVJU2GKE.js.map +1 -0
  75. package/dist/{chunk-PMECEZK3.js → chunk-D54T2F54.js} +5 -4
  76. package/dist/chunk-D54T2F54.js.map +1 -0
  77. package/dist/{chunk-2F5AWQX5.js → chunk-DKGEV6SQ.js} +192 -42
  78. package/dist/chunk-DKGEV6SQ.js.map +1 -0
  79. package/dist/{chunk-DALV4HHP.js → chunk-DKXNKFKP.js} +3 -2
  80. package/dist/{chunk-DALV4HHP.js.map → chunk-DKXNKFKP.js.map} +1 -1
  81. package/dist/chunk-FB3NREF7.js +649 -0
  82. package/dist/chunk-FB3NREF7.js.map +1 -0
  83. package/dist/{chunk-QZNJOHN6.js → chunk-FHDK3BFD.js} +3 -3
  84. package/dist/{chunk-QZNJOHN6.js.map → chunk-FHDK3BFD.js.map} +1 -1
  85. package/dist/{chunk-3SM2DL2T.js → chunk-GMDSRSGI.js} +21 -11
  86. package/dist/chunk-GMDSRSGI.js.map +1 -0
  87. package/dist/chunk-H5U7LNTJ.js +122 -0
  88. package/dist/chunk-H5U7LNTJ.js.map +1 -0
  89. package/dist/{chunk-VLTQGE2E.js → chunk-HBZD3MIW.js} +269 -81
  90. package/dist/chunk-HBZD3MIW.js.map +1 -0
  91. package/dist/{chunk-S3O3GKB7.js → chunk-HWGYJMME.js} +4 -4
  92. package/dist/{chunk-S3O3GKB7.js.map → chunk-HWGYJMME.js.map} +1 -1
  93. package/dist/{chunk-CPSIPIX7.js → chunk-IG5LZ3WU.js} +8 -6
  94. package/dist/chunk-IG5LZ3WU.js.map +1 -0
  95. package/dist/{chunk-ZPWTOUTK.js → chunk-IY5E7Y5W.js} +61 -8
  96. package/dist/chunk-IY5E7Y5W.js.map +1 -0
  97. package/dist/{chunk-6O2X3GPW.js → chunk-J4DB5G36.js} +7 -5
  98. package/dist/chunk-J4DB5G36.js.map +1 -0
  99. package/dist/{chunk-BNMZVPYA.js → chunk-J4OYIYFQ.js} +2 -2
  100. package/dist/{chunk-BNMZVPYA.js.map → chunk-J4OYIYFQ.js.map} +1 -1
  101. package/dist/{chunk-ALEYHUC5.js → chunk-L3ZGYSWY.js} +182 -41
  102. package/dist/chunk-L3ZGYSWY.js.map +1 -0
  103. package/dist/{chunk-SBSA3IQA.js → chunk-M3P4BYRK.js} +49 -14
  104. package/dist/chunk-M3P4BYRK.js.map +1 -0
  105. package/dist/{chunk-IER3KIPH.js → chunk-NDUYFYJB.js} +5 -5
  106. package/dist/{chunk-IER3KIPH.js.map → chunk-NDUYFYJB.js.map} +1 -1
  107. package/dist/{chunk-CGYEHQOX.js → chunk-NOA6EJXE.js} +11 -2
  108. package/dist/chunk-NOA6EJXE.js.map +1 -0
  109. package/dist/{chunk-J4RBUFGM.js → chunk-NVO6WECE.js} +9 -8
  110. package/dist/chunk-NVO6WECE.js.map +1 -0
  111. package/dist/{chunk-OBYKJB4U.js → chunk-O2SYFJWP.js} +79 -5
  112. package/dist/chunk-O2SYFJWP.js.map +1 -0
  113. package/dist/{chunk-5LKOAX7I.js → chunk-OQ5MKDS3.js} +21 -5
  114. package/dist/chunk-OQ5MKDS3.js.map +1 -0
  115. package/dist/{chunk-NWDSLXOX.js → chunk-PHRNUTSG.js} +118 -118
  116. package/dist/chunk-PHRNUTSG.js.map +1 -0
  117. package/dist/chunk-PN44DOGP.js +345 -0
  118. package/dist/chunk-PN44DOGP.js.map +1 -0
  119. package/dist/{chunk-COH6FQAG.js → chunk-PXDWTJ3P.js} +5 -5
  120. package/dist/{chunk-COH6FQAG.js.map → chunk-PXDWTJ3P.js.map} +1 -1
  121. package/dist/{chunk-GV4DZ6MT.js → chunk-PYTTF754.js} +22 -6
  122. package/dist/chunk-PYTTF754.js.map +1 -0
  123. package/dist/chunk-PZOO7L26.js +64 -0
  124. package/dist/chunk-PZOO7L26.js.map +1 -0
  125. package/dist/{chunk-EDYHEMJA.js → chunk-QO7CR3KB.js} +10 -5
  126. package/dist/chunk-QO7CR3KB.js.map +1 -0
  127. package/dist/{chunk-XDKH7XSA.js → chunk-R6QHJEHE.js} +5 -5
  128. package/dist/{chunk-XDKH7XSA.js.map → chunk-R6QHJEHE.js.map} +1 -1
  129. package/dist/chunk-U27JRO5L.js +13 -0
  130. package/dist/chunk-U27JRO5L.js.map +1 -0
  131. package/dist/{chunk-X77SUM4P.js → chunk-USHB5KEY.js} +3 -3
  132. package/dist/{chunk-X77SUM4P.js.map → chunk-USHB5KEY.js.map} +1 -1
  133. package/dist/{chunk-QVFAS5IO.js → chunk-V5JHD4I2.js} +3 -3
  134. package/dist/{chunk-QVFAS5IO.js.map → chunk-V5JHD4I2.js.map} +1 -1
  135. package/dist/{chunk-PQFHMQHQ.js → chunk-VLBIME5L.js} +6 -6
  136. package/dist/{chunk-PQFHMQHQ.js.map → chunk-VLBIME5L.js.map} +1 -1
  137. package/dist/{chunk-D3B36CYC.js → chunk-X3RMRJNR.js} +4 -3
  138. package/dist/chunk-X3RMRJNR.js.map +1 -0
  139. package/dist/{chunk-TCHRMVTO.js → chunk-XBYSURMK.js} +4 -4
  140. package/dist/{chunk-TCHRMVTO.js.map → chunk-XBYSURMK.js.map} +1 -1
  141. package/dist/{chunk-MZG34MBZ.js → chunk-XJYBCDY2.js} +3 -3
  142. package/dist/{chunk-MZG34MBZ.js.map → chunk-XJYBCDY2.js.map} +1 -1
  143. package/dist/{chunk-4A4OD24G.js → chunk-Y4Z7LGSH.js} +9 -9
  144. package/dist/{chunk-4A4OD24G.js.map → chunk-Y4Z7LGSH.js.map} +1 -1
  145. package/dist/{chunk-DZMNFCWB.js → chunk-Y7WKXPWS.js} +816 -143
  146. package/dist/chunk-Y7WKXPWS.js.map +1 -0
  147. package/dist/{chunk-HCEVNYSH.js → chunk-YTZFSKWL.js} +3 -3
  148. package/dist/{chunk-HCEVNYSH.js.map → chunk-YTZFSKWL.js.map} +1 -1
  149. package/dist/{chunk-WSBKB4CJ.js → chunk-ZSMMX3JD.js} +167 -25
  150. package/dist/chunk-ZSMMX3JD.js.map +1 -0
  151. package/dist/{chunk-GCHPUTA3.js → chunk-ZU24LWBI.js} +3 -3
  152. package/dist/{chunk-GCHPUTA3.js.map → chunk-ZU24LWBI.js.map} +1 -1
  153. package/dist/cli/index.js +1427 -605
  154. package/dist/cli/index.js.map +1 -1
  155. package/dist/cli/src/agent-checks.d.ts +40 -0
  156. package/dist/cli/src/agent-checks.d.ts.map +1 -0
  157. package/dist/cli/src/asset-feeds.d.ts.map +1 -1
  158. package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -1
  159. package/dist/cli/src/commands/catalog-cmd.d.ts.map +1 -1
  160. package/dist/cli/src/commands/catalog.d.ts +26 -0
  161. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  162. package/dist/cli/src/commands/config.d.ts.map +1 -1
  163. package/dist/cli/src/commands/diff.d.ts +1 -1
  164. package/dist/cli/src/commands/diff.d.ts.map +1 -1
  165. package/dist/cli/src/commands/integration.d.ts.map +1 -1
  166. package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
  167. package/dist/cli/src/commands/library-index.d.ts +10 -0
  168. package/dist/cli/src/commands/library-index.d.ts.map +1 -1
  169. package/dist/cli/src/commands/library-publish.d.ts.map +1 -1
  170. package/dist/cli/src/commands/mcp-server.d.ts +1 -1
  171. package/dist/cli/src/commands/migrate-assets.d.ts +2 -1
  172. package/dist/cli/src/commands/migrate-assets.d.ts.map +1 -1
  173. package/dist/cli/src/commands/migrate.d.ts.map +1 -1
  174. package/dist/cli/src/commands/plugin/claude-code.d.ts +1 -1
  175. package/dist/cli/src/commands/plugin/claude-code.d.ts.map +1 -1
  176. package/dist/cli/src/commands/plugin/types.d.ts +3 -1
  177. package/dist/cli/src/commands/plugin/types.d.ts.map +1 -1
  178. package/dist/cli/src/commands/plugin-registry-cmd.d.ts.map +1 -1
  179. package/dist/cli/src/commands/preset-apply.d.ts.map +1 -1
  180. package/dist/cli/src/commands/project.d.ts +8 -0
  181. package/dist/cli/src/commands/project.d.ts.map +1 -1
  182. package/dist/cli/src/commands/publish-core.d.ts +5 -0
  183. package/dist/cli/src/commands/publish-core.d.ts.map +1 -1
  184. package/dist/cli/src/commands/run.d.ts +11 -1
  185. package/dist/cli/src/commands/run.d.ts.map +1 -1
  186. package/dist/cli/src/commands/serve-preflight.d.ts +23 -0
  187. package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -0
  188. package/dist/cli/src/commands/serve.d.ts.map +1 -1
  189. package/dist/cli/src/commands/source-manifest-publish.d.ts.map +1 -1
  190. package/dist/cli/src/commands/source-manifest.d.ts +1 -0
  191. package/dist/cli/src/commands/source-manifest.d.ts.map +1 -1
  192. package/dist/cli/src/commands/source.d.ts +9 -1
  193. package/dist/cli/src/commands/source.d.ts.map +1 -1
  194. package/dist/cli/src/commands/store.d.ts.map +1 -1
  195. package/dist/cli/src/commands/tree.d.ts.map +1 -1
  196. package/dist/cli/src/commands/update.d.ts.map +1 -1
  197. package/dist/cli/src/commands/validate-instances.d.ts.map +1 -1
  198. package/dist/cli/src/commands/validate.d.ts +3 -2
  199. package/dist/cli/src/commands/validate.d.ts.map +1 -1
  200. package/dist/cli/src/commands/why.d.ts.map +1 -1
  201. package/dist/cli/src/curated-manifests.d.ts +21 -0
  202. package/dist/cli/src/curated-manifests.d.ts.map +1 -0
  203. package/dist/cli/src/driver-error.d.ts +7 -0
  204. package/dist/cli/src/driver-error.d.ts.map +1 -1
  205. package/dist/cli/src/helpers.d.ts +6 -0
  206. package/dist/cli/src/helpers.d.ts.map +1 -1
  207. package/dist/cli/src/index-busy.d.ts +8 -0
  208. package/dist/cli/src/index-busy.d.ts.map +1 -0
  209. package/dist/cli/src/plugin-store/index.d.ts +1 -1
  210. package/dist/cli/src/plugin-store/index.d.ts.map +1 -1
  211. package/dist/cli/src/plugin-store/paths.d.ts +7 -3
  212. package/dist/cli/src/plugin-store/paths.d.ts.map +1 -1
  213. package/dist/cli/src/plugin-store/reconcile.d.ts +24 -4
  214. package/dist/cli/src/plugin-store/reconcile.d.ts.map +1 -1
  215. package/dist/cli/src/skill-checks.d.ts +27 -3
  216. package/dist/cli/src/skill-checks.d.ts.map +1 -1
  217. package/dist/cli/src/store-addable.d.ts +17 -0
  218. package/dist/cli/src/store-addable.d.ts.map +1 -0
  219. package/dist/connectors/config.js +6 -6
  220. package/dist/connectors/index.js +18 -18
  221. package/dist/connectors/src/config.d.ts.map +1 -1
  222. package/dist/{connectors-4QWAKPHB.js → connectors-GFKMKAXV.js} +21 -21
  223. package/dist/{connectors-4QWAKPHB.js.map → connectors-GFKMKAXV.js.map} +1 -1
  224. package/dist/core/driver-targets.js +1 -1
  225. package/dist/core/index.js +9 -9
  226. package/dist/core/logging.js +1 -1
  227. package/dist/core/manifest.js +2 -2
  228. package/dist/core/models.js +1 -1
  229. package/dist/core/publish-manifest.js +4 -2
  230. package/dist/core/ref.js +1 -1
  231. package/dist/core/runtime-assets.js +6 -6
  232. package/dist/core/src/agent-instances.d.ts +5 -0
  233. package/dist/core/src/agent-instances.d.ts.map +1 -1
  234. package/dist/core/src/driver-targets.d.ts.map +1 -1
  235. package/dist/core/src/index.d.ts +6 -5
  236. package/dist/core/src/index.d.ts.map +1 -1
  237. package/dist/core/src/lock.d.ts +15 -5
  238. package/dist/core/src/lock.d.ts.map +1 -1
  239. package/dist/core/src/logging/sinks/sqlite-sink.d.ts.map +1 -1
  240. package/dist/core/src/manifest.d.ts +14 -3
  241. package/dist/core/src/manifest.d.ts.map +1 -1
  242. package/dist/core/src/models.d.ts +11 -3
  243. package/dist/core/src/models.d.ts.map +1 -1
  244. package/dist/core/src/package-manager.d.ts +19 -0
  245. package/dist/core/src/package-manager.d.ts.map +1 -0
  246. package/dist/core/src/publish-manifest.d.ts +38 -1
  247. package/dist/core/src/publish-manifest.d.ts.map +1 -1
  248. package/dist/core/src/repo-manager.d.ts +19 -3
  249. package/dist/core/src/repo-manager.d.ts.map +1 -1
  250. package/dist/core/src/runtime-assets.d.ts.map +1 -1
  251. package/dist/core/src/settings.d.ts +26 -6
  252. package/dist/core/src/settings.d.ts.map +1 -1
  253. package/dist/core/src/store.d.ts +4 -0
  254. package/dist/core/src/store.d.ts.map +1 -1
  255. package/dist/core/src/walker.d.ts +8 -1
  256. package/dist/core/src/walker.d.ts.map +1 -1
  257. package/dist/core/src/workspace-config.d.ts +24 -2
  258. package/dist/core/src/workspace-config.d.ts.map +1 -1
  259. package/dist/core/store.js +2 -2
  260. package/dist/core/workspace-config.js +5 -5
  261. package/dist/deploy/index.js +9 -9
  262. package/dist/discovery/index.js +5 -5
  263. package/dist/discovery/src/parse-manifest.d.ts.map +1 -1
  264. package/dist/discovery/src/source-config.d.ts +5 -3
  265. package/dist/discovery/src/source-config.d.ts.map +1 -1
  266. package/dist/{ensure-sources-2RONZKCU.js → ensure-sources-VUKHL65L.js} +21 -21
  267. package/dist/{ensure-sources-2RONZKCU.js.map → ensure-sources-VUKHL65L.js.map} +1 -1
  268. package/dist/factory-assets/README.md +1 -1
  269. package/dist/factory-assets/connectors/box.js +18 -18
  270. package/dist/factory-assets/connectors/deploy.js +18 -18
  271. package/dist/factory-assets/connectors/devserver.js +18 -18
  272. package/dist/factory-assets/connectors/flow/adapter.js +18 -18
  273. package/dist/factory-assets/connectors/flow/contract/normalize.d.ts.map +1 -1
  274. package/dist/factory-assets/connectors/flow/contract.js +1 -1
  275. package/dist/factory-assets/connectors/flow/engine.js +11 -11
  276. package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
  277. package/dist/factory-assets/connectors/flow/run-flow.js +20 -20
  278. package/dist/factory-assets/connectors/flow.js +18 -18
  279. package/dist/factory-assets/connectors/git.js +18 -18
  280. package/dist/factory-assets/connectors/gmail.js +18 -18
  281. package/dist/factory-assets/connectors/googledrive.js +18 -18
  282. package/dist/factory-assets/connectors/local.js +18 -18
  283. package/dist/factory-assets/connectors/mattermost.js +18 -18
  284. package/dist/factory-assets/connectors/memory.js +18 -18
  285. package/dist/factory-assets/connectors/minio.js +18 -18
  286. package/dist/factory-assets/connectors/postgres.js +18 -18
  287. package/dist/factory-assets/connectors/s3.js +18 -18
  288. package/dist/factory-assets/connectors/sharepoint.js +18 -18
  289. package/dist/factory-assets/connectors/sqlite.js +18 -18
  290. package/dist/factory-assets/connectors/static-server.js +18 -18
  291. package/dist/factory-assets/connectors/tunnel.js +18 -18
  292. package/dist/factory-assets/connectors/webdav.js +18 -18
  293. package/dist/factory-assets/connectors/xstate-store.js +18 -18
  294. package/dist/factory-assets/connectors/xstate.js +18 -18
  295. package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +10 -8
  296. package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +15 -11
  297. package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +12 -9
  298. package/dist/factory-assets/skills/skaile-author-asset/SKILL.md +2 -2
  299. package/dist/flows-A4YALSZY.js +26 -0
  300. package/dist/{flows-EQF2CH4U.js.map → flows-A4YALSZY.js.map} +1 -1
  301. package/dist/helpers-53XZW7KF.js +34 -0
  302. package/dist/{helpers-CFK6YP6R.js.map → helpers-53XZW7KF.js.map} +1 -1
  303. package/dist/library/index.js +14 -14
  304. package/dist/library/install.js +6 -4
  305. package/dist/library/src/index.d.ts +2 -2
  306. package/dist/library/src/index.d.ts.map +1 -1
  307. package/dist/library/src/install/source-fetch-github.d.ts.map +1 -1
  308. package/dist/library/src/local/db.d.ts +2 -0
  309. package/dist/library/src/local/db.d.ts.map +1 -1
  310. package/dist/library/src/local/library-manager.d.ts +5 -0
  311. package/dist/library/src/local/library-manager.d.ts.map +1 -1
  312. package/dist/library/src/local/library.d.ts +5 -3
  313. package/dist/library/src/local/library.d.ts.map +1 -1
  314. package/dist/library/src/local/local-catalog-source.d.ts +6 -0
  315. package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
  316. package/dist/library/src/local/store-paths.d.ts +9 -0
  317. package/dist/library/src/local/store-paths.d.ts.map +1 -1
  318. package/dist/library/src/manifest-writer.d.ts +1 -1
  319. package/dist/library/src/manifest-writer.d.ts.map +1 -1
  320. package/dist/library/src/remote/index.d.ts +1 -1
  321. package/dist/library/src/remote/index.d.ts.map +1 -1
  322. package/dist/library/src/remote/remote-catalog-source.d.ts +17 -0
  323. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  324. package/dist/library/src/sync/git-driver.d.ts.map +1 -1
  325. package/dist/library/src/user-library.d.ts +2 -0
  326. package/dist/library/src/user-library.d.ts.map +1 -1
  327. package/dist/{library-publish-53UTB3MB.js → library-publish-FFIPWIRM.js} +50 -39
  328. package/dist/library-publish-FFIPWIRM.js.map +1 -0
  329. package/dist/open-library-PZAT3TJA.js +40 -0
  330. package/dist/{open-library-BOSPJVID.js.map → open-library-PZAT3TJA.js.map} +1 -1
  331. package/dist/open-registry-W46UXZ3I.js +32 -0
  332. package/dist/{open-registry-4FI7HKET.js.map → open-registry-W46UXZ3I.js.map} +1 -1
  333. package/dist/paths-KKY3NSBZ.js +22 -0
  334. package/dist/{paths-SUS4S4YT.js.map → paths-KKY3NSBZ.js.map} +1 -1
  335. package/dist/plugin-store-CK7YWRIC.js +227 -0
  336. package/dist/plugin-store-CK7YWRIC.js.map +1 -0
  337. package/dist/plugins/src/catalog-source.d.ts +6 -0
  338. package/dist/plugins/src/catalog-source.d.ts.map +1 -1
  339. package/dist/project-EZUH7PUJ.js +79 -0
  340. package/dist/{project-I55A4O2T.js.map → project-EZUH7PUJ.js.map} +1 -1
  341. package/dist/resolver/index.js +10 -10
  342. package/dist/runner/index.js +35 -35
  343. package/dist/runner/src/agent.d.ts.map +1 -1
  344. package/dist/runner/src/agents/in-process-host.d.ts.map +1 -1
  345. package/dist/runner/src/composition/index.d.ts +2 -1
  346. package/dist/runner/src/composition/index.d.ts.map +1 -1
  347. package/dist/runner/src/composition/prompt-sections.d.ts +20 -5
  348. package/dist/runner/src/composition/prompt-sections.d.ts.map +1 -1
  349. package/dist/runner/src/composition/resolve.d.ts +10 -1
  350. package/dist/runner/src/composition/resolve.d.ts.map +1 -1
  351. package/dist/runner/src/composition/verify.d.ts +29 -0
  352. package/dist/runner/src/composition/verify.d.ts.map +1 -0
  353. package/dist/runner/src/credential-notice.d.ts +14 -0
  354. package/dist/runner/src/credential-notice.d.ts.map +1 -0
  355. package/dist/runner/src/environment.d.ts.map +1 -1
  356. package/dist/runner/src/final-text.d.ts +17 -0
  357. package/dist/runner/src/final-text.d.ts.map +1 -0
  358. package/dist/runner/src/index.d.ts +2 -0
  359. package/dist/runner/src/index.d.ts.map +1 -1
  360. package/dist/runner/src/resource-handler.d.ts.map +1 -1
  361. package/dist/runner/src/serve.d.ts +13 -0
  362. package/dist/runner/src/serve.d.ts.map +1 -1
  363. package/dist/runner/src/session-builder.d.ts.map +1 -1
  364. package/dist/runner/src/session.d.ts +2 -0
  365. package/dist/runner/src/session.d.ts.map +1 -1
  366. package/dist/runner/src/ws-auth-warning.d.ts +17 -0
  367. package/dist/runner/src/ws-auth-warning.d.ts.map +1 -0
  368. package/dist/sdk/asset-manager.js +18 -18
  369. package/dist/sdk/bridge.js +14 -14
  370. package/dist/sdk/core.js +9 -9
  371. package/dist/sdk/flow.js +11 -11
  372. package/dist/sdk/index.js +38 -36
  373. package/dist/sdk/index.js.map +1 -1
  374. package/dist/sdk/resolver.js +10 -10
  375. package/dist/sdk/runner.js +35 -35
  376. package/dist/sdk/src/local-runtime.d.ts.map +1 -1
  377. package/dist/sdk/transport/ws/client.js +1 -1
  378. package/dist/sdk/transport/ws/server.js +1 -1
  379. package/dist/sdk/transport/ws.js +2 -2
  380. package/dist/sdk/transport.js +2 -2
  381. package/dist/serve-preflight-F7MYF747.js +64 -0
  382. package/dist/serve-preflight-F7MYF747.js.map +1 -0
  383. package/dist/{setup-7DQJKHUI.js → setup-L632QIHV.js} +26 -26
  384. package/dist/{setup-7DQJKHUI.js.map → setup-L632QIHV.js.map} +1 -1
  385. package/dist/skills-OY3Y5GKA.js +26 -0
  386. package/dist/{skills-NUEN5NDX.js.map → skills-OY3Y5GKA.js.map} +1 -1
  387. package/dist/source-36FHMN5V.js +42 -0
  388. package/dist/{source-G2LV5LVD.js.map → source-36FHMN5V.js.map} +1 -1
  389. package/dist/source-fetch-github-PIO6EMMF.js +4 -0
  390. package/dist/{source-fetch-github-QN4LLTL5.js.map → source-fetch-github-PIO6EMMF.js.map} +1 -1
  391. package/dist/{source-manifest-publish-6RM7SWLZ.js → source-manifest-publish-NIXJSJ22.js} +30 -28
  392. package/dist/source-manifest-publish-NIXJSJ22.js.map +1 -0
  393. package/dist/transport/index.js +2 -2
  394. package/dist/transport/src/ws/client.d.ts +6 -0
  395. package/dist/transport/src/ws/client.d.ts.map +1 -1
  396. package/dist/transport/src/ws/server.d.ts +4 -0
  397. package/dist/transport/src/ws/server.d.ts.map +1 -1
  398. package/dist/transport/ws/client.js +1 -1
  399. package/dist/transport/ws/server.js +1 -1
  400. package/dist/transport/ws.js +2 -2
  401. package/dist/tui/index.js +77 -50
  402. package/dist/tui/index.js.map +1 -1
  403. package/dist/tui/src/repl-session.d.ts +1 -1
  404. package/dist/tui/src/repl-session.d.ts.map +1 -1
  405. package/dist/tui/src/repl.d.ts +3 -0
  406. package/dist/tui/src/repl.d.ts.map +1 -1
  407. package/dist/types/manifests.js +1 -1
  408. package/dist/types/src/lifecycle.d.ts +2 -1
  409. package/dist/types/src/lifecycle.d.ts.map +1 -1
  410. package/dist/types/src/manifests/agent-composition.d.ts +20 -0
  411. package/dist/types/src/manifests/agent-composition.d.ts.map +1 -1
  412. package/dist/types/src/manifests/agent.d.ts.map +1 -1
  413. package/dist/types/src/manifests/cron.d.ts +15 -0
  414. package/dist/types/src/manifests/cron.d.ts.map +1 -0
  415. package/dist/types/src/manifests/index.d.ts +3 -2
  416. package/dist/types/src/manifests/index.d.ts.map +1 -1
  417. package/dist/types/src/manifests/preset.d.ts +6 -1
  418. package/dist/types/src/manifests/preset.d.ts.map +1 -1
  419. package/dist/workspace-plugin/adapters/mcp.js +25 -25
  420. package/dist/workspace-plugin/adapters/omp.js +106 -51
  421. package/dist/workspace-plugin/adapters/omp.js.map +1 -1
  422. package/dist/workspace-plugin/index.js +2 -2
  423. package/dist/workspace-plugin/src/adapters/claude-code.d.ts.map +1 -1
  424. package/dist/workspace-plugin/src/adapters/omp.d.ts +11 -2
  425. package/dist/workspace-plugin/src/adapters/omp.d.ts.map +1 -1
  426. package/package.json +1 -1
  427. package/dist/asset-feeds-CXGQIDFR.js.map +0 -1
  428. package/dist/chunk-2F5AWQX5.js.map +0 -1
  429. package/dist/chunk-3SM2DL2T.js.map +0 -1
  430. package/dist/chunk-47U4GZ4M.js.map +0 -1
  431. package/dist/chunk-5LKOAX7I.js.map +0 -1
  432. package/dist/chunk-6O2X3GPW.js.map +0 -1
  433. package/dist/chunk-ALEYHUC5.js.map +0 -1
  434. package/dist/chunk-CGYEHQOX.js.map +0 -1
  435. package/dist/chunk-CJERAGFY.js.map +0 -1
  436. package/dist/chunk-CPSIPIX7.js.map +0 -1
  437. package/dist/chunk-D3B36CYC.js.map +0 -1
  438. package/dist/chunk-DZMNFCWB.js.map +0 -1
  439. package/dist/chunk-EDYHEMJA.js.map +0 -1
  440. package/dist/chunk-FH7W6TJ4.js.map +0 -1
  441. package/dist/chunk-GV4DZ6MT.js.map +0 -1
  442. package/dist/chunk-HZXUXHIV.js.map +0 -1
  443. package/dist/chunk-J4RBUFGM.js.map +0 -1
  444. package/dist/chunk-NWDSLXOX.js.map +0 -1
  445. package/dist/chunk-OBYKJB4U.js.map +0 -1
  446. package/dist/chunk-PBBPZYVG.js.map +0 -1
  447. package/dist/chunk-PMECEZK3.js.map +0 -1
  448. package/dist/chunk-R7FOF242.js +0 -59
  449. package/dist/chunk-R7FOF242.js.map +0 -1
  450. package/dist/chunk-R7NHYEJF.js.map +0 -1
  451. package/dist/chunk-RYYLMBA2.js +0 -392
  452. package/dist/chunk-RYYLMBA2.js.map +0 -1
  453. package/dist/chunk-SBSA3IQA.js.map +0 -1
  454. package/dist/chunk-VLTQGE2E.js.map +0 -1
  455. package/dist/chunk-WSBKB4CJ.js.map +0 -1
  456. package/dist/chunk-YOH2L76X.js +0 -505
  457. package/dist/chunk-YOH2L76X.js.map +0 -1
  458. package/dist/chunk-ZCAJZ4B2.js.map +0 -1
  459. package/dist/chunk-ZPWTOUTK.js.map +0 -1
  460. package/dist/flows-EQF2CH4U.js +0 -26
  461. package/dist/helpers-CFK6YP6R.js +0 -34
  462. package/dist/library-publish-53UTB3MB.js.map +0 -1
  463. package/dist/open-library-BOSPJVID.js +0 -40
  464. package/dist/open-registry-4FI7HKET.js +0 -32
  465. package/dist/paths-SUS4S4YT.js +0 -22
  466. package/dist/plugin-store-AGQDMING.js +0 -149
  467. package/dist/plugin-store-AGQDMING.js.map +0 -1
  468. package/dist/project-I55A4O2T.js +0 -41
  469. package/dist/skills-NUEN5NDX.js +0 -26
  470. package/dist/source-G2LV5LVD.js +0 -41
  471. package/dist/source-fetch-github-QN4LLTL5.js +0 -4
  472. package/dist/source-manifest-publish-6RM7SWLZ.js.map +0 -1
@@ -1,12 +1,12 @@
1
- import { readManifestSourceConfig, discoverAssetsInTree, barePublisher, createDefaultKindRegistry, sharesItsFolder, SEMVER_RE, parseManifestFile } from './chunk-J4RBUFGM.js';
2
- import { installFromManifest, assertSafeManifestPath } from './chunk-COH6FQAG.js';
3
- import { PresetManifestSchema } from './chunk-ZCAJZ4B2.js';
4
- import { defaultLibraryDir, resolveLibraryDir, GLOBAL_INSTALL_DIR_NAME, readLock, buildLibraryLockEntries, writeLock, mergeLockFile, buildLockFile, ManifestYamlEditor } from './chunk-PBBPZYVG.js';
5
- import { getGlobalCacheDir, storeManifestSlug, resolveSourcePublisher } from './chunk-ALEYHUC5.js';
1
+ import { readManifestSourceConfig, discoverAssetsInTree, barePublisher, createDefaultKindRegistry, sharesItsFolder, SEMVER_RE, parseManifestFile } from './chunk-NVO6WECE.js';
2
+ import { installFromManifest, assertSafeManifestPath } from './chunk-PXDWTJ3P.js';
3
+ import { PresetManifestSchema } from './chunk-57SF6W6E.js';
4
+ import { defaultLibraryDir, resolveLibraryDir, GLOBAL_INSTALL_DIR_NAME, readLock, buildLibraryLockEntries, writeLock, mergeLockFile, buildLockFile, ManifestYamlEditor } from './chunk-BF422IDP.js';
5
+ import { getGlobalCacheDir, storeManifestSlug, resolveSourcePublisher } from './chunk-L3ZGYSWY.js';
6
6
  import { userConfigPath, globalSkaileDir, mergeLegacyEntriesInto, migrateLegacyDir, globalCacheRoot } from './chunk-L5VSIPQD.js';
7
- import { encodeSkaileManifest, loadSkPublishManifest, SKAILE_MANIFEST_FILENAME } from './chunk-ZPWTOUTK.js';
8
- import { scanDirectory } from './chunk-SBSA3IQA.js';
9
- import { parseAssetRef, assetRefToStr } from './chunk-BNMZVPYA.js';
7
+ import { encodeSkaileManifest, SKAILE_MANIFEST_FILENAME, loadSkPublishManifest } from './chunk-IY5E7Y5W.js';
8
+ import { scanDirectory } from './chunk-M3P4BYRK.js';
9
+ import { parseAssetRef, assetRefToStr, isValidAssetName } from './chunk-J4OYIYFQ.js';
10
10
  import { __export } from './chunk-NSBPE2FW.js';
11
11
  import * as fs11 from 'fs';
12
12
  import { existsSync, mkdirSync, symlinkSync, copyFileSync, cpSync } from 'fs';
@@ -20,6 +20,7 @@ import { createClient } from '@libsql/client';
20
20
  import { drizzle } from 'drizzle-orm/libsql';
21
21
  import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';
22
22
  import { spawnSync } from 'child_process';
23
+ import { valid, gt } from 'semver';
23
24
  import { isDeepStrictEqual } from 'util';
24
25
 
25
26
  // library/src/library.ts
@@ -369,6 +370,31 @@ function curatedManifestOverlay(sourceUrl) {
369
370
  const file = path16.join(getStoreManifestsDir(), `${storeManifestSlug(sourceUrl)}.yaml`);
370
371
  return fs11.existsSync(file) ? file : void 0;
371
372
  }
373
+ function commitStoreManifest(file, message) {
374
+ const root = getStoreRoot();
375
+ try {
376
+ const rel = path16.relative(root, file);
377
+ if (rel.startsWith("..") || path16.isAbsolute(rel)) return false;
378
+ initStoreGitRepo(root);
379
+ const run = (args) => spawnSync(
380
+ "git",
381
+ [
382
+ "-c",
383
+ "user.name=skaile",
384
+ "-c",
385
+ "user.email=skaile@localhost",
386
+ "-c",
387
+ "commit.gpgsign=false",
388
+ ...args
389
+ ],
390
+ { cwd: root, stdio: "ignore" }
391
+ );
392
+ if (run(["add", "--", rel]).status !== 0) return false;
393
+ return run(["commit", "--quiet", "-m", message, "--only", "--", rel]).status === 0;
394
+ } catch {
395
+ return false;
396
+ }
397
+ }
372
398
  function migratedMarkerPath() {
373
399
  return path16.join(getStoreRoot(), ".migrated");
374
400
  }
@@ -693,6 +719,7 @@ function assertNoLegacyLibDb(newDbPath) {
693
719
  );
694
720
  }
695
721
  }
722
+ var INDEX_BUSY_TIMEOUT_MS = 5e3;
696
723
  async function createLibraryDb(dbPath) {
697
724
  assertNoLegacyLibDb(dbPath);
698
725
  try {
@@ -704,6 +731,7 @@ async function createLibraryDb(dbPath) {
704
731
  );
705
732
  }
706
733
  const client = createClient({ url: `file:${dbPath}` });
734
+ await client.execute(`PRAGMA busy_timeout = ${INDEX_BUSY_TIMEOUT_MS}`);
707
735
  await client.execute("PRAGMA journal_mode = WAL");
708
736
  await client.execute("PRAGMA foreign_keys = ON");
709
737
  if (await legacySourcesPresent(client) && !await librariesPresent(client)) {
@@ -890,7 +918,10 @@ var LocalIndex = class {
890
918
  this.dbHandleRef = null;
891
919
  this.dbPromise = null;
892
920
  }
893
- /** Internal access for LibraryManager. Do not call from user code. */
921
+ /**
922
+ * Internal access for LibraryManager. Do not call from user code. Typed `unknown`
923
+ * so the published `.d.ts` pulls in no drizzle types (p461); the manager casts it.
924
+ */
894
925
  async dbHandle() {
895
926
  return this.ensureDb();
896
927
  }
@@ -1561,6 +1592,13 @@ var GitSyncDriver = class {
1561
1592
  }
1562
1593
  assertNoRebase(lib);
1563
1594
  const cfg = gitCfg(lib);
1595
+ if (git(lib.path, ["rev-parse", "--verify", "--quiet", `refs/heads/${cfg.branch}`]).status !== 0) {
1596
+ const current = git(lib.path, ["symbolic-ref", "--short", "-q", "HEAD"]).stdout.trim();
1597
+ throw new LibrarySyncError(
1598
+ current && current !== cfg.branch ? `no local branch "${cfg.branch}" in ${lib.name} (it is on "${current}"); run skaile library set ${lib.name} backendConfig.branch=${current}` : `no local branch "${cfg.branch}" in ${lib.name}; commit something on it first`,
1599
+ "remote_error"
1600
+ );
1601
+ }
1564
1602
  const args = ["push", "origin", cfg.branch];
1565
1603
  if (opts?.force) args.push("--force-with-lease");
1566
1604
  const countRef = "refs/skaile/push-base";
@@ -1579,9 +1617,16 @@ var GitSyncDriver = class {
1579
1617
  const baseRef = fetched.status === 0 || remoteHasNoBranch ? countRef : trackingRef;
1580
1618
  const local = `refs/heads/${cfg.branch}`;
1581
1619
  const pushed = countCommits(lib.path, `${baseRef}..${local}`) ?? countCommits(lib.path, local) ?? 0;
1620
+ const behind = remoteHasNoBranch ? 0 : countCommits(lib.path, `${local}..${baseRef}`) ?? 0;
1582
1621
  git(lib.path, ["update-ref", "-d", countRef]);
1583
1622
  const pushRes = git(lib.path, args);
1584
1623
  if (pushRes.status !== 0 && /non-fast-forward|fetch first|updates were rejected/i.test(pushRes.stderr)) {
1624
+ if (pushed === 0 && behind > 0) {
1625
+ throw new LibrarySyncError(
1626
+ `behind origin by ${behind} commit(s); run skaile library pull ${lib.name}`,
1627
+ "remote_error"
1628
+ );
1629
+ }
1585
1630
  throw new LibrarySyncError(
1586
1631
  `local and remote both changed; run skaile library git ${lib.name} pull --rebase origin ${cfg.branch}`,
1587
1632
  "remote_error"
@@ -1713,6 +1758,13 @@ var LibraryManager = class {
1713
1758
  lib;
1714
1759
  localDrv = new LocalSyncDriver();
1715
1760
  gitDrv = new GitSyncDriver();
1761
+ /**
1762
+ * The index's drizzle handle. `LocalIndex.dbHandle()` is typed `unknown` so the
1763
+ * published `.d.ts` pulls in no drizzle types; the type lives here.
1764
+ */
1765
+ async db() {
1766
+ return await this.lib.dbHandle();
1767
+ }
1716
1768
  /** Resolve the sync driver for a given backend. */
1717
1769
  driverFor(backend) {
1718
1770
  switch (backend) {
@@ -1724,7 +1776,7 @@ var LibraryManager = class {
1724
1776
  }
1725
1777
  async addLibrary(input) {
1726
1778
  assertValidLibraryName(input.name);
1727
- const db = await this.lib.dbHandle();
1779
+ const db = await this.db();
1728
1780
  const existing = await db.select().from(libraries).where(eq(libraries.name, input.name)).get();
1729
1781
  if (existing) throw new DuplicateLibraryNameError(input.name);
1730
1782
  const id = crypto.randomUUID();
@@ -1749,12 +1801,12 @@ var LibraryManager = class {
1749
1801
  return this.requireLibrary(id);
1750
1802
  }
1751
1803
  async listLibraries() {
1752
- const db = await this.lib.dbHandle();
1804
+ const db = await this.db();
1753
1805
  const rows = await db.select().from(libraries).all();
1754
1806
  return rows.map(rowToLibrary2).sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime());
1755
1807
  }
1756
1808
  async getLibrary(nameOrId) {
1757
- const db = await this.lib.dbHandle();
1809
+ const db = await this.db();
1758
1810
  let row = await db.select().from(libraries).where(eq(libraries.name, nameOrId)).get();
1759
1811
  if (!row) {
1760
1812
  row = await db.select().from(libraries).where(eq(libraries.id, nameOrId)).get();
@@ -1782,7 +1834,7 @@ var LibraryManager = class {
1782
1834
  async updateLibrary(nameOrId, patch) {
1783
1835
  const lib = await this.requireLibrary(nameOrId);
1784
1836
  if (patch.name !== void 0 && patch.name !== lib.name) assertValidLibraryName(patch.name);
1785
- const db = await this.lib.dbHandle();
1837
+ const db = await this.db();
1786
1838
  const updates = {
1787
1839
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
1788
1840
  };
@@ -1816,7 +1868,7 @@ var LibraryManager = class {
1816
1868
  }
1817
1869
  async setDefault(nameOrId) {
1818
1870
  const lib = await this.requireLibrary(nameOrId);
1819
- const db = await this.lib.dbHandle();
1871
+ const db = await this.db();
1820
1872
  await db.update(libraries).set({ isDefault: false }).run();
1821
1873
  await db.update(libraries).set({ isDefault: true, updatedAt: (/* @__PURE__ */ new Date()).toISOString() }).where(eq(libraries.id, lib.id)).run();
1822
1874
  return this.requireLibrary(lib.id);
@@ -1875,7 +1927,7 @@ function describeSyncError(err) {
1875
1927
  return parts.join(": ");
1876
1928
  }
1877
1929
  function scanLibraryRoot(rootPath, registry, scanOpts) {
1878
- const fallbackPublisher = resolveSourcePublisher(rootPath) ?? (path16.basename(rootPath) || "unknown");
1930
+ const fallbackPublisher = resolveSourcePublisher(rootPath, scanOpts?.publisher) ?? (path16.basename(rootPath) || "unknown");
1879
1931
  const opts = {
1880
1932
  registry,
1881
1933
  sidecarManifestFile: scanOpts?.sidecarManifestFile,
@@ -1889,8 +1941,12 @@ function scanLibraryRoot(rootPath, registry, scanOpts) {
1889
1941
  return discoverAssetsInTree(rootPath, opts);
1890
1942
  }
1891
1943
  function libraryScanOptions(library) {
1892
- const url = library.ownership === "reader" && library.backendConfig && "url" in library.backendConfig ? library.backendConfig.url : void 0;
1893
- return { includeDev: true, sidecarManifestFile: url ? curatedManifestOverlay(url) : void 0 };
1944
+ const source = library.ownership === "reader" && library.backendConfig && "url" in library.backendConfig ? library.backendConfig : void 0;
1945
+ return {
1946
+ includeDev: true,
1947
+ sidecarManifestFile: source ? curatedManifestOverlay(source.url) : void 0,
1948
+ publisher: source?.publisher
1949
+ };
1894
1950
  }
1895
1951
  var LocalCatalogSource = class {
1896
1952
  constructor(library, sourceId, rootPath, registry, options) {
@@ -1901,6 +1957,7 @@ var LocalCatalogSource = class {
1901
1957
  this.id = `local:${sourceId}`;
1902
1958
  this.sidecarPath = options?.sidecarPath;
1903
1959
  this.sidecarManifestFile = options?.sidecarManifestFile;
1960
+ this.publisher = options?.publisher;
1904
1961
  }
1905
1962
  library;
1906
1963
  sourceId;
@@ -1909,6 +1966,7 @@ var LocalCatalogSource = class {
1909
1966
  id;
1910
1967
  sidecarPath;
1911
1968
  sidecarManifestFile;
1969
+ publisher;
1912
1970
  async resolve(ref) {
1913
1971
  const def = await this.library.getAssetDef(ref);
1914
1972
  if (!def || def.libraryId !== this.sourceId) return null;
@@ -1954,6 +2012,7 @@ var LocalCatalogSource = class {
1954
2012
  return scanLibraryRoot(this.rootPath, this.registry, {
1955
2013
  sidecarPath: this.sidecarPath,
1956
2014
  sidecarManifestFile: this.sidecarManifestFile,
2015
+ publisher: this.publisher,
1957
2016
  includeDev: scanOpts?.includeDev
1958
2017
  });
1959
2018
  }
@@ -2014,19 +2073,10 @@ var LocalCatalogSource = class {
2014
2073
  errors.push(`${err.path}: ${err.error}`);
2015
2074
  }
2016
2075
  const advisories = [];
2017
- let missingSha256Count = 0;
2018
2076
  for (const w of result.warnings) {
2019
- if (w.code === "missing_sha256") {
2020
- missingSha256Count++;
2021
- continue;
2022
- }
2077
+ if (w.code === "missing_sha256") continue;
2023
2078
  advisories.push(`${w.path}: ${w.warning}`);
2024
2079
  }
2025
- if (missingSha256Count > 0) {
2026
- advisories.push(
2027
- `${missingSha256Count} asset(s): sha256 not pinned \u2014 auto-computed locally (pin only for store publish)`
2028
- );
2029
- }
2030
2080
  const keepRefs = assets.map((a) => a.ref);
2031
2081
  let pruned = [];
2032
2082
  if (!syncOpts?.only && result.assets.length > 0) {
@@ -3296,8 +3346,6 @@ function sha256Hex(bytes) {
3296
3346
  h.update(bytes);
3297
3347
  return h.digest("hex");
3298
3348
  }
3299
-
3300
- // library/src/remote/remote-catalog-source.ts
3301
3349
  var TarballHashMismatchError = class extends Error {
3302
3350
  constructor(expected, actual) {
3303
3351
  super(`SHA256 mismatch: expected ${expected}, got ${actual}`);
@@ -3324,6 +3372,19 @@ var CatalogHttpError = class extends Error {
3324
3372
  status;
3325
3373
  url;
3326
3374
  };
3375
+ function describeCatalogError(err, baseUrl) {
3376
+ if (err instanceof OfflineError) return err.message;
3377
+ if (err instanceof CatalogHttpError) {
3378
+ return err.status >= 400 && err.status < 600 && !err.message.startsWith("tRPC") ? `${baseUrl} answered ${err.status} (${err.message})` : `${baseUrl}: ${err.message}`;
3379
+ }
3380
+ const e = err;
3381
+ if (e?.name === "TimeoutError" || e?.name === "AbortError") {
3382
+ return `no answer from ${baseUrl} within ${CATALOG_REQUEST_TIMEOUT_MS / 1e3} s`;
3383
+ }
3384
+ const cause = e?.cause;
3385
+ const why = cause?.code ?? cause?.message ?? e?.message ?? String(err);
3386
+ return `cannot reach ${baseUrl} (${why})`;
3387
+ }
3327
3388
  var DEFAULT_TTL_MS = 864e5;
3328
3389
  var RemoteCatalogSource = class {
3329
3390
  id;
@@ -3362,25 +3423,62 @@ var RemoteCatalogSource = class {
3362
3423
  async resolve(ref) {
3363
3424
  const fresh = this.cache.getResolve(ref);
3364
3425
  if (fresh && (this.cache.airGapped || fresh.value === null || fresh.value.requires !== void 0)) {
3365
- return fresh.value;
3426
+ return cachedAsset(fresh.value);
3366
3427
  }
3367
3428
  if (this.cache.airGapped) {
3368
3429
  const stale2 = this.cache.getResolveStale(ref);
3369
- if (stale2) return stale2.value;
3430
+ if (stale2) return cachedAsset(stale2.value);
3431
+ const listed = this.cachedListedAsset(ref);
3432
+ if (listed) return listed;
3370
3433
  throw new OfflineError(`Asset '${ref}' not in cache`);
3371
3434
  }
3372
3435
  const stale = this.cache.getResolveStale(ref);
3373
3436
  if (stale && (stale.value === null || stale.value.requires !== void 0)) {
3374
3437
  this.scheduleBackground(`resolve:${ref}`, () => this.fetchAndStoreResolve(ref));
3375
- return stale.value;
3438
+ return cachedAsset(stale.value);
3376
3439
  }
3377
3440
  try {
3378
3441
  return await this.fetchAndStoreResolve(ref);
3379
3442
  } catch (err) {
3380
- if (stale) return stale.value;
3443
+ if (stale) return cachedAsset(stale.value);
3444
+ const listed = this.cachedListedAsset(ref);
3445
+ if (listed) return listed;
3381
3446
  throw err;
3382
3447
  }
3383
3448
  }
3449
+ /**
3450
+ * The row for `ref` from the cached, unfiltered catalog list (fresh or stale), or `null`.
3451
+ * A version-less ref takes the highest listed version. Never touches the network.
3452
+ */
3453
+ cachedListedAsset(ref) {
3454
+ const all = this.cache.getList(void 0) ?? this.cache.getListStale(void 0);
3455
+ if (!all) return null;
3456
+ const want = parseAssetRef(ref);
3457
+ const bare = (p) => p?.replace(/^@/, "");
3458
+ const hits = all.items.filter(
3459
+ (a) => a.kind === want.kind && a.name === want.name && (want.publisher === void 0 || bare(a.publisher) === bare(want.publisher)) && (want.pin === void 0 || a.version === want.pin)
3460
+ );
3461
+ if (hits.length === 0) return null;
3462
+ return cachedAsset(
3463
+ hits.reduce(
3464
+ (best, a) => valid(a.version) && valid(best.version) && gt(a.version, best.version) ? a : best
3465
+ )
3466
+ );
3467
+ }
3468
+ /**
3469
+ * `filter` applied to the cached, unfiltered catalog list (fresh or stale), or `null` when
3470
+ * that list is not cached or `filter` is empty. A `--kind` / publisher query needs no
3471
+ * round trip once the whole list is on disk.
3472
+ */
3473
+ cachedListFiltered(filter) {
3474
+ if (!filter || !filter.kind && !filter.publisher && !filter.prefix) return null;
3475
+ const all = this.cache.getList(void 0) ?? this.cache.getListStale(void 0);
3476
+ if (!all) return null;
3477
+ const bare = (p) => p.replace(/^@/, "");
3478
+ return all.items.filter(
3479
+ (a) => (!filter.kind || a.kind === filter.kind) && (!filter.publisher || bare(a.publisher) === bare(filter.publisher)) && (!filter.prefix || `${bare(a.publisher)}/${a.name}`.startsWith(filter.prefix))
3480
+ ).map(cachedAsset);
3481
+ }
3384
3482
  /**
3385
3483
  * Fetch `ref` from the store, bypassing the resolve cache, and cache the answer.
3386
3484
  * For a caller that knows the cached answer is wrong, e.g. a cached miss for an
@@ -3402,19 +3500,27 @@ var RemoteCatalogSource = class {
3402
3500
  */
3403
3501
  async listAssets(filter) {
3404
3502
  const fresh = this.cache.getList(filter);
3405
- if (fresh) return fresh.items;
3503
+ if (fresh) return fresh.items.map(cachedAsset);
3406
3504
  if (this.cache.airGapped) {
3407
3505
  const stale2 = this.cache.getListStale(filter);
3408
- if (stale2) return stale2.items;
3506
+ if (stale2) return stale2.items.map(cachedAsset);
3507
+ const subset = this.cachedListFiltered(filter);
3508
+ if (subset) return subset;
3409
3509
  throw new OfflineError("Catalog list not in cache");
3410
3510
  }
3411
3511
  const stale = this.cache.getListStale(filter);
3412
3512
  if (stale) {
3413
3513
  const filterKey2 = JSON.stringify(filter ?? null);
3414
3514
  this.scheduleBackground(`list:${filterKey2}`, () => this.fetchAndStoreList(filter));
3415
- return stale.items;
3515
+ return stale.items.map(cachedAsset);
3516
+ }
3517
+ try {
3518
+ return await this.fetchAndStoreList(filter);
3519
+ } catch (err) {
3520
+ const subset = this.cachedListFiltered(filter);
3521
+ if (subset) return subset;
3522
+ throw err;
3416
3523
  }
3417
- return this.fetchAndStoreList(filter);
3418
3524
  }
3419
3525
  /**
3420
3526
  * Fetch the content-addressed tarball for an asset. The bytes are downloaded
@@ -3518,6 +3624,9 @@ var RemoteCatalogSource = class {
3518
3624
  * @throws {@link CatalogHttpError} on a non-2xx response or malformed envelope.
3519
3625
  */
3520
3626
  async getInstallManifest(ref) {
3627
+ if (this.cache.airGapped) {
3628
+ throw new OfflineError(`Install manifest of '${ref}' is not cached`);
3629
+ }
3521
3630
  const url = trpcGetUrl(this.baseUrl, "catalog.getInstallManifest", { ref });
3522
3631
  const res = await this.httpClient(url, {
3523
3632
  method: "GET",
@@ -3555,6 +3664,9 @@ var RemoteCatalogSource = class {
3555
3664
  * @docLink packages/library/api-reference#remote-catalog-source
3556
3665
  */
3557
3666
  async getCanonicalDigest(ref) {
3667
+ if (this.cache.airGapped) {
3668
+ throw new OfflineError(`Canonical digest of '${ref}' is not cached`);
3669
+ }
3558
3670
  const url = trpcGetUrl(this.baseUrl, "catalog.getCanonicalDigest", { ref });
3559
3671
  const res = await this.httpClient(url, {
3560
3672
  method: "GET",
@@ -3730,9 +3842,42 @@ function normalizeCatalogAsset(raw) {
3730
3842
  if (repo) asset.repo = repo;
3731
3843
  const softDeps = pickRefs(r, "softDepsJson");
3732
3844
  if (softDeps.length > 0) asset.softDeps = softDeps;
3733
- asset.requires = pickRefs(r, "requiresJson");
3845
+ asset.requires = canonicalRequirements(pickRefs(r, "requiresJson"), publisher);
3846
+ if (r.demo === true || r.internal === true) asset.demo = true;
3734
3847
  return asset;
3735
3848
  }
3849
+ function canonicalRequirements(refs, rowPublisher) {
3850
+ const out = [];
3851
+ for (const ref of refs) {
3852
+ let canonical;
3853
+ try {
3854
+ canonical = assetRefToStr(parseAssetRef(ref));
3855
+ } catch {
3856
+ const hash = ref.indexOf("#");
3857
+ const head = hash === -1 ? ref : ref.slice(0, hash);
3858
+ const colon = head.indexOf(":");
3859
+ const name = colon === -1 ? head : head.slice(colon + 1);
3860
+ if (rowPublisher && isValidAssetName(name)) {
3861
+ try {
3862
+ canonical = assetRefToStr(
3863
+ parseAssetRef(
3864
+ `${colon === -1 ? "skill" : head.slice(0, colon)}:@${rowPublisher}/${name}${hash === -1 ? "" : ref.slice(hash)}`
3865
+ )
3866
+ );
3867
+ } catch {
3868
+ }
3869
+ }
3870
+ }
3871
+ if (canonical !== void 0 && !out.includes(canonical)) out.push(canonical);
3872
+ }
3873
+ return out;
3874
+ }
3875
+ function cachedAsset(asset) {
3876
+ if (!asset?.requires) return asset;
3877
+ const requires = canonicalRequirements(asset.requires, asset.publisher);
3878
+ const same = requires.length === asset.requires.length && requires.every((r, i) => r === asset.requires?.[i]);
3879
+ return same ? asset : { ...asset, requires };
3880
+ }
3736
3881
  function pickRefs(r, key) {
3737
3882
  let v = r[key];
3738
3883
  if (typeof v === "string") {
@@ -4143,6 +4288,7 @@ function writeCuratedManifest(input) {
4143
4288
  fs11.writeFileSync(manifestPath, encodeSkaileManifest(manifest), "utf-8");
4144
4289
  return { wrote: true, manifestPath, assetCount: assets.length };
4145
4290
  }
4291
+ var DEFAULT_ASSET_VERSION = "0.1.0";
4146
4292
  function openManifest(libraryPath) {
4147
4293
  const dir = path16.resolve(libraryPath);
4148
4294
  const file = path16.join(dir, SKAILE_MANIFEST_FILENAME);
@@ -4156,6 +4302,8 @@ function openManifest(libraryPath) {
4156
4302
  return { editor, created: false };
4157
4303
  }
4158
4304
  function assertManifestEditable(libraryPath) {
4305
+ const file = path16.join(path16.resolve(libraryPath), SKAILE_MANIFEST_FILENAME);
4306
+ if (!fs11.existsSync(file)) return;
4159
4307
  openManifest(libraryPath);
4160
4308
  }
4161
4309
  function conflictingAssetRoot(libraryPath, kind, name, root) {
@@ -4323,7 +4471,9 @@ async function syncManifestWithDisk(libraryPath, defaultPublisher, registry, opt
4323
4471
  kind: e.kind,
4324
4472
  name: e.name,
4325
4473
  root,
4326
- version: e.version
4474
+ // A file with no version of its own (AGENT.md) reads as 0.1.0 in every library; the
4475
+ // manifest entry is where that version is kept.
4476
+ version: e.version || DEFAULT_ASSET_VERSION
4327
4477
  });
4328
4478
  }
4329
4479
  return { removed, unknownKind, skipped, failed };
@@ -4482,6 +4632,6 @@ function detectWorkspaceVersion(dir, filename = "skaile.yaml") {
4482
4632
  return raw.version === 2 ? 2 : 1;
4483
4633
  }
4484
4634
 
4485
- export { AssignmentNotFoundError, CatalogCache, CatalogConfigSchema, CatalogHttpError, DuplicateAssignmentError, DuplicateLibraryNameError, GitSyncDriver, InstanceHasConsumersError, InstanceNotFoundError, InterpolationError, KnowledgeManifestSchema, LIBRARY_BACKENDS, LIBRARY_OWNERSHIPS, LOCAL_CATALOG_URL, LibraryConfigSchema, LibraryError, LibraryInstanceRefSchema, LibraryManager, LibrarySectionSchema, LibrarySyncError, LocalCatalogSource, LocalIndex, LocalSyncDriver, LockAssignmentSchema, LockFileSchema, OfflineError, OperationNotPermittedError, PIN_POLICIES, PinPolicySchema, PresetAppliedSchema, PresetExpandedSchema, RemoteCatalogSource, RequiresEdgeSchema, RestCatalogSource, SidecarGit, SkaileConfigSchema, SourceNotFoundError, TarballHashMismatchError, UserLibraryNotFoundError, WorkspaceConfigV2Schema, applyNonStructuralUpgrade, applyPreset, applyPresetFromData, assertManifestEditable, assertValidLibraryName, classifyRef, cloneOrInitGitRepo, conflictingAssetRoot, createEmptyLockFile, curatedManifestOverlay, deriveSlug, detectChanges, detectNestedPresetRefs, detectWorkspaceVersion, ensureGitRepo, evaluateUpgrade, extractLibraryInstanceId, extractReferencedKeys, filterKey, getConfigDefaults, getDefaultValue, getSidecarRoot, getStoreManifestsDir, getStoreRoot, hasInterpolationTokens, installLibraryAsset, interpolate, isGitRepo, isLocalCatalogUrl, isSecretPlaceholder, knowledgeKindProvider, libraryDirMissing, listSidecarSlugsOnDisk, loadLockFile, loadWorkspaceV2, markLibraryUnregistered, migrateSidecarsToStoreIfNeeded, migrateWorkspaceConfig, missingLibraryDirMessage, missingRootAssets, parsePreset, parsePresetYaml, parseWorkspaceV2, projectConfigPath, pruneMissingRootAssets, queryInstancePickerChoices, recordLibraryRename, renamedLibraryName, resolveAllItems, resolveConfig, resolveIndexPath, resolveItem, resolvePin, resolveSidecarPaths, saveConfig, saveLockFile, saveWorkspaceV2, scanAuthoringLibraries, scanLibraryRoot, scanUnlistedAssets, setManifestPublisher, setOriginUrl, sha256Hex, stampManifestPublisher, storeSecrets, syncManifestWithDisk, trackOriginBranch, trpcGetUrl, unregisteredLibraryNames, upsertManifestAsset, validateAllPlaceholders, validateKnowledge, validateNestingDepth, validatePlaceholder, writeCuratedManifest };
4486
- //# sourceMappingURL=chunk-2F5AWQX5.js.map
4487
- //# sourceMappingURL=chunk-2F5AWQX5.js.map
4635
+ export { AssignmentNotFoundError, CatalogCache, CatalogConfigSchema, CatalogHttpError, DuplicateAssignmentError, DuplicateLibraryNameError, GitSyncDriver, InstanceHasConsumersError, InstanceNotFoundError, InterpolationError, KnowledgeManifestSchema, LIBRARY_BACKENDS, LIBRARY_OWNERSHIPS, LOCAL_CATALOG_URL, LibraryConfigSchema, LibraryError, LibraryInstanceRefSchema, LibraryManager, LibrarySectionSchema, LibrarySyncError, LocalCatalogSource, LocalIndex, LocalSyncDriver, LockAssignmentSchema, LockFileSchema, OfflineError, OperationNotPermittedError, PIN_POLICIES, PinPolicySchema, PresetAppliedSchema, PresetExpandedSchema, RemoteCatalogSource, RequiresEdgeSchema, RestCatalogSource, SidecarGit, SkaileConfigSchema, SourceNotFoundError, TarballHashMismatchError, UserLibraryNotFoundError, WorkspaceConfigV2Schema, applyNonStructuralUpgrade, applyPreset, applyPresetFromData, assertManifestEditable, assertValidLibraryName, classifyRef, cloneOrInitGitRepo, commitStoreManifest, conflictingAssetRoot, createEmptyLockFile, curatedManifestOverlay, deriveSlug, describeCatalogError, detectChanges, detectNestedPresetRefs, detectWorkspaceVersion, ensureGitRepo, evaluateUpgrade, extractLibraryInstanceId, extractReferencedKeys, filterKey, getConfigDefaults, getDefaultValue, getSidecarRoot, getStoreManifestsDir, getStoreRoot, hasInterpolationTokens, installLibraryAsset, interpolate, isGitRepo, isLocalCatalogUrl, isSecretPlaceholder, knowledgeKindProvider, libraryDirMissing, listSidecarSlugsOnDisk, loadLockFile, loadWorkspaceV2, markLibraryUnregistered, migrateSidecarsToStoreIfNeeded, migrateWorkspaceConfig, missingLibraryDirMessage, missingRootAssets, parsePreset, parsePresetYaml, parseWorkspaceV2, projectConfigPath, pruneMissingRootAssets, queryInstancePickerChoices, recordLibraryRename, renamedLibraryName, resolveAllItems, resolveConfig, resolveIndexPath, resolveItem, resolvePin, resolveSidecarPaths, saveConfig, saveLockFile, saveWorkspaceV2, scanAuthoringLibraries, scanLibraryRoot, scanUnlistedAssets, setManifestPublisher, setOriginUrl, sha256Hex, stampManifestPublisher, storeSecrets, syncManifestWithDisk, trackOriginBranch, trpcGetUrl, unregisteredLibraryNames, upsertManifestAsset, validateAllPlaceholders, validateKnowledge, validateNestingDepth, validatePlaceholder, writeCuratedManifest };
4636
+ //# sourceMappingURL=chunk-DKGEV6SQ.js.map
4637
+ //# sourceMappingURL=chunk-DKGEV6SQ.js.map