@skaile/workspaces 0.22.0-beta.0 → 0.22.0-beta.2

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 (306) hide show
  1. package/CHANGELOG.md +221 -0
  2. package/dist/{asset-feeds-PJDJ3QYI.js → asset-feeds-2M6UKEJ7.js} +13 -14
  3. package/dist/asset-feeds-2M6UKEJ7.js.map +1 -0
  4. package/dist/asset-manager/catalog-deployer.d.ts +2 -0
  5. package/dist/asset-manager/contrib.d.ts +2 -0
  6. package/dist/asset-manager/fragments.d.ts +2 -0
  7. package/dist/asset-manager/history.d.ts +2 -0
  8. package/dist/asset-manager/index.d.ts +2 -0
  9. package/dist/asset-manager/index.js +7 -7
  10. package/dist/asset-manager/installer.d.ts +2 -0
  11. package/dist/asset-manager/installer.js +6 -6
  12. package/dist/asset-manager/renderers.d.ts +2 -0
  13. package/dist/asset-manager/src/index.d.ts +18 -7
  14. package/dist/asset-manager/src/index.d.ts.map +1 -1
  15. package/dist/asset-manager/src/installer.d.ts +3 -3
  16. package/dist/asset-manager/src/installer.d.ts.map +1 -1
  17. package/dist/base-assets/connectors/deploy.d.ts +2 -0
  18. package/dist/base-assets/connectors/deploy.js +8 -8
  19. package/dist/base-assets/connectors/devserver.d.ts +2 -0
  20. package/dist/base-assets/connectors/devserver.js +8 -8
  21. package/dist/base-assets/connectors/flow/adapter.js +8 -8
  22. package/dist/base-assets/connectors/flow/engine.d.ts +2 -0
  23. package/dist/base-assets/connectors/flow/run-flow.js +9 -9
  24. package/dist/base-assets/connectors/flow.d.ts +2 -0
  25. package/dist/base-assets/connectors/flow.js +8 -8
  26. package/dist/base-assets/connectors/git/driver.d.ts.map +1 -1
  27. package/dist/base-assets/connectors/git.d.ts +2 -0
  28. package/dist/base-assets/connectors/git.js +8 -8
  29. package/dist/base-assets/connectors/gmail.d.ts +2 -0
  30. package/dist/base-assets/connectors/gmail.js +8 -8
  31. package/dist/base-assets/connectors/googledrive.d.ts +2 -0
  32. package/dist/base-assets/connectors/googledrive.js +8 -8
  33. package/dist/base-assets/connectors/local.d.ts +2 -0
  34. package/dist/base-assets/connectors/local.js +8 -8
  35. package/dist/base-assets/connectors/mattermost.d.ts +2 -0
  36. package/dist/base-assets/connectors/mattermost.js +8 -8
  37. package/dist/base-assets/connectors/memory.d.ts +2 -0
  38. package/dist/base-assets/connectors/memory.js +8 -8
  39. package/dist/base-assets/connectors/minio.d.ts +2 -0
  40. package/dist/base-assets/connectors/minio.js +8 -8
  41. package/dist/base-assets/connectors/postgres.d.ts +2 -0
  42. package/dist/base-assets/connectors/postgres.js +8 -8
  43. package/dist/base-assets/connectors/s3.d.ts +2 -0
  44. package/dist/base-assets/connectors/s3.js +8 -8
  45. package/dist/base-assets/connectors/sharepoint.d.ts +2 -0
  46. package/dist/base-assets/connectors/sharepoint.js +8 -8
  47. package/dist/base-assets/connectors/sqlite.d.ts +2 -0
  48. package/dist/base-assets/connectors/sqlite.js +8 -8
  49. package/dist/base-assets/connectors/static-server.d.ts +2 -0
  50. package/dist/base-assets/connectors/static-server.js +8 -8
  51. package/dist/base-assets/connectors/tunnel.d.ts +2 -0
  52. package/dist/base-assets/connectors/tunnel.js +8 -8
  53. package/dist/base-assets/connectors/webdav.d.ts +2 -0
  54. package/dist/base-assets/connectors/webdav.js +8 -8
  55. package/dist/base-assets/connectors/xstate-store.d.ts +2 -0
  56. package/dist/base-assets/connectors/xstate-store.js +8 -8
  57. package/dist/base-assets/connectors/xstate.d.ts +2 -0
  58. package/dist/base-assets/connectors/xstate.js +8 -8
  59. package/dist/bridge/drivers/claude-sdk.d.ts +2 -0
  60. package/dist/bridge/drivers/claude-sdk.js +2 -2
  61. package/dist/bridge/drivers/codex.d.ts +2 -0
  62. package/dist/bridge/drivers/codex.js +2 -2
  63. package/dist/bridge/drivers/echo.d.ts +2 -0
  64. package/dist/bridge/drivers/echo.js +2 -2
  65. package/dist/bridge/drivers/omp.d.ts +2 -0
  66. package/dist/bridge/drivers/omp.js +2 -2
  67. package/dist/bridge/index.d.ts +2 -0
  68. package/dist/bridge/index.js +3 -3
  69. package/dist/bridge/src/registry.d.ts +4 -2
  70. package/dist/bridge/src/registry.d.ts.map +1 -1
  71. package/dist/chunk-32NA4TVC.js +30 -0
  72. package/dist/chunk-32NA4TVC.js.map +1 -0
  73. package/dist/{chunk-CSDQBWE6.js → chunk-3KLWGHDE.js} +5 -5
  74. package/dist/{chunk-CSDQBWE6.js.map → chunk-3KLWGHDE.js.map} +1 -1
  75. package/dist/{chunk-UZRY5UI2.js → chunk-6E6PKKAD.js} +68 -3
  76. package/dist/chunk-6E6PKKAD.js.map +1 -0
  77. package/dist/{chunk-G6GKWGOW.js → chunk-6SA2SIOU.js} +26 -10
  78. package/dist/chunk-6SA2SIOU.js.map +1 -0
  79. package/dist/{chunk-IGQEXBBG.js → chunk-6VTG73UY.js} +13 -9
  80. package/dist/chunk-6VTG73UY.js.map +1 -0
  81. package/dist/{chunk-TTY56FQQ.js → chunk-74GTZ4TJ.js} +17 -5
  82. package/dist/chunk-74GTZ4TJ.js.map +1 -0
  83. package/dist/chunk-7QBNJTTQ.js +3 -0
  84. package/dist/{chunk-W2O5LWYU.js.map → chunk-7QBNJTTQ.js.map} +1 -1
  85. package/dist/{chunk-SL6JVGRD.js → chunk-CEUHU3C4.js} +3 -3
  86. package/dist/{chunk-SL6JVGRD.js.map → chunk-CEUHU3C4.js.map} +1 -1
  87. package/dist/{chunk-J2FCO6TM.js → chunk-FIHVQFXB.js} +2 -2
  88. package/dist/{chunk-J2FCO6TM.js.map → chunk-FIHVQFXB.js.map} +1 -1
  89. package/dist/{chunk-F3MGZ5E6.js → chunk-FVZLCBSX.js} +3 -3
  90. package/dist/{chunk-F3MGZ5E6.js.map → chunk-FVZLCBSX.js.map} +1 -1
  91. package/dist/{chunk-7PTP3SQJ.js → chunk-GTS2FODO.js} +32 -7
  92. package/dist/chunk-GTS2FODO.js.map +1 -0
  93. package/dist/{chunk-KA46DUM4.js → chunk-I5SGBFMM.js} +51 -3
  94. package/dist/chunk-I5SGBFMM.js.map +1 -0
  95. package/dist/{chunk-MO4JPTRD.js → chunk-LDLZFYLR.js} +5 -5
  96. package/dist/{chunk-MO4JPTRD.js.map → chunk-LDLZFYLR.js.map} +1 -1
  97. package/dist/{chunk-TKOLD2O7.js → chunk-LDYPQVRU.js} +516 -145
  98. package/dist/chunk-LDYPQVRU.js.map +1 -0
  99. package/dist/{chunk-GKM6MDUC.js → chunk-M5JDVO6D.js} +3 -3
  100. package/dist/{chunk-GKM6MDUC.js.map → chunk-M5JDVO6D.js.map} +1 -1
  101. package/dist/{chunk-XHFMUGDD.js → chunk-M5TE6YI5.js} +3 -3
  102. package/dist/{chunk-XHFMUGDD.js.map → chunk-M5TE6YI5.js.map} +1 -1
  103. package/dist/{chunk-NGC7ZQI4.js → chunk-NICAMYPV.js} +39 -45
  104. package/dist/chunk-NICAMYPV.js.map +1 -0
  105. package/dist/{chunk-WIR34WMU.js → chunk-NQL3T75I.js} +24 -59
  106. package/dist/chunk-NQL3T75I.js.map +1 -0
  107. package/dist/{chunk-RENHNO4J.js → chunk-P4FYHEHW.js} +206 -137
  108. package/dist/chunk-P4FYHEHW.js.map +1 -0
  109. package/dist/{chunk-2DNSSQ22.js → chunk-TWQPDBHB.js} +270 -173
  110. package/dist/chunk-TWQPDBHB.js.map +1 -0
  111. package/dist/{chunk-UZVHJ7LX.js → chunk-UBLTUFFI.js} +4 -4
  112. package/dist/{chunk-UZVHJ7LX.js.map → chunk-UBLTUFFI.js.map} +1 -1
  113. package/dist/{chunk-X5Y4EGZB.js → chunk-VUCPJBAG.js} +43 -10
  114. package/dist/chunk-VUCPJBAG.js.map +1 -0
  115. package/dist/{chunk-PBWMV5GM.js → chunk-WQ7DE5UC.js} +18 -4
  116. package/dist/chunk-WQ7DE5UC.js.map +1 -0
  117. package/dist/cli/index.d.ts +2 -0
  118. package/dist/cli/index.js +258 -262
  119. package/dist/cli/index.js.map +1 -1
  120. package/dist/cli/src/commands/deploy.d.ts.map +1 -1
  121. package/dist/cli/src/commands/manage.d.ts +22 -31
  122. package/dist/cli/src/commands/manage.d.ts.map +1 -1
  123. package/dist/cli/src/commands/npx.d.ts +5 -3
  124. package/dist/cli/src/commands/npx.d.ts.map +1 -1
  125. package/dist/cli/src/commands/project.d.ts.map +1 -1
  126. package/dist/cli/src/commands/source.d.ts +7 -0
  127. package/dist/cli/src/commands/source.d.ts.map +1 -1
  128. package/dist/cli/src/commands/update.d.ts.map +1 -1
  129. package/dist/cli/src/ensure-sources.d.ts.map +1 -1
  130. package/dist/client/index.d.ts +2 -0
  131. package/dist/connectors/config.d.ts +2 -0
  132. package/dist/connectors/config.js +6 -6
  133. package/dist/connectors/index.d.ts +2 -0
  134. package/dist/connectors/index.js +8 -8
  135. package/dist/connectors/rclone-config.d.ts +2 -0
  136. package/dist/connectors/rclone.d.ts +2 -0
  137. package/dist/connectors-shared/index.d.ts +2 -0
  138. package/dist/core/discovery.d.ts +2 -0
  139. package/dist/core/driver-targets.d.ts +2 -0
  140. package/dist/core/framework.d.ts +2 -0
  141. package/dist/core/index.d.ts +2 -0
  142. package/dist/core/index.js +5 -5
  143. package/dist/core/logging.d.ts +2 -0
  144. package/dist/core/manifest.d.ts +2 -0
  145. package/dist/core/manifest.js +2 -2
  146. package/dist/core/models.d.ts +2 -0
  147. package/dist/core/models.js +1 -1
  148. package/dist/core/runtime-assets.d.ts +2 -0
  149. package/dist/core/runtime-assets.js +4 -4
  150. package/dist/core/src/index.d.ts +7 -5
  151. package/dist/core/src/index.d.ts.map +1 -1
  152. package/dist/core/src/lock.d.ts +47 -26
  153. package/dist/core/src/lock.d.ts.map +1 -1
  154. package/dist/core/src/manifest.d.ts.map +1 -1
  155. package/dist/core/src/models.d.ts +61 -49
  156. package/dist/core/src/models.d.ts.map +1 -1
  157. package/dist/core/src/repo-manager.d.ts +79 -36
  158. package/dist/core/src/repo-manager.d.ts.map +1 -1
  159. package/dist/core/src/runtime-assets.d.ts.map +1 -1
  160. package/dist/core/src/walker.d.ts +52 -0
  161. package/dist/core/src/walker.d.ts.map +1 -0
  162. package/dist/core/src/workspace-config.d.ts +160 -45
  163. package/dist/core/src/workspace-config.d.ts.map +1 -1
  164. package/dist/core/src/workspace-yaml-editor.d.ts +33 -16
  165. package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
  166. package/dist/core/store.d.ts +2 -0
  167. package/dist/core/workspace-config.d.ts +2 -0
  168. package/dist/core/workspace-config.js +3 -3
  169. package/dist/deploy/index.d.ts +2 -0
  170. package/dist/deploy/index.js +167 -52
  171. package/dist/deploy/index.js.map +1 -1
  172. package/dist/deploy/src/index.d.ts +4 -3
  173. package/dist/deploy/src/index.d.ts.map +1 -1
  174. package/dist/deploy/src/targets/container-runtime.d.ts +1 -0
  175. package/dist/deploy/src/targets/container-runtime.d.ts.map +1 -1
  176. package/dist/deploy/src/targets/docker.d.ts +1 -0
  177. package/dist/deploy/src/targets/docker.d.ts.map +1 -1
  178. package/dist/deploy/src/targets/local.d.ts.map +1 -1
  179. package/dist/deploy/src/targets/nix.d.ts +36 -0
  180. package/dist/deploy/src/targets/nix.d.ts.map +1 -0
  181. package/dist/deploy/src/targets/podman.d.ts +1 -0
  182. package/dist/deploy/src/targets/podman.d.ts.map +1 -1
  183. package/dist/deploy/src/targets/process-handle.d.ts +34 -0
  184. package/dist/deploy/src/targets/process-handle.d.ts.map +1 -0
  185. package/dist/discovery/index.d.ts +2 -0
  186. package/dist/discovery/index.js +3 -3
  187. package/dist/discovery/src/source-config.d.ts +2 -2
  188. package/dist/{ensure-sources-COGVKY44.js → ensure-sources-ALTI5PXR.js} +20 -16
  189. package/dist/ensure-sources-ALTI5PXR.js.map +1 -0
  190. package/dist/library/index.d.ts +2 -0
  191. package/dist/library/index.js +4 -4
  192. package/dist/library/src/remote/remote-catalog-source.d.ts +17 -0
  193. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  194. package/dist/open-library-EEGG6RDN.js +13 -0
  195. package/dist/{open-library-DWAQFUSQ.js.map → open-library-EEGG6RDN.js.map} +1 -1
  196. package/dist/plugin-registry/index.d.ts +2 -0
  197. package/dist/plugin-registry/index.js +1 -1
  198. package/dist/plugin-registry/src/context.d.ts +30 -1
  199. package/dist/plugin-registry/src/context.d.ts.map +1 -1
  200. package/dist/plugin-registry/src/deploy-handle.d.ts +17 -1
  201. package/dist/plugin-registry/src/deploy-handle.d.ts.map +1 -1
  202. package/dist/plugin-registry/src/deploy-helpers.d.ts +69 -0
  203. package/dist/plugin-registry/src/deploy-helpers.d.ts.map +1 -0
  204. package/dist/plugin-registry/src/index.d.ts +6 -4
  205. package/dist/plugin-registry/src/index.d.ts.map +1 -1
  206. package/dist/plugin-registry/src/internal.d.ts.map +1 -1
  207. package/dist/plugin-registry/src/registry.d.ts +1 -0
  208. package/dist/plugin-registry/src/registry.d.ts.map +1 -1
  209. package/dist/plugin-registry/src/targets.d.ts +4 -0
  210. package/dist/plugin-registry/src/targets.d.ts.map +1 -1
  211. package/dist/{plugin-store-6OENKNFW.js → plugin-store-G277ZX3B.js} +8 -8
  212. package/dist/{plugin-store-6OENKNFW.js.map → plugin-store-G277ZX3B.js.map} +1 -1
  213. package/dist/plugins/index.d.ts +2 -0
  214. package/dist/plugins/src/catalog-source.d.ts +5 -0
  215. package/dist/plugins/src/catalog-source.d.ts.map +1 -1
  216. package/dist/resolver/index.d.ts +2 -0
  217. package/dist/runner/index.d.ts +2 -0
  218. package/dist/runner/index.js +17 -16
  219. package/dist/runner/prompt-assembly.d.ts +2 -0
  220. package/dist/runner/src/resources.d.ts.map +1 -1
  221. package/dist/runner/src/serve.d.ts +7 -0
  222. package/dist/runner/src/serve.d.ts.map +1 -1
  223. package/dist/sdk/asset-manager.d.ts +2 -0
  224. package/dist/sdk/asset-manager.js +7 -7
  225. package/dist/sdk/bridge.d.ts +2 -0
  226. package/dist/sdk/bridge.js +3 -3
  227. package/dist/sdk/client.d.ts +2 -0
  228. package/dist/sdk/core.d.ts +2 -0
  229. package/dist/sdk/core.js +5 -5
  230. package/dist/sdk/flow.d.ts +2 -0
  231. package/dist/sdk/index.d.ts +2 -0
  232. package/dist/sdk/index.js +53 -19
  233. package/dist/sdk/index.js.map +1 -1
  234. package/dist/sdk/resolver.d.ts +2 -0
  235. package/dist/sdk/runner.d.ts +2 -0
  236. package/dist/sdk/runner.js +17 -16
  237. package/dist/sdk/session.d.ts +2 -0
  238. package/dist/sdk/src/local-runtime.d.ts +8 -0
  239. package/dist/sdk/src/local-runtime.d.ts.map +1 -1
  240. package/dist/sdk/src/transport.d.ts +7 -1
  241. package/dist/sdk/src/transport.d.ts.map +1 -1
  242. package/dist/sdk/store.d.ts +2 -0
  243. package/dist/sdk/telemetry.d.ts +2 -0
  244. package/dist/sdk/transport/ws/client.d.ts +2 -0
  245. package/dist/sdk/transport/ws/client.js +2 -1
  246. package/dist/sdk/transport/ws/server.d.ts +2 -0
  247. package/dist/sdk/transport/ws/server.js +2 -1
  248. package/dist/sdk/transport/ws.d.ts +2 -0
  249. package/dist/sdk/transport/ws.js +4 -3
  250. package/dist/sdk/transport.d.ts +2 -0
  251. package/dist/sdk/transport.js +4 -3
  252. package/dist/sdk/types.d.ts +2 -0
  253. package/dist/secrets/index.d.ts +2 -0
  254. package/dist/session/index.d.ts +2 -0
  255. package/dist/{setup-ACMP3QZC.js → setup-REX4I5NE.js} +10 -10
  256. package/dist/{setup-ACMP3QZC.js.map → setup-REX4I5NE.js.map} +1 -1
  257. package/dist/store/index.d.ts +2 -0
  258. package/dist/store/react.d.ts +2 -0
  259. package/dist/store/vue.d.ts +2 -0
  260. package/dist/store-client-IX3Y67NK.js +14 -0
  261. package/dist/{store-client-ZSLNOOQG.js.map → store-client-IX3Y67NK.js.map} +1 -1
  262. package/dist/telemetry/index.d.ts +2 -0
  263. package/dist/transport/index.d.ts +2 -0
  264. package/dist/transport/index.js +4 -3
  265. package/dist/transport/src/ws/auth.d.ts +34 -0
  266. package/dist/transport/src/ws/auth.d.ts.map +1 -0
  267. package/dist/transport/src/ws/client.d.ts +4 -0
  268. package/dist/transport/src/ws/client.d.ts.map +1 -1
  269. package/dist/transport/src/ws/index.d.ts +3 -2
  270. package/dist/transport/src/ws/index.d.ts.map +1 -1
  271. package/dist/transport/src/ws/server.d.ts +5 -0
  272. package/dist/transport/src/ws/server.d.ts.map +1 -1
  273. package/dist/transport/ws/client.d.ts +2 -0
  274. package/dist/transport/ws/client.js +2 -1
  275. package/dist/transport/ws/server.d.ts +2 -0
  276. package/dist/transport/ws/server.js +2 -1
  277. package/dist/transport/ws.d.ts +2 -0
  278. package/dist/transport/ws.js +4 -3
  279. package/dist/tui/index.d.ts +2 -0
  280. package/dist/tui/index.js +17 -16
  281. package/dist/tui/index.js.map +1 -1
  282. package/dist/types/index.d.ts +2 -0
  283. package/dist/types/manifests.d.ts +2 -0
  284. package/dist/workspace-plugin/adapters/mcp.d.ts +2 -0
  285. package/dist/workspace-plugin/adapters/omp.d.ts +2 -0
  286. package/dist/workspace-plugin/index.d.ts +2 -0
  287. package/dist/workspace-plugin/index.js +1 -1
  288. package/package.json +4 -2
  289. package/dist/asset-feeds-PJDJ3QYI.js.map +0 -1
  290. package/dist/chunk-2DNSSQ22.js.map +0 -1
  291. package/dist/chunk-7PTP3SQJ.js.map +0 -1
  292. package/dist/chunk-G6GKWGOW.js.map +0 -1
  293. package/dist/chunk-IGQEXBBG.js.map +0 -1
  294. package/dist/chunk-KA46DUM4.js.map +0 -1
  295. package/dist/chunk-NGC7ZQI4.js.map +0 -1
  296. package/dist/chunk-PBWMV5GM.js.map +0 -1
  297. package/dist/chunk-RENHNO4J.js.map +0 -1
  298. package/dist/chunk-TKOLD2O7.js.map +0 -1
  299. package/dist/chunk-TTY56FQQ.js.map +0 -1
  300. package/dist/chunk-UZRY5UI2.js.map +0 -1
  301. package/dist/chunk-W2O5LWYU.js +0 -3
  302. package/dist/chunk-WIR34WMU.js.map +0 -1
  303. package/dist/chunk-X5Y4EGZB.js.map +0 -1
  304. package/dist/ensure-sources-COGVKY44.js.map +0 -1
  305. package/dist/open-library-DWAQFUSQ.js +0 -13
  306. package/dist/store-client-ZSLNOOQG.js +0 -14
@@ -29,6 +29,8 @@ export interface Dependency {
29
29
  kind: string;
30
30
  /** Asset name within that kind. */
31
31
  name: string;
32
+ /** Canonical publisher namespace (when known). */
33
+ publisher?: string;
32
34
  }
33
35
  /**
34
36
  * Parse a `"kind:name"` dependency string, or a bare `"name"` (defaults kind to `"skill"`).
@@ -60,10 +62,14 @@ export interface CatalogEntry {
60
62
  description: string;
61
63
  /** Absolute path to manifest file */
62
64
  source: string;
63
- /** Originating repository name */
64
- repository?: string;
65
- /** Domain this asset belongs to (top-level directory in the repo root). */
66
- domain?: string;
65
+ /** Canonical publisher namespace this asset belongs to (formerly `repository`). */
66
+ publisher?: string;
67
+ /**
68
+ * `"<org>/<repo>"` coordinate the asset came from. Absent → the asset groups
69
+ * directly under its publisher (local library with no git remote, or a
70
+ * non-GitHub source). Replaces the former derived `domain` axis.
71
+ */
72
+ repo?: string;
67
73
  /** Semantic version string (may be empty if not declared in the manifest). */
68
74
  version: string;
69
75
  /** Skills, agents, or other assets this entry depends on. */
@@ -77,6 +83,8 @@ export interface CatalogEntry {
77
83
  * requiring verbose inline config in `skaile.yaml`.
78
84
  */
79
85
  metadata?: Record<string, unknown>;
86
+ /** Curated facet, surfaced as a badge in the manage TUI (not a tree axis). */
87
+ category?: string;
80
88
  }
81
89
  /**
82
90
  * Construct a CatalogEntry from a raw deserialized record (e.g. from catalog.yaml).
@@ -95,31 +103,42 @@ export declare function entryFromRaw(d: Record<string, unknown>): CatalogEntry;
95
103
  */
96
104
  export declare function entryToRaw(e: CatalogEntry): Record<string, unknown>;
97
105
  /**
98
- * A parsed asset reference: `kind:name[@repository][#pin]`.
106
+ * A parsed asset reference: `kind:name@<publisher>[#pin]`.
107
+ *
108
+ * `publisher` is the canonical, GitHub-shaped publisher namespace (≤39 chars,
109
+ * alphanumeric+hyphen). `pin` is a SemVer constraint, exact SHA, or absent.
110
+ * Floating refs (`main`, `latest`, `HEAD`) are rejected at parse time.
111
+ *
99
112
  * Produced by `parseAssetRef`; consumed by `resolveAsset` and `resolveAll`.
100
113
  * @docLink packages/core/concepts#asset-ref
101
114
  */
102
115
  export interface AssetRef {
103
116
  kind: string;
104
117
  name: string;
105
- /** Optional repository qualifier (from skaile.yaml repositories section). */
106
- repository?: string;
107
- /** Optional pin: git tag, commit SHA, or branch name. */
118
+ /** Canonical publisher namespace. Optional only for ambiguity-resolution
119
+ * during migration; new manifests require it. */
120
+ publisher?: string;
121
+ /** SemVer constraint (^1.4.0, ~1.4, 1.x, exact 1.4.0), 40-char SHA, or undefined. */
108
122
  pin?: string;
109
123
  }
110
124
  /**
111
- * Parse an asset reference string into an `AssetRef` object.
125
+ * Parse a canonical asset reference string into an `AssetRef` object.
112
126
  *
113
- * Formats:
114
- * "skill:overview" → { kind: "skill", name: "overview" }
115
- * "skill:overview@skaile-ai" → { kind: "skill", name: "overview", repository: "skaile-ai" }
116
- * "skill:overview@skaile-ai#v2.1.0" → { kind: "skill", name: "overview", repository: "skaile-ai", pin: "v2.1.0" }
117
- * "overview" → { kind: "skill", name: "overview" }
127
+ * Grammar: `kind:name@<publisher>[#pin]`
128
+ * "skill:audit@skaile-ai" → { kind: "skill", name: "audit", publisher: "skaile-ai" }
129
+ * "skill:audit@skaile-ai#^1.4.0" → { …, pin: "^1.4.0" }
130
+ * "skill:audit@skaile-ai#<40-sha>" → { …, pin: "<40-sha>" }
131
+ *
132
+ * `<publisher>` is required and GitHub-shaped (≤39 chars, alphanumeric+hyphen,
133
+ * no leading/trailing or double hyphen). `pin` accepts a SemVer constraint
134
+ * (`^`, `~`, `x`, exact), a 40-char SHA, or is absent. Floating refs
135
+ * (`main`/`latest`/`HEAD`/anything non-canonical) are parse-time errors.
118
136
  *
119
137
  * The shorthand `mcp:` is normalized to `mcp-server:`.
120
138
  *
121
139
  * @param s - Asset reference string
122
140
  * @returns Parsed `AssetRef`
141
+ * @throws When the publisher is missing/malformed or the pin is a floating ref.
123
142
  * @docLink packages/core/concepts#parse-asset-ref
124
143
  */
125
144
  export declare function parseAssetRef(s: string): AssetRef;
@@ -139,54 +158,47 @@ export declare function assetRefToStr(ref: AssetRef): string;
139
158
  * @docLink packages/core/concepts#asset-ref-to-dep
140
159
  */
141
160
  export declare function assetRefToDep(ref: AssetRef): Dependency;
142
- /**
143
- * Repository entry recorded in the lock file.
144
- * Captures the source URL or path, branch, and resolved HEAD commit.
145
- * @docLink packages/core/api-reference#lock-repository
146
- */
147
- export interface LockRepository {
148
- /** Remote git URL (for cloned repos). */
149
- url?: string;
150
- /** Local filesystem path (for path repos). */
151
- path?: string;
152
- /** Branch that was locked. */
153
- branch: string;
154
- /** HEAD commit SHA at lock time. */
155
- commit?: string;
161
+ /** A path/sha256 pair recorded for one file inside a locked asset. */
162
+ export interface LockFileEntry {
163
+ path: string;
164
+ sha256: string;
156
165
  }
157
166
  /**
158
- * Per-asset entry in the lock file.
159
- * Records the resolved version, repo source, content integrity hash, and resolution provenance.
167
+ * Per-asset entry in the lock file (v2 schema).
168
+ * Keyed in `LockFile.assets` by canonical ref (`<publisher>/<kind>:<name>@<version>`).
160
169
  * @docLink packages/core/api-reference#lock-entry
161
170
  */
162
171
  export interface LockEntry {
163
- /** Semver version at lock time. */
164
- version: string;
165
- /** Name of the repository this asset was resolved from. */
166
- repository: string;
167
- /** Path to manifest relative to repo root. */
168
- source: string;
169
- /** Domain this asset belongs to (top-level directory in the repo root). */
170
- domain?: string;
171
- /** SHA-256 hash of manifest content. */
172
- integrity: string;
173
- /** What caused this asset to be included: "direct" or "kind:name" of parent. */
174
- resolved_by: string;
172
+ /** Composite sha256 over sorted `<path>:<sha256>\n` rows. */
173
+ sha256: string;
174
+ /** Resolved upstream source + commit. */
175
+ source: {
176
+ url: string;
177
+ commit: string;
178
+ };
179
+ /** Files that constitute the asset. */
180
+ files: LockFileEntry[];
181
+ /** True when an `overrides[]` entry pinned this resolution. */
182
+ override_applied: boolean;
183
+ }
184
+ /** Per-source-URL entry in `LockFile.sources`. */
185
+ export interface LockSourceEntry {
186
+ url: string;
187
+ commit: string;
175
188
  }
176
189
  /**
177
- * Full skaile.lock.yaml structure.
178
- * Captures the complete resolved state of all asset dependencies at install time.
190
+ * Full skaile.lock.yaml structure (v2 schema).
179
191
  * @docLink packages/core/api-reference#lock-file
180
192
  */
181
193
  export interface LockFile {
182
- /** Lock file schema version. */
183
- lockfile_version: number;
194
+ /** Lock file schema version. v2 is canonical. */
195
+ schema_version: 2;
184
196
  /** ISO timestamp of when the lock was generated. */
185
197
  locked_at: string;
186
- /** Repositories declared in skaile.yaml, with their locked commits. */
187
- repositories: Record<string, LockRepository>;
188
- /** All resolved assets keyed by "kind:name". */
198
+ /** Resolved assets keyed by canonical ref `<publisher>/<kind>:<name>@<version>`. */
189
199
  assets: Record<string, LockEntry>;
200
+ /** Every source URL that contributed at least one resolved asset. */
201
+ sources: LockSourceEntry[];
190
202
  /**
191
203
  * Resolved plugin packages (from `skaile.yaml` `plugins:`), keyed by package
192
204
  * name. The plugin-store reconciler reads this slice into its reconcile-hash
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../core/src/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,UAAU,GACV,YAAY,GACZ,SAAS,GACT,SAAS,GACT,WAAW,GACX,WAAW,CAAC;AAEhB;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAY3C,CAAC;AACF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,gEAOG,CAAC;AAIjC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAQ9C;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAE9C;AAID;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,kEAAkE;IAClE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAoBrE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAcnE;AAID;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CA+BjD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAKnD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,UAAU,CAEvD;AAID;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,gCAAgC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC3C;AAED,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,kGAAkG;IAClG,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,WAAW,CAAC,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7D,CAAC;IACF,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,iBAAiB,CAAC;KAC9D,CAAC,CAAC;IACH,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAID,KAAK,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,IAAI,EAAE,cAAc,CAAC;IACrB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAQxE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAStE"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../core/src/models.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@
8
8
  * Supports partial clone + sparse checkout for large repos.
9
9
  */
10
10
  import type { AssetRef, CatalogEntry } from "./models.js";
11
- import type { RepositoryDeclaration } from "./workspace-config.js";
11
+ import type { OverrideEntry, SourceDeclaration, StoreEntry } from "./workspace-config.js";
12
+ import type { ProvenanceCandidate, ProvenanceIndex } from "./walker.js";
12
13
  /**
13
14
  * Return the global shared repo cache directory (`~/.skaile/repos` by default).
14
15
  * Override with the `SKAILE_CACHE_DIR` environment variable.
@@ -104,7 +105,8 @@ export declare function unlinkRepo(projectDir: string, repoName: string): boolea
104
105
  *
105
106
  * Resolution order:
106
107
  * 1. Linked override (`.skaile/links.yaml`) — highest priority
107
- * 2. Local path (`decl.path`) — direct filesystem reference
108
+ * 2. Local path (`decl.path`) — direct filesystem reference; a bare path must
109
+ * already exist, but a url-backed managed cache dir is cloned in-place on miss
108
110
  * 3. Remote URL (`decl.url`) — cloned to the shared global cache, symlinked into `.skaile/repos/`
109
111
  *
110
112
  * Pin support: when `opts.pin` is provided, the tag/commit is checked out after clone.
@@ -117,13 +119,27 @@ export declare function unlinkRepo(projectDir: string, repoName: string): boolea
117
119
  * @throws When the repository cannot be resolved or cloned
118
120
  * @docLink packages/core/api-reference#ensure-repo
119
121
  */
120
- export declare function ensureRepo(decl: RepositoryDeclaration, name: string, reposDir: string, opts?: {
122
+ export declare function ensureRepo(decl: SourceDeclaration, name: string, reposDir: string, opts?: {
121
123
  pin?: string;
122
124
  projectDir?: string;
123
125
  }): string;
126
+ /**
127
+ * Derive the `"<org>/<repo>"` slug from a directory's git `origin` remote.
128
+ * Returns `undefined` when `rootDir` is not a git repo, has no `origin` remote,
129
+ * or the URL is not a parseable GitHub repo. Mirrors the store's
130
+ * `repoSlugFromSourceUrl` so local and remote feeds key the grouping tree
131
+ * identically.
132
+ *
133
+ * @param rootDir - Absolute path to the scanned repository root
134
+ * @returns `"<org>/<repo>"` or `undefined`
135
+ * @docLink packages/core/api-reference#repo-slug-from-git-remote
136
+ */
137
+ export declare function repoSlugFromGitRemote(rootDir: string): string | undefined;
124
138
  /**
125
139
  * Scan a repository directory and return all discovered asset catalog entries.
126
- * Delegates to `scanDirectory` from `manifest.ts`.
140
+ * Delegates to `scanDirectory` from `manifest.ts`, then stamps the `repo` slug
141
+ * derived once from the root's git remote onto every entry (the GitHub
142
+ * coordinate is a property of the scanned root, not of individual assets).
127
143
  *
128
144
  * @param repoDir - Absolute path to the repository root
129
145
  * @param repoName - Repository name attached to each produced entry
@@ -146,55 +162,82 @@ export declare function scanRepo(repoDir: string, repoName: string): CatalogEntr
146
162
  * @returns Matching `CatalogEntry`, or `null` if not found in any repository
147
163
  * @docLink packages/core/api-reference#resolve-asset
148
164
  */
149
- export declare function resolveAsset(ref: AssetRef, repositories: Record<string, RepositoryDeclaration>, reposDir: string, opts?: {
165
+ export declare function resolveAsset(ref: AssetRef, repositories: Record<string, SourceDeclaration>, reposDir: string, opts?: {
150
166
  projectDir?: string;
151
167
  preferRepo?: string;
152
168
  }): CatalogEntry | null;
153
169
  /**
154
- * Collision record: the same `kind:name` was found in more than one repository.
155
- * Produced by `resolveAll` when multiple repos contain the same asset.
156
- * @docLink packages/core/api-reference#asset-collision
157
- */
158
- export interface AssetCollision {
159
- /** "kind:name" key. */
160
- key: string;
161
- /** Repository the asset was resolved from. */
162
- resolvedFrom: string;
163
- /** Other repositories that also contain this asset. */
164
- shadowedIn: string[];
170
+ * Hard error raised when two or more candidates for the same canonical ref
171
+ * `<publisher>/<kind>:<name>@<version>` disagree on their content sha256 and no
172
+ * `overrides[]` entry resolves the conflict. The message walks the dep chain
173
+ * back to the user-declared root.
174
+ * @docLink packages/core/api-reference#canonical-ref-conflict-error
175
+ */
176
+ export declare class CanonicalRefConflictError extends Error {
177
+ ref: string;
178
+ candidates: ProvenanceCandidate[];
179
+ depChain: string[];
180
+ constructor(ref: string, candidates: ProvenanceCandidate[], depChain: string[]);
165
181
  }
166
182
  /**
167
183
  * Result of a full transitive dependency resolution via `resolveAll`.
168
184
  * @docLink packages/core/api-reference#resolve-result
169
185
  */
170
186
  export interface ResolveResult {
171
- /** All resolved assets in leaf-first (dependency) order. */
172
- resolved: CatalogEntry[];
173
- /** Refs that could not be found in any repo. */
187
+ /** Resolved candidates in leaf-first order. */
188
+ resolved: ProvenanceCandidate[];
189
+ /** Refs that no source / store could provide. */
174
190
  missing: string[];
175
- /** Maps "kind:name" → resolved_by ("direct" or "kind:name" of parent). */
191
+ /** "<publisher>/<kind>:<name>" → parent ref ("direct" if user-declared). */
176
192
  resolvedBy: Map<string, string>;
177
- /** Assets that exist in multiple repos (resolved entry shadows others). */
178
- collisions: AssetCollision[];
193
+ /** Overrides that were applied (lock-side bookkeeping); canonical refs. */
194
+ overridesApplied: Set<string>;
195
+ }
196
+ /** Minimal store fetcher contract used by the resolver for the catalog branch. */
197
+ export interface StoreFetcher {
198
+ getInstallManifest(storeUrl: string, ref: string): Promise<{
199
+ sourceUrl: string;
200
+ commit: string;
201
+ sha256: string;
202
+ files: Array<{
203
+ path: string;
204
+ sha256: string;
205
+ }>;
206
+ } | null>;
207
+ getCanonicalDigest(storeUrl: string, ref: string): Promise<{
208
+ sha256: string;
209
+ } | null>;
210
+ }
211
+ /** Options for {@link resolveAll}. */
212
+ export interface ResolveOpts {
213
+ /** Source-side candidate index built by the walker. */
214
+ provenanceIndex: ProvenanceIndex;
215
+ /** Conflict-resolution overrides (with required reason). */
216
+ overrides: OverrideEntry[];
217
+ /** Trusted store catalogs. */
218
+ stores: StoreEntry[];
219
+ /** Lazy store fetcher; only used when `stores[]` is non-empty. */
220
+ storeFetcher?: StoreFetcher;
221
+ projectDir?: string;
179
222
  }
180
223
  /**
181
- * Resolve all dependencies (including transitive) from a list of asset ref strings.
182
- * Returns resolved assets in leaf-first order (dependencies before dependents).
224
+ * Resolve all dependencies against a content-hash-verified candidate set drawn
225
+ * from every source clone and (optionally) every store.
183
226
  *
184
- * Repo affinity: transitive deps inherit the parent entry's repository as a
185
- * search preference, so bundled assets are found in their own repo first.
186
- * Explicit `@repo` qualifiers always take precedence over affinity.
227
+ * Per dep ref: gather source candidates, optionally extend with store
228
+ * candidates, filter by the SemVer/SHA pin, pick the highest matching version,
229
+ * then detect conflicts divergent sha256 for the same
230
+ * `(publisher, kind, name, version)` is a hard {@link CanonicalRefConflictError}
231
+ * unless an `overrides[]` entry pins a source. A cheap `getCanonicalDigest`
232
+ * cross-check runs when both a source and a store produced a candidate at the
233
+ * chosen version.
187
234
  *
188
- * @param deps - Top-level asset ref strings to resolve (e.g. `["skill:use-exa", "agent:pi"]`)
189
- * @param repositories - Repository declarations from `skaile.yaml`
190
- * @param reposDir - Project-local repos directory
191
- * @param opts - Optional: `projectDir` for link lookup
192
- * @returns `ResolveResult` with resolved entries, missing refs, provenance map, and collisions
235
+ * @param deps - Top-level canonical asset ref strings (`kind:name@<publisher>[#pin]`).
236
+ * @param opts - Provenance index, overrides, stores, and an optional store fetcher.
237
+ * @returns `ResolveResult` with resolved candidates, missing refs, provenance map, applied overrides.
193
238
  * @docLink packages/core/api-reference#resolve-all
194
239
  */
195
- export declare function resolveAll(deps: string[], repositories: Record<string, RepositoryDeclaration>, reposDir: string, opts?: {
196
- projectDir?: string;
197
- }): ResolveResult;
240
+ export declare function resolveAll(deps: string[], opts: ResolveOpts): Promise<ResolveResult>;
198
241
  /**
199
242
  * Status summary for a repository — local HEAD, remote HEAD, and how far behind.
200
243
  * @docLink packages/core/api-reference#repo-status
@@ -228,5 +271,5 @@ export interface RepoStatus {
228
271
  * @returns `RepoStatus` describing the current state
229
272
  * @docLink packages/core/api-reference#check-repo-status
230
273
  */
231
- export declare function checkRepoStatus(decl: RepositoryDeclaration, name: string, reposDir: string, projectDir?: string): RepoStatus;
274
+ export declare function checkRepoStatus(decl: SourceDeclaration, name: string, reposDir: string, projectDir?: string): RepoStatus;
232
275
  //# sourceMappingURL=repo-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repo-manager.d.ts","sourceRoot":"","sources":["../../../core/src/repo-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo-manager.d.ts","sourceRoot":"","sources":["../../../core/src/repo-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-assets.d.ts","sourceRoot":"","sources":["../../../core/src/runtime-assets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAE/C;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,eAAe,EAAE,cAAc,CAAC;IAChC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,0EAA0E;IAC1E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,mBAAmB,GAAG,SAAS,CAAC;CACzF;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAc3F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAsB9C"}
1
+ {"version":3,"file":"runtime-assets.d.ts","sourceRoot":"","sources":["../../../core/src/runtime-assets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgChD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAE/C;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,IAAI,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,eAAe,EAAE,cAAc,CAAC;IAChC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,0EAA0E;IAC1E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,mBAAmB,GAAG,SAAS,CAAC;CACzF;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAc3F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAsB9C"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Provenance-index walker.
3
+ *
4
+ * Given a list of cloned source paths plus their resolved commits, walk each
5
+ * clone, read the publication-half `skaile.yaml` (or fall back to the
6
+ * agentskills.io filename layout), compute per-file and composite sha256s, and
7
+ * build a {@link ProvenanceIndex} keyed by `<publisher>/<kind>:<name>`.
8
+ *
9
+ * This is the source-side half of the canonical-identity resolution model: the
10
+ * resolver compares these candidates against store-side candidates and detects
11
+ * divergent content hashes for the same `(publisher, kind, name, version)`.
12
+ */
13
+ /** One cloned source repo, pinned at a resolved commit. */
14
+ export interface SourceClone {
15
+ localPath: string;
16
+ sourceUrl: string;
17
+ /** 40-char SHA. */
18
+ commit: string;
19
+ /** Optional tag context for the version waterfall (step 3). */
20
+ tag?: string;
21
+ }
22
+ /** One resolved candidate in the provenance index. */
23
+ export interface ProvenanceCandidate {
24
+ publisher: string;
25
+ kind: string;
26
+ name: string;
27
+ /** Canonical semver string (or `0.0.0-sha.<7char>`). */
28
+ version: string;
29
+ sourceUrl: string;
30
+ commit: string;
31
+ files: Array<{
32
+ path: string;
33
+ sha256: string;
34
+ }>;
35
+ /** Composite sha256 over sorted `<path>:<sha256>\n` rows. */
36
+ sha256: string;
37
+ /** Parsed content frontmatter (mcp-server defaults etc.). */
38
+ metadata?: Record<string, unknown>;
39
+ }
40
+ export type ProvenanceIndex = Map<string, ProvenanceCandidate[]>;
41
+ /**
42
+ * Walk a list of source clones into a provenance index.
43
+ *
44
+ * @param clones - Cloned source repos pinned at resolved commits.
45
+ * @returns Map of `<publisher>/<kind>:<name>` → candidates.
46
+ * @throws On a SKILL.md name mismatch or a missing publisher for a non-GitHub source.
47
+ * @docLink packages/core/workspace-config#build-provenance-index
48
+ */
49
+ export declare function buildProvenanceIndex(clones: SourceClone[], _opts?: {
50
+ projectDir?: string;
51
+ }): ProvenanceIndex;
52
+ //# sourceMappingURL=walker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../../core/src/walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;AA8CjE;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EAAE,EACrB,KAAK,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,eAAe,CAIjB"}