@vibesdotdev/storage 1.0.0-rc.5 → 1.0.0-rc.9

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 (71) hide show
  1. package/README.md +4 -3
  2. package/dist/adapters/drizzle/drizzle.adapter.impl.d.ts.map +1 -1
  3. package/dist/adapters/drizzle/drizzle.adapter.impl.js +2 -56
  4. package/dist/adapters/drizzle/drizzle.adapter.impl.js.map +1 -1
  5. package/dist/adapters/drizzle/host-database.d.ts +14 -0
  6. package/dist/adapters/drizzle/host-database.d.ts.map +1 -0
  7. package/dist/adapters/drizzle/host-database.js +64 -0
  8. package/dist/adapters/drizzle/host-database.js.map +1 -0
  9. package/dist/adapters/drizzle/keyed-document-store.d.ts +35 -0
  10. package/dist/adapters/drizzle/keyed-document-store.d.ts.map +1 -0
  11. package/dist/adapters/drizzle/keyed-document-store.js +136 -0
  12. package/dist/adapters/drizzle/keyed-document-store.js.map +1 -0
  13. package/dist/adapters/drizzle/storage-adapter-drizzle.plugin.d.ts.map +1 -1
  14. package/dist/adapters/drizzle/storage-adapter-drizzle.plugin.js +2 -0
  15. package/dist/adapters/drizzle/storage-adapter-drizzle.plugin.js.map +1 -1
  16. package/dist/adapters/drizzle/test.d.ts +16 -0
  17. package/dist/adapters/drizzle/test.d.ts.map +1 -1
  18. package/dist/adapters/drizzle/test.js +28 -0
  19. package/dist/adapters/drizzle/test.js.map +1 -1
  20. package/dist/cli/commands/sync/migrate/storage.sync.migrate.cli-command.descriptor.d.ts +4 -0
  21. package/dist/cli/commands/sync/migrate/storage.sync.migrate.cli-command.descriptor.d.ts.map +1 -0
  22. package/dist/cli/commands/sync/migrate/storage.sync.migrate.cli-command.descriptor.js +28 -0
  23. package/dist/cli/commands/sync/migrate/storage.sync.migrate.cli-command.descriptor.js.map +1 -0
  24. package/dist/cli/commands/sync/migrate/storage.sync.migrate.cli-command.impl.d.ts +26 -0
  25. package/dist/cli/commands/sync/migrate/storage.sync.migrate.cli-command.impl.d.ts.map +1 -0
  26. package/dist/cli/commands/sync/migrate/storage.sync.migrate.cli-command.impl.js +82 -0
  27. package/dist/cli/commands/sync/migrate/storage.sync.migrate.cli-command.impl.js.map +1 -0
  28. package/dist/cli/plugin.d.ts.map +1 -1
  29. package/dist/cli/plugin.js +5 -2
  30. package/dist/cli/plugin.js.map +1 -1
  31. package/dist/cli/storage.sync.cli-group.descriptor.js +1 -1
  32. package/dist/cli/storage.sync.cli-group.descriptor.js.map +1 -1
  33. package/dist/docs/sync.docs.descriptor.d.ts.map +1 -1
  34. package/dist/docs/sync.docs.descriptor.js +28 -1
  35. package/dist/docs/sync.docs.descriptor.js.map +1 -1
  36. package/dist/manifest/base.d.ts +36 -0
  37. package/dist/manifest/base.d.ts.map +1 -1
  38. package/dist/manifest/base.js +208 -3
  39. package/dist/manifest/base.js.map +1 -1
  40. package/dist/path-policy.d.ts +10 -5
  41. package/dist/path-policy.d.ts.map +1 -1
  42. package/dist/path-policy.js +13 -5
  43. package/dist/path-policy.js.map +1 -1
  44. package/dist/paths.js +2 -2
  45. package/dist/paths.js.map +1 -1
  46. package/dist/schemas/manifest-descriptor.d.ts +1 -0
  47. package/dist/schemas/manifest-descriptor.d.ts.map +1 -1
  48. package/dist/schemas/manifest-descriptor.js +9 -0
  49. package/dist/schemas/manifest-descriptor.js.map +1 -1
  50. package/dist/schemas/manifest-migration.d.ts +34 -0
  51. package/dist/schemas/manifest-migration.d.ts.map +1 -0
  52. package/dist/schemas/manifest-migration.js +25 -0
  53. package/dist/schemas/manifest-migration.js.map +1 -0
  54. package/dist/storage.browser.plugin.d.ts +8 -0
  55. package/dist/storage.browser.plugin.d.ts.map +1 -0
  56. package/dist/storage.browser.plugin.js +18 -0
  57. package/dist/storage.browser.plugin.js.map +1 -0
  58. package/dist/storage.plugin.d.ts.map +1 -1
  59. package/dist/storage.plugin.js +6 -8
  60. package/dist/storage.plugin.js.map +1 -1
  61. package/dist/sync/migrate-declared.d.ts +23 -0
  62. package/dist/sync/migrate-declared.d.ts.map +1 -0
  63. package/dist/sync/migrate-declared.js +64 -0
  64. package/dist/sync/migrate-declared.js.map +1 -0
  65. package/dist/sync/schemas/sync-state.d.ts +1 -0
  66. package/dist/sync/schemas/sync-state.d.ts.map +1 -1
  67. package/dist/sync/schemas/sync-state.js +7 -1
  68. package/dist/sync/schemas/sync-state.js.map +1 -1
  69. package/dist/sync/sync-state.client.d.ts +1 -0
  70. package/dist/sync/sync-state.client.d.ts.map +1 -1
  71. package/package.json +58 -19
@@ -0,0 +1,136 @@
1
+ /**
2
+ * A document store whose documents are rows of one keyed table: one row per
3
+ * namespace, the document as a JSON value, a revision counter beside it.
4
+ *
5
+ * The generic `storage.drizzle` document store reads every row of a bound
6
+ * table as one collection. A single-object document (a config manifest's
7
+ * stored layer) is not a collection, so its owner declares a keyed table
8
+ * (a `storage/record` descriptor whose migration creates it) and hands it here.
9
+ *
10
+ * Written for D1 semantics, which every SQLite-family host satisfies: no
11
+ * interactive transaction, so a write is one statement and `update` is
12
+ * optimistic on the revision; a statement binds well under D1's 100 parameters.
13
+ */
14
+ import { and, eq, sql } from 'drizzle-orm';
15
+ import * as z from 'zod/v4';
16
+ import { CapabilityError } from '@vibesdotdev/kernel';
17
+ import { JsonValueSchema } from '@vibesdotdev/kernel/schemas/json';
18
+ import { readStoredLayer, validateForPersist } from "../validate-for-persist.js";
19
+ import { columnOf, hostDatabase, hostTable } from "./host-database.js";
20
+ import { recordTable } from "./record-table.js";
21
+ /** The most an optimistic `update` retries before it reports the conflict. */
22
+ const UPDATE_ATTEMPTS = 5;
23
+ const RowSchema = z.record(z.string(), z.unknown());
24
+ const RowsSchema = z.array(RowSchema);
25
+ const RevisionSchema = z.coerce.number().int().nonnegative();
26
+ export function createKeyedDocumentStore(options) {
27
+ const { host, descriptor, fields, namespace, schema } = options;
28
+ function context() {
29
+ const database = hostDatabase(host);
30
+ const table = hostTable(database, descriptor.tableName) ?? recordTable(descriptor, host.dialect);
31
+ const columns = {
32
+ key: columnOf(table, fields.key),
33
+ value: columnOf(table, fields.value),
34
+ revision: columnOf(table, fields.revision)
35
+ };
36
+ const timestamps = { createdAt: columnOf(table, fields.createdAt), updatedAt: columnOf(table, fields.updatedAt) };
37
+ if (!columns.key || !columns.value || !columns.revision || !timestamps.createdAt || !timestamps.updatedAt) {
38
+ throw new CapabilityError('The keyed document table does not declare its key, value, revision, createdAt and updatedAt columns.', 'INVALID_INPUT', {
39
+ reason: 'keyed-document-columns-missing',
40
+ retryable: false,
41
+ details: { tableName: descriptor.tableName, fields: [fields.key, fields.value, fields.revision, fields.createdAt, fields.updatedAt] }
42
+ });
43
+ }
44
+ return { database, table, key: columns.key, value: columns.value, revision: columns.revision };
45
+ }
46
+ async function readRow() {
47
+ const { database, table, key } = context();
48
+ const rows = RowsSchema.parse(await database.select().from(table).where(eq(key, namespace)).limit(1));
49
+ const [row] = rows;
50
+ if (row === undefined)
51
+ return null;
52
+ return { value: JsonValueSchema.parse(row[fields.value]), revision: RevisionSchema.parse(row[fields.revision]) };
53
+ }
54
+ /** The one-statement write: insert the first revision, or replace the body and advance the revision. */
55
+ async function upsert(value) {
56
+ const { database, table, key, revision } = context();
57
+ const now = new Date();
58
+ await database
59
+ .insert(table)
60
+ .values({ [fields.key]: namespace, [fields.value]: value, [fields.revision]: 1, [fields.createdAt]: now, [fields.updatedAt]: now })
61
+ .onConflictDoUpdate({
62
+ target: key,
63
+ set: { [fields.value]: value, [fields.revision]: sql `${revision} + 1`, [fields.updatedAt]: now }
64
+ });
65
+ }
66
+ function conflict() {
67
+ return new CapabilityError('The document changed while it was being updated; the update was not applied.', 'CONFLICT', {
68
+ reason: 'keyed-document-update-conflict',
69
+ retryable: true,
70
+ details: { tableName: descriptor.tableName, namespace }
71
+ });
72
+ }
73
+ /** One conditional write against the revision read: the written revision, or null when another writer got there first. */
74
+ async function writeAt(row, value) {
75
+ const { database, table, key, revision } = context();
76
+ const now = new Date();
77
+ const written = row
78
+ ? await database
79
+ .update(table)
80
+ .set({ [fields.value]: value, [fields.revision]: row.revision + 1, [fields.updatedAt]: now })
81
+ .where(and(eq(key, namespace), eq(revision, row.revision)))
82
+ .returning()
83
+ : await database
84
+ .insert(table)
85
+ .values({ [fields.key]: namespace, [fields.value]: value, [fields.revision]: 1, [fields.createdAt]: now, [fields.updatedAt]: now })
86
+ .onConflictDoNothing({ target: key })
87
+ .returning();
88
+ return written.length > 0;
89
+ }
90
+ return {
91
+ revisions: {
92
+ async metadata() {
93
+ const row = await readRow();
94
+ return row === null ? null : { revision: String(row.revision) };
95
+ },
96
+ async readAtRevision(revision) {
97
+ const row = await readRow();
98
+ if (row === null)
99
+ return { status: 'not-found' };
100
+ if (String(row.revision) !== revision)
101
+ return { status: 'changed', revision: String(row.revision) };
102
+ return { status: 'read', revision, value: schema.parse(row.value) };
103
+ }
104
+ },
105
+ async load() {
106
+ const row = await readRow();
107
+ return row === null ? null : schema.parse(row.value);
108
+ },
109
+ async loadStored() {
110
+ const row = await readRow();
111
+ return row === null ? null : readStoredLayer(schema, row.value);
112
+ },
113
+ async save(data) {
114
+ // Persist the caller's validated input, never the parse output: defaults are read-time only.
115
+ await upsert(JsonValueSchema.parse(validateForPersist(schema, data)));
116
+ },
117
+ async update(transform) {
118
+ for (let attempt = 0; attempt < UPDATE_ATTEMPTS; attempt += 1) {
119
+ const row = await readRow();
120
+ const next = validateForPersist(schema, await transform(row === null ? null : schema.parse(row.value)));
121
+ if (await writeAt(row, JsonValueSchema.parse(next)))
122
+ return next;
123
+ }
124
+ throw conflict();
125
+ },
126
+ async exists() {
127
+ return (await readRow()) !== null;
128
+ },
129
+ async delete() {
130
+ const { database, table, key } = context();
131
+ await database.delete(table).where(eq(key, namespace));
132
+ },
133
+ getPath: () => `${descriptor.tableName}://${namespace}`
134
+ };
135
+ }
136
+ //# sourceMappingURL=keyed-document-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyed-document-store.js","sourceRoot":"","sources":["../../../src/adapters/drizzle/keyed-document-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage-adapter-drizzle.plugin.d.ts","sourceRoot":"","sources":["../../../src/adapters/drizzle/storage-adapter-drizzle.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAA8B,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAA0C,EACzC,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,mBAAmB,MAAM,mCAAmC,CAAC;AAGpE,QAAA,MAAM,gBAAgB,EAAE,wBAqBvB,CAAC;AAmBF;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAO7G;AAED,eAAO,MAAM,2BAA2B,6CAkBtC,CAAC;AAEH,eAAe,2BAA2B,CAAC;AAG3C,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,CAAC"}
1
+ {"version":3,"file":"storage-adapter-drizzle.plugin.d.ts","sourceRoot":"","sources":["../../../src/adapters/drizzle/storage-adapter-drizzle.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAA8B,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAA0C,EACzC,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,mBAAmB,MAAM,mCAAmC,CAAC;AAGpE,QAAA,MAAM,gBAAgB,EAAE,wBAuBvB,CAAC;AAmBF;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAO7G;AAED,eAAO,MAAM,2BAA2B,6CAkBtC,CAAC;AAEH,eAAe,2BAA2B,CAAC;AAG3C,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,0BAA0B,EAC1B,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,CAAC"}
@@ -25,6 +25,8 @@ const libsqlDescriptor = {
25
25
  enabled: true,
26
26
  protocols: ['document', 'record'],
27
27
  basePathSemantics: 'unused',
28
+ // Like `storage.drizzle`: a document lives in a table the manifest binds, so it is offered only to a manifest that declares `adapterConfig['storage.drizzle.libsql']`.
29
+ requiresManifestBinding: true,
28
30
  capabilities: ['read', 'write'],
29
31
  requiresPairSchema: false,
30
32
  supportsTransactions: true,
@@ -1 +1 @@
1
- {"version":3,"file":"storage-adapter-drizzle.plugin.js","sourceRoot":"","sources":["../../../src/adapters/drizzle/storage-adapter-drizzle.plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-adapter-drizzle.plugin.js","sourceRoot":"","sources":["../../../src/adapters/drizzle/storage-adapter-drizzle.plugin.ts"],"names":[],"mappings":"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"}
@@ -57,4 +57,20 @@ export interface TestDrizzleDb<TSchema extends DrizzleSchemaRecord> {
57
57
  * pool. Caller is responsible for `close()` in teardown.
58
58
  */
59
59
  export declare function createTestDrizzleDb<TSchema extends DrizzleSchemaRecord>(schema: TSchema, options?: CreateTestDrizzleDbOptions): Promise<TestDrizzleDb<TSchema>>;
60
+ /** D1's limit on bound parameters per statement. */
61
+ export declare const D1_PARAMETER_LIMIT = 100;
62
+ export interface D1TestDrizzleDb<TSchema extends DrizzleSchemaRecord> extends TestDrizzleDb<TSchema> {
63
+ /** The most parameters any statement bound, and the number of statements run. */
64
+ observed: {
65
+ maxParameters: number;
66
+ statements: number;
67
+ };
68
+ }
69
+ /**
70
+ * An in-memory libsql DB with the limits D1 shares with it as a host: no
71
+ * interactive transaction callback (`db.transaction` throws), and a statement
72
+ * binding more than {@link D1_PARAMETER_LIMIT} parameters is refused. A store
73
+ * that passes here stays inside what a D1-backed Worker can run.
74
+ */
75
+ export declare function createD1TestDrizzleDb<TSchema extends DrizzleSchemaRecord>(schema: TSchema, options?: CreateTestDrizzleDbOptions): Promise<D1TestDrizzleDb<TSchema>>;
60
76
  //# sourceMappingURL=test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/adapters/drizzle/test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C;;;;;;;;;;OAUG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,mBAAmB;IACjE,iFAAiF;IACjF,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5B,oGAAoG;IACpG,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,SAAS,mBAAmB,EAC5E,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,0BAA+B,GACtC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAajC"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/adapters/drizzle/test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAgB,KAAK,MAAM,EAAoB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IAC1C;;;;;;;;;;OAUG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,mBAAmB;IACjE,iFAAiF;IACjF,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5B,oGAAoG;IACpG,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,SAAS,mBAAmB,EAC5E,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,0BAA+B,GACtC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAajC;AAED,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,mBAAmB,CAAE,SAAQ,aAAa,CAAC,OAAO,CAAC;IACnG,iFAAiF;IACjF,QAAQ,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACxD;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,SAAS,mBAAmB,EAC9E,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,0BAA+B,GACtC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAkBnC"}
@@ -46,4 +46,32 @@ export async function createTestDrizzleDb(schema, options = {}) {
46
46
  close: () => client.close()
47
47
  };
48
48
  }
49
+ /** D1's limit on bound parameters per statement. */
50
+ export const D1_PARAMETER_LIMIT = 100;
51
+ /**
52
+ * An in-memory libsql DB with the limits D1 shares with it as a host: no
53
+ * interactive transaction callback (`db.transaction` throws), and a statement
54
+ * binding more than {@link D1_PARAMETER_LIMIT} parameters is refused. A store
55
+ * that passes here stays inside what a D1-backed Worker can run.
56
+ */
57
+ export async function createD1TestDrizzleDb(schema, options = {}) {
58
+ const test = await createTestDrizzleDb(schema, options);
59
+ const execute = test.client.execute.bind(test.client);
60
+ const observed = { maxParameters: 0, statements: 0 };
61
+ test.client.execute = (statement) => {
62
+ const args = statement instanceof Object ? statement.args : undefined;
63
+ const bound = args === undefined ? 0 : Array.isArray(args) ? args.length : Object.keys(args).length;
64
+ observed.statements += 1;
65
+ observed.maxParameters = Math.max(observed.maxParameters, bound);
66
+ if (bound > D1_PARAMETER_LIMIT)
67
+ throw new Error(`D1 refuses a statement binding ${bound} parameters (limit ${D1_PARAMETER_LIMIT})`);
68
+ return execute(statement);
69
+ };
70
+ Object.assign(test.db, {
71
+ transaction: () => {
72
+ throw new Error('D1 has no interactive transaction');
73
+ }
74
+ });
75
+ return { ...test, observed };
76
+ }
49
77
  //# sourceMappingURL=test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/adapters/drizzle/test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,YAAY,EAAe,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAuB,MAAM,oBAAoB,CAAC;AA2BlE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,MAAe,EACf,UAAsC,EAAE;IAExC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IACjD,MAAM,UAAU,GACf,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3F,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,OAAO;QACN,EAAE;QACF,MAAM;QACN,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;KAC3B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/adapters/drizzle/test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,YAAY,EAAiC,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAuB,MAAM,oBAAoB,CAAC;AA2BlE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,MAAe,EACf,UAAsC,EAAE;IAExC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IACjD,MAAM,UAAU,GACf,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3F,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,OAAO;QACN,EAAE;QACF,MAAM;QACN,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;KAC3B,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAOtC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,MAAe,EACf,UAAsC,EAAE;IAExC,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,EAAE,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,SAAsB,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,SAAS,YAAY,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACpG,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC;QACzB,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACjE,IAAI,KAAK,GAAG,kBAAkB;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,sBAAsB,kBAAkB,GAAG,CAAC,CAAC;QACpI,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE;QACtB,WAAW,EAAE,GAAG,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACtD,CAAC;KACD,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { CLICommandAssetDescriptor } from '@vibesdotdev/kernel/schemas/asset';
2
+ declare const descriptor: CLICommandAssetDescriptor;
3
+ export default descriptor;
4
+ //# sourceMappingURL=storage.sync.migrate.cli-command.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.sync.migrate.cli-command.descriptor.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/sync/migrate/storage.sync.migrate.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,QAAA,MAAM,UAAU,EAAE,yBAyBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,28 @@
1
+ const descriptor = {
2
+ kind: 'cli/command',
3
+ id: 'storage.sync.migrate',
4
+ name: 'migrate',
5
+ description: 'Move a storage manifest document between local adapters',
6
+ group: 'storage.sync',
7
+ arguments: [
8
+ {
9
+ name: 'manifest-id',
10
+ description: 'Manifest ID to migrate',
11
+ required: true,
12
+ variadic: false
13
+ }
14
+ ],
15
+ options: [
16
+ { flags: '--from <adapter>', description: 'Source adapter (auto-detected when omitted)' },
17
+ { flags: '--to <adapter>', description: "Target adapter (default: the manifest's selected adapter)" },
18
+ { flags: '--force', description: 'Overwrite a non-empty target' },
19
+ { flags: '--dry-run', description: 'Report the source and target without writing' },
20
+ { flags: '--json', description: 'Output result as JSON' }
21
+ ],
22
+ aliases: [],
23
+ surfaces: ['cli'],
24
+ hardware: ['consumer'],
25
+ enabled: true
26
+ };
27
+ export default descriptor;
28
+ //# sourceMappingURL=storage.sync.migrate.cli-command.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.sync.migrate.cli-command.descriptor.js","sourceRoot":"","sources":["../../../../../src/cli/commands/sync/migrate/storage.sync.migrate.cli-command.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAA8B;IAC7C,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,sBAAsB;IAC1B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,yDAAyD;IACtE,KAAK,EAAE,cAAc;IACrB,SAAS,EAAE;QACV;YACC,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;SACf;KACD;IACD,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,6CAA6C,EAAE;QACzF,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,2DAA2D,EAAE;QACrG,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,8BAA8B,EAAE;QACjE,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,8CAA8C,EAAE;QACnF,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;KACzD;IACD,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * vibes storage sync migrate <manifest-id>
3
+ *
4
+ * Moves one manifest document between the adapters the manifest allows. The
5
+ * source and target are read and written through the manifest's own schema;
6
+ * a non-empty target is preserved unless --force is set. The source is never
7
+ * deleted. With no --from, the only non-empty local source is used.
8
+ */
9
+ import type { CommandContext } from '@vibesdotdev/cli-contracts';
10
+ import * as z from 'zod/v4';
11
+ declare const MigrateArgsSchema: z.ZodObject<{
12
+ 'manifest-id': z.ZodString;
13
+ }, z.core.$strip>;
14
+ declare const MigrateOptionsSchema: z.ZodObject<{
15
+ from: z.ZodOptional<z.ZodString>;
16
+ to: z.ZodOptional<z.ZodString>;
17
+ force: z.ZodOptional<z.ZodBoolean>;
18
+ dryRun: z.ZodOptional<z.ZodBoolean>;
19
+ json: z.ZodOptional<z.ZodBoolean>;
20
+ format: z.ZodOptional<z.ZodString>;
21
+ }, z.core.$strip>;
22
+ declare const _default: {
23
+ execute(args: z.input<typeof MigrateArgsSchema>, opts: z.input<typeof MigrateOptionsSchema>, context: CommandContext): Promise<void>;
24
+ };
25
+ export default _default;
26
+ //# sourceMappingURL=storage.sync.migrate.cli-command.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.sync.migrate.cli-command.impl.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/sync/migrate/storage.sync.migrate.cli-command.impl.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAU5B,QAAA,MAAM,iBAAiB;;iBAAiD,CAAC;AACzE,QAAA,MAAM,oBAAoB;;;;;;;iBAOxB,CAAC;;kBAUK,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,QACjC,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,WACjC,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;;AALjB,wBAgEE"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * vibes storage sync migrate <manifest-id>
3
+ *
4
+ * Moves one manifest document between the adapters the manifest allows. The
5
+ * source and target are read and written through the manifest's own schema;
6
+ * a non-empty target is preserved unless --force is set. The source is never
7
+ * deleted. With no --from, the only non-empty local source is used.
8
+ */
9
+ import * as z from 'zod/v4';
10
+ import { CapabilityError, CaughtFailureSchema } from '@vibesdotdev/kernel';
11
+ import { StorageManifest } from "../../../../manifest/base.js";
12
+ import { ManifestMigrationResultSchema } from "../../../../schemas/manifest-migration.js";
13
+ const MigrateArgsSchema = z.object({ 'manifest-id': z.string().min(1) });
14
+ const MigrateOptionsSchema = z.object({
15
+ from: z.string().optional(),
16
+ to: z.string().optional(),
17
+ force: z.boolean().optional(),
18
+ dryRun: z.boolean().optional(),
19
+ json: z.boolean().optional(),
20
+ format: z.string().optional()
21
+ });
22
+ /** Accept the short config spelling (`json`) and the adapter id (`storage.json`). */
23
+ function adapterId(value) {
24
+ const trimmed = value.trim();
25
+ return trimmed.startsWith('storage.') ? trimmed : `storage.${trimmed}`;
26
+ }
27
+ export default {
28
+ async execute(args, opts, context) {
29
+ const runtime = context.runtime;
30
+ const ui = await runtime.context('cli/ui');
31
+ const manifestId = MigrateArgsSchema.parse(args)['manifest-id'];
32
+ const options = MigrateOptionsSchema.parse(opts);
33
+ const asJson = options.json === true || options.format === 'json';
34
+ try {
35
+ const descriptor = runtime
36
+ .query('storage/manifest')
37
+ .withId(manifestId)
38
+ .enabled()
39
+ .descriptors()[0];
40
+ if (!descriptor) {
41
+ throw new CapabilityError(`Storage manifest '${manifestId}' is not registered on this runtime.`, 'NOT_FOUND', { reason: 'storage-manifest-not-registered', details: { manifestId } });
42
+ }
43
+ const manifest = await runtime
44
+ .query('storage/manifest')
45
+ .withId(manifestId)
46
+ .resolve();
47
+ if (!(manifest instanceof StorageManifest)) {
48
+ throw new CapabilityError(`Storage manifest '${manifestId}' does not implement adapter migration.`, 'UNAVAILABLE', { reason: 'storage-migration-unsupported', details: { manifestId } });
49
+ }
50
+ const selected = await manifest.documentIdentity();
51
+ const to = options.to ? adapterId(options.to) : selected.adapterId;
52
+ const migration = {};
53
+ if (options.from)
54
+ migration.fromAdapterId = adapterId(options.from);
55
+ if (options.force)
56
+ migration.force = true;
57
+ if (options.dryRun)
58
+ migration.dryRun = true;
59
+ const result = await manifest.migrateToAdapter(to, migration);
60
+ if (asJson) {
61
+ ui.render(ManifestMigrationResultSchema.parse(result), { format: 'json' });
62
+ return;
63
+ }
64
+ if (result.action === 'migrated') {
65
+ ui.success(result.message ?? `Migrated ${manifestId}.`);
66
+ }
67
+ else {
68
+ ui.info(result.message ?? `No migration needed for ${manifestId}.`);
69
+ }
70
+ }
71
+ catch (error) {
72
+ if (error instanceof CapabilityError)
73
+ throw error;
74
+ // The failure travels as cause; its text can carry an adapter body or URL.
75
+ throw new CapabilityError('The storage manifest could not be migrated.', 'INTERNAL', {
76
+ reason: 'storage-migration-failed',
77
+ cause: CaughtFailureSchema.parse(error)
78
+ });
79
+ }
80
+ }
81
+ };
82
+ //# sourceMappingURL=storage.sync.migrate.cli-command.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.sync.migrate.cli-command.impl.js","sourceRoot":"","sources":["../../../../../src/cli/commands/sync/migrate/storage.sync.migrate.cli-command.impl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/cli/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAeH,eAAO,MAAM,gBAAgB,6CAsC3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/cli/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAgBH,eAAO,MAAM,gBAAgB,6CA0C3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -20,12 +20,13 @@ import storageList from "./commands/list/storage.list.cli-command.descriptor.js"
20
20
  import storageSyncPull from "./commands/sync/pull/storage.sync.pull.cli-command.descriptor.js";
21
21
  import storageSyncPush from "./commands/sync/push/storage.sync.push.cli-command.descriptor.js";
22
22
  import storageSyncResolve from "./commands/sync/resolve/storage.sync.resolve.cli-command.descriptor.js";
23
+ import storageSyncMigrate from "./commands/sync/migrate/storage.sync.migrate.cli-command.descriptor.js";
23
24
  import storageSyncStatus from "./commands/sync/status/storage.sync.status.cli-command.descriptor.js";
24
25
  const CLI_COMMAND = { kind: 'cli/command' };
25
26
  export const storageCliPlugin = createRuntimePlugin({
26
27
  id: 'storage.cli',
27
28
  name: 'Storage CLI Surface',
28
- description: '`vibes storage list` + `vibes storage sync {pull,push,status,resolve}` — consumer/CLI scope only',
29
+ description: '`vibes storage list` + `vibes storage sync {pull,push,status,resolve,migrate}` — consumer/CLI scope only',
29
30
  dependencies: ['cli', 'storage'],
30
31
  descriptors: [
31
32
  storageGroup,
@@ -34,6 +35,7 @@ export const storageCliPlugin = createRuntimePlugin({
34
35
  storageSyncPull,
35
36
  storageSyncPush,
36
37
  storageSyncResolve,
38
+ storageSyncMigrate,
37
39
  storageSyncStatus
38
40
  ],
39
41
  async onRegister(runtime) {
@@ -44,7 +46,8 @@ export const storageCliPlugin = createRuntimePlugin({
44
46
  loader('storage.sync.push', CLI_COMMAND, () => import("./commands/sync/push/storage.sync.push.cli-command.impl.js")),
45
47
  loader('storage.sync.pull', CLI_COMMAND, () => import("./commands/sync/pull/storage.sync.pull.cli-command.impl.js")),
46
48
  loader('storage.sync.status', CLI_COMMAND, () => import("./commands/sync/status/storage.sync.status.cli-command.impl.js")),
47
- loader('storage.sync.resolve', CLI_COMMAND, () => import("./commands/sync/resolve/storage.sync.resolve.cli-command.impl.js"))
49
+ loader('storage.sync.resolve', CLI_COMMAND, () => import("./commands/sync/resolve/storage.sync.resolve.cli-command.impl.js")),
50
+ loader('storage.sync.migrate', CLI_COMMAND, () => import("./commands/sync/migrate/storage.sync.migrate.cli-command.impl.js"))
48
51
  ]
49
52
  });
50
53
  export default storageCliPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/cli/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,WAAW,MAAM,wDAAwD,CAAC;AACjF,OAAO,eAAe,MAAM,kEAAkE,CAAC;AAC/F,OAAO,eAAe,MAAM,kEAAkE,CAAC;AAC/F,OAAO,kBAAkB,MAAM,wEAAwE,CAAC;AACxG,OAAO,iBAAiB,MAAM,sEAAsE,CAAC;AAErG,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,aAAa,EAAW,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;IACnD,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACV,kGAAkG;IACnG,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;IAEhC,WAAW,EAAE;QACZ,YAAY;QACZ,gBAAgB;QAChB,WAAW;QACX,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,iBAAiB;KACjB;IAED,KAAK,CAAC,UAAU,CAAC,OAAO;QACvB,MAAM,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,EAAE;QACR,MAAM,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,EAAE,CACxC,MAAM,CAAC,kDAAkD,CAAC,CAC1D;QACD,MAAM,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,EAAE,CAC7C,MAAM,CAAC,4DAA4D,CAAC,CACpE;QACD,MAAM,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,EAAE,CAC7C,MAAM,CAAC,4DAA4D,CAAC,CACpE;QACD,MAAM,CAAC,qBAAqB,EAAE,WAAW,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,gEAAgE,CAAC,CACxE;QACD,MAAM,CAAC,sBAAsB,EAAE,WAAW,EAAE,GAAG,EAAE,CAChD,MAAM,CAAC,kEAAkE,CAAC,CAC1E;KACD;CACD,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/cli/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,WAAW,MAAM,wDAAwD,CAAC;AACjF,OAAO,eAAe,MAAM,kEAAkE,CAAC;AAC/F,OAAO,eAAe,MAAM,kEAAkE,CAAC;AAC/F,OAAO,kBAAkB,MAAM,wEAAwE,CAAC;AACxG,OAAO,kBAAkB,MAAM,wEAAwE,CAAC;AACxG,OAAO,iBAAiB,MAAM,sEAAsE,CAAC;AAErG,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,aAAa,EAAW,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;IACnD,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACV,0GAA0G;IAC3G,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;IAEhC,WAAW,EAAE;QACZ,YAAY;QACZ,gBAAgB;QAChB,WAAW;QACX,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB;KACjB;IAED,KAAK,CAAC,UAAU,CAAC,OAAO;QACvB,MAAM,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,EAAE;QACR,MAAM,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,EAAE,CACxC,MAAM,CAAC,kDAAkD,CAAC,CAC1D;QACD,MAAM,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,EAAE,CAC7C,MAAM,CAAC,4DAA4D,CAAC,CACpE;QACD,MAAM,CAAC,mBAAmB,EAAE,WAAW,EAAE,GAAG,EAAE,CAC7C,MAAM,CAAC,4DAA4D,CAAC,CACpE;QACD,MAAM,CAAC,qBAAqB,EAAE,WAAW,EAAE,GAAG,EAAE,CAC/C,MAAM,CAAC,gEAAgE,CAAC,CACxE;QACD,MAAM,CAAC,sBAAsB,EAAE,WAAW,EAAE,GAAG,EAAE,CAChD,MAAM,CAAC,kEAAkE,CAAC,CAC1E;QACD,MAAM,CAAC,sBAAsB,EAAE,WAAW,EAAE,GAAG,EAAE,CAChD,MAAM,CAAC,kEAAkE,CAAC,CAC1E;KACD;CACD,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -2,7 +2,7 @@ const descriptor = {
2
2
  kind: 'cli/group',
3
3
  id: 'storage.sync',
4
4
  name: 'sync',
5
- description: 'Cloud synchronization for storage manifests',
5
+ description: 'Cloud synchronization and local adapter migration for storage manifests',
6
6
  parent: 'storage',
7
7
  surfaces: ['cli'],
8
8
  hardware: ['consumer'],
@@ -1 +1 @@
1
- {"version":3,"file":"storage.sync.cli-group.descriptor.js","sourceRoot":"","sources":["../../src/cli/storage.sync.cli-group.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAA4B;IAC3C,IAAI,EAAE,WAAW;IACjB,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,6CAA6C;IAC1D,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"storage.sync.cli-group.descriptor.js","sourceRoot":"","sources":["../../src/cli/storage.sync.cli-group.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAA4B;IAC3C,IAAI,EAAE,WAAW;IACjB,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,yEAAyE;IACtF,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/sync.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,QAAA,MAAM,UAAU,EAAE,mBA0QjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"sync.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/sync.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,QAAA,MAAM,UAAU,EAAE,mBAqSjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -147,10 +147,37 @@ vibes storage sync resolve <manifest-id> --keep <local|remote> [--json]
147
147
 
148
148
  There is no automatic merge: every conflict needs this explicit choice.
149
149
 
150
+ ### Migrate Between Local Adapters
151
+
152
+ \`\`\`bash
153
+ vibes storage sync migrate <manifest-id> [--from <adapter>] [--to <adapter>] [--force] [--dry-run] [--json]
154
+ \`\`\`
155
+
156
+ Moves one manifest document between adapters the manifest allows. The source is
157
+ read through the manifest's own schema and the target write is read back, so a
158
+ migration is a real storage operation, not a file copy.
159
+
160
+ - \`--to\` defaults to the manifest's selected adapter.
161
+ - \`--from\` defaults to the only non-empty local source; two non-empty sources
162
+ refuse and require an explicit choice.
163
+ - A non-empty target is skipped unless \`--force\` is set.
164
+ - The source document is never deleted.
165
+
166
+ A \`storage/manifest\` may also declare \`migrationSources\`. Before its first
167
+ read or write, Storage copies the one non-empty declared source into an empty
168
+ selected adapter. That makes a default-adapter change safe for existing data;
169
+ it never overwrites a non-empty selected adapter.
170
+
171
+ The scheduled \`maintenance.storage-sync\` job runs the same declared-source
172
+ sweep before cloud sync, even when cloud sync has no targets. A receipt in
173
+ \`storage/sync-state\` records the selected adapter per manifest, so a stable
174
+ store costs no document read on the next run.
175
+
150
176
  Machine contract for pull/push (\`--json\` / \`--format json\`): stdout is a
151
177
  single JSON document (a results array, or the \`CapabilityError\` envelope on
152
178
  failure) and the exit is non-zero when any target reports error or conflict,
153
- including dry runs.
179
+ including dry runs. \`sync migrate --json\` emits one
180
+ \`ManifestMigrationResult\` document.
154
181
 
155
182
  ## Cloud-API Adapter
156
183
 
@@ -1 +1 @@
1
- {"version":3,"file":"sync.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/sync.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,cAAc;IAClB,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,qEAAqE;IAC9E,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0PT;KACC;IACD,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC;IACrE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;IAClC,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"sync.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/sync.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,cAAc;IAClB,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,qEAAqE;IAC9E,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqRT;KACC;IACD,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC;IACrE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;IAClC,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -15,6 +15,7 @@ export { FilesystemDocumentIdentitySchema, LogicalDocumentIdentitySchema, Select
15
15
  import type { DocumentRevisionAccess } from '../schemas/document-revision.ts';
16
16
  import type { StorageBasePathSemantics } from '../schemas/adapter-descriptor.ts';
17
17
  import { type StorageManifestDescriptor } from '../schemas/manifest-descriptor.ts';
18
+ import { type ManifestMigrationOptions, type ManifestMigrationResult } from '../schemas/manifest-migration.ts';
18
19
  import type { StorageDocumentStoreInterface, StorageLoadOptions, Unsubscribe } from '../interfaces/document-store.ts';
19
20
  import { type PathRoots } from '@vibesdotdev/paths';
20
21
  /** The adapter configuration a manifest hands its adapter: runtime, paths, and the descriptor's adapter-specific options. */
@@ -67,6 +68,8 @@ export declare class StorageManifest<T> {
67
68
  private resolved;
68
69
  private cachedData;
69
70
  private cacheValid;
71
+ /** Declared source imports run once per manifest instance, before the first read or write. */
72
+ private declaredMigration;
70
73
  private subscribers;
71
74
  private storeUnsubscribe;
72
75
  private subscriptionStarted;
@@ -150,6 +153,39 @@ export declare class StorageManifest<T> {
150
153
  * Check if data is currently cached.
151
154
  */
152
155
  isCached(): boolean;
156
+ /**
157
+ * Move this manifest's document from one allowed adapter to another. The
158
+ * source is read through the manifest's own schema and the target write is
159
+ * read back, so a migration is a real storage operation, not a file copy.
160
+ *
161
+ * A non-empty target is left alone unless `force` is set. With no
162
+ * `fromAdapterId`, the only non-empty local source is selected; two
163
+ * non-empty sources refuse rather than picking one. The source is never
164
+ * deleted.
165
+ */
166
+ migrateToAdapter(toAdapterId: string, rawOptions?: ManifestMigrationOptions): Promise<ManifestMigrationResult>;
167
+ /**
168
+ * Run this manifest's declared `migrationSources` check for its selected
169
+ * adapter. `null` means the manifest declares no sources or selects a
170
+ * non-local adapter. A stable or already-migrated store reports `skipped`;
171
+ * a migrated store reports `migrated` (or `dry-run`). Callable repeatedly.
172
+ */
173
+ migrateDeclaredSources(rawOptions?: {
174
+ dryRun?: boolean;
175
+ }): Promise<ManifestMigrationResult | null>;
176
+ /**
177
+ * Before the first read or write, honor `migrationSources`: when the
178
+ * selected adapter is empty and exactly one declared source holds a
179
+ * document, copy it once. This is what makes a default-adapter change safe
180
+ * for existing data; it never overwrites a non-empty selected adapter.
181
+ */
182
+ private ensureDeclaredMigration;
183
+ private runDeclaredMigration;
184
+ /** A manifest of this same shape forced onto one adapter, with migration disabled. */
185
+ private storageDescriptorForAdapter;
186
+ private readAdapterDocument;
187
+ private writeAdapterDocument;
188
+ private adapterOffered;
153
189
  /**
154
190
  * Resolve the adapter and open a document store for it **atomically**.
155
191
  *
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/manifest/base.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAEN,KAAK,wBAAwB,EAC7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACN,gCAAgC,EAChC,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAmC,KAAK,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACpH,OAAO,KAAK,EAEX,6BAA6B,EAC7B,kBAAkB,EAClB,WAAW,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA2BlE,6HAA6H;AAC7H,OAAO,KAAK,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAClG,YAAY,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AASlG,6EAA6E;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,YAAY,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE,6DAA6D;AAC7D,OAAO,KAAK,EAAE,mBAAmB,IAAI,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAClG,YAAY,EAAE,mBAAmB,IAAI,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAqBlG,6FAA6F;AAC7F,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAIjD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,eAAe,CAAC,CAAC;IAC7B,SAAS,CAAC,UAAU,EAAG,yBAAyB,CAAC;IACjD,SAAS,CAAC,OAAO,EAAG,WAAW,CAAC;IAChC,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,wBAAwB,CAAsC;IAGtE,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAS;IAG3B,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,mBAAmB,CAAS;IAEpC,yEAAyE;IACzE,OAAO,CAAC,UAAU;IAYlB;;;;;;;OAOG;gBACS,cAAc,EAAE,yBAAyB,GAAG,MAAM,EAAE,OAAO,EAAE,WAAW;IA0BpF;;;OAGG;IACH,OAAO,CAAC,cAAc;IA4BtB;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC;IAI7E;;OAEG;IACH,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAWzB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAGtB;IAED;;;;;OAKG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;IAclD,+EAA+E;IACzE,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAgDzC;;;;;;;OAOG;IACH,OAAO,CAAC,iCAAiC;IA2BzC;;;;;OAKG;cACa,UAAU,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAuF9D;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CACzB,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,GAAE,wBAAwD,GACzE,qBAAqB;IAuDxB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,yBAAyB;IAQjC;;;OAGG;IACH,SAAS,CAAC,WAAW,CACpB,KAAK,GAAE,SAA2C,EAClD,aAAa,SAOZ,GACC,MAAM;IA+BT;;OAEG;IACH,eAAe,IAAI,IAAI;IAKvB;;;OAGG;IACH,aAAa,IAAI,CAAC,GAAG,SAAS;IAO9B;;OAEG;IACH,QAAQ,IAAI,OAAO;IAMnB;;;;;;;;;;;;;;;;OAgBG;cACa,SAAS,IAAI,OAAO,CAAC;QACpC,OAAO,EAAE,uBAAuB,CAAC;QACjC,KAAK,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC;KACxC,CAAC;IASF;;;;OAIG;IACG,gBAAgB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAyB3D,6FAA6F;IACvF,iBAAiB,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAQ7D;;;;OAIG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAwB3D;;;;OAIG;IACG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAelC,gEAAgE;IAChE,OAAO,CAAC,gBAAgB;IAUxB;;;;;;;;;;OAUG;YACW,oBAAoB;IAqBlC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAKhC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAY7B;;;;OAIG;IACG,aAAa,CAAC,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKhD;;;;;;OAMG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IA4BpE;;;;OAIG;IACG,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7E;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAM1D;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,WAAW;IAkB1D;;OAEG;YACW,gBAAgB;IAU9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAIjD;;OAEG;IACH,kBAAkB,IAAI,MAAM;CAG5B"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/manifest/base.ts"],"names":[],"mappings":"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"}