@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,128 @@
1
+ /**
2
+ * Storage Adapter Descriptor Schema
3
+ *
4
+ * Schema for storage/adapter kind descriptors.
5
+ * Extends base descriptor with storage-specific fields.
6
+ */
7
+
8
+ import * as z from 'zod/v4';
9
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/runtime/schemas/descriptor';
10
+
11
+ /**
12
+ * Storage protocols supported by adapters
13
+ */
14
+ export const StorageProtocolSchema = z.enum(['document', 'keyvalue', 'repository', 'record']);
15
+
16
+ /**
17
+ * Coarse-grained adapter capabilities surfaced to consumers.
18
+ *
19
+ * - `list` — adapter can enumerate items in a container (document protocol's `list()`).
20
+ * - `read` — adapter can read existing items.
21
+ * - `write` — adapter can create / update / delete items.
22
+ * - `browse` — adapter implements `list(driveId, path) → StorageEntry[]` and
23
+ * `listDrives() → StorageDrive[]` for foldered cloud-storage browsing
24
+ * (SharePoint, OneDrive, Google Drive, etc.). Consumers like the
25
+ * AI model-source picker filter on this capability to surface
26
+ * browsable backends.
27
+ */
28
+ export const StorageCapabilitySchema = z.enum(['list', 'read', 'write', 'browse']);
29
+
30
+ /**
31
+ * Storage adapter descriptor schema
32
+ */
33
+ export const StorageAdapterDescriptorSchema = RuntimeDescriptorSchema.extend({
34
+ kind: z.literal('storage/adapter'),
35
+
36
+ /** Storage protocols supported by this adapter */
37
+ protocols: z.array(StorageProtocolSchema),
38
+
39
+ /**
40
+ * Coarse-grained capability flags consumed by clients that
41
+ * want to filter adapters by what they can do. `browse` implies the
42
+ * adapter implements `list(driveId, path)` + `listDrives()`.
43
+ */
44
+ capabilities: z.array(StorageCapabilitySchema).default(['read', 'write']),
45
+
46
+ /** Whether adapter requires pair schema (key + value) for main storage */
47
+ requiresPairSchema: z.boolean().default(false),
48
+
49
+ /** Whether adapter supports transactions */
50
+ supportsTransactions: z.boolean().default(false),
51
+
52
+ /** Whether adapter supports TTL (for caches) */
53
+ supportsTTL: z.boolean().default(false),
54
+
55
+ /** Whether adapter supports full-text search */
56
+ supportsSearch: z.boolean().default(false),
57
+
58
+ /** Whether adapter supports full-text search (alias for supportsSearch) */
59
+ supportsFTS: z.boolean().default(false),
60
+
61
+ /** Whether adapter is persistent (survives restarts) */
62
+ persistent: z.boolean().default(false),
63
+
64
+ /** Whether adapter supports change subscriptions */
65
+ supportsSubscription: z.boolean().default(false),
66
+
67
+ /** Whether adapter supports hierarchical/recursive queries */
68
+ supportsHierarchy: z.boolean().default(false),
69
+
70
+ /** Whether adapter supports computed fields (aggregations) */
71
+ supportsComputedFields: z.boolean().default(false),
72
+
73
+ /** Whether adapter supports cross-table side effects */
74
+ supportsSideEffects: z.boolean().default(false),
75
+
76
+ /** Whether adapter supports raw SQL queries */
77
+ supportsRawQueries: z.boolean().default(false)
78
+ });
79
+
80
+ export type StorageProtocol = z.infer<typeof StorageProtocolSchema>;
81
+ export type StorageCapability = z.infer<typeof StorageCapabilitySchema>;
82
+ export type StorageAdapterDescriptor = z.infer<typeof StorageAdapterDescriptorSchema>;
83
+
84
+ // Browse — drive + entry shapes for `browse`-capable adapters
85
+
86
+ /**
87
+ * A logical "drive" inside a browsable storage adapter — a top-level
88
+ * container the consumer picks before drilling into folders.
89
+ *
90
+ * For SharePoint: a `site`. For OneDrive: the user's default drive.
91
+ * For Google Drive (future): a "My Drive" or "Shared Drive" entry.
92
+ *
93
+ * Returned by `adapter.listDrives()`.
94
+ */
95
+ export const StorageDriveSchema = z.object({
96
+ /** Stable provider-side identifier for the drive (site id, drive id, etc.). */
97
+ id: z.string(),
98
+ /** Human-readable name. */
99
+ name: z.string(),
100
+ /**
101
+ * Provider-specific drive kind. Free-form by design — consumers do
102
+ * not match on this. Example values: `'site'`, `'drive'`, `'shared'`.
103
+ */
104
+ kind: z.string()
105
+ });
106
+
107
+ export type StorageDrive = z.infer<typeof StorageDriveSchema>;
108
+
109
+ /**
110
+ * A single entry returned by `adapter.list(driveId, path)` —
111
+ * a file or directory inside a browsable storage adapter.
112
+ */
113
+ export const StorageEntrySchema = z.object({
114
+ /** Stable provider-side identifier (drive item id, blob id, etc.). */
115
+ id: z.string(),
116
+ /** Display name (e.g. `Quarterly Report.pdf`). */
117
+ name: z.string(),
118
+ /** Path relative to the drive root, including the entry's own name. */
119
+ path: z.string(),
120
+ /** File vs directory discriminator. */
121
+ kind: z.enum(['file', 'directory']),
122
+ /** Size in bytes when known (directories omit this). */
123
+ sizeBytes: z.number().int().optional(),
124
+ /** Last modified timestamp (ISO 8601, when known). */
125
+ modifiedAt: z.string().optional()
126
+ });
127
+
128
+ export type StorageEntry = z.infer<typeof StorageEntrySchema>;
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Storage Schemas
3
+ *
4
+ * Export all storage-related schemas and types.
5
+ */
6
+
7
+ export {
8
+ StorageProtocolSchema,
9
+ StorageCapabilitySchema,
10
+ StorageAdapterDescriptorSchema,
11
+ StorageDriveSchema,
12
+ StorageEntrySchema
13
+ } from './adapter-descriptor';
14
+
15
+ export type {
16
+ StorageProtocol,
17
+ StorageCapability,
18
+ StorageAdapterDescriptor,
19
+ StorageDrive,
20
+ StorageEntry
21
+ } from './adapter-descriptor';
22
+
23
+ export {
24
+ StorageScopeSchema,
25
+ StorageDataTypeSchema,
26
+ StorageCloudApiAdapterConfigSchema,
27
+ StorageManifestDescriptorSchema,
28
+ } from './manifest-descriptor';
29
+
30
+ export type {
31
+ StorageScope,
32
+ StorageDataType,
33
+ StorageCloudApiAdapterConfig,
34
+ StorageManifestDescriptor
35
+ } from './manifest-descriptor';
36
+
37
+ // Storage record kind (single table CRUD operations)
38
+ export {
39
+ StorageRecordDescriptorSchema,
40
+ StorageSyncConfigSchema,
41
+ StorageRemoteCrudSchema,
42
+ StorageRemoteConfigSchema,
43
+ StoragePersistenceModeSchema,
44
+ StoragePersistencePolicySchema,
45
+ StorageOwnershipFilterSchema,
46
+ StorageRelationTypeSchema,
47
+ StorageRelationSchema,
48
+ StorageIndexSchema,
49
+ StorageMigrationSchema,
50
+ StorageFieldConfigSchema,
51
+ StorageFtsConfigSchema,
52
+ StorageComputedFieldSchema,
53
+ StorageHierarchyConfigSchema,
54
+ StorageSideEffectOperationSchema,
55
+ StorageSideEffectSchema,
56
+ StorageSideEffectsConfigSchema
57
+ } from './record';
58
+
59
+ export type {
60
+ StorageRecordDescriptor,
61
+ StorageRecordDescriptorInput,
62
+ StorageSyncConfig,
63
+ StorageRemoteCrud,
64
+ StorageRemoteConfig,
65
+ StoragePersistenceMode,
66
+ StoragePersistencePolicy,
67
+ StorageOwnershipFilter,
68
+ StorageSyncContext,
69
+ StorageRecordLocalSyncContext,
70
+ StorageRecordRemoteSyncContext,
71
+ StorageRecordSyncHooks,
72
+ StorageRelationType,
73
+ StorageRelation,
74
+ StorageIndex,
75
+ StorageIndexInput,
76
+ StorageMigration,
77
+ StorageMigrationInput,
78
+ StorageFieldConfig,
79
+ StorageFieldConfigInput,
80
+ StorageFtsConfig,
81
+ StorageFtsConfigInput,
82
+ StorageComputedField,
83
+ StorageComputedFieldInput,
84
+ StorageHierarchyConfig,
85
+ StorageHierarchyConfigInput,
86
+ StorageSideEffectOperation,
87
+ StorageSideEffect,
88
+ StorageSideEffectInput,
89
+ StorageSideEffectsConfig,
90
+ StorageSideEffectsConfigInput
91
+ } from './record';
92
+
93
+ // Storage schema kind (multi-table schemas with relations)
94
+ export {
95
+ StorageSchemaDescriptorSchema,
96
+ StorageTableDefinitionSchema,
97
+ MigrationSourceSchema
98
+ } from './schema';
99
+
100
+ export type {
101
+ StorageSchemaDescriptor,
102
+ StorageTableDefinition,
103
+ MigrationSource
104
+ } from './schema';
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Storage Manifest Descriptor Schema
3
+ *
4
+ * Schema for storage/manifest kind descriptors.
5
+ * Describes a data type that can be stored.
6
+ */
7
+
8
+ import * as z from 'zod/v4';
9
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/runtime/schemas/descriptor';
10
+
11
+ /**
12
+ * Storage scope for path resolution
13
+ */
14
+ export const StorageScopeSchema = z.enum(['global', 'project', 'local', 'auto']);
15
+
16
+ /**
17
+ * Canonical storage data shape.
18
+ *
19
+ * - raw: keyed raw text values
20
+ * - records: structured row collection with CRUD semantics
21
+ * - objects: keyed JSON/blob objects or a whole document object
22
+ */
23
+ export const StorageDataTypeSchema = z.enum(['raw', 'records', 'objects']);
24
+
25
+ /**
26
+ * Per-scope path configuration
27
+ * Allows manifests to customize base paths for each scope
28
+ */
29
+ export const ScopePathConfigSchema = z
30
+ .object({
31
+ global: z.string().optional(),
32
+ project: z.string().optional(),
33
+ local: z.string().optional()
34
+ })
35
+ .optional();
36
+
37
+ /**
38
+ * Adapter-specific configuration
39
+ * Each adapter can define its own config shape
40
+ *
41
+ * Examples:
42
+ * - storage.drizzle: { tableName: 'ai_models', transforms: { toDb, fromDb } }
43
+ * - storage.localdb: { tableName: 'ai_models', createTable: 'CREATE TABLE...', dbName: 'custom.db', migrationKey: 'my-migrations' }
44
+ * - storage.json: { filename: 'ai-models.json' }
45
+ * - storage.cloud-api: { endpoint: '/api/models', ownerApp: 'ai' }
46
+ */
47
+ export const StorageAdapterConfigSchema = z.record(z.string(), z.unknown());
48
+
49
+ export const StorageCloudApiAdapterConfigSchema = z.object({
50
+ /** Owning app id used to resolve the base origin from config/environment.apps. */
51
+ ownerApp: z.string().optional(),
52
+ /** Canonical collection endpoint on the owning app, e.g. /api/providers. */
53
+ endpoint: z.string().optional(),
54
+ /** Optional explicit base origin, e.g. https://ai.vibes.dev. */
55
+ apiEndpoint: z.string().optional(),
56
+ /** Field that uniquely identifies records/objects in collection responses. */
57
+ idField: z.string().default('id'),
58
+ /** Declared transform ids. Runtime functions live in storage/transform. */
59
+ transform: z
60
+ .object({
61
+ from: z.string().optional(),
62
+ to: z.string().optional()
63
+ })
64
+ .optional()
65
+ });
66
+
67
+ /**
68
+ * Storage manifest descriptor schema
69
+ */
70
+ export const StorageManifestDescriptorSchema = RuntimeDescriptorSchema.extend({
71
+ kind: z.literal('storage/manifest'),
72
+
73
+ /** Storage namespace (e.g., 'ai.providers', 'session') */
74
+ namespace: z.string().min(1),
75
+
76
+ /** Zod schema for the stored data (stored as unknown, validated at runtime) */
77
+ schema: z.unknown(),
78
+
79
+ /** Canonical storage data shape. Omitted legacy descriptors are treated as objects. */
80
+ dataType: StorageDataTypeSchema.optional(),
81
+
82
+ /** Field that uniquely identifies items for records/object collections. */
83
+ idField: z.string().default('id').optional(),
84
+
85
+ /** Optional field containing the record collection inside a state object. */
86
+ collectionField: z.string().optional(),
87
+
88
+ /** Allowed adapter IDs (e.g., ['storage.localdb', 'storage.json']) */
89
+ allowedAdapters: z.array(z.string()).min(1),
90
+
91
+ /** Default adapter to use when not specified */
92
+ defaultAdapter: z.string().optional(),
93
+
94
+ /** Adapter-specific configuration (e.g., table names, transforms, filenames) */
95
+ adapterConfig: StorageAdapterConfigSchema.optional(),
96
+
97
+ /** Storage scope for path resolution */
98
+ scope: StorageScopeSchema.default('auto'),
99
+
100
+ /** Custom base paths for each scope (overrides default scope paths) */
101
+ scopePaths: ScopePathConfigSchema,
102
+
103
+ /** Fields that require encryption (dot paths, e.g., 'apiKey', 'credentials.token') */
104
+ sensitiveFields: z.array(z.string()).optional(),
105
+
106
+ /** Whether this manifest uses custom tables instead of generic document storage */
107
+ customTables: z.boolean().default(false),
108
+
109
+ /** Migration key for custom tables (required if customTables = true) */
110
+ migrationKey: z.string().optional(),
111
+
112
+ /** Version for migrations (default: 1) */
113
+ version: z.number().int().positive().default(1),
114
+
115
+ /** Whether this manifest is internal (not user-editable) */
116
+ internal: z.boolean().default(false),
117
+
118
+ /**
119
+ * ID of the corresponding config/manifest that stores the same data shape.
120
+ *
121
+ * When set, the save routing layer can pick the correct manifest kind based
122
+ * on the target adapter: custom tables (localdb) use the storage/manifest,
123
+ * while file/cloud targets use the config/manifest.
124
+ */
125
+ configManifestId: z.string().optional(),
126
+
127
+ /**
128
+ * Declares that items in this storage can source runtime kind queries.
129
+ *
130
+ * Keys are kind IDs (e.g., 'ai/agent', 'tools/tool').
131
+ * Values are StorageKindBridgeConfig objects with toDescriptor, implementation, and filter.
132
+ * Stored as z.unknown() because the config contains functions.
133
+ *
134
+ * @see StorageKindBridgeConfig in storage/bridge/types.ts
135
+ */
136
+ providesRuntimeKinds: z.record(z.string(), z.unknown()).optional()
137
+ });
138
+
139
+ export type StorageScope = z.infer<typeof StorageScopeSchema>;
140
+ export type StorageDataType = z.infer<typeof StorageDataTypeSchema>;
141
+ export type ScopePathConfig = z.infer<typeof ScopePathConfigSchema>;
142
+ export type StorageCloudApiAdapterConfig = z.infer<typeof StorageCloudApiAdapterConfigSchema>;
143
+ export type StorageManifestDescriptor = z.infer<typeof StorageManifestDescriptorSchema>;