videobook-engine 4.2.0 → 5.3.2

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 (244) hide show
  1. package/README.md +84 -39
  2. package/dist/artifacts.d.ts +5 -10
  3. package/dist/artifacts.d.ts.map +1 -1
  4. package/dist/artifacts.js +79 -142
  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 +16 -9
  9. package/dist/books.js.map +1 -1
  10. package/dist/cas.d.ts +2 -1
  11. package/dist/cas.d.ts.map +1 -1
  12. package/dist/cas.js +33 -4
  13. package/dist/cas.js.map +1 -1
  14. package/dist/catalog-gc-state.d.ts +4 -0
  15. package/dist/catalog-gc-state.d.ts.map +1 -0
  16. package/dist/catalog-gc-state.js +49 -0
  17. package/dist/catalog-gc-state.js.map +1 -0
  18. package/dist/catalog-metadata.d.ts +2 -2
  19. package/dist/catalog-metadata.js +3 -3
  20. package/dist/catalog-metadata.js.map +1 -1
  21. package/dist/context.d.ts +5 -5
  22. package/dist/context.d.ts.map +1 -1
  23. package/dist/context.js +17 -49
  24. package/dist/context.js.map +1 -1
  25. package/dist/domain.d.ts +35 -2
  26. package/dist/domain.d.ts.map +1 -1
  27. package/dist/domain.js +131 -161
  28. package/dist/domain.js.map +1 -1
  29. package/dist/edits.js +2 -2
  30. package/dist/edits.js.map +1 -1
  31. package/dist/engine-types.d.ts +159 -39
  32. package/dist/engine-types.d.ts.map +1 -1
  33. package/dist/engine-types.js +2 -1
  34. package/dist/engine-types.js.map +1 -1
  35. package/dist/engine.d.ts +30 -20
  36. package/dist/engine.d.ts.map +1 -1
  37. package/dist/engine.js +46 -4
  38. package/dist/engine.js.map +1 -1
  39. package/dist/files.d.ts +10 -0
  40. package/dist/files.d.ts.map +1 -1
  41. package/dist/files.js +49 -2
  42. package/dist/files.js.map +1 -1
  43. package/dist/fork.d.ts +14 -30
  44. package/dist/fork.d.ts.map +1 -1
  45. package/dist/fork.js +18 -27
  46. package/dist/fork.js.map +1 -1
  47. package/dist/generations.d.ts +9 -0
  48. package/dist/generations.d.ts.map +1 -0
  49. package/dist/generations.js +175 -0
  50. package/dist/generations.js.map +1 -0
  51. package/dist/history.d.ts +2 -1
  52. package/dist/history.d.ts.map +1 -1
  53. package/dist/history.js +30 -57
  54. package/dist/history.js.map +1 -1
  55. package/dist/index.d.ts +8 -6
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +5 -5
  58. package/dist/index.js.map +1 -1
  59. package/dist/inline-temporal-models.d.ts +43 -0
  60. package/dist/inline-temporal-models.d.ts.map +1 -0
  61. package/dist/inline-temporal-models.js +236 -0
  62. package/dist/inline-temporal-models.js.map +1 -0
  63. package/dist/isolated-models.d.ts +8 -0
  64. package/dist/isolated-models.d.ts.map +1 -0
  65. package/dist/isolated-models.js +25 -0
  66. package/dist/isolated-models.js.map +1 -0
  67. package/dist/job-queue.d.ts +1 -1
  68. package/dist/job-queue.d.ts.map +1 -1
  69. package/dist/job-queue.js +20 -6
  70. package/dist/job-queue.js.map +1 -1
  71. package/dist/media-image.d.ts +8 -0
  72. package/dist/media-image.d.ts.map +1 -0
  73. package/dist/media-image.js +41 -0
  74. package/dist/media-image.js.map +1 -0
  75. package/dist/media-process.d.ts +13 -0
  76. package/dist/media-process.d.ts.map +1 -0
  77. package/dist/media-process.js +89 -0
  78. package/dist/media-process.js.map +1 -0
  79. package/dist/media.d.ts +3 -3
  80. package/dist/media.d.ts.map +1 -1
  81. package/dist/media.js +5 -5
  82. package/dist/media.js.map +1 -1
  83. package/dist/merge-policy.d.ts +16 -36
  84. package/dist/merge-policy.d.ts.map +1 -1
  85. package/dist/merge-policy.js +13 -125
  86. package/dist/merge-policy.js.map +1 -1
  87. package/dist/metadata.d.ts +1 -0
  88. package/dist/metadata.d.ts.map +1 -1
  89. package/dist/metadata.js +13 -3
  90. package/dist/metadata.js.map +1 -1
  91. package/dist/migrate-grid-text.d.ts +17 -0
  92. package/dist/migrate-grid-text.d.ts.map +1 -0
  93. package/dist/migrate-grid-text.js +117 -0
  94. package/dist/migrate-grid-text.js.map +1 -0
  95. package/dist/migrate-grid-v22.d.ts +12 -0
  96. package/dist/migrate-grid-v22.d.ts.map +1 -0
  97. package/dist/migrate-grid-v22.js +166 -0
  98. package/dist/migrate-grid-v22.js.map +1 -0
  99. package/dist/migrate-grid-v23.d.ts +10 -0
  100. package/dist/migrate-grid-v23.d.ts.map +1 -0
  101. package/dist/migrate-grid-v23.js +31 -0
  102. package/dist/migrate-grid-v23.js.map +1 -0
  103. package/dist/migration-notebooks.d.ts +25 -0
  104. package/dist/migration-notebooks.d.ts.map +1 -0
  105. package/dist/migration-notebooks.js +131 -0
  106. package/dist/migration-notebooks.js.map +1 -0
  107. package/dist/migration-source.d.ts +6 -0
  108. package/dist/migration-source.d.ts.map +1 -0
  109. package/dist/migration-source.js +37 -0
  110. package/dist/migration-source.js.map +1 -0
  111. package/dist/migration-timeline.d.ts +36 -0
  112. package/dist/migration-timeline.d.ts.map +1 -0
  113. package/dist/migration-timeline.js +187 -0
  114. package/dist/migration-timeline.js.map +1 -0
  115. package/dist/migration-validation.d.ts +12 -0
  116. package/dist/migration-validation.d.ts.map +1 -0
  117. package/dist/migration-validation.js +68 -0
  118. package/dist/migration-validation.js.map +1 -0
  119. package/dist/migration.d.ts.map +1 -1
  120. package/dist/migration.js +220 -119
  121. package/dist/migration.js.map +1 -1
  122. package/dist/model-cache-paths.d.ts +2 -0
  123. package/dist/model-cache-paths.d.ts.map +1 -0
  124. package/dist/model-cache-paths.js +5 -0
  125. package/dist/model-cache-paths.js.map +1 -0
  126. package/dist/model-checksums.json +338 -0
  127. package/dist/model-file-resolver.d.ts +30 -0
  128. package/dist/model-file-resolver.d.ts.map +1 -0
  129. package/dist/model-file-resolver.js +304 -0
  130. package/dist/model-file-resolver.js.map +1 -0
  131. package/dist/model-identity.d.ts +13 -0
  132. package/dist/model-identity.d.ts.map +1 -0
  133. package/dist/model-identity.js +44 -0
  134. package/dist/model-identity.js.map +1 -0
  135. package/dist/model-worker-errors.d.ts +3 -0
  136. package/dist/model-worker-errors.d.ts.map +1 -0
  137. package/dist/model-worker-errors.js +12 -0
  138. package/dist/model-worker-errors.js.map +1 -0
  139. package/dist/model-worker-pool.d.ts +32 -0
  140. package/dist/model-worker-pool.d.ts.map +1 -0
  141. package/dist/model-worker-pool.js +269 -0
  142. package/dist/model-worker-pool.js.map +1 -0
  143. package/dist/model-worker-protocol.d.ts +42 -0
  144. package/dist/model-worker-protocol.d.ts.map +1 -0
  145. package/dist/model-worker-protocol.js +2 -0
  146. package/dist/model-worker-protocol.js.map +1 -0
  147. package/dist/model-worker.d.ts +2 -0
  148. package/dist/model-worker.d.ts.map +1 -0
  149. package/dist/model-worker.js +91 -0
  150. package/dist/model-worker.js.map +1 -0
  151. package/dist/mvp-contract-fixtures.js +1 -1
  152. package/dist/mvp-contract-fixtures.js.map +1 -1
  153. package/dist/mvp-contracts.d.ts +32 -8
  154. package/dist/mvp-contracts.d.ts.map +1 -1
  155. package/dist/mvp-contracts.js +1 -1
  156. package/dist/mvp-contracts.js.map +1 -1
  157. package/dist/notebook/types.d.ts +1 -29
  158. package/dist/notebook/types.d.ts.map +1 -1
  159. package/dist/notebook-grid.d.ts +46 -0
  160. package/dist/notebook-grid.d.ts.map +1 -0
  161. package/dist/notebook-grid.js +187 -0
  162. package/dist/notebook-grid.js.map +1 -0
  163. package/dist/notebook-media-artifact.d.ts +23 -0
  164. package/dist/notebook-media-artifact.d.ts.map +1 -0
  165. package/dist/notebook-media-artifact.js +67 -0
  166. package/dist/notebook-media-artifact.js.map +1 -0
  167. package/dist/notebook-mentions.d.ts +20 -0
  168. package/dist/notebook-mentions.d.ts.map +1 -0
  169. package/dist/notebook-mentions.js +54 -0
  170. package/dist/notebook-mentions.js.map +1 -0
  171. package/dist/runtime-services.js +4 -9
  172. package/dist/runtime-services.js.map +1 -1
  173. package/dist/schema.d.ts +4 -19
  174. package/dist/schema.d.ts.map +1 -1
  175. package/dist/schema.js +66 -92
  176. package/dist/schema.js.map +1 -1
  177. package/dist/search-provider-access.d.ts +11 -0
  178. package/dist/search-provider-access.d.ts.map +1 -0
  179. package/dist/search-provider-access.js +42 -0
  180. package/dist/search-provider-access.js.map +1 -0
  181. package/dist/similarity.d.ts +60 -1
  182. package/dist/similarity.d.ts.map +1 -1
  183. package/dist/similarity.js +174 -154
  184. package/dist/similarity.js.map +1 -1
  185. package/dist/status.js +8 -10
  186. package/dist/status.js.map +1 -1
  187. package/dist/store.d.ts +16 -2
  188. package/dist/store.d.ts.map +1 -1
  189. package/dist/store.js +171 -17
  190. package/dist/store.js.map +1 -1
  191. package/dist/temporal-index-cache.d.ts +13 -0
  192. package/dist/temporal-index-cache.d.ts.map +1 -0
  193. package/dist/temporal-index-cache.js +59 -0
  194. package/dist/temporal-index-cache.js.map +1 -0
  195. package/dist/temporal-model-manifests.d.ts +17 -0
  196. package/dist/temporal-model-manifests.d.ts.map +1 -0
  197. package/dist/temporal-model-manifests.js +33 -0
  198. package/dist/temporal-model-manifests.js.map +1 -0
  199. package/dist/temporal-models.d.ts +20 -35
  200. package/dist/temporal-models.d.ts.map +1 -1
  201. package/dist/temporal-models.js +23 -257
  202. package/dist/temporal-models.js.map +1 -1
  203. package/dist/temporal-search.d.ts +6 -3
  204. package/dist/temporal-search.d.ts.map +1 -1
  205. package/dist/temporal-search.js +438 -122
  206. package/dist/temporal-search.js.map +1 -1
  207. package/dist/temporal-vector-index.d.ts +46 -0
  208. package/dist/temporal-vector-index.d.ts.map +1 -0
  209. package/dist/temporal-vector-index.js +220 -0
  210. package/dist/temporal-vector-index.js.map +1 -0
  211. package/dist/third-party/@huggingface-jinja.LICENSE +21 -0
  212. package/dist/third-party/@huggingface-tokenizers.LICENSE +201 -0
  213. package/dist/third-party/@huggingface-transformers.LICENSE +202 -0
  214. package/dist/third-party/onnxruntime-common.LICENSE +21 -0
  215. package/dist/third-party/versions.json +23 -0
  216. package/dist/transformers-runtime.d.ts +2 -0
  217. package/dist/transformers-runtime.d.ts.map +1 -0
  218. package/dist/transformers-runtime.js +33014 -0
  219. package/dist/transformers-runtime.js.LEGAL.txt +12 -0
  220. package/dist/transformers-runtime.js.map +7 -0
  221. package/docs/doltlite-staging.md +69 -0
  222. package/docs/edit-performance.md +83 -0
  223. package/docs/engine-layout.md +56 -50
  224. package/docs/media-limits.md +57 -0
  225. package/docs/model-download-policy.md +15 -0
  226. package/docs/model-integrity.md +72 -0
  227. package/docs/model-isolation.md +72 -0
  228. package/docs/model-revisions.md +54 -0
  229. package/docs/mvp-prd.md +2 -2
  230. package/docs/release-evidence.md +300 -0
  231. package/docs/search-provider-consent.md +67 -0
  232. package/docs/semantic-durability.md +55 -0
  233. package/docs/temporal-search-performance.md +260 -0
  234. package/docs/v4-migration.md +83 -0
  235. package/fixtures/v5/contract-fixtures.json +4 -4
  236. package/package.json +31 -13
  237. package/dist/artifact-names.d.ts +0 -6
  238. package/dist/artifact-names.d.ts.map +0 -1
  239. package/dist/artifact-names.js +0 -56
  240. package/dist/artifact-names.js.map +0 -1
  241. package/dist/resolver.d.ts +0 -15
  242. package/dist/resolver.d.ts.map +0 -1
  243. package/dist/resolver.js +0 -81
  244. package/dist/resolver.js.map +0 -1
package/README.md CHANGED
@@ -17,36 +17,52 @@ import { createEngine } from "videobook-engine";
17
17
 
18
18
  const engine = createEngine({
19
19
  rootDir: ".videobook",
20
- initialBookSlug: "my-story",
20
+ initialBookName: "My Story",
21
21
  });
22
22
 
23
23
  const book = engine.book.get();
24
- // { bookId: "…", slug: "my-story", createdAt: … }
24
+ // { bookId: "…", name: "My Story", createdAt: … }
25
25
 
26
26
  const script = await engine.artifacts.create({
27
27
  kind: "script",
28
- name: "opening draft",
28
+ label: "opening draft",
29
29
  });
30
30
  if (!script.ok) throw new Error(script.error.message);
31
31
 
32
- await engine.files.write(
32
+ const written = await engine.files.write(
33
33
  script.value.artifactId,
34
34
  "original.md",
35
35
  "# Opening\n\nA small cat waits by the window.",
36
36
  );
37
+ if (!written.ok) throw new Error(written.error.message);
37
38
 
38
39
  const history = engine.history.artifact(script.value.artifactId);
39
40
  engine.close();
40
41
  ```
41
42
 
42
- `initialBookSlug` is required only when `videobook.db` does not exist yet. On
43
+ `initialBookName` is required only when `data/videobook.db` does not exist yet. On
43
44
  later opens it is optional and never changes the stored book. Rename the book
44
45
  explicitly with `await engine.book.rename("new-name")`.
45
46
 
47
+ `npm run test:package` packs the engine, installs it in a clean temporary
48
+ project, executes this quick start from the installed README, and verifies
49
+ that reopening the catalog preserves the book and artifact.
50
+
51
+ The package bundles its pinned Transformers.js runtime and uses one external
52
+ Sharp 0.35.4 image decoder with native ONNX dependencies. This avoids shipping
53
+ Transformers' older Sharp dependency or requiring consumer overrides. Build
54
+ provenance and third-party licenses are included under `dist/third-party/`.
55
+ The package smoke checks both resolution paths, `npm ls sharp`, image
56
+ decoding, duplicate native-library warnings, and the runtime dependency audit.
57
+ Run `VIDEOBOOK_RUN_MODEL_E2E=1 npm run test:package` with the pinned models
58
+ cached locally to verify packaged CLIP and CLAP inference with downloads
59
+ disabled. ONNX dependencies are external imports in the generated runtime,
60
+ so the source-only dependency lint excludes them from unused-dependency checks.
61
+
46
62
  ## MVP contracts
47
63
 
48
64
  Contract version 1, introduced with schema v5 and carried by the current
49
- schema v18 catalog, defines the media-time, stream, transcript, sequence,
65
+ schema v24 catalog, defines the media-time, stream, transcript, sequence,
50
66
  temporal-search, edit-intent, job, and copy-forward migration boundary:
51
67
 
52
68
  ```ts
@@ -68,6 +84,9 @@ schema-v4 timeline compiles into the sequences model at import; the schema-v4
68
84
  similarity API remains a compatibility surface until it compiles into
69
85
  temporal-search semantics.
70
86
 
87
+ See [schema-v4 migration](docs/v4-migration.md) for dry-run checks, media
88
+ conversion, cancellation, retry, and application switching requirements.
89
+
71
90
  ## Storage model
72
91
 
73
92
  Each engine root owns exactly one book:
@@ -84,22 +103,23 @@ rootDir/
84
103
  Semantic tables are committed as Dolt revisions. Runtime tables (jobs, leases,
85
104
  views, caches, settings, and logs) share the same database, match the
86
105
  versioned `runtime_%` ignore policy, and are never staged. Semantic surrogate
87
- identities are UUIDv7 values. Artifact slugs are human-facing names and can be
106
+ identities are UUIDv7 values. Artifact labels are free-text display names and can be
88
107
  reused after hard deletion; immutable CAS objects remain available to history.
89
108
 
90
- The current catalog format is schema version 18. It intentionally rejects
91
- older catalogs rather than migrating them; create a fresh engine root.
109
+ The current catalog format is schema version 24. Valid schema version 22 and 23
110
+ catalogs upgrade in place. Catalogs with cells outside the fixed 64-by-8
111
+ notebook grid are rejected, and other catalog versions require an explicit migration
112
+ or a fresh engine root.
92
113
 
93
- The 34 versioned semantic tables are `engine_schema`, `book`, `artifacts`,
114
+ The 33 versioned semantic tables are `engine_schema`, `book`, `artifacts`,
94
115
  `objects`, `artifact_files`, `artifact_streams`, `book_metadata`,
95
116
  `artifact_metadata`, `entities`, `notebooks`, `notebook_fields`, `cells`,
96
117
  `notebook_cell_executions`, `notebook_generation_plans`,
97
- `notebook_run_plans`, `notebook_transcript_edits`,
98
- `notebook_transcript_attachments`, `edges`, `runs`, `cell_references`,
118
+ `notebook_run_plans`, `edges`, `runs`, `cell_references`,
99
119
  `pinned_search_results`, `transcripts`, `transcript_segments`,
100
120
  `transcript_words`, `sequences`, `sequence_tracks`, `sequence_clips`,
101
121
  `clip_links`, `clip_transforms`, `transitions`, `caption_cues`,
102
- `audio_waveforms`, `prompt_entries`, and `messages`. Dolt's versioned
122
+ `audio_waveforms`, `prompt_entries`, `messages`, and `generations`. Dolt's versioned
103
123
  `dolt_ignore` configuration table carries the local-table policy. Provenance
104
124
  is the commit log itself: every semantic commit carries its operation,
105
125
  parameters, and write set in a structured commit message, authored by the
@@ -120,30 +140,17 @@ See [the complete engine layout](docs/engine-layout.md) for every schema
120
140
  column, relationship, index, runtime/CAS structure, current editing contract,
121
141
  and the additional normalized structures a full non-linear editor will need.
122
142
 
123
- ## Artifacts and slugs
124
-
125
- Artifact slugs are canonical and kind-prefixed. Supplying a `name` derives a
126
- slug; supplying a `slug` validates it. Repeated name-based creation adds a
127
- numeric suffix when needed.
143
+ ## Artifacts, labels, and identity
128
144
 
129
- | Kind | Prefix | Example |
130
- | --- | --- | --- |
131
- | `video` | `vid-` | `vid-opening-shot` |
132
- | `image` | `img-` | `img-cat-portrait` |
133
- | `audio` | `aud-` | `aud-ambient-bed` |
134
- | `script` | `script-` | `script-opening-draft` |
135
- | `character` | `char-` | `char-protagonist` |
136
- | `prompt` | `prompt-` | `prompt-sunrise` |
137
- | `scene` | `scene-` | `scene-rooftop` |
138
- | `final` | `final` | `final` |
139
-
140
- There is no `notebook` artifact kind or `book-` artifact prefix. Notebook
141
- graphs remain available separately through `engine.notebooks`.
145
+ Artifacts are identified by `artifact_id` (UUIDv7) — the only reference
146
+ handle. An optional free-text `label` exists purely for display: it is
147
+ non-unique, never parsed, and never used to look anything up. Media content
148
+ is addressed by `object_hash` in the CAS.
142
149
 
143
150
  ## API surface
144
151
 
145
- - `engine.book` — `get()` and `rename(slug)` for the singleton book
146
- - `engine.artifacts` — create, list, get, rename, delete, and resolve slugs
152
+ - `engine.book` — `get()` and `rename(name)` for the singleton book
153
+ - `engine.artifacts` — create, list, get, rename (relabel), and delete
147
154
  - `engine.files` and `engine.workspaces` — immutable object-backed files and
148
155
  disposable materialization
149
156
  - `engine.metadata` — book metadata, artifact metadata, and audio waveforms
@@ -164,6 +171,11 @@ project ID.
164
171
 
165
172
  ### Full API benchmark
166
173
 
174
+ For the separate 100,000-moment temporal search workload, run
175
+ `npm run benchmark:temporal -- --output /tmp/temporal-search.json --assert`.
176
+ See [the measurement method and initial baseline](docs/temporal-search-performance.md)
177
+ for workload limits, fixture reuse, and the outstanding latency gate.
178
+
167
179
  The deterministic benchmark exercises every top-level `Engine` API group,
168
180
  reports latency distributions per operation, and identifies the smallest set
169
181
  of operations responsible for at least 80% of measured time:
@@ -191,11 +203,7 @@ unambiguous prefix) to inspect or restore state:
191
203
  ```ts
192
204
  const revisions = engine.history.revisions();
193
205
 
194
- await engine.history.restoreArtifact(
195
- artifactId,
196
- revisions[0]!.hash,
197
- "script-restored-draft", // optional replacement slug
198
- );
206
+ await engine.history.restoreArtifact(artifactId, revisions[0]!.hash);
199
207
 
200
208
  await engine.history.restore(revisions[0]!.hash);
201
209
  ```
@@ -222,13 +230,42 @@ parallel audit graph.
222
230
 
223
231
  ## Similarity
224
232
 
233
+ Custom remote similarity models require a full commit SHA in `modelRevision`; their vectors are isolated by repository and revision. Built-in defaults keep their existing pins. Older compatibility image/video vector caches require reindexing because they cannot distinguish custom models from the default; temporal indexes retain their identities. See [model revisions](docs/model-revisions.md) for custom configuration, offline reuse, and local directories.
234
+
235
+ Injected providers must explicitly declare network capabilities; remote access requires application-owned consent. See [search provider consent](docs/search-provider-consent.md) for registration, revocation, and the migration for existing custom providers.
236
+
225
237
  Similarity is opt-in. Provide a media embedding provider or use the built-in
226
238
  local CLIP configuration. Text similarity is enabled separately.
227
239
 
240
+ Local model loaders, including temporal CLIP/CLAP providers, use cached files by default. Downloads require `allowModelDownload: true` during an explicit preparation step. Missing cached models return `OFFLINE`; after preparing the models, reopen providers with downloads disabled or omitted for offline use. Built-in model revisions remain pinned during file discovery and loading.
241
+
242
+ Model files are checksum-verified before inference, including cached files and external ONNX weights. Corrupted files fail with `MODEL_UNAVAILABLE`. Built-in caches can be verified offline; custom remote-model caches without integrity metadata require explicit preparation. See [model integrity](docs/model-integrity.md) for verification, cache repair, and supported upstream metadata.
243
+
244
+ Search, similarity indexing, edits, and history restoration do not implicitly
245
+ download missing media from a configured object store. Application workflows
246
+ that read media through several Engine APIs can apply the same per-book policy:
247
+
248
+ ```ts
249
+ const result = await engine.withLocalMedia(async () => {
250
+ return engine.files.manifest(artifactId);
251
+ });
252
+ ```
253
+
254
+ The scope follows asynchronous calls and is isolated from concurrent explicit
255
+ reads and other Engine instances. Missing bytes return `MEDIA_MISSING` with the
256
+ object hash; retrieve them explicitly through `engine.files.read` outside the
257
+ scope before retrying. History restoration commits the requested metadata and
258
+ defers workspace hydration when bytes are missing or forgotten.
259
+
260
+ `withLocalMedia` controls implicit object downloads. It does not sandbox arbitrary
261
+ callback networking or disable explicit backup, and model/provider network
262
+ access continues to follow the separate preparation and consent policies above.
263
+
264
+
228
265
  ```ts
229
266
  const engine = createEngine({
230
267
  rootDir: ".videobook",
231
- initialBookSlug: "reference-library",
268
+ initialBookName: "Reference Library",
232
269
  similarity: {
233
270
  audio: {},
234
271
  text: {},
@@ -258,3 +295,11 @@ Configure `remoteObjects` to publish content-addressed objects and
258
295
  `catalogBackup` to push the Dolt catalog. `engine.storage.backup()` publishes
259
296
  objects first, then pushes the catalog, so a restored catalog never points to
260
297
  objects that have not been uploaded.
298
+
299
+ Missing local objects are downloaded through `ContentStore.downloadFile` into
300
+ unique temporary files. The engine streams a SHA-256 check before publishing the
301
+ requested object path or materializing it into a workspace. A mismatch returns
302
+ `OBJECT_UNAVAILABLE` with `details.reason = "checksum_mismatch"`; failed staging
303
+ files are removed and a later valid download can be retried. A concurrent forget
304
+ prevents the downloaded bytes from being published. This check applies to new
305
+ remote downloads; it does not rehash every existing local object on every read.
@@ -1,20 +1,15 @@
1
- import type { Artifact, ArtifactKind, CreateArtifactInput, EngineError, RenameArtifactInput, Result } from "./engine-types.js";
1
+ import type { Artifact, ArtifactKind, CreateArtifactInput, DeleteArtifactOptions, EngineError, RenameArtifactInput, Result } from "./engine-types.js";
2
2
  import { EngineContext } from "./context.js";
3
3
  export declare function createArtifactsApi(context: EngineContext): {
4
- create: (input: CreateArtifactInput | string, name?: string) => Promise<Result<Artifact, EngineError>>;
4
+ create: (input: CreateArtifactInput | string, label?: string) => Promise<Result<Artifact, EngineError>>;
5
5
  list: (options?: {
6
6
  sort?: "newest" | "oldest";
7
7
  }) => Artifact[];
8
- get: (artifact: string) => Result<Artifact, EngineError>;
9
- resolveSlug: (slug: string) => Result<Artifact, EngineError>;
10
- isSlugAvailable: (slug: string) => boolean;
11
- rename: (input: RenameArtifactInput | string, name?: string) => Promise<Result<Artifact, EngineError>>;
12
- delete: (artifact: string) => Promise<Result<{
8
+ get: (artifactId: string) => Result<Artifact, EngineError>;
9
+ rename: (input: RenameArtifactInput | string, label?: string) => Promise<Result<Artifact, EngineError>>;
10
+ delete: (artifactId: string, options?: DeleteArtifactOptions) => Promise<Result<{
13
11
  artifactId: string;
14
- slug: string;
15
12
  }, EngineError>>;
16
13
  };
17
14
  export declare function normalizeKind(input: string): ArtifactKind;
18
- /** Normalizes a name or slug with the canonical prefix for its artifact kind. */
19
- export declare function artifactSlug(kind: ArtifactKind, input: string): string;
20
15
  //# sourceMappingURL=artifacts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,aAAa,EAId,MAAM,cAAc,CAAC;AActB,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa;oBAG5C,mBAAmB,GAAG,MAAM,SAC5B,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;qBAExB;QAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,KAAG,QAAQ,EAAE;oBAE5C,MAAM,KAAG,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;wBAElC,MAAM,KAAG,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;4BAYlC,MAAM,KAAG,OAAO;oBAS/B,mBAAmB,GAAG,MAAM,SAC5B,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;uBAG7B,MAAM,KACf,OAAO,CACR,MAAM,CACJ;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EACpC,WAAW,CACZ,CACF;EAEJ;AAwPD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CA4BzD;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAuBtE"}
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,mBAAmB,EACnB,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,aAAa,EAId,MAAM,cAAc,CAAC;AActB,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa;oBAG5C,mBAAmB,GAAG,MAAM,UAC3B,MAAM,KACb,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;qBAExB;QAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,KAAG,QAAQ,EAAE;sBAE1C,MAAM,KAAG,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;oBAG/C,mBAAmB,GAAG,MAAM,UAC3B,MAAM,KACb,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;yBAG3B,MAAM,YACT,qBAAqB,KAC7B,OAAO,CAAC,MAAM,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,WAAW,CAAC,CAAC;EAG1D;AAoPD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CA4BzD"}
package/dist/artifacts.js CHANGED
@@ -6,71 +6,44 @@ import { EngineFault } from "./store.js";
6
6
  import { newUuidV7 } from "./ids.js";
7
7
  export function createArtifactsApi(context) {
8
8
  return {
9
- create: (input, name) => createArtifact(context, input, name),
9
+ create: (input, label) => createArtifact(context, input, label),
10
10
  list: (options) => listArtifacts(context, options),
11
- get: (artifact) => syncResultOf(() => context.artifact(context.artifactRow(artifact))),
12
- resolveSlug: (slug) => syncResultOf(() => {
13
- const row = context.store.db
14
- .prepare(`SELECT artifact_id, slug, kind, created_at
15
- FROM artifacts
16
- WHERE slug=?`)
17
- .get(slug);
18
- if (!row)
19
- throw new Error(`Active artifact slug not found: ${slug}`);
20
- return context.artifact(row);
21
- }),
22
- isSlugAvailable: (slug) => !context.store.db
23
- .prepare(`SELECT 1 AS present
24
- FROM artifacts
25
- WHERE slug=?`)
26
- .get(slug),
27
- rename: (input, name) => renameArtifact(context, input, name),
28
- delete: (artifact) => deleteArtifact(context, artifact),
11
+ get: (artifactId) => syncResultOf(() => context.artifact(context.artifactRowById(artifactId))),
12
+ rename: (input, label) => renameArtifact(context, input, label),
13
+ delete: (artifactId, options = {}) => deleteArtifact(context, artifactId, options),
29
14
  };
30
15
  }
31
- async function createArtifact(context, input, positionalName) {
16
+ function normalizeLabel(input) {
17
+ const label = input?.trim();
18
+ return label ? label : null;
19
+ }
20
+ async function createArtifact(context, input, positionalLabel) {
32
21
  return resultOf(async () => {
33
22
  const parsed = typeof input === "string"
34
23
  ? {
35
24
  kind: normalizeKind(input),
36
- name: positionalName ?? "",
37
- explicitSlug: undefined,
25
+ label: normalizeLabel(positionalLabel),
38
26
  }
39
27
  : {
40
28
  kind: normalizeKind(input.kind),
41
- name: input.name ?? input.slug ?? "",
42
- explicitSlug: input.slug,
29
+ label: normalizeLabel(input.label),
43
30
  };
44
- const base = artifactSlug(parsed.kind, parsed.explicitSlug ?? parsed.name);
45
31
  const artifactId = newUuidV7();
46
- // The dedup read and the insert must both run inside the serialized
47
- // write chain: picking the suffix before store.semantic would race a
48
- // concurrent create minting the same base slug (merge policy,
49
- // ve-mim.6). details/writeSet are finalized inside the callback, which
50
- // runs before the commit message is rendered.
51
- const details = {
52
- slug: parsed.explicitSlug ?? base,
53
- kind: parsed.kind,
54
- };
55
- const writeSet = [
56
- `artifact:${artifactId}`,
57
- `artifact-slug:${String(details.slug)}`,
58
- ];
59
32
  const mutation = await context.store.semantic({
60
33
  operation: "create_artifact",
61
34
  tables: ["artifacts"],
62
35
  artifactId,
63
- details,
64
- writeSet,
36
+ details: {
37
+ ...(parsed.label === null ? {} : { label: parsed.label }),
38
+ kind: parsed.kind,
39
+ },
40
+ writeSet: [`artifact:${artifactId}`],
65
41
  }, (_operationId, now) => {
66
- const slug = parsed.explicitSlug ?? nextActiveSlug(context, base);
67
- details.slug = slug;
68
- writeSet[1] = `artifact-slug:${slug}`;
69
42
  context.store.db
70
43
  .prepare(`INSERT INTO artifacts(
71
- artifact_id, slug, kind, created_at
44
+ artifact_id, label, kind, created_at
72
45
  ) VALUES (?, ?, ?, ?)`)
73
- .run(artifactId, slug, parsed.kind, now);
46
+ .run(artifactId, parsed.label, parsed.kind, now);
74
47
  context.store.db
75
48
  .prepare(`INSERT INTO runtime_artifact_views(
76
49
  artifact_id, status, meta_json, deadline_at, updated_at
@@ -83,55 +56,54 @@ async function createArtifact(context, input, positionalName) {
83
56
  .run(artifactId, context.artifactPath(artifactId), now);
84
57
  });
85
58
  context.ensureArtifactWorkspace(artifactId);
86
- return ok(context.artifact(context.artifactRow(artifactId)), mutation.revision);
59
+ return ok(context.artifact(context.artifactRowById(artifactId)), mutation.revision);
87
60
  });
88
61
  }
89
62
  function listArtifacts(context, options = {}) {
90
63
  const direction = options.sort === "oldest" ? "ASC" : "DESC";
91
64
  const rows = context.store.db
92
- .prepare(`SELECT artifact_id, slug, kind, created_at
65
+ .prepare(`SELECT artifact_id, label, kind, created_at
93
66
  FROM artifacts
94
67
  ORDER BY created_at ${direction}, artifact_id ${direction}`)
95
68
  .all();
96
69
  return rows.map((row) => context.artifact(row));
97
70
  }
98
- async function renameArtifact(context, input, positionalName) {
71
+ async function renameArtifact(context, input, positionalLabel) {
99
72
  return resultOf(async () => {
100
73
  const parsed = typeof input === "string"
101
- ? { artifact: input, name: positionalName ?? "", slug: undefined }
74
+ ? { artifact: input, label: positionalLabel ?? "" }
102
75
  : input;
103
- const current = context.artifactRow(parsed.artifact);
104
- const slug = artifactSlug(current.kind, parsed.slug ?? parsed.name ?? "");
105
- if (slug === current.slug)
76
+ const current = context.artifactRowById(parsed.artifact);
77
+ const label = normalizeLabel(parsed.label);
78
+ if (label === current.label)
106
79
  return context.artifact(current);
107
80
  const mutation = await context.store.semantic({
108
81
  operation: "rename_artifact",
109
82
  tables: ["artifacts"],
110
83
  artifactId: current.artifact_id,
111
- details: { oldSlug: current.slug, newSlug: slug },
112
- writeSet: [
113
- `artifact:${current.artifact_id}`,
114
- `artifact-slug:${current.slug}`,
115
- `artifact-slug:${slug}`,
116
- ],
84
+ details: {
85
+ ...(current.label === null ? {} : { oldLabel: current.label }),
86
+ ...(label === null ? {} : { newLabel: label }),
87
+ },
88
+ writeSet: [`artifact:${current.artifact_id}`],
117
89
  }, () => {
118
90
  context.store.db
119
91
  .prepare(`UPDATE artifacts
120
- SET slug=?
92
+ SET label=?
121
93
  WHERE artifact_id=?`)
122
- .run(slug, current.artifact_id);
94
+ .run(label, current.artifact_id);
123
95
  });
124
- return ok(context.artifact(context.artifactRow(current.artifact_id)), mutation.revision);
96
+ return ok(context.artifact(context.artifactRowById(current.artifact_id)), mutation.revision);
125
97
  });
126
98
  }
127
- async function deleteArtifact(context, artifactReference) {
99
+ async function deleteArtifact(context, artifactId, options) {
128
100
  return resultOf(async () => {
129
- const artifact = context.artifactRow(artifactReference);
130
- const references = artifactReferences(context, artifact.artifact_id);
101
+ const artifact = context.artifactRowById(artifactId);
102
+ const references = artifactReferences(context, artifact.artifact_id, options.deleteOwnedMedia === true);
131
103
  if (references.length > 0) {
132
104
  throw new EngineFault({
133
105
  code: "IN_USE",
134
- message: `Artifact is still referenced: ${artifact.slug}`,
106
+ message: `Artifact is still referenced: ${artifact.artifact_id}`,
135
107
  details: { references },
136
108
  });
137
109
  }
@@ -148,17 +120,20 @@ async function deleteArtifact(context, artifactReference) {
148
120
  "artifact_files",
149
121
  "artifact_metadata",
150
122
  "audio_waveforms",
123
+ ...(options.deleteOwnedMedia ? ["artifact_streams", "transcripts", "transcript_segments", "transcript_words"] : []),
151
124
  ],
152
125
  artifactId: artifact.artifact_id,
153
126
  details: {
154
- slug: artifact.slug,
127
+ ...(artifact.label === null ? {} : { label: artifact.label }),
155
128
  cancelledJobs: jobs.map((job) => job.id),
129
+ ...(options.deleteOwnedMedia ? { deleteOwnedMedia: true } : {}),
156
130
  },
157
- writeSet: [
158
- `artifact:${artifact.artifact_id}`,
159
- `artifact-slug:${artifact.slug}`,
160
- ],
131
+ writeSet: [`artifact:${artifact.artifact_id}`],
161
132
  }, (_operationId, now) => {
133
+ if (options.deleteOwnedMedia) {
134
+ context.store.db.prepare("DELETE FROM transcripts WHERE artifact_id=?").run(artifact.artifact_id);
135
+ context.store.db.prepare("DELETE FROM artifact_streams WHERE artifact_id=?").run(artifact.artifact_id);
136
+ }
162
137
  context.store.db
163
138
  .prepare("DELETE FROM artifacts WHERE artifact_id=?")
164
139
  .run(artifact.artifact_id);
@@ -201,15 +176,21 @@ async function deleteArtifact(context, artifactReference) {
201
176
  context.store.db
202
177
  .prepare("DELETE FROM runtime_text_similarity_documents WHERE artifact_id=?")
203
178
  .run(artifact.artifact_id);
179
+ context.store.db
180
+ .prepare("DELETE FROM runtime_media_segments WHERE artifact_id=?")
181
+ .run(artifact.artifact_id);
182
+ context.store.db
183
+ .prepare("DELETE FROM runtime_index_coverage WHERE artifact_id=?")
184
+ .run(artifact.artifact_id);
185
+ context.store.db
186
+ .prepare("DELETE FROM runtime_index_batches WHERE artifact_id=?")
187
+ .run(artifact.artifact_id);
204
188
  });
205
189
  await rm(context.artifactPath(artifact.artifact_id), {
206
190
  recursive: true,
207
191
  force: true,
208
192
  });
209
- return ok({
210
- artifactId: artifact.artifact_id,
211
- slug: artifact.slug,
212
- }, mutation.revision);
193
+ return ok({ artifactId: artifact.artifact_id }, mutation.revision);
213
194
  });
214
195
  }
215
196
  export function normalizeKind(input) {
@@ -241,47 +222,7 @@ export function normalizeKind(input) {
241
222
  throw new Error(`Invalid artifact kind: ${input}`);
242
223
  }
243
224
  }
244
- /** Normalizes a name or slug with the canonical prefix for its artifact kind. */
245
- export function artifactSlug(kind, input) {
246
- if (kind === "final")
247
- return "final";
248
- const prefix = prefixForKind(kind);
249
- let normalized = input
250
- .trim()
251
- .toLowerCase()
252
- .replace(/^@/, "")
253
- .replace(/[^a-z0-9_-]+/g, "-")
254
- .replace(/-+/g, "-")
255
- .replace(/^[-_]+|[-_]+$/g, "");
256
- if (!normalized)
257
- throw new Error("Artifact name or slug is required");
258
- const knownPrefix = /^(vid|img|aud|script|char|prompt|scene|prm|scn)-/;
259
- if (knownPrefix.test(normalized)) {
260
- if (!normalized.startsWith(`${prefix}-`)) {
261
- throw new Error(`Artifact slug ${normalized} does not match kind ${kind}`);
262
- }
263
- return normalized;
264
- }
265
- normalized = `${prefix}-${normalized}`;
266
- if (!/^[a-z0-9]+(?:[a-z0-9_-]*[a-z0-9])?$/.test(normalized)) {
267
- throw new Error(`Invalid artifact slug: ${normalized}`);
268
- }
269
- return normalized;
270
- }
271
- function nextActiveSlug(context, base) {
272
- let suffix = 1;
273
- let candidate = base;
274
- while (context.store.db
275
- .prepare(`SELECT 1 AS present
276
- FROM artifacts
277
- WHERE slug=?`)
278
- .get(candidate)) {
279
- suffix += 1;
280
- candidate = `${base}-${suffix}`;
281
- }
282
- return candidate;
283
- }
284
- function artifactReferences(context, artifactId) {
225
+ function artifactReferences(context, artifactId, deleteOwnedMedia) {
285
226
  // Covers every RESTRICT foreign key targeting artifacts so a refused
286
227
  // delete surfaces as IN_USE rather than a raw FK error mapped to
287
228
  // IO_ERROR. CASCADE-owned rows (artifact_files, artifact_metadata,
@@ -299,19 +240,35 @@ function artifactReferences(context, artifactId) {
299
240
  .prepare(`SELECT stream_id FROM artifact_streams
300
241
  WHERE artifact_id=? ORDER BY stream_id`)
301
242
  .all(artifactId);
302
- references.push(...streams.map((stream) => ({ kind: "stream", id: stream.stream_id })));
243
+ if (!deleteOwnedMedia)
244
+ references.push(...streams.map((stream) => ({ kind: "stream", id: stream.stream_id })));
303
245
  const transcripts = context.store.db
304
246
  .prepare(`SELECT transcript_id FROM transcripts
305
247
  WHERE artifact_id=? ORDER BY transcript_id`)
306
248
  .all(artifactId);
307
- references.push(...transcripts.map((row) => ({
308
- kind: "transcript",
309
- id: row.transcript_id,
310
- })));
249
+ if (!deleteOwnedMedia)
250
+ references.push(...transcripts.map((row) => ({
251
+ kind: "transcript",
252
+ id: row.transcript_id,
253
+ })));
254
+ if (deleteOwnedMedia) {
255
+ const cues = context.store.db.prepare(`SELECT c.cue_id FROM caption_cues c JOIN transcripts t ON t.transcript_id=c.transcript_id
256
+ WHERE t.artifact_id=? ORDER BY c.cue_id`).all(artifactId);
257
+ references.push(...cues.map((row) => ({ kind: "captionCue", id: row.cue_id })));
258
+ const linkedTranscripts = context.store.db.prepare(`SELECT t.transcript_id FROM transcripts t JOIN artifact_streams s ON s.stream_id=t.stream_id
259
+ WHERE s.artifact_id=? AND t.artifact_id<>? ORDER BY t.transcript_id`).all(artifactId, artifactId);
260
+ references.push(...linkedTranscripts.map((row) => ({ kind: "transcript", id: row.transcript_id })));
261
+ const targets = [artifactId, ...streams.map((row) => row.stream_id), ...transcripts.map((row) => row.transcript_id)];
262
+ const cellReferences = context.store.db.prepare(`SELECT notebook_id, cell_id, reference_id FROM cell_references
263
+ WHERE kind IN ('artifact','stream','source-range','transcript')
264
+ AND target_id IN (${targets.map(() => "?").join(",")})
265
+ ORDER BY notebook_id, cell_id, reference_id`).all(...targets);
266
+ references.push(...cellReferences.map((row) => ({ kind: "cell.reference", id: `${row.notebook_id}/${row.cell_id}/${row.reference_id}` })));
267
+ }
311
268
  const clips = context.store.db
312
269
  .prepare(`SELECT clip_id FROM sequence_clips
313
- WHERE artifact_id=? ORDER BY clip_id`)
314
- .all(artifactId);
270
+ WHERE artifact_id=? OR stream_id IN (SELECT stream_id FROM artifact_streams WHERE artifact_id=?) ORDER BY clip_id`)
271
+ .all(artifactId, artifactId);
315
272
  references.push(...clips.map((clip) => ({ kind: "sequenceClip", id: clip.clip_id })));
316
273
  const pinned = context.store.db
317
274
  .prepare(`SELECT notebook_id, cell_id, result_id FROM pinned_search_results
@@ -323,24 +280,4 @@ function artifactReferences(context, artifactId) {
323
280
  })));
324
281
  return references;
325
282
  }
326
- function prefixForKind(kind) {
327
- switch (kind) {
328
- case "video":
329
- return "vid";
330
- case "image":
331
- return "img";
332
- case "audio":
333
- return "aud";
334
- case "script":
335
- return "script";
336
- case "character":
337
- return "char";
338
- case "prompt":
339
- return "prompt";
340
- case "scene":
341
- return "scene";
342
- case "final":
343
- return "final";
344
- }
345
- }
346
283
  //# sourceMappingURL=artifacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"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"}
package/dist/books.d.ts CHANGED
@@ -2,6 +2,6 @@ import type { Book, EngineError, Result } from "./engine-types.js";
2
2
  import { EngineContext } from "./context.js";
3
3
  export declare function createBookApi(context: EngineContext): {
4
4
  get: () => Book;
5
- rename: (slug: string) => Promise<Result<Book, EngineError>>;
5
+ rename: (name: string) => Promise<Result<Book, EngineError>>;
6
6
  };
7
7
  //# sourceMappingURL=books.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"books.d.ts","sourceRoot":"","sources":["../src/books.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EACL,aAAa,EAGd,MAAM,cAAc,CAAC;AAEtB,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa;eAEvC,IAAI;mBACE,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;EAG7D"}
1
+ {"version":3,"file":"books.d.ts","sourceRoot":"","sources":["../src/books.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAGvD,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa;eAEvC,IAAI;mBACE,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;EAG7D"}