@almadar/core 4.4.1 → 4.5.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.
@@ -1,5 +1,5 @@
1
- import { b as EntityRow, aK as FieldValue, bR as SExpr } from '../schema-B0Yin-RM.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 CallServiceEffect, w as ComputedEventContract, x as ComputedEventContractSchema, y as ComputedEventListener, z as ComputedEventListenerSchema, B as CoreBinding, D as CustomPatternDefinition, F as CustomPatternDefinitionInput, G as CustomPatternDefinitionSchema, H as CustomPatternMap, I as CustomPatternMapInput, J as CustomPatternMapSchema, K as DerefEffect, L as DesignPreferences, M as DesignPreferencesInput, N as DesignPreferencesSchema, Q as DesignTokens, R as DesignTokensInput, U as DesignTokensSchema, V as DespawnEffect, W as DoEffect, X as DomainCategory, Y as DomainCategorySchema, Z as DomainContext, _ as DomainContextInput, $ as DomainContextSchema, a0 as DomainVocabulary, a1 as DomainVocabularySchema, a2 as ENTITY_ROLES, a3 as Effect, a4 as EffectInput, a5 as EffectSchema, a6 as EmitEffect, e as Entity, a7 as EntityCall, a8 as EntityCallSchema, a9 as EntityData, E as EntityField, aa as EntityFieldInput, ab as EntityFieldSchema, a as EntityPersistence, ac as EntityPersistenceSchema, ad as EntityRef, ae as EntityRefSchema, af as EntityRefStringSchema, ag as EntityRole, ah as EntityRoleSchema, ai as EntitySchema, aj as EntitySemanticRole, ak as EntitySemanticRoleSchema, al as EvalContext, am as Event, an as EventInput, ao as EventListener, ap as EventListenerSchema, aq as EventPayload, ar as EventPayloadField, as as EventPayloadFieldSchema, at as EventSchema, au as EventScope, av as EventScopeSchema, aw as EventSemanticRole, ax as EventSemanticRoleSchema, ay as EventSource, az as EventSourceSchema, aA as Expression, aB as ExpressionInput, aC as ExpressionSchema, aD as FetchEffect, aE as Field, aF as FieldFormat, aG as FieldFormatSchema, aH as FieldSchema, aI as FieldType, aJ as FieldTypeSchema, aL as FullOrbitalUnit, aM as GAME_TYPES, aN as GameSubCategory, aO as GameSubCategorySchema, aP as GameType, aQ as GameTypeSchema, aR as Guard, aS as GuardInput, aT as GuardSchema, aU as LogEffect, aV as LogMeta, aW as McpServiceDef, aX as McpServiceDefSchema, aY as NavigateEffect, aZ as NodeClassification, a_ as NodeClassificationSchema, a$ as NotifyEffect, aL as Orbital, b0 as OrbitalConfig, b1 as OrbitalConfigInput, b2 as OrbitalConfigSchema, O as OrbitalDefinition, b3 as OrbitalDefinitionSchema, b4 as OrbitalEntity, b5 as OrbitalEntityInput, b6 as OrbitalEntitySchema, b7 as OrbitalInput, b8 as OrbitalPage, b9 as OrbitalPageInput, ba as OrbitalPageSchema, bb as OrbitalPageStrictInput, bc as OrbitalPageStrictSchema, c as OrbitalSchema, bd as OrbitalSchemaInput, be as OrbitalSchemaSchema, bf as OrbitalTraitRef, bg as OrbitalTraitRefSchema, bh as OrbitalUnit, bi as OrbitalUnitSchema, bj as OrbitalZodSchema, P as Page, bk as PageRef, bl as PageRefObject, bm as PageRefObjectSchema, bn as PageRefSchema, bo as PageRefStringSchema, bp as PageSchema, bq as PageTraitRef, br as PageTraitRefSchema, bs as ParsedBinding, bt as PayloadField, bu as PayloadFieldSchema, bv as PersistEffect, bw as PresentationType, bx as RefEffect, by as RelatedLink, bz as RelatedLinkSchema, bA as RelationConfig, bB as RelationConfigSchema, bC as RenderItemLambda, bD as RenderUIConfig, bE as RenderUIEffect, bF as RenderUINode, bG as RequiredField, bH as RequiredFieldSchema, bI as ResolvedAsset, bJ as ResolvedAssetInput, bK as ResolvedAssetSchema, bL as ResolvedPatternProps, bM as RestAuthConfig, bN as RestAuthConfigSchema, bO as RestServiceDef, bP as RestServiceDefSchema, bQ as SERVICE_TYPES, bS as SExprAtom, bT as SExprAtomSchema, bU as SExprInput, bV as SExprSchema, bW as SemanticAssetRef, bX as SemanticAssetRefInput, bY as SemanticAssetRefSchema, bZ as ServiceDefinition, b_ as ServiceDefinitionSchema, b$ as ServiceParams, c0 as ServiceRef, c1 as ServiceRefObject, c2 as ServiceRefObjectSchema, c3 as ServiceRefSchema, c4 as ServiceRefStringSchema, c5 as ServiceType, c6 as ServiceTypeSchema, c7 as SetEffect, c8 as SocketEvents, c9 as SocketEventsSchema, ca as SocketServiceDef, cb as SocketServiceDefSchema, cc as SpawnEffect, S as State, cd as StateInput, ce as StateMachine, cf as StateMachineInput, cg as StateMachineSchema, ch as StateSchema, ci as StateSemanticRole, cj as StateSemanticRoleSchema, ck as SuggestedGuard, cl as SuggestedGuardSchema, cm as SwapEffect, cn as ThemeDefinition, co as ThemeDefinitionSchema, cp as ThemeRef, cq as ThemeRefSchema, cr as ThemeRefStringSchema, cs as ThemeTokens, ct as ThemeTokensSchema, cu as ThemeVariant, cv as ThemeVariantSchema, d as Trait, cw as TraitCategory, cx as TraitCategorySchema, cy as TraitDataEntity, cz as TraitDataEntitySchema, cA as TraitEntityField, cB as TraitEntityFieldSchema, T as TraitEventContract, cC as TraitEventContractSchema, cD as TraitEventListener, cE as TraitEventListenerSchema, cF as TraitInput, cG as TraitRef, cH as TraitRefSchema, cI as TraitReference, cJ as TraitReferenceInput, cK as TraitReferenceSchema, cL as TraitSchema, cM as TraitTick, cN as TraitTickSchema, cO as TraitUIBinding, cP as Transition, cQ as TransitionInput, cR as TransitionSchema, cS as TypedEffect, cT as UISlot, cU as UISlotSchema, cV as UI_SLOTS, cW as UXHints, cX as UXHintsSchema, cY as UseDeclaration, cZ as UseDeclarationSchema, c_ as UserPersona, c$ as UserPersonaInput, d0 as UserPersonaSchema, d1 as VISUAL_STYLES, d2 as ViewType, d3 as ViewTypeSchema, d4 as VisualStyle, d5 as VisualStyleSchema, d6 as WatchEffect, d7 as WatchOptions, d8 as atomic, d9 as callService, da as collectBindings, db as createAssetKey, dc as deref, dd as deriveCollection, de as despawn, df as doEffects, dg as emit, dh as findService, di as getArgs, dj as getDefaultAnimationsForRole, dk as getOperator, dl as getServiceNames, dm as getTraitConfig, dn as getTraitName, dp as hasService, dq as isBinding, dr as isCircuitEvent, ds as isEffect, dt as isEntityCall, du as isEntityReference, dv as isEntityReferenceAny, dw as isImportedTraitRef, dx as isInlineTrait, dy as isMcpService, dz as isOrbitalDefinition, dA as isPageReference, dB as isPageReferenceObject, dC as isPageReferenceString, dD as isRestService, dE as isRuntimeEntity, dF as isSExpr, dG as isSExprAtom, dH as isSExprCall, dI as isSExprEffect, dJ as isServiceReference, dK as isServiceReferenceObject, dL as isSingletonEntity, dM as isSocketService, dN as isThemeReference, dO as isValidBinding, dP as navigate, dQ as normalizeTraitRef, dR as notify, dS as parseAssetKey, dT as parseBinding, dU as parseEntityRef, dV as parseImportedTraitRef, dW as parseOrbitalSchema, dX as parsePageRef, dY as parseServiceRef, dZ as persist, d_ as ref, d$ as renderUI, e0 as safeParseOrbitalSchema, e1 as set, e2 as sexpr, e3 as spawn, e4 as swap, e5 as validateAssetAnimations, e6 as walkSExpr, e7 as watch } from '../schema-B0Yin-RM.js';
1
+ import { b as EntityRow, aK as FieldValue, bR as SExpr } from '../schema-D4VBpRZI.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 CallServiceEffect, w as ComputedEventContract, x as ComputedEventContractSchema, y as ComputedEventListener, z as ComputedEventListenerSchema, B as CoreBinding, D as CustomPatternDefinition, F as CustomPatternDefinitionInput, G as CustomPatternDefinitionSchema, H as CustomPatternMap, I as CustomPatternMapInput, J as CustomPatternMapSchema, K as DerefEffect, L as DesignPreferences, M as DesignPreferencesInput, N as DesignPreferencesSchema, Q as DesignTokens, R as DesignTokensInput, U as DesignTokensSchema, V as DespawnEffect, W as DoEffect, X as DomainCategory, Y as DomainCategorySchema, Z as DomainContext, _ as DomainContextInput, $ as DomainContextSchema, a0 as DomainVocabulary, a1 as DomainVocabularySchema, a2 as ENTITY_ROLES, a3 as Effect, a4 as EffectInput, a5 as EffectSchema, a6 as EmitEffect, e as Entity, a7 as EntityCall, a8 as EntityCallSchema, a9 as EntityData, E as EntityField, aa as EntityFieldInput, ab as EntityFieldSchema, a as EntityPersistence, ac as EntityPersistenceSchema, ad as EntityRef, ae as EntityRefSchema, af as EntityRefStringSchema, ag as EntityRole, ah as EntityRoleSchema, ai as EntitySchema, aj as EntitySemanticRole, ak as EntitySemanticRoleSchema, al as EvalContext, am as Event, an as EventInput, ao as EventListener, ap as EventListenerSchema, aq as EventPayload, ar as EventPayloadField, as as EventPayloadFieldSchema, at as EventSchema, au as EventScope, av as EventScopeSchema, aw as EventSemanticRole, ax as EventSemanticRoleSchema, ay as EventSource, az as EventSourceSchema, aA as Expression, aB as ExpressionInput, aC as ExpressionSchema, aD as FetchEffect, aE as Field, aF as FieldFormat, aG as FieldFormatSchema, aH as FieldSchema, aI as FieldType, aJ as FieldTypeSchema, aL as FullOrbitalUnit, aM as GAME_TYPES, aN as GameSubCategory, aO as GameSubCategorySchema, aP as GameType, aQ as GameTypeSchema, aR as Guard, aS as GuardInput, aT as GuardSchema, aU as LogEffect, aV as LogMeta, aW as McpServiceDef, aX as McpServiceDefSchema, aY as NavigateEffect, aZ as NodeClassification, a_ as NodeClassificationSchema, a$ as NotifyEffect, aL as Orbital, b0 as OrbitalConfig, b1 as OrbitalConfigInput, b2 as OrbitalConfigSchema, O as OrbitalDefinition, b3 as OrbitalDefinitionSchema, b4 as OrbitalEntity, b5 as OrbitalEntityInput, b6 as OrbitalEntitySchema, b7 as OrbitalInput, b8 as OrbitalPage, b9 as OrbitalPageInput, ba as OrbitalPageSchema, bb as OrbitalPageStrictInput, bc as OrbitalPageStrictSchema, c as OrbitalSchema, bd as OrbitalSchemaInput, be as OrbitalSchemaSchema, bf as OrbitalTraitRef, bg as OrbitalTraitRefSchema, bh as OrbitalUnit, bi as OrbitalUnitSchema, bj as OrbitalZodSchema, P as Page, bk as PageRef, bl as PageRefObject, bm as PageRefObjectSchema, bn as PageRefSchema, bo as PageRefStringSchema, bp as PageSchema, bq as PageTraitRef, br as PageTraitRefSchema, bs as ParsedBinding, bt as PayloadField, bu as PayloadFieldSchema, bv as PersistEffect, bw as PresentationType, bx as RefEffect, by as RelatedLink, bz as RelatedLinkSchema, bA as RelationConfig, bB as RelationConfigSchema, bC as RenderItemLambda, bD as RenderUIConfig, bE as RenderUIEffect, bF as RenderUINode, bG as RequiredField, bH as RequiredFieldSchema, bI as ResolvedAsset, bJ as ResolvedAssetInput, bK as ResolvedAssetSchema, bL as ResolvedPatternProps, bM as RestAuthConfig, bN as RestAuthConfigSchema, bO as RestServiceDef, bP as RestServiceDefSchema, bQ as SERVICE_TYPES, bS as SExprAtom, bT as SExprAtomSchema, bU as SExprInput, bV as SExprSchema, bW as SemanticAssetRef, bX as SemanticAssetRefInput, bY as SemanticAssetRefSchema, bZ as ServiceDefinition, b_ as ServiceDefinitionSchema, b$ as ServiceParams, c0 as ServiceRef, c1 as ServiceRefObject, c2 as ServiceRefObjectSchema, c3 as ServiceRefSchema, c4 as ServiceRefStringSchema, c5 as ServiceType, c6 as ServiceTypeSchema, c7 as SetEffect, c8 as SocketEvents, c9 as SocketEventsSchema, ca as SocketServiceDef, cb as SocketServiceDefSchema, cc as SpawnEffect, S as State, cd as StateInput, ce as StateMachine, cf as StateMachineInput, cg as StateMachineSchema, ch as StateSchema, ci as StateSemanticRole, cj as StateSemanticRoleSchema, ck as SuggestedGuard, cl as SuggestedGuardSchema, cm as SwapEffect, cn as ThemeDefinition, co as ThemeDefinitionSchema, cp as ThemeRef, cq as ThemeRefSchema, cr as ThemeRefStringSchema, cs as ThemeTokens, ct as ThemeTokensSchema, cu as ThemeVariant, cv as ThemeVariantSchema, d as Trait, cw as TraitCategory, cx as TraitCategorySchema, cy as TraitDataEntity, cz as TraitDataEntitySchema, cA as TraitEntityField, cB as TraitEntityFieldSchema, T as TraitEventContract, cC as TraitEventContractSchema, cD as TraitEventListener, cE as TraitEventListenerSchema, cF as TraitInput, cG as TraitRef, cH as TraitRefSchema, cI as TraitReference, cJ as TraitReferenceInput, cK as TraitReferenceSchema, cL as TraitSchema, cM as TraitTick, cN as TraitTickSchema, cO as TraitUIBinding, cP as Transition, cQ as TransitionInput, cR as TransitionSchema, cS as TypedEffect, cT as UISlot, cU as UISlotSchema, cV as UI_SLOTS, cW as UXHints, cX as UXHintsSchema, cY as UseDeclaration, cZ as UseDeclarationSchema, c_ as UserPersona, c$ as UserPersonaInput, d0 as UserPersonaSchema, d1 as VISUAL_STYLES, d2 as ViewType, d3 as ViewTypeSchema, d4 as VisualStyle, d5 as VisualStyleSchema, d6 as WatchEffect, d7 as WatchOptions, d8 as atomic, d9 as callService, da as collectBindings, db as createAssetKey, dc as deref, dd as deriveCollection, de as despawn, df as doEffects, dg as emit, dh as findService, di as getArgs, dj as getDefaultAnimationsForRole, dk as getOperator, dl as getServiceNames, dm as getTraitConfig, dn as getTraitName, dp as hasService, dq as isBinding, dr as isCircuitEvent, ds as isEffect, dt as isEntityCall, du as isEntityReference, dv as isEntityReferenceAny, dw as isImportedTraitRef, dx as isInlineTrait, dy as isMcpService, dz as isOrbitalDefinition, dA as isPageReference, dB as isPageReferenceObject, dC as isPageReferenceString, dD as isRestService, dE as isRuntimeEntity, dF as isSExpr, dG as isSExprAtom, dH as isSExprCall, dI as isSExprEffect, dJ as isServiceReference, dK as isServiceReferenceObject, dL as isSingletonEntity, dM as isSocketService, dN as isThemeReference, dO as isValidBinding, dP as navigate, dQ as normalizeTraitRef, dR as notify, dS as parseAssetKey, dT as parseBinding, dU as parseEntityRef, dV as parseImportedTraitRef, dW as parseOrbitalSchema, dX as parsePageRef, dY as parseServiceRef, dZ as persist, d_ as ref, d$ as renderUI, e0 as safeParseOrbitalSchema, e1 as set, e2 as sexpr, e3 as spawn, e4 as swap, e5 as validateAssetAnimations, e6 as walkSExpr, e7 as watch } from '../schema-D4VBpRZI.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';
@@ -50,22 +50,61 @@ var FieldFormatSchema = z.enum([
50
50
  "datetime",
51
51
  "uuid"
52
52
  ]);
53
+ var FIELD_TYPE_ALIASES = {
54
+ text: "string",
55
+ int: "number",
56
+ float: "number",
57
+ ts: "timestamp"
58
+ };
53
59
  var EntityFieldSchema = z.lazy(
54
- () => z.object({
55
- name: z.string().min(1, "Field name is required"),
56
- type: FieldTypeSchema,
57
- required: z.boolean().optional(),
58
- default: z.unknown().optional(),
59
- values: z.array(z.string()).optional(),
60
- enum: z.array(z.string()).optional(),
61
- format: FieldFormatSchema.optional(),
62
- min: z.number().optional(),
63
- max: z.number().optional(),
64
- items: EntityFieldSchema.optional(),
65
- relation: RelationConfigSchema.optional()
66
- }).refine(
67
- (field) => field.type !== "relation" || field.relation !== void 0,
68
- { message: 'Relation config is required when type is "relation"', path: ["relation"] }
60
+ () => z.preprocess(
61
+ (input) => {
62
+ if (input !== null && typeof input === "object" && "type" in input && typeof input.type === "string") {
63
+ const raw = input.type;
64
+ const canonical = FIELD_TYPE_ALIASES[raw];
65
+ if (canonical !== void 0) {
66
+ return { ...input, type: canonical };
67
+ }
68
+ }
69
+ return input;
70
+ },
71
+ z.object({
72
+ name: z.string().min(1, "Field name is required"),
73
+ type: FieldTypeSchema,
74
+ required: z.boolean().optional(),
75
+ default: z.unknown().optional(),
76
+ values: z.array(z.string()).optional(),
77
+ enum: z.array(z.string()).optional(),
78
+ format: FieldFormatSchema.optional(),
79
+ min: z.number().optional(),
80
+ max: z.number().optional(),
81
+ items: EntityFieldSchema.optional(),
82
+ relation: RelationConfigSchema.optional()
83
+ }).refine(
84
+ (field) => field.type !== "relation" || field.relation !== void 0,
85
+ { message: 'Relation config is required when type is "relation"', path: ["relation"] }
86
+ ).refine(
87
+ // Enum fields must carry their allowed values. Without this refine,
88
+ // the type was lying about what's valid — bare `type: 'enum'` without
89
+ // `values` passed zod but failed `orb validate` downstream with
90
+ // ORB_E_EMPTY_ENUM_VALUES, stalling the agent pipeline for 20 minutes.
91
+ // `enum` is the legacy field-name alias; accept either.
92
+ (field) => {
93
+ if (field.type !== "enum") return true;
94
+ const vals = field.values ?? field.enum;
95
+ return Array.isArray(vals) && vals.length > 0;
96
+ },
97
+ { message: "Enum field requires a non-empty `values` array", path: ["values"] }
98
+ ).refine(
99
+ // Array fields must describe their element shape. Bare `type: 'array'`
100
+ // with no `items` forces downstream consumers (builders, UI renderers,
101
+ // persistence) to guess, so reject it at the schema boundary.
102
+ (field) => {
103
+ if (field.type !== "array") return true;
104
+ return field.items !== void 0;
105
+ },
106
+ { message: "Array field requires an `items` schema describing each element", path: ["items"] }
107
+ )
69
108
  )
70
109
  );
71
110
  var FieldSchema = EntityFieldSchema;
@@ -543,6 +582,8 @@ var RequiredFieldSchema = z.object({
543
582
  });
544
583
  var TraitReferenceSchema = z.object({
545
584
  ref: z.string().min(1),
585
+ // Phase 1.2: optional registry path disambiguator, pairs with `ref`.
586
+ from: z.string().optional(),
546
587
  linkedEntity: z.string().optional(),
547
588
  name: z.string().optional(),
548
589
  events: z.record(
@@ -982,6 +1023,8 @@ var PageRefStringSchema = z.string().regex(
982
1023
  );
983
1024
  var PageRefObjectSchema = z.object({
984
1025
  ref: PageRefStringSchema,
1026
+ // Phase 1.2: optional registry path disambiguator, pairs with `ref`.
1027
+ from: z.string().optional(),
985
1028
  path: z.string().startsWith("/").optional(),
986
1029
  linkedEntity: z.string().optional(),
987
1030
  traits: z.array(TraitRefSchema).optional()