@skaile/workspaces 6.9.1 → 6.11.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 (397) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/ai-sdk.js +8 -8
  3. package/dist/app-sdk/index.js +1 -1
  4. package/dist/{asset-feeds-PANNQPEE.js → asset-feeds-PO2WC75V.js} +23 -23
  5. package/dist/{asset-feeds-PANNQPEE.js.map → asset-feeds-PO2WC75V.js.map} +1 -1
  6. package/dist/asset-manager/catalog-deployer.js +8 -8
  7. package/dist/asset-manager/history.js +8 -8
  8. package/dist/asset-manager/index.js +15 -15
  9. package/dist/asset-manager/installer.js +10 -10
  10. package/dist/asset-manager/renderers.js +9 -9
  11. package/dist/asset-manager/src/harness-switch-state.d.ts +30 -0
  12. package/dist/asset-manager/src/harness-switch-state.d.ts.map +1 -0
  13. package/dist/asset-manager/src/index.d.ts +49 -12
  14. package/dist/asset-manager/src/index.d.ts.map +1 -1
  15. package/dist/asset-manager/src/mcp-config.d.ts +6 -0
  16. package/dist/asset-manager/src/mcp-config.d.ts.map +1 -1
  17. package/dist/bridge/codex-app-server.js +1 -2
  18. package/dist/bridge/harnesses/claude-sdk.js +15 -15
  19. package/dist/bridge/harnesses/codex.js +16 -1927
  20. package/dist/bridge/harnesses/codex.js.map +1 -1
  21. package/dist/bridge/harnesses/continue.js +11 -11
  22. package/dist/bridge/harnesses/echo.js +5 -5
  23. package/dist/bridge/harnesses/gemini.js +8 -8
  24. package/dist/bridge/harnesses/goose.js +11 -11
  25. package/dist/bridge/harnesses/omp.js +62 -14
  26. package/dist/bridge/harnesses/omp.js.map +1 -1
  27. package/dist/bridge/harnesses/opencode.js +11 -11
  28. package/dist/bridge/harnesses/qwen.js +8 -8
  29. package/dist/bridge/index.js +21 -20
  30. package/dist/bridge/src/harness-model-check.d.ts +5 -4
  31. package/dist/bridge/src/harness-model-check.d.ts.map +1 -1
  32. package/dist/bridge/src/harnesses/codex.d.ts +13 -0
  33. package/dist/bridge/src/harnesses/codex.d.ts.map +1 -1
  34. package/dist/bridge/src/harnesses/omp.d.ts +24 -1
  35. package/dist/bridge/src/harnesses/omp.d.ts.map +1 -1
  36. package/dist/bridge/src/index.d.ts +1 -0
  37. package/dist/bridge/src/index.d.ts.map +1 -1
  38. package/dist/bridge/src/types.d.ts +7 -0
  39. package/dist/bridge/src/types.d.ts.map +1 -1
  40. package/dist/{chunk-TMQFOJ6F.js → chunk-2PVYDAFN.js} +3 -3
  41. package/dist/{chunk-TMQFOJ6F.js.map → chunk-2PVYDAFN.js.map} +1 -1
  42. package/dist/{chunk-7NN3P6VF.js → chunk-342UX2MG.js} +10 -5
  43. package/dist/chunk-342UX2MG.js.map +1 -0
  44. package/dist/{chunk-7UCPGQCW.js → chunk-45XL75RO.js} +11 -11
  45. package/dist/chunk-45XL75RO.js.map +1 -0
  46. package/dist/{chunk-CPMLMNI5.js → chunk-4NJVF3DV.js} +4 -4
  47. package/dist/{chunk-CPMLMNI5.js.map → chunk-4NJVF3DV.js.map} +1 -1
  48. package/dist/{chunk-KNY356I3.js → chunk-5KSGZP3E.js} +11 -4
  49. package/dist/chunk-5KSGZP3E.js.map +1 -0
  50. package/dist/{chunk-J45JCYS4.js → chunk-5M3S6DLV.js} +4 -4
  51. package/dist/{chunk-J45JCYS4.js.map → chunk-5M3S6DLV.js.map} +1 -1
  52. package/dist/{chunk-RZRJTCP2.js → chunk-5XYZNMMC.js} +4 -4
  53. package/dist/{chunk-RZRJTCP2.js.map → chunk-5XYZNMMC.js.map} +1 -1
  54. package/dist/{chunk-S47KU4YB.js → chunk-6NNXBXYI.js} +3 -3
  55. package/dist/{chunk-S47KU4YB.js.map → chunk-6NNXBXYI.js.map} +1 -1
  56. package/dist/{chunk-GZL6RN4Z.js → chunk-7FXOOUOC.js} +170 -50
  57. package/dist/chunk-7FXOOUOC.js.map +1 -0
  58. package/dist/{chunk-V5KG6CCV.js → chunk-7HRZACI4.js} +7 -2
  59. package/dist/chunk-7HRZACI4.js.map +1 -0
  60. package/dist/{chunk-U3FI4DVT.js → chunk-7K73MCI6.js} +7 -5
  61. package/dist/chunk-7K73MCI6.js.map +1 -0
  62. package/dist/{chunk-NDBHEOIA.js → chunk-7LJUK5JK.js} +9 -9
  63. package/dist/{chunk-NDBHEOIA.js.map → chunk-7LJUK5JK.js.map} +1 -1
  64. package/dist/{chunk-Q5SSRVD5.js → chunk-7O6SCI7B.js} +16 -14
  65. package/dist/chunk-7O6SCI7B.js.map +1 -0
  66. package/dist/{chunk-QBUJTVMY.js → chunk-7VBD5XUM.js} +4 -4
  67. package/dist/{chunk-QBUJTVMY.js.map → chunk-7VBD5XUM.js.map} +1 -1
  68. package/dist/{chunk-YEOG7CWQ.js → chunk-7ZL23M3X.js} +3 -3
  69. package/dist/{chunk-YEOG7CWQ.js.map → chunk-7ZL23M3X.js.map} +1 -1
  70. package/dist/{chunk-FZO64PLQ.js → chunk-BNLXZXZN.js} +81 -8
  71. package/dist/chunk-BNLXZXZN.js.map +1 -0
  72. package/dist/{chunk-LYVLDGML.js → chunk-CG63XGVV.js} +3 -3
  73. package/dist/{chunk-LYVLDGML.js.map → chunk-CG63XGVV.js.map} +1 -1
  74. package/dist/{chunk-PLVM6OIV.js → chunk-CH6UVEM5.js} +19 -15
  75. package/dist/chunk-CH6UVEM5.js.map +1 -0
  76. package/dist/{chunk-WEPTGUR4.js → chunk-CI4I34F4.js} +27 -56
  77. package/dist/chunk-CI4I34F4.js.map +1 -0
  78. package/dist/{chunk-4ROXSQEG.js → chunk-CJO3XKO7.js} +4 -4
  79. package/dist/{chunk-4ROXSQEG.js.map → chunk-CJO3XKO7.js.map} +1 -1
  80. package/dist/{chunk-RP3ML3QD.js → chunk-CLMIZ4N6.js} +3 -3
  81. package/dist/{chunk-RP3ML3QD.js.map → chunk-CLMIZ4N6.js.map} +1 -1
  82. package/dist/{chunk-OSABUEWA.js → chunk-CVUMZTNO.js} +4 -4
  83. package/dist/{chunk-OSABUEWA.js.map → chunk-CVUMZTNO.js.map} +1 -1
  84. package/dist/{chunk-X5SGUBUV.js → chunk-DKRD6CZL.js} +3 -3
  85. package/dist/{chunk-X5SGUBUV.js.map → chunk-DKRD6CZL.js.map} +1 -1
  86. package/dist/{chunk-5KWQMCH7.js → chunk-DRUAQ7IY.js} +6 -6
  87. package/dist/{chunk-5KWQMCH7.js.map → chunk-DRUAQ7IY.js.map} +1 -1
  88. package/dist/{chunk-GTAHU4N4.js → chunk-EB2LKPI6.js} +4 -4
  89. package/dist/{chunk-GTAHU4N4.js.map → chunk-EB2LKPI6.js.map} +1 -1
  90. package/dist/{chunk-3AIEJSQR.js → chunk-ESUF2ZYT.js} +3 -3
  91. package/dist/{chunk-3AIEJSQR.js.map → chunk-ESUF2ZYT.js.map} +1 -1
  92. package/dist/{chunk-ZUROGXJM.js → chunk-FECB7RI7.js} +14 -24
  93. package/dist/chunk-FECB7RI7.js.map +1 -0
  94. package/dist/{chunk-PBEDRYHP.js → chunk-FO2GU5L7.js} +230 -49
  95. package/dist/chunk-FO2GU5L7.js.map +1 -0
  96. package/dist/{chunk-SME3PK4L.js → chunk-FVOQPTK2.js} +8 -8
  97. package/dist/{chunk-SME3PK4L.js.map → chunk-FVOQPTK2.js.map} +1 -1
  98. package/dist/{chunk-MPO5CQUZ.js → chunk-GODUKPGD.js} +3 -3
  99. package/dist/{chunk-MPO5CQUZ.js.map → chunk-GODUKPGD.js.map} +1 -1
  100. package/dist/{chunk-FZTHL6SK.js → chunk-GQQIMKEP.js} +27 -33
  101. package/dist/chunk-GQQIMKEP.js.map +1 -0
  102. package/dist/{chunk-BRPEW3UL.js → chunk-GYRIO6RA.js} +3 -3
  103. package/dist/{chunk-BRPEW3UL.js.map → chunk-GYRIO6RA.js.map} +1 -1
  104. package/dist/{chunk-E675QKFG.js → chunk-HPQ2WDYC.js} +5 -5
  105. package/dist/{chunk-E675QKFG.js.map → chunk-HPQ2WDYC.js.map} +1 -1
  106. package/dist/{chunk-VEIWFS7Z.js → chunk-IIELRGIZ.js} +346 -89
  107. package/dist/chunk-IIELRGIZ.js.map +1 -0
  108. package/dist/{chunk-TUOHA6BM.js → chunk-IOXFT5D7.js} +3 -3
  109. package/dist/{chunk-TUOHA6BM.js.map → chunk-IOXFT5D7.js.map} +1 -1
  110. package/dist/{chunk-6PVRP3LW.js → chunk-IPCRQWNC.js} +17 -6
  111. package/dist/chunk-IPCRQWNC.js.map +1 -0
  112. package/dist/{chunk-PTJTOPE5.js → chunk-KOI7QFDH.js} +3 -3
  113. package/dist/{chunk-PTJTOPE5.js.map → chunk-KOI7QFDH.js.map} +1 -1
  114. package/dist/{chunk-EMSU6L7K.js → chunk-L74W5TVC.js} +7 -7
  115. package/dist/{chunk-EMSU6L7K.js.map → chunk-L74W5TVC.js.map} +1 -1
  116. package/dist/{chunk-WS3BOCAT.js → chunk-LCXQ4LVP.js} +16 -3
  117. package/dist/chunk-LCXQ4LVP.js.map +1 -0
  118. package/dist/{chunk-7QYBKUAS.js → chunk-LKBRBVVS.js} +3 -3
  119. package/dist/{chunk-7QYBKUAS.js.map → chunk-LKBRBVVS.js.map} +1 -1
  120. package/dist/{chunk-USSP43U3.js → chunk-LQWOU7S2.js} +3 -3
  121. package/dist/{chunk-USSP43U3.js.map → chunk-LQWOU7S2.js.map} +1 -1
  122. package/dist/chunk-LXD37LHF.js +688 -0
  123. package/dist/chunk-LXD37LHF.js.map +1 -0
  124. package/dist/{chunk-4KPQ6ILH.js → chunk-MEU2HHGV.js} +18 -9
  125. package/dist/chunk-MEU2HHGV.js.map +1 -0
  126. package/dist/{chunk-KVTV4LT2.js → chunk-MRTOKIEJ.js} +4 -4
  127. package/dist/{chunk-KVTV4LT2.js.map → chunk-MRTOKIEJ.js.map} +1 -1
  128. package/dist/{chunk-QC5BYUED.js → chunk-MS2IXLTC.js} +4 -4
  129. package/dist/{chunk-QC5BYUED.js.map → chunk-MS2IXLTC.js.map} +1 -1
  130. package/dist/{chunk-5J6N6LHL.js → chunk-PZS55HOX.js} +3 -3
  131. package/dist/{chunk-5J6N6LHL.js.map → chunk-PZS55HOX.js.map} +1 -1
  132. package/dist/{chunk-XDVR7QIT.js → chunk-QC4Q7PMQ.js} +6 -3
  133. package/dist/chunk-QC4Q7PMQ.js.map +1 -0
  134. package/dist/{chunk-IISEBVMA.js → chunk-RRKJHADP.js} +5 -5
  135. package/dist/{chunk-IISEBVMA.js.map → chunk-RRKJHADP.js.map} +1 -1
  136. package/dist/{chunk-MDCI4RSG.js → chunk-RZL4TOK3.js} +20 -6
  137. package/dist/chunk-RZL4TOK3.js.map +1 -0
  138. package/dist/{chunk-2UKNI2HJ.js → chunk-RZQCBFIU.js} +2 -2
  139. package/dist/{chunk-2UKNI2HJ.js.map → chunk-RZQCBFIU.js.map} +1 -1
  140. package/dist/{chunk-7TF5MNFK.js → chunk-S6NS3I3P.js} +2 -2
  141. package/dist/{chunk-7TF5MNFK.js.map → chunk-S6NS3I3P.js.map} +1 -1
  142. package/dist/{chunk-LMADWO4Q.js → chunk-SBAUZ7XH.js} +4 -4
  143. package/dist/{chunk-LMADWO4Q.js.map → chunk-SBAUZ7XH.js.map} +1 -1
  144. package/dist/{chunk-XB4XHGIE.js → chunk-SZ3XCZHC.js} +4 -4
  145. package/dist/{chunk-XB4XHGIE.js.map → chunk-SZ3XCZHC.js.map} +1 -1
  146. package/dist/{chunk-AQTAULXT.js → chunk-UHTCOYFJ.js} +111 -47
  147. package/dist/chunk-UHTCOYFJ.js.map +1 -0
  148. package/dist/{chunk-HQAPUPBE.js → chunk-V2VDTQ7A.js} +3 -3
  149. package/dist/{chunk-HQAPUPBE.js.map → chunk-V2VDTQ7A.js.map} +1 -1
  150. package/dist/{chunk-GNUA7XT2.js → chunk-VS6XC5JE.js} +3 -3
  151. package/dist/{chunk-GNUA7XT2.js.map → chunk-VS6XC5JE.js.map} +1 -1
  152. package/dist/chunk-WCHGUS7X.js +2443 -0
  153. package/dist/chunk-WCHGUS7X.js.map +1 -0
  154. package/dist/{chunk-5J6JWGY4.js → chunk-WDG5IVEA.js} +3 -3
  155. package/dist/{chunk-5J6JWGY4.js.map → chunk-WDG5IVEA.js.map} +1 -1
  156. package/dist/{chunk-QIV7H3GJ.js → chunk-WPTNYDDS.js} +5 -5
  157. package/dist/{chunk-QIV7H3GJ.js.map → chunk-WPTNYDDS.js.map} +1 -1
  158. package/dist/{chunk-BDAXHJC5.js → chunk-YPX7LQSW.js} +7 -7
  159. package/dist/{chunk-BDAXHJC5.js.map → chunk-YPX7LQSW.js.map} +1 -1
  160. package/dist/{chunk-UWD7YBDR.js → chunk-ZLDAPZIX.js} +4 -4
  161. package/dist/{chunk-UWD7YBDR.js.map → chunk-ZLDAPZIX.js.map} +1 -1
  162. package/dist/{chunk-YPTDPN2B.js → chunk-ZRKU7BRI.js} +3 -3
  163. package/dist/{chunk-YPTDPN2B.js.map → chunk-ZRKU7BRI.js.map} +1 -1
  164. package/dist/{claude-code-ILZ46SLO.js → claude-code-TDMSETH6.js} +5 -5
  165. package/dist/{claude-code-ILZ46SLO.js.map → claude-code-TDMSETH6.js.map} +1 -1
  166. package/dist/cli/index.js +327 -201
  167. package/dist/cli/index.js.map +1 -1
  168. package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -1
  169. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  170. package/dist/cli/src/commands/config.d.ts.map +1 -1
  171. package/dist/cli/src/commands/connector.d.ts.map +1 -1
  172. package/dist/cli/src/commands/harness-preflight.d.ts +3 -1
  173. package/dist/cli/src/commands/harness-preflight.d.ts.map +1 -1
  174. package/dist/cli/src/commands/harness.d.ts.map +1 -1
  175. package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
  176. package/dist/cli/src/commands/library-index.d.ts +3 -3
  177. package/dist/cli/src/commands/library-index.d.ts.map +1 -1
  178. package/dist/cli/src/commands/migrate-files.d.ts +8 -0
  179. package/dist/cli/src/commands/migrate-files.d.ts.map +1 -1
  180. package/dist/cli/src/commands/migrate-harness.d.ts.map +1 -1
  181. package/dist/cli/src/commands/migrate-providers.d.ts.map +1 -1
  182. package/dist/cli/src/commands/migrate.d.ts.map +1 -1
  183. package/dist/cli/src/commands/outdated.d.ts.map +1 -1
  184. package/dist/cli/src/commands/project.d.ts.map +1 -1
  185. package/dist/cli/src/commands/run.d.ts.map +1 -1
  186. package/dist/cli/src/commands/serve-preflight.d.ts +7 -5
  187. package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -1
  188. package/dist/cli/src/commands/serve.d.ts.map +1 -1
  189. package/dist/cli/src/commands/source.d.ts.map +1 -1
  190. package/dist/cli/src/commands/validate.d.ts.map +1 -1
  191. package/dist/cli/src/config-checks.d.ts +50 -12
  192. package/dist/cli/src/config-checks.d.ts.map +1 -1
  193. package/dist/cli/src/ensure-sources.d.ts.map +1 -1
  194. package/dist/cli/src/harness-error.d.ts +7 -0
  195. package/dist/cli/src/harness-error.d.ts.map +1 -1
  196. package/dist/cli/src/helpers.d.ts.map +1 -1
  197. package/dist/client/index.js +1 -1
  198. package/dist/client/src/client.d.ts +3 -0
  199. package/dist/client/src/client.d.ts.map +1 -1
  200. package/dist/connectors/config.js +5 -5
  201. package/dist/connectors/index.js +25 -24
  202. package/dist/connectors/src/index.d.ts +1 -1
  203. package/dist/connectors/src/index.d.ts.map +1 -1
  204. package/dist/connectors/src/managed-gitconfig.d.ts +12 -0
  205. package/dist/connectors/src/managed-gitconfig.d.ts.map +1 -1
  206. package/dist/connectors-IUJRBTCW.js +52 -0
  207. package/dist/{connectors-KTRUUKWG.js.map → connectors-IUJRBTCW.js.map} +1 -1
  208. package/dist/connectors-shared/index.js +2 -2
  209. package/dist/core/index.js +7 -7
  210. package/dist/core/logging.js +1 -1
  211. package/dist/core/manifest.js +2 -2
  212. package/dist/core/models.js +1 -1
  213. package/dist/core/publish-manifest.js +3 -3
  214. package/dist/core/ref.js +1 -1
  215. package/dist/core/runtime-assets.js +5 -5
  216. package/dist/core/src/index.d.ts +2 -2
  217. package/dist/core/src/index.d.ts.map +1 -1
  218. package/dist/core/src/lock.d.ts +7 -1
  219. package/dist/core/src/lock.d.ts.map +1 -1
  220. package/dist/core/src/models.d.ts.map +1 -1
  221. package/dist/core/src/repo-manager.d.ts +28 -0
  222. package/dist/core/src/repo-manager.d.ts.map +1 -1
  223. package/dist/core/src/run-state-ignore.d.ts +5 -3
  224. package/dist/core/src/run-state-ignore.d.ts.map +1 -1
  225. package/dist/core/src/workspace-config.d.ts.map +1 -1
  226. package/dist/core/workspace-config.js +4 -4
  227. package/dist/deploy/index.js +7 -7
  228. package/dist/discovery/index.js +5 -5
  229. package/dist/{ensure-sources-5QWKUIUD.js → ensure-sources-Q2TTZVLX.js} +35 -33
  230. package/dist/ensure-sources-Q2TTZVLX.js.map +1 -0
  231. package/dist/factory-assets/connectors/box.js +25 -24
  232. package/dist/factory-assets/connectors/deploy.js +25 -24
  233. package/dist/factory-assets/connectors/devserver.js +25 -24
  234. package/dist/factory-assets/connectors/flow/adapter.js +25 -24
  235. package/dist/factory-assets/connectors/flow/engine.js +8 -8
  236. package/dist/factory-assets/connectors/flow/run-flow.js +27 -26
  237. package/dist/factory-assets/connectors/flow.js +25 -24
  238. package/dist/factory-assets/connectors/git/exec.d.ts +7 -0
  239. package/dist/factory-assets/connectors/git/exec.d.ts.map +1 -1
  240. package/dist/factory-assets/connectors/git/repo.d.ts.map +1 -1
  241. package/dist/factory-assets/connectors/git.js +25 -24
  242. package/dist/factory-assets/connectors/gmail/adapter.d.ts.map +1 -1
  243. package/dist/factory-assets/connectors/gmail.js +25 -24
  244. package/dist/factory-assets/connectors/googledrive.js +25 -24
  245. package/dist/factory-assets/connectors/local.js +25 -24
  246. package/dist/factory-assets/connectors/mattermost.js +25 -24
  247. package/dist/factory-assets/connectors/memory.js +25 -24
  248. package/dist/factory-assets/connectors/minio/adapter.d.ts.map +1 -1
  249. package/dist/factory-assets/connectors/minio.js +25 -24
  250. package/dist/factory-assets/connectors/postgres/adapter.d.ts.map +1 -1
  251. package/dist/factory-assets/connectors/postgres.js +25 -24
  252. package/dist/factory-assets/connectors/s3/driver.d.ts.map +1 -1
  253. package/dist/factory-assets/connectors/s3.js +25 -24
  254. package/dist/factory-assets/connectors/sharepoint.js +25 -24
  255. package/dist/factory-assets/connectors/sqlite/adapter.d.ts.map +1 -1
  256. package/dist/factory-assets/connectors/sqlite.js +25 -24
  257. package/dist/factory-assets/connectors/static-server.js +25 -24
  258. package/dist/factory-assets/connectors/tunnel.js +25 -24
  259. package/dist/factory-assets/connectors/webdav.js +25 -24
  260. package/dist/factory-assets/connectors/xstate-store.js +25 -24
  261. package/dist/factory-assets/connectors/xstate.js +25 -24
  262. package/dist/{flows-UCP6ZUYS.js → flows-J64L5MGJ.js} +12 -12
  263. package/dist/{flows-UCP6ZUYS.js.map → flows-J64L5MGJ.js.map} +1 -1
  264. package/dist/{helpers-INS4B7OQ.js → helpers-S6AQGXRH.js} +32 -30
  265. package/dist/{helpers-INS4B7OQ.js.map → helpers-S6AQGXRH.js.map} +1 -1
  266. package/dist/library/index.js +11 -11
  267. package/dist/library/install.js +4 -4
  268. package/dist/library/src/index.d.ts +2 -2
  269. package/dist/library/src/index.d.ts.map +1 -1
  270. package/dist/library/src/library.d.ts +6 -2
  271. package/dist/library/src/library.d.ts.map +1 -1
  272. package/dist/library/src/local/db.d.ts.map +1 -1
  273. package/dist/library/src/local/library.d.ts +10 -3
  274. package/dist/library/src/local/library.d.ts.map +1 -1
  275. package/dist/library/src/local/local-catalog-source.d.ts +0 -9
  276. package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
  277. package/dist/library/src/local/schema.d.ts +27 -20
  278. package/dist/library/src/local/schema.d.ts.map +1 -1
  279. package/dist/library/src/manifest-writer.d.ts +13 -0
  280. package/dist/library/src/manifest-writer.d.ts.map +1 -1
  281. package/dist/library/src/remote/index.d.ts +1 -1
  282. package/dist/library/src/remote/index.d.ts.map +1 -1
  283. package/dist/library/src/remote/remote-catalog-source.d.ts +6 -0
  284. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  285. package/dist/library/src/sync/git-driver.d.ts.map +1 -1
  286. package/dist/{library-publish-AZTYRASL.js → library-publish-7U4TJNQX.js} +54 -55
  287. package/dist/library-publish-7U4TJNQX.js.map +1 -0
  288. package/dist/model-endpoint/index.js +10 -10
  289. package/dist/open-library-K6O6OVW5.js +61 -0
  290. package/dist/{open-library-3HMXYGUF.js.map → open-library-K6O6OVW5.js.map} +1 -1
  291. package/dist/open-registry-4HNCWOCN.js +32 -0
  292. package/dist/{open-registry-BHBHQMBA.js.map → open-registry-4HNCWOCN.js.map} +1 -1
  293. package/dist/paths-PXBWY532.js +22 -0
  294. package/dist/{paths-77PXOXZY.js.map → paths-PXBWY532.js.map} +1 -1
  295. package/dist/{plugin-store-XQP2CRYH.js → plugin-store-ZC3EGZ3D.js} +10 -10
  296. package/dist/{plugin-store-XQP2CRYH.js.map → plugin-store-ZC3EGZ3D.js.map} +1 -1
  297. package/dist/project-ZWIZZIUT.js +88 -0
  298. package/dist/{project-HVNPK2ZF.js.map → project-ZWIZZIUT.js.map} +1 -1
  299. package/dist/resolver/index.js +8 -8
  300. package/dist/runner/index.js +40 -40
  301. package/dist/runner/src/serve.d.ts.map +1 -1
  302. package/dist/runner/src/turn-ids.d.ts +70 -0
  303. package/dist/runner/src/turn-ids.d.ts.map +1 -0
  304. package/dist/runner/src/turn-scheduler.d.ts +7 -0
  305. package/dist/runner/src/turn-scheduler.d.ts.map +1 -1
  306. package/dist/sdk/asset-manager.js +15 -15
  307. package/dist/sdk/bridge.js +21 -20
  308. package/dist/sdk/client.js +1 -1
  309. package/dist/sdk/core.js +7 -7
  310. package/dist/sdk/flow.js +8 -8
  311. package/dist/sdk/index.js +41 -41
  312. package/dist/sdk/resolver.js +8 -8
  313. package/dist/sdk/runner.js +40 -40
  314. package/dist/sdk/session.js +2 -2
  315. package/dist/sdk/transport/ws/server.js +8 -8
  316. package/dist/sdk/transport/ws.js +8 -8
  317. package/dist/sdk/transport.js +8 -8
  318. package/dist/sdk/types.js +1 -1
  319. package/dist/serve-preflight-E3IEZTTF.js +59 -0
  320. package/dist/{serve-preflight-NHZOKHIC.js.map → serve-preflight-E3IEZTTF.js.map} +1 -1
  321. package/dist/session/index.js +2 -2
  322. package/dist/session/src/dispatcher.d.ts +4 -1
  323. package/dist/session/src/dispatcher.d.ts.map +1 -1
  324. package/dist/{setup-EX7Z7XRN.js → setup-V4EXOMVQ.js} +33 -31
  325. package/dist/setup-V4EXOMVQ.js.map +1 -0
  326. package/dist/{skills-DE2BDQ6G.js → skills-5D4KDVPJ.js} +13 -13
  327. package/dist/{skills-DE2BDQ6G.js.map → skills-5D4KDVPJ.js.map} +1 -1
  328. package/dist/source-O7XXDX55.js +89 -0
  329. package/dist/{source-URRPRGMZ.js.map → source-O7XXDX55.js.map} +1 -1
  330. package/dist/{source-manifest-publish-ZWRYRJ2U.js → source-manifest-publish-GUU4LX2S.js} +54 -53
  331. package/dist/source-manifest-publish-GUU4LX2S.js.map +1 -0
  332. package/dist/transport/index.js +8 -8
  333. package/dist/transport/src/ws/server.d.ts.map +1 -1
  334. package/dist/transport/ws/server.js +8 -8
  335. package/dist/transport/ws.js +8 -8
  336. package/dist/tui/index.js +40 -40
  337. package/dist/types/index.js +1 -1
  338. package/dist/types/manifests.js +1 -1
  339. package/dist/types/src/capabilities.d.ts +2 -1
  340. package/dist/types/src/capabilities.d.ts.map +1 -1
  341. package/dist/types/src/events.d.ts +2 -1
  342. package/dist/types/src/events.d.ts.map +1 -1
  343. package/dist/types/src/index.d.ts +2 -0
  344. package/dist/types/src/index.d.ts.map +1 -1
  345. package/dist/types/src/manifests/agent.d.ts +2 -0
  346. package/dist/types/src/manifests/agent.d.ts.map +1 -1
  347. package/dist/types/src/protocol.d.ts +2 -0
  348. package/dist/types/src/protocol.d.ts.map +1 -1
  349. package/dist/types/src/turn-ids.d.ts +62 -0
  350. package/dist/types/src/turn-ids.d.ts.map +1 -0
  351. package/dist/types/src/version.d.ts +12 -1
  352. package/dist/types/src/version.d.ts.map +1 -1
  353. package/dist/workspace-plugin/adapters/mcp.js +32 -31
  354. package/dist/workspace-plugin/adapters/omp.js +14 -14
  355. package/dist/workspace-plugin/index.js +2 -2
  356. package/package.json +1 -1
  357. package/dist/chunk-4KPQ6ILH.js.map +0 -1
  358. package/dist/chunk-6PVRP3LW.js.map +0 -1
  359. package/dist/chunk-7NN3P6VF.js.map +0 -1
  360. package/dist/chunk-7UCPGQCW.js.map +0 -1
  361. package/dist/chunk-AQTAULXT.js.map +0 -1
  362. package/dist/chunk-BLBXOG5Q.js +0 -299
  363. package/dist/chunk-BLBXOG5Q.js.map +0 -1
  364. package/dist/chunk-C324IAXI.js +0 -160
  365. package/dist/chunk-C324IAXI.js.map +0 -1
  366. package/dist/chunk-DJSGQW2Q.js +0 -334
  367. package/dist/chunk-DJSGQW2Q.js.map +0 -1
  368. package/dist/chunk-FZO64PLQ.js.map +0 -1
  369. package/dist/chunk-FZTHL6SK.js.map +0 -1
  370. package/dist/chunk-GYPPVANR.js +0 -357
  371. package/dist/chunk-GYPPVANR.js.map +0 -1
  372. package/dist/chunk-GZL6RN4Z.js.map +0 -1
  373. package/dist/chunk-KNY356I3.js.map +0 -1
  374. package/dist/chunk-LOO5CB5M.js +0 -12
  375. package/dist/chunk-LOO5CB5M.js.map +0 -1
  376. package/dist/chunk-MDCI4RSG.js.map +0 -1
  377. package/dist/chunk-PBEDRYHP.js.map +0 -1
  378. package/dist/chunk-PLVM6OIV.js.map +0 -1
  379. package/dist/chunk-Q5SSRVD5.js.map +0 -1
  380. package/dist/chunk-U3FI4DVT.js.map +0 -1
  381. package/dist/chunk-V5KG6CCV.js.map +0 -1
  382. package/dist/chunk-VEIWFS7Z.js.map +0 -1
  383. package/dist/chunk-WEPTGUR4.js.map +0 -1
  384. package/dist/chunk-WS3BOCAT.js.map +0 -1
  385. package/dist/chunk-XDVR7QIT.js.map +0 -1
  386. package/dist/chunk-ZUROGXJM.js.map +0 -1
  387. package/dist/connectors-KTRUUKWG.js +0 -51
  388. package/dist/ensure-sources-5QWKUIUD.js.map +0 -1
  389. package/dist/library-publish-AZTYRASL.js.map +0 -1
  390. package/dist/open-library-3HMXYGUF.js +0 -59
  391. package/dist/open-registry-BHBHQMBA.js +0 -32
  392. package/dist/paths-77PXOXZY.js +0 -22
  393. package/dist/project-HVNPK2ZF.js +0 -89
  394. package/dist/serve-preflight-NHZOKHIC.js +0 -59
  395. package/dist/setup-EX7Z7XRN.js.map +0 -1
  396. package/dist/source-URRPRGMZ.js +0 -88
  397. package/dist/source-manifest-publish-ZWRYRJ2U.js.map +0 -1
@@ -1,12 +1,12 @@
1
- import { readManifestSourceConfig, discoverAssetsInTree, barePublisher, createDefaultKindRegistry, sharesItsFolder, SEMVER_RE, invalidSemverMessage, parseManifestFile } from './chunk-5KWQMCH7.js';
2
- import { installFromManifest, assertSafeManifestPath } from './chunk-OSABUEWA.js';
3
- import { PresetManifestSchema } from './chunk-WS3BOCAT.js';
4
- import { defaultLibraryDir, resolveLibraryDir, GLOBAL_INSTALL_DIR_NAME, readLock, buildLibraryLockEntries, writeLock, mergeLockFile, buildLockFile, ManifestYamlEditor } from './chunk-4KPQ6ILH.js';
5
- import { getGlobalCacheDir, storeManifestSlug, priorStoreManifestSlugs, resolveSourcePublisher } from './chunk-FZO64PLQ.js';
1
+ import { readManifestSourceConfig, discoverAssetsInTree, barePublisher, createDefaultKindRegistry, sharesItsFolder, SEMVER_RE, invalidSemverMessage, parseManifestFile } from './chunk-DRUAQ7IY.js';
2
+ import { installFromManifest, assertSafeManifestPath } from './chunk-CVUMZTNO.js';
3
+ import { PresetManifestSchema } from './chunk-LCXQ4LVP.js';
4
+ import { defaultLibraryDir, resolveLibraryDir, GLOBAL_INSTALL_DIR_NAME, readLock, buildLibraryLockEntries, writeLock, mergeLockFile, buildLockFile, ManifestYamlEditor } from './chunk-MEU2HHGV.js';
5
+ import { getGlobalCacheDir, storeManifestSlug, priorStoreManifestSlugs, resolveSourcePublisher } from './chunk-BNLXZXZN.js';
6
6
  import { userConfigPath, globalSkaileDir, mergeLegacyEntriesInto, migrateLegacyDir, globalCacheRoot } from './chunk-L5VSIPQD.js';
7
- import { encodeSkaileManifest, expandManifestFiles, SKAILE_MANIFEST_FILENAME, librarySymlinkMessage, loadSkPublishManifest } from './chunk-QC5BYUED.js';
8
- import { scanDirectory } from './chunk-GNUA7XT2.js';
9
- import { parseAssetRef, assetRefToStr, isValidAssetName } from './chunk-V5KG6CCV.js';
7
+ import { encodeSkaileManifest, expandManifestFiles, SKAILE_MANIFEST_FILENAME, librarySymlinkMessage, loadSkPublishManifest } from './chunk-MS2IXLTC.js';
8
+ import { scanDirectory } from './chunk-VS6XC5JE.js';
9
+ import { parseAssetRef, assetRefToStr, isValidAssetName } from './chunk-7HRZACI4.js';
10
10
  import { __export } from './chunk-NSBPE2FW.js';
11
11
  import * as fs14 from 'fs';
12
12
  import { existsSync, mkdirSync, symlinkSync, copyFileSync, cpSync } from 'fs';
@@ -16,11 +16,12 @@ import { stringify, parse, parseDocument } from 'yaml';
16
16
  import * as z3 from 'zod';
17
17
  import * as crypto from 'crypto';
18
18
  import { randomBytes, createHash } from 'crypto';
19
- import { eq, and, like } from 'drizzle-orm';
19
+ import { eq, and, isNull, desc, asc, like } from 'drizzle-orm';
20
20
  import { createClient } from '@libsql/client';
21
21
  import { drizzle } from 'drizzle-orm/libsql';
22
22
  import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';
23
23
  import { spawnSync } from 'child_process';
24
+ import { fileURLToPath } from 'url';
24
25
  import { valid, gt } from 'semver';
25
26
  import * as os from 'os';
26
27
  import { isDeepStrictEqual } from 'util';
@@ -276,8 +277,8 @@ var libraries = sqliteTable("libraries", {
276
277
  /** Last-update ISO timestamp. */
277
278
  updatedAt: text("updated_at").notNull()
278
279
  });
279
- var assetDefinitions = sqliteTable("asset_definitions", {
280
- id: text("id").primaryKey(),
280
+ var assetDefinitions = sqliteTable("library_assets", {
281
+ id: text("id").notNull(),
281
282
  kind: text("kind").notNull(),
282
283
  publisher: text("publisher").notNull(),
283
284
  name: text("name").notNull(),
@@ -508,6 +509,31 @@ CREATE INDEX IF NOT EXISTS idx_asset_defs_kind ON asset_definitions(kind)
508
509
  CREATE INDEX IF NOT EXISTS idx_asset_defs_publisher ON asset_definitions(publisher);
509
510
  CREATE INDEX IF NOT EXISTS idx_asset_defs_library_id ON asset_definitions(library_id);
510
511
 
512
+ -- One row per library, ref and version. The CLI reads and writes this table only; the table
513
+ -- above keeps its one-row-per-ref shape (id is the only key) for older CLIs that share this
514
+ -- file and upsert it with ON CONFLICT(id).
515
+ CREATE TABLE IF NOT EXISTS library_assets (
516
+ id TEXT NOT NULL,
517
+ kind TEXT NOT NULL,
518
+ publisher TEXT NOT NULL,
519
+ name TEXT NOT NULL,
520
+ version TEXT NOT NULL,
521
+ sha256 TEXT,
522
+ description TEXT,
523
+ license TEXT,
524
+ category TEXT,
525
+ manifest TEXT NOT NULL,
526
+ library_id TEXT REFERENCES libraries(id) ON DELETE CASCADE,
527
+ soft_deps TEXT,
528
+ kind_provider_version TEXT,
529
+ cached_at TEXT NOT NULL,
530
+ updated_at TEXT NOT NULL
531
+ );
532
+ CREATE INDEX IF NOT EXISTS idx_library_assets_kind ON library_assets(kind);
533
+ CREATE INDEX IF NOT EXISTS idx_library_assets_publisher ON library_assets(publisher);
534
+ CREATE INDEX IF NOT EXISTS idx_library_assets_library_id ON library_assets(library_id);
535
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_library_assets_library_ref ON library_assets(library_id, id);
536
+
511
537
  CREATE TABLE IF NOT EXISTS instances (
512
538
  id TEXT PRIMARY KEY,
513
539
  def_ref TEXT NOT NULL,
@@ -708,6 +734,20 @@ async function purgeOrphanedAssetDefinitions(client) {
708
734
  );
709
735
  await client.execute(`PRAGMA user_version = ${ORPHAN_PURGE_VERSION}`);
710
736
  }
737
+ async function tablePresent(client, name) {
738
+ const rs = await client.execute({
739
+ sql: "SELECT name FROM sqlite_master WHERE type='table' AND name=?",
740
+ args: [name]
741
+ });
742
+ return rs.rows.length > 0;
743
+ }
744
+ async function seedLibraryAssets(client) {
745
+ const cols = ASSET_DEFINITIONS_COLUMNS.join(", ");
746
+ await client.execute(
747
+ `INSERT INTO library_assets (${cols}) SELECT ${cols} FROM asset_definitions
748
+ WHERE library_id IN (SELECT id FROM libraries)`
749
+ );
750
+ }
711
751
  function assertNoLegacyLibDb(newDbPath) {
712
752
  if (fs14.existsSync(newDbPath)) return;
713
753
  const parent = path16.dirname(newDbPath);
@@ -752,6 +792,7 @@ async function createLibraryDb(dbPath) {
752
792
  if (await legacySubscriptionsPresent(client) && !await assignmentsPresent(client)) {
753
793
  await runAssignmentsMigration(client);
754
794
  }
795
+ const hadLibraryAssets = await tablePresent(client, "library_assets");
755
796
  await client.executeMultiple(DDL);
756
797
  try {
757
798
  await client.execute("ALTER TABLE asset_definitions ADD COLUMN soft_deps TEXT");
@@ -762,6 +803,7 @@ async function createLibraryDb(dbPath) {
762
803
  }
763
804
  await healStaleAssetDefinitionsFk(client);
764
805
  await purgeOrphanedAssetDefinitions(client);
806
+ if (!hadLibraryAssets) await seedLibraryAssets(client);
765
807
  if (await librariesPresent(client)) {
766
808
  const storeRows = await client.execute({
767
809
  sql: "SELECT id, name FROM libraries WHERE backend = ?",
@@ -982,7 +1024,9 @@ var LocalIndex = class {
982
1024
  * Insert or update a cached asset definition.
983
1025
  *
984
1026
  * Not on the IAssetIndex interface -- used by catalog sources (Task 1.5)
985
- * and tests. INSERT OR REPLACE semantics.
1027
+ * and tests. A row is keyed by (library, `id`): the same ref and version held by another
1028
+ * library is a row of its own and is never replaced. A def without a library replaces the
1029
+ * library-less row of the same `id`.
986
1030
  */
987
1031
  async upsertAssetDef(def) {
988
1032
  const db = await this.ensureDb();
@@ -994,8 +1038,7 @@ var LocalIndex = class {
994
1038
  providerVersion = provider.providerVersion;
995
1039
  }
996
1040
  }
997
- await db.insert(assetDefinitions).values({
998
- id: def.id,
1041
+ const fields = {
999
1042
  kind: def.kind,
1000
1043
  publisher: def.publisher,
1001
1044
  name: def.name,
@@ -1008,26 +1051,22 @@ var LocalIndex = class {
1008
1051
  libraryId: def.libraryId ?? null,
1009
1052
  softDeps: def.softDeps ? JSON.stringify(def.softDeps) : null,
1010
1053
  kindProviderVersion: providerVersion,
1011
- cachedAt: def.cachedAt?.toISOString() ?? now,
1012
1054
  updatedAt: now
1013
- }).onConflictDoUpdate({
1014
- target: assetDefinitions.id,
1015
- set: {
1016
- kind: def.kind,
1017
- publisher: def.publisher,
1018
- name: def.name,
1019
- version: def.version,
1020
- sha256: def.sha256 ?? null,
1021
- description: def.description ?? null,
1022
- license: def.license ?? null,
1023
- category: def.category ?? null,
1024
- manifest: JSON.stringify(def.manifest),
1025
- libraryId: def.libraryId ?? null,
1026
- softDeps: def.softDeps ? JSON.stringify(def.softDeps) : null,
1027
- kindProviderVersion: providerVersion,
1028
- updatedAt: now
1029
- }
1055
+ };
1056
+ const insert = (tx) => tx.insert(assetDefinitions).values({ id: def.id, ...fields, cachedAt: def.cachedAt?.toISOString() ?? now }).onConflictDoUpdate({
1057
+ target: [assetDefinitions.libraryId, assetDefinitions.id],
1058
+ set: fields
1030
1059
  }).run();
1060
+ if (def.libraryId) {
1061
+ await insert(db);
1062
+ return;
1063
+ }
1064
+ await db.transaction(async (tx) => {
1065
+ await tx.delete(assetDefinitions).where(
1066
+ and(isNull(assetDefinitions.libraryId), eq(assetDefinitions.id, def.id))
1067
+ ).run();
1068
+ await insert(tx);
1069
+ });
1031
1070
  }
1032
1071
  /**
1033
1072
  * Delete this library's cached asset defs whose ref is not in `keepRefs`.
@@ -1049,10 +1088,20 @@ var LocalIndex = class {
1049
1088
  }
1050
1089
  return stale;
1051
1090
  }
1052
- async getAssetDef(ref) {
1091
+ /**
1092
+ * One row of `ref`. With `libraryId`, that library's row. Without it, the row of the default
1093
+ * library, then of the library that sorts first by name, then a row without a library: the
1094
+ * order `add` uses to break a tie between equal versions.
1095
+ */
1096
+ async getAssetDef(ref, libraryId) {
1053
1097
  const db = await this.ensureDb();
1054
- const row = await db.select().from(assetDefinitions).where(eq(assetDefinitions.id, ref)).get();
1055
- return row ? rowToAssetDef(row) : null;
1098
+ const row = await db.select({ def: assetDefinitions }).from(assetDefinitions).leftJoin(libraries, eq(assetDefinitions.libraryId, libraries.id)).where(
1099
+ libraryId ? and(
1100
+ eq(assetDefinitions.id, ref),
1101
+ eq(assetDefinitions.libraryId, libraryId)
1102
+ ) : eq(assetDefinitions.id, ref)
1103
+ ).orderBy(desc(libraries.isDefault), asc(libraries.name)).get();
1104
+ return row ? rowToAssetDef(row.def) : null;
1056
1105
  }
1057
1106
  async listAssetDefs(filter) {
1058
1107
  const db = await this.ensureDb();
@@ -1466,6 +1515,9 @@ function cloneOrInitGitRepo(libPath, url, branch) {
1466
1515
  }
1467
1516
  if (git(libPath, ["rev-parse", "--verify", "--quiet", "HEAD"]).status !== 0) {
1468
1517
  spawnGit(libPath, ["symbolic-ref", "HEAD", `refs/heads/${branch}`], "symbolic-ref");
1518
+ if (git(libPath, ["rev-parse", "--verify", "--quiet", `refs/remotes/origin/${branch}`]).status === 0) {
1519
+ spawnGit(libPath, ["checkout", "-q", "-B", branch, `origin/${branch}`], "checkout");
1520
+ }
1469
1521
  return { branch, cloned: true };
1470
1522
  }
1471
1523
  return {
@@ -1652,6 +1704,7 @@ var GitSyncDriver = class {
1652
1704
  const pushed = countCommits(lib.path, `${baseRef}..${local}`) ?? countCommits(lib.path, local) ?? 0;
1653
1705
  const behind = remoteHasNoBranch ? 0 : countCommits(lib.path, `${local}..${baseRef}`) ?? 0;
1654
1706
  git(lib.path, ["update-ref", "-d", countRef]);
1707
+ const remoteWasEmpty = remoteHasNoBranch && remoteHoldsNoBranch(lib.path);
1655
1708
  const pushRes = git(lib.path, args);
1656
1709
  if (pushRes.status !== 0 && /non-fast-forward|fetch first|updates were rejected/i.test(pushRes.stderr)) {
1657
1710
  if (pushed === 0 && behind > 0) {
@@ -1666,6 +1719,7 @@ var GitSyncDriver = class {
1666
1719
  );
1667
1720
  }
1668
1721
  ok(pushRes, "push");
1722
+ if (remoteWasEmpty) pointLocalRemoteHeadAt(lib.path, cfg.branch);
1669
1723
  return { pushed };
1670
1724
  }
1671
1725
  async propose(lib, opts) {
@@ -1719,6 +1773,37 @@ var GitSyncDriver = class {
1719
1773
  throw new OperationNotPermittedError("publish", "git libraries cannot publish; use store");
1720
1774
  }
1721
1775
  };
1776
+ function remoteHoldsNoBranch(cwd) {
1777
+ const r = spawnSync("git", ["ls-remote", "--heads", "origin"], {
1778
+ cwd,
1779
+ encoding: "utf-8",
1780
+ env: { ...process.env, GIT_TERMINAL_PROMPT: "0" }
1781
+ });
1782
+ return r.status === 0 && r.stdout.trim() === "";
1783
+ }
1784
+ function pointLocalRemoteHeadAt(cwd, branch) {
1785
+ const url = git(cwd, ["remote", "get-url", "origin"]).stdout.trim();
1786
+ if (!url) return;
1787
+ let remoteDir;
1788
+ if (url.startsWith("file://")) {
1789
+ try {
1790
+ remoteDir = fileURLToPath(url);
1791
+ } catch {
1792
+ return;
1793
+ }
1794
+ } else if (/^[a-z][a-z0-9+.-]*:\/\//i.test(url) || /^[^/\\]+@[^/\\]+:/.test(url)) {
1795
+ return;
1796
+ } else {
1797
+ remoteDir = path16.resolve(cwd, url);
1798
+ }
1799
+ const bare = spawnSync("git", ["--git-dir", remoteDir, "rev-parse", "--is-bare-repository"], {
1800
+ encoding: "utf-8"
1801
+ });
1802
+ if (bare.status !== 0 || bare.stdout.trim() !== "true") return;
1803
+ spawnSync("git", ["--git-dir", remoteDir, "symbolic-ref", "HEAD", `refs/heads/${branch}`], {
1804
+ encoding: "utf-8"
1805
+ });
1806
+ }
1722
1807
 
1723
1808
  // library/src/sync/local-driver.ts
1724
1809
  var LocalSyncDriver = class {
@@ -2001,9 +2086,8 @@ var LocalCatalogSource = class {
2001
2086
  sidecarManifestFile;
2002
2087
  publisher;
2003
2088
  async resolve(ref) {
2004
- const def = await this.library.getAssetDef(ref);
2005
- if (!def || def.libraryId !== this.sourceId) return null;
2006
- return defToCatalogAsset(def);
2089
+ const def = await this.library.getAssetDef(ref, this.sourceId);
2090
+ return def ? defToCatalogAsset(def) : null;
2007
2091
  }
2008
2092
  async listAssets(filter) {
2009
2093
  const libraryFilter = { libraryId: this.sourceId };
@@ -2066,9 +2150,7 @@ var LocalCatalogSource = class {
2066
2150
  async sync(syncOpts) {
2067
2151
  const result = this.scan(syncOpts);
2068
2152
  const exclude = syncOpts?.exclude;
2069
- const only = syncOpts?.only;
2070
- const kept = exclude ? result.assets.filter((a) => !exclude(a)) : result.assets;
2071
- const assets = only ? kept.filter((a) => only.has(a.ref)) : kept;
2153
+ const assets = exclude ? result.assets.filter((a) => !exclude(a)) : result.assets;
2072
2154
  let assetsUpdated = 0;
2073
2155
  const errors = [];
2074
2156
  const softDepsByRef = /* @__PURE__ */ new Map();
@@ -2111,11 +2193,10 @@ var LocalCatalogSource = class {
2111
2193
  advisories.push(`${w.path}: ${w.warning}`);
2112
2194
  }
2113
2195
  const keepRefs = assets.map((a) => a.ref);
2114
- let pruned = [];
2115
- if (!syncOpts?.only && (result.assets.length > 0 || isReadableDirectory(this.rootPath))) {
2116
- pruned = await this.library.pruneAssetDefs(this.sourceId, keepRefs);
2196
+ if (result.assets.length > 0 || isReadableDirectory(this.rootPath)) {
2197
+ await this.library.pruneAssetDefs(this.sourceId, keepRefs);
2117
2198
  }
2118
- return { assetsFound: assets.length, assetsUpdated, errors, advisories, pruned };
2199
+ return { assetsFound: assets.length, assetsUpdated, errors, advisories };
2119
2200
  }
2120
2201
  };
2121
2202
  function isReadableDirectory(dir) {
@@ -4073,6 +4154,7 @@ function describeProbeFailure(err) {
4073
4154
  function asError(err) {
4074
4155
  return err instanceof Error ? err : new Error(String(err));
4075
4156
  }
4157
+ var processStoreProbe = new StoreProbe();
4076
4158
 
4077
4159
  // library/src/remote/rest-catalog-source.ts
4078
4160
  var DEFAULT_TTL_MS2 = 864e5;
@@ -4812,6 +4894,10 @@ async function syncManifestWithDisk(libraryPath, defaultPublisher, registry, opt
4812
4894
  const listedAtStart = new Set(
4813
4895
  (loadSkPublishManifest(libraryPath)?.assets ?? []).map((a) => `${a.kind}:${a.name}`)
4814
4896
  );
4897
+ const versionless = new Set(
4898
+ (loadSkPublishManifest(libraryPath)?.assets ?? []).filter((a) => !a.source && !a.version).map((a) => `${a.kind}:${a.name}`)
4899
+ );
4900
+ const versionAdded = [];
4815
4901
  for (const e of scanned) {
4816
4902
  if (!isParsable(e.source)) {
4817
4903
  skipped.push({
@@ -4871,16 +4957,50 @@ async function syncManifestWithDisk(libraryPath, defaultPublisher, registry, opt
4871
4957
  });
4872
4958
  }
4873
4959
  if (!inManifest) continue;
4960
+ const version = e.version || DEFAULT_ASSET_VERSION;
4874
4961
  upsertManifestAsset(libraryPath, {
4875
4962
  kind: e.kind,
4876
4963
  name: e.name,
4877
4964
  root,
4878
4965
  // A file with no version of its own (AGENT.md) reads as 0.1.0 in every library; the
4879
4966
  // manifest entry is where that version is kept.
4880
- version: e.version || DEFAULT_ASSET_VERSION
4967
+ version
4968
+ });
4969
+ if (versionless.has(key)) versionAdded.push({ kind: e.kind, name: e.name, version });
4970
+ }
4971
+ return { removed, unknownKind, skipped, failed, renamed, superseded, versionAdded };
4972
+ }
4973
+ async function addMissingEntryVersions(libraryPath, registry) {
4974
+ const manifest = loadSkPublishManifest(libraryPath);
4975
+ if (!manifest || manifest.source) return [];
4976
+ const versionless = (manifest.assets ?? []).filter((a) => !a.source && !a.version);
4977
+ if (versionless.length === 0) return [];
4978
+ const scanned = await scanDirectory(libraryPath, manifest.publisher ?? "probe", {
4979
+ knownKinds: new Set(registry.getAllKinds()),
4980
+ keepDuplicates: true
4981
+ });
4982
+ const added = [];
4983
+ for (const a of versionless) {
4984
+ const rootDir = a.root ? path16.resolve(libraryPath, a.root) : void 0;
4985
+ const found = scanned.find((s) => {
4986
+ if (s.kind !== a.kind || s.name !== a.name) return false;
4987
+ const dir = path16.dirname(path16.resolve(s.source));
4988
+ return !rootDir || dir === rootDir || dir.startsWith(rootDir + path16.sep);
4989
+ });
4990
+ if (!found || !isParsable(found.source)) continue;
4991
+ if (found.version && !SEMVER_RE.test(found.version)) continue;
4992
+ const version = found.version || DEFAULT_ASSET_VERSION;
4993
+ const wrote = withManifestLock(libraryPath, () => {
4994
+ const { editor } = openManifest(libraryPath);
4995
+ const current = editor.getAssets().find((x) => x.kind === a.kind && x.name === a.name);
4996
+ if (!current || current.version) return false;
4997
+ editor.setAsset({ ...current, version });
4998
+ editor.save();
4999
+ return true;
4881
5000
  });
5001
+ if (wrote) added.push({ kind: a.kind, name: a.name, version });
4882
5002
  }
4883
- return { removed, unknownKind, skipped, failed, renamed, superseded };
5003
+ return added;
4884
5004
  }
4885
5005
  var UNLISTED_SCAN_SKIP_DIRS = /* @__PURE__ */ new Set([
4886
5006
  ".claude",
@@ -5081,6 +5201,6 @@ function detectWorkspaceVersion(dir, filename = "skaile.yaml") {
5081
5201
  return raw.version === 2 ? 2 : 1;
5082
5202
  }
5083
5203
 
5084
- 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, STORE_PROBE_TIMEOUT_MS, SidecarGit, SkaileConfigSchema, SourceNotFoundError, StoreProbe, TarballHashMismatchError, UNLISTED_SCAN_SKIP_DIRS, UserLibraryNotFoundError, WorkspaceConfigV2Schema, applyNonStructuralUpgrade, applyPreset, applyPresetFromData, assertManifestEditable, assertValidLibraryName, assetRootProblem, classifyRef, cloneOrInitGitRepo, commitStoreManifest, conflictingAssetRoot, createEmptyLockFile, curatedManifestOverlay, deriveSlug, describeCatalogError, detectChanges, detectNestedPresetRefs, detectWorkspaceVersion, ensureGitRepo, evaluateUpgrade, extractLibraryInstanceId, extractReferencedKeys, filesEntryPaths, filterKey, getConfigDefaults, getDefaultValue, getSidecarRoot, getStoreManifestsDir, getStoreRoot, hasInterpolationTokens, installLibraryAsset, interpolate, isGitRepo, isLocalCatalogUrl, isSecretPlaceholder, knowledgeKindProvider, lastLibraryName, 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, storeManifestFile, storeSecrets, syncManifestWithDisk, trackOriginBranch, trpcGetUrl, unparsableAssetFiles, unregisteredLibraryNames, upsertManifestAsset, validateAllPlaceholders, validateKnowledge, validateNestingDepth, validatePlaceholder, writeCuratedManifest };
5085
- //# sourceMappingURL=chunk-GZL6RN4Z.js.map
5086
- //# sourceMappingURL=chunk-GZL6RN4Z.js.map
5204
+ 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, STORE_PROBE_TIMEOUT_MS, SidecarGit, SkaileConfigSchema, SourceNotFoundError, StoreProbe, TarballHashMismatchError, UNLISTED_SCAN_SKIP_DIRS, UserLibraryNotFoundError, WorkspaceConfigV2Schema, addMissingEntryVersions, applyNonStructuralUpgrade, applyPreset, applyPresetFromData, assertManifestEditable, assertValidLibraryName, assetRootProblem, classifyRef, cloneOrInitGitRepo, commitStoreManifest, conflictingAssetRoot, createEmptyLockFile, curatedManifestOverlay, deriveSlug, describeCatalogError, detectChanges, detectNestedPresetRefs, detectWorkspaceVersion, ensureGitRepo, evaluateUpgrade, extractLibraryInstanceId, extractReferencedKeys, filesEntryPaths, filterKey, getConfigDefaults, getDefaultValue, getSidecarRoot, getStoreManifestsDir, getStoreRoot, hasInterpolationTokens, installLibraryAsset, interpolate, isGitRepo, isLocalCatalogUrl, isSecretPlaceholder, knowledgeKindProvider, lastLibraryName, libraryDirMissing, listSidecarSlugsOnDisk, loadLockFile, loadWorkspaceV2, markLibraryUnregistered, migrateSidecarsToStoreIfNeeded, migrateWorkspaceConfig, missingLibraryDirMessage, missingRootAssets, parsePreset, parsePresetYaml, parseWorkspaceV2, processStoreProbe, projectConfigPath, pruneMissingRootAssets, queryInstancePickerChoices, recordLibraryRename, renamedLibraryName, resolveAllItems, resolveConfig, resolveIndexPath, resolveItem, resolvePin, resolveSidecarPaths, saveConfig, saveLockFile, saveWorkspaceV2, scanAuthoringLibraries, scanLibraryRoot, scanUnlistedAssets, setManifestPublisher, setOriginUrl, sha256Hex, stampManifestPublisher, storeManifestFile, storeSecrets, syncManifestWithDisk, trackOriginBranch, trpcGetUrl, unparsableAssetFiles, unregisteredLibraryNames, upsertManifestAsset, validateAllPlaceholders, validateKnowledge, validateNestingDepth, validatePlaceholder, writeCuratedManifest };
5205
+ //# sourceMappingURL=chunk-7FXOOUOC.js.map
5206
+ //# sourceMappingURL=chunk-7FXOOUOC.js.map