@almadar/core 2.12.0 → 2.13.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.
@@ -195,10 +195,14 @@ type ExpressionInput = z.input<typeof ExpressionSchema>;
195
195
  interface EvalContext {
196
196
  [key: string]: string | number | boolean | Date | null | string[] | EvalContext | undefined;
197
197
  }
198
- /** Typed event payload map. */
199
- type EventPayload = Record<string, string | number | boolean | null | undefined>;
200
- /** Structured log/event metadata. Constrains values to serializable types. */
201
- type LogMeta = Record<string, string | number | boolean | null | undefined | Error>;
198
+ /** Typed event payload map. Recursive to support nested objects like `{ data: { id: "..." } }`. */
199
+ interface EventPayload {
200
+ [key: string]: string | number | boolean | null | undefined | EventPayload;
201
+ }
202
+ /** Structured log/event metadata. Recursive to support nested log data. */
203
+ interface LogMeta {
204
+ [key: string]: string | number | boolean | null | undefined | Error | LogMeta;
205
+ }
202
206
 
203
207
  /**
204
208
  * Field Types for Orbital Units
@@ -719,7 +723,7 @@ interface OrbitalEntity {
719
723
  /** Entity fields */
720
724
  fields: EntityField[];
721
725
  /** Pre-authored instances (seed data or static reference data) */
722
- instances?: Record<string, unknown>[];
726
+ instances?: EntityRow[];
723
727
  /** Auto-add createdAt/updatedAt timestamps */
724
728
  timestamps?: boolean;
725
729
  /** Soft delete support */
@@ -1143,6 +1147,15 @@ declare const PageSchema: z.ZodObject<{
1143
1147
  isInitial?: boolean | undefined;
1144
1148
  }>;
1145
1149
 
1150
+ /**
1151
+ * Effect Types (Self-Contained)
1152
+ *
1153
+ * Defines effect types for trait transitions and ticks.
1154
+ * Effects are S-expressions (arrays) that describe actions to perform.
1155
+ *
1156
+ * @packageDocumentation
1157
+ */
1158
+
1146
1159
  /**
1147
1160
  * Known UI slots where content can be rendered
1148
1161
  */
@@ -1591,10 +1604,14 @@ declare function watch(binding: string, event: string, options: WatchOptions): W
1591
1604
  * // returns ["atomic", ["set", "@entity.x", 10], ["set", "@entity.y", 20]]
1592
1605
  */
1593
1606
  declare function atomic(...effects: SExpr[]): AtomicEffect;
1607
+ /** Resolved pattern props for render-ui effects at runtime. Recursive for nested pattern configs. */
1608
+ interface ResolvedPatternProps {
1609
+ [prop: string]: string | number | boolean | null | undefined | ResolvedPatternProps | ResolvedPatternProps[];
1610
+ }
1594
1611
  /** A node in a render-ui effect tree. */
1595
1612
  interface RenderUINode {
1596
1613
  type: string;
1597
- props?: Record<string, FieldValue | string | undefined>;
1614
+ props?: ResolvedPatternProps;
1598
1615
  children?: RenderUINode[];
1599
1616
  content?: string;
1600
1617
  entity?: string;
@@ -14603,4 +14620,4 @@ declare function safeParseOrbitalSchema(data: unknown): z.SafeParseReturnType<{
14603
14620
  type OrbitalSchemaInput = z.input<typeof OrbitalSchemaSchema>;
14604
14621
  type OrbitalConfigInput = z.input<typeof OrbitalConfigSchema>;
14605
14622
 
14606
- export { type Effect as $, AGENT_DOMAIN_CATEGORIES as A, type CustomPatternDefinitionInput as B, CORE_BINDINGS as C, CustomPatternDefinitionSchema as D, type EntityField as E, type CustomPatternMap as F, type CustomPatternMapInput as G, CustomPatternMapSchema as H, type DerefEffect as I, type DesignPreferences as J, type DesignPreferencesInput as K, DesignPreferencesSchema as L, type DesignTokens as M, type DesignTokensInput as N, type OrbitalDefinition as O, type Page as P, DesignTokensSchema as Q, type DomainCategory as R, type State as S, type TraitEventContract as T, DomainCategorySchema as U, type DomainContext as V, type DomainContextInput as W, DomainContextSchema as X, type DomainVocabulary as Y, DomainVocabularySchema as Z, ENTITY_ROLES as _, type EntityPersistence as a, type OrbitalPageInput as a$, type EffectInput as a0, EffectSchema as a1, type EntityData as a2, type EntityFieldInput as a3, EntityFieldSchema as a4, EntityPersistenceSchema as a5, type EntityRef as a6, EntityRefSchema as a7, EntityRefStringSchema as a8, type EntityRole as a9, FieldSchema as aA, type FieldType as aB, FieldTypeSchema as aC, type FieldValue as aD, type Orbital as aE, GAME_TYPES as aF, type GameSubCategory as aG, GameSubCategorySchema as aH, type GameType as aI, GameTypeSchema as aJ, type Guard as aK, type GuardInput as aL, GuardSchema as aM, type LogMeta as aN, type McpServiceDef as aO, McpServiceDefSchema as aP, type NodeClassification as aQ, NodeClassificationSchema as aR, type OrbitalConfig as aS, type OrbitalConfigInput as aT, OrbitalConfigSchema as aU, OrbitalDefinitionSchema as aV, type OrbitalEntity as aW, type OrbitalEntityInput as aX, OrbitalEntitySchema as aY, type OrbitalInput as aZ, type OrbitalPage as a_, EntityRoleSchema as aa, type EntityRow as ab, EntitySchema as ac, type EntitySemanticRole as ad, EntitySemanticRoleSchema as ae, type EvalContext as af, type Event as ag, type EventInput as ah, type EventListener as ai, EventListenerSchema as aj, type EventPayload as ak, type EventPayloadField as al, EventPayloadFieldSchema as am, EventSchema as an, type EventScope as ao, EventScopeSchema as ap, type EventSemanticRole as aq, EventSemanticRoleSchema as ar, type EventSource as as, EventSourceSchema as at, type Expression as au, type ExpressionInput as av, ExpressionSchema as aw, type Field as ax, type FieldFormat as ay, FieldFormatSchema as az, type OrbitalSchema as b, StateSchema as b$, OrbitalPageSchema as b0, type OrbitalPageStrictInput as b1, OrbitalPageStrictSchema as b2, type OrbitalSchemaInput as b3, OrbitalSchemaSchema as b4, type OrbitalTraitRef as b5, OrbitalTraitRefSchema as b6, type OrbitalUnit as b7, OrbitalUnitSchema as b8, OrbitalSchema$1 as b9, type RestServiceDef as bA, RestServiceDefSchema as bB, SERVICE_TYPES as bC, type SExpr as bD, type SExprAtom as bE, SExprAtomSchema as bF, type SExprInput as bG, SExprSchema as bH, type SemanticAssetRef as bI, type SemanticAssetRefInput as bJ, SemanticAssetRefSchema as bK, type ServiceDefinition as bL, ServiceDefinitionSchema as bM, type ServiceParams as bN, type ServiceRef as bO, ServiceRefSchema as bP, ServiceRefStringSchema as bQ, type ServiceType as bR, ServiceTypeSchema as bS, type SocketEvents as bT, SocketEventsSchema as bU, type SocketServiceDef as bV, SocketServiceDefSchema as bW, type StateInput as bX, type StateMachine as bY, type StateMachineInput as bZ, StateMachineSchema as b_, type PageRef as ba, type PageRefObject as bb, PageRefObjectSchema as bc, PageRefSchema as bd, PageRefStringSchema as be, PageSchema as bf, type PageTraitRef as bg, PageTraitRefSchema as bh, type ParsedBinding as bi, type PayloadField as bj, PayloadFieldSchema as bk, type PresentationType as bl, type RefEffect as bm, type RelatedLink as bn, RelatedLinkSchema as bo, type RelationConfig as bp, RelationConfigSchema as bq, type RenderUIConfig as br, type RenderUINode as bs, type RequiredField as bt, RequiredFieldSchema as bu, type ResolvedAsset as bv, type ResolvedAssetInput as bw, ResolvedAssetSchema as bx, type RestAuthConfig as by, RestAuthConfigSchema as bz, type Trait as c, getArgs as c$, type StateSemanticRole as c0, StateSemanticRoleSchema as c1, type SuggestedGuard as c2, SuggestedGuardSchema as c3, type SwapEffect as c4, type ThemeDefinition as c5, ThemeDefinitionSchema as c6, type ThemeRef as c7, ThemeRefSchema as c8, ThemeRefStringSchema as c9, type UISlot as cA, UISlotSchema as cB, UI_SLOTS as cC, type UXHints as cD, UXHintsSchema as cE, type UseDeclaration as cF, UseDeclarationSchema as cG, type UserPersona as cH, type UserPersonaInput as cI, UserPersonaSchema as cJ, VISUAL_STYLES as cK, type ViewType as cL, ViewTypeSchema as cM, type VisualStyle as cN, VisualStyleSchema as cO, type WatchEffect as cP, type WatchOptions as cQ, atomic as cR, callService as cS, collectBindings as cT, createAssetKey as cU, deref as cV, deriveCollection as cW, despawn as cX, doEffects as cY, emit as cZ, findService as c_, type ThemeTokens as ca, ThemeTokensSchema as cb, type ThemeVariant as cc, ThemeVariantSchema as cd, type TraitCategory as ce, TraitCategorySchema as cf, type TraitDataEntity as cg, TraitDataEntitySchema as ch, type TraitEntityField as ci, TraitEntityFieldSchema as cj, TraitEventContractSchema as ck, type TraitEventListener as cl, TraitEventListenerSchema as cm, type TraitInput as cn, type TraitRef as co, TraitRefSchema as cp, type TraitReference as cq, type TraitReferenceInput as cr, TraitReferenceSchema as cs, TraitSchema as ct, type TraitTick as cu, TraitTickSchema as cv, type TraitUIBinding as cw, type Transition as cx, type TransitionInput as cy, TransitionSchema as cz, type Entity as d, getDefaultAnimationsForRole as d0, getOperator as d1, getServiceNames as d2, getTraitConfig as d3, getTraitName as d4, hasService as d5, isBinding as d6, isCircuitEvent as d7, isEffect as d8, isEntityReference as d9, parseOrbitalSchema as dA, parsePageRef as dB, parseServiceRef as dC, persist as dD, ref as dE, renderUI as dF, safeParseOrbitalSchema as dG, set as dH, sexpr as dI, spawn as dJ, swap as dK, validateAssetAnimations as dL, walkSExpr as dM, watch as dN, isImportedTraitRef as da, isInlineTrait as db, isMcpService as dc, isOrbitalDefinition as dd, isPageReference as de, isPageReferenceObject as df, isPageReferenceString as dg, isRestService as dh, isRuntimeEntity as di, isSExpr as dj, isSExprAtom as dk, isSExprCall as dl, isSExprEffect as dm, isServiceReference as dn, isSingletonEntity as dp, isSocketService as dq, isThemeReference as dr, isValidBinding as ds, navigate as dt, normalizeTraitRef as du, notify as dv, parseAssetKey as dw, parseBinding as dx, parseEntityRef as dy, parseImportedTraitRef as dz, ALLOWED_CUSTOM_COMPONENTS as e, type AgentDomainCategory as f, AgentDomainCategorySchema as g, type AgentEffect as h, type AllowedCustomComponent as i, type AnimationDef as j, type AnimationDefInput as k, AnimationDefSchema as l, type AssetMap as m, type AssetMapInput as n, AssetMapSchema as o, type AssetMapping as p, type AssetMappingInput as q, AssetMappingSchema as r, type AtomicEffect as s, type CallServiceConfig as t, type ComputedEventContract as u, ComputedEventContractSchema as v, type ComputedEventListener as w, ComputedEventListenerSchema as x, type CoreBinding as y, type CustomPatternDefinition as z };
14623
+ export { ENTITY_ROLES as $, AGENT_DOMAIN_CATEGORIES as A, type CustomPatternDefinition as B, CORE_BINDINGS as C, type CustomPatternDefinitionInput as D, type EntityField as E, CustomPatternDefinitionSchema as F, type CustomPatternMap as G, type CustomPatternMapInput as H, CustomPatternMapSchema as I, type DerefEffect as J, type DesignPreferences as K, type DesignPreferencesInput as L, DesignPreferencesSchema as M, type DesignTokens as N, type OrbitalDefinition as O, type Page as P, type DesignTokensInput as Q, DesignTokensSchema as R, type State as S, type TraitEventContract as T, type DomainCategory as U, DomainCategorySchema as V, type DomainContext as W, type DomainContextInput as X, DomainContextSchema as Y, type DomainVocabulary as Z, DomainVocabularySchema as _, type EntityPersistence as a, type OrbitalPageInput as a$, type Effect as a0, type EffectInput as a1, EffectSchema as a2, type EntityData as a3, type EntityFieldInput as a4, EntityFieldSchema as a5, EntityPersistenceSchema as a6, type EntityRef as a7, EntityRefSchema as a8, EntityRefStringSchema as a9, FieldSchema as aA, type FieldType as aB, FieldTypeSchema as aC, type FieldValue as aD, type Orbital as aE, GAME_TYPES as aF, type GameSubCategory as aG, GameSubCategorySchema as aH, type GameType as aI, GameTypeSchema as aJ, type Guard as aK, type GuardInput as aL, GuardSchema as aM, type LogMeta as aN, type McpServiceDef as aO, McpServiceDefSchema as aP, type NodeClassification as aQ, NodeClassificationSchema as aR, type OrbitalConfig as aS, type OrbitalConfigInput as aT, OrbitalConfigSchema as aU, OrbitalDefinitionSchema as aV, type OrbitalEntity as aW, type OrbitalEntityInput as aX, OrbitalEntitySchema as aY, type OrbitalInput as aZ, type OrbitalPage as a_, type EntityRole as aa, EntityRoleSchema as ab, EntitySchema as ac, type EntitySemanticRole as ad, EntitySemanticRoleSchema as ae, type EvalContext as af, type Event as ag, type EventInput as ah, type EventListener as ai, EventListenerSchema as aj, type EventPayload as ak, type EventPayloadField as al, EventPayloadFieldSchema as am, EventSchema as an, type EventScope as ao, EventScopeSchema as ap, type EventSemanticRole as aq, EventSemanticRoleSchema as ar, type EventSource as as, EventSourceSchema as at, type Expression as au, type ExpressionInput as av, ExpressionSchema as aw, type Field as ax, type FieldFormat as ay, FieldFormatSchema as az, type EntityRow as b, StateMachineSchema as b$, OrbitalPageSchema as b0, type OrbitalPageStrictInput as b1, OrbitalPageStrictSchema as b2, type OrbitalSchemaInput as b3, OrbitalSchemaSchema as b4, type OrbitalTraitRef as b5, OrbitalTraitRefSchema as b6, type OrbitalUnit as b7, OrbitalUnitSchema as b8, OrbitalSchema$1 as b9, RestAuthConfigSchema as bA, type RestServiceDef as bB, RestServiceDefSchema as bC, SERVICE_TYPES as bD, type SExpr as bE, type SExprAtom as bF, SExprAtomSchema as bG, type SExprInput as bH, SExprSchema as bI, type SemanticAssetRef as bJ, type SemanticAssetRefInput as bK, SemanticAssetRefSchema as bL, type ServiceDefinition as bM, ServiceDefinitionSchema as bN, type ServiceParams as bO, type ServiceRef as bP, ServiceRefSchema as bQ, ServiceRefStringSchema as bR, type ServiceType as bS, ServiceTypeSchema as bT, type SocketEvents as bU, SocketEventsSchema as bV, type SocketServiceDef as bW, SocketServiceDefSchema as bX, type StateInput as bY, type StateMachine as bZ, type StateMachineInput as b_, type PageRef as ba, type PageRefObject as bb, PageRefObjectSchema as bc, PageRefSchema as bd, PageRefStringSchema as be, PageSchema as bf, type PageTraitRef as bg, PageTraitRefSchema as bh, type ParsedBinding as bi, type PayloadField as bj, PayloadFieldSchema as bk, type PresentationType as bl, type RefEffect as bm, type RelatedLink as bn, RelatedLinkSchema as bo, type RelationConfig as bp, RelationConfigSchema as bq, type RenderUIConfig as br, type RenderUINode as bs, type RequiredField as bt, RequiredFieldSchema as bu, type ResolvedAsset as bv, type ResolvedAssetInput as bw, ResolvedAssetSchema as bx, type ResolvedPatternProps as by, type RestAuthConfig as bz, type OrbitalSchema as c, findService as c$, StateSchema as c0, type StateSemanticRole as c1, StateSemanticRoleSchema as c2, type SuggestedGuard as c3, SuggestedGuardSchema as c4, type SwapEffect as c5, type ThemeDefinition as c6, ThemeDefinitionSchema as c7, type ThemeRef as c8, ThemeRefSchema as c9, TransitionSchema as cA, type UISlot as cB, UISlotSchema as cC, UI_SLOTS as cD, type UXHints as cE, UXHintsSchema as cF, type UseDeclaration as cG, UseDeclarationSchema as cH, type UserPersona as cI, type UserPersonaInput as cJ, UserPersonaSchema as cK, VISUAL_STYLES as cL, type ViewType as cM, ViewTypeSchema as cN, type VisualStyle as cO, VisualStyleSchema as cP, type WatchEffect as cQ, type WatchOptions as cR, atomic as cS, callService as cT, collectBindings as cU, createAssetKey as cV, deref as cW, deriveCollection as cX, despawn as cY, doEffects as cZ, emit as c_, ThemeRefStringSchema as ca, type ThemeTokens as cb, ThemeTokensSchema as cc, type ThemeVariant as cd, ThemeVariantSchema as ce, type TraitCategory as cf, TraitCategorySchema as cg, type TraitDataEntity as ch, TraitDataEntitySchema as ci, type TraitEntityField as cj, TraitEntityFieldSchema as ck, TraitEventContractSchema as cl, type TraitEventListener as cm, TraitEventListenerSchema as cn, type TraitInput as co, type TraitRef as cp, TraitRefSchema as cq, type TraitReference as cr, type TraitReferenceInput as cs, TraitReferenceSchema as ct, TraitSchema as cu, type TraitTick as cv, TraitTickSchema as cw, type TraitUIBinding as cx, type Transition as cy, type TransitionInput as cz, type Trait as d, getArgs as d0, getDefaultAnimationsForRole as d1, getOperator as d2, getServiceNames as d3, getTraitConfig as d4, getTraitName as d5, hasService as d6, isBinding as d7, isCircuitEvent as d8, isEffect as d9, parseImportedTraitRef as dA, parseOrbitalSchema as dB, parsePageRef as dC, parseServiceRef as dD, persist as dE, ref as dF, renderUI as dG, safeParseOrbitalSchema as dH, set as dI, sexpr as dJ, spawn as dK, swap as dL, validateAssetAnimations as dM, walkSExpr as dN, watch as dO, isEntityReference as da, isImportedTraitRef as db, isInlineTrait as dc, isMcpService as dd, isOrbitalDefinition as de, isPageReference as df, isPageReferenceObject as dg, isPageReferenceString as dh, isRestService as di, isRuntimeEntity as dj, isSExpr as dk, isSExprAtom as dl, isSExprCall as dm, isSExprEffect as dn, isServiceReference as dp, isSingletonEntity as dq, isSocketService as dr, isThemeReference as ds, isValidBinding as dt, navigate as du, normalizeTraitRef as dv, notify as dw, parseAssetKey as dx, parseBinding as dy, parseEntityRef as dz, type Entity as e, ALLOWED_CUSTOM_COMPONENTS as f, type AgentDomainCategory as g, AgentDomainCategorySchema as h, type AgentEffect as i, type AllowedCustomComponent as j, type AnimationDef as k, type AnimationDefInput as l, AnimationDefSchema as m, type AssetMap as n, type AssetMapInput as o, AssetMapSchema as p, type AssetMapping as q, type AssetMappingInput as r, AssetMappingSchema as s, type AtomicEffect as t, type CallServiceConfig as u, type ComputedEventContract as v, ComputedEventContractSchema as w, type ComputedEventListener as x, ComputedEventListenerSchema as y, type CoreBinding as z };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/state-machine/graph.ts","../../src/state-machine/bfs.ts","../../src/state-machine/guard-payloads.ts","../../src/state-machine/replay-paths.ts","../../src/state-machine/edge-walk.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * State Graph Construction\n *\n * Build an adjacency list from state machine transitions.\n * Extracted from orbital-verify-unified/src/analyze.ts.\n *\n * @packageDocumentation\n */\n\nimport type { GraphTransition, StateEdge } from './types.js';\n\n/**\n * Builds an adjacency list from state machine transitions.\n * \n * Constructs a state transition graph where each state maps to an array\n * of outgoing edges (events and target states). Wildcard transitions\n * (from === '*') are excluded since they don't represent fixed edges.\n * Used as the foundation for state machine analysis, traversal, and verification.\n * \n * @param {GraphTransition[]} transitions - Array of state transitions\n * @returns {Map<string, StateEdge[]>} State transition graph\n * \n * @example\n * const graph = buildStateGraph(transitions);\n * const edgesFromInitial = graph.get('initial'); // Array of outgoing edges\n * console.log(`Initial state has ${edgesFromInitial?.length} transitions`);\n */\nexport function buildStateGraph(\n transitions: GraphTransition[]\n): Map<string, StateEdge[]> {\n const graph = new Map<string, StateEdge[]>();\n for (const t of transitions) {\n if (t.from === '*') continue;\n if (!graph.has(t.from)) graph.set(t.from, []);\n graph.get(t.from)!.push({ event: t.event, to: t.to });\n }\n return graph;\n}\n","/**\n * BFS Reachability Algorithms\n *\n * Breadth-first search over state machine graphs.\n * Extracted from orbital-verify-unified/src/analyze.ts and phase3-server.ts.\n *\n * @packageDocumentation\n */\n\nimport type { BFSNode, StateEdge } from './types.js';\nimport { buildStateGraph } from './graph.js';\nimport type { GraphTransition } from './types.js';\n\n/**\n * Collects all reachable states from an initial state using breadth-first search.\n * \n * Performs BFS traversal of the state machine to find all states reachable\n * from the initial state, up to the specified maximum depth. Used for\n * state machine analysis, verification, and test coverage assessment.\n * \n * @param {GraphTransition[]} transitions - Array of state transitions\n * @param {string} initialState - Starting state name\n * @param {number} [maxDepth=5] - Maximum search depth\n * @returns {Set<string>} Set of reachable state names\n * \n * @example\n * const reachable = collectReachableStates(transitions, 'initial', 10);\n * console.log('Reachable states:', Array.from(reachable));\n */\nexport function collectReachableStates(\n transitions: GraphTransition[],\n initialState: string,\n maxDepth = 5\n): Set<string> {\n const graph = buildStateGraph(transitions);\n const visited = new Set<string>([initialState]);\n const queue: BFSNode[] = [{ state: initialState, depth: 0 }];\n\n while (queue.length > 0) {\n const current = queue.shift()!;\n if (current.depth >= maxDepth) continue;\n\n const edges = graph.get(current.state) ?? [];\n for (const edge of edges) {\n if (!visited.has(edge.to)) {\n visited.add(edge.to);\n queue.push({ state: edge.to, depth: current.depth + 1 });\n }\n }\n }\n\n return visited;\n}\n\n/**\n * Walks all reachable (state, event) pairs using BFS and invokes callback for each.\n * \n * Traverses the state machine using breadth-first search and calls the visitor\n * function for each (state, edge) pair encountered. Used by server verification\n * to test transitions by POSTing to endpoints and checking responses.\n * \n * @param {GraphTransition[]} transitions - Array of state transitions\n * @param {string} initialState - Starting state name\n * @param {number} maxDepth - Maximum BFS depth\n * @param {(state: string, edge: StateEdge, depth: number) => Promise<boolean>} visitor - Callback for each pair\n * @returns {Promise<{ visitedPairs: Set<string>; walkedEdges: number }>} Traversal statistics\n * \n * @example\n * const result = await walkStatePairs(transitions, 'initial', 5, async (state, edge) => {\n * console.log(`Transition: ${state} --${edge.event}--> ${edge.to}`);\n * return true; // Continue exploration\n * });\n * console.log(`Visited ${result.visitedPairs.size} state-event pairs`);\n */\nexport async function walkStatePairs(\n transitions: GraphTransition[],\n initialState: string,\n maxDepth: number,\n visitor: (state: string, edge: StateEdge, depth: number) => Promise<boolean>\n): Promise<{ visitedPairs: Set<string>; walkedEdges: number }> {\n const graph = buildStateGraph(transitions);\n const visitedPairs = new Set<string>();\n const queue: BFSNode[] = [{ state: initialState, depth: 0 }];\n let walkedEdges = 0;\n\n while (queue.length > 0) {\n const current = queue.shift()!;\n if (current.depth >= maxDepth) continue;\n\n const edges = graph.get(current.state) ?? [];\n for (const edge of edges) {\n const pairKey = `${current.state}:${edge.event}`;\n if (visitedPairs.has(pairKey)) continue;\n visitedPairs.add(pairKey);\n\n const shouldEnqueue = await visitor(current.state, edge, current.depth);\n walkedEdges++;\n\n if (shouldEnqueue) {\n const stateVisited = [...visitedPairs].some((k) => k.startsWith(`${edge.to}:`));\n if (!stateVisited) {\n queue.push({ state: edge.to, depth: current.depth + 1 });\n }\n }\n }\n }\n\n return { visitedPairs, walkedEdges };\n}\n","/**\n * Guard Payload Builder\n *\n * Derive pass and fail payloads from guard s-expressions.\n * Extracted from orbital-verify-unified/src/analyze.ts.\n *\n * @packageDocumentation\n */\n\nimport type { GuardPayload } from './types.js';\n\n/**\n * Extracts the first segment of a payload field reference.\n * \n * Parses binding references in the format \"@payload.field\" and extracts\n * the first field name segment. Used for identifying payload fields in\n * guard conditions for test data generation.\n * \n * @param {unknown} ref - Binding reference to extract from\n * @returns {string | null} First field segment or null for non-payload references\n * \n * @example\n * extractPayloadFieldRef('@payload.item'); // returns 'item'\n * extractPayloadFieldRef('@payload.data.weight'); // returns 'data'\n * extractPayloadFieldRef('@entity.id'); // returns null\n * extractPayloadFieldRef('@user.name'); // returns null\n */\nexport function extractPayloadFieldRef(ref: unknown): string | null {\n if (typeof ref !== 'string') return null;\n const match = ref.match(/^@payload\\.([A-Za-z0-9_]+)/);\n return match ? match[1] : null;\n}\n\n/**\n * Builds test payloads that satisfy or violate guard conditions.\n * \n * Generates pass/fail test data for guard s-expressions used in state machine\n * transitions. Pass payloads satisfy the guard condition (allowing transition),\n * fail payloads violate it (blocking transition). Used for automated testing\n * and validation of state machine behavior.\n * \n * Supports operators: not-nil, nil, eq, not-eq, gt, gte, lt, lte, and, or, not\n * \n * @param {unknown} guard - Guard s-expression to analyze\n * @returns {GuardPayload} Object with pass and fail payloads\n * \n * @example\n * // Guard: ['not-nil', '@payload.completed']\n * buildGuardPayloads(['not-nil', '@payload.completed']);\n * // Returns: { pass: { completed: 'mock-test-value' }, fail: { completed: null } }\n * \n * @example\n * // Guard: ['eq', '@payload.status', 'active']\n * buildGuardPayloads(['eq', '@payload.status', 'active']);\n * // Returns: { pass: { status: 'active' }, fail: { status: 'not-active' } }\n * \n * @example\n * // Guard: ['and', ['not-nil', '@payload.id'], ['eq', '@payload.status', 'ready']]\n * buildGuardPayloads(['and', ['not-nil', '@payload.id'], ['eq', '@payload.status', 'ready']]);\n * // Returns: { pass: { id: 'mock-test-value', status: 'ready' }, fail: { id: null } }\n */\nexport function buildGuardPayloads(guard: unknown): GuardPayload {\n if (!Array.isArray(guard) || guard.length === 0) {\n return { pass: {}, fail: {} };\n }\n\n const op = String(guard[0]);\n\n if (op === 'not-nil' || op === 'not_nil') {\n const field = extractPayloadFieldRef(guard[1]);\n if (field) return { pass: { [field]: 'mock-test-value' }, fail: { [field]: null } };\n }\n\n if (op === 'nil') {\n const field = extractPayloadFieldRef(guard[1]);\n if (field) return { pass: {}, fail: { [field]: 'mock-test-value' } };\n }\n\n if (op === 'eq' || op === '==' || op === '=') {\n const field = extractPayloadFieldRef(guard[1]);\n const val = guard[2];\n if (field && val !== undefined) {\n const failVal =\n typeof val === 'number' ? val + 1\n : typeof val === 'string' ? `not-${val}`\n : null;\n return { pass: { [field]: val }, fail: { [field]: failVal } };\n }\n }\n\n if (op === 'not-eq' || op === '!=' || op === 'neq') {\n const field = extractPayloadFieldRef(guard[1]);\n const val = guard[2];\n if (field && val !== undefined) {\n const passVal =\n typeof val === 'number' ? val + 1\n : typeof val === 'string' ? `not-${val}`\n : 'other';\n return { pass: { [field]: passVal }, fail: { [field]: val } };\n }\n }\n\n if (op === 'gt' || op === '>') {\n const field = extractPayloadFieldRef(guard[1]);\n const n = typeof guard[2] === 'number' ? guard[2] : 0;\n if (field) return { pass: { [field]: n + 1 }, fail: { [field]: n - 1 } };\n }\n\n if (op === 'gte' || op === '>=') {\n const field = extractPayloadFieldRef(guard[1]);\n const n = typeof guard[2] === 'number' ? guard[2] : 0;\n if (field) return { pass: { [field]: n }, fail: { [field]: n - 1 } };\n }\n\n if (op === 'lt' || op === '<') {\n const field = extractPayloadFieldRef(guard[1]);\n const n = typeof guard[2] === 'number' ? guard[2] : 0;\n if (field) return { pass: { [field]: n - 1 }, fail: { [field]: n + 1 } };\n }\n\n if (op === 'lte' || op === '<=') {\n const field = extractPayloadFieldRef(guard[1]);\n const n = typeof guard[2] === 'number' ? guard[2] : 0;\n if (field) return { pass: { [field]: n }, fail: { [field]: n + 1 } };\n }\n\n if (op === 'and') {\n const subs = (guard.slice(1) as unknown[]).filter(Array.isArray);\n if (subs.length >= 2) {\n const s1 = buildGuardPayloads(subs[0]);\n const s2 = buildGuardPayloads(subs[1]);\n return { pass: { ...s1.pass, ...s2.pass }, fail: s1.fail };\n }\n if (subs.length === 1) return buildGuardPayloads(subs[0]);\n }\n\n if (op === 'or') {\n const subs = (guard.slice(1) as unknown[]).filter(Array.isArray);\n if (subs.length >= 2) {\n const s1 = buildGuardPayloads(subs[0]);\n const s2 = buildGuardPayloads(subs[1]);\n return { pass: s1.pass, fail: { ...s1.fail, ...s2.fail } };\n }\n if (subs.length === 1) return buildGuardPayloads(subs[0]);\n }\n\n if (op === 'not') {\n const inner = buildGuardPayloads(guard[1]);\n return { pass: inner.fail, fail: inner.pass };\n }\n\n return { pass: {}, fail: {} };\n}\n","/**\n * Replay Path Builder\n *\n * Compute the shortest path (replay steps) from an initial state\n * to every reachable state in a state machine. Used by browser\n * verification to navigate through states before running assertions.\n *\n * Extracted from orbital-verify-unified/src/analyze.ts (collectDataMutationTests).\n *\n * @packageDocumentation\n */\n\nimport type { GraphTransition, ReplayStep, PayloadFieldSchema } from './types.js';\n\n/** Entity-data sentinel payload fields: presence means transition needs a selected row */\nconst ENTITY_PAYLOAD_FIELDS = new Set(['data', 'row', 'item', 'id']);\n\n/**\n * Extended transition with render and payload info needed for replay path building.\n * Compatible with orbital-verify's UnifiedTransition.\n */\nexport interface ReplayTransition extends GraphTransition {\n hasGuard: boolean;\n guard?: unknown[];\n payloadFields: string[];\n payloadSchema: PayloadFieldSchema[];\n renderEffects: Array<{\n slot: string;\n patternType: string | null;\n }>;\n}\n\n/**\n * Builds the shortest replay paths from initial state to all reachable states.\n * \n * Computes step-by-step navigation paths for state machine testing and verification.\n * Uses breadth-first search to find shortest paths up to specified depth limit.\n * Each path contains replay steps with event, state, and payload information\n * needed to reproduce state transitions in tests.\n * \n * @param {ReplayTransition[]} transitions - Transitions with render/payload information\n * @param {string} initialState - Starting state name\n * @param {number} [maxDepth=3] - Maximum path length (default: 3)\n * @returns {Map<string, ReplayStep[]>} Map of state names to replay step arrays\n * \n * @example\n * // Build paths from 'initial' state\n * const paths = buildReplayPaths(transitions, 'initial', 5);\n * \n * // Get steps to reach 'completed' state\n * const stepsToComplete = paths.get('completed');\n * \n * // Execute replay steps\n * for (const step of stepsToComplete) {\n * await dispatchEvent(step.event, step.payload);\n * }\n */\nexport function buildReplayPaths(\n transitions: ReplayTransition[],\n initialState: string,\n maxDepth = 3\n): Map<string, ReplayStep[]> {\n type QueueNode = { state: string; path: ReplayStep[] };\n\n const queue: QueueNode[] = [{ state: initialState, path: [] }];\n const replayPaths = new Map<string, ReplayStep[]>();\n replayPaths.set(initialState, []);\n\n while (queue.length > 0) {\n const { state, path } = queue.shift()!;\n if (path.length >= maxDepth) continue;\n\n const fromHere = transitions.filter(\n (t) => t.from === state && t.event !== 'INIT',\n );\n\n for (const transition of fromHere) {\n if (replayPaths.has(transition.to)) continue;\n\n const renderEffect = transition.renderEffects.find((re) => re.patternType !== null);\n const stepNeedsEntityData =\n transition.hasGuard ||\n transition.payloadFields.some((f) => ENTITY_PAYLOAD_FIELDS.has(f));\n\n const step: ReplayStep = {\n event: transition.event,\n fromState: state,\n toState: transition.to,\n slot: renderEffect?.slot ?? 'main',\n expectedPattern: renderEffect?.patternType ?? undefined,\n needsEntityData: stepNeedsEntityData,\n payloadSchema: transition.payloadSchema.length > 0 ? transition.payloadSchema : undefined,\n };\n\n const newPath = [...path, step];\n replayPaths.set(transition.to, newPath);\n queue.push({ state: transition.to, path: newPath });\n }\n }\n\n return replayPaths;\n}\n","/**\n * Edge-Covering Walk Algorithm\n *\n * Computes an ordered sequence of events (WalkStep[]) that covers every\n * transition (edge) in a state machine graph at least once. This guarantees\n * 100% transition coverage regardless of graph topology.\n *\n * Algorithm:\n * 1. Build adjacency list and edge universe (guarded transitions produce two edges)\n * 2. Precompute BFS shortest paths between all state pairs (for repositioning)\n * 3. Greedy DFS: at each state, prefer uncovered outgoing edges\n * 4. When stuck, insert repositioning steps to nearest state with uncovered edges\n * 5. Guard-fail steps don't advance state (guard blocks transition)\n *\n * Used by StateWalkEngine in @almadar-io/verify. Both orbital-verify and\n * runtime-verify share this algorithm for consistent coverage.\n *\n * @packageDocumentation\n */\n\nimport type { EdgeWalkTransition, WalkStep, StateEdge } from './types.js';\nimport { buildGuardPayloads } from './guard-payloads.js';\n\n/**\n * Build an ordered walk that covers every edge in the state machine.\n *\n * @param transitions - All transitions in the state machine\n * @param initialState - Starting state\n * @returns Ordered walk steps covering every edge\n */\nexport function buildEdgeCoveringWalk(\n transitions: EdgeWalkTransition[],\n initialState: string,\n): WalkStep[] {\n // 1. Build adjacency list, skip wildcards and INIT\n const filtered = transitions.filter(\n (t) => t.from !== '*' && t.event !== 'INIT',\n );\n\n const graph = new Map<string, Array<{ event: string; to: string; transition: EdgeWalkTransition }>>();\n const allStates = new Set<string>();\n\n for (const t of filtered) {\n allStates.add(t.from);\n allStates.add(t.to);\n if (!graph.has(t.from)) graph.set(t.from, []);\n graph.get(t.from)!.push({ event: t.event, to: t.to, transition: t });\n }\n\n // Ensure initial state is in the set\n allStates.add(initialState);\n\n // 2. Build edge universe. Guarded transitions produce pass + fail edges.\n const uncovered = new Set<string>();\n const edgeMeta = new Map<string, { transition: EdgeWalkTransition; guardCase: 'pass' | 'fail' | null }>();\n\n for (const t of filtered) {\n if (t.hasGuard) {\n const keyPass = `${t.from}+${t.event}->${t.to}[pass]`;\n const keyFail = `${t.from}+${t.event}->${t.to}[fail]`;\n uncovered.add(keyPass);\n uncovered.add(keyFail);\n edgeMeta.set(keyPass, { transition: t, guardCase: 'pass' });\n edgeMeta.set(keyFail, { transition: t, guardCase: 'fail' });\n } else {\n const key = `${t.from}+${t.event}->${t.to}`;\n uncovered.add(key);\n edgeMeta.set(key, { transition: t, guardCase: null });\n }\n }\n\n if (uncovered.size === 0) return [];\n\n // 3. Precompute BFS shortest paths between all state pairs\n const shortestPaths = new Map<string, Map<string, Array<{ event: string; to: string }>>>();\n for (const state of allStates) {\n shortestPaths.set(state, bfsShortestPaths(state, graph));\n }\n\n // 4. Greedy walk\n const walk: WalkStep[] = [];\n let currentState = initialState;\n const maxIterations = uncovered.size * allStates.size * 2; // safety bound\n let iterations = 0;\n\n while (uncovered.size > 0 && iterations < maxIterations) {\n iterations++;\n\n // Find uncovered edges from currentState\n const outgoing = findUncoveredEdges(currentState, graph, uncovered);\n\n if (outgoing.length > 0) {\n // Pick first uncovered edge\n const pick = outgoing[0];\n const payload = buildPayloadForEdge(pick.transition, pick.guardCase);\n\n walk.push({\n from: currentState,\n event: pick.transition.event,\n to: pick.transition.to,\n guardCase: pick.guardCase,\n payload,\n isRepositioning: false,\n });\n\n uncovered.delete(pick.key);\n\n // Guard-fail doesn't advance state\n if (pick.guardCase !== 'fail') {\n currentState = pick.transition.to;\n }\n } else {\n // Stuck: find nearest state with uncovered edges\n const target = findNearestUncoveredState(currentState, graph, uncovered, shortestPaths);\n\n if (!target) {\n // No reachable state with uncovered edges. Remaining edges are unreachable.\n break;\n }\n\n // Insert repositioning steps\n const repoPath = shortestPaths.get(currentState)?.get(target);\n if (!repoPath || repoPath.length === 0) break;\n\n for (const step of repoPath) {\n walk.push({\n from: currentState,\n event: step.event,\n to: step.to,\n guardCase: null,\n payload: {},\n isRepositioning: true,\n });\n currentState = step.to;\n }\n }\n }\n\n return walk;\n}\n\n// ---------------------------------------------------------------------------\n// Internal helpers\n// ---------------------------------------------------------------------------\n\n/**\n * BFS from a source state, returning shortest paths to all reachable states.\n * Each path is an array of {event, to} steps.\n */\nfunction bfsShortestPaths(\n source: string,\n graph: Map<string, Array<{ event: string; to: string; transition: EdgeWalkTransition }>>,\n): Map<string, Array<{ event: string; to: string }>> {\n const paths = new Map<string, Array<{ event: string; to: string }>>();\n const visited = new Set<string>([source]);\n const queue: Array<{ state: string; path: Array<{ event: string; to: string }> }> = [\n { state: source, path: [] },\n ];\n\n while (queue.length > 0) {\n const { state, path } = queue.shift()!;\n const edges = graph.get(state) ?? [];\n\n for (const edge of edges) {\n if (visited.has(edge.to)) continue;\n visited.add(edge.to);\n const newPath = [...path, { event: edge.event, to: edge.to }];\n paths.set(edge.to, newPath);\n queue.push({ state: edge.to, path: newPath });\n }\n }\n\n return paths;\n}\n\n/**\n * Find uncovered edges from a given state.\n */\nfunction findUncoveredEdges(\n state: string,\n graph: Map<string, Array<{ event: string; to: string; transition: EdgeWalkTransition }>>,\n uncovered: Set<string>,\n): Array<{ key: string; transition: EdgeWalkTransition; guardCase: 'pass' | 'fail' | null }> {\n const edges = graph.get(state) ?? [];\n const result: Array<{ key: string; transition: EdgeWalkTransition; guardCase: 'pass' | 'fail' | null }> = [];\n\n for (const edge of edges) {\n if (edge.transition.hasGuard) {\n const keyPass = `${state}+${edge.event}->${edge.to}[pass]`;\n const keyFail = `${state}+${edge.event}->${edge.to}[fail]`;\n // Prefer pass first (advances state), then fail\n if (uncovered.has(keyPass)) {\n result.push({ key: keyPass, transition: edge.transition, guardCase: 'pass' });\n }\n if (uncovered.has(keyFail)) {\n result.push({ key: keyFail, transition: edge.transition, guardCase: 'fail' });\n }\n } else {\n const key = `${state}+${edge.event}->${edge.to}`;\n if (uncovered.has(key)) {\n result.push({ key, transition: edge.transition, guardCase: null });\n }\n }\n }\n\n return result;\n}\n\n/**\n * Find the nearest state (from currentState) that has uncovered outgoing edges.\n */\nfunction findNearestUncoveredState(\n currentState: string,\n graph: Map<string, Array<{ event: string; to: string; transition: EdgeWalkTransition }>>,\n uncovered: Set<string>,\n shortestPaths: Map<string, Map<string, Array<{ event: string; to: string }>>>,\n): string | null {\n // Collect states that have uncovered edges\n const statesWithUncovered = new Set<string>();\n for (const key of uncovered) {\n // Key format: \"state+EVENT->target\" or \"state+EVENT->target[pass]\"\n const fromState = key.split('+')[0];\n statesWithUncovered.add(fromState);\n }\n\n // If current state has uncovered edges, return it (shouldn't happen, but handle it)\n if (statesWithUncovered.has(currentState)) return currentState;\n\n // Find nearest reachable state with uncovered edges\n const paths = shortestPaths.get(currentState);\n if (!paths) return null;\n\n let nearestState: string | null = null;\n let nearestDist = Infinity;\n\n for (const target of statesWithUncovered) {\n const path = paths.get(target);\n if (path && path.length < nearestDist) {\n nearestDist = path.length;\n nearestState = target;\n }\n }\n\n return nearestState;\n}\n\n/**\n * Build a payload for a given edge based on its guard case and payload schema.\n * For guarded transitions, uses guard expressions to generate pass/fail payloads.\n * For unguarded transitions with payload schemas (e.g., EDIT/VIEW with { id }),\n * generates mock values so fetch-by-ID effects can resolve entity data.\n */\nfunction buildPayloadForEdge(\n transition: EdgeWalkTransition,\n guardCase: 'pass' | 'fail' | null,\n): Record<string, unknown> {\n // Guard-based payload generation (existing behavior)\n if (transition.hasGuard && transition.guard && guardCase) {\n const payloads = buildGuardPayloads(transition.guard);\n return guardCase === 'pass' ? payloads.pass : payloads.fail;\n }\n\n // Schema-based payload generation for events that declare required fields\n // (e.g., EDIT/VIEW declare { name: \"id\", type: \"string\", required: true })\n if (transition.payloadSchema && transition.payloadSchema.length > 0) {\n const payload: Record<string, unknown> = {};\n for (const field of transition.payloadSchema) {\n // Use caller-provided mockValue if available (set from entity context)\n if (field.mockValue !== undefined) {\n payload[field.name] = field.mockValue;\n } else if (field.type === 'string') {\n payload[field.name] = `mock-${field.name}`;\n } else if (field.type === 'number') {\n payload[field.name] = 1;\n } else if (field.type === 'boolean') {\n payload[field.name] = true;\n } else {\n payload[field.name] = `mock-${field.name}`;\n }\n }\n return payload;\n }\n\n return {};\n}\n"]}
1
+ {"version":3,"sources":["../../src/state-machine/graph.ts","../../src/state-machine/bfs.ts","../../src/state-machine/guard-payloads.ts","../../src/state-machine/replay-paths.ts","../../src/state-machine/edge-walk.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * State Graph Construction\n *\n * Build an adjacency list from state machine transitions.\n * Extracted from orbital-verify-unified/src/analyze.ts.\n *\n * @packageDocumentation\n */\n\nimport type { GraphTransition, StateEdge } from './types.js';\n\n/**\n * Builds an adjacency list from state machine transitions.\n * \n * Constructs a state transition graph where each state maps to an array\n * of outgoing edges (events and target states). Wildcard transitions\n * (from === '*') are excluded since they don't represent fixed edges.\n * Used as the foundation for state machine analysis, traversal, and verification.\n * \n * @param {GraphTransition[]} transitions - Array of state transitions\n * @returns {Map<string, StateEdge[]>} State transition graph\n * \n * @example\n * const graph = buildStateGraph(transitions);\n * const edgesFromInitial = graph.get('initial'); // Array of outgoing edges\n * console.log(`Initial state has ${edgesFromInitial?.length} transitions`);\n */\nexport function buildStateGraph(\n transitions: GraphTransition[]\n): Map<string, StateEdge[]> {\n const graph = new Map<string, StateEdge[]>();\n for (const t of transitions) {\n if (t.from === '*') continue;\n if (!graph.has(t.from)) graph.set(t.from, []);\n graph.get(t.from)!.push({ event: t.event, to: t.to });\n }\n return graph;\n}\n","/**\n * BFS Reachability Algorithms\n *\n * Breadth-first search over state machine graphs.\n * Extracted from orbital-verify-unified/src/analyze.ts and phase3-server.ts.\n *\n * @packageDocumentation\n */\n\nimport type { BFSNode, StateEdge } from './types.js';\nimport { buildStateGraph } from './graph.js';\nimport type { GraphTransition } from './types.js';\n\n/**\n * Collects all reachable states from an initial state using breadth-first search.\n * \n * Performs BFS traversal of the state machine to find all states reachable\n * from the initial state, up to the specified maximum depth. Used for\n * state machine analysis, verification, and test coverage assessment.\n * \n * @param {GraphTransition[]} transitions - Array of state transitions\n * @param {string} initialState - Starting state name\n * @param {number} [maxDepth=5] - Maximum search depth\n * @returns {Set<string>} Set of reachable state names\n * \n * @example\n * const reachable = collectReachableStates(transitions, 'initial', 10);\n * console.log('Reachable states:', Array.from(reachable));\n */\nexport function collectReachableStates(\n transitions: GraphTransition[],\n initialState: string,\n maxDepth = 5\n): Set<string> {\n const graph = buildStateGraph(transitions);\n const visited = new Set<string>([initialState]);\n const queue: BFSNode[] = [{ state: initialState, depth: 0 }];\n\n while (queue.length > 0) {\n const current = queue.shift()!;\n if (current.depth >= maxDepth) continue;\n\n const edges = graph.get(current.state) ?? [];\n for (const edge of edges) {\n if (!visited.has(edge.to)) {\n visited.add(edge.to);\n queue.push({ state: edge.to, depth: current.depth + 1 });\n }\n }\n }\n\n return visited;\n}\n\n/**\n * Walks all reachable (state, event) pairs using BFS and invokes callback for each.\n * \n * Traverses the state machine using breadth-first search and calls the visitor\n * function for each (state, edge) pair encountered. Used by server verification\n * to test transitions by POSTing to endpoints and checking responses.\n * \n * @param {GraphTransition[]} transitions - Array of state transitions\n * @param {string} initialState - Starting state name\n * @param {number} maxDepth - Maximum BFS depth\n * @param {(state: string, edge: StateEdge, depth: number) => Promise<boolean>} visitor - Callback for each pair\n * @returns {Promise<{ visitedPairs: Set<string>; walkedEdges: number }>} Traversal statistics\n * \n * @example\n * const result = await walkStatePairs(transitions, 'initial', 5, async (state, edge) => {\n * console.log(`Transition: ${state} --${edge.event}--> ${edge.to}`);\n * return true; // Continue exploration\n * });\n * console.log(`Visited ${result.visitedPairs.size} state-event pairs`);\n */\nexport async function walkStatePairs(\n transitions: GraphTransition[],\n initialState: string,\n maxDepth: number,\n visitor: (state: string, edge: StateEdge, depth: number) => Promise<boolean>\n): Promise<{ visitedPairs: Set<string>; walkedEdges: number }> {\n const graph = buildStateGraph(transitions);\n const visitedPairs = new Set<string>();\n const queue: BFSNode[] = [{ state: initialState, depth: 0 }];\n let walkedEdges = 0;\n\n while (queue.length > 0) {\n const current = queue.shift()!;\n if (current.depth >= maxDepth) continue;\n\n const edges = graph.get(current.state) ?? [];\n for (const edge of edges) {\n const pairKey = `${current.state}:${edge.event}`;\n if (visitedPairs.has(pairKey)) continue;\n visitedPairs.add(pairKey);\n\n const shouldEnqueue = await visitor(current.state, edge, current.depth);\n walkedEdges++;\n\n if (shouldEnqueue) {\n const stateVisited = [...visitedPairs].some((k) => k.startsWith(`${edge.to}:`));\n if (!stateVisited) {\n queue.push({ state: edge.to, depth: current.depth + 1 });\n }\n }\n }\n }\n\n return { visitedPairs, walkedEdges };\n}\n","/**\n * Guard Payload Builder\n *\n * Derive pass and fail payloads from guard s-expressions.\n * Extracted from orbital-verify-unified/src/analyze.ts.\n *\n * @packageDocumentation\n */\n\nimport type { GuardPayload } from './types.js';\n\n/**\n * Extracts the first segment of a payload field reference.\n * \n * Parses binding references in the format \"@payload.field\" and extracts\n * the first field name segment. Used for identifying payload fields in\n * guard conditions for test data generation.\n * \n * @param {unknown} ref - Binding reference to extract from\n * @returns {string | null} First field segment or null for non-payload references\n * \n * @example\n * extractPayloadFieldRef('@payload.item'); // returns 'item'\n * extractPayloadFieldRef('@payload.data.weight'); // returns 'data'\n * extractPayloadFieldRef('@entity.id'); // returns null\n * extractPayloadFieldRef('@user.name'); // returns null\n */\nexport function extractPayloadFieldRef(ref: unknown): string | null {\n if (typeof ref !== 'string') return null;\n const match = ref.match(/^@payload\\.([A-Za-z0-9_]+)/);\n return match ? match[1] : null;\n}\n\n/**\n * Builds test payloads that satisfy or violate guard conditions.\n * \n * Generates pass/fail test data for guard s-expressions used in state machine\n * transitions. Pass payloads satisfy the guard condition (allowing transition),\n * fail payloads violate it (blocking transition). Used for automated testing\n * and validation of state machine behavior.\n * \n * Supports operators: not-nil, nil, eq, not-eq, gt, gte, lt, lte, and, or, not\n * \n * @param {unknown} guard - Guard s-expression to analyze\n * @returns {GuardPayload} Object with pass and fail payloads\n * \n * @example\n * // Guard: ['not-nil', '@payload.completed']\n * buildGuardPayloads(['not-nil', '@payload.completed']);\n * // Returns: { pass: { completed: 'mock-test-value' }, fail: { completed: null } }\n * \n * @example\n * // Guard: ['eq', '@payload.status', 'active']\n * buildGuardPayloads(['eq', '@payload.status', 'active']);\n * // Returns: { pass: { status: 'active' }, fail: { status: 'not-active' } }\n * \n * @example\n * // Guard: ['and', ['not-nil', '@payload.id'], ['eq', '@payload.status', 'ready']]\n * buildGuardPayloads(['and', ['not-nil', '@payload.id'], ['eq', '@payload.status', 'ready']]);\n * // Returns: { pass: { id: 'mock-test-value', status: 'ready' }, fail: { id: null } }\n */\nexport function buildGuardPayloads(guard: unknown): GuardPayload {\n if (!Array.isArray(guard) || guard.length === 0) {\n return { pass: {}, fail: {} };\n }\n\n const op = String(guard[0]);\n\n if (op === 'not-nil' || op === 'not_nil') {\n const field = extractPayloadFieldRef(guard[1]);\n if (field) return { pass: { [field]: 'mock-test-value' }, fail: { [field]: null } };\n }\n\n if (op === 'nil') {\n const field = extractPayloadFieldRef(guard[1]);\n if (field) return { pass: {}, fail: { [field]: 'mock-test-value' } };\n }\n\n if (op === 'eq' || op === '==' || op === '=') {\n const field = extractPayloadFieldRef(guard[1]);\n const val = guard[2];\n if (field && val !== undefined) {\n const failVal =\n typeof val === 'number' ? val + 1\n : typeof val === 'string' ? `not-${val}`\n : null;\n return { pass: { [field]: val }, fail: { [field]: failVal } };\n }\n }\n\n if (op === 'not-eq' || op === '!=' || op === 'neq') {\n const field = extractPayloadFieldRef(guard[1]);\n const val = guard[2];\n if (field && val !== undefined) {\n const passVal =\n typeof val === 'number' ? val + 1\n : typeof val === 'string' ? `not-${val}`\n : 'other';\n return { pass: { [field]: passVal }, fail: { [field]: val } };\n }\n }\n\n if (op === 'gt' || op === '>') {\n const field = extractPayloadFieldRef(guard[1]);\n const n = typeof guard[2] === 'number' ? guard[2] : 0;\n if (field) return { pass: { [field]: n + 1 }, fail: { [field]: n - 1 } };\n }\n\n if (op === 'gte' || op === '>=') {\n const field = extractPayloadFieldRef(guard[1]);\n const n = typeof guard[2] === 'number' ? guard[2] : 0;\n if (field) return { pass: { [field]: n }, fail: { [field]: n - 1 } };\n }\n\n if (op === 'lt' || op === '<') {\n const field = extractPayloadFieldRef(guard[1]);\n const n = typeof guard[2] === 'number' ? guard[2] : 0;\n if (field) return { pass: { [field]: n - 1 }, fail: { [field]: n + 1 } };\n }\n\n if (op === 'lte' || op === '<=') {\n const field = extractPayloadFieldRef(guard[1]);\n const n = typeof guard[2] === 'number' ? guard[2] : 0;\n if (field) return { pass: { [field]: n }, fail: { [field]: n + 1 } };\n }\n\n if (op === 'and') {\n const subs = (guard.slice(1) as unknown[]).filter(Array.isArray);\n if (subs.length >= 2) {\n const s1 = buildGuardPayloads(subs[0]);\n const s2 = buildGuardPayloads(subs[1]);\n return { pass: { ...s1.pass, ...s2.pass }, fail: s1.fail };\n }\n if (subs.length === 1) return buildGuardPayloads(subs[0]);\n }\n\n if (op === 'or') {\n const subs = (guard.slice(1) as unknown[]).filter(Array.isArray);\n if (subs.length >= 2) {\n const s1 = buildGuardPayloads(subs[0]);\n const s2 = buildGuardPayloads(subs[1]);\n return { pass: s1.pass, fail: { ...s1.fail, ...s2.fail } };\n }\n if (subs.length === 1) return buildGuardPayloads(subs[0]);\n }\n\n if (op === 'not') {\n const inner = buildGuardPayloads(guard[1]);\n return { pass: inner.fail, fail: inner.pass };\n }\n\n return { pass: {}, fail: {} };\n}\n","/**\n * Replay Path Builder\n *\n * Compute the shortest path (replay steps) from an initial state\n * to every reachable state in a state machine. Used by browser\n * verification to navigate through states before running assertions.\n *\n * Extracted from orbital-verify-unified/src/analyze.ts (collectDataMutationTests).\n *\n * @packageDocumentation\n */\n\nimport type { GraphTransition, ReplayStep, PayloadFieldSchema } from './types.js';\n\n/** Entity-data sentinel payload fields: presence means transition needs a selected row */\nconst ENTITY_PAYLOAD_FIELDS = new Set(['data', 'row', 'item', 'id']);\n\n/**\n * Extended transition with render and payload info needed for replay path building.\n * Compatible with orbital-verify's UnifiedTransition.\n */\nexport interface ReplayTransition extends GraphTransition {\n hasGuard: boolean;\n guard?: unknown[];\n payloadFields: string[];\n payloadSchema: PayloadFieldSchema[];\n renderEffects: Array<{\n slot: string;\n patternType: string | null;\n }>;\n}\n\n/**\n * Builds the shortest replay paths from initial state to all reachable states.\n * \n * Computes step-by-step navigation paths for state machine testing and verification.\n * Uses breadth-first search to find shortest paths up to specified depth limit.\n * Each path contains replay steps with event, state, and payload information\n * needed to reproduce state transitions in tests.\n * \n * @param {ReplayTransition[]} transitions - Transitions with render/payload information\n * @param {string} initialState - Starting state name\n * @param {number} [maxDepth=3] - Maximum path length (default: 3)\n * @returns {Map<string, ReplayStep[]>} Map of state names to replay step arrays\n * \n * @example\n * // Build paths from 'initial' state\n * const paths = buildReplayPaths(transitions, 'initial', 5);\n * \n * // Get steps to reach 'completed' state\n * const stepsToComplete = paths.get('completed');\n * \n * // Execute replay steps\n * for (const step of stepsToComplete) {\n * await dispatchEvent(step.event, step.payload);\n * }\n */\nexport function buildReplayPaths(\n transitions: ReplayTransition[],\n initialState: string,\n maxDepth = 3\n): Map<string, ReplayStep[]> {\n type QueueNode = { state: string; path: ReplayStep[] };\n\n const queue: QueueNode[] = [{ state: initialState, path: [] }];\n const replayPaths = new Map<string, ReplayStep[]>();\n replayPaths.set(initialState, []);\n\n while (queue.length > 0) {\n const { state, path } = queue.shift()!;\n if (path.length >= maxDepth) continue;\n\n const fromHere = transitions.filter(\n (t) => t.from === state && t.event !== 'INIT',\n );\n\n for (const transition of fromHere) {\n if (replayPaths.has(transition.to)) continue;\n\n const renderEffect = transition.renderEffects.find((re) => re.patternType !== null);\n const stepNeedsEntityData =\n transition.hasGuard ||\n transition.payloadFields.some((f) => ENTITY_PAYLOAD_FIELDS.has(f));\n\n const step: ReplayStep = {\n event: transition.event,\n fromState: state,\n toState: transition.to,\n slot: renderEffect?.slot ?? 'main',\n expectedPattern: renderEffect?.patternType ?? undefined,\n needsEntityData: stepNeedsEntityData,\n payloadSchema: transition.payloadSchema.length > 0 ? transition.payloadSchema : undefined,\n };\n\n const newPath = [...path, step];\n replayPaths.set(transition.to, newPath);\n queue.push({ state: transition.to, path: newPath });\n }\n }\n\n return replayPaths;\n}\n","/**\n * Edge-Covering Walk Algorithm\n *\n * Computes an ordered sequence of events (WalkStep[]) that covers every\n * transition (edge) in a state machine graph at least once. This guarantees\n * 100% transition coverage regardless of graph topology.\n *\n * Algorithm:\n * 1. Build adjacency list and edge universe (guarded transitions produce two edges)\n * 2. Precompute BFS shortest paths between all state pairs (for repositioning)\n * 3. Greedy DFS: at each state, prefer uncovered outgoing edges\n * 4. When stuck, insert repositioning steps to nearest state with uncovered edges\n * 5. Guard-fail steps don't advance state (guard blocks transition)\n *\n * Used by StateWalkEngine in @almadar-io/verify. Both orbital-verify and\n * runtime-verify share this algorithm for consistent coverage.\n *\n * @packageDocumentation\n */\n\nimport type { EdgeWalkTransition, WalkStep, StateEdge } from './types.js';\nimport { buildGuardPayloads } from './guard-payloads.js';\n\n/**\n * Build an ordered walk that covers every edge in the state machine.\n *\n * @param transitions - All transitions in the state machine\n * @param initialState - Starting state\n * @returns Ordered walk steps covering every edge\n */\nexport function buildEdgeCoveringWalk(\n transitions: EdgeWalkTransition[],\n initialState: string,\n): WalkStep[] {\n // 1. Build adjacency list, skip wildcards and INIT\n const filtered = transitions.filter(\n (t) => t.from !== '*' && t.event !== 'INIT',\n );\n\n const graph = new Map<string, Array<{ event: string; to: string; transition: EdgeWalkTransition }>>();\n const allStates = new Set<string>();\n\n for (const t of filtered) {\n allStates.add(t.from);\n allStates.add(t.to);\n if (!graph.has(t.from)) graph.set(t.from, []);\n graph.get(t.from)!.push({ event: t.event, to: t.to, transition: t });\n }\n\n // Ensure initial state is in the set\n allStates.add(initialState);\n\n // 2. Build edge universe. Guarded transitions produce pass + fail edges.\n const uncovered = new Set<string>();\n const edgeMeta = new Map<string, { transition: EdgeWalkTransition; guardCase: 'pass' | 'fail' | null }>();\n\n for (const t of filtered) {\n if (t.hasGuard) {\n const keyPass = `${t.from}+${t.event}->${t.to}[pass]`;\n const keyFail = `${t.from}+${t.event}->${t.to}[fail]`;\n uncovered.add(keyPass);\n uncovered.add(keyFail);\n edgeMeta.set(keyPass, { transition: t, guardCase: 'pass' });\n edgeMeta.set(keyFail, { transition: t, guardCase: 'fail' });\n } else {\n const key = `${t.from}+${t.event}->${t.to}`;\n uncovered.add(key);\n edgeMeta.set(key, { transition: t, guardCase: null });\n }\n }\n\n if (uncovered.size === 0) return [];\n\n // 3. Precompute BFS shortest paths between all state pairs\n const shortestPaths = new Map<string, Map<string, Array<{ event: string; to: string }>>>();\n for (const state of allStates) {\n shortestPaths.set(state, bfsShortestPaths(state, graph));\n }\n\n // 4. Greedy walk\n const walk: WalkStep[] = [];\n let currentState = initialState;\n const maxIterations = uncovered.size * allStates.size * 2; // safety bound\n let iterations = 0;\n\n while (uncovered.size > 0 && iterations < maxIterations) {\n iterations++;\n\n // Find uncovered edges from currentState\n const outgoing = findUncoveredEdges(currentState, graph, uncovered);\n\n if (outgoing.length > 0) {\n // Pick first uncovered edge\n const pick = outgoing[0];\n const payload = buildPayloadForEdge(pick.transition, pick.guardCase);\n\n walk.push({\n from: currentState,\n event: pick.transition.event,\n to: pick.transition.to,\n guardCase: pick.guardCase,\n payload,\n isRepositioning: false,\n });\n\n uncovered.delete(pick.key);\n\n // Guard-fail doesn't advance state\n if (pick.guardCase !== 'fail') {\n currentState = pick.transition.to;\n }\n } else {\n // Stuck: find nearest state with uncovered edges\n const target = findNearestUncoveredState(currentState, graph, uncovered, shortestPaths);\n\n if (!target) {\n // No reachable state with uncovered edges. Remaining edges are unreachable.\n break;\n }\n\n // Insert repositioning steps\n const repoPath = shortestPaths.get(currentState)?.get(target);\n if (!repoPath || repoPath.length === 0) break;\n\n for (const step of repoPath) {\n walk.push({\n from: currentState,\n event: step.event,\n to: step.to,\n guardCase: null,\n payload: {},\n isRepositioning: true,\n });\n currentState = step.to;\n }\n }\n }\n\n return walk;\n}\n\n// ---------------------------------------------------------------------------\n// Internal helpers\n// ---------------------------------------------------------------------------\n\n/**\n * BFS from a source state, returning shortest paths to all reachable states.\n * Each path is an array of {event, to} steps.\n */\nfunction bfsShortestPaths(\n source: string,\n graph: Map<string, Array<{ event: string; to: string; transition: EdgeWalkTransition }>>,\n): Map<string, Array<{ event: string; to: string }>> {\n const paths = new Map<string, Array<{ event: string; to: string }>>();\n const visited = new Set<string>([source]);\n const queue: Array<{ state: string; path: Array<{ event: string; to: string }> }> = [\n { state: source, path: [] },\n ];\n\n while (queue.length > 0) {\n const { state, path } = queue.shift()!;\n const edges = graph.get(state) ?? [];\n\n for (const edge of edges) {\n if (visited.has(edge.to)) continue;\n visited.add(edge.to);\n const newPath = [...path, { event: edge.event, to: edge.to }];\n paths.set(edge.to, newPath);\n queue.push({ state: edge.to, path: newPath });\n }\n }\n\n return paths;\n}\n\n/**\n * Find uncovered edges from a given state.\n */\nfunction findUncoveredEdges(\n state: string,\n graph: Map<string, Array<{ event: string; to: string; transition: EdgeWalkTransition }>>,\n uncovered: Set<string>,\n): Array<{ key: string; transition: EdgeWalkTransition; guardCase: 'pass' | 'fail' | null }> {\n const edges = graph.get(state) ?? [];\n const result: Array<{ key: string; transition: EdgeWalkTransition; guardCase: 'pass' | 'fail' | null }> = [];\n\n for (const edge of edges) {\n if (edge.transition.hasGuard) {\n const keyPass = `${state}+${edge.event}->${edge.to}[pass]`;\n const keyFail = `${state}+${edge.event}->${edge.to}[fail]`;\n // Prefer pass first (advances state), then fail\n if (uncovered.has(keyPass)) {\n result.push({ key: keyPass, transition: edge.transition, guardCase: 'pass' });\n }\n if (uncovered.has(keyFail)) {\n result.push({ key: keyFail, transition: edge.transition, guardCase: 'fail' });\n }\n } else {\n const key = `${state}+${edge.event}->${edge.to}`;\n if (uncovered.has(key)) {\n result.push({ key, transition: edge.transition, guardCase: null });\n }\n }\n }\n\n return result;\n}\n\n/**\n * Find the nearest state (from currentState) that has uncovered outgoing edges.\n */\nfunction findNearestUncoveredState(\n currentState: string,\n graph: Map<string, Array<{ event: string; to: string; transition: EdgeWalkTransition }>>,\n uncovered: Set<string>,\n shortestPaths: Map<string, Map<string, Array<{ event: string; to: string }>>>,\n): string | null {\n // Collect states that have uncovered edges\n const statesWithUncovered = new Set<string>();\n for (const key of uncovered) {\n // Key format: \"state+EVENT->target\" or \"state+EVENT->target[pass]\"\n const fromState = key.split('+')[0];\n statesWithUncovered.add(fromState);\n }\n\n // If current state has uncovered edges, return it (shouldn't happen, but handle it)\n if (statesWithUncovered.has(currentState)) return currentState;\n\n // Find nearest reachable state with uncovered edges\n const paths = shortestPaths.get(currentState);\n if (!paths) return null;\n\n let nearestState: string | null = null;\n let nearestDist = Infinity;\n\n for (const target of statesWithUncovered) {\n const path = paths.get(target);\n if (path && path.length < nearestDist) {\n nearestDist = path.length;\n nearestState = target;\n }\n }\n\n return nearestState;\n}\n\n/**\n * Build a payload for a given edge based on its guard case and payload schema.\n * For guarded transitions, uses guard expressions to generate pass/fail payloads.\n * For unguarded transitions with payload schemas (e.g., EDIT/VIEW with { id }),\n * generates mock values so fetch-by-ID effects can resolve entity data.\n */\nfunction buildPayloadForEdge(\n transition: EdgeWalkTransition,\n guardCase: 'pass' | 'fail' | null,\n// eslint-disable-next-line almadar/no-record-string-unknown -- Payloads are dynamically typed per event schema\n): Record<string, unknown> {\n // Guard-based payload generation (existing behavior)\n if (transition.hasGuard && transition.guard && guardCase) {\n const payloads = buildGuardPayloads(transition.guard);\n return guardCase === 'pass' ? payloads.pass : payloads.fail;\n }\n\n // Schema-based payload generation for events that declare required fields\n // (e.g., EDIT/VIEW declare { name: \"id\", type: \"string\", required: true })\n if (transition.payloadSchema && transition.payloadSchema.length > 0) {\n // eslint-disable-next-line almadar/no-record-string-unknown -- Mock payloads are dynamically typed per event schema\n const payload: Record<string, unknown> = {};\n for (const field of transition.payloadSchema) {\n // Use caller-provided mockValue if available (set from entity context)\n if (field.mockValue !== undefined) {\n payload[field.name] = field.mockValue;\n } else if (field.type === 'string') {\n payload[field.name] = `mock-${field.name}`;\n } else if (field.type === 'number') {\n payload[field.name] = 1;\n } else if (field.type === 'boolean') {\n payload[field.name] = true;\n } else {\n payload[field.name] = `mock-${field.name}`;\n }\n }\n return payload;\n }\n\n return {};\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { bD as SExpr } from '../schema-D96fyp1B.js';
2
- export { A as AGENT_DOMAIN_CATEGORIES, e as ALLOWED_CUSTOM_COMPONENTS, f as AgentDomainCategory, g as AgentDomainCategorySchema, h as AgentEffect, i as AllowedCustomComponent, j as AnimationDef, k as AnimationDefInput, l as AnimationDefSchema, b as AppSchema, m as AssetMap, n as AssetMapInput, o as AssetMapSchema, p as AssetMapping, q as AssetMappingInput, r as AssetMappingSchema, s as AtomicEffect, C as CORE_BINDINGS, t as CallServiceConfig, u as ComputedEventContract, v as ComputedEventContractSchema, w as ComputedEventListener, x as ComputedEventListenerSchema, y as CoreBinding, z as CustomPatternDefinition, B as CustomPatternDefinitionInput, D as CustomPatternDefinitionSchema, F as CustomPatternMap, G as CustomPatternMapInput, H as CustomPatternMapSchema, I as DerefEffect, J as DesignPreferences, K as DesignPreferencesInput, L as DesignPreferencesSchema, M as DesignTokens, N as DesignTokensInput, Q as DesignTokensSchema, R as DomainCategory, U as DomainCategorySchema, V as DomainContext, W as DomainContextInput, X as DomainContextSchema, Y as DomainVocabulary, Z as DomainVocabularySchema, _ as ENTITY_ROLES, $ as Effect, a0 as EffectInput, a1 as EffectSchema, d as Entity, a2 as EntityData, E as EntityField, a3 as EntityFieldInput, a4 as EntityFieldSchema, a as EntityPersistence, a5 as EntityPersistenceSchema, a6 as EntityRef, a7 as EntityRefSchema, a8 as EntityRefStringSchema, a9 as EntityRole, aa as EntityRoleSchema, ab as EntityRow, ac as EntitySchema, ad as EntitySemanticRole, ae as EntitySemanticRoleSchema, af as EvalContext, ag as Event, ah as EventInput, ai as EventListener, aj as EventListenerSchema, ak as EventPayload, al as EventPayloadField, am as EventPayloadFieldSchema, an as EventSchema, ao as EventScope, ap as EventScopeSchema, aq as EventSemanticRole, ar as EventSemanticRoleSchema, as as EventSource, at as EventSourceSchema, au as Expression, av as ExpressionInput, aw as ExpressionSchema, ax as Field, ay as FieldFormat, az as FieldFormatSchema, aA as FieldSchema, aB as FieldType, aC as FieldTypeSchema, aD as FieldValue, aE as FullOrbitalUnit, aF as GAME_TYPES, aG as GameSubCategory, aH as GameSubCategorySchema, aI as GameType, aJ as GameTypeSchema, aK as Guard, aL as GuardInput, aM as GuardSchema, aN as LogMeta, aO as McpServiceDef, aP as McpServiceDefSchema, aQ as NodeClassification, aR as NodeClassificationSchema, aE as Orbital, aS as OrbitalConfig, aT as OrbitalConfigInput, aU as OrbitalConfigSchema, O as OrbitalDefinition, aV as OrbitalDefinitionSchema, aW as OrbitalEntity, aX as OrbitalEntityInput, aY as OrbitalEntitySchema, aZ as OrbitalInput, a_ as OrbitalPage, a$ as OrbitalPageInput, b0 as OrbitalPageSchema, b1 as OrbitalPageStrictInput, b2 as OrbitalPageStrictSchema, b as OrbitalSchema, b3 as OrbitalSchemaInput, b4 as OrbitalSchemaSchema, b5 as OrbitalTraitRef, b6 as OrbitalTraitRefSchema, b7 as OrbitalUnit, b8 as OrbitalUnitSchema, b9 as OrbitalZodSchema, P as Page, ba as PageRef, bb as PageRefObject, bc as PageRefObjectSchema, bd as PageRefSchema, be as PageRefStringSchema, bf as PageSchema, bg as PageTraitRef, bh as PageTraitRefSchema, bi as ParsedBinding, bj as PayloadField, bk as PayloadFieldSchema, bl as PresentationType, bm as RefEffect, bn as RelatedLink, bo as RelatedLinkSchema, bp as RelationConfig, bq as RelationConfigSchema, br as RenderUIConfig, bs as RenderUINode, bt as RequiredField, bu as RequiredFieldSchema, bv as ResolvedAsset, bw as ResolvedAssetInput, bx as ResolvedAssetSchema, by as RestAuthConfig, bz as RestAuthConfigSchema, bA as RestServiceDef, bB as RestServiceDefSchema, bC as SERVICE_TYPES, bE as SExprAtom, bF as SExprAtomSchema, bG as SExprInput, bH as SExprSchema, bI as SemanticAssetRef, bJ as SemanticAssetRefInput, bK as SemanticAssetRefSchema, bL as ServiceDefinition, bM as ServiceDefinitionSchema, bN as ServiceParams, bO as ServiceRef, bP as ServiceRefSchema, bQ as ServiceRefStringSchema, bR as ServiceType, bS as ServiceTypeSchema, bT as SocketEvents, bU as SocketEventsSchema, bV as SocketServiceDef, bW as SocketServiceDefSchema, S as State, bX as StateInput, bY as StateMachine, bZ as StateMachineInput, b_ as StateMachineSchema, b$ as StateSchema, c0 as StateSemanticRole, c1 as StateSemanticRoleSchema, c2 as SuggestedGuard, c3 as SuggestedGuardSchema, c4 as SwapEffect, c5 as ThemeDefinition, c6 as ThemeDefinitionSchema, c7 as ThemeRef, c8 as ThemeRefSchema, c9 as ThemeRefStringSchema, ca as ThemeTokens, cb as ThemeTokensSchema, cc as ThemeVariant, cd as ThemeVariantSchema, c as Trait, ce as TraitCategory, cf as TraitCategorySchema, cg as TraitDataEntity, ch as TraitDataEntitySchema, ci as TraitEntityField, cj as TraitEntityFieldSchema, T as TraitEventContract, ck as TraitEventContractSchema, cl as TraitEventListener, cm as TraitEventListenerSchema, cn as TraitInput, co as TraitRef, cp as TraitRefSchema, cq as TraitReference, cr as TraitReferenceInput, cs as TraitReferenceSchema, ct as TraitSchema, cu as TraitTick, cv as TraitTickSchema, cw as TraitUIBinding, cx as Transition, cy as TransitionInput, cz as TransitionSchema, cA as UISlot, cB as UISlotSchema, cC as UI_SLOTS, cD as UXHints, cE as UXHintsSchema, cF as UseDeclaration, cG as UseDeclarationSchema, cH as UserPersona, cI as UserPersonaInput, cJ as UserPersonaSchema, cK as VISUAL_STYLES, cL as ViewType, cM as ViewTypeSchema, cN as VisualStyle, cO as VisualStyleSchema, cP as WatchEffect, cQ as WatchOptions, cR as atomic, cS as callService, cT as collectBindings, cU as createAssetKey, cV as deref, cW as deriveCollection, cX as despawn, cY as doEffects, cZ as emit, c_ as findService, c$ as getArgs, d0 as getDefaultAnimationsForRole, d1 as getOperator, d2 as getServiceNames, d3 as getTraitConfig, d4 as getTraitName, d5 as hasService, d6 as isBinding, d7 as isCircuitEvent, d8 as isEffect, d9 as isEntityReference, da as isImportedTraitRef, db as isInlineTrait, dc as isMcpService, dd as isOrbitalDefinition, de as isPageReference, df as isPageReferenceObject, dg as isPageReferenceString, dh as isRestService, di as isRuntimeEntity, dj as isSExpr, dk as isSExprAtom, dl as isSExprCall, dm as isSExprEffect, dn as isServiceReference, dp as isSingletonEntity, dq as isSocketService, dr as isThemeReference, ds as isValidBinding, dt as navigate, du as normalizeTraitRef, dv as notify, dw as parseAssetKey, dx as parseBinding, dy as parseEntityRef, dz as parseImportedTraitRef, dA as parseOrbitalSchema, dB as parsePageRef, dC as parseServiceRef, dD as persist, dE as ref, dF as renderUI, dG as safeParseOrbitalSchema, dH as set, dI as sexpr, dJ as spawn, dK as swap, dL as validateAssetAnimations, dM as walkSExpr, dN as watch } from '../schema-D96fyp1B.js';
1
+ import { b as EntityRow, aD as FieldValue, bE as SExpr } from '../schema-D3qNm2Ac.js';
2
+ export { A as AGENT_DOMAIN_CATEGORIES, f as ALLOWED_CUSTOM_COMPONENTS, g as AgentDomainCategory, h as AgentDomainCategorySchema, i as AgentEffect, j as AllowedCustomComponent, k as AnimationDef, l as AnimationDefInput, m as AnimationDefSchema, c as AppSchema, n as AssetMap, o as AssetMapInput, p as AssetMapSchema, q as AssetMapping, r as AssetMappingInput, s as AssetMappingSchema, t as AtomicEffect, C as CORE_BINDINGS, u as CallServiceConfig, v as ComputedEventContract, w as ComputedEventContractSchema, x as ComputedEventListener, y as ComputedEventListenerSchema, z as CoreBinding, B as CustomPatternDefinition, D as CustomPatternDefinitionInput, F as CustomPatternDefinitionSchema, G as CustomPatternMap, H as CustomPatternMapInput, I as CustomPatternMapSchema, J as DerefEffect, K as DesignPreferences, L as DesignPreferencesInput, M as DesignPreferencesSchema, N as DesignTokens, Q as DesignTokensInput, R as DesignTokensSchema, U as DomainCategory, V as DomainCategorySchema, W as DomainContext, X as DomainContextInput, Y as DomainContextSchema, Z as DomainVocabulary, _ as DomainVocabularySchema, $ as ENTITY_ROLES, a0 as Effect, a1 as EffectInput, a2 as EffectSchema, e as Entity, a3 as EntityData, E as EntityField, a4 as EntityFieldInput, a5 as EntityFieldSchema, a as EntityPersistence, a6 as EntityPersistenceSchema, a7 as EntityRef, a8 as EntityRefSchema, a9 as EntityRefStringSchema, aa as EntityRole, ab as EntityRoleSchema, ac as EntitySchema, ad as EntitySemanticRole, ae as EntitySemanticRoleSchema, af as EvalContext, ag as Event, ah as EventInput, ai as EventListener, aj as EventListenerSchema, ak as EventPayload, al as EventPayloadField, am as EventPayloadFieldSchema, an as EventSchema, ao as EventScope, ap as EventScopeSchema, aq as EventSemanticRole, ar as EventSemanticRoleSchema, as as EventSource, at as EventSourceSchema, au as Expression, av as ExpressionInput, aw as ExpressionSchema, ax as Field, ay as FieldFormat, az as FieldFormatSchema, aA as FieldSchema, aB as FieldType, aC as FieldTypeSchema, aE as FullOrbitalUnit, aF as GAME_TYPES, aG as GameSubCategory, aH as GameSubCategorySchema, aI as GameType, aJ as GameTypeSchema, aK as Guard, aL as GuardInput, aM as GuardSchema, aN as LogMeta, aO as McpServiceDef, aP as McpServiceDefSchema, aQ as NodeClassification, aR as NodeClassificationSchema, aE as Orbital, aS as OrbitalConfig, aT as OrbitalConfigInput, aU as OrbitalConfigSchema, O as OrbitalDefinition, aV as OrbitalDefinitionSchema, aW as OrbitalEntity, aX as OrbitalEntityInput, aY as OrbitalEntitySchema, aZ as OrbitalInput, a_ as OrbitalPage, a$ as OrbitalPageInput, b0 as OrbitalPageSchema, b1 as OrbitalPageStrictInput, b2 as OrbitalPageStrictSchema, c as OrbitalSchema, b3 as OrbitalSchemaInput, b4 as OrbitalSchemaSchema, b5 as OrbitalTraitRef, b6 as OrbitalTraitRefSchema, b7 as OrbitalUnit, b8 as OrbitalUnitSchema, b9 as OrbitalZodSchema, P as Page, ba as PageRef, bb as PageRefObject, bc as PageRefObjectSchema, bd as PageRefSchema, be as PageRefStringSchema, bf as PageSchema, bg as PageTraitRef, bh as PageTraitRefSchema, bi as ParsedBinding, bj as PayloadField, bk as PayloadFieldSchema, bl as PresentationType, bm as RefEffect, bn as RelatedLink, bo as RelatedLinkSchema, bp as RelationConfig, bq as RelationConfigSchema, br as RenderUIConfig, bs as RenderUINode, bt as RequiredField, bu as RequiredFieldSchema, bv as ResolvedAsset, bw as ResolvedAssetInput, bx as ResolvedAssetSchema, by as ResolvedPatternProps, bz as RestAuthConfig, bA as RestAuthConfigSchema, bB as RestServiceDef, bC as RestServiceDefSchema, bD as SERVICE_TYPES, bF as SExprAtom, bG as SExprAtomSchema, bH as SExprInput, bI as SExprSchema, bJ as SemanticAssetRef, bK as SemanticAssetRefInput, bL as SemanticAssetRefSchema, bM as ServiceDefinition, bN as ServiceDefinitionSchema, bO as ServiceParams, bP as ServiceRef, bQ as ServiceRefSchema, bR as ServiceRefStringSchema, bS as ServiceType, bT as ServiceTypeSchema, bU as SocketEvents, bV as SocketEventsSchema, bW as SocketServiceDef, bX as SocketServiceDefSchema, S as State, bY as StateInput, bZ as StateMachine, b_ as StateMachineInput, b$ as StateMachineSchema, c0 as StateSchema, c1 as StateSemanticRole, c2 as StateSemanticRoleSchema, c3 as SuggestedGuard, c4 as SuggestedGuardSchema, c5 as SwapEffect, c6 as ThemeDefinition, c7 as ThemeDefinitionSchema, c8 as ThemeRef, c9 as ThemeRefSchema, ca as ThemeRefStringSchema, cb as ThemeTokens, cc as ThemeTokensSchema, cd as ThemeVariant, ce as ThemeVariantSchema, d as Trait, cf as TraitCategory, cg as TraitCategorySchema, ch as TraitDataEntity, ci as TraitDataEntitySchema, cj as TraitEntityField, ck as TraitEntityFieldSchema, T as TraitEventContract, cl as TraitEventContractSchema, cm as TraitEventListener, cn as TraitEventListenerSchema, co as TraitInput, cp as TraitRef, cq as TraitRefSchema, cr as TraitReference, cs as TraitReferenceInput, ct as TraitReferenceSchema, cu as TraitSchema, cv as TraitTick, cw as TraitTickSchema, cx as TraitUIBinding, cy as Transition, cz as TransitionInput, cA as TransitionSchema, cB as UISlot, cC as UISlotSchema, cD as UI_SLOTS, cE as UXHints, cF as UXHintsSchema, cG as UseDeclaration, cH as UseDeclarationSchema, cI as UserPersona, cJ as UserPersonaInput, cK as UserPersonaSchema, cL as VISUAL_STYLES, cM as ViewType, cN as ViewTypeSchema, cO as VisualStyle, cP as VisualStyleSchema, cQ as WatchEffect, cR as WatchOptions, cS as atomic, cT as callService, cU as collectBindings, cV as createAssetKey, cW as deref, cX as deriveCollection, cY as despawn, cZ as doEffects, c_ as emit, c$ as findService, d0 as getArgs, d1 as getDefaultAnimationsForRole, d2 as getOperator, d3 as getServiceNames, d4 as getTraitConfig, d5 as getTraitName, d6 as hasService, d7 as isBinding, d8 as isCircuitEvent, d9 as isEffect, da as isEntityReference, db as isImportedTraitRef, dc as isInlineTrait, dd as isMcpService, de as isOrbitalDefinition, df as isPageReference, dg as isPageReferenceObject, dh as isPageReferenceString, di as isRestService, dj as isRuntimeEntity, dk as isSExpr, dl as isSExprAtom, dm as isSExprCall, dn as isSExprEffect, dp as isServiceReference, dq as isSingletonEntity, dr as isSocketService, ds as isThemeReference, dt as isValidBinding, du as navigate, dv as normalizeTraitRef, dw as notify, dx as parseAssetKey, dy as parseBinding, dz as parseEntityRef, dA as parseImportedTraitRef, dB as parseOrbitalSchema, dC as parsePageRef, dD as parseServiceRef, dE as persist, dF as ref, dG as renderUI, dH as safeParseOrbitalSchema, dI as set, dJ as sexpr, dK as spawn, dL as swap, dM as validateAssetAnimations, dN as walkSExpr, dO as watch } from '../schema-D3qNm2Ac.js';
3
3
  import { z } from 'zod';
4
4
  export { CATEGORIES, CategoryMeta, OPERATORS, OPERATORS_SCHEMA, OPERATOR_NAMES, OperatorCategory, OperatorMeta, OperatorStats, OperatorsSchema, TargetPlatform, getOperatorMeta, getOperatorStats, getOperatorsByCategory, getOperatorsForTarget, isEffectOperator, isGuardOperator, isKnownOperator, validateOperatorArity } from '@almadar/operators';
5
5
  export { PATTERN_TYPES, PatternConfig, PatternType, isValidPatternType } from '@almadar/patterns';
@@ -812,9 +812,9 @@ interface ResolvedEntity {
812
812
  /** Whether this entity has pre-authored instances in the schema */
813
813
  hasInstances?: boolean;
814
814
  /** Pre-authored instances from the schema (seed data or static reference data) */
815
- instances?: Record<string, unknown>[];
815
+ instances?: EntityRow[];
816
816
  /** Default field values from schema (for spawning singletons) */
817
- defaults?: Record<string, unknown>;
817
+ defaults?: Record<string, FieldValue>;
818
818
  usedByTraits: string[];
819
819
  usedByPages: string[];
820
820
  }
@@ -1048,4 +1048,4 @@ declare function createResolvedField(field: {
1048
1048
  */
1049
1049
  declare function isResolvedIR(ir: unknown): ir is ResolvedIR;
1050
1050
 
1051
- export { type AgentCodeSearchResult, type AgentCompactResult, type AgentCompactStrategy, type AgentContext, type AgentGenerateOptions, type AgentMemoryCategory, type AgentMemoryRecord, type AppSummary, BINDING_CONTEXT_RULES, BINDING_DOCS, type BindingContext, BindingSchema, type CategorizedRemovals, type ChangeAuthor, type ChangeSetDocument, type ChangeSummary, type CreateFlow, DEFAULT_INTERACTION_MODELS, type DeleteFlow, type EditFlow, type GitHubLink, type HistoryMeta, type InteractionModel, type InteractionModelInput, InteractionModelSchema, type LazyService, type ListInteraction, type OperatorName, type PageContentReduction, PatternTypeSchema, type PersistActionName, type ResolvedEntity, type ResolvedEntityBinding, type ResolvedField, type ResolvedIR, type ResolvedNavigation, type ResolvedPage, type ResolvedPattern, type ResolvedSection, type ResolvedSectionEvent, type ResolvedTrait, type ResolvedTraitBinding, type ResolvedTraitDataEntity, type ResolvedTraitEvent, type ResolvedTraitGuard, type ResolvedTraitListener, type ResolvedTraitState, type ResolvedTraitTick, type ResolvedTraitTransition, type ResolvedTraitUIBinding, SExpr, type SaveOptions, type SaveResult, type SchemaChange, type ServiceAction, type ServiceActionName, type ServiceContract, type ServiceEvents, type SnapshotDocument, type StatsView, type StoreContract, type StoreFilter, type StoreFilterOp, type TransitionFrom, type ValidationDocument, type ValidationIssue, type ValidationMeta, type ValidationResults, type ViewFlow, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, getAllOperators, getAllPatternTypes, getBindingExamples, getInteractionModelForDomain, inferTsType, isResolvedIR, validateBindingInContext };
1051
+ export { type AgentCodeSearchResult, type AgentCompactResult, type AgentCompactStrategy, type AgentContext, type AgentGenerateOptions, type AgentMemoryCategory, type AgentMemoryRecord, type AppSummary, BINDING_CONTEXT_RULES, BINDING_DOCS, type BindingContext, BindingSchema, type CategorizedRemovals, type ChangeAuthor, type ChangeSetDocument, type ChangeSummary, type CreateFlow, DEFAULT_INTERACTION_MODELS, type DeleteFlow, type EditFlow, EntityRow, FieldValue, type GitHubLink, type HistoryMeta, type InteractionModel, type InteractionModelInput, InteractionModelSchema, type LazyService, type ListInteraction, type OperatorName, type PageContentReduction, PatternTypeSchema, type PersistActionName, type ResolvedEntity, type ResolvedEntityBinding, type ResolvedField, type ResolvedIR, type ResolvedNavigation, type ResolvedPage, type ResolvedPattern, type ResolvedSection, type ResolvedSectionEvent, type ResolvedTrait, type ResolvedTraitBinding, type ResolvedTraitDataEntity, type ResolvedTraitEvent, type ResolvedTraitGuard, type ResolvedTraitListener, type ResolvedTraitState, type ResolvedTraitTick, type ResolvedTraitTransition, type ResolvedTraitUIBinding, SExpr, type SaveOptions, type SaveResult, type SchemaChange, type ServiceAction, type ServiceActionName, type ServiceContract, type ServiceEvents, type SnapshotDocument, type StatsView, type StoreContract, type StoreFilter, type StoreFilterOp, type TransitionFrom, type ValidationDocument, type ValidationIssue, type ValidationMeta, type ValidationResults, type ViewFlow, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, getAllOperators, getAllPatternTypes, getBindingExamples, getInteractionModelForDomain, inferTsType, isResolvedIR, validateBindingInContext };