@almadar/core 10.77.0 → 10.79.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.
@@ -1010,16 +1010,16 @@ declare const IdentityLedgerSchema: z.ZodObject<{
1010
1010
  * { name: 'status', type: 'enum', values: ['draft', 'published'] }
1011
1011
  * { name: 'authorId', type: 'relation', relation: { entity: 'User', cardinality: 'one' } }
1012
1012
  */
1013
- type FieldType = 'string' | 'number' | 'boolean' | 'date' | 'timestamp' | 'datetime' | 'email' | 'url' | 'phone' | 'uuid' | 'image' | 'money' | 'file' | 'array' | 'object' | 'enum' | 'relation' | 'trait' | 'slot' | 'pattern' | 'node' | 'event';
1013
+ type FieldType = 'string' | 'number' | 'boolean' | 'date' | 'timestamp' | 'datetime' | 'email' | 'url' | 'phone' | 'uuid' | 'image' | 'money' | 'file' | 'array' | 'object' | 'enum' | 'relation' | 'trait' | 'slot' | 'pattern' | 'node' | 'event' | 'scalar' | 'union' | 'opaque';
1014
1014
  /** Every `FieldType`, as a runtime array. Downstream imports this instead of
1015
1015
  * re-listing the union — five copies had already drifted apart. */
1016
- declare const FIELD_TYPES: readonly ["string", "number", "boolean", "date", "timestamp", "datetime", "email", "url", "phone", "uuid", "image", "money", "file", "array", "object", "enum", "relation", "trait", "slot", "pattern", "node", "event"];
1016
+ declare const FIELD_TYPES: readonly ["string", "number", "boolean", "date", "timestamp", "datetime", "email", "url", "phone", "uuid", "image", "money", "file", "array", "object", "enum", "relation", "trait", "slot", "pattern", "node", "event", "scalar", "union"];
1017
1017
  /** The semantic string domains — constrained strings, validatable by value. */
1018
1018
  declare const SEMANTIC_STRING_TYPES: readonly ["email", "url", "phone", "uuid", "image"];
1019
1019
  type SemanticStringType = (typeof SEMANTIC_STRING_TYPES)[number];
1020
1020
  /** Is this a semantic string domain (as opposed to a bare `string`)? */
1021
1021
  declare function isSemanticStringType(type: FieldType): type is SemanticStringType;
1022
- declare const FieldTypeSchema: z.ZodEnum<["string", "number", "boolean", "date", "timestamp", "datetime", "email", "url", "phone", "uuid", "image", "money", "file", "array", "object", "enum", "relation", "trait", "slot", "pattern", "node", "event"]>;
1022
+ declare const FieldTypeSchema: z.ZodEnum<["string", "number", "boolean", "date", "timestamp", "datetime", "email", "url", "phone", "uuid", "image", "money", "file", "array", "object", "enum", "relation", "trait", "slot", "pattern", "node", "event", "scalar", "union"]>;
1023
1023
  /**
1024
1024
  * Cardinality for relation fields.
1025
1025
  * Matches Rust compiler's Cardinality enum.
@@ -1103,12 +1103,12 @@ declare function isUuidValue(value: string): boolean;
1103
1103
  /** The value a `file`-typed entity field holds: an uploaded artifact.
1104
1104
  * `url` is a `data:` URI in mock/playground mode (size-ceilinged by the
1105
1105
  * mock adapter) or an object-storage URL in production. */
1106
- interface FileValue {
1106
+ type FileValue = {
1107
1107
  name: string;
1108
1108
  url: string;
1109
1109
  mimeType: string;
1110
1110
  sizeBytes: number;
1111
- }
1111
+ };
1112
1112
  /** Zod schema for {@link FileValue}. */
1113
1113
  declare const FileValueSchema: z.ZodObject<{
1114
1114
  name: z.ZodString;
@@ -1135,7 +1135,7 @@ declare function isSemanticStringValue(type: SemanticStringType, value: string):
1135
1135
  * Field-type tags that don't carry a type-dependent payload. The base
1136
1136
  * `EntityField` shape applies as-is.
1137
1137
  */
1138
- type ScalarFieldType = 'string' | 'number' | 'boolean' | 'date' | 'timestamp' | 'datetime' | 'email' | 'url' | 'phone' | 'uuid' | 'image' | 'money' | 'file' | 'trait' | 'slot' | 'pattern' | 'node' | 'event';
1138
+ type ScalarFieldType = 'string' | 'number' | 'boolean' | 'date' | 'timestamp' | 'datetime' | 'email' | 'url' | 'phone' | 'uuid' | 'image' | 'money' | 'file' | 'trait' | 'slot' | 'pattern' | 'node' | 'event' | 'scalar' | 'opaque';
1139
1139
  /** Fields shared across every variant. */
1140
1140
  type EntityFieldBase = {
1141
1141
  /**
@@ -1196,6 +1196,20 @@ type RelationEntityField = EntityFieldBase & {
1196
1196
  /** Relation target binding (entity + cardinality). */
1197
1197
  relation: RelationConfig;
1198
1198
  };
1199
+ /**
1200
+ * `type: 'union'` — a TAGGED union of struct variants (`.lolo`
1201
+ * `type DrawItem = DrawShape | DrawText`). `values` carries the variant NAMES
1202
+ * in declaration order; `properties` (from the base shape) carries each
1203
+ * variant's shape keyed by that name. The discriminator is the variant's own
1204
+ * literal-typed tag field, so selection is data-driven. Recursion is carried
1205
+ * BY NAME: a variant referring back to the union gets `values` with no
1206
+ * `properties` (mirrors `FieldType::Union` in orbital-core).
1207
+ */
1208
+ type UnionEntityField = EntityFieldBase & {
1209
+ type: 'union';
1210
+ /** Variant type names in declaration order. */
1211
+ values: string[];
1212
+ };
1199
1213
  /** `type: 'array'` — element schema in `items` strongly preferred but
1200
1214
  * optional for legacy compatibility with codegen-emitted scalar-array
1201
1215
  * fields (e.g. `{type: 'array', default: []}`). The lolo lowerer + Rust
@@ -1227,7 +1241,7 @@ type ObjectEntityField = EntityFieldBase & {
1227
1241
  * { name: 'authorId', type: 'relation', relation: { entity: 'User', cardinality: 'one' } }
1228
1242
  * { name: 'tags', type: 'array', items: { type: 'string' } }
1229
1243
  */
1230
- type EntityField = ScalarEntityField | EnumEntityField | RelationEntityField | ArrayEntityField | ObjectEntityField;
1244
+ type EntityField = ScalarEntityField | EnumEntityField | RelationEntityField | UnionEntityField | ArrayEntityField | ObjectEntityField;
1231
1245
  /**
1232
1246
  * Zod schema for `EntityField`. Preprocess normalizes:
1233
1247
  * - legacy `type` aliases (text → string, int → number, etc.)
@@ -1285,9 +1299,9 @@ declare const AssetAspectSchema: z.ZodEnum<["1:1", "16:9", "5:7", "8:1"]>;
1285
1299
  * rather than redeclaring, so board `.lolo` config and the render library
1286
1300
  * agree on one enum.
1287
1301
  */
1288
- declare const ANIMATION_NAMES: readonly ["idle", "walk", "attack", "hit", "death"];
1302
+ declare const ANIMATION_NAMES: readonly ["idle", "walk", "skate", "jump", "fall", "attack", "hit", "death"];
1289
1303
  type AnimationName = (typeof ANIMATION_NAMES)[number];
1290
- declare const AnimationNameSchema: z.ZodEnum<["idle", "walk", "attack", "hit", "death"]>;
1304
+ declare const AnimationNameSchema: z.ZodEnum<["idle", "walk", "skate", "jump", "fall", "attack", "hit", "death"]>;
1291
1305
  /**
1292
1306
  * Sheet file directions (physical PNG files a sprite sheet ships as).
1293
1307
  * Legacy hand-drawn packs ship only se/sw and mirror-flip for ne/nw (a cheat
@@ -1366,8 +1380,8 @@ interface SpriteSheetAtlas {
1366
1380
  directions: SpriteDirection[];
1367
1381
  /** Relative PNG sheet paths per direction. */
1368
1382
  sheets: Partial<Record<SpriteDirection, string>>;
1369
- /** Animation row layout keyed by animation name. */
1370
- animations: Partial<Record<AnimationName, AnimationDef>>;
1383
+ /** Animation row layout keyed by animation name. Unit sheets use the canonical `AnimationName` rows; one-shot fx sheets declare their own names (e.g. `burst`) — the manifest is authoritative for its rows. */
1384
+ animations: Partial<Record<string, AnimationDef>>;
1371
1385
  /**
1372
1386
  * Per-projection sheet PNGs (additive; absent on legacy atlases). `iso`
1373
1387
  * mirrors `sheets` (directional se/sw); the fixed cameras carry one sheet
@@ -1390,7 +1404,7 @@ declare const SpriteSheetAtlasSchema: z.ZodObject<{
1390
1404
  rows: z.ZodNumber;
1391
1405
  directions: z.ZodArray<z.ZodEnum<["se", "sw", "ne", "nw"]>, "many">;
1392
1406
  sheets: z.ZodRecord<z.ZodEnum<["se", "sw", "ne", "nw"]>, z.ZodString>;
1393
- animations: z.ZodRecord<z.ZodEnum<["idle", "walk", "attack", "hit", "death"]>, z.ZodObject<{
1407
+ animations: z.ZodRecord<z.ZodString, z.ZodObject<{
1394
1408
  row: z.ZodNumber;
1395
1409
  frames: z.ZodNumber;
1396
1410
  frameRate: z.ZodNumber;
@@ -1432,12 +1446,12 @@ declare const SpriteSheetAtlasSchema: z.ZodObject<{
1432
1446
  rows: number;
1433
1447
  directions: ("se" | "sw" | "ne" | "nw")[];
1434
1448
  sheets: Partial<Record<"se" | "sw" | "ne" | "nw", string>>;
1435
- animations: Partial<Record<"idle" | "walk" | "attack" | "hit" | "death", {
1449
+ animations: Record<string, {
1436
1450
  row: number;
1437
1451
  frames: number;
1438
1452
  frameRate: number;
1439
1453
  loop: boolean;
1440
- }>>;
1454
+ }>;
1441
1455
  type?: string | undefined;
1442
1456
  unit?: string | undefined;
1443
1457
  projections?: {
@@ -1454,12 +1468,12 @@ declare const SpriteSheetAtlasSchema: z.ZodObject<{
1454
1468
  rows: number;
1455
1469
  directions: ("se" | "sw" | "ne" | "nw")[];
1456
1470
  sheets: Partial<Record<"se" | "sw" | "ne" | "nw", string>>;
1457
- animations: Partial<Record<"idle" | "walk" | "attack" | "hit" | "death", {
1471
+ animations: Record<string, {
1458
1472
  row: number;
1459
1473
  frames: number;
1460
1474
  frameRate: number;
1461
1475
  loop: boolean;
1462
- }>>;
1476
+ }>;
1463
1477
  type?: string | undefined;
1464
1478
  unit?: string | undefined;
1465
1479
  projections?: {
@@ -2407,6 +2421,29 @@ declare function persistenceModeAllowsOverrides(persistence: EntityPersistence |
2407
2421
  type FieldValue = string | number | boolean | Date | null | string[] | FieldValue[] | {
2408
2422
  [key: string]: FieldValue | undefined;
2409
2423
  };
2424
+ /**
2425
+ * What a FORM CONTROL puts on the event bus — the closed set of shapes an
2426
+ * Input / Select / Checkbox / Date / multi-select / file field actually
2427
+ * produces.
2428
+ *
2429
+ * A TRANSPORT type, deliberately distinct from `FieldValue`, and the separation
2430
+ * is the point. `FieldValue` conflated two jobs: what a control emits, and what
2431
+ * an entity field holds. The second never needed it — an entity field always
2432
+ * has one declared type (`email : email!`, `age : number`) — so the openness
2433
+ * only travelled outward, degrading every generated `.lolo` payload to a
2434
+ * shapeless `object`.
2435
+ *
2436
+ * NOT recursive, and the variants are enumerated from what is actually emitted
2437
+ * rather than guessed. `FileValue` is here because the compiler put it here: a
2438
+ * scalar-only draft failed against the file field, which hands
2439
+ * `Form.handleChange` a `{ name, url, mimeType, sizeBytes }` record.
2440
+ *
2441
+ * The rule is Aeson's — enumerate the shapes that occur, keep the open type at
2442
+ * the boundary, convert on the way in. In `.lolo` that boundary is the
2443
+ * `(set @entity.X ?value)` of the receiving transition, where the entity
2444
+ * field's own declared type does the checking.
2445
+ */
2446
+ type ControlValue = string | number | boolean | null | string[] | FileValue;
2410
2447
  /**
2411
2448
  * Runtime guard for `FieldValue` — narrows interpreter-produced `unknown`
2412
2449
  * values at typed substrate boundaries (e.g. `IntegrationContext.http` body).
@@ -2464,7 +2501,7 @@ type EntityData = Record<string, EntityRow[]>;
2464
2501
  *
2465
2502
  * DO NOT EDIT MANUALLY — regenerated by almadar-pattern-sync `patterns` command.
2466
2503
  *
2467
- * Generated: 2026-08-31T09:49:17.821Z
2504
+ * Generated: 2026-09-02T02:13:41.002Z
2468
2505
  * Pattern count: 274
2469
2506
  */
2470
2507
 
@@ -3596,7 +3633,7 @@ interface PatternPropsMap {
3596
3633
  id?: string | SExpr;
3597
3634
  shape: string | SExpr;
3598
3635
  position: PatternPropValue | string | SExpr;
3599
- anchor?: PatternPropValue | string | SExpr;
3636
+ anchor?: string | SExpr;
3600
3637
  width?: number | string | SExpr;
3601
3638
  height?: number | string | SExpr;
3602
3639
  radiusX?: number | string | SExpr;
@@ -3631,12 +3668,13 @@ interface PatternPropsMap {
3631
3668
  id?: string | SExpr;
3632
3669
  position: PatternPropValue | string | SExpr;
3633
3670
  asset: PatternPropValue | string | SExpr;
3634
- anchor?: PatternPropValue | string | SExpr;
3671
+ anchor?: string | SExpr;
3635
3672
  width?: number | string | SExpr;
3636
3673
  height?: number | string | SExpr;
3637
3674
  frame?: PatternPropValue | string | SExpr;
3638
3675
  animation?: string | SExpr;
3639
3676
  loop?: boolean | string | SExpr;
3677
+ clockMs?: number | string | SExpr;
3640
3678
  flipX?: boolean | string | SExpr;
3641
3679
  rotation?: number | string | SExpr;
3642
3680
  opacity?: number | string | SExpr;
@@ -3652,7 +3690,7 @@ interface PatternPropsMap {
3652
3690
  id?: string | SExpr;
3653
3691
  text: string | SExpr;
3654
3692
  position: PatternPropValue | string | SExpr;
3655
- anchor?: PatternPropValue | string | SExpr;
3693
+ anchor?: string | SExpr;
3656
3694
  offsetX?: number | string | SExpr;
3657
3695
  offsetY?: number | string | SExpr;
3658
3696
  color: string | SExpr;
@@ -4435,6 +4473,8 @@ interface PatternPropsMap {
4435
4473
  height?: number | string | SExpr;
4436
4474
  backgroundColor?: string | SExpr;
4437
4475
  shapes?: unknown[] | string | SExpr;
4476
+ drawables?: unknown[] | string | SExpr;
4477
+ projector?: PatternPropValue | string | SExpr;
4438
4478
  readouts?: unknown[] | string | SExpr;
4439
4479
  traces?: unknown[] | string | SExpr;
4440
4480
  interactive?: boolean | string | SExpr;
@@ -4578,6 +4618,7 @@ interface PatternPropsMap {
4578
4618
  angles?: unknown[] | string | SExpr;
4579
4619
  hops?: unknown[] | string | SExpr;
4580
4620
  shapes?: unknown[] | string | SExpr;
4621
+ drawables?: unknown[] | string | SExpr;
4581
4622
  readouts?: unknown[] | string | SExpr;
4582
4623
  traces?: unknown[] | string | SExpr;
4583
4624
  interactive?: boolean | string | SExpr;
@@ -6897,4 +6938,4 @@ interface RenderUINode {
6897
6938
  renderItem?: RenderUINode;
6898
6939
  }
6899
6940
 
6900
- export { type ComposeEffect as $, type AnyPatternConfig as A, AssetCatalogEntrySchema as B, AssetCatalogSchema as C, type AssetDimension as D, type EntityField as E, type FieldValue as F, AssetDimensionSchema as G, AssetSchema as H, type IdentityLedger as I, type AssetUrl as J, type AtomicEffect as K, type BehaviorEffect as L, CAMERA_MODES as M, type CallServiceConfig as N, type OrbitalId as O, type PageId as P, type CallServiceEffect as Q, type RelationConfig as R, type ServiceRef as S, type TraitId as T, type UISlot as U, type Camera as V, type CameraMode as W, CameraModeSchema as X, CameraSchema as Y, type CheckpointLoadEffect as Z, type CheckpointSaveEffect as _, type EntityPersistence as a, type PatternPropsMap as a$, type DerefEffect as a0, type DespawnEffect as a1, type DoEffect as a2, ENTITY_ROLES as a3, type EffectInput as a4, EffectSchema as a5, type EmitConfig as a6, type EmitEffect as a7, type EntityData as a8, type EntityFieldInput as a9, type LedgerEntry as aA, LedgerEntrySchema as aB, type LedgerKind as aC, LedgerKindSchema as aD, type LlmEffect as aE, type LogEffect as aF, type McpServiceDef as aG, McpServiceDefSchema as aH, type MemoryEffect as aI, type NavigateBackEffect as aJ, type NavigateEffect as aK, type NavigateOptions as aL, type NnConfig as aM, type NnLayer as aN, type NotifyEffect as aO, type ObjectEntityField as aP, type OrbitalEntity as aQ, type OrbitalEntityInput as aR, OrbitalEntitySchema as aS, OrbitalIdSchema as aT, type OsEffect as aU, PATTERN_TYPES as aV, PageIdSchema as aW, type PaletteEntryId as aX, PaletteEntryIdSchema as aY, type PatternConfig as aZ, type PatternProps as a_, EntityFieldSchema as aa, EntityIdSchema as ab, EntityPersistenceSchema as ac, type EntityRole as ad, EntityRoleSchema as ae, EntitySchema as af, type EntityWith as ag, type EnumEntityField as ah, type EvaluateConfig as ai, type EvaluateEffect as aj, EventIdSchema as ak, FIELD_TYPES as al, type FetchEffect as am, type FetchOptions as an, type FetchResult as ao, type Field as ap, FieldSchema as aq, type FieldType as ar, FieldTypeSchema as as, type FileValue as at, FileValueSchema as au, type ForwardConfig as av, type ForwardEffect as aw, type IdForKind as ax, type IdKind as ay, IdentityLedgerSchema as az, type EventId as b, TraitIdSchema as b$, type PatternType as b0, type PersistData as b1, type PersistEffect as b2, type PersistEmitConfig as b3, type RefEffect as b4, RelationConfigSchema as b5, type RelationEntityField as b6, type RenderChildrenMap as b7, type RenderItemLambda as b8, type RenderUINode as b9, ServiceTypeSchema as bA, type SessionEffect as bB, type SetEffect as bC, type SheetProjection as bD, SheetProjectionSchema as bE, type SocketEvents as bF, SocketEventsSchema as bG, type SocketServiceDef as bH, SocketServiceDefSchema as bI, type SpawnEffect as bJ, type SpriteDirection as bK, SpriteDirectionSchema as bL, type SpriteSheetAtlas as bM, type SpriteSheetAtlasInput as bN, SpriteSheetAtlasSchema as bO, type SubTexture as bP, SubTextureSchema as bQ, type SwapEffect as bR, type TextureAtlas as bS, TextureAtlasSchema as bT, type ThemeId as bU, ThemeIdSchema as bV, type Tilesheet as bW, TilesheetSchema as bX, type TraceEffect as bY, type TrainConfig as bZ, type TrainEffect as b_, type ResolvedPatternProps as ba, type RestAuthConfig as bb, RestAuthConfigSchema as bc, type RestServiceDef as bd, RestServiceDefSchema as be, SEMANTIC_STRING_TYPES as bf, SERVICE_TYPES as bg, SHEET_PROJECTIONS as bh, SPRITE_DIRECTIONS as bi, type ScalarEntityField as bj, type ScenePos as bk, ScenePosSchema as bl, type SemanticAssetRef as bm, type SemanticAssetRefInput as bn, SemanticAssetRefSchema as bo, type SemanticStringType as bp, ServiceDefinitionSchema as bq, type ServiceId as br, ServiceIdSchema as bs, type ServiceParams as bt, type ServiceParamsValue as bu, type ServiceRefObject as bv, ServiceRefObjectSchema as bw, ServiceRefSchema as bx, ServiceRefStringSchema as by, type ServiceType as bz, type Effect as c, parseAssetKey as c$, type TypedEffect as c0, UISlotSchema as c1, UI_SLOTS as c2, VISUAL_STYLES as c3, type ValidateEffect as c4, type VisualStyle as c5, VisualStyleSchema as c6, type WatchEffect as c7, type WatchOptions as c8, asEntityId as c9, isFileValue as cA, isMcpService as cB, isOrbitalId as cC, isPageId as cD, isPaletteEntryId as cE, isPhoneValue as cF, isRestService as cG, isRuntimeEntity as cH, isSExprEffect as cI, isSemanticStringType as cJ, isSemanticStringValue as cK, isServiceId as cL, isServiceReference as cM, isServiceReferenceObject as cN, isSocketService as cO, isThemeId as cP, isTraitId as cQ, isUrlValue as cR, isUuidValue as cS, isValidPatternType as cT, ledgerCurName as cU, ledgerRename as cV, ledgerResolveName as cW, mintId as cX, navigate as cY, navigateBack as cZ, notify as c_, asEventId as ca, asOrbitalId as cb, asPageId as cc, asPaletteEntryId as cd, asServiceId as ce, asThemeId as cf, asTraitId as cg, atomic as ch, callService as ci, createAssetKey as cj, deref as ck, deriveCollection as cl, despawn as cm, doEffects as cn, emit as co, findService as cp, getDefaultAnimationsForRole as cq, getServiceNames as cr, hasService as cs, idKindOf as ct, idPrefix as cu, isEffect as cv, isEmailValue as cw, isEntityId as cx, isEventId as cy, isFieldValue as cz, type EntityId as d, parseServiceRef as d0, persist as d1, persistenceModeAllowsOverrides as d2, ref as d3, renderUI as d4, set as d5, spawn as d6, swap as d7, validateAssetAnimations as d8, watch as d9, type Entity as e, type EntityRow as f, type ServiceDefinition as g, type RenderBinding as h, type RenderUIEffect as i, ANIMATION_NAMES as j, ASSET_ASPECTS as k, ASSET_DIMENSIONS as l, type AgentEffect as m, type AnimationDef as n, type AnimationDefInput as o, AnimationDefSchema as p, type AnimationName as q, AnimationNameSchema as r, type ApplicationEffect as s, type ArrayEntityField as t, type Asset as u, type AssetAspect as v, AssetAspectSchema as w, type AssetCatalog as x, type AssetCatalogEntry as y, type AssetCatalogEntryInput as z };
6941
+ export { type ComposeEffect as $, type AnyPatternConfig as A, AssetCatalogEntrySchema as B, AssetCatalogSchema as C, type AssetDimension as D, type EntityField as E, type FieldValue as F, AssetDimensionSchema as G, AssetSchema as H, type IdentityLedger as I, type AssetUrl as J, type AtomicEffect as K, type BehaviorEffect as L, CAMERA_MODES as M, type CallServiceConfig as N, type OrbitalId as O, type PageId as P, type CallServiceEffect as Q, type RelationConfig as R, type ServiceRef as S, type TraitId as T, type UISlot as U, type Camera as V, type CameraMode as W, CameraModeSchema as X, CameraSchema as Y, type CheckpointLoadEffect as Z, type CheckpointSaveEffect as _, type EntityPersistence as a, type PatternProps as a$, type ControlValue as a0, type DerefEffect as a1, type DespawnEffect as a2, type DoEffect as a3, ENTITY_ROLES as a4, type EffectInput as a5, EffectSchema as a6, type EmitConfig as a7, type EmitEffect as a8, type EntityData as a9, IdentityLedgerSchema as aA, type LedgerEntry as aB, LedgerEntrySchema as aC, type LedgerKind as aD, LedgerKindSchema as aE, type LlmEffect as aF, type LogEffect as aG, type McpServiceDef as aH, McpServiceDefSchema as aI, type MemoryEffect as aJ, type NavigateBackEffect as aK, type NavigateEffect as aL, type NavigateOptions as aM, type NnConfig as aN, type NnLayer as aO, type NotifyEffect as aP, type ObjectEntityField as aQ, type OrbitalEntity as aR, type OrbitalEntityInput as aS, OrbitalEntitySchema as aT, OrbitalIdSchema as aU, type OsEffect as aV, PATTERN_TYPES as aW, PageIdSchema as aX, type PaletteEntryId as aY, PaletteEntryIdSchema as aZ, type PatternConfig as a_, type EntityFieldInput as aa, EntityFieldSchema as ab, EntityIdSchema as ac, EntityPersistenceSchema as ad, type EntityRole as ae, EntityRoleSchema as af, EntitySchema as ag, type EntityWith as ah, type EnumEntityField as ai, type EvaluateConfig as aj, type EvaluateEffect as ak, EventIdSchema as al, FIELD_TYPES as am, type FetchEffect as an, type FetchOptions as ao, type FetchResult as ap, type Field as aq, FieldSchema as ar, type FieldType as as, FieldTypeSchema as at, type FileValue as au, FileValueSchema as av, type ForwardConfig as aw, type ForwardEffect as ax, type IdForKind as ay, type IdKind as az, type EventId as b, type TrainEffect as b$, type PatternPropsMap as b0, type PatternType as b1, type PersistData as b2, type PersistEffect as b3, type PersistEmitConfig as b4, type RefEffect as b5, RelationConfigSchema as b6, type RelationEntityField as b7, type RenderChildrenMap as b8, type RenderItemLambda as b9, type ServiceType as bA, ServiceTypeSchema as bB, type SessionEffect as bC, type SetEffect as bD, type SheetProjection as bE, SheetProjectionSchema as bF, type SocketEvents as bG, SocketEventsSchema as bH, type SocketServiceDef as bI, SocketServiceDefSchema as bJ, type SpawnEffect as bK, type SpriteDirection as bL, SpriteDirectionSchema as bM, type SpriteSheetAtlas as bN, type SpriteSheetAtlasInput as bO, SpriteSheetAtlasSchema as bP, type SubTexture as bQ, SubTextureSchema as bR, type SwapEffect as bS, type TextureAtlas as bT, TextureAtlasSchema as bU, type ThemeId as bV, ThemeIdSchema as bW, type Tilesheet as bX, TilesheetSchema as bY, type TraceEffect as bZ, type TrainConfig as b_, type RenderUINode as ba, type ResolvedPatternProps as bb, type RestAuthConfig as bc, RestAuthConfigSchema as bd, type RestServiceDef as be, RestServiceDefSchema as bf, SEMANTIC_STRING_TYPES as bg, SERVICE_TYPES as bh, SHEET_PROJECTIONS as bi, SPRITE_DIRECTIONS as bj, type ScalarEntityField as bk, type ScenePos as bl, ScenePosSchema as bm, type SemanticAssetRef as bn, type SemanticAssetRefInput as bo, SemanticAssetRefSchema as bp, type SemanticStringType as bq, ServiceDefinitionSchema as br, type ServiceId as bs, ServiceIdSchema as bt, type ServiceParams as bu, type ServiceParamsValue as bv, type ServiceRefObject as bw, ServiceRefObjectSchema as bx, ServiceRefSchema as by, ServiceRefStringSchema as bz, type Effect as c, notify as c$, TraitIdSchema as c0, type TypedEffect as c1, UISlotSchema as c2, UI_SLOTS as c3, VISUAL_STYLES as c4, type ValidateEffect as c5, type VisualStyle as c6, VisualStyleSchema as c7, type WatchEffect as c8, type WatchOptions as c9, isFieldValue as cA, isFileValue as cB, isMcpService as cC, isOrbitalId as cD, isPageId as cE, isPaletteEntryId as cF, isPhoneValue as cG, isRestService as cH, isRuntimeEntity as cI, isSExprEffect as cJ, isSemanticStringType as cK, isSemanticStringValue as cL, isServiceId as cM, isServiceReference as cN, isServiceReferenceObject as cO, isSocketService as cP, isThemeId as cQ, isTraitId as cR, isUrlValue as cS, isUuidValue as cT, isValidPatternType as cU, ledgerCurName as cV, ledgerRename as cW, ledgerResolveName as cX, mintId as cY, navigate as cZ, navigateBack as c_, asEntityId as ca, asEventId as cb, asOrbitalId as cc, asPageId as cd, asPaletteEntryId as ce, asServiceId as cf, asThemeId as cg, asTraitId as ch, atomic as ci, callService as cj, createAssetKey as ck, deref as cl, deriveCollection as cm, despawn as cn, doEffects as co, emit as cp, findService as cq, getDefaultAnimationsForRole as cr, getServiceNames as cs, hasService as ct, idKindOf as cu, idPrefix as cv, isEffect as cw, isEmailValue as cx, isEntityId as cy, isEventId as cz, type EntityId as d, parseAssetKey as d0, parseServiceRef as d1, persist as d2, persistenceModeAllowsOverrides as d3, ref as d4, renderUI as d5, set as d6, spawn as d7, swap as d8, validateAssetAnimations as d9, watch as da, type Entity as e, type EntityRow as f, type ServiceDefinition as g, type RenderBinding as h, type RenderUIEffect as i, ANIMATION_NAMES as j, ASSET_ASPECTS as k, ASSET_DIMENSIONS as l, type AgentEffect as m, type AnimationDef as n, type AnimationDefInput as o, AnimationDefSchema as p, type AnimationName as q, AnimationNameSchema as r, type ApplicationEffect as s, type ArrayEntityField as t, type Asset as u, type AssetAspect as v, AssetAspectSchema as w, type AssetCatalog as x, type AssetCatalogEntry as y, type AssetCatalogEntryInput as z };
@@ -1,4 +1,4 @@
1
- import { O as OrbitalSchema } from './schema-Czlrw3bA.js';
1
+ import { O as OrbitalSchema } from './schema-CkTuSx6F.js';
2
2
  import { S as SExpr } from './expression-Fk8bQWef.js';
3
3
 
4
4
  /**
@@ -1,10 +1,26 @@
1
- import { h as FactoryParamValue, c as FactoryConfigTier, b as FactoryConfigParam, F as FactoryCallSite, j as FactorySignature, R as RuleOverlay, p as RuleOverlayEntry, o as PresentationOverlay, T as TraitOverlay } from '../types-Cb51Jqxe.js';
2
- export { a as FactoryCallSiteParams, d as FactoryEntitySignature, e as FactoryEventSignature, f as FactoryExposure, g as FactoryPageSignature, i as FactoryProvenance, k as FactorySignatureCatalog, l as FactorySignatureEntityField, m as FactoryTraitSignature, J as JsonSchema, n as JsonSchemaType, O as OwnershipOverlayEntry, P as PresentationNavItem, S as SchemaFieldType, q as TraitOverlayEntry, r as TraitOverlayListener } from '../types-Cb51Jqxe.js';
3
- import { a as EntityPersistence, E as EntityField } from '../effect-BHaHSAvM.js';
4
- import { a as TraitReference } from '../trait-DCmf5iRN.js';
1
+ import { k as FactorySignatureCatalog, h as FactoryParamValue, c as FactoryConfigTier, b as FactoryConfigParam, F as FactoryCallSite, j as FactorySignature, R as RuleOverlay, p as RuleOverlayEntry, o as PresentationOverlay, T as TraitOverlay, J as JsonSchema } from '../types-B53Myv7U.js';
2
+ export { a as FactoryCallSiteParams, d as FactoryEntitySignature, e as FactoryEventSignature, f as FactoryExposure, g as FactoryPageSignature, i as FactoryProvenance, l as FactorySignatureEntityField, m as FactoryTraitSignature, n as JsonSchemaType, O as OwnershipOverlayEntry, P as PresentationNavItem, S as SchemaFieldType, q as TraitOverlayEntry, r as TraitOverlayListener } from '../types-B53Myv7U.js';
3
+ import { a as EntityPersistence, E as EntityField } from '../effect-Mx_niZdY.js';
4
+ import { a as TraitReference } from '../trait-B1fI0lTU.js';
5
5
  export { J as JsonValue } from '../expression-Fk8bQWef.js';
6
6
  import 'zod';
7
7
 
8
+ /**
9
+ * Rehydrate `overridableConfigKeys` from a catalog's `knobDefs` table,
10
+ * in place, and drop the wire-only `overridableConfigKeyRefs`.
11
+ *
12
+ * Call this immediately after parsing a catalog and before handing it to any
13
+ * consumer — every consumer reads `overridableConfigKeys` and must never see
14
+ * a signature mid-rehydration.
15
+ *
16
+ * A catalog with no `knobDefs` is returned untouched, which is what makes the
17
+ * format change backward compatible: old catalogs still carry their knobs
18
+ * inline. An out-of-range or missing ref is skipped rather than throwing —
19
+ * a truncated table should degrade to fewer knobs, not take down every
20
+ * consumer of the catalog.
21
+ */
22
+ declare function rehydrateKnobDefs(catalog: FactorySignatureCatalog): FactorySignatureCatalog;
23
+
8
24
  /**
9
25
  * Typed questionnaire surface — shapes the studio renders + answers.
10
26
  *
@@ -403,4 +419,24 @@ type CallSiteDiff = {
403
419
  };
404
420
  declare function diffFactoryCalls(prior: ReadonlyArray<FactoryCallSite>, next: ReadonlyArray<FactoryCallSite>): ReadonlyArray<CallSiteDiff>;
405
421
 
406
- export { type CallSiteDiff, type DomainQuestion, type DomainQuestionAnswer, type DomainQuestionAnswers, type DomainQuestionInputType, type FactoryCallPlanMutation, type FactoryCallPlanMutationTemplate, type FactoryCallPlanState, FactoryCallSite, FactoryConfigParam, FactoryConfigTier, FactoryParamValue, FactorySignature, type OrbitalCallInput, PresentationOverlay, RuleOverlay, RuleOverlayEntry, TraitOverlay, type TranslationBinding, type TranslationResult, type TranslationWarning, answerToMutations, answersToMutations, applyFactoryCallPlanMutation, deriveInputType, diffFactoryCalls, generateQuestions, translateOverlaysToParams };
422
+ declare function signatureToParamsSchema(signature: FactorySignature, options?: {
423
+ readonly themeNames?: readonly string[];
424
+ }): JsonSchema;
425
+ /**
426
+ * The standing form of the self-reference bug: **a closed enum must not be
427
+ * empty.** An empty `enum` permits nothing, so every value the model can
428
+ * produce is rejected and the HIT demotes with no path back — strictly worse
429
+ * than a wrong default, and invisible because each individual construct is
430
+ * still legal JSON Schema.
431
+ *
432
+ * This is deliberately the GENERAL check rather than a second per-slot filter.
433
+ * Each enum here is built by projecting one candidate list across many slots
434
+ * (traits, entities, events, patterns, themes), and every such projection can
435
+ * narrow to nothing for some signature — the trait case did, at 1,238 of 1,238
436
+ * offers, and was found only because a scan happened to trip on it. Anything
437
+ * that empties a candidate set now fails the bake loudly instead of shipping a
438
+ * schema the compiler will always reject.
439
+ */
440
+ declare function assertNoUnsatisfiableEnum(node: JsonSchema, where: string, path?: string): void;
441
+
442
+ export { type CallSiteDiff, type DomainQuestion, type DomainQuestionAnswer, type DomainQuestionAnswers, type DomainQuestionInputType, type FactoryCallPlanMutation, type FactoryCallPlanMutationTemplate, type FactoryCallPlanState, FactoryCallSite, FactoryConfigParam, FactoryConfigTier, FactoryParamValue, FactorySignature, FactorySignatureCatalog, JsonSchema, type OrbitalCallInput, PresentationOverlay, RuleOverlay, RuleOverlayEntry, TraitOverlay, type TranslationBinding, type TranslationResult, type TranslationWarning, answerToMutations, answersToMutations, applyFactoryCallPlanMutation, assertNoUnsatisfiableEnum, deriveInputType, diffFactoryCalls, generateQuestions, rehydrateKnobDefs, signatureToParamsSchema, translateOverlaysToParams };