rivet-design 0.16.2 → 0.17.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 (279) hide show
  1. package/README.md +8 -2
  2. package/README.npm.md +8 -2
  3. package/bin/rivet.js +15 -7
  4. package/dist/agent-variants/variantContext.d.ts +1 -0
  5. package/dist/agent-variants/variantContext.d.ts.map +1 -1
  6. package/dist/agent-variants/variantContext.js +1 -1
  7. package/dist/agent-variants/variantContext.js.map +1 -1
  8. package/dist/cli/commandNames.d.ts +2 -0
  9. package/dist/cli/commandNames.d.ts.map +1 -1
  10. package/dist/cli/commandNames.js +16 -1
  11. package/dist/cli/commandNames.js.map +1 -1
  12. package/dist/cli/commands/libraryOpen.d.ts +10 -0
  13. package/dist/cli/commands/libraryOpen.d.ts.map +1 -0
  14. package/dist/cli/commands/libraryOpen.js +126 -0
  15. package/dist/cli/commands/libraryOpen.js.map +1 -0
  16. package/dist/cli/commands/open.d.ts +39 -0
  17. package/dist/cli/commands/open.d.ts.map +1 -1
  18. package/dist/cli/commands/open.js +35 -21
  19. package/dist/cli/commands/open.js.map +1 -1
  20. package/dist/cli/commands/serve.d.ts.map +1 -1
  21. package/dist/cli/commands/serve.js +33 -0
  22. package/dist/cli/commands/serve.js.map +1 -1
  23. package/dist/cli/router.d.ts.map +1 -1
  24. package/dist/cli/router.js +34 -3
  25. package/dist/cli/router.js.map +1 -1
  26. package/dist/cli/serverHandshake.d.ts +7 -5
  27. package/dist/cli/serverHandshake.d.ts.map +1 -1
  28. package/dist/cli/serverHandshake.js +16 -12
  29. package/dist/cli/serverHandshake.js.map +1 -1
  30. package/dist/install/installationChannel.d.ts +4 -0
  31. package/dist/install/installationChannel.d.ts.map +1 -0
  32. package/dist/install/installationChannel.js +13 -0
  33. package/dist/install/installationChannel.js.map +1 -0
  34. package/dist/library/HubClient.d.ts +12 -0
  35. package/dist/library/HubClient.d.ts.map +1 -0
  36. package/dist/library/HubClient.js +109 -0
  37. package/dist/library/HubClient.js.map +1 -0
  38. package/dist/library/HubServer.d.ts +16 -0
  39. package/dist/library/HubServer.d.ts.map +1 -0
  40. package/dist/library/HubServer.js +95 -0
  41. package/dist/library/HubServer.js.map +1 -0
  42. package/dist/library/StaticPreviewServer.d.ts +7 -0
  43. package/dist/library/StaticPreviewServer.d.ts.map +1 -0
  44. package/dist/library/StaticPreviewServer.js +18 -0
  45. package/dist/library/StaticPreviewServer.js.map +1 -0
  46. package/dist/library/http.d.ts +11 -0
  47. package/dist/library/http.d.ts.map +1 -0
  48. package/dist/library/http.js +31 -0
  49. package/dist/library/http.js.map +1 -0
  50. package/dist/library/importFiles.d.ts +18 -0
  51. package/dist/library/importFiles.d.ts.map +1 -0
  52. package/dist/library/importFiles.js +184 -0
  53. package/dist/library/importFiles.js.map +1 -0
  54. package/dist/proxy-middleware/preview-bridge.d.ts.map +1 -1
  55. package/dist/proxy-middleware/preview-bridge.js +6 -16
  56. package/dist/proxy-middleware/preview-bridge.js.map +1 -1
  57. package/dist/routes/account.d.ts +4 -0
  58. package/dist/routes/account.d.ts.map +1 -0
  59. package/dist/routes/account.js +53 -0
  60. package/dist/routes/account.js.map +1 -0
  61. package/dist/routes/agentVariants.d.ts +2 -13
  62. package/dist/routes/agentVariants.d.ts.map +1 -1
  63. package/dist/routes/agentVariants.js +53 -79
  64. package/dist/routes/agentVariants.js.map +1 -1
  65. package/dist/routes/library/app.d.ts +8 -0
  66. package/dist/routes/library/app.d.ts.map +1 -0
  67. package/dist/routes/library/app.js +26 -0
  68. package/dist/routes/library/app.js.map +1 -0
  69. package/dist/routes/library/index.d.ts +5 -0
  70. package/dist/routes/library/index.d.ts.map +1 -0
  71. package/dist/routes/library/index.js +32 -0
  72. package/dist/routes/library/index.js.map +1 -0
  73. package/dist/routes/library/middleware.d.ts +9 -0
  74. package/dist/routes/library/middleware.d.ts.map +1 -0
  75. package/dist/routes/library/middleware.js +58 -0
  76. package/dist/routes/library/middleware.js.map +1 -0
  77. package/dist/routes/library/navigation.d.ts +5 -0
  78. package/dist/routes/library/navigation.d.ts.map +1 -0
  79. package/dist/routes/library/navigation.js +39 -0
  80. package/dist/routes/library/navigation.js.map +1 -0
  81. package/dist/routes/library/projects.d.ts +5 -0
  82. package/dist/routes/library/projects.d.ts.map +1 -0
  83. package/dist/routes/library/projects.js +42 -0
  84. package/dist/routes/library/projects.js.map +1 -0
  85. package/dist/routes/library/schemas.d.ts +23 -0
  86. package/dist/routes/library/schemas.d.ts.map +1 -0
  87. package/dist/routes/library/schemas.js +10 -0
  88. package/dist/routes/library/schemas.js.map +1 -0
  89. package/dist/routes/library/staticPreview.d.ts +4 -0
  90. package/dist/routes/library/staticPreview.d.ts.map +1 -0
  91. package/dist/routes/library/staticPreview.js +39 -0
  92. package/dist/routes/library/staticPreview.js.map +1 -0
  93. package/dist/routes/library/types.d.ts +22 -0
  94. package/dist/routes/library/types.d.ts.map +1 -0
  95. package/dist/routes/library/types.js +3 -0
  96. package/dist/routes/library/types.js.map +1 -0
  97. package/dist/routes/library/variants.d.ts +5 -0
  98. package/dist/routes/library/variants.d.ts.map +1 -0
  99. package/dist/routes/library/variants.js +35 -0
  100. package/dist/routes/library/variants.js.map +1 -0
  101. package/dist/server.d.ts +2 -0
  102. package/dist/server.d.ts.map +1 -1
  103. package/dist/server.js +18 -30
  104. package/dist/server.js.map +1 -1
  105. package/dist/services/HistoryReplayService.js +1 -1
  106. package/dist/services/HistoryReplayService.js.map +1 -1
  107. package/dist/services/HubDiscovery.d.ts +46 -0
  108. package/dist/services/HubDiscovery.d.ts.map +1 -0
  109. package/dist/services/HubDiscovery.js +58 -0
  110. package/dist/services/HubDiscovery.js.map +1 -0
  111. package/dist/services/HubNavigation.d.ts +36 -0
  112. package/dist/services/HubNavigation.d.ts.map +1 -0
  113. package/dist/services/HubNavigation.js +76 -0
  114. package/dist/services/HubNavigation.js.map +1 -0
  115. package/dist/services/ProjectCardPreviews.d.ts +27 -0
  116. package/dist/services/ProjectCardPreviews.d.ts.map +1 -0
  117. package/dist/services/ProjectCardPreviews.js +112 -0
  118. package/dist/services/ProjectCardPreviews.js.map +1 -0
  119. package/dist/services/ProjectFolderPicker.d.ts +20 -0
  120. package/dist/services/ProjectFolderPicker.d.ts.map +1 -0
  121. package/dist/services/ProjectFolderPicker.js +174 -0
  122. package/dist/services/ProjectFolderPicker.js.map +1 -0
  123. package/dist/services/ProjectImport.d.ts +13 -0
  124. package/dist/services/ProjectImport.d.ts.map +1 -0
  125. package/dist/services/ProjectImport.js +226 -0
  126. package/dist/services/ProjectImport.js.map +1 -0
  127. package/dist/services/ProjectLibrary.d.ts +74 -0
  128. package/dist/services/ProjectLibrary.d.ts.map +1 -0
  129. package/dist/services/ProjectLibrary.js +261 -0
  130. package/dist/services/ProjectLibrary.js.map +1 -0
  131. package/dist/services/ProjectMetadataStore.d.ts +6 -19
  132. package/dist/services/ProjectMetadataStore.d.ts.map +1 -1
  133. package/dist/services/ProjectMetadataStore.js +29 -147
  134. package/dist/services/ProjectMetadataStore.js.map +1 -1
  135. package/dist/services/ProjectRegistry.d.ts +80 -0
  136. package/dist/services/ProjectRegistry.d.ts.map +1 -0
  137. package/dist/services/ProjectRegistry.js +147 -0
  138. package/dist/services/ProjectRegistry.js.map +1 -0
  139. package/dist/services/ProjectRuntimeService.d.ts +18 -0
  140. package/dist/services/ProjectRuntimeService.d.ts.map +1 -0
  141. package/dist/services/ProjectRuntimeService.js +143 -0
  142. package/dist/services/ProjectRuntimeService.js.map +1 -0
  143. package/dist/services/ProjectScreenshotService.d.ts +15 -0
  144. package/dist/services/ProjectScreenshotService.d.ts.map +1 -0
  145. package/dist/services/ProjectScreenshotService.js +90 -0
  146. package/dist/services/ProjectScreenshotService.js.map +1 -0
  147. package/dist/services/ProjectStorage.d.ts +20 -0
  148. package/dist/services/ProjectStorage.d.ts.map +1 -0
  149. package/dist/services/ProjectStorage.js +41 -0
  150. package/dist/services/ProjectStorage.js.map +1 -0
  151. package/dist/services/StaticLibraryPreviews.d.ts +21 -0
  152. package/dist/services/StaticLibraryPreviews.d.ts.map +1 -0
  153. package/dist/services/StaticLibraryPreviews.js +61 -0
  154. package/dist/services/StaticLibraryPreviews.js.map +1 -0
  155. package/dist/services/TelemetryService.d.ts +7 -0
  156. package/dist/services/TelemetryService.d.ts.map +1 -1
  157. package/dist/services/TelemetryService.js +7 -1
  158. package/dist/services/TelemetryService.js.map +1 -1
  159. package/dist/services/TreeStore.d.ts +8 -3
  160. package/dist/services/TreeStore.d.ts.map +1 -1
  161. package/dist/services/TreeStore.js +39 -18
  162. package/dist/services/TreeStore.js.map +1 -1
  163. package/dist/services/VariantGenerationService.d.ts +5 -0
  164. package/dist/services/VariantGenerationService.d.ts.map +1 -1
  165. package/dist/services/VariantGenerationService.js +13 -1
  166. package/dist/services/VariantGenerationService.js.map +1 -1
  167. package/dist/services/VariantHistoryService.d.ts +18 -162
  168. package/dist/services/VariantHistoryService.d.ts.map +1 -1
  169. package/dist/services/VariantHistoryService.js +187 -45
  170. package/dist/services/VariantHistoryService.js.map +1 -1
  171. package/dist/services/VariantRunService.d.ts +3 -0
  172. package/dist/services/VariantRunService.d.ts.map +1 -1
  173. package/dist/services/VariantRunService.js +2 -0
  174. package/dist/services/VariantRunService.js.map +1 -1
  175. package/dist/services/VariantsRuntime.d.ts +4 -0
  176. package/dist/services/VariantsRuntime.d.ts.map +1 -1
  177. package/dist/services/VariantsRuntime.js +6 -1
  178. package/dist/services/VariantsRuntime.js.map +1 -1
  179. package/dist/services/createAgentVariantsOrchestrator.d.ts +2 -0
  180. package/dist/services/createAgentVariantsOrchestrator.d.ts.map +1 -1
  181. package/dist/services/createAgentVariantsOrchestrator.js +1 -0
  182. package/dist/services/createAgentVariantsOrchestrator.js.map +1 -1
  183. package/dist/services/historyRoots.d.ts +14 -0
  184. package/dist/services/historyRoots.d.ts.map +1 -0
  185. package/dist/services/historyRoots.js +44 -0
  186. package/dist/services/historyRoots.js.map +1 -0
  187. package/dist/services/libraryErrors.d.ts +7 -0
  188. package/dist/services/libraryErrors.d.ts.map +1 -0
  189. package/dist/services/libraryErrors.js +14 -0
  190. package/dist/services/libraryErrors.js.map +1 -0
  191. package/dist/storage/library/BundleMetadataStore.d.ts +53 -0
  192. package/dist/storage/library/BundleMetadataStore.d.ts.map +1 -0
  193. package/dist/storage/library/BundleMetadataStore.js +317 -0
  194. package/dist/storage/library/BundleMetadataStore.js.map +1 -0
  195. package/dist/storage/library/CoordinatorRecords.d.ts +25 -0
  196. package/dist/storage/library/CoordinatorRecords.d.ts.map +1 -0
  197. package/dist/storage/library/CoordinatorRecords.js +84 -0
  198. package/dist/storage/library/CoordinatorRecords.js.map +1 -0
  199. package/dist/storage/library/ProjectPreviewCache.d.ts +34 -0
  200. package/dist/storage/library/ProjectPreviewCache.d.ts.map +1 -0
  201. package/dist/storage/library/ProjectPreviewCache.js +62 -0
  202. package/dist/storage/library/ProjectPreviewCache.js.map +1 -0
  203. package/dist/storage/library/ProjectRecords.d.ts +64 -0
  204. package/dist/storage/library/ProjectRecords.d.ts.map +1 -0
  205. package/dist/storage/library/ProjectRecords.js +139 -0
  206. package/dist/storage/library/ProjectRecords.js.map +1 -0
  207. package/dist/storage/library/database.d.ts +13 -0
  208. package/dist/storage/library/database.d.ts.map +1 -0
  209. package/dist/storage/library/database.js +106 -0
  210. package/dist/storage/library/database.js.map +1 -0
  211. package/dist/storage/library/migrations.d.ts +5 -0
  212. package/dist/storage/library/migrations.d.ts.map +1 -0
  213. package/dist/storage/library/migrations.js +61 -0
  214. package/dist/storage/library/migrations.js.map +1 -0
  215. package/dist/storage/library/schema/bundle.d.ts +734 -0
  216. package/dist/storage/library/schema/bundle.d.ts.map +1 -0
  217. package/dist/storage/library/schema/bundle.js +79 -0
  218. package/dist/storage/library/schema/bundle.js.map +1 -0
  219. package/dist/storage/library/schema/coordinator.d.ts +72 -0
  220. package/dist/storage/library/schema/coordinator.d.ts.map +1 -0
  221. package/dist/storage/library/schema/coordinator.js +12 -0
  222. package/dist/storage/library/schema/coordinator.js.map +1 -0
  223. package/dist/storage/library/schema/registry.d.ts +198 -0
  224. package/dist/storage/library/schema/registry.d.ts.map +1 -0
  225. package/dist/storage/library/schema/registry.js +32 -0
  226. package/dist/storage/library/schema/registry.js.map +1 -0
  227. package/dist/storage/library/sourcePresentation.d.ts +3 -0
  228. package/dist/storage/library/sourcePresentation.d.ts.map +1 -0
  229. package/dist/storage/library/sourcePresentation.js +70 -0
  230. package/dist/storage/library/sourcePresentation.js.map +1 -0
  231. package/dist/storage/project-metadata/ProjectMetadataRecords.d.ts +41 -0
  232. package/dist/storage/project-metadata/ProjectMetadataRecords.d.ts.map +1 -0
  233. package/dist/storage/project-metadata/ProjectMetadataRecords.js +120 -0
  234. package/dist/storage/project-metadata/ProjectMetadataRecords.js.map +1 -0
  235. package/dist/storage/project-metadata/database.d.ts +12 -0
  236. package/dist/storage/project-metadata/database.d.ts.map +1 -0
  237. package/dist/storage/project-metadata/database.js +79 -0
  238. package/dist/storage/project-metadata/database.js.map +1 -0
  239. package/dist/{services/projectMetadataMigrations.d.ts → storage/project-metadata/migrations.d.ts} +1 -1
  240. package/dist/storage/project-metadata/migrations.d.ts.map +1 -0
  241. package/dist/{services/projectMetadataMigrations.js → storage/project-metadata/migrations.js} +1 -1
  242. package/dist/storage/project-metadata/migrations.js.map +1 -0
  243. package/dist/storage/project-metadata/schema.d.ts +288 -0
  244. package/dist/storage/project-metadata/schema.d.ts.map +1 -0
  245. package/dist/storage/project-metadata/schema.js +35 -0
  246. package/dist/storage/project-metadata/schema.js.map +1 -0
  247. package/dist/types/account.d.ts +8 -0
  248. package/dist/types/account.d.ts.map +1 -0
  249. package/dist/types/account.js +3 -0
  250. package/dist/types/account.js.map +1 -0
  251. package/dist/types/project-library.d.ts +28 -0
  252. package/dist/types/project-library.d.ts.map +1 -0
  253. package/dist/types/project-library.js +3 -0
  254. package/dist/types/project-library.js.map +1 -0
  255. package/dist/types/variant-history.d.ts +173 -0
  256. package/dist/types/variant-history.d.ts.map +1 -0
  257. package/dist/types/variant-history.js +3 -0
  258. package/dist/types/variant-history.js.map +1 -0
  259. package/dist/utils/htmlDocument.d.ts +13 -0
  260. package/dist/utils/htmlDocument.d.ts.map +1 -0
  261. package/dist/utils/htmlDocument.js +42 -0
  262. package/dist/utils/htmlDocument.js.map +1 -0
  263. package/dist/utils/windowPlacement.d.ts +20 -0
  264. package/dist/utils/windowPlacement.d.ts.map +1 -0
  265. package/dist/utils/windowPlacement.js +20 -0
  266. package/dist/utils/windowPlacement.js.map +1 -0
  267. package/package.json +10 -3
  268. package/scripts/verify-node-version.cjs +9 -6
  269. package/src/ui/dist/assets/LibraryApp-B2MZyxIp.js +16 -0
  270. package/src/ui/dist/assets/main-1IMq5Huu.css +1 -0
  271. package/src/ui/dist/assets/main-BId3Sa7r.js +438 -0
  272. package/src/ui/dist/favicon-16.png +0 -0
  273. package/src/ui/dist/favicon-32.png +0 -0
  274. package/src/ui/dist/favicon.ico +0 -0
  275. package/src/ui/dist/index.html +2 -2
  276. package/dist/services/projectMetadataMigrations.d.ts.map +0 -1
  277. package/dist/services/projectMetadataMigrations.js.map +0 -1
  278. package/src/ui/dist/assets/main-BjwDfDy8.js +0 -423
  279. package/src/ui/dist/assets/main-Ct1aZend.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VariantsRuntime.d.ts","sourceRoot":"","sources":["../../src/services/VariantsRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,YAAY,EAAE,yBAAyB,CAAC;IACxC,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,UAAU,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,eAAe,CAAC,EAAE,UAAU,CAC1B,oBAAoB,CAAC,uBAAuB,CAAC,CAC9C,CAAC,CAAC,CAAC,CAAC;CACN,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,4BAA4B,KACpC,eA0CF,CAAC"}
1
+ {"version":3,"file":"VariantsRuntime.d.ts","sourceRoot":"","sources":["../../src/services/VariantsRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAOxD,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,YAAY,EAAE,yBAAyB,CAAC;IACxC,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,UAAU,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,eAAe,CAAC,EAAE,UAAU,CAC1B,oBAAoB,CAAC,uBAAuB,CAAC,CAC9C,CAAC,CAAC,CAAC,CAAC;CACN,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,4BAA4B,KACpC,eA8CF,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createVariantsRuntime = void 0;
4
+ const VariantHistoryService_1 = require("./VariantHistoryService");
4
5
  const createAgentVariantsOrchestrator_1 = require("./createAgentVariantsOrchestrator");
5
6
  const SessionBridgeService_1 = require("./SessionBridgeService");
6
7
  const VariantRunService_1 = require("./VariantRunService");
@@ -10,6 +11,7 @@ const ConfigManager_1 = require("./ConfigManager");
10
11
  * Creates the shared runtime used to start, preview, refine, and commit variant sessions.
11
12
  */
12
13
  const createVariantsRuntime = (options) => {
14
+ const history = options.history ?? new VariantHistoryService_1.VariantHistoryService();
13
15
  const bridge = new SessionBridgeService_1.SessionBridgeService();
14
16
  bridge.startSession(options.projectPath);
15
17
  if (options.devServerContext) {
@@ -19,6 +21,7 @@ const createVariantsRuntime = (options) => {
19
21
  bridge.updateDevServerHealth(options.devServerHealth);
20
22
  }
21
23
  const orchestrator = (0, createAgentVariantsOrchestrator_1.createAgentVariantsOrchestrator)({
24
+ history,
22
25
  bridge,
23
26
  telemetry: options.telemetry,
24
27
  projectPathFallback: options.projectPath,
@@ -37,6 +40,8 @@ const createVariantsRuntime = (options) => {
37
40
  })
38
41
  : undefined;
39
42
  const runService = new VariantRunService_1.VariantRunService({
43
+ storage: history.store.storage,
44
+ onGeneratedProject: options.onGeneratedProject,
40
45
  bridge,
41
46
  orchestrator,
42
47
  projectPath: options.projectPath,
@@ -44,7 +49,7 @@ const createVariantsRuntime = (options) => {
44
49
  ...(executor ? { executor } : {}),
45
50
  ...(options.telemetry ? { telemetry: options.telemetry } : {}),
46
51
  });
47
- return { bridge, orchestrator, runService };
52
+ return { bridge, orchestrator, runService, history };
48
53
  };
49
54
  exports.createVariantsRuntime = createVariantsRuntime;
50
55
  //# sourceMappingURL=VariantsRuntime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VariantsRuntime.js","sourceRoot":"","sources":["../../src/services/VariantsRuntime.ts"],"names":[],"mappings":";;;AACA,uFAAoF;AACpF,iEAA8D;AAE9D,2DAAwD;AACxD,mFAGiD;AACjD,mDAAmD;AAkBnD;;GAEG;AACI,MAAM,qBAAqB,GAAG,CACnC,OAAqC,EACpB,EAAE;IACnB,MAAM,MAAM,GAAG,IAAI,2CAAoB,EAAE,CAAC;IAC1C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7B,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,iEAA+B,EAAC;QACnD,MAAM;QACN,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,mBAAmB,EAAE,OAAO,CAAC,WAAW;QACxC,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAA,+CAAuB,GAAE;QACxC,CAAC,CAAC,IAAI,6CAAqB,CAAC;YACxB,YAAY;YACZ,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,kEAAkE;YAClE,mEAAmE;YACnE,sBAAsB,EAAE,GAAG,EAAE,CAC3B,IAAA,gCAAgB,GAAE,CAAC,yBAAyB,EAAE;YAChD,2BAA2B,EAAE,GAAG,EAAE,CAChC,IAAA,gCAAgB,GAAE,CAAC,6BAA6B,EAAE;YACpD,wBAAwB,EAAE,CAAC,MAAM,EAAE,EAAE,CACnC,IAAA,gCAAgB,GAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;YACrD,qBAAqB,EAAE,GAAG,EAAE,CAC1B,IAAA,gCAAgB,GAAE,CAAC,wBAAwB,EAAE;SAChD,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,UAAU,GAAG,IAAI,qCAAiB,CAAC;QACvC,MAAM;QACN,YAAY;QACZ,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC,CAAC;AA5CW,QAAA,qBAAqB,yBA4ChC"}
1
+ {"version":3,"file":"VariantsRuntime.js","sourceRoot":"","sources":["../../src/services/VariantsRuntime.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAEhE,uFAAoF;AACpF,iEAA8D;AAE9D,2DAAwD;AACxD,mFAGiD;AACjD,mDAAmD;AAqBnD;;GAEG;AACI,MAAM,qBAAqB,GAAG,CACnC,OAAqC,EACpB,EAAE;IACnB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,6CAAqB,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,2CAAoB,EAAE,CAAC;IAC1C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7B,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,iEAA+B,EAAC;QACnD,OAAO;QACP,MAAM;QACN,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,mBAAmB,EAAE,OAAO,CAAC,WAAW;QACxC,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAA,+CAAuB,GAAE;QACxC,CAAC,CAAC,IAAI,6CAAqB,CAAC;YACxB,YAAY;YACZ,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,kEAAkE;YAClE,mEAAmE;YACnE,sBAAsB,EAAE,GAAG,EAAE,CAC3B,IAAA,gCAAgB,GAAE,CAAC,yBAAyB,EAAE;YAChD,2BAA2B,EAAE,GAAG,EAAE,CAChC,IAAA,gCAAgB,GAAE,CAAC,6BAA6B,EAAE;YACpD,wBAAwB,EAAE,CAAC,MAAM,EAAE,EAAE,CACnC,IAAA,gCAAgB,GAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;YACrD,qBAAqB,EAAE,GAAG,EAAE,CAC1B,IAAA,gCAAgB,GAAE,CAAC,wBAAwB,EAAE;SAChD,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,UAAU,GAAG,IAAI,qCAAiB,CAAC;QACvC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;QAC9B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,MAAM;QACN,YAAY;QACZ,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACvD,CAAC,CAAC;AAhDW,QAAA,qBAAqB,yBAgDhC"}
@@ -1,3 +1,4 @@
1
+ import type { VariantHistoryService } from './VariantHistoryService';
1
2
  import { AgentVariantsOrchestrator, type ProjectEnvironment, type WorktreeManagerLike } from '../agent-variants';
2
3
  import { SessionBridgeService } from './SessionBridgeService';
3
4
  import { TelemetryService } from './TelemetryService';
@@ -18,6 +19,7 @@ import { TelemetryService } from './TelemetryService';
18
19
  */
19
20
  export declare const withVariantsSessionReplayLinking: (telemetry: TelemetryService, bridge: SessionBridgeService) => TelemetryService;
20
21
  export type CreateAgentVariantsOrchestratorOptions = {
22
+ history?: VariantHistoryService;
21
23
  bridge: SessionBridgeService;
22
24
  telemetry?: TelemetryService;
23
25
  projectPathFallback?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"createAgentVariantsOrchestrator.d.ts","sourceRoot":"","sources":["../../src/services/createAgentVariantsOrchestrator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EAEzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAWtD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gCAAgC,GAC3C,WAAW,gBAAgB,EAC3B,QAAQ,oBAAoB,KAC3B,gBA0CF,CAAC;AAEF,MAAM,MAAM,sCAAsC,GAAG;IACnD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,yBAAyB,CAAC,EAAE,CAC1B,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAC1C,SAAS,sCAAsC,KAC9C,yBA2DF,CAAC"}
1
+ {"version":3,"file":"createAgentVariantsOrchestrator.d.ts","sourceRoot":"","sources":["../../src/services/createAgentVariantsOrchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EACL,yBAAyB,EAEzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAWtD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gCAAgC,GAC3C,WAAW,gBAAgB,EAC3B,QAAQ,oBAAoB,KAC3B,gBA4CF,CAAC;AAEF,MAAM,MAAM,sCAAsC,GAAG;IACnD,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,yBAAyB,CAAC,EAAE,CAC1B,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAC1C,SAAS,sCAAsC,KAC9C,yBA4DF,CAAC"}
@@ -74,6 +74,7 @@ const createAgentVariantsOrchestrator = (options) => {
74
74
  : undefined;
75
75
  return new agent_variants_1.AgentVariantsOrchestrator({
76
76
  store: new agent_variants_1.SessionStore(),
77
+ variantHistory: options.history,
77
78
  worktreeManager: options.worktreeManager ?? new WorktreeManager_1.WorktreeManager(getProjectPath),
78
79
  telemetry,
79
80
  resolveProjectEnvironment: options.resolveProjectEnvironment ??
@@ -1 +1 @@
1
- {"version":3,"file":"createAgentVariantsOrchestrator.js","sourceRoot":"","sources":["../../src/services/createAgentVariantsOrchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createAgentVariantsOrchestrator.js","sourceRoot":"","sources":["../../src/services/createAgentVariantsOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Fresh sessions scaffold their workdir at `<root>/.rivet/<slug>/` and persist
3
+ * variant history one level deeper (`<slug>/.rivet/variants`, plus the
4
+ * content-addressed `<slug>/.rivet/store.git`). `resolveHistoryProjectPaths`
5
+ * otherwise only walks UP the tree and trusts the live in-memory session's
6
+ * `workspacePath` — so after a Rivet restart, reopening the repo root can't find
7
+ * those nested workdirs and the panel shows zero past directions even though the
8
+ * files are intact. Scan one level of `<projectPath>/.rivet/*` for the tell-tale
9
+ * history markers to rediscover them. Scoped to a single level and gated on the
10
+ * marker so scratch dirs (`.rivet-preview-*`, `mcp-bridge`, a bare `variants`
11
+ * dir) are never mistaken for session workdirs.
12
+ */
13
+ export declare const nestedFreshSessionWorkdirs: (projectPath: string) => string[];
14
+ //# sourceMappingURL=historyRoots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"historyRoots.d.ts","sourceRoot":"","sources":["../../src/services/historyRoots.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,0BAA0B,GAAI,aAAa,MAAM,KAAG,MAAM,EAmBtE,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.nestedFreshSessionWorkdirs = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ /**
10
+ * Fresh sessions scaffold their workdir at `<root>/.rivet/<slug>/` and persist
11
+ * variant history one level deeper (`<slug>/.rivet/variants`, plus the
12
+ * content-addressed `<slug>/.rivet/store.git`). `resolveHistoryProjectPaths`
13
+ * otherwise only walks UP the tree and trusts the live in-memory session's
14
+ * `workspacePath` — so after a Rivet restart, reopening the repo root can't find
15
+ * those nested workdirs and the panel shows zero past directions even though the
16
+ * files are intact. Scan one level of `<projectPath>/.rivet/*` for the tell-tale
17
+ * history markers to rediscover them. Scoped to a single level and gated on the
18
+ * marker so scratch dirs (`.rivet-preview-*`, `mcp-bridge`, a bare `variants`
19
+ * dir) are never mistaken for session workdirs.
20
+ */
21
+ const nestedFreshSessionWorkdirs = (projectPath) => {
22
+ const rivetDir = path_1.default.join(projectPath, '.rivet');
23
+ let entries;
24
+ try {
25
+ entries = fs_1.default.readdirSync(rivetDir, { withFileTypes: true });
26
+ }
27
+ catch {
28
+ // No `.rivet/` here (or unreadable) — nothing to rediscover.
29
+ return [];
30
+ }
31
+ const workdirs = [];
32
+ for (const entry of entries) {
33
+ if (!entry.isDirectory())
34
+ continue;
35
+ const workdir = path_1.default.join(rivetDir, entry.name);
36
+ const ownsHistory = fs_1.default.existsSync(path_1.default.join(workdir, '.rivet', 'variants')) ||
37
+ fs_1.default.existsSync(path_1.default.join(workdir, '.rivet', 'store.git'));
38
+ if (ownsHistory)
39
+ workdirs.push(workdir);
40
+ }
41
+ return workdirs;
42
+ };
43
+ exports.nestedFreshSessionWorkdirs = nestedFreshSessionWorkdirs;
44
+ //# sourceMappingURL=historyRoots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"historyRoots.js","sourceRoot":"","sources":["../../src/services/historyRoots.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB;;;;;;;;;;;GAWG;AACI,MAAM,0BAA0B,GAAG,CAAC,WAAmB,EAAY,EAAE;IAC1E,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,YAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,WAAW,GACf,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YACvD,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QAC3D,IAAI,WAAW;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAnBW,QAAA,0BAA0B,8BAmBrC"}
@@ -0,0 +1,7 @@
1
+ export type LibraryErrorCode = 'project_not_found' | 'variant_not_found' | 'workspace_unavailable' | 'folder_picker_busy' | 'folder_picker_unavailable' | 'preview_unavailable';
2
+ /** Identifies an application failure independently of its HTTP representation. */
3
+ export declare class LibraryError extends Error {
4
+ readonly code: LibraryErrorCode;
5
+ constructor(code: LibraryErrorCode, message: string);
6
+ }
7
+ //# sourceMappingURL=libraryErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libraryErrors.d.ts","sourceRoot":"","sources":["../../src/services/libraryErrors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,mBAAmB,GACnB,uBAAuB,GACvB,oBAAoB,GACpB,2BAA2B,GAC3B,qBAAqB,CAAC;AAE1B,kFAAkF;AAClF,qBAAa,YAAa,SAAQ,KAAK;IAEnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB;gBAAtB,IAAI,EAAE,gBAAgB,EAC/B,OAAO,EAAE,MAAM;CAKlB"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LibraryError = void 0;
4
+ /** Identifies an application failure independently of its HTTP representation. */
5
+ class LibraryError extends Error {
6
+ code;
7
+ constructor(code, message) {
8
+ super(message);
9
+ this.code = code;
10
+ this.name = 'LibraryError';
11
+ }
12
+ }
13
+ exports.LibraryError = LibraryError;
14
+ //# sourceMappingURL=libraryErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libraryErrors.js","sourceRoot":"","sources":["../../src/services/libraryErrors.ts"],"names":[],"mappings":";;;AAQA,kFAAkF;AAClF,MAAa,YAAa,SAAQ,KAAK;IAE1B;IADX,YACW,IAAsB,EAC/B,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAkB;QAI/B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AARD,oCAQC"}
@@ -0,0 +1,53 @@
1
+ import type { VariantHistoryManifest, VariantHistorySessionFile } from '../../types/variant-history';
2
+ interface BundleProject {
3
+ id: string;
4
+ name: string;
5
+ workspaceId: string;
6
+ }
7
+ interface OpenBundleOptions {
8
+ directory: string;
9
+ project: BundleProject;
10
+ }
11
+ /** Owns a bundle's metadata, independently of exported manifests and catalog caches. */
12
+ export declare class BundleMetadataStore {
13
+ private readonly db;
14
+ private readonly project;
15
+ private isClosed;
16
+ private constructor();
17
+ /** Opens and validates a bundle without repairing or replacing durable user data. */
18
+ static open({ directory, project, }: OpenBundleOptions): Promise<BundleMetadataStore>;
19
+ /** Publishes verified artifact metadata and increments its revision in one transaction. */
20
+ upsertVariant(manifest: VariantHistoryManifest, artifactPath?: string): void;
21
+ /** Applies a metadata edit while holding the database write transaction. */
22
+ updateVariant(args: {
23
+ sessionId: string;
24
+ variantId: string;
25
+ update: (manifest: VariantHistoryManifest) => void;
26
+ }): boolean;
27
+ /** Reads the relative artifact directory published with a direction. */
28
+ artifactPath(sessionId: string, variantId: string): string | null;
29
+ /** Writes metadata within the caller's transaction after artifact verification. */
30
+ private writeVariant;
31
+ /** Reads one exact direction; missing identifiers never fall back to another session. */
32
+ getVariant(sessionId: string, variantId: string): VariantHistoryManifest | null;
33
+ /** Lists published metadata in stable creation order without reading artifact files. */
34
+ listVariants(): VariantHistoryManifest[];
35
+ /** Preserves session-level metadata such as whole-canvas deployments. */
36
+ putSession(session: VariantHistorySessionFile): void;
37
+ /** Reads stored session metadata, including imported extension fields. */
38
+ getSession(sessionId: string): VariantHistorySessionFile | null;
39
+ /** Stores the editor's pins and ordering without involving a derived catalog. */
40
+ setPresentation(value: unknown): void;
41
+ /** Returns the stored presentation document or null before the first edit. */
42
+ getPresentation(): unknown;
43
+ /** Releases the bundle database handle. */
44
+ close(): void;
45
+ /** Records an immutable ref/commit pair, separately from mutable ref names. */
46
+ private putSnapshot;
47
+ /** Reconstructs a saved pointer from its durable provenance record. */
48
+ private snapshot;
49
+ /** Reconstructs the history contract from scalar records and extension metadata. */
50
+ private decodeVariant;
51
+ }
52
+ export {};
53
+ //# sourceMappingURL=BundleMetadataStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BundleMetadataStore.d.ts","sourceRoot":"","sources":["../../../src/storage/library/BundleMetadataStore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AAYrC,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AACD,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,CAAC;CACxB;AAcD,wFAAwF;AACxF,qBAAa,mBAAmB;IAG5B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO;IAKP,qFAAqF;WACxE,IAAI,CAAC,EAChB,SAAS,EACT,OAAO,GACR,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4BnD,2FAA2F;IAC3F,aAAa,CAAC,QAAQ,EAAE,sBAAsB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5E,4EAA4E;IAC5E,aAAa,CAAC,IAAI,EAAE;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;KACpD,GAAG,OAAO;IAWX,wEAAwE;IACxE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAejE,mFAAmF;IACnF,OAAO,CAAC,YAAY;IAgGpB,yFAAyF;IACzF,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,sBAAsB,GAAG,IAAI;IAchC,wFAAwF;IACxF,YAAY,IAAI,sBAAsB,EAAE;IASxC,yEAAyE;IACzE,UAAU,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;IAiBpD,0EAA0E;IAC1E,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI;IAiB/D,iFAAiF;IACjF,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAerC,8EAA8E;IAC9E,eAAe,IAAI,OAAO;IAS1B,2CAA2C;IAC3C,KAAK,IAAI,IAAI;IAOb,+EAA+E;IAC/E,OAAO,CAAC,WAAW;IAyBnB,uEAAuE;IACvE,OAAO,CAAC,QAAQ;IAehB,oFAAoF;IACpF,OAAO,CAAC,aAAa;CA0CtB"}
@@ -0,0 +1,317 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BundleMetadataStore = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const crypto_1 = require("crypto");
9
+ const drizzle_orm_1 = require("drizzle-orm");
10
+ const migrations_1 = require("./migrations");
11
+ const database_1 = require("./database");
12
+ const bundle_1 = require("./schema/bundle");
13
+ const PRESENTATION_KEY = 'variants_ui_state';
14
+ const PROJECT_SINGLETON = 1;
15
+ /** Stable keys preserve request-less grouping and immutable snapshot provenance. */
16
+ const identifier = (value) => (0, crypto_1.createHash)('sha256').update(JSON.stringify(value)).digest('hex');
17
+ /** Owns a bundle's metadata, independently of exported manifests and catalog caches. */
18
+ class BundleMetadataStore {
19
+ db;
20
+ project;
21
+ isClosed = false;
22
+ constructor(db, project) {
23
+ this.db = db;
24
+ this.project = project;
25
+ }
26
+ /** Opens and validates a bundle without repairing or replacing durable user data. */
27
+ static async open({ directory, project, }) {
28
+ const db = await (0, database_1.openDurableDatabase)({
29
+ databasePath: path_1.default.join(directory, 'metadata.sqlite'),
30
+ schema: migrations_1.BUNDLE_SCHEMA,
31
+ });
32
+ try {
33
+ const now = new Date().toISOString();
34
+ db.insert(bundle_1.project)
35
+ .values({
36
+ singleton: PROJECT_SINGLETON,
37
+ id: project.id,
38
+ name: project.name,
39
+ createdAt: now,
40
+ updatedAt: now,
41
+ })
42
+ .onConflictDoNothing()
43
+ .run();
44
+ if (db.select({ id: bundle_1.project.id }).from(bundle_1.project).get()?.id !== project.id)
45
+ throw new Error('Bundle project identity does not match registration');
46
+ return new BundleMetadataStore(db, project);
47
+ }
48
+ catch (error) {
49
+ (0, database_1.closeDatabase)(db);
50
+ throw error;
51
+ }
52
+ }
53
+ /** Publishes verified artifact metadata and increments its revision in one transaction. */
54
+ upsertVariant(manifest, artifactPath) {
55
+ (0, database_1.transaction)(this.db, () => this.writeVariant(manifest, artifactPath));
56
+ }
57
+ /** Applies a metadata edit while holding the database write transaction. */
58
+ updateVariant(args) {
59
+ return (0, database_1.transaction)(this.db, () => {
60
+ const manifest = this.getVariant(args.sessionId, args.variantId);
61
+ if (!manifest)
62
+ return false;
63
+ const before = JSON.stringify(manifest);
64
+ args.update(manifest);
65
+ if (JSON.stringify(manifest) !== before)
66
+ this.writeVariant(manifest);
67
+ return true;
68
+ });
69
+ }
70
+ /** Reads the relative artifact directory published with a direction. */
71
+ artifactPath(sessionId, variantId) {
72
+ return (this.db
73
+ .select({ path: bundle_1.variants.artifactPath })
74
+ .from(bundle_1.variants)
75
+ .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(bundle_1.variants.sessionId, sessionId), (0, drizzle_orm_1.eq)(bundle_1.variants.variantId, variantId)))
76
+ .get()?.path ?? null);
77
+ }
78
+ /** Writes metadata within the caller's transaction after artifact verification. */
79
+ writeVariant(manifest, artifactPath) {
80
+ const { sessionId, variantId, label, brief, status, createdAt, statusChangedAt, changedFilesCount, tree, base, parent, parentVariant, ...details } = manifest;
81
+ this.db
82
+ .insert(bundle_1.sessions)
83
+ .values({
84
+ id: sessionId,
85
+ initialPrompt: manifest.sessionPrompt,
86
+ projectKind: manifest.projectKind,
87
+ sourceWorkspaceId: this.project.workspaceId,
88
+ createdAt,
89
+ details: {},
90
+ })
91
+ .onConflictDoNothing()
92
+ .run();
93
+ const existing = this.db
94
+ .select({ batchId: bundle_1.variants.batchId })
95
+ .from(bundle_1.variants)
96
+ .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(bundle_1.variants.sessionId, sessionId), (0, drizzle_orm_1.eq)(bundle_1.variants.variantId, variantId)))
97
+ .get();
98
+ const batchId = existing?.batchId ??
99
+ identifier([
100
+ sessionId,
101
+ manifest.requestId ?? null,
102
+ manifest.requestId ? null : (manifest.runLabel ?? null),
103
+ ]);
104
+ const batchLabel = manifest.runLabel ?? null;
105
+ this.db
106
+ .insert(bundle_1.batches)
107
+ .values({
108
+ id: batchId,
109
+ sessionId,
110
+ requestId: manifest.requestId ?? null,
111
+ label: batchLabel,
112
+ createdAt,
113
+ })
114
+ .onConflictDoUpdate({
115
+ target: [bundle_1.batches.sessionId, bundle_1.batches.id],
116
+ set: { label: batchLabel },
117
+ })
118
+ .run();
119
+ const metadata = {
120
+ batchId,
121
+ label,
122
+ brief,
123
+ status,
124
+ statusChangedAt,
125
+ changedFilesCount,
126
+ details,
127
+ snapshotId: this.putSnapshot(tree, createdAt),
128
+ baseSnapshotId: this.putSnapshot(base, createdAt),
129
+ parentSnapshotId: this.putSnapshot(parent, createdAt),
130
+ parentSessionId: parentVariant?.sessionId ?? null,
131
+ parentVariantId: parentVariant?.variantId ?? null,
132
+ };
133
+ this.db
134
+ .insert(bundle_1.variants)
135
+ .values({
136
+ sessionId,
137
+ variantId,
138
+ createdAt,
139
+ artifactPath: artifactPath ?? null,
140
+ ...metadata,
141
+ })
142
+ .onConflictDoUpdate({
143
+ target: [bundle_1.variants.sessionId, bundle_1.variants.variantId],
144
+ set: {
145
+ ...metadata,
146
+ ...(artifactPath !== undefined ? { artifactPath } : {}),
147
+ },
148
+ })
149
+ .run();
150
+ }
151
+ /** Reads one exact direction; missing identifiers never fall back to another session. */
152
+ getVariant(sessionId, variantId) {
153
+ const row = this.db
154
+ .select()
155
+ .from(bundle_1.variants)
156
+ .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(bundle_1.variants.sessionId, sessionId), (0, drizzle_orm_1.eq)(bundle_1.variants.variantId, variantId)))
157
+ .get();
158
+ return row ? this.decodeVariant(row) : null;
159
+ }
160
+ /** Lists published metadata in stable creation order without reading artifact files. */
161
+ listVariants() {
162
+ return this.db
163
+ .select()
164
+ .from(bundle_1.variants)
165
+ .orderBy((0, drizzle_orm_1.desc)(bundle_1.variants.createdAt), bundle_1.variants.sessionId, bundle_1.variants.variantId)
166
+ .all()
167
+ .map((row) => this.decodeVariant(row));
168
+ }
169
+ /** Preserves session-level metadata such as whole-canvas deployments. */
170
+ putSession(session) {
171
+ (0, database_1.transaction)(this.db, () => {
172
+ this.db
173
+ .insert(bundle_1.sessions)
174
+ .values({
175
+ id: session.sessionId,
176
+ initialPrompt: session.sessionPrompt,
177
+ projectKind: session.projectKind,
178
+ sourceWorkspaceId: this.project.workspaceId,
179
+ createdAt: session.createdAt,
180
+ details: session,
181
+ })
182
+ .onConflictDoUpdate({ target: bundle_1.sessions.id, set: { details: session } })
183
+ .run();
184
+ });
185
+ }
186
+ /** Reads stored session metadata, including imported extension fields. */
187
+ getSession(sessionId) {
188
+ const row = this.db
189
+ .select()
190
+ .from(bundle_1.sessions)
191
+ .where((0, drizzle_orm_1.eq)(bundle_1.sessions.id, sessionId))
192
+ .get();
193
+ if (!row)
194
+ return null;
195
+ return {
196
+ schemaVersion: 2,
197
+ sessionId,
198
+ sessionPrompt: row.initialPrompt,
199
+ projectKind: row.projectKind,
200
+ createdAt: row.createdAt,
201
+ ...row.details,
202
+ };
203
+ }
204
+ /** Stores the editor's pins and ordering without involving a derived catalog. */
205
+ setPresentation(value) {
206
+ (0, database_1.transaction)(this.db, () => {
207
+ const updatedAt = new Date().toISOString();
208
+ const serializedValue = JSON.stringify(value);
209
+ this.db
210
+ .insert(bundle_1.presentation)
211
+ .values({ key: PRESENTATION_KEY, value: serializedValue, updatedAt })
212
+ .onConflictDoUpdate({
213
+ target: bundle_1.presentation.key,
214
+ set: { value: serializedValue, updatedAt },
215
+ })
216
+ .run();
217
+ });
218
+ }
219
+ /** Returns the stored presentation document or null before the first edit. */
220
+ getPresentation() {
221
+ const row = this.db
222
+ .select({ value: bundle_1.presentation.value })
223
+ .from(bundle_1.presentation)
224
+ .where((0, drizzle_orm_1.eq)(bundle_1.presentation.key, PRESENTATION_KEY))
225
+ .get();
226
+ return row ? JSON.parse(row.value) : null;
227
+ }
228
+ /** Releases the bundle database handle. */
229
+ close() {
230
+ if (!this.isClosed) {
231
+ (0, database_1.closeDatabase)(this.db);
232
+ this.isClosed = true;
233
+ }
234
+ }
235
+ /** Records an immutable ref/commit pair, separately from mutable ref names. */
236
+ putSnapshot(pointer, createdAt) {
237
+ if (!pointer)
238
+ return null;
239
+ const id = identifier([pointer.ref, pointer.commitSha]);
240
+ this.db
241
+ .insert(bundle_1.snapshots)
242
+ .values({
243
+ id,
244
+ gitRef: pointer.ref,
245
+ commitSha: pointer.commitSha,
246
+ treeSha: pointer.treeSha ?? null,
247
+ createdAt,
248
+ })
249
+ .onConflictDoUpdate({
250
+ target: bundle_1.snapshots.id,
251
+ set: {
252
+ treeSha: (0, drizzle_orm_1.sql) `coalesce(${bundle_1.snapshots.treeSha}, ${pointer.treeSha ?? null})`,
253
+ },
254
+ })
255
+ .run();
256
+ return id;
257
+ }
258
+ /** Reconstructs a saved pointer from its durable provenance record. */
259
+ snapshot(id) {
260
+ if (id === null)
261
+ return undefined;
262
+ const row = this.db
263
+ .select()
264
+ .from(bundle_1.snapshots)
265
+ .where((0, drizzle_orm_1.eq)(bundle_1.snapshots.id, id))
266
+ .get();
267
+ if (!row)
268
+ throw new Error('Missing snapshot metadata');
269
+ return {
270
+ ref: row.gitRef,
271
+ commitSha: row.commitSha,
272
+ ...(row.treeSha ? { treeSha: row.treeSha } : {}),
273
+ };
274
+ }
275
+ /** Reconstructs the history contract from scalar records and extension metadata. */
276
+ decodeVariant(row) {
277
+ const tree = this.snapshot(row.snapshotId);
278
+ const base = this.snapshot(row.baseSnapshotId);
279
+ const parent = this.snapshot(row.parentSnapshotId);
280
+ if (tree && !tree.treeSha)
281
+ throw new Error('Missing snapshot tree metadata');
282
+ return {
283
+ ...row.details,
284
+ sessionId: row.sessionId,
285
+ variantId: row.variantId,
286
+ label: row.label,
287
+ brief: row.brief,
288
+ status: row.status,
289
+ createdAt: row.createdAt,
290
+ statusChangedAt: row.statusChangedAt,
291
+ changedFilesCount: row.changedFilesCount,
292
+ ...(tree?.treeSha
293
+ ? {
294
+ tree: {
295
+ ref: tree.ref,
296
+ commitSha: tree.commitSha,
297
+ treeSha: tree.treeSha,
298
+ },
299
+ }
300
+ : {}),
301
+ ...(base ? { base: { ref: base.ref, commitSha: base.commitSha } } : {}),
302
+ ...(parent
303
+ ? { parent: { ref: parent.ref, commitSha: parent.commitSha } }
304
+ : {}),
305
+ ...(row.parentVariantId && row.parentSessionId
306
+ ? {
307
+ parentVariant: {
308
+ sessionId: row.parentSessionId,
309
+ variantId: row.parentVariantId,
310
+ },
311
+ }
312
+ : {}),
313
+ };
314
+ }
315
+ }
316
+ exports.BundleMetadataStore = BundleMetadataStore;
317
+ //# sourceMappingURL=BundleMetadataStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BundleMetadataStore.js","sourceRoot":"","sources":["../../../src/storage/library/BundleMetadataStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { coordinator } from './schema/coordinator';
2
+ type CoordinatorRecord = Pick<typeof coordinator.$inferSelect, 'pid' | 'token' | 'port'>;
3
+ /** Persists coordinator ownership and readiness in the channel's runtime directory. */
4
+ export declare class CoordinatorRecords {
5
+ private readonly db;
6
+ private constructor();
7
+ /** Opens the durable coordinator record. */
8
+ static open(root: string): Promise<CoordinatorRecords>;
9
+ /** Holds the write lock while a caller checks and assigns process ownership. */
10
+ transaction<T>(operation: () => T): T;
11
+ /** Reads the recorded owner and its published port. */
12
+ read(): CoordinatorRecord | null;
13
+ /** Replaces the owner within the caller's ownership transaction. */
14
+ assign(record: CoordinatorRecord): void;
15
+ /** Updates readiness only while the supplied process still owns the record. */
16
+ publish({ pid, token, port }: CoordinatorRecord): boolean;
17
+ /** Deletes only the supplied process identity. */
18
+ release({ pid, token }: Omit<CoordinatorRecord, 'port'>): void;
19
+ /** Deletes an observed record only if neither its owner nor readiness has changed. */
20
+ discard({ pid, token, port }: CoordinatorRecord): boolean;
21
+ /** Releases the discovery database connection. */
22
+ close(): void;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=CoordinatorRecords.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoordinatorRecords.d.ts","sourceRoot":"","sources":["../../../src/storage/library/CoordinatorRecords.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,KAAK,iBAAiB,GAAG,IAAI,CAC3B,OAAO,WAAW,CAAC,YAAY,EAC/B,KAAK,GAAG,OAAO,GAAG,MAAM,CACzB,CAAC;AAGF,uFAAuF;AACvF,qBAAa,kBAAkB;IACT,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAvC,OAAO;IAEP,4CAA4C;WAC/B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS5D,gFAAgF;IAChF,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC;IAIrC,uDAAuD;IACvD,IAAI,IAAI,iBAAiB,GAAG,IAAI;IAchC,oEAAoE;IACpE,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAQvC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,iBAAiB,GAAG,OAAO;IAkBzD,kDAAkD;IAClD,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,IAAI;IAS9D,sFAAsF;IACtF,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,iBAAiB,GAAG,OAAO;IAkBzD,kDAAkD;IAClD,KAAK,IAAI,IAAI;CAGd"}