@almadar/std 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +72 -0
- package/dist/behaviors/action-affinity.d.ts +88 -0
- package/dist/behaviors/action-affinity.js +290 -0
- package/dist/behaviors/action-affinity.js.map +1 -0
- package/dist/behaviors/async.d.ts +20 -0
- package/dist/behaviors/async.js +542 -0
- package/dist/behaviors/async.js.map +1 -0
- package/dist/behaviors/data-management.d.ts +40 -0
- package/dist/behaviors/data-management.js +495 -0
- package/dist/behaviors/data-management.js.map +1 -0
- package/dist/behaviors/feedback.d.ts +18 -0
- package/dist/behaviors/feedback.js +307 -0
- package/dist/behaviors/feedback.js.map +1 -0
- package/dist/behaviors/game-core.d.ts +40 -0
- package/dist/behaviors/game-core.js +443 -0
- package/dist/behaviors/game-core.js.map +1 -0
- package/dist/behaviors/game-entity.d.ts +39 -0
- package/dist/behaviors/game-entity.js +643 -0
- package/dist/behaviors/game-entity.js.map +1 -0
- package/dist/behaviors/game-ui.d.ts +29 -0
- package/dist/behaviors/game-ui.js +493 -0
- package/dist/behaviors/game-ui.js.map +1 -0
- package/dist/behaviors/index.d.ts +11 -0
- package/dist/behaviors/index.js +4539 -0
- package/dist/behaviors/index.js.map +1 -0
- package/dist/behaviors/registry.d.ts +103 -0
- package/dist/behaviors/registry.js +4166 -0
- package/dist/behaviors/registry.js.map +1 -0
- package/dist/behaviors/types.d.ts +179 -0
- package/dist/behaviors/types.js +111 -0
- package/dist/behaviors/types.js.map +1 -0
- package/dist/behaviors/ui-interaction.d.ts +36 -0
- package/dist/behaviors/ui-interaction.js +1104 -0
- package/dist/behaviors/ui-interaction.js.map +1 -0
- package/dist/index.d.ts +195 -0
- package/dist/index.js +8209 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/array.d.ts +28 -0
- package/dist/modules/array.js +556 -0
- package/dist/modules/array.js.map +1 -0
- package/dist/modules/async.d.ts +22 -0
- package/dist/modules/async.js +112 -0
- package/dist/modules/async.js.map +1 -0
- package/dist/modules/format.d.ts +21 -0
- package/dist/modules/format.js +129 -0
- package/dist/modules/format.js.map +1 -0
- package/dist/modules/index.d.ts +12 -0
- package/dist/modules/index.js +3131 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/math.d.ts +22 -0
- package/dist/modules/math.js +215 -0
- package/dist/modules/math.js.map +1 -0
- package/dist/modules/nn.d.ts +23 -0
- package/dist/modules/nn.js +189 -0
- package/dist/modules/nn.js.map +1 -0
- package/dist/modules/object.d.ts +22 -0
- package/dist/modules/object.js +257 -0
- package/dist/modules/object.js.map +1 -0
- package/dist/modules/str.d.ts +21 -0
- package/dist/modules/str.js +344 -0
- package/dist/modules/str.js.map +1 -0
- package/dist/modules/tensor.d.ts +23 -0
- package/dist/modules/tensor.js +427 -0
- package/dist/modules/tensor.js.map +1 -0
- package/dist/modules/time.d.ts +24 -0
- package/dist/modules/time.js +323 -0
- package/dist/modules/time.js.map +1 -0
- package/dist/modules/train.d.ts +23 -0
- package/dist/modules/train.js +308 -0
- package/dist/modules/train.js.map +1 -0
- package/dist/modules/validate.d.ts +23 -0
- package/dist/modules/validate.js +301 -0
- package/dist/modules/validate.js.map +1 -0
- package/dist/registry.d.ts +140 -0
- package/dist/registry.js +3240 -0
- package/dist/registry.js.map +1 -0
- package/dist/types-I95R8_FN.d.ts +91 -0
- package/package.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../types.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","../registry.ts","../behaviors/types.ts","../behaviors/action-affinity.ts","../behaviors/ui-interaction.ts","../behaviors/data-management.ts","../behaviors/async.ts","../behaviors/feedback.ts","../behaviors/game-core.ts","../behaviors/game-entity.ts","../behaviors/game-ui.ts","../behaviors/registry.ts","../docs-generator.ts"],"names":["FILTER_BEHAVIOR"],"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] 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 */\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\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 'math',\n 'str',\n 'array',\n 'object',\n 'time',\n 'validate',\n 'format',\n 'async',\n 'nn',\n 'tensor',\n 'train',\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] as const;\n\nexport type StdOperatorCategory = (typeof STD_OPERATOR_CATEGORIES)[number];\n\n// ============================================================================\n// Extended Operator Metadata\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: string;\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}\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 * 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/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',\n hasSideEffects: false,\n returnType: 'any',\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',\n hasSideEffects: false,\n returnType: 'any',\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',\n hasSideEffects: false,\n returnType: 'any',\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',\n hasSideEffects: false,\n returnType: 'any',\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',\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/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',\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/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',\n hasSideEffects: false,\n returnType: 'array',\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',\n hasSideEffects: false,\n returnType: 'any',\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',\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 (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',\n hasSideEffects: false,\n returnType: 'any',\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: 1,\n description: 'Wait for specified milliseconds',\n hasSideEffects: true,\n returnType: 'void',\n params: [{ name: 'ms', type: 'number', description: 'Milliseconds to wait' }],\n example: '[\"async/delay\", 2000] // Wait 2 seconds',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-nn',\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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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: 'std-train',\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 * 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 } from '@almadar/core/types';\nimport type { StdOperatorMeta, StdModule } from './types.js';\nimport { isStdOperator, getModuleFromOperator, STD_MODULES } from './types.js';\n\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';\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 ...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};\n\n/**\n * Module-specific operator registries.\n */\nexport const STD_OPERATORS_BY_MODULE: Record<StdModule, Record<string, StdOperatorMeta>> = {\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};\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 Traits with a `std/` naming convention.\n * They use a more flexible state machine format optimized for authoring.\n *\n * ARCHITECTURE: Behaviors ARE Traits conceptually. They use:\n * - stateMachine: BehaviorStateMachine (flexible states, events, transitions)\n * - ticks: BehaviorTick[] (frame-by-frame execution for games)\n * - dataEntities: BehaviorDataEntity[] (runtime state)\n *\n * @packageDocumentation\n */\n\nimport type { SExpr, RequiredField } from '@almadar/core/types';\n\n// ============================================================================\n// Behavior Categories\n// ============================================================================\n\n/**\n * Categories of Standard Behaviors\n */\nexport const BEHAVIOR_CATEGORIES = [\n 'ui-interaction', // User interface state management\n 'data-management', // Data operations and state\n 'async', // Asynchronous workflows\n 'feedback', // User feedback and confirmations\n 'game-core', // Game loop and systems\n 'game-entity', // Game entity behaviors\n 'game-ui', // Game interface\n] as const;\n\nexport type BehaviorCategory = (typeof BEHAVIOR_CATEGORIES)[number];\n\n// ============================================================================\n// Config Field Types (for IDE hints and documentation)\n// ============================================================================\n\nexport type FieldType =\n | 'string'\n | 'number'\n | 'boolean'\n | 'array'\n | 'object'\n | 'entity'\n | 'slot'\n | 'pattern'\n | 'event'\n | 'action[]';\n\nexport interface ConfigField {\n name: string;\n type: FieldType;\n description: string;\n default?: unknown;\n enum?: string[];\n}\n\n// ============================================================================\n// Behavior State Machine Types (flexible for authoring)\n// ============================================================================\n\n/**\n * State definition - can be string or object\n */\nexport interface BehaviorState {\n name: string;\n isInitial?: boolean;\n isFinal?: boolean;\n description?: string;\n}\n\n/**\n * Event definition - simplified, only key required\n */\nexport interface BehaviorEvent {\n key: string;\n name?: string;\n description?: string;\n payload?: Record<string, unknown>;\n}\n\n/**\n * Transition definition - flexible from/to\n */\nexport interface BehaviorTransition {\n /** Source state(s) - string, '*' for any, or array */\n from?: string | string[] | '*';\n /** Target state - optional for self-transitions */\n to?: string;\n /** Event that triggers this transition */\n event: string;\n /** Guard condition (S-expression) */\n guard?: SExpr;\n /** Effects to execute (S-expressions) */\n effects?: SExpr[];\n}\n\n/**\n * State machine for behaviors - more flexible than core StateMachine\n */\nexport interface BehaviorStateMachine {\n initial: string;\n states: (string | BehaviorState)[];\n events: (string | BehaviorEvent)[];\n transitions: BehaviorTransition[];\n guards?: Array<{\n name: string;\n condition: SExpr;\n description?: string;\n }>;\n}\n\n// ============================================================================\n// Behavior Tick (for frame-by-frame execution)\n// ============================================================================\n\nexport interface BehaviorTick {\n name: string;\n description?: string;\n priority?: number;\n interval: 'frame' | number;\n appliesTo?: string[];\n guard?: SExpr;\n effects: SExpr[];\n}\n\n// ============================================================================\n// Behavior Data Entity (runtime state)\n// ============================================================================\n\nexport interface BehaviorEntityField {\n name: string;\n type: string;\n default?: unknown;\n required?: boolean;\n description?: string;\n}\n\nexport interface BehaviorDataEntity {\n name: string;\n runtime?: boolean;\n singleton?: boolean;\n fields: BehaviorEntityField[];\n description?: string;\n}\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// Standard Behavior Interface\n// ============================================================================\n\n/**\n * Configuration schema for documentation and IDE hints\n */\nexport interface BehaviorConfig {\n required: ConfigField[];\n optional: ConfigField[];\n}\n\n/**\n * Standard Behavior definition\n */\nexport interface StandardBehavior {\n /** Behavior identifier (e.g., 'std/List', 'std/Form') */\n name: string;\n\n /** Category for organization */\n category: BehaviorCategory;\n\n /** Human-readable description */\n description: string;\n\n // ========== Documentation Extensions ==========\n\n /** When to use this behavior */\n suggestedFor?: string[];\n\n /** Configuration schema for IDE hints */\n configSchema?: BehaviorConfig;\n\n // ========== State Machine ==========\n\n /** State machine definition */\n stateMachine?: BehaviorStateMachine;\n\n // ========== Trait Features ==========\n\n /** Required fields from linked entity */\n requiredFields?: RequiredField[];\n\n /** Runtime data entities */\n dataEntities?: BehaviorDataEntity[];\n\n /** Frame-by-frame execution */\n ticks?: BehaviorTick[];\n\n /** Cross-behavior event listeners */\n listens?: Array<{\n event: string;\n triggers: string;\n guard?: SExpr;\n }>;\n\n /** Initial effects on behavior activation */\n initialEffects?: SExpr[];\n}\n\n/**\n * Behavior metadata for quick lookup\n */\nexport interface BehaviorMetadata {\n name: string;\n category: BehaviorCategory;\n description: string;\n suggestedFor: string[];\n states: string[];\n events: string[];\n tickCount: number;\n transitionCount: number;\n hasDataEntities: boolean;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\nexport function isBehaviorCategory(value: string): value is BehaviorCategory {\n return BEHAVIOR_CATEGORIES.includes(value as BehaviorCategory);\n}\n\nexport function isGameBehaviorCategory(category: BehaviorCategory): boolean {\n return category.startsWith('game-');\n}\n\n/**\n * Extract metadata from a StandardBehavior\n */\nexport function getBehaviorMetadata(behavior: StandardBehavior): BehaviorMetadata {\n const sm = behavior.stateMachine;\n\n const states: string[] = (sm?.states || []).map(s =>\n typeof s === 'string' ? s : s.name\n );\n\n const events: string[] = (sm?.events || []).map(e =>\n typeof e === 'string' ? e : e.key\n );\n\n return {\n name: behavior.name,\n category: behavior.category,\n description: behavior.description || '',\n suggestedFor: behavior.suggestedFor || [],\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: StandardBehavior): 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 if (!behavior.category) {\n errors.push('Behavior must have a category');\n }\n\n if (!isBehaviorCategory(behavior.category)) {\n errors.push(`Invalid category: ${behavior.category}`);\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 if (!sm.initial) {\n errors.push('State machine must have an initial state');\n }\n }\n\n return errors;\n}\n\n/**\n * Validate behavior events match transitions\n */\nexport function validateBehaviorEvents(behavior: StandardBehavior): string[] {\n const errors: string[] = [];\n const sm = behavior.stateMachine;\n if (!sm) return errors;\n\n const declaredEvents = new Set(\n (sm.events || []).map(e => typeof e === 'string' ? 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: StandardBehavior): string[] {\n const errors: string[] = [];\n const sm = behavior.stateMachine;\n if (!sm) return errors;\n\n const declaredStates = new Set(\n (sm.states || []).map(s => typeof s === 'string' ? s : s.name)\n );\n\n for (const t of sm.transitions || []) {\n // Check 'from' states (allow '*' and arrays)\n if (t.from && t.from !== '*') {\n const fromStates = Array.isArray(t.from) ? t.from : [t.from];\n for (const state of fromStates) {\n if (!declaredStates.has(state)) {\n errors.push(`Transition from undeclared state: ${state}`);\n }\n }\n }\n\n // Check 'to' state (optional)\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 * Action-Component Affinity Rules\n *\n * Defines which actions are valid on which components in the Closed Circuit pattern.\n * This enforces that behaviors only emit actions that make sense for their component context.\n *\n * The Closed Circuit pattern:\n * Behavior â render_ui â Component â User Action â Event Bus â Behavior\n *\n * @packageDocumentation\n */\n\n// ============================================================================\n// Action Affinity Types\n// ============================================================================\n\n/**\n * Action affinity definition for a component\n */\nexport interface ActionAffinity {\n /** Actions that are valid on this component */\n valid: string[];\n /** Actions that should NEVER appear on this component */\n invalid: string[];\n}\n\n/**\n * Action placement options\n */\nexport type ActionPlacement = 'row' | 'bulk' | 'card' | 'footer' | 'header';\n\n/**\n * Event naming convention for UI events\n */\nexport interface UIEventInfo {\n /** Event name (without UI: prefix) */\n event: string;\n /** Components that typically emit this event */\n emittedBy: string[];\n /** Expected payload shape */\n payload: Record<string, string>;\n /** Description of when this event is used */\n description: string;\n}\n\n// ============================================================================\n// Action-Component Affinity Matrix\n// ============================================================================\n\n/**\n * The action-component affinity matrix.\n * This defines which actions belong on which components.\n *\n * CRITICAL: Not all actions belong on all components.\n * The Closed Circuit pattern requires that actions match their component context.\n */\nexport const ACTION_AFFINITY: Record<string, ActionAffinity> = {\n // Display components - view data and trigger navigation/editing\n 'entity-table': {\n valid: ['VIEW', 'EDIT', 'DELETE', 'SELECT', 'SORT', 'PAGE'],\n invalid: ['SAVE', 'CANCEL', 'SUBMIT', 'CREATE', 'CLOSE'],\n },\n 'entity-list': {\n valid: ['VIEW', 'EDIT', 'DELETE', 'SELECT'],\n invalid: ['SAVE', 'CANCEL', 'SUBMIT', 'CREATE', 'CLOSE'],\n },\n 'entity-cards': {\n valid: ['VIEW', 'EDIT', 'DELETE', 'SELECT'],\n invalid: ['SAVE', 'CANCEL', 'SUBMIT', 'CREATE', 'CLOSE'],\n },\n 'card-grid': {\n valid: ['VIEW', 'EDIT', 'DELETE', 'SELECT'],\n invalid: ['SAVE', 'CANCEL', 'SUBMIT', 'CREATE', 'CLOSE'],\n },\n\n // Header components - page-level actions\n 'page-header': {\n valid: ['CREATE', 'REFRESH', 'EXPORT', 'IMPORT', 'BACK', 'FILTER'],\n invalid: ['SAVE', 'VIEW', 'EDIT', 'DELETE', 'SUBMIT'],\n },\n\n // Form components - data entry and submission\n 'form': {\n valid: ['SAVE', 'CANCEL', 'SUBMIT', 'CLOSE', 'RESET', 'FIELD_CHANGE', 'FIELD_BLUR'],\n invalid: ['VIEW', 'DELETE', 'CREATE', 'SELECT', 'EDIT'],\n },\n 'form-section': {\n valid: ['FIELD_CHANGE', 'FIELD_BLUR'],\n invalid: ['SAVE', 'VIEW', 'DELETE', 'CREATE', 'SELECT', 'EDIT'],\n },\n 'form-actions': {\n valid: ['SAVE', 'CANCEL', 'SUBMIT', 'RESET'],\n invalid: ['VIEW', 'DELETE', 'CREATE', 'SELECT', 'EDIT'],\n },\n\n // Detail components - view single entity with edit/delete options\n 'detail-panel': {\n valid: ['EDIT', 'DELETE', 'CLOSE', 'BACK'],\n invalid: ['SAVE', 'CREATE', 'SELECT', 'SUBMIT'],\n },\n 'entity-detail': {\n valid: ['EDIT', 'DELETE', 'CLOSE', 'BACK'],\n invalid: ['SAVE', 'CREATE', 'SELECT', 'SUBMIT'],\n },\n\n // Container components - open/close states\n 'modal': {\n valid: ['CLOSE', 'CONFIRM', 'CANCEL'],\n invalid: ['VIEW', 'CREATE', 'EDIT', 'DELETE'],\n },\n 'modal-container': {\n valid: ['CLOSE', 'CONFIRM', 'CANCEL'],\n invalid: ['VIEW', 'CREATE', 'EDIT', 'DELETE'],\n },\n 'drawer': {\n valid: ['CLOSE'],\n invalid: ['VIEW', 'CREATE', 'DELETE'],\n },\n\n // Navigation components\n 'tabs': {\n valid: ['SELECT_TAB'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'tab-bar': {\n valid: ['SELECT_TAB'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'wizard-navigation': {\n valid: ['NEXT', 'PREV', 'GO_TO', 'COMPLETE'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'wizard-progress': {\n valid: ['GO_TO'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT', 'NEXT', 'PREV'],\n },\n\n // Filter components\n 'filter-group': {\n valid: ['SET_FILTER', 'CLEAR_FILTER', 'CLEAR_ALL'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'search-bar': {\n valid: ['SEARCH', 'CLEAR_SEARCH'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'search-input': {\n valid: ['SEARCH', 'CLEAR_SEARCH'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n\n // Pagination components\n 'pagination': {\n valid: ['NEXT_PAGE', 'PREV_PAGE', 'GO_TO_PAGE', 'SET_PAGE_SIZE'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n\n // Confirmation components\n 'confirm-dialog': {\n valid: ['CONFIRM', 'CANCEL'],\n invalid: ['VIEW', 'CREATE', 'EDIT', 'DELETE', 'SAVE'],\n },\n\n // Empty/Loading states - no actions\n 'empty-state': {\n valid: ['CREATE'], // Often has a \"Create first item\" CTA\n invalid: ['SAVE', 'VIEW', 'EDIT', 'DELETE', 'CANCEL'],\n },\n 'loading-state': {\n valid: [],\n invalid: ['SAVE', 'VIEW', 'EDIT', 'DELETE', 'CREATE', 'CANCEL'],\n },\n\n // Stats/Dashboard - view only\n 'stats': {\n valid: [],\n invalid: ['SAVE', 'VIEW', 'EDIT', 'DELETE', 'CREATE', 'CANCEL'],\n },\n\n // Game components\n 'game-canvas': {\n valid: ['INPUT', 'PAUSE', 'UNPAUSE'],\n invalid: ['SAVE', 'CREATE', 'DELETE'],\n },\n 'game-hud': {\n valid: ['PAUSE'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'game-controls': {\n valid: ['INPUT', 'ACTION'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'game-menu': {\n valid: ['START', 'OPTIONS', 'QUIT', 'SELECT'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'game-pause-overlay': {\n valid: ['RESUME', 'QUIT', 'OPTIONS'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n 'game-over-screen': {\n valid: ['RETRY', 'QUIT', 'MAIN_MENU'],\n invalid: ['SAVE', 'CREATE', 'DELETE', 'VIEW', 'EDIT'],\n },\n};\n\n// ============================================================================\n// UI Event Definitions\n// ============================================================================\n\n/**\n * Standard UI events and their metadata\n */\nexport const UI_EVENTS: Record<string, UIEventInfo> = {\n VIEW: {\n event: 'VIEW',\n emittedBy: ['entity-table', 'entity-list', 'entity-cards', 'card-grid'],\n payload: { row: 'object', entity: 'string' },\n description: 'View item detail',\n },\n EDIT: {\n event: 'EDIT',\n emittedBy: ['entity-table', 'entity-list', 'entity-cards', 'detail-panel'],\n payload: { row: 'object', entity: 'string' },\n description: 'Edit item',\n },\n DELETE: {\n event: 'DELETE',\n emittedBy: ['entity-table', 'entity-list', 'entity-cards', 'detail-panel'],\n payload: { row: 'object', entity: 'string' },\n description: 'Delete item',\n },\n CREATE: {\n event: 'CREATE',\n emittedBy: ['page-header', 'empty-state'],\n payload: { entity: 'string' },\n description: 'Create new item',\n },\n SAVE: {\n event: 'SAVE',\n emittedBy: ['form', 'form-actions'],\n payload: { data: 'object', entity: 'string' },\n description: 'Save form data',\n },\n CANCEL: {\n event: 'CANCEL',\n emittedBy: ['form', 'form-actions', 'modal', 'confirm-dialog'],\n payload: {},\n description: 'Cancel form/modal',\n },\n CLOSE: {\n event: 'CLOSE',\n emittedBy: ['modal', 'drawer', 'detail-panel'],\n payload: {},\n description: 'Close modal/drawer',\n },\n SELECT: {\n event: 'SELECT',\n emittedBy: ['entity-table', 'entity-list', 'entity-cards'],\n payload: { selectedIds: 'string[]' },\n description: 'Selection change',\n },\n SEARCH: {\n event: 'SEARCH',\n emittedBy: ['search-bar', 'search-input'],\n payload: { searchTerm: 'string' },\n description: 'Search filter',\n },\n CONFIRM: {\n event: 'CONFIRM',\n emittedBy: ['modal', 'confirm-dialog'],\n payload: {},\n description: 'Confirm action',\n },\n SELECT_TAB: {\n event: 'SELECT_TAB',\n emittedBy: ['tabs', 'tab-bar'],\n payload: { tabId: 'string' },\n description: 'Tab selection',\n },\n NEXT: {\n event: 'NEXT',\n emittedBy: ['wizard-navigation'],\n payload: {},\n description: 'Wizard next step',\n },\n PREV: {\n event: 'PREV',\n emittedBy: ['wizard-navigation'],\n payload: {},\n description: 'Wizard previous step',\n },\n};\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Check if an action is valid for a component\n */\nexport function isActionValidForComponent(action: string, component: string): boolean {\n const affinity = ACTION_AFFINITY[component];\n if (!affinity) {\n // Unknown component - allow by default but warn\n return true;\n }\n return affinity.valid.includes(action) || !affinity.invalid.includes(action);\n}\n\n/**\n * Check if an action is explicitly invalid for a component\n */\nexport function isActionInvalidForComponent(action: string, component: string): boolean {\n const affinity = ACTION_AFFINITY[component];\n if (!affinity) {\n return false;\n }\n return affinity.invalid.includes(action);\n}\n\n/**\n * Get valid actions for a component\n */\nexport function getValidActionsForComponent(component: string): string[] {\n const affinity = ACTION_AFFINITY[component];\n return affinity?.valid ?? [];\n}\n\n/**\n * Get invalid actions for a component\n */\nexport function getInvalidActionsForComponent(component: string): string[] {\n const affinity = ACTION_AFFINITY[component];\n return affinity?.invalid ?? [];\n}\n\n/**\n * Get components that can emit a specific event\n */\nexport function getComponentsForEvent(event: string): string[] {\n return UI_EVENTS[event]?.emittedBy ?? [];\n}\n\n/**\n * Validate that a set of item actions are appropriate for a component\n *\n * @returns Array of validation errors (empty if valid)\n */\nexport function validateActionsForComponent(\n actions: Array<{ event?: string; label?: string }>,\n component: string\n): string[] {\n const errors: string[] = [];\n const affinity = ACTION_AFFINITY[component];\n\n if (!affinity) {\n // Unknown component - no validation\n return errors;\n }\n\n for (const action of actions) {\n if (action.event && affinity.invalid.includes(action.event)) {\n errors.push(\n `Action \"${action.event}\" is not valid on \"${component}\". ` +\n `Valid actions: ${affinity.valid.join(', ')}`\n );\n }\n }\n\n return errors;\n}\n\n/**\n * Get all known components in the affinity matrix\n */\nexport function getAllKnownComponents(): string[] {\n return Object.keys(ACTION_AFFINITY);\n}\n\n/**\n * Get all components by category\n */\nexport function getComponentsByCategory(): Record<string, string[]> {\n return {\n display: ['entity-table', 'entity-list', 'entity-cards', 'card-grid'],\n header: ['page-header'],\n form: ['form', 'form-section', 'form-actions'],\n detail: ['detail-panel', 'entity-detail'],\n container: ['modal', 'modal-container', 'drawer'],\n navigation: ['tabs', 'tab-bar', 'wizard-navigation', 'wizard-progress'],\n filter: ['filter-group', 'search-bar', 'search-input'],\n pagination: ['pagination'],\n confirmation: ['confirm-dialog'],\n state: ['empty-state', 'loading-state'],\n dashboard: ['stats'],\n game: [\n 'game-canvas',\n 'game-hud',\n 'game-controls',\n 'game-menu',\n 'game-pause-overlay',\n 'game-over-screen',\n ],\n };\n}\n","/**\n * UI Interaction Behaviors\n *\n * Standard behaviors for common UI interaction patterns.\n * These use the Trait architecture with stateMachine.\n *\n * IMPORTANT: These are GENERATION TEMPLATES for LLMs.\n * They must use correct syntax:\n * - render-ui (not render)\n * - Explicit from states (not '*')\n * - Valid pattern types (form-section, entity-detail, etc.)\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/List - Entity List Management\n// ============================================================================\n\n/**\n * std/List - The core behavior for displaying and interacting with entity collections.\n *\n * States: Browsing â Creating/Viewing/Editing/Deleting\n * Implements complete CRUD operations with modal/drawer UI patterns.\n */\nexport const LIST_BEHAVIOR: StandardBehavior = {\n name: 'std/List',\n category: 'ui-interaction',\n description: 'Entity list management with CRUD operations',\n suggestedFor: [\n 'Entity listing pages',\n 'Admin panels',\n 'Data management screens',\n 'Table views with inline actions',\n ],\n\n dataEntities: [\n {\n name: 'ListState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'selectedId', type: 'string', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Browsing',\n states: [\n { name: 'Browsing', isInitial: true },\n { name: 'Creating' },\n { name: 'Viewing' },\n { name: 'Editing' },\n { name: 'Deleting' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'CREATE' },\n { key: 'VIEW' },\n { key: 'EDIT' },\n { key: 'DELETE' },\n { key: 'CONFIRM_DELETE' },\n { key: 'CANCEL' },\n { key: 'SAVE' },\n ],\n transitions: [\n // INIT: Self-loop on Browsing that renders the list UI\n {\n from: 'Browsing',\n to: 'Browsing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'page-header',\n title: '@config.title',\n actions: [{ label: 'Create', event: 'CREATE', variant: 'primary' }],\n }],\n ['render-ui', 'main', {\n type: 'entity-table',\n entity: '@config.entity',\n columns: '@config.columns',\n itemActions: [\n { label: 'View', event: 'VIEW', placement: 'row' },\n { label: 'Edit', event: 'EDIT', placement: 'row' },\n { label: 'Delete', event: 'DELETE', variant: 'danger', placement: 'row' },\n ],\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Creating',\n event: 'CREATE',\n effects: [\n ['render-ui', 'modal', {\n type: 'form-section',\n entity: '@config.entity',\n mode: 'create',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Viewing',\n event: 'VIEW',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'drawer', {\n type: 'entity-detail',\n entity: '@config.entity',\n id: '@payload.id',\n actions: [\n { label: 'Edit', event: 'EDIT' },\n { label: 'Close', event: 'CANCEL' },\n ],\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'drawer', {\n type: 'form-section',\n entity: '@config.entity',\n id: '@payload.id',\n mode: 'edit',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Viewing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['render-ui', 'drawer', {\n type: 'form-section',\n entity: '@config.entity',\n id: '@entity.selectedId',\n mode: 'edit',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Deleting',\n event: 'DELETE',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'modal', {\n type: 'confirmation',\n title: 'Delete Confirmation',\n message: 'Are you sure you want to delete this item?',\n confirmLabel: 'Delete',\n confirmVariant: 'danger',\n }],\n ],\n },\n {\n from: 'Creating',\n to: 'Browsing',\n event: 'SAVE',\n effects: [\n ['persist', 'create', '@config.entity', '@payload.data'],\n ['render-ui', 'modal', null],\n ['notify', { type: 'success', message: 'Created successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Editing',\n to: 'Browsing',\n event: 'SAVE',\n effects: [\n ['persist', 'update', '@config.entity', '@payload.data'],\n ['render-ui', 'drawer', null],\n ['notify', { type: 'success', message: 'Updated successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Deleting',\n to: 'Browsing',\n event: 'CONFIRM_DELETE',\n effects: [\n ['persist', 'delete', '@config.entity', '@entity.selectedId'],\n ['render-ui', 'modal', null],\n ['notify', { type: 'success', message: 'Deleted successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Creating',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n {\n from: 'Viewing',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'drawer', null],\n ],\n },\n {\n from: 'Editing',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'drawer', null],\n ],\n },\n {\n from: 'Deleting',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type to list' },\n { name: 'columns', type: 'array', description: 'Fields to display as columns' },\n ],\n optional: [\n { name: 'title', type: 'string', description: 'Page title', default: '' },\n { name: 'display', type: 'string', description: 'Display mode', default: 'table', enum: ['table', 'cards', 'list'] },\n { name: 'actions', type: 'action[]', description: 'Available actions', default: ['view', 'edit', 'delete'] },\n { name: 'createInModal', type: 'boolean', description: 'Show create form in modal', default: true },\n { name: 'editInDrawer', type: 'boolean', description: 'Show edit form in drawer', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Detail - Single Entity View\n// ============================================================================\n\nexport const DETAIL_BEHAVIOR: StandardBehavior = {\n name: 'std/Detail',\n category: 'ui-interaction',\n description: 'Single entity view with edit/delete capabilities',\n suggestedFor: [\n 'Entity detail pages',\n 'Profile views',\n 'Settings pages',\n 'Single record screens',\n ],\n\n dataEntities: [\n {\n name: 'DetailState',\n runtime: true,\n fields: [\n { name: 'entityId', type: 'string', default: null },\n { name: 'isLoading', type: 'boolean', default: false },\n { name: 'hasChanges', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Viewing',\n states: [\n { name: 'Viewing', isInitial: true },\n { name: 'Editing' },\n { name: 'Deleting' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'EDIT' },\n { key: 'SAVE' },\n { key: 'CANCEL' },\n { key: 'DELETE' },\n { key: 'CONFIRM_DELETE' },\n ],\n transitions: [\n // INIT: Self-loop on Viewing\n {\n from: 'Viewing',\n to: 'Viewing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'page-header',\n title: '@entity.name',\n actions: [\n { label: 'Edit', event: 'EDIT' },\n { label: 'Delete', event: 'DELETE', variant: 'danger' },\n ],\n }],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n fieldNames: '@config.fields',\n }],\n ],\n },\n {\n from: 'Viewing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n mode: 'edit',\n fields: '@config.fields',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Editing',\n to: 'Viewing',\n event: 'SAVE',\n effects: [\n ['persist', 'update', '@config.entity', '@payload.data'],\n ['notify', { type: 'success', message: 'Updated successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Editing',\n to: 'Viewing',\n event: 'CANCEL',\n effects: [\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Viewing',\n to: 'Deleting',\n event: 'DELETE',\n effects: [\n ['render-ui', 'modal', {\n type: 'confirmation',\n title: 'Delete Confirmation',\n message: 'Are you sure you want to delete this item?',\n }],\n ],\n },\n {\n from: 'Deleting',\n to: 'Viewing',\n event: 'CONFIRM_DELETE',\n effects: [\n ['persist', 'delete', '@config.entity', '@entity.id'],\n ['navigate', '@config.returnUrl'],\n ],\n },\n {\n from: 'Deleting',\n to: 'Viewing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type' },\n { name: 'fields', type: 'array', description: 'Fields to display' },\n ],\n optional: [\n { name: 'layout', type: 'string', description: 'Layout mode', default: 'two-column', enum: ['single-column', 'two-column', 'grid'] },\n { name: 'allowEdit', type: 'boolean', description: 'Allow editing', default: true },\n { name: 'allowDelete', type: 'boolean', description: 'Allow deletion', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Form - Form State Management\n// ============================================================================\n\nexport const FORM_BEHAVIOR: StandardBehavior = {\n name: 'std/Form',\n category: 'ui-interaction',\n description: 'Form state management with validation and submission',\n suggestedFor: [\n 'Create/edit forms',\n 'Settings forms',\n 'Multi-field input',\n 'Validated data entry',\n ],\n\n dataEntities: [\n {\n name: 'FormState',\n runtime: true,\n fields: [\n { name: 'values', type: 'object', default: {} },\n { name: 'errors', type: 'object', default: {} },\n { name: 'touched', type: 'object', default: {} },\n { name: 'isDirty', type: 'boolean', default: false },\n { name: 'isSubmitting', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Editing' },\n { name: 'Validating' },\n { name: 'Submitting' },\n { name: 'Success' },\n { name: 'Error' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'FIELD_CHANGE' },\n { key: 'FIELD_BLUR' },\n { key: 'SUBMIT' },\n { key: 'VALIDATION_PASSED' },\n { key: 'VALIDATION_FAILED' },\n { key: 'SUBMIT_SUCCESS' },\n { key: 'SUBMIT_ERROR' },\n { key: 'RESET' },\n ],\n transitions: [\n // INIT: Self-loop on Idle â Editing\n {\n from: 'Idle',\n to: 'Editing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.fields',\n values: '@entity.values',\n errors: '@entity.errors',\n submitEvent: 'SUBMIT',\n cancelEvent: '@config.cancelEvent',\n }],\n ],\n },\n {\n from: 'Editing',\n to: 'Editing',\n event: 'FIELD_CHANGE',\n effects: [\n ['set', '@entity.values', ['object/set', '@entity.values', '@payload.field', '@payload.value']],\n ['set', '@entity.isDirty', true],\n ],\n },\n {\n from: 'Editing',\n to: 'Editing',\n event: 'FIELD_BLUR',\n effects: [\n ['set', '@entity.touched', ['object/set', '@entity.touched', '@payload.field', true]],\n ],\n },\n {\n from: 'Editing',\n to: 'Validating',\n event: 'SUBMIT',\n effects: [\n ['let', [['result', ['validate/check', '@entity.values', '@config.validation']]],\n ['if', '@result.valid',\n ['emit', 'VALIDATION_PASSED'],\n ['do',\n ['set', '@entity.errors', '@result.errors'],\n ['emit', 'VALIDATION_FAILED']]]],\n ],\n },\n {\n from: 'Validating',\n to: 'Submitting',\n event: 'VALIDATION_PASSED',\n effects: [\n ['set', '@entity.isSubmitting', true],\n ['if', ['=', '@config.mode', 'create'],\n ['persist', 'create', '@config.entity', '@entity.values'],\n ['persist', 'update', '@config.entity', '@entity.values']],\n ],\n },\n {\n from: 'Validating',\n to: 'Editing',\n event: 'VALIDATION_FAILED',\n effects: [\n ['notify', { type: 'error', message: 'Please fix the validation errors' }],\n ],\n },\n {\n from: 'Submitting',\n to: 'Success',\n event: 'SUBMIT_SUCCESS',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['notify', { type: 'success', message: 'Saved successfully' }],\n ['emit', '@config.submitEvent', { data: '@entity.values' }],\n ],\n },\n {\n from: 'Submitting',\n to: 'Error',\n event: 'SUBMIT_ERROR',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['set', '@entity.errors', { _form: '@payload.error' }],\n ['notify', { type: 'error', message: '@payload.error' }],\n ],\n },\n {\n from: 'Editing',\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.values', {}],\n ['set', '@entity.errors', {}],\n ['set', '@entity.touched', {}],\n ['set', '@entity.isDirty', false],\n ],\n },\n {\n from: 'Error',\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.values', {}],\n ['set', '@entity.errors', {}],\n ['set', '@entity.touched', {}],\n ['set', '@entity.isDirty', false],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type' },\n { name: 'fields', type: 'array', description: 'Form fields' },\n ],\n optional: [\n { name: 'mode', type: 'string', description: 'Form mode', default: 'create', enum: ['create', 'edit'] },\n { name: 'validation', type: 'object', description: 'Validation rules', default: {} },\n { name: 'submitEvent', type: 'event', description: 'Event to emit on successful submit', default: 'SAVE' },\n { name: 'cancelEvent', type: 'event', description: 'Event to emit on cancel', default: 'CANCEL' },\n ],\n },\n};\n\n// ============================================================================\n// std/Modal - Modal Dialog\n// ============================================================================\n\nexport const MODAL_BEHAVIOR: StandardBehavior = {\n name: 'std/Modal',\n category: 'ui-interaction',\n description: 'Modal dialog with open/close state management',\n suggestedFor: [\n 'Confirmation dialogs',\n 'Create forms',\n 'Detail views',\n 'Any overlay content',\n ],\n\n dataEntities: [\n {\n name: 'ModalState',\n runtime: true,\n fields: [\n { name: 'content', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Closed',\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n ],\n events: [\n { key: 'OPEN' },\n { key: 'CLOSE' },\n { key: 'CONFIRM' },\n ],\n transitions: [\n {\n from: 'Closed',\n to: 'Open',\n event: 'OPEN',\n effects: [\n ['set', '@entity.content', '@payload.content'],\n ['render-ui', 'modal', {\n type: '@payload.type',\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CLOSE',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CONFIRM',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'size', type: 'string', description: 'Modal size', default: 'md', enum: ['sm', 'md', 'lg', 'xl', 'full'] },\n { name: 'closeOnOverlay', type: 'boolean', description: 'Close on overlay click', default: true },\n { name: 'closeOnEscape', type: 'boolean', description: 'Close on escape key', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Drawer - Side Drawer Panel\n// ============================================================================\n\nexport const DRAWER_BEHAVIOR: StandardBehavior = {\n name: 'std/Drawer',\n category: 'ui-interaction',\n description: 'Side drawer panel for detail views and forms',\n suggestedFor: [\n 'Detail panels',\n 'Edit forms',\n 'Property panels',\n 'Side navigation',\n ],\n\n dataEntities: [\n {\n name: 'DrawerState',\n runtime: true,\n fields: [\n { name: 'content', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Closed',\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n ],\n events: [\n { key: 'OPEN' },\n { key: 'CLOSE' },\n ],\n transitions: [\n {\n from: 'Closed',\n to: 'Open',\n event: 'OPEN',\n effects: [\n ['set', '@entity.content', '@payload.content'],\n ['render-ui', 'drawer', {\n type: '@payload.type',\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CLOSE',\n effects: [\n ['render-ui', 'drawer', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'position', type: 'string', description: 'Drawer position', default: 'right', enum: ['left', 'right'] },\n { name: 'size', type: 'string', description: 'Drawer size', default: 'md', enum: ['sm', 'md', 'lg'] },\n { name: 'overlay', type: 'boolean', description: 'Show overlay', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Tabs - Tabbed Navigation\n// ============================================================================\n\nexport const TABS_BEHAVIOR: StandardBehavior = {\n name: 'std/Tabs',\n category: 'ui-interaction',\n description: 'Tabbed navigation within a page',\n suggestedFor: [\n 'Multi-view pages',\n 'Settings with sections',\n 'Dashboard tabs',\n 'Profile sections',\n ],\n\n dataEntities: [\n {\n name: 'TabsState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'activeTab', type: 'string', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SELECT_TAB' },\n ],\n transitions: [\n // INIT: Self-loop on Active\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['set', '@entity.activeTab', '@config.defaultTab'],\n ['render-ui', 'main', {\n type: 'filter-group',\n filterType: 'tabs',\n tabs: '@config.tabs',\n active: '@entity.activeTab',\n onSelect: 'SELECT_TAB',\n }],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'SELECT_TAB',\n effects: [\n ['set', '@entity.activeTab', '@payload.tabId'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'tabs', type: 'array', description: 'Tab definitions with id, label, content' },\n ],\n optional: [\n { name: 'defaultTab', type: 'string', description: 'Default active tab ID' },\n ],\n },\n};\n\n// ============================================================================\n// std/Wizard - Multi-Step Flow\n// IMPORTANT: Each step is a STATE, not an index number\n// ============================================================================\n\nexport const WIZARD_BEHAVIOR: StandardBehavior = {\n name: 'std/Wizard',\n category: 'ui-interaction',\n description: 'Multi-step wizard flow - each step is a state',\n suggestedFor: [\n 'Onboarding flows',\n 'Multi-step forms',\n 'Setup wizards',\n 'Checkout flows',\n ],\n\n dataEntities: [\n {\n name: 'WizardState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'stepData', type: 'object', default: {} },\n ],\n },\n ],\n\n // IMPORTANT: Each wizard step is a STATE, not a number index\n // This is the correct pattern for wizards\n stateMachine: {\n initial: 'Step1',\n states: [\n { name: 'Step1', isInitial: true },\n { name: 'Step2' },\n { name: 'Step3' },\n { name: 'Complete' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'NEXT' },\n { key: 'PREV' },\n { key: 'COMPLETE' },\n ],\n transitions: [\n // INIT on Step1: Self-loop that renders step 1\n {\n from: 'Step1',\n to: 'Step1',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 0,\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.step1Fields',\n submitEvent: 'NEXT',\n }],\n ],\n },\n // Step1 â Step2\n {\n from: 'Step1',\n to: 'Step2',\n event: 'NEXT',\n effects: [\n ['set', '@entity.stepData.step1', '@payload'],\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 1,\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.step2Fields',\n submitEvent: 'NEXT',\n cancelEvent: 'PREV',\n }],\n ],\n },\n // Step2 â Step1 (back)\n {\n from: 'Step2',\n to: 'Step1',\n event: 'PREV',\n effects: [\n ['emit', 'INIT'],\n ],\n },\n // Step2 â Step3\n {\n from: 'Step2',\n to: 'Step3',\n event: 'NEXT',\n effects: [\n ['set', '@entity.stepData.step2', '@payload'],\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 2,\n }],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n fieldNames: ['step1', 'step2'],\n title: 'Review',\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n submitLabel: 'Complete',\n cancelLabel: 'Back',\n submitEvent: 'COMPLETE',\n cancelEvent: 'PREV',\n }],\n ],\n },\n // Step3 â Step2 (back)\n {\n from: 'Step3',\n to: 'Step2',\n event: 'PREV',\n effects: [\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 1,\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.step2Fields',\n submitEvent: 'NEXT',\n cancelEvent: 'PREV',\n }],\n ],\n },\n // Step3 â Complete\n {\n from: 'Step3',\n to: 'Complete',\n event: 'COMPLETE',\n effects: [\n ['persist', 'create', '@config.entity', '@entity.stepData'],\n ['notify', { type: 'success', message: 'Wizard completed!' }],\n ['navigate', '@config.completionUrl'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity to create' },\n { name: 'step1Fields', type: 'array', description: 'Fields for step 1' },\n { name: 'step2Fields', type: 'array', description: 'Fields for step 2' },\n ],\n optional: [\n { name: 'completionUrl', type: 'string', description: 'URL to navigate on completion', default: '/' },\n ],\n },\n};\n\n// ============================================================================\n// std/MasterDetail - List + Detail Layout\n// ============================================================================\n\nexport const MASTER_DETAIL_BEHAVIOR: StandardBehavior = {\n name: 'std/MasterDetail',\n category: 'ui-interaction',\n description: 'Master-detail layout with synchronized list and detail views',\n suggestedFor: [\n 'Email clients',\n 'File managers',\n 'Two-panel layouts',\n 'List-detail views',\n ],\n\n dataEntities: [\n {\n name: 'MasterDetailState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'selectedId', type: 'string', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'NoSelection',\n states: [\n { name: 'NoSelection', isInitial: true },\n { name: 'Selected' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SELECT' },\n { key: 'DESELECT' },\n ],\n transitions: [\n // INIT: Self-loop on NoSelection\n {\n from: 'NoSelection',\n to: 'NoSelection',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'master-detail',\n entity: '@config.entity',\n masterColumns: '@config.masterColumns',\n onSelect: 'SELECT',\n selected: '@entity.selectedId',\n }],\n ['render-ui', 'main', {\n type: 'empty-state',\n message: 'Select an item to view details',\n }],\n ],\n },\n {\n from: 'NoSelection',\n to: 'Selected',\n event: 'SELECT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n id: '@payload.id',\n fieldNames: '@config.detailFields',\n }],\n ],\n },\n {\n from: 'Selected',\n to: 'Selected',\n event: 'SELECT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n id: '@payload.id',\n fieldNames: '@config.detailFields',\n }],\n ],\n },\n {\n from: 'Selected',\n to: 'NoSelection',\n event: 'DESELECT',\n effects: [\n ['set', '@entity.selectedId', null],\n ['render-ui', 'main', {\n type: 'empty-state',\n message: 'Select an item to view details',\n }],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type' },\n { name: 'masterColumns', type: 'array', description: 'Columns for master list' },\n { name: 'detailFields', type: 'array', description: 'Fields for detail panel' },\n ],\n optional: [\n { name: 'masterWidth', type: 'string', description: 'Master panel width', default: '350px' },\n ],\n },\n};\n\n// ============================================================================\n// std/Filter - Filter Management\n// ============================================================================\n\nexport const FILTER_BEHAVIOR: StandardBehavior = {\n name: 'std/Filter',\n category: 'ui-interaction',\n description: 'Filter and search management for lists',\n suggestedFor: [\n 'Filtered lists',\n 'Search interfaces',\n 'Faceted navigation',\n 'Advanced filtering',\n ],\n\n dataEntities: [\n {\n name: 'FilterState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'filters', type: 'object', default: {} },\n { name: 'searchTerm', type: 'string', default: '' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Filtering' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SET_FILTER' },\n { key: 'CLEAR_FILTERS' },\n { key: 'SEARCH' },\n ],\n transitions: [\n // INIT: Self-loop\n {\n from: 'Idle',\n to: 'Idle',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'filter-group',\n filters: '@config.filters',\n values: '@entity.filters',\n onFilterChange: 'SET_FILTER',\n onClear: 'CLEAR_FILTERS',\n }],\n ],\n },\n {\n from: 'Idle',\n to: 'Filtering',\n event: 'SET_FILTER',\n effects: [\n ['set', '@entity.filters', ['object/set', '@entity.filters', '@payload.field', '@payload.value']],\n ['emit', 'FILTER_CHANGED', '@entity.filters'],\n ],\n },\n {\n from: 'Filtering',\n to: 'Idle',\n event: 'SET_FILTER',\n effects: [\n ['set', '@entity.filters', ['object/set', '@entity.filters', '@payload.field', '@payload.value']],\n ['emit', 'FILTER_CHANGED', '@entity.filters'],\n ],\n },\n {\n from: 'Filtering',\n to: 'Idle',\n event: 'CLEAR_FILTERS',\n effects: [\n ['set', '@entity.filters', {}],\n ['set', '@entity.searchTerm', ''],\n ['emit', 'FILTER_CHANGED', {}],\n ],\n },\n {\n from: 'Idle',\n to: 'Filtering',\n event: 'SEARCH',\n effects: [\n ['set', '@entity.searchTerm', '@payload.term'],\n ['emit', 'SEARCH_CHANGED', '@payload.term'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'filters', type: 'array', description: 'Filter definitions' },\n ],\n optional: [\n { name: 'searchable', type: 'boolean', description: 'Enable search', default: true },\n ],\n },\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const UI_INTERACTION_BEHAVIORS: StandardBehavior[] = [\n LIST_BEHAVIOR,\n DETAIL_BEHAVIOR,\n FORM_BEHAVIOR,\n MODAL_BEHAVIOR,\n DRAWER_BEHAVIOR,\n TABS_BEHAVIOR,\n WIZARD_BEHAVIOR,\n MASTER_DETAIL_BEHAVIOR,\n FILTER_BEHAVIOR,\n];\n","/**\n * Data Management Behaviors\n *\n * Standard behaviors for data operations like pagination, selection,\n * sorting, filtering, and search.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/Pagination - Page Navigation\n// ============================================================================\n\n/**\n * std/Pagination - Page navigation behavior for large data sets.\n */\nexport const PAGINATION_BEHAVIOR: StandardBehavior = {\n name: 'std/Pagination',\n category: 'data-management',\n description: 'Page-based navigation for large data sets',\n suggestedFor: [\n 'Large lists',\n 'Table pagination',\n 'Infinite scroll alternative',\n 'Data-heavy views',\n ],\n\n dataEntities: [\n {\n name: 'PaginationState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'page', type: 'number', default: 1 },\n { name: 'pageSize', type: 'number', default: 20 },\n { name: 'totalItems', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'NEXT_PAGE' },\n { key: 'PREV_PAGE' },\n { key: 'GO_TO_PAGE' },\n { key: 'SET_PAGE_SIZE' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.page', 1],\n ['set', '@entity.pageSize', '@config.defaultPageSize'],\n ],\n },\n {\n event: 'NEXT_PAGE',\n guard: ['<', '@entity.page', ['math/ceil', ['/', '@entity.totalItems', '@entity.pageSize']]],\n effects: [\n ['set', '@entity.page', ['+', '@entity.page', 1]],\n ],\n },\n {\n event: 'PREV_PAGE',\n guard: ['>', '@entity.page', 1],\n effects: [\n ['set', '@entity.page', ['-', '@entity.page', 1]],\n ],\n },\n {\n event: 'GO_TO_PAGE',\n guard: ['and',\n ['>=', '@payload.page', 1],\n ['<=', '@payload.page', ['math/ceil', ['/', '@entity.totalItems', '@entity.pageSize']]]],\n effects: [\n ['set', '@entity.page', '@payload.page'],\n ],\n },\n {\n event: 'SET_PAGE_SIZE',\n effects: [\n ['set', '@entity.pageSize', '@payload.size'],\n ['set', '@entity.page', 1],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'defaultPageSize', type: 'number', description: 'Default items per page', default: 20 },\n { name: 'pageSizeOptions', type: 'array', description: 'Available page sizes', default: [10, 20, 50, 100] },\n ],\n },\n};\n\n// ============================================================================\n// std/Selection - Single/Multi Selection\n// ============================================================================\n\nexport const SELECTION_BEHAVIOR: StandardBehavior = {\n name: 'std/Selection',\n category: 'data-management',\n description: 'Single or multi-selection management',\n suggestedFor: [\n 'Multi-select lists',\n 'Bulk operations',\n 'Item picking',\n 'Checkboxes in tables',\n ],\n\n dataEntities: [\n {\n name: 'SelectionState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'selected', type: 'array', default: [] },\n { name: 'lastSelected', type: 'string', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SELECT' },\n { key: 'DESELECT' },\n { key: 'TOGGLE' },\n { key: 'SELECT_ALL' },\n { key: 'CLEAR' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.selected', []],\n ['set', '@entity.lastSelected', null],\n ],\n },\n {\n event: 'SELECT',\n effects: [\n ['if', ['=', '@config.mode', 'single'],\n ['do',\n ['set', '@entity.selected', ['@payload.id']],\n ['set', '@entity.lastSelected', '@payload.id']],\n ['if', ['or',\n ['not', '@config.maxSelection'],\n ['<', ['array/len', '@entity.selected'], '@config.maxSelection']],\n ['do',\n ['set', '@entity.selected', ['array/append', '@entity.selected', '@payload.id']],\n ['set', '@entity.lastSelected', '@payload.id']],\n ['notify', { type: 'warning', message: 'Maximum selection reached' }]]],\n ],\n },\n {\n event: 'DESELECT',\n effects: [\n ['set', '@entity.selected', ['array/filter', '@entity.selected', ['fn', 'id', ['!=', '@id', '@payload.id']]]],\n ],\n },\n {\n event: 'TOGGLE',\n effects: [\n ['if', ['array/includes', '@entity.selected', '@payload.id'],\n ['set', '@entity.selected', ['array/filter', '@entity.selected', ['fn', 'id', ['!=', '@id', '@payload.id']]]],\n ['if', ['or', ['=', '@config.mode', 'single'], ['or',\n ['not', '@config.maxSelection'],\n ['<', ['array/len', '@entity.selected'], '@config.maxSelection']]],\n ['set', '@entity.selected',\n ['if', ['=', '@config.mode', 'single'],\n ['@payload.id'],\n ['array/append', '@entity.selected', '@payload.id']]],\n ['notify', { type: 'warning', message: 'Maximum selection reached' }]]],\n ],\n },\n {\n event: 'SELECT_ALL',\n guard: ['=', '@config.mode', 'multi'],\n effects: [\n ['set', '@entity.selected', '@payload.ids'],\n ],\n },\n {\n event: 'CLEAR',\n effects: [\n ['set', '@entity.selected', []],\n ['set', '@entity.lastSelected', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'mode', type: 'string', description: 'Selection mode', default: 'single', enum: ['single', 'multi'] },\n { name: 'maxSelection', type: 'number', description: 'Maximum selections (multi mode)', default: null },\n ],\n },\n};\n\n// ============================================================================\n// std/Sort - Sorting\n// ============================================================================\n\nexport const SORT_BEHAVIOR: StandardBehavior = {\n name: 'std/Sort',\n category: 'data-management',\n description: 'Sorting by field with direction toggle',\n suggestedFor: [\n 'Sortable tables',\n 'List ordering',\n 'Column headers',\n ],\n\n dataEntities: [\n {\n name: 'SortState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'sortField', type: 'string', default: null },\n { name: 'sortDirection', type: 'string', default: 'asc' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SORT' },\n { key: 'TOGGLE_DIRECTION' },\n { key: 'CLEAR_SORT' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.sortField', '@config.defaultField'],\n ['set', '@entity.sortDirection', '@config.defaultDirection'],\n ],\n },\n {\n event: 'SORT',\n effects: [\n ['if', ['=', '@entity.sortField', '@payload.field'],\n ['set', '@entity.sortDirection', ['if', ['=', '@entity.sortDirection', 'asc'], 'desc', 'asc']],\n ['do',\n ['set', '@entity.sortField', '@payload.field'],\n ['set', '@entity.sortDirection', 'asc']]],\n ],\n },\n {\n event: 'TOGGLE_DIRECTION',\n guard: ['!=', '@entity.sortField', null],\n effects: [\n ['set', '@entity.sortDirection', ['if', ['=', '@entity.sortDirection', 'asc'], 'desc', 'asc']],\n ],\n },\n {\n event: 'CLEAR_SORT',\n effects: [\n ['set', '@entity.sortField', null],\n ['set', '@entity.sortDirection', 'asc'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'defaultField', type: 'string', description: 'Default sort field' },\n { name: 'defaultDirection', type: 'string', description: 'Default direction', default: 'asc', enum: ['asc', 'desc'] },\n ],\n },\n};\n\n// ============================================================================\n// std/Filter - Query Singleton Pattern for Filtering\n// ============================================================================\n\n/**\n * std/Filter - Query Singleton pattern for explicit filtering.\n *\n * This behavior uses a singleton entity to hold filter state, making filtering\n * explicit in the schema rather than implicit in component behavior.\n *\n * The query singleton is referenced by patterns via the `query` prop:\n * ```json\n * { \"type\": \"entity-table\", \"entity\": \"Task\", \"query\": \"@TaskQuery\" }\n * ```\n */\nexport const FILTER_BEHAVIOR: StandardBehavior = {\n name: 'std/Filter',\n category: 'data-management',\n description: 'Query Singleton pattern for explicit filtering - use with entity-table query prop',\n suggestedFor: [\n 'Filterable lists',\n 'Advanced search',\n 'Filter panels',\n 'Faceted search',\n 'Entity tables with filters',\n ],\n\n dataEntities: [\n {\n name: 'QueryState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'status', type: 'string', default: null, description: 'Filter by status field' },\n { name: 'priority', type: 'string', default: null, description: 'Filter by priority field' },\n { name: 'search', type: 'string', default: '', description: 'Search term' },\n { name: 'sortBy', type: 'string', default: 'createdAt', description: 'Sort field' },\n { name: 'sortOrder', type: 'string', default: 'desc', description: 'Sort direction: asc or desc' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'FILTER' },\n { key: 'SEARCH' },\n { key: 'SORT' },\n { key: 'CLEAR_FILTERS' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n // Render filter UI with query reference\n ['render-ui', 'sidebar', {\n type: 'filter-group',\n query: '@QueryState',\n filters: '@config.filters',\n }],\n // Render entity table with query reference\n ['render-ui', 'main', {\n type: 'entity-table',\n entity: '@config.entity',\n query: '@QueryState',\n columns: '@config.columns',\n }],\n ],\n },\n {\n event: 'FILTER',\n effects: [\n ['set', '@QueryState.status', '@payload.status'],\n ['set', '@QueryState.priority', '@payload.priority'],\n ],\n },\n {\n event: 'SEARCH',\n effects: [\n ['set', '@QueryState.search', '@payload.searchTerm'],\n ],\n },\n {\n event: 'SORT',\n effects: [\n ['set', '@QueryState.sortBy', '@payload.field'],\n ['set', '@QueryState.sortOrder', '@payload.order'],\n ],\n },\n {\n event: 'CLEAR_FILTERS',\n effects: [\n ['set', '@QueryState.status', null],\n ['set', '@QueryState.priority', null],\n ['set', '@QueryState.search', ''],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'string', description: 'Entity to filter' },\n ],\n optional: [\n { name: 'filters', type: 'array', description: 'Filter field definitions', default: [] },\n { name: 'columns', type: 'array', description: 'Table columns to display', default: [] },\n ],\n },\n};\n\n// ============================================================================\n// std/Search - Search with Debounce\n// ============================================================================\n\n/**\n * std/Search - Search with debounce.\n *\n * Uses a singleton to hold search state. Can be combined with std/Filter\n * for full query singleton functionality, or used standalone.\n */\nexport const SEARCH_BEHAVIOR: StandardBehavior = {\n name: 'std/Search',\n category: 'data-management',\n description: 'Search with debounce - updates QueryState.search field',\n suggestedFor: [\n 'Search inputs',\n 'Quick filters',\n 'Global search',\n 'Type-ahead',\n ],\n\n dataEntities: [\n {\n name: 'SearchState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'search', type: 'string', default: '' },\n { name: 'isSearching', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Searching' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SEARCH' },\n { key: 'CLEAR_SEARCH' },\n { key: 'SEARCH_COMPLETE' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.search', ''],\n ['set', '@entity.isSearching', false],\n ['render-ui', 'main', {\n type: 'search-bar',\n query: '@SearchState',\n placeholder: '@config.placeholder',\n }],\n ],\n },\n {\n from: 'Idle',\n to: 'Searching',\n event: 'SEARCH',\n guard: ['>=', ['str/len', '@payload.term'], '@config.minLength'],\n effects: [\n ['set', '@entity.search', '@payload.term'],\n ['set', '@entity.isSearching', true],\n ['async/debounce', '@config.debounceMs', ['emit', 'SEARCH_COMPLETE']],\n ],\n },\n {\n from: 'Idle',\n event: 'SEARCH',\n guard: ['<', ['str/len', '@payload.term'], '@config.minLength'],\n effects: [\n ['set', '@entity.search', '@payload.term'],\n ],\n },\n {\n from: 'Searching',\n to: 'Idle',\n event: 'SEARCH_COMPLETE',\n effects: [\n ['set', '@entity.isSearching', false],\n ],\n },\n {\n event: 'CLEAR_SEARCH',\n effects: [\n ['set', '@entity.search', ''],\n ['set', '@entity.isSearching', false],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'debounceMs', type: 'number', description: 'Debounce delay in ms', default: 300 },\n { name: 'minLength', type: 'number', description: 'Minimum search length', default: 1 },\n { name: 'placeholder', type: 'string', description: 'Input placeholder', default: 'Search...' },\n ],\n },\n};\n\n// ============================================================================\n// Export All Data Management Behaviors\n// ============================================================================\n\nexport const DATA_MANAGEMENT_BEHAVIORS: StandardBehavior[] = [\n PAGINATION_BEHAVIOR,\n SELECTION_BEHAVIOR,\n SORT_BEHAVIOR,\n FILTER_BEHAVIOR,\n SEARCH_BEHAVIOR,\n];\n","/**\n * Async Behaviors\n *\n * Standard behaviors for asynchronous operations like loading,\n * fetching, submission, retry, and polling.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/Loading - Loading State Management\n// ============================================================================\n\nexport const LOADING_BEHAVIOR: StandardBehavior = {\n name: 'std/Loading',\n category: 'async',\n description: 'Loading state management with success/error handling',\n suggestedFor: [\n 'Async data loading',\n 'API calls',\n 'Resource fetching',\n 'Initial page load',\n ],\n\n dataEntities: [\n {\n name: 'LoadingState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'isLoading', type: 'boolean', default: false },\n { name: 'error', type: 'object', default: null },\n { name: 'data', type: 'object', default: null },\n { name: 'startTime', type: 'number', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Loading' },\n { name: 'Success' },\n { name: 'Error' },\n ],\n events: [\n { key: 'START' },\n { key: 'SUCCESS' },\n { key: 'ERROR' },\n { key: 'RETRY' },\n { key: 'RESET' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Loading',\n event: 'START',\n effects: [\n ['set', '@entity.isLoading', true],\n ['set', '@entity.error', null],\n ['set', '@entity.startTime', ['time/now']],\n ['render', 'content', 'loading-state', {}],\n ],\n },\n {\n from: 'Loading',\n to: 'Success',\n event: 'SUCCESS',\n effects: [\n ['set', '@entity.isLoading', false],\n ['set', '@entity.data', '@payload.data'],\n ],\n },\n {\n from: 'Loading',\n to: 'Error',\n event: 'ERROR',\n effects: [\n ['set', '@entity.isLoading', false],\n ['set', '@entity.error', '@payload.error'],\n ['render', 'content', 'error-state', {\n error: '@entity.error',\n onRetry: 'RETRY',\n }],\n ],\n },\n {\n from: 'Error',\n to: 'Loading',\n event: 'RETRY',\n effects: [\n ['set', '@entity.isLoading', true],\n ['set', '@entity.error', null],\n ['set', '@entity.startTime', ['time/now']],\n ['render', 'content', 'loading-state', {}],\n ],\n },\n {\n from: ['Success', 'Error'],\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.isLoading', false],\n ['set', '@entity.error', null],\n ['set', '@entity.data', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'showLoadingAfterMs', type: 'number', description: 'Delay before showing loading', default: 200 },\n { name: 'minLoadingMs', type: 'number', description: 'Minimum loading display time', default: 500 },\n ],\n },\n};\n\n// ============================================================================\n// std/Fetch - Data Fetching\n// ============================================================================\n\nexport const FETCH_BEHAVIOR: StandardBehavior = {\n name: 'std/Fetch',\n category: 'async',\n description: 'Data fetching with caching and refresh capabilities',\n suggestedFor: [\n 'API data fetching',\n 'Entity loading',\n 'Remote data',\n 'Cached queries',\n ],\n\n dataEntities: [\n {\n name: 'FetchState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'data', type: 'object', default: null },\n { name: 'error', type: 'object', default: null },\n { name: 'isFetching', type: 'boolean', default: false },\n { name: 'lastFetchedAt', type: 'number', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Fetching' },\n { name: 'Stale' },\n { name: 'Fresh' },\n { name: 'Error' },\n ],\n events: [\n { key: 'FETCH' },\n { key: 'FETCH_SUCCESS' },\n { key: 'FETCH_ERROR' },\n { key: 'REFRESH' },\n { key: 'INVALIDATE' },\n ],\n transitions: [\n {\n from: ['Idle', 'Stale'],\n to: 'Fetching',\n event: 'FETCH',\n effects: [\n ['set', '@entity.isFetching', true],\n ['set', '@entity.error', null],\n ],\n },\n {\n from: 'Fetching',\n to: 'Fresh',\n event: 'FETCH_SUCCESS',\n effects: [\n ['set', '@entity.isFetching', false],\n ['set', '@entity.data', '@payload.data'],\n ['set', '@entity.lastFetchedAt', ['time/now']],\n ],\n },\n {\n from: 'Fetching',\n to: 'Error',\n event: 'FETCH_ERROR',\n effects: [\n ['set', '@entity.isFetching', false],\n ['set', '@entity.error', '@payload.error'],\n ],\n },\n {\n from: 'Fresh',\n to: 'Stale',\n event: 'INVALIDATE',\n effects: [\n ['set', '@entity.lastFetchedAt', null],\n ],\n },\n {\n from: ['Fresh', 'Stale', 'Error'],\n to: 'Fetching',\n event: 'REFRESH',\n effects: [\n ['set', '@entity.isFetching', true],\n ['set', '@entity.error', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type to fetch' },\n ],\n optional: [\n { name: 'staleTimeMs', type: 'number', description: 'Time until data is stale', default: 60000 },\n { name: 'cacheKey', type: 'string', description: 'Cache key for deduplication' },\n ],\n },\n};\n\n// ============================================================================\n// std/Submit - Form Submission\n// ============================================================================\n\nexport const SUBMIT_BEHAVIOR: StandardBehavior = {\n name: 'std/Submit',\n category: 'async',\n description: 'Async submission with retry capabilities',\n suggestedFor: [\n 'Form submission',\n 'Data saving',\n 'API mutations',\n 'Actions with confirmation',\n ],\n\n dataEntities: [\n {\n name: 'SubmitState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'isSubmitting', type: 'boolean', default: false },\n { name: 'error', type: 'object', default: null },\n { name: 'lastSubmittedData', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Submitting' },\n { name: 'Success' },\n { name: 'Error' },\n ],\n events: [\n { key: 'SUBMIT' },\n { key: 'SUBMIT_SUCCESS' },\n { key: 'SUBMIT_ERROR' },\n { key: 'RETRY' },\n { key: 'RESET' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Submitting',\n event: 'SUBMIT',\n effects: [\n ['set', '@entity.isSubmitting', true],\n ['set', '@entity.error', null],\n ['set', '@entity.lastSubmittedData', '@payload.data'],\n ],\n },\n {\n from: 'Submitting',\n to: 'Success',\n event: 'SUBMIT_SUCCESS',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['notify', { type: 'success', message: '@config.successMessage' }],\n ['when', '@config.resetOnSuccess', ['emit', 'RESET']],\n ],\n },\n {\n from: 'Submitting',\n to: 'Error',\n event: 'SUBMIT_ERROR',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['set', '@entity.error', '@payload.error'],\n ['notify', { type: 'error', message: '@config.errorMessage' }],\n ],\n },\n {\n from: 'Error',\n to: 'Submitting',\n event: 'RETRY',\n effects: [\n ['set', '@entity.isSubmitting', true],\n ['set', '@entity.error', null],\n ],\n },\n {\n from: ['Success', 'Error'],\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['set', '@entity.error', null],\n ['set', '@entity.lastSubmittedData', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'successMessage', type: 'string', description: 'Success notification', default: 'Saved successfully' },\n { name: 'errorMessage', type: 'string', description: 'Error notification', default: 'Failed to save' },\n { name: 'resetOnSuccess', type: 'boolean', description: 'Reset to idle on success', default: false },\n ],\n },\n};\n\n// ============================================================================\n// std/Retry - Automatic Retry\n// ============================================================================\n\nexport const RETRY_BEHAVIOR: StandardBehavior = {\n name: 'std/Retry',\n category: 'async',\n description: 'Automatic retry with exponential backoff',\n suggestedFor: [\n 'Network requests',\n 'Unreliable operations',\n 'Transient failures',\n 'Recovery logic',\n ],\n\n dataEntities: [\n {\n name: 'RetryState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'attempt', type: 'number', default: 0 },\n { name: 'error', type: 'object', default: null },\n { name: 'nextRetryAt', type: 'number', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Attempting' },\n { name: 'Waiting' },\n { name: 'Success' },\n { name: 'Failed' },\n ],\n events: [\n { key: 'START' },\n { key: 'ATTEMPT_SUCCESS' },\n { key: 'ATTEMPT_ERROR' },\n { key: 'RETRY_TICK' },\n { key: 'GIVE_UP' },\n { key: 'RESET' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Attempting',\n event: 'START',\n effects: [\n ['set', '@entity.attempt', 1],\n ['set', '@entity.error', null],\n ],\n },\n {\n from: 'Attempting',\n to: 'Success',\n event: 'ATTEMPT_SUCCESS',\n effects: [],\n },\n {\n from: 'Attempting',\n to: 'Waiting',\n event: 'ATTEMPT_ERROR',\n guard: ['<', '@entity.attempt', '@config.maxAttempts'],\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['let', [['delay', ['math/min',\n ['*', '@config.initialDelayMs', ['math/pow', '@config.backoffMultiplier', '@entity.attempt']],\n '@config.maxDelayMs']]],\n ['set', '@entity.nextRetryAt', ['+', ['time/now'], '@delay']],\n ['async/delay', '@delay', ['emit', 'RETRY_TICK']]],\n ],\n },\n {\n from: 'Attempting',\n to: 'Failed',\n event: 'ATTEMPT_ERROR',\n guard: ['>=', '@entity.attempt', '@config.maxAttempts'],\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['notify', { type: 'error', message: 'All retry attempts failed' }],\n ],\n },\n {\n from: 'Waiting',\n to: 'Attempting',\n event: 'RETRY_TICK',\n effects: [\n ['set', '@entity.attempt', ['+', '@entity.attempt', 1]],\n ],\n },\n {\n from: 'Waiting',\n to: 'Failed',\n event: 'GIVE_UP',\n effects: [\n ['notify', { type: 'warning', message: 'Retry cancelled' }],\n ],\n },\n {\n from: ['Success', 'Failed'],\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.attempt', 0],\n ['set', '@entity.error', null],\n ['set', '@entity.nextRetryAt', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'maxAttempts', type: 'number', description: 'Maximum retry attempts', default: 3 },\n { name: 'initialDelayMs', type: 'number', description: 'Initial retry delay', default: 1000 },\n { name: 'maxDelayMs', type: 'number', description: 'Maximum retry delay', default: 30000 },\n { name: 'backoffMultiplier', type: 'number', description: 'Backoff multiplier', default: 2 },\n ],\n },\n};\n\n// ============================================================================\n// std/Poll - Periodic Polling\n// ============================================================================\n\nexport const POLL_BEHAVIOR: StandardBehavior = {\n name: 'std/Poll',\n category: 'async',\n description: 'Periodic polling with start/stop control',\n suggestedFor: [\n 'Real-time updates',\n 'Status checking',\n 'Live data',\n 'Notification polling',\n ],\n\n dataEntities: [\n {\n name: 'PollState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'isPolling', type: 'boolean', default: false },\n { name: 'pollCount', type: 'number', default: 0 },\n { name: 'lastPollAt', type: 'number', default: null },\n { name: 'error', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Stopped',\n states: [\n { name: 'Stopped', isInitial: true },\n { name: 'Polling' },\n { name: 'Paused' },\n ],\n events: [\n { key: 'START' },\n { key: 'STOP' },\n { key: 'PAUSE' },\n { key: 'RESUME' },\n { key: 'POLL_TICK' },\n { key: 'POLL_SUCCESS' },\n { key: 'POLL_ERROR' },\n ],\n transitions: [\n {\n from: 'Stopped',\n to: 'Polling',\n event: 'START',\n effects: [\n ['set', '@entity.isPolling', true],\n ['set', '@entity.pollCount', 0],\n ['async/interval', '@config.intervalMs', ['emit', 'POLL_TICK']],\n ],\n },\n {\n from: 'Polling',\n event: 'POLL_TICK',\n guard: ['or', ['=', '@config.maxPolls', null], ['<', '@entity.pollCount', '@config.maxPolls']],\n effects: [\n ['set', '@entity.lastPollAt', ['time/now']],\n ],\n },\n {\n from: 'Polling',\n event: 'POLL_SUCCESS',\n effects: [\n ['set', '@entity.pollCount', ['+', '@entity.pollCount', 1]],\n ['set', '@entity.error', null],\n ],\n },\n {\n from: 'Polling',\n event: 'POLL_ERROR',\n effects: [\n ['set', '@entity.error', '@payload.error'],\n ['when', '@config.stopOnError', ['emit', 'STOP']],\n ],\n },\n {\n from: 'Polling',\n to: 'Paused',\n event: 'PAUSE',\n effects: [\n ['set', '@entity.isPolling', false],\n ],\n },\n {\n from: 'Paused',\n to: 'Polling',\n event: 'RESUME',\n effects: [\n ['set', '@entity.isPolling', true],\n ['async/interval', '@config.intervalMs', ['emit', 'POLL_TICK']],\n ],\n },\n {\n from: ['Polling', 'Paused'],\n to: 'Stopped',\n event: 'STOP',\n effects: [\n ['set', '@entity.isPolling', false],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'intervalMs', type: 'number', description: 'Poll interval in ms', default: 5000 },\n { name: 'stopOnError', type: 'boolean', description: 'Stop polling on error', default: false },\n { name: 'maxPolls', type: 'number', description: 'Maximum poll count (null = infinite)', default: null },\n ],\n },\n};\n\n// ============================================================================\n// Export All Async Behaviors\n// ============================================================================\n\nexport const ASYNC_BEHAVIORS: StandardBehavior[] = [\n LOADING_BEHAVIOR,\n FETCH_BEHAVIOR,\n SUBMIT_BEHAVIOR,\n RETRY_BEHAVIOR,\n POLL_BEHAVIOR,\n];\n","/**\n * Feedback Behaviors\n *\n * Standard behaviors for user feedback including notifications,\n * confirmations, and undo functionality.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/Notification - Toast Notifications\n// ============================================================================\n\nexport const NOTIFICATION_BEHAVIOR: StandardBehavior = {\n name: 'std/Notification',\n category: 'feedback',\n description: 'Toast notification with auto-dismiss',\n suggestedFor: [\n 'Success messages',\n 'Error alerts',\n 'Status updates',\n 'User feedback',\n ],\n\n dataEntities: [\n {\n name: 'NotificationState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'notifications', type: 'array', default: [] },\n { name: 'currentId', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Hidden',\n states: [\n { name: 'Hidden', isInitial: true },\n { name: 'Visible' },\n { name: 'Dismissing' },\n ],\n events: [\n { key: 'SHOW' },\n { key: 'HIDE' },\n { key: 'DISMISS' },\n { key: 'AUTO_DISMISS' },\n ],\n transitions: [\n {\n from: '*',\n event: 'SHOW',\n effects: [\n ['let', [['id', ['+', '@entity.currentId', 1]]],\n ['do',\n ['set', '@entity.currentId', '@id'],\n ['set', '@entity.notifications',\n ['array/append', '@entity.notifications', {\n id: '@id',\n type: '@payload.type',\n message: '@payload.message',\n title: '@payload.title',\n }]],\n ['when', ['>', '@config.autoDismissMs', 0],\n ['async/delay', '@config.autoDismissMs', ['emit', 'AUTO_DISMISS', { id: '@id' }]]]]],\n ],\n },\n {\n event: 'DISMISS',\n effects: [\n ['set', '@entity.notifications',\n ['array/filter', '@entity.notifications', ['fn', 'n', ['!=', '@n.id', '@payload.id']]]],\n ],\n },\n {\n event: 'AUTO_DISMISS',\n effects: [\n ['set', '@entity.notifications',\n ['array/filter', '@entity.notifications', ['fn', 'n', ['!=', '@n.id', '@payload.id']]]],\n ],\n },\n {\n event: 'HIDE',\n effects: [\n ['set', '@entity.notifications', []],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'autoDismissMs', type: 'number', description: 'Auto dismiss delay (0 = no auto)', default: 5000 },\n { name: 'position', type: 'string', description: 'Toast position', default: 'top-right', enum: ['top-left', 'top-center', 'top-right', 'bottom-left', 'bottom-center', 'bottom-right'] },\n { name: 'maxVisible', type: 'number', description: 'Maximum visible notifications', default: 5 },\n ],\n },\n};\n\n// ============================================================================\n// std/Confirmation - Confirmation Dialog\n// ============================================================================\n\nexport const CONFIRMATION_BEHAVIOR: StandardBehavior = {\n name: 'std/Confirmation',\n category: 'feedback',\n description: 'Confirmation dialog with confirm/cancel actions',\n suggestedFor: [\n 'Delete confirmation',\n 'Destructive actions',\n 'Important decisions',\n 'Exit warnings',\n ],\n\n dataEntities: [\n {\n name: 'ConfirmationState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'title', type: 'string', default: '' },\n { name: 'message', type: 'string', default: '' },\n { name: 'pendingAction', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Closed',\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n ],\n events: [\n { key: 'REQUEST' },\n { key: 'CONFIRM' },\n { key: 'CANCEL' },\n ],\n transitions: [\n {\n from: 'Closed',\n to: 'Open',\n event: 'REQUEST',\n effects: [\n ['set', '@entity.title', '@payload.title'],\n ['set', '@entity.message', '@payload.message'],\n ['set', '@entity.pendingAction', '@payload.onConfirm'],\n ['render-ui', 'modal', {\n type: 'confirmation',\n title: '@entity.title',\n message: '@entity.message',\n confirmLabel: '@config.confirmLabel',\n cancelLabel: '@config.cancelLabel',\n confirmVariant: '@config.confirmVariant',\n }],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CONFIRM',\n effects: [\n ['render-ui', 'modal', null],\n ['when', '@entity.pendingAction', ['emit', '@entity.pendingAction.event', '@entity.pendingAction.payload']],\n ['set', '@entity.pendingAction', null],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ['set', '@entity.pendingAction', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'confirmLabel', type: 'string', description: 'Confirm button label', default: 'Confirm' },\n { name: 'cancelLabel', type: 'string', description: 'Cancel button label', default: 'Cancel' },\n { name: 'confirmVariant', type: 'string', description: 'Confirm button variant', default: 'primary', enum: ['primary', 'danger', 'warning'] },\n ],\n },\n};\n\n// ============================================================================\n// std/Undo - Undo Stack\n// ============================================================================\n\nexport const UNDO_BEHAVIOR: StandardBehavior = {\n name: 'std/Undo',\n category: 'feedback',\n description: 'Undo/redo stack for reversible actions',\n suggestedFor: [\n 'Document editing',\n 'Form changes',\n 'Canvas operations',\n 'Reversible actions',\n ],\n\n dataEntities: [\n {\n name: 'UndoState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'undoStack', type: 'array', default: [] },\n { name: 'redoStack', type: 'array', default: [] },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Ready',\n states: [\n { name: 'Ready', isInitial: true },\n ],\n events: [\n { key: 'PUSH' },\n { key: 'UNDO' },\n { key: 'REDO' },\n { key: 'CLEAR' },\n ],\n transitions: [\n {\n event: 'PUSH',\n effects: [\n ['set', '@entity.undoStack',\n ['array/slice',\n ['array/prepend', '@entity.undoStack', {\n action: '@payload.action',\n data: '@payload.data',\n reverseAction: '@payload.reverseAction',\n reverseData: '@payload.reverseData',\n description: '@payload.description',\n }],\n 0, '@config.maxHistory']],\n ['set', '@entity.redoStack', []],\n ['when', '@config.showToast',\n ['emit', 'NOTIFY', {\n type: 'info',\n message: ['str/concat', '@payload.description', ' - Click to undo'],\n action: { label: 'Undo', event: 'UNDO' },\n }]],\n ],\n },\n {\n event: 'UNDO',\n guard: ['>', ['array/len', '@entity.undoStack'], 0],\n effects: [\n ['let', [['action', ['array/first', '@entity.undoStack']]],\n ['do',\n ['set', '@entity.undoStack', ['array/slice', '@entity.undoStack', 1]],\n ['set', '@entity.redoStack', ['array/prepend', '@entity.redoStack', '@action']],\n ['emit', '@action.reverseAction', '@action.reverseData']]],\n ],\n },\n {\n event: 'REDO',\n guard: ['>', ['array/len', '@entity.redoStack'], 0],\n effects: [\n ['let', [['action', ['array/first', '@entity.redoStack']]],\n ['do',\n ['set', '@entity.redoStack', ['array/slice', '@entity.redoStack', 1]],\n ['set', '@entity.undoStack', ['array/prepend', '@entity.undoStack', '@action']],\n ['emit', '@action.action', '@action.data']]],\n ],\n },\n {\n event: 'CLEAR',\n effects: [\n ['set', '@entity.undoStack', []],\n ['set', '@entity.redoStack', []],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'maxHistory', type: 'number', description: 'Maximum undo history', default: 50 },\n { name: 'showToast', type: 'boolean', description: 'Show undo toast', default: true },\n { name: 'toastDurationMs', type: 'number', description: 'Toast display duration', default: 5000 },\n ],\n },\n};\n\n// ============================================================================\n// Export All Feedback Behaviors\n// ============================================================================\n\nexport const FEEDBACK_BEHAVIORS: StandardBehavior[] = [\n NOTIFICATION_BEHAVIOR,\n CONFIRMATION_BEHAVIOR,\n UNDO_BEHAVIOR,\n];\n","/**\n * Game Core Behaviors\n *\n * Foundation behaviors for game systems: loop, physics, input, collision.\n * These use the Trait architecture with stateMachine and ticks.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/GameLoop - Master Game Tick Coordination\n// ============================================================================\n\n/**\n * std/GameLoop - Coordinates game tick execution at 60fps.\n *\n * States: Running, Paused\n * Provides the master clock for all game systems.\n */\nexport const GAME_LOOP_BEHAVIOR: StandardBehavior = {\n name: 'std/GameLoop',\n category: 'game-core',\n description: 'Master game loop coordinator running at 60fps',\n suggestedFor: [\n 'All real-time games',\n 'Platformers',\n 'Action games',\n 'Endless runners',\n ],\n\n dataEntities: [\n {\n name: 'GameLoopState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'frameCount', type: 'number', default: 0 },\n { name: 'deltaTime', type: 'number', default: 16 },\n { name: 'elapsedTime', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Stopped',\n states: [\n { name: 'Stopped', isInitial: true },\n { name: 'Running' },\n { name: 'Paused' },\n ],\n events: [\n { key: 'START' },\n { key: 'STOP' },\n { key: 'PAUSE' },\n { key: 'RESUME' },\n { key: 'TICK' },\n ],\n transitions: [\n {\n from: 'Stopped',\n to: 'Running',\n event: 'START',\n effects: [\n ['set', '@entity.frameCount', 0],\n ['set', '@entity.elapsedTime', 0],\n ],\n },\n {\n from: 'Running',\n to: 'Paused',\n event: 'PAUSE',\n effects: [],\n },\n {\n from: 'Paused',\n to: 'Running',\n event: 'RESUME',\n effects: [],\n },\n {\n from: ['Running', 'Paused'],\n to: 'Stopped',\n event: 'STOP',\n effects: [],\n },\n ],\n },\n\n ticks: [\n {\n name: 'GameTick',\n interval: 'frame',\n guard: ['=', '@state', 'Running'],\n effects: [\n ['set', '@entity.frameCount', ['+', '@entity.frameCount', 1]],\n ['set', '@entity.elapsedTime', ['+', '@entity.elapsedTime', '@entity.deltaTime']],\n ['emit', 'GAME_TICK', { frame: '@entity.frameCount', delta: '@entity.deltaTime' }],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'targetFps', type: 'number', description: 'Target frames per second', default: 60 },\n { name: 'fixedTimestep', type: 'boolean', description: 'Use fixed timestep', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Physics2D - Gravity and Velocity\n// ============================================================================\n\n/**\n * std/Physics2D - 2D physics with gravity, velocity, and friction.\n *\n * Applied to entities that need physics simulation.\n */\nexport const PHYSICS_2D_BEHAVIOR: StandardBehavior = {\n name: 'std/Physics2D',\n category: 'game-core',\n description: '2D physics with gravity, velocity, and friction',\n suggestedFor: [\n 'Platformer characters',\n 'Falling objects',\n 'Projectiles',\n 'Any entity affected by gravity',\n ],\n\n requiredFields: [\n { name: 'x', type: 'number', description: 'Entity X position' },\n { name: 'y', type: 'number', description: 'Entity Y position' },\n ],\n\n dataEntities: [\n {\n name: 'Physics2DState',\n runtime: true,\n fields: [\n { name: 'vx', type: 'number', default: 0 },\n { name: 'vy', type: 'number', default: 0 },\n { name: 'isGrounded', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n { name: 'Frozen' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'APPLY_FORCE' },\n { key: 'GROUND_HIT' },\n { key: 'FREEZE' },\n { key: 'UNFREEZE' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.vx', 0],\n ['set', '@entity.vy', 0],\n ['set', '@entity.isGrounded', false],\n ],\n },\n {\n from: 'Active',\n event: 'APPLY_FORCE',\n effects: [\n ['set', '@entity.vx', ['+', '@entity.vx', '@payload.fx']],\n ['set', '@entity.vy', ['+', '@entity.vy', '@payload.fy']],\n ],\n },\n {\n from: 'Active',\n event: 'GROUND_HIT',\n effects: [\n ['set', '@entity.isGrounded', true],\n ['set', '@entity.vy', 0],\n ['set', '@entity.vx', ['*', '@entity.vx', '@config.friction']],\n ],\n },\n {\n from: 'Active',\n to: 'Frozen',\n event: 'FREEZE',\n effects: [],\n },\n {\n from: 'Frozen',\n to: 'Active',\n event: 'UNFREEZE',\n effects: [],\n },\n ],\n },\n\n ticks: [\n {\n name: 'ApplyGravity',\n interval: 'frame',\n guard: ['and', ['=', '@state', 'Active'], ['not', '@entity.isGrounded']],\n effects: [\n ['set', '@entity.vy', ['math/min', '@config.maxVelocityY', ['+', '@entity.vy', '@config.gravity']]],\n ],\n },\n {\n name: 'ApplyVelocity',\n interval: 'frame',\n guard: ['=', '@state', 'Active'],\n effects: [\n ['set', '@entity.vx', ['*', '@entity.vx', '@config.airResistance']],\n ['set', '@entity.x', ['+', '@entity.x', '@entity.vx']],\n ['set', '@entity.y', ['+', '@entity.y', '@entity.vy']],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'gravity', type: 'number', description: 'Gravity acceleration (pixels/frame²)', default: 0.5 },\n { name: 'maxVelocityY', type: 'number', description: 'Terminal velocity', default: 15 },\n { name: 'friction', type: 'number', description: 'Ground friction (0-1)', default: 0.8 },\n { name: 'airResistance', type: 'number', description: 'Air resistance (0-1)', default: 0.99 },\n ],\n },\n};\n\n// ============================================================================\n// std/Input - Unified Input State\n// ============================================================================\n\n/**\n * std/Input - Manages keyboard and touch input state.\n *\n * Singleton behavior that tracks all input state.\n */\nexport const INPUT_BEHAVIOR: StandardBehavior = {\n name: 'std/Input',\n category: 'game-core',\n description: 'Unified keyboard and touch input state management',\n suggestedFor: [\n 'All interactive games',\n 'Player controls',\n 'Menu navigation',\n ],\n\n dataEntities: [\n {\n name: 'InputState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'left', type: 'boolean', default: false },\n { name: 'right', type: 'boolean', default: false },\n { name: 'up', type: 'boolean', default: false },\n { name: 'down', type: 'boolean', default: false },\n { name: 'jump', type: 'boolean', default: false },\n { name: 'action', type: 'boolean', default: false },\n { name: 'pause', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Ready',\n states: [\n { name: 'Ready', isInitial: true },\n ],\n events: [\n { key: 'KEY_DOWN' },\n { key: 'KEY_UP' },\n { key: 'TOUCH_START' },\n { key: 'TOUCH_END' },\n { key: 'RESET' },\n ],\n transitions: [\n {\n event: 'KEY_DOWN',\n effects: [\n ['if', ['or', ['=', '@payload.key', 'ArrowLeft'], ['=', '@payload.key', 'a']],\n ['set', '@entity.left', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowRight'], ['=', '@payload.key', 'd']],\n ['set', '@entity.right', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowUp'], ['=', '@payload.key', 'w']],\n ['set', '@entity.up', true]],\n ['if', ['or', ['=', '@payload.key', 'ArrowDown'], ['=', '@payload.key', 's']],\n ['set', '@entity.down', true]],\n ['if', ['=', '@payload.key', ' '],\n ['set', '@entity.jump', true]],\n ['if', ['or', ['=', '@payload.key', 'Enter'], ['=', '@payload.key', 'e']],\n ['set', '@entity.action', true]],\n ['if', ['or', ['=', '@payload.key', 'Escape'], ['=', '@payload.key', 'p']],\n ['set', '@entity.pause', true]],\n ],\n },\n {\n event: 'KEY_UP',\n effects: [\n ['if', ['or', ['=', '@payload.key', 'ArrowLeft'], ['=', '@payload.key', 'a']],\n ['set', '@entity.left', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowRight'], ['=', '@payload.key', 'd']],\n ['set', '@entity.right', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowUp'], ['=', '@payload.key', 'w']],\n ['set', '@entity.up', false]],\n ['if', ['or', ['=', '@payload.key', 'ArrowDown'], ['=', '@payload.key', 's']],\n ['set', '@entity.down', false]],\n ['if', ['=', '@payload.key', ' '],\n ['set', '@entity.jump', false]],\n ['if', ['or', ['=', '@payload.key', 'Enter'], ['=', '@payload.key', 'e']],\n ['set', '@entity.action', false]],\n ['if', ['or', ['=', '@payload.key', 'Escape'], ['=', '@payload.key', 'p']],\n ['set', '@entity.pause', false]],\n ],\n },\n {\n event: 'RESET',\n effects: [\n ['set', '@entity.left', false],\n ['set', '@entity.right', false],\n ['set', '@entity.up', false],\n ['set', '@entity.down', false],\n ['set', '@entity.jump', false],\n ['set', '@entity.action', false],\n ['set', '@entity.pause', false],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'keyMap', type: 'object', description: 'Key to action mapping', default: {} },\n ],\n },\n};\n\n// ============================================================================\n// std/Collision - Collision Detection & Response\n// ============================================================================\n\n/**\n * std/Collision - Handles collision detection and response.\n *\n * Configures how an entity responds to collisions.\n */\nexport const COLLISION_BEHAVIOR: StandardBehavior = {\n name: 'std/Collision',\n category: 'game-core',\n description: 'Collision detection and response configuration',\n suggestedFor: [\n 'Solid platforms',\n 'Trigger zones',\n 'Collectibles',\n 'Hazards',\n ],\n\n dataEntities: [\n {\n name: 'CollisionState',\n runtime: true,\n fields: [\n { name: 'isColliding', type: 'boolean', default: false },\n { name: 'collidingWith', type: 'array', default: [] },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n { name: 'Disabled' },\n ],\n events: [\n { key: 'COLLISION' },\n { key: 'TRIGGER_ENTER' },\n { key: 'TRIGGER_EXIT' },\n { key: 'ENABLE' },\n { key: 'DISABLE' },\n ],\n transitions: [\n {\n from: 'Active',\n event: 'COLLISION',\n effects: [\n ['set', '@entity.isColliding', true],\n ['set', '@entity.collidingWith', ['array/append', '@entity.collidingWith', '@payload.entityId']],\n ['if', '@config.onCollision',\n ['emit', '@config.onCollision', { entityId: '@payload.entityId', side: '@payload.side' }]],\n ],\n },\n {\n from: 'Active',\n event: 'TRIGGER_ENTER',\n effects: [\n ['if', '@config.onTrigger',\n ['emit', '@config.onTrigger', { entityId: '@payload.entityId', action: 'enter' }]],\n ],\n },\n {\n from: 'Active',\n event: 'TRIGGER_EXIT',\n effects: [\n ['set', '@entity.collidingWith', ['array/filter', '@entity.collidingWith', ['fn', 'id', ['!=', '@id', '@payload.entityId']]]],\n ['if', ['=', ['array/len', '@entity.collidingWith'], 0],\n ['set', '@entity.isColliding', false]],\n ],\n },\n {\n from: 'Active',\n to: 'Disabled',\n event: 'DISABLE',\n effects: [\n ['set', '@entity.isColliding', false],\n ['set', '@entity.collidingWith', []],\n ],\n },\n {\n from: 'Disabled',\n to: 'Active',\n event: 'ENABLE',\n effects: [],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'type', type: 'string', description: 'Collision type', default: 'solid', enum: ['solid', 'trigger'] },\n { name: 'layer', type: 'string', description: 'Collision layer', default: 'default' },\n { name: 'collidesWith', type: 'array', description: 'Layers to collide with', default: ['default'] },\n { name: 'onCollision', type: 'event', description: 'Event to emit on collision' },\n { name: 'onTrigger', type: 'event', description: 'Event to emit on trigger' },\n ],\n },\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_CORE_BEHAVIORS: StandardBehavior[] = [\n GAME_LOOP_BEHAVIOR,\n PHYSICS_2D_BEHAVIOR,\n INPUT_BEHAVIOR,\n COLLISION_BEHAVIOR,\n];\n","/**\n * Game Entity Behaviors\n *\n * Entity state behaviors: health, score, movement, combat, inventory.\n * These use the Trait architecture with stateMachine and ticks.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/Health - Entity Health System\n// ============================================================================\n\n/**\n * std/Health - Manages entity health with damage, healing, and death.\n *\n * States: Alive â Damaged â Dead\n */\nexport const HEALTH_BEHAVIOR: StandardBehavior = {\n name: 'std/Health',\n category: 'game-entity',\n description: 'Entity health with damage, healing, invulnerability, and death',\n suggestedFor: [\n 'Player characters',\n 'Enemies',\n 'Destructible objects',\n 'Bosses',\n ],\n\n dataEntities: [\n {\n name: 'HealthState',\n runtime: true,\n fields: [\n { name: 'currentHealth', type: 'number', default: 100 },\n { name: 'maxHealth', type: 'number', default: 100 },\n { name: 'isInvulnerable', type: 'boolean', default: false },\n { name: 'lastDamageTime', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Alive',\n states: [\n { name: 'Alive', isInitial: true },\n { name: 'Damaged' },\n { name: 'Invulnerable' },\n { name: 'Dead' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'DAMAGE' },\n { key: 'HEAL' },\n { key: 'DIE' },\n { key: 'RESPAWN' },\n { key: 'INVULNERABILITY_END' },\n ],\n transitions: [\n {\n from: '*',\n to: 'Alive',\n event: 'INIT',\n effects: [\n ['set', '@entity.currentHealth', '@config.maxHealth'],\n ['set', '@entity.maxHealth', '@config.maxHealth'],\n ['set', '@entity.isInvulnerable', false],\n ['render', 'hud.health', 'health-bar', {\n current: '@entity.currentHealth',\n max: '@entity.maxHealth',\n }],\n ],\n },\n {\n from: 'Alive',\n to: 'Damaged',\n event: 'DAMAGE',\n guard: ['not', '@entity.isInvulnerable'],\n effects: [\n ['set', '@entity.currentHealth', ['math/max', 0, ['-', '@entity.currentHealth', '@payload.amount']]],\n ['set', '@entity.lastDamageTime', '@now'],\n ['if', ['<=', '@entity.currentHealth', 0],\n ['emit', 'DIE'],\n ['do',\n ['set', '@entity.isInvulnerable', true],\n ['render', 'entity.flash', 'damage-flash', {}]]],\n ],\n },\n {\n from: ['Damaged', 'Invulnerable'],\n to: 'Alive',\n event: 'INVULNERABILITY_END',\n effects: [\n ['set', '@entity.isInvulnerable', false],\n ],\n },\n {\n from: ['Alive', 'Damaged', 'Invulnerable'],\n event: 'HEAL',\n effects: [\n ['set', '@entity.currentHealth', ['math/min', '@entity.maxHealth', ['+', '@entity.currentHealth', '@payload.amount']]],\n ['render', 'entity.effect', 'heal-effect', {}],\n ],\n },\n {\n from: ['Alive', 'Damaged', 'Invulnerable'],\n to: 'Dead',\n event: 'DIE',\n effects: [\n ['set', '@entity.currentHealth', 0],\n ['emit', '@config.onDeath', { entityId: '@entity.id' }],\n ['render', 'entity.sprite', 'death-animation', {}],\n ],\n },\n {\n from: 'Dead',\n to: 'Alive',\n event: 'RESPAWN',\n effects: [\n ['emit', 'INIT'],\n ],\n },\n ],\n },\n\n ticks: [\n {\n name: 'InvulnerabilityTimer',\n interval: 'frame',\n guard: ['and', '@entity.isInvulnerable', ['>', ['-', '@now', '@entity.lastDamageTime'], '@config.invulnerabilityTime']],\n effects: [\n ['emit', 'INVULNERABILITY_END'],\n ],\n },\n ],\n\n configSchema: {\n required: [\n { name: 'maxHealth', type: 'number', description: 'Maximum health points' },\n ],\n optional: [\n { name: 'invulnerabilityTime', type: 'number', description: 'Invulnerability duration after damage (ms)', default: 500 },\n { name: 'onDeath', type: 'event', description: 'Event to emit on death', default: 'ENTITY_DIED' },\n { name: 'showHealthBar', type: 'boolean', description: 'Render health bar', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Score - Points and Combo System\n// ============================================================================\n\n/**\n * std/Score - Manages score with points, combos, and multipliers.\n */\nexport const SCORE_BEHAVIOR: StandardBehavior = {\n name: 'std/Score',\n category: 'game-entity',\n description: 'Score tracking with points, combos, and multipliers',\n suggestedFor: [\n 'Arcade games',\n 'Puzzle games',\n 'Platformers with collectibles',\n 'Competitive games',\n ],\n\n dataEntities: [\n {\n name: 'ScoreState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'currentScore', type: 'number', default: 0 },\n { name: 'highScore', type: 'number', default: 0 },\n { name: 'comboCount', type: 'number', default: 0 },\n { name: 'multiplier', type: 'number', default: 1 },\n { name: 'lastScoreTime', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'ADD_POINTS' },\n { key: 'COMBO_HIT' },\n { key: 'COMBO_BREAK' },\n { key: 'RESET' },\n { key: 'SAVE_HIGH_SCORE' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.currentScore', 0],\n ['set', '@entity.comboCount', 0],\n ['set', '@entity.multiplier', 1],\n ['render', 'hud.score', 'score-display', {\n score: '@entity.currentScore',\n highScore: '@entity.highScore',\n combo: '@entity.comboCount',\n multiplier: '@entity.multiplier',\n }],\n ],\n },\n {\n event: 'ADD_POINTS',\n effects: [\n ['set', '@entity.currentScore', ['+', '@entity.currentScore', ['*', '@payload.points', '@entity.multiplier']]],\n ['set', '@entity.lastScoreTime', '@now'],\n ['render', 'entity.effect', 'score-popup', {\n points: ['*', '@payload.points', '@entity.multiplier'],\n position: '@payload.position',\n }],\n ],\n },\n {\n event: 'COMBO_HIT',\n effects: [\n ['set', '@entity.comboCount', ['+', '@entity.comboCount', 1]],\n ['set', '@entity.multiplier', ['math/min', '@config.maxMultiplier', ['+', 1, ['/', '@entity.comboCount', 5]]]],\n ['set', '@entity.lastScoreTime', '@now'],\n ],\n },\n {\n event: 'COMBO_BREAK',\n effects: [\n ['set', '@entity.comboCount', 0],\n ['set', '@entity.multiplier', 1],\n ],\n },\n {\n event: 'RESET',\n effects: [\n ['if', ['>', '@entity.currentScore', '@entity.highScore'],\n ['set', '@entity.highScore', '@entity.currentScore']],\n ['emit', 'INIT'],\n ],\n },\n {\n event: 'SAVE_HIGH_SCORE',\n guard: ['>', '@entity.currentScore', '@entity.highScore'],\n effects: [\n ['set', '@entity.highScore', '@entity.currentScore'],\n ['persist', 'save', 'HighScore', { score: '@entity.highScore' }],\n ],\n },\n ],\n },\n\n ticks: [\n {\n name: 'ComboTimeout',\n interval: 'frame',\n guard: ['and', ['>', '@entity.comboCount', 0], ['>', ['-', '@now', '@entity.lastScoreTime'], '@config.comboTimeWindow']],\n effects: [\n ['emit', 'COMBO_BREAK'],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'comboTimeWindow', type: 'number', description: 'Time window for combos (ms)', default: 2000 },\n { name: 'maxMultiplier', type: 'number', description: 'Maximum combo multiplier', default: 10 },\n { name: 'persistHighScore', type: 'boolean', description: 'Save high score to storage', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Movement - Entity Position and Velocity\n// ============================================================================\n\n/**\n * std/Movement - Basic movement for any entity.\n *\n * Handles position updates based on input or AI.\n */\nexport const MOVEMENT_BEHAVIOR: StandardBehavior = {\n name: 'std/Movement',\n category: 'game-entity',\n description: 'Entity movement with speed and direction',\n suggestedFor: [\n 'Player characters',\n 'NPCs',\n 'Enemies',\n 'Moving platforms',\n ],\n\n requiredFields: [\n { name: 'x', type: 'number', description: 'Entity X position' },\n { name: 'y', type: 'number', description: 'Entity Y position' },\n ],\n\n dataEntities: [\n {\n name: 'MovementState',\n runtime: true,\n fields: [\n { name: 'direction', type: 'number', default: 0 },\n { name: 'facingRight', type: 'boolean', default: true },\n { name: 'canJump', type: 'boolean', default: true },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Moving' },\n { name: 'Jumping' },\n { name: 'Falling' },\n ],\n events: [\n { key: 'MOVE' },\n { key: 'STOP' },\n { key: 'JUMP' },\n { key: 'LAND' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Moving',\n event: 'MOVE',\n effects: [\n ['set', '@entity.direction', '@payload.direction'],\n ['if', ['>', '@payload.direction', 0],\n ['set', '@entity.facingRight', true]],\n ['if', ['<', '@payload.direction', 0],\n ['set', '@entity.facingRight', false]],\n ],\n },\n {\n from: 'Moving',\n event: 'MOVE',\n effects: [\n ['set', '@entity.direction', '@payload.direction'],\n ['if', ['>', '@payload.direction', 0],\n ['set', '@entity.facingRight', true]],\n ['if', ['<', '@payload.direction', 0],\n ['set', '@entity.facingRight', false]],\n ],\n },\n {\n from: 'Moving',\n to: 'Idle',\n event: 'STOP',\n effects: [\n ['set', '@entity.direction', 0],\n ],\n },\n {\n from: ['Idle', 'Moving'],\n to: 'Jumping',\n event: 'JUMP',\n guard: '@entity.canJump',\n effects: [\n ['set', '@entity.canJump', false],\n ['emit', 'APPLY_FORCE', { fx: 0, fy: '@config.jumpForce' }],\n ],\n },\n {\n from: ['Jumping', 'Falling'],\n to: 'Idle',\n event: 'LAND',\n effects: [\n ['set', '@entity.canJump', true],\n ['if', ['!=', '@entity.direction', 0],\n ['emit', 'MOVE', { direction: '@entity.direction' }]],\n ],\n },\n ],\n },\n\n ticks: [\n {\n name: 'ApplyMovement',\n interval: 'frame',\n guard: ['!=', '@entity.direction', 0],\n effects: [\n ['set', '@entity.x', ['+', '@entity.x', ['*', '@entity.direction', '@config.moveSpeed']]],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'moveSpeed', type: 'number', description: 'Movement speed (pixels/frame)', default: 5 },\n { name: 'jumpForce', type: 'number', description: 'Jump velocity', default: -12 },\n { name: 'acceleration', type: 'number', description: 'Acceleration rate', default: 0.5 },\n { name: 'deceleration', type: 'number', description: 'Deceleration rate', default: 0.3 },\n ],\n },\n};\n\n// ============================================================================\n// std/Combat - Attack and Damage System\n// ============================================================================\n\n/**\n * std/Combat - Handles attacks, cooldowns, and hit detection.\n */\nexport const COMBAT_BEHAVIOR: StandardBehavior = {\n name: 'std/Combat',\n category: 'game-entity',\n description: 'Combat system with attacks, cooldowns, and hitboxes',\n suggestedFor: [\n 'Fighting games',\n 'Action RPGs',\n 'Beat-em-ups',\n 'Boss encounters',\n ],\n\n dataEntities: [\n {\n name: 'CombatState',\n runtime: true,\n fields: [\n { name: 'isAttacking', type: 'boolean', default: false },\n { name: 'attackStartTime', type: 'number', default: 0 },\n { name: 'hitEntities', type: 'array', default: [] },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Ready',\n states: [\n { name: 'Ready', isInitial: true },\n { name: 'Attacking' },\n { name: 'Cooldown' },\n ],\n events: [\n { key: 'ATTACK' },\n { key: 'ATTACK_END' },\n { key: 'HIT_CONNECT' },\n { key: 'COOLDOWN_END' },\n ],\n transitions: [\n {\n from: 'Ready',\n to: 'Attacking',\n event: 'ATTACK',\n effects: [\n ['set', '@entity.isAttacking', true],\n ['set', '@entity.attackStartTime', '@now'],\n ['set', '@entity.hitEntities', []],\n ['render', 'entity.sprite', 'attack-animation', {}],\n ['render', 'entity.hitbox', 'hitbox', {\n active: true,\n offset: '@config.hitboxOffset',\n size: '@config.hitboxSize',\n }],\n ],\n },\n {\n from: 'Attacking',\n event: 'HIT_CONNECT',\n guard: ['not', ['array/includes', '@entity.hitEntities', '@payload.entityId']],\n effects: [\n ['set', '@entity.hitEntities', ['array/append', '@entity.hitEntities', '@payload.entityId']],\n ['emit', 'DAMAGE', { target: '@payload.entityId', amount: '@config.attackDamage' }],\n ['render', 'effect.impact', 'hit-effect', { position: '@payload.position' }],\n ],\n },\n {\n from: 'Attacking',\n to: 'Cooldown',\n event: 'ATTACK_END',\n effects: [\n ['set', '@entity.isAttacking', false],\n ['render', 'entity.hitbox', null],\n ],\n },\n {\n from: 'Cooldown',\n to: 'Ready',\n event: 'COOLDOWN_END',\n effects: [],\n },\n ],\n },\n\n ticks: [\n {\n name: 'AttackDuration',\n interval: 'frame',\n guard: ['and', '@entity.isAttacking', ['>', ['-', '@now', '@entity.attackStartTime'], '@config.attackDuration']],\n effects: [\n ['emit', 'ATTACK_END'],\n ],\n },\n {\n name: 'CooldownTimer',\n interval: 'frame',\n guard: ['and', ['=', '@state', 'Cooldown'], ['>', ['-', '@now', '@entity.attackStartTime'], ['+', '@config.attackDuration', '@config.cooldownDuration']]],\n effects: [\n ['emit', 'COOLDOWN_END'],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'attackDamage', type: 'number', description: 'Damage per attack', default: 10 },\n { name: 'attackDuration', type: 'number', description: 'Attack animation duration (ms)', default: 200 },\n { name: 'cooldownDuration', type: 'number', description: 'Cooldown between attacks (ms)', default: 300 },\n { name: 'hitboxOffset', type: 'object', description: 'Hitbox offset from entity', default: { x: 20, y: 0 } },\n { name: 'hitboxSize', type: 'object', description: 'Hitbox dimensions', default: { width: 30, height: 40 } },\n ],\n },\n};\n\n// ============================================================================\n// std/Inventory - Item Collection and Management\n// ============================================================================\n\n/**\n * std/Inventory - Manages collected items and equipment.\n */\nexport const INVENTORY_BEHAVIOR: StandardBehavior = {\n name: 'std/Inventory',\n category: 'game-entity',\n description: 'Item collection, storage, and usage',\n suggestedFor: [\n 'RPGs',\n 'Adventure games',\n 'Survival games',\n 'Collectible-based games',\n ],\n\n dataEntities: [\n {\n name: 'InventoryState',\n runtime: true,\n fields: [\n { name: 'items', type: 'array', default: [] },\n { name: 'selectedSlot', type: 'number', default: 0 },\n { name: 'isOpen', type: 'boolean', default: false },\n { name: 'equipped', type: 'object', default: {} },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Empty',\n states: [\n { name: 'Empty', isInitial: true },\n { name: 'HasItems' },\n { name: 'Full' },\n ],\n events: [\n { key: 'COLLECT' },\n { key: 'USE' },\n { key: 'DROP' },\n { key: 'EQUIP' },\n { key: 'UNEQUIP' },\n { key: 'OPEN' },\n { key: 'CLOSE' },\n { key: 'INVENTORY_EMPTY' },\n ],\n transitions: [\n {\n from: ['Empty', 'HasItems'],\n to: 'HasItems',\n event: 'COLLECT',\n guard: ['<', ['array/len', '@entity.items'], '@config.maxSlots'],\n effects: [\n ['set', '@entity.items', ['array/append', '@entity.items', '@payload.item']],\n ['render', 'effect.collect', 'collect-effect', { item: '@payload.item' }],\n ['notify', { type: 'info', message: ['str/concat', 'Collected ', '@payload.item.name'] }],\n ],\n },\n {\n from: 'HasItems',\n event: 'USE',\n effects: [\n ['let', [['item', ['array/nth', '@entity.items', '@payload.slot']]],\n ['if', '@item.onUse',\n ['emit', '@item.onUse', { item: '@item' }]],\n ['if', '@item.consumable',\n ['set', '@entity.items', ['array/filter', '@entity.items', ['fn', 'i', 'idx', ['!=', '@idx', '@payload.slot']]]]]],\n ['if', ['=', ['array/len', '@entity.items'], 0],\n ['emit', 'INVENTORY_EMPTY']],\n ],\n },\n {\n from: 'HasItems',\n event: 'DROP',\n effects: [\n ['let', [['item', ['array/nth', '@entity.items', '@payload.slot']]],\n ['set', '@entity.items', ['array/filter', '@entity.items', ['fn', 'i', 'idx', ['!=', '@idx', '@payload.slot']]]],\n ['emit', 'ITEM_DROPPED', { item: '@item', position: { x: '@entity.x', y: '@entity.y' } }]],\n ['if', ['=', ['array/len', '@entity.items'], 0],\n ['emit', 'INVENTORY_EMPTY']],\n ],\n },\n {\n from: 'HasItems',\n to: 'Empty',\n event: 'INVENTORY_EMPTY',\n effects: [],\n },\n {\n event: 'EQUIP',\n effects: [\n ['set', '@entity.equipped', ['object/set', '@entity.equipped', '@payload.slot', '@payload.item']],\n ['emit', 'STATS_UPDATED', { equipped: '@entity.equipped' }],\n ],\n },\n {\n event: 'UNEQUIP',\n effects: [\n ['set', '@entity.equipped', ['object/remove', '@entity.equipped', '@payload.slot']],\n ['emit', 'STATS_UPDATED', { equipped: '@entity.equipped' }],\n ],\n },\n {\n event: 'OPEN',\n effects: [\n ['set', '@entity.isOpen', true],\n ['render', 'overlay.inventory', 'inventory-panel', {\n items: '@entity.items',\n selectedSlot: '@entity.selectedSlot',\n equipped: '@entity.equipped',\n maxSlots: '@config.maxSlots',\n onUse: 'USE',\n onDrop: 'DROP',\n onEquip: 'EQUIP',\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n event: 'CLOSE',\n effects: [\n ['set', '@entity.isOpen', false],\n ['render', 'overlay.inventory', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'maxSlots', type: 'number', description: 'Maximum inventory slots', default: 20 },\n { name: 'stackable', type: 'boolean', description: 'Allow item stacking', default: true },\n { name: 'maxStack', type: 'number', description: 'Maximum stack size', default: 99 },\n ],\n },\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_ENTITY_BEHAVIORS: StandardBehavior[] = [\n HEALTH_BEHAVIOR,\n SCORE_BEHAVIOR,\n MOVEMENT_BEHAVIOR,\n COMBAT_BEHAVIOR,\n INVENTORY_BEHAVIOR,\n];\n","/**\n * Game UI Behaviors\n *\n * Game interface behaviors: flow, dialogue, level progression.\n * These use the Trait architecture with stateMachine and ticks.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/GameFlow - Game State Machine\n// ============================================================================\n\n/**\n * std/GameFlow - Master game state management.\n *\n * States: Menu â Playing â Paused â GameOver/Victory\n */\nexport const GAME_FLOW_BEHAVIOR: StandardBehavior = {\n name: 'std/GameFlow',\n category: 'game-ui',\n description: 'Master game flow: menu, play, pause, game over, victory',\n suggestedFor: [\n 'All games',\n 'Game state management',\n 'Menu systems',\n 'Win/lose conditions',\n ],\n\n dataEntities: [\n {\n name: 'GameFlowState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'playTime', type: 'number', default: 0 },\n { name: 'attempts', type: 'number', default: 0 },\n { name: 'lastState', type: 'string', default: 'Menu' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Menu',\n states: [\n { name: 'Menu', isInitial: true },\n { name: 'Playing' },\n { name: 'Paused' },\n { name: 'GameOver' },\n { name: 'Victory' },\n ],\n events: [\n { key: 'START' },\n { key: 'PAUSE' },\n { key: 'RESUME' },\n { key: 'GAME_OVER' },\n { key: 'VICTORY' },\n { key: 'RESTART' },\n { key: 'QUIT' },\n ],\n transitions: [\n {\n from: '*',\n to: 'Menu',\n event: 'QUIT',\n effects: [\n ['emit', 'STOP'],\n ['render', 'screen', 'game-menu', {\n title: '@config.title',\n onStart: 'START',\n }],\n ],\n },\n {\n from: 'Menu',\n to: 'Playing',\n event: 'START',\n effects: [\n ['set', '@entity.attempts', ['+', '@entity.attempts', 1]],\n ['set', '@entity.playTime', 0],\n ['emit', 'GAME_LOOP_START'],\n ['render', 'screen', null],\n ['render', 'canvas', 'game-canvas', {}],\n ],\n },\n {\n from: 'Playing',\n to: 'Paused',\n event: 'PAUSE',\n guard: '@config.allowPause',\n effects: [\n ['set', '@entity.lastState', 'Playing'],\n ['emit', 'GAME_LOOP_PAUSE'],\n ['render', 'overlay', 'game-pause-overlay', {\n onResume: 'RESUME',\n onQuit: 'QUIT',\n playTime: '@entity.playTime',\n }],\n ],\n },\n {\n from: 'Paused',\n to: 'Playing',\n event: 'RESUME',\n effects: [\n ['emit', 'GAME_LOOP_RESUME'],\n ['render', 'overlay', null],\n ],\n },\n {\n from: 'Playing',\n to: 'GameOver',\n event: 'GAME_OVER',\n effects: [\n ['emit', 'STOP'],\n ['render', 'overlay', 'game-over-screen', {\n victory: false,\n playTime: '@entity.playTime',\n attempts: '@entity.attempts',\n onRestart: 'RESTART',\n onQuit: 'QUIT',\n }],\n ],\n },\n {\n from: 'Playing',\n to: 'Victory',\n event: 'VICTORY',\n effects: [\n ['emit', 'STOP'],\n ['render', 'overlay', 'game-over-screen', {\n victory: true,\n playTime: '@entity.playTime',\n attempts: '@entity.attempts',\n onRestart: 'RESTART',\n onQuit: 'QUIT',\n }],\n ],\n },\n {\n from: ['GameOver', 'Victory'],\n to: 'Playing',\n event: 'RESTART',\n effects: [\n ['render', 'overlay', null],\n ['emit', 'GAME_RESET'],\n ['emit', 'START'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'title', type: 'string', description: 'Game title', default: 'Game' },\n { name: 'showMenu', type: 'boolean', description: 'Show main menu', default: true },\n { name: 'allowPause', type: 'boolean', description: 'Allow pausing', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Dialogue - NPC Conversation System\n// ============================================================================\n\n/**\n * std/Dialogue - Manages NPC dialogue and branching conversations.\n */\nexport const DIALOGUE_BEHAVIOR: StandardBehavior = {\n name: 'std/Dialogue',\n category: 'game-ui',\n description: 'NPC dialogue system with branching conversations',\n suggestedFor: [\n 'RPGs',\n 'Adventure games',\n 'Story-driven games',\n 'NPC interactions',\n ],\n\n dataEntities: [\n {\n name: 'DialogueState',\n runtime: true,\n fields: [\n { name: 'dialogueTree', type: 'array', default: [] },\n { name: 'currentNode', type: 'number', default: 0 },\n { name: 'displayedText', type: 'string', default: '' },\n { name: 'isTyping', type: 'boolean', default: false },\n { name: 'speaker', type: 'string', default: '' },\n { name: 'typeIndex', type: 'number', default: 0 },\n { name: 'lastTypeTime', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Hidden',\n states: [\n { name: 'Hidden', isInitial: true },\n { name: 'Typing' },\n { name: 'Showing' },\n { name: 'Choice' },\n ],\n events: [\n { key: 'SHOW' },\n { key: 'NEXT' },\n { key: 'SELECT_CHOICE' },\n { key: 'SKIP' },\n { key: 'CLOSE' },\n { key: 'TYPE_CHAR' },\n { key: 'TYPE_COMPLETE' },\n ],\n transitions: [\n {\n from: 'Hidden',\n to: 'Typing',\n event: 'SHOW',\n effects: [\n ['set', '@entity.dialogueTree', '@payload.dialogue'],\n ['set', '@entity.currentNode', 0],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0],\n ['set', '@entity.lastTypeTime', '@now'],\n ['emit', 'GAME_PAUSE'],\n ['render', 'overlay.dialogue', 'dialogue-box', {\n speaker: '@entity.speaker',\n text: '@entity.displayedText',\n isTyping: '@entity.isTyping',\n onNext: 'NEXT',\n onSkip: 'SKIP',\n }],\n ],\n },\n {\n from: 'Typing',\n event: 'TYPE_CHAR',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['do',\n ['set', '@entity.typeIndex', ['+', '@entity.typeIndex', 1]],\n ['set', '@entity.displayedText', ['str/slice', '@currentDialogue.text', 0, '@entity.typeIndex']],\n ['set', '@entity.lastTypeTime', '@now']]],\n ],\n },\n {\n from: 'Typing',\n to: 'Showing',\n event: 'TYPE_COMPLETE',\n effects: [\n ['set', '@entity.isTyping', false],\n ],\n },\n {\n from: 'Typing',\n to: 'Showing',\n event: 'SKIP',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['do',\n ['set', '@entity.isTyping', false],\n ['set', '@entity.displayedText', '@currentDialogue.text']]],\n ],\n },\n {\n from: 'Showing',\n event: 'NEXT',\n guard: ['not', ['object/get', ['array/nth', '@entity.dialogueTree', '@entity.currentNode'], 'choices']],\n effects: [\n ['if', ['>=', '@entity.currentNode', ['-', ['array/len', '@entity.dialogueTree'], 1]],\n ['emit', 'CLOSE'],\n ['do',\n ['set', '@entity.currentNode', ['+', '@entity.currentNode', 1]],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0]]],\n ],\n },\n {\n from: 'Showing',\n to: 'Choice',\n event: 'NEXT',\n guard: ['object/get', ['array/nth', '@entity.dialogueTree', '@entity.currentNode'], 'choices'],\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['render', 'overlay.dialogue', 'dialogue-box', {\n choices: '@currentDialogue.choices',\n onSelect: 'SELECT_CHOICE',\n }]],\n ],\n },\n {\n from: 'Choice',\n to: 'Typing',\n event: 'SELECT_CHOICE',\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['let', [['choice', ['array/nth', '@currentDialogue.choices', '@payload.index']]],\n ['do',\n ['if', '@choice.nextNode',\n ['set', '@entity.currentNode', '@choice.nextNode'],\n ['set', '@entity.currentNode', ['+', '@entity.currentNode', 1]]],\n ['if', '@choice.effect',\n ['emit', '@choice.effect']]]]],\n ['set', '@entity.isTyping', true],\n ['set', '@entity.displayedText', ''],\n ['set', '@entity.typeIndex', 0],\n ],\n },\n {\n from: ['Typing', 'Showing', 'Choice'],\n to: 'Hidden',\n event: 'CLOSE',\n effects: [\n ['set', '@entity.dialogueTree', []],\n ['set', '@entity.currentNode', 0],\n ['emit', 'GAME_RESUME'],\n ['render', 'overlay.dialogue', null],\n ],\n },\n ],\n },\n\n ticks: [\n {\n name: 'TypewriterEffect',\n interval: 'frame',\n guard: ['and', '@entity.isTyping', ['>', ['-', '@now', '@entity.lastTypeTime'], ['/', 1000, '@config.typingSpeed']]],\n effects: [\n ['let', [['currentDialogue', ['array/nth', '@entity.dialogueTree', '@entity.currentNode']]],\n ['if', ['<', '@entity.typeIndex', ['str/len', '@currentDialogue.text']],\n ['emit', 'TYPE_CHAR'],\n ['emit', 'TYPE_COMPLETE']]],\n ],\n },\n ],\n\n configSchema: {\n required: [],\n optional: [\n { name: 'typingSpeed', type: 'number', description: 'Characters per second', default: 30 },\n { name: 'autoAdvance', type: 'boolean', description: 'Auto-advance after typing', default: false },\n { name: 'autoAdvanceDelay', type: 'number', description: 'Delay before auto-advance (ms)', default: 2000 },\n { name: 'showPortrait', type: 'boolean', description: 'Show speaker portrait', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/LevelProgress - Level Unlock and Progression\n// ============================================================================\n\n/**\n * std/LevelProgress - Manages level unlock, selection, and completion.\n */\nexport const LEVEL_PROGRESS_BEHAVIOR: StandardBehavior = {\n name: 'std/LevelProgress',\n category: 'game-ui',\n description: 'Level progression with unlock, selection, and completion tracking',\n suggestedFor: [\n 'Level-based games',\n 'Puzzle games',\n 'Platformers with levels',\n 'Mobile games',\n ],\n\n dataEntities: [\n {\n name: 'LevelProgressState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'currentLevel', type: 'number', default: 0 },\n { name: 'unlockedLevels', type: 'array', default: [0] },\n { name: 'levelStars', type: 'object', default: {} },\n { name: 'totalStars', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Browsing',\n states: [\n { name: 'Browsing', isInitial: true },\n { name: 'LevelLoading' },\n { name: 'InLevel' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SELECT_LEVEL' },\n { key: 'LEVEL_LOADED' },\n { key: 'COMPLETE_LEVEL' },\n { key: 'UNLOCK_LEVEL' },\n { key: 'BACK_TO_SELECT' },\n ],\n transitions: [\n {\n from: '*',\n to: 'Browsing',\n event: 'INIT',\n effects: [\n ['render', 'screen', 'level-select', {\n levels: '@config.levels',\n unlockedLevels: '@entity.unlockedLevels',\n levelStars: '@entity.levelStars',\n starsPerLevel: '@config.starsPerLevel',\n totalStars: '@entity.totalStars',\n onSelect: 'SELECT_LEVEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'LevelLoading',\n event: 'SELECT_LEVEL',\n guard: ['array/includes', '@entity.unlockedLevels', '@payload.levelIndex'],\n effects: [\n ['set', '@entity.currentLevel', '@payload.levelIndex'],\n ['render', 'screen', 'loading-screen', {\n level: ['array/nth', '@config.levels', '@payload.levelIndex'],\n }],\n ['emit', 'LOAD_LEVEL', { levelData: ['array/nth', '@config.levels', '@payload.levelIndex'] }],\n ],\n },\n {\n from: 'LevelLoading',\n to: 'InLevel',\n event: 'LEVEL_LOADED',\n effects: [\n ['render', 'screen', null],\n ['emit', 'START'],\n ],\n },\n {\n from: 'InLevel',\n event: 'COMPLETE_LEVEL',\n effects: [\n ['set', '@entity.levelStars', ['object/set', '@entity.levelStars', ['str/toString', '@entity.currentLevel'],\n ['math/max', '@payload.stars', ['object/get', '@entity.levelStars', ['str/toString', '@entity.currentLevel'], 0]]]],\n ['set', '@entity.totalStars', ['array/reduce', ['object/values', '@entity.levelStars'], ['fn', 'sum', 'v', ['+', '@sum', '@v']], 0]],\n ['if', ['and', '@config.unlockNext', ['<', '@entity.currentLevel', ['-', ['array/len', '@config.levels'], 1]]],\n ['emit', 'UNLOCK_LEVEL', { levelIndex: ['+', '@entity.currentLevel', 1] }]],\n ['if', '@config.persistProgress',\n ['persist', 'save', 'LevelProgress', {\n unlockedLevels: '@entity.unlockedLevels',\n levelStars: '@entity.levelStars',\n }]],\n ],\n },\n {\n event: 'UNLOCK_LEVEL',\n guard: ['not', ['array/includes', '@entity.unlockedLevels', '@payload.levelIndex']],\n effects: [\n ['set', '@entity.unlockedLevels', ['array/append', '@entity.unlockedLevels', '@payload.levelIndex']],\n ],\n },\n {\n from: 'InLevel',\n to: 'Browsing',\n event: 'BACK_TO_SELECT',\n effects: [\n ['emit', 'INIT'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'levels', type: 'array', description: 'Level definitions' },\n ],\n optional: [\n { name: 'starsPerLevel', type: 'number', description: 'Max stars per level', default: 3 },\n { name: 'unlockNext', type: 'boolean', description: 'Auto-unlock next level on complete', default: true },\n { name: 'persistProgress', type: 'boolean', description: 'Save progress to storage', default: true },\n ],\n },\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const GAME_UI_BEHAVIORS: StandardBehavior[] = [\n GAME_FLOW_BEHAVIOR,\n DIALOGUE_BEHAVIOR,\n LEVEL_PROGRESS_BEHAVIOR,\n];\n","/**\n * Standard Behaviors Registry\n *\n * Combined registry of all Standard Behaviors with lookup functions.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior, BehaviorMetadata, BehaviorCategory } from './types.js';\nimport { getBehaviorMetadata } from './types.js';\nimport { UI_INTERACTION_BEHAVIORS } from './ui-interaction.js';\nimport { DATA_MANAGEMENT_BEHAVIORS } from './data-management.js';\nimport { ASYNC_BEHAVIORS } from './async.js';\nimport { FEEDBACK_BEHAVIORS } from './feedback.js';\nimport { GAME_CORE_BEHAVIORS } from './game-core.js';\nimport { GAME_ENTITY_BEHAVIORS } from './game-entity.js';\nimport { GAME_UI_BEHAVIORS } from './game-ui.js';\n\n// ============================================================================\n// Combined Registry\n// ============================================================================\n\n/**\n * All Standard Behaviors combined into a single array.\n */\nexport const STANDARD_BEHAVIORS: StandardBehavior[] = [\n ...UI_INTERACTION_BEHAVIORS,\n ...DATA_MANAGEMENT_BEHAVIORS,\n ...ASYNC_BEHAVIORS,\n ...FEEDBACK_BEHAVIORS,\n ...GAME_CORE_BEHAVIORS,\n ...GAME_ENTITY_BEHAVIORS,\n ...GAME_UI_BEHAVIORS,\n];\n\n/**\n * Behavior registry indexed by name for fast lookup.\n */\nexport const BEHAVIOR_REGISTRY: Record<string, StandardBehavior> = STANDARD_BEHAVIORS.reduce(\n (acc, behavior) => {\n acc[behavior.name] = behavior;\n return acc;\n },\n {} as Record<string, StandardBehavior>\n);\n\n/**\n * Behaviors grouped by category.\n */\nexport const BEHAVIORS_BY_CATEGORY: Record<BehaviorCategory, StandardBehavior[]> = {\n 'ui-interaction': UI_INTERACTION_BEHAVIORS,\n 'data-management': DATA_MANAGEMENT_BEHAVIORS,\n 'async': ASYNC_BEHAVIORS,\n 'feedback': FEEDBACK_BEHAVIORS,\n 'game-core': GAME_CORE_BEHAVIORS,\n 'game-entity': GAME_ENTITY_BEHAVIORS,\n 'game-ui': GAME_UI_BEHAVIORS,\n};\n\n// ============================================================================\n// Lookup Functions\n// ============================================================================\n\n/**\n * Get a behavior by name.\n *\n * @param name - Behavior name (e.g., 'std/List')\n * @returns The behavior or undefined if not found\n */\nexport function getBehavior(name: string): StandardBehavior | undefined {\n return BEHAVIOR_REGISTRY[name];\n}\n\n/**\n * Check if a behavior exists.\n *\n * @param name - Behavior name\n * @returns true if the behavior exists\n */\nexport function isKnownBehavior(name: string): boolean {\n return name in BEHAVIOR_REGISTRY;\n}\n\n/**\n * Get all behaviors in a category.\n *\n * @param category - Behavior category\n * @returns Array of behaviors in that category\n */\nexport function getBehaviorsByCategory(category: BehaviorCategory): StandardBehavior[] {\n return BEHAVIORS_BY_CATEGORY[category] ?? [];\n}\n\n/**\n * Get all behavior names.\n *\n * @returns Array of all behavior names\n */\nexport function getAllBehaviorNames(): string[] {\n return Object.keys(BEHAVIOR_REGISTRY);\n}\n\n/**\n * Get all behaviors.\n *\n * @returns Array of all behaviors\n */\nexport function getAllBehaviors(): StandardBehavior[] {\n return STANDARD_BEHAVIORS;\n}\n\n/**\n * Get metadata for all behaviors (lightweight).\n *\n * @returns Array of behavior metadata\n */\nexport function getAllBehaviorMetadata(): BehaviorMetadata[] {\n return STANDARD_BEHAVIORS.map(getBehaviorMetadata);\n}\n\n/**\n * Find behaviors that match a use case.\n *\n * @param useCase - Use case description to match\n * @returns Array of matching behaviors\n */\nexport function findBehaviorsForUseCase(useCase: string): StandardBehavior[] {\n const lowerUseCase = useCase.toLowerCase();\n return STANDARD_BEHAVIORS.filter((behavior) =>\n behavior.suggestedFor?.some((suggestion) =>\n suggestion.toLowerCase().includes(lowerUseCase) ||\n lowerUseCase.includes(suggestion.toLowerCase())\n ) ?? false\n );\n}\n\n/**\n * Get behaviors that handle a specific event.\n *\n * @param event - Event name\n * @returns Array of behaviors that handle this event\n */\nexport function getBehaviorsForEvent(event: string): StandardBehavior[] {\n return STANDARD_BEHAVIORS.filter((behavior) => {\n const events = behavior.stateMachine?.events || [];\n return events.some(e => (typeof e === 'string' ? e : e.key) === event);\n });\n}\n\n/**\n * Get behaviors that have a specific state.\n *\n * @param state - State name\n * @returns Array of behaviors that have this state\n */\nexport function getBehaviorsWithState(state: string): StandardBehavior[] {\n return STANDARD_BEHAVIORS.filter((behavior) => {\n const states = behavior.stateMachine?.states || [];\n return states.some(s => (typeof s === 'string' ? s : s.name) === state);\n });\n}\n\n// ============================================================================\n// Validation Functions\n// ============================================================================\n\n/**\n * Validate that a behavior reference is valid.\n *\n * @param name - Behavior name\n * @returns Error message if invalid, null if valid\n */\nexport function validateBehaviorReference(name: string): string | null {\n if (!name.startsWith('std/')) {\n return `Behavior name must start with 'std/': ${name}`;\n }\n\n if (!isKnownBehavior(name)) {\n const suggestions = findSimilarBehaviors(name);\n if (suggestions.length > 0) {\n return `Unknown behavior '${name}'. Did you mean: ${suggestions.join(', ')}?`;\n }\n return `Unknown behavior: ${name}`;\n }\n\n return null;\n}\n\n/**\n * Find behaviors with similar names (for suggestions).\n *\n * @param name - Input name\n * @returns Array of similar behavior names\n */\nfunction findSimilarBehaviors(name: string): string[] {\n const normalizedInput = name.toLowerCase().replace('std/', '');\n return getAllBehaviorNames().filter((behaviorName) => {\n const normalizedBehavior = behaviorName.toLowerCase().replace('std/', '');\n return (\n normalizedBehavior.includes(normalizedInput) ||\n normalizedInput.includes(normalizedBehavior) ||\n levenshteinDistance(normalizedInput, normalizedBehavior) <= 3\n );\n });\n}\n\n/**\n * Simple Levenshtein distance for string similarity.\n */\nfunction levenshteinDistance(a: string, b: string): number {\n if (a.length === 0) return b.length;\n if (b.length === 0) return a.length;\n\n const matrix: number[][] = [];\n\n for (let i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n\n for (let j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n\n for (let i = 1; i <= b.length; i++) {\n for (let j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n } else {\n matrix[i][j] = Math.min(\n matrix[i - 1][j - 1] + 1,\n matrix[i][j - 1] + 1,\n matrix[i - 1][j] + 1\n );\n }\n }\n }\n\n return matrix[b.length][a.length];\n}\n\n// ============================================================================\n// Statistics\n// ============================================================================\n\n/**\n * Get statistics about the behavior library.\n */\nexport function getBehaviorLibraryStats(): {\n totalBehaviors: number;\n byCategory: Record<string, number>;\n totalStates: number;\n totalEvents: number;\n totalTransitions: number;\n totalTicks: number;\n} {\n const byCategory: Record<string, number> = {};\n let totalStates = 0;\n let totalEvents = 0;\n let totalTransitions = 0;\n let totalTicks = 0;\n\n for (const behavior of STANDARD_BEHAVIORS) {\n byCategory[behavior.category] = (byCategory[behavior.category] ?? 0) + 1;\n const sm = behavior.stateMachine;\n if (sm) {\n totalStates += (sm.states || []).length;\n totalEvents += (sm.events || []).length;\n totalTransitions += (sm.transitions || []).length;\n }\n totalTicks += (behavior.ticks || []).length;\n }\n\n return {\n totalBehaviors: STANDARD_BEHAVIORS.length,\n byCategory,\n totalStates,\n totalEvents,\n totalTransitions,\n totalTicks,\n };\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 } from './types.js';\nimport type { StandardBehavior, BehaviorCategory } from './behaviors/types.js';\nimport { STD_MODULES } from './types.js';\nimport { STD_OPERATORS_BY_MODULE } from './registry.js';\nimport { STANDARD_BEHAVIORS, BEHAVIORS_BY_CATEGORY } from './behaviors/registry.js';\n\n// ============================================================================\n// Domain Language Mappings\n// ============================================================================\n\n/**\n * Human-friendly module descriptions\n */\nexport const MODULE_DESCRIPTIONS: Record<StdModule, ModuleInfo> = {\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};\n\n/**\n * Human-friendly behavior category descriptions\n */\nexport const BEHAVIOR_CATEGORY_DESCRIPTIONS: Partial<Record<BehaviorCategory, CategoryInfo>> = {\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\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 * 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 || [],\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: StandardBehavior): BehaviorDoc {\n const sm = behavior.stateMachine;\n\n // Extract states list\n const states = (sm?.states || []).map(s =>\n typeof s === 'string' ? s : s.name\n );\n\n // Extract events list \n const events = (sm?.events || []).map(e =>\n typeof e === 'string' ? e : e.key\n );\n\n // Get initial state\n const initial = sm?.initial || states[0] || '';\n\n // Build state machine for visualizer\n const stateMachineDoc: BehaviorStateMachineDoc | undefined = sm ? {\n states: states.map(name => ({\n name,\n isInitial: name === initial,\n isFinal: false,\n })),\n transitions: (sm.transitions || []).map(t => ({\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 => ({\n name: e.name,\n fields: e.fields.map(f => ({\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 => ({\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: behavior.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: StandardBehavior): 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}category: '${behavior.category}',`);\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 lines.push(`${indent}${indent}initial: '${sm.initial}',`);\n\n // States\n lines.push(`${indent}${indent}states: [`);\n for (const state of sm.states) {\n const name = typeof state === 'string' ? state : state.name;\n const isInitial = typeof state === 'string' ? name === sm.initial : 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 = typeof event === 'string' ? event : 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 */\nexport function generateBehaviorsDocs(): BehaviorsDocs {\n const categories: CategoryDoc[] = [];\n\n // Group behaviors by category\n for (const [categoryId, categoryInfo] of Object.entries(BEHAVIOR_CATEGORY_DESCRIPTIONS)) {\n const categoryBehaviors = BEHAVIORS_BY_CATEGORY[categoryId as BehaviorCategory] || [];\n\n if (categoryBehaviors.length === 0) continue;\n\n const behaviors = categoryBehaviors.map((b) => generateBehaviorDoc(b));\n\n categories.push({\n id: categoryId,\n ...categoryInfo,\n behaviors,\n behaviorCount: behaviors.length,\n });\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"]}
|