@almadar/core 7.0.0 → 7.2.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.
- package/dist/builders.d.ts +3 -2
- package/dist/{compose-behaviors-Bb1eCS7J.d.ts → compose-behaviors-DPPX5a_s.d.ts} +1 -1
- package/dist/domain-language/index.d.ts +2 -1
- package/dist/domain-language/index.js.map +1 -1
- package/dist/expression-eBO9-SQM.d.ts +221 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +11 -6
- package/dist/index.js.map +1 -1
- package/dist/{schema-BmRZkOwH.d.ts → schema-OhIbVaYu.d.ts} +2 -219
- package/dist/state-machine/index.d.ts +17 -1
- package/dist/state-machine/index.js +7 -2
- package/dist/state-machine/index.js.map +1 -1
- package/dist/types/index.d.ts +8 -6
- package/dist/types/index.js +4 -4
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* S-Expression Types
|
|
5
|
+
*
|
|
6
|
+
* Defines the S-Expression type system for guards, effects, and computed values.
|
|
7
|
+
* S-expressions are JSON arrays where the first element is an operator string.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* // Guard: health > 0
|
|
11
|
+
* [">", "@entity.health", 0]
|
|
12
|
+
*
|
|
13
|
+
* // Effect: set x to x + vx
|
|
14
|
+
* ["set", "@entity.x", ["+", "@entity.x", "@entity.vx"]]
|
|
15
|
+
*
|
|
16
|
+
* @packageDocumentation
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* S-Expression type - recursive structure representing expressions.
|
|
21
|
+
*
|
|
22
|
+
* An S-expression is either:
|
|
23
|
+
* - A literal value (string, number, boolean, null)
|
|
24
|
+
* - An object literal (for payload data, props, etc.)
|
|
25
|
+
* - A binding reference (string starting with @)
|
|
26
|
+
* - A call expression (array with operator as first element)
|
|
27
|
+
*/
|
|
28
|
+
type SExprAtom = string | number | boolean | null | Record<string, unknown>;
|
|
29
|
+
type SExpr = SExprAtom | SExpr[];
|
|
30
|
+
/**
|
|
31
|
+
* Expression type - S-expressions only.
|
|
32
|
+
* Used for guards, computed values, and effect expressions.
|
|
33
|
+
*
|
|
34
|
+
* NOTE: Legacy string format is no longer supported.
|
|
35
|
+
* All expressions must be S-expression arrays.
|
|
36
|
+
*/
|
|
37
|
+
type Expression = SExpr;
|
|
38
|
+
/**
|
|
39
|
+
* Schema for atomic S-expression values (non-array)
|
|
40
|
+
* Includes objects for payload data, props, etc.
|
|
41
|
+
*/
|
|
42
|
+
declare const SExprAtomSchema: z.ZodType<SExprAtom>;
|
|
43
|
+
/**
|
|
44
|
+
* Recursive schema for S-expressions.
|
|
45
|
+
* Validates that arrays have at least one element and first element is a string (operator).
|
|
46
|
+
*/
|
|
47
|
+
declare const SExprSchema: z.ZodType<SExpr>;
|
|
48
|
+
/**
|
|
49
|
+
* Schema for Expression type - S-expressions only.
|
|
50
|
+
* S-expressions are arrays with operator as first element.
|
|
51
|
+
*
|
|
52
|
+
* NOTE: Legacy string format is no longer supported.
|
|
53
|
+
*/
|
|
54
|
+
declare const ExpressionSchema: z.ZodType<Expression>;
|
|
55
|
+
/**
|
|
56
|
+
* Type guard for S-expression detection.
|
|
57
|
+
* 100% reliable - structural check, no regex or keyword matching.
|
|
58
|
+
*
|
|
59
|
+
* @param value - Value to check
|
|
60
|
+
* @returns true if value is an S-expression (array with string operator)
|
|
61
|
+
*/
|
|
62
|
+
declare function isSExpr(value: unknown): value is SExpr[];
|
|
63
|
+
/**
|
|
64
|
+
* Type guard for S-expression atoms (non-array values).
|
|
65
|
+
*
|
|
66
|
+
* Validates that a value is an S-expression atom (literal value).
|
|
67
|
+
* Includes null, strings, numbers, booleans, and objects. Used to
|
|
68
|
+
* distinguish atomic values from S-expression calls (arrays).
|
|
69
|
+
*
|
|
70
|
+
* @param {unknown} value - Value to check
|
|
71
|
+
* @returns {boolean} True if value is an S-expression atom, false otherwise
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* isSExprAtom('hello'); // returns true
|
|
75
|
+
* isSExprAtom(42); // returns true
|
|
76
|
+
* isSExprAtom(null); // returns true
|
|
77
|
+
* isSExprAtom({ key: 'value' }); // returns true
|
|
78
|
+
* isSExprAtom(['+', 1, 2]); // returns false
|
|
79
|
+
*/
|
|
80
|
+
declare function isSExprAtom(value: unknown): value is SExprAtom;
|
|
81
|
+
/**
|
|
82
|
+
* Checks if a value is a binding reference.
|
|
83
|
+
*
|
|
84
|
+
* Validates that a string is a binding reference (starts with @).
|
|
85
|
+
* Bindings reference runtime values like @entity.health, @payload.amount, @now.
|
|
86
|
+
* Used for identifying bindings in S-expressions and validation.
|
|
87
|
+
*
|
|
88
|
+
* @param {unknown} value - Value to check
|
|
89
|
+
* @returns {boolean} True if value is a binding reference, false otherwise
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* isBinding('@entity.health'); // returns true
|
|
93
|
+
* isBinding('@payload.amount'); // returns true
|
|
94
|
+
* isBinding('not-a-binding'); // returns false
|
|
95
|
+
* isBinding(123); // returns false
|
|
96
|
+
*/
|
|
97
|
+
declare function isBinding(value: unknown): value is string;
|
|
98
|
+
/**
|
|
99
|
+
* Checks if a value is a valid S-expression call (array with operator).
|
|
100
|
+
*
|
|
101
|
+
* Alias for isSExpr() - validates S-expression call structure.
|
|
102
|
+
* Used to distinguish between S-expression calls and atom values.
|
|
103
|
+
*
|
|
104
|
+
* @param {unknown} value - Value to check
|
|
105
|
+
* @returns {boolean} True if value is a valid S-expression call, false otherwise
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* isSExprCall(['+', 1, 2]); // returns true
|
|
109
|
+
* isSExprCall(['set', '@entity.health', 100]); // returns true
|
|
110
|
+
* isSExprCall('not-a-call'); // returns false
|
|
111
|
+
*/
|
|
112
|
+
declare function isSExprCall(value: unknown): value is SExpr[];
|
|
113
|
+
/**
|
|
114
|
+
* Parsed binding reference
|
|
115
|
+
*/
|
|
116
|
+
interface ParsedBinding {
|
|
117
|
+
/** Type of binding: core (@entity, @payload, @state, @now) or entity (@EntityName) */
|
|
118
|
+
type: 'core' | 'entity';
|
|
119
|
+
/** The root binding name (entity, payload, state, now, or EntityName) */
|
|
120
|
+
root: string;
|
|
121
|
+
/** Path segments after the root (e.g., ['health'] for @entity.health) */
|
|
122
|
+
path: string[];
|
|
123
|
+
/** Full original binding string */
|
|
124
|
+
original: string;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Core bindings that are always available.
|
|
128
|
+
* Phase 4.5 adds: config, computed, trait (for behavior support)
|
|
129
|
+
*/
|
|
130
|
+
declare const CORE_BINDINGS: readonly ["entity", "payload", "state", "now", "config", "computed", "trait"];
|
|
131
|
+
type CoreBinding = (typeof CORE_BINDINGS)[number];
|
|
132
|
+
/**
|
|
133
|
+
* Parses a binding reference into its components.
|
|
134
|
+
*
|
|
135
|
+
* Deconstructs a binding string (e.g., '@entity.health') into its constituent
|
|
136
|
+
* parts: type, root, path, and original string. Does NOT use regex - uses
|
|
137
|
+
* structured string operations for reliability and maintainability.
|
|
138
|
+
*
|
|
139
|
+
* @param {string} binding - Binding string starting with @
|
|
140
|
+
* @returns {ParsedBinding | null} Parsed binding object or null if invalid
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* parseBinding('@entity.health'); // returns { type: 'core', root: 'entity', path: ['health'], original: '@entity.health' }
|
|
144
|
+
* parseBinding('@User.name'); // returns { type: 'entity', root: 'User', path: ['name'], original: '@User.name' }
|
|
145
|
+
* parseBinding('not-a-binding'); // returns null
|
|
146
|
+
*/
|
|
147
|
+
declare function parseBinding(binding: string): ParsedBinding | null;
|
|
148
|
+
/**
|
|
149
|
+
* Validate a binding reference format.
|
|
150
|
+
*
|
|
151
|
+
* @param binding - Binding string to validate
|
|
152
|
+
* @returns true if valid binding format
|
|
153
|
+
*/
|
|
154
|
+
declare function isValidBinding(binding: string): boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Get the operator from an S-expression call.
|
|
157
|
+
*
|
|
158
|
+
* @param expr - S-expression array
|
|
159
|
+
* @returns The operator string or null if not a valid call
|
|
160
|
+
*/
|
|
161
|
+
declare function getOperator(expr: SExpr): string | null;
|
|
162
|
+
/**
|
|
163
|
+
* Get the arguments from an S-expression call.
|
|
164
|
+
*
|
|
165
|
+
* @param expr - S-expression array
|
|
166
|
+
* @returns Array of arguments (empty if not a valid call)
|
|
167
|
+
*/
|
|
168
|
+
declare function getArgs(expr: SExpr): SExpr[];
|
|
169
|
+
/**
|
|
170
|
+
* Create an S-expression call.
|
|
171
|
+
*
|
|
172
|
+
* @param operator - The operator string
|
|
173
|
+
* @param args - Arguments to the operator
|
|
174
|
+
* @returns S-expression array
|
|
175
|
+
*/
|
|
176
|
+
declare function sexpr(operator: string, ...args: SExpr[]): SExpr[];
|
|
177
|
+
/**
|
|
178
|
+
* Walk an S-expression tree and apply a visitor function to each node.
|
|
179
|
+
*
|
|
180
|
+
* @param expr - S-expression to walk
|
|
181
|
+
* @param visitor - Function to call on each node
|
|
182
|
+
*/
|
|
183
|
+
declare function walkSExpr(expr: SExpr, visitor: (node: SExpr, parent: SExpr[] | null, index: number) => void, parent?: SExpr[] | null, index?: number): void;
|
|
184
|
+
/**
|
|
185
|
+
* Collect all bindings referenced in an S-expression.
|
|
186
|
+
*
|
|
187
|
+
* @param expr - S-expression to analyze
|
|
188
|
+
* @returns Array of binding strings found
|
|
189
|
+
*/
|
|
190
|
+
declare function collectBindings(expr: SExpr): string[];
|
|
191
|
+
type SExprInput = z.input<typeof SExprSchema>;
|
|
192
|
+
type ExpressionInput = z.input<typeof ExpressionSchema>;
|
|
193
|
+
/** Evaluation context for guards and s-expressions. Recursive. */
|
|
194
|
+
interface EvalContext {
|
|
195
|
+
[key: string]: string | number | boolean | Date | null | string[] | EvalContext | undefined;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* A single value carried by an event payload field. The top-level payload
|
|
199
|
+
* is always an object; the VALUES in that object can be primitives, nested
|
|
200
|
+
* objects, or arrays of the same. Arrays are allowed so real-world emits
|
|
201
|
+
* like `{ files: [{ name, size, type }, ...] }` or `{ selected: string[] }`
|
|
202
|
+
* are typed natively instead of forcing consumers to wrap at every call.
|
|
203
|
+
*
|
|
204
|
+
* `Date` is included so `EntityRow` (whose values are `FieldValue`, which
|
|
205
|
+
* includes `Date`) is assignable to a payload field without a cast —
|
|
206
|
+
* emitted entity rows flow through the bus without boundary widening.
|
|
207
|
+
*/
|
|
208
|
+
type EventPayloadValue = string | number | boolean | Date | null | undefined | EventPayload | readonly EventPayloadValue[];
|
|
209
|
+
/**
|
|
210
|
+
* Typed event payload. Object-shaped so it's assignable to the bus's
|
|
211
|
+
* `EventPayload` parameter without casts.
|
|
212
|
+
*/
|
|
213
|
+
interface EventPayload {
|
|
214
|
+
[key: string]: EventPayloadValue;
|
|
215
|
+
}
|
|
216
|
+
/** Structured log/event metadata. Recursive to support nested log data. */
|
|
217
|
+
interface LogMeta {
|
|
218
|
+
[key: string]: string | number | boolean | null | undefined | Error | LogMeta;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export { CORE_BINDINGS as C, type EvalContext as E, type LogMeta as L, type ParsedBinding as P, type SExpr as S, type CoreBinding as a, type EventPayload as b, type EventPayloadValue as c, type Expression as d, type ExpressionInput as e, ExpressionSchema as f, type SExprAtom as g, SExprAtomSchema as h, type SExprInput as i, SExprSchema as j, collectBindings as k, getArgs as l, getOperator as m, isBinding as n, isSExpr as o, isSExprAtom as p, isSExprCall as q, isValidBinding as r, parseBinding as s, sexpr as t, walkSExpr as w };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { h as OrbitalSchema,
|
|
2
|
-
export { A as AGENT_DOMAIN_CATEGORIES,
|
|
1
|
+
import { h as OrbitalSchema, S as State, O as OrbitalDefinition } from './schema-OhIbVaYu.js';
|
|
2
|
+
export { A as AGENT_DOMAIN_CATEGORIES, m as ALLOWED_CUSTOM_COMPONENTS, n as AgentDomainCategory, o as AgentDomainCategorySchema, p as AgentEffect, q as AllowedCustomComponent, r as AnimationDef, s as AnimationDefInput, t as AnimationDefSchema, u as AssetMap, v as AssetMapInput, w as AssetMapSchema, x as AssetMapping, y as AssetMappingInput, z as AssetMappingSchema, B as AtomicEffect, C as CallServiceConfig, D as CallServiceEffect, F as ComputedEventContract, G as ComputedEventContractSchema, H as ComputedEventListener, I as ComputedEventListenerSchema, J as CustomPatternDefinition, K as CustomPatternDefinitionInput, L as CustomPatternDefinitionSchema, M as CustomPatternMap, N as CustomPatternMapInput, Q as CustomPatternMapSchema, R as DerefEffect, V as DesignPreferences, W as DesignPreferencesInput, X as DesignPreferencesSchema, Y as DesignTokens, Z as DesignTokensInput, _ as DesignTokensSchema, $ as DespawnEffect, a0 as DoEffect, a1 as DomainCategory, a2 as DomainCategorySchema, a3 as DomainContext, a4 as DomainContextInput, a5 as DomainContextSchema, a6 as DomainVocabulary, a7 as DomainVocabularySchema, a8 as ENTITY_ROLES, a9 as Effect, aa as EffectInput, ab as EffectSchema, ac as EmitConfig, ad as EmitEffect, E as Entity, ae as EntityCall, af as EntityCallSchema, ag as EntityData, c as EntityField, ah as EntityFieldInput, ai as EntityFieldSchema, d as EntityPersistence, aj as EntityPersistenceSchema, f as EntityRef, ak as EntityRefSchema, al as EntityRefStringSchema, am as EntityRole, an as EntityRoleSchema, e as EntityRow, ao as EntitySchema, ap as EntitySemanticRole, aq as EntitySemanticRoleSchema, ar as Event, as as EventInput, at as EventListener, au as EventListenerSchema, av as EventPayloadField, aw as EventPayloadFieldSchema, ax as EventSchema, ay as EventScope, az as EventScopeSchema, aA as EventSemanticRole, aB as EventSemanticRoleSchema, aC as EventSource, aD as EventSourceSchema, aE as FetchEffect, aF as Field, aG as FieldFormat, aH as FieldFormatSchema, aI as FieldSchema, aJ as FieldType, aK as FieldTypeSchema, aL as FieldValue, aM as FullOrbitalUnit, aN as GAME_TYPES, aO as GameSubCategory, aP as GameSubCategorySchema, aQ as GameType, aR as GameTypeSchema, aS as Guard, aT as GuardInput, aU as GuardSchema, aV as ListenSource, aW as ListenSourceSchema, aX as LogEffect, aY as McpServiceDef, aZ as McpServiceDefSchema, a_ as NavigateEffect, a$ as NodeClassification, b0 as NodeClassificationSchema, b1 as NotifyEffect, aM as Orbital, b2 as OrbitalConfig, b3 as OrbitalConfigInput, b4 as OrbitalConfigSchema, b5 as OrbitalDefinitionSchema, b6 as OrbitalEntity, b7 as OrbitalEntityInput, b8 as OrbitalEntitySchema, b9 as OrbitalInput, ba as OrbitalPage, bb as OrbitalPageInput, bc as OrbitalPageSchema, bd as OrbitalPageStrictInput, be as OrbitalPageStrictSchema, bf as OrbitalSchemaInput, bg as OrbitalSchemaSchema, bh as OrbitalTraitRef, bi as OrbitalTraitRefSchema, bj as OrbitalUnit, bk as OrbitalUnitSchema, bl as OrbitalZodSchema, j as Page, P as PageRef, k as PageRefObject, bm as PageRefObjectSchema, bn as PageRefSchema, bo as PageRefStringSchema, bp as PageSchema, bq as PageTraitRef, br as PageTraitRefSchema, bs as PayloadField, bt as PayloadFieldSchema, bu as PersistEffect, bv as PresentationType, bw as RefEffect, bx as RelatedLink, by as RelatedLinkSchema, bz as RelationConfig, bA as RelationConfigSchema, bB as RenderItemLambda, bC as RenderUIConfig, bD as RenderUIEffect, bE as RenderUINode, bF as RequiredField, bG as RequiredFieldSchema, bH as ResolvedAsset, bI as ResolvedAssetInput, bJ as ResolvedAssetSchema, bK as ResolvedPatternProps, bL as RestAuthConfig, bM as RestAuthConfigSchema, bN as RestServiceDef, bO as RestServiceDefSchema, bP as SERVICE_TYPES, bQ as SemanticAssetRef, bR as SemanticAssetRefInput, bS as SemanticAssetRefSchema, bT as ServiceDefinition, bU as ServiceDefinitionSchema, bV as ServiceParams, bW as ServiceRef, bX as ServiceRefObject, bY as ServiceRefObjectSchema, bZ as ServiceRefSchema, b_ as ServiceRefStringSchema, b$ as ServiceType, c0 as ServiceTypeSchema, c1 as SetEffect, c2 as SocketEvents, c3 as SocketEventsSchema, c4 as SocketServiceDef, c5 as SocketServiceDefSchema, c6 as SpawnEffect, c7 as StateInput, c8 as StateMachine, c9 as StateMachineInput, ca as StateMachineSchema, cb as StateSchema, cc as StateSemanticRole, cd as StateSemanticRoleSchema, ce as SuggestedGuard, cf as SuggestedGuardSchema, cg as SwapEffect, ch as ThemeDefinition, ci as ThemeDefinitionSchema, cj as ThemeRef, ck as ThemeRefSchema, cl as ThemeRefStringSchema, cm as ThemeTokens, cn as ThemeTokensSchema, co as ThemeVariant, cp as ThemeVariantSchema, i as Trait, cq as TraitCategory, cr as TraitCategorySchema, b as TraitConfig, cs as TraitConfigObject, ct as TraitConfigSchema, cu as TraitConfigValue, cv as TraitConfigValueSchema, cw as TraitDataEntity, cx as TraitDataEntitySchema, cy as TraitEntityField, cz as TraitEntityFieldSchema, T as TraitEventContract, cA as TraitEventContractSchema, a as TraitEventListener, cB as TraitEventListenerSchema, cC as TraitInput, g as TraitRef, cD as TraitRefSchema, l as TraitReference, cE as TraitReferenceInput, cF as TraitReferenceSchema, cG as TraitSchema, cH as TraitTick, cI as TraitTickSchema, cJ as TraitUIBinding, cK as Transition, cL as TransitionInput, cM as TransitionSchema, cN as TypedEffect, cO as UISlot, cP as UISlotSchema, cQ as UI_SLOTS, cR as UXHints, cS as UXHintsSchema, U as UseDeclaration, cT as UseDeclarationSchema, cU as UserPersona, cV as UserPersonaInput, cW as UserPersonaSchema, cX as VISUAL_STYLES, cY as ViewType, cZ as ViewTypeSchema, c_ as VisualStyle, c$ as VisualStyleSchema, d0 as WatchEffect, d1 as WatchOptions, d2 as atomic, d3 as callService, d4 as createAssetKey, d5 as deref, d6 as deriveCollection, d7 as despawn, d8 as doEffects, d9 as emit, da as findService, db as getDefaultAnimationsForRole, dc as getServiceNames, dd as getTraitConfig, de as getTraitName, df as hasService, dg as isCircuitEvent, dh as isEffect, di as isEntityCall, dj as isEntityReference, dk as isEntityReferenceAny, dl as isImportedTraitRef, dm as isInlineTrait, dn as isMcpService, dp as isOrbitalDefinition, dq as isPageReference, dr as isPageReferenceObject, ds as isPageReferenceString, dt as isRestService, du as isRuntimeEntity, dv as isSExprEffect, dw as isServiceReference, dx as isServiceReferenceObject, dy as isSingletonEntity, dz as isSocketService, dA as isThemeReference, dB as navigate, dC as normalizeTraitRef, dD as notify, dE as parseAssetKey, dF as parseEntityRef, dG as parseImportedTraitRef, dH as parseOrbitalSchema, dI as parsePageRef, dJ as parseServiceRef, dK as persist, dL as ref, dM as renderUI, dN as safeParseOrbitalSchema, dO as set, dP as spawn, dQ as swap, dR as validateAssetAnimations, dS as watch } from './schema-OhIbVaYu.js';
|
|
3
|
+
export { C as CORE_BINDINGS, a as CoreBinding, E as EvalContext, b as EventPayload, c as EventPayloadValue, d as Expression, e as ExpressionInput, f as ExpressionSchema, L as LogMeta, P as ParsedBinding, S as SExpr, g as SExprAtom, h as SExprAtomSchema, i as SExprInput, j as SExprSchema, k as collectBindings, l as getArgs, m as getOperator, n as isBinding, o as isSExpr, p as isSExprAtom, q as isSExprCall, r as isValidBinding, s as parseBinding, t as sexpr, w as walkSExpr } from './expression-eBO9-SQM.js';
|
|
3
4
|
import { ResolvedIR, ResolvedEntity, ResolvedPage, ResolvedTrait, SchemaChange, CategorizedRemovals, PageContentReduction, SemanticSchemaChange } from './types/index.js';
|
|
4
5
|
export { AgentCodeSearchResult, AgentCompactResult, AgentCompactStrategy, AgentContext, AgentGenerateOptions, AgentMemoryCategory, AgentMemoryRecord, AppSummary, AssetLoadStatus, BINDING_CONTEXT_RULES, BINDING_DOCS, BINDING_ROOTS, BindingContext, BindingRoot, BindingSchema, BridgeHealth, BusEvent, BusEventListener, BusEventSource, ChangeAuthor, ChangeSetDocument, ChangeSummary, CheckStatus, ContextExtensions, CreateFlow, DEFAULT_INTERACTION_MODELS, DeleteFlow, EditFlow, EffectTrace, EventKey, EventLogEntry, GitHubLink, HistoryMeta, InteractionModel, InteractionModelInput, InteractionModelSchema, LazyService, ListInteraction, OrbitalVerificationAPI, PatternTypeSchema, PersistActionName, ResolvedEntityBinding, ResolvedField, ResolvedNavigation, ResolvedPattern, ResolvedSection, ResolvedSectionEvent, ResolvedTraitBinding, ResolvedTraitDataEntity, ResolvedTraitEvent, ResolvedTraitGuard, ResolvedTraitListener, ResolvedTraitState, ResolvedTraitTick, ResolvedTraitTransition, ResolvedTraitUIBinding, SaveOptions, SaveResult, SemanticChangeKind, ServerResponseTrace, ServiceAction, ServiceActionName, ServiceContract, ServiceEvents, SnapshotDocument, StatsView, StoreContract, StoreFilter, StoreFilterOp, TraitStateSnapshot, TransitionFrom, TransitionTrace, Unsubscribe, ValidationDocument, ValidationIssue, ValidationMeta, ValidationResults, VerificationCheck, VerificationSnapshot, VerificationSummary, ViewFlow, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, getAllPatternTypes, getBindingExamples, getInteractionModelForDomain, inferTsType, isResolvedIR, toBindingRoot, validateBindingInContext } from './types/index.js';
|
|
5
6
|
export { ASTNode, ComparisonCondition, ComparisonOperator, DomainBehavior, DomainChunk, DomainDocument, DomainEffect, DomainEntity, DomainField, DomainFieldType, DomainGuard, DomainPage, DomainPageAction, DomainPageSection, DomainRelationship, DomainTick, DomainToSchemaResult, DomainTransition, EFFECT_REGISTRY, EffectMapping, EffectType, FIELD_TYPE_REGISTRY, FieldCheckCondition, FieldReference, FieldTypeMapping, GUARD_REGISTRY, GuardCondition, GuardMapping, KEYWORDS, Lexer, LogicalCondition, LogicalOperator, MULTI_WORD_KEYWORDS, MappingStore, MergeResult, ParseError, ParseResult, RelationshipType, SchemaToDomainResult, SectionMapping, SourceLocation, SourceRange, Token, TokenType, UserCheckCondition, applySectionUpdate, computeSchemaHash, convertDomainToSchema, convertEntitiesToDomain, convertPagesToDomain, convertSchemaToDomain, convertTraitsToDomain, createMappingStore, deleteSection, detectChanges, domainKeywordToSchemaType, findMapping, findMappingByPath, findMappingsByType, formatBehaviorToDomain, formatBehaviorToSchema, formatDomainGuardToSchema, formatEntityToDomain, formatEntityToSchema, formatGuardConditionToDomain, formatGuardToDomain, formatGuardToSchema, formatMergeSummary, formatPageToDomain, formatPageToSchema, formatSchemaEntityToDomain, formatSchemaGuardToDomain, formatSchemaPageToDomain, formatSchemaTraitToDomain, generateDomainLanguageReference, generateSectionId, getEffectMapping, getFieldTypeMapping, getGuardMapping, getRegisteredEffects, getRegisteredFieldTypes, getRegisteredGuards, getRegistryStats, getSchemaPath, hasSchemaChanged, isEffectRegistered, isFieldTypeRegistered, isGuardRegistered, mergeDomainChunks, parseBehavior, parseDomainEffect, parseDomainEffects, parseDomainGuard, parseEntity, parseGuard, parsePage, parseSectionId, removeMapping, resolveConflict, schemaEntityToDomainEntity, schemaPageToDomainPage, schemaTraitToDomainBehavior, schemaTypeToDomainKeyword, tokenize, updateMappingRange, updateSchemaHash, upsertMapping, validateDomainChunk } from './domain-language/index.js';
|
|
6
|
-
export { C as ComposeBehaviorsInput, a as ComposeBehaviorsResult, E as EventWiringEntry, L as LayoutStrategy, b as applyEventWiring, c as composeBehaviors, d as detectLayoutStrategy } from './compose-behaviors-
|
|
7
|
+
export { C as ComposeBehaviorsInput, a as ComposeBehaviorsResult, E as EventWiringEntry, L as LayoutStrategy, b as applyEventWiring, c as composeBehaviors, d as detectLayoutStrategy } from './compose-behaviors-DPPX5a_s.js';
|
|
7
8
|
export { BFSNode, BFSPathNode, EdgeWalkTransition, GraphTransition, GuardPayload, ReplayStep, ReplayTransition, StateEdge, WalkStep, buildEdgeCoveringWalk, buildGuardPayloads, buildReplayPaths, buildStateGraph, collectReachableStates, extractPayloadFieldRef, walkStatePairs } from './state-machine/index.js';
|
|
8
9
|
export { PATTERN_TYPES, PatternConfig, PatternType, isValidPatternType } from '@almadar/patterns';
|
|
9
10
|
import 'zod';
|
package/dist/index.js
CHANGED
|
@@ -1227,16 +1227,16 @@ var BINDING_DOCS = {
|
|
|
1227
1227
|
};
|
|
1228
1228
|
var BINDING_CONTEXT_RULES = {
|
|
1229
1229
|
guard: {
|
|
1230
|
-
allowed: ["entity", "payload", "state", "now"],
|
|
1231
|
-
description:
|
|
1230
|
+
allowed: ["entity", "payload", "state", "now", "config"],
|
|
1231
|
+
description: `Guards can access entity fields, event payload, current state, time, and the call-site trait config (@config.X). Config access lets atoms write mode-aware guards \u2014 e.g. std-modal's OPEN can require @payload.row only when @config.mode equals "edit", letting create-mode legitimately fire OPEN with no row. Like effects, @config.X is substituted at molecule/organism inline time with the literal call-site value; at atom-scope validate, @config is allowed-but-unresolved.`
|
|
1232
1232
|
},
|
|
1233
1233
|
effect: {
|
|
1234
1234
|
allowed: ["entity", "payload", "state", "now", "trait", "config"],
|
|
1235
1235
|
description: "Effects can access and modify entity fields, use payload data, embed another trait's live frame via @trait.X inside render-ui children, and read trait config values (@config.X) for atoms parameterized by their call-site. At molecule/organism inline time, @config.X is substituted with the literal value from the call-site config block; at atom-scope validate, @config is allowed-but-unresolved."
|
|
1236
1236
|
},
|
|
1237
1237
|
tick: {
|
|
1238
|
-
allowed: ["entity", "state", "now"],
|
|
1239
|
-
description: "Ticks can access entity fields, current state, and
|
|
1238
|
+
allowed: ["entity", "state", "now", "config"],
|
|
1239
|
+
description: "Ticks can access entity fields, current state, time, and trait config (@config.X) for parameterized atoms. Same substitution semantics as guards/effects."
|
|
1240
1240
|
}
|
|
1241
1241
|
};
|
|
1242
1242
|
function validateBindingInContext(binding, context) {
|
|
@@ -8351,6 +8351,10 @@ function extractPayloadFieldRef(ref2) {
|
|
|
8351
8351
|
return match ? match[1] : null;
|
|
8352
8352
|
}
|
|
8353
8353
|
function buildGuardPayloads(guard) {
|
|
8354
|
+
if (typeof guard === "string") {
|
|
8355
|
+
const field = extractPayloadFieldRef(guard);
|
|
8356
|
+
if (field) return { pass: { [field]: { id: "mock-test-id", name: "mock-test-name" } }, fail: { [field]: null } };
|
|
8357
|
+
}
|
|
8354
8358
|
if (!Array.isArray(guard) || guard.length === 0) {
|
|
8355
8359
|
return { pass: {}, fail: {} };
|
|
8356
8360
|
}
|
|
@@ -8409,11 +8413,12 @@ function buildGuardPayloads(guard) {
|
|
|
8409
8413
|
if (subs.length === 1) return buildGuardPayloads(subs[0]);
|
|
8410
8414
|
}
|
|
8411
8415
|
if (op === "or") {
|
|
8412
|
-
const subs = guard.slice(1)
|
|
8416
|
+
const subs = guard.slice(1);
|
|
8413
8417
|
if (subs.length >= 2) {
|
|
8414
8418
|
const s1 = buildGuardPayloads(subs[0]);
|
|
8415
8419
|
const s2 = buildGuardPayloads(subs[1]);
|
|
8416
|
-
|
|
8420
|
+
const combinedPass = Object.keys(s1.pass).length > 0 ? s1.pass : s2.pass;
|
|
8421
|
+
return { pass: combinedPass, fail: { ...s1.fail, ...s2.fail } };
|
|
8417
8422
|
}
|
|
8418
8423
|
if (subs.length === 1) return buildGuardPayloads(subs[0]);
|
|
8419
8424
|
}
|