@almadar/core 1.0.1 → 1.0.10

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.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,86 @@
1
- export { ALLOWED_CUSTOM_COMPONENTS, AllowedCustomComponent, AnimationDef, AnimationDefInput, AnimationDefSchema, AppSchema, AssetMap, AssetMapInput, AssetMapSchema, AssetMapping, AssetMappingInput, AssetMappingSchema, BINDING_CONTEXT_RULES, BINDING_DOCS, BindingContext, BindingSchema, CORE_BINDINGS, CallServiceConfig, ComputedEventContract, ComputedEventContractSchema, ComputedEventListener, ComputedEventListenerSchema, CoreBinding, CreateFlow, CustomPatternDefinition, CustomPatternDefinitionInput, CustomPatternDefinitionSchema, CustomPatternMap, CustomPatternMapInput, CustomPatternMapSchema, DEFAULT_INTERACTION_MODELS, DeleteFlow, DesignPreferences, DesignPreferencesInput, DesignPreferencesSchema, DesignTokens, DesignTokensInput, DesignTokensSchema, DomainCategory, DomainCategorySchema, DomainContext, DomainContextInput, DomainContextSchema, DomainVocabulary, DomainVocabularySchema, ENTITY_ROLES, EditFlow, Effect, EffectInput, EffectSchema, Entity, EntityField, EntityFieldInput, EntityFieldSchema, EntityPersistence, EntityPersistenceSchema, EntityRef, EntityRefSchema, EntityRefStringSchema, EntityRole, EntityRoleSchema, EntitySchema, EntitySemanticRole, EntitySemanticRoleSchema, Event, EventInput, EventListener, EventListenerSchema, EventPayloadField, EventPayloadFieldSchema, EventSchema, EventScope, EventScopeSchema, EventSemanticRole, EventSemanticRoleSchema, EventSource, EventSourceSchema, Expression, ExpressionInput, ExpressionSchema, Field, FieldFormat, FieldFormatSchema, FieldSchema, FieldType, FieldTypeSchema, FullOrbitalUnit, GAME_TYPES, GameSubCategory, GameSubCategorySchema, GameType, GameTypeSchema, Guard, GuardInput, GuardSchema, InteractionModel, InteractionModelInput, InteractionModelSchema, ListInteraction, McpServiceDef, McpServiceDefSchema, NodeClassification, NodeClassificationSchema, OperatorName, FullOrbitalUnit as Orbital, OrbitalConfig, OrbitalConfigInput, OrbitalConfigSchema, OrbitalDefinition, OrbitalDefinitionSchema, OrbitalEntity, OrbitalEntityInput, OrbitalEntitySchema, OrbitalInput, OrbitalPage, OrbitalPageInput, OrbitalPageSchema, OrbitalPageStrictInput, OrbitalPageStrictSchema, AppSchema as OrbitalSchema, OrbitalSchemaInput, OrbitalSchemaSchema, OrbitalTraitRef, OrbitalTraitRefSchema, OrbitalUnit, OrbitalUnitSchema, OrbitalZodSchema, Page, PageRef, PageRefObject, PageRefObjectSchema, PageRefSchema, PageRefStringSchema, PageSchema, PageTraitRef, PageTraitRefSchema, ParsedBinding, PatternTypeSchema, PayloadField, PayloadFieldSchema, PresentationType, RelatedLink, RelatedLinkSchema, RelationConfig, RelationConfigSchema, RequiredField, RequiredFieldSchema, ResolvedAsset, ResolvedAssetInput, ResolvedAssetSchema, ResolvedEntity, ResolvedEntityBinding, ResolvedField, ResolvedIR, ResolvedNavigation, ResolvedPage, ResolvedPattern, ResolvedSection, ResolvedSectionEvent, ResolvedTrait, ResolvedTraitBinding, ResolvedTraitDataEntity, ResolvedTraitEvent, ResolvedTraitGuard, ResolvedTraitListener, ResolvedTraitState, ResolvedTraitTick, ResolvedTraitTransition, ResolvedTraitUIBinding, RestAuthConfig, RestAuthConfigSchema, RestServiceDef, RestServiceDefSchema, SERVICE_TYPES, SExpr, SExprAtom, SExprAtomSchema, SExprInput, SExprSchema, SemanticAssetRef, SemanticAssetRefInput, SemanticAssetRefSchema, ServiceDefinition, ServiceDefinitionSchema, ServiceRef, ServiceRefSchema, ServiceRefStringSchema, ServiceType, ServiceTypeSchema, SocketEvents, SocketEventsSchema, SocketServiceDef, SocketServiceDefSchema, State, StateInput, StateMachine, StateMachineInput, StateMachineSchema, StateSchema, StateSemanticRole, StateSemanticRoleSchema, SuggestedGuard, SuggestedGuardSchema, ThemeDefinition, ThemeDefinitionSchema, ThemeRef, ThemeRefSchema, ThemeRefStringSchema, ThemeTokens, ThemeTokensSchema, ThemeVariant, ThemeVariantSchema, Trait, TraitCategory, TraitCategorySchema, TraitDataEntity, TraitDataEntitySchema, TraitEntityField, TraitEntityFieldSchema, TraitEventContract, TraitEventContractSchema, TraitEventListener, TraitEventListenerSchema, TraitInput, TraitRef, TraitRefSchema, TraitReference, TraitReferenceInput, TraitReferenceSchema, TraitSchema, TraitTick, TraitTickSchema, TraitUIBinding, Transition, TransitionFrom, TransitionInput, TransitionSchema, UISlot, UISlotSchema, UI_SLOTS, UXHints, UXHintsSchema, UseDeclaration, UseDeclarationSchema, UserPersona, UserPersonaInput, UserPersonaSchema, VISUAL_STYLES, ViewFlow, ViewType, ViewTypeSchema, VisualStyle, VisualStyleSchema, callService, collectBindings, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createResolvedField, deriveCollection, despawn, doEffects, emit, findService, getAllOperators, getAllPatternTypes, getArgs, getBindingExamples, getDefaultAnimationsForRole, getInteractionModelForDomain, getOperator, getServiceNames, getTraitConfig, getTraitName, hasService, inferTsType, isBinding, isEffect, isEntityReference, isImportedTraitRef, isInlineTrait, isMcpService, isOrbitalDefinition, isPageReference, isPageReferenceObject, isPageReferenceString, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isServiceReference, isSingletonEntity, isSocketService, isThemeReference, isValidBinding, navigate, normalizeTraitRef, notify, parseAssetKey, parseBinding, parseEntityRef, parseImportedTraitRef, parseOrbitalSchema, parsePageRef, parseServiceRef, persist, renderUI, safeParseOrbitalSchema, set, sexpr, spawn, validateAssetAnimations, validateBindingInContext, walkSExpr } from './src/types/index.js';
1
+ import { ResolvedIR, ResolvedEntity, ResolvedPage, ResolvedTrait, AppSchema as OrbitalSchema } from './types/index.js';
2
+ export { ALLOWED_CUSTOM_COMPONENTS, AllowedCustomComponent, AnimationDef, AnimationDefInput, AnimationDefSchema, AssetMap, AssetMapInput, AssetMapSchema, AssetMapping, AssetMappingInput, AssetMappingSchema, BINDING_CONTEXT_RULES, BINDING_DOCS, BindingContext, BindingSchema, CORE_BINDINGS, CallServiceConfig, ComputedEventContract, ComputedEventContractSchema, ComputedEventListener, ComputedEventListenerSchema, CoreBinding, CreateFlow, CustomPatternDefinition, CustomPatternDefinitionInput, CustomPatternDefinitionSchema, CustomPatternMap, CustomPatternMapInput, CustomPatternMapSchema, DEFAULT_INTERACTION_MODELS, DeleteFlow, DesignPreferences, DesignPreferencesInput, DesignPreferencesSchema, DesignTokens, DesignTokensInput, DesignTokensSchema, DomainCategory, DomainCategorySchema, DomainContext, DomainContextInput, DomainContextSchema, DomainVocabulary, DomainVocabularySchema, ENTITY_ROLES, EditFlow, Effect, EffectInput, EffectSchema, Entity, EntityField, EntityFieldInput, EntityFieldSchema, EntityPersistence, EntityPersistenceSchema, EntityRef, EntityRefSchema, EntityRefStringSchema, EntityRole, EntityRoleSchema, EntitySchema, EntitySemanticRole, EntitySemanticRoleSchema, Event, EventInput, EventListener, EventListenerSchema, EventPayloadField, EventPayloadFieldSchema, EventSchema, EventScope, EventScopeSchema, EventSemanticRole, EventSemanticRoleSchema, EventSource, EventSourceSchema, Expression, ExpressionInput, ExpressionSchema, Field, FieldFormat, FieldFormatSchema, FieldSchema, FieldType, FieldTypeSchema, FullOrbitalUnit, GAME_TYPES, GameSubCategory, GameSubCategorySchema, GameType, GameTypeSchema, Guard, GuardInput, GuardSchema, InteractionModel, InteractionModelInput, InteractionModelSchema, ListInteraction, McpServiceDef, McpServiceDefSchema, NodeClassification, NodeClassificationSchema, OperatorName, FullOrbitalUnit as Orbital, OrbitalConfig, OrbitalConfigInput, OrbitalConfigSchema, OrbitalDefinition, OrbitalDefinitionSchema, OrbitalEntity, OrbitalEntityInput, OrbitalEntitySchema, OrbitalInput, OrbitalPage, OrbitalPageInput, OrbitalPageSchema, OrbitalPageStrictInput, OrbitalPageStrictSchema, OrbitalSchemaInput, OrbitalSchemaSchema, OrbitalTraitRef, OrbitalTraitRefSchema, OrbitalUnit, OrbitalUnitSchema, OrbitalZodSchema, Page, PageRef, PageRefObject, PageRefObjectSchema, PageRefSchema, PageRefStringSchema, PageSchema, PageTraitRef, PageTraitRefSchema, ParsedBinding, PatternTypeSchema, PayloadField, PayloadFieldSchema, PresentationType, RelatedLink, RelatedLinkSchema, RelationConfig, RelationConfigSchema, RenderUIConfig, RequiredField, RequiredFieldSchema, ResolvedAsset, ResolvedAssetInput, ResolvedAssetSchema, ResolvedEntityBinding, ResolvedField, ResolvedNavigation, ResolvedPattern, ResolvedSection, ResolvedSectionEvent, ResolvedTraitBinding, ResolvedTraitDataEntity, ResolvedTraitEvent, ResolvedTraitGuard, ResolvedTraitListener, ResolvedTraitState, ResolvedTraitTick, ResolvedTraitTransition, ResolvedTraitUIBinding, RestAuthConfig, RestAuthConfigSchema, RestServiceDef, RestServiceDefSchema, SERVICE_TYPES, SExpr, SExprAtom, SExprAtomSchema, SExprInput, SExprSchema, SemanticAssetRef, SemanticAssetRefInput, SemanticAssetRefSchema, ServiceDefinition, ServiceDefinitionSchema, ServiceRef, ServiceRefSchema, ServiceRefStringSchema, ServiceType, ServiceTypeSchema, SocketEvents, SocketEventsSchema, SocketServiceDef, SocketServiceDefSchema, State, StateInput, StateMachine, StateMachineInput, StateMachineSchema, StateSchema, StateSemanticRole, StateSemanticRoleSchema, SuggestedGuard, SuggestedGuardSchema, ThemeDefinition, ThemeDefinitionSchema, ThemeRef, ThemeRefSchema, ThemeRefStringSchema, ThemeTokens, ThemeTokensSchema, ThemeVariant, ThemeVariantSchema, Trait, TraitCategory, TraitCategorySchema, TraitDataEntity, TraitDataEntitySchema, TraitEntityField, TraitEntityFieldSchema, TraitEventContract, TraitEventContractSchema, TraitEventListener, TraitEventListenerSchema, TraitInput, TraitRef, TraitRefSchema, TraitReference, TraitReferenceInput, TraitReferenceSchema, TraitSchema, TraitTick, TraitTickSchema, TraitUIBinding, Transition, TransitionFrom, TransitionInput, TransitionSchema, UISlot, UISlotSchema, UI_SLOTS, UXHints, UXHintsSchema, UseDeclaration, UseDeclarationSchema, UserPersona, UserPersonaInput, UserPersonaSchema, VISUAL_STYLES, ViewFlow, ViewType, ViewTypeSchema, VisualStyle, VisualStyleSchema, callService, collectBindings, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createResolvedField, deriveCollection, despawn, doEffects, emit, findService, getAllOperators, getAllPatternTypes, getArgs, getBindingExamples, getDefaultAnimationsForRole, getInteractionModelForDomain, getOperator, getServiceNames, getTraitConfig, getTraitName, hasService, inferTsType, isBinding, isCircuitEvent, isEffect, isEntityReference, isImportedTraitRef, isInlineTrait, isMcpService, isOrbitalDefinition, isPageReference, isPageReferenceObject, isPageReferenceString, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isServiceReference, isSingletonEntity, isSocketService, isThemeReference, isValidBinding, navigate, normalizeTraitRef, notify, parseAssetKey, parseBinding, parseEntityRef, parseImportedTraitRef, parseOrbitalSchema, parsePageRef, parseServiceRef, persist, renderUI, safeParseOrbitalSchema, set, sexpr, spawn, validateAssetAnimations, validateBindingInContext, walkSExpr } from './types/index.js';
2
3
  export { CATEGORIES, CategoryMeta, OPERATORS, OPERATORS_SCHEMA, OPERATOR_NAMES, OperatorCategory, OperatorMeta, OperatorStats, OperatorsSchema, TargetPlatform, getOperatorMeta, getOperatorStats, getOperatorsByCategory, getOperatorsForTarget, isEffectOperator, isGuardOperator, isKnownOperator, validateOperatorArity } from '@almadar/operators';
3
4
  export { PATTERN_TYPES, PatternConfig, PatternType, isValidPatternType } from '@almadar/patterns';
4
5
  import 'zod';
6
+
7
+ /**
8
+ * Schema Resolver
9
+ *
10
+ * Converts OrbitalSchema to Intermediate Representation (IR).
11
+ * Resolves all entity references, expands traits, and prepares schema for compilation/runtime.
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+
16
+ /**
17
+ * Clear the schema resolution cache.
18
+ * Useful for hot-reloading during development.
19
+ */
20
+ declare function clearSchemaCache(): void;
21
+ /**
22
+ * Get cache statistics (for debugging)
23
+ */
24
+ declare function getSchemaCacheStats(): {
25
+ size: number;
26
+ keys: string[];
27
+ };
28
+ /**
29
+ * Convert OrbitalSchema to Intermediate Representation (IR).
30
+ *
31
+ * This function:
32
+ * 1. Resolves all entity references
33
+ * 2. Expands trait definitions (inline or from library)
34
+ * 3. Resolves page bindings
35
+ * 4. Creates the IR structure used by compiler and runtime
36
+ *
37
+ * @param schema - OrbitalSchema to convert
38
+ * @param useCache - Whether to use cached result (default: true)
39
+ * @returns Fully resolved IR
40
+ *
41
+ * @example
42
+ * const schema = { name: 'MyApp', orbitals: [...] };
43
+ * const ir = schemaToIR(schema);
44
+ * console.log(ir.entities.size); // Number of entities
45
+ * console.log(ir.pages.size); // Number of pages
46
+ */
47
+ declare function schemaToIR(schema: OrbitalSchema, useCache?: boolean): ResolvedIR;
48
+ /**
49
+ * Get a specific page from resolved IR by name.
50
+ * If no name is provided, returns the first page.
51
+ *
52
+ * @param ir - Resolved IR
53
+ * @param pageName - Optional page name to find
54
+ * @returns Resolved page or undefined
55
+ *
56
+ * @example
57
+ * const ir = schemaToIR(schema);
58
+ * const homePage = getPage(ir, 'HomePage');
59
+ * const firstPage = getPage(ir); // No name = first page
60
+ */
61
+ declare function getPage(ir: ResolvedIR, pageName?: string): ResolvedPage | undefined;
62
+ /**
63
+ * Get all pages from resolved IR as an array
64
+ *
65
+ * @param ir - Resolved IR
66
+ * @returns Array of resolved pages
67
+ */
68
+ declare function getPages(ir: ResolvedIR): ResolvedPage[];
69
+ /**
70
+ * Get a specific entity from resolved IR by name
71
+ *
72
+ * @param ir - Resolved IR
73
+ * @param entityName - Entity name to find
74
+ * @returns Resolved entity or undefined
75
+ */
76
+ declare function getEntity(ir: ResolvedIR, entityName: string): ResolvedEntity | undefined;
77
+ /**
78
+ * Get a specific trait from resolved IR by name
79
+ *
80
+ * @param ir - Resolved IR
81
+ * @param traitName - Trait name to find
82
+ * @returns Resolved trait or undefined
83
+ */
84
+ declare function getTrait(ir: ResolvedIR, traitName: string): ResolvedTrait | undefined;
85
+
86
+ export { OrbitalSchema as AppSchema, OrbitalSchema, ResolvedEntity, ResolvedIR, ResolvedPage, ResolvedTrait, clearSchemaCache, getEntity, getPage, getPages, getSchemaCacheStats, getTrait, schemaToIR };
package/dist/index.js CHANGED
@@ -162,6 +162,7 @@ var OrbitalEntitySchema = z.object({
162
162
  persistence: EntityPersistenceSchema.default("persistent"),
163
163
  collection: z.string().optional(),
164
164
  fields: z.array(EntityFieldSchema).min(1, "At least one field is required"),
165
+ instances: z.array(z.record(z.unknown())).optional(),
165
166
  timestamps: z.boolean().optional(),
166
167
  softDelete: z.boolean().optional(),
167
168
  description: z.string().optional(),
@@ -416,6 +417,9 @@ var StateMachineSchema = z.object({
416
417
  transitions: z.array(TransitionSchema),
417
418
  guards: z.array(GuardSchema).optional()
418
419
  });
420
+ function isCircuitEvent(event) {
421
+ return !event.startsWith("_");
422
+ }
419
423
 
420
424
  // src/types/trait.ts
421
425
  var TraitCategorySchema = z.enum([
@@ -1144,6 +1148,187 @@ function isResolvedIR(ir) {
1144
1148
  return typeof r.appName === "string" && r.traits instanceof Map && r.pages instanceof Map;
1145
1149
  }
1146
1150
 
1147
- export { ALLOWED_CUSTOM_COMPONENTS, AnimationDefSchema, AssetMapSchema, AssetMappingSchema, BINDING_CONTEXT_RULES, BINDING_DOCS, BindingSchema, CORE_BINDINGS, ComputedEventContractSchema, ComputedEventListenerSchema, CustomPatternDefinitionSchema, CustomPatternMapSchema, DEFAULT_INTERACTION_MODELS, DesignPreferencesSchema, DesignTokensSchema, DomainCategorySchema, DomainContextSchema, DomainVocabularySchema, ENTITY_ROLES, EffectSchema, EntityFieldSchema, EntityPersistenceSchema, EntityRefSchema, EntityRefStringSchema, EntityRoleSchema, EntitySchema, EntitySemanticRoleSchema, EventListenerSchema, EventPayloadFieldSchema, EventSchema, EventScopeSchema, EventSemanticRoleSchema, EventSourceSchema, ExpressionSchema, FieldFormatSchema, FieldSchema, FieldTypeSchema, GAME_TYPES, GameSubCategorySchema, GameTypeSchema, GuardSchema, InteractionModelSchema, McpServiceDefSchema, NodeClassificationSchema, OrbitalConfigSchema, OrbitalDefinitionSchema, OrbitalEntitySchema, OrbitalPageSchema, OrbitalPageStrictSchema, OrbitalSchemaSchema, OrbitalTraitRefSchema, OrbitalUnitSchema, OrbitalSchema as OrbitalZodSchema, PageRefObjectSchema, PageRefSchema, PageRefStringSchema, PageSchema, PageTraitRefSchema, PatternTypeSchema, PayloadFieldSchema, RelatedLinkSchema, RelationConfigSchema, RequiredFieldSchema, ResolvedAssetSchema, RestAuthConfigSchema, RestServiceDefSchema, SERVICE_TYPES, SExprAtomSchema, SExprSchema, SemanticAssetRefSchema, ServiceDefinitionSchema, ServiceRefSchema, ServiceRefStringSchema, ServiceTypeSchema, SocketEventsSchema, SocketServiceDefSchema, StateMachineSchema, StateSchema, StateSemanticRoleSchema, SuggestedGuardSchema, ThemeDefinitionSchema, ThemeRefSchema, ThemeRefStringSchema, ThemeTokensSchema, ThemeVariantSchema, TraitCategorySchema, TraitDataEntitySchema, TraitEntityFieldSchema, TraitEventContractSchema, TraitEventListenerSchema, TraitRefSchema, TraitReferenceSchema, TraitSchema, TraitTickSchema, TransitionSchema, UISlotSchema, UI_SLOTS, UXHintsSchema, UseDeclarationSchema, UserPersonaSchema, VISUAL_STYLES, ViewTypeSchema, VisualStyleSchema, callService, collectBindings, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createResolvedField, deriveCollection, despawn, doEffects, emit, findService, getAllOperators, getAllPatternTypes, getArgs, getBindingExamples, getDefaultAnimationsForRole, getInteractionModelForDomain, getOperator, getServiceNames, getTraitConfig, getTraitName, hasService, inferTsType, isBinding, isEffect, isEntityReference, isImportedTraitRef, isInlineTrait, isMcpService, isOrbitalDefinition, isPageReference, isPageReferenceObject, isPageReferenceString, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isServiceReference, isSingletonEntity, isSocketService, isThemeReference, isValidBinding, navigate, normalizeTraitRef, notify, parseAssetKey, parseBinding, parseEntityRef, parseImportedTraitRef, parseOrbitalSchema, parsePageRef, parseServiceRef, persist, renderUI, safeParseOrbitalSchema, set, sexpr, spawn, validateAssetAnimations, validateBindingInContext, walkSExpr };
1151
+ // src/resolver.ts
1152
+ var schemaCache = /* @__PURE__ */ new Map();
1153
+ function clearSchemaCache() {
1154
+ schemaCache.clear();
1155
+ }
1156
+ function getSchemaCacheStats() {
1157
+ return {
1158
+ size: schemaCache.size,
1159
+ keys: Array.from(schemaCache.keys())
1160
+ };
1161
+ }
1162
+ function schemaToIR(schema, useCache = true) {
1163
+ const cacheKey = `${schema.name}-${schema.version || "1.0.0"}`;
1164
+ if (useCache && schemaCache.has(cacheKey)) {
1165
+ return schemaCache.get(cacheKey);
1166
+ }
1167
+ const ir = {
1168
+ appName: schema.name,
1169
+ description: schema.description,
1170
+ version: schema.version || "1.0.0",
1171
+ entities: /* @__PURE__ */ new Map(),
1172
+ traits: /* @__PURE__ */ new Map(),
1173
+ pages: /* @__PURE__ */ new Map(),
1174
+ entityBindings: [],
1175
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString()
1176
+ };
1177
+ for (const orbital of schema.orbitals) {
1178
+ if (orbital.entity && typeof orbital.entity !== "string") {
1179
+ const entityDef = orbital.entity;
1180
+ const entity = {
1181
+ name: entityDef.name,
1182
+ description: entityDef.description,
1183
+ icon: entityDef.icon,
1184
+ // Optional icon (may not exist on type)
1185
+ collection: entityDef.collection || entityDef.name.toLowerCase() + "s",
1186
+ fields: (entityDef.fields || []).map((field) => ({
1187
+ name: field.name,
1188
+ type: field.type,
1189
+ tsType: inferTsType2(field.type),
1190
+ description: field.description,
1191
+ default: field.default,
1192
+ required: field.required ?? false,
1193
+ values: field.values,
1194
+ enumValues: field.values,
1195
+ relation: field.relation
1196
+ })),
1197
+ runtime: entityDef.persistence === "runtime",
1198
+ singleton: entityDef.persistence === "singleton",
1199
+ hasInstances: (entityDef.instances?.length ?? 0) > 0,
1200
+ instances: entityDef.instances,
1201
+ defaults: entityDef.defaults,
1202
+ // Optional defaults (may not exist on type)
1203
+ usedByTraits: [],
1204
+ usedByPages: []
1205
+ };
1206
+ ir.entities.set(entity.name, entity);
1207
+ }
1208
+ for (const trait of orbital.traits || []) {
1209
+ const resolvedTrait = {
1210
+ name: trait.name,
1211
+ description: trait.description,
1212
+ source: "schema",
1213
+ category: trait.category,
1214
+ states: (trait.stateMachine?.states || []).map((s) => ({
1215
+ name: s.name,
1216
+ isInitial: s.isInitial ?? false,
1217
+ isFinal: s.isFinal ?? s.isTerminal ?? false
1218
+ })),
1219
+ events: (trait.stateMachine?.events || []).map((e) => ({
1220
+ key: typeof e === "string" ? e : e.key || e.name,
1221
+ name: typeof e === "string" ? e : e.name,
1222
+ payload: typeof e === "object" && "payloadSchema" in e ? e.payloadSchema : void 0
1223
+ })),
1224
+ transitions: (trait.stateMachine?.transitions || []).map((t) => ({
1225
+ from: t.from,
1226
+ to: t.to,
1227
+ event: t.event,
1228
+ guard: t.guard,
1229
+ effects: t.effects || []
1230
+ })),
1231
+ guards: [],
1232
+ ticks: [],
1233
+ listens: (trait.listens || []).map((l) => ({
1234
+ event: l.event,
1235
+ triggers: l.triggers,
1236
+ guard: l.guard
1237
+ })),
1238
+ dataEntities: []
1239
+ };
1240
+ ir.traits.set(trait.name, resolvedTrait);
1241
+ }
1242
+ for (const page of orbital.pages || []) {
1243
+ const resolvedPage = {
1244
+ name: page.name,
1245
+ path: page.path,
1246
+ featureName: page.name.toLowerCase(),
1247
+ viewType: page.viewType && ["list", "detail", "create", "edit", "dashboard"].includes(page.viewType) ? page.viewType : void 0,
1248
+ sections: [],
1249
+ traits: (page.traits || []).map((traitRef) => ({
1250
+ ref: typeof traitRef === "string" ? traitRef : traitRef.ref,
1251
+ trait: resolveTraitRef(traitRef, ir.traits, orbital.traits || []),
1252
+ linkedEntity: typeof traitRef === "object" && "linkedEntity" in traitRef ? traitRef.linkedEntity : void 0,
1253
+ config: typeof traitRef === "object" && "config" in traitRef ? traitRef.config : void 0
1254
+ })),
1255
+ entityBindings: [],
1256
+ navigation: [],
1257
+ singletonEntities: []
1258
+ };
1259
+ ir.pages.set(page.name, resolvedPage);
1260
+ }
1261
+ }
1262
+ if (useCache) {
1263
+ schemaCache.set(cacheKey, ir);
1264
+ }
1265
+ return ir;
1266
+ }
1267
+ function inferTsType2(schemaType) {
1268
+ const typeMap = {
1269
+ string: "string",
1270
+ number: "number",
1271
+ boolean: "boolean",
1272
+ date: "Date",
1273
+ datetime: "Date",
1274
+ timestamp: "number",
1275
+ array: "unknown[]",
1276
+ object: "Record<string, unknown>",
1277
+ any: "unknown"
1278
+ };
1279
+ if (schemaType.endsWith("[]")) {
1280
+ const baseType = schemaType.slice(0, -2);
1281
+ return `${typeMap[baseType] || baseType}[]`;
1282
+ }
1283
+ return typeMap[schemaType] || schemaType;
1284
+ }
1285
+ function resolveTraitRef(traitRef, traitsMap, schemaTraits) {
1286
+ const refName = typeof traitRef === "string" ? traitRef : traitRef.ref || "";
1287
+ if (traitsMap.has(refName)) {
1288
+ return traitsMap.get(refName);
1289
+ }
1290
+ const schemaTrait = schemaTraits.find((t) => t.name === refName);
1291
+ if (schemaTrait) {
1292
+ return {
1293
+ name: refName,
1294
+ source: "inline",
1295
+ states: [],
1296
+ events: [],
1297
+ transitions: [],
1298
+ guards: [],
1299
+ ticks: [],
1300
+ listens: [],
1301
+ dataEntities: []
1302
+ };
1303
+ }
1304
+ return {
1305
+ name: refName,
1306
+ source: "schema",
1307
+ states: [],
1308
+ events: [],
1309
+ transitions: [],
1310
+ guards: [],
1311
+ ticks: [],
1312
+ listens: [],
1313
+ dataEntities: []
1314
+ };
1315
+ }
1316
+ function getPage(ir, pageName) {
1317
+ if (!pageName) {
1318
+ return ir.pages.values().next().value;
1319
+ }
1320
+ return ir.pages.get(pageName);
1321
+ }
1322
+ function getPages(ir) {
1323
+ return Array.from(ir.pages.values());
1324
+ }
1325
+ function getEntity(ir, entityName) {
1326
+ return ir.entities.get(entityName);
1327
+ }
1328
+ function getTrait(ir, traitName) {
1329
+ return ir.traits.get(traitName);
1330
+ }
1331
+
1332
+ export { ALLOWED_CUSTOM_COMPONENTS, AnimationDefSchema, AssetMapSchema, AssetMappingSchema, BINDING_CONTEXT_RULES, BINDING_DOCS, BindingSchema, CORE_BINDINGS, ComputedEventContractSchema, ComputedEventListenerSchema, CustomPatternDefinitionSchema, CustomPatternMapSchema, DEFAULT_INTERACTION_MODELS, DesignPreferencesSchema, DesignTokensSchema, DomainCategorySchema, DomainContextSchema, DomainVocabularySchema, ENTITY_ROLES, EffectSchema, EntityFieldSchema, EntityPersistenceSchema, EntityRefSchema, EntityRefStringSchema, EntityRoleSchema, EntitySchema, EntitySemanticRoleSchema, EventListenerSchema, EventPayloadFieldSchema, EventSchema, EventScopeSchema, EventSemanticRoleSchema, EventSourceSchema, ExpressionSchema, FieldFormatSchema, FieldSchema, FieldTypeSchema, GAME_TYPES, GameSubCategorySchema, GameTypeSchema, GuardSchema, InteractionModelSchema, McpServiceDefSchema, NodeClassificationSchema, OrbitalConfigSchema, OrbitalDefinitionSchema, OrbitalEntitySchema, OrbitalPageSchema, OrbitalPageStrictSchema, OrbitalSchemaSchema, OrbitalTraitRefSchema, OrbitalUnitSchema, OrbitalSchema as OrbitalZodSchema, PageRefObjectSchema, PageRefSchema, PageRefStringSchema, PageSchema, PageTraitRefSchema, PatternTypeSchema, PayloadFieldSchema, RelatedLinkSchema, RelationConfigSchema, RequiredFieldSchema, ResolvedAssetSchema, RestAuthConfigSchema, RestServiceDefSchema, SERVICE_TYPES, SExprAtomSchema, SExprSchema, SemanticAssetRefSchema, ServiceDefinitionSchema, ServiceRefSchema, ServiceRefStringSchema, ServiceTypeSchema, SocketEventsSchema, SocketServiceDefSchema, StateMachineSchema, StateSchema, StateSemanticRoleSchema, SuggestedGuardSchema, ThemeDefinitionSchema, ThemeRefSchema, ThemeRefStringSchema, ThemeTokensSchema, ThemeVariantSchema, TraitCategorySchema, TraitDataEntitySchema, TraitEntityFieldSchema, TraitEventContractSchema, TraitEventListenerSchema, TraitRefSchema, TraitReferenceSchema, TraitSchema, TraitTickSchema, TransitionSchema, UISlotSchema, UI_SLOTS, UXHintsSchema, UseDeclarationSchema, UserPersonaSchema, VISUAL_STYLES, ViewTypeSchema, VisualStyleSchema, callService, clearSchemaCache, collectBindings, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createResolvedField, deriveCollection, despawn, doEffects, emit, findService, getAllOperators, getAllPatternTypes, getArgs, getBindingExamples, getDefaultAnimationsForRole, getEntity, getInteractionModelForDomain, getOperator, getPage, getPages, getSchemaCacheStats, getServiceNames, getTrait, getTraitConfig, getTraitName, hasService, inferTsType, isBinding, isCircuitEvent, isEffect, isEntityReference, isImportedTraitRef, isInlineTrait, isMcpService, isOrbitalDefinition, isPageReference, isPageReferenceObject, isPageReferenceString, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isServiceReference, isSingletonEntity, isSocketService, isThemeReference, isValidBinding, navigate, normalizeTraitRef, notify, parseAssetKey, parseBinding, parseEntityRef, parseImportedTraitRef, parseOrbitalSchema, parsePageRef, parseServiceRef, persist, renderUI, safeParseOrbitalSchema, schemaToIR, set, sexpr, spawn, validateAssetAnimations, validateBindingInContext, walkSExpr };
1148
1333
  //# sourceMappingURL=index.js.map
1149
1334
  //# sourceMappingURL=index.js.map