@vibesdotdev/storage 0.0.1

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 (423) hide show
  1. package/README.md +75 -0
  2. package/SPEC.md +60 -0
  3. package/dist/adapters/index.d.ts +14 -0
  4. package/dist/adapters/index.d.ts.map +1 -0
  5. package/dist/adapters/index.js +15 -0
  6. package/dist/adapters/index.js.map +1 -0
  7. package/dist/bridge/index.d.ts +3 -0
  8. package/dist/bridge/index.d.ts.map +1 -0
  9. package/dist/bridge/index.js +2 -0
  10. package/dist/bridge/index.js.map +1 -0
  11. package/dist/bridge/storage-kind-bridge.d.ts +27 -0
  12. package/dist/bridge/storage-kind-bridge.d.ts.map +1 -0
  13. package/dist/bridge/storage-kind-bridge.js +110 -0
  14. package/dist/bridge/storage-kind-bridge.js.map +1 -0
  15. package/dist/bridge/types.d.ts +45 -0
  16. package/dist/bridge/types.d.ts.map +1 -0
  17. package/dist/bridge/types.js +8 -0
  18. package/dist/bridge/types.js.map +1 -0
  19. package/dist/cli/commands/list/storage.list.cli-command.descriptor.d.ts +4 -0
  20. package/dist/cli/commands/list/storage.list.cli-command.descriptor.d.ts.map +1 -0
  21. package/dist/cli/commands/list/storage.list.cli-command.descriptor.js +18 -0
  22. package/dist/cli/commands/list/storage.list.cli-command.descriptor.js.map +1 -0
  23. package/dist/cli/commands/list/storage.list.cli-command.impl.d.ts +11 -0
  24. package/dist/cli/commands/list/storage.list.cli-command.impl.d.ts.map +1 -0
  25. package/dist/cli/commands/list/storage.list.cli-command.impl.js +48 -0
  26. package/dist/cli/commands/list/storage.list.cli-command.impl.js.map +1 -0
  27. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.d.ts +4 -0
  28. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.d.ts.map +1 -0
  29. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.js +26 -0
  30. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.js.map +1 -0
  31. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.d.ts +13 -0
  32. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.d.ts.map +1 -0
  33. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.js +136 -0
  34. package/dist/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.js.map +1 -0
  35. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.d.ts +4 -0
  36. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.d.ts.map +1 -0
  37. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.js +26 -0
  38. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.js.map +1 -0
  39. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.d.ts +13 -0
  40. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.d.ts.map +1 -0
  41. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.js +165 -0
  42. package/dist/cli/commands/sync/push/storage.sync.push.cli-command.impl.js.map +1 -0
  43. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.d.ts +4 -0
  44. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.d.ts.map +1 -0
  45. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.js +20 -0
  46. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.js.map +1 -0
  47. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.d.ts +12 -0
  48. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.d.ts.map +1 -0
  49. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.js +95 -0
  50. package/dist/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.js.map +1 -0
  51. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.d.ts +4 -0
  52. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.d.ts.map +1 -0
  53. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.js +15 -0
  54. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.js.map +1 -0
  55. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.d.ts +13 -0
  56. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.d.ts.map +1 -0
  57. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.js +150 -0
  58. package/dist/cli/commands/sync/status/storage.sync.status.cli-command.impl.js.map +1 -0
  59. package/dist/cli/context.consumer.d.ts +26 -0
  60. package/dist/cli/context.consumer.d.ts.map +1 -0
  61. package/dist/cli/context.consumer.js +164 -0
  62. package/dist/cli/context.consumer.js.map +1 -0
  63. package/dist/cli/storage.cli-group.descriptor.d.ts +4 -0
  64. package/dist/cli/storage.cli-group.descriptor.d.ts.map +1 -0
  65. package/dist/cli/storage.cli-group.descriptor.js +11 -0
  66. package/dist/cli/storage.cli-group.descriptor.js.map +1 -0
  67. package/dist/cli/storage.sync.cli-group.descriptor.d.ts +4 -0
  68. package/dist/cli/storage.sync.cli-group.descriptor.d.ts.map +1 -0
  69. package/dist/cli/storage.sync.cli-group.descriptor.js +12 -0
  70. package/dist/cli/storage.sync.cli-group.descriptor.js.map +1 -0
  71. package/dist/cli/types.d.ts +26 -0
  72. package/dist/cli/types.d.ts.map +1 -0
  73. package/dist/cli/types.js +11 -0
  74. package/dist/cli/types.js.map +1 -0
  75. package/dist/client/index.d.ts +10 -0
  76. package/dist/client/index.d.ts.map +1 -0
  77. package/dist/client/index.js +10 -0
  78. package/dist/client/index.js.map +1 -0
  79. package/dist/client/list-browsable-adapters.d.ts +31 -0
  80. package/dist/client/list-browsable-adapters.d.ts.map +1 -0
  81. package/dist/client/list-browsable-adapters.js +40 -0
  82. package/dist/client/list-browsable-adapters.js.map +1 -0
  83. package/dist/daemon/commands/sync.d.ts +23 -0
  84. package/dist/daemon/commands/sync.d.ts.map +1 -0
  85. package/dist/daemon/commands/sync.js +169 -0
  86. package/dist/daemon/commands/sync.js.map +1 -0
  87. package/dist/docs/adapters.docs.descriptor.d.ts +4 -0
  88. package/dist/docs/adapters.docs.descriptor.d.ts.map +1 -0
  89. package/dist/docs/adapters.docs.descriptor.js +223 -0
  90. package/dist/docs/adapters.docs.descriptor.js.map +1 -0
  91. package/dist/docs/manifests.docs.descriptor.d.ts +4 -0
  92. package/dist/docs/manifests.docs.descriptor.d.ts.map +1 -0
  93. package/dist/docs/manifests.docs.descriptor.js +316 -0
  94. package/dist/docs/manifests.docs.descriptor.js.map +1 -0
  95. package/dist/docs/records.docs.descriptor.d.ts +4 -0
  96. package/dist/docs/records.docs.descriptor.d.ts.map +1 -0
  97. package/dist/docs/records.docs.descriptor.js +269 -0
  98. package/dist/docs/records.docs.descriptor.js.map +1 -0
  99. package/dist/docs/sync.docs.descriptor.d.ts +4 -0
  100. package/dist/docs/sync.docs.descriptor.d.ts.map +1 -0
  101. package/dist/docs/sync.docs.descriptor.js +279 -0
  102. package/dist/docs/sync.docs.descriptor.js.map +1 -0
  103. package/dist/index.d.ts +27 -0
  104. package/dist/index.d.ts.map +1 -0
  105. package/dist/index.js +29 -0
  106. package/dist/index.js.map +1 -0
  107. package/dist/interfaces/adapter.d.ts +382 -0
  108. package/dist/interfaces/adapter.d.ts.map +1 -0
  109. package/dist/interfaces/adapter.js +11 -0
  110. package/dist/interfaces/adapter.js.map +1 -0
  111. package/dist/interfaces/document-store.d.ts +62 -0
  112. package/dist/interfaces/document-store.d.ts.map +1 -0
  113. package/dist/interfaces/document-store.js +8 -0
  114. package/dist/interfaces/document-store.js.map +1 -0
  115. package/dist/interfaces/index.d.ts +17 -0
  116. package/dist/interfaces/index.d.ts.map +1 -0
  117. package/dist/interfaces/index.js +24 -0
  118. package/dist/interfaces/index.js.map +1 -0
  119. package/dist/interfaces/key-value.d.ts +95 -0
  120. package/dist/interfaces/key-value.d.ts.map +1 -0
  121. package/dist/interfaces/key-value.js +8 -0
  122. package/dist/interfaces/key-value.js.map +1 -0
  123. package/dist/interfaces/query-builder.d.ts +31 -0
  124. package/dist/interfaces/query-builder.d.ts.map +1 -0
  125. package/dist/interfaces/query-builder.js +11 -0
  126. package/dist/interfaces/query-builder.js.map +1 -0
  127. package/dist/interfaces/record/index.d.ts +7 -0
  128. package/dist/interfaces/record/index.d.ts.map +1 -0
  129. package/dist/interfaces/record/index.js +7 -0
  130. package/dist/interfaces/record/index.js.map +1 -0
  131. package/dist/interfaces/record/interface.d.ts +593 -0
  132. package/dist/interfaces/record/interface.d.ts.map +1 -0
  133. package/dist/interfaces/record/interface.js +49 -0
  134. package/dist/interfaces/record/interface.js.map +1 -0
  135. package/dist/interfaces/repository.d.ts +262 -0
  136. package/dist/interfaces/repository.d.ts.map +1 -0
  137. package/dist/interfaces/repository.js +8 -0
  138. package/dist/interfaces/repository.js.map +1 -0
  139. package/dist/interfaces/schema/index.d.ts +8 -0
  140. package/dist/interfaces/schema/index.d.ts.map +1 -0
  141. package/dist/interfaces/schema/index.js +10 -0
  142. package/dist/interfaces/schema/index.js.map +1 -0
  143. package/dist/interfaces/schema/schema-interface.d.ts +516 -0
  144. package/dist/interfaces/schema/schema-interface.d.ts.map +1 -0
  145. package/dist/interfaces/schema/schema-interface.js +31 -0
  146. package/dist/interfaces/schema/schema-interface.js.map +1 -0
  147. package/dist/interfaces/schema/table-interface.d.ts +250 -0
  148. package/dist/interfaces/schema/table-interface.d.ts.map +1 -0
  149. package/dist/interfaces/schema/table-interface.js +31 -0
  150. package/dist/interfaces/schema/table-interface.js.map +1 -0
  151. package/dist/interfaces/storage-consumer-fs.d.ts +40 -0
  152. package/dist/interfaces/storage-consumer-fs.d.ts.map +1 -0
  153. package/dist/interfaces/storage-consumer-fs.js +42 -0
  154. package/dist/interfaces/storage-consumer-fs.js.map +1 -0
  155. package/dist/manifest/base.d.ts +187 -0
  156. package/dist/manifest/base.d.ts.map +1 -0
  157. package/dist/manifest/base.js +516 -0
  158. package/dist/manifest/base.js.map +1 -0
  159. package/dist/manifest/cloud-sync.consumer.d.ts +7 -0
  160. package/dist/manifest/cloud-sync.consumer.d.ts.map +1 -0
  161. package/dist/manifest/cloud-sync.consumer.js +82 -0
  162. package/dist/manifest/cloud-sync.consumer.js.map +1 -0
  163. package/dist/manifest/index.d.ts +7 -0
  164. package/dist/manifest/index.d.ts.map +1 -0
  165. package/dist/manifest/index.js +7 -0
  166. package/dist/manifest/index.js.map +1 -0
  167. package/dist/manifest/source-policy.d.ts +8 -0
  168. package/dist/manifest/source-policy.d.ts.map +1 -0
  169. package/dist/manifest/source-policy.js +62 -0
  170. package/dist/manifest/source-policy.js.map +1 -0
  171. package/dist/paths.d.ts +6 -0
  172. package/dist/paths.d.ts.map +1 -0
  173. package/dist/paths.js +152 -0
  174. package/dist/paths.js.map +1 -0
  175. package/dist/policy/context.d.ts +9 -0
  176. package/dist/policy/context.d.ts.map +1 -0
  177. package/dist/policy/context.js +29 -0
  178. package/dist/policy/context.js.map +1 -0
  179. package/dist/policy/index.d.ts +4 -0
  180. package/dist/policy/index.d.ts.map +1 -0
  181. package/dist/policy/index.js +4 -0
  182. package/dist/policy/index.js.map +1 -0
  183. package/dist/policy/overrides.d.ts +40 -0
  184. package/dist/policy/overrides.d.ts.map +1 -0
  185. package/dist/policy/overrides.js +37 -0
  186. package/dist/policy/overrides.js.map +1 -0
  187. package/dist/policy/persistence.d.ts +38 -0
  188. package/dist/policy/persistence.d.ts.map +1 -0
  189. package/dist/policy/persistence.js +65 -0
  190. package/dist/policy/persistence.js.map +1 -0
  191. package/dist/policy/types.d.ts +21 -0
  192. package/dist/policy/types.d.ts.map +1 -0
  193. package/dist/policy/types.js +7 -0
  194. package/dist/policy/types.js.map +1 -0
  195. package/dist/record/base.d.ts +186 -0
  196. package/dist/record/base.d.ts.map +1 -0
  197. package/dist/record/base.js +1437 -0
  198. package/dist/record/base.js.map +1 -0
  199. package/dist/record/events.d.ts +71 -0
  200. package/dist/record/events.d.ts.map +1 -0
  201. package/dist/record/events.js +52 -0
  202. package/dist/record/events.js.map +1 -0
  203. package/dist/record/extensions.d.ts +51 -0
  204. package/dist/record/extensions.d.ts.map +1 -0
  205. package/dist/record/extensions.js +222 -0
  206. package/dist/record/extensions.js.map +1 -0
  207. package/dist/record/index.d.ts +7 -0
  208. package/dist/record/index.d.ts.map +1 -0
  209. package/dist/record/index.js +7 -0
  210. package/dist/record/index.js.map +1 -0
  211. package/dist/resolver/storage-backed-resolver.d.ts +23 -0
  212. package/dist/resolver/storage-backed-resolver.d.ts.map +1 -0
  213. package/dist/resolver/storage-backed-resolver.js +187 -0
  214. package/dist/resolver/storage-backed-resolver.js.map +1 -0
  215. package/dist/schemas/adapter-descriptor.d.ts +108 -0
  216. package/dist/schemas/adapter-descriptor.d.ts.map +1 -0
  217. package/dist/schemas/adapter-descriptor.js +101 -0
  218. package/dist/schemas/adapter-descriptor.js.map +1 -0
  219. package/dist/schemas/index.d.ts +14 -0
  220. package/dist/schemas/index.d.ts.map +1 -0
  221. package/dist/schemas/index.js +12 -0
  222. package/dist/schemas/index.js.map +1 -0
  223. package/dist/schemas/manifest-descriptor.d.ts +110 -0
  224. package/dist/schemas/manifest-descriptor.d.ts.map +1 -0
  225. package/dist/schemas/manifest-descriptor.js +114 -0
  226. package/dist/schemas/manifest-descriptor.js.map +1 -0
  227. package/dist/schemas/record/descriptor.d.ts +570 -0
  228. package/dist/schemas/record/descriptor.d.ts.map +1 -0
  229. package/dist/schemas/record/descriptor.js +389 -0
  230. package/dist/schemas/record/descriptor.js.map +1 -0
  231. package/dist/schemas/record/index.d.ts +8 -0
  232. package/dist/schemas/record/index.d.ts.map +1 -0
  233. package/dist/schemas/record/index.js +7 -0
  234. package/dist/schemas/record/index.js.map +1 -0
  235. package/dist/schemas/record/relation.d.ts +36 -0
  236. package/dist/schemas/record/relation.d.ts.map +1 -0
  237. package/dist/schemas/record/relation.js +37 -0
  238. package/dist/schemas/record/relation.js.map +1 -0
  239. package/dist/schemas/schema/descriptor.d.ts +231 -0
  240. package/dist/schemas/schema/descriptor.d.ts.map +1 -0
  241. package/dist/schemas/schema/descriptor.js +205 -0
  242. package/dist/schemas/schema/descriptor.js.map +1 -0
  243. package/dist/schemas/schema/index.d.ts +7 -0
  244. package/dist/schemas/schema/index.d.ts.map +1 -0
  245. package/dist/schemas/schema/index.js +7 -0
  246. package/dist/schemas/schema/index.js.map +1 -0
  247. package/dist/schemas/sync-bridge-descriptor.d.ts +124 -0
  248. package/dist/schemas/sync-bridge-descriptor.d.ts.map +1 -0
  249. package/dist/schemas/sync-bridge-descriptor.js +67 -0
  250. package/dist/schemas/sync-bridge-descriptor.js.map +1 -0
  251. package/dist/server/manifest-route.d.ts +92 -0
  252. package/dist/server/manifest-route.d.ts.map +1 -0
  253. package/dist/server/manifest-route.js +226 -0
  254. package/dist/server/manifest-route.js.map +1 -0
  255. package/dist/storage-policy.context.descriptor.d.ts +16 -0
  256. package/dist/storage-policy.context.descriptor.d.ts.map +1 -0
  257. package/dist/storage-policy.context.descriptor.js +16 -0
  258. package/dist/storage-policy.context.descriptor.js.map +1 -0
  259. package/dist/storage-policy.context.server.d.ts +14 -0
  260. package/dist/storage-policy.context.server.d.ts.map +1 -0
  261. package/dist/storage-policy.context.server.js +27 -0
  262. package/dist/storage-policy.context.server.js.map +1 -0
  263. package/dist/storage.plugin.d.ts +38 -0
  264. package/dist/storage.plugin.d.ts.map +1 -0
  265. package/dist/storage.plugin.js +204 -0
  266. package/dist/storage.plugin.js.map +1 -0
  267. package/dist/sync/cloud-pull.d.ts +15 -0
  268. package/dist/sync/cloud-pull.d.ts.map +1 -0
  269. package/dist/sync/cloud-pull.js +130 -0
  270. package/dist/sync/cloud-pull.js.map +1 -0
  271. package/dist/sync/cloud-record-crud-config.d.ts +19 -0
  272. package/dist/sync/cloud-record-crud-config.d.ts.map +1 -0
  273. package/dist/sync/cloud-record-crud-config.js +22 -0
  274. package/dist/sync/cloud-record-crud-config.js.map +1 -0
  275. package/dist/sync/record-sync-bridge.d.ts +5 -0
  276. package/dist/sync/record-sync-bridge.d.ts.map +1 -0
  277. package/dist/sync/record-sync-bridge.js +121 -0
  278. package/dist/sync/record-sync-bridge.js.map +1 -0
  279. package/dist/sync/resolve-sync-target.d.ts +23 -0
  280. package/dist/sync/resolve-sync-target.d.ts.map +1 -0
  281. package/dist/sync/resolve-sync-target.js +45 -0
  282. package/dist/sync/resolve-sync-target.js.map +1 -0
  283. package/dist/sync/schemas/cloud-pull.d.ts +25 -0
  284. package/dist/sync/schemas/cloud-pull.d.ts.map +1 -0
  285. package/dist/sync/schemas/cloud-pull.js +7 -0
  286. package/dist/sync/schemas/cloud-pull.js.map +1 -0
  287. package/dist/sync/schemas/index.d.ts +9 -0
  288. package/dist/sync/schemas/index.d.ts.map +1 -0
  289. package/dist/sync/schemas/index.js +9 -0
  290. package/dist/sync/schemas/index.js.map +1 -0
  291. package/dist/sync/schemas/sync-helpers.d.ts +17 -0
  292. package/dist/sync/schemas/sync-helpers.d.ts.map +1 -0
  293. package/dist/sync/schemas/sync-helpers.js +7 -0
  294. package/dist/sync/schemas/sync-helpers.js.map +1 -0
  295. package/dist/sync/schemas/sync-state.d.ts +65 -0
  296. package/dist/sync/schemas/sync-state.d.ts.map +1 -0
  297. package/dist/sync/schemas/sync-state.js +32 -0
  298. package/dist/sync/schemas/sync-state.js.map +1 -0
  299. package/dist/sync/sync-bridge.d.ts +80 -0
  300. package/dist/sync/sync-bridge.d.ts.map +1 -0
  301. package/dist/sync/sync-bridge.js +617 -0
  302. package/dist/sync/sync-bridge.js.map +1 -0
  303. package/dist/sync/sync-manifest.d.ts +20 -0
  304. package/dist/sync/sync-manifest.d.ts.map +1 -0
  305. package/dist/sync/sync-manifest.js +140 -0
  306. package/dist/sync/sync-manifest.js.map +1 -0
  307. package/dist/sync/sync-state.consumer.d.ts +23 -0
  308. package/dist/sync/sync-state.consumer.d.ts.map +1 -0
  309. package/dist/sync/sync-state.consumer.js +111 -0
  310. package/dist/sync/sync-state.consumer.js.map +1 -0
  311. package/dist/transform/index.d.ts +75 -0
  312. package/dist/transform/index.d.ts.map +1 -0
  313. package/dist/transform/index.js +81 -0
  314. package/dist/transform/index.js.map +1 -0
  315. package/dist/transform/transform-descriptor.d.ts +51 -0
  316. package/dist/transform/transform-descriptor.d.ts.map +1 -0
  317. package/dist/transform/transform-descriptor.js +30 -0
  318. package/dist/transform/transform-descriptor.js.map +1 -0
  319. package/dist/tui/storage-explorer.descriptor.d.ts +14 -0
  320. package/dist/tui/storage-explorer.descriptor.d.ts.map +1 -0
  321. package/dist/tui/storage-explorer.descriptor.js +29 -0
  322. package/dist/tui/storage-explorer.descriptor.js.map +1 -0
  323. package/dist/tui/storage-explorer.impl.consumer.d.ts +11 -0
  324. package/dist/tui/storage-explorer.impl.consumer.d.ts.map +1 -0
  325. package/dist/tui/storage-explorer.impl.consumer.js +13 -0
  326. package/dist/tui/storage-explorer.impl.consumer.js.map +1 -0
  327. package/dist/tui/storage-open.descriptor.d.ts +14 -0
  328. package/dist/tui/storage-open.descriptor.d.ts.map +1 -0
  329. package/dist/tui/storage-open.descriptor.js +28 -0
  330. package/dist/tui/storage-open.descriptor.js.map +1 -0
  331. package/dist/tui/storage-open.impl.consumer.d.ts +11 -0
  332. package/dist/tui/storage-open.impl.consumer.d.ts.map +1 -0
  333. package/dist/tui/storage-open.impl.consumer.js +13 -0
  334. package/dist/tui/storage-open.impl.consumer.js.map +1 -0
  335. package/dist/utils/error-context.d.ts +2 -0
  336. package/dist/utils/error-context.d.ts.map +1 -0
  337. package/dist/utils/error-context.js +17 -0
  338. package/dist/utils/error-context.js.map +1 -0
  339. package/package.json +241 -0
  340. package/src/adapters/index.ts +13 -0
  341. package/src/bridge/index.ts +2 -0
  342. package/src/bridge/storage-kind-bridge.ts +131 -0
  343. package/src/bridge/types.ts +46 -0
  344. package/src/cli/commands/list/storage.list.cli-command.descriptor.ts +20 -0
  345. package/src/cli/commands/list/storage.list.cli-command.impl.ts +72 -0
  346. package/src/cli/commands/sync/pull/storage.sync.pull.cli-command.descriptor.ts +28 -0
  347. package/src/cli/commands/sync/pull/storage.sync.pull.cli-command.impl.ts +171 -0
  348. package/src/cli/commands/sync/push/storage.sync.push.cli-command.descriptor.ts +28 -0
  349. package/src/cli/commands/sync/push/storage.sync.push.cli-command.impl.ts +213 -0
  350. package/src/cli/commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.ts +22 -0
  351. package/src/cli/commands/sync/resolve/storage.sync.resolve.cli-command.impl.ts +129 -0
  352. package/src/cli/commands/sync/status/storage.sync.status.cli-command.descriptor.ts +17 -0
  353. package/src/cli/commands/sync/status/storage.sync.status.cli-command.impl.ts +192 -0
  354. package/src/cli/context.consumer.ts +195 -0
  355. package/src/cli/storage.cli-group.descriptor.ts +13 -0
  356. package/src/cli/storage.sync.cli-group.descriptor.ts +14 -0
  357. package/src/cli/types.ts +25 -0
  358. package/src/client/index.ts +10 -0
  359. package/src/client/list-browsable-adapters.ts +42 -0
  360. package/src/daemon/commands/sync.ts +225 -0
  361. package/src/docs/adapters.docs.descriptor.ts +225 -0
  362. package/src/docs/manifests.docs.descriptor.ts +318 -0
  363. package/src/docs/records.docs.descriptor.ts +271 -0
  364. package/src/docs/sync.docs.descriptor.ts +281 -0
  365. package/src/index.ts +109 -0
  366. package/src/interfaces/adapter.ts +451 -0
  367. package/src/interfaces/document-store.ts +74 -0
  368. package/src/interfaces/index.ts +117 -0
  369. package/src/interfaces/key-value.ts +112 -0
  370. package/src/interfaces/query-builder.ts +31 -0
  371. package/src/interfaces/record/index.ts +58 -0
  372. package/src/interfaces/record/interface.ts +723 -0
  373. package/src/interfaces/repository.ts +300 -0
  374. package/src/interfaces/schema/index.ts +37 -0
  375. package/src/interfaces/schema/schema-interface.ts +586 -0
  376. package/src/interfaces/schema/table-interface.ts +314 -0
  377. package/src/interfaces/storage-consumer-fs.ts +66 -0
  378. package/src/manifest/base.ts +594 -0
  379. package/src/manifest/cloud-sync.consumer.ts +120 -0
  380. package/src/manifest/index.ts +7 -0
  381. package/src/manifest/source-policy.ts +74 -0
  382. package/src/paths.ts +171 -0
  383. package/src/policy/context.ts +30 -0
  384. package/src/policy/index.ts +20 -0
  385. package/src/policy/overrides.ts +46 -0
  386. package/src/policy/persistence.ts +117 -0
  387. package/src/policy/types.ts +28 -0
  388. package/src/record/base.ts +1872 -0
  389. package/src/record/events.ts +56 -0
  390. package/src/record/extensions.ts +308 -0
  391. package/src/record/index.ts +7 -0
  392. package/src/resolver/storage-backed-resolver.ts +255 -0
  393. package/src/schemas/adapter-descriptor.ts +128 -0
  394. package/src/schemas/index.ts +104 -0
  395. package/src/schemas/manifest-descriptor.ts +143 -0
  396. package/src/schemas/record/descriptor.ts +621 -0
  397. package/src/schemas/record/index.ts +60 -0
  398. package/src/schemas/record/relation.ts +49 -0
  399. package/src/schemas/schema/descriptor.ts +278 -0
  400. package/src/schemas/schema/index.ts +14 -0
  401. package/src/schemas/sync-bridge-descriptor.ts +143 -0
  402. package/src/server/manifest-route.ts +319 -0
  403. package/src/storage-policy.context.descriptor.ts +17 -0
  404. package/src/storage-policy.context.server.ts +34 -0
  405. package/src/storage.plugin.ts +264 -0
  406. package/src/sync/cloud-pull.ts +202 -0
  407. package/src/sync/cloud-record-crud-config.ts +41 -0
  408. package/src/sync/record-sync-bridge.ts +183 -0
  409. package/src/sync/resolve-sync-target.ts +57 -0
  410. package/src/sync/schemas/cloud-pull.ts +26 -0
  411. package/src/sync/schemas/index.ts +18 -0
  412. package/src/sync/schemas/sync-helpers.ts +18 -0
  413. package/src/sync/schemas/sync-state.ts +41 -0
  414. package/src/sync/sync-bridge.ts +763 -0
  415. package/src/sync/sync-manifest.ts +212 -0
  416. package/src/sync/sync-state.consumer.ts +144 -0
  417. package/src/transform/index.ts +130 -0
  418. package/src/transform/transform-descriptor.ts +53 -0
  419. package/src/tui/storage-explorer.descriptor.ts +32 -0
  420. package/src/tui/storage-explorer.impl.consumer.ts +14 -0
  421. package/src/tui/storage-open.descriptor.ts +31 -0
  422. package/src/tui/storage-open.impl.consumer.ts +14 -0
  423. package/src/utils/error-context.ts +19 -0
@@ -0,0 +1,516 @@
1
+ /**
2
+ * Storage Manifest Base Class
3
+ *
4
+ * Base class for working with stored data. Modules can extend this
5
+ * for custom methods while getting load/save for free.
6
+ *
7
+ * Uses runtime query API to resolve the appropriate adapter.
8
+ */
9
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
10
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
11
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
12
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
13
+ });
14
+ }
15
+ return path;
16
+ };
17
+ import { getLogger } from '@vibesdotdev/logging';
18
+ import { getVibesRuntime } from '@vibesdotdev/runtime/api/runtime';
19
+ import { createTracer } from '@vibesdotdev/runtime/debug';
20
+ import { isBuildingEnvironment } from '@vibesdotdev/runtime';
21
+ import { resolveHomePath, resolveScopePathTemplate, resolveWorkspacePath } from '../paths.js';
22
+ import { toErrorContext } from '../utils/error-context.js';
23
+ const logger = getLogger('storage:manifest');
24
+ /**
25
+ * Base class for storage manifests.
26
+ *
27
+ * Provides document-style operations (load, save, exists, delete) using
28
+ * the runtime to resolve the appropriate adapter based on scope and configuration.
29
+ *
30
+ * Includes caching and subscription support for reactive updates.
31
+ *
32
+ * @template T - The type of data being stored
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * // Runtime instantiation (via descriptor)
37
+ * // The runtime will instantiate this with the descriptor
38
+ *
39
+ * // Manual instantiation by ID
40
+ * const storage = StorageManifest.fromId<AIProvider[]>('ai.providers');
41
+ * const providers = await storage.load();
42
+ *
43
+ * // Extended class with custom methods
44
+ * class AIProvidersStorage extends StorageManifest<AIProvider[]> {
45
+ * async getEnabled(): Promise<AIProvider[]> {
46
+ * const all = await this.load() ?? [];
47
+ * return all.filter(p => p.enabled);
48
+ * }
49
+ * }
50
+ * ```
51
+ */
52
+ export class StorageManifest {
53
+ descriptor;
54
+ context;
55
+ adapterCache = null;
56
+ // Lazy resolution
57
+ pendingId = null;
58
+ pendingContext;
59
+ resolved = false;
60
+ // Caching
61
+ cachedData = null;
62
+ cacheValid = false;
63
+ // Subscriptions
64
+ subscribers = new Set();
65
+ storeUnsubscribe = null;
66
+ subscriptionStarted = false;
67
+ getRuntime() {
68
+ return this.context.runtime ?? getVibesRuntime();
69
+ }
70
+ /**
71
+ * Create a storage manifest instance.
72
+ *
73
+ * @param descriptorOrId - Either the full descriptor (for runtime instantiation)
74
+ * or the manifest ID string (for manual instantiation)
75
+ * @param context - Runtime context (optional for manual instantiation, required for runtime)
76
+ */
77
+ constructor(descriptorOrId, context) {
78
+ if (typeof descriptorOrId === 'string') {
79
+ // Defer descriptor resolution so module-level singletons don't crash
80
+ // when imported before the runtime is bootstrapped (e.g. SSR imports).
81
+ this.pendingId = descriptorOrId;
82
+ this.pendingContext = context;
83
+ // Set stub descriptor so property accesses before resolve don't throw
84
+ this.descriptor = {
85
+ id: descriptorOrId,
86
+ kind: 'storage/manifest',
87
+ namespace: descriptorOrId
88
+ };
89
+ this.context = context ?? { runtime: getVibesRuntime() };
90
+ }
91
+ else {
92
+ // Direct descriptor (runtime instantiation)
93
+ this.descriptor = descriptorOrId;
94
+ this.context = context ?? { runtime: getVibesRuntime() };
95
+ this.resolved = true;
96
+ }
97
+ }
98
+ /**
99
+ * Resolve the descriptor from the runtime on first data access.
100
+ * No-op if already resolved or constructed with a direct descriptor.
101
+ */
102
+ ensureResolved() {
103
+ if (this.resolved || !this.pendingId)
104
+ return;
105
+ const runtime = this.pendingContext?.runtime ??
106
+ this.context.runtime ??
107
+ getVibesRuntime();
108
+ const hasKind = runtime.hasKind('storage/manifest');
109
+ if (!hasKind) {
110
+ // Runtime not yet bootstrapped — keep the stub descriptor.
111
+ // It will be re-resolved on next access after bootstrap.
112
+ return;
113
+ }
114
+ const descriptor = runtime
115
+ .query('storage/manifest')
116
+ .filter((d) => d.id === this.pendingId)
117
+ .firstDescriptor();
118
+ if (!descriptor) {
119
+ if (isBuildingEnvironment())
120
+ return;
121
+ throw new Error(`Storage manifest '${this.pendingId}' not found. Is it registered?`);
122
+ }
123
+ this.descriptor = descriptor;
124
+ this.context = this.pendingContext ?? { runtime };
125
+ this.resolved = true;
126
+ this.pendingId = null;
127
+ this.pendingContext = undefined;
128
+ }
129
+ /**
130
+ * Create a storage manifest by looking up its ID.
131
+ * Convenience static method for manual instantiation.
132
+ */
133
+ static fromId(manifestId) {
134
+ return new StorageManifest(manifestId);
135
+ }
136
+ /**
137
+ * Get the schema for this manifest.
138
+ */
139
+ get schema() {
140
+ this.ensureResolved();
141
+ return this.descriptor.schema;
142
+ }
143
+ /**
144
+ * Get the namespace for this manifest.
145
+ */
146
+ get namespace() {
147
+ this.ensureResolved();
148
+ return this.descriptor.namespace;
149
+ }
150
+ /**
151
+ * Resolve the adapter for this manifest using runtime query API.
152
+ *
153
+ * Uses the manifest's allowed adapters list and current scope to
154
+ * select the best available adapter.
155
+ */
156
+ async getAdapter() {
157
+ this.ensureResolved();
158
+ if (!this.resolved) {
159
+ throw new Error(`Storage manifest '${this.descriptor.id}' is not yet resolved. ` +
160
+ `The runtime may not be bootstrapped. Ensure 'storage/manifest' kind is registered before accessing storage.`);
161
+ }
162
+ // Adapters are runtime singletons, so manifest-specific configuration
163
+ // must be re-applied on every access before reuse.
164
+ if (this.adapterCache) {
165
+ this.adapterCache.configure(this.getAdapterConfig());
166
+ return this.adapterCache;
167
+ }
168
+ const adapterTracer = createTracer(`adapter:${this.descriptor.id}`);
169
+ adapterTracer.start();
170
+ const runtime = this.getRuntime();
171
+ let adapter = null;
172
+ let adapterId = '';
173
+ // Prefer explicit default adapter when available for current hardware.
174
+ if (this.descriptor.defaultAdapter &&
175
+ this.descriptor.allowedAdapters.includes(this.descriptor.defaultAdapter)) {
176
+ adapterId = this.descriptor.defaultAdapter;
177
+ try {
178
+ adapter = await runtime
179
+ .query('storage/adapter')
180
+ .withId(adapterId)
181
+ .enabled()
182
+ .resolve();
183
+ }
184
+ catch {
185
+ // Default adapter not registered or unavailable — fall through to allowed adapters
186
+ adapter = null;
187
+ adapterId = '';
188
+ }
189
+ }
190
+ // Fallback to first available adapter
191
+ if (!adapter) {
192
+ for (const allowedId of this.descriptor.allowedAdapters) {
193
+ try {
194
+ adapter = await runtime
195
+ .query('storage/adapter')
196
+ .withId(allowedId)
197
+ .enabled()
198
+ .resolve();
199
+ adapterId = allowedId;
200
+ break;
201
+ }
202
+ catch {
203
+ continue;
204
+ }
205
+ }
206
+ }
207
+ if (!adapter || !adapterId) {
208
+ throw new Error(`No available adapter for manifest '${this.descriptor.id}'. Checked: ${this.descriptor.allowedAdapters.join(', ')}`);
209
+ }
210
+ // Adapters are shared across manifests. Always apply this manifest's
211
+ // configuration before use so filename/basePath overrides stay isolated.
212
+ const config = this.getAdapterConfig(adapterId);
213
+ adapter.configure(config);
214
+ // Register per-manifest cloud endpoint overrides so cloud-api uses
215
+ // descriptor endpoints (e.g. /api/storage/chat/rooms) instead of the
216
+ // namespace fallback (/api/storage/chat.rooms).
217
+ if (adapterId === 'storage.cloud-api') {
218
+ const cloudEndpoint = this.getCloudApiEndpoint();
219
+ if (cloudEndpoint && this.hasCloudEndpointRegistrar(adapter)) {
220
+ adapter.registerEndpoint(this.descriptor.namespace, cloudEndpoint);
221
+ }
222
+ }
223
+ // Cache adapter but don't initialize yet
224
+ // Initialization will happen on first data access
225
+ this.adapterCache = adapter;
226
+ adapterTracer.end('resolved');
227
+ return adapter;
228
+ }
229
+ /**
230
+ * Get adapter configuration based on manifest scope.
231
+ * Override in subclasses for custom configuration.
232
+ */
233
+ getAdapterConfig(adapterId) {
234
+ const workspacePath = resolveWorkspacePath(this.context);
235
+ const config = {
236
+ basePath: this.getBasePath(workspacePath),
237
+ workspacePath
238
+ };
239
+ // Pass through descriptor-level flags that adapters need
240
+ if (this.descriptor.customTables) {
241
+ config.customTables = true;
242
+ }
243
+ if (this.descriptor.migrationKey) {
244
+ config.migrationKey = this.descriptor.migrationKey;
245
+ }
246
+ // Pass through adapter-specific config from descriptor
247
+ if (this.descriptor.adapterConfig) {
248
+ const selectedAdapterId = adapterId || this.descriptor.defaultAdapter || this.descriptor.allowedAdapters[0];
249
+ const adapterSpecificConfig = this.descriptor.adapterConfig[selectedAdapterId];
250
+ if (adapterSpecificConfig && typeof adapterSpecificConfig === 'object') {
251
+ Object.assign(config, adapterSpecificConfig);
252
+ }
253
+ // Backward-compatible normalization for cloud adapter manifests.
254
+ // Only promote endpoint -> apiEndpoint when endpoint is a full URL.
255
+ if (selectedAdapterId === 'storage.cloud-api' &&
256
+ typeof config.endpoint === 'string' &&
257
+ typeof config.apiEndpoint !== 'string' &&
258
+ config.endpoint.startsWith('http')) {
259
+ config.apiEndpoint = config.endpoint;
260
+ }
261
+ }
262
+ return config;
263
+ }
264
+ getCloudApiEndpoint() {
265
+ const raw = this.descriptor.adapterConfig?.['storage.cloud-api'];
266
+ if (!raw || typeof raw !== 'object')
267
+ return null;
268
+ const endpoint = raw.endpoint;
269
+ return typeof endpoint === 'string' && endpoint.length > 0 ? endpoint : null;
270
+ }
271
+ hasCloudEndpointRegistrar(adapter) {
272
+ return typeof adapter.registerEndpoint === 'function';
273
+ }
274
+ /**
275
+ * Get base path for storage based on scope.
276
+ * Uses descriptor's scopePaths if provided, otherwise defaults.
277
+ */
278
+ getBasePath(workspacePath = resolveWorkspacePath(this.context)) {
279
+ const home = resolveHomePath();
280
+ const scope = this.descriptor.scope;
281
+ // Use custom scope paths if provided
282
+ if (this.descriptor.scopePaths) {
283
+ const customPath = this.descriptor.scopePaths[scope];
284
+ if (customPath) {
285
+ return resolveScopePathTemplate(customPath, workspacePath);
286
+ }
287
+ }
288
+ // Default path resolution
289
+ switch (scope) {
290
+ case 'global':
291
+ return `${home}/.vibes/storage`;
292
+ case 'project':
293
+ case 'local':
294
+ return `${workspacePath}/.vibes/storage`;
295
+ case 'auto':
296
+ default:
297
+ return `${workspacePath}/.vibes/storage`;
298
+ }
299
+ }
300
+ // Caching
301
+ /**
302
+ * Invalidate the cache, forcing the next load to hit storage.
303
+ */
304
+ invalidateCache() {
305
+ this.cacheValid = false;
306
+ this.cachedData = null;
307
+ }
308
+ /**
309
+ * Get cached data if available.
310
+ * @returns Cached data or undefined if not cached
311
+ */
312
+ getCachedData() {
313
+ if (this.cacheValid) {
314
+ return this.cachedData ?? undefined;
315
+ }
316
+ return undefined;
317
+ }
318
+ /**
319
+ * Check if data is currently cached.
320
+ */
321
+ isCached() {
322
+ return this.cacheValid;
323
+ }
324
+ // Document Operations
325
+ /**
326
+ * Load data from storage.
327
+ *
328
+ * @returns The stored data, or null if not found
329
+ */
330
+ async load() {
331
+ // Return cached data if valid
332
+ if (this.cacheValid) {
333
+ return this.cachedData;
334
+ }
335
+ const adapter = await this.getAdapter();
336
+ const store = adapter.documentStore(this.descriptor.namespace, this.schema, this.descriptor);
337
+ const data = await store.load();
338
+ // Update cache
339
+ this.cachedData = data;
340
+ this.cacheValid = true;
341
+ // Start subscription if adapter supports it and not already started
342
+ if (!this.subscriptionStarted && store.subscribe) {
343
+ this.startSubscription(store.subscribe.bind(store));
344
+ }
345
+ return data;
346
+ }
347
+ /**
348
+ * Save data to storage.
349
+ *
350
+ * @param data - The data to save
351
+ */
352
+ async save(data) {
353
+ const adapter = await this.getAdapter();
354
+ const store = adapter.documentStore(this.descriptor.namespace, this.schema, this.descriptor);
355
+ await store.save(data);
356
+ // Update cache
357
+ this.cachedData = data;
358
+ this.cacheValid = true;
359
+ // Notify subscribers
360
+ this.notifySubscribers(data);
361
+ // Non-blocking cloud push when a consumer-local save needs to mirror to cloud.
362
+ this.triggerCloudSync(adapter.id, data);
363
+ }
364
+ /**
365
+ * Trigger a non-blocking cloud push after save.
366
+ * Only fires if the manifest has cloud-api in allowedAdapters.
367
+ *
368
+ * Consumer modules are loaded via opaque dynamic import to prevent Vite
369
+ * from tracing them into the client bundle — they contain Node.js APIs
370
+ * and must only run server-side.
371
+ */
372
+ triggerCloudSync(activeAdapterId, data) {
373
+ if (!this.descriptor.allowedAdapters.includes('storage.cloud-api'))
374
+ return;
375
+ if (activeAdapterId === 'storage.cloud-api')
376
+ return;
377
+ if (this.getRuntime().scope.hardware === 'cloud')
378
+ return;
379
+ const consumerSyncModule = './cloud-sync.consumer';
380
+ void import(__rewriteRelativeImportExtension(/* @vite-ignore */ consumerSyncModule))
381
+ .then(({ pushManifestToCloudAfterLocalSave }) => pushManifestToCloudAfterLocalSave({
382
+ descriptor: this.descriptor,
383
+ data,
384
+ activeAdapterId
385
+ }))
386
+ .catch(() => {
387
+ // Non-blocking: don't fail the save operation on sync errors.
388
+ });
389
+ }
390
+ /**
391
+ * Check if data exists in storage.
392
+ */
393
+ async exists() {
394
+ const adapter = await this.getAdapter();
395
+ const store = adapter.documentStore(this.descriptor.namespace, this.schema, this.descriptor);
396
+ return store.exists();
397
+ }
398
+ /**
399
+ * Delete data from storage.
400
+ */
401
+ async delete() {
402
+ const adapter = await this.getAdapter();
403
+ const store = adapter.documentStore(this.descriptor.namespace, this.schema, this.descriptor);
404
+ await store.delete();
405
+ // Clear cache
406
+ this.cachedData = null;
407
+ this.cacheValid = false;
408
+ // Notify subscribers
409
+ this.notifySubscribers(null);
410
+ }
411
+ /**
412
+ * Load data or return default value.
413
+ *
414
+ * @param defaultValue - Value to return if no data exists
415
+ */
416
+ async loadOrDefault(defaultValue) {
417
+ const data = await this.load();
418
+ return data ?? defaultValue;
419
+ }
420
+ /**
421
+ * Update data using a transform function.
422
+ *
423
+ * @param transform - Function that receives current data and returns updated data
424
+ */
425
+ async update(transform) {
426
+ const current = await this.load();
427
+ const updated = transform(current);
428
+ await this.save(updated);
429
+ }
430
+ /**
431
+ * Validate data against the manifest's schema.
432
+ */
433
+ validate(data) {
434
+ return this.schema.safeParse(data);
435
+ }
436
+ // Subscriptions
437
+ /**
438
+ * Subscribe to changes for this manifest.
439
+ * Returns an unsubscribe function.
440
+ *
441
+ * @param callback - Function called when data changes
442
+ * @returns Unsubscribe function
443
+ */
444
+ subscribe(callback) {
445
+ this.subscribers.add(callback);
446
+ // Start storage-level subscription if not already started
447
+ if (!this.subscriptionStarted) {
448
+ this.initSubscription();
449
+ }
450
+ // Return unsubscribe function
451
+ return () => {
452
+ this.subscribers.delete(callback);
453
+ // Clean up storage subscription if no more subscribers
454
+ if (this.subscribers.size === 0) {
455
+ this.stopSubscription();
456
+ }
457
+ };
458
+ }
459
+ /**
460
+ * Initialize subscription to storage adapter.
461
+ */
462
+ async initSubscription() {
463
+ if (this.subscriptionStarted)
464
+ return;
465
+ const adapter = await this.getAdapter();
466
+ const store = adapter.documentStore(this.descriptor.namespace, this.schema, this.descriptor);
467
+ if (store.subscribe) {
468
+ this.startSubscription(store.subscribe.bind(store));
469
+ }
470
+ }
471
+ /**
472
+ * Start subscription with the given subscribe function.
473
+ */
474
+ startSubscription(subscribeFn) {
475
+ if (this.storeUnsubscribe)
476
+ return;
477
+ this.storeUnsubscribe = subscribeFn((data) => {
478
+ // Update cache from external change
479
+ this.cachedData = data;
480
+ this.cacheValid = true;
481
+ // Notify our subscribers
482
+ this.notifySubscribers(data);
483
+ });
484
+ this.subscriptionStarted = true;
485
+ }
486
+ /**
487
+ * Stop storage-level subscription.
488
+ */
489
+ stopSubscription() {
490
+ if (this.storeUnsubscribe) {
491
+ this.storeUnsubscribe();
492
+ this.storeUnsubscribe = null;
493
+ }
494
+ this.subscriptionStarted = false;
495
+ }
496
+ /**
497
+ * Notify all subscribers of a change.
498
+ */
499
+ notifySubscribers(data) {
500
+ for (const callback of this.subscribers) {
501
+ try {
502
+ callback(data);
503
+ }
504
+ catch (error) {
505
+ logger.error('Error in manifest subscriber:', toErrorContext(error));
506
+ }
507
+ }
508
+ }
509
+ /**
510
+ * Get the number of active subscribers.
511
+ */
512
+ getSubscriberCount() {
513
+ return this.subscribers.size;
514
+ }
515
+ }
516
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/manifest/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { StorageManifestDescriptor } from '../schemas/manifest-descriptor';
2
+ export declare function pushManifestToCloudAfterLocalSave<T>({ descriptor, data, activeAdapterId }: {
3
+ descriptor: StorageManifestDescriptor;
4
+ data: T;
5
+ activeAdapterId: string;
6
+ }): Promise<void>;
7
+ //# sourceMappingURL=cloud-sync.consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-sync.consumer.d.ts","sourceRoot":"","sources":["../../src/manifest/cloud-sync.consumer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAsDhF,wBAAsB,iCAAiC,CAAC,CAAC,EAAE,EAC1D,UAAU,EACV,IAAI,EACJ,eAAe,EACf,EAAE;IACF,UAAU,EAAE,yBAAyB,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC;IACR,eAAe,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDhB"}
@@ -0,0 +1,82 @@
1
+ import { getVibesRuntime } from '@vibesdotdev/runtime/api/runtime';
2
+ import { computeHash, loadSyncState, markError, markLocalAhead, markSynced, saveSyncState } from '../sync/sync-state.consumer.js';
3
+ const REMOTE_ADAPTER_IDS = new Set(['storage.cloud-api', 'storage.drizzle']);
4
+ function getCloudEndpoint(descriptor) {
5
+ const raw = descriptor.adapterConfig?.['storage.cloud-api'];
6
+ if (!raw || typeof raw !== 'object')
7
+ return null;
8
+ const endpoint = raw.endpoint;
9
+ return typeof endpoint === 'string' && endpoint.length > 0 ? endpoint : null;
10
+ }
11
+ function hasEndpointRegistrar(adapter) {
12
+ return 'registerEndpoint' in adapter && typeof adapter.registerEndpoint === 'function';
13
+ }
14
+ function isZodSchema(schema) {
15
+ return schema !== null && '_zod' in schema;
16
+ }
17
+ async function isCloudSyncEnabled() {
18
+ const runtime = getVibesRuntime();
19
+ if (!runtime.hasKind('config/manifest')) {
20
+ return false;
21
+ }
22
+ try {
23
+ const manifest = (await runtime
24
+ .query('config/manifest')
25
+ .withId('ai.core')
26
+ .enabled()
27
+ .resolve());
28
+ if (!manifest) {
29
+ return false;
30
+ }
31
+ const config = await manifest.load();
32
+ return config?.syncToCloud === true;
33
+ }
34
+ catch {
35
+ return false;
36
+ }
37
+ }
38
+ export async function pushManifestToCloudAfterLocalSave({ descriptor, data, activeAdapterId }) {
39
+ if (!descriptor.allowedAdapters.includes('storage.cloud-api')) {
40
+ return;
41
+ }
42
+ if (REMOTE_ADAPTER_IDS.has(activeAdapterId)) {
43
+ return;
44
+ }
45
+ const runtime = getVibesRuntime();
46
+ if (runtime.scope?.surface === 'worker' || runtime.scope?.purpose === 'worker') {
47
+ return;
48
+ }
49
+ if (!(await isCloudSyncEnabled())) {
50
+ return;
51
+ }
52
+ const localHash = computeHash(data);
53
+ const syncState = await loadSyncState();
54
+ try {
55
+ const cloudAdapter = await runtime
56
+ .query('storage/adapter')
57
+ .withId('storage.cloud-api')
58
+ .enabled()
59
+ .resolve();
60
+ const endpoint = getCloudEndpoint(descriptor);
61
+ if (endpoint && hasEndpointRegistrar(cloudAdapter)) {
62
+ cloudAdapter.registerEndpoint(descriptor.namespace, endpoint);
63
+ }
64
+ await cloudAdapter.ensureReady();
65
+ const schema = typeof descriptor.schema === 'object' && isZodSchema(descriptor.schema)
66
+ ? descriptor.schema
67
+ : null;
68
+ if (!schema) {
69
+ throw new Error(`Storage manifest '${descriptor.id}' is missing a valid schema`);
70
+ }
71
+ const store = cloudAdapter.documentStore(descriptor.namespace, schema, descriptor);
72
+ await store.save(data);
73
+ markSynced(syncState, descriptor.id, localHash, 'push');
74
+ }
75
+ catch (error) {
76
+ const message = error instanceof Error ? error.message : String(error);
77
+ markLocalAhead(syncState, descriptor.id, localHash);
78
+ markError(syncState, descriptor.id, message);
79
+ }
80
+ await saveSyncState(syncState);
81
+ }
82
+ //# sourceMappingURL=cloud-sync.consumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-sync.consumer.js","sourceRoot":"","sources":["../../src/manifest/cloud-sync.consumer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Storage Manifest Module
3
+ *
4
+ * Provides the StorageManifest base class for working with stored data.
5
+ */
6
+ export { StorageManifest } from './base';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Storage Manifest Module
3
+ *
4
+ * Provides the StorageManifest base class for working with stored data.
5
+ */
6
+ export { StorageManifest } from './base.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { StorageScope } from '../schemas/manifest-descriptor.ts';
2
+ export type ManifestDataSource = 'user-localdb' | 'project-file' | 'cloud-api';
3
+ export declare const MANIFEST_SOURCE_PRECEDENCE: ManifestDataSource[];
4
+ export declare function resolveAdapterForSource(source: ManifestDataSource, allowedAdapters: string[]): string | null;
5
+ export declare function resolveScopeForSource(source: ManifestDataSource, fallbackScope?: StorageScope): StorageScope;
6
+ export declare function resolveAdapterOrderBySource(allowedAdapters: string[]): string[];
7
+ export declare function resolveSourceFromAdapter(adapterId: string): ManifestDataSource | null;
8
+ //# sourceMappingURL=source-policy.d.ts.map