@almadar/std 14.44.0 → 14.45.1

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.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../types.ts","../modules/core.ts","../modules/math.ts","../modules/str.ts","../modules/array.ts","../modules/object.ts","../modules/time.ts","../modules/validate.ts","../modules/format.ts","../modules/async.ts","../modules/nn.ts","../modules/tensor.ts","../modules/train.ts","../modules/prob.ts","../modules/os.ts","../modules/agent.ts","../modules/composition.ts","../registry.ts","../behaviors/types.ts","../behaviors/functions/index.ts","../behaviors/functions/core/atoms/std-cascade-on-delete.ts","../behaviors/functions/dispatch.ts","../behaviors/exports-reader.ts","../behaviors/query.ts","../behaviors/explode-behavior-composition.ts","../docs-generator.ts"],"names":["fnNameToBehaviorName"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Standard Library Types\n *\n * Common types and interfaces for the Orbital Standard Library.\n * Extends the core operator system with std-prefixed modules.\n *\n * @packageDocumentation\n */\n\n// ============================================================================\n// Base Operator Types (self-contained, no external dependencies)\n// ============================================================================\n\n/**\n * Operator categories for the core expression language.\n */\nexport const OPERATOR_CATEGORIES = [\n 'arithmetic',\n 'comparison',\n 'logic',\n 'control',\n 'effect',\n 'collection',\n 'std-math',\n 'std-str',\n 'std-array',\n 'std-object',\n 'std-validate',\n 'std-time',\n 'std-format',\n 'std-async',\n 'std-nn',\n 'std-tensor',\n 'std-train',\n 'std-prob',\n 'std-os',\n 'std-agent',\n 'std-composition',\n 'ml-arch',\n 'ml-effect',\n 'ml-tensor',\n 'ml-graph',\n 'ml-contract',\n 'ml-data',\n] as const;\n\nexport type OperatorCategory = (typeof OPERATOR_CATEGORIES)[number];\n\n/**\n * Basic return types for core operators.\n */\nexport type BasicReturnType = 'number' | 'boolean' | 'string' | 'any' | 'void' | 'array';\n\n/**\n * Base metadata for an operator.\n */\n/**\n * For operators whose actual return type depends on input expressions\n * rather than being a fixed primitive (gap #24's family in\n * `docs/Almadar_Std_Verification.md`). The static `returnType` is kept\n * for back-compat with consumers that don't reason about input-dependent\n * types; the validator (L2) reads `returnSemantics` first to derive the\n * concrete type from the call site's argument expressions.\n *\n * - `'first-truthy-of-args'` — returns the first truthy argument's value\n * (`or` semantics, NOT a boolean). Trips arithmetic-context misuse.\n * - `'last-truthy-of-args'` — returns the last truthy argument's value\n * when all are truthy, else first falsy (`and` short-circuit).\n * - `'first-non-null-of-args'` — returns the first non-null arg's type\n * (`coalesce` / `default` / `??`-style).\n * - `'branch-union'` — return type is union of branch result types\n * (`if cond X Y` → `X | Y`).\n * - `'element-of-arg<N>'` — returns element type of arg at index N\n * (`array/first arr` → element of `arr`, `array/get arr i` → element\n * of `arr`). Suffix `?` (e.g. `'element-of-arg<0>?'`) marks\n * nullable-when-missing (`array/find` → `T | undefined`).\n * - `'lambda-result'` — return type is the lambda's body result, with\n * the result possibly wrapped in an array (`array/map` →\n * `Array<ReturnTypeOf<lambda>>`, `array/reduce` →\n * `ReturnTypeOf<lambda>` / type of `init`).\n * - `'object-key-lookup'` — return type depends on the input object\n * shape and the literal key (`object/get`, `object/pick`).\n * - `'identity-of-arg<N>'` — return type matches the input arg at index N\n * (`tap`, `pipe-through`).\n *\n * Operators NOT listed here keep the fixed `returnType` semantics —\n * arithmetic, math, comparisons, aggregations (`array/sum`/`avg`/`len`),\n * type coercions, all effects.\n */\nexport type ReturnSemantics =\n | 'first-truthy-of-args'\n | 'last-truthy-of-args'\n | 'first-non-null-of-args'\n | 'branch-union'\n | 'element-of-arg<0>'\n | 'element-of-arg<0>?'\n | 'element-of-arg<1>'\n | 'lambda-result'\n | 'object-key-lookup'\n | 'identity-of-arg<0>';\n\nexport interface OperatorMeta {\n /** Operator category */\n category: OperatorCategory;\n /** Minimum number of arguments */\n minArity: number;\n /** Maximum number of arguments (null = unlimited) */\n maxArity: number | null;\n /** Human-readable description */\n description: string;\n /** Whether this operator has side effects (only valid in effect context) */\n hasSideEffects: boolean;\n /** Return type hint - basic types for core operators, extended types for std modules */\n returnType: string;\n /**\n * For operators whose actual return type is determined at the call site\n * (input-dependent), tag with the appropriate semantics so the L2\n * validator can derive the concrete type from argument expressions.\n * Omitted when `returnType` is the fixed truth (most operators).\n * See {@link ReturnSemantics} for the catalog and gap #24 in the std\n * verification doc.\n */\n returnSemantics?: ReturnSemantics;\n}\n\n// ============================================================================\n// Standard Library Categories\n// ============================================================================\n\n/**\n * Standard library module names.\n * Each module provides a set of operators prefixed with the module name.\n * E.g., 'math' provides 'math/abs', 'math/clamp', etc.\n */\nexport const STD_MODULES = [\n 'core',\n 'math',\n 'str',\n 'array',\n 'object',\n 'time',\n 'validate',\n 'format',\n 'async',\n 'nn',\n 'tensor',\n 'train',\n 'prob',\n 'os',\n 'agent',\n 'graph',\n 'contract',\n 'data',\n 'composition',\n] as const;\n\nexport type StdModule = (typeof STD_MODULES)[number];\n\n/**\n * Standard library operator categories.\n * These extend the core categories for more granular classification.\n */\nexport const STD_OPERATOR_CATEGORIES = [\n 'std-math',\n 'std-str',\n 'std-array',\n 'std-object',\n 'std-time',\n 'std-validate',\n 'std-format',\n 'std-async',\n 'std-nn',\n 'std-tensor',\n 'std-train',\n 'std-prob',\n 'std-os',\n 'std-agent',\n 'std-composition',\n 'ml-arch',\n 'ml-effect',\n 'ml-tensor',\n 'ml-graph',\n 'ml-contract',\n 'ml-data',\n] as const;\n\nexport type StdOperatorCategory = (typeof STD_OPERATOR_CATEGORIES)[number];\n\n// ============================================================================\n// Extended Operator Metadata\n// ============================================================================\n\n/**\n * Structured parameter type reference (Schema v2).\n *\n * A plain string (e.g. `'number'`, `'string'`) is still accepted for\n * backward compatibility with simple primitives. Richer shapes let effect\n * operators declare literal unions, UI slots, event keys, and entity refs\n * so compilers, LLM prompt generators, and validators can reason about the\n * argument shape without string heuristics.\n */\nexport type OperatorTypeRef =\n | string\n | { kind: 'union'; of: OperatorTypeRef[] }\n | { kind: 'literal'; value: string | number | boolean }\n | { kind: 'array'; of: OperatorTypeRef }\n | { kind: 'object'; fields: Record<string, OperatorTypeRef>; open?: boolean }\n | { kind: 'entity'; collection?: string }\n | { kind: 'entityRef' }\n | { kind: 'eventKey'; scope?: 'internal' | 'external' }\n | { kind: 'uiSlot' }\n | { kind: 'patternType' }\n | { kind: 'binding'; shape?: OperatorTypeRef }\n | { kind: 'sexpr' };\n\n/**\n * Effect-specific metadata (Schema v2).\n * Populated only when `hasSideEffects: true`. Describes what the effect\n * produces back onto the runtime bus or state tree so consumers (Rust\n * validator, LLM skill gen, verify) can trace downstream reactions.\n */\nexport interface OperatorEffectMeta {\n kind:\n | 'emit'\n | 'persist'\n | 'fetch'\n | 'ref'\n | 'render-ui'\n | 'navigate'\n | 'notify'\n | 'spawn'\n | 'despawn'\n | 'set'\n | 'call-service'\n | 'log'\n | 'custom';\n /** What the effect puts onto the bus / state when it resolves. */\n produces?: OperatorTypeRef;\n /** Effect-specific config keys and their declared types. */\n config?: Record<string, OperatorTypeRef>;\n}\n\n/**\n * Extended operator metadata for std library operators.\n * Adds parameter descriptions and examples.\n */\nexport interface StdOperatorMeta extends OperatorMeta {\n /** The std module this operator belongs to */\n module: StdModule;\n /** Parameter names and descriptions */\n params?: {\n name: string;\n type: OperatorTypeRef;\n description: string;\n optional?: boolean;\n defaultValue?: unknown;\n }[];\n /** Example usage */\n example?: string;\n /** Whether this operator accepts a lambda expression argument */\n acceptsLambda?: boolean;\n /** Position of the lambda argument (0-indexed) */\n lambdaArgPosition?: number;\n /** Compile-time operator (resolved during .lolo lowering, not at runtime) */\n compileTime?: boolean;\n /** Schema v2: structured metadata for effect operators */\n effect?: OperatorEffectMeta;\n}\n\n/**\n * Type guard to check if an operator category is a std category.\n */\nexport function isStdCategory(category: string): category is StdOperatorCategory {\n return STD_OPERATOR_CATEGORIES.includes(category as StdOperatorCategory);\n}\n\n/**\n * Get the module name from a std operator name.\n * E.g., 'math/clamp' -> 'math'\n */\nexport function getModuleFromOperator(operator: string): StdModule | null {\n const parts = operator.split('/');\n if (parts.length !== 2) return null;\n const module = parts[0];\n return STD_MODULES.includes(module as StdModule) ? (module as StdModule) : null;\n}\n\n/**\n * Get the function name from a std operator.\n * E.g., 'math/clamp' -> 'clamp'\n */\nexport function getFunctionFromOperator(operator: string): string | null {\n const parts = operator.split('/');\n return parts.length === 2 ? parts[1] : null;\n}\n\n/**\n * Check if an operator name is a std library operator.\n * Std library operators are prefixed with their module name (e.g., 'math/', 'str/').\n */\nexport function isStdOperator(operator: string): boolean {\n return getModuleFromOperator(operator) !== null;\n}\n\n/**\n * Create a std operator name from module and function name.\n * E.g., ('math', 'clamp') -> 'math/clamp'\n */\nexport function makeStdOperator(module: StdModule, fn: string): string {\n return `${module}/${fn}`;\n}\n","/**\n * Core Module - Language Primitives\n *\n * The 28 unnamespaced S-expression operators that form the .orb language core:\n * arithmetic primitives, comparison, logic, control flow, and effects.\n *\n * These operators existed in the retired `@almadar/operators` package prior to\n * its merge into `@almadar/std`. They live here alongside the library modules\n * (math, str, array, etc.) so the whole operator surface has one home.\n *\n * Effect operators declare rich Schema v2 params and effect metadata so\n * validators, LLM prompt generators, and the Rust compiler can reason about\n * shapes (literal unions for persist actions, UISlot for render-ui, event keys\n * for emit) instead of relying on string heuristics.\n *\n * @packageDocumentation\n */\n\nimport type { OperatorTypeRef, StdOperatorMeta } from '../types.js';\n\n// ============================================================================\n// Shared type refs\n// ============================================================================\n\nconst NUMBER: OperatorTypeRef = 'number';\nconst BOOLEAN: OperatorTypeRef = 'boolean';\nconst STRING: OperatorTypeRef = 'string';\nconst ANY: OperatorTypeRef = 'any';\nconst SEXPR: OperatorTypeRef = { kind: 'sexpr' };\nconst BINDING: OperatorTypeRef = { kind: 'binding' };\nconst ENTITY_REF: OperatorTypeRef = { kind: 'entityRef' };\nconst EVENT_KEY: OperatorTypeRef = { kind: 'eventKey' };\nconst UI_SLOT: OperatorTypeRef = { kind: 'uiSlot' };\nconst PATTERN_TYPE: OperatorTypeRef = { kind: 'patternType' };\n\nconst PERSIST_ACTION: OperatorTypeRef = {\n kind: 'union',\n of: [\n { kind: 'literal', value: 'create' },\n { kind: 'literal', value: 'update' },\n { kind: 'literal', value: 'delete' },\n { kind: 'literal', value: 'clear' },\n { kind: 'literal', value: 'batch' },\n ],\n};\n\nconst SET_OPERATION: OperatorTypeRef = {\n kind: 'union',\n of: [\n { kind: 'literal', value: 'increment' },\n { kind: 'literal', value: 'decrement' },\n { kind: 'literal', value: 'multiply' },\n { kind: 'literal', value: 'append' },\n { kind: 'literal', value: 'remove' },\n ],\n};\n\nconst NOTIFY_CHANNEL: OperatorTypeRef = {\n kind: 'union',\n of: [\n { kind: 'literal', value: 'email' },\n { kind: 'literal', value: 'push' },\n { kind: 'literal', value: 'sms' },\n { kind: 'literal', value: 'in_app' },\n ],\n};\n\n// ============================================================================\n// Core operators\n// ============================================================================\n\nexport const CORE_OPERATORS: Record<string, StdOperatorMeta> = {\n // --- arithmetic primitives --------------------------------------------------\n\n '+': {\n module: 'core',\n category: 'arithmetic',\n minArity: 2,\n maxArity: null,\n description: 'Add numbers',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: '...nums', type: NUMBER, description: 'Numbers to sum' }],\n example: '[\"+\", 1, 2, 3] // => 6',\n },\n '-': {\n module: 'core',\n category: 'arithmetic',\n minArity: 1,\n maxArity: 2,\n description: 'Subtract or negate',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: NUMBER, description: 'Left operand or value to negate' },\n { name: 'b', type: NUMBER, description: 'Right operand', optional: true },\n ],\n example: '[\"-\", 5, 2] // => 3; [\"-\", 5] // => -5',\n },\n '*': {\n module: 'core',\n category: 'arithmetic',\n minArity: 2,\n maxArity: null,\n description: 'Multiply numbers',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: '...nums', type: NUMBER, description: 'Numbers to multiply' }],\n example: '[\"*\", 2, 3, 4] // => 24',\n },\n '/': {\n module: 'core',\n category: 'arithmetic',\n minArity: 2,\n maxArity: 2,\n description: 'Divide numbers',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: NUMBER, description: 'Numerator' },\n { name: 'b', type: NUMBER, description: 'Denominator' },\n ],\n example: '[\"/\", 10, 2] // => 5',\n },\n '%': {\n module: 'core',\n category: 'arithmetic',\n minArity: 2,\n maxArity: 2,\n description: 'Modulo (remainder)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: NUMBER, description: 'Dividend' },\n { name: 'b', type: NUMBER, description: 'Divisor' },\n ],\n example: '[\"%\", 10, 3] // => 1',\n },\n\n // --- comparison -------------------------------------------------------------\n\n '=': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Equal to',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: ANY, description: 'Left operand' },\n { name: 'b', type: ANY, description: 'Right operand' },\n ],\n example: '[\"=\", \"@entity.status\", \"active\"]',\n },\n '!=': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Not equal to',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: ANY, description: 'Left operand' },\n { name: 'b', type: ANY, description: 'Right operand' },\n ],\n example: '[\"!=\", \"@entity.id\", null]',\n },\n '<': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Less than',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: NUMBER, description: 'Left operand' },\n { name: 'b', type: NUMBER, description: 'Right operand' },\n ],\n example: '[\"<\", \"@entity.health\", 10]',\n },\n '>': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Greater than',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: NUMBER, description: 'Left operand' },\n { name: 'b', type: NUMBER, description: 'Right operand' },\n ],\n example: '[\">\", \"@entity.score\", 0]',\n },\n '<=': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Less than or equal',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: NUMBER, description: 'Left operand' },\n { name: 'b', type: NUMBER, description: 'Right operand' },\n ],\n example: '[\"<=\", \"@entity.count\", 100]',\n },\n '>=': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Greater than or equal',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: NUMBER, description: 'Left operand' },\n { name: 'b', type: NUMBER, description: 'Right operand' },\n ],\n example: '[\">=\", \"@entity.age\", 18]',\n },\n\n // --- logic ------------------------------------------------------------------\n\n and: {\n module: 'core',\n category: 'logic',\n minArity: 2,\n maxArity: null,\n description: 'Logical AND (returns the last truthy value, NOT a boolean — short-circuit)',\n hasSideEffects: false,\n returnType: 'boolean',\n returnSemantics: 'last-truthy-of-args',\n params: [{ name: '...conds', type: BOOLEAN, description: 'Boolean expressions to AND' }],\n example: '[\"and\", [\"=\", \"@entity.active\", true], [\">\", \"@entity.score\", 0]]',\n },\n or: {\n module: 'core',\n category: 'logic',\n minArity: 2,\n maxArity: null,\n description: 'Logical OR (returns the first truthy value, NOT a boolean — short-circuit)',\n hasSideEffects: false,\n returnType: 'boolean',\n returnSemantics: 'first-truthy-of-args',\n params: [{ name: '...conds', type: BOOLEAN, description: 'Boolean expressions to OR' }],\n example: '[\"or\", [\"=\", \"@entity.role\", \"admin\"], [\"=\", \"@entity.role\", \"owner\"]]',\n },\n not: {\n module: 'core',\n category: 'logic',\n minArity: 1,\n maxArity: 1,\n description: 'Logical NOT',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'cond', type: BOOLEAN, description: 'Boolean to negate' }],\n example: '[\"not\", \"@entity.disabled\"]',\n },\n if: {\n module: 'core',\n category: 'logic',\n minArity: 3,\n maxArity: 3,\n description: 'Conditional expression (ternary). Return type is union of branch types.',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'branch-union',\n params: [\n { name: 'cond', type: BOOLEAN, description: 'Condition to evaluate' },\n { name: 'then', type: ANY, description: 'Value or effect if true' },\n { name: 'else', type: ANY, description: 'Value or effect if false' },\n ],\n example: '[\"if\", [\">\", \"@entity.health\", 0], \"alive\", \"dead\"]',\n },\n\n // --- control ----------------------------------------------------------------\n\n let: {\n module: 'core',\n category: 'control',\n minArity: 2,\n maxArity: 2,\n description: 'Bind local variables for a body expression',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n {\n name: 'bindings',\n type: { kind: 'array', of: { kind: 'array', of: ANY } },\n description: 'Array of [name, value] pairs',\n },\n { name: 'body', type: SEXPR, description: 'Expression or effect list using the bindings' },\n ],\n example: '[\"let\", [[\"x\", 10]], [\"+\", \"x\", 1]]',\n },\n do: {\n module: 'core',\n category: 'control',\n minArity: 1,\n maxArity: null,\n description: 'Sequential execution of multiple effects/expressions',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: '...exprs', type: SEXPR, description: 'Effects/expressions to run in order' }],\n example: '[\"do\", [\"set\", \"@entity.x\", 0], [\"set\", \"@entity.y\", 0]]',\n },\n when: {\n module: 'core',\n category: 'control',\n minArity: 2,\n maxArity: 2,\n description: 'Conditional effect without an else branch',\n hasSideEffects: false,\n returnType: 'void',\n params: [\n { name: 'cond', type: BOOLEAN, description: 'Guard expression' },\n { name: 'effect', type: SEXPR, description: 'Effect to run if cond is true' },\n ],\n example: '[\"when\", [\">\", \"@entity.health\", 0], [\"emit\", \"ALIVE\"]]',\n },\n fn: {\n module: 'core',\n category: 'control',\n minArity: 2,\n maxArity: 2,\n description: 'Lambda expression (used for per-item renders and transforms)',\n hasSideEffects: false,\n returnType: 'function',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'paramName', type: STRING, description: 'Name of the parameter binding' },\n { name: 'body', type: SEXPR, description: 'Expression evaluated per invocation' },\n ],\n example: '[\"fn\", \"item\", { \"type\": \"typography\", \"content\": \"@item.title\" }]',\n },\n\n // --- effect -----------------------------------------------------------------\n\n set: {\n module: 'core',\n category: 'effect',\n minArity: 2,\n maxArity: 2,\n description: 'Set a binding to a value',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'binding', type: BINDING, description: 'Target binding (e.g. \"@entity.field\")' },\n { name: 'value', type: ANY, description: 'Value to assign (literal or expression)' },\n ],\n example: '[\"set\", \"@entity.health\", 100]',\n effect: {\n kind: 'set',\n // success emit carries the written value; the evaluator coerces to the\n // binding's declared type, so 'any' is the general shape. A future pass\n // can narrow per-binding via resolveBinding.\n produces: ANY,\n config: { operation: SET_OPERATION },\n },\n },\n emit: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Emit an event onto the bus',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'event', type: EVENT_KEY, description: 'Event key' },\n { name: 'payload', type: ENTITY_REF, description: 'Optional payload', optional: true },\n ],\n example: '[\"emit\", \"PLAYER_DIED\", { \"playerId\": \"@entity.id\" }]',\n effect: {\n kind: 'emit',\n produces: {\n kind: 'object',\n fields: { event: EVENT_KEY, payload: ANY },\n open: true,\n },\n },\n },\n persist: {\n module: 'core',\n category: 'effect',\n minArity: 2,\n maxArity: 4,\n description: 'Create, update, delete, clear, or batch entity records. Optional trailing { emit: { success, failure } } options object attaches closed-circuit emit routing.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'action', type: PERSIST_ACTION, description: 'Persist action' },\n { name: 'entity', type: { kind: 'entity' }, description: 'Target entity name' },\n { name: 'data', type: ENTITY_REF, description: 'Payload (create/update) or entity id (delete)', optional: true },\n {\n name: 'options',\n type: {\n kind: 'object',\n fields: {\n emit: { kind: 'object', fields: {}, open: true },\n },\n open: true,\n },\n description: 'Optional trailing options object carrying { emit: { success, failure } } closed-circuit routing',\n optional: true,\n },\n ],\n example: '[\"persist\", \"create\", \"Task\", { \"title\": \"@payload.title\" }, { \"emit\": { \"success\": \"TASK_CREATED\" } }]',\n effect: {\n kind: 'persist',\n // Action-discriminated union. The compiler narrows at the call site\n // based on the action arg literal to pick the right branch when\n // checking the emit.success event's declared payload.\n // create/update -> the resulting entity record\n // delete/clear -> { id, deleted }\n // batch -> summary of operations\n produces: {\n kind: 'union',\n of: [\n { kind: 'entity' },\n {\n kind: 'object',\n fields: { id: STRING, deleted: BOOLEAN },\n open: false,\n },\n {\n kind: 'object',\n fields: {\n operations: { kind: 'array', of: ANY },\n completedCount: NUMBER,\n totalCount: NUMBER,\n },\n open: false,\n },\n ],\n },\n },\n },\n navigate: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Navigate to a route',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'path', type: STRING, description: 'Route path (supports :param placeholders)' },\n {\n name: 'params',\n type: { kind: 'object', fields: {}, open: true },\n description: 'Optional route params',\n optional: true,\n },\n ],\n example: '[\"navigate\", \"/tasks/:id\", { \"id\": \"@entity.id\" }]',\n effect: { kind: 'navigate' },\n },\n notify: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Show a notification (in-app, email, push, sms)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'channel', type: NOTIFY_CHANNEL, description: 'Delivery channel' },\n { name: 'message', type: STRING, description: 'Message body', optional: true },\n ],\n example: '[\"notify\", \"in_app\", \"Task created successfully\"]',\n effect: { kind: 'notify' },\n },\n spawn: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Spawn a new entity instance (games)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'entity', type: { kind: 'entity' }, description: 'Entity name to spawn' },\n {\n name: 'initialState',\n type: { kind: 'object', fields: {}, open: true },\n description: 'Initial field values',\n optional: true,\n },\n ],\n example: '[\"spawn\", \"Bullet\", { \"x\": \"@entity.x\", \"y\": \"@entity.y\" }]',\n effect: { kind: 'spawn' },\n },\n despawn: {\n module: 'core',\n category: 'effect',\n minArity: 0,\n maxArity: 1,\n description: 'Despawn an entity instance (games)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'entityId', type: STRING, description: 'Target entity id (defaults to @entity.id)', optional: true },\n ],\n example: '[\"despawn\", \"@entity.id\"]',\n effect: { kind: 'despawn' },\n },\n fetch: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Fetch an entity (by id) or a collection (by filter) from persistence',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'entity', type: { kind: 'entity' }, description: 'Target entity name' },\n {\n name: 'options',\n type: {\n kind: 'object',\n fields: {\n id: STRING,\n filter: ANY,\n limit: NUMBER,\n offset: NUMBER,\n include: { kind: 'array', of: STRING },\n emit: { kind: 'object', fields: {}, open: true },\n },\n open: true,\n },\n description: 'Fetch options: id | filter | limit | offset | include | emit',\n optional: true,\n },\n ],\n example: '[\"fetch\", \"Task\", { \"id\": \"@payload.taskId\", \"emit\": { \"success\": \"TASK_LOADED\" } }]',\n effect: {\n kind: 'fetch',\n // Call-site-discriminated union: options.id present -> single entity;\n // otherwise -> array of entity. The compiler narrows at the call site\n // when checking emit.success against the declared event payload.\n produces: {\n kind: 'union',\n of: [\n { kind: 'entity' },\n { kind: 'array', of: { kind: 'entity' } },\n ],\n },\n },\n },\n ref: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Reactive entity reference (deprecated, use fetch with listens in V2)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'entity', type: { kind: 'entity' }, description: 'Target entity name' },\n {\n name: 'options',\n type: {\n kind: 'object',\n fields: {\n id: STRING,\n filter: ANY,\n include: { kind: 'array', of: STRING },\n emit: { kind: 'object', fields: {}, open: true },\n },\n open: true,\n },\n description: 'Ref options: id | filter | include | emit',\n optional: true,\n },\n ],\n example: '[\"ref\", \"Task\"]',\n effect: {\n kind: 'ref',\n // Same call-site shape as fetch. Kept for the V2 transition period;\n // scheduled for deprecation in a later phase (see Almadar_Entity_V2_Plan.md).\n produces: {\n kind: 'union',\n of: [\n { kind: 'entity' },\n { kind: 'array', of: { kind: 'entity' } },\n ],\n },\n },\n },\n 'call-service': {\n module: 'core',\n category: 'effect',\n minArity: 2,\n maxArity: 4,\n description:\n 'Invoke an external service action. Optional trailing { emit: { success, failure } } options object attaches closed-circuit emit routing (V2 frame contract).',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'service', type: STRING, description: 'Service name (e.g. \"llm\", \"stripe\")' },\n { name: 'action', type: STRING, description: 'Service action (e.g. \"generate\", \"charge\")' },\n {\n name: 'params',\n type: { kind: 'object', fields: {}, open: true },\n description: 'Service-specific params',\n optional: true,\n },\n {\n name: 'options',\n type: { kind: 'object', fields: {}, open: true },\n description:\n 'Optional trailing options object. Set `{ emit: { success: \"...\", failure: \"...\" } }` to wire closed-circuit result routing (V2 frame).',\n optional: true,\n },\n ],\n example: '[\"call-service\", \"llm\", \"generate\", { \"userPrompt\": \"@entity.inputText\" }, { \"emit\": { \"success\": \"LlmCompleted\", \"failure\": \"LlmFailed\" } }]',\n effect: {\n kind: 'call-service',\n // TODO(entity-v2): narrow to the declared service return type once\n // per-service return shapes live on the orbital services block.\n // Today the emit.success payload is whatever the service adapter returns.\n produces: ANY,\n },\n },\n 'render-ui': {\n module: 'core',\n category: 'effect',\n minArity: 2,\n maxArity: 3,\n description: 'Render a pattern into a UI slot',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'slot', type: UI_SLOT, description: 'Target UI slot (main, sidebar, modal, hud, ...)' },\n {\n name: 'pattern',\n type: {\n kind: 'union',\n of: [\n { kind: 'object', fields: { patternType: PATTERN_TYPE }, open: true },\n { kind: 'literal', value: null as unknown as string },\n ],\n },\n description: 'Pattern config (or null to clear the slot)',\n },\n {\n name: 'props',\n type: { kind: 'object', fields: {}, open: true },\n description: 'Extra props forwarded to the pattern',\n optional: true,\n },\n ],\n example: '[\"render-ui\", \"main\", { \"patternType\": \"entity-table\", \"columns\": [\"name\"] }]',\n effect: { kind: 'render-ui' },\n },\n};\n\n/**\n * Get all core operator names.\n */\nexport function getCoreOperators(): string[] {\n return Object.keys(CORE_OPERATORS);\n}\n","/**\n * Math Module - Numeric Operations\n *\n * Provides higher-level numeric operations beyond basic arithmetic.\n * Basic arithmetic (+, -, *, /, %) is provided by language primitives.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Math module operators.\n * All operators return numbers and have no side effects.\n */\nexport const MATH_OPERATORS: Record<string, StdOperatorMeta> = {\n 'math/abs': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 1,\n description: 'Absolute value',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'n', type: 'number', description: 'The number' }],\n example: '[\"math/abs\", -5] // => 5',\n },\n 'math/min': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: null,\n description: 'Minimum of values',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: '...nums', type: 'number[]', description: 'Numbers to compare' }],\n example: '[\"math/min\", 3, 1, 4] // => 1',\n },\n 'math/max': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: null,\n description: 'Maximum of values',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: '...nums', type: 'number[]', description: 'Numbers to compare' }],\n example: '[\"math/max\", 3, 1, 4] // => 4',\n },\n 'math/clamp': {\n module: 'math',\n category: 'std-math',\n minArity: 3,\n maxArity: 3,\n description: 'Constrain value to range [min, max]',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'n', type: 'number', description: 'The value to clamp' },\n { name: 'min', type: 'number', description: 'Minimum bound' },\n { name: 'max', type: 'number', description: 'Maximum bound' },\n ],\n example: '[\"math/clamp\", 150, 0, 100] // => 100',\n },\n 'math/floor': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 1,\n description: 'Round down to integer',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'n', type: 'number', description: 'The number' }],\n example: '[\"math/floor\", 3.7] // => 3',\n },\n 'math/ceil': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 1,\n description: 'Round up to integer',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'n', type: 'number', description: 'The number' }],\n example: '[\"math/ceil\", 3.2] // => 4',\n },\n 'math/round': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 2,\n description: 'Round to nearest integer or specified decimals',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'n', type: 'number', description: 'The number' },\n { name: 'decimals', type: 'number', description: 'Decimal places', optional: true, defaultValue: 0 },\n ],\n example: '[\"math/round\", 3.456, 2] // => 3.46',\n },\n 'math/pow': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: 2,\n description: 'Exponentiation (base^exp)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'base', type: 'number', description: 'The base' },\n { name: 'exp', type: 'number', description: 'The exponent' },\n ],\n example: '[\"math/pow\", 2, 8] // => 256',\n },\n 'math/sqrt': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 1,\n description: 'Square root',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'n', type: 'number', description: 'The number' }],\n example: '[\"math/sqrt\", 16] // => 4',\n },\n 'math/mod': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: 2,\n description: 'Modulo (remainder)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: 'number', description: 'Dividend' },\n { name: 'b', type: 'number', description: 'Divisor' },\n ],\n example: '[\"math/mod\", 7, 3] // => 1',\n },\n 'math/sign': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 1,\n description: 'Returns -1, 0, or 1 indicating sign',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'n', type: 'number', description: 'The number' }],\n example: '[\"math/sign\", -42] // => -1',\n },\n 'math/lerp': {\n module: 'math',\n category: 'std-math',\n minArity: 3,\n maxArity: 3,\n description: 'Linear interpolation between a and b by factor t',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: 'number', description: 'Start value' },\n { name: 'b', type: 'number', description: 'End value' },\n { name: 't', type: 'number', description: 'Interpolation factor (0-1)' },\n ],\n example: '[\"math/lerp\", 0, 100, 0.5] // => 50',\n },\n 'math/map': {\n module: 'math',\n category: 'std-math',\n minArity: 5,\n maxArity: 5,\n description: 'Map value from one range to another',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'n', type: 'number', description: 'The value' },\n { name: 'inMin', type: 'number', description: 'Input range minimum' },\n { name: 'inMax', type: 'number', description: 'Input range maximum' },\n { name: 'outMin', type: 'number', description: 'Output range minimum' },\n { name: 'outMax', type: 'number', description: 'Output range maximum' },\n ],\n example: '[\"math/map\", 5, 0, 10, 0, 100] // => 50',\n },\n 'math/random': {\n module: 'math',\n category: 'std-math',\n minArity: 0,\n maxArity: 0,\n description: 'Random number between 0 (inclusive) and 1 (exclusive)',\n hasSideEffects: false,\n returnType: 'number',\n params: [],\n example: '[\"math/random\"] // => 0.7234...',\n },\n 'math/randomInt': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: 2,\n description: 'Random integer in range [min, max] (inclusive)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'min', type: 'number', description: 'Minimum (inclusive)' },\n { name: 'max', type: 'number', description: 'Maximum (inclusive)' },\n ],\n example: '[\"math/randomInt\", 1, 6] // => 4',\n },\n 'math/default': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: 2,\n description: 'Return default if value is null, undefined, or NaN',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'n', type: 'number | null', description: 'The value' },\n { name: 'default', type: 'number', description: 'Default value' },\n ],\n example: '[\"math/default\", null, 0] // => 0',\n },\n};\n\n/**\n * Get all math operator names.\n */\nexport function getMathOperators(): string[] {\n return Object.keys(MATH_OPERATORS);\n}\n","/**\n * String Module - String Operations\n *\n * Provides string manipulation and transformation functions.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * String module operators.\n * All operators return strings (or boolean for checks) and have no side effects.\n */\nexport const STR_OPERATORS: Record<string, StdOperatorMeta> = {\n 'str/len': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'String length',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/len\", \"hello\"] // => 5',\n },\n 'str/concat': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 99,\n description: 'Concatenate strings together',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'strings', type: 'string', description: 'Strings to concatenate' }],\n example: '[\"str/concat\", \"/users/\", \"@entity.id\"] // => \"/users/123\"',\n },\n 'str/upper': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to uppercase',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/upper\", \"hello\"] // => \"HELLO\"',\n },\n 'str/lower': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to lowercase',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/lower\", \"HELLO\"] // => \"hello\"',\n },\n 'str/trim': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Remove leading and trailing whitespace',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/trim\", \" hello \"] // => \"hello\"',\n },\n 'str/trimStart': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Remove leading whitespace',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/trimStart\", \" hello\"] // => \"hello\"',\n },\n 'str/trimEnd': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Remove trailing whitespace',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/trimEnd\", \"hello \"] // => \"hello\"',\n },\n 'str/split': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Split string into array by delimiter',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'delim', type: 'string', description: 'Delimiter' },\n ],\n example: '[\"str/split\", \"a,b,c\", \",\"] // => [\"a\", \"b\", \"c\"]',\n },\n 'str/join': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Join array elements into string',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'arr', type: 'array', description: 'Array to join' },\n { name: 'delim', type: 'string', description: 'Delimiter' },\n ],\n example: '[\"str/join\", [\"a\", \"b\", \"c\"], \", \"] // => \"a, b, c\"',\n },\n 'str/slice': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 3,\n description: 'Extract substring',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'start', type: 'number', description: 'Start index' },\n { name: 'end', type: 'number', description: 'End index (exclusive)', optional: true },\n ],\n example: '[\"str/slice\", \"hello\", 1, 4] // => \"ell\"',\n },\n 'str/replace': {\n module: 'str',\n category: 'std-str',\n minArity: 3,\n maxArity: 3,\n description: 'Replace first occurrence',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'find', type: 'string', description: 'String to find' },\n { name: 'replace', type: 'string', description: 'Replacement' },\n ],\n example: '[\"str/replace\", \"hello world\", \"world\", \"there\"] // => \"hello there\"',\n },\n 'str/replaceAll': {\n module: 'str',\n category: 'std-str',\n minArity: 3,\n maxArity: 3,\n description: 'Replace all occurrences',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'find', type: 'string', description: 'String to find' },\n { name: 'replace', type: 'string', description: 'Replacement' },\n ],\n example: '[\"str/replaceAll\", \"a-b-c\", \"-\", \"_\"] // => \"a_b_c\"',\n },\n 'str/includes': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string contains substring',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'search', type: 'string', description: 'Substring to find' },\n ],\n example: '[\"str/includes\", \"hello world\", \"world\"] // => true',\n },\n 'str/startsWith': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string starts with prefix',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'prefix', type: 'string', description: 'Prefix to check' },\n ],\n example: '[\"str/startsWith\", \"hello\", \"hel\"] // => true',\n },\n 'str/endsWith': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string ends with suffix',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'suffix', type: 'string', description: 'Suffix to check' },\n ],\n example: '[\"str/endsWith\", \"hello\", \"lo\"] // => true',\n },\n 'str/padStart': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 3,\n description: 'Pad string from start to target length',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'len', type: 'number', description: 'Target length' },\n { name: 'char', type: 'string', description: 'Padding character', optional: true, defaultValue: ' ' },\n ],\n example: '[\"str/padStart\", \"5\", 3, \"0\"] // => \"005\"',\n },\n 'str/padEnd': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 3,\n description: 'Pad string from end to target length',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'len', type: 'number', description: 'Target length' },\n { name: 'char', type: 'string', description: 'Padding character', optional: true, defaultValue: ' ' },\n ],\n example: '[\"str/padEnd\", \"5\", 3, \"0\"] // => \"500\"',\n },\n 'str/repeat': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Repeat string n times',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'count', type: 'number', description: 'Repeat count' },\n ],\n example: '[\"str/repeat\", \"ab\", 3] // => \"ababab\"',\n },\n 'str/reverse': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Reverse string',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/reverse\", \"hello\"] // => \"olleh\"',\n },\n 'str/capitalize': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Capitalize first character',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/capitalize\", \"hello\"] // => \"Hello\"',\n },\n 'str/titleCase': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to Title Case',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/titleCase\", \"hello world\"] // => \"Hello World\"',\n },\n 'str/camelCase': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to camelCase',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/camelCase\", \"hello world\"] // => \"helloWorld\"',\n },\n 'str/kebabCase': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to kebab-case',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/kebabCase\", \"Hello World\"] // => \"hello-world\"',\n },\n 'str/snakeCase': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to snake_case',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/snakeCase\", \"Hello World\"] // => \"hello_world\"',\n },\n 'str/default': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Return default if value is null/undefined/empty',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string | null', description: 'The value' },\n { name: 'default', type: 'string', description: 'Default value' },\n ],\n example: '[\"str/default\", null, \"N/A\"] // => \"N/A\"',\n },\n 'str/template': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Variable substitution in template string',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'template', type: 'string', description: 'Template with {placeholders}' },\n { name: 'vars', type: 'object', description: 'Variables to substitute' },\n ],\n example: '[\"str/template\", \"Hello, {name}!\", {\"name\": \"World\"}] // => \"Hello, World!\"',\n },\n 'str/truncate': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 3,\n description: 'Truncate string with optional suffix',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'len', type: 'number', description: 'Maximum length' },\n { name: 'suffix', type: 'string', description: 'Suffix for truncated strings', optional: true, defaultValue: '...' },\n ],\n example: '[\"str/truncate\", \"Hello World\", 8, \"...\"] // => \"Hello...\"',\n },\n};\n\n/**\n * Get all string operator names.\n */\nexport function getStrOperators(): string[] {\n return Object.keys(STR_OPERATORS);\n}\n","/**\n * Array Module - Collection Operations\n *\n * Provides array manipulation and transformation functions.\n * Many functions accept lambda expressions for predicates and transformations.\n *\n * Lambda syntax: [\"fn\", \"varName\", expression] or [\"fn\", [\"a\", \"b\"], expression]\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Array module operators.\n * All operators return arrays (or other values) and have no side effects.\n */\nexport const ARRAY_OPERATORS: Record<string, StdOperatorMeta> = {\n 'array/len': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Array length',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/len\", [1, 2, 3]] // => 3',\n },\n 'array/empty?': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Check if array is empty',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/empty?\", []] // => true',\n },\n 'array/first': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Get first element (element type of input array, may be undefined when empty)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'element-of-arg<0>?',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/first\", [1, 2, 3]] // => 1',\n },\n 'array/last': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Get last element (element type of input array, may be undefined when empty)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'element-of-arg<0>?',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/last\", [1, 2, 3]] // => 3',\n },\n 'array/nth': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Get element at index (element type of input array, may be undefined out-of-bounds)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'element-of-arg<0>?',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'index', type: 'number', description: 'Index (0-based)' },\n ],\n example: '[\"array/nth\", [1, 2, 3], 1] // => 2',\n },\n 'array/slice': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 3,\n description: 'Extract subarray',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'start', type: 'number', description: 'Start index' },\n { name: 'end', type: 'number', description: 'End index (exclusive)', optional: true },\n ],\n example: '[\"array/slice\", [1, 2, 3, 4], 1, 3] // => [2, 3]',\n },\n 'array/concat': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: null,\n description: 'Concatenate arrays',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: '...arrs', type: 'array[]', description: 'Arrays to concatenate' }],\n example: '[\"array/concat\", [1, 2], [3, 4]] // => [1, 2, 3, 4]',\n },\n 'array/append': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Add item to end (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'item', type: 'any', description: 'Item to add' },\n ],\n example: '[\"array/append\", [1, 2], 3] // => [1, 2, 3]',\n },\n 'array/prepend': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Add item to start (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'item', type: 'any', description: 'Item to add' },\n ],\n example: '[\"array/prepend\", [2, 3], 1] // => [1, 2, 3]',\n },\n 'array/insert': {\n module: 'array',\n category: 'std-array',\n minArity: 3,\n maxArity: 3,\n description: 'Insert item at index (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'index', type: 'number', description: 'Index to insert at' },\n { name: 'item', type: 'any', description: 'Item to insert' },\n ],\n example: '[\"array/insert\", [1, 3], 1, 2] // => [1, 2, 3]',\n },\n 'array/remove': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Remove item at index (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'index', type: 'number', description: 'Index to remove' },\n ],\n example: '[\"array/remove\", [1, 2, 3], 1] // => [1, 3]',\n },\n 'array/removeItem': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Remove first matching item (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'item', type: 'any', description: 'Item to remove' },\n ],\n example: '[\"array/removeItem\", [1, 2, 3, 2], 2] // => [1, 3, 2]',\n },\n 'array/reverse': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Reverse array order (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/reverse\", [1, 2, 3]] // => [3, 2, 1]',\n },\n 'array/sort': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 3,\n description: 'Sort array (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to sort by (for objects)', optional: true },\n { name: 'dir', type: 'string', description: '\"asc\" or \"desc\"', optional: true, defaultValue: 'asc' },\n ],\n example: '[\"array/sort\", \"@items\", \"price\", \"desc\"]',\n },\n 'array/shuffle': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Randomly shuffle array (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/shuffle\", [1, 2, 3, 4, 5]]',\n },\n 'array/unique': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Remove duplicates (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/unique\", [1, 2, 2, 3, 1]] // => [1, 2, 3]',\n },\n 'array/flatten': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Flatten nested arrays one level',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/flatten\", [[1, 2], [3, 4]]] // => [1, 2, 3, 4]',\n },\n 'array/zip': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Pair elements from two arrays',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr1', type: 'array', description: 'First array' },\n { name: 'arr2', type: 'array', description: 'Second array' },\n ],\n example: '[\"array/zip\", [1, 2], [\"a\", \"b\"]] // => [[1, \"a\"], [2, \"b\"]]',\n },\n 'array/includes': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Check if array contains item',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'item', type: 'any', description: 'Item to find' },\n ],\n example: '[\"array/includes\", [1, 2, 3], 2] // => true',\n },\n 'array/indexOf': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Find index of item (-1 if not found)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'item', type: 'any', description: 'Item to find' },\n ],\n example: '[\"array/indexOf\", [1, 2, 3], 2] // => 1',\n },\n 'array/find': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Find first element matching predicate (element type of input array, undefined when no match)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'element-of-arg<0>?',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/find\", \"@items\", [\"fn\", \"x\", [\"=\", \"@x.status\", \"active\"]]]',\n },\n 'array/findIndex': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Find index of first element matching predicate (-1 if none)',\n hasSideEffects: false,\n returnType: 'number',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/findIndex\", \"@items\", [\"fn\", \"x\", [\"=\", \"@x.status\", \"active\"]]]',\n },\n 'array/filter': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Keep elements matching predicate (returns same array element type as input)',\n hasSideEffects: false,\n returnType: 'array',\n returnSemantics: 'identity-of-arg<0>',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/filter\", \"@items\", [\"fn\", \"x\", [\">\", \"@x.price\", 100]]]',\n },\n 'array/reject': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Remove elements matching predicate (returns same array element type as input)',\n hasSideEffects: false,\n returnType: 'array',\n returnSemantics: 'identity-of-arg<0>',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/reject\", \"@items\", [\"fn\", \"x\", [\"=\", \"@x.status\", \"deleted\"]]]',\n },\n 'array/map': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Transform each element (return type wraps the lambda result in an array)',\n hasSideEffects: false,\n returnType: 'array',\n returnSemantics: 'lambda-result',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'fn', type: 'lambda', description: 'Transform function' },\n ],\n example: '[\"array/map\", \"@items\", [\"fn\", \"x\", [\"*\", \"@x.price\", 1.1]]]',\n },\n 'array/reduce': {\n module: 'array',\n category: 'std-array',\n minArity: 3,\n maxArity: 3,\n description: 'Reduce array to single value (return type matches the lambda result / init type)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'lambda-result',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'fn', type: 'lambda', description: 'Reducer function (acc, item) => newAcc' },\n { name: 'init', type: 'any', description: 'Initial accumulator value' },\n ],\n example: '[\"array/reduce\", \"@items\", [\"fn\", [\"acc\", \"x\"], [\"+\", \"@acc\", \"@x.price\"]], 0]',\n },\n 'array/every': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Check if all elements match predicate',\n hasSideEffects: false,\n returnType: 'boolean',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/every\", \"@items\", [\"fn\", \"x\", [\">\", \"@x.price\", 0]]]',\n },\n 'array/some': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Check if any element matches predicate',\n hasSideEffects: false,\n returnType: 'boolean',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/some\", \"@items\", [\"fn\", \"x\", [\"=\", \"@x.status\", \"active\"]]]',\n },\n 'array/count': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 2,\n description: 'Count elements (optionally matching predicate)',\n hasSideEffects: false,\n returnType: 'number',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function', optional: true },\n ],\n example: '[\"array/count\", \"@tasks\", [\"fn\", \"t\", [\"=\", \"@t.status\", \"done\"]]]',\n },\n 'array/sum': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 2,\n description: 'Sum values (optionally by field)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to sum', optional: true },\n ],\n example: '[\"array/sum\", \"@cart.items\", \"price\"]',\n },\n 'array/avg': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 2,\n description: 'Average of values (optionally by field)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to average', optional: true },\n ],\n example: '[\"array/avg\", \"@ratings\", \"score\"]',\n },\n 'array/min': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 2,\n description: 'Minimum value (optionally by field)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to compare', optional: true },\n ],\n example: '[\"array/min\", \"@products\", \"price\"]',\n },\n 'array/max': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 2,\n description: 'Maximum value (optionally by field)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to compare', optional: true },\n ],\n example: '[\"array/max\", \"@products\", \"price\"]',\n },\n 'array/groupBy': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Group elements by field value',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to group by' },\n ],\n example: '[\"array/groupBy\", \"@orders\", \"status\"]',\n },\n 'array/partition': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Split array by predicate into [matches, nonMatches]',\n hasSideEffects: false,\n returnType: 'array',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/partition\", \"@items\", [\"fn\", \"x\", [\">\", \"@x.price\", 50]]]',\n },\n 'array/take': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Take first n elements',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'n', type: 'number', description: 'Number of elements' },\n ],\n example: '[\"array/take\", \"@items\", 5]',\n },\n 'array/drop': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Skip first n elements',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'n', type: 'number', description: 'Number of elements to skip' },\n ],\n example: '[\"array/drop\", \"@items\", 5]',\n },\n 'array/takeLast': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Take last n elements',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'n', type: 'number', description: 'Number of elements' },\n ],\n example: '[\"array/takeLast\", \"@items\", 3]',\n },\n 'array/dropLast': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Skip last n elements',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'n', type: 'number', description: 'Number of elements to skip' },\n ],\n example: '[\"array/dropLast\", \"@items\", 2]',\n },\n};\n\n/**\n * Get all array operator names.\n */\nexport function getArrayOperators(): string[] {\n return Object.keys(ARRAY_OPERATORS);\n}\n\n/**\n * Get all array operators that accept lambda expressions.\n */\nexport function getLambdaArrayOperators(): string[] {\n return Object.entries(ARRAY_OPERATORS)\n .filter(([, meta]) => meta.acceptsLambda)\n .map(([name]) => name);\n}\n","/**\n * Object Module - Object Operations\n *\n * Provides object manipulation and transformation functions.\n * All operations are immutable (return new objects).\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Object module operators.\n * All operators return objects or other values and have no side effects.\n */\nexport const OBJECT_OPERATORS: Record<string, StdOperatorMeta> = {\n 'object/keys': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Get object keys as array',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/keys\", {\"a\": 1, \"b\": 2}] // => [\"a\", \"b\"]',\n },\n 'object/values': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Get object values as array',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/values\", {\"a\": 1, \"b\": 2}] // => [1, 2]',\n },\n 'object/entries': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Get [key, value] pairs as array',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/entries\", {\"a\": 1}] // => [[\"a\", 1]]',\n },\n 'object/fromEntries': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Create object from [key, value] pairs',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: 'entries', type: 'array', description: 'Array of [key, value] pairs' }],\n example: '[\"object/fromEntries\", [[\"a\", 1], [\"b\", 2]]] // => {\"a\": 1, \"b\": 2}',\n },\n 'object/get': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 3,\n description: 'Get nested value by path (return type derived from input object shape and key)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'object-key-lookup',\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'path', type: 'string', description: 'Dot-separated path (e.g., \"user.name\")' },\n { name: 'default', type: 'any', description: 'Default if path not found', optional: true },\n ],\n example: '[\"object/get\", \"@user\", \"profile.name\", \"Anonymous\"]',\n },\n 'object/set': {\n module: 'object',\n category: 'std-object',\n minArity: 3,\n maxArity: 3,\n description: 'Set nested value by path (returns new object)',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'path', type: 'string', description: 'Dot-separated path' },\n { name: 'value', type: 'any', description: 'Value to set' },\n ],\n example: '[\"object/set\", \"@user\", \"profile.name\", \"John\"]',\n },\n 'object/has': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Check if path exists',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'path', type: 'string', description: 'Dot-separated path' },\n ],\n example: '[\"object/has\", \"@user\", \"profile.name\"]',\n },\n 'object/merge': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: null,\n description: 'Shallow merge objects (later wins)',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: '...objs', type: 'object[]', description: 'Objects to merge' }],\n example: '[\"object/merge\", {\"a\": 1}, {\"b\": 2}] // => {\"a\": 1, \"b\": 2}',\n },\n 'object/deepMerge': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: null,\n description: 'Deep merge objects (later wins)',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: '...objs', type: 'object[]', description: 'Objects to merge' }],\n example: '[\"object/deepMerge\", {\"a\": {\"b\": 1}}, {\"a\": {\"c\": 2}}]',\n },\n 'object/pick': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Select only specified keys (return type is subset of input object shape)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'object-key-lookup',\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'keys', type: 'array', description: 'Keys to keep' },\n ],\n example: '[\"object/pick\", \"@entity\", [\"name\", \"email\"]]',\n },\n 'object/omit': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Exclude specified keys',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'keys', type: 'array', description: 'Keys to exclude' },\n ],\n example: '[\"object/omit\", \"@entity\", [\"password\", \"secret\"]]',\n },\n 'object/mapValues': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Transform all values',\n hasSideEffects: false,\n returnType: 'any',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'fn', type: 'lambda', description: 'Transform function' },\n ],\n example: '[\"object/mapValues\", \"@stats\", [\"fn\", \"v\", [\"*\", \"@v\", 100]]]',\n },\n 'object/mapKeys': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Transform all keys',\n hasSideEffects: false,\n returnType: 'any',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'fn', type: 'lambda', description: 'Transform function' },\n ],\n example: '[\"object/mapKeys\", \"@data\", [\"fn\", \"k\", [\"str/upper\", \"@k\"]]]',\n },\n 'object/filter': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Filter entries by predicate',\n hasSideEffects: false,\n returnType: 'any',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'pred', type: 'lambda', description: 'Predicate (key, value) => boolean' },\n ],\n example: '[\"object/filter\", \"@data\", [\"fn\", [\"k\", \"v\"], [\"!=\", \"@v\", null]]]',\n },\n 'object/empty?': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Check if object has no keys',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/empty?\", {}] // => true',\n },\n 'object/equals': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Deep equality check',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: 'object', description: 'First object' },\n { name: 'b', type: 'object', description: 'Second object' },\n ],\n example: '[\"object/equals\", {\"a\": 1}, {\"a\": 1}] // => true',\n },\n 'object/clone': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Shallow clone object',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/clone\", \"@entity\"]',\n },\n 'object/deepClone': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Deep clone object',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/deepClone\", \"@entity\"]',\n },\n 'path': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: null, // variadic\n description: 'Build a dot-separated path string from segments. Used with set effect for dynamic field paths.',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: '...segments', type: 'string[]', description: 'Path segments to join with dots' },\n ],\n example: '[\"path\", \"formValues\", \"@payload.fieldId\"] // => \"formValues.customerName\"',\n },\n};\n\n/**\n * Get all object operator names.\n */\nexport function getObjectOperators(): string[] {\n return Object.keys(OBJECT_OPERATORS);\n}\n","/**\n * Time Module - Date and Time Operations\n *\n * Provides date manipulation, formatting, and comparison functions.\n *\n * Time units: 'year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'ms'\n * Format tokens: 'YYYY', 'MM', 'DD', 'HH', 'mm', 'ss', 'ddd', 'MMM'\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Time module operators.\n * All operators work with dates/timestamps and have no side effects.\n */\nexport const TIME_OPERATORS: Record<string, StdOperatorMeta> = {\n 'time/now': {\n module: 'time',\n category: 'std-time',\n minArity: 0,\n maxArity: 0,\n description: 'Current timestamp',\n hasSideEffects: false,\n returnType: 'number',\n params: [],\n example: '[\"time/now\"] // => 1705593600000',\n },\n 'time/today': {\n module: 'time',\n category: 'std-time',\n minArity: 0,\n maxArity: 0,\n description: 'Today at midnight (local time)',\n hasSideEffects: false,\n returnType: 'number',\n params: [],\n example: '[\"time/today\"]',\n },\n 'time/parse': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 2,\n description: 'Parse string to timestamp',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'str', type: 'string', description: 'Date string' },\n { name: 'format', type: 'string', description: 'Format pattern', optional: true },\n ],\n example: '[\"time/parse\", \"2024-01-18\", \"YYYY-MM-DD\"]',\n },\n 'time/format': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 2,\n description: 'Format timestamp to string',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp' },\n { name: 'format', type: 'string', description: 'Format pattern' },\n ],\n example: '[\"time/format\", \"@entity.createdAt\", \"MMM DD, YYYY\"]',\n },\n 'time/year': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get year from timestamp',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/year\", \"@entity.createdAt\"] // => 2024',\n },\n 'time/month': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get month from timestamp (1-12)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/month\", \"@entity.createdAt\"] // => 1',\n },\n 'time/day': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get day of month from timestamp (1-31)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/day\", \"@entity.createdAt\"] // => 18',\n },\n 'time/weekday': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get day of week (0=Sunday, 6=Saturday)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/weekday\", \"@entity.createdAt\"] // => 4 (Thursday)',\n },\n 'time/hour': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get hour from timestamp (0-23)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/hour\", \"@entity.createdAt\"] // => 14',\n },\n 'time/minute': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get minute from timestamp (0-59)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/minute\", \"@entity.createdAt\"] // => 30',\n },\n 'time/second': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get second from timestamp (0-59)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/second\", \"@entity.createdAt\"] // => 45',\n },\n 'time/add': {\n module: 'time',\n category: 'std-time',\n minArity: 3,\n maxArity: 3,\n description: 'Add time to timestamp',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp' },\n { name: 'amount', type: 'number', description: 'Amount to add' },\n { name: 'unit', type: 'string', description: 'Time unit (year/month/week/day/hour/minute/second/ms)' },\n ],\n example: '[\"time/add\", [\"time/now\"], 7, \"day\"]',\n },\n 'time/subtract': {\n module: 'time',\n category: 'std-time',\n minArity: 3,\n maxArity: 3,\n description: 'Subtract time from timestamp',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp' },\n { name: 'amount', type: 'number', description: 'Amount to subtract' },\n { name: 'unit', type: 'string', description: 'Time unit' },\n ],\n example: '[\"time/subtract\", [\"time/now\"], 1, \"hour\"]',\n },\n 'time/diff': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 3,\n description: 'Difference between timestamps',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: 'number', description: 'First timestamp' },\n { name: 'b', type: 'number', description: 'Second timestamp' },\n { name: 'unit', type: 'string', description: 'Result unit', optional: true, defaultValue: 'ms' },\n ],\n example: '[\"time/diff\", \"@entity.birthDate\", [\"time/now\"], \"year\"]',\n },\n 'time/startOf': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 2,\n description: 'Get start of time period',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp' },\n { name: 'unit', type: 'string', description: 'Time unit (year/month/week/day/hour/minute)' },\n ],\n example: '[\"time/startOf\", [\"time/now\"], \"month\"]',\n },\n 'time/endOf': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 2,\n description: 'Get end of time period',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp' },\n { name: 'unit', type: 'string', description: 'Time unit' },\n ],\n example: '[\"time/endOf\", [\"time/now\"], \"month\"]',\n },\n 'time/isBefore': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 2,\n description: 'Check if a is before b',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: 'number', description: 'First timestamp' },\n { name: 'b', type: 'number', description: 'Second timestamp' },\n ],\n example: '[\"time/isBefore\", \"@entity.startDate\", \"@entity.endDate\"]',\n },\n 'time/isAfter': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 2,\n description: 'Check if a is after b',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: 'number', description: 'First timestamp' },\n { name: 'b', type: 'number', description: 'Second timestamp' },\n ],\n example: '[\"time/isAfter\", [\"time/now\"], \"@entity.deadline\"]',\n },\n 'time/isBetween': {\n module: 'time',\n category: 'std-time',\n minArity: 3,\n maxArity: 3,\n description: 'Check if date is between start and end',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp to check' },\n { name: 'start', type: 'number', description: 'Range start' },\n { name: 'end', type: 'number', description: 'Range end' },\n ],\n example: '[\"time/isBetween\", [\"time/now\"], \"@entity.startDate\", \"@entity.endDate\"]',\n },\n 'time/isSame': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 3,\n description: 'Check if timestamps are same (optionally by unit)',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: 'number', description: 'First timestamp' },\n { name: 'b', type: 'number', description: 'Second timestamp' },\n { name: 'unit', type: 'string', description: 'Comparison unit', optional: true },\n ],\n example: '[\"time/isSame\", \"@a\", \"@b\", \"day\"]',\n },\n 'time/isPast': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Check if timestamp is in the past',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/isPast\", \"@entity.expiresAt\"]',\n },\n 'time/isFuture': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Check if timestamp is in the future',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/isFuture\", \"@entity.scheduledAt\"]',\n },\n 'time/isToday': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Check if timestamp is today',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/isToday\", \"@entity.createdAt\"]',\n },\n 'time/relative': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Format as relative time (\"2 hours ago\", \"in 3 days\")',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/relative\", \"@entity.lastActivityAt\"] // => \"2 hours ago\"',\n },\n 'time/duration': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Format milliseconds as duration (\"2h 30m\")',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'ms', type: 'number', description: 'Duration in milliseconds' }],\n example: '[\"time/duration\", 9000000] // => \"2h 30m\"',\n },\n};\n\n/**\n * Get all time operator names.\n */\nexport function getTimeOperators(): string[] {\n return Object.keys(TIME_OPERATORS);\n}\n","/**\n * Validate Module - Input Validation\n *\n * Provides validation functions for form inputs and data.\n * Returns true/false for single validations.\n * validate/check returns { valid: boolean, errors: [...] } for multiple rules.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Validate module operators.\n * All operators return boolean or validation result objects and have no side effects.\n */\nexport const VALIDATE_OPERATORS: Record<string, StdOperatorMeta> = {\n 'validate/required': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is not null, undefined, or empty string',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/required\", \"@payload.name\"]',\n },\n 'validate/string': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a string',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/string\", \"@payload.name\"]',\n },\n 'validate/number': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a number',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/number\", \"@payload.age\"]',\n },\n 'validate/boolean': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a boolean',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/boolean\", \"@payload.active\"]',\n },\n 'validate/array': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is an array',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/array\", \"@payload.items\"]',\n },\n 'validate/object': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is an object',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/object\", \"@payload.data\"]',\n },\n 'validate/email': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid email format',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'string', description: 'Email to validate' }],\n example: '[\"validate/email\", \"@payload.email\"]',\n },\n 'validate/url': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid URL format',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'string', description: 'URL to validate' }],\n example: '[\"validate/url\", \"@payload.website\"]',\n },\n 'validate/uuid': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid UUID',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'string', description: 'UUID to validate' }],\n example: '[\"validate/uuid\", \"@payload.id\"]',\n },\n 'validate/phone': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid phone number',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'string', description: 'Phone number to validate' }],\n example: '[\"validate/phone\", \"@payload.phone\"]',\n },\n 'validate/creditCard': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid credit card number (Luhn algorithm)',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'string', description: 'Card number to validate' }],\n example: '[\"validate/creditCard\", \"@payload.cardNumber\"]',\n },\n 'validate/date': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid date',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/date\", \"@payload.birthDate\"]',\n },\n 'validate/minLength': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string/array has minimum length',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'string | array', description: 'Value to check' },\n { name: 'min', type: 'number', description: 'Minimum length' },\n ],\n example: '[\"validate/minLength\", \"@payload.password\", 8]',\n },\n 'validate/maxLength': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string/array has maximum length',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'string | array', description: 'Value to check' },\n { name: 'max', type: 'number', description: 'Maximum length' },\n ],\n example: '[\"validate/maxLength\", \"@payload.name\", 50]',\n },\n 'validate/length': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string/array has exact length',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'string | array', description: 'Value to check' },\n { name: 'exact', type: 'number', description: 'Required length' },\n ],\n example: '[\"validate/length\", \"@payload.code\", 6]',\n },\n 'validate/min': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if number is >= minimum',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'number', description: 'Number to check' },\n { name: 'min', type: 'number', description: 'Minimum value' },\n ],\n example: '[\"validate/min\", \"@payload.age\", 18]',\n },\n 'validate/max': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if number is <= maximum',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'number', description: 'Number to check' },\n { name: 'max', type: 'number', description: 'Maximum value' },\n ],\n example: '[\"validate/max\", \"@payload.quantity\", 100]',\n },\n 'validate/range': {\n module: 'validate',\n category: 'std-validate',\n minArity: 3,\n maxArity: 3,\n description: 'Check if number is within range [min, max]',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'number', description: 'Number to check' },\n { name: 'min', type: 'number', description: 'Minimum value' },\n { name: 'max', type: 'number', description: 'Maximum value' },\n ],\n example: '[\"validate/range\", \"@payload.rating\", 1, 5]',\n },\n 'validate/pattern': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string matches regex pattern',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'string', description: 'String to check' },\n { name: 'regex', type: 'string', description: 'Regex pattern' },\n ],\n example: '[\"validate/pattern\", \"@payload.code\", \"^[A-Z]{3}[0-9]{3}$\"]',\n },\n 'validate/oneOf': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if value is in list of allowed values',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'any', description: 'Value to check' },\n { name: 'options', type: 'array', description: 'Allowed values' },\n ],\n example: '[\"validate/oneOf\", \"@payload.role\", [\"admin\", \"user\", \"guest\"]]',\n },\n 'validate/noneOf': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if value is not in list of disallowed values',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'any', description: 'Value to check' },\n { name: 'options', type: 'array', description: 'Disallowed values' },\n ],\n example: '[\"validate/noneOf\", \"@payload.username\", [\"admin\", \"root\", \"system\"]]',\n },\n 'validate/equals': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Deep equality check',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: 'any', description: 'First value' },\n { name: 'b', type: 'any', description: 'Second value' },\n ],\n example: '[\"validate/equals\", \"@payload.password\", \"@payload.confirmPassword\"]',\n },\n 'validate/check': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Run multiple validation rules, return { valid, errors }',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n { name: 'value', type: 'any', description: 'Value or object to validate' },\n { name: 'rules', type: 'object', description: 'Validation rules by field' },\n ],\n example: `[\"validate/check\", \"@payload.data\", {\n \"name\": [[\"required\"], [\"minLength\", 2], [\"maxLength\", 50]],\n \"email\": [[\"required\"], [\"email\"]],\n \"age\": [[\"number\"], [\"min\", 18]]\n}]`,\n },\n};\n\n/**\n * Get all validate operator names.\n */\nexport function getValidateOperators(): string[] {\n return Object.keys(VALIDATE_OPERATORS);\n}\n","/**\n * Format Module - Display Formatting\n *\n * Provides formatting functions for numbers, currencies, and display values.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Format module operators.\n * All operators return formatted strings and have no side effects.\n */\nexport const FORMAT_OPERATORS: Record<string, StdOperatorMeta> = {\n 'format/number': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 2,\n description: 'Format number with locale-aware separators',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'n', type: 'number', description: 'Number to format' },\n { name: 'opts', type: 'object', description: 'Format options (decimals, locale)', optional: true },\n ],\n example: '[\"format/number\", 1234567.89] // => \"1,234,567.89\"',\n },\n 'format/currency': {\n module: 'format',\n category: 'std-format',\n minArity: 2,\n maxArity: 3,\n description: 'Format as currency',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'n', type: 'number', description: 'Amount' },\n { name: 'currency', type: 'string', description: 'Currency code (USD, EUR, etc.)' },\n { name: 'locale', type: 'string', description: 'Locale', optional: true, defaultValue: 'en-US' },\n ],\n example: '[\"format/currency\", 1234.56, \"USD\"] // => \"$1,234.56\"',\n },\n 'format/percent': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 2,\n description: 'Format as percentage',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'n', type: 'number', description: 'Number (0.5 = 50%)' },\n { name: 'decimals', type: 'number', description: 'Decimal places', optional: true, defaultValue: 0 },\n ],\n example: '[\"format/percent\", 0.856, 1] // => \"85.6%\"',\n },\n 'format/bytes': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 1,\n description: 'Format bytes as human-readable size',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'n', type: 'number', description: 'Bytes' }],\n example: '[\"format/bytes\", 2500000] // => \"2.4 MB\"',\n },\n 'format/ordinal': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 1,\n description: 'Format number as ordinal (1st, 2nd, 3rd)',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'n', type: 'number', description: 'Number' }],\n example: '[\"format/ordinal\", 42] // => \"42nd\"',\n },\n 'format/plural': {\n module: 'format',\n category: 'std-format',\n minArity: 3,\n maxArity: 3,\n description: 'Format count with singular/plural word',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'n', type: 'number', description: 'Count' },\n { name: 'singular', type: 'string', description: 'Singular form' },\n { name: 'plural', type: 'string', description: 'Plural form' },\n ],\n example: '[\"format/plural\", 5, \"item\", \"items\"] // => \"5 items\"',\n },\n 'format/list': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 2,\n description: 'Format array as natural language list',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'arr', type: 'array', description: 'Array of strings' },\n { name: 'style', type: 'string', description: '\"and\" or \"or\"', optional: true, defaultValue: 'and' },\n ],\n example: '[\"format/list\", [\"Alice\", \"Bob\", \"Charlie\"], \"and\"] // => \"Alice, Bob, and Charlie\"',\n },\n 'format/phone': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 2,\n description: 'Format phone number',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'str', type: 'string', description: 'Phone number digits' },\n { name: 'format', type: 'string', description: 'Format pattern', optional: true, defaultValue: 'US' },\n ],\n example: '[\"format/phone\", \"5551234567\"] // => \"(555) 123-4567\"',\n },\n 'format/creditCard': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 1,\n description: 'Format credit card with masked digits',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'str', type: 'string', description: 'Card number' }],\n example: '[\"format/creditCard\", \"4111111111111234\"] // => \"•••• •••• •••• 1234\"',\n },\n};\n\n/**\n * Get all format operator names.\n */\nexport function getFormatOperators(): string[] {\n return Object.keys(FORMAT_OPERATORS);\n}\n","/**\n * Async Module - Asynchronous Operations\n *\n * Provides functions for handling async operations, delays, and timing.\n * These operators have side effects as they affect execution timing.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Async module operators.\n * These operators control execution timing and have side effects.\n */\nexport const ASYNC_OPERATORS: Record<string, StdOperatorMeta> = {\n 'async/delay': {\n module: 'async',\n category: 'std-async',\n minArity: 1,\n maxArity: 2,\n description: 'Wait for specified milliseconds, optionally execute an effect after',\n hasSideEffects: true,\n returnType: 'any',\n params: [\n { name: 'ms', type: 'number', description: 'Milliseconds to wait' },\n { name: 'effect', type: 'expression', description: 'Optional effect to execute after delay' },\n ],\n example: '[\"async/delay\", 2000, [\"emit\", \"RETRY\"]] // Wait 2s then emit',\n },\n 'async/interval': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: 2,\n description: 'Execute an effect periodically at a fixed interval',\n hasSideEffects: true,\n returnType: 'string',\n params: [\n { name: 'ms', type: 'number', description: 'Interval in milliseconds' },\n { name: 'effect', type: 'expression', description: 'Effect to execute each interval' },\n ],\n example: '[\"async/interval\", 5000, [\"emit\", \"POLL_TICK\"]] // Emit every 5s',\n },\n 'async/timeout': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: 2,\n description: 'Add timeout to an effect',\n hasSideEffects: true,\n returnType: 'any',\n params: [\n { name: 'effect', type: 'expression', description: 'Effect to execute' },\n { name: 'ms', type: 'number', description: 'Timeout in milliseconds' },\n ],\n example: '[\"async/timeout\", [\"call\", \"api\", \"fetchData\"], 5000]',\n },\n 'async/debounce': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: 2,\n description: 'Debounce an event (wait for pause in events)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'event', type: 'string', description: 'Event name to emit' },\n { name: 'ms', type: 'number', description: 'Debounce delay in milliseconds' },\n ],\n example: '[\"async/debounce\", \"SEARCH\", 300]',\n },\n 'async/throttle': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: 2,\n description: 'Throttle an event (emit at most once per interval)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'event', type: 'string', description: 'Event name to emit' },\n { name: 'ms', type: 'number', description: 'Throttle interval in milliseconds' },\n ],\n example: '[\"async/throttle\", \"SCROLL\", 100]',\n },\n 'async/retry': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: 2,\n description: 'Retry an effect with configurable backoff',\n hasSideEffects: true,\n returnType: 'any',\n params: [\n { name: 'effect', type: 'expression', description: 'Effect to retry' },\n { name: 'opts', type: 'object', description: '{ attempts, backoff, baseDelay }' },\n ],\n example: `[\"async/retry\",\n [\"call\", \"api\", \"fetchData\", { \"id\": \"@entity.id\" }],\n { \"attempts\": 3, \"backoff\": \"exponential\", \"baseDelay\": 1000 }]`,\n },\n 'async/race': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: null,\n description: 'Execute effects in parallel, return first to complete',\n hasSideEffects: true,\n returnType: 'any',\n params: [{ name: '...effects', type: 'expression[]', description: 'Effects to race' }],\n example: '[\"async/race\", [\"call\", \"api1\"], [\"call\", \"api2\"]]',\n },\n 'async/all': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: null,\n description: 'Execute effects in parallel, wait for all to complete',\n hasSideEffects: true,\n returnType: 'array',\n params: [{ name: '...effects', type: 'expression[]', description: 'Effects to execute' }],\n example: '[\"async/all\", [\"call\", \"api1\"], [\"call\", \"api2\"]]',\n },\n 'async/sequence': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: null,\n description: 'Execute effects in sequence (one after another)',\n hasSideEffects: true,\n returnType: 'array',\n params: [{ name: '...effects', type: 'expression[]', description: 'Effects to execute in order' }],\n example: '[\"async/sequence\", [\"call\", \"validate\"], [\"call\", \"save\"]]',\n },\n};\n\n/**\n * Get all async operator names.\n */\nexport function getAsyncOperators(): string[] {\n return Object.keys(ASYNC_OPERATORS);\n}\n","/**\n * Neural Network Module - Neural Network Operations\n *\n * Provides operators for defining and executing neural networks.\n * Networks are defined as S-expressions and compiled to native code\n * by the Rust compiler for each target backend (PyTorch, TensorFlow, etc.).\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Neural network module operators.\n * These operators define network architecture and forward passes.\n */\nexport const NN_OPERATORS: Record<string, StdOperatorMeta> = {\n 'nn/sequential': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: null,\n description: 'Create a sequential neural network from layers',\n hasSideEffects: false,\n returnType: 'nn/module',\n params: [\n { name: '...layers', type: 'nn/layer[]', description: 'Layers to stack sequentially' },\n ],\n example: '[\"nn/sequential\", [\"nn/linear\", 16, 64], [\"nn/relu\"], [\"nn/linear\", 64, 4]]',\n },\n 'nn/linear': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 2,\n maxArity: 2,\n description: 'Fully connected linear layer (output = input * weights + bias)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [\n { name: 'inFeatures', type: 'number', description: 'Input dimension' },\n { name: 'outFeatures', type: 'number', description: 'Output dimension' },\n ],\n example: '[\"nn/linear\", 16, 64] // 16 inputs -> 64 outputs',\n },\n 'nn/relu': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 0,\n maxArity: 0,\n description: 'ReLU activation function: max(0, x)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [],\n example: '[\"nn/relu\"]',\n },\n 'nn/tanh': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 0,\n maxArity: 0,\n description: 'Tanh activation function: (e^x - e^-x) / (e^x + e^-x)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [],\n example: '[\"nn/tanh\"]',\n },\n 'nn/sigmoid': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 0,\n maxArity: 0,\n description: 'Sigmoid activation function: 1 / (1 + e^-x)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [],\n example: '[\"nn/sigmoid\"]',\n },\n 'nn/softmax': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 0,\n maxArity: 1,\n description: 'Softmax activation function (normalizes to probability distribution)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [\n { name: 'dim', type: 'number', description: 'Dimension to apply softmax', optional: true, defaultValue: -1 },\n ],\n example: '[\"nn/softmax\"]',\n },\n 'nn/dropout': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 0,\n maxArity: 1,\n description: 'Dropout layer for regularization (randomly zeros elements during training)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [\n { name: 'p', type: 'number', description: 'Dropout probability', optional: true, defaultValue: 0.5 },\n ],\n example: '[\"nn/dropout\", 0.3] // 30% dropout',\n },\n 'nn/batchnorm': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: 1,\n description: 'Batch normalization layer',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [\n { name: 'numFeatures', type: 'number', description: 'Number of features to normalize' },\n ],\n example: '[\"nn/batchnorm\", 64]',\n },\n 'nn/layernorm': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: 1,\n description: 'Layer normalization',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [\n { name: 'normalizedShape', type: 'number | number[]', description: 'Shape to normalize over' },\n ],\n example: '[\"nn/layernorm\", 64]',\n },\n 'nn/forward': {\n module: 'nn',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Execute forward pass through network',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network module' },\n { name: 'input', type: 'tensor', description: 'Input tensor' },\n ],\n example: '[\"nn/forward\", \"@entity.architecture\", \"@entity.sensors\"]',\n },\n 'nn/getWeights': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: 1,\n description: 'Get network weights as a flat tensor',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network module' },\n ],\n example: '[\"nn/getWeights\", \"@entity.architecture\"]',\n },\n 'nn/setWeights': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 2,\n maxArity: 2,\n description: 'Set network weights from a flat tensor',\n hasSideEffects: true,\n returnType: 'nn/module',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network module' },\n { name: 'weights', type: 'tensor', description: 'New weights as flat tensor' },\n ],\n example: '[\"nn/setWeights\", \"@entity.architecture\", \"@payload.newWeights\"]',\n },\n 'nn/paramCount': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: 1,\n description: 'Get total number of trainable parameters',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network module' },\n ],\n example: '[\"nn/paramCount\", \"@entity.architecture\"] // => 3300',\n },\n 'nn/clone': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: 1,\n description: 'Create a deep copy of the network with same weights',\n hasSideEffects: false,\n returnType: 'nn/module',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network module to clone' },\n ],\n example: '[\"nn/clone\", \"@entity.architecture\"]',\n },\n};\n\n/**\n * Get all nn operator names.\n */\nexport function getNnOperators(): string[] {\n return Object.keys(NN_OPERATORS);\n}\n","/**\n * Tensor Module - Tensor Operations\n *\n * Provides operators for creating and manipulating tensors.\n * Tensors are multi-dimensional arrays used for neural network inputs/outputs.\n * Compiled to native tensor libraries (PyTorch, NumPy, etc.) by the Rust compiler.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Tensor module operators.\n * These operators create and manipulate tensors.\n */\nexport const TENSOR_OPERATORS: Record<string, StdOperatorMeta> = {\n // ============================================================================\n // Creation\n // ============================================================================\n\n 'tensor/from': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Create tensor from array',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'data', type: 'array', description: 'Array of numbers (can be nested for multi-dimensional)' },\n ],\n example: '[\"tensor/from\", [1.0, 2.0, 3.0]]',\n },\n 'tensor/zeros': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Create tensor filled with zeros',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'shape', type: 'number[]', description: 'Shape of the tensor' },\n ],\n example: '[\"tensor/zeros\", [3, 4]] // 3x4 tensor of zeros',\n },\n 'tensor/ones': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Create tensor filled with ones',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'shape', type: 'number[]', description: 'Shape of the tensor' },\n ],\n example: '[\"tensor/ones\", [3, 4]] // 3x4 tensor of ones',\n },\n 'tensor/rand': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Create tensor with random values in [0, 1)',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'shape', type: 'number[]', description: 'Shape of the tensor' },\n ],\n example: '[\"tensor/rand\", [16]] // Random 16-element vector',\n },\n 'tensor/randn': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Create tensor with random values from standard normal distribution',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'shape', type: 'number[]', description: 'Shape of the tensor' },\n ],\n example: '[\"tensor/randn\", [16]] // Random normal 16-element vector',\n },\n\n // ============================================================================\n // Shape & Indexing\n // ============================================================================\n\n 'tensor/shape': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Get tensor shape as array',\n hasSideEffects: false,\n returnType: 'number[]',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n ],\n example: '[\"tensor/shape\", \"@entity.sensors\"] // => [16]',\n },\n 'tensor/get': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Get element at index',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'index', type: 'number | number[]', description: 'Index (single for 1D, array for multi-D)' },\n ],\n example: '[\"tensor/get\", \"@entity.output\", 3] // Get 4th element',\n },\n 'tensor/slice': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 3,\n maxArity: 3,\n description: 'Get slice of tensor',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'start', type: 'number', description: 'Start index' },\n { name: 'end', type: 'number', description: 'End index (exclusive)' },\n ],\n example: '[\"tensor/slice\", \"@entity.output\", 0, 3] // First 3 elements',\n },\n 'tensor/reshape': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Reshape tensor to new shape (total elements must match)',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'shape', type: 'number[]', description: 'New shape' },\n ],\n example: '[\"tensor/reshape\", \"@entity.data\", [4, 4]] // Reshape to 4x4',\n },\n 'tensor/flatten': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Flatten tensor to 1D',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n ],\n example: '[\"tensor/flatten\", \"@entity.data\"]',\n },\n\n // ============================================================================\n // Math Operations\n // ============================================================================\n\n 'tensor/add': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Element-wise addition',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'a', type: 'tensor', description: 'First tensor' },\n { name: 'b', type: 'tensor | number', description: 'Second tensor or scalar' },\n ],\n example: '[\"tensor/add\", \"@entity.a\", \"@entity.b\"]',\n },\n 'tensor/sub': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Element-wise subtraction',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'a', type: 'tensor', description: 'First tensor' },\n { name: 'b', type: 'tensor | number', description: 'Second tensor or scalar' },\n ],\n example: '[\"tensor/sub\", \"@entity.a\", \"@entity.b\"]',\n },\n 'tensor/mul': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Element-wise multiplication',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'a', type: 'tensor', description: 'First tensor' },\n { name: 'b', type: 'tensor | number', description: 'Second tensor or scalar' },\n ],\n example: '[\"tensor/mul\", \"@entity.weights\", 0.99] // Decay weights',\n },\n 'tensor/div': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Element-wise division',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'a', type: 'tensor', description: 'First tensor' },\n { name: 'b', type: 'tensor | number', description: 'Second tensor or scalar' },\n ],\n example: '[\"tensor/div\", \"@entity.gradient\", \"@entity.batchSize\"]',\n },\n 'tensor/matmul': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Matrix multiplication',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'a', type: 'tensor', description: 'First tensor (NxM)' },\n { name: 'b', type: 'tensor', description: 'Second tensor (MxK)' },\n ],\n example: '[\"tensor/matmul\", \"@entity.input\", \"@entity.weights\"]',\n },\n 'tensor/dot': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Dot product of two 1D tensors',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: 'tensor', description: 'First vector' },\n { name: 'b', type: 'tensor', description: 'Second vector' },\n ],\n example: '[\"tensor/dot\", \"@entity.a\", \"@entity.b\"]',\n },\n\n // ============================================================================\n // Reductions\n // ============================================================================\n\n 'tensor/sum': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'Sum of tensor elements',\n hasSideEffects: false,\n returnType: 'number | tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'dim', type: 'number', description: 'Dimension to reduce', optional: true },\n ],\n example: '[\"tensor/sum\", \"@entity.rewards\"] // Total reward',\n },\n 'tensor/mean': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'Mean of tensor elements',\n hasSideEffects: false,\n returnType: 'number | tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'dim', type: 'number', description: 'Dimension to reduce', optional: true },\n ],\n example: '[\"tensor/mean\", \"@entity.losses\"]',\n },\n 'tensor/max': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'Maximum value in tensor',\n hasSideEffects: false,\n returnType: 'number | tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'dim', type: 'number', description: 'Dimension to reduce', optional: true },\n ],\n example: '[\"tensor/max\", \"@entity.qValues\"]',\n },\n 'tensor/min': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'Minimum value in tensor',\n hasSideEffects: false,\n returnType: 'number | tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'dim', type: 'number', description: 'Dimension to reduce', optional: true },\n ],\n example: '[\"tensor/min\", \"@entity.distances\"]',\n },\n 'tensor/argmax': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'Index of maximum value',\n hasSideEffects: false,\n returnType: 'number | tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'dim', type: 'number', description: 'Dimension to reduce', optional: true },\n ],\n example: '[\"tensor/argmax\", \"@entity.qValues\"] // Best action index',\n },\n 'tensor/norm': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'L2 norm of tensor',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'p', type: 'number', description: 'Norm order (default 2)', optional: true, defaultValue: 2 },\n ],\n example: '[\"tensor/norm\", \"@entity.gradient\"]',\n },\n\n // ============================================================================\n // Range Validation (for contracts)\n // ============================================================================\n\n 'tensor/allInRange': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Check if all elements are within range [min, max]',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'range', type: '[number, number]', description: 'Range as [min, max]' },\n ],\n example: '[\"tensor/allInRange\", \"@payload.input\", [-1.0, 1.0]]',\n },\n 'tensor/outOfRangeIndices': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Get indices of elements outside range',\n hasSideEffects: false,\n returnType: 'number[]',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'range', type: '[number, number]', description: 'Range as [min, max]' },\n ],\n example: '[\"tensor/outOfRangeIndices\", \"@payload.input\", [-1.0, 1.0]]',\n },\n 'tensor/clamp': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 3,\n maxArity: 3,\n description: 'Clamp all elements to range [min, max]',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'min', type: 'number', description: 'Minimum value' },\n { name: 'max', type: 'number', description: 'Maximum value' },\n ],\n example: '[\"tensor/clamp\", \"@entity.output\", -10.0, 10.0]',\n },\n 'tensor/clampPerDim': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Clamp each dimension to its specified range',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'ranges', type: 'object', description: 'Per-dimension ranges { \"0\": {min, max}, ... }' },\n ],\n example: '[\"tensor/clampPerDim\", \"@entity.rawOutput\", \"@entity.outputContract.ranges\"]',\n },\n 'tensor/outOfRangeDims': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Get dimensions that exceed their specified ranges',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'ranges', type: 'object', description: 'Per-dimension ranges { \"0\": {min, max}, ... }' },\n ],\n example: '[\"tensor/outOfRangeDims\", \"@entity.rawOutput\", \"@entity.outputContract.ranges\"]',\n },\n\n // ============================================================================\n // Conversion\n // ============================================================================\n\n 'tensor/toArray': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Convert tensor to nested array',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n ],\n example: '[\"tensor/toArray\", \"@entity.output\"]',\n },\n 'tensor/toList': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Convert 1D tensor to flat array',\n hasSideEffects: false,\n returnType: 'number[]',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor (must be 1D)' },\n ],\n example: '[\"tensor/toList\", \"@entity.output\"]',\n },\n};\n\n/**\n * Get all tensor operator names.\n */\nexport function getTensorOperators(): string[] {\n return Object.keys(TENSOR_OPERATORS);\n}\n","/**\n * Training Module - Neural Network Training Operations\n *\n * Provides operators for training neural networks with explicit constraints.\n * Training is bounded by readable rules: gradient clipping, weight constraints,\n * forbidden output regions, and validation gates.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Training module operators.\n * These operators handle training loops, validation, and constraint enforcement.\n */\nexport const TRAIN_OPERATORS: Record<string, StdOperatorMeta> = {\n // ============================================================================\n // Training Loop\n // ============================================================================\n\n 'train/loop': {\n module: 'train',\n category: 'ml-effect',\n minArity: 3,\n maxArity: 3,\n description: 'Execute training loop with constraints',\n hasSideEffects: true,\n returnType: 'train/result',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network to train' },\n { name: 'data', type: 'array', description: 'Training data (array of {input, target} or experiences)' },\n { name: 'config', type: 'train/config', description: 'Training configuration with constraints' },\n ],\n example: '[\"train/loop\", \"@entity.architecture\", \"@entity.buffer\", \"@entity.trainingConfig\"]',\n },\n 'train/step': {\n module: 'train',\n category: 'ml-effect',\n minArity: 4,\n maxArity: 4,\n description: 'Execute single training step (forward, loss, backward, update)',\n hasSideEffects: true,\n returnType: 'train/stepResult',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'input', type: 'tensor', description: 'Input tensor' },\n { name: 'target', type: 'tensor', description: 'Target tensor' },\n { name: 'config', type: 'train/config', description: 'Training configuration' },\n ],\n example: '[\"train/step\", \"@entity.architecture\", \"@batch.input\", \"@batch.target\", \"@entity.config\"]',\n },\n\n // ============================================================================\n // Validation\n // ============================================================================\n\n 'train/validate': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Validate model on test cases, returns pass/fail metrics',\n hasSideEffects: false,\n returnType: 'train/validationResult',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'testCases', type: 'array', description: 'Array of {input, expected, tolerance?}' },\n ],\n example: '[\"train/validate\", \"@entity.architecture\", \"@entity.validationSet\"]',\n },\n 'train/checkRegression': {\n module: 'train',\n category: 'ml-effect',\n minArity: 3,\n maxArity: 3,\n description: 'Check if new model regresses on required invariants',\n hasSideEffects: false,\n returnType: 'train/regressionResult',\n params: [\n { name: 'newModule', type: 'nn/module', description: 'Newly trained network' },\n { name: 'oldModule', type: 'nn/module', description: 'Previous network' },\n { name: 'invariants', type: 'array', description: 'Test cases that must not regress' },\n ],\n example: '[\"train/checkRegression\", \"@payload.newWeights\", \"@entity.architecture\", \"@entity.requiredInvariants\"]',\n },\n\n // ============================================================================\n // Constraint Checking\n // ============================================================================\n\n 'train/checkConstraints': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Check if network weights satisfy all constraints',\n hasSideEffects: false,\n returnType: 'train/constraintResult',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'constraints', type: 'train/constraints', description: 'Constraint specification' },\n ],\n example: '[\"train/checkConstraints\", \"@payload.newWeights\", \"@entity.constraints\"]',\n },\n 'train/checkWeightMagnitude': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Check if all weights are within magnitude limit',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'maxMagnitude', type: 'number', description: 'Maximum allowed weight magnitude' },\n ],\n example: '[\"train/checkWeightMagnitude\", \"@entity.architecture\", 10.0]',\n },\n 'train/checkForbiddenOutputs': {\n module: 'train',\n category: 'ml-effect',\n minArity: 3,\n maxArity: 3,\n description: 'Check if model produces outputs in forbidden regions',\n hasSideEffects: false,\n returnType: 'train/forbiddenResult',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'testInputs', type: 'array', description: 'Inputs to test' },\n { name: 'forbiddenRegions', type: 'array', description: 'Forbidden output regions' },\n ],\n example: '[\"train/checkForbiddenOutputs\", \"@entity.architecture\", \"@entity.testInputs\", \"@entity.forbiddenOutputRegions\"]',\n },\n\n // ============================================================================\n // Gradient Operations\n // ============================================================================\n\n 'train/clipGradients': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Clip gradients to max norm (modifies in place)',\n hasSideEffects: true,\n returnType: 'number',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'maxNorm', type: 'number', description: 'Maximum gradient norm' },\n ],\n example: '[\"train/clipGradients\", \"@entity.architecture\", 1.0]',\n },\n 'train/getGradientNorm': {\n module: 'train',\n category: 'ml-effect',\n minArity: 1,\n maxArity: 1,\n description: 'Get current gradient norm',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n ],\n example: '[\"train/getGradientNorm\", \"@entity.architecture\"]',\n },\n\n // ============================================================================\n // Weight Operations\n // ============================================================================\n\n 'train/clipWeights': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Clip weights to max magnitude (modifies in place)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'maxMagnitude', type: 'number', description: 'Maximum weight magnitude' },\n ],\n example: '[\"train/clipWeights\", \"@entity.architecture\", 10.0]',\n },\n 'train/getMaxWeightMagnitude': {\n module: 'train',\n category: 'ml-effect',\n minArity: 1,\n maxArity: 1,\n description: 'Get maximum weight magnitude in network',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n ],\n example: '[\"train/getMaxWeightMagnitude\", \"@entity.architecture\"]',\n },\n\n // ============================================================================\n // Loss Functions\n // ============================================================================\n\n 'train/mse': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Mean squared error loss',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'predicted', type: 'tensor', description: 'Predicted values' },\n { name: 'target', type: 'tensor', description: 'Target values' },\n ],\n example: '[\"train/mse\", \"@entity.output\", \"@batch.target\"]',\n },\n 'train/crossEntropy': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Cross-entropy loss for classification',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'logits', type: 'tensor', description: 'Raw model outputs (logits)' },\n { name: 'labels', type: 'tensor', description: 'Target class labels' },\n ],\n example: '[\"train/crossEntropy\", \"@entity.logits\", \"@batch.labels\"]',\n },\n 'train/huber': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 3,\n description: 'Huber loss (smooth L1, robust to outliers)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'predicted', type: 'tensor', description: 'Predicted values' },\n { name: 'target', type: 'tensor', description: 'Target values' },\n { name: 'delta', type: 'number', description: 'Threshold for quadratic vs linear', optional: true, defaultValue: 1.0 },\n ],\n example: '[\"train/huber\", \"@entity.qValues\", \"@batch.targets\", 1.0]',\n },\n\n // ============================================================================\n // Optimizers\n // ============================================================================\n\n 'train/sgd': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 3,\n description: 'Stochastic gradient descent optimizer step',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'lr', type: 'number', description: 'Learning rate' },\n { name: 'momentum', type: 'number', description: 'Momentum factor', optional: true, defaultValue: 0 },\n ],\n example: '[\"train/sgd\", \"@entity.architecture\", 0.01, 0.9]',\n },\n 'train/adam': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 4,\n description: 'Adam optimizer step',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'lr', type: 'number', description: 'Learning rate' },\n { name: 'beta1', type: 'number', description: 'First moment decay', optional: true, defaultValue: 0.9 },\n { name: 'beta2', type: 'number', description: 'Second moment decay', optional: true, defaultValue: 0.999 },\n ],\n example: '[\"train/adam\", \"@entity.architecture\", 0.001]',\n },\n\n // ============================================================================\n // Experience Replay (for RL)\n // ============================================================================\n\n 'train/sampleBatch': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Sample random batch from experience buffer',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'buffer', type: 'array', description: 'Experience buffer' },\n { name: 'batchSize', type: 'number', description: 'Number of samples' },\n ],\n example: '[\"train/sampleBatch\", \"@entity.experienceBuffer\", 32]',\n },\n 'train/computeReturns': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Compute discounted returns from rewards',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'rewards', type: 'array', description: 'Array of rewards' },\n { name: 'gamma', type: 'number', description: 'Discount factor' },\n ],\n example: '[\"train/computeReturns\", \"@episode.rewards\", 0.99]',\n },\n 'train/computeAdvantages': {\n module: 'train',\n category: 'ml-effect',\n minArity: 3,\n maxArity: 3,\n description: 'Compute GAE advantages for policy gradient',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'rewards', type: 'array', description: 'Array of rewards' },\n { name: 'values', type: 'tensor', description: 'Value estimates' },\n { name: 'config', type: 'object', description: 'Config with gamma, lambda' },\n ],\n example: '[\"train/computeAdvantages\", \"@episode.rewards\", \"@episode.values\", { \"gamma\": 0.99, \"lambda\": 0.95 }]',\n },\n};\n\n/**\n * Get all train operator names.\n */\nexport function getTrainOperators(): string[] {\n return Object.keys(TRAIN_OPERATORS);\n}\n","/**\n * Prob Module - Probabilistic Programming Operators\n *\n * Provides distribution sampling, Bayesian inference via rejection sampling,\n * and statistical summary functions.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Probabilistic module operators.\n */\nexport const PROB_OPERATORS: Record<string, StdOperatorMeta> = {\n // ========================================\n // Distribution Sampling\n // ========================================\n 'prob/seed': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Set seeded PRNG for deterministic probabilistic sampling',\n hasSideEffects: true,\n returnType: 'void',\n params: [{ name: 'n', type: 'number', description: 'Seed value (integer)' }],\n example: '[\"prob/seed\", 42]',\n },\n 'prob/flip': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Bernoulli trial: returns true with probability p',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'p', type: 'number', description: 'Probability of true (0 to 1)' }],\n example: '[\"prob/flip\", 0.5] // => true or false with equal probability',\n },\n 'prob/gaussian': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Sample from a Gaussian (normal) distribution',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'mu', type: 'number', description: 'Mean' },\n { name: 'sigma', type: 'number', description: 'Standard deviation' },\n ],\n example: '[\"prob/gaussian\", 0, 1] // => standard normal sample',\n },\n 'prob/uniform': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Sample from a uniform distribution [lo, hi)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'lo', type: 'number', description: 'Lower bound (inclusive)' },\n { name: 'hi', type: 'number', description: 'Upper bound (exclusive)' },\n ],\n example: '[\"prob/uniform\", 0, 10] // => number in [0, 10)',\n },\n 'prob/beta': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Sample from a Beta(alpha, beta) distribution',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'alpha', type: 'number', description: 'Alpha shape parameter (> 0)' },\n { name: 'beta', type: 'number', description: 'Beta shape parameter (> 0)' },\n ],\n example: '[\"prob/beta\", 2, 5] // => number in [0, 1], mean ~ 0.286',\n },\n 'prob/categorical': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Weighted random selection from items',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n { name: 'items', type: 'array', description: 'Array of items to choose from' },\n { name: 'weights', type: 'number[]', description: 'Array of weights (same length as items)' },\n ],\n example: '[\"prob/categorical\", [\"a\", \"b\", \"c\"], [1, 2, 1]] // => \"b\" most likely',\n },\n 'prob/poisson': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Sample from a Poisson distribution',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'lambda', type: 'number', description: 'Rate parameter (> 0)' }],\n example: '[\"prob/poisson\", 4] // => non-negative integer, mean ~ 4',\n },\n\n // ========================================\n // Inference\n // ========================================\n 'prob/condition': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Mark current sample as rejected if predicate is false',\n hasSideEffects: true,\n returnType: 'void',\n params: [{ name: 'predicate', type: 'boolean', description: 'Condition that must hold' }],\n example: '[\"prob/condition\", [\">\", \"@entity.x\", 0]]',\n },\n 'prob/sample': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Evaluate an expression n times and collect results',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'n', type: 'number', description: 'Number of samples' },\n { name: 'expr', type: 'SExpr', description: 'Expression to evaluate (lazy)' },\n ],\n example: '[\"prob/sample\", 1000, [\"prob/flip\", 0.5]] // => array of booleans',\n },\n 'prob/posterior': {\n module: 'prob',\n category: 'std-prob',\n minArity: 4,\n maxArity: 4,\n description: 'Rejection sampling: returns accepted query values',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'model', type: 'SExpr', description: 'Model expression (lazy, may call set/condition)' },\n { name: 'evidence', type: 'SExpr', description: 'Evidence expression (lazy, boolean)' },\n { name: 'query', type: 'SExpr', description: 'Query expression (lazy, value to collect)' },\n { name: 'n', type: 'number', description: 'Number of samples to attempt' },\n ],\n example: '[\"prob/posterior\", model, evidence, query, 5000]',\n },\n 'prob/infer': {\n module: 'prob',\n category: 'std-prob',\n minArity: 4,\n maxArity: 4,\n description: 'Like posterior but returns {mean, variance, samples, acceptRate}',\n hasSideEffects: false,\n returnType: 'object',\n params: [\n { name: 'model', type: 'SExpr', description: 'Model expression (lazy)' },\n { name: 'evidence', type: 'SExpr', description: 'Evidence expression (lazy, boolean)' },\n { name: 'query', type: 'SExpr', description: 'Query expression (lazy)' },\n { name: 'n', type: 'number', description: 'Number of samples to attempt' },\n ],\n example: '[\"prob/infer\", model, evidence, query, 5000]',\n },\n\n // ========================================\n // Statistics\n // ========================================\n 'prob/expected-value': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Mean of numeric samples',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'samples', type: 'number[]', description: 'Array of numeric samples' }],\n example: '[\"prob/expected-value\", [2, 4, 6, 8]] // => 5',\n },\n 'prob/variance': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Population variance of numeric samples',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'samples', type: 'number[]', description: 'Array of numeric samples' }],\n example: '[\"prob/variance\", [2, 4, 4, 4, 5, 5, 7, 9]] // => 4',\n },\n 'prob/histogram': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Bin numeric samples into a histogram',\n hasSideEffects: false,\n returnType: 'object',\n params: [\n { name: 'samples', type: 'number[]', description: 'Array of numeric samples' },\n { name: 'bins', type: 'number', description: 'Number of bins' },\n ],\n example: '[\"prob/histogram\", [1, 2, 3, 4, 5], 2] // => {binEdges, counts}',\n },\n 'prob/percentile': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Get the p-th percentile (0-100) from samples',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'samples', type: 'number[]', description: 'Array of numeric samples' },\n { name: 'p', type: 'number', description: 'Percentile (0 to 100)' },\n ],\n example: '[\"prob/percentile\", [1, 2, 3, 4, 5], 50] // => 3',\n },\n 'prob/credible-interval': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Compute symmetric credible interval from samples',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'samples', type: 'number[]', description: 'Array of numeric samples' },\n { name: 'alpha', type: 'number', description: 'Significance level (e.g., 0.05 for 95% interval)' },\n ],\n example: '[\"prob/credible-interval\", samples, 0.05] // => [lo, hi]',\n },\n};\n\n/**\n * Get all probabilistic operators.\n */\nexport function getProbOperators(): Record<string, StdOperatorMeta> {\n return PROB_OPERATORS;\n}\n","/**\n * OS Module - Operating System Event Watchers\n *\n * Provides operators for registering OS-level event watchers that\n * translate kernel events (inotify, SIGCHLD, socket, timerfd) into\n * Orb events on the EventBus. Used by trigger traits to interrupt\n * agents with verified ground truth.\n *\n * All operators have side effects (they register watchers).\n * Server-side only (no-op on client).\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\nexport const OS_OPERATORS: Record<string, StdOperatorMeta> = {\n 'os/watch-files': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 2,\n description: 'Register file system watcher. Emits OS_FILE_MODIFIED, OS_FILE_CREATED, OS_FILE_DELETED events with { path, name, dir, timestamp } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'glob', type: 'string', description: 'Glob pattern to watch (e.g., \"**/*.orb\")' },\n { name: 'options', type: 'object', description: 'Optional config: { recursive, ignoreInitial, debounceMs }', optional: true },\n ],\n example: '[\"os/watch-files\", \"**/*.orb\"]',\n },\n 'os/watch-process': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 2,\n description: 'Register process monitor. Emits OS_PROCESS_EXITED, OS_PROCESS_STARTED events with { pid, name, exitCode, signal, args, duration } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'name', type: 'string', description: 'Process name to monitor (e.g., \"orbital\")' },\n { name: 'subcommand', type: 'string', description: 'Optional subcommand filter (e.g., \"validate\")', optional: true },\n ],\n example: '[\"os/watch-process\", \"orbital\", \"validate\"]',\n },\n 'os/watch-port': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 2,\n description: 'Register port monitor. Emits OS_PORT_OPENED, OS_PORT_CLOSED events with { port, protocol, pid, address } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'port', type: 'number', description: 'Port number to monitor' },\n { name: 'protocol', type: 'string', description: 'Protocol: \"tcp\" or \"udp\" (default: \"tcp\")', optional: true },\n ],\n example: '[\"os/watch-port\", 3000]',\n },\n 'os/watch-http': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 2,\n description: 'Register HTTP response interceptor. Emits OS_HTTP_RESPONSE events with { url, method, status, headers, body, duration } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'urlPattern', type: 'string', description: 'URL pattern to intercept (e.g., \"https://api.example.com/*\")' },\n { name: 'method', type: 'string', description: 'HTTP method filter (e.g., \"POST\")', optional: true },\n ],\n example: '[\"os/watch-http\", \"https://api.example.com/*\", \"POST\"]',\n },\n 'os/watch-cron': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 1,\n description: 'Register cron schedule. Emits OS_CRON_FIRE events with { expression, timestamp } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'expression', type: 'string', description: 'Cron expression (e.g., \"*/5 * * * *\" for every 5 minutes)' },\n ],\n example: '[\"os/watch-cron\", \"0 */6 * * *\"]',\n },\n 'os/watch-signal': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 1,\n description: 'Register OS signal handler. Emits OS_SIGNAL_USR1, OS_SIGNAL_HUP, etc. with { pid, timestamp } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'signal', type: 'string', description: 'Signal name: \"SIGUSR1\", \"SIGUSR2\", \"SIGHUP\", \"SIGTERM\"' },\n ],\n example: '[\"os/watch-signal\", \"SIGUSR1\"]',\n },\n 'os/watch-env': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 1,\n description: 'Register environment variable watcher. Emits OS_ENV_CHANGED events with { variable, oldValue, newValue } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'variable', type: 'string', description: 'Environment variable name to watch' },\n ],\n example: '[\"os/watch-env\", \"NODE_ENV\"]',\n },\n 'os/debounce': {\n module: 'os',\n category: 'std-os',\n minArity: 2,\n maxArity: 2,\n description: 'Configure debounce interval for an OS event type. Prevents trigger storms during rapid changes.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'ms', type: 'number', description: 'Debounce interval in milliseconds' },\n { name: 'eventType', type: 'string', description: 'OS event type to debounce (e.g., \"OS_FILE_MODIFIED\")' },\n ],\n example: '[\"os/debounce\", 500, \"OS_FILE_MODIFIED\"]',\n },\n};\n","/**\n * Agent Module - AI Agent Intelligence Operations\n *\n * Provides operators for agent memory management, LLM access,\n * tool invocation, context window management, and session control.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Agent module operators.\n */\nexport const AGENT_OPERATORS: Record<string, StdOperatorMeta> = {\n // ==========================================================================\n // Memory (Pure)\n // ==========================================================================\n 'agent/recall': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 2,\n description: 'Search memories by semantic query. Returns matching AgentMemoryRecord array.',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'query', type: 'string', description: 'Semantic search query' },\n { name: 'limit', type: 'number', description: 'Max results to return', optional: true },\n ],\n example: '[\"agent/recall\", \"user prefers dark mode\"] => [{id, content, strength, ...}]',\n },\n 'agent/memories': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 1,\n description: 'List all memories, optionally filtered by category.',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'category', type: 'string', description: 'Memory category filter', optional: true },\n ],\n example: '[\"agent/memories\", \"preference\"] => [{id, content, category, ...}]',\n },\n 'agent/memory-strength': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Get the strength value (0-1) of a specific memory.',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'id', type: 'string', description: 'Memory record ID' },\n ],\n example: '[\"agent/memory-strength\", \"mem_abc123\"] => 0.85',\n },\n 'agent/is-pinned': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Check if a memory is pinned (immune to decay).',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'id', type: 'string', description: 'Memory record ID' },\n ],\n example: '[\"agent/is-pinned\", \"mem_abc123\"] => true',\n },\n\n // ==========================================================================\n // LLM (Pure)\n // ==========================================================================\n 'agent/provider': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get the name of the current LLM provider.',\n hasSideEffects: false,\n returnType: 'string',\n params: [],\n example: '[\"agent/provider\"] => \"deepseek\"',\n },\n 'agent/model': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get the name of the current LLM model.',\n hasSideEffects: false,\n returnType: 'string',\n params: [],\n example: '[\"agent/model\"] => \"deepseek-chat\"',\n },\n\n // ==========================================================================\n // Tools (Pure)\n // ==========================================================================\n 'agent/tools': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get the list of available tool names.',\n hasSideEffects: false,\n returnType: 'array',\n params: [],\n example: '[\"agent/tools\"] => [\"execute\", \"validate-schema\", \"generate-schema\"]',\n },\n\n // ==========================================================================\n // Context (Pure)\n // ==========================================================================\n 'agent/token-count': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get the current token count in the context window.',\n hasSideEffects: false,\n returnType: 'number',\n params: [],\n example: '[\"agent/token-count\"] => 12450',\n },\n 'agent/context-usage': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get context window usage as a ratio (0-1).',\n hasSideEffects: false,\n returnType: 'number',\n params: [],\n example: '[\"agent/context-usage\"] => 0.62',\n },\n\n // ==========================================================================\n // Session (Pure)\n // ==========================================================================\n 'agent/session-id': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get the current session identifier.',\n hasSideEffects: false,\n returnType: 'string',\n params: [],\n example: '[\"agent/session-id\"] => \"sess_a3f2k\"',\n },\n\n // ==========================================================================\n // Memory (Effects)\n // ==========================================================================\n 'agent/memorize': {\n module: 'agent',\n category: 'std-agent',\n minArity: 2,\n maxArity: 3,\n description: 'Store a new memory. Returns the new memory ID.',\n hasSideEffects: true,\n returnType: 'string',\n params: [\n { name: 'content', type: 'string', description: 'Memory content to store' },\n { name: 'category', type: 'string', description: 'Category: preference, correction, pattern-affinity, entity-template, error-resolution' },\n { name: 'scope', type: 'string', description: 'Scope: global or project', optional: true, defaultValue: 'global' },\n ],\n example: '[\"agent/memorize\", \"user prefers PascalCase\", \"preference\"]',\n },\n 'agent/forget': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Remove a memory by ID.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'id', type: 'string', description: 'Memory record ID to remove' },\n ],\n example: '[\"agent/forget\", \"mem_abc123\"]',\n },\n 'agent/pin': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Pin a memory to prevent decay.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'id', type: 'string', description: 'Memory record ID to pin' },\n ],\n example: '[\"agent/pin\", \"mem_abc123\"]',\n },\n 'agent/reinforce': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Increase a memory\\'s strength (reinforcement learning signal).',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'id', type: 'string', description: 'Memory record ID to reinforce' },\n ],\n example: '[\"agent/reinforce\", \"mem_abc123\"]',\n },\n 'agent/decay': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Apply strength decay to all unpinned memories. Returns count of forgotten memories.',\n hasSideEffects: true,\n returnType: 'number',\n params: [],\n example: '[\"agent/decay\"] => 15',\n },\n\n // ==========================================================================\n // LLM (Effects)\n // ==========================================================================\n 'agent/generate': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 2,\n description: 'Generate text from the LLM. Returns generated string.',\n hasSideEffects: true,\n returnType: 'string',\n params: [\n { name: 'prompt', type: 'string', description: 'Prompt text to send to LLM' },\n { name: 'options', type: 'object', description: 'Options: { provider?, model?, maxTokens? }', optional: true },\n ],\n example: '[\"agent/generate\", \"Summarize the user request\"]',\n },\n 'agent/switch-provider': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 2,\n description: 'Switch the active LLM provider and optionally the model.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'provider', type: 'string', description: 'Provider name (e.g., \"deepseek\", \"openai\", \"anthropic\")' },\n { name: 'model', type: 'string', description: 'Model name override', optional: true },\n ],\n example: '[\"agent/switch-provider\", \"openai\", \"gpt-4o\"]',\n },\n\n // ==========================================================================\n // Tools (Effects)\n // ==========================================================================\n 'agent/invoke': {\n module: 'agent',\n category: 'std-agent',\n minArity: 2,\n maxArity: 2,\n description: 'Invoke a tool by name with arguments. Returns tool result.',\n hasSideEffects: true,\n returnType: 'any',\n params: [\n { name: 'toolName', type: 'string', description: 'Name of the tool to invoke' },\n { name: 'args', type: 'object', description: 'Arguments to pass to the tool' },\n ],\n example: '[\"agent/invoke\", \"validate-schema\", {\"schema\": \"@entity\"}]',\n },\n\n // ==========================================================================\n // Context (Effects)\n // ==========================================================================\n 'agent/compact': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 1,\n description: 'Compact the context window. Returns { before, after, strategy, summary? }.',\n hasSideEffects: true,\n returnType: 'object',\n params: [\n { name: 'strategy', type: 'string', description: 'Strategy: hybrid, summarize, truncate, extract', optional: true, defaultValue: 'hybrid' },\n ],\n example: '[\"agent/compact\", \"summarize\"] => {before: 50000, after: 12000, ...}',\n },\n\n // ==========================================================================\n // Session (Effects)\n // ==========================================================================\n 'agent/fork': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 1,\n description: 'Fork the current session. Returns new session ID.',\n hasSideEffects: true,\n returnType: 'string',\n params: [\n { name: 'label', type: 'string', description: 'Optional label for the fork point', optional: true },\n ],\n example: '[\"agent/fork\", \"before-refactor\"] => \"sess_fork_x7k2m\"',\n },\n 'agent/label': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Label the current session checkpoint for later reference.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'text', type: 'string', description: 'Label text for the checkpoint' },\n ],\n example: '[\"agent/label\", \"schema-v2-complete\"]',\n },\n\n // ==========================================================================\n // Search (Effects)\n // ==========================================================================\n 'agent/search-code': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 2,\n description: 'Search code repositories. Returns array of { repo, path, url }.',\n hasSideEffects: true,\n returnType: 'array',\n params: [\n { name: 'query', type: 'string', description: 'Code search query' },\n { name: 'language', type: 'string', description: 'Programming language filter', optional: true },\n ],\n example: '[\"agent/search-code\", \"orbital schema validation\", \"typescript\"]',\n },\n};\n\n/**\n * Get all agent operator names.\n */\nexport function getAgentOperators(): string[] {\n return Object.keys(AGENT_OPERATORS);\n}\n","/**\n * Composition Module - Behavior Composition Operators\n *\n * Provides compile-time operators for composing N orbitals into a single\n * application schema. These operators are resolved during `.lolo` lowering\n * (or by the parallel Rust composition pass), not at runtime.\n *\n * Surfaced here so that the lolo type sync tool can publish them in\n * `signatures.lolo`, the Rust compiler can validate their arity and shape,\n * and IDE tooling can discover them through the unified std registry.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Composition module operators.\n * All operators are pure (no runtime side effects) and compile-time resolved.\n */\nexport const COMPOSITION_OPERATORS: Record<string, StdOperatorMeta> = {\n 'behavior/compose': {\n module: 'composition',\n category: 'std-composition',\n minArity: 1,\n maxArity: 1,\n description: 'Compose N orbitals into one application schema. Wires events, picks layout, generates pages.',\n hasSideEffects: false,\n compileTime: true,\n returnType: 'object',\n params: [\n {\n name: 'config',\n type: 'object',\n description: 'ComposeBehaviorsInput: { appName, orbitals[], layoutStrategy?, eventWiring?, entityMappings? }',\n },\n ],\n example: '(behavior/compose { appName: \"ShoppingApp\" orbitals: [...] })',\n },\n 'behavior/wire': {\n module: 'composition',\n category: 'std-composition',\n minArity: 2,\n maxArity: 2,\n description: 'Apply cross-orbital event wiring. Adds external emits/listens to inline traits.',\n hasSideEffects: false,\n compileTime: true,\n returnType: 'array',\n params: [\n {\n name: 'orbitals',\n type: 'array',\n description: 'Array of OrbitalDefinition to wire',\n },\n {\n name: 'wiring',\n type: 'array',\n description: 'Array of EventWiringEntry { from, event, to, triggers }',\n },\n ],\n example: '(behavior/wire orbitals wiring)',\n },\n 'behavior/detect-layout': {\n module: 'composition',\n category: 'std-composition',\n minArity: 1,\n maxArity: 2,\n description: 'Auto-detect layout from orbital count and wiring topology. Returns single, tabs, sidebar, dashboard, or wizard-flow.',\n hasSideEffects: false,\n compileTime: true,\n returnType: 'string',\n params: [\n {\n name: 'orbitals',\n type: 'array',\n description: 'Array of OrbitalDefinition',\n },\n {\n name: 'wiring',\n type: 'array',\n description: 'Optional EventWiringEntry array',\n optional: true,\n },\n ],\n example: '(behavior/detect-layout orbitals)',\n },\n 'behavior/pipe': {\n module: 'composition',\n category: 'std-composition',\n minArity: 2,\n maxArity: null,\n description: 'Left-to-right composition. Each step receives the previous result as its first arg.',\n hasSideEffects: false,\n compileTime: true,\n returnType: 'any',\n params: [\n {\n name: 'seed',\n type: 'any',\n description: 'Initial value to pipe through steps',\n },\n {\n name: '...steps',\n type: 'function[]',\n description: 'Functions, each receiving the previous result as first argument',\n },\n ],\n example: '(behavior/pipe orbitals (behavior/wire wiring) (behavior/compose { appName: \"X\" }))',\n },\n};\n\n/**\n * Get all composition operator names.\n */\nexport function getCompositionOperators(): string[] {\n return Object.keys(COMPOSITION_OPERATORS);\n}\n","/**\n * Standard Library Registry\n *\n * Combined registry of all standard library operators.\n * Provides lookup and validation functions for std/* operators.\n *\n * @packageDocumentation\n */\n\nimport type { OperatorMeta, StdOperatorMeta, StdModule } from './types.js';\nimport { isStdOperator, getModuleFromOperator, STD_MODULES } from './types.js';\n\nimport { CORE_OPERATORS } from './modules/core.js';\nimport { MATH_OPERATORS } from './modules/math.js';\nimport { STR_OPERATORS } from './modules/str.js';\nimport { ARRAY_OPERATORS } from './modules/array.js';\nimport { OBJECT_OPERATORS } from './modules/object.js';\nimport { TIME_OPERATORS } from './modules/time.js';\nimport { VALIDATE_OPERATORS } from './modules/validate.js';\nimport { FORMAT_OPERATORS } from './modules/format.js';\nimport { ASYNC_OPERATORS } from './modules/async.js';\nimport { NN_OPERATORS } from './modules/nn.js';\nimport { TENSOR_OPERATORS } from './modules/tensor.js';\nimport { TRAIN_OPERATORS } from './modules/train.js';\nimport { PROB_OPERATORS } from './modules/prob.js';\nimport { OS_OPERATORS } from './modules/os.js';\nimport { AGENT_OPERATORS } from './modules/agent.js';\nimport { COMPOSITION_OPERATORS } from './modules/composition.js';\n\n// ============================================================================\n// Combined Registry\n// ============================================================================\n\n/**\n * Combined registry of all standard library operators.\n */\nexport const STD_OPERATORS: Record<string, StdOperatorMeta> = {\n ...CORE_OPERATORS,\n ...MATH_OPERATORS,\n ...STR_OPERATORS,\n ...ARRAY_OPERATORS,\n ...OBJECT_OPERATORS,\n ...TIME_OPERATORS,\n ...VALIDATE_OPERATORS,\n ...FORMAT_OPERATORS,\n ...ASYNC_OPERATORS,\n ...NN_OPERATORS,\n ...TENSOR_OPERATORS,\n ...TRAIN_OPERATORS,\n ...PROB_OPERATORS,\n ...OS_OPERATORS,\n ...AGENT_OPERATORS,\n ...COMPOSITION_OPERATORS,\n};\n\n/**\n * Module-specific operator registries.\n */\n/**\n * Flat array of every operator name (core + std-module).\n * Convenience const for grammar generators and validators.\n */\nexport const OPERATOR_NAMES: readonly string[] = Object.keys(STD_OPERATORS);\n\nexport const STD_OPERATORS_BY_MODULE: Record<string, Record<string, StdOperatorMeta>> = {\n core: CORE_OPERATORS,\n math: MATH_OPERATORS,\n str: STR_OPERATORS,\n array: ARRAY_OPERATORS,\n object: OBJECT_OPERATORS,\n time: TIME_OPERATORS,\n validate: VALIDATE_OPERATORS,\n format: FORMAT_OPERATORS,\n async: ASYNC_OPERATORS,\n nn: NN_OPERATORS,\n tensor: TENSOR_OPERATORS,\n train: TRAIN_OPERATORS,\n prob: PROB_OPERATORS,\n os: OS_OPERATORS,\n agent: AGENT_OPERATORS,\n composition: COMPOSITION_OPERATORS,\n};\n\n// ============================================================================\n// Lookup Functions\n// ============================================================================\n\n/**\n * Get std operator metadata by name.\n *\n * @param operator - Operator name (e.g., 'math/clamp')\n * @returns Operator metadata or undefined if not found\n */\nexport function getStdOperatorMeta(operator: string): StdOperatorMeta | undefined {\n return STD_OPERATORS[operator];\n}\n\n/**\n * Check if an operator is a known std library operator.\n *\n * @param operator - Operator name\n * @returns true if operator exists in std library\n */\nexport function isKnownStdOperator(operator: string): boolean {\n return operator in STD_OPERATORS;\n}\n\n/**\n * Get all operators for a specific module.\n *\n * @param module - Module name\n * @returns Record of operators in that module\n */\nexport function getModuleOperators(module: StdModule): Record<string, StdOperatorMeta> {\n return STD_OPERATORS_BY_MODULE[module] || {};\n}\n\n/**\n * Get all std operator names.\n *\n * @returns Array of all std operator names\n */\nexport function getAllStdOperators(): string[] {\n return Object.keys(STD_OPERATORS);\n}\n\n/**\n * Get all std operator names for a specific module.\n *\n * @param module - Module name\n * @returns Array of operator names in that module\n */\nexport function getStdOperatorsByModule(module: StdModule): string[] {\n return Object.keys(STD_OPERATORS_BY_MODULE[module] || {});\n}\n\n/**\n * Get all std operators that accept lambda expressions.\n *\n * @returns Array of operator names that accept lambdas\n */\nexport function getLambdaOperators(): string[] {\n return Object.entries(STD_OPERATORS)\n .filter(([, meta]) => meta.acceptsLambda)\n .map(([name]) => name);\n}\n\n/**\n * Get all std operators with side effects.\n *\n * @returns Array of operator names with side effects\n */\nexport function getStdEffectOperators(): string[] {\n return Object.entries(STD_OPERATORS)\n .filter(([, meta]) => meta.hasSideEffects)\n .map(([name]) => name);\n}\n\n/**\n * Get all pure std operators (no side effects).\n *\n * @returns Array of operator names without side effects\n */\nexport function getStdPureOperators(): string[] {\n return Object.entries(STD_OPERATORS)\n .filter(([, meta]) => !meta.hasSideEffects)\n .map(([name]) => name);\n}\n\n// ============================================================================\n// Validation Functions\n// ============================================================================\n\n/**\n * Validate std operator arity.\n *\n * @param operator - Operator name\n * @param argCount - Number of arguments provided\n * @returns Error message if invalid, null if valid\n */\nexport function validateStdOperatorArity(operator: string, argCount: number): string | null {\n const meta = STD_OPERATORS[operator];\n if (!meta) {\n return `Unknown std operator: ${operator}`;\n }\n\n if (argCount < meta.minArity) {\n return `Operator '${operator}' requires at least ${meta.minArity} argument(s), got ${argCount}`;\n }\n\n if (meta.maxArity !== null && argCount > meta.maxArity) {\n return `Operator '${operator}' accepts at most ${meta.maxArity} argument(s), got ${argCount}`;\n }\n\n return null;\n}\n\n/**\n * Check if a std operator is valid in guard context (no side effects).\n *\n * @param operator - Operator name\n * @returns true if operator can be used in guards\n */\nexport function isStdGuardOperator(operator: string): boolean {\n const meta = STD_OPERATORS[operator];\n return meta !== undefined && !meta.hasSideEffects;\n}\n\n/**\n * Check if a std operator has side effects.\n *\n * @param operator - Operator name\n * @returns true if operator has side effects\n */\nexport function isStdEffectOperator(operator: string): boolean {\n const meta = STD_OPERATORS[operator];\n return meta?.hasSideEffects ?? false;\n}\n\n// ============================================================================\n// Integration with Core Operators\n// ============================================================================\n\n/**\n * Get operator metadata, checking both core and std operators.\n * This function integrates with the core operator system.\n *\n * @param operator - Operator name\n * @param coreOperators - Core operator registry (OPERATORS from operators.ts)\n * @returns Operator metadata or undefined\n */\nexport function getOperatorMetaExtended(\n operator: string,\n coreOperators: Record<string, OperatorMeta>\n): OperatorMeta | StdOperatorMeta | undefined {\n // Check std operators first if it looks like a std operator\n if (isStdOperator(operator)) {\n return STD_OPERATORS[operator];\n }\n // Fall back to core operators\n return coreOperators[operator];\n}\n\n/**\n * Check if an operator is known (core or std).\n *\n * @param operator - Operator name\n * @param coreOperators - Core operator registry\n * @returns true if operator exists\n */\nexport function isKnownOperatorExtended(\n operator: string,\n coreOperators: Record<string, OperatorMeta>\n): boolean {\n if (isStdOperator(operator)) {\n return operator in STD_OPERATORS;\n }\n return operator in coreOperators;\n}\n\n/**\n * Validate operator arity (core or std).\n *\n * @param operator - Operator name\n * @param argCount - Number of arguments\n * @param coreOperators - Core operator registry\n * @returns Error message or null\n */\nexport function validateOperatorArityExtended(\n operator: string,\n argCount: number,\n coreOperators: Record<string, OperatorMeta>\n): string | null {\n if (isStdOperator(operator)) {\n return validateStdOperatorArity(operator, argCount);\n }\n\n const meta = coreOperators[operator];\n if (!meta) {\n return `Unknown operator: ${operator}`;\n }\n\n if (argCount < meta.minArity) {\n return `Operator '${operator}' requires at least ${meta.minArity} argument(s), got ${argCount}`;\n }\n\n if (meta.maxArity !== null && argCount > meta.maxArity) {\n return `Operator '${operator}' accepts at most ${meta.maxArity} argument(s), got ${argCount}`;\n }\n\n return null;\n}\n\n/**\n * Check if an operator has side effects (core or std).\n *\n * @param operator - Operator name\n * @param coreOperators - Core operator registry\n * @returns true if operator has side effects\n */\nexport function isEffectOperatorExtended(\n operator: string,\n coreOperators: Record<string, OperatorMeta>\n): boolean {\n if (isStdOperator(operator)) {\n return isStdEffectOperator(operator);\n }\n const meta = coreOperators[operator];\n return meta?.hasSideEffects ?? false;\n}\n\n// ============================================================================\n// Statistics\n// ============================================================================\n\n/**\n * Get statistics about the standard library.\n */\nexport function getStdLibStats(): {\n totalOperators: number;\n byModule: Record<StdModule, number>;\n pureOperators: number;\n effectOperators: number;\n lambdaOperators: number;\n} {\n const byModule = {} as Record<StdModule, number>;\n for (const module of STD_MODULES) {\n byModule[module] = Object.keys(STD_OPERATORS_BY_MODULE[module] || {}).length;\n }\n\n return {\n totalOperators: Object.keys(STD_OPERATORS).length,\n byModule,\n pureOperators: getStdPureOperators().length,\n effectOperators: getStdEffectOperators().length,\n lambdaOperators: getLambdaOperators().length,\n };\n}\n","/**\n * Standard Behaviors Types\n *\n * Standard Behaviors are reusable OrbitalSchema definitions with a `std-` naming convention.\n * Each behavior is a self-contained .orb file that can function independently.\n *\n * @packageDocumentation\n */\n\nimport type {\n SExpr,\n Effect,\n Expression,\n Trait,\n TraitCategory,\n StateMachine,\n State,\n Event,\n Transition,\n Guard,\n TraitTick,\n TraitDataEntity,\n TraitEntityField,\n OrbitalSchema,\n Orbital,\n Entity,\n} from '@almadar/core/types';\n\n// Re-export core types for use in behaviors\nexport type {\n Effect,\n Expression,\n Trait,\n StateMachine,\n State,\n Event,\n Transition,\n Guard,\n TraitTick,\n TraitDataEntity,\n TraitEntityField,\n TraitCategory,\n OrbitalSchema,\n Orbital,\n Entity,\n};\n\n// ============================================================================\n// Legacy Type Aliases (for backward compatibility only)\n// ============================================================================\n\n/**\n * @deprecated Use OrbitalSchema directly. BehaviorTrait is kept for backward compatibility.\n */\nexport type BehaviorTrait = Trait;\n\n// ============================================================================\n// Item Action (for render_ui props)\n// ============================================================================\n\nexport interface ItemAction {\n label: string;\n event?: string;\n navigatesTo?: string;\n placement?: 'row' | 'bulk' | 'card' | 'footer' | 'header';\n variant?: 'primary' | 'secondary' | 'ghost' | 'danger';\n showWhen?: SExpr | string;\n}\n\n// ============================================================================\n// Behavior Metadata (for quick lookup and documentation)\n// ============================================================================\n\n/**\n * Behavior metadata extracted from a Trait for documentation purposes\n */\nexport interface BehaviorMetadata {\n name: string;\n category?: TraitCategory;\n description: string;\n states: string[];\n events: string[];\n tickCount: number;\n transitionCount: number;\n hasDataEntities: boolean;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Extract metadata from a BehaviorTrait for documentation\n */\nexport function getBehaviorMetadata(behavior: BehaviorTrait): BehaviorMetadata {\n const sm = behavior.stateMachine;\n\n // Core types: State is always an object with name\n const states: string[] = (sm?.states || []).map(s => s.name);\n\n // Core types: Event is always an object with key\n const events: string[] = (sm?.events || []).map(e => e.key);\n\n return {\n name: behavior.name,\n category: behavior.category,\n description: behavior.description || '',\n states,\n events,\n tickCount: behavior.ticks?.length || 0,\n transitionCount: sm?.transitions?.length || 0,\n hasDataEntities: (behavior.dataEntities?.length || 0) > 0,\n };\n}\n\n/**\n * Validate behavior structure\n */\nexport function validateBehaviorStructure(behavior: BehaviorTrait): string[] {\n const errors: string[] = [];\n\n if (!behavior.name) {\n errors.push('Behavior must have a name');\n }\n\n if (!behavior.name.startsWith('std/')) {\n errors.push(`Behavior name should start with 'std/' (got: ${behavior.name})`);\n }\n\n const sm = behavior.stateMachine;\n if (sm) {\n if (!sm.states || sm.states.length === 0) {\n errors.push('State machine must have at least one state');\n }\n\n // Core types: check initial state using isInitial flag on State\n const hasInitialState = sm.states?.some(s => s.isInitial);\n if (!hasInitialState) {\n errors.push('State machine must have an initial state (set isInitial: true on one state)');\n }\n }\n\n return errors;\n}\n\n/**\n * Validate behavior events match transitions\n */\nexport function validateBehaviorEvents(behavior: BehaviorTrait): string[] {\n const errors: string[] = [];\n const sm = behavior.stateMachine;\n if (!sm) return errors;\n\n // Core types: Event is always an object with key\n const declaredEvents = new Set(\n (sm.events || []).map(e => e.key)\n );\n\n const transitionEvents = new Set(\n (sm.transitions || []).map(t => t.event)\n );\n\n for (const event of transitionEvents) {\n if (event && !declaredEvents.has(event)) {\n errors.push(`Transition uses undeclared event: ${event}`);\n }\n }\n\n return errors;\n}\n\n/**\n * Validate behavior states match transitions\n */\nexport function validateBehaviorStates(behavior: BehaviorTrait): string[] {\n const errors: string[] = [];\n const sm = behavior.stateMachine;\n if (!sm) return errors;\n\n // Core types: State is always an object with name\n const declaredStates = new Set(\n (sm.states || []).map(s => s.name)\n );\n\n for (const t of sm.transitions || []) {\n // Core types: from and to are both strings\n if (t.from && !declaredStates.has(t.from)) {\n errors.push(`Transition from undeclared state: ${t.from}`);\n }\n\n if (t.to && !declaredStates.has(t.to)) {\n errors.push(`Transition to undeclared state: ${t.to}`);\n }\n }\n\n return errors;\n}\n","/**\n * Behavior Functions\n *\n * Autogenerated by scripts/regenerate-std-ts.mjs.\n * Thin descriptor layer over the .orb registry; the canonical state\n * machines live in packages/almadar-std/behaviors/registry/.\n *\n * Layout: <topic>/<tier>/std-X.ts (topic is any direct subdir of functions/).\n *\n * @packageDocumentation\n */\n\n// Atoms\nexport * from './core/atoms/std-cascade-on-delete.js';\n\n// Molecules\n\n// Organisms\n\n// Re-export shared builder helpers for convenience.\nexport { connect, compose, pipe, makeEntity, makePage, makeOrbital, makeSchema, mergeOrbitals, wire, extractTrait, ensureIdField, plural } from '@almadar/core/builders';\n\n// Phase 9 — typed factory dispatcher (multi-orbital organisms only).\nexport { dispatchOrbitalFactory, getOrbitalFactoryManifest, listOrganismOrbitalManifests } from './dispatch.js';\nexport type { OrbitalParamsManifest, ParamFieldDescriptor } from './dispatch.js';\n","/**\n * std-cascade-on-delete — std-cascade-on-delete — relational `owns` cascade coordinator. Listens for a parent-deleted sentinel (`ParentDeleted` — rename via traitOverrides.events to the consumer's actual parent-deleted event), fetches dependent rows where `<foreignKeyField> === @payload.data.id` from the FIRST entry of `dependentEntities` (current operator surface has no loop primitive — multi-dependent support is a future extension), and emits `CascadeRowsLoaded` so a consumer trait can persist the deletes. Emits `CascadeCompleted` once the row list is published. Multi-dependent iteration and in-atom persist will land when the operator system supports collection iteration.\n *\n * Autogenerated by scripts/regenerate-std-ts.mjs from\n * packages/almadar-std/behaviors/registry/atoms/std-cascade-on-delete.orb.\n *\n * This is a thin descriptor layer over the canonical .orb. The exported\n * functions return TraitReference / PageRefObject / OrbitalDefinition\n * payloads that reference the sibling .orb via `uses:` + `ref:`. The\n * compiler's inline phase materialises the real trait at build time.\n *\n * Do not hand-edit — regenerate via\n * node scripts/regenerate-std-ts.mjs --only=std-cascade-on-delete\n *\n * @level atom\n * @packageDocumentation\n */\n\nimport type { TraitReference, PageRefObject, OrbitalDefinition, Entity, EntityField, EntityPersistence, TraitConfig, TraitFieldRef, EntityRow, SExpr, TraitEventListener, Trait, StateMachine } from '@almadar/core/types';\nimport type { MakeTraitRefOpts } from '@almadar/core/builders';\nimport { makeTraitRef, makePageRef, makeOrbitalWithUses } from '@almadar/core/builders';\n\nconst BEHAVIOR_PATH = 'std/behaviors/std-cascade-on-delete';\nconst ALIAS = 'CascadeOnDelete';\n\n/**\n * Closed set of event keys this trait recognises —\n * derived from the .orb's `stateMachine.events[]` block\n * (transition triggers + emit names). Use as the key type\n * when passing an `events:` rename map at the call site.\n */\nexport type StdCascadeOnDeleteEventKey = 'CascadeCompleted' | 'CascadeFailed' | 'CascadeRowsFetched' | 'CascadeRowsLoaded' | 'ParentDeleted';\n\n/**\n * Payload shape for the `CascadeRowsFetched` event.\n */\nexport interface StdCascadeOnDeleteCascadeRowsFetchedPayload {\n data?: EntityRow[];\n}\n\n/**\n * Payload shape for the `CascadeRowsLoaded` event.\n */\nexport interface StdCascadeOnDeleteCascadeRowsLoadedPayload {\n parentId?: string;\n data?: EntityRow[];\n}\n\n/**\n * Payload shape for the `CascadeCompleted` event.\n */\nexport interface StdCascadeOnDeleteCascadeCompletedPayload {\n parentId?: string;\n deletedCount?: number;\n}\n\n/**\n * Payload shape for the `CascadeFailed` event.\n */\nexport interface StdCascadeOnDeleteCascadeFailedPayload {\n error?: string;\n code?: string;\n}\n\n/**\n * Typed call-site config block for this trait — every\n * field maps to a `config { ... }` entry in the source\n * .lolo. The agent fills these to specialise the trait\n * without modifying its state-machine topology.\n */\nexport interface StdCascadeOnDeleteConfig {\n /** Default: `\"\"` */\n parentEntity?: string;\n /** Default: `[]` */\n dependentEntities?: string[];\n /** Default: `\"\"` */\n foreignKeyField?: string;\n}\n\n/**\n * Params for the std-cascade-on-delete descriptor helpers.\n *\n * `entityName` binds every trait/page reference's `linkedEntity`.\n * The optional override fields mirror TraitReference / PageRefObject\n * fields and are forwarded to `makeTraitRef` / `makePageRef`.\n */\nexport interface StdCascadeOnDeleteParams {\n entityName: string;\n /** Extra fields to add to the orbital-scoped entity clone. */\n fields?: EntityField[];\n /** Entity persistence mode. Defaults to `persistent` when omitted.\n * See @almadar/core EntityPersistence: persistent | runtime | singleton | instance | local. */\n persistence?: EntityPersistence;\n /** Rename the inlined trait at the call site. */\n traitName?: string;\n /** Per-key event rename map. Keys narrow to the trait's declared emit names. */\n events?: Partial<Record<StdCascadeOnDeleteEventKey, string>>;\n /** Per-event effect replacement (keys are POST-rename event names). */\n effects?: Record<string, SExpr[]>;\n /** Replace the imported trait's `listens` array entirely. */\n listens?: TraitEventListener[];\n /** Set every emit's scope. */\n emitsScope?: 'internal' | 'external';\n /** Typed call-site config block — see the per-field interface. */\n config?: StdCascadeOnDeleteConfig;\n /** URL path override for the (first) page. */\n pagePath?: string;\n}\n\n/** Trait descriptor: `CascadeOnDelete.traits.CascadeOnDeleteGate`. */\nexport function stdCascadeOnDeleteTrait(params: StdCascadeOnDeleteParams): TraitReference {\n return makeTraitRef({\n from: BEHAVIOR_PATH,\n ref: `${ALIAS}.traits.CascadeOnDeleteGate`,\n linkedEntity: params.entityName,\n ...(params.traitName !== undefined ? { name: params.traitName } : {}),\n ...(params.events !== undefined ? { events: params.events as Record<string, string> } : {}),\n ...(params.effects !== undefined ? { effects: params.effects } : {}),\n ...(params.listens !== undefined ? { listens: params.listens } : {}),\n ...(params.emitsScope !== undefined ? { emitsScope: params.emitsScope } : {}),\n ...(params.config !== undefined ? { config: params.config as TraitConfig } : {}),\n });\n}\n\n/** Page descriptor: `CascadeOnDelete.pages.CascadeOnDeletePage`. */\nexport function stdCascadeOnDeletePage(params: StdCascadeOnDeleteParams): PageRefObject {\n return makePageRef({\n from: BEHAVIOR_PATH,\n ref: `${ALIAS}.pages.CascadeOnDeletePage`,\n ...(params.pagePath !== undefined ? { path: params.pagePath } : {}),\n linkedEntity: params.entityName,\n });\n}\n\n/** Whole-orbital descriptor. */\nexport function stdCascadeOnDelete(params: StdCascadeOnDeleteParams): OrbitalDefinition {\n const entity: Entity = {\n name: params.entityName,\n fields: params.fields ?? [],\n ...(params.persistence !== undefined ? { persistence: params.persistence } : {}),\n };\n return makeOrbitalWithUses({\n name: 'CascadeOnDeleteOrbital',\n uses: [{ from: BEHAVIOR_PATH, as: ALIAS }],\n entity,\n traits: [\n stdCascadeOnDeleteTrait(params),\n ],\n pages: [\n stdCascadeOnDeletePage(params),\n ],\n });\n}\n","/**\n * Phase 9 — Typed factory dispatcher.\n *\n * Looks up a per-orbital factory by (organism, orbitalName) and calls\n * it with consumer params, narrowing from `object` to the per-factory\n * typed shape via emitted typed guards (no `as unknown as`).\n *\n * Autogenerated by scripts/regenerate-std-ts.mjs from\n * packages/almadar-std/behaviors/registry/<topic>/organisms/std-*.orb\n * (multi-orbital organisms only).\n *\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, TraitReference } from '@almadar/core/types';\n\n\nexport interface ParamFieldDescriptor {\n name: string;\n type: string;\n description: string;\n}\n\nexport interface OrbitalParamsManifest {\n organism: string;\n orbitalName: string;\n paramFields: readonly ParamFieldDescriptor[];\n traitNames: readonly string[];\n inlineTraitNames: readonly string[];\n}\n\ninterface DispatchEntry {\n factory: (params: object) => OrbitalDefinition;\n manifest: OrbitalParamsManifest;\n}\n\nconst REGISTRY: ReadonlyMap<string, DispatchEntry> = new Map<string, DispatchEntry>([\n]);\n\n/**\n * One trait reference appended via `params.extraTraits[]`. Phase 2\n * (Mechanism 2). `from` + `as` are required because the dispatcher\n * merges into `uses[]` verbatim — no JS-side name transforms.\n * Mirrors `ExtraTraitRef` from @almadar-io/agent — kept structural\n * (no inter-package type dep) but type-compatible.\n */\nexport interface DispatchExtraTrait\n extends Pick<TraitReference, 'ref' | 'name' | 'linkedEntity' | 'config' | 'events' | 'listens' | 'emitsScope'>\n{\n from: string;\n as: string;\n}\n\n/**\n * Look up the per-orbital factory by (organism, orbitalName) and call\n * it with the supplied params. Returns null when no factory exists.\n * Throws TypeError when params fail the factory's typed guard\n * (caught by the agent's instantiate-orbital surface).\n *\n * `params.extraTraits` (Phase 2) is orthogonal to factory-specific\n * params: it's separated out BEFORE the typed guard runs and appended\n * to `def.traits[]` (with corresponding `uses[]` entries merged) AFTER\n * the factory returns. Strictly additive — never replaces factory\n * traits.\n */\nexport function dispatchOrbitalFactory(\n organism: string,\n orbitalName: string,\n params: object & { extraTraits?: DispatchExtraTrait[] },\n): OrbitalDefinition | null {\n const entry = REGISTRY.get(`${organism}::${orbitalName}`);\n if (!entry) return null;\n const { extraTraits, ...factoryParams } = params;\n const def = entry.factory(factoryParams);\n if (extraTraits && extraTraits.length > 0) {\n if (!def.uses) def.uses = [];\n if (!def.traits) def.traits = [];\n for (const extra of extraTraits) {\n // Dedup on alias (`as`), not registry path (`from`). Multiple\n // aliases for the same path are valid: the factory may have\n // already imported `from: std-stats as: Stats`, but a caller\n // appending `from: std-stats as: KpiStats` needs the new\n // alias registered so its `ref: KpiStats.traits.…` resolves.\n const aliasTaken = def.uses.some((u) => u.as === extra.as);\n if (!aliasTaken) {\n def.uses.push({ from: extra.from, as: extra.as });\n }\n const { from: _from, as: _as, ...traitFields } = extra;\n def.traits.push(traitFields);\n }\n }\n return def;\n}\n\n/**\n * Fetch the params manifest for one (organism, orbitalName). Returns\n * null when no factory exists. Used by the agent's Stage A prompt to\n * surface paramFields + traitNames + inlineTraitNames as the closed\n * set the LLM may emit.\n */\nexport function getOrbitalFactoryManifest(\n organism: string,\n orbitalName: string,\n): OrbitalParamsManifest | null {\n const entry = REGISTRY.get(`${organism}::${orbitalName}`);\n return entry ? entry.manifest : null;\n}\n\n/**\n * List every orbital manifest for one organism. Used by Stage A to\n * embed the chosen organism's full manifest set into the prompt.\n */\nexport function listOrganismOrbitalManifests(\n organism: string,\n): OrbitalParamsManifest[] {\n const out: OrbitalParamsManifest[] = [];\n const prefix = `${organism}::`;\n for (const [key, entry] of REGISTRY) {\n if (key.startsWith(prefix)) out.push(entry.manifest);\n }\n return out;\n}\n","/**\n * Exports Reader\n *\n * Provides programmatic access to golden behaviors.\n * Uses behavior functions from ./functions/ instead of reading .orb files from disk.\n * This makes the package work in bundled environments (no filesystem access for package data).\n *\n * @packageDocumentation\n */\n\nimport * as behaviorFns from './functions/index.js';\nimport type { OrbitalDefinition, OrbitalSchema } from '@almadar/core/types';\n\nexport type BehaviorLevel = 'atoms' | 'molecules' | 'organisms';\n\n/**\n * Convert function name (stdCart) to behavior name (std-cart).\n * Returns null for non-behavior exports (types, helpers, entity/trait/page variants).\n */\nfunction fnNameToBehaviorName(fnName: string): string | null {\n if (fnName.includes('Entity') || fnName.includes('Trait') || fnName.includes('Page')) return null;\n if (['connect', 'compose', 'pipe', 'makeEntity', 'makePage', 'makeOrbital', 'mergeOrbitals', 'wire', 'extractTrait', 'ensureIdField', 'plural'].includes(fnName)) return null;\n\n const withDashes = fnName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n if (!withDashes.startsWith('std-')) return null;\n return withDashes;\n}\n\ninterface BehaviorEntry {\n name: string;\n fn: (params: { entityName: string }) => unknown;\n}\n\nlet cachedEntries: BehaviorEntry[] | null = null;\n\nfunction getEntries(): BehaviorEntry[] {\n if (cachedEntries) return cachedEntries;\n\n cachedEntries = [];\n const fns = behaviorFns as Record<string, unknown>;\n\n for (const [fnName, fn] of Object.entries(fns)) {\n if (typeof fn !== 'function') continue;\n const behaviorName = fnNameToBehaviorName(fnName);\n if (!behaviorName) continue;\n cachedEntries.push({ name: behaviorName, fn: fn as (params: { entityName: string }) => unknown });\n }\n\n return cachedEntries;\n}\n\nfunction callBehavior(entry: BehaviorEntry): OrbitalSchema {\n const result = entry.fn({ entityName: entry.name.replace(/^std-/, '') });\n // Phase 4.2: per-orbital factories return a single `OrbitalDefinition`.\n // Phase 2 (organism-oriented model): the bundled wrapper for each app\n // organism (`stdEcommerce`, `stdHelpdesk`, etc.) returns\n // `OrbitalDefinition[]` — one entry per per-orbital factory it\n // composes. Detect both shapes and spread the array form so the\n // wrapping schema's `orbitals` stays flat. Without this branch,\n // every app organism round-tripped through `loadGoldenOrb` came\n // back as `{ orbitals: [ [orb1, orb2, ...] ] }` and downstream\n // consumers (analyzer catalog, compiler embedded loader) iterated\n // arrays where they expected OrbitalDefinitions.\n const orbitals: OrbitalDefinition[] = Array.isArray(result)\n ? (result as OrbitalDefinition[])\n : [result as OrbitalDefinition];\n return {\n name: entry.name,\n orbitals,\n };\n}\n\nexport function getAllBehaviorNames(): string[] {\n return getEntries().map(e => e.name);\n}\n\nexport function getAllBehaviors(): OrbitalSchema[] {\n const results: OrbitalSchema[] = [];\n for (const entry of getEntries()) {\n try {\n results.push(callBehavior(entry));\n } catch {\n // Some behaviors require params beyond { entityName } (e.g. fields, categories).\n // Skip them when enumerating the catalog — they still work when called with full params.\n }\n }\n return results;\n}\n\nexport function getBehaviorsByLevel(level: BehaviorLevel): OrbitalSchema[] {\n // Level is encoded in the behavior name pattern via the registry\n // For now, return all and let the caller filter via the registry\n return getAllBehaviors();\n}\n\nexport function loadGoldenOrb(behaviorName: string): OrbitalSchema | null {\n const entry = getEntries().find(e => e.name === behaviorName);\n if (!entry) return null;\n try {\n return callBehavior(entry);\n } catch {\n return null;\n }\n}\n\nexport function hasGoldenOrb(behaviorName: string): boolean {\n return getEntries().some(e => e.name === behaviorName);\n}\n\nexport function getBehavior(behaviorName: string): OrbitalSchema | null {\n return loadGoldenOrb(behaviorName);\n}\n","/**\n * Behavior Registry Query Helpers\n *\n * Programmatic access to behaviors-registry.json for filtering,\n * searching, and summarizing behaviors. Used by @almadar/skills\n * to compose agent prompts dynamically.\n *\n * @packageDocumentation\n */\n\nimport { loadGoldenOrb } from './exports-reader.js';\n\n// Import registry data directly — bundlers inline this at build time.\n// Falls back to fs read for dev mode (unbundled).\nlet registryJsonData: { behaviors: Record<string, unknown> } | null = null;\n\nasync function loadRegistryData(): Promise<{ behaviors: Record<string, unknown> }> {\n if (registryJsonData) return registryJsonData;\n try {\n // Try dynamic import (works in bundled and unbundled ESM)\n const { readFileSync } = await import('fs');\n const { resolve, dirname } = await import('path');\n const { fileURLToPath } = await import('url');\n const dir = dirname(fileURLToPath(import.meta.url));\n const raw = readFileSync(resolve(dir, 'behaviors-registry.json'), 'utf-8');\n registryJsonData = JSON.parse(raw);\n } catch {\n registryJsonData = { behaviors: {} };\n }\n return registryJsonData!;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface RegistryEntry {\n name: string;\n level: 'atom' | 'molecule' | 'organism';\n family: string;\n layer: string;\n description: string;\n statePattern: string;\n complexity: { states: number; events: number; transitions: number };\n defaultEntity: {\n name: string;\n persistence: string;\n fields: Array<{ name: string; type: string; default?: string }>;\n };\n defaultLabels: {\n title: string;\n entitySingular: string;\n entityPlural: string;\n };\n composableWith: string[];\n connectableEvents: string[];\n eventPayloads: Record<string, Array<{ name: string; type: string; required: boolean }>>;\n}\n\nexport interface BehaviorSummary {\n name: string;\n level: string;\n description: string;\n states: string[];\n events: string[];\n slots: string[];\n patterns: string[];\n complexity: { states: number; events: number; transitions: number };\n composableWith: string[];\n}\n\n// ============================================================================\n// Registry Cache\n// ============================================================================\n\nlet registryCache: Record<string, RegistryEntry> | null = null;\n\n/**\n * Read and cache the behavior registry.\n * Async to support bundled environments where fs may not be available.\n */\nexport async function getBehaviorRegistry(): Promise<Record<string, RegistryEntry>> {\n if (registryCache) return registryCache;\n try {\n const data = await loadRegistryData();\n registryCache = data.behaviors as Record<string, RegistryEntry>;\n return registryCache;\n } catch {\n return {};\n }\n}\n\n// ============================================================================\n// Query Functions\n// ============================================================================\n\n/**\n * Filter behaviors by domain. Matches against layer (primary) and family (fallback).\n */\nexport async function getBehaviorsByDomain(domain: string): Promise<RegistryEntry[]> {\n const registry = await getBehaviorRegistry();\n const lower = domain.toLowerCase();\n return Object.values(registry).filter((b) => {\n return b.layer.toLowerCase() === lower ||\n b.layer.toLowerCase().includes(lower) ||\n b.family.toLowerCase() === lower ||\n b.family.toLowerCase().includes(lower);\n });\n}\n\n/**\n * Filter behaviors by connectable operations (events).\n * Returns behaviors sorted by match count (most matching ops first).\n */\nexport async function getBehaviorsByOperations(ops: string[]): Promise<RegistryEntry[]> {\n const registry = await getBehaviorRegistry();\n const upperOps = ops.map(o => o.toUpperCase());\n\n const scored = Object.values(registry).map((b) => {\n const matches = upperOps.filter(op =>\n b.connectableEvents.some(e => e.toUpperCase() === op || e.toUpperCase().includes(op))\n );\n return { entry: b, score: matches.length };\n });\n\n return scored\n .filter(s => s.score > 0)\n .sort((a, b) => b.score - a.score)\n .map(s => s.entry);\n}\n\n/**\n * Fuzzy search across name, description, family, layer, and entity name.\n */\nexport async function searchBehaviors(query: string): Promise<RegistryEntry[]> {\n const registry = await getBehaviorRegistry();\n const tokens = query.toLowerCase().split(/\\s+/).filter(Boolean);\n\n const scored = Object.values(registry).map((b) => {\n const searchText = [\n b.name,\n b.description,\n b.family,\n b.layer,\n b.defaultEntity.name,\n b.statePattern,\n ].join(' ').toLowerCase();\n\n const score = tokens.filter(t => searchText.includes(t)).length;\n return { entry: b, score };\n });\n\n return scored\n .filter(s => s.score > 0)\n .sort((a, b) => b.score - a.score)\n .map(s => s.entry);\n}\n\n/**\n * Get a compact summary of a behavior including slots and patterns from the .orb file.\n */\nexport async function getBehaviorSummary(name: string): Promise<BehaviorSummary | null> {\n const registry = await getBehaviorRegistry();\n const entry = registry[name];\n if (!entry) return null;\n\n // Base data from registry\n const summary: BehaviorSummary = {\n name: entry.name,\n level: entry.level,\n description: entry.description,\n states: entry.statePattern.split(', ').filter(Boolean),\n events: entry.connectableEvents,\n slots: [],\n patterns: [],\n complexity: entry.complexity,\n composableWith: entry.composableWith.slice(0, 10),\n };\n\n // Enrich with slots and patterns from the actual .orb file\n try {\n const orb = loadGoldenOrb(name);\n if (orb) {\n const slots = new Set<string>();\n const patterns = new Set<string>();\n extractSlotsAndPatterns(orb, slots, patterns);\n summary.slots = Array.from(slots);\n summary.patterns = Array.from(patterns);\n }\n } catch {\n // .orb load failed, return registry-only data\n }\n\n return summary;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * Walk an object recursively to extract render-ui slots and pattern types.\n */\nfunction extractSlotsAndPatterns(\n obj: unknown,\n slots: Set<string>,\n patterns: Set<string>,\n): void {\n if (Array.isArray(obj)) {\n // Check for render-ui effect: [\"render-ui\", slotName, uiTree]\n if (obj.length >= 3 && obj[0] === 'render-ui' && typeof obj[1] === 'string') {\n slots.add(obj[1]);\n if (obj[2] && typeof obj[2] === 'object') {\n extractPatternTypes(obj[2], patterns);\n }\n }\n for (const item of obj) {\n extractSlotsAndPatterns(item, slots, patterns);\n }\n } else if (obj && typeof obj === 'object') {\n for (const value of Object.values(obj)) {\n extractSlotsAndPatterns(value, slots, patterns);\n }\n }\n}\n\n/**\n * Walk a render-ui tree to collect all pattern type values.\n */\nfunction extractPatternTypes(node: unknown, patterns: Set<string>): void {\n if (!node || typeof node !== 'object') return;\n const obj = node as Record<string, unknown>;\n if (typeof obj.type === 'string') {\n patterns.add(obj.type);\n }\n if (Array.isArray(obj.children)) {\n for (const child of obj.children) {\n extractPatternTypes(child, patterns);\n }\n }\n}\n","/**\n * Explode Behavior Composition\n *\n * Human-authoring primitive (Phase 5.3 of Almadar_Agent_Behaviors_Plan).\n *\n * Returns the flat list of `TraitReference` objects a behavior is\n * composed from. For molecules/organisms with `uses:` imports, walks the\n * orbital's `traits:` array and filters for `TraitReference` entries\n * (skipping inline trait definitions). For leaf atoms (no composition),\n * returns a single synthetic `TraitReference` pointing at the atom's own\n * trait so consumers always get a non-empty array.\n *\n * **Not exposed to the agent or LLM** — this is for developers designing\n * new molecules or debugging compositions. The plan's §6a.3 explicitly\n * scopes it as human tooling.\n *\n * Implementation notes:\n * - Reads behaviors via the bundled `./functions/index.js` factories (same\n * approach as `exports-reader.ts`). No filesystem access, no coupling\n * to sibling packages — just calling functions that already exist in\n * this package.\n * - `TraitReference.from` is backfilled from the orbital's `uses:` header\n * when the call-site omitted it but the `ref:` uses an imported alias.\n *\n * @packageDocumentation\n */\n\nimport * as behaviorFns from './functions/index.js';\nimport type { OrbitalDefinition, UseDeclaration } from '@almadar/core/types';\nimport type { Trait, TraitRef, TraitReference } from '@almadar/core/types';\nimport { isInlineTrait } from '@almadar/core/types';\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction isTraitReferenceObject(entry: TraitRef): entry is TraitReference {\n return (\n typeof entry === 'object' &&\n entry !== null &&\n 'ref' in entry &&\n typeof (entry as { ref: unknown }).ref === 'string' &&\n !isInlineTrait(entry as TraitRef)\n );\n}\n\nfunction aliasToFromMap(uses: UseDeclaration[] | undefined): Map<string, string> {\n const map = new Map<string, string>();\n if (!uses) return map;\n for (const use of uses) {\n map.set(use.as, use.from);\n }\n return map;\n}\n\nfunction extractAlias(ref: string): string | null {\n const match = ref.match(/^([A-Z][a-zA-Z0-9]*)\\.traits\\.[A-Z][a-zA-Z0-9]*$/);\n return match ? match[1] : null;\n}\n\nfunction findAtomInlineTrait(orbital: OrbitalDefinition): Trait | undefined {\n for (const entry of orbital.traits) {\n if (typeof entry === 'object' && entry !== null && isInlineTrait(entry as TraitRef)) {\n return entry as Trait;\n }\n }\n return undefined;\n}\n\nfunction syntheticLeafReference(\n behaviorName: string,\n orbital: OrbitalDefinition,\n trait: Trait,\n): TraitReference {\n const base = behaviorName.replace(/^std-/, '');\n const alias = base\n .split('-')\n .filter((segment) => segment.length > 0)\n .map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))\n .join('') || 'Behavior';\n\n const entityName =\n typeof orbital.entity === 'string'\n ? orbital.entity\n : 'name' in orbital.entity && typeof orbital.entity.name === 'string'\n ? orbital.entity.name\n : undefined;\n\n const reference: TraitReference = {\n ref: `${alias}.traits.${trait.name}`,\n from: `std/behaviors/${behaviorName}`,\n };\n if (trait.linkedEntity !== undefined) {\n reference.linkedEntity = trait.linkedEntity;\n } else if (entityName !== undefined) {\n reference.linkedEntity = entityName;\n }\n return reference;\n}\n\n// ============================================================================\n// Behavior name → factory function\n// ============================================================================\n\nfunction fnNameToBehaviorName(fnName: string): string | null {\n if (fnName.includes('Entity') || fnName.includes('Trait') || fnName.includes('Page')) return null;\n if (\n ['connect', 'compose', 'pipe', 'makeEntity', 'makePage', 'makeOrbital', 'makeSchema',\n 'makeTraitRef', 'makePageRef', 'makeOrbitalWithUses', 'makeAtomOrbital',\n 'mergeOrbitals', 'wire', 'extractTrait', 'ensureIdField', 'plural'].includes(fnName)\n ) return null;\n const withDashes = fnName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n if (!withDashes.startsWith('std-')) return null;\n return withDashes;\n}\n\nfunction findFactory(behaviorName: string): ((params: { entityName: string }) => unknown) | null {\n const fns = behaviorFns as Record<string, unknown>;\n for (const [fnName, fn] of Object.entries(fns)) {\n if (typeof fn !== 'function') continue;\n const mapped = fnNameToBehaviorName(fnName);\n if (mapped === behaviorName) {\n return fn as (params: { entityName: string }) => unknown;\n }\n }\n return null;\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\n/**\n * Flatten a behavior's composition into the list of `TraitReference`\n * objects it's built from.\n *\n * For composed behaviors (molecules, organisms) this returns every\n * `TraitReference` entry from every orbital's `traits:` array, carrying\n * the call-site `ref`, backfilled `from` (looked up against the\n * orbital's `uses:` imports when omitted), `linkedEntity`, `events`,\n * `effects`, and any other override fields declared at the call site.\n *\n * For leaf atoms the function returns a single synthetic `TraitReference`\n * pointing at the atom's own trait, so consumers always get a non-empty\n * array.\n *\n * @param behaviorName - Registry name of the behavior (`\"std-cart\"`,\n * `\"std-browse\"`, etc.).\n * @throws When the behavior isn't exported from `@almadar/std`.\n */\nexport function explodeBehaviorComposition(behaviorName: string): TraitReference[] {\n const factory = findFactory(behaviorName);\n if (!factory) {\n throw new Error(\n `explodeBehaviorComposition: behavior \"${behaviorName}\" is not exported from @almadar/std.`,\n );\n }\n\n let result: unknown;\n try {\n result = factory({ entityName: behaviorName.replace(/^std-/, '') });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n throw new Error(\n `explodeBehaviorComposition: factory for \"${behaviorName}\" threw when called with default params: ${message}`,\n );\n }\n\n const orbital = result as OrbitalDefinition;\n const uses = aliasToFromMap(orbital.uses);\n const refs: TraitReference[] = [];\n\n for (const entry of orbital.traits) {\n if (!isTraitReferenceObject(entry)) continue;\n const ref: TraitReference = { ...entry };\n if (ref.from === undefined) {\n const alias = extractAlias(ref.ref);\n const mapped = alias !== null ? uses.get(alias) : undefined;\n if (mapped !== undefined) {\n ref.from = mapped;\n }\n }\n refs.push(ref);\n }\n\n if (refs.length === 0) {\n const inline = findAtomInlineTrait(orbital);\n if (inline !== undefined) {\n return [syntheticLeafReference(behaviorName, orbital, inline)];\n }\n }\n\n return refs;\n}\n","/**\n * Standard Library Documentation Generator\n *\n * Generates documentation data from the std library source.\n * Parses modules and behaviors to produce structured JSON for docs.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta, StdModule, OperatorTypeRef } from './types.js';\nimport type { BehaviorTrait } from './behaviors/types.js';\nimport type { State, Event, Transition } from '@almadar/core/types';\nimport { STD_MODULES } from './types.js';\nimport { STD_OPERATORS_BY_MODULE } from './registry.js';\nimport { getAllBehaviors } from './behaviors/exports-reader.js';\n\n// ============================================================================\n// Domain Language Mappings\n// ============================================================================\n\n/**\n * Human-friendly module descriptions\n */\nexport const MODULE_DESCRIPTIONS: Record<StdModule, ModuleInfo> = {\n core: {\n name: 'Core',\n displayName: 'Language Primitives',\n description: 'Unnamespaced S-expression operators: arithmetic, comparison, logic, control flow, and effects. The core of the .orb language.',\n icon: '⚙️',\n },\n math: {\n name: 'Math',\n displayName: 'Mathematical Operations',\n description: 'Numeric operations for calculations, rounding, clamping, and randomization.',\n icon: '🔢',\n },\n str: {\n name: 'String',\n displayName: 'String Operations',\n description: 'Text manipulation including formatting, splitting, trimming, and templating.',\n icon: '📝',\n },\n array: {\n name: 'Array',\n displayName: 'Collection Operations',\n description: 'Work with lists and arrays including filtering, mapping, and aggregation.',\n icon: '📋',\n },\n object: {\n name: 'Object',\n displayName: 'Object Utilities',\n description: 'Access and manipulate object properties safely.',\n icon: '🔑',\n },\n time: {\n name: 'Time',\n displayName: 'Date & Time',\n description: 'Work with dates, times, durations, and timestamps.',\n icon: '⏰',\n },\n validate: {\n name: 'Validate',\n displayName: 'Input Validation',\n description: 'Validate user input with common patterns like email, required, length checks.',\n icon: '✅',\n },\n format: {\n name: 'Format',\n displayName: 'Data Formatting',\n description: 'Display formatting for currency, numbers, dates, and file sizes.',\n icon: '🎨',\n },\n async: {\n name: 'Async',\n displayName: 'Async Operations',\n description: 'Control timing with delays, debouncing, retries, and timeouts.',\n icon: '⏳',\n },\n nn: {\n name: 'Neural Network',\n displayName: 'Neural Network Operations',\n description: 'Define and compose neural network layers and modules.',\n icon: '🧠',\n },\n tensor: {\n name: 'Tensor',\n displayName: 'Tensor Operations',\n description: 'Create and manipulate multi-dimensional arrays for numerical computing.',\n icon: '📊',\n },\n train: {\n name: 'Training',\n displayName: 'Training Operations',\n description: 'Training loops, loss functions, and optimization for neural networks.',\n icon: '🎯',\n },\n prob: {\n name: 'Probabilistic',\n displayName: 'Probabilistic Programming',\n description: 'Distribution sampling, Bayesian inference via rejection sampling, and statistical summaries.',\n icon: '🎲',\n },\n os: {\n name: 'OS Triggers',\n displayName: 'Operating System Events',\n description: 'Watch file system, processes, ports, signals, and environment for OS-level triggers.',\n icon: '🖥️',\n },\n graph: {\n name: 'Graph',\n displayName: 'Graph Operations',\n description: 'Graph construction, traversal, and algorithms for nodes and edges.',\n icon: '🕸️',\n },\n contract: {\n name: 'Contract',\n displayName: 'Contract Verification',\n description: 'Pre/post-condition assertions and invariant checking for runtime contracts.',\n icon: '📜',\n },\n data: {\n name: 'Data',\n displayName: 'Data Pipeline',\n description: 'Data loading, batching, shuffling, and preprocessing for ML pipelines.',\n icon: '📦',\n },\n agent: {\n name: 'Agent',\n displayName: 'Agent Intelligence',\n description: 'Agent memory management, LLM access, tool invocation, context management, and session control.',\n icon: '🤖',\n },\n composition: {\n name: 'Composition',\n displayName: 'Behavior Composition',\n description: 'Compile-time operators for composing N orbitals into a single application schema.',\n icon: '🧩',\n },\n};\n\n/**\n * (DEPRECATED) Behavior category descriptions\n * Categories have been removed from behaviors, using flat list now.\n */\nconst BEHAVIOR_GROUPINGS = {\n 'ui-interaction': {\n name: 'UI Interaction',\n description: 'User interface state management for lists, forms, modals, and navigation.',\n icon: '🖥️',\n },\n 'data-management': {\n name: 'Data Management',\n description: 'Data operations including pagination, selection, sorting, and filtering.',\n icon: '📊',\n },\n async: {\n name: 'Async Flow',\n description: 'Asynchronous workflows for loading, fetching, submitting, and polling data.',\n icon: '🔄',\n },\n feedback: {\n name: 'User Feedback',\n description: 'Provide feedback to users with notifications, confirmations, and undo actions.',\n icon: '💬',\n },\n 'game-core': {\n name: 'Game Core',\n description: 'Foundation systems for games: game loop, physics, input, and collision detection.',\n icon: '🎮',\n },\n 'game-entity': {\n name: 'Game Entity',\n description: 'Entity state behaviors: health, score, movement, combat, and inventory.',\n icon: '👾',\n },\n 'game-ui': {\n name: 'Game UI',\n description: 'Game interface systems: flow control, dialogue, and level progression.',\n icon: '🕹️',\n },\n};\n\nexport const BEHAVIOR_CATEGORY_DESCRIPTIONS = BEHAVIOR_GROUPINGS;\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ModuleInfo {\n name: string;\n displayName: string;\n description: string;\n icon: string;\n}\n\nexport interface CategoryInfo {\n name: string;\n description: string;\n icon: string;\n}\n\nexport interface OperatorDoc {\n name: string;\n shortName: string;\n displayName: string;\n description: string;\n params: Array<{\n name: string;\n type: string;\n description: string;\n optional?: boolean;\n defaultValue?: unknown;\n }>;\n example: string;\n returnType: string;\n returnTypeHuman: string;\n arityHuman: string;\n minArity: number;\n maxArity: number | null;\n hasSideEffects: boolean;\n acceptsLambda: boolean;\n pureFunction: boolean;\n}\n\nexport interface ModuleDoc {\n id: StdModule;\n name: string;\n displayName: string;\n description: string;\n icon: string;\n operators: OperatorDoc[];\n operatorCount: number;\n}\n\nexport interface BehaviorTransitionDoc {\n from: string | string[] | '*';\n to?: string;\n event: string;\n guard?: unknown;\n effects?: unknown[];\n}\n\nexport interface BehaviorStateMachineDoc {\n states: Array<{ name: string; isInitial?: boolean; isFinal?: boolean }>;\n transitions: BehaviorTransitionDoc[];\n}\n\nexport interface BehaviorDoc {\n name: string;\n shortName: string;\n description: string;\n suggestedFor?: string[];\n states: string[];\n statesCount: number;\n initial: string;\n events: string[];\n eventsCount: number;\n hasFields: boolean;\n hasComputed: boolean;\n hasTicks: boolean;\n ticksCount: number;\n transitionsCount: number;\n /** Full state machine data for visualizer */\n stateMachine?: BehaviorStateMachineDoc;\n /** Full behavior source code for display */\n sourceCode?: string;\n /** Data entities (runtime state) */\n dataEntities?: Array<{ name: string; fields: Array<{ name: string; type: string; default?: unknown }> }>;\n /** Ticks (frame-by-frame execution) */\n ticks?: Array<{ name: string; interval: string | number; description?: string }>;\n}\n\nexport interface CategoryDoc {\n id: string;\n name: string;\n description: string;\n icon: string;\n behaviors: BehaviorDoc[];\n behaviorCount: number;\n}\n\nexport interface DocsStats {\n totalModules: number;\n totalOperators: number;\n totalBehaviorCategories: number;\n totalBehaviors: number;\n generatedAt: string;\n}\n\nexport interface StdLibDocs {\n modules: ModuleDoc[];\n stats: DocsStats;\n}\n\nexport interface BehaviorsDocs {\n categories: CategoryDoc[];\n stats: DocsStats;\n}\n\n// ============================================================================\n// Transformation Functions\n// ============================================================================\n\n/**\n * Transform operator name to human-friendly format\n * e.g., \"math/clamp\" -> \"Clamp Value\"\n */\nexport function humanizeOperatorName(operatorName: string): string {\n const parts = operatorName.split('/');\n const funcName = parts[1];\n if (!funcName) return operatorName;\n\n // Handle special cases\n const specialNames: Record<string, string> = {\n abs: 'Absolute Value',\n len: 'Length',\n lerp: 'Linear Interpolation',\n randomInt: 'Random Integer',\n isPast: 'Is Past Date',\n isFuture: 'Is Future Date',\n minLength: 'Minimum Length',\n maxLength: 'Maximum Length',\n isType: 'Is Type',\n groupBy: 'Group By',\n sortBy: 'Sort By',\n findFirst: 'Find First',\n findLast: 'Find Last',\n };\n\n if (specialNames[funcName]) return specialNames[funcName];\n\n // Convert camelCase to Title Case\n return funcName\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, (str) => str.toUpperCase())\n .trim();\n}\n\n/**\n * Transform return type to human-friendly format\n */\nexport function humanizeReturnType(returnType: string | undefined): string {\n const typeMap: Record<string, string> = {\n number: 'number',\n string: 'text',\n boolean: 'true/false',\n array: 'list',\n object: 'object',\n any: 'any value',\n void: 'nothing',\n };\n return typeMap[returnType || ''] || returnType || 'any';\n}\n\n/**\n * Format arity as human-readable text\n */\nexport function formatArity(minArity: number, maxArity: number | null): string {\n if (maxArity === null) {\n return minArity === 0 ? 'variable (any number)' : `${minArity} or more`;\n }\n if (minArity === maxArity) {\n return minArity === 1 ? '1 argument' : `${minArity} arguments`;\n }\n return `${minArity}–${maxArity} arguments`;\n}\n\n// ============================================================================\n// Documentation Generation\n// ============================================================================\n\n/**\n * Convert a Schema v2 OperatorTypeRef into a readable string for docs.\n * Back-compat: plain string types pass through unchanged.\n */\nfunction formatTypeRef(ref: OperatorTypeRef): string {\n if (typeof ref === 'string') return ref;\n switch (ref.kind) {\n case 'literal':\n return JSON.stringify(ref.value);\n case 'union':\n return ref.of.map(formatTypeRef).join(' | ');\n case 'array':\n return `${formatTypeRef(ref.of)}[]`;\n case 'object': {\n const fields = Object.entries(ref.fields)\n .map(([k, v]) => `${k}: ${formatTypeRef(v)}`)\n .join(', ');\n return ref.open ? `{ ${fields}, ... }` : `{ ${fields} }`;\n }\n case 'entity':\n return ref.collection ? `Entity<${ref.collection}>` : 'Entity';\n case 'entityRef':\n return 'EntityRef';\n case 'eventKey':\n return ref.scope ? `EventKey<${ref.scope}>` : 'EventKey';\n case 'uiSlot':\n return 'UISlot';\n case 'patternType':\n return 'PatternType';\n case 'binding':\n return ref.shape ? `Binding<${formatTypeRef(ref.shape)}>` : 'Binding';\n case 'sexpr':\n return 'SExpr';\n }\n}\n\n/**\n * Generate documentation for a single operator\n */\nexport function generateOperatorDoc(opName: string, meta: StdOperatorMeta): OperatorDoc {\n return {\n name: opName,\n shortName: opName.split('/')[1] || opName,\n displayName: humanizeOperatorName(opName),\n description: meta.description,\n params: (meta.params || []).map((p) => ({\n name: p.name,\n type: formatTypeRef(p.type),\n description: p.description,\n optional: p.optional,\n defaultValue: p.defaultValue,\n })),\n example: meta.example || '',\n returnType: meta.returnType || 'any',\n returnTypeHuman: humanizeReturnType(meta.returnType),\n arityHuman: formatArity(meta.minArity, meta.maxArity),\n minArity: meta.minArity,\n maxArity: meta.maxArity,\n hasSideEffects: meta.hasSideEffects,\n acceptsLambda: meta.acceptsLambda || false,\n pureFunction: !meta.hasSideEffects,\n };\n}\n\n/**\n * Generate documentation for a single module\n */\nexport function generateModuleDoc(moduleId: StdModule): ModuleDoc | null {\n const moduleInfo = MODULE_DESCRIPTIONS[moduleId];\n if (!moduleInfo) return null;\n\n const moduleOperators = STD_OPERATORS_BY_MODULE[moduleId] || {};\n const operators = Object.entries(moduleOperators).map(([opName, meta]) =>\n generateOperatorDoc(opName, meta)\n );\n\n return {\n id: moduleId,\n ...moduleInfo,\n operators,\n operatorCount: operators.length,\n };\n}\n\n/**\n * Generate documentation for a single behavior\n */\nexport function generateBehaviorDoc(behavior: BehaviorTrait): BehaviorDoc {\n const sm = behavior.stateMachine;\n\n // Extract states list\n const states = (sm?.states || []).map((s: State) => s.name);\n\n // Extract events list \n const events = (sm?.events || []).map((e: Event) => e.key);\n\n // Get initial state - find state with isInitial: true\n const initialState = (sm?.states || []).find((s: State) => s.isInitial);\n const initial = initialState?.name || states[0] || '';\n\n // Build state machine for visualizer\n const stateMachineDoc: BehaviorStateMachineDoc | undefined = sm ? {\n states: states.map((name: string) => ({\n name,\n isInitial: name === initial,\n isFinal: false,\n })),\n transitions: (sm.transitions || []).map((t: Transition) => ({\n from: t.from || '*',\n to: t.to,\n event: t.event,\n guard: t.guard,\n effects: t.effects,\n })),\n } : undefined;\n\n // Generate source code representation\n const sourceCode = generateBehaviorSourceCode(behavior);\n\n // Extract data entities for display\n const dataEntities = behavior.dataEntities?.map((e: { name: string; fields: { name: string; type: string; default?: unknown }[] }) => ({\n name: e.name,\n fields: e.fields.map((f: { name: string; type: string; default?: unknown }) => ({\n name: f.name,\n type: f.type,\n default: f.default,\n })),\n }));\n\n // Extract ticks for display\n const ticks = behavior.ticks?.map((t: { name: string; interval: string | number; description?: string }) => ({\n name: t.name,\n interval: t.interval,\n description: t.description,\n }));\n\n return {\n name: behavior.name,\n shortName: behavior.name.replace('std/', ''),\n description: behavior.description || '',\n suggestedFor: [],\n states,\n statesCount: states.length,\n initial,\n events,\n eventsCount: events.length,\n hasFields: (behavior.dataEntities?.length || 0) > 0,\n hasComputed: false, // Computed is now inline in effects\n hasTicks: (behavior.ticks?.length || 0) > 0,\n ticksCount: behavior.ticks?.length || 0,\n transitionsCount: sm?.transitions?.length || 0,\n stateMachine: stateMachineDoc,\n sourceCode,\n dataEntities,\n ticks,\n };\n}\n\n/**\n * Generate a formatted source code representation of a behavior\n */\nfunction generateBehaviorSourceCode(behavior: BehaviorTrait): string {\n const lines: string[] = [];\n const indent = ' ';\n\n lines.push(`export const ${behavior.name.replace('std/', '').toUpperCase()}_BEHAVIOR = {`);\n lines.push(`${indent}name: '${behavior.name}',`);\n lines.push(`${indent}description: '${behavior.description || ''}',`);\n\n // Data Entities\n if (behavior.dataEntities && behavior.dataEntities.length > 0) {\n lines.push('');\n lines.push(`${indent}dataEntities: [`);\n for (const entity of behavior.dataEntities) {\n lines.push(`${indent}${indent}{`);\n lines.push(`${indent}${indent}${indent}name: '${entity.name}',`);\n if (entity.runtime) lines.push(`${indent}${indent}${indent}runtime: true,`);\n if (entity.singleton) lines.push(`${indent}${indent}${indent}singleton: true,`);\n lines.push(`${indent}${indent}${indent}fields: [`);\n for (const field of entity.fields) {\n const defaultVal = field.default !== undefined ? `, default: ${JSON.stringify(field.default)}` : '';\n lines.push(`${indent}${indent}${indent}${indent}{ name: '${field.name}', type: '${field.type}'${defaultVal} },`);\n }\n lines.push(`${indent}${indent}${indent}],`);\n lines.push(`${indent}${indent}},`);\n }\n lines.push(`${indent}],`);\n }\n\n // State Machine\n if (behavior.stateMachine) {\n const sm = behavior.stateMachine;\n lines.push('');\n lines.push(`${indent}stateMachine: {`);\n // Find initial state from isInitial flag\n const initialStateName = sm.states.find((s: State) => s.isInitial);\n const initialName = initialStateName?.name || '';\n if (initialName) {\n lines.push(`${indent}${indent}// Initial state: '${initialName}'`);\n }\n\n // States\n lines.push(`${indent}${indent}states: [`);\n for (const state of sm.states) {\n const name = state.name;\n const isInitial = state.isInitial;\n if (isInitial) {\n lines.push(`${indent}${indent}${indent}{ name: '${name}', isInitial: true },`);\n } else {\n lines.push(`${indent}${indent}${indent}{ name: '${name}' },`);\n }\n }\n lines.push(`${indent}${indent}],`);\n\n // Events\n lines.push(`${indent}${indent}events: [`);\n for (const event of sm.events) {\n const key = event.key;\n lines.push(`${indent}${indent}${indent}{ key: '${key}' },`);\n }\n lines.push(`${indent}${indent}],`);\n\n // Transitions\n lines.push(`${indent}${indent}transitions: [`);\n for (const t of sm.transitions) {\n lines.push(`${indent}${indent}${indent}{`);\n if (t.from) {\n if (Array.isArray(t.from)) {\n lines.push(`${indent}${indent}${indent}${indent}from: ${JSON.stringify(t.from)},`);\n } else {\n lines.push(`${indent}${indent}${indent}${indent}from: '${t.from}',`);\n }\n }\n if (t.to) lines.push(`${indent}${indent}${indent}${indent}to: '${t.to}',`);\n lines.push(`${indent}${indent}${indent}${indent}event: '${t.event}',`);\n if (t.guard) {\n lines.push(`${indent}${indent}${indent}${indent}guard: ${formatSExprForCode(t.guard)},`);\n }\n if (t.effects && t.effects.length > 0) {\n lines.push(`${indent}${indent}${indent}${indent}effects: [`);\n for (const effect of t.effects) {\n lines.push(`${indent}${indent}${indent}${indent}${indent}${formatSExprForCode(effect)},`);\n }\n lines.push(`${indent}${indent}${indent}${indent}],`);\n }\n lines.push(`${indent}${indent}${indent}},`);\n }\n lines.push(`${indent}${indent}],`);\n lines.push(`${indent}},`);\n }\n\n // Ticks\n if (behavior.ticks && behavior.ticks.length > 0) {\n lines.push('');\n lines.push(`${indent}ticks: [`);\n for (const tick of behavior.ticks) {\n lines.push(`${indent}${indent}{`);\n lines.push(`${indent}${indent}${indent}name: '${tick.name}',`);\n lines.push(`${indent}${indent}${indent}interval: ${typeof tick.interval === 'string' ? `'${tick.interval}'` : tick.interval},`);\n if (tick.priority) lines.push(`${indent}${indent}${indent}priority: ${tick.priority},`);\n if (tick.guard) {\n lines.push(`${indent}${indent}${indent}guard: ${formatSExprForCode(tick.guard)},`);\n }\n if (tick.effects && tick.effects.length > 0) {\n lines.push(`${indent}${indent}${indent}effects: [`);\n for (const effect of tick.effects) {\n lines.push(`${indent}${indent}${indent}${indent}${formatSExprForCode(effect)},`);\n }\n lines.push(`${indent}${indent}${indent}],`);\n }\n lines.push(`${indent}${indent}},`);\n }\n lines.push(`${indent}],`);\n }\n\n lines.push('};');\n return lines.join('\\n');\n}\n\n/**\n * Format an S-expression for display in code\n */\nfunction formatSExprForCode(expr: unknown): string {\n if (typeof expr === 'string') {\n return `'${expr}'`;\n }\n if (typeof expr === 'number' || typeof expr === 'boolean') {\n return String(expr);\n }\n if (expr === null || expr === undefined) {\n return 'null';\n }\n if (Array.isArray(expr)) {\n const items = expr.map(formatSExprForCode);\n if (items.join(', ').length < 60) {\n return `[${items.join(', ')}]`;\n }\n return `[${items.join(', ')}]`;\n }\n if (typeof expr === 'object') {\n return JSON.stringify(expr);\n }\n return String(expr);\n}\n\n/**\n * Generate documentation for all std library modules\n */\nexport function generateModulesDocs(): StdLibDocs {\n const modules: ModuleDoc[] = [];\n\n for (const moduleId of STD_MODULES) {\n const moduleDoc = generateModuleDoc(moduleId);\n if (moduleDoc) {\n modules.push(moduleDoc);\n }\n }\n\n const stats: DocsStats = {\n totalModules: modules.length,\n totalOperators: modules.reduce((sum, m) => sum + m.operatorCount, 0),\n totalBehaviorCategories: 0,\n totalBehaviors: 0,\n generatedAt: new Date().toISOString(),\n };\n\n return { modules, stats };\n}\n\n/**\n * Generate documentation for all standard behaviors\n */\n/**\n * Load all exported .orb files and extract the first trait from each as a BehaviorTrait.\n */\nfunction loadBehaviorTraitsFromExports(): BehaviorTrait[] {\n const schemas = getAllBehaviors();\n const traits: BehaviorTrait[] = [];\n\n for (const schema of schemas) {\n const orbitals = schema.orbitals as Array<{ traits?: BehaviorTrait[] }> | undefined;\n if (orbitals) {\n for (const orbital of orbitals) {\n for (const trait of orbital.traits ?? []) {\n traits.push(trait);\n }\n }\n }\n }\n\n return traits;\n}\n\nexport function generateBehaviorsDocs(): BehaviorsDocs {\n const categories: CategoryDoc[] = [];\n\n // Load behaviors from exported .orb files\n const allTraits = loadBehaviorTraitsFromExports();\n const allBehaviors = allTraits.map((b: BehaviorTrait) => generateBehaviorDoc(b));\n\n // Create a single \"All Behaviors\" category\n categories.push({\n id: 'all',\n name: 'Standard Behaviors',\n description: 'All reusable state machine behaviors from the standard library.',\n icon: '📦',\n behaviors: allBehaviors,\n behaviorCount: allBehaviors.length,\n });\n\n const stats: DocsStats = {\n totalModules: 0,\n totalOperators: 0,\n totalBehaviorCategories: categories.length,\n totalBehaviors: categories.reduce((sum, c) => sum + c.behaviorCount, 0),\n generatedAt: new Date().toISOString(),\n };\n\n return { categories, stats };\n}\n\n/**\n * Generate complete standard library documentation\n */\nexport function generateStdLibDocs(): {\n modules: StdLibDocs;\n behaviors: BehaviorsDocs;\n} {\n const modules = generateModulesDocs();\n const behaviors = generateBehaviorsDocs();\n\n // Update cross-stats\n modules.stats.totalBehaviorCategories = behaviors.stats.totalBehaviorCategories;\n modules.stats.totalBehaviors = behaviors.stats.totalBehaviors;\n behaviors.stats.totalModules = modules.stats.totalModules;\n behaviors.stats.totalOperators = modules.stats.totalOperators;\n\n return { modules, behaviors };\n}\n"]}
1
+ {"version":3,"sources":["../types.ts","../modules/core.ts","../modules/math.ts","../modules/str.ts","../modules/array.ts","../modules/object.ts","../modules/time.ts","../modules/validate.ts","../modules/format.ts","../modules/async.ts","../modules/nn.ts","../modules/tensor.ts","../modules/train.ts","../modules/prob.ts","../modules/os.ts","../modules/agent.ts","../modules/composition.ts","../registry.ts","../behaviors/types.ts","../behaviors/functions/index.ts","../behaviors/functions/core/atoms/std-cascade-on-delete.ts","../behaviors/functions/dispatch.ts","../behaviors/exports-reader.ts","../behaviors/query.ts","../behaviors/embeddings.ts","../behaviors/explode-behavior-composition.ts","../docs-generator.ts"],"names":["fnNameToBehaviorName"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Standard Library Types\n *\n * Common types and interfaces for the Orbital Standard Library.\n * Extends the core operator system with std-prefixed modules.\n *\n * @packageDocumentation\n */\n\n// ============================================================================\n// Base Operator Types (self-contained, no external dependencies)\n// ============================================================================\n\n/**\n * Operator categories for the core expression language.\n */\nexport const OPERATOR_CATEGORIES = [\n 'arithmetic',\n 'comparison',\n 'logic',\n 'control',\n 'effect',\n 'collection',\n 'std-math',\n 'std-str',\n 'std-array',\n 'std-object',\n 'std-validate',\n 'std-time',\n 'std-format',\n 'std-async',\n 'std-nn',\n 'std-tensor',\n 'std-train',\n 'std-prob',\n 'std-os',\n 'std-agent',\n 'std-composition',\n 'ml-arch',\n 'ml-effect',\n 'ml-tensor',\n 'ml-graph',\n 'ml-contract',\n 'ml-data',\n] as const;\n\nexport type OperatorCategory = (typeof OPERATOR_CATEGORIES)[number];\n\n/**\n * Basic return types for core operators.\n */\nexport type BasicReturnType = 'number' | 'boolean' | 'string' | 'any' | 'void' | 'array';\n\n/**\n * Base metadata for an operator.\n */\n/**\n * For operators whose actual return type depends on input expressions\n * rather than being a fixed primitive (gap #24's family in\n * `docs/Almadar_Std_Verification.md`). The static `returnType` is kept\n * for back-compat with consumers that don't reason about input-dependent\n * types; the validator (L2) reads `returnSemantics` first to derive the\n * concrete type from the call site's argument expressions.\n *\n * - `'first-truthy-of-args'` — returns the first truthy argument's value\n * (`or` semantics, NOT a boolean). Trips arithmetic-context misuse.\n * - `'last-truthy-of-args'` — returns the last truthy argument's value\n * when all are truthy, else first falsy (`and` short-circuit).\n * - `'first-non-null-of-args'` — returns the first non-null arg's type\n * (`coalesce` / `default` / `??`-style).\n * - `'branch-union'` — return type is union of branch result types\n * (`if cond X Y` → `X | Y`).\n * - `'element-of-arg<N>'` — returns element type of arg at index N\n * (`array/first arr` → element of `arr`, `array/get arr i` → element\n * of `arr`). Suffix `?` (e.g. `'element-of-arg<0>?'`) marks\n * nullable-when-missing (`array/find` → `T | undefined`).\n * - `'lambda-result'` — return type is the lambda's body result, with\n * the result possibly wrapped in an array (`array/map` →\n * `Array<ReturnTypeOf<lambda>>`, `array/reduce` →\n * `ReturnTypeOf<lambda>` / type of `init`).\n * - `'object-key-lookup'` — return type depends on the input object\n * shape and the literal key (`object/get`, `object/pick`).\n * - `'identity-of-arg<N>'` — return type matches the input arg at index N\n * (`tap`, `pipe-through`).\n *\n * Operators NOT listed here keep the fixed `returnType` semantics —\n * arithmetic, math, comparisons, aggregations (`array/sum`/`avg`/`len`),\n * type coercions, all effects.\n */\nexport type ReturnSemantics =\n | 'first-truthy-of-args'\n | 'last-truthy-of-args'\n | 'first-non-null-of-args'\n | 'branch-union'\n | 'element-of-arg<0>'\n | 'element-of-arg<0>?'\n | 'element-of-arg<1>'\n | 'lambda-result'\n | 'object-key-lookup'\n | 'identity-of-arg<0>';\n\nexport interface OperatorMeta {\n /** Operator category */\n category: OperatorCategory;\n /** Minimum number of arguments */\n minArity: number;\n /** Maximum number of arguments (null = unlimited) */\n maxArity: number | null;\n /** Human-readable description */\n description: string;\n /** Whether this operator has side effects (only valid in effect context) */\n hasSideEffects: boolean;\n /** Return type hint - basic types for core operators, extended types for std modules */\n returnType: string;\n /**\n * For operators whose actual return type is determined at the call site\n * (input-dependent), tag with the appropriate semantics so the L2\n * validator can derive the concrete type from argument expressions.\n * Omitted when `returnType` is the fixed truth (most operators).\n * See {@link ReturnSemantics} for the catalog and gap #24 in the std\n * verification doc.\n */\n returnSemantics?: ReturnSemantics;\n}\n\n// ============================================================================\n// Standard Library Categories\n// ============================================================================\n\n/**\n * Standard library module names.\n * Each module provides a set of operators prefixed with the module name.\n * E.g., 'math' provides 'math/abs', 'math/clamp', etc.\n */\nexport const STD_MODULES = [\n 'core',\n 'math',\n 'str',\n 'array',\n 'object',\n 'time',\n 'validate',\n 'format',\n 'async',\n 'nn',\n 'tensor',\n 'train',\n 'prob',\n 'os',\n 'agent',\n 'graph',\n 'contract',\n 'data',\n 'composition',\n] as const;\n\nexport type StdModule = (typeof STD_MODULES)[number];\n\n/**\n * Standard library operator categories.\n * These extend the core categories for more granular classification.\n */\nexport const STD_OPERATOR_CATEGORIES = [\n 'std-math',\n 'std-str',\n 'std-array',\n 'std-object',\n 'std-time',\n 'std-validate',\n 'std-format',\n 'std-async',\n 'std-nn',\n 'std-tensor',\n 'std-train',\n 'std-prob',\n 'std-os',\n 'std-agent',\n 'std-composition',\n 'ml-arch',\n 'ml-effect',\n 'ml-tensor',\n 'ml-graph',\n 'ml-contract',\n 'ml-data',\n] as const;\n\nexport type StdOperatorCategory = (typeof STD_OPERATOR_CATEGORIES)[number];\n\n// ============================================================================\n// Extended Operator Metadata\n// ============================================================================\n\n/**\n * Structured parameter type reference (Schema v2).\n *\n * A plain string (e.g. `'number'`, `'string'`) is still accepted for\n * backward compatibility with simple primitives. Richer shapes let effect\n * operators declare literal unions, UI slots, event keys, and entity refs\n * so compilers, LLM prompt generators, and validators can reason about the\n * argument shape without string heuristics.\n */\nexport type OperatorTypeRef =\n | string\n | { kind: 'union'; of: OperatorTypeRef[] }\n | { kind: 'literal'; value: string | number | boolean }\n | { kind: 'array'; of: OperatorTypeRef }\n | { kind: 'object'; fields: Record<string, OperatorTypeRef>; open?: boolean }\n | { kind: 'entity'; collection?: string }\n | { kind: 'entityRef' }\n | { kind: 'eventKey'; scope?: 'internal' | 'external' }\n | { kind: 'uiSlot' }\n | { kind: 'patternType' }\n | { kind: 'binding'; shape?: OperatorTypeRef }\n | { kind: 'sexpr' };\n\n/**\n * Effect-specific metadata (Schema v2).\n * Populated only when `hasSideEffects: true`. Describes what the effect\n * produces back onto the runtime bus or state tree so consumers (Rust\n * validator, LLM skill gen, verify) can trace downstream reactions.\n */\nexport interface OperatorEffectMeta {\n kind:\n | 'emit'\n | 'persist'\n | 'fetch'\n | 'ref'\n | 'render-ui'\n | 'navigate'\n | 'notify'\n | 'spawn'\n | 'despawn'\n | 'set'\n | 'call-service'\n | 'log'\n | 'custom';\n /** What the effect puts onto the bus / state when it resolves. */\n produces?: OperatorTypeRef;\n /** Effect-specific config keys and their declared types. */\n config?: Record<string, OperatorTypeRef>;\n}\n\n/**\n * Extended operator metadata for std library operators.\n * Adds parameter descriptions and examples.\n */\nexport interface StdOperatorMeta extends OperatorMeta {\n /** The std module this operator belongs to */\n module: StdModule;\n /** Parameter names and descriptions */\n params?: {\n name: string;\n type: OperatorTypeRef;\n description: string;\n optional?: boolean;\n defaultValue?: unknown;\n }[];\n /** Example usage */\n example?: string;\n /** Whether this operator accepts a lambda expression argument */\n acceptsLambda?: boolean;\n /** Position of the lambda argument (0-indexed) */\n lambdaArgPosition?: number;\n /** Compile-time operator (resolved during .lolo lowering, not at runtime) */\n compileTime?: boolean;\n /** Schema v2: structured metadata for effect operators */\n effect?: OperatorEffectMeta;\n}\n\n/**\n * Type guard to check if an operator category is a std category.\n */\nexport function isStdCategory(category: string): category is StdOperatorCategory {\n return STD_OPERATOR_CATEGORIES.includes(category as StdOperatorCategory);\n}\n\n/**\n * Get the module name from a std operator name.\n * E.g., 'math/clamp' -> 'math'\n */\nexport function getModuleFromOperator(operator: string): StdModule | null {\n const parts = operator.split('/');\n if (parts.length !== 2) return null;\n const module = parts[0];\n return STD_MODULES.includes(module as StdModule) ? (module as StdModule) : null;\n}\n\n/**\n * Get the function name from a std operator.\n * E.g., 'math/clamp' -> 'clamp'\n */\nexport function getFunctionFromOperator(operator: string): string | null {\n const parts = operator.split('/');\n return parts.length === 2 ? parts[1] : null;\n}\n\n/**\n * Check if an operator name is a std library operator.\n * Std library operators are prefixed with their module name (e.g., 'math/', 'str/').\n */\nexport function isStdOperator(operator: string): boolean {\n return getModuleFromOperator(operator) !== null;\n}\n\n/**\n * Create a std operator name from module and function name.\n * E.g., ('math', 'clamp') -> 'math/clamp'\n */\nexport function makeStdOperator(module: StdModule, fn: string): string {\n return `${module}/${fn}`;\n}\n","/**\n * Core Module - Language Primitives\n *\n * The 28 unnamespaced S-expression operators that form the .orb language core:\n * arithmetic primitives, comparison, logic, control flow, and effects.\n *\n * These operators existed in the retired `@almadar/operators` package prior to\n * its merge into `@almadar/std`. They live here alongside the library modules\n * (math, str, array, etc.) so the whole operator surface has one home.\n *\n * Effect operators declare rich Schema v2 params and effect metadata so\n * validators, LLM prompt generators, and the Rust compiler can reason about\n * shapes (literal unions for persist actions, UISlot for render-ui, event keys\n * for emit) instead of relying on string heuristics.\n *\n * @packageDocumentation\n */\n\nimport type { OperatorTypeRef, StdOperatorMeta } from '../types.js';\n\n// ============================================================================\n// Shared type refs\n// ============================================================================\n\nconst NUMBER: OperatorTypeRef = 'number';\nconst BOOLEAN: OperatorTypeRef = 'boolean';\nconst STRING: OperatorTypeRef = 'string';\nconst ANY: OperatorTypeRef = 'any';\nconst SEXPR: OperatorTypeRef = { kind: 'sexpr' };\nconst BINDING: OperatorTypeRef = { kind: 'binding' };\nconst ENTITY_REF: OperatorTypeRef = { kind: 'entityRef' };\nconst EVENT_KEY: OperatorTypeRef = { kind: 'eventKey' };\nconst UI_SLOT: OperatorTypeRef = { kind: 'uiSlot' };\nconst PATTERN_TYPE: OperatorTypeRef = { kind: 'patternType' };\n\nconst PERSIST_ACTION: OperatorTypeRef = {\n kind: 'union',\n of: [\n { kind: 'literal', value: 'create' },\n { kind: 'literal', value: 'update' },\n { kind: 'literal', value: 'delete' },\n { kind: 'literal', value: 'clear' },\n { kind: 'literal', value: 'batch' },\n ],\n};\n\nconst SET_OPERATION: OperatorTypeRef = {\n kind: 'union',\n of: [\n { kind: 'literal', value: 'increment' },\n { kind: 'literal', value: 'decrement' },\n { kind: 'literal', value: 'multiply' },\n { kind: 'literal', value: 'append' },\n { kind: 'literal', value: 'remove' },\n ],\n};\n\nconst NOTIFY_CHANNEL: OperatorTypeRef = {\n kind: 'union',\n of: [\n { kind: 'literal', value: 'email' },\n { kind: 'literal', value: 'push' },\n { kind: 'literal', value: 'sms' },\n { kind: 'literal', value: 'in_app' },\n ],\n};\n\n// ============================================================================\n// Core operators\n// ============================================================================\n\nexport const CORE_OPERATORS: Record<string, StdOperatorMeta> = {\n // --- arithmetic primitives --------------------------------------------------\n\n '+': {\n module: 'core',\n category: 'arithmetic',\n minArity: 2,\n maxArity: null,\n description: 'Add numbers',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: '...nums', type: NUMBER, description: 'Numbers to sum' }],\n example: '[\"+\", 1, 2, 3] // => 6',\n },\n '-': {\n module: 'core',\n category: 'arithmetic',\n minArity: 1,\n maxArity: 2,\n description: 'Subtract or negate',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: NUMBER, description: 'Left operand or value to negate' },\n { name: 'b', type: NUMBER, description: 'Right operand', optional: true },\n ],\n example: '[\"-\", 5, 2] // => 3; [\"-\", 5] // => -5',\n },\n '*': {\n module: 'core',\n category: 'arithmetic',\n minArity: 2,\n maxArity: null,\n description: 'Multiply numbers',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: '...nums', type: NUMBER, description: 'Numbers to multiply' }],\n example: '[\"*\", 2, 3, 4] // => 24',\n },\n '/': {\n module: 'core',\n category: 'arithmetic',\n minArity: 2,\n maxArity: 2,\n description: 'Divide numbers',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: NUMBER, description: 'Numerator' },\n { name: 'b', type: NUMBER, description: 'Denominator' },\n ],\n example: '[\"/\", 10, 2] // => 5',\n },\n '%': {\n module: 'core',\n category: 'arithmetic',\n minArity: 2,\n maxArity: 2,\n description: 'Modulo (remainder)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: NUMBER, description: 'Dividend' },\n { name: 'b', type: NUMBER, description: 'Divisor' },\n ],\n example: '[\"%\", 10, 3] // => 1',\n },\n\n // --- comparison -------------------------------------------------------------\n\n '=': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Equal to',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: ANY, description: 'Left operand' },\n { name: 'b', type: ANY, description: 'Right operand' },\n ],\n example: '[\"=\", \"@entity.status\", \"active\"]',\n },\n '!=': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Not equal to',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: ANY, description: 'Left operand' },\n { name: 'b', type: ANY, description: 'Right operand' },\n ],\n example: '[\"!=\", \"@entity.id\", null]',\n },\n '<': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Less than',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: NUMBER, description: 'Left operand' },\n { name: 'b', type: NUMBER, description: 'Right operand' },\n ],\n example: '[\"<\", \"@entity.health\", 10]',\n },\n '>': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Greater than',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: NUMBER, description: 'Left operand' },\n { name: 'b', type: NUMBER, description: 'Right operand' },\n ],\n example: '[\">\", \"@entity.score\", 0]',\n },\n '<=': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Less than or equal',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: NUMBER, description: 'Left operand' },\n { name: 'b', type: NUMBER, description: 'Right operand' },\n ],\n example: '[\"<=\", \"@entity.count\", 100]',\n },\n '>=': {\n module: 'core',\n category: 'comparison',\n minArity: 2,\n maxArity: 2,\n description: 'Greater than or equal',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: NUMBER, description: 'Left operand' },\n { name: 'b', type: NUMBER, description: 'Right operand' },\n ],\n example: '[\">=\", \"@entity.age\", 18]',\n },\n\n // --- logic ------------------------------------------------------------------\n\n and: {\n module: 'core',\n category: 'logic',\n minArity: 2,\n maxArity: null,\n description: 'Logical AND (returns the last truthy value, NOT a boolean — short-circuit)',\n hasSideEffects: false,\n returnType: 'boolean',\n returnSemantics: 'last-truthy-of-args',\n params: [{ name: '...conds', type: BOOLEAN, description: 'Boolean expressions to AND' }],\n example: '[\"and\", [\"=\", \"@entity.active\", true], [\">\", \"@entity.score\", 0]]',\n },\n or: {\n module: 'core',\n category: 'logic',\n minArity: 2,\n maxArity: null,\n description: 'Logical OR (returns the first truthy value, NOT a boolean — short-circuit)',\n hasSideEffects: false,\n returnType: 'boolean',\n returnSemantics: 'first-truthy-of-args',\n params: [{ name: '...conds', type: BOOLEAN, description: 'Boolean expressions to OR' }],\n example: '[\"or\", [\"=\", \"@entity.role\", \"admin\"], [\"=\", \"@entity.role\", \"owner\"]]',\n },\n not: {\n module: 'core',\n category: 'logic',\n minArity: 1,\n maxArity: 1,\n description: 'Logical NOT',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'cond', type: BOOLEAN, description: 'Boolean to negate' }],\n example: '[\"not\", \"@entity.disabled\"]',\n },\n if: {\n module: 'core',\n category: 'logic',\n minArity: 3,\n maxArity: 3,\n description: 'Conditional expression (ternary). Return type is union of branch types.',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'branch-union',\n params: [\n { name: 'cond', type: BOOLEAN, description: 'Condition to evaluate' },\n { name: 'then', type: ANY, description: 'Value or effect if true' },\n { name: 'else', type: ANY, description: 'Value or effect if false' },\n ],\n example: '[\"if\", [\">\", \"@entity.health\", 0], \"alive\", \"dead\"]',\n },\n\n // --- control ----------------------------------------------------------------\n\n let: {\n module: 'core',\n category: 'control',\n minArity: 2,\n maxArity: 2,\n description: 'Bind local variables for a body expression',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n {\n name: 'bindings',\n type: { kind: 'array', of: { kind: 'array', of: ANY } },\n description: 'Array of [name, value] pairs',\n },\n { name: 'body', type: SEXPR, description: 'Expression or effect list using the bindings' },\n ],\n example: '[\"let\", [[\"x\", 10]], [\"+\", \"x\", 1]]',\n },\n do: {\n module: 'core',\n category: 'control',\n minArity: 1,\n maxArity: null,\n description: 'Sequential execution of multiple effects/expressions',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: '...exprs', type: SEXPR, description: 'Effects/expressions to run in order' }],\n example: '[\"do\", [\"set\", \"@entity.x\", 0], [\"set\", \"@entity.y\", 0]]',\n },\n when: {\n module: 'core',\n category: 'control',\n minArity: 2,\n maxArity: 2,\n description: 'Conditional effect without an else branch',\n hasSideEffects: false,\n returnType: 'void',\n params: [\n { name: 'cond', type: BOOLEAN, description: 'Guard expression' },\n { name: 'effect', type: SEXPR, description: 'Effect to run if cond is true' },\n ],\n example: '[\"when\", [\">\", \"@entity.health\", 0], [\"emit\", \"ALIVE\"]]',\n },\n fn: {\n module: 'core',\n category: 'control',\n minArity: 2,\n maxArity: 2,\n description: 'Lambda expression (used for per-item renders and transforms)',\n hasSideEffects: false,\n returnType: 'function',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'paramName', type: STRING, description: 'Name of the parameter binding' },\n { name: 'body', type: SEXPR, description: 'Expression evaluated per invocation' },\n ],\n example: '[\"fn\", \"item\", { \"type\": \"typography\", \"content\": \"@item.title\" }]',\n },\n\n // --- effect -----------------------------------------------------------------\n\n set: {\n module: 'core',\n category: 'effect',\n minArity: 2,\n maxArity: 2,\n description: 'Set a binding to a value',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'binding', type: BINDING, description: 'Target binding (e.g. \"@entity.field\")' },\n { name: 'value', type: ANY, description: 'Value to assign (literal or expression)' },\n ],\n example: '[\"set\", \"@entity.health\", 100]',\n effect: {\n kind: 'set',\n // success emit carries the written value; the evaluator coerces to the\n // binding's declared type, so 'any' is the general shape. A future pass\n // can narrow per-binding via resolveBinding.\n produces: ANY,\n config: { operation: SET_OPERATION },\n },\n },\n emit: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Emit an event onto the bus',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'event', type: EVENT_KEY, description: 'Event key' },\n { name: 'payload', type: ENTITY_REF, description: 'Optional payload', optional: true },\n ],\n example: '[\"emit\", \"PLAYER_DIED\", { \"playerId\": \"@entity.id\" }]',\n effect: {\n kind: 'emit',\n produces: {\n kind: 'object',\n fields: { event: EVENT_KEY, payload: ANY },\n open: true,\n },\n },\n },\n persist: {\n module: 'core',\n category: 'effect',\n minArity: 2,\n maxArity: 4,\n description: 'Create, update, delete, clear, or batch entity records. Optional trailing { emit: { success, failure } } options object attaches closed-circuit emit routing.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'action', type: PERSIST_ACTION, description: 'Persist action' },\n { name: 'entity', type: { kind: 'entity' }, description: 'Target entity name' },\n { name: 'data', type: ENTITY_REF, description: 'Payload (create/update) or entity id (delete)', optional: true },\n {\n name: 'options',\n type: {\n kind: 'object',\n fields: {\n emit: { kind: 'object', fields: {}, open: true },\n },\n open: true,\n },\n description: 'Optional trailing options object carrying { emit: { success, failure } } closed-circuit routing',\n optional: true,\n },\n ],\n example: '[\"persist\", \"create\", \"Task\", { \"title\": \"@payload.title\" }, { \"emit\": { \"success\": \"TASK_CREATED\" } }]',\n effect: {\n kind: 'persist',\n // Action-discriminated union. The compiler narrows at the call site\n // based on the action arg literal to pick the right branch when\n // checking the emit.success event's declared payload.\n // create/update -> the resulting entity record\n // delete/clear -> { id, deleted }\n // batch -> summary of operations\n produces: {\n kind: 'union',\n of: [\n { kind: 'entity' },\n {\n kind: 'object',\n fields: { id: STRING, deleted: BOOLEAN },\n open: false,\n },\n {\n kind: 'object',\n fields: {\n operations: { kind: 'array', of: ANY },\n completedCount: NUMBER,\n totalCount: NUMBER,\n },\n open: false,\n },\n ],\n },\n },\n },\n navigate: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Navigate to a route',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'path', type: STRING, description: 'Route path (supports :param placeholders)' },\n {\n name: 'params',\n type: { kind: 'object', fields: {}, open: true },\n description: 'Optional route params',\n optional: true,\n },\n ],\n example: '[\"navigate\", \"/tasks/:id\", { \"id\": \"@entity.id\" }]',\n effect: { kind: 'navigate' },\n },\n notify: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Show a notification (in-app, email, push, sms)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'channel', type: NOTIFY_CHANNEL, description: 'Delivery channel' },\n { name: 'message', type: STRING, description: 'Message body', optional: true },\n ],\n example: '[\"notify\", \"in_app\", \"Task created successfully\"]',\n effect: { kind: 'notify' },\n },\n spawn: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Spawn a new entity instance (games)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'entity', type: { kind: 'entity' }, description: 'Entity name to spawn' },\n {\n name: 'initialState',\n type: { kind: 'object', fields: {}, open: true },\n description: 'Initial field values',\n optional: true,\n },\n ],\n example: '[\"spawn\", \"Bullet\", { \"x\": \"@entity.x\", \"y\": \"@entity.y\" }]',\n effect: { kind: 'spawn' },\n },\n despawn: {\n module: 'core',\n category: 'effect',\n minArity: 0,\n maxArity: 1,\n description: 'Despawn an entity instance (games)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'entityId', type: STRING, description: 'Target entity id (defaults to @entity.id)', optional: true },\n ],\n example: '[\"despawn\", \"@entity.id\"]',\n effect: { kind: 'despawn' },\n },\n fetch: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Fetch an entity (by id) or a collection (by filter) from persistence',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'entity', type: { kind: 'entity' }, description: 'Target entity name' },\n {\n name: 'options',\n type: {\n kind: 'object',\n fields: {\n id: STRING,\n filter: ANY,\n limit: NUMBER,\n offset: NUMBER,\n include: { kind: 'array', of: STRING },\n emit: { kind: 'object', fields: {}, open: true },\n },\n open: true,\n },\n description: 'Fetch options: id | filter | limit | offset | include | emit',\n optional: true,\n },\n ],\n example: '[\"fetch\", \"Task\", { \"id\": \"@payload.taskId\", \"emit\": { \"success\": \"TASK_LOADED\" } }]',\n effect: {\n kind: 'fetch',\n // Call-site-discriminated union: options.id present -> single entity;\n // otherwise -> array of entity. The compiler narrows at the call site\n // when checking emit.success against the declared event payload.\n produces: {\n kind: 'union',\n of: [\n { kind: 'entity' },\n { kind: 'array', of: { kind: 'entity' } },\n ],\n },\n },\n },\n ref: {\n module: 'core',\n category: 'effect',\n minArity: 1,\n maxArity: 2,\n description: 'Reactive entity reference (deprecated, use fetch with listens in V2)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'entity', type: { kind: 'entity' }, description: 'Target entity name' },\n {\n name: 'options',\n type: {\n kind: 'object',\n fields: {\n id: STRING,\n filter: ANY,\n include: { kind: 'array', of: STRING },\n emit: { kind: 'object', fields: {}, open: true },\n },\n open: true,\n },\n description: 'Ref options: id | filter | include | emit',\n optional: true,\n },\n ],\n example: '[\"ref\", \"Task\"]',\n effect: {\n kind: 'ref',\n // Same call-site shape as fetch. Kept for the V2 transition period;\n // scheduled for deprecation in a later phase (see Almadar_Entity_V2_Plan.md).\n produces: {\n kind: 'union',\n of: [\n { kind: 'entity' },\n { kind: 'array', of: { kind: 'entity' } },\n ],\n },\n },\n },\n 'call-service': {\n module: 'core',\n category: 'effect',\n minArity: 2,\n maxArity: 4,\n description:\n 'Invoke an external service action. Optional trailing { emit: { success, failure } } options object attaches closed-circuit emit routing (V2 frame contract).',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'service', type: STRING, description: 'Service name (e.g. \"llm\", \"stripe\")' },\n { name: 'action', type: STRING, description: 'Service action (e.g. \"generate\", \"charge\")' },\n {\n name: 'params',\n type: { kind: 'object', fields: {}, open: true },\n description: 'Service-specific params',\n optional: true,\n },\n {\n name: 'options',\n type: { kind: 'object', fields: {}, open: true },\n description:\n 'Optional trailing options object. Set `{ emit: { success: \"...\", failure: \"...\" } }` to wire closed-circuit result routing (V2 frame).',\n optional: true,\n },\n ],\n example: '[\"call-service\", \"llm\", \"generate\", { \"userPrompt\": \"@entity.inputText\" }, { \"emit\": { \"success\": \"LlmCompleted\", \"failure\": \"LlmFailed\" } }]',\n effect: {\n kind: 'call-service',\n // TODO(entity-v2): narrow to the declared service return type once\n // per-service return shapes live on the orbital services block.\n // Today the emit.success payload is whatever the service adapter returns.\n produces: ANY,\n },\n },\n 'render-ui': {\n module: 'core',\n category: 'effect',\n minArity: 2,\n maxArity: 3,\n description: 'Render a pattern into a UI slot',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'slot', type: UI_SLOT, description: 'Target UI slot (main, sidebar, modal, hud, ...)' },\n {\n name: 'pattern',\n type: {\n kind: 'union',\n of: [\n { kind: 'object', fields: { patternType: PATTERN_TYPE }, open: true },\n { kind: 'literal', value: null as unknown as string },\n ],\n },\n description: 'Pattern config (or null to clear the slot)',\n },\n {\n name: 'props',\n type: { kind: 'object', fields: {}, open: true },\n description: 'Extra props forwarded to the pattern',\n optional: true,\n },\n ],\n example: '[\"render-ui\", \"main\", { \"patternType\": \"entity-table\", \"columns\": [\"name\"] }]',\n effect: { kind: 'render-ui' },\n },\n};\n\n/**\n * Get all core operator names.\n */\nexport function getCoreOperators(): string[] {\n return Object.keys(CORE_OPERATORS);\n}\n","/**\n * Math Module - Numeric Operations\n *\n * Provides higher-level numeric operations beyond basic arithmetic.\n * Basic arithmetic (+, -, *, /, %) is provided by language primitives.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Math module operators.\n * All operators return numbers and have no side effects.\n */\nexport const MATH_OPERATORS: Record<string, StdOperatorMeta> = {\n 'math/abs': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 1,\n description: 'Absolute value',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'n', type: 'number', description: 'The number' }],\n example: '[\"math/abs\", -5] // => 5',\n },\n 'math/min': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: null,\n description: 'Minimum of values',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: '...nums', type: 'number[]', description: 'Numbers to compare' }],\n example: '[\"math/min\", 3, 1, 4] // => 1',\n },\n 'math/max': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: null,\n description: 'Maximum of values',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: '...nums', type: 'number[]', description: 'Numbers to compare' }],\n example: '[\"math/max\", 3, 1, 4] // => 4',\n },\n 'math/clamp': {\n module: 'math',\n category: 'std-math',\n minArity: 3,\n maxArity: 3,\n description: 'Constrain value to range [min, max]',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'n', type: 'number', description: 'The value to clamp' },\n { name: 'min', type: 'number', description: 'Minimum bound' },\n { name: 'max', type: 'number', description: 'Maximum bound' },\n ],\n example: '[\"math/clamp\", 150, 0, 100] // => 100',\n },\n 'math/floor': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 1,\n description: 'Round down to integer',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'n', type: 'number', description: 'The number' }],\n example: '[\"math/floor\", 3.7] // => 3',\n },\n 'math/ceil': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 1,\n description: 'Round up to integer',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'n', type: 'number', description: 'The number' }],\n example: '[\"math/ceil\", 3.2] // => 4',\n },\n 'math/round': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 2,\n description: 'Round to nearest integer or specified decimals',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'n', type: 'number', description: 'The number' },\n { name: 'decimals', type: 'number', description: 'Decimal places', optional: true, defaultValue: 0 },\n ],\n example: '[\"math/round\", 3.456, 2] // => 3.46',\n },\n 'math/pow': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: 2,\n description: 'Exponentiation (base^exp)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'base', type: 'number', description: 'The base' },\n { name: 'exp', type: 'number', description: 'The exponent' },\n ],\n example: '[\"math/pow\", 2, 8] // => 256',\n },\n 'math/sqrt': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 1,\n description: 'Square root',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'n', type: 'number', description: 'The number' }],\n example: '[\"math/sqrt\", 16] // => 4',\n },\n 'math/mod': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: 2,\n description: 'Modulo (remainder)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: 'number', description: 'Dividend' },\n { name: 'b', type: 'number', description: 'Divisor' },\n ],\n example: '[\"math/mod\", 7, 3] // => 1',\n },\n 'math/sign': {\n module: 'math',\n category: 'std-math',\n minArity: 1,\n maxArity: 1,\n description: 'Returns -1, 0, or 1 indicating sign',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'n', type: 'number', description: 'The number' }],\n example: '[\"math/sign\", -42] // => -1',\n },\n 'math/lerp': {\n module: 'math',\n category: 'std-math',\n minArity: 3,\n maxArity: 3,\n description: 'Linear interpolation between a and b by factor t',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: 'number', description: 'Start value' },\n { name: 'b', type: 'number', description: 'End value' },\n { name: 't', type: 'number', description: 'Interpolation factor (0-1)' },\n ],\n example: '[\"math/lerp\", 0, 100, 0.5] // => 50',\n },\n 'math/map': {\n module: 'math',\n category: 'std-math',\n minArity: 5,\n maxArity: 5,\n description: 'Map value from one range to another',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'n', type: 'number', description: 'The value' },\n { name: 'inMin', type: 'number', description: 'Input range minimum' },\n { name: 'inMax', type: 'number', description: 'Input range maximum' },\n { name: 'outMin', type: 'number', description: 'Output range minimum' },\n { name: 'outMax', type: 'number', description: 'Output range maximum' },\n ],\n example: '[\"math/map\", 5, 0, 10, 0, 100] // => 50',\n },\n 'math/random': {\n module: 'math',\n category: 'std-math',\n minArity: 0,\n maxArity: 0,\n description: 'Random number between 0 (inclusive) and 1 (exclusive)',\n hasSideEffects: false,\n returnType: 'number',\n params: [],\n example: '[\"math/random\"] // => 0.7234...',\n },\n 'math/randomInt': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: 2,\n description: 'Random integer in range [min, max] (inclusive)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'min', type: 'number', description: 'Minimum (inclusive)' },\n { name: 'max', type: 'number', description: 'Maximum (inclusive)' },\n ],\n example: '[\"math/randomInt\", 1, 6] // => 4',\n },\n 'math/default': {\n module: 'math',\n category: 'std-math',\n minArity: 2,\n maxArity: 2,\n description: 'Return default if value is null, undefined, or NaN',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'n', type: 'number | null', description: 'The value' },\n { name: 'default', type: 'number', description: 'Default value' },\n ],\n example: '[\"math/default\", null, 0] // => 0',\n },\n};\n\n/**\n * Get all math operator names.\n */\nexport function getMathOperators(): string[] {\n return Object.keys(MATH_OPERATORS);\n}\n","/**\n * String Module - String Operations\n *\n * Provides string manipulation and transformation functions.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * String module operators.\n * All operators return strings (or boolean for checks) and have no side effects.\n */\nexport const STR_OPERATORS: Record<string, StdOperatorMeta> = {\n 'str/len': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'String length',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/len\", \"hello\"] // => 5',\n },\n 'str/concat': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 99,\n description: 'Concatenate strings together',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'strings', type: 'string', description: 'Strings to concatenate' }],\n example: '[\"str/concat\", \"/users/\", \"@entity.id\"] // => \"/users/123\"',\n },\n 'str/upper': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to uppercase',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/upper\", \"hello\"] // => \"HELLO\"',\n },\n 'str/lower': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to lowercase',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/lower\", \"HELLO\"] // => \"hello\"',\n },\n 'str/trim': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Remove leading and trailing whitespace',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/trim\", \" hello \"] // => \"hello\"',\n },\n 'str/trimStart': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Remove leading whitespace',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/trimStart\", \" hello\"] // => \"hello\"',\n },\n 'str/trimEnd': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Remove trailing whitespace',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/trimEnd\", \"hello \"] // => \"hello\"',\n },\n 'str/split': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Split string into array by delimiter',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'delim', type: 'string', description: 'Delimiter' },\n ],\n example: '[\"str/split\", \"a,b,c\", \",\"] // => [\"a\", \"b\", \"c\"]',\n },\n 'str/join': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Join array elements into string',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'arr', type: 'array', description: 'Array to join' },\n { name: 'delim', type: 'string', description: 'Delimiter' },\n ],\n example: '[\"str/join\", [\"a\", \"b\", \"c\"], \", \"] // => \"a, b, c\"',\n },\n 'str/slice': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 3,\n description: 'Extract substring',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'start', type: 'number', description: 'Start index' },\n { name: 'end', type: 'number', description: 'End index (exclusive)', optional: true },\n ],\n example: '[\"str/slice\", \"hello\", 1, 4] // => \"ell\"',\n },\n 'str/replace': {\n module: 'str',\n category: 'std-str',\n minArity: 3,\n maxArity: 3,\n description: 'Replace first occurrence',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'find', type: 'string', description: 'String to find' },\n { name: 'replace', type: 'string', description: 'Replacement' },\n ],\n example: '[\"str/replace\", \"hello world\", \"world\", \"there\"] // => \"hello there\"',\n },\n 'str/replaceAll': {\n module: 'str',\n category: 'std-str',\n minArity: 3,\n maxArity: 3,\n description: 'Replace all occurrences',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'find', type: 'string', description: 'String to find' },\n { name: 'replace', type: 'string', description: 'Replacement' },\n ],\n example: '[\"str/replaceAll\", \"a-b-c\", \"-\", \"_\"] // => \"a_b_c\"',\n },\n 'str/includes': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string contains substring',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'search', type: 'string', description: 'Substring to find' },\n ],\n example: '[\"str/includes\", \"hello world\", \"world\"] // => true',\n },\n 'str/startsWith': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string starts with prefix',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'prefix', type: 'string', description: 'Prefix to check' },\n ],\n example: '[\"str/startsWith\", \"hello\", \"hel\"] // => true',\n },\n 'str/endsWith': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string ends with suffix',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'suffix', type: 'string', description: 'Suffix to check' },\n ],\n example: '[\"str/endsWith\", \"hello\", \"lo\"] // => true',\n },\n 'str/padStart': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 3,\n description: 'Pad string from start to target length',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'len', type: 'number', description: 'Target length' },\n { name: 'char', type: 'string', description: 'Padding character', optional: true, defaultValue: ' ' },\n ],\n example: '[\"str/padStart\", \"5\", 3, \"0\"] // => \"005\"',\n },\n 'str/padEnd': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 3,\n description: 'Pad string from end to target length',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'len', type: 'number', description: 'Target length' },\n { name: 'char', type: 'string', description: 'Padding character', optional: true, defaultValue: ' ' },\n ],\n example: '[\"str/padEnd\", \"5\", 3, \"0\"] // => \"500\"',\n },\n 'str/repeat': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Repeat string n times',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'count', type: 'number', description: 'Repeat count' },\n ],\n example: '[\"str/repeat\", \"ab\", 3] // => \"ababab\"',\n },\n 'str/reverse': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Reverse string',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/reverse\", \"hello\"] // => \"olleh\"',\n },\n 'str/capitalize': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Capitalize first character',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/capitalize\", \"hello\"] // => \"Hello\"',\n },\n 'str/titleCase': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to Title Case',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/titleCase\", \"hello world\"] // => \"Hello World\"',\n },\n 'str/camelCase': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to camelCase',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/camelCase\", \"hello world\"] // => \"helloWorld\"',\n },\n 'str/kebabCase': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to kebab-case',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/kebabCase\", \"Hello World\"] // => \"hello-world\"',\n },\n 'str/snakeCase': {\n module: 'str',\n category: 'std-str',\n minArity: 1,\n maxArity: 1,\n description: 'Convert to snake_case',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 's', type: 'string', description: 'The string' }],\n example: '[\"str/snakeCase\", \"Hello World\"] // => \"hello_world\"',\n },\n 'str/default': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Return default if value is null/undefined/empty',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string | null', description: 'The value' },\n { name: 'default', type: 'string', description: 'Default value' },\n ],\n example: '[\"str/default\", null, \"N/A\"] // => \"N/A\"',\n },\n 'str/template': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 2,\n description: 'Variable substitution in template string',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'template', type: 'string', description: 'Template with {placeholders}' },\n { name: 'vars', type: 'object', description: 'Variables to substitute' },\n ],\n example: '[\"str/template\", \"Hello, {name}!\", {\"name\": \"World\"}] // => \"Hello, World!\"',\n },\n 'str/truncate': {\n module: 'str',\n category: 'std-str',\n minArity: 2,\n maxArity: 3,\n description: 'Truncate string with optional suffix',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 's', type: 'string', description: 'The string' },\n { name: 'len', type: 'number', description: 'Maximum length' },\n { name: 'suffix', type: 'string', description: 'Suffix for truncated strings', optional: true, defaultValue: '...' },\n ],\n example: '[\"str/truncate\", \"Hello World\", 8, \"...\"] // => \"Hello...\"',\n },\n};\n\n/**\n * Get all string operator names.\n */\nexport function getStrOperators(): string[] {\n return Object.keys(STR_OPERATORS);\n}\n","/**\n * Array Module - Collection Operations\n *\n * Provides array manipulation and transformation functions.\n * Many functions accept lambda expressions for predicates and transformations.\n *\n * Lambda syntax: [\"fn\", \"varName\", expression] or [\"fn\", [\"a\", \"b\"], expression]\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Array module operators.\n * All operators return arrays (or other values) and have no side effects.\n */\nexport const ARRAY_OPERATORS: Record<string, StdOperatorMeta> = {\n 'array/len': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Array length',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/len\", [1, 2, 3]] // => 3',\n },\n 'array/empty?': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Check if array is empty',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/empty?\", []] // => true',\n },\n 'array/first': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Get first element (element type of input array, may be undefined when empty)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'element-of-arg<0>?',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/first\", [1, 2, 3]] // => 1',\n },\n 'array/last': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Get last element (element type of input array, may be undefined when empty)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'element-of-arg<0>?',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/last\", [1, 2, 3]] // => 3',\n },\n 'array/nth': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Get element at index (element type of input array, may be undefined out-of-bounds)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'element-of-arg<0>?',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'index', type: 'number', description: 'Index (0-based)' },\n ],\n example: '[\"array/nth\", [1, 2, 3], 1] // => 2',\n },\n 'array/slice': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 3,\n description: 'Extract subarray',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'start', type: 'number', description: 'Start index' },\n { name: 'end', type: 'number', description: 'End index (exclusive)', optional: true },\n ],\n example: '[\"array/slice\", [1, 2, 3, 4], 1, 3] // => [2, 3]',\n },\n 'array/concat': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: null,\n description: 'Concatenate arrays',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: '...arrs', type: 'array[]', description: 'Arrays to concatenate' }],\n example: '[\"array/concat\", [1, 2], [3, 4]] // => [1, 2, 3, 4]',\n },\n 'array/append': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Add item to end (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'item', type: 'any', description: 'Item to add' },\n ],\n example: '[\"array/append\", [1, 2], 3] // => [1, 2, 3]',\n },\n 'array/prepend': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Add item to start (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'item', type: 'any', description: 'Item to add' },\n ],\n example: '[\"array/prepend\", [2, 3], 1] // => [1, 2, 3]',\n },\n 'array/insert': {\n module: 'array',\n category: 'std-array',\n minArity: 3,\n maxArity: 3,\n description: 'Insert item at index (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'index', type: 'number', description: 'Index to insert at' },\n { name: 'item', type: 'any', description: 'Item to insert' },\n ],\n example: '[\"array/insert\", [1, 3], 1, 2] // => [1, 2, 3]',\n },\n 'array/remove': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Remove item at index (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'index', type: 'number', description: 'Index to remove' },\n ],\n example: '[\"array/remove\", [1, 2, 3], 1] // => [1, 3]',\n },\n 'array/removeItem': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Remove first matching item (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'item', type: 'any', description: 'Item to remove' },\n ],\n example: '[\"array/removeItem\", [1, 2, 3, 2], 2] // => [1, 3, 2]',\n },\n 'array/reverse': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Reverse array order (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/reverse\", [1, 2, 3]] // => [3, 2, 1]',\n },\n 'array/sort': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 3,\n description: 'Sort array (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to sort by (for objects)', optional: true },\n { name: 'dir', type: 'string', description: '\"asc\" or \"desc\"', optional: true, defaultValue: 'asc' },\n ],\n example: '[\"array/sort\", \"@items\", \"price\", \"desc\"]',\n },\n 'array/shuffle': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Randomly shuffle array (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/shuffle\", [1, 2, 3, 4, 5]]',\n },\n 'array/unique': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Remove duplicates (returns new array)',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/unique\", [1, 2, 2, 3, 1]] // => [1, 2, 3]',\n },\n 'array/flatten': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 1,\n description: 'Flatten nested arrays one level',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'arr', type: 'array', description: 'The array' }],\n example: '[\"array/flatten\", [[1, 2], [3, 4]]] // => [1, 2, 3, 4]',\n },\n 'array/zip': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Pair elements from two arrays',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr1', type: 'array', description: 'First array' },\n { name: 'arr2', type: 'array', description: 'Second array' },\n ],\n example: '[\"array/zip\", [1, 2], [\"a\", \"b\"]] // => [[1, \"a\"], [2, \"b\"]]',\n },\n 'array/includes': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Check if array contains item',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'item', type: 'any', description: 'Item to find' },\n ],\n example: '[\"array/includes\", [1, 2, 3], 2] // => true',\n },\n 'array/indexOf': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Find index of item (-1 if not found)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'item', type: 'any', description: 'Item to find' },\n ],\n example: '[\"array/indexOf\", [1, 2, 3], 2] // => 1',\n },\n 'array/find': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Find first element matching predicate (element type of input array, undefined when no match)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'element-of-arg<0>?',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/find\", \"@items\", [\"fn\", \"x\", [\"=\", \"@x.status\", \"active\"]]]',\n },\n 'array/findIndex': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Find index of first element matching predicate (-1 if none)',\n hasSideEffects: false,\n returnType: 'number',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/findIndex\", \"@items\", [\"fn\", \"x\", [\"=\", \"@x.status\", \"active\"]]]',\n },\n 'array/filter': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Keep elements matching predicate (returns same array element type as input)',\n hasSideEffects: false,\n returnType: 'array',\n returnSemantics: 'identity-of-arg<0>',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/filter\", \"@items\", [\"fn\", \"x\", [\">\", \"@x.price\", 100]]]',\n },\n 'array/reject': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Remove elements matching predicate (returns same array element type as input)',\n hasSideEffects: false,\n returnType: 'array',\n returnSemantics: 'identity-of-arg<0>',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/reject\", \"@items\", [\"fn\", \"x\", [\"=\", \"@x.status\", \"deleted\"]]]',\n },\n 'array/map': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Transform each element (return type wraps the lambda result in an array)',\n hasSideEffects: false,\n returnType: 'array',\n returnSemantics: 'lambda-result',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'fn', type: 'lambda', description: 'Transform function' },\n ],\n example: '[\"array/map\", \"@items\", [\"fn\", \"x\", [\"*\", \"@x.price\", 1.1]]]',\n },\n 'array/reduce': {\n module: 'array',\n category: 'std-array',\n minArity: 3,\n maxArity: 3,\n description: 'Reduce array to single value (return type matches the lambda result / init type)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'lambda-result',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'fn', type: 'lambda', description: 'Reducer function (acc, item) => newAcc' },\n { name: 'init', type: 'any', description: 'Initial accumulator value' },\n ],\n example: '[\"array/reduce\", \"@items\", [\"fn\", [\"acc\", \"x\"], [\"+\", \"@acc\", \"@x.price\"]], 0]',\n },\n 'array/every': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Check if all elements match predicate',\n hasSideEffects: false,\n returnType: 'boolean',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/every\", \"@items\", [\"fn\", \"x\", [\">\", \"@x.price\", 0]]]',\n },\n 'array/some': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Check if any element matches predicate',\n hasSideEffects: false,\n returnType: 'boolean',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/some\", \"@items\", [\"fn\", \"x\", [\"=\", \"@x.status\", \"active\"]]]',\n },\n 'array/count': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 2,\n description: 'Count elements (optionally matching predicate)',\n hasSideEffects: false,\n returnType: 'number',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function', optional: true },\n ],\n example: '[\"array/count\", \"@tasks\", [\"fn\", \"t\", [\"=\", \"@t.status\", \"done\"]]]',\n },\n 'array/sum': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 2,\n description: 'Sum values (optionally by field)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to sum', optional: true },\n ],\n example: '[\"array/sum\", \"@cart.items\", \"price\"]',\n },\n 'array/avg': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 2,\n description: 'Average of values (optionally by field)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to average', optional: true },\n ],\n example: '[\"array/avg\", \"@ratings\", \"score\"]',\n },\n 'array/min': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 2,\n description: 'Minimum value (optionally by field)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to compare', optional: true },\n ],\n example: '[\"array/min\", \"@products\", \"price\"]',\n },\n 'array/max': {\n module: 'array',\n category: 'std-array',\n minArity: 1,\n maxArity: 2,\n description: 'Maximum value (optionally by field)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to compare', optional: true },\n ],\n example: '[\"array/max\", \"@products\", \"price\"]',\n },\n 'array/groupBy': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Group elements by field value',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'key', type: 'string', description: 'Field to group by' },\n ],\n example: '[\"array/groupBy\", \"@orders\", \"status\"]',\n },\n 'array/partition': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Split array by predicate into [matches, nonMatches]',\n hasSideEffects: false,\n returnType: 'array',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'pred', type: 'lambda', description: 'Predicate function' },\n ],\n example: '[\"array/partition\", \"@items\", [\"fn\", \"x\", [\">\", \"@x.price\", 50]]]',\n },\n 'array/take': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Take first n elements',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'n', type: 'number', description: 'Number of elements' },\n ],\n example: '[\"array/take\", \"@items\", 5]',\n },\n 'array/drop': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Skip first n elements',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'n', type: 'number', description: 'Number of elements to skip' },\n ],\n example: '[\"array/drop\", \"@items\", 5]',\n },\n 'array/takeLast': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Take last n elements',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'n', type: 'number', description: 'Number of elements' },\n ],\n example: '[\"array/takeLast\", \"@items\", 3]',\n },\n 'array/dropLast': {\n module: 'array',\n category: 'std-array',\n minArity: 2,\n maxArity: 2,\n description: 'Skip last n elements',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'arr', type: 'array', description: 'The array' },\n { name: 'n', type: 'number', description: 'Number of elements to skip' },\n ],\n example: '[\"array/dropLast\", \"@items\", 2]',\n },\n};\n\n/**\n * Get all array operator names.\n */\nexport function getArrayOperators(): string[] {\n return Object.keys(ARRAY_OPERATORS);\n}\n\n/**\n * Get all array operators that accept lambda expressions.\n */\nexport function getLambdaArrayOperators(): string[] {\n return Object.entries(ARRAY_OPERATORS)\n .filter(([, meta]) => meta.acceptsLambda)\n .map(([name]) => name);\n}\n","/**\n * Object Module - Object Operations\n *\n * Provides object manipulation and transformation functions.\n * All operations are immutable (return new objects).\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Object module operators.\n * All operators return objects or other values and have no side effects.\n */\nexport const OBJECT_OPERATORS: Record<string, StdOperatorMeta> = {\n 'object/keys': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Get object keys as array',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/keys\", {\"a\": 1, \"b\": 2}] // => [\"a\", \"b\"]',\n },\n 'object/values': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Get object values as array',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/values\", {\"a\": 1, \"b\": 2}] // => [1, 2]',\n },\n 'object/entries': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Get [key, value] pairs as array',\n hasSideEffects: false,\n returnType: 'array',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/entries\", {\"a\": 1}] // => [[\"a\", 1]]',\n },\n 'object/fromEntries': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Create object from [key, value] pairs',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: 'entries', type: 'array', description: 'Array of [key, value] pairs' }],\n example: '[\"object/fromEntries\", [[\"a\", 1], [\"b\", 2]]] // => {\"a\": 1, \"b\": 2}',\n },\n 'object/get': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 3,\n description: 'Get nested value by path (return type derived from input object shape and key)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'object-key-lookup',\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'path', type: 'string', description: 'Dot-separated path (e.g., \"user.name\")' },\n { name: 'default', type: 'any', description: 'Default if path not found', optional: true },\n ],\n example: '[\"object/get\", \"@user\", \"profile.name\", \"Anonymous\"]',\n },\n 'object/set': {\n module: 'object',\n category: 'std-object',\n minArity: 3,\n maxArity: 3,\n description: 'Set nested value by path (returns new object)',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'path', type: 'string', description: 'Dot-separated path' },\n { name: 'value', type: 'any', description: 'Value to set' },\n ],\n example: '[\"object/set\", \"@user\", \"profile.name\", \"John\"]',\n },\n 'object/has': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Check if path exists',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'path', type: 'string', description: 'Dot-separated path' },\n ],\n example: '[\"object/has\", \"@user\", \"profile.name\"]',\n },\n 'object/merge': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: null,\n description: 'Shallow merge objects (later wins)',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: '...objs', type: 'object[]', description: 'Objects to merge' }],\n example: '[\"object/merge\", {\"a\": 1}, {\"b\": 2}] // => {\"a\": 1, \"b\": 2}',\n },\n 'object/deepMerge': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: null,\n description: 'Deep merge objects (later wins)',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: '...objs', type: 'object[]', description: 'Objects to merge' }],\n example: '[\"object/deepMerge\", {\"a\": {\"b\": 1}}, {\"a\": {\"c\": 2}}]',\n },\n 'object/pick': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Select only specified keys (return type is subset of input object shape)',\n hasSideEffects: false,\n returnType: 'any',\n returnSemantics: 'object-key-lookup',\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'keys', type: 'array', description: 'Keys to keep' },\n ],\n example: '[\"object/pick\", \"@entity\", [\"name\", \"email\"]]',\n },\n 'object/omit': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Exclude specified keys',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'keys', type: 'array', description: 'Keys to exclude' },\n ],\n example: '[\"object/omit\", \"@entity\", [\"password\", \"secret\"]]',\n },\n 'object/mapValues': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Transform all values',\n hasSideEffects: false,\n returnType: 'any',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'fn', type: 'lambda', description: 'Transform function' },\n ],\n example: '[\"object/mapValues\", \"@stats\", [\"fn\", \"v\", [\"*\", \"@v\", 100]]]',\n },\n 'object/mapKeys': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Transform all keys',\n hasSideEffects: false,\n returnType: 'any',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'fn', type: 'lambda', description: 'Transform function' },\n ],\n example: '[\"object/mapKeys\", \"@data\", [\"fn\", \"k\", [\"str/upper\", \"@k\"]]]',\n },\n 'object/filter': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Filter entries by predicate',\n hasSideEffects: false,\n returnType: 'any',\n acceptsLambda: true,\n lambdaArgPosition: 1,\n params: [\n { name: 'obj', type: 'object', description: 'The object' },\n { name: 'pred', type: 'lambda', description: 'Predicate (key, value) => boolean' },\n ],\n example: '[\"object/filter\", \"@data\", [\"fn\", [\"k\", \"v\"], [\"!=\", \"@v\", null]]]',\n },\n 'object/empty?': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Check if object has no keys',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/empty?\", {}] // => true',\n },\n 'object/equals': {\n module: 'object',\n category: 'std-object',\n minArity: 2,\n maxArity: 2,\n description: 'Deep equality check',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: 'object', description: 'First object' },\n { name: 'b', type: 'object', description: 'Second object' },\n ],\n example: '[\"object/equals\", {\"a\": 1}, {\"a\": 1}] // => true',\n },\n 'object/clone': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Shallow clone object',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/clone\", \"@entity\"]',\n },\n 'object/deepClone': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: 1,\n description: 'Deep clone object',\n hasSideEffects: false,\n returnType: 'any',\n params: [{ name: 'obj', type: 'object', description: 'The object' }],\n example: '[\"object/deepClone\", \"@entity\"]',\n },\n 'path': {\n module: 'object',\n category: 'std-object',\n minArity: 1,\n maxArity: null, // variadic\n description: 'Build a dot-separated path string from segments. Used with set effect for dynamic field paths.',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: '...segments', type: 'string[]', description: 'Path segments to join with dots' },\n ],\n example: '[\"path\", \"formValues\", \"@payload.fieldId\"] // => \"formValues.customerName\"',\n },\n};\n\n/**\n * Get all object operator names.\n */\nexport function getObjectOperators(): string[] {\n return Object.keys(OBJECT_OPERATORS);\n}\n","/**\n * Time Module - Date and Time Operations\n *\n * Provides date manipulation, formatting, and comparison functions.\n *\n * Time units: 'year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'ms'\n * Format tokens: 'YYYY', 'MM', 'DD', 'HH', 'mm', 'ss', 'ddd', 'MMM'\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Time module operators.\n * All operators work with dates/timestamps and have no side effects.\n */\nexport const TIME_OPERATORS: Record<string, StdOperatorMeta> = {\n 'time/now': {\n module: 'time',\n category: 'std-time',\n minArity: 0,\n maxArity: 0,\n description: 'Current timestamp',\n hasSideEffects: false,\n returnType: 'number',\n params: [],\n example: '[\"time/now\"] // => 1705593600000',\n },\n 'time/today': {\n module: 'time',\n category: 'std-time',\n minArity: 0,\n maxArity: 0,\n description: 'Today at midnight (local time)',\n hasSideEffects: false,\n returnType: 'number',\n params: [],\n example: '[\"time/today\"]',\n },\n 'time/parse': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 2,\n description: 'Parse string to timestamp',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'str', type: 'string', description: 'Date string' },\n { name: 'format', type: 'string', description: 'Format pattern', optional: true },\n ],\n example: '[\"time/parse\", \"2024-01-18\", \"YYYY-MM-DD\"]',\n },\n 'time/format': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 2,\n description: 'Format timestamp to string',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp' },\n { name: 'format', type: 'string', description: 'Format pattern' },\n ],\n example: '[\"time/format\", \"@entity.createdAt\", \"MMM DD, YYYY\"]',\n },\n 'time/year': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get year from timestamp',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/year\", \"@entity.createdAt\"] // => 2024',\n },\n 'time/month': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get month from timestamp (1-12)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/month\", \"@entity.createdAt\"] // => 1',\n },\n 'time/day': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get day of month from timestamp (1-31)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/day\", \"@entity.createdAt\"] // => 18',\n },\n 'time/weekday': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get day of week (0=Sunday, 6=Saturday)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/weekday\", \"@entity.createdAt\"] // => 4 (Thursday)',\n },\n 'time/hour': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get hour from timestamp (0-23)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/hour\", \"@entity.createdAt\"] // => 14',\n },\n 'time/minute': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get minute from timestamp (0-59)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/minute\", \"@entity.createdAt\"] // => 30',\n },\n 'time/second': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Get second from timestamp (0-59)',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/second\", \"@entity.createdAt\"] // => 45',\n },\n 'time/add': {\n module: 'time',\n category: 'std-time',\n minArity: 3,\n maxArity: 3,\n description: 'Add time to timestamp',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp' },\n { name: 'amount', type: 'number', description: 'Amount to add' },\n { name: 'unit', type: 'string', description: 'Time unit (year/month/week/day/hour/minute/second/ms)' },\n ],\n example: '[\"time/add\", [\"time/now\"], 7, \"day\"]',\n },\n 'time/subtract': {\n module: 'time',\n category: 'std-time',\n minArity: 3,\n maxArity: 3,\n description: 'Subtract time from timestamp',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp' },\n { name: 'amount', type: 'number', description: 'Amount to subtract' },\n { name: 'unit', type: 'string', description: 'Time unit' },\n ],\n example: '[\"time/subtract\", [\"time/now\"], 1, \"hour\"]',\n },\n 'time/diff': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 3,\n description: 'Difference between timestamps',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: 'number', description: 'First timestamp' },\n { name: 'b', type: 'number', description: 'Second timestamp' },\n { name: 'unit', type: 'string', description: 'Result unit', optional: true, defaultValue: 'ms' },\n ],\n example: '[\"time/diff\", \"@entity.birthDate\", [\"time/now\"], \"year\"]',\n },\n 'time/startOf': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 2,\n description: 'Get start of time period',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp' },\n { name: 'unit', type: 'string', description: 'Time unit (year/month/week/day/hour/minute)' },\n ],\n example: '[\"time/startOf\", [\"time/now\"], \"month\"]',\n },\n 'time/endOf': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 2,\n description: 'Get end of time period',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp' },\n { name: 'unit', type: 'string', description: 'Time unit' },\n ],\n example: '[\"time/endOf\", [\"time/now\"], \"month\"]',\n },\n 'time/isBefore': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 2,\n description: 'Check if a is before b',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: 'number', description: 'First timestamp' },\n { name: 'b', type: 'number', description: 'Second timestamp' },\n ],\n example: '[\"time/isBefore\", \"@entity.startDate\", \"@entity.endDate\"]',\n },\n 'time/isAfter': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 2,\n description: 'Check if a is after b',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: 'number', description: 'First timestamp' },\n { name: 'b', type: 'number', description: 'Second timestamp' },\n ],\n example: '[\"time/isAfter\", [\"time/now\"], \"@entity.deadline\"]',\n },\n 'time/isBetween': {\n module: 'time',\n category: 'std-time',\n minArity: 3,\n maxArity: 3,\n description: 'Check if date is between start and end',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'date', type: 'number', description: 'Timestamp to check' },\n { name: 'start', type: 'number', description: 'Range start' },\n { name: 'end', type: 'number', description: 'Range end' },\n ],\n example: '[\"time/isBetween\", [\"time/now\"], \"@entity.startDate\", \"@entity.endDate\"]',\n },\n 'time/isSame': {\n module: 'time',\n category: 'std-time',\n minArity: 2,\n maxArity: 3,\n description: 'Check if timestamps are same (optionally by unit)',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: 'number', description: 'First timestamp' },\n { name: 'b', type: 'number', description: 'Second timestamp' },\n { name: 'unit', type: 'string', description: 'Comparison unit', optional: true },\n ],\n example: '[\"time/isSame\", \"@a\", \"@b\", \"day\"]',\n },\n 'time/isPast': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Check if timestamp is in the past',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/isPast\", \"@entity.expiresAt\"]',\n },\n 'time/isFuture': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Check if timestamp is in the future',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/isFuture\", \"@entity.scheduledAt\"]',\n },\n 'time/isToday': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Check if timestamp is today',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/isToday\", \"@entity.createdAt\"]',\n },\n 'time/relative': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Format as relative time (\"2 hours ago\", \"in 3 days\")',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'date', type: 'number', description: 'Timestamp' }],\n example: '[\"time/relative\", \"@entity.lastActivityAt\"] // => \"2 hours ago\"',\n },\n 'time/duration': {\n module: 'time',\n category: 'std-time',\n minArity: 1,\n maxArity: 1,\n description: 'Format milliseconds as duration (\"2h 30m\")',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'ms', type: 'number', description: 'Duration in milliseconds' }],\n example: '[\"time/duration\", 9000000] // => \"2h 30m\"',\n },\n};\n\n/**\n * Get all time operator names.\n */\nexport function getTimeOperators(): string[] {\n return Object.keys(TIME_OPERATORS);\n}\n","/**\n * Validate Module - Input Validation\n *\n * Provides validation functions for form inputs and data.\n * Returns true/false for single validations.\n * validate/check returns { valid: boolean, errors: [...] } for multiple rules.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Validate module operators.\n * All operators return boolean or validation result objects and have no side effects.\n */\nexport const VALIDATE_OPERATORS: Record<string, StdOperatorMeta> = {\n 'validate/required': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is not null, undefined, or empty string',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/required\", \"@payload.name\"]',\n },\n 'validate/string': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a string',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/string\", \"@payload.name\"]',\n },\n 'validate/number': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a number',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/number\", \"@payload.age\"]',\n },\n 'validate/boolean': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a boolean',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/boolean\", \"@payload.active\"]',\n },\n 'validate/array': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is an array',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/array\", \"@payload.items\"]',\n },\n 'validate/object': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is an object',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/object\", \"@payload.data\"]',\n },\n 'validate/email': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid email format',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'string', description: 'Email to validate' }],\n example: '[\"validate/email\", \"@payload.email\"]',\n },\n 'validate/url': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid URL format',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'string', description: 'URL to validate' }],\n example: '[\"validate/url\", \"@payload.website\"]',\n },\n 'validate/uuid': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid UUID',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'string', description: 'UUID to validate' }],\n example: '[\"validate/uuid\", \"@payload.id\"]',\n },\n 'validate/phone': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid phone number',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'string', description: 'Phone number to validate' }],\n example: '[\"validate/phone\", \"@payload.phone\"]',\n },\n 'validate/creditCard': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid credit card number (Luhn algorithm)',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'string', description: 'Card number to validate' }],\n example: '[\"validate/creditCard\", \"@payload.cardNumber\"]',\n },\n 'validate/date': {\n module: 'validate',\n category: 'std-validate',\n minArity: 1,\n maxArity: 1,\n description: 'Check if value is a valid date',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'value', type: 'any', description: 'Value to check' }],\n example: '[\"validate/date\", \"@payload.birthDate\"]',\n },\n 'validate/minLength': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string/array has minimum length',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'string | array', description: 'Value to check' },\n { name: 'min', type: 'number', description: 'Minimum length' },\n ],\n example: '[\"validate/minLength\", \"@payload.password\", 8]',\n },\n 'validate/maxLength': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string/array has maximum length',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'string | array', description: 'Value to check' },\n { name: 'max', type: 'number', description: 'Maximum length' },\n ],\n example: '[\"validate/maxLength\", \"@payload.name\", 50]',\n },\n 'validate/length': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string/array has exact length',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'string | array', description: 'Value to check' },\n { name: 'exact', type: 'number', description: 'Required length' },\n ],\n example: '[\"validate/length\", \"@payload.code\", 6]',\n },\n 'validate/min': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if number is >= minimum',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'number', description: 'Number to check' },\n { name: 'min', type: 'number', description: 'Minimum value' },\n ],\n example: '[\"validate/min\", \"@payload.age\", 18]',\n },\n 'validate/max': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if number is <= maximum',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'number', description: 'Number to check' },\n { name: 'max', type: 'number', description: 'Maximum value' },\n ],\n example: '[\"validate/max\", \"@payload.quantity\", 100]',\n },\n 'validate/range': {\n module: 'validate',\n category: 'std-validate',\n minArity: 3,\n maxArity: 3,\n description: 'Check if number is within range [min, max]',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'number', description: 'Number to check' },\n { name: 'min', type: 'number', description: 'Minimum value' },\n { name: 'max', type: 'number', description: 'Maximum value' },\n ],\n example: '[\"validate/range\", \"@payload.rating\", 1, 5]',\n },\n 'validate/pattern': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if string matches regex pattern',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'string', description: 'String to check' },\n { name: 'regex', type: 'string', description: 'Regex pattern' },\n ],\n example: '[\"validate/pattern\", \"@payload.code\", \"^[A-Z]{3}[0-9]{3}$\"]',\n },\n 'validate/oneOf': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if value is in list of allowed values',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'any', description: 'Value to check' },\n { name: 'options', type: 'array', description: 'Allowed values' },\n ],\n example: '[\"validate/oneOf\", \"@payload.role\", [\"admin\", \"user\", \"guest\"]]',\n },\n 'validate/noneOf': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Check if value is not in list of disallowed values',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'value', type: 'any', description: 'Value to check' },\n { name: 'options', type: 'array', description: 'Disallowed values' },\n ],\n example: '[\"validate/noneOf\", \"@payload.username\", [\"admin\", \"root\", \"system\"]]',\n },\n 'validate/equals': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Deep equality check',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'a', type: 'any', description: 'First value' },\n { name: 'b', type: 'any', description: 'Second value' },\n ],\n example: '[\"validate/equals\", \"@payload.password\", \"@payload.confirmPassword\"]',\n },\n 'validate/check': {\n module: 'validate',\n category: 'std-validate',\n minArity: 2,\n maxArity: 2,\n description: 'Run multiple validation rules, return { valid, errors }',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n { name: 'value', type: 'any', description: 'Value or object to validate' },\n { name: 'rules', type: 'object', description: 'Validation rules by field' },\n ],\n example: `[\"validate/check\", \"@payload.data\", {\n \"name\": [[\"required\"], [\"minLength\", 2], [\"maxLength\", 50]],\n \"email\": [[\"required\"], [\"email\"]],\n \"age\": [[\"number\"], [\"min\", 18]]\n}]`,\n },\n};\n\n/**\n * Get all validate operator names.\n */\nexport function getValidateOperators(): string[] {\n return Object.keys(VALIDATE_OPERATORS);\n}\n","/**\n * Format Module - Display Formatting\n *\n * Provides formatting functions for numbers, currencies, and display values.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Format module operators.\n * All operators return formatted strings and have no side effects.\n */\nexport const FORMAT_OPERATORS: Record<string, StdOperatorMeta> = {\n 'format/number': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 2,\n description: 'Format number with locale-aware separators',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'n', type: 'number', description: 'Number to format' },\n { name: 'opts', type: 'object', description: 'Format options (decimals, locale)', optional: true },\n ],\n example: '[\"format/number\", 1234567.89] // => \"1,234,567.89\"',\n },\n 'format/currency': {\n module: 'format',\n category: 'std-format',\n minArity: 2,\n maxArity: 3,\n description: 'Format as currency',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'n', type: 'number', description: 'Amount' },\n { name: 'currency', type: 'string', description: 'Currency code (USD, EUR, etc.)' },\n { name: 'locale', type: 'string', description: 'Locale', optional: true, defaultValue: 'en-US' },\n ],\n example: '[\"format/currency\", 1234.56, \"USD\"] // => \"$1,234.56\"',\n },\n 'format/percent': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 2,\n description: 'Format as percentage',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'n', type: 'number', description: 'Number (0.5 = 50%)' },\n { name: 'decimals', type: 'number', description: 'Decimal places', optional: true, defaultValue: 0 },\n ],\n example: '[\"format/percent\", 0.856, 1] // => \"85.6%\"',\n },\n 'format/bytes': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 1,\n description: 'Format bytes as human-readable size',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'n', type: 'number', description: 'Bytes' }],\n example: '[\"format/bytes\", 2500000] // => \"2.4 MB\"',\n },\n 'format/ordinal': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 1,\n description: 'Format number as ordinal (1st, 2nd, 3rd)',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'n', type: 'number', description: 'Number' }],\n example: '[\"format/ordinal\", 42] // => \"42nd\"',\n },\n 'format/plural': {\n module: 'format',\n category: 'std-format',\n minArity: 3,\n maxArity: 3,\n description: 'Format count with singular/plural word',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'n', type: 'number', description: 'Count' },\n { name: 'singular', type: 'string', description: 'Singular form' },\n { name: 'plural', type: 'string', description: 'Plural form' },\n ],\n example: '[\"format/plural\", 5, \"item\", \"items\"] // => \"5 items\"',\n },\n 'format/list': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 2,\n description: 'Format array as natural language list',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'arr', type: 'array', description: 'Array of strings' },\n { name: 'style', type: 'string', description: '\"and\" or \"or\"', optional: true, defaultValue: 'and' },\n ],\n example: '[\"format/list\", [\"Alice\", \"Bob\", \"Charlie\"], \"and\"] // => \"Alice, Bob, and Charlie\"',\n },\n 'format/phone': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 2,\n description: 'Format phone number',\n hasSideEffects: false,\n returnType: 'string',\n params: [\n { name: 'str', type: 'string', description: 'Phone number digits' },\n { name: 'format', type: 'string', description: 'Format pattern', optional: true, defaultValue: 'US' },\n ],\n example: '[\"format/phone\", \"5551234567\"] // => \"(555) 123-4567\"',\n },\n 'format/creditCard': {\n module: 'format',\n category: 'std-format',\n minArity: 1,\n maxArity: 1,\n description: 'Format credit card with masked digits',\n hasSideEffects: false,\n returnType: 'string',\n params: [{ name: 'str', type: 'string', description: 'Card number' }],\n example: '[\"format/creditCard\", \"4111111111111234\"] // => \"•••• •••• •••• 1234\"',\n },\n};\n\n/**\n * Get all format operator names.\n */\nexport function getFormatOperators(): string[] {\n return Object.keys(FORMAT_OPERATORS);\n}\n","/**\n * Async Module - Asynchronous Operations\n *\n * Provides functions for handling async operations, delays, and timing.\n * These operators have side effects as they affect execution timing.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Async module operators.\n * These operators control execution timing and have side effects.\n */\nexport const ASYNC_OPERATORS: Record<string, StdOperatorMeta> = {\n 'async/delay': {\n module: 'async',\n category: 'std-async',\n minArity: 1,\n maxArity: 2,\n description: 'Wait for specified milliseconds, optionally execute an effect after',\n hasSideEffects: true,\n returnType: 'any',\n params: [\n { name: 'ms', type: 'number', description: 'Milliseconds to wait' },\n { name: 'effect', type: 'expression', description: 'Optional effect to execute after delay' },\n ],\n example: '[\"async/delay\", 2000, [\"emit\", \"RETRY\"]] // Wait 2s then emit',\n },\n 'async/interval': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: 2,\n description: 'Execute an effect periodically at a fixed interval',\n hasSideEffects: true,\n returnType: 'string',\n params: [\n { name: 'ms', type: 'number', description: 'Interval in milliseconds' },\n { name: 'effect', type: 'expression', description: 'Effect to execute each interval' },\n ],\n example: '[\"async/interval\", 5000, [\"emit\", \"POLL_TICK\"]] // Emit every 5s',\n },\n 'async/timeout': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: 2,\n description: 'Add timeout to an effect',\n hasSideEffects: true,\n returnType: 'any',\n params: [\n { name: 'effect', type: 'expression', description: 'Effect to execute' },\n { name: 'ms', type: 'number', description: 'Timeout in milliseconds' },\n ],\n example: '[\"async/timeout\", [\"call\", \"api\", \"fetchData\"], 5000]',\n },\n 'async/debounce': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: 2,\n description: 'Debounce an event (wait for pause in events)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'event', type: 'string', description: 'Event name to emit' },\n { name: 'ms', type: 'number', description: 'Debounce delay in milliseconds' },\n ],\n example: '[\"async/debounce\", \"SEARCH\", 300]',\n },\n 'async/throttle': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: 2,\n description: 'Throttle an event (emit at most once per interval)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'event', type: 'string', description: 'Event name to emit' },\n { name: 'ms', type: 'number', description: 'Throttle interval in milliseconds' },\n ],\n example: '[\"async/throttle\", \"SCROLL\", 100]',\n },\n 'async/retry': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: 2,\n description: 'Retry an effect with configurable backoff',\n hasSideEffects: true,\n returnType: 'any',\n params: [\n { name: 'effect', type: 'expression', description: 'Effect to retry' },\n { name: 'opts', type: 'object', description: '{ attempts, backoff, baseDelay }' },\n ],\n example: `[\"async/retry\",\n [\"call\", \"api\", \"fetchData\", { \"id\": \"@entity.id\" }],\n { \"attempts\": 3, \"backoff\": \"exponential\", \"baseDelay\": 1000 }]`,\n },\n 'async/race': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: null,\n description: 'Execute effects in parallel, return first to complete',\n hasSideEffects: true,\n returnType: 'any',\n params: [{ name: '...effects', type: 'expression[]', description: 'Effects to race' }],\n example: '[\"async/race\", [\"call\", \"api1\"], [\"call\", \"api2\"]]',\n },\n 'async/all': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: null,\n description: 'Execute effects in parallel, wait for all to complete',\n hasSideEffects: true,\n returnType: 'array',\n params: [{ name: '...effects', type: 'expression[]', description: 'Effects to execute' }],\n example: '[\"async/all\", [\"call\", \"api1\"], [\"call\", \"api2\"]]',\n },\n 'async/sequence': {\n module: 'async',\n category: 'std-async',\n minArity: 2,\n maxArity: null,\n description: 'Execute effects in sequence (one after another)',\n hasSideEffects: true,\n returnType: 'array',\n params: [{ name: '...effects', type: 'expression[]', description: 'Effects to execute in order' }],\n example: '[\"async/sequence\", [\"call\", \"validate\"], [\"call\", \"save\"]]',\n },\n};\n\n/**\n * Get all async operator names.\n */\nexport function getAsyncOperators(): string[] {\n return Object.keys(ASYNC_OPERATORS);\n}\n","/**\n * Neural Network Module - Neural Network Operations\n *\n * Provides operators for defining and executing neural networks.\n * Networks are defined as S-expressions and compiled to native code\n * by the Rust compiler for each target backend (PyTorch, TensorFlow, etc.).\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Neural network module operators.\n * These operators define network architecture and forward passes.\n */\nexport const NN_OPERATORS: Record<string, StdOperatorMeta> = {\n 'nn/sequential': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: null,\n description: 'Create a sequential neural network from layers',\n hasSideEffects: false,\n returnType: 'nn/module',\n params: [\n { name: '...layers', type: 'nn/layer[]', description: 'Layers to stack sequentially' },\n ],\n example: '[\"nn/sequential\", [\"nn/linear\", 16, 64], [\"nn/relu\"], [\"nn/linear\", 64, 4]]',\n },\n 'nn/linear': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 2,\n maxArity: 2,\n description: 'Fully connected linear layer (output = input * weights + bias)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [\n { name: 'inFeatures', type: 'number', description: 'Input dimension' },\n { name: 'outFeatures', type: 'number', description: 'Output dimension' },\n ],\n example: '[\"nn/linear\", 16, 64] // 16 inputs -> 64 outputs',\n },\n 'nn/relu': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 0,\n maxArity: 0,\n description: 'ReLU activation function: max(0, x)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [],\n example: '[\"nn/relu\"]',\n },\n 'nn/tanh': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 0,\n maxArity: 0,\n description: 'Tanh activation function: (e^x - e^-x) / (e^x + e^-x)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [],\n example: '[\"nn/tanh\"]',\n },\n 'nn/sigmoid': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 0,\n maxArity: 0,\n description: 'Sigmoid activation function: 1 / (1 + e^-x)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [],\n example: '[\"nn/sigmoid\"]',\n },\n 'nn/softmax': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 0,\n maxArity: 1,\n description: 'Softmax activation function (normalizes to probability distribution)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [\n { name: 'dim', type: 'number', description: 'Dimension to apply softmax', optional: true, defaultValue: -1 },\n ],\n example: '[\"nn/softmax\"]',\n },\n 'nn/dropout': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 0,\n maxArity: 1,\n description: 'Dropout layer for regularization (randomly zeros elements during training)',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [\n { name: 'p', type: 'number', description: 'Dropout probability', optional: true, defaultValue: 0.5 },\n ],\n example: '[\"nn/dropout\", 0.3] // 30% dropout',\n },\n 'nn/batchnorm': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: 1,\n description: 'Batch normalization layer',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [\n { name: 'numFeatures', type: 'number', description: 'Number of features to normalize' },\n ],\n example: '[\"nn/batchnorm\", 64]',\n },\n 'nn/layernorm': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: 1,\n description: 'Layer normalization',\n hasSideEffects: false,\n returnType: 'nn/layer',\n params: [\n { name: 'normalizedShape', type: 'number | number[]', description: 'Shape to normalize over' },\n ],\n example: '[\"nn/layernorm\", 64]',\n },\n 'nn/forward': {\n module: 'nn',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Execute forward pass through network',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network module' },\n { name: 'input', type: 'tensor', description: 'Input tensor' },\n ],\n example: '[\"nn/forward\", \"@entity.architecture\", \"@entity.sensors\"]',\n },\n 'nn/getWeights': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: 1,\n description: 'Get network weights as a flat tensor',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network module' },\n ],\n example: '[\"nn/getWeights\", \"@entity.architecture\"]',\n },\n 'nn/setWeights': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 2,\n maxArity: 2,\n description: 'Set network weights from a flat tensor',\n hasSideEffects: true,\n returnType: 'nn/module',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network module' },\n { name: 'weights', type: 'tensor', description: 'New weights as flat tensor' },\n ],\n example: '[\"nn/setWeights\", \"@entity.architecture\", \"@payload.newWeights\"]',\n },\n 'nn/paramCount': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: 1,\n description: 'Get total number of trainable parameters',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network module' },\n ],\n example: '[\"nn/paramCount\", \"@entity.architecture\"] // => 3300',\n },\n 'nn/clone': {\n module: 'nn',\n category: 'ml-arch',\n minArity: 1,\n maxArity: 1,\n description: 'Create a deep copy of the network with same weights',\n hasSideEffects: false,\n returnType: 'nn/module',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network module to clone' },\n ],\n example: '[\"nn/clone\", \"@entity.architecture\"]',\n },\n};\n\n/**\n * Get all nn operator names.\n */\nexport function getNnOperators(): string[] {\n return Object.keys(NN_OPERATORS);\n}\n","/**\n * Tensor Module - Tensor Operations\n *\n * Provides operators for creating and manipulating tensors.\n * Tensors are multi-dimensional arrays used for neural network inputs/outputs.\n * Compiled to native tensor libraries (PyTorch, NumPy, etc.) by the Rust compiler.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Tensor module operators.\n * These operators create and manipulate tensors.\n */\nexport const TENSOR_OPERATORS: Record<string, StdOperatorMeta> = {\n // ============================================================================\n // Creation\n // ============================================================================\n\n 'tensor/from': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Create tensor from array',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'data', type: 'array', description: 'Array of numbers (can be nested for multi-dimensional)' },\n ],\n example: '[\"tensor/from\", [1.0, 2.0, 3.0]]',\n },\n 'tensor/zeros': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Create tensor filled with zeros',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'shape', type: 'number[]', description: 'Shape of the tensor' },\n ],\n example: '[\"tensor/zeros\", [3, 4]] // 3x4 tensor of zeros',\n },\n 'tensor/ones': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Create tensor filled with ones',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'shape', type: 'number[]', description: 'Shape of the tensor' },\n ],\n example: '[\"tensor/ones\", [3, 4]] // 3x4 tensor of ones',\n },\n 'tensor/rand': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Create tensor with random values in [0, 1)',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'shape', type: 'number[]', description: 'Shape of the tensor' },\n ],\n example: '[\"tensor/rand\", [16]] // Random 16-element vector',\n },\n 'tensor/randn': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Create tensor with random values from standard normal distribution',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'shape', type: 'number[]', description: 'Shape of the tensor' },\n ],\n example: '[\"tensor/randn\", [16]] // Random normal 16-element vector',\n },\n\n // ============================================================================\n // Shape & Indexing\n // ============================================================================\n\n 'tensor/shape': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Get tensor shape as array',\n hasSideEffects: false,\n returnType: 'number[]',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n ],\n example: '[\"tensor/shape\", \"@entity.sensors\"] // => [16]',\n },\n 'tensor/get': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Get element at index',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'index', type: 'number | number[]', description: 'Index (single for 1D, array for multi-D)' },\n ],\n example: '[\"tensor/get\", \"@entity.output\", 3] // Get 4th element',\n },\n 'tensor/slice': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 3,\n maxArity: 3,\n description: 'Get slice of tensor',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'start', type: 'number', description: 'Start index' },\n { name: 'end', type: 'number', description: 'End index (exclusive)' },\n ],\n example: '[\"tensor/slice\", \"@entity.output\", 0, 3] // First 3 elements',\n },\n 'tensor/reshape': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Reshape tensor to new shape (total elements must match)',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'shape', type: 'number[]', description: 'New shape' },\n ],\n example: '[\"tensor/reshape\", \"@entity.data\", [4, 4]] // Reshape to 4x4',\n },\n 'tensor/flatten': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Flatten tensor to 1D',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n ],\n example: '[\"tensor/flatten\", \"@entity.data\"]',\n },\n\n // ============================================================================\n // Math Operations\n // ============================================================================\n\n 'tensor/add': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Element-wise addition',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'a', type: 'tensor', description: 'First tensor' },\n { name: 'b', type: 'tensor | number', description: 'Second tensor or scalar' },\n ],\n example: '[\"tensor/add\", \"@entity.a\", \"@entity.b\"]',\n },\n 'tensor/sub': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Element-wise subtraction',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'a', type: 'tensor', description: 'First tensor' },\n { name: 'b', type: 'tensor | number', description: 'Second tensor or scalar' },\n ],\n example: '[\"tensor/sub\", \"@entity.a\", \"@entity.b\"]',\n },\n 'tensor/mul': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Element-wise multiplication',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'a', type: 'tensor', description: 'First tensor' },\n { name: 'b', type: 'tensor | number', description: 'Second tensor or scalar' },\n ],\n example: '[\"tensor/mul\", \"@entity.weights\", 0.99] // Decay weights',\n },\n 'tensor/div': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Element-wise division',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'a', type: 'tensor', description: 'First tensor' },\n { name: 'b', type: 'tensor | number', description: 'Second tensor or scalar' },\n ],\n example: '[\"tensor/div\", \"@entity.gradient\", \"@entity.batchSize\"]',\n },\n 'tensor/matmul': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Matrix multiplication',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'a', type: 'tensor', description: 'First tensor (NxM)' },\n { name: 'b', type: 'tensor', description: 'Second tensor (MxK)' },\n ],\n example: '[\"tensor/matmul\", \"@entity.input\", \"@entity.weights\"]',\n },\n 'tensor/dot': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Dot product of two 1D tensors',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'a', type: 'tensor', description: 'First vector' },\n { name: 'b', type: 'tensor', description: 'Second vector' },\n ],\n example: '[\"tensor/dot\", \"@entity.a\", \"@entity.b\"]',\n },\n\n // ============================================================================\n // Reductions\n // ============================================================================\n\n 'tensor/sum': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'Sum of tensor elements',\n hasSideEffects: false,\n returnType: 'number | tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'dim', type: 'number', description: 'Dimension to reduce', optional: true },\n ],\n example: '[\"tensor/sum\", \"@entity.rewards\"] // Total reward',\n },\n 'tensor/mean': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'Mean of tensor elements',\n hasSideEffects: false,\n returnType: 'number | tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'dim', type: 'number', description: 'Dimension to reduce', optional: true },\n ],\n example: '[\"tensor/mean\", \"@entity.losses\"]',\n },\n 'tensor/max': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'Maximum value in tensor',\n hasSideEffects: false,\n returnType: 'number | tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'dim', type: 'number', description: 'Dimension to reduce', optional: true },\n ],\n example: '[\"tensor/max\", \"@entity.qValues\"]',\n },\n 'tensor/min': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'Minimum value in tensor',\n hasSideEffects: false,\n returnType: 'number | tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'dim', type: 'number', description: 'Dimension to reduce', optional: true },\n ],\n example: '[\"tensor/min\", \"@entity.distances\"]',\n },\n 'tensor/argmax': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'Index of maximum value',\n hasSideEffects: false,\n returnType: 'number | tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'dim', type: 'number', description: 'Dimension to reduce', optional: true },\n ],\n example: '[\"tensor/argmax\", \"@entity.qValues\"] // Best action index',\n },\n 'tensor/norm': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 2,\n description: 'L2 norm of tensor',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'p', type: 'number', description: 'Norm order (default 2)', optional: true, defaultValue: 2 },\n ],\n example: '[\"tensor/norm\", \"@entity.gradient\"]',\n },\n\n // ============================================================================\n // Range Validation (for contracts)\n // ============================================================================\n\n 'tensor/allInRange': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Check if all elements are within range [min, max]',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'range', type: '[number, number]', description: 'Range as [min, max]' },\n ],\n example: '[\"tensor/allInRange\", \"@payload.input\", [-1.0, 1.0]]',\n },\n 'tensor/outOfRangeIndices': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Get indices of elements outside range',\n hasSideEffects: false,\n returnType: 'number[]',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'range', type: '[number, number]', description: 'Range as [min, max]' },\n ],\n example: '[\"tensor/outOfRangeIndices\", \"@payload.input\", [-1.0, 1.0]]',\n },\n 'tensor/clamp': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 3,\n maxArity: 3,\n description: 'Clamp all elements to range [min, max]',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'min', type: 'number', description: 'Minimum value' },\n { name: 'max', type: 'number', description: 'Maximum value' },\n ],\n example: '[\"tensor/clamp\", \"@entity.output\", -10.0, 10.0]',\n },\n 'tensor/clampPerDim': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Clamp each dimension to its specified range',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'ranges', type: 'object', description: 'Per-dimension ranges { \"0\": {min, max}, ... }' },\n ],\n example: '[\"tensor/clampPerDim\", \"@entity.rawOutput\", \"@entity.outputContract.ranges\"]',\n },\n 'tensor/outOfRangeDims': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 2,\n maxArity: 2,\n description: 'Get dimensions that exceed their specified ranges',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n { name: 'ranges', type: 'object', description: 'Per-dimension ranges { \"0\": {min, max}, ... }' },\n ],\n example: '[\"tensor/outOfRangeDims\", \"@entity.rawOutput\", \"@entity.outputContract.ranges\"]',\n },\n\n // ============================================================================\n // Conversion\n // ============================================================================\n\n 'tensor/toArray': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Convert tensor to nested array',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor' },\n ],\n example: '[\"tensor/toArray\", \"@entity.output\"]',\n },\n 'tensor/toList': {\n module: 'tensor',\n category: 'ml-tensor',\n minArity: 1,\n maxArity: 1,\n description: 'Convert 1D tensor to flat array',\n hasSideEffects: false,\n returnType: 'number[]',\n params: [\n { name: 'tensor', type: 'tensor', description: 'The tensor (must be 1D)' },\n ],\n example: '[\"tensor/toList\", \"@entity.output\"]',\n },\n};\n\n/**\n * Get all tensor operator names.\n */\nexport function getTensorOperators(): string[] {\n return Object.keys(TENSOR_OPERATORS);\n}\n","/**\n * Training Module - Neural Network Training Operations\n *\n * Provides operators for training neural networks with explicit constraints.\n * Training is bounded by readable rules: gradient clipping, weight constraints,\n * forbidden output regions, and validation gates.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Training module operators.\n * These operators handle training loops, validation, and constraint enforcement.\n */\nexport const TRAIN_OPERATORS: Record<string, StdOperatorMeta> = {\n // ============================================================================\n // Training Loop\n // ============================================================================\n\n 'train/loop': {\n module: 'train',\n category: 'ml-effect',\n minArity: 3,\n maxArity: 3,\n description: 'Execute training loop with constraints',\n hasSideEffects: true,\n returnType: 'train/result',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network to train' },\n { name: 'data', type: 'array', description: 'Training data (array of {input, target} or experiences)' },\n { name: 'config', type: 'train/config', description: 'Training configuration with constraints' },\n ],\n example: '[\"train/loop\", \"@entity.architecture\", \"@entity.buffer\", \"@entity.trainingConfig\"]',\n },\n 'train/step': {\n module: 'train',\n category: 'ml-effect',\n minArity: 4,\n maxArity: 4,\n description: 'Execute single training step (forward, loss, backward, update)',\n hasSideEffects: true,\n returnType: 'train/stepResult',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'input', type: 'tensor', description: 'Input tensor' },\n { name: 'target', type: 'tensor', description: 'Target tensor' },\n { name: 'config', type: 'train/config', description: 'Training configuration' },\n ],\n example: '[\"train/step\", \"@entity.architecture\", \"@batch.input\", \"@batch.target\", \"@entity.config\"]',\n },\n\n // ============================================================================\n // Validation\n // ============================================================================\n\n 'train/validate': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Validate model on test cases, returns pass/fail metrics',\n hasSideEffects: false,\n returnType: 'train/validationResult',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'testCases', type: 'array', description: 'Array of {input, expected, tolerance?}' },\n ],\n example: '[\"train/validate\", \"@entity.architecture\", \"@entity.validationSet\"]',\n },\n 'train/checkRegression': {\n module: 'train',\n category: 'ml-effect',\n minArity: 3,\n maxArity: 3,\n description: 'Check if new model regresses on required invariants',\n hasSideEffects: false,\n returnType: 'train/regressionResult',\n params: [\n { name: 'newModule', type: 'nn/module', description: 'Newly trained network' },\n { name: 'oldModule', type: 'nn/module', description: 'Previous network' },\n { name: 'invariants', type: 'array', description: 'Test cases that must not regress' },\n ],\n example: '[\"train/checkRegression\", \"@payload.newWeights\", \"@entity.architecture\", \"@entity.requiredInvariants\"]',\n },\n\n // ============================================================================\n // Constraint Checking\n // ============================================================================\n\n 'train/checkConstraints': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Check if network weights satisfy all constraints',\n hasSideEffects: false,\n returnType: 'train/constraintResult',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'constraints', type: 'train/constraints', description: 'Constraint specification' },\n ],\n example: '[\"train/checkConstraints\", \"@payload.newWeights\", \"@entity.constraints\"]',\n },\n 'train/checkWeightMagnitude': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Check if all weights are within magnitude limit',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'maxMagnitude', type: 'number', description: 'Maximum allowed weight magnitude' },\n ],\n example: '[\"train/checkWeightMagnitude\", \"@entity.architecture\", 10.0]',\n },\n 'train/checkForbiddenOutputs': {\n module: 'train',\n category: 'ml-effect',\n minArity: 3,\n maxArity: 3,\n description: 'Check if model produces outputs in forbidden regions',\n hasSideEffects: false,\n returnType: 'train/forbiddenResult',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'testInputs', type: 'array', description: 'Inputs to test' },\n { name: 'forbiddenRegions', type: 'array', description: 'Forbidden output regions' },\n ],\n example: '[\"train/checkForbiddenOutputs\", \"@entity.architecture\", \"@entity.testInputs\", \"@entity.forbiddenOutputRegions\"]',\n },\n\n // ============================================================================\n // Gradient Operations\n // ============================================================================\n\n 'train/clipGradients': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Clip gradients to max norm (modifies in place)',\n hasSideEffects: true,\n returnType: 'number',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'maxNorm', type: 'number', description: 'Maximum gradient norm' },\n ],\n example: '[\"train/clipGradients\", \"@entity.architecture\", 1.0]',\n },\n 'train/getGradientNorm': {\n module: 'train',\n category: 'ml-effect',\n minArity: 1,\n maxArity: 1,\n description: 'Get current gradient norm',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n ],\n example: '[\"train/getGradientNorm\", \"@entity.architecture\"]',\n },\n\n // ============================================================================\n // Weight Operations\n // ============================================================================\n\n 'train/clipWeights': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Clip weights to max magnitude (modifies in place)',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'maxMagnitude', type: 'number', description: 'Maximum weight magnitude' },\n ],\n example: '[\"train/clipWeights\", \"@entity.architecture\", 10.0]',\n },\n 'train/getMaxWeightMagnitude': {\n module: 'train',\n category: 'ml-effect',\n minArity: 1,\n maxArity: 1,\n description: 'Get maximum weight magnitude in network',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n ],\n example: '[\"train/getMaxWeightMagnitude\", \"@entity.architecture\"]',\n },\n\n // ============================================================================\n // Loss Functions\n // ============================================================================\n\n 'train/mse': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Mean squared error loss',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'predicted', type: 'tensor', description: 'Predicted values' },\n { name: 'target', type: 'tensor', description: 'Target values' },\n ],\n example: '[\"train/mse\", \"@entity.output\", \"@batch.target\"]',\n },\n 'train/crossEntropy': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Cross-entropy loss for classification',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'logits', type: 'tensor', description: 'Raw model outputs (logits)' },\n { name: 'labels', type: 'tensor', description: 'Target class labels' },\n ],\n example: '[\"train/crossEntropy\", \"@entity.logits\", \"@batch.labels\"]',\n },\n 'train/huber': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 3,\n description: 'Huber loss (smooth L1, robust to outliers)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'predicted', type: 'tensor', description: 'Predicted values' },\n { name: 'target', type: 'tensor', description: 'Target values' },\n { name: 'delta', type: 'number', description: 'Threshold for quadratic vs linear', optional: true, defaultValue: 1.0 },\n ],\n example: '[\"train/huber\", \"@entity.qValues\", \"@batch.targets\", 1.0]',\n },\n\n // ============================================================================\n // Optimizers\n // ============================================================================\n\n 'train/sgd': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 3,\n description: 'Stochastic gradient descent optimizer step',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'lr', type: 'number', description: 'Learning rate' },\n { name: 'momentum', type: 'number', description: 'Momentum factor', optional: true, defaultValue: 0 },\n ],\n example: '[\"train/sgd\", \"@entity.architecture\", 0.01, 0.9]',\n },\n 'train/adam': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 4,\n description: 'Adam optimizer step',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'module', type: 'nn/module', description: 'The neural network' },\n { name: 'lr', type: 'number', description: 'Learning rate' },\n { name: 'beta1', type: 'number', description: 'First moment decay', optional: true, defaultValue: 0.9 },\n { name: 'beta2', type: 'number', description: 'Second moment decay', optional: true, defaultValue: 0.999 },\n ],\n example: '[\"train/adam\", \"@entity.architecture\", 0.001]',\n },\n\n // ============================================================================\n // Experience Replay (for RL)\n // ============================================================================\n\n 'train/sampleBatch': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Sample random batch from experience buffer',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'buffer', type: 'array', description: 'Experience buffer' },\n { name: 'batchSize', type: 'number', description: 'Number of samples' },\n ],\n example: '[\"train/sampleBatch\", \"@entity.experienceBuffer\", 32]',\n },\n 'train/computeReturns': {\n module: 'train',\n category: 'ml-effect',\n minArity: 2,\n maxArity: 2,\n description: 'Compute discounted returns from rewards',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'rewards', type: 'array', description: 'Array of rewards' },\n { name: 'gamma', type: 'number', description: 'Discount factor' },\n ],\n example: '[\"train/computeReturns\", \"@episode.rewards\", 0.99]',\n },\n 'train/computeAdvantages': {\n module: 'train',\n category: 'ml-effect',\n minArity: 3,\n maxArity: 3,\n description: 'Compute GAE advantages for policy gradient',\n hasSideEffects: false,\n returnType: 'tensor',\n params: [\n { name: 'rewards', type: 'array', description: 'Array of rewards' },\n { name: 'values', type: 'tensor', description: 'Value estimates' },\n { name: 'config', type: 'object', description: 'Config with gamma, lambda' },\n ],\n example: '[\"train/computeAdvantages\", \"@episode.rewards\", \"@episode.values\", { \"gamma\": 0.99, \"lambda\": 0.95 }]',\n },\n};\n\n/**\n * Get all train operator names.\n */\nexport function getTrainOperators(): string[] {\n return Object.keys(TRAIN_OPERATORS);\n}\n","/**\n * Prob Module - Probabilistic Programming Operators\n *\n * Provides distribution sampling, Bayesian inference via rejection sampling,\n * and statistical summary functions.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Probabilistic module operators.\n */\nexport const PROB_OPERATORS: Record<string, StdOperatorMeta> = {\n // ========================================\n // Distribution Sampling\n // ========================================\n 'prob/seed': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Set seeded PRNG for deterministic probabilistic sampling',\n hasSideEffects: true,\n returnType: 'void',\n params: [{ name: 'n', type: 'number', description: 'Seed value (integer)' }],\n example: '[\"prob/seed\", 42]',\n },\n 'prob/flip': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Bernoulli trial: returns true with probability p',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [{ name: 'p', type: 'number', description: 'Probability of true (0 to 1)' }],\n example: '[\"prob/flip\", 0.5] // => true or false with equal probability',\n },\n 'prob/gaussian': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Sample from a Gaussian (normal) distribution',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'mu', type: 'number', description: 'Mean' },\n { name: 'sigma', type: 'number', description: 'Standard deviation' },\n ],\n example: '[\"prob/gaussian\", 0, 1] // => standard normal sample',\n },\n 'prob/uniform': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Sample from a uniform distribution [lo, hi)',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'lo', type: 'number', description: 'Lower bound (inclusive)' },\n { name: 'hi', type: 'number', description: 'Upper bound (exclusive)' },\n ],\n example: '[\"prob/uniform\", 0, 10] // => number in [0, 10)',\n },\n 'prob/beta': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Sample from a Beta(alpha, beta) distribution',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'alpha', type: 'number', description: 'Alpha shape parameter (> 0)' },\n { name: 'beta', type: 'number', description: 'Beta shape parameter (> 0)' },\n ],\n example: '[\"prob/beta\", 2, 5] // => number in [0, 1], mean ~ 0.286',\n },\n 'prob/categorical': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Weighted random selection from items',\n hasSideEffects: false,\n returnType: 'any',\n params: [\n { name: 'items', type: 'array', description: 'Array of items to choose from' },\n { name: 'weights', type: 'number[]', description: 'Array of weights (same length as items)' },\n ],\n example: '[\"prob/categorical\", [\"a\", \"b\", \"c\"], [1, 2, 1]] // => \"b\" most likely',\n },\n 'prob/poisson': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Sample from a Poisson distribution',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'lambda', type: 'number', description: 'Rate parameter (> 0)' }],\n example: '[\"prob/poisson\", 4] // => non-negative integer, mean ~ 4',\n },\n\n // ========================================\n // Inference\n // ========================================\n 'prob/condition': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Mark current sample as rejected if predicate is false',\n hasSideEffects: true,\n returnType: 'void',\n params: [{ name: 'predicate', type: 'boolean', description: 'Condition that must hold' }],\n example: '[\"prob/condition\", [\">\", \"@entity.x\", 0]]',\n },\n 'prob/sample': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Evaluate an expression n times and collect results',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'n', type: 'number', description: 'Number of samples' },\n { name: 'expr', type: 'SExpr', description: 'Expression to evaluate (lazy)' },\n ],\n example: '[\"prob/sample\", 1000, [\"prob/flip\", 0.5]] // => array of booleans',\n },\n 'prob/posterior': {\n module: 'prob',\n category: 'std-prob',\n minArity: 4,\n maxArity: 4,\n description: 'Rejection sampling: returns accepted query values',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'model', type: 'SExpr', description: 'Model expression (lazy, may call set/condition)' },\n { name: 'evidence', type: 'SExpr', description: 'Evidence expression (lazy, boolean)' },\n { name: 'query', type: 'SExpr', description: 'Query expression (lazy, value to collect)' },\n { name: 'n', type: 'number', description: 'Number of samples to attempt' },\n ],\n example: '[\"prob/posterior\", model, evidence, query, 5000]',\n },\n 'prob/infer': {\n module: 'prob',\n category: 'std-prob',\n minArity: 4,\n maxArity: 4,\n description: 'Like posterior but returns {mean, variance, samples, acceptRate}',\n hasSideEffects: false,\n returnType: 'object',\n params: [\n { name: 'model', type: 'SExpr', description: 'Model expression (lazy)' },\n { name: 'evidence', type: 'SExpr', description: 'Evidence expression (lazy, boolean)' },\n { name: 'query', type: 'SExpr', description: 'Query expression (lazy)' },\n { name: 'n', type: 'number', description: 'Number of samples to attempt' },\n ],\n example: '[\"prob/infer\", model, evidence, query, 5000]',\n },\n\n // ========================================\n // Statistics\n // ========================================\n 'prob/expected-value': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Mean of numeric samples',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'samples', type: 'number[]', description: 'Array of numeric samples' }],\n example: '[\"prob/expected-value\", [2, 4, 6, 8]] // => 5',\n },\n 'prob/variance': {\n module: 'prob',\n category: 'std-prob',\n minArity: 1,\n maxArity: 1,\n description: 'Population variance of numeric samples',\n hasSideEffects: false,\n returnType: 'number',\n params: [{ name: 'samples', type: 'number[]', description: 'Array of numeric samples' }],\n example: '[\"prob/variance\", [2, 4, 4, 4, 5, 5, 7, 9]] // => 4',\n },\n 'prob/histogram': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Bin numeric samples into a histogram',\n hasSideEffects: false,\n returnType: 'object',\n params: [\n { name: 'samples', type: 'number[]', description: 'Array of numeric samples' },\n { name: 'bins', type: 'number', description: 'Number of bins' },\n ],\n example: '[\"prob/histogram\", [1, 2, 3, 4, 5], 2] // => {binEdges, counts}',\n },\n 'prob/percentile': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Get the p-th percentile (0-100) from samples',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'samples', type: 'number[]', description: 'Array of numeric samples' },\n { name: 'p', type: 'number', description: 'Percentile (0 to 100)' },\n ],\n example: '[\"prob/percentile\", [1, 2, 3, 4, 5], 50] // => 3',\n },\n 'prob/credible-interval': {\n module: 'prob',\n category: 'std-prob',\n minArity: 2,\n maxArity: 2,\n description: 'Compute symmetric credible interval from samples',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'samples', type: 'number[]', description: 'Array of numeric samples' },\n { name: 'alpha', type: 'number', description: 'Significance level (e.g., 0.05 for 95% interval)' },\n ],\n example: '[\"prob/credible-interval\", samples, 0.05] // => [lo, hi]',\n },\n};\n\n/**\n * Get all probabilistic operators.\n */\nexport function getProbOperators(): Record<string, StdOperatorMeta> {\n return PROB_OPERATORS;\n}\n","/**\n * OS Module - Operating System Event Watchers\n *\n * Provides operators for registering OS-level event watchers that\n * translate kernel events (inotify, SIGCHLD, socket, timerfd) into\n * Orb events on the EventBus. Used by trigger traits to interrupt\n * agents with verified ground truth.\n *\n * All operators have side effects (they register watchers).\n * Server-side only (no-op on client).\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\nexport const OS_OPERATORS: Record<string, StdOperatorMeta> = {\n 'os/watch-files': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 2,\n description: 'Register file system watcher. Emits OS_FILE_MODIFIED, OS_FILE_CREATED, OS_FILE_DELETED events with { path, name, dir, timestamp } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'glob', type: 'string', description: 'Glob pattern to watch (e.g., \"**/*.orb\")' },\n { name: 'options', type: 'object', description: 'Optional config: { recursive, ignoreInitial, debounceMs }', optional: true },\n ],\n example: '[\"os/watch-files\", \"**/*.orb\"]',\n },\n 'os/watch-process': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 2,\n description: 'Register process monitor. Emits OS_PROCESS_EXITED, OS_PROCESS_STARTED events with { pid, name, exitCode, signal, args, duration } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'name', type: 'string', description: 'Process name to monitor (e.g., \"orbital\")' },\n { name: 'subcommand', type: 'string', description: 'Optional subcommand filter (e.g., \"validate\")', optional: true },\n ],\n example: '[\"os/watch-process\", \"orbital\", \"validate\"]',\n },\n 'os/watch-port': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 2,\n description: 'Register port monitor. Emits OS_PORT_OPENED, OS_PORT_CLOSED events with { port, protocol, pid, address } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'port', type: 'number', description: 'Port number to monitor' },\n { name: 'protocol', type: 'string', description: 'Protocol: \"tcp\" or \"udp\" (default: \"tcp\")', optional: true },\n ],\n example: '[\"os/watch-port\", 3000]',\n },\n 'os/watch-http': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 2,\n description: 'Register HTTP response interceptor. Emits OS_HTTP_RESPONSE events with { url, method, status, headers, body, duration } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'urlPattern', type: 'string', description: 'URL pattern to intercept (e.g., \"https://api.example.com/*\")' },\n { name: 'method', type: 'string', description: 'HTTP method filter (e.g., \"POST\")', optional: true },\n ],\n example: '[\"os/watch-http\", \"https://api.example.com/*\", \"POST\"]',\n },\n 'os/watch-cron': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 1,\n description: 'Register cron schedule. Emits OS_CRON_FIRE events with { expression, timestamp } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'expression', type: 'string', description: 'Cron expression (e.g., \"*/5 * * * *\" for every 5 minutes)' },\n ],\n example: '[\"os/watch-cron\", \"0 */6 * * *\"]',\n },\n 'os/watch-signal': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 1,\n description: 'Register OS signal handler. Emits OS_SIGNAL_USR1, OS_SIGNAL_HUP, etc. with { pid, timestamp } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'signal', type: 'string', description: 'Signal name: \"SIGUSR1\", \"SIGUSR2\", \"SIGHUP\", \"SIGTERM\"' },\n ],\n example: '[\"os/watch-signal\", \"SIGUSR1\"]',\n },\n 'os/watch-env': {\n module: 'os',\n category: 'std-os',\n minArity: 1,\n maxArity: 1,\n description: 'Register environment variable watcher. Emits OS_ENV_CHANGED events with { variable, oldValue, newValue } payload.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'variable', type: 'string', description: 'Environment variable name to watch' },\n ],\n example: '[\"os/watch-env\", \"NODE_ENV\"]',\n },\n 'os/debounce': {\n module: 'os',\n category: 'std-os',\n minArity: 2,\n maxArity: 2,\n description: 'Configure debounce interval for an OS event type. Prevents trigger storms during rapid changes.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'ms', type: 'number', description: 'Debounce interval in milliseconds' },\n { name: 'eventType', type: 'string', description: 'OS event type to debounce (e.g., \"OS_FILE_MODIFIED\")' },\n ],\n example: '[\"os/debounce\", 500, \"OS_FILE_MODIFIED\"]',\n },\n};\n","/**\n * Agent Module - AI Agent Intelligence Operations\n *\n * Provides operators for agent memory management, LLM access,\n * tool invocation, context window management, and session control.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Agent module operators.\n */\nexport const AGENT_OPERATORS: Record<string, StdOperatorMeta> = {\n // ==========================================================================\n // Memory (Pure)\n // ==========================================================================\n 'agent/recall': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 2,\n description: 'Search memories by semantic query. Returns matching AgentMemoryRecord array.',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'query', type: 'string', description: 'Semantic search query' },\n { name: 'limit', type: 'number', description: 'Max results to return', optional: true },\n ],\n example: '[\"agent/recall\", \"user prefers dark mode\"] => [{id, content, strength, ...}]',\n },\n 'agent/memories': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 1,\n description: 'List all memories, optionally filtered by category.',\n hasSideEffects: false,\n returnType: 'array',\n params: [\n { name: 'category', type: 'string', description: 'Memory category filter', optional: true },\n ],\n example: '[\"agent/memories\", \"preference\"] => [{id, content, category, ...}]',\n },\n 'agent/memory-strength': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Get the strength value (0-1) of a specific memory.',\n hasSideEffects: false,\n returnType: 'number',\n params: [\n { name: 'id', type: 'string', description: 'Memory record ID' },\n ],\n example: '[\"agent/memory-strength\", \"mem_abc123\"] => 0.85',\n },\n 'agent/is-pinned': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Check if a memory is pinned (immune to decay).',\n hasSideEffects: false,\n returnType: 'boolean',\n params: [\n { name: 'id', type: 'string', description: 'Memory record ID' },\n ],\n example: '[\"agent/is-pinned\", \"mem_abc123\"] => true',\n },\n\n // ==========================================================================\n // LLM (Pure)\n // ==========================================================================\n 'agent/provider': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get the name of the current LLM provider.',\n hasSideEffects: false,\n returnType: 'string',\n params: [],\n example: '[\"agent/provider\"] => \"deepseek\"',\n },\n 'agent/model': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get the name of the current LLM model.',\n hasSideEffects: false,\n returnType: 'string',\n params: [],\n example: '[\"agent/model\"] => \"deepseek-chat\"',\n },\n\n // ==========================================================================\n // Tools (Pure)\n // ==========================================================================\n 'agent/tools': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get the list of available tool names.',\n hasSideEffects: false,\n returnType: 'array',\n params: [],\n example: '[\"agent/tools\"] => [\"execute\", \"validate-schema\", \"generate-schema\"]',\n },\n\n // ==========================================================================\n // Context (Pure)\n // ==========================================================================\n 'agent/token-count': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get the current token count in the context window.',\n hasSideEffects: false,\n returnType: 'number',\n params: [],\n example: '[\"agent/token-count\"] => 12450',\n },\n 'agent/context-usage': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get context window usage as a ratio (0-1).',\n hasSideEffects: false,\n returnType: 'number',\n params: [],\n example: '[\"agent/context-usage\"] => 0.62',\n },\n\n // ==========================================================================\n // Session (Pure)\n // ==========================================================================\n 'agent/session-id': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Get the current session identifier.',\n hasSideEffects: false,\n returnType: 'string',\n params: [],\n example: '[\"agent/session-id\"] => \"sess_a3f2k\"',\n },\n\n // ==========================================================================\n // Memory (Effects)\n // ==========================================================================\n 'agent/memorize': {\n module: 'agent',\n category: 'std-agent',\n minArity: 2,\n maxArity: 3,\n description: 'Store a new memory. Returns the new memory ID.',\n hasSideEffects: true,\n returnType: 'string',\n params: [\n { name: 'content', type: 'string', description: 'Memory content to store' },\n { name: 'category', type: 'string', description: 'Category: preference, correction, pattern-affinity, entity-template, error-resolution' },\n { name: 'scope', type: 'string', description: 'Scope: global or project', optional: true, defaultValue: 'global' },\n ],\n example: '[\"agent/memorize\", \"user prefers PascalCase\", \"preference\"]',\n },\n 'agent/forget': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Remove a memory by ID.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'id', type: 'string', description: 'Memory record ID to remove' },\n ],\n example: '[\"agent/forget\", \"mem_abc123\"]',\n },\n 'agent/pin': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Pin a memory to prevent decay.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'id', type: 'string', description: 'Memory record ID to pin' },\n ],\n example: '[\"agent/pin\", \"mem_abc123\"]',\n },\n 'agent/reinforce': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Increase a memory\\'s strength (reinforcement learning signal).',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'id', type: 'string', description: 'Memory record ID to reinforce' },\n ],\n example: '[\"agent/reinforce\", \"mem_abc123\"]',\n },\n 'agent/decay': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 0,\n description: 'Apply strength decay to all unpinned memories. Returns count of forgotten memories.',\n hasSideEffects: true,\n returnType: 'number',\n params: [],\n example: '[\"agent/decay\"] => 15',\n },\n\n // ==========================================================================\n // LLM (Effects)\n // ==========================================================================\n 'agent/generate': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 2,\n description: 'Generate text from the LLM. Returns generated string.',\n hasSideEffects: true,\n returnType: 'string',\n params: [\n { name: 'prompt', type: 'string', description: 'Prompt text to send to LLM' },\n { name: 'options', type: 'object', description: 'Options: { provider?, model?, maxTokens? }', optional: true },\n ],\n example: '[\"agent/generate\", \"Summarize the user request\"]',\n },\n 'agent/switch-provider': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 2,\n description: 'Switch the active LLM provider and optionally the model.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'provider', type: 'string', description: 'Provider name (e.g., \"deepseek\", \"openai\", \"anthropic\")' },\n { name: 'model', type: 'string', description: 'Model name override', optional: true },\n ],\n example: '[\"agent/switch-provider\", \"openai\", \"gpt-4o\"]',\n },\n\n // ==========================================================================\n // Tools (Effects)\n // ==========================================================================\n 'agent/invoke': {\n module: 'agent',\n category: 'std-agent',\n minArity: 2,\n maxArity: 2,\n description: 'Invoke a tool by name with arguments. Returns tool result.',\n hasSideEffects: true,\n returnType: 'any',\n params: [\n { name: 'toolName', type: 'string', description: 'Name of the tool to invoke' },\n { name: 'args', type: 'object', description: 'Arguments to pass to the tool' },\n ],\n example: '[\"agent/invoke\", \"validate-schema\", {\"schema\": \"@entity\"}]',\n },\n\n // ==========================================================================\n // Context (Effects)\n // ==========================================================================\n 'agent/compact': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 1,\n description: 'Compact the context window. Returns { before, after, strategy, summary? }.',\n hasSideEffects: true,\n returnType: 'object',\n params: [\n { name: 'strategy', type: 'string', description: 'Strategy: hybrid, summarize, truncate, extract', optional: true, defaultValue: 'hybrid' },\n ],\n example: '[\"agent/compact\", \"summarize\"] => {before: 50000, after: 12000, ...}',\n },\n\n // ==========================================================================\n // Session (Effects)\n // ==========================================================================\n 'agent/fork': {\n module: 'agent',\n category: 'std-agent',\n minArity: 0,\n maxArity: 1,\n description: 'Fork the current session. Returns new session ID.',\n hasSideEffects: true,\n returnType: 'string',\n params: [\n { name: 'label', type: 'string', description: 'Optional label for the fork point', optional: true },\n ],\n example: '[\"agent/fork\", \"before-refactor\"] => \"sess_fork_x7k2m\"',\n },\n 'agent/label': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 1,\n description: 'Label the current session checkpoint for later reference.',\n hasSideEffects: true,\n returnType: 'void',\n params: [\n { name: 'text', type: 'string', description: 'Label text for the checkpoint' },\n ],\n example: '[\"agent/label\", \"schema-v2-complete\"]',\n },\n\n // ==========================================================================\n // Search (Effects)\n // ==========================================================================\n 'agent/search-code': {\n module: 'agent',\n category: 'std-agent',\n minArity: 1,\n maxArity: 2,\n description: 'Search code repositories. Returns array of { repo, path, url }.',\n hasSideEffects: true,\n returnType: 'array',\n params: [\n { name: 'query', type: 'string', description: 'Code search query' },\n { name: 'language', type: 'string', description: 'Programming language filter', optional: true },\n ],\n example: '[\"agent/search-code\", \"orbital schema validation\", \"typescript\"]',\n },\n};\n\n/**\n * Get all agent operator names.\n */\nexport function getAgentOperators(): string[] {\n return Object.keys(AGENT_OPERATORS);\n}\n","/**\n * Composition Module - Behavior Composition Operators\n *\n * Provides compile-time operators for composing N orbitals into a single\n * application schema. These operators are resolved during `.lolo` lowering\n * (or by the parallel Rust composition pass), not at runtime.\n *\n * Surfaced here so that the lolo type sync tool can publish them in\n * `signatures.lolo`, the Rust compiler can validate their arity and shape,\n * and IDE tooling can discover them through the unified std registry.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta } from '../types.js';\n\n/**\n * Composition module operators.\n * All operators are pure (no runtime side effects) and compile-time resolved.\n */\nexport const COMPOSITION_OPERATORS: Record<string, StdOperatorMeta> = {\n 'behavior/compose': {\n module: 'composition',\n category: 'std-composition',\n minArity: 1,\n maxArity: 1,\n description: 'Compose N orbitals into one application schema. Wires events, picks layout, generates pages.',\n hasSideEffects: false,\n compileTime: true,\n returnType: 'object',\n params: [\n {\n name: 'config',\n type: 'object',\n description: 'ComposeBehaviorsInput: { appName, orbitals[], layoutStrategy?, eventWiring?, entityMappings? }',\n },\n ],\n example: '(behavior/compose { appName: \"ShoppingApp\" orbitals: [...] })',\n },\n 'behavior/wire': {\n module: 'composition',\n category: 'std-composition',\n minArity: 2,\n maxArity: 2,\n description: 'Apply cross-orbital event wiring. Adds external emits/listens to inline traits.',\n hasSideEffects: false,\n compileTime: true,\n returnType: 'array',\n params: [\n {\n name: 'orbitals',\n type: 'array',\n description: 'Array of OrbitalDefinition to wire',\n },\n {\n name: 'wiring',\n type: 'array',\n description: 'Array of EventWiringEntry { from, event, to, triggers }',\n },\n ],\n example: '(behavior/wire orbitals wiring)',\n },\n 'behavior/detect-layout': {\n module: 'composition',\n category: 'std-composition',\n minArity: 1,\n maxArity: 2,\n description: 'Auto-detect layout from orbital count and wiring topology. Returns single, tabs, sidebar, dashboard, or wizard-flow.',\n hasSideEffects: false,\n compileTime: true,\n returnType: 'string',\n params: [\n {\n name: 'orbitals',\n type: 'array',\n description: 'Array of OrbitalDefinition',\n },\n {\n name: 'wiring',\n type: 'array',\n description: 'Optional EventWiringEntry array',\n optional: true,\n },\n ],\n example: '(behavior/detect-layout orbitals)',\n },\n 'behavior/pipe': {\n module: 'composition',\n category: 'std-composition',\n minArity: 2,\n maxArity: null,\n description: 'Left-to-right composition. Each step receives the previous result as its first arg.',\n hasSideEffects: false,\n compileTime: true,\n returnType: 'any',\n params: [\n {\n name: 'seed',\n type: 'any',\n description: 'Initial value to pipe through steps',\n },\n {\n name: '...steps',\n type: 'function[]',\n description: 'Functions, each receiving the previous result as first argument',\n },\n ],\n example: '(behavior/pipe orbitals (behavior/wire wiring) (behavior/compose { appName: \"X\" }))',\n },\n};\n\n/**\n * Get all composition operator names.\n */\nexport function getCompositionOperators(): string[] {\n return Object.keys(COMPOSITION_OPERATORS);\n}\n","/**\n * Standard Library Registry\n *\n * Combined registry of all standard library operators.\n * Provides lookup and validation functions for std/* operators.\n *\n * @packageDocumentation\n */\n\nimport type { OperatorMeta, StdOperatorMeta, StdModule } from './types.js';\nimport { isStdOperator, getModuleFromOperator, STD_MODULES } from './types.js';\n\nimport { CORE_OPERATORS } from './modules/core.js';\nimport { MATH_OPERATORS } from './modules/math.js';\nimport { STR_OPERATORS } from './modules/str.js';\nimport { ARRAY_OPERATORS } from './modules/array.js';\nimport { OBJECT_OPERATORS } from './modules/object.js';\nimport { TIME_OPERATORS } from './modules/time.js';\nimport { VALIDATE_OPERATORS } from './modules/validate.js';\nimport { FORMAT_OPERATORS } from './modules/format.js';\nimport { ASYNC_OPERATORS } from './modules/async.js';\nimport { NN_OPERATORS } from './modules/nn.js';\nimport { TENSOR_OPERATORS } from './modules/tensor.js';\nimport { TRAIN_OPERATORS } from './modules/train.js';\nimport { PROB_OPERATORS } from './modules/prob.js';\nimport { OS_OPERATORS } from './modules/os.js';\nimport { AGENT_OPERATORS } from './modules/agent.js';\nimport { COMPOSITION_OPERATORS } from './modules/composition.js';\n\n// ============================================================================\n// Combined Registry\n// ============================================================================\n\n/**\n * Combined registry of all standard library operators.\n */\nexport const STD_OPERATORS: Record<string, StdOperatorMeta> = {\n ...CORE_OPERATORS,\n ...MATH_OPERATORS,\n ...STR_OPERATORS,\n ...ARRAY_OPERATORS,\n ...OBJECT_OPERATORS,\n ...TIME_OPERATORS,\n ...VALIDATE_OPERATORS,\n ...FORMAT_OPERATORS,\n ...ASYNC_OPERATORS,\n ...NN_OPERATORS,\n ...TENSOR_OPERATORS,\n ...TRAIN_OPERATORS,\n ...PROB_OPERATORS,\n ...OS_OPERATORS,\n ...AGENT_OPERATORS,\n ...COMPOSITION_OPERATORS,\n};\n\n/**\n * Module-specific operator registries.\n */\n/**\n * Flat array of every operator name (core + std-module).\n * Convenience const for grammar generators and validators.\n */\nexport const OPERATOR_NAMES: readonly string[] = Object.keys(STD_OPERATORS);\n\nexport const STD_OPERATORS_BY_MODULE: Record<string, Record<string, StdOperatorMeta>> = {\n core: CORE_OPERATORS,\n math: MATH_OPERATORS,\n str: STR_OPERATORS,\n array: ARRAY_OPERATORS,\n object: OBJECT_OPERATORS,\n time: TIME_OPERATORS,\n validate: VALIDATE_OPERATORS,\n format: FORMAT_OPERATORS,\n async: ASYNC_OPERATORS,\n nn: NN_OPERATORS,\n tensor: TENSOR_OPERATORS,\n train: TRAIN_OPERATORS,\n prob: PROB_OPERATORS,\n os: OS_OPERATORS,\n agent: AGENT_OPERATORS,\n composition: COMPOSITION_OPERATORS,\n};\n\n// ============================================================================\n// Lookup Functions\n// ============================================================================\n\n/**\n * Get std operator metadata by name.\n *\n * @param operator - Operator name (e.g., 'math/clamp')\n * @returns Operator metadata or undefined if not found\n */\nexport function getStdOperatorMeta(operator: string): StdOperatorMeta | undefined {\n return STD_OPERATORS[operator];\n}\n\n/**\n * Check if an operator is a known std library operator.\n *\n * @param operator - Operator name\n * @returns true if operator exists in std library\n */\nexport function isKnownStdOperator(operator: string): boolean {\n return operator in STD_OPERATORS;\n}\n\n/**\n * Get all operators for a specific module.\n *\n * @param module - Module name\n * @returns Record of operators in that module\n */\nexport function getModuleOperators(module: StdModule): Record<string, StdOperatorMeta> {\n return STD_OPERATORS_BY_MODULE[module] || {};\n}\n\n/**\n * Get all std operator names.\n *\n * @returns Array of all std operator names\n */\nexport function getAllStdOperators(): string[] {\n return Object.keys(STD_OPERATORS);\n}\n\n/**\n * Get all std operator names for a specific module.\n *\n * @param module - Module name\n * @returns Array of operator names in that module\n */\nexport function getStdOperatorsByModule(module: StdModule): string[] {\n return Object.keys(STD_OPERATORS_BY_MODULE[module] || {});\n}\n\n/**\n * Get all std operators that accept lambda expressions.\n *\n * @returns Array of operator names that accept lambdas\n */\nexport function getLambdaOperators(): string[] {\n return Object.entries(STD_OPERATORS)\n .filter(([, meta]) => meta.acceptsLambda)\n .map(([name]) => name);\n}\n\n/**\n * Get all std operators with side effects.\n *\n * @returns Array of operator names with side effects\n */\nexport function getStdEffectOperators(): string[] {\n return Object.entries(STD_OPERATORS)\n .filter(([, meta]) => meta.hasSideEffects)\n .map(([name]) => name);\n}\n\n/**\n * Get all pure std operators (no side effects).\n *\n * @returns Array of operator names without side effects\n */\nexport function getStdPureOperators(): string[] {\n return Object.entries(STD_OPERATORS)\n .filter(([, meta]) => !meta.hasSideEffects)\n .map(([name]) => name);\n}\n\n// ============================================================================\n// Validation Functions\n// ============================================================================\n\n/**\n * Validate std operator arity.\n *\n * @param operator - Operator name\n * @param argCount - Number of arguments provided\n * @returns Error message if invalid, null if valid\n */\nexport function validateStdOperatorArity(operator: string, argCount: number): string | null {\n const meta = STD_OPERATORS[operator];\n if (!meta) {\n return `Unknown std operator: ${operator}`;\n }\n\n if (argCount < meta.minArity) {\n return `Operator '${operator}' requires at least ${meta.minArity} argument(s), got ${argCount}`;\n }\n\n if (meta.maxArity !== null && argCount > meta.maxArity) {\n return `Operator '${operator}' accepts at most ${meta.maxArity} argument(s), got ${argCount}`;\n }\n\n return null;\n}\n\n/**\n * Check if a std operator is valid in guard context (no side effects).\n *\n * @param operator - Operator name\n * @returns true if operator can be used in guards\n */\nexport function isStdGuardOperator(operator: string): boolean {\n const meta = STD_OPERATORS[operator];\n return meta !== undefined && !meta.hasSideEffects;\n}\n\n/**\n * Check if a std operator has side effects.\n *\n * @param operator - Operator name\n * @returns true if operator has side effects\n */\nexport function isStdEffectOperator(operator: string): boolean {\n const meta = STD_OPERATORS[operator];\n return meta?.hasSideEffects ?? false;\n}\n\n// ============================================================================\n// Integration with Core Operators\n// ============================================================================\n\n/**\n * Get operator metadata, checking both core and std operators.\n * This function integrates with the core operator system.\n *\n * @param operator - Operator name\n * @param coreOperators - Core operator registry (OPERATORS from operators.ts)\n * @returns Operator metadata or undefined\n */\nexport function getOperatorMetaExtended(\n operator: string,\n coreOperators: Record<string, OperatorMeta>\n): OperatorMeta | StdOperatorMeta | undefined {\n // Check std operators first if it looks like a std operator\n if (isStdOperator(operator)) {\n return STD_OPERATORS[operator];\n }\n // Fall back to core operators\n return coreOperators[operator];\n}\n\n/**\n * Check if an operator is known (core or std).\n *\n * @param operator - Operator name\n * @param coreOperators - Core operator registry\n * @returns true if operator exists\n */\nexport function isKnownOperatorExtended(\n operator: string,\n coreOperators: Record<string, OperatorMeta>\n): boolean {\n if (isStdOperator(operator)) {\n return operator in STD_OPERATORS;\n }\n return operator in coreOperators;\n}\n\n/**\n * Validate operator arity (core or std).\n *\n * @param operator - Operator name\n * @param argCount - Number of arguments\n * @param coreOperators - Core operator registry\n * @returns Error message or null\n */\nexport function validateOperatorArityExtended(\n operator: string,\n argCount: number,\n coreOperators: Record<string, OperatorMeta>\n): string | null {\n if (isStdOperator(operator)) {\n return validateStdOperatorArity(operator, argCount);\n }\n\n const meta = coreOperators[operator];\n if (!meta) {\n return `Unknown operator: ${operator}`;\n }\n\n if (argCount < meta.minArity) {\n return `Operator '${operator}' requires at least ${meta.minArity} argument(s), got ${argCount}`;\n }\n\n if (meta.maxArity !== null && argCount > meta.maxArity) {\n return `Operator '${operator}' accepts at most ${meta.maxArity} argument(s), got ${argCount}`;\n }\n\n return null;\n}\n\n/**\n * Check if an operator has side effects (core or std).\n *\n * @param operator - Operator name\n * @param coreOperators - Core operator registry\n * @returns true if operator has side effects\n */\nexport function isEffectOperatorExtended(\n operator: string,\n coreOperators: Record<string, OperatorMeta>\n): boolean {\n if (isStdOperator(operator)) {\n return isStdEffectOperator(operator);\n }\n const meta = coreOperators[operator];\n return meta?.hasSideEffects ?? false;\n}\n\n// ============================================================================\n// Statistics\n// ============================================================================\n\n/**\n * Get statistics about the standard library.\n */\nexport function getStdLibStats(): {\n totalOperators: number;\n byModule: Record<StdModule, number>;\n pureOperators: number;\n effectOperators: number;\n lambdaOperators: number;\n} {\n const byModule = {} as Record<StdModule, number>;\n for (const module of STD_MODULES) {\n byModule[module] = Object.keys(STD_OPERATORS_BY_MODULE[module] || {}).length;\n }\n\n return {\n totalOperators: Object.keys(STD_OPERATORS).length,\n byModule,\n pureOperators: getStdPureOperators().length,\n effectOperators: getStdEffectOperators().length,\n lambdaOperators: getLambdaOperators().length,\n };\n}\n","/**\n * Standard Behaviors Types\n *\n * Standard Behaviors are reusable OrbitalSchema definitions with a `std-` naming convention.\n * Each behavior is a self-contained .orb file that can function independently.\n *\n * @packageDocumentation\n */\n\nimport type {\n SExpr,\n Effect,\n Expression,\n Trait,\n TraitCategory,\n StateMachine,\n State,\n Event,\n Transition,\n Guard,\n TraitTick,\n TraitDataEntity,\n TraitEntityField,\n OrbitalSchema,\n Orbital,\n Entity,\n} from '@almadar/core/types';\n\n// Re-export core types for use in behaviors\nexport type {\n Effect,\n Expression,\n Trait,\n StateMachine,\n State,\n Event,\n Transition,\n Guard,\n TraitTick,\n TraitDataEntity,\n TraitEntityField,\n TraitCategory,\n OrbitalSchema,\n Orbital,\n Entity,\n};\n\n// ============================================================================\n// Legacy Type Aliases (for backward compatibility only)\n// ============================================================================\n\n/**\n * @deprecated Use OrbitalSchema directly. BehaviorTrait is kept for backward compatibility.\n */\nexport type BehaviorTrait = Trait;\n\n// ============================================================================\n// Item Action (for render_ui props)\n// ============================================================================\n\nexport interface ItemAction {\n label: string;\n event?: string;\n navigatesTo?: string;\n placement?: 'row' | 'bulk' | 'card' | 'footer' | 'header';\n variant?: 'primary' | 'secondary' | 'ghost' | 'danger';\n showWhen?: SExpr | string;\n}\n\n// ============================================================================\n// Behavior Metadata (for quick lookup and documentation)\n// ============================================================================\n\n/**\n * Behavior metadata extracted from a Trait for documentation purposes\n */\nexport interface BehaviorMetadata {\n name: string;\n category?: TraitCategory;\n description: string;\n states: string[];\n events: string[];\n tickCount: number;\n transitionCount: number;\n hasDataEntities: boolean;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Extract metadata from a BehaviorTrait for documentation\n */\nexport function getBehaviorMetadata(behavior: BehaviorTrait): BehaviorMetadata {\n const sm = behavior.stateMachine;\n\n // Core types: State is always an object with name\n const states: string[] = (sm?.states || []).map(s => s.name);\n\n // Core types: Event is always an object with key\n const events: string[] = (sm?.events || []).map(e => e.key);\n\n return {\n name: behavior.name,\n category: behavior.category,\n description: behavior.description || '',\n states,\n events,\n tickCount: behavior.ticks?.length || 0,\n transitionCount: sm?.transitions?.length || 0,\n hasDataEntities: (behavior.dataEntities?.length || 0) > 0,\n };\n}\n\n/**\n * Validate behavior structure\n */\nexport function validateBehaviorStructure(behavior: BehaviorTrait): string[] {\n const errors: string[] = [];\n\n if (!behavior.name) {\n errors.push('Behavior must have a name');\n }\n\n if (!behavior.name.startsWith('std/')) {\n errors.push(`Behavior name should start with 'std/' (got: ${behavior.name})`);\n }\n\n const sm = behavior.stateMachine;\n if (sm) {\n if (!sm.states || sm.states.length === 0) {\n errors.push('State machine must have at least one state');\n }\n\n // Core types: check initial state using isInitial flag on State\n const hasInitialState = sm.states?.some(s => s.isInitial);\n if (!hasInitialState) {\n errors.push('State machine must have an initial state (set isInitial: true on one state)');\n }\n }\n\n return errors;\n}\n\n/**\n * Validate behavior events match transitions\n */\nexport function validateBehaviorEvents(behavior: BehaviorTrait): string[] {\n const errors: string[] = [];\n const sm = behavior.stateMachine;\n if (!sm) return errors;\n\n // Core types: Event is always an object with key\n const declaredEvents = new Set(\n (sm.events || []).map(e => e.key)\n );\n\n const transitionEvents = new Set(\n (sm.transitions || []).map(t => t.event)\n );\n\n for (const event of transitionEvents) {\n if (event && !declaredEvents.has(event)) {\n errors.push(`Transition uses undeclared event: ${event}`);\n }\n }\n\n return errors;\n}\n\n/**\n * Validate behavior states match transitions\n */\nexport function validateBehaviorStates(behavior: BehaviorTrait): string[] {\n const errors: string[] = [];\n const sm = behavior.stateMachine;\n if (!sm) return errors;\n\n // Core types: State is always an object with name\n const declaredStates = new Set(\n (sm.states || []).map(s => s.name)\n );\n\n for (const t of sm.transitions || []) {\n // Core types: from and to are both strings\n if (t.from && !declaredStates.has(t.from)) {\n errors.push(`Transition from undeclared state: ${t.from}`);\n }\n\n if (t.to && !declaredStates.has(t.to)) {\n errors.push(`Transition to undeclared state: ${t.to}`);\n }\n }\n\n return errors;\n}\n","/**\n * Behavior Functions\n *\n * Autogenerated by scripts/regenerate-std-ts.mjs.\n * Thin descriptor layer over the .orb registry; the canonical state\n * machines live in packages/almadar-std/behaviors/registry/.\n *\n * Layout: <topic>/<tier>/std-X.ts (topic is any direct subdir of functions/).\n *\n * @packageDocumentation\n */\n\n// Atoms\nexport * from './core/atoms/std-cascade-on-delete.js';\n\n// Molecules\n\n// Organisms\n\n// Re-export shared builder helpers for convenience.\nexport { connect, compose, pipe, makeEntity, makePage, makeOrbital, makeSchema, mergeOrbitals, wire, extractTrait, ensureIdField, plural } from '@almadar/core/builders';\n\n// Phase 9 — typed factory dispatcher (multi-orbital organisms only).\nexport { dispatchOrbitalFactory, getOrbitalFactoryManifest, listOrganismOrbitalManifests } from './dispatch.js';\nexport type { OrbitalParamsManifest, ParamFieldDescriptor } from './dispatch.js';\n","/**\n * std-cascade-on-delete — std-cascade-on-delete — relational `owns` cascade coordinator. Listens for a parent-deleted sentinel (`ParentDeleted` — rename via traitOverrides.events to the consumer's actual parent-deleted event), fetches dependent rows where `<foreignKeyField> === @payload.data.id` from the FIRST entry of `dependentEntities` (current operator surface has no loop primitive — multi-dependent support is a future extension), and emits `CascadeRowsLoaded` so a consumer trait can persist the deletes. Emits `CascadeCompleted` once the row list is published. Multi-dependent iteration and in-atom persist will land when the operator system supports collection iteration.\n *\n * Autogenerated by scripts/regenerate-std-ts.mjs from\n * packages/almadar-std/behaviors/registry/atoms/std-cascade-on-delete.orb.\n *\n * This is a thin descriptor layer over the canonical .orb. The exported\n * functions return TraitReference / PageRefObject / OrbitalDefinition\n * payloads that reference the sibling .orb via `uses:` + `ref:`. The\n * compiler's inline phase materialises the real trait at build time.\n *\n * Do not hand-edit — regenerate via\n * node scripts/regenerate-std-ts.mjs --only=std-cascade-on-delete\n *\n * @level atom\n * @packageDocumentation\n */\n\nimport type { TraitReference, PageRefObject, OrbitalDefinition, Entity, EntityField, EntityPersistence, TraitConfig, TraitFieldRef, EntityRow, SExpr, TraitEventListener, Trait, StateMachine } from '@almadar/core/types';\nimport type { MakeTraitRefOpts } from '@almadar/core/builders';\nimport { makeTraitRef, makePageRef, makeOrbitalWithUses } from '@almadar/core/builders';\n\nconst BEHAVIOR_PATH = 'std/behaviors/std-cascade-on-delete';\nconst ALIAS = 'CascadeOnDelete';\n\n/**\n * Closed set of event keys this trait recognises —\n * derived from the .orb's `stateMachine.events[]` block\n * (transition triggers + emit names). Use as the key type\n * when passing an `events:` rename map at the call site.\n */\nexport type StdCascadeOnDeleteEventKey = 'CascadeCompleted' | 'CascadeFailed' | 'CascadeRowsFetched' | 'CascadeRowsLoaded' | 'ParentDeleted';\n\n/**\n * Payload shape for the `CascadeRowsFetched` event.\n */\nexport interface StdCascadeOnDeleteCascadeRowsFetchedPayload {\n data?: EntityRow[];\n}\n\n/**\n * Payload shape for the `CascadeRowsLoaded` event.\n */\nexport interface StdCascadeOnDeleteCascadeRowsLoadedPayload {\n parentId?: string;\n data?: EntityRow[];\n}\n\n/**\n * Payload shape for the `CascadeCompleted` event.\n */\nexport interface StdCascadeOnDeleteCascadeCompletedPayload {\n parentId?: string;\n deletedCount?: number;\n}\n\n/**\n * Payload shape for the `CascadeFailed` event.\n */\nexport interface StdCascadeOnDeleteCascadeFailedPayload {\n error?: string;\n code?: string;\n}\n\n/**\n * Typed call-site config block for this trait — every\n * field maps to a `config { ... }` entry in the source\n * .lolo. The agent fills these to specialise the trait\n * without modifying its state-machine topology.\n */\nexport interface StdCascadeOnDeleteConfig {\n /** Default: `\"\"` */\n parentEntity?: string;\n /** Default: `[]` */\n dependentEntities?: string[];\n /** Default: `\"\"` */\n foreignKeyField?: string;\n}\n\n/**\n * Params for the std-cascade-on-delete descriptor helpers.\n *\n * `entityName` binds every trait/page reference's `linkedEntity`.\n * The optional override fields mirror TraitReference / PageRefObject\n * fields and are forwarded to `makeTraitRef` / `makePageRef`.\n */\nexport interface StdCascadeOnDeleteParams {\n entityName: string;\n /** Extra fields to add to the orbital-scoped entity clone. */\n fields?: EntityField[];\n /** Entity persistence mode. Defaults to `persistent` when omitted.\n * See @almadar/core EntityPersistence: persistent | runtime | singleton | instance | local. */\n persistence?: EntityPersistence;\n /** Rename the inlined trait at the call site. */\n traitName?: string;\n /** Per-key event rename map. Keys narrow to the trait's declared emit names. */\n events?: Partial<Record<StdCascadeOnDeleteEventKey, string>>;\n /** Per-event effect replacement (keys are POST-rename event names). */\n effects?: Record<string, SExpr[]>;\n /** Replace the imported trait's `listens` array entirely. */\n listens?: TraitEventListener[];\n /** Set every emit's scope. */\n emitsScope?: 'internal' | 'external';\n /** Typed call-site config block — see the per-field interface. */\n config?: StdCascadeOnDeleteConfig;\n /** URL path override for the (first) page. */\n pagePath?: string;\n}\n\n/** Trait descriptor: `CascadeOnDelete.traits.CascadeOnDeleteGate`. */\nexport function stdCascadeOnDeleteTrait(params: StdCascadeOnDeleteParams): TraitReference {\n return makeTraitRef({\n from: BEHAVIOR_PATH,\n ref: `${ALIAS}.traits.CascadeOnDeleteGate`,\n linkedEntity: params.entityName,\n ...(params.traitName !== undefined ? { name: params.traitName } : {}),\n ...(params.events !== undefined ? { events: params.events as Record<string, string> } : {}),\n ...(params.effects !== undefined ? { effects: params.effects } : {}),\n ...(params.listens !== undefined ? { listens: params.listens } : {}),\n ...(params.emitsScope !== undefined ? { emitsScope: params.emitsScope } : {}),\n ...(params.config !== undefined ? { config: params.config as TraitConfig } : {}),\n });\n}\n\n/** Page descriptor: `CascadeOnDelete.pages.CascadeOnDeletePage`. */\nexport function stdCascadeOnDeletePage(params: StdCascadeOnDeleteParams): PageRefObject {\n return makePageRef({\n from: BEHAVIOR_PATH,\n ref: `${ALIAS}.pages.CascadeOnDeletePage`,\n ...(params.pagePath !== undefined ? { path: params.pagePath } : {}),\n linkedEntity: params.entityName,\n });\n}\n\n/** Whole-orbital descriptor. */\nexport function stdCascadeOnDelete(params: StdCascadeOnDeleteParams): OrbitalDefinition {\n const entity: Entity = {\n name: params.entityName,\n fields: params.fields ?? [],\n ...(params.persistence !== undefined ? { persistence: params.persistence } : {}),\n };\n return makeOrbitalWithUses({\n name: 'CascadeOnDeleteOrbital',\n uses: [{ from: BEHAVIOR_PATH, as: ALIAS }],\n entity,\n traits: [\n stdCascadeOnDeleteTrait(params),\n ],\n pages: [\n stdCascadeOnDeletePage(params),\n ],\n });\n}\n","/**\n * Phase 9 — Typed factory dispatcher.\n *\n * Looks up a per-orbital factory by (organism, orbitalName) and calls\n * it with consumer params, narrowing from `object` to the per-factory\n * typed shape via emitted typed guards (no `as unknown as`).\n *\n * Autogenerated by scripts/regenerate-std-ts.mjs from\n * packages/almadar-std/behaviors/registry/<topic>/organisms/std-*.orb\n * (multi-orbital organisms only).\n *\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, TraitReference } from '@almadar/core/types';\n\n\nexport interface ParamFieldDescriptor {\n name: string;\n type: string;\n description: string;\n}\n\nexport interface OrbitalParamsManifest {\n organism: string;\n orbitalName: string;\n paramFields: readonly ParamFieldDescriptor[];\n traitNames: readonly string[];\n inlineTraitNames: readonly string[];\n}\n\ninterface DispatchEntry {\n factory: (params: object) => OrbitalDefinition;\n manifest: OrbitalParamsManifest;\n}\n\nconst REGISTRY: ReadonlyMap<string, DispatchEntry> = new Map<string, DispatchEntry>([\n]);\n\n/**\n * One trait reference appended via `params.extraTraits[]`. Phase 2\n * (Mechanism 2). `from` + `as` are required because the dispatcher\n * merges into `uses[]` verbatim — no JS-side name transforms.\n * Mirrors `ExtraTraitRef` from @almadar-io/agent — kept structural\n * (no inter-package type dep) but type-compatible.\n */\nexport interface DispatchExtraTrait\n extends Pick<TraitReference, 'ref' | 'name' | 'linkedEntity' | 'config' | 'events' | 'listens' | 'emitsScope'>\n{\n from: string;\n as: string;\n}\n\n/**\n * Look up the per-orbital factory by (organism, orbitalName) and call\n * it with the supplied params. Returns null when no factory exists.\n * Throws TypeError when params fail the factory's typed guard\n * (caught by the agent's instantiate-orbital surface).\n *\n * `params.extraTraits` (Phase 2) is orthogonal to factory-specific\n * params: it's separated out BEFORE the typed guard runs and appended\n * to `def.traits[]` (with corresponding `uses[]` entries merged) AFTER\n * the factory returns. Strictly additive — never replaces factory\n * traits.\n */\nexport function dispatchOrbitalFactory(\n organism: string,\n orbitalName: string,\n params: object & { extraTraits?: DispatchExtraTrait[] },\n): OrbitalDefinition | null {\n const entry = REGISTRY.get(`${organism}::${orbitalName}`);\n if (!entry) return null;\n const { extraTraits, ...factoryParams } = params;\n const def = entry.factory(factoryParams);\n if (extraTraits && extraTraits.length > 0) {\n if (!def.uses) def.uses = [];\n if (!def.traits) def.traits = [];\n for (const extra of extraTraits) {\n // Dedup on alias (`as`), not registry path (`from`). Multiple\n // aliases for the same path are valid: the factory may have\n // already imported `from: std-stats as: Stats`, but a caller\n // appending `from: std-stats as: KpiStats` needs the new\n // alias registered so its `ref: KpiStats.traits.…` resolves.\n const aliasTaken = def.uses.some((u) => u.as === extra.as);\n if (!aliasTaken) {\n def.uses.push({ from: extra.from, as: extra.as });\n }\n const { from: _from, as: _as, ...traitFields } = extra;\n def.traits.push(traitFields);\n }\n }\n return def;\n}\n\n/**\n * Fetch the params manifest for one (organism, orbitalName). Returns\n * null when no factory exists. Used by the agent's Stage A prompt to\n * surface paramFields + traitNames + inlineTraitNames as the closed\n * set the LLM may emit.\n */\nexport function getOrbitalFactoryManifest(\n organism: string,\n orbitalName: string,\n): OrbitalParamsManifest | null {\n const entry = REGISTRY.get(`${organism}::${orbitalName}`);\n return entry ? entry.manifest : null;\n}\n\n/**\n * List every orbital manifest for one organism. Used by Stage A to\n * embed the chosen organism's full manifest set into the prompt.\n */\nexport function listOrganismOrbitalManifests(\n organism: string,\n): OrbitalParamsManifest[] {\n const out: OrbitalParamsManifest[] = [];\n const prefix = `${organism}::`;\n for (const [key, entry] of REGISTRY) {\n if (key.startsWith(prefix)) out.push(entry.manifest);\n }\n return out;\n}\n","/**\n * Exports Reader\n *\n * Provides programmatic access to golden behaviors.\n * Uses behavior functions from ./functions/ instead of reading .orb files from disk.\n * This makes the package work in bundled environments (no filesystem access for package data).\n *\n * @packageDocumentation\n */\n\nimport * as behaviorFns from './functions/index.js';\nimport type { OrbitalDefinition, OrbitalSchema } from '@almadar/core/types';\n\nexport type BehaviorLevel = 'atoms' | 'molecules' | 'organisms';\n\n/**\n * Convert function name (stdCart) to behavior name (std-cart).\n * Returns null for non-behavior exports (types, helpers, entity/trait/page variants).\n */\nfunction fnNameToBehaviorName(fnName: string): string | null {\n if (fnName.includes('Entity') || fnName.includes('Trait') || fnName.includes('Page')) return null;\n if (['connect', 'compose', 'pipe', 'makeEntity', 'makePage', 'makeOrbital', 'mergeOrbitals', 'wire', 'extractTrait', 'ensureIdField', 'plural'].includes(fnName)) return null;\n\n const withDashes = fnName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n if (!withDashes.startsWith('std-')) return null;\n return withDashes;\n}\n\ninterface BehaviorEntry {\n name: string;\n fn: (params: { entityName: string }) => unknown;\n}\n\nlet cachedEntries: BehaviorEntry[] | null = null;\n\nfunction getEntries(): BehaviorEntry[] {\n if (cachedEntries) return cachedEntries;\n\n cachedEntries = [];\n const fns = behaviorFns as Record<string, unknown>;\n\n for (const [fnName, fn] of Object.entries(fns)) {\n if (typeof fn !== 'function') continue;\n const behaviorName = fnNameToBehaviorName(fnName);\n if (!behaviorName) continue;\n cachedEntries.push({ name: behaviorName, fn: fn as (params: { entityName: string }) => unknown });\n }\n\n return cachedEntries;\n}\n\nfunction callBehavior(entry: BehaviorEntry): OrbitalSchema {\n const result = entry.fn({ entityName: entry.name.replace(/^std-/, '') });\n // Phase 4.2: per-orbital factories return a single `OrbitalDefinition`.\n // Phase 2 (organism-oriented model): the bundled wrapper for each app\n // organism (`stdEcommerce`, `stdHelpdesk`, etc.) returns\n // `OrbitalDefinition[]` — one entry per per-orbital factory it\n // composes. Detect both shapes and spread the array form so the\n // wrapping schema's `orbitals` stays flat. Without this branch,\n // every app organism round-tripped through `loadGoldenOrb` came\n // back as `{ orbitals: [ [orb1, orb2, ...] ] }` and downstream\n // consumers (analyzer catalog, compiler embedded loader) iterated\n // arrays where they expected OrbitalDefinitions.\n const orbitals: OrbitalDefinition[] = Array.isArray(result)\n ? (result as OrbitalDefinition[])\n : [result as OrbitalDefinition];\n return {\n name: entry.name,\n orbitals,\n };\n}\n\nexport function getAllBehaviorNames(): string[] {\n return getEntries().map(e => e.name);\n}\n\nexport function getAllBehaviors(): OrbitalSchema[] {\n const results: OrbitalSchema[] = [];\n for (const entry of getEntries()) {\n try {\n results.push(callBehavior(entry));\n } catch {\n // Some behaviors require params beyond { entityName } (e.g. fields, categories).\n // Skip them when enumerating the catalog — they still work when called with full params.\n }\n }\n return results;\n}\n\nexport function getBehaviorsByLevel(level: BehaviorLevel): OrbitalSchema[] {\n // Level is encoded in the behavior name pattern via the registry\n // For now, return all and let the caller filter via the registry\n return getAllBehaviors();\n}\n\nexport function loadGoldenOrb(behaviorName: string): OrbitalSchema | null {\n const entry = getEntries().find(e => e.name === behaviorName);\n if (!entry) return null;\n try {\n return callBehavior(entry);\n } catch {\n return null;\n }\n}\n\nexport function hasGoldenOrb(behaviorName: string): boolean {\n return getEntries().some(e => e.name === behaviorName);\n}\n\nexport function getBehavior(behaviorName: string): OrbitalSchema | null {\n return loadGoldenOrb(behaviorName);\n}\n","/**\n * Behavior Registry Query Helpers\n *\n * Programmatic access to behaviors-registry.json for filtering,\n * searching, and summarizing behaviors. Used by @almadar/skills\n * to compose agent prompts dynamically.\n *\n * @packageDocumentation\n */\n\nimport { loadGoldenOrb } from './exports-reader.js';\n\n// Import registry data directly — bundlers inline this at build time.\n// Falls back to fs read for dev mode (unbundled).\nlet registryJsonData: { behaviors: Record<string, unknown> } | null = null;\n\nasync function loadRegistryData(): Promise<{ behaviors: Record<string, unknown> }> {\n if (registryJsonData) return registryJsonData;\n try {\n // Try dynamic import (works in bundled and unbundled ESM)\n const { readFileSync } = await import('fs');\n const { resolve, dirname } = await import('path');\n const { fileURLToPath } = await import('url');\n const dir = dirname(fileURLToPath(import.meta.url));\n const raw = readFileSync(resolve(dir, 'behaviors-registry.json'), 'utf-8');\n registryJsonData = JSON.parse(raw);\n } catch {\n registryJsonData = { behaviors: {} };\n }\n return registryJsonData!;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface RegistryEntry {\n name: string;\n level: 'atom' | 'molecule' | 'organism';\n family: string;\n layer: string;\n description: string;\n statePattern: string;\n complexity: { states: number; events: number; transitions: number };\n defaultEntity: {\n name: string;\n persistence: string;\n fields: Array<{ name: string; type: string; default?: string }>;\n };\n defaultLabels: {\n title: string;\n entitySingular: string;\n entityPlural: string;\n };\n composableWith: string[];\n connectableEvents: string[];\n eventPayloads: Record<string, Array<{ name: string; type: string; required: boolean }>>;\n}\n\nexport interface BehaviorSummary {\n name: string;\n level: string;\n description: string;\n states: string[];\n events: string[];\n slots: string[];\n patterns: string[];\n complexity: { states: number; events: number; transitions: number };\n composableWith: string[];\n}\n\n// ============================================================================\n// Registry Cache\n// ============================================================================\n\nlet registryCache: Record<string, RegistryEntry> | null = null;\n\n/**\n * Read and cache the behavior registry.\n * Async to support bundled environments where fs may not be available.\n */\nexport async function getBehaviorRegistry(): Promise<Record<string, RegistryEntry>> {\n if (registryCache) return registryCache;\n try {\n const data = await loadRegistryData();\n registryCache = data.behaviors as Record<string, RegistryEntry>;\n return registryCache;\n } catch {\n return {};\n }\n}\n\n// ============================================================================\n// Query Functions\n// ============================================================================\n\n/**\n * Filter behaviors by domain. Matches against layer (primary) and family (fallback).\n */\nexport async function getBehaviorsByDomain(domain: string): Promise<RegistryEntry[]> {\n const registry = await getBehaviorRegistry();\n const lower = domain.toLowerCase();\n return Object.values(registry).filter((b) => {\n return b.layer.toLowerCase() === lower ||\n b.layer.toLowerCase().includes(lower) ||\n b.family.toLowerCase() === lower ||\n b.family.toLowerCase().includes(lower);\n });\n}\n\n/**\n * Filter behaviors by connectable operations (events).\n * Returns behaviors sorted by match count (most matching ops first).\n */\nexport async function getBehaviorsByOperations(ops: string[]): Promise<RegistryEntry[]> {\n const registry = await getBehaviorRegistry();\n const upperOps = ops.map(o => o.toUpperCase());\n\n const scored = Object.values(registry).map((b) => {\n const matches = upperOps.filter(op =>\n b.connectableEvents.some(e => e.toUpperCase() === op || e.toUpperCase().includes(op))\n );\n return { entry: b, score: matches.length };\n });\n\n return scored\n .filter(s => s.score > 0)\n .sort((a, b) => b.score - a.score)\n .map(s => s.entry);\n}\n\n/**\n * Fuzzy search across name, description, family, layer, and entity name.\n */\nexport async function searchBehaviors(query: string): Promise<RegistryEntry[]> {\n const registry = await getBehaviorRegistry();\n const tokens = query.toLowerCase().split(/\\s+/).filter(Boolean);\n\n const scored = Object.values(registry).map((b) => {\n const searchText = [\n b.name,\n b.description,\n b.family,\n b.layer,\n b.defaultEntity.name,\n b.statePattern,\n ].join(' ').toLowerCase();\n\n const score = tokens.filter(t => searchText.includes(t)).length;\n return { entry: b, score };\n });\n\n return scored\n .filter(s => s.score > 0)\n .sort((a, b) => b.score - a.score)\n .map(s => s.entry);\n}\n\n/**\n * Get a compact summary of a behavior including slots and patterns from the .orb file.\n */\nexport async function getBehaviorSummary(name: string): Promise<BehaviorSummary | null> {\n const registry = await getBehaviorRegistry();\n const entry = registry[name];\n if (!entry) return null;\n\n // Base data from registry\n const summary: BehaviorSummary = {\n name: entry.name,\n level: entry.level,\n description: entry.description,\n states: entry.statePattern.split(', ').filter(Boolean),\n events: entry.connectableEvents,\n slots: [],\n patterns: [],\n complexity: entry.complexity,\n composableWith: entry.composableWith.slice(0, 10),\n };\n\n // Enrich with slots and patterns from the actual .orb file\n try {\n const orb = loadGoldenOrb(name);\n if (orb) {\n const slots = new Set<string>();\n const patterns = new Set<string>();\n extractSlotsAndPatterns(orb, slots, patterns);\n summary.slots = Array.from(slots);\n summary.patterns = Array.from(patterns);\n }\n } catch {\n // .orb load failed, return registry-only data\n }\n\n return summary;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * Walk an object recursively to extract render-ui slots and pattern types.\n */\nfunction extractSlotsAndPatterns(\n obj: unknown,\n slots: Set<string>,\n patterns: Set<string>,\n): void {\n if (Array.isArray(obj)) {\n // Check for render-ui effect: [\"render-ui\", slotName, uiTree]\n if (obj.length >= 3 && obj[0] === 'render-ui' && typeof obj[1] === 'string') {\n slots.add(obj[1]);\n if (obj[2] && typeof obj[2] === 'object') {\n extractPatternTypes(obj[2], patterns);\n }\n }\n for (const item of obj) {\n extractSlotsAndPatterns(item, slots, patterns);\n }\n } else if (obj && typeof obj === 'object') {\n for (const value of Object.values(obj)) {\n extractSlotsAndPatterns(value, slots, patterns);\n }\n }\n}\n\n/**\n * Walk a render-ui tree to collect all pattern type values.\n */\nfunction extractPatternTypes(node: unknown, patterns: Set<string>): void {\n if (!node || typeof node !== 'object') return;\n const obj = node as Record<string, unknown>;\n if (typeof obj.type === 'string') {\n patterns.add(obj.type);\n }\n if (Array.isArray(obj.children)) {\n for (const child of obj.children) {\n extractPatternTypes(child, patterns);\n }\n }\n}\n","/**\n * Behavior Embeddings — typed loader for the publish-time-baked\n * `behaviors-embeddings.json` artifact.\n *\n * The catalog in `behaviors-registry.json` lists every organism + atom\n * available in the std library. At publish time, `scripts/build-embeddings.ts`\n * calls the OpenAI Embeddings API once per entry and writes the resulting\n * vectors to `behaviors-embeddings.json`. Downstream consumers\n * (`@almadar-io/agent` Stage A cosine retrieval) read these vectors at\n * runtime to rank organisms / atoms against the user's request — top-K\n * survives into the prompt, the rest is filtered out.\n *\n * One embedding bake per std publish. Runtime cost: one OpenAI embed call\n * per Stage A turn (the user request); the catalog side is free.\n *\n * @packageDocumentation\n */\n\nexport interface BehaviorEmbeddingsManifest {\n /** Std version at bake time. Matches `package.json` `version`. */\n version: string;\n /** Embedding model used (e.g. `text-embedding-3-small`). */\n model: string;\n /** Vector dimensionality (e.g. 1536 for text-embedding-3-small). */\n dimensions: number;\n /** Per-behavior vectors keyed by canonical name (matches registry keys). */\n vectors: Record<string, readonly number[]>;\n}\n\nlet cache: BehaviorEmbeddingsManifest | null = null;\n\nasync function loadManifest(): Promise<BehaviorEmbeddingsManifest | null> {\n if (cache) return cache;\n try {\n const { readFileSync } = await import('fs');\n const { resolve, dirname } = await import('path');\n const { fileURLToPath } = await import('url');\n const dir = dirname(fileURLToPath(import.meta.url));\n const raw = readFileSync(resolve(dir, 'behaviors-embeddings.json'), 'utf-8');\n const parsed = JSON.parse(raw) as BehaviorEmbeddingsManifest;\n if (\n typeof parsed?.version !== 'string' ||\n typeof parsed?.model !== 'string' ||\n typeof parsed?.dimensions !== 'number' ||\n !parsed?.vectors ||\n typeof parsed.vectors !== 'object'\n ) {\n return null;\n }\n cache = parsed;\n return cache;\n } catch {\n return null;\n }\n}\n\n/**\n * Return the typed embeddings manifest. Returns `null` when the bake step\n * hasn't run (dev workflow, unbundled std checkout without\n * `pnpm run build:embeddings`). Consumers fall back to the full catalog\n * walk in that case.\n */\nexport async function getBehaviorEmbeddings(): Promise<BehaviorEmbeddingsManifest | null> {\n return loadManifest();\n}\n\n/**\n * Fetch the embedding vector for one behavior by name. Returns `null` when\n * the manifest is missing OR the behavior wasn't indexed at bake time\n * (e.g. a new atom landed after the most recent publish — bake again).\n */\nexport async function getBehaviorEmbedding(behaviorName: string): Promise<readonly number[] | null> {\n const manifest = await loadManifest();\n if (!manifest) return null;\n return manifest.vectors[behaviorName] ?? null;\n}\n","/**\n * Explode Behavior Composition\n *\n * Human-authoring primitive (Phase 5.3 of Almadar_Agent_Behaviors_Plan).\n *\n * Returns the flat list of `TraitReference` objects a behavior is\n * composed from. For molecules/organisms with `uses:` imports, walks the\n * orbital's `traits:` array and filters for `TraitReference` entries\n * (skipping inline trait definitions). For leaf atoms (no composition),\n * returns a single synthetic `TraitReference` pointing at the atom's own\n * trait so consumers always get a non-empty array.\n *\n * **Not exposed to the agent or LLM** — this is for developers designing\n * new molecules or debugging compositions. The plan's §6a.3 explicitly\n * scopes it as human tooling.\n *\n * Implementation notes:\n * - Reads behaviors via the bundled `./functions/index.js` factories (same\n * approach as `exports-reader.ts`). No filesystem access, no coupling\n * to sibling packages — just calling functions that already exist in\n * this package.\n * - `TraitReference.from` is backfilled from the orbital's `uses:` header\n * when the call-site omitted it but the `ref:` uses an imported alias.\n *\n * @packageDocumentation\n */\n\nimport * as behaviorFns from './functions/index.js';\nimport type { OrbitalDefinition, UseDeclaration } from '@almadar/core/types';\nimport type { Trait, TraitRef, TraitReference } from '@almadar/core/types';\nimport { isInlineTrait } from '@almadar/core/types';\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction isTraitReferenceObject(entry: TraitRef): entry is TraitReference {\n return (\n typeof entry === 'object' &&\n entry !== null &&\n 'ref' in entry &&\n typeof (entry as { ref: unknown }).ref === 'string' &&\n !isInlineTrait(entry as TraitRef)\n );\n}\n\nfunction aliasToFromMap(uses: UseDeclaration[] | undefined): Map<string, string> {\n const map = new Map<string, string>();\n if (!uses) return map;\n for (const use of uses) {\n map.set(use.as, use.from);\n }\n return map;\n}\n\nfunction extractAlias(ref: string): string | null {\n const match = ref.match(/^([A-Z][a-zA-Z0-9]*)\\.traits\\.[A-Z][a-zA-Z0-9]*$/);\n return match ? match[1] : null;\n}\n\nfunction findAtomInlineTrait(orbital: OrbitalDefinition): Trait | undefined {\n for (const entry of orbital.traits) {\n if (typeof entry === 'object' && entry !== null && isInlineTrait(entry as TraitRef)) {\n return entry as Trait;\n }\n }\n return undefined;\n}\n\nfunction syntheticLeafReference(\n behaviorName: string,\n orbital: OrbitalDefinition,\n trait: Trait,\n): TraitReference {\n const base = behaviorName.replace(/^std-/, '');\n const alias = base\n .split('-')\n .filter((segment) => segment.length > 0)\n .map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))\n .join('') || 'Behavior';\n\n const entityName =\n typeof orbital.entity === 'string'\n ? orbital.entity\n : 'name' in orbital.entity && typeof orbital.entity.name === 'string'\n ? orbital.entity.name\n : undefined;\n\n const reference: TraitReference = {\n ref: `${alias}.traits.${trait.name}`,\n from: `std/behaviors/${behaviorName}`,\n };\n if (trait.linkedEntity !== undefined) {\n reference.linkedEntity = trait.linkedEntity;\n } else if (entityName !== undefined) {\n reference.linkedEntity = entityName;\n }\n return reference;\n}\n\n// ============================================================================\n// Behavior name → factory function\n// ============================================================================\n\nfunction fnNameToBehaviorName(fnName: string): string | null {\n if (fnName.includes('Entity') || fnName.includes('Trait') || fnName.includes('Page')) return null;\n if (\n ['connect', 'compose', 'pipe', 'makeEntity', 'makePage', 'makeOrbital', 'makeSchema',\n 'makeTraitRef', 'makePageRef', 'makeOrbitalWithUses', 'makeAtomOrbital',\n 'mergeOrbitals', 'wire', 'extractTrait', 'ensureIdField', 'plural'].includes(fnName)\n ) return null;\n const withDashes = fnName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n if (!withDashes.startsWith('std-')) return null;\n return withDashes;\n}\n\nfunction findFactory(behaviorName: string): ((params: { entityName: string }) => unknown) | null {\n const fns = behaviorFns as Record<string, unknown>;\n for (const [fnName, fn] of Object.entries(fns)) {\n if (typeof fn !== 'function') continue;\n const mapped = fnNameToBehaviorName(fnName);\n if (mapped === behaviorName) {\n return fn as (params: { entityName: string }) => unknown;\n }\n }\n return null;\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\n/**\n * Flatten a behavior's composition into the list of `TraitReference`\n * objects it's built from.\n *\n * For composed behaviors (molecules, organisms) this returns every\n * `TraitReference` entry from every orbital's `traits:` array, carrying\n * the call-site `ref`, backfilled `from` (looked up against the\n * orbital's `uses:` imports when omitted), `linkedEntity`, `events`,\n * `effects`, and any other override fields declared at the call site.\n *\n * For leaf atoms the function returns a single synthetic `TraitReference`\n * pointing at the atom's own trait, so consumers always get a non-empty\n * array.\n *\n * @param behaviorName - Registry name of the behavior (`\"std-cart\"`,\n * `\"std-browse\"`, etc.).\n * @throws When the behavior isn't exported from `@almadar/std`.\n */\nexport function explodeBehaviorComposition(behaviorName: string): TraitReference[] {\n const factory = findFactory(behaviorName);\n if (!factory) {\n throw new Error(\n `explodeBehaviorComposition: behavior \"${behaviorName}\" is not exported from @almadar/std.`,\n );\n }\n\n let result: unknown;\n try {\n result = factory({ entityName: behaviorName.replace(/^std-/, '') });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n throw new Error(\n `explodeBehaviorComposition: factory for \"${behaviorName}\" threw when called with default params: ${message}`,\n );\n }\n\n const orbital = result as OrbitalDefinition;\n const uses = aliasToFromMap(orbital.uses);\n const refs: TraitReference[] = [];\n\n for (const entry of orbital.traits) {\n if (!isTraitReferenceObject(entry)) continue;\n const ref: TraitReference = { ...entry };\n if (ref.from === undefined) {\n const alias = extractAlias(ref.ref);\n const mapped = alias !== null ? uses.get(alias) : undefined;\n if (mapped !== undefined) {\n ref.from = mapped;\n }\n }\n refs.push(ref);\n }\n\n if (refs.length === 0) {\n const inline = findAtomInlineTrait(orbital);\n if (inline !== undefined) {\n return [syntheticLeafReference(behaviorName, orbital, inline)];\n }\n }\n\n return refs;\n}\n","/**\n * Standard Library Documentation Generator\n *\n * Generates documentation data from the std library source.\n * Parses modules and behaviors to produce structured JSON for docs.\n *\n * @packageDocumentation\n */\n\nimport type { StdOperatorMeta, StdModule, OperatorTypeRef } from './types.js';\nimport type { BehaviorTrait } from './behaviors/types.js';\nimport type { State, Event, Transition } from '@almadar/core/types';\nimport { STD_MODULES } from './types.js';\nimport { STD_OPERATORS_BY_MODULE } from './registry.js';\nimport { getAllBehaviors } from './behaviors/exports-reader.js';\n\n// ============================================================================\n// Domain Language Mappings\n// ============================================================================\n\n/**\n * Human-friendly module descriptions\n */\nexport const MODULE_DESCRIPTIONS: Record<StdModule, ModuleInfo> = {\n core: {\n name: 'Core',\n displayName: 'Language Primitives',\n description: 'Unnamespaced S-expression operators: arithmetic, comparison, logic, control flow, and effects. The core of the .orb language.',\n icon: '⚙️',\n },\n math: {\n name: 'Math',\n displayName: 'Mathematical Operations',\n description: 'Numeric operations for calculations, rounding, clamping, and randomization.',\n icon: '🔢',\n },\n str: {\n name: 'String',\n displayName: 'String Operations',\n description: 'Text manipulation including formatting, splitting, trimming, and templating.',\n icon: '📝',\n },\n array: {\n name: 'Array',\n displayName: 'Collection Operations',\n description: 'Work with lists and arrays including filtering, mapping, and aggregation.',\n icon: '📋',\n },\n object: {\n name: 'Object',\n displayName: 'Object Utilities',\n description: 'Access and manipulate object properties safely.',\n icon: '🔑',\n },\n time: {\n name: 'Time',\n displayName: 'Date & Time',\n description: 'Work with dates, times, durations, and timestamps.',\n icon: '⏰',\n },\n validate: {\n name: 'Validate',\n displayName: 'Input Validation',\n description: 'Validate user input with common patterns like email, required, length checks.',\n icon: '✅',\n },\n format: {\n name: 'Format',\n displayName: 'Data Formatting',\n description: 'Display formatting for currency, numbers, dates, and file sizes.',\n icon: '🎨',\n },\n async: {\n name: 'Async',\n displayName: 'Async Operations',\n description: 'Control timing with delays, debouncing, retries, and timeouts.',\n icon: '⏳',\n },\n nn: {\n name: 'Neural Network',\n displayName: 'Neural Network Operations',\n description: 'Define and compose neural network layers and modules.',\n icon: '🧠',\n },\n tensor: {\n name: 'Tensor',\n displayName: 'Tensor Operations',\n description: 'Create and manipulate multi-dimensional arrays for numerical computing.',\n icon: '📊',\n },\n train: {\n name: 'Training',\n displayName: 'Training Operations',\n description: 'Training loops, loss functions, and optimization for neural networks.',\n icon: '🎯',\n },\n prob: {\n name: 'Probabilistic',\n displayName: 'Probabilistic Programming',\n description: 'Distribution sampling, Bayesian inference via rejection sampling, and statistical summaries.',\n icon: '🎲',\n },\n os: {\n name: 'OS Triggers',\n displayName: 'Operating System Events',\n description: 'Watch file system, processes, ports, signals, and environment for OS-level triggers.',\n icon: '🖥️',\n },\n graph: {\n name: 'Graph',\n displayName: 'Graph Operations',\n description: 'Graph construction, traversal, and algorithms for nodes and edges.',\n icon: '🕸️',\n },\n contract: {\n name: 'Contract',\n displayName: 'Contract Verification',\n description: 'Pre/post-condition assertions and invariant checking for runtime contracts.',\n icon: '📜',\n },\n data: {\n name: 'Data',\n displayName: 'Data Pipeline',\n description: 'Data loading, batching, shuffling, and preprocessing for ML pipelines.',\n icon: '📦',\n },\n agent: {\n name: 'Agent',\n displayName: 'Agent Intelligence',\n description: 'Agent memory management, LLM access, tool invocation, context management, and session control.',\n icon: '🤖',\n },\n composition: {\n name: 'Composition',\n displayName: 'Behavior Composition',\n description: 'Compile-time operators for composing N orbitals into a single application schema.',\n icon: '🧩',\n },\n};\n\n/**\n * (DEPRECATED) Behavior category descriptions\n * Categories have been removed from behaviors, using flat list now.\n */\nconst BEHAVIOR_GROUPINGS = {\n 'ui-interaction': {\n name: 'UI Interaction',\n description: 'User interface state management for lists, forms, modals, and navigation.',\n icon: '🖥️',\n },\n 'data-management': {\n name: 'Data Management',\n description: 'Data operations including pagination, selection, sorting, and filtering.',\n icon: '📊',\n },\n async: {\n name: 'Async Flow',\n description: 'Asynchronous workflows for loading, fetching, submitting, and polling data.',\n icon: '🔄',\n },\n feedback: {\n name: 'User Feedback',\n description: 'Provide feedback to users with notifications, confirmations, and undo actions.',\n icon: '💬',\n },\n 'game-core': {\n name: 'Game Core',\n description: 'Foundation systems for games: game loop, physics, input, and collision detection.',\n icon: '🎮',\n },\n 'game-entity': {\n name: 'Game Entity',\n description: 'Entity state behaviors: health, score, movement, combat, and inventory.',\n icon: '👾',\n },\n 'game-ui': {\n name: 'Game UI',\n description: 'Game interface systems: flow control, dialogue, and level progression.',\n icon: '🕹️',\n },\n};\n\nexport const BEHAVIOR_CATEGORY_DESCRIPTIONS = BEHAVIOR_GROUPINGS;\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ModuleInfo {\n name: string;\n displayName: string;\n description: string;\n icon: string;\n}\n\nexport interface CategoryInfo {\n name: string;\n description: string;\n icon: string;\n}\n\nexport interface OperatorDoc {\n name: string;\n shortName: string;\n displayName: string;\n description: string;\n params: Array<{\n name: string;\n type: string;\n description: string;\n optional?: boolean;\n defaultValue?: unknown;\n }>;\n example: string;\n returnType: string;\n returnTypeHuman: string;\n arityHuman: string;\n minArity: number;\n maxArity: number | null;\n hasSideEffects: boolean;\n acceptsLambda: boolean;\n pureFunction: boolean;\n}\n\nexport interface ModuleDoc {\n id: StdModule;\n name: string;\n displayName: string;\n description: string;\n icon: string;\n operators: OperatorDoc[];\n operatorCount: number;\n}\n\nexport interface BehaviorTransitionDoc {\n from: string | string[] | '*';\n to?: string;\n event: string;\n guard?: unknown;\n effects?: unknown[];\n}\n\nexport interface BehaviorStateMachineDoc {\n states: Array<{ name: string; isInitial?: boolean; isFinal?: boolean }>;\n transitions: BehaviorTransitionDoc[];\n}\n\nexport interface BehaviorDoc {\n name: string;\n shortName: string;\n description: string;\n suggestedFor?: string[];\n states: string[];\n statesCount: number;\n initial: string;\n events: string[];\n eventsCount: number;\n hasFields: boolean;\n hasComputed: boolean;\n hasTicks: boolean;\n ticksCount: number;\n transitionsCount: number;\n /** Full state machine data for visualizer */\n stateMachine?: BehaviorStateMachineDoc;\n /** Full behavior source code for display */\n sourceCode?: string;\n /** Data entities (runtime state) */\n dataEntities?: Array<{ name: string; fields: Array<{ name: string; type: string; default?: unknown }> }>;\n /** Ticks (frame-by-frame execution) */\n ticks?: Array<{ name: string; interval: string | number; description?: string }>;\n}\n\nexport interface CategoryDoc {\n id: string;\n name: string;\n description: string;\n icon: string;\n behaviors: BehaviorDoc[];\n behaviorCount: number;\n}\n\nexport interface DocsStats {\n totalModules: number;\n totalOperators: number;\n totalBehaviorCategories: number;\n totalBehaviors: number;\n generatedAt: string;\n}\n\nexport interface StdLibDocs {\n modules: ModuleDoc[];\n stats: DocsStats;\n}\n\nexport interface BehaviorsDocs {\n categories: CategoryDoc[];\n stats: DocsStats;\n}\n\n// ============================================================================\n// Transformation Functions\n// ============================================================================\n\n/**\n * Transform operator name to human-friendly format\n * e.g., \"math/clamp\" -> \"Clamp Value\"\n */\nexport function humanizeOperatorName(operatorName: string): string {\n const parts = operatorName.split('/');\n const funcName = parts[1];\n if (!funcName) return operatorName;\n\n // Handle special cases\n const specialNames: Record<string, string> = {\n abs: 'Absolute Value',\n len: 'Length',\n lerp: 'Linear Interpolation',\n randomInt: 'Random Integer',\n isPast: 'Is Past Date',\n isFuture: 'Is Future Date',\n minLength: 'Minimum Length',\n maxLength: 'Maximum Length',\n isType: 'Is Type',\n groupBy: 'Group By',\n sortBy: 'Sort By',\n findFirst: 'Find First',\n findLast: 'Find Last',\n };\n\n if (specialNames[funcName]) return specialNames[funcName];\n\n // Convert camelCase to Title Case\n return funcName\n .replace(/([A-Z])/g, ' $1')\n .replace(/^./, (str) => str.toUpperCase())\n .trim();\n}\n\n/**\n * Transform return type to human-friendly format\n */\nexport function humanizeReturnType(returnType: string | undefined): string {\n const typeMap: Record<string, string> = {\n number: 'number',\n string: 'text',\n boolean: 'true/false',\n array: 'list',\n object: 'object',\n any: 'any value',\n void: 'nothing',\n };\n return typeMap[returnType || ''] || returnType || 'any';\n}\n\n/**\n * Format arity as human-readable text\n */\nexport function formatArity(minArity: number, maxArity: number | null): string {\n if (maxArity === null) {\n return minArity === 0 ? 'variable (any number)' : `${minArity} or more`;\n }\n if (minArity === maxArity) {\n return minArity === 1 ? '1 argument' : `${minArity} arguments`;\n }\n return `${minArity}–${maxArity} arguments`;\n}\n\n// ============================================================================\n// Documentation Generation\n// ============================================================================\n\n/**\n * Convert a Schema v2 OperatorTypeRef into a readable string for docs.\n * Back-compat: plain string types pass through unchanged.\n */\nfunction formatTypeRef(ref: OperatorTypeRef): string {\n if (typeof ref === 'string') return ref;\n switch (ref.kind) {\n case 'literal':\n return JSON.stringify(ref.value);\n case 'union':\n return ref.of.map(formatTypeRef).join(' | ');\n case 'array':\n return `${formatTypeRef(ref.of)}[]`;\n case 'object': {\n const fields = Object.entries(ref.fields)\n .map(([k, v]) => `${k}: ${formatTypeRef(v)}`)\n .join(', ');\n return ref.open ? `{ ${fields}, ... }` : `{ ${fields} }`;\n }\n case 'entity':\n return ref.collection ? `Entity<${ref.collection}>` : 'Entity';\n case 'entityRef':\n return 'EntityRef';\n case 'eventKey':\n return ref.scope ? `EventKey<${ref.scope}>` : 'EventKey';\n case 'uiSlot':\n return 'UISlot';\n case 'patternType':\n return 'PatternType';\n case 'binding':\n return ref.shape ? `Binding<${formatTypeRef(ref.shape)}>` : 'Binding';\n case 'sexpr':\n return 'SExpr';\n }\n}\n\n/**\n * Generate documentation for a single operator\n */\nexport function generateOperatorDoc(opName: string, meta: StdOperatorMeta): OperatorDoc {\n return {\n name: opName,\n shortName: opName.split('/')[1] || opName,\n displayName: humanizeOperatorName(opName),\n description: meta.description,\n params: (meta.params || []).map((p) => ({\n name: p.name,\n type: formatTypeRef(p.type),\n description: p.description,\n optional: p.optional,\n defaultValue: p.defaultValue,\n })),\n example: meta.example || '',\n returnType: meta.returnType || 'any',\n returnTypeHuman: humanizeReturnType(meta.returnType),\n arityHuman: formatArity(meta.minArity, meta.maxArity),\n minArity: meta.minArity,\n maxArity: meta.maxArity,\n hasSideEffects: meta.hasSideEffects,\n acceptsLambda: meta.acceptsLambda || false,\n pureFunction: !meta.hasSideEffects,\n };\n}\n\n/**\n * Generate documentation for a single module\n */\nexport function generateModuleDoc(moduleId: StdModule): ModuleDoc | null {\n const moduleInfo = MODULE_DESCRIPTIONS[moduleId];\n if (!moduleInfo) return null;\n\n const moduleOperators = STD_OPERATORS_BY_MODULE[moduleId] || {};\n const operators = Object.entries(moduleOperators).map(([opName, meta]) =>\n generateOperatorDoc(opName, meta)\n );\n\n return {\n id: moduleId,\n ...moduleInfo,\n operators,\n operatorCount: operators.length,\n };\n}\n\n/**\n * Generate documentation for a single behavior\n */\nexport function generateBehaviorDoc(behavior: BehaviorTrait): BehaviorDoc {\n const sm = behavior.stateMachine;\n\n // Extract states list\n const states = (sm?.states || []).map((s: State) => s.name);\n\n // Extract events list \n const events = (sm?.events || []).map((e: Event) => e.key);\n\n // Get initial state - find state with isInitial: true\n const initialState = (sm?.states || []).find((s: State) => s.isInitial);\n const initial = initialState?.name || states[0] || '';\n\n // Build state machine for visualizer\n const stateMachineDoc: BehaviorStateMachineDoc | undefined = sm ? {\n states: states.map((name: string) => ({\n name,\n isInitial: name === initial,\n isFinal: false,\n })),\n transitions: (sm.transitions || []).map((t: Transition) => ({\n from: t.from || '*',\n to: t.to,\n event: t.event,\n guard: t.guard,\n effects: t.effects,\n })),\n } : undefined;\n\n // Generate source code representation\n const sourceCode = generateBehaviorSourceCode(behavior);\n\n // Extract data entities for display\n const dataEntities = behavior.dataEntities?.map((e: { name: string; fields: { name: string; type: string; default?: unknown }[] }) => ({\n name: e.name,\n fields: e.fields.map((f: { name: string; type: string; default?: unknown }) => ({\n name: f.name,\n type: f.type,\n default: f.default,\n })),\n }));\n\n // Extract ticks for display\n const ticks = behavior.ticks?.map((t: { name: string; interval: string | number; description?: string }) => ({\n name: t.name,\n interval: t.interval,\n description: t.description,\n }));\n\n return {\n name: behavior.name,\n shortName: behavior.name.replace('std/', ''),\n description: behavior.description || '',\n suggestedFor: [],\n states,\n statesCount: states.length,\n initial,\n events,\n eventsCount: events.length,\n hasFields: (behavior.dataEntities?.length || 0) > 0,\n hasComputed: false, // Computed is now inline in effects\n hasTicks: (behavior.ticks?.length || 0) > 0,\n ticksCount: behavior.ticks?.length || 0,\n transitionsCount: sm?.transitions?.length || 0,\n stateMachine: stateMachineDoc,\n sourceCode,\n dataEntities,\n ticks,\n };\n}\n\n/**\n * Generate a formatted source code representation of a behavior\n */\nfunction generateBehaviorSourceCode(behavior: BehaviorTrait): string {\n const lines: string[] = [];\n const indent = ' ';\n\n lines.push(`export const ${behavior.name.replace('std/', '').toUpperCase()}_BEHAVIOR = {`);\n lines.push(`${indent}name: '${behavior.name}',`);\n lines.push(`${indent}description: '${behavior.description || ''}',`);\n\n // Data Entities\n if (behavior.dataEntities && behavior.dataEntities.length > 0) {\n lines.push('');\n lines.push(`${indent}dataEntities: [`);\n for (const entity of behavior.dataEntities) {\n lines.push(`${indent}${indent}{`);\n lines.push(`${indent}${indent}${indent}name: '${entity.name}',`);\n if (entity.runtime) lines.push(`${indent}${indent}${indent}runtime: true,`);\n if (entity.singleton) lines.push(`${indent}${indent}${indent}singleton: true,`);\n lines.push(`${indent}${indent}${indent}fields: [`);\n for (const field of entity.fields) {\n const defaultVal = field.default !== undefined ? `, default: ${JSON.stringify(field.default)}` : '';\n lines.push(`${indent}${indent}${indent}${indent}{ name: '${field.name}', type: '${field.type}'${defaultVal} },`);\n }\n lines.push(`${indent}${indent}${indent}],`);\n lines.push(`${indent}${indent}},`);\n }\n lines.push(`${indent}],`);\n }\n\n // State Machine\n if (behavior.stateMachine) {\n const sm = behavior.stateMachine;\n lines.push('');\n lines.push(`${indent}stateMachine: {`);\n // Find initial state from isInitial flag\n const initialStateName = sm.states.find((s: State) => s.isInitial);\n const initialName = initialStateName?.name || '';\n if (initialName) {\n lines.push(`${indent}${indent}// Initial state: '${initialName}'`);\n }\n\n // States\n lines.push(`${indent}${indent}states: [`);\n for (const state of sm.states) {\n const name = state.name;\n const isInitial = state.isInitial;\n if (isInitial) {\n lines.push(`${indent}${indent}${indent}{ name: '${name}', isInitial: true },`);\n } else {\n lines.push(`${indent}${indent}${indent}{ name: '${name}' },`);\n }\n }\n lines.push(`${indent}${indent}],`);\n\n // Events\n lines.push(`${indent}${indent}events: [`);\n for (const event of sm.events) {\n const key = event.key;\n lines.push(`${indent}${indent}${indent}{ key: '${key}' },`);\n }\n lines.push(`${indent}${indent}],`);\n\n // Transitions\n lines.push(`${indent}${indent}transitions: [`);\n for (const t of sm.transitions) {\n lines.push(`${indent}${indent}${indent}{`);\n if (t.from) {\n if (Array.isArray(t.from)) {\n lines.push(`${indent}${indent}${indent}${indent}from: ${JSON.stringify(t.from)},`);\n } else {\n lines.push(`${indent}${indent}${indent}${indent}from: '${t.from}',`);\n }\n }\n if (t.to) lines.push(`${indent}${indent}${indent}${indent}to: '${t.to}',`);\n lines.push(`${indent}${indent}${indent}${indent}event: '${t.event}',`);\n if (t.guard) {\n lines.push(`${indent}${indent}${indent}${indent}guard: ${formatSExprForCode(t.guard)},`);\n }\n if (t.effects && t.effects.length > 0) {\n lines.push(`${indent}${indent}${indent}${indent}effects: [`);\n for (const effect of t.effects) {\n lines.push(`${indent}${indent}${indent}${indent}${indent}${formatSExprForCode(effect)},`);\n }\n lines.push(`${indent}${indent}${indent}${indent}],`);\n }\n lines.push(`${indent}${indent}${indent}},`);\n }\n lines.push(`${indent}${indent}],`);\n lines.push(`${indent}},`);\n }\n\n // Ticks\n if (behavior.ticks && behavior.ticks.length > 0) {\n lines.push('');\n lines.push(`${indent}ticks: [`);\n for (const tick of behavior.ticks) {\n lines.push(`${indent}${indent}{`);\n lines.push(`${indent}${indent}${indent}name: '${tick.name}',`);\n lines.push(`${indent}${indent}${indent}interval: ${typeof tick.interval === 'string' ? `'${tick.interval}'` : tick.interval},`);\n if (tick.priority) lines.push(`${indent}${indent}${indent}priority: ${tick.priority},`);\n if (tick.guard) {\n lines.push(`${indent}${indent}${indent}guard: ${formatSExprForCode(tick.guard)},`);\n }\n if (tick.effects && tick.effects.length > 0) {\n lines.push(`${indent}${indent}${indent}effects: [`);\n for (const effect of tick.effects) {\n lines.push(`${indent}${indent}${indent}${indent}${formatSExprForCode(effect)},`);\n }\n lines.push(`${indent}${indent}${indent}],`);\n }\n lines.push(`${indent}${indent}},`);\n }\n lines.push(`${indent}],`);\n }\n\n lines.push('};');\n return lines.join('\\n');\n}\n\n/**\n * Format an S-expression for display in code\n */\nfunction formatSExprForCode(expr: unknown): string {\n if (typeof expr === 'string') {\n return `'${expr}'`;\n }\n if (typeof expr === 'number' || typeof expr === 'boolean') {\n return String(expr);\n }\n if (expr === null || expr === undefined) {\n return 'null';\n }\n if (Array.isArray(expr)) {\n const items = expr.map(formatSExprForCode);\n if (items.join(', ').length < 60) {\n return `[${items.join(', ')}]`;\n }\n return `[${items.join(', ')}]`;\n }\n if (typeof expr === 'object') {\n return JSON.stringify(expr);\n }\n return String(expr);\n}\n\n/**\n * Generate documentation for all std library modules\n */\nexport function generateModulesDocs(): StdLibDocs {\n const modules: ModuleDoc[] = [];\n\n for (const moduleId of STD_MODULES) {\n const moduleDoc = generateModuleDoc(moduleId);\n if (moduleDoc) {\n modules.push(moduleDoc);\n }\n }\n\n const stats: DocsStats = {\n totalModules: modules.length,\n totalOperators: modules.reduce((sum, m) => sum + m.operatorCount, 0),\n totalBehaviorCategories: 0,\n totalBehaviors: 0,\n generatedAt: new Date().toISOString(),\n };\n\n return { modules, stats };\n}\n\n/**\n * Generate documentation for all standard behaviors\n */\n/**\n * Load all exported .orb files and extract the first trait from each as a BehaviorTrait.\n */\nfunction loadBehaviorTraitsFromExports(): BehaviorTrait[] {\n const schemas = getAllBehaviors();\n const traits: BehaviorTrait[] = [];\n\n for (const schema of schemas) {\n const orbitals = schema.orbitals as Array<{ traits?: BehaviorTrait[] }> | undefined;\n if (orbitals) {\n for (const orbital of orbitals) {\n for (const trait of orbital.traits ?? []) {\n traits.push(trait);\n }\n }\n }\n }\n\n return traits;\n}\n\nexport function generateBehaviorsDocs(): BehaviorsDocs {\n const categories: CategoryDoc[] = [];\n\n // Load behaviors from exported .orb files\n const allTraits = loadBehaviorTraitsFromExports();\n const allBehaviors = allTraits.map((b: BehaviorTrait) => generateBehaviorDoc(b));\n\n // Create a single \"All Behaviors\" category\n categories.push({\n id: 'all',\n name: 'Standard Behaviors',\n description: 'All reusable state machine behaviors from the standard library.',\n icon: '📦',\n behaviors: allBehaviors,\n behaviorCount: allBehaviors.length,\n });\n\n const stats: DocsStats = {\n totalModules: 0,\n totalOperators: 0,\n totalBehaviorCategories: categories.length,\n totalBehaviors: categories.reduce((sum, c) => sum + c.behaviorCount, 0),\n generatedAt: new Date().toISOString(),\n };\n\n return { categories, stats };\n}\n\n/**\n * Generate complete standard library documentation\n */\nexport function generateStdLibDocs(): {\n modules: StdLibDocs;\n behaviors: BehaviorsDocs;\n} {\n const modules = generateModulesDocs();\n const behaviors = generateBehaviorsDocs();\n\n // Update cross-stats\n modules.stats.totalBehaviorCategories = behaviors.stats.totalBehaviorCategories;\n modules.stats.totalBehaviors = behaviors.stats.totalBehaviors;\n behaviors.stats.totalModules = modules.stats.totalModules;\n behaviors.stats.totalOperators = modules.stats.totalOperators;\n\n return { modules, behaviors };\n}\n"]}