videobook-engine 4.2.0 → 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 (104) hide show
  1. package/README.md +15 -30
  2. package/dist/artifacts.d.ts +4 -9
  3. package/dist/artifacts.d.ts.map +1 -1
  4. package/dist/artifacts.js +39 -133
  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/catalog-metadata.d.ts +2 -2
  11. package/dist/catalog-metadata.js +3 -3
  12. package/dist/catalog-metadata.js.map +1 -1
  13. package/dist/context.d.ts +3 -5
  14. package/dist/context.d.ts.map +1 -1
  15. package/dist/context.js +10 -48
  16. package/dist/context.js.map +1 -1
  17. package/dist/domain.d.ts +35 -2
  18. package/dist/domain.d.ts.map +1 -1
  19. package/dist/domain.js +131 -161
  20. package/dist/domain.js.map +1 -1
  21. package/dist/engine-types.d.ts +62 -27
  22. package/dist/engine-types.d.ts.map +1 -1
  23. package/dist/engine-types.js +0 -1
  24. package/dist/engine-types.js.map +1 -1
  25. package/dist/engine.d.ts +20 -18
  26. package/dist/engine.d.ts.map +1 -1
  27. package/dist/engine.js +3 -3
  28. package/dist/engine.js.map +1 -1
  29. package/dist/files.js +1 -1
  30. package/dist/files.js.map +1 -1
  31. package/dist/fork.d.ts +3 -2
  32. package/dist/fork.d.ts.map +1 -1
  33. package/dist/fork.js +13 -20
  34. package/dist/fork.js.map +1 -1
  35. package/dist/generations.d.ts +9 -0
  36. package/dist/generations.d.ts.map +1 -0
  37. package/dist/generations.js +175 -0
  38. package/dist/generations.js.map +1 -0
  39. package/dist/history.d.ts +2 -1
  40. package/dist/history.d.ts.map +1 -1
  41. package/dist/history.js +21 -49
  42. package/dist/history.js.map +1 -1
  43. package/dist/index.d.ts +8 -6
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +5 -5
  46. package/dist/index.js.map +1 -1
  47. package/dist/media.d.ts +3 -3
  48. package/dist/media.d.ts.map +1 -1
  49. package/dist/media.js +5 -5
  50. package/dist/media.js.map +1 -1
  51. package/dist/merge-policy.d.ts +10 -26
  52. package/dist/merge-policy.d.ts.map +1 -1
  53. package/dist/merge-policy.js +8 -115
  54. package/dist/merge-policy.js.map +1 -1
  55. package/dist/metadata.js +2 -3
  56. package/dist/metadata.js.map +1 -1
  57. package/dist/migration.d.ts.map +1 -1
  58. package/dist/migration.js +32 -2
  59. package/dist/migration.js.map +1 -1
  60. package/dist/mvp-contract-fixtures.js +1 -1
  61. package/dist/mvp-contract-fixtures.js.map +1 -1
  62. package/dist/mvp-contracts.d.ts +3 -3
  63. package/dist/mvp-contracts.d.ts.map +1 -1
  64. package/dist/mvp-contracts.js +1 -1
  65. package/dist/notebook/types.d.ts +1 -29
  66. package/dist/notebook/types.d.ts.map +1 -1
  67. package/dist/notebook-grid.d.ts +37 -0
  68. package/dist/notebook-grid.d.ts.map +1 -0
  69. package/dist/notebook-grid.js +160 -0
  70. package/dist/notebook-grid.js.map +1 -0
  71. package/dist/notebook-media-artifact.d.ts +23 -0
  72. package/dist/notebook-media-artifact.d.ts.map +1 -0
  73. package/dist/notebook-media-artifact.js +67 -0
  74. package/dist/notebook-media-artifact.js.map +1 -0
  75. package/dist/notebook-mentions.d.ts +20 -0
  76. package/dist/notebook-mentions.d.ts.map +1 -0
  77. package/dist/notebook-mentions.js +53 -0
  78. package/dist/notebook-mentions.js.map +1 -0
  79. package/dist/runtime-services.js +4 -9
  80. package/dist/runtime-services.js.map +1 -1
  81. package/dist/schema.d.ts +3 -19
  82. package/dist/schema.d.ts.map +1 -1
  83. package/dist/schema.js +63 -92
  84. package/dist/schema.js.map +1 -1
  85. package/dist/similarity.js +9 -9
  86. package/dist/similarity.js.map +1 -1
  87. package/dist/status.js +8 -10
  88. package/dist/status.js.map +1 -1
  89. package/dist/store.d.ts +1 -1
  90. package/dist/store.js +3 -3
  91. package/dist/temporal-search.js +50 -6
  92. package/dist/temporal-search.js.map +1 -1
  93. package/docs/engine-layout.md +14 -19
  94. package/docs/mvp-prd.md +2 -2
  95. package/fixtures/v5/contract-fixtures.json +4 -4
  96. package/package.json +13 -1
  97. package/dist/artifact-names.d.ts +0 -6
  98. package/dist/artifact-names.d.ts.map +0 -1
  99. package/dist/artifact-names.js +0 -56
  100. package/dist/artifact-names.js.map +0 -1
  101. package/dist/resolver.d.ts +0 -15
  102. package/dist/resolver.d.ts.map +0 -1
  103. package/dist/resolver.js +0 -81
  104. package/dist/resolver.js.map +0 -1
package/README.md CHANGED
@@ -21,7 +21,7 @@ const engine = createEngine({
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",
@@ -46,7 +46,7 @@ explicitly with `await engine.book.rename("new-name")`.
46
46
  ## MVP contracts
47
47
 
48
48
  Contract version 1, introduced with schema v5 and carried by the current
49
- schema v18 catalog, defines the media-time, stream, transcript, sequence,
49
+ schema v19 catalog, defines the media-time, stream, transcript, sequence,
50
50
  temporal-search, edit-intent, job, and copy-forward migration boundary:
51
51
 
52
52
  ```ts
@@ -84,11 +84,13 @@ rootDir/
84
84
  Semantic tables are committed as Dolt revisions. Runtime tables (jobs, leases,
85
85
  views, caches, settings, and logs) share the same database, match the
86
86
  versioned `runtime_%` ignore policy, and are never staged. Semantic surrogate
87
- identities are UUIDv7 values. Artifact slugs are human-facing names and can be
87
+ identities are UUIDv7 values. Artifact labels are free-text display names and can be
88
88
  reused after hard deletion; immutable CAS objects remain available to history.
89
89
 
90
- The current catalog format is schema version 18. It intentionally rejects
91
- older catalogs rather than migrating them; create a fresh engine root.
90
+ The current catalog format is schema version 20. Valid schema version 19
91
+ catalogs upgrade in place. Catalogs with cells outside the fixed 26-by-13
92
+ notebook grid are rejected, and older catalogs require an explicit migration
93
+ or a fresh engine root.
92
94
 
93
95
  The 34 versioned semantic tables are `engine_schema`, `book`, `artifacts`,
94
96
  `objects`, `artifact_files`, `artifact_streams`, `book_metadata`,
@@ -120,30 +122,17 @@ See [the complete engine layout](docs/engine-layout.md) for every schema
120
122
  column, relationship, index, runtime/CAS structure, current editing contract,
121
123
  and the additional normalized structures a full non-linear editor will need.
122
124
 
123
- ## Artifacts and slugs
125
+ ## Artifacts, labels, and identity
124
126
 
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.
128
-
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`.
127
+ Artifacts are identified by `artifact_id` (UUIDv7) the only reference
128
+ handle. An optional free-text `label` exists purely for display: it is
129
+ non-unique, never parsed, and never used to look anything up. Media content
130
+ is addressed by `object_hash` in the CAS.
142
131
 
143
132
  ## API surface
144
133
 
145
- - `engine.book` — `get()` and `rename(slug)` for the singleton book
146
- - `engine.artifacts` — create, list, get, rename, delete, and resolve slugs
134
+ - `engine.book` — `get()` and `rename(name)` for the singleton book
135
+ - `engine.artifacts` — create, list, get, rename (relabel), and delete
147
136
  - `engine.files` and `engine.workspaces` — immutable object-backed files and
148
137
  disposable materialization
149
138
  - `engine.metadata` — book metadata, artifact metadata, and audio waveforms
@@ -191,11 +180,7 @@ unambiguous prefix) to inspect or restore state:
191
180
  ```ts
192
181
  const revisions = engine.history.revisions();
193
182
 
194
- await engine.history.restoreArtifact(
195
- artifactId,
196
- revisions[0]!.hash,
197
- "script-restored-draft", // optional replacement slug
198
- );
183
+ await engine.history.restoreArtifact(artifactId, revisions[0]!.hash);
199
184
 
200
185
  await engine.history.restore(revisions[0]!.hash);
201
186
  ```
@@ -1,20 +1,15 @@
1
1
  import type { Artifact, ArtifactKind, CreateArtifactInput, 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) => 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,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,KACjB,OAAO,CAAC,MAAM,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,WAAW,CAAC,CAAC;EAG1D;AAoOD,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) => deleteArtifact(context, artifactId),
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) {
128
100
  return resultOf(async () => {
129
- const artifact = context.artifactRow(artifactReference);
101
+ const artifact = context.artifactRowById(artifactId);
130
102
  const references = artifactReferences(context, artifact.artifact_id);
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
  }
@@ -151,13 +123,10 @@ async function deleteArtifact(context, artifactReference) {
151
123
  ],
152
124
  artifactId: artifact.artifact_id,
153
125
  details: {
154
- slug: artifact.slug,
126
+ ...(artifact.label === null ? {} : { label: artifact.label }),
155
127
  cancelledJobs: jobs.map((job) => job.id),
156
128
  },
157
- writeSet: [
158
- `artifact:${artifact.artifact_id}`,
159
- `artifact-slug:${artifact.slug}`,
160
- ],
129
+ writeSet: [`artifact:${artifact.artifact_id}`],
161
130
  }, (_operationId, now) => {
162
131
  context.store.db
163
132
  .prepare("DELETE FROM artifacts WHERE artifact_id=?")
@@ -206,10 +175,7 @@ async function deleteArtifact(context, artifactReference) {
206
175
  recursive: true,
207
176
  force: true,
208
177
  });
209
- return ok({
210
- artifactId: artifact.artifact_id,
211
- slug: artifact.slug,
212
- }, mutation.revision);
178
+ return ok({ artifactId: artifact.artifact_id }, mutation.revision);
213
179
  });
214
180
  }
215
181
  export function normalizeKind(input) {
@@ -241,46 +207,6 @@ export function normalizeKind(input) {
241
207
  throw new Error(`Invalid artifact kind: ${input}`);
242
208
  }
243
209
  }
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
210
  function artifactReferences(context, artifactId) {
285
211
  // Covers every RESTRICT foreign key targeting artifacts so a refused
286
212
  // delete surfaces as IN_USE rather than a raw FK error mapped to
@@ -323,24 +249,4 @@ function artifactReferences(context, artifactId) {
323
249
  })));
324
250
  return references;
325
251
  }
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
252
  //# 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"}
package/dist/books.js CHANGED
@@ -1,26 +1,33 @@
1
1
  import { ok } from "./engine-types.js";
2
- import { normalizeBookSlug, resultOf, } from "./context.js";
2
+ import { resultOf } from "./context.js";
3
+ import { EngineFault } from "./store.js";
3
4
  export function createBookApi(context) {
4
5
  return {
5
6
  get: () => context.book(),
6
- rename: (slug) => renameBook(context, slug),
7
+ rename: (name) => renameBook(context, name),
7
8
  };
8
9
  }
9
- async function renameBook(context, requestedSlug) {
10
+ async function renameBook(context, requestedName) {
10
11
  return resultOf(async () => {
11
12
  const current = context.bookRow();
12
- const slug = normalizeBookSlug(requestedSlug);
13
- if (current.slug === slug)
13
+ const name = requestedName.trim();
14
+ if (!name) {
15
+ throw new EngineFault({
16
+ code: "INVALID_INPUT",
17
+ message: "Book name must be non-empty",
18
+ });
19
+ }
20
+ if (current.name === name)
14
21
  return context.book(current);
15
22
  const mutation = await context.store.semantic({
16
23
  operation: "rename_book",
17
24
  tables: ["book"],
18
- details: { oldSlug: current.slug, newSlug: slug },
19
- writeSet: ["book", `book-slug:${current.slug}`, `book-slug:${slug}`],
25
+ details: { oldName: current.name, newName: name },
26
+ writeSet: ["book"],
20
27
  }, () => {
21
28
  context.store.db
22
- .prepare("UPDATE book SET slug=? WHERE book_id=?")
23
- .run(slug, current.book_id);
29
+ .prepare("UPDATE book SET name=? WHERE book_id=?")
30
+ .run(name, current.book_id);
24
31
  });
25
32
  return ok(context.book(), mutation.revision);
26
33
  });
package/dist/books.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"books.js","sourceRoot":"","sources":["../src/books.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAEL,iBAAiB,EACjB,QAAQ,GACT,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,aAAa,CAAC,OAAsB;IAClD,OAAO;QACL,GAAG,EAAE,GAAS,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE;QAC/B,MAAM,EAAE,CAAC,IAAY,EAAsC,EAAE,CAC3D,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,OAAsB,EACtB,aAAqB;IAErB,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAC3C;YACE,SAAS,EAAE,aAAa;YACxB,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;YACjD,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,IAAI,EAAE,CAAC;SACrE,EACD,GAAG,EAAE;YACH,OAAO,CAAC,KAAK,CAAC,EAAE;iBACb,OAAO,CAAC,wCAAwC,CAAC;iBACjD,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CACF,CAAC;QACF,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"books.js","sourceRoot":"","sources":["../src/books.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAiB,QAAQ,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAC,OAAsB;IAClD,OAAO;QACL,GAAG,EAAE,GAAS,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE;QAC/B,MAAM,EAAE,CAAC,IAAY,EAAsC,EAAE,CAC3D,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,OAAsB,EACtB,aAAqB;IAErB,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,WAAW,CAAC;gBACpB,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,6BAA6B;aACvC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAC3C;YACE,SAAS,EAAE,aAAa;YACxB,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;YACjD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB,EACD,GAAG,EAAE;YACH,OAAO,CAAC,KAAK,CAAC,EAAE;iBACb,OAAO,CAAC,wCAAwC,CAAC;iBACjD,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CACF,CAAC;QACF,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { NotebookCell } from "./notebook/types.js";
2
- export declare const SCHEMA_VERSION = 18;
2
+ export declare const SCHEMA_VERSION = 22;
3
3
  export declare const CELLS_TABLE_SCHEMA: readonly [{
4
4
  readonly column: "notebook_id";
5
5
  readonly type: "TEXT";
@@ -10,7 +10,7 @@ export declare const CELLS_TABLE_SCHEMA: readonly [{
10
10
  readonly column: "type";
11
11
  readonly type: "TEXT";
12
12
  }, {
13
- readonly column: "slug";
13
+ readonly column: "label";
14
14
  readonly type: "TEXT";
15
15
  }, {
16
16
  readonly column: "grid_row";
@@ -1,9 +1,9 @@
1
- export const SCHEMA_VERSION = 18;
1
+ export const SCHEMA_VERSION = 22;
2
2
  export const CELLS_TABLE_SCHEMA = [
3
3
  { column: "notebook_id", type: "TEXT" },
4
4
  { column: "cell_id", type: "TEXT" },
5
5
  { column: "type", type: "TEXT" },
6
- { column: "slug", type: "TEXT" },
6
+ { column: "label", type: "TEXT" },
7
7
  { column: "grid_row", type: "INTEGER" },
8
8
  { column: "grid_column", type: "INTEGER" },
9
9
  { column: "output_entity_id", type: "TEXT" },
@@ -21,7 +21,7 @@ export function notebookCellTableRows(notebookId, cell) {
21
21
  notebook_id: notebookId,
22
22
  cell_id: cell.id,
23
23
  type: cell.type,
24
- slug: cell.slug,
24
+ label: cell.label ?? null,
25
25
  grid_row: cell.slot.row,
26
26
  grid_column: cell.slot.column,
27
27
  output_entity_id: cell.outputEntityId ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-metadata.js","sourceRoot":"","sources":["../src/catalog-metadata.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;IACvC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACnC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAChC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAChC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;IACvC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1C,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5C,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAClC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IACpC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACjC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;IACrC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAChC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;IACvC,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE;CACtC,CAAC;AAKX,MAAM,CAAC,MAAM,mBAAmB,GAC9B,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AASjD,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,IAAkB;IAElB,MAAM,MAAM,GAA4C;QACtD,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,IAAI,CAAC,EAAE;QAChB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;QACvB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QAC7B,gBAAgB,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;QAC7C,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;QACjC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACvB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAC9C,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI;KAClD,CAAC;IACF,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM;QACN,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;KACtB,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"catalog-metadata.js","sourceRoot":"","sources":["../src/catalog-metadata.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;IACvC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACnC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAChC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACjC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;IACvC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1C,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5C,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAClC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IACpC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACjC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;IACrC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IAChC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;IACvC,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE;CACtC,CAAC;AAKX,MAAM,CAAC,MAAM,mBAAmB,GAC9B,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AASjD,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,IAAkB;IAElB,MAAM,MAAM,GAA4C;QACtD,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,IAAI,CAAC,EAAE;QAChB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACzB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;QACvB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QAC7B,gBAAgB,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;QAC7C,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;QACjC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACvB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAC9C,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI;KAClD,CAAC;IACF,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM;QACN,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;KACtB,CAAC,CAAC,CAAC;AACN,CAAC"}
package/dist/context.d.ts CHANGED
@@ -3,12 +3,12 @@ import { ObjectStore } from "./cas.js";
3
3
  import { DoltStore } from "./store.js";
4
4
  interface BookRow {
5
5
  book_id: string;
6
- slug: string;
6
+ name: string;
7
7
  created_at: number;
8
8
  }
9
9
  export interface ArtifactRow {
10
10
  artifact_id: string;
11
- slug: string;
11
+ label: string | null;
12
12
  kind: ArtifactKind;
13
13
  created_at: number;
14
14
  }
@@ -32,15 +32,13 @@ export declare class EngineContext {
32
32
  isForgottenObject(hash: string): boolean;
33
33
  bookRow(): BookRow;
34
34
  book(row?: BookRow): Book;
35
- artifactRow(reference: string): ArtifactRow;
35
+ artifactRow(artifactId: string): ArtifactRow;
36
36
  artifactRowById(artifactId: string): ArtifactRow;
37
37
  artifact(row: ArtifactRow): Artifact;
38
38
  artifactPath(artifactId: string): string;
39
39
  ensureArtifactWorkspace(artifactId: string): string;
40
40
  close(): void;
41
41
  }
42
- export declare function normalizeBookSlug(input: string): string;
43
- export declare function isValidBookSlug(input: string): boolean;
44
42
  export declare function resultOf<T>(work: () => Promise<Result<T, EngineError> | T>): Promise<Result<T, EngineError>>;
45
43
  export declare function syncResultOf<T>(work: () => T): Result<T, EngineError>;
46
44
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEpD,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;gBAElB,MAAM,EAAE,YAAY;IA2DhC;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASxC,OAAO,IAAI,OAAO;IAalB,IAAI,CAAC,GAAG,UAAiB,GAAG,IAAI;IAQhC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;IAoB3C,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAiBhD,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,QAAQ;IAUpC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIxC,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAMnD,KAAK,IAAI,IAAI;CAGd;AAoBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUvD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAMtD;AAuCD,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAC9C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAUjC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAMrE"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEpD,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;gBAElB,MAAM,EAAE,YAAY;IAyDhC;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASxC,OAAO,IAAI,OAAO;IAalB,IAAI,CAAC,GAAG,UAAiB,GAAG,IAAI;IAQhC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAI5C,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAiBhD,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,QAAQ;IAUpC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIxC,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAMnD,KAAK,IAAI,IAAI;CAGd;AAmDD,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAC9C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAUjC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAMrE"}