videobook-engine 2.0.1 → 5.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 (171) hide show
  1. package/README.md +99 -68
  2. package/dist/artifacts.d.ts +4 -9
  3. package/dist/artifacts.d.ts.map +1 -1
  4. package/dist/artifacts.js +78 -138
  5. package/dist/artifacts.js.map +1 -1
  6. package/dist/books.d.ts +1 -1
  7. package/dist/books.d.ts.map +1 -1
  8. package/dist/books.js +18 -10
  9. package/dist/books.js.map +1 -1
  10. package/dist/cas.d.ts +27 -1
  11. package/dist/cas.d.ts.map +1 -1
  12. package/dist/cas.js +78 -6
  13. package/dist/cas.js.map +1 -1
  14. package/dist/catalog-metadata.d.ts +56 -0
  15. package/dist/catalog-metadata.d.ts.map +1 -0
  16. package/dist/catalog-metadata.js +42 -0
  17. package/dist/catalog-metadata.js.map +1 -0
  18. package/dist/communications.js +4 -2
  19. package/dist/communications.js.map +1 -1
  20. package/dist/context.d.ts +9 -6
  21. package/dist/context.d.ts.map +1 -1
  22. package/dist/context.js +42 -51
  23. package/dist/context.js.map +1 -1
  24. package/dist/domain.d.ts +39 -2
  25. package/dist/domain.d.ts.map +1 -1
  26. package/dist/domain.js +846 -64
  27. package/dist/domain.js.map +1 -1
  28. package/dist/edit-policy.d.ts +3 -0
  29. package/dist/edit-policy.d.ts.map +1 -0
  30. package/dist/edit-policy.js +6 -0
  31. package/dist/edit-policy.js.map +1 -0
  32. package/dist/edits.d.ts +10 -0
  33. package/dist/edits.d.ts.map +1 -0
  34. package/dist/edits.js +1392 -0
  35. package/dist/edits.js.map +1 -0
  36. package/dist/engine-types.d.ts +171 -86
  37. package/dist/engine-types.d.ts.map +1 -1
  38. package/dist/engine-types.js +32 -0
  39. package/dist/engine-types.js.map +1 -1
  40. package/dist/engine.d.ts +89 -26
  41. package/dist/engine.d.ts.map +1 -1
  42. package/dist/engine.js +27 -21
  43. package/dist/engine.js.map +1 -1
  44. package/dist/files.d.ts.map +1 -1
  45. package/dist/files.js +32 -28
  46. package/dist/files.js.map +1 -1
  47. package/dist/fork.d.ts +148 -0
  48. package/dist/fork.d.ts.map +1 -0
  49. package/dist/fork.js +602 -0
  50. package/dist/fork.js.map +1 -0
  51. package/dist/generations.d.ts +9 -0
  52. package/dist/generations.d.ts.map +1 -0
  53. package/dist/generations.js +175 -0
  54. package/dist/generations.js.map +1 -0
  55. package/dist/history.d.ts +2 -5
  56. package/dist/history.d.ts.map +1 -1
  57. package/dist/history.js +183 -640
  58. package/dist/history.js.map +1 -1
  59. package/dist/index.d.ts +21 -7
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +15 -5
  62. package/dist/index.js.map +1 -1
  63. package/dist/job-queue.d.ts +2 -0
  64. package/dist/job-queue.d.ts.map +1 -1
  65. package/dist/job-queue.js +29 -2
  66. package/dist/job-queue.js.map +1 -1
  67. package/dist/media.d.ts +3 -3
  68. package/dist/media.d.ts.map +1 -1
  69. package/dist/media.js +6 -5
  70. package/dist/media.js.map +1 -1
  71. package/dist/merge-policy.d.ts +83 -0
  72. package/dist/merge-policy.d.ts.map +1 -0
  73. package/dist/merge-policy.js +203 -0
  74. package/dist/merge-policy.js.map +1 -0
  75. package/dist/metadata.d.ts.map +1 -1
  76. package/dist/metadata.js +17 -23
  77. package/dist/metadata.js.map +1 -1
  78. package/dist/migration.d.ts +9 -0
  79. package/dist/migration.d.ts.map +1 -0
  80. package/dist/migration.js +564 -0
  81. package/dist/migration.js.map +1 -0
  82. package/dist/mvp-contract-fixtures.d.ts +244 -0
  83. package/dist/mvp-contract-fixtures.d.ts.map +1 -0
  84. package/dist/mvp-contract-fixtures.js +556 -0
  85. package/dist/mvp-contract-fixtures.js.map +1 -0
  86. package/dist/mvp-contracts.d.ts +761 -0
  87. package/dist/mvp-contracts.d.ts.map +1 -0
  88. package/dist/mvp-contracts.js +59 -0
  89. package/dist/mvp-contracts.js.map +1 -0
  90. package/dist/mvp-time.d.ts +54 -0
  91. package/dist/mvp-time.d.ts.map +1 -0
  92. package/dist/mvp-time.js +148 -0
  93. package/dist/mvp-time.js.map +1 -0
  94. package/dist/notebook/types.d.ts +85 -8
  95. package/dist/notebook/types.d.ts.map +1 -1
  96. package/dist/notebook-grid.d.ts +37 -0
  97. package/dist/notebook-grid.d.ts.map +1 -0
  98. package/dist/notebook-grid.js +160 -0
  99. package/dist/notebook-grid.js.map +1 -0
  100. package/dist/notebook-media-artifact.d.ts +23 -0
  101. package/dist/notebook-media-artifact.d.ts.map +1 -0
  102. package/dist/notebook-media-artifact.js +67 -0
  103. package/dist/notebook-media-artifact.js.map +1 -0
  104. package/dist/notebook-mentions.d.ts +20 -0
  105. package/dist/notebook-mentions.d.ts.map +1 -0
  106. package/dist/notebook-mentions.js +53 -0
  107. package/dist/notebook-mentions.js.map +1 -0
  108. package/dist/order-keys.d.ts +22 -0
  109. package/dist/order-keys.d.ts.map +1 -0
  110. package/dist/order-keys.js +262 -0
  111. package/dist/order-keys.js.map +1 -0
  112. package/dist/runtime-services.js +8 -11
  113. package/dist/runtime-services.js.map +1 -1
  114. package/dist/schema.d.ts +8 -5
  115. package/dist/schema.d.ts.map +1 -1
  116. package/dist/schema.js +624 -141
  117. package/dist/schema.js.map +1 -1
  118. package/dist/search-benchmark.d.ts +4 -0
  119. package/dist/search-benchmark.d.ts.map +1 -0
  120. package/dist/search-benchmark.js +144 -0
  121. package/dist/search-benchmark.js.map +1 -0
  122. package/dist/sequences.d.ts +20 -0
  123. package/dist/sequences.d.ts.map +1 -0
  124. package/dist/sequences.js +825 -0
  125. package/dist/sequences.js.map +1 -0
  126. package/dist/similarity.js +10 -10
  127. package/dist/similarity.js.map +1 -1
  128. package/dist/status.js +8 -10
  129. package/dist/status.js.map +1 -1
  130. package/dist/storage.d.ts +3 -1
  131. package/dist/storage.d.ts.map +1 -1
  132. package/dist/storage.js +388 -7
  133. package/dist/storage.js.map +1 -1
  134. package/dist/store.d.ts +64 -3
  135. package/dist/store.d.ts.map +1 -1
  136. package/dist/store.js +354 -68
  137. package/dist/store.js.map +1 -1
  138. package/dist/streams.d.ts +10 -0
  139. package/dist/streams.d.ts.map +1 -0
  140. package/dist/streams.js +183 -0
  141. package/dist/streams.js.map +1 -0
  142. package/dist/temporal-models.d.ts +48 -0
  143. package/dist/temporal-models.d.ts.map +1 -0
  144. package/dist/temporal-models.js +278 -0
  145. package/dist/temporal-models.js.map +1 -0
  146. package/dist/temporal-search.d.ts +29 -0
  147. package/dist/temporal-search.d.ts.map +1 -0
  148. package/dist/temporal-search.js +1551 -0
  149. package/dist/temporal-search.js.map +1 -0
  150. package/dist/transcripts.d.ts +16 -0
  151. package/dist/transcripts.d.ts.map +1 -0
  152. package/dist/transcripts.js +519 -0
  153. package/dist/transcripts.js.map +1 -0
  154. package/docs/engine-layout.md +345 -110
  155. package/docs/mvp-prd.md +918 -0
  156. package/fixtures/media/vancat.mp4 +0 -0
  157. package/fixtures/media/vancat_profile.jpg +0 -0
  158. package/fixtures/v5/contract-fixtures.json +1532 -0
  159. package/package.json +42 -5
  160. package/dist/history-types.d.ts +0 -74
  161. package/dist/history-types.d.ts.map +0 -1
  162. package/dist/history-types.js +0 -2
  163. package/dist/history-types.js.map +0 -1
  164. package/dist/resolver.d.ts +0 -15
  165. package/dist/resolver.d.ts.map +0 -1
  166. package/dist/resolver.js +0 -81
  167. package/dist/resolver.js.map +0 -1
  168. package/dist/timeline.d.ts +0 -9
  169. package/dist/timeline.d.ts.map +0 -1
  170. package/dist/timeline.js +0 -236
  171. package/dist/timeline.js.map +0 -1
@@ -0,0 +1,203 @@
1
+ import { EngineFault } from "./store.js";
2
+ const CONSTRAINT_VIOLATION_REFUSAL = /working set with constraint violations/;
3
+ // Policy scans are table-tolerant so the same code runs against a full
4
+ // engine catalog and against purpose-built merge databases that carry only
5
+ // the semantic tables their scenario needs (see ve-wsu).
6
+ function tableExists(db, table) {
7
+ return (db
8
+ .prepare("SELECT 1 AS present FROM sqlite_master WHERE type='table' AND name=?")
9
+ .get(table) !== undefined);
10
+ }
11
+ function schemaVersionAt(db, ref) {
12
+ const row = db
13
+ .prepare("SELECT version FROM dolt_at_engine_schema(?) WHERE singleton=1")
14
+ .get(ref);
15
+ if (!row) {
16
+ throw new EngineFault({
17
+ code: "SCHEMA_INCOMPATIBLE",
18
+ message: `Ref ${ref} has no engine_schema version row`,
19
+ });
20
+ }
21
+ return row.version;
22
+ }
23
+ /** Merge precondition: both sides must carry the same schema version. */
24
+ export function assertSameSchemaVersion(db, oursRef, theirsRef) {
25
+ const ours = schemaVersionAt(db, oursRef);
26
+ const theirs = schemaVersionAt(db, theirsRef);
27
+ if (ours !== theirs) {
28
+ throw new EngineFault({
29
+ code: "SCHEMA_INCOMPATIBLE",
30
+ message: `Merge refused: schema version ${theirs} on ${theirsRef} does not ` +
31
+ `match version ${ours} on ${oursRef}`,
32
+ details: { oursRef, theirsRef, oursVersion: ours, theirsVersion: theirs },
33
+ });
34
+ }
35
+ }
36
+ /**
37
+ * Rewrites merged duplicate singleton flags to a single deterministic
38
+ * winner per group. Returns the number of demoted rows.
39
+ */
40
+ export function reconcileSingletonFlags(db) {
41
+ let transcripts = 0;
42
+ if (tableExists(db, "transcripts")) {
43
+ const transcriptGroups = db
44
+ .prepare(`SELECT artifact_id, stream_id, object_hash
45
+ FROM transcripts
46
+ WHERE state='current'
47
+ GROUP BY artifact_id, stream_id, object_hash
48
+ HAVING COUNT(*) > 1`)
49
+ .all();
50
+ const demoteTranscripts = db.prepare(`UPDATE transcripts SET state='derived'
51
+ WHERE state='current'
52
+ AND artifact_id=? AND stream_id=? AND object_hash=?
53
+ AND transcript_id NOT IN (
54
+ SELECT transcript_id FROM transcripts
55
+ WHERE state='current'
56
+ AND artifact_id=? AND stream_id=? AND object_hash=?
57
+ ORDER BY created_at DESC, transcript_id ASC
58
+ LIMIT 1
59
+ )`);
60
+ for (const group of transcriptGroups) {
61
+ transcripts += demoteTranscripts.run(group.artifact_id, group.stream_id, group.object_hash, group.artifact_id, group.stream_id, group.object_hash).changes;
62
+ }
63
+ }
64
+ let sequences = 0;
65
+ if (tableExists(db, "sequences")) {
66
+ const sequenceGroups = db
67
+ .prepare(`SELECT book_id
68
+ FROM sequences
69
+ WHERE is_primary=1
70
+ GROUP BY book_id
71
+ HAVING COUNT(*) > 1`)
72
+ .all();
73
+ const demoteSequences = db.prepare(`UPDATE sequences SET is_primary=0
74
+ WHERE is_primary=1
75
+ AND book_id=?
76
+ AND sequence_id NOT IN (
77
+ SELECT sequence_id FROM sequences
78
+ WHERE is_primary=1 AND book_id=?
79
+ ORDER BY created_at ASC, sequence_id ASC
80
+ LIMIT 1
81
+ )`);
82
+ for (const group of sequenceGroups) {
83
+ sequences += demoteSequences.run(group.book_id, group.book_id).changes;
84
+ }
85
+ }
86
+ return { transcripts, sequences };
87
+ }
88
+ /**
89
+ * Post-merge verification: referential integrity plus the invariants the
90
+ * merge policy owns (single current transcript per source, single primary
91
+ * sequence per book). Throws MERGE_VIOLATION on any breach.
92
+ */
93
+ export function verifyConstraintHealth(db) {
94
+ const foreignKeyRows = db.prepare("PRAGMA foreign_key_check").all();
95
+ const multipleCurrent = tableExists(db, "transcripts")
96
+ ? db
97
+ .prepare(`SELECT artifact_id, stream_id, object_hash, COUNT(*) AS currents
98
+ FROM transcripts
99
+ WHERE state='current'
100
+ GROUP BY artifact_id, stream_id, object_hash
101
+ HAVING currents > 1`)
102
+ .all()
103
+ : [];
104
+ const multiplePrimary = tableExists(db, "sequences")
105
+ ? db
106
+ .prepare(`SELECT book_id, COUNT(*) AS primaries
107
+ FROM sequences
108
+ WHERE is_primary=1
109
+ GROUP BY book_id
110
+ HAVING primaries > 1`)
111
+ .all()
112
+ : [];
113
+ if (foreignKeyRows.length > 0 ||
114
+ multipleCurrent.length > 0 ||
115
+ multiplePrimary.length > 0) {
116
+ throw new EngineFault({
117
+ code: "MERGE_VIOLATION",
118
+ message: "Merged working set violates semantic constraints",
119
+ details: {
120
+ foreignKeyViolations: foreignKeyRows,
121
+ multipleCurrentTranscripts: multipleCurrent,
122
+ multiplePrimarySequences: multiplePrimary,
123
+ },
124
+ });
125
+ }
126
+ }
127
+ function mapMergeError(branch, error) {
128
+ const message = error instanceof Error ? error.message : String(error);
129
+ if (CONSTRAINT_VIOLATION_REFUSAL.test(message)) {
130
+ // doltlite's merge-time verification refused and rolled back, so both
131
+ // refs are still intact; surface the refusal as a typed violation.
132
+ throw new EngineFault({
133
+ code: "MERGE_VIOLATION",
134
+ message: `Merge of ${branch} refused by Dolt constraint verification: ` +
135
+ "the merged working set would violate UNIQUE, CHECK, or " +
136
+ "foreign-key constraints (for example a RESTRICT reference to a " +
137
+ "row deleted on the other side)",
138
+ details: { branch, cause: message },
139
+ });
140
+ }
141
+ if (/merge conflict/i.test(message)) {
142
+ throw new EngineFault({
143
+ code: "MERGE_CONFLICT",
144
+ message: `Merge of ${branch} has row-level conflicts: ${message}`,
145
+ details: { branch, cause: message },
146
+ });
147
+ }
148
+ throw error;
149
+ }
150
+ /**
151
+ * Dolt-commits the singleton-flag reconcile, when it changed anything, so
152
+ * the working set is clean for the next merge. Kept separate from the
153
+ * merge commit because `dolt_merge()` finalizes its own commit before the
154
+ * merged working set can be inspected.
155
+ */
156
+ function commitReconcile(db, reconciled) {
157
+ const tables = [];
158
+ if (reconciled.transcripts > 0)
159
+ tables.push("transcripts");
160
+ if (reconciled.sequences > 0)
161
+ tables.push("sequences");
162
+ if (tables.length === 0)
163
+ return;
164
+ for (const table of tables) {
165
+ db.prepare("SELECT dolt_add(?) AS result").get(table);
166
+ }
167
+ db.prepare("SELECT dolt_commit('-m', ?) AS hash").get(`Reconcile merged singleton flags: ${tables.join(", ")}`);
168
+ }
169
+ /**
170
+ * Merges `branch` into HEAD under the engine merge policy: same-schema
171
+ * precondition, Dolt constraint verification with typed errors,
172
+ * deterministic singleton-flag reconcile, and a post-merge constraint
173
+ * health check.
174
+ *
175
+ * NOTE (ve-wsu): doltlite corrupts full engine catalogs on checkout and
176
+ * clone, misfires its "uncommitted changes" merge guard on the full
177
+ * 28-table working set, and — when the guard is bypassed — fails true
178
+ * merges of engine history in schema loading. The dedicated merge-back
179
+ * flow in src/fork.ts therefore applies this policy's primitives around a
180
+ * projection-level three-way merge instead of calling this function;
181
+ * `mergeWithPolicy` remains the drop-in mechanism once the upstream bugs
182
+ * are fixed, and it is exercised against the real semantic schema in
183
+ * tests/merge-policy.test.ts.
184
+ */
185
+ export function mergeWithPolicy(db, branch) {
186
+ assertSameSchemaVersion(db, "HEAD", branch);
187
+ let result;
188
+ try {
189
+ result = db.doltMerge(branch);
190
+ }
191
+ catch (error) {
192
+ mapMergeError(branch, error);
193
+ }
194
+ const reconciled = reconcileSingletonFlags(db);
195
+ verifyConstraintHealth(db);
196
+ commitReconcile(db, reconciled);
197
+ return {
198
+ fastForward: result.fast_forward === 1,
199
+ reconciledTranscripts: reconciled.transcripts,
200
+ reconciledSequences: reconciled.sequences,
201
+ };
202
+ }
203
+ //# sourceMappingURL=merge-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-policy.js","sourceRoot":"","sources":["../src/merge-policy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,aAAa,EAEd,MAAM,cAAc,CAAC;AAQtB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa;;0BAItC,MAAM,OACX,MAAM,SACJ,OAAO,KACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;eAEhC,CAAC,YACI,MAAM,OACX,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;yBAEjB,CAAC,YACN,MAAM,OACX,MAAM,YACD,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;2BAGtB,MAAM,OACX,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;;qBAKjC,MAAM,SACJ,OAAO,KACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;eAEhC,CAAC,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;sBAEzC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;;0BAKhD,MAAM,SACT,MAAM,EAAE,KACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;yBAG3B,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;2BAEjC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;EAItE"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,aAAa,EAEd,MAAM,cAAc,CAAC;AAOtB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa;;0BAItC,MAAM,OACX,MAAM,SACJ,OAAO,KACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;eAEhC,CAAC,YACI,MAAM,OACX,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;yBAEjB,CAAC,YACN,MAAM,OACX,MAAM,YACD,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;2BAGtB,MAAM,OACX,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;;qBAKjC,MAAM,SACJ,OAAO,KACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;eAEhC,CAAC,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;sBAEzC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;;0BAKhD,MAAM,SACT,MAAM,EAAE,KACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;yBAG3B,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;2BAEjC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;EAItE"}
package/dist/metadata.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { ok } from "./engine-types.js";
2
2
  import { resultOf, } from "./context.js";
3
3
  import { canonicalJson, parseJson } from "./store.js";
4
- import { EngineFault } from "./store.js";
5
4
  export function createMetadataApi(context) {
6
5
  return {
7
6
  artifacts: {
@@ -34,10 +33,11 @@ async function deleteArtifactMetadata(context, artifactReference, key) {
34
33
  return false;
35
34
  await context.store.semantic({
36
35
  operation: "delete_artifact_metadata",
36
+ tables: ["artifact_metadata"],
37
37
  artifactId: artifact.artifact_id,
38
38
  details: { key: normalizedKey },
39
39
  writeSet: [`artifact-metadata:${artifact.artifact_id}:${normalizedKey}`],
40
- }, ["artifact_metadata"], () => {
40
+ }, () => {
41
41
  context.store.db
42
42
  .prepare("DELETE FROM artifact_metadata WHERE artifact_id=? AND key=?")
43
43
  .run(artifact.artifact_id, normalizedKey);
@@ -47,7 +47,7 @@ async function deleteArtifactMetadata(context, artifactReference, key) {
47
47
  }
48
48
  async function deleteBookMetadata(context, key) {
49
49
  return resultOf(async () => {
50
- const normalizedKey = bookMetadataKey(key);
50
+ const normalizedKey = metadataKey(key);
51
51
  const exists = context.store.db
52
52
  .prepare("SELECT 1 AS present FROM book_metadata WHERE key=?")
53
53
  .get(normalizedKey);
@@ -55,9 +55,10 @@ async function deleteBookMetadata(context, key) {
55
55
  return false;
56
56
  await context.store.semantic({
57
57
  operation: "delete_book_metadata",
58
+ tables: ["book_metadata"],
58
59
  details: { key: normalizedKey },
59
60
  writeSet: [`book-metadata:${normalizedKey}`],
60
- }, ["book_metadata"], () => {
61
+ }, () => {
61
62
  context.store.db
62
63
  .prepare("DELETE FROM book_metadata WHERE key=?")
63
64
  .run(normalizedKey);
@@ -75,9 +76,10 @@ async function deleteWaveform(context, artifactReference) {
75
76
  return false;
76
77
  await context.store.semantic({
77
78
  operation: "delete_audio_waveform",
79
+ tables: ["audio_waveforms"],
78
80
  artifactId: artifact.artifact_id,
79
81
  writeSet: [`waveform:${artifact.artifact_id}`],
80
- }, ["audio_waveforms"], () => {
82
+ }, () => {
81
83
  context.store.db
82
84
  .prepare("DELETE FROM audio_waveforms WHERE artifact_id=?")
83
85
  .run(artifact.artifact_id);
@@ -91,10 +93,11 @@ async function writeArtifactMetadata(context, artifactReference, key, value) {
91
93
  const normalizedKey = metadataKey(key);
92
94
  const mutation = await context.store.semantic({
93
95
  operation: "write_artifact_metadata",
96
+ tables: ["artifact_metadata"],
94
97
  artifactId: artifact.artifact_id,
95
98
  details: { key: normalizedKey },
96
99
  writeSet: [`artifact-metadata:${artifact.artifact_id}:${normalizedKey}`],
97
- }, ["artifact_metadata"], () => {
100
+ }, () => {
98
101
  context.store.db
99
102
  .prepare(`INSERT INTO artifact_metadata(artifact_id, key, value_json)
100
103
  VALUES (?, ?, ?)
@@ -121,9 +124,8 @@ async function readArtifactMetadataAtRevision(context, artifactReference, key, r
121
124
  return resultOf(async () => {
122
125
  const artifact = context.store.db
123
126
  .prepare(`SELECT artifact_id FROM dolt_at_artifacts(?)
124
- WHERE artifact_id=? OR slug=?
125
- ORDER BY CASE WHEN artifact_id=? THEN 0 ELSE 1 END LIMIT 1`)
126
- .get(revision, artifactReference, artifactReference, artifactReference);
127
+ WHERE artifact_id=? LIMIT 1`)
128
+ .get(revision, artifactReference);
127
129
  if (!artifact) {
128
130
  throw new Error(`Artifact not found: ${artifactReference} at ${revision}`);
129
131
  }
@@ -140,12 +142,13 @@ async function readArtifactMetadataAtRevision(context, artifactReference, key, r
140
142
  }
141
143
  async function writeBookMetadata(context, key, value) {
142
144
  return resultOf(async () => {
143
- const normalizedKey = bookMetadataKey(key);
145
+ const normalizedKey = metadataKey(key);
144
146
  const mutation = await context.store.semantic({
145
147
  operation: "write_book_metadata",
148
+ tables: ["book_metadata"],
146
149
  details: { key: normalizedKey },
147
150
  writeSet: [`book-metadata:${normalizedKey}`],
148
- }, ["book_metadata"], () => {
151
+ }, () => {
149
152
  context.store.db
150
153
  .prepare(`INSERT INTO book_metadata(key, value_json)
151
154
  VALUES (?, ?)
@@ -158,7 +161,7 @@ async function writeBookMetadata(context, key, value) {
158
161
  }
159
162
  async function readBookMetadata(context, key) {
160
163
  return resultOf(async () => {
161
- const normalizedKey = bookMetadataKey(key);
164
+ const normalizedKey = metadataKey(key);
162
165
  const row = context.store.db
163
166
  .prepare("SELECT value_json FROM book_metadata WHERE key=?")
164
167
  .get(normalizedKey);
@@ -175,9 +178,10 @@ async function writeWaveform(context, artifactReference, peaks) {
175
178
  const artifact = context.artifactRow(artifactReference);
176
179
  const mutation = await context.store.semantic({
177
180
  operation: "write_audio_waveform",
181
+ tables: ["audio_waveforms"],
178
182
  artifactId: artifact.artifact_id,
179
183
  writeSet: [`waveform:${artifact.artifact_id}`],
180
- }, ["audio_waveforms"], () => {
184
+ }, () => {
181
185
  context.store.db
182
186
  .prepare(`INSERT INTO audio_waveforms(artifact_id, peaks_json)
183
187
  VALUES (?, ?)
@@ -202,16 +206,6 @@ async function readWaveform(context, artifactReference) {
202
206
  };
203
207
  });
204
208
  }
205
- function bookMetadataKey(input) {
206
- const key = metadataKey(input);
207
- if (key === "timeline") {
208
- throw new EngineFault({
209
- code: "INVALID_INPUT",
210
- message: 'Book metadata key "timeline" is reserved; use engine.timeline instead',
211
- });
212
- }
213
- return key;
214
- }
215
209
  function metadataKey(input) {
216
210
  const key = input.trim();
217
211
  if (!/^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$/.test(key)) {
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { EngineError, Result } from "./engine-types.js";
2
+ import type { V4MigrationDryRun, V4MigrationRequest, V4MigrationResult } from "./mvp-contracts.js";
3
+ export declare function dryRunV4Migration(sourceRoot: string): Result<V4MigrationDryRun, EngineError>;
4
+ export declare function readV4BookIdentity(sourceRoot: string): Result<{
5
+ bookId: string;
6
+ slug: string;
7
+ }, EngineError>;
8
+ export declare function migrateV4(request: V4MigrationRequest): Promise<Result<V4MigrationDryRun | V4MigrationResult, EngineError>>;
9
+ //# sourceMappingURL=migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../src/migration.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACP,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAEV,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAgD5B,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CA2DxC;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,WAAW,CAAC,CAuBvD;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC,CA0KrE"}