@davidorex/pi-context 0.31.0 → 0.33.0

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 (77) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/README.md +16 -14
  3. package/dist/block-api.d.ts +20 -33
  4. package/dist/block-api.d.ts.map +1 -1
  5. package/dist/block-api.js +154 -3
  6. package/dist/block-api.js.map +1 -1
  7. package/dist/content-hash.d.ts +9 -0
  8. package/dist/content-hash.d.ts.map +1 -1
  9. package/dist/content-hash.js +11 -0
  10. package/dist/content-hash.js.map +1 -1
  11. package/dist/context-sdk.d.ts +157 -39
  12. package/dist/context-sdk.d.ts.map +1 -1
  13. package/dist/context-sdk.js +896 -251
  14. package/dist/context-sdk.js.map +1 -1
  15. package/dist/context.d.ts +158 -5
  16. package/dist/context.d.ts.map +1 -1
  17. package/dist/context.js +75 -5
  18. package/dist/context.js.map +1 -1
  19. package/dist/index.d.ts +151 -19
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +590 -97
  22. package/dist/index.js.map +1 -1
  23. package/dist/lens-view.d.ts +0 -5
  24. package/dist/lens-view.d.ts.map +1 -1
  25. package/dist/lens-view.js +43 -1
  26. package/dist/lens-view.js.map +1 -1
  27. package/dist/migration-registry-loader.d.ts +20 -12
  28. package/dist/migration-registry-loader.d.ts.map +1 -1
  29. package/dist/migration-registry-loader.js +46 -17
  30. package/dist/migration-registry-loader.js.map +1 -1
  31. package/dist/migrations-store.d.ts +45 -18
  32. package/dist/migrations-store.d.ts.map +1 -1
  33. package/dist/migrations-store.js +56 -22
  34. package/dist/migrations-store.js.map +1 -1
  35. package/dist/ops-registry.d.ts +18 -0
  36. package/dist/ops-registry.d.ts.map +1 -1
  37. package/dist/ops-registry.js +474 -130
  38. package/dist/ops-registry.js.map +1 -1
  39. package/dist/promote-item.d.ts.map +1 -1
  40. package/dist/promote-item.js +41 -12
  41. package/dist/promote-item.js.map +1 -1
  42. package/dist/roadmap-plan.d.ts +121 -99
  43. package/dist/roadmap-plan.d.ts.map +1 -1
  44. package/dist/roadmap-plan.js +281 -345
  45. package/dist/roadmap-plan.js.map +1 -1
  46. package/dist/status-vocab.d.ts +12 -2
  47. package/dist/status-vocab.d.ts.map +1 -1
  48. package/dist/status-vocab.js +14 -1
  49. package/dist/status-vocab.js.map +1 -1
  50. package/package.json +2 -2
  51. package/samples/blocks/milestone.json +3 -0
  52. package/samples/blocks/session-notes.json +1 -0
  53. package/samples/conception.json +315 -15
  54. package/samples/migrations.json +8 -0
  55. package/samples/schemas/context-contracts.schema.json +4 -0
  56. package/samples/schemas/conventions.schema.json +4 -0
  57. package/samples/schemas/decisions.schema.json +4 -0
  58. package/samples/schemas/features.schema.json +4 -0
  59. package/samples/schemas/framework-gaps.schema.json +9 -0
  60. package/samples/schemas/issues.schema.json +28 -0
  61. package/samples/schemas/layer-plans.schema.json +4 -0
  62. package/samples/schemas/milestone.schema.json +79 -0
  63. package/samples/schemas/phase.schema.json +4 -0
  64. package/samples/schemas/rationale.schema.json +4 -0
  65. package/samples/schemas/requirements.schema.json +4 -0
  66. package/samples/schemas/research.schema.json +45 -2
  67. package/samples/schemas/session-notes.schema.json +89 -0
  68. package/samples/schemas/spec-reviews.schema.json +4 -0
  69. package/samples/schemas/story.schema.json +8 -0
  70. package/samples/schemas/tasks.schema.json +4 -0
  71. package/samples/schemas/verification.schema.json +4 -0
  72. package/samples/schemas/work-orders.schema.json +4 -0
  73. package/schemas/config.schema.json +90 -4
  74. package/schemas/migrations.schema.json +25 -0
  75. package/skill-narrative.md +8 -6
  76. package/skills/pi-context/SKILL.md +70 -63
  77. package/skills/pi-context/references/bundled-resources.md +5 -1
@@ -32,7 +32,13 @@
32
32
  * primitive constructors String(v) / Number(v) / Boolean(v); for
33
33
  * 'array' coercion uses [].concat(v) so a non-array value becomes a
34
34
  * single-element array (and an existing array passes through
35
- * unchanged); for 'object' coercion uses Object(v).
35
+ * unchanged); for 'object' coercion uses Object(v). 'map_each'
36
+ * addresses an ARRAY at the path (absent path / non-array value
37
+ * no-op) and maps its elements: table mode replaces each string
38
+ * element via a lookup (unmatched strings become
39
+ * { relation_type: <element>, item_endpoint: fallback ?? 'parent' };
40
+ * non-string elements pass through); set-on-each mode assigns
41
+ * field=value on every object element (non-objects skipped).
36
42
  *
37
43
  * Identity migrations are the pass-through case the operator declares when
38
44
  * the bumped schema is shape-compatible with the prior version; the closure
@@ -103,8 +109,8 @@ export declare function getProjectMigrationRegistry(cwd: string): MigrationRegis
103
109
  *
104
110
  * The cwd form (`getProjectMigrationRegistry`) resolves `cwd → substrateDir`
105
111
  * and delegates here, so when `substrateDir === resolveContextDir(cwd)` both
106
- * forms hit the SAME entry. The migrations-store mutation helpers invalidate
107
- * via `invalidateMigrationRegistry(cwd)`, which resolves the same dir key and
112
+ * forms hit the SAME entry. The migrations-store write funnel
113
+ * (`writeMigrationsFileForDir`) invalidates on the same resolved-dir key and
108
114
  * deletes the entry this builder populates — so a declare-then-read sequence
109
115
  * (mutate migrations.json, then `writeBlockForDir` re-reads) rebuilds against
110
116
  * the fresh declarations rather than serving a stale registry.
@@ -113,25 +119,27 @@ export declare function getProjectMigrationRegistryForDir(substrateDir: string):
113
119
  /**
114
120
  * Drop the cached MigrationRegistry for an explicit substrate directory (if
115
121
  * any). Deletes `path.resolve(substrateDir)` — the SAME key the read forms
116
- * populate, so an invalidation here is observed by the next read.
122
+ * populate, so an invalidation here is observed by the next read. Called by
123
+ * the migrations-store write funnel `writeMigrationsFileForDir` after each
124
+ * successful migrations.json write (the single invalidation site for the
125
+ * whole mutation surface).
117
126
  *
118
127
  * No-op when no entry is cached — invalidation is cheap and write-after-no-
119
128
  * cache is a normal pre-warming state.
120
129
  */
121
130
  export declare function invalidateMigrationRegistryForDir(substrateDir: string): void;
122
131
  /**
123
- * Drop the cached MigrationRegistry for `cwd` (if any). Called by each
124
- * migrations-store mutation helper after a successful write so the next
125
- * consumer reads the fresh declarations without process restart.
132
+ * Drop the cached MigrationRegistry for `cwd` (if any) the cwd convenience
133
+ * form for callers holding a project root rather than a resolved substrate
134
+ * dir. The canonical invalidation site is the migrations-store write funnel
135
+ * `writeMigrationsFileForDir`, which calls the ForDir form directly.
126
136
  *
127
137
  * Resolves `cwd → substrateDir` and delegates to the ForDir form so the
128
138
  * deleted key MATCHES the resolved-substrate-dir key the read path uses (the
129
139
  * Regression-B fix: pre-fix this deleted `path.resolve(cwd)`, a different key
130
- * from the dir-keyed read entry, leaving the post-declaration read stale). The
131
- * mutation helpers always call this after a successful `writeMigrationsFile`,
132
- * which itself required the pointer to resolve — so resolution is normally
133
- * safe; `tryResolveContextDir` guards the absent-pointer edge with a no-op
134
- * rather than throwing during invalidation.
140
+ * from the dir-keyed read entry, leaving the post-declaration read stale).
141
+ * `tryResolveContextDir` guards the absent-pointer edge with a no-op rather
142
+ * than throwing during invalidation.
135
143
  */
136
144
  export declare function invalidateMigrationRegistry(cwd: string): void;
137
145
  //# sourceMappingURL=migration-registry-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migration-registry-loader.d.ts","sourceRoot":"","sources":["../src/migration-registry-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAIH,OAAO,EAA4B,KAAK,aAAa,EAAoB,MAAM,uBAAuB,CAAC;AACvG,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA0I7E;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CAsB/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,CAcxF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAgB3G;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAEzE;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAE1E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iCAAiC,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,CAOzF;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI7D"}
1
+ {"version":3,"file":"migration-registry-loader.d.ts","sourceRoot":"","sources":["../src/migration-registry-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAIH,OAAO,EAA4B,KAAK,aAAa,EAAoB,MAAM,uBAAuB,CAAC;AACvG,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA6J7E;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CAsB/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,CAcxF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAgB3G;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAEzE;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAE1E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iCAAiC,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,CAOzF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI7D"}
@@ -32,7 +32,13 @@
32
32
  * primitive constructors String(v) / Number(v) / Boolean(v); for
33
33
  * 'array' coercion uses [].concat(v) so a non-array value becomes a
34
34
  * single-element array (and an existing array passes through
35
- * unchanged); for 'object' coercion uses Object(v).
35
+ * unchanged); for 'object' coercion uses Object(v). 'map_each'
36
+ * addresses an ARRAY at the path (absent path / non-array value
37
+ * no-op) and maps its elements: table mode replaces each string
38
+ * element via a lookup (unmatched strings become
39
+ * { relation_type: <element>, item_endpoint: fallback ?? 'parent' };
40
+ * non-string elements pass through); set-on-each mode assigns
41
+ * field=value on every object element (non-objects skipped).
36
42
  *
37
43
  * Identity migrations are the pass-through case the operator declares when
38
44
  * the bumped schema is shape-compatible with the prior version; the closure
@@ -48,14 +54,15 @@ import { createRegistry } from "./schema-migrations.js";
48
54
  * RESOLVED SUBSTRATE DIR (`path.resolve(substrateDir)`) — not by cwd. The cwd
49
55
  * and dir forms converge on this single key: the cwd forms first resolve
50
56
  * `cwd → substrateDir` via the bootstrap pointer, then read/invalidate the
51
- * dir-keyed entry. Invalidated by `invalidateMigrationRegistry(cwd)` /
52
- * `invalidateMigrationRegistryForDir(substrateDir)` after a successful
53
- * migrations.json mutation so the next consumer sees the new declarations
54
- * without restarting the process.
57
+ * dir-keyed entry. Invalidation fires inside the migrations-store write
58
+ * funnel `writeMigrationsFileForDir` (which every migrations.json write —
59
+ * both forms, all mutation helpers flows through), so every write leaves
60
+ * the next consumer reading the new declarations without restarting the
61
+ * process.
55
62
  *
56
63
  * Keying on the resolved dir (rather than cwd) is load-bearing for coherence:
57
64
  * the block writers read the registry via `getProjectMigrationRegistryForDir`
58
- * (dir-keyed); a migration declaration invalidates via the cwd form. If the
65
+ * (dir-keyed); the write funnel invalidates on the same resolved dir. If the
59
66
  * read key (resolved dir) and the invalidate key (raw cwd) diverged — which
60
67
  * they do whenever cwd ≠ substrateDir, e.g. `<root>` vs `<root>/.project` —
61
68
  * the post-declaration read would serve a stale pre-declaration registry. The
@@ -173,6 +180,26 @@ function applyOp(data, op) {
173
180
  read.parent[read.key] = next;
174
181
  return data;
175
182
  }
183
+ case "map_each": {
184
+ const read = walkPath(data, op.path, false);
185
+ if (read.parent === null || !(read.key in read.parent))
186
+ return data;
187
+ const arr = read.parent[read.key];
188
+ if (!Array.isArray(arr))
189
+ return data;
190
+ if (op.table) {
191
+ read.parent[read.key] = arr.map((el) => typeof el === "string"
192
+ ? (op.table[el] ?? { relation_type: el, item_endpoint: op.fallback ?? "parent" })
193
+ : el);
194
+ }
195
+ else if (op.field !== undefined) {
196
+ for (const el of arr) {
197
+ if (el && typeof el === "object")
198
+ el[op.field] = op.value;
199
+ }
200
+ }
201
+ return data;
202
+ }
176
203
  }
177
204
  }
178
205
  /**
@@ -293,8 +320,8 @@ export function getProjectMigrationRegistry(cwd) {
293
320
  *
294
321
  * The cwd form (`getProjectMigrationRegistry`) resolves `cwd → substrateDir`
295
322
  * and delegates here, so when `substrateDir === resolveContextDir(cwd)` both
296
- * forms hit the SAME entry. The migrations-store mutation helpers invalidate
297
- * via `invalidateMigrationRegistry(cwd)`, which resolves the same dir key and
323
+ * forms hit the SAME entry. The migrations-store write funnel
324
+ * (`writeMigrationsFileForDir`) invalidates on the same resolved-dir key and
298
325
  * deletes the entry this builder populates — so a declare-then-read sequence
299
326
  * (mutate migrations.json, then `writeBlockForDir` re-reads) rebuilds against
300
327
  * the fresh declarations rather than serving a stale registry.
@@ -311,7 +338,10 @@ export function getProjectMigrationRegistryForDir(substrateDir) {
311
338
  /**
312
339
  * Drop the cached MigrationRegistry for an explicit substrate directory (if
313
340
  * any). Deletes `path.resolve(substrateDir)` — the SAME key the read forms
314
- * populate, so an invalidation here is observed by the next read.
341
+ * populate, so an invalidation here is observed by the next read. Called by
342
+ * the migrations-store write funnel `writeMigrationsFileForDir` after each
343
+ * successful migrations.json write (the single invalidation site for the
344
+ * whole mutation surface).
315
345
  *
316
346
  * No-op when no entry is cached — invalidation is cheap and write-after-no-
317
347
  * cache is a normal pre-warming state.
@@ -320,18 +350,17 @@ export function invalidateMigrationRegistryForDir(substrateDir) {
320
350
  registryCache.delete(path.resolve(substrateDir));
321
351
  }
322
352
  /**
323
- * Drop the cached MigrationRegistry for `cwd` (if any). Called by each
324
- * migrations-store mutation helper after a successful write so the next
325
- * consumer reads the fresh declarations without process restart.
353
+ * Drop the cached MigrationRegistry for `cwd` (if any) the cwd convenience
354
+ * form for callers holding a project root rather than a resolved substrate
355
+ * dir. The canonical invalidation site is the migrations-store write funnel
356
+ * `writeMigrationsFileForDir`, which calls the ForDir form directly.
326
357
  *
327
358
  * Resolves `cwd → substrateDir` and delegates to the ForDir form so the
328
359
  * deleted key MATCHES the resolved-substrate-dir key the read path uses (the
329
360
  * Regression-B fix: pre-fix this deleted `path.resolve(cwd)`, a different key
330
- * from the dir-keyed read entry, leaving the post-declaration read stale). The
331
- * mutation helpers always call this after a successful `writeMigrationsFile`,
332
- * which itself required the pointer to resolve — so resolution is normally
333
- * safe; `tryResolveContextDir` guards the absent-pointer edge with a no-op
334
- * rather than throwing during invalidation.
361
+ * from the dir-keyed read entry, leaving the post-declaration read stale).
362
+ * `tryResolveContextDir` guards the absent-pointer edge with a no-op rather
363
+ * than throwing during invalidation.
335
364
  */
336
365
  export function invalidateMigrationRegistry(cwd) {
337
366
  const substrateDir = tryResolveContextDir(cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"migration-registry-loader.js","sourceRoot":"","sources":["../src/migration-registry-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration-registry-loader.js","sourceRoot":"","sources":["../src/migration-registry-loader.ts"],"names":[],"mappings":"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"}
@@ -21,8 +21,8 @@
21
21
  * - removeMigrationDecl requires the pair to be PRESENT; a missing target
22
22
  * throws.
23
23
  *
24
- * After each successful mutation the helper invokes
25
- * `invalidateMigrationRegistry(cwd)` (migration-registry-loader.ts) so the
24
+ * Every migrations.json write flows through `writeMigrationsFileForDir`,
25
+ * which invalidates the loader cache (migration-registry-loader.ts) so the
26
26
  * next `getProjectMigrationRegistry(cwd)` consumer reads the fresh
27
27
  * declarations without process restart. The store↔loader edge is mutually
28
28
  * cyclic (loader reads from store; store writes invalidate loader cache);
@@ -57,6 +57,13 @@ export type TransformOp = {
57
57
  op: "coerce";
58
58
  path: string;
59
59
  type: "string" | "number" | "boolean" | "array" | "object";
60
+ } | {
61
+ op: "map_each";
62
+ path: string;
63
+ table?: Record<string, Record<string, unknown>>;
64
+ fallback?: "parent" | "child";
65
+ field?: string;
66
+ value?: unknown;
60
67
  };
61
68
  export interface TransformSpec {
62
69
  operations: TransformOp[];
@@ -91,8 +98,8 @@ export declare function loadMigrationsFile(cwd: string): MigrationsFile | null;
91
98
  * block-api's writeTypedFile against the bundled migrations schema. `ctx` is
92
99
  * accepted for call-site parity with the rest of the substrate write surface;
93
100
  * the migrations schema declares no envelope author fields so stamping is a
94
- * structural no-op today (the loader-cache invalidation upstream of this call
95
- * is the side-effect that matters for read-after-write parity).
101
+ * structural no-op today (the loader-cache invalidation inside the ForDir
102
+ * funnel is the side-effect that matters for read-after-write parity).
96
103
  */
97
104
  export declare function writeMigrationsFile(cwd: string, file: MigrationsFile, ctx?: DispatchContext): void;
98
105
  /**
@@ -102,40 +109,60 @@ export declare function writeMigrationsFile(cwd: string, file: MigrationsFile, c
102
109
  * dir directly (no `.pi-context.json` pointer resolution). The cwd form is a
103
110
  * thin wrapper resolving the active dir; behaviour is byte-identical when called
104
111
  * via cwd. Same attestation-parity no-op semantics as the cwd form (the
105
- * migrations schema declares no envelope author fields). Does NOT invalidate any
106
- * loader cache the cache-invalidation side-effect lives on the
107
- * appendMigrationDecl mutation helpers, not the raw whole-file write.
112
+ * migrations schema declares no envelope author fields). Invalidates the loader
113
+ * cache for `substrateDir` after the write this funnel is the single path
114
+ * every migrations.json write (both forms, all mutation helpers) flows through,
115
+ * so every write is cache-coherent: the next registry consumer rebuilds from
116
+ * the fresh declarations.
108
117
  */
109
118
  export declare function writeMigrationsFileForDir(substrateDir: string, file: MigrationsFile, ctx?: DispatchContext): void;
110
119
  /**
111
120
  * Append a new MigrationDecl to the substrate. Op-correctness: the
112
121
  * (schemaName, fromVersion) pair must be ABSENT on-disk; collision throws.
113
- * Invalidates the loader cache for `cwd` after a successful write so the
114
- * next registry consumer reads the fresh declaration.
122
+ * The write flows through the `writeMigrationsFileForDir` funnel, which
123
+ * invalidates the loader cache so the next registry consumer reads the
124
+ * fresh declaration.
115
125
  */
116
126
  export declare function appendMigrationDecl(cwd: string, decl: MigrationDecl, ctx?: DispatchContext): void;
117
127
  /**
118
128
  * Dir-targeted twin of {@link appendMigrationDecl} (Cycle-1 `*ForDir` pattern).
119
129
  * Append a new MigrationDecl to the substrate at `substrateDir`. Op-correctness:
120
130
  * the (schemaName, fromVersion) pair must be ABSENT on-disk; collision throws.
121
- * Invalidates the loader cache for `substrateDir` after a successful write so
122
- * the next registry consumer reads the fresh declaration. The cwd form is a thin
123
- * wrapper resolving the active dir; behaviour is byte-identical when called via
124
- * cwd (resolveContextDir(cwd) invalidateMigrationRegistry(cwd) routes through
125
- * invalidateMigrationRegistryForDir on the same dir).
131
+ * The write flows through the `writeMigrationsFileForDir` funnel, which
132
+ * invalidates the loader cache for `substrateDir` so the next registry consumer
133
+ * reads the fresh declaration. The cwd form is a thin wrapper resolving the
134
+ * active dir; behaviour is byte-identical when called via cwd.
126
135
  */
127
136
  export declare function appendMigrationDeclForDir(substrateDir: string, decl: MigrationDecl, ctx?: DispatchContext): void;
128
137
  /**
129
138
  * Replace an existing MigrationDecl identified by (schemaName, fromVersion).
130
139
  * Op-correctness: target must be PRESENT; missing target throws. The whole
131
- * decl is replaced (no per-field merge). Invalidates the loader cache after a
132
- * successful write.
140
+ * decl is replaced (no per-field merge). The write flows through the
141
+ * `writeMigrationsFileForDir` funnel, which invalidates the loader cache.
133
142
  */
134
143
  export declare function replaceMigrationDecl(cwd: string, decl: MigrationDecl, ctx?: DispatchContext): void;
135
144
  /**
136
145
  * Remove an existing MigrationDecl identified by (schemaName, fromVersion).
137
- * Op-correctness: target must be PRESENT; missing target throws. Invalidates
138
- * the loader cache after a successful write.
146
+ * Op-correctness: target must be PRESENT; missing target throws. The write
147
+ * flows through the `writeMigrationsFileForDir` funnel, which invalidates the
148
+ * loader cache.
139
149
  */
140
150
  export declare function removeMigrationDecl(cwd: string, schemaName: string, fromVersion: string, ctx?: DispatchContext): void;
151
+ /**
152
+ * Ceremony seeding site (init / accept-all / install): copy the packaged
153
+ * catalog's `config`-schema MigrationDecl entries into the substrate's
154
+ * migrations.json so a catalog-born (or re-entered legacy) substrate carries
155
+ * the config migration chain BEFORE any config read walks it. Idempotent —
156
+ * a decl is appended only when its (schemaName, fromVersion) pair is absent
157
+ * on-disk; an existing entry is never replaced. Returns the appended edges
158
+ * (empty when everything was already present or the packaged catalog ships
159
+ * no migrations file). No-op on a nonexistent substrate dir — the seed heals
160
+ * substrates, it never materializes them (ceremonies that need the dir create
161
+ * it themselves before seeding).
162
+ */
163
+ export declare function seedCatalogConfigMigrationDecls(substrateDir: string, ctx?: DispatchContext): Array<{
164
+ schema: string;
165
+ from: string;
166
+ to: string;
167
+ }>;
141
168
  //# sourceMappingURL=migrations-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations-store.d.ts","sourceRoot":"","sources":["../src/migrations-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAc7D;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACpB;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5C;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;CAAE,CAAC;AAE9F,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,GAAG,uBAAuB,CAAC;IAC3C,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAiBpF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAErE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAElG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAEjH;AA6BD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAEjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAYhH;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAiBlG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAerH"}
1
+ {"version":3,"file":"migrations-store.d.ts","sourceRoot":"","sources":["../src/migrations-store.ts"],"names":[],"mappings":"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"}
@@ -21,8 +21,8 @@
21
21
  * - removeMigrationDecl requires the pair to be PRESENT; a missing target
22
22
  * throws.
23
23
  *
24
- * After each successful mutation the helper invokes
25
- * `invalidateMigrationRegistry(cwd)` (migration-registry-loader.ts) so the
24
+ * Every migrations.json write flows through `writeMigrationsFileForDir`,
25
+ * which invalidates the loader cache (migration-registry-loader.ts) so the
26
26
  * next `getProjectMigrationRegistry(cwd)` consumer reads the fresh
27
27
  * declarations without process restart. The store↔loader edge is mutually
28
28
  * cyclic (loader reads from store; store writes invalidate loader cache);
@@ -40,7 +40,7 @@ import path from "node:path";
40
40
  import { fileURLToPath } from "node:url";
41
41
  import { writeTypedFile } from "./block-api.js";
42
42
  import { migrationsPath, migrationsPathForDir, resolveContextDir } from "./context-dir.js";
43
- import { invalidateMigrationRegistry, invalidateMigrationRegistryForDir } from "./migration-registry-loader.js";
43
+ import { invalidateMigrationRegistryForDir } from "./migration-registry-loader.js";
44
44
  import { validateFromFile } from "./schema-validator.js";
45
45
  /**
46
46
  * Resolve the bundled migrations schema file. Mirrors the private
@@ -90,8 +90,8 @@ export function loadMigrationsFile(cwd) {
90
90
  * block-api's writeTypedFile against the bundled migrations schema. `ctx` is
91
91
  * accepted for call-site parity with the rest of the substrate write surface;
92
92
  * the migrations schema declares no envelope author fields so stamping is a
93
- * structural no-op today (the loader-cache invalidation upstream of this call
94
- * is the side-effect that matters for read-after-write parity).
93
+ * structural no-op today (the loader-cache invalidation inside the ForDir
94
+ * funnel is the side-effect that matters for read-after-write parity).
95
95
  */
96
96
  export function writeMigrationsFile(cwd, file, ctx) {
97
97
  writeMigrationsFileForDir(resolveContextDir(cwd), file, ctx);
@@ -103,12 +103,15 @@ export function writeMigrationsFile(cwd, file, ctx) {
103
103
  * dir directly (no `.pi-context.json` pointer resolution). The cwd form is a
104
104
  * thin wrapper resolving the active dir; behaviour is byte-identical when called
105
105
  * via cwd. Same attestation-parity no-op semantics as the cwd form (the
106
- * migrations schema declares no envelope author fields). Does NOT invalidate any
107
- * loader cache the cache-invalidation side-effect lives on the
108
- * appendMigrationDecl mutation helpers, not the raw whole-file write.
106
+ * migrations schema declares no envelope author fields). Invalidates the loader
107
+ * cache for `substrateDir` after the write this funnel is the single path
108
+ * every migrations.json write (both forms, all mutation helpers) flows through,
109
+ * so every write is cache-coherent: the next registry consumer rebuilds from
110
+ * the fresh declarations.
109
111
  */
110
112
  export function writeMigrationsFileForDir(substrateDir, file, ctx) {
111
113
  writeTypedFile(migrationsPathForDir(substrateDir), bundledMigrationsSchemaPath(), file, ctx, "migrations.json");
114
+ invalidateMigrationRegistryForDir(substrateDir);
112
115
  }
113
116
  /**
114
117
  * Compose an initial empty migrations file shape — used by the append helper
@@ -137,8 +140,9 @@ function findMigrationIndex(file, schemaName, fromVersion) {
137
140
  /**
138
141
  * Append a new MigrationDecl to the substrate. Op-correctness: the
139
142
  * (schemaName, fromVersion) pair must be ABSENT on-disk; collision throws.
140
- * Invalidates the loader cache for `cwd` after a successful write so the
141
- * next registry consumer reads the fresh declaration.
143
+ * The write flows through the `writeMigrationsFileForDir` funnel, which
144
+ * invalidates the loader cache so the next registry consumer reads the
145
+ * fresh declaration.
142
146
  */
143
147
  export function appendMigrationDecl(cwd, decl, ctx) {
144
148
  appendMigrationDeclForDir(resolveContextDir(cwd), decl, ctx);
@@ -147,11 +151,10 @@ export function appendMigrationDecl(cwd, decl, ctx) {
147
151
  * Dir-targeted twin of {@link appendMigrationDecl} (Cycle-1 `*ForDir` pattern).
148
152
  * Append a new MigrationDecl to the substrate at `substrateDir`. Op-correctness:
149
153
  * the (schemaName, fromVersion) pair must be ABSENT on-disk; collision throws.
150
- * Invalidates the loader cache for `substrateDir` after a successful write so
151
- * the next registry consumer reads the fresh declaration. The cwd form is a thin
152
- * wrapper resolving the active dir; behaviour is byte-identical when called via
153
- * cwd (resolveContextDir(cwd) invalidateMigrationRegistry(cwd) routes through
154
- * invalidateMigrationRegistryForDir on the same dir).
154
+ * The write flows through the `writeMigrationsFileForDir` funnel, which
155
+ * invalidates the loader cache for `substrateDir` so the next registry consumer
156
+ * reads the fresh declaration. The cwd form is a thin wrapper resolving the
157
+ * active dir; behaviour is byte-identical when called via cwd.
155
158
  */
156
159
  export function appendMigrationDeclForDir(substrateDir, decl, ctx) {
157
160
  const current = loadMigrationsFileForDir(substrateDir) ?? emptyMigrationsFile();
@@ -162,13 +165,12 @@ export function appendMigrationDeclForDir(substrateDir, decl, ctx) {
162
165
  const next = clone(current);
163
166
  next.migrations.push(decl);
164
167
  writeMigrationsFileForDir(substrateDir, next, ctx);
165
- invalidateMigrationRegistryForDir(substrateDir);
166
168
  }
167
169
  /**
168
170
  * Replace an existing MigrationDecl identified by (schemaName, fromVersion).
169
171
  * Op-correctness: target must be PRESENT; missing target throws. The whole
170
- * decl is replaced (no per-field merge). Invalidates the loader cache after a
171
- * successful write.
172
+ * decl is replaced (no per-field merge). The write flows through the
173
+ * `writeMigrationsFileForDir` funnel, which invalidates the loader cache.
172
174
  */
173
175
  export function replaceMigrationDecl(cwd, decl, ctx) {
174
176
  const current = loadMigrationsFile(cwd);
@@ -182,12 +184,12 @@ export function replaceMigrationDecl(cwd, decl, ctx) {
182
184
  const next = clone(current);
183
185
  next.migrations[idx] = decl;
184
186
  writeMigrationsFile(cwd, next, ctx);
185
- invalidateMigrationRegistry(cwd);
186
187
  }
187
188
  /**
188
189
  * Remove an existing MigrationDecl identified by (schemaName, fromVersion).
189
- * Op-correctness: target must be PRESENT; missing target throws. Invalidates
190
- * the loader cache after a successful write.
190
+ * Op-correctness: target must be PRESENT; missing target throws. The write
191
+ * flows through the `writeMigrationsFileForDir` funnel, which invalidates the
192
+ * loader cache.
191
193
  */
192
194
  export function removeMigrationDecl(cwd, schemaName, fromVersion, ctx) {
193
195
  const current = loadMigrationsFile(cwd);
@@ -201,6 +203,38 @@ export function removeMigrationDecl(cwd, schemaName, fromVersion, ctx) {
201
203
  const next = clone(current);
202
204
  next.migrations.splice(idx, 1);
203
205
  writeMigrationsFile(cwd, next, ctx);
204
- invalidateMigrationRegistry(cwd);
206
+ }
207
+ /**
208
+ * Ceremony seeding site (init / accept-all / install): copy the packaged
209
+ * catalog's `config`-schema MigrationDecl entries into the substrate's
210
+ * migrations.json so a catalog-born (or re-entered legacy) substrate carries
211
+ * the config migration chain BEFORE any config read walks it. Idempotent —
212
+ * a decl is appended only when its (schemaName, fromVersion) pair is absent
213
+ * on-disk; an existing entry is never replaced. Returns the appended edges
214
+ * (empty when everything was already present or the packaged catalog ships
215
+ * no migrations file). No-op on a nonexistent substrate dir — the seed heals
216
+ * substrates, it never materializes them (ceremonies that need the dir create
217
+ * it themselves before seeding).
218
+ */
219
+ export function seedCatalogConfigMigrationDecls(substrateDir, ctx) {
220
+ if (!fs.existsSync(substrateDir))
221
+ return [];
222
+ const here = path.dirname(fileURLToPath(import.meta.url));
223
+ const catalogPath = path.resolve(here, "..", "samples", "migrations.json");
224
+ if (!fs.existsSync(catalogPath))
225
+ return [];
226
+ const data = JSON.parse(fs.readFileSync(catalogPath, "utf-8"));
227
+ validateFromFile(bundledMigrationsSchemaPath(), data, `migrations.json (${catalogPath})`);
228
+ const catalog = data;
229
+ const configDecls = catalog.migrations.filter((m) => m.schemaName === "config");
230
+ const existing = loadMigrationsFileForDir(substrateDir);
231
+ const appended = [];
232
+ for (const decl of configDecls) {
233
+ if (existing && findMigrationIndex(existing, decl.schemaName, decl.fromVersion) >= 0)
234
+ continue;
235
+ appendMigrationDeclForDir(substrateDir, decl, ctx);
236
+ appended.push({ schema: decl.schemaName, from: decl.fromVersion, to: decl.toVersion });
237
+ }
238
+ return appended;
205
239
  }
206
240
  //# sourceMappingURL=migrations-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations-store.js","sourceRoot":"","sources":["../src/migrations-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations-store.js","sourceRoot":"","sources":["../src/migrations-store.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,21 @@
1
+ /**
2
+ * Op-registry for pi-context — the canonical list of substrate operations,
3
+ * each described once as an OpDefinition and projected onto the in-pi tool
4
+ * surface by registerAll(). This is a behavior-preserving relocation of the
5
+ * 45 inline pi.registerTool({...}) calls that previously lived in the
6
+ * extension factory in index.ts: name/label/description/promptSnippet/
7
+ * parameters are copied verbatim, and each tool's execute body becomes the
8
+ * op's run(cwd, params) with the uniform result wrapper
9
+ * `{ details: undefined, content: [{ type: "text", text: X }] }` reduced to
10
+ * `return X` (registerAll re-applies the wrapper identically for every op).
11
+ *
12
+ * Phase 1 of the pi-context-cli arc (analysis/2026-06-03-pi-context-cli-design-ledger.md):
13
+ * the registry is the single source the auto-tracking CLI will reflect. The
14
+ * authGated / surface fields are carried for that downstream consumer; all
15
+ * current pi-context ops are surface:"use" and authGated is left unset in this
16
+ * phase (the auth-gate at the pi-agent-dispatch layer remains the enforcement
17
+ * point, unchanged by this relocation).
18
+ */
1
19
  import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
20
  import { type TSchema } from "typebox";
3
21
  import type { DispatchContext } from "./dispatch-context.js";
@@ -1 +1 @@
1
- {"version":3,"file":"ops-registry.d.ts","sourceRoot":"","sources":["../src/ops-registry.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAGX,YAAY,EAEZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,OAAO,EAAQ,MAAM,SAAS,CAAC;AAkC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAgC7D,OAAO,EAA0B,KAAK,cAAc,EAAoC,MAAM,mBAAmB,CAAC;AAQlH;;;;;;;;;;;GAWG;AACH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AA4C7E;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAStD;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAStD;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;CAC3B;AA6BD,eAAO,MAAM,GAAG,EAAE,YAAY,EA+0D7B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,EAAsD,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,+BAA+B,EAAE,eAAe,EAgB5D,CAAC;AAEF;;;;;;GAMG;AACH,oBAAY,aAAa;IACxB,4FAA4F;IAC5F,cAAc,qBAAqB;IACnC;;;;;;;;;;;;OAYG;IACH,kBAAkB,yBAAyB;IAC3C;;;;;OAKG;IACH,UAAU,iBAAiB;IAC3B;;;OAGG;IACH,sBAAsB,4BAA4B;IAClD;;;;;OAKG;IACH,iBAAiB,uBAAuB;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAqB5C,CAAC;AAYF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,OAAO,EACf,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CAAE,GAC7C,eAAe,CAOjB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAwBlD"}
1
+ {"version":3,"file":"ops-registry.d.ts","sourceRoot":"","sources":["../src/ops-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAGX,YAAY,EAEZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,OAAO,EAAQ,MAAM,SAAS,CAAC;AAuC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAkC7D,OAAO,EAA0B,KAAK,cAAc,EAAoC,MAAM,mBAAmB,CAAC;AAQlH;;;;;;;;;;;GAWG;AACH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AA4C7E;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAStD;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAStD;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;CAC3B;AAkJD,eAAO,MAAM,GAAG,EAAE,YAAY,EAm8D7B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,EAAsD,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,+BAA+B,EAAE,eAAe,EAqB5D,CAAC;AAEF;;;;;;GAMG;AACH,oBAAY,aAAa;IACxB,4FAA4F;IAC5F,cAAc,qBAAqB;IACnC;;;;;;;;;;;;OAYG;IACH,kBAAkB,yBAAyB;IAC3C;;;;;OAKG;IACH,UAAU,iBAAiB;IAC3B;;;OAGG;IACH,sBAAsB,4BAA4B;IAClD;;;;;OAKG;IACH,iBAAiB,uBAAuB;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAqB5C,CAAC;AAYF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,OAAO,EACf,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CAAE,GAC7C,eAAe,CAOjB;AAiLD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAwBlD"}