@holoscript/core 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-KWYIVRIH.js → chunk-2XXE34KS.js} +2 -2
- package/dist/chunk-2XXE34KS.js.map +1 -0
- package/dist/{chunk-EU6CZMGJ.js → chunk-AFFVFO4D.js} +511 -118
- package/dist/chunk-AFFVFO4D.js.map +1 -0
- package/dist/chunk-DGUM43GV.js +10 -0
- package/dist/{chunk-4CV4JOE5.js.map → chunk-DGUM43GV.js.map} +1 -1
- package/dist/{chunk-VYIDLUCV.js → chunk-DOY73HDH.js} +4 -4
- package/dist/{chunk-VYIDLUCV.js.map → chunk-DOY73HDH.js.map} +1 -1
- package/dist/chunk-JEQ2X3Z6.cjs +12 -0
- package/dist/{chunk-CZLDE2OZ.cjs.map → chunk-JEQ2X3Z6.cjs.map} +1 -1
- package/dist/{chunk-3N67RLQP.cjs → chunk-L6VLNVKP.cjs} +511 -118
- package/dist/chunk-L6VLNVKP.cjs.map +1 -0
- package/dist/{chunk-VMZN4EVR.cjs → chunk-MFNO57XL.cjs} +2 -2
- package/dist/chunk-MFNO57XL.cjs.map +1 -0
- package/dist/{chunk-WFI4T3XB.cjs → chunk-R75MREOS.cjs} +6 -6
- package/dist/{chunk-WFI4T3XB.cjs.map → chunk-R75MREOS.cjs.map} +1 -1
- package/dist/{chunk-4OHVW4XR.cjs → chunk-T57ZL7KR.cjs} +299 -45
- package/dist/chunk-T57ZL7KR.cjs.map +1 -0
- package/dist/{chunk-MCP6D4LT.js → chunk-U72GEJZT.js} +299 -45
- package/dist/chunk-U72GEJZT.js.map +1 -0
- package/dist/debugger.cjs +6 -6
- package/dist/debugger.d.cts +1 -1
- package/dist/debugger.d.ts +1 -1
- package/dist/debugger.js +4 -4
- package/dist/index.cjs +1896 -1099
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3145 -1534
- package/dist/index.d.ts +3145 -1534
- package/dist/index.js +1922 -1133
- package/dist/index.js.map +1 -1
- package/dist/parser.cjs +3 -3
- package/dist/parser.d.cts +34 -1
- package/dist/parser.d.ts +34 -1
- package/dist/parser.js +2 -2
- package/dist/runtime.cjs +3 -3
- package/dist/runtime.d.cts +47 -27
- package/dist/runtime.d.ts +47 -27
- package/dist/runtime.js +2 -2
- package/dist/type-checker.cjs +4 -4
- package/dist/type-checker.d.cts +3 -3
- package/dist/type-checker.d.ts +3 -3
- package/dist/type-checker.js +2 -2
- package/dist/{types-D6g4ACjP.d.cts → types-4h8cbtF_.d.cts} +80 -13
- package/dist/{types-D6g4ACjP.d.ts → types-4h8cbtF_.d.ts} +80 -13
- package/package.json +21 -20
- package/LICENSE +0 -21
- package/dist/chunk-3N67RLQP.cjs.map +0 -1
- package/dist/chunk-4CV4JOE5.js +0 -24
- package/dist/chunk-4OHVW4XR.cjs.map +0 -1
- package/dist/chunk-CZLDE2OZ.cjs +0 -28
- package/dist/chunk-EU6CZMGJ.js.map +0 -1
- package/dist/chunk-KWYIVRIH.js.map +0 -1
- package/dist/chunk-MCP6D4LT.js.map +0 -1
- package/dist/chunk-VMZN4EVR.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/HoloScriptRuntime.ts"],"names":["logger"],"mappings":"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","file":"chunk-3N67RLQP.cjs","sourcesContent":["/**\n * HoloScript Runtime Engine\n *\n * Executes HoloScript AST in VR environment with spatial computation.\n * Supports:\n * - Orb creation and manipulation\n * - Function definition and invocation with arguments\n * - Connections and reactive data flow\n * - Gates (conditionals)\n * - Streams (data pipelines)\n * - 2D UI elements\n * - Built-in commands (show, hide, animate, pulse)\n * - Expression evaluation\n * - Event system\n */\n\nimport { logger } from './logger';\nimport type {\n ASTNode,\n OrbNode,\n MethodNode,\n ConnectionNode,\n GateNode,\n StreamNode,\n SpatialPosition,\n HologramProperties,\n HologramShape,\n RuntimeContext,\n ExecutionResult,\n ParticleSystem,\n TransformationNode,\n UI2DNode,\n} from './types';\nimport type { ImportLoader } from './types';\n\nconst RUNTIME_SECURITY_LIMITS = {\n maxExecutionDepth: 50,\n maxTotalNodes: 1000,\n maxExecutionTimeMs: 5000,\n maxParticlesPerSystem: 1000,\n maxStringLength: 10000,\n maxCallStackDepth: 100,\n};\n\n/**\n * Event handler type\n */\ntype EventHandler = (data?: unknown) => void | Promise<void>;\n\n/**\n * Scope for variable resolution\n */\ninterface Scope {\n variables: Map<string, unknown>;\n parent?: Scope;\n}\n\n/**\n * Animation state\n */\ninterface Animation {\n target: string;\n property: string;\n from: number;\n to: number;\n duration: number;\n startTime: number;\n easing: string;\n loop?: boolean;\n yoyo?: boolean;\n}\n\n/**\n * UI Element state\n */\ninterface UIElementState {\n type: string;\n name: string;\n properties: Record<string, unknown>;\n value?: unknown;\n visible: boolean;\n enabled: boolean;\n}\n\nexport class HoloScriptRuntime {\n private context: RuntimeContext;\n private particleSystems: Map<string, ParticleSystem> = new Map();\n private executionHistory: ExecutionResult[] = [];\n private startTime: number = 0;\n private nodeCount: number = 0;\n\n // Enhanced runtime state\n private currentScope: Scope;\n private callStack: string[] = [];\n private eventHandlers: Map<string, EventHandler[]> = new Map();\n private animations: Map<string, Animation> = new Map();\n private uiElements: Map<string, UIElementState> = new Map();\n private builtinFunctions: Map<string, (args: unknown[]) => unknown>;\n\n constructor(_importLoader?: ImportLoader) {\n this.context = this.createEmptyContext();\n this.currentScope = { variables: this.context.variables };\n this.builtinFunctions = this.initBuiltins();\n }\n\n /**\n * Initialize built-in functions\n */\n private initBuiltins(): Map<string, (args: unknown[]) => unknown> {\n const builtins = new Map<string, (args: unknown[]) => unknown>();\n\n // Display commands\n builtins.set('show', (args) => {\n const target = String(args[0]);\n const element = this.uiElements.get(target);\n if (element) element.visible = true;\n const hologram = this.context.hologramState.get(target);\n if (hologram) {\n this.createParticleEffect(`${target}_show`, { x: 0, y: 0, z: 0 }, hologram.color, 15);\n }\n logger.info('show', { target });\n return { shown: target };\n });\n\n builtins.set('hide', (args) => {\n const target = String(args[0]);\n const element = this.uiElements.get(target);\n if (element) element.visible = false;\n logger.info('hide', { target });\n return { hidden: target };\n });\n\n // Animation commands\n builtins.set('pulse', (args) => {\n const target = String(args[0]);\n const options = (args[1] as Record<string, unknown>) || {};\n const duration = Number(options.duration) || 1000;\n const color = String(options.color || '#ffffff');\n\n const position = this.context.spatialMemory.get(target) || { x: 0, y: 0, z: 0 };\n this.createParticleEffect(`${target}_pulse`, position, color, 30);\n\n return { pulsing: target, duration };\n });\n\n builtins.set('animate', (args) => {\n const target = String(args[0]);\n const options = (args[1] as Record<string, unknown>) || {};\n\n const animation: Animation = {\n target,\n property: String(options.property || 'position.y'),\n from: Number(options.from || 0),\n to: Number(options.to || 1),\n duration: Number(options.duration || 1000),\n startTime: Date.now(),\n easing: String(options.easing || 'linear'),\n loop: Boolean(options.loop),\n yoyo: Boolean(options.yoyo),\n };\n\n this.animations.set(`${target}_${animation.property}`, animation);\n return { animating: target, animation };\n });\n\n // Spatial commands\n builtins.set('spawn', (args) => {\n const target = String(args[0]);\n const position = (args[1] as SpatialPosition) || { x: 0, y: 0, z: 0 };\n\n this.context.spatialMemory.set(target, position);\n this.createParticleEffect(`${target}_spawn`, position, '#00ff00', 25);\n\n return { spawned: target, at: position };\n });\n\n builtins.set('move', (args) => {\n const target = String(args[0]);\n const position = (args[1] as SpatialPosition) || { x: 0, y: 0, z: 0 };\n\n const current = this.context.spatialMemory.get(target);\n if (current) {\n this.context.spatialMemory.set(target, position);\n this.createConnectionStream(target, `${target}_dest`, current, position, 'move');\n }\n\n return { moved: target, to: position };\n });\n\n // Data commands\n builtins.set('set', (args) => {\n const target = String(args[0]);\n const value = args[1];\n this.setVariable(target, value);\n return { set: target, value };\n });\n\n builtins.set('get', (args) => {\n const target = String(args[0]);\n return this.getVariable(target);\n });\n\n // Math functions\n builtins.set('add', (args) => Number(args[0]) + Number(args[1]));\n builtins.set('subtract', (args) => Number(args[0]) - Number(args[1]));\n builtins.set('multiply', (args) => Number(args[0]) * Number(args[1]));\n builtins.set('divide', (args) => Number(args[1]) !== 0 ? Number(args[0]) / Number(args[1]) : 0);\n builtins.set('mod', (args) => Number(args[0]) % Number(args[1]));\n builtins.set('abs', (args) => Math.abs(Number(args[0])));\n builtins.set('floor', (args) => Math.floor(Number(args[0])));\n builtins.set('ceil', (args) => Math.ceil(Number(args[0])));\n builtins.set('round', (args) => Math.round(Number(args[0])));\n builtins.set('min', (args) => Math.min(...args.map(Number)));\n builtins.set('max', (args) => Math.max(...args.map(Number)));\n builtins.set('random', () => Math.random());\n\n // String functions\n builtins.set('concat', (args) => args.map(String).join(''));\n builtins.set('length', (args) => {\n const val = args[0];\n if (typeof val === 'string') return val.length;\n if (Array.isArray(val)) return val.length;\n return 0;\n });\n builtins.set('substring', (args) => String(args[0]).substring(Number(args[1]), Number(args[2])));\n builtins.set('uppercase', (args) => String(args[0]).toUpperCase());\n builtins.set('lowercase', (args) => String(args[0]).toLowerCase());\n\n // Array functions\n builtins.set('push', (args) => {\n const arr = args[0];\n if (Array.isArray(arr)) {\n arr.push(args[1]);\n return arr;\n }\n return [args[0], args[1]];\n });\n builtins.set('pop', (args) => {\n const arr = args[0];\n if (Array.isArray(arr)) return arr.pop();\n return undefined;\n });\n builtins.set('at', (args) => {\n const arr = args[0];\n const index = Number(args[1]);\n if (Array.isArray(arr)) return arr[index];\n return undefined;\n });\n\n // Console/Debug\n builtins.set('log', (args) => {\n logger.info('HoloScript log', { args });\n return args[0];\n });\n builtins.set('print', (args) => {\n const message = args.map(String).join(' ');\n logger.info('print', { message });\n return message;\n });\n\n // Type checking\n builtins.set('typeof', (args) => typeof args[0]);\n builtins.set('isArray', (args) => Array.isArray(args[0]));\n builtins.set('isNumber', (args) => typeof args[0] === 'number' && !isNaN(args[0] as number));\n builtins.set('isString', (args) => typeof args[0] === 'string');\n\n return builtins;\n }\n\n /**\n * Execute a single AST node\n */\n async executeNode(node: ASTNode): Promise<ExecutionResult> {\n const startTime = Date.now();\n\n try {\n this.context.executionStack.push(node);\n\n let result: ExecutionResult;\n\n switch (node.type) {\n case 'orb':\n result = await this.executeOrb(node as OrbNode);\n break;\n case 'method':\n case 'function':\n result = await this.executeFunction(node as MethodNode);\n break;\n case 'connection':\n result = await this.executeConnection(node as ConnectionNode);\n break;\n case 'gate':\n result = await this.executeGate(node as GateNode);\n break;\n case 'stream':\n result = await this.executeStream(node as StreamNode);\n break;\n case 'execute':\n case 'call':\n result = await this.executeCall(node as ASTNode & { target?: string; args?: unknown[] });\n break;\n case 'debug':\n result = await this.executeDebug(node);\n break;\n case 'visualize':\n result = await this.executeVisualize(node);\n break;\n case '2d-element':\n result = await this.executeUIElement(node as unknown as UI2DNode);\n break;\n case 'nexus':\n case 'building':\n result = await this.executeStructure(node);\n break;\n case 'assignment':\n result = await this.executeAssignment(node as ASTNode & { name: string; value: unknown });\n break;\n case 'return':\n result = await this.executeReturn(node as ASTNode & { value: unknown });\n break;\n case 'generic':\n result = await this.executeGeneric(node);\n break;\n case 'expression-statement':\n result = await this.executeCall(node);\n break;\n default:\n result = {\n success: false,\n error: `Unknown node type: ${node.type}`,\n executionTime: Date.now() - startTime,\n };\n }\n\n result.executionTime = Date.now() - startTime;\n this.executionHistory.push(result);\n this.context.executionStack.pop();\n\n return result;\n } catch (error) {\n const execTime = Date.now() - startTime;\n const errorResult: ExecutionResult = {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n executionTime: execTime,\n };\n\n this.executionHistory.push(errorResult);\n this.context.executionStack.pop();\n\n return errorResult;\n }\n }\n\n /**\n * Execute multiple nodes in sequence\n */\n async executeProgram(nodes: ASTNode[], depth: number = 0): Promise<ExecutionResult[]> {\n if (depth === 0) {\n this.startTime = Date.now();\n this.nodeCount = 0;\n }\n\n if (depth > RUNTIME_SECURITY_LIMITS.maxExecutionDepth) {\n logger.error('Max execution depth exceeded', { depth });\n return [{\n success: false,\n error: `Max execution depth exceeded (${RUNTIME_SECURITY_LIMITS.maxExecutionDepth})`,\n executionTime: 0,\n }];\n }\n\n const results: ExecutionResult[] = [];\n\n for (const node of nodes) {\n this.nodeCount++;\n if (this.nodeCount > RUNTIME_SECURITY_LIMITS.maxTotalNodes) {\n logger.error('Max total nodes exceeded', { count: this.nodeCount });\n results.push({\n success: false,\n error: 'Max total nodes exceeded',\n executionTime: Date.now() - this.startTime,\n });\n break;\n }\n\n if (Date.now() - this.startTime > RUNTIME_SECURITY_LIMITS.maxExecutionTimeMs) {\n logger.error('Execution timeout', { duration: Date.now() - this.startTime });\n results.push({\n success: false,\n error: 'Execution timeout',\n executionTime: Date.now() - this.startTime,\n });\n break;\n }\n\n const result = await this.executeNode(node);\n results.push(result);\n\n // Stop on error (except visualize) or return statement\n if (!result.success && node.type !== 'visualize') {\n break;\n }\n if (node.type === 'return') {\n break;\n }\n }\n\n return results;\n }\n\n /**\n * Call a function with arguments\n */\n async callFunction(name: string, args: unknown[] = []): Promise<ExecutionResult> {\n // Check built-in functions first\n const builtin = this.builtinFunctions.get(name);\n if (builtin) {\n try {\n const result = builtin(args);\n return {\n success: true,\n output: result,\n };\n } catch (error) {\n return {\n success: false,\n error: `Built-in function ${name} failed: ${error}`,\n };\n }\n }\n\n // Check user-defined functions\n const func = this.context.functions.get(name);\n if (!func) {\n return {\n success: false,\n error: `Function '${name}' not found`,\n };\n }\n\n // Check call stack depth\n if (this.callStack.length >= RUNTIME_SECURITY_LIMITS.maxCallStackDepth) {\n return {\n success: false,\n error: `Max call stack depth exceeded (${RUNTIME_SECURITY_LIMITS.maxCallStackDepth})`,\n };\n }\n\n // Create new scope\n const parentScope = this.currentScope;\n this.currentScope = {\n variables: new Map(),\n parent: parentScope,\n };\n\n // Bind parameters\n func.parameters.forEach((param, index) => {\n const value = index < args.length ? args[index] : param.defaultValue;\n this.currentScope.variables.set(param.name, value);\n });\n\n // Push to call stack\n this.callStack.push(name);\n\n // Execute function body\n let returnValue: unknown = undefined;\n try {\n const results = await this.executeProgram(func.body, this.callStack.length);\n const lastResult = results[results.length - 1];\n\n if (lastResult?.output !== undefined) {\n returnValue = lastResult.output;\n }\n\n // Visual effect\n this.createExecutionEffect(name, func.position || { x: 0, y: 0, z: 0 });\n\n return {\n success: results.every(r => r.success),\n output: returnValue,\n hologram: func.hologram,\n spatialPosition: func.position,\n };\n } finally {\n // Restore scope\n this.currentScope = parentScope;\n this.callStack.pop();\n }\n }\n\n /**\n * Set a variable in current scope\n */\n setVariable(name: string, value: unknown): void {\n // Handle property access (e.g., \"obj.prop\")\n if (name.includes('.')) {\n const parts = name.split('.');\n const objName = parts[0];\n const propPath = parts.slice(1);\n\n let obj = this.getVariable(objName);\n if (obj === undefined || typeof obj !== 'object' || obj === null) {\n obj = {};\n this.currentScope.variables.set(objName, obj);\n }\n\n let current = obj as Record<string, unknown>;\n for (let i = 0; i < propPath.length - 1; i++) {\n if (current[propPath[i]] === undefined || typeof current[propPath[i]] !== 'object') {\n current[propPath[i]] = {};\n }\n current = current[propPath[i]] as Record<string, unknown>;\n }\n current[propPath[propPath.length - 1]] = value;\n } else {\n this.currentScope.variables.set(name, value);\n }\n }\n\n /**\n * Get a variable from scope chain\n */\n getVariable(name: string): unknown {\n // Handle property access (e.g., \"obj.prop\")\n if (name.includes('.')) {\n const parts = name.split('.');\n let value = this.getVariable(parts[0]);\n\n for (let i = 1; i < parts.length && value !== undefined; i++) {\n if (typeof value === 'object' && value !== null) {\n value = (value as Record<string, unknown>)[parts[i]];\n } else {\n return undefined;\n }\n }\n return value;\n }\n\n // Walk scope chain\n let scope: Scope | undefined = this.currentScope;\n while (scope) {\n if (scope.variables.has(name)) {\n return scope.variables.get(name);\n }\n scope = scope.parent;\n }\n\n // Check context variables\n if (this.context.variables.has(name)) {\n return this.context.variables.get(name);\n }\n\n // Fallback to functions map (for imported functions)\n if (this.context.functions.has(name)) {\n return this.context.functions.get(name);\n }\n\n return undefined;\n }\n\n /**\n * Evaluate an expression\n */\n evaluateExpression(expr: string): unknown {\n if (!expr || typeof expr !== 'string') return expr;\n\n expr = expr.trim();\n\n // Security check\n const suspicious = ['eval', 'process', 'require', '__proto__', 'constructor', 'Function'];\n if (suspicious.some(kw => expr.toLowerCase().includes(kw))) {\n logger.warn('Suspicious expression blocked', { expr });\n return undefined;\n }\n\n // String literal\n if ((expr.startsWith('\"') && expr.endsWith('\"')) || (expr.startsWith(\"'\") && expr.endsWith(\"'\"))) {\n return expr.slice(1, -1);\n }\n\n // Number literal\n if (/^-?\\d+(\\.\\d+)?$/.test(expr)) {\n return parseFloat(expr);\n }\n\n // Boolean literal\n if (expr === 'true') return true;\n if (expr === 'false') return false;\n if (expr === 'null') return null;\n if (expr === 'undefined') return undefined;\n\n // Array literal [a, b, c]\n if (expr.startsWith('[') && expr.endsWith(']')) {\n const inner = expr.slice(1, -1);\n if (!inner.trim()) return [];\n const elements = this.splitByComma(inner);\n return elements.map(e => this.evaluateExpression(e.trim()));\n }\n\n // Object literal {a: 1, b: 2}\n if (expr.startsWith('{') && expr.endsWith('}')) {\n const inner = expr.slice(1, -1);\n if (!inner.trim()) return {};\n const pairs = this.splitByComma(inner);\n const obj: Record<string, unknown> = {};\n for (const pair of pairs) {\n const colonIndex = pair.indexOf(':');\n if (colonIndex > 0) {\n const key = pair.slice(0, colonIndex).trim();\n const value = pair.slice(colonIndex + 1).trim();\n obj[key] = this.evaluateExpression(value);\n }\n }\n return obj;\n }\n\n // Function call: name(args)\n const funcMatch = expr.match(/^(\\w+)\\s*\\((.*)?\\)$/);\n if (funcMatch) {\n const [, funcName, argsStr] = funcMatch;\n const args = argsStr ? this.splitByComma(argsStr).map(a => this.evaluateExpression(a.trim())) : [];\n\n // Check builtins\n const builtin = this.builtinFunctions.get(funcName);\n if (builtin) {\n return builtin(args);\n }\n\n // Check user functions (but don't execute - just reference)\n if (this.context.functions.has(funcName)) {\n // For async execution, return a promise marker\n return { __holoCall: funcName, args };\n }\n\n return undefined;\n }\n\n // Binary operations: a + b, a - b, etc.\n const binaryOps = [\n { pattern: /(.+)\\s*\\+\\s*(.+)/, op: (a: unknown, b: unknown) => (typeof a === 'string' || typeof b === 'string') ? String(a) + String(b) : Number(a) + Number(b) },\n { pattern: /(.+)\\s*-\\s*(.+)/, op: (a: unknown, b: unknown) => Number(a) - Number(b) },\n { pattern: /(.+)\\s*\\*\\s*(.+)/, op: (a: unknown, b: unknown) => Number(a) * Number(b) },\n { pattern: /(.+)\\s*\\/\\s*(.+)/, op: (a: unknown, b: unknown) => Number(b) !== 0 ? Number(a) / Number(b) : 0 },\n { pattern: /(.+)\\s*%\\s*(.+)/, op: (a: unknown, b: unknown) => Number(a) % Number(b) },\n ];\n\n for (const { pattern, op } of binaryOps) {\n const match = expr.match(pattern);\n if (match) {\n const left = this.evaluateExpression(match[1]);\n const right = this.evaluateExpression(match[2]);\n return op(left, right);\n }\n }\n\n // Variable reference\n return this.getVariable(expr);\n }\n\n /**\n * Split string by comma, respecting nesting\n */\n private splitByComma(str: string): string[] {\n const parts: string[] = [];\n let current = '';\n let depth = 0;\n let inString = false;\n let stringChar = '';\n\n for (let i = 0; i < str.length; i++) {\n const char = str[i];\n\n if (!inString && (char === '\"' || char === \"'\")) {\n inString = true;\n stringChar = char;\n } else if (inString && char === stringChar && str[i - 1] !== '\\\\') {\n inString = false;\n }\n\n if (!inString) {\n if (char === '(' || char === '[' || char === '{') depth++;\n if (char === ')' || char === ']' || char === '}') depth--;\n\n if (char === ',' && depth === 0) {\n parts.push(current.trim());\n current = '';\n continue;\n }\n }\n\n current += char;\n }\n\n if (current.trim()) {\n parts.push(current.trim());\n }\n\n return parts;\n }\n\n // ============================================================================\n // Node Executors\n // ============================================================================\n\n private async executeOrb(node: OrbNode): Promise<ExecutionResult> {\n if (node.position) {\n this.context.spatialMemory.set(node.name, node.position);\n }\n\n // Create orb object with reactive properties\n const orbData = {\n __type: 'orb',\n name: node.name,\n properties: { ...node.properties },\n position: node.position || { x: 0, y: 0, z: 0 },\n hologram: node.hologram,\n created: Date.now(),\n // Methods bound to this orb\n show: () => this.builtinFunctions.get('show')!([node.name]),\n hide: () => this.builtinFunctions.get('hide')!([node.name]),\n pulse: (opts?: Record<string, unknown>) => this.builtinFunctions.get('pulse')!([node.name, opts]),\n };\n\n this.context.variables.set(node.name, orbData);\n\n if (node.hologram) {\n this.context.hologramState.set(node.name, node.hologram);\n }\n\n this.createParticleEffect(`${node.name}_creation`, node.position || { x: 0, y: 0, z: 0 }, '#00ffff', 20);\n\n logger.info('Orb created', { name: node.name, properties: Object.keys(node.properties) });\n\n return {\n success: true,\n output: orbData,\n hologram: node.hologram,\n spatialPosition: node.position,\n };\n }\n\n private async executeFunction(node: MethodNode): Promise<ExecutionResult> {\n this.context.functions.set(node.name, node);\n\n const hologram: HologramProperties = {\n shape: 'cube',\n color: '#ff6b35',\n size: 1.5,\n glow: true,\n interactive: true,\n ...node.hologram,\n };\n\n this.context.hologramState.set(node.name, hologram);\n\n logger.info('Function defined', { name: node.name, params: node.parameters.map(p => p.name) });\n\n return {\n success: true,\n output: `Function '${node.name}' defined with ${node.parameters.length} parameter(s)`,\n hologram,\n spatialPosition: node.position,\n };\n }\n\n private async executeConnection(node: ConnectionNode): Promise<ExecutionResult> {\n this.context.connections.push(node);\n\n const fromPos = this.context.spatialMemory.get(node.from);\n const toPos = this.context.spatialMemory.get(node.to);\n\n if (fromPos && toPos) {\n this.createConnectionStream(node.from, node.to, fromPos, toPos, node.dataType);\n }\n\n // Set up reactive binding if bidirectional\n if (node.bidirectional) {\n // When 'from' changes, update 'to'\n this.on(`${node.from}.changed`, async (data) => {\n this.setVariable(node.to, data);\n this.emit(`${node.to}.changed`, data);\n });\n // When 'to' changes, update 'from'\n this.on(`${node.to}.changed`, async (data) => {\n this.setVariable(node.from, data);\n this.emit(`${node.from}.changed`, data);\n });\n }\n\n logger.info('Connection created', { from: node.from, to: node.to, dataType: node.dataType });\n\n return {\n success: true,\n output: `Connected '${node.from}' to '${node.to}' (${node.dataType})`,\n hologram: {\n shape: 'cylinder',\n color: this.getDataTypeColor(node.dataType),\n size: 0.1,\n glow: true,\n interactive: false,\n },\n };\n }\n\n private async executeGate(node: GateNode): Promise<ExecutionResult> {\n try {\n const condition = this.evaluateCondition(node.condition);\n const path = condition ? node.truePath : node.falsePath;\n\n logger.info('Gate evaluation', { condition: node.condition, result: condition });\n\n if (path.length > 0) {\n await this.executeProgram(path, this.callStack.length + 1);\n }\n\n return {\n success: true,\n output: `Gate: took ${condition ? 'true' : 'false'} path`,\n hologram: {\n shape: 'pyramid',\n color: condition ? '#00ff00' : '#ff0000',\n size: 1,\n glow: true,\n interactive: true,\n },\n };\n } catch (error) {\n return {\n success: false,\n error: `Gate execution failed: ${error}`,\n };\n }\n }\n\n private async executeStream(node: StreamNode): Promise<ExecutionResult> {\n let data = this.getVariable(node.source);\n\n logger.info('Stream processing', { name: node.name, source: node.source, transforms: node.transformations.length });\n\n for (const transform of node.transformations) {\n data = await this.applyTransformation(data, transform);\n }\n\n this.setVariable(`${node.name}_result`, data);\n this.createFlowingStream(node.name, node.position || { x: 0, y: 0, z: 0 }, data);\n\n return {\n success: true,\n output: `Stream '${node.name}' processed ${Array.isArray(data) ? data.length : 1} item(s)`,\n hologram: node.hologram,\n spatialPosition: node.position,\n };\n }\n\n private async executeCall(node: ASTNode & { target?: string; args?: unknown[] }): Promise<ExecutionResult> {\n const funcName = node.target || '';\n const args = node.args || [];\n\n return this.callFunction(funcName, args);\n }\n\n private async executeDebug(node: ASTNode & { target?: string }): Promise<ExecutionResult> {\n const debugInfo = {\n variables: Object.fromEntries(this.currentScope.variables),\n contextVariables: Object.fromEntries(this.context.variables),\n functions: Array.from(this.context.functions.keys()),\n connections: this.context.connections.length,\n callStack: [...this.callStack],\n uiElements: Array.from(this.uiElements.keys()),\n animations: Array.from(this.animations.keys()),\n executionHistory: this.executionHistory.slice(-10),\n };\n\n const debugOrb: HologramProperties = {\n shape: 'pyramid',\n color: '#ff1493',\n size: 0.8,\n glow: true,\n interactive: true,\n };\n\n this.context.hologramState.set(`debug_${node.target || 'program'}`, debugOrb);\n\n logger.info('Debug info', debugInfo);\n\n return {\n success: true,\n output: debugInfo,\n hologram: debugOrb,\n };\n }\n\n private async executeVisualize(node: ASTNode & { target?: string }): Promise<ExecutionResult> {\n const target = node.target || '';\n const data = this.getVariable(target);\n\n if (data === undefined) {\n return {\n success: false,\n error: `No data found for '${target}'`,\n };\n }\n\n const visHologram: HologramProperties = {\n shape: 'cylinder',\n color: '#32cd32',\n size: 1.5,\n glow: true,\n interactive: true,\n };\n\n this.createDataVisualization(target, data, node.position || { x: 0, y: 0, z: 0 });\n\n return {\n success: true,\n output: { visualizing: target, data },\n hologram: visHologram,\n };\n }\n\n private async executeUIElement(node: UI2DNode): Promise<ExecutionResult> {\n const element: UIElementState = {\n type: node.elementType,\n name: node.name,\n properties: { ...node.properties },\n visible: true,\n enabled: true,\n };\n\n // Set initial value based on element type\n if (node.elementType === 'textinput') {\n element.value = node.properties.value || '';\n } else if (node.elementType === 'slider') {\n element.value = node.properties.value || node.properties.min || 0;\n } else if (node.elementType === 'toggle') {\n element.value = node.properties.checked || false;\n }\n\n this.uiElements.set(node.name, element);\n\n // Register event handlers\n if (node.events) {\n for (const [eventName, handlerName] of Object.entries(node.events)) {\n this.on(`${node.name}.${eventName}`, async () => {\n await this.callFunction(handlerName);\n });\n }\n }\n\n logger.info('UI element created', { type: node.elementType, name: node.name });\n\n return {\n success: true,\n output: element,\n };\n }\n\n /**\n * Execute generic voice commands\n * Handles commands like: show, hide, animate, pulse, create\n */\n private async executeGeneric(_node: ASTNode): Promise<ExecutionResult> {\n const genericNode = _node as any;\n const command = String(genericNode.command || '').trim().toLowerCase();\n const tokens = command.split(/\\s+/);\n const action = tokens[0];\n const target = tokens[1];\n\n logger.info('Executing generic command', { command, action, target });\n\n try {\n let result: any;\n\n switch (action) {\n case 'show':\n result = await this.executeShowCommand(target, genericNode);\n break;\n case 'hide':\n result = await this.executeHideCommand(target, genericNode);\n break;\n case 'create':\n case 'summon':\n result = await this.executeCreateCommand(tokens.slice(1), genericNode);\n break;\n case 'animate':\n result = await this.executeAnimateCommand(target, tokens.slice(2), genericNode);\n break;\n case 'pulse':\n result = await this.executePulseCommand(target, tokens.slice(2), genericNode);\n break;\n case 'move':\n result = await this.executeMoveCommand(target, tokens.slice(2), genericNode);\n break;\n case 'delete':\n case 'remove':\n result = await this.executeDeleteCommand(target, genericNode);\n break;\n default:\n // Default: create visual representation of the generic command\n logger.warn('Unknown voice command action', { action, command });\n result = {\n executed: false,\n message: `Unknown command: ${action}`,\n };\n }\n\n return {\n success: true,\n output: result,\n };\n } catch (error) {\n return {\n success: false,\n error: `Generic command execution failed: ${String(error)}`,\n };\n }\n }\n\n /**\n * Execute 'show' command\n */\n private async executeShowCommand(target: string, _node: any): Promise<any> {\n // Create or show orb for this target\n const hologram = _node.hologram || {\n shape: 'orb',\n color: '#00ffff',\n size: 0.8,\n glow: true,\n interactive: true,\n };\n\n const position = _node.position || { x: 0, y: 0, z: 0 };\n this.context.spatialMemory.set(target, position);\n this.createParticleEffect(`${target}_show`, position, hologram.color, 15);\n\n logger.info('Show command executed', { target, position });\n\n return {\n showed: target,\n hologram,\n position,\n };\n }\n\n /**\n * Execute 'hide' command\n */\n private async executeHideCommand(target: string, _node: any): Promise<any> {\n const position = this.context.spatialMemory.get(target) || { x: 0, y: 0, z: 0 };\n this.createParticleEffect(`${target}_hide`, position, '#ff0000', 10);\n \n logger.info('Hide command executed', { target });\n\n return {\n hidden: target,\n };\n }\n\n /**\n * Execute 'create' command\n */\n private async executeCreateCommand(tokens: string[], _node: any): Promise<any> {\n if (tokens.length < 2) {\n return { error: 'Create command requires shape and name' };\n }\n\n const shape = tokens[0];\n const name = tokens[1];\n const position = _node.position || { x: 0, y: 0, z: 0 };\n\n const hologram: HologramProperties = {\n shape: shape as HologramShape,\n color: _node.hologram?.color || '#00ffff',\n size: _node.hologram?.size || 1,\n glow: _node.hologram?.glow !== false,\n interactive: _node.hologram?.interactive !== false,\n };\n\n this.context.spatialMemory.set(name, position);\n this.createParticleEffect(`${name}_create`, position, hologram.color, 20);\n\n logger.info('Create command executed', { shape, name, position });\n\n return {\n created: name,\n shape,\n hologram,\n position,\n };\n }\n\n /**\n * Execute 'animate' command\n */\n private async executeAnimateCommand(target: string, tokens: string[], _node: any): Promise<any> {\n const property = tokens[0] || 'position.y';\n const duration = parseInt(tokens[1] || '1000', 10);\n \n const animation: Animation = {\n target,\n property,\n from: 0,\n to: 1,\n duration,\n startTime: Date.now(),\n easing: 'ease-in-out',\n };\n\n this.animations.set(`${target}_${property}`, animation);\n\n logger.info('Animate command executed', { target, property, duration });\n\n return {\n animating: target,\n animation,\n };\n }\n\n /**\n * Execute 'pulse' command\n */\n private async executePulseCommand(target: string, tokens: string[], _node: any): Promise<any> {\n const duration = parseInt(tokens[0] || '500', 10);\n const position = this.context.spatialMemory.get(target) || { x: 0, y: 0, z: 0 };\n\n // Create pulsing particle effect\n this.createParticleEffect(`${target}_pulse`, position, '#ffff00', 30);\n\n // Create animation for scale\n const animation: Animation = {\n target,\n property: 'scale',\n from: 1,\n to: 1.5,\n duration,\n startTime: Date.now(),\n easing: 'sine',\n yoyo: true,\n loop: true,\n };\n\n this.animations.set(`${target}_pulse`, animation);\n\n logger.info('Pulse command executed', { target, duration });\n\n return {\n pulsing: target,\n duration,\n };\n }\n\n /**\n * Execute 'move' command\n */\n private async executeMoveCommand(target: string, tokens: string[], _node: any): Promise<any> {\n const x = parseFloat(tokens[0] || '0');\n const y = parseFloat(tokens[1] || '0');\n const z = parseFloat(tokens[2] || '0');\n const position: SpatialPosition = { x, y, z };\n\n const current = this.context.spatialMemory.get(target);\n if (current) {\n this.context.spatialMemory.set(target, position);\n this.createConnectionStream(target, `${target}_move`, current, position, 'movement');\n } else {\n this.context.spatialMemory.set(target, position);\n }\n\n logger.info('Move command executed', { target, position });\n\n return {\n moved: target,\n to: position,\n };\n }\n\n /**\n * Execute 'delete' command\n */\n private async executeDeleteCommand(target: string, _node: any): Promise<any> {\n const position = this.context.spatialMemory.get(target);\n if (position) {\n this.createParticleEffect(`${target}_delete`, position, '#ff0000', 15);\n this.context.spatialMemory.delete(target);\n }\n\n logger.info('Delete command executed', { target });\n\n return {\n deleted: target,\n };\n }\n\n private async executeStructure(node: ASTNode): Promise<ExecutionResult> {\n // Handle nexus, building, and other structural elements\n const hologram: HologramProperties = node.hologram || {\n shape: node.type === 'nexus' ? 'sphere' : 'cube',\n color: node.type === 'nexus' ? '#9b59b6' : '#e74c3c',\n size: node.type === 'nexus' ? 3 : 4,\n glow: true,\n interactive: true,\n };\n\n return {\n success: true,\n output: { type: node.type, created: true },\n hologram,\n spatialPosition: node.position,\n };\n }\n\n private async executeAssignment(node: ASTNode & { name: string; value: unknown }): Promise<ExecutionResult> {\n const value = this.evaluateExpression(String(node.value));\n this.setVariable(node.name, value);\n\n return {\n success: true,\n output: { assigned: node.name, value },\n };\n }\n\n private async executeReturn(node: ASTNode & { value: unknown }): Promise<ExecutionResult> {\n const value = this.evaluateExpression(String(node.value));\n\n return {\n success: true,\n output: value,\n };\n }\n\n // ============================================================================\n // Condition Evaluation\n // ============================================================================\n\n private evaluateCondition(condition: string): boolean {\n if (!condition) return false;\n\n const suspiciousKeywords = ['eval', 'process', 'require', '__proto__', 'constructor'];\n if (suspiciousKeywords.some(kw => condition.toLowerCase().includes(kw))) {\n logger.warn('Suspicious condition blocked', { condition });\n return false;\n }\n\n try {\n // Boolean literals\n if (condition.trim().toLowerCase() === 'true') return true;\n if (condition.trim().toLowerCase() === 'false') return false;\n\n // Comparison operators\n const comparisonPatterns: Array<{ regex: RegExp; logical?: string }> = [\n { regex: /^(.+?)\\s*(===|!==)\\s*(.+)$/ },\n { regex: /^(.+?)\\s*(==|!=|>=|<=|>|<)\\s*(.+)$/ },\n { regex: /^(.+?)\\s*(&&)\\s*(.+)$/, logical: 'and' },\n { regex: /^(.+?)\\s*(\\|\\|)\\s*(.+)$/, logical: 'or' },\n ];\n\n for (const { regex, logical } of comparisonPatterns) {\n const match = condition.match(regex);\n if (match) {\n const [, leftExpr, operator, rightExpr] = match;\n const left = this.evaluateExpression(leftExpr.trim());\n const right = this.evaluateExpression(rightExpr.trim());\n\n if (logical === 'and') return Boolean(left) && Boolean(right);\n if (logical === 'or') return Boolean(left) || Boolean(right);\n\n switch (operator) {\n case '===': return left === right;\n case '!==': return left !== right;\n case '==': return left == right;\n case '!=': return left != right;\n case '>=': return Number(left) >= Number(right);\n case '<=': return Number(left) <= Number(right);\n case '>': return Number(left) > Number(right);\n case '<': return Number(left) < Number(right);\n }\n }\n }\n\n // Negation\n if (condition.startsWith('!')) {\n return !this.evaluateCondition(condition.slice(1).trim());\n }\n\n // Variable truthiness\n const value = this.evaluateExpression(condition.trim());\n return Boolean(value);\n } catch (error) {\n logger.error('Condition evaluation error', { condition, error });\n return false;\n }\n }\n\n // ============================================================================\n // Transformation\n // ============================================================================\n\n private async applyTransformation(data: unknown, transform: TransformationNode): Promise<unknown> {\n const params = transform.parameters || {};\n\n switch (transform.operation) {\n case 'filter': {\n if (!Array.isArray(data)) return data;\n const predicate = params.predicate as string;\n if (predicate) {\n return data.filter(item => {\n this.setVariable('_item', item);\n return this.evaluateCondition(predicate);\n });\n }\n return data.filter(item => item !== null && item !== undefined);\n }\n\n case 'map': {\n if (!Array.isArray(data)) return data;\n const mapper = params.mapper as string;\n if (mapper) {\n return data.map(item => {\n this.setVariable('_item', item);\n return this.evaluateExpression(mapper);\n });\n }\n return data.map(item => ({ value: item, processed: true }));\n }\n\n case 'reduce': {\n if (!Array.isArray(data)) return data;\n const initial = params.initial ?? 0;\n const reducer = params.reducer as string;\n if (reducer) {\n return data.reduce((acc, item) => {\n this.setVariable('_acc', acc);\n this.setVariable('_item', item);\n return this.evaluateExpression(reducer);\n }, initial);\n }\n return data.reduce((acc, item) => acc + (typeof item === 'number' ? item : 0), 0);\n }\n\n case 'sort': {\n if (!Array.isArray(data)) return data;\n const key = params.key as string;\n const desc = params.descending as boolean;\n const sorted = [...data].sort((a, b) => {\n const aVal = key ? (a as Record<string, unknown>)[key] : a;\n const bVal = key ? (b as Record<string, unknown>)[key] : b;\n if (aVal < bVal) return desc ? 1 : -1;\n if (aVal > bVal) return desc ? -1 : 1;\n return 0;\n });\n return sorted;\n }\n\n case 'sum':\n return Array.isArray(data) ? data.reduce((sum, item) => sum + (typeof item === 'number' ? item : 0), 0) : data;\n\n case 'count':\n return Array.isArray(data) ? data.length : 1;\n\n case 'unique':\n return Array.isArray(data) ? [...new Set(data)] : data;\n\n case 'flatten':\n return Array.isArray(data) ? data.flat() : data;\n\n case 'reverse':\n return Array.isArray(data) ? [...data].reverse() : data;\n\n case 'take': {\n if (!Array.isArray(data)) return data;\n const count = Number(params.count) || 10;\n return data.slice(0, count);\n }\n\n case 'skip': {\n if (!Array.isArray(data)) return data;\n const count = Number(params.count) || 0;\n return data.slice(count);\n }\n\n default:\n logger.warn('Unknown transformation', { operation: transform.operation });\n return data;\n }\n }\n\n // ============================================================================\n // Event System\n // ============================================================================\n\n /**\n * Register event handler\n */\n on(event: string, handler: EventHandler): void {\n const handlers = this.eventHandlers.get(event) || [];\n handlers.push(handler);\n this.eventHandlers.set(event, handlers);\n }\n\n /**\n * Remove event handler\n */\n off(event: string, handler?: EventHandler): void {\n if (!handler) {\n this.eventHandlers.delete(event);\n } else {\n const handlers = this.eventHandlers.get(event) || [];\n this.eventHandlers.set(event, handlers.filter(h => h !== handler));\n }\n }\n\n /**\n * Emit event\n */\n async emit(event: string, data?: unknown): Promise<void> {\n const handlers = this.eventHandlers.get(event) || [];\n for (const handler of handlers) {\n try {\n await handler(data);\n } catch (error) {\n logger.error('Event handler error', { event, error });\n }\n }\n }\n\n /**\n * Trigger UI event\n */\n async triggerUIEvent(elementName: string, eventType: string, data?: unknown): Promise<void> {\n const element = this.uiElements.get(elementName);\n if (!element) {\n logger.warn('UI element not found', { elementName });\n return;\n }\n\n // Update element state based on event\n if (eventType === 'change' && data !== undefined) {\n element.value = data;\n }\n\n await this.emit(`${elementName}.${eventType}`, data);\n }\n\n // ============================================================================\n // Animation System\n // ============================================================================\n\n /**\n * Update all animations\n */\n updateAnimations(): void {\n const now = Date.now();\n\n for (const [key, anim] of this.animations) {\n const elapsed = now - anim.startTime;\n let progress = Math.min(elapsed / anim.duration, 1);\n\n // Apply easing\n progress = this.applyEasing(progress, anim.easing);\n\n // Calculate current value\n let currentValue = anim.from + (anim.to - anim.from) * progress;\n\n // Handle yoyo\n if (anim.yoyo && progress >= 1) {\n anim.startTime = now;\n [anim.from, anim.to] = [anim.to, anim.from];\n }\n\n // Update the property\n this.setVariable(`${anim.target}.${anim.property}`, currentValue);\n\n // Remove completed non-looping animations\n if (progress >= 1 && !anim.loop && !anim.yoyo) {\n this.animations.delete(key);\n } else if (progress >= 1 && anim.loop) {\n anim.startTime = now;\n }\n }\n }\n\n private applyEasing(t: number, easing: string): number {\n switch (easing) {\n case 'easeIn':\n return t * t;\n case 'easeOut':\n return t * (2 - t);\n case 'easeInOut':\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n case 'easeInQuad':\n return t * t;\n case 'easeOutQuad':\n return t * (2 - t);\n case 'easeInOutQuad':\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n case 'linear':\n default:\n return t;\n }\n }\n\n // ============================================================================\n // Particle Effects\n // ============================================================================\n\n private createParticleEffect(name: string, position: SpatialPosition, color: string, count: number): void {\n const limitedCount = Math.min(count, RUNTIME_SECURITY_LIMITS.maxParticlesPerSystem);\n const particles: SpatialPosition[] = [];\n\n for (let i = 0; i < limitedCount; i++) {\n particles.push({\n x: position.x + (Math.random() - 0.5) * 2,\n y: position.y + (Math.random() - 0.5) * 2,\n z: position.z + (Math.random() - 0.5) * 2,\n });\n }\n\n this.particleSystems.set(name, {\n particles,\n color,\n lifetime: 3000,\n speed: 0.01,\n });\n }\n\n private createConnectionStream(from: string, to: string, fromPos: SpatialPosition, toPos: SpatialPosition, dataType: string): void {\n const streamName = `connection_${from}_${to}`;\n const particles: SpatialPosition[] = [];\n const steps = 20;\n\n for (let i = 0; i <= steps; i++) {\n const t = i / steps;\n particles.push({\n x: fromPos.x + (toPos.x - fromPos.x) * t,\n y: fromPos.y + (toPos.y - fromPos.y) * t,\n z: fromPos.z + (toPos.z - fromPos.z) * t,\n });\n }\n\n this.particleSystems.set(streamName, {\n particles,\n color: this.getDataTypeColor(dataType),\n lifetime: 5000,\n speed: 0.02,\n });\n }\n\n private createFlowingStream(name: string, position: SpatialPosition, data: unknown): void {\n const count = Array.isArray(data) ? Math.min(data.length, 50) : 10;\n this.createParticleEffect(`${name}_flow`, position, '#45b7d1', count);\n }\n\n private createExecutionEffect(name: string, position: SpatialPosition): void {\n this.createParticleEffect(`${name}_execution`, position, '#ff4500', 30);\n }\n\n private createDataVisualization(name: string, data: unknown, position: SpatialPosition): void {\n let count = 10;\n if (Array.isArray(data)) {\n count = Math.min(data.length, 100);\n } else if (typeof data === 'object' && data !== null) {\n count = Math.min(Object.keys(data).length * 5, 50);\n }\n this.createParticleEffect(`${name}_visualization`, position, '#32cd32', count);\n }\n\n private getDataTypeColor(dataType: string): string {\n const colors: Record<string, string> = {\n 'string': '#ff6b35',\n 'number': '#4ecdc4',\n 'boolean': '#45b7d1',\n 'object': '#96ceb4',\n 'array': '#ffeaa7',\n 'any': '#dda0dd',\n 'move': '#ff69b4',\n };\n return colors[dataType] || '#ffffff';\n }\n\n // ============================================================================\n // Public API\n // ============================================================================\n\n getParticleSystems(): Map<string, ParticleSystem> {\n return new Map(this.particleSystems);\n }\n\n updateParticles(deltaTime: number): void {\n for (const [name, system] of this.particleSystems) {\n system.lifetime -= deltaTime;\n system.particles.forEach(particle => {\n particle.x += (Math.random() - 0.5) * system.speed;\n particle.y += (Math.random() - 0.5) * system.speed;\n particle.z += (Math.random() - 0.5) * system.speed;\n });\n if (system.lifetime <= 0) {\n this.particleSystems.delete(name);\n }\n }\n }\n\n getContext(): RuntimeContext {\n return { ...this.context };\n }\n\n getUIElements(): Map<string, UIElementState> {\n return new Map(this.uiElements);\n }\n\n getUIElement(name: string): UIElementState | undefined {\n return this.uiElements.get(name);\n }\n\n getAnimations(): Map<string, Animation> {\n return new Map(this.animations);\n }\n\n reset(): void {\n this.context = this.createEmptyContext();\n this.currentScope = { variables: this.context.variables };\n this.callStack = [];\n this.particleSystems.clear();\n this.executionHistory = [];\n this.eventHandlers.clear();\n this.animations.clear();\n this.uiElements.clear();\n }\n\n private createEmptyContext(): RuntimeContext {\n return {\n variables: new Map(),\n functions: new Map(),\n exports: new Map(),\n connections: [],\n spatialMemory: new Map(),\n hologramState: new Map(),\n executionStack: [],\n };\n }\n\n getExecutionHistory(): ExecutionResult[] {\n return [...this.executionHistory];\n }\n\n getHologramStates(): Map<string, HologramProperties> {\n return new Map(this.context.hologramState);\n }\n\n getCallStack(): string[] {\n return [...this.callStack];\n }\n}\n"]}
|
package/dist/chunk-4CV4JOE5.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __esm = (fn, res) => function __init() {
|
|
6
|
-
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
7
|
-
};
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
-
|
|
22
|
-
export { __esm, __export, __toCommonJS };
|
|
23
|
-
//# sourceMappingURL=chunk-4CV4JOE5.js.map
|
|
24
|
-
//# sourceMappingURL=chunk-4CV4JOE5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/HoloScriptCodeParser.ts"],"names":["logger","exports"],"mappings":"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","file":"chunk-4OHVW4XR.cjs","sourcesContent":["/**\r\n * HoloScript Code Parser\r\n *\r\n * Parses HoloScript code strings into AST nodes that can be executed\r\n * by the HoloScriptRuntime.\r\n *\r\n * Syntax Reference:\r\n * - orb <name> { properties }\r\n * - function <name>(<params>): <return> { body }\r\n * - connect <from> to <to> [as <type>]\r\n * - gate <name> { condition, true_path, false_path }\r\n * - stream <name> from <source> { transformations }\r\n */\r\n\r\nimport { logger } from './logger';\r\nimport type {\r\n ASTNode,\r\n OrbNode,\r\n MethodNode,\r\n ParameterNode,\r\n ConnectionNode,\r\n GateNode,\r\n StreamNode,\r\n SpatialPosition,\r\n HologramProperties,\r\n ForLoopNode,\r\n WhileLoopNode,\r\n ForEachLoopNode,\r\n ImportNode,\r\n ExportNode,\r\n VariableDeclarationNode,\r\n} from './types';\r\n\r\n// Security configuration\r\nconst CODE_SECURITY_CONFIG = {\r\n maxCodeLength: 50000,\r\n maxBlocks: 100,\r\n maxNestingDepth: 10,\r\n suspiciousKeywords: [\r\n 'process', 'require', 'eval', 'import', 'constructor',\r\n 'prototype', '__proto__', 'fs', 'child_process', 'exec', 'spawn',\r\n ],\r\n};\r\n\r\nexport interface ParseResult {\r\n success: boolean;\r\n ast: ASTNode[];\r\n errors: ParseError[];\r\n warnings: string[];\r\n}\r\n\r\nexport interface ParseError {\r\n line: number;\r\n column: number;\r\n message: string;\r\n}\r\n\r\ninterface Token {\r\n type: 'keyword' | 'identifier' | 'number' | 'string' | 'operator' | 'punctuation' | 'newline';\r\n value: string;\r\n line: number;\r\n column: number;\r\n}\r\n\r\nexport class HoloScriptCodeParser {\r\n private errors: ParseError[] = [];\r\n private warnings: string[] = [];\r\n private tokens: Token[] = [];\r\n private position: number = 0;\r\n private keywordSet: Set<string>;\r\n\r\n constructor() {\r\n // Pre-compute keyword set for O(1) lookup instead of O(n) array search\r\n this.keywordSet = new Set([\r\n 'orb', 'function', 'connect', 'to', 'as', 'gate', 'stream', 'from', 'through', 'return',\r\n 'if', 'else', 'nexus', 'building', 'pillar', 'foundation',\r\n 'for', 'while', 'forEach', 'in', 'of', 'break', 'continue',\r\n 'import', 'export', 'module', 'use',\r\n 'type', 'interface', 'extends', 'implements',\r\n 'async', 'await', 'spawn', 'parallel',\r\n 'class', 'new', 'this', 'super', 'static', 'private', 'public',\r\n 'try', 'catch', 'finally', 'throw',\r\n 'const', 'let', 'var',\r\n 'animate', 'modify', 'pulse', 'move', 'show', 'hide',\r\n ]);\r\n }\r\n\r\n /**\r\n * Parse HoloScript code string into AST\r\n */\r\n parse(code: string): ParseResult {\r\n this.errors = [];\r\n this.warnings = [];\r\n this.tokens = [];\r\n this.position = 0;\r\n\r\n // Security: Check code length\r\n if (code.length > CODE_SECURITY_CONFIG.maxCodeLength) {\r\n return {\r\n success: false,\r\n ast: [],\r\n errors: [{ line: 0, column: 0, message: `Code exceeds max length (${CODE_SECURITY_CONFIG.maxCodeLength})` }],\r\n warnings: [],\r\n };\r\n }\r\n\r\n // Security: Check for suspicious keywords\r\n for (const keyword of CODE_SECURITY_CONFIG.suspiciousKeywords) {\r\n if (code.toLowerCase().includes(keyword)) {\r\n logger.warn('Suspicious keyword detected', { keyword });\r\n return {\r\n success: false,\r\n ast: [],\r\n errors: [{ line: 0, column: 0, message: `Suspicious keyword detected: ${keyword}` }],\r\n warnings: [],\r\n };\r\n }\r\n }\r\n\r\n try {\r\n // Tokenize\r\n this.tokens = this.tokenize(code);\r\n\r\n // Parse tokens into AST\r\n const ast = this.parseProgram();\r\n\r\n return {\r\n success: this.errors.length === 0,\r\n ast,\r\n errors: this.errors,\r\n warnings: this.warnings,\r\n };\r\n } catch (error) {\r\n return {\r\n success: false,\r\n ast: [],\r\n errors: [{ line: 0, column: 0, message: String(error) }],\r\n warnings: this.warnings,\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Tokenize code into tokens\r\n */\r\n private tokenize(code: string): Token[] {\r\n const tokens: Token[] = [];\r\n let line = 1;\r\n let column = 1;\r\n let i = 0;\r\n\r\n while (i < code.length) {\r\n const char = code[i];\r\n\r\n // Skip whitespace (except newlines)\r\n if (char === ' ' || char === '\\t' || char === '\\r') {\r\n i++;\r\n column++;\r\n continue;\r\n }\r\n\r\n // Newline\r\n if (char === '\\n') {\r\n tokens.push({ type: 'newline', value: '\\n', line, column });\r\n line++;\r\n column = 1;\r\n i++;\r\n continue;\r\n }\r\n\r\n // Comments (skip)\r\n if (char === '/' && code[i + 1] === '/') {\r\n while (i < code.length && code[i] !== '\\n') {\r\n i++;\r\n }\r\n continue;\r\n }\r\n\r\n // String\r\n if (char === '\"' || char === \"'\") {\r\n const quote = char;\r\n let str = '';\r\n const startCol = column;\r\n i++;\r\n column++;\r\n\r\n while (i < code.length && code[i] !== quote) {\r\n if (code[i] === '\\\\' && i + 1 < code.length) {\r\n str += code[i + 1];\r\n i += 2;\r\n column += 2;\r\n } else {\r\n str += code[i];\r\n i++;\r\n column++;\r\n }\r\n }\r\n\r\n i++; // Skip closing quote\r\n column++;\r\n\r\n tokens.push({ type: 'string', value: str, line, column: startCol });\r\n continue;\r\n }\r\n\r\n // Number\r\n if (/[0-9]/.test(char) || (char === '-' && /[0-9]/.test(code[i + 1]))) {\r\n let num = '';\r\n const startCol = column;\r\n\r\n while (i < code.length && /[0-9.\\-]/.test(code[i])) {\r\n num += code[i];\r\n i++;\r\n column++;\r\n }\r\n\r\n tokens.push({ type: 'number', value: num, line, column: startCol });\r\n continue;\r\n }\r\n\r\n // Identifier or keyword\r\n if (/[a-zA-Z_]/.test(char)) {\r\n let ident = '';\r\n const startCol = column;\r\n\r\n while (i < code.length && /[a-zA-Z0-9_]/.test(code[i])) {\r\n ident += code[i];\r\n i++;\r\n column++;\r\n }\r\n\r\n const isKeyword = this.keywordSet.has(ident.toLowerCase());\r\n tokens.push({\r\n type: isKeyword ? 'keyword' : 'identifier',\r\n value: ident,\r\n line,\r\n column: startCol,\r\n });\r\n continue;\r\n }\r\n\r\n // Multi-character operators (must check before single-char)\r\n const multiCharOps = ['===', '!==', '==', '!=', '>=', '<=', '&&', '||', '++', '--', '+=', '-=', '*=', '/=', '%=', '=>', '->'];\r\n let foundMultiOp = false;\r\n for (const op of multiCharOps) {\r\n if (code.substring(i, i + op.length) === op) {\r\n tokens.push({ type: 'operator', value: op, line, column });\r\n i += op.length;\r\n column += op.length;\r\n foundMultiOp = true;\r\n break;\r\n }\r\n }\r\n if (foundMultiOp) continue;\r\n\r\n // Operators and punctuation\r\n const punctuation = ['{', '}', '(', ')', '[', ']', ':', ',', '.', ';', '=', '<', '>', '+', '-', '*', '/', '%', '!', '&', '|', '?'];\r\n if (punctuation.includes(char)) {\r\n tokens.push({ type: 'punctuation', value: char, line, column });\r\n i++;\r\n column++;\r\n continue;\r\n }\r\n\r\n // Unknown character - skip\r\n i++;\r\n column++;\r\n }\r\n\r\n return tokens;\r\n }\r\n\r\n /**\r\n * Parse program (list of declarations)\r\n */\r\n private parseProgram(): ASTNode[] {\r\n const nodes: ASTNode[] = [];\r\n let blockCount = 0;\r\n\r\n while (this.position < this.tokens.length) {\r\n // Skip newlines\r\n while (this.currentToken()?.type === 'newline') {\r\n this.advance();\r\n }\r\n\r\n if (this.position >= this.tokens.length) break;\r\n\r\n // Security: limit blocks\r\n blockCount++;\r\n if (blockCount > CODE_SECURITY_CONFIG.maxBlocks) {\r\n this.errors.push({ line: 0, column: 0, message: 'Too many blocks in program' });\r\n break;\r\n }\r\n\r\n const node = this.parseDeclaration();\r\n if (node) {\r\n nodes.push(node);\r\n }\r\n }\r\n\r\n return nodes;\r\n }\r\n\r\n /**\r\n * Parse a single declaration\r\n */\r\n private parseDeclaration(): ASTNode | null {\r\n const token = this.currentToken();\r\n if (!token) return null;\r\n\r\n if (token.type === 'keyword') {\r\n switch (token.value.toLowerCase()) {\r\n case 'orb':\r\n return this.parseOrb();\r\n case 'function':\r\n return this.parseFunction();\r\n case 'connect':\r\n return this.parseConnection();\r\n case 'gate':\r\n case 'if':\r\n return this.parseGate();\r\n case 'stream':\r\n return this.parseStream();\r\n case 'nexus':\r\n return this.parseNexus();\r\n case 'building':\r\n case 'class':\r\n return this.parseBuilding();\r\n // Phase 2: Loop constructs\r\n case 'for':\r\n return this.parseForLoop();\r\n case 'while':\r\n return this.parseWhileLoop();\r\n case 'foreach':\r\n return this.parseForEachLoop();\r\n // Phase 2: Module system\r\n case 'import':\r\n return this.parseImport();\r\n case 'export':\r\n return this.parseExport();\r\n // Phase 2: Variable declarations\r\n // UI Extensions\r\n case 'ui2d':\r\n case 'card':\r\n case 'metric':\r\n case 'button':\r\n case 'row':\r\n case 'col':\r\n case 'text':\r\n return this.parseUIElement();\r\n case 'const':\r\n case 'let':\r\n case 'var':\r\n return this.parseVariableDeclaration();\r\n // DSL-first commands (Phase 54)\r\n case 'animate':\r\n return this.parseAnimate();\r\n case 'modify':\r\n return this.parseModify();\r\n default:\r\n this.advance();\r\n return null;\r\n }\r\n }\r\n\r\n // Skip unrecognized tokens\r\n this.advance();\r\n return null;\r\n }\r\n\r\n /**\r\n * Parse for loop: for (init; condition; update) { body }\r\n */\r\n private parseForLoop(): ForLoopNode | null {\r\n this.expect('keyword', 'for');\r\n\r\n if (!this.check('punctuation', '(')) {\r\n this.errors.push({ line: 0, column: 0, message: 'Expected ( after for' });\r\n return null;\r\n }\r\n this.advance();\r\n\r\n // Parse init, condition, update (simplified - collect as strings)\r\n let init = '', condition = '', update = '';\r\n let depth = 0;\r\n\r\n // Parse init (until first ;)\r\n while (this.position < this.tokens.length) {\r\n const t = this.currentToken();\r\n if (!t) break;\r\n if (t.value === ';' && depth === 0) { this.advance(); break; }\r\n if (t.value === '(') depth++;\r\n if (t.value === ')') depth--;\r\n init += t.value + ' ';\r\n this.advance();\r\n }\r\n\r\n // Parse condition (until second ;)\r\n depth = 0;\r\n while (this.position < this.tokens.length) {\r\n const t = this.currentToken();\r\n if (!t) break;\r\n if (t.value === ';' && depth === 0) { this.advance(); break; }\r\n if (t.value === '(') depth++;\r\n if (t.value === ')') depth--;\r\n condition += t.value + ' ';\r\n this.advance();\r\n }\r\n\r\n // Parse update (until ))\r\n depth = 0;\r\n while (this.position < this.tokens.length) {\r\n const t = this.currentToken();\r\n if (!t) break;\r\n if (t.value === ')' && depth === 0) { this.advance(); break; }\r\n if (t.value === '(') depth++;\r\n if (t.value === ')') depth--;\r\n update += t.value + ' ';\r\n this.advance();\r\n }\r\n\r\n // Parse body\r\n const body: ASTNode[] = [];\r\n if (this.check('punctuation', '{')) {\r\n this.advance();\r\n let braceDepth = 1;\r\n while (braceDepth > 0 && this.position < this.tokens.length) {\r\n if (this.check('punctuation', '{')) braceDepth++;\r\n if (this.check('punctuation', '}')) braceDepth--;\r\n this.advance();\r\n }\r\n }\r\n\r\n return {\r\n type: 'for-loop',\r\n init: init.trim(),\r\n condition: condition.trim(),\r\n update: update.trim(),\r\n body,\r\n position: { x: 0, y: 0, z: 0 },\r\n };\r\n }\r\n\r\n /**\r\n * Parse while loop: while (condition) { body }\r\n */\r\n private parseWhileLoop(): WhileLoopNode | null {\r\n this.expect('keyword', 'while');\r\n\r\n let condition = '';\r\n if (this.check('punctuation', '(')) {\r\n this.advance();\r\n let depth = 1;\r\n while (depth > 0 && this.position < this.tokens.length) {\r\n const t = this.currentToken();\r\n if (!t) break;\r\n if (t.value === '(') depth++;\r\n if (t.value === ')') { depth--; if (depth === 0) { this.advance(); break; } }\r\n condition += t.value + ' ';\r\n this.advance();\r\n }\r\n }\r\n\r\n // Parse body\r\n if (this.check('punctuation', '{')) {\r\n this.advance();\r\n let braceDepth = 1;\r\n while (braceDepth > 0 && this.position < this.tokens.length) {\r\n if (this.check('punctuation', '{')) braceDepth++;\r\n if (this.check('punctuation', '}')) braceDepth--;\r\n this.advance();\r\n }\r\n }\r\n\r\n return {\r\n type: 'while-loop',\r\n condition: condition.trim(),\r\n body: [],\r\n position: { x: 0, y: 0, z: 0 },\r\n };\r\n }\r\n\r\n /**\r\n * Parse forEach loop: forEach item in collection { body }\r\n */\r\n private parseForEachLoop(): ForEachLoopNode | null {\r\n this.expect('keyword', 'forEach');\r\n\r\n const variable = this.expectIdentifier();\r\n this.expect('keyword', 'in');\r\n const collection = this.expectIdentifier();\r\n\r\n // Parse body\r\n if (this.check('punctuation', '{')) {\r\n this.advance();\r\n let braceDepth = 1;\r\n while (braceDepth > 0 && this.position < this.tokens.length) {\r\n if (this.check('punctuation', '{')) braceDepth++;\r\n if (this.check('punctuation', '}')) braceDepth--;\r\n this.advance();\r\n }\r\n }\r\n\r\n return {\r\n type: 'foreach-loop',\r\n variable: variable || 'item',\r\n collection: collection || 'items',\r\n body: [],\r\n position: { x: 0, y: 0, z: 0 },\r\n };\r\n }\r\n\r\n /**\r\n * Parse import: import { x, y } from \"module\"\r\n */\r\n private parseImport(): ImportNode | null {\r\n this.expect('keyword', 'import');\r\n\r\n const imports: string[] = [];\r\n let modulePath = '';\r\n let defaultImport: string | undefined;\r\n\r\n // Check for default import or named imports\r\n if (this.check('punctuation', '{')) {\r\n this.advance();\r\n while (!this.check('punctuation', '}') && this.position < this.tokens.length) {\r\n const name = this.expectIdentifier();\r\n if (name) imports.push(name);\r\n if (this.check('punctuation', ',')) this.advance();\r\n }\r\n this.expect('punctuation', '}');\r\n } else {\r\n // Default import\r\n defaultImport = this.expectIdentifier() || undefined;\r\n }\r\n\r\n // from \"module\"\r\n if (this.check('keyword', 'from')) {\r\n this.advance();\r\n const pathToken = this.currentToken();\r\n if (pathToken?.type === 'string') {\r\n modulePath = pathToken.value;\r\n this.advance();\r\n }\r\n }\r\n\r\n return {\r\n type: 'import',\r\n imports,\r\n defaultImport,\r\n modulePath,\r\n position: { x: 0, y: 0, z: 0 },\r\n };\r\n }\r\n\r\n /**\r\n * Parse export: export { x, y } or export function/orb\r\n */\r\n private parseExport(): ExportNode | null {\r\n this.expect('keyword', 'export');\r\n\r\n // Check if exporting a declaration\r\n const next = this.currentToken();\r\n if (next?.type === 'keyword') {\r\n const declaration = this.parseDeclaration();\r\n return {\r\n type: 'export',\r\n declaration: declaration || undefined,\r\n position: { x: 0, y: 0, z: 0 },\r\n };\r\n }\r\n\r\n // Named exports\r\n const exports: string[] = [];\r\n if (this.check('punctuation', '{')) {\r\n this.advance();\r\n while (!this.check('punctuation', '}') && this.position < this.tokens.length) {\r\n const name = this.expectIdentifier();\r\n if (name) exports.push(name);\r\n if (this.check('punctuation', ',')) this.advance();\r\n }\r\n this.expect('punctuation', '}');\r\n }\r\n\r\n return {\r\n type: 'export',\r\n exports,\r\n position: { x: 0, y: 0, z: 0 },\r\n };\r\n }\r\n\r\n /**\r\n * Parse variable declaration: const/let/var name = value\r\n */\r\n private parseVariableDeclaration(): VariableDeclarationNode | null {\r\n const kindToken = this.currentToken()?.value.toLowerCase();\r\n const kind: 'const' | 'let' | 'var' = kindToken === 'let' ? 'let' : kindToken === 'var' ? 'var' : 'const';\r\n this.advance();\r\n\r\n const name = this.expectIdentifier();\r\n if (!name) return null;\r\n\r\n let dataType: string | undefined;\r\n if (this.check('punctuation', ':')) {\r\n this.advance();\r\n dataType = this.expectIdentifier() || undefined;\r\n }\r\n\r\n let value: unknown;\r\n if (this.check('punctuation', '=')) {\r\n this.advance();\r\n const valueToken = this.currentToken();\r\n if (valueToken?.type === 'string') {\r\n value = valueToken.value;\r\n this.advance();\r\n } else if (valueToken?.type === 'number') {\r\n value = parseFloat(valueToken.value);\r\n this.advance();\r\n } else if (valueToken?.type === 'identifier') {\r\n if (valueToken.value === 'true') value = true;\r\n else if (valueToken.value === 'false') value = false;\r\n else value = valueToken.value;\r\n this.advance();\r\n } else if (this.check('punctuation', '[')) {\r\n value = this.parseArray();\r\n } else if (this.check('punctuation', '{')) {\r\n value = this.parseObject();\r\n }\r\n }\r\n\r\n return {\r\n type: 'variable-declaration',\r\n kind,\r\n name,\r\n dataType,\r\n value,\r\n position: { x: 0, y: 0, z: 0 },\r\n };\r\n }\r\n\r\n /**\r\n * Parse orb declaration\r\n */\r\n private parseOrb(): OrbNode | null {\r\n this.expect('keyword', 'orb');\r\n const name = this.expectIdentifier();\r\n if (!name) return null;\r\n\r\n const properties: Record<string, unknown> = {};\r\n let position: SpatialPosition | undefined;\r\n let hologram: HologramProperties | undefined;\r\n\r\n if (this.check('punctuation', '{')) {\r\n this.advance(); // {\r\n\r\n while (!this.check('punctuation', '}') && this.position < this.tokens.length) {\r\n this.skipNewlines();\r\n if (this.check('punctuation', '}')) break;\r\n\r\n const prop = this.parseProperty();\r\n if (prop) {\r\n // Handle special properties\r\n if (prop.key === 'position' || prop.key === 'at') {\r\n position = this.parsePosition(prop.value);\r\n } else if (prop.key === 'color' || prop.key === 'glow' || prop.key === 'size') {\r\n hologram = hologram || { shape: 'orb', color: '#00ffff', size: 1, glow: true, interactive: true };\r\n if (prop.key === 'color') hologram.color = String(prop.value);\r\n if (prop.key === 'glow') hologram.glow = Boolean(prop.value);\r\n if (prop.key === 'size') hologram.size = Number(prop.value);\r\n } else {\r\n properties[prop.key] = prop.value;\r\n }\r\n }\r\n\r\n this.skipNewlines();\r\n }\r\n\r\n this.expect('punctuation', '}');\r\n }\r\n\r\n return {\r\n type: 'orb',\r\n name,\r\n position: position || { x: 0, y: 0, z: 0 },\r\n hologram: hologram || { shape: 'orb', color: '#00ffff', size: 1, glow: true, interactive: true },\r\n properties,\r\n methods: [],\r\n };\r\n }\r\n\r\n /**\r\n * Parse function declaration\r\n */\r\n private parseFunction(): MethodNode | null {\r\n this.expect('keyword', 'function');\r\n const name = this.expectIdentifier();\r\n if (!name) return null;\r\n\r\n const parameters: ParameterNode[] = [];\r\n let returnType: string | undefined;\r\n\r\n // Parse parameters\r\n if (this.check('punctuation', '(')) {\r\n this.advance(); // (\r\n\r\n while (!this.check('punctuation', ')') && this.position < this.tokens.length) {\r\n const paramName = this.expectIdentifier();\r\n if (!paramName) break;\r\n\r\n let paramType = 'any';\r\n if (this.check('punctuation', ':')) {\r\n this.advance(); // :\r\n paramType = this.expectIdentifier() || 'any';\r\n }\r\n\r\n parameters.push({\r\n type: 'parameter',\r\n name: paramName,\r\n dataType: paramType,\r\n });\r\n\r\n if (this.check('punctuation', ',')) {\r\n this.advance();\r\n }\r\n }\r\n\r\n this.expect('punctuation', ')');\r\n }\r\n\r\n // Parse return type\r\n if (this.check('punctuation', ':')) {\r\n this.advance();\r\n returnType = this.expectIdentifier() || undefined;\r\n }\r\n\r\n // Parse body\r\n const body: ASTNode[] = [];\r\n if (this.check('punctuation', '{')) {\r\n this.advance(); // {\r\n // Skip body parsing for now - just find closing brace\r\n let depth = 1;\r\n while (depth > 0 && this.position < this.tokens.length) {\r\n if (this.check('punctuation', '{')) depth++;\r\n if (this.check('punctuation', '}')) depth--;\r\n this.advance();\r\n }\r\n }\r\n\r\n return {\r\n type: 'method',\r\n name,\r\n parameters,\r\n body,\r\n returnType,\r\n position: { x: 0, y: 0, z: 0 },\r\n hologram: { shape: 'cube', color: '#ff6b35', size: 1.5, glow: true, interactive: true },\r\n };\r\n }\r\n\r\n /**\r\n * Parse connection\r\n */\r\n private parseConnection(): ConnectionNode | null {\r\n this.expect('keyword', 'connect');\r\n const from = this.expectIdentifier();\r\n if (!from) return null;\r\n\r\n this.expect('keyword', 'to');\r\n const to = this.expectIdentifier();\r\n if (!to) return null;\r\n\r\n let dataType = 'any';\r\n if (this.check('keyword', 'as')) {\r\n this.advance();\r\n const typeStr = this.currentToken();\r\n if (typeStr?.type === 'string' || typeStr?.type === 'identifier') {\r\n dataType = typeStr.value;\r\n this.advance();\r\n }\r\n }\r\n\r\n return {\r\n type: 'connection',\r\n from,\r\n to,\r\n dataType,\r\n bidirectional: false,\r\n };\r\n }\r\n\r\n /**\r\n * Parse gate (conditional)\r\n */\r\n private parseGate(): GateNode | null {\r\n this.expect('keyword', 'gate');\r\n this.expectIdentifier(); // Gate name (consumed but not currently stored)\r\n\r\n let condition = '';\r\n if (this.check('punctuation', '(')) {\r\n this.advance();\r\n // Parse condition expression\r\n while (!this.check('punctuation', ')') && this.position < this.tokens.length) {\r\n const token = this.currentToken();\r\n if (token) condition += token.value + ' ';\r\n this.advance();\r\n }\r\n this.expect('punctuation', ')');\r\n }\r\n\r\n // Parse body if present\r\n if (this.check('punctuation', '{')) {\r\n this.advance();\r\n let depth = 1;\r\n while (depth > 0 && this.position < this.tokens.length) {\r\n if (this.check('punctuation', '{')) depth++;\r\n if (this.check('punctuation', '}')) depth--;\r\n this.advance();\r\n }\r\n }\r\n\r\n return {\r\n type: 'gate',\r\n condition: condition.trim(),\r\n truePath: [],\r\n falsePath: [],\r\n position: { x: 0, y: 0, z: 0 },\r\n hologram: { shape: 'pyramid', color: '#4ecdc4', size: 1, glow: true, interactive: true },\r\n };\r\n }\r\n\r\n /**\r\n * Parse stream\r\n */\r\n private parseStream(): StreamNode | null {\r\n this.expect('keyword', 'stream');\r\n const name = this.expectIdentifier();\r\n if (!name) return null;\r\n\r\n let source = 'unknown';\r\n if (this.check('keyword', 'from')) {\r\n this.advance();\r\n source = this.expectIdentifier() || 'unknown';\r\n }\r\n\r\n // Parse body if present\r\n if (this.check('punctuation', '{')) {\r\n this.advance();\r\n let depth = 1;\r\n while (depth > 0 && this.position < this.tokens.length) {\r\n if (this.check('punctuation', '{')) depth++;\r\n if (this.check('punctuation', '}')) depth--;\r\n this.advance();\r\n }\r\n }\r\n\r\n return {\r\n type: 'stream',\r\n name,\r\n source,\r\n transformations: [],\r\n position: { x: 0, y: 0, z: 0 },\r\n hologram: { shape: 'cylinder', color: '#45b7d1', size: 2, glow: true, interactive: true },\r\n };\r\n }\r\n\r\n /**\r\n * Parse nexus (multi-agent hub)\r\n */\r\n private parseNexus(): ASTNode | null {\r\n this.expect('keyword', 'nexus');\r\n const name = this.expectIdentifier();\r\n if (!name) return null;\r\n\r\n if (this.check('punctuation', '{')) {\r\n this.advance();\r\n let depth = 1;\r\n while (depth > 0 && this.position < this.tokens.length) {\r\n if (this.check('punctuation', '{')) depth++;\r\n if (this.check('punctuation', '}')) depth--;\r\n this.advance();\r\n }\r\n }\r\n\r\n return {\r\n type: 'nexus',\r\n position: { x: 0, y: 0, z: 0 },\r\n hologram: { shape: 'sphere', color: '#9b59b6', size: 3, glow: true, interactive: true },\r\n };\r\n }\r\n\r\n /**\r\n * Parse building (class-like)\r\n */\r\n private parseBuilding(): ASTNode | null {\r\n this.expect('keyword', 'building');\r\n const name = this.expectIdentifier();\r\n if (!name) return null;\r\n\r\n if (this.check('punctuation', '{')) {\r\n this.advance();\r\n let depth = 1;\r\n while (depth > 0 && this.position < this.tokens.length) {\r\n if (this.check('punctuation', '{')) depth++;\r\n if (this.check('punctuation', '}')) depth--;\r\n this.advance();\r\n }\r\n }\r\n\r\n return {\r\n type: 'building',\r\n position: { x: 0, y: 0, z: 0 },\r\n hologram: { shape: 'cube', color: '#e74c3c', size: 4, glow: true, interactive: true },\r\n };\r\n }\r\n\r\n /**\r\n * Parse a property (key: value)\r\n */\r\n private parseProperty(): { key: string; value: unknown } | null {\r\n const key = this.expectIdentifier();\r\n if (!key) return null;\r\n\r\n if (!this.check('punctuation', ':')) {\r\n return { key, value: true }; // Flag-style property\r\n }\r\n\r\n this.advance(); // :\r\n\r\n const valueToken = this.currentToken();\r\n if (!valueToken) return null;\r\n\r\n let value: unknown;\r\n if (valueToken.type === 'string') {\r\n value = valueToken.value;\r\n this.advance();\r\n } else if (valueToken.type === 'number') {\r\n value = parseFloat(valueToken.value);\r\n this.advance();\r\n } else if (valueToken.type === 'identifier') {\r\n if (valueToken.value === 'true') value = true;\r\n else if (valueToken.value === 'false') value = false;\r\n else value = valueToken.value;\r\n this.advance();\r\n } else if (this.check('punctuation', '[')) {\r\n value = this.parseArray();\r\n } else if (this.check('punctuation', '{')) {\r\n value = this.parseObject();\r\n } else {\r\n value = valueToken.value;\r\n this.advance();\r\n }\r\n\r\n return { key, value };\r\n }\r\n\r\n /**\r\n * Parse array [...]\r\n */\r\n private parseArray(): unknown[] {\r\n const arr: unknown[] = [];\r\n this.expect('punctuation', '[');\r\n\r\n while (!this.check('punctuation', ']') && this.position < this.tokens.length) {\r\n const token = this.currentToken();\r\n if (token?.type === 'string' || token?.type === 'number' || token?.type === 'identifier') {\r\n if (token.type === 'number') {\r\n arr.push(parseFloat(token.value));\r\n } else {\r\n arr.push(token.value);\r\n }\r\n this.advance();\r\n }\r\n\r\n if (this.check('punctuation', ',')) {\r\n this.advance();\r\n }\r\n }\r\n\r\n this.expect('punctuation', ']');\r\n return arr;\r\n }\r\n\r\n /**\r\n * Parse object {...}\r\n */\r\n private parseObject(): Record<string, unknown> {\r\n const obj: Record<string, unknown> = {};\r\n this.expect('punctuation', '{');\r\n\r\n while (!this.check('punctuation', '}') && this.position < this.tokens.length) {\r\n this.skipNewlines();\r\n if (this.check('punctuation', '}')) break;\r\n\r\n const prop = this.parseProperty();\r\n if (prop) {\r\n obj[prop.key] = prop.value;\r\n }\r\n\r\n this.skipNewlines();\r\n if (this.check('punctuation', ',')) {\r\n this.advance();\r\n }\r\n }\r\n\r\n this.expect('punctuation', '}');\r\n return obj;\r\n }\r\n\r\n /**\r\n * Parse position from value\r\n */\r\n private parsePosition(value: unknown): SpatialPosition {\r\n if (typeof value === 'object' && value !== null) {\r\n const v = value as Record<string, unknown>;\r\n return {\r\n x: Number(v.x) || 0,\r\n y: Number(v.y) || 0,\r\n z: Number(v.z) || 0,\r\n };\r\n }\r\n return { x: 0, y: 0, z: 0 };\r\n }\r\n\r\n // Helper methods\r\n\r\n private currentToken(): Token | undefined {\r\n return this.tokens[this.position];\r\n }\r\n\r\n private advance(): Token | undefined {\r\n return this.tokens[this.position++];\r\n }\r\n\r\n private check(type: string, value?: string): boolean {\r\n const token = this.currentToken();\r\n if (!token) return false;\r\n if (token.type !== type) return false;\r\n if (value !== undefined && token.value.toLowerCase() !== value.toLowerCase()) return false;\r\n return true;\r\n }\r\n\r\n private expect(type: string, value?: string): boolean {\r\n if (this.check(type, value)) {\r\n this.advance();\r\n return true;\r\n }\r\n const token = this.currentToken();\r\n this.errors.push({\r\n line: token?.line || 0,\r\n column: token?.column || 0,\r\n message: `Expected ${type}${value ? ` '${value}'` : ''}, got ${token?.type || 'EOF'} '${token?.value || ''}'`,\r\n });\r\n return false;\r\n }\r\n\r\n private expectIdentifier(): string | null {\r\n const token = this.currentToken();\r\n if (token?.type === 'identifier' || token?.type === 'keyword') {\r\n this.advance();\r\n return token.value;\r\n }\r\n this.errors.push({\r\n line: token?.line || 0,\r\n column: token?.column || 0,\r\n message: `Expected identifier, got ${token?.type || 'EOF'}`,\r\n });\r\n return null;\r\n }\r\n\r\n /**\r\n * Parse animate command: animate target property: \"...\" from: 0 to: 1 duration: 1000\r\n */\r\n private parseAnimate(): ASTNode | null {\r\n this.expect('keyword', 'animate');\r\n const target = this.expectIdentifier();\r\n if (!target) return null;\r\n\r\n const properties: Record<string, unknown> = {};\r\n\r\n // Parse inline properties\r\n while (this.position < this.tokens.length) {\r\n this.skipNewlines();\r\n const t = this.currentToken();\r\n if (!t || t.type === 'newline' || (t.type === 'keyword' && this.keywordSet.has(t.value.toLowerCase()))) break;\r\n\r\n const prop = this.parseProperty();\r\n if (prop) {\r\n properties[prop.key] = prop.value;\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n type: 'expression-statement',\r\n expression: `animate(\"${target}\", ${JSON.stringify(properties)})`,\r\n position: { x: 0, y: 0, z: 0 },\r\n } as ASTNode;\r\n }\r\n\r\n /**\r\n * Parse modify command: modify target { prop: value }\r\n */\r\n private parseModify(): ASTNode | null {\r\n this.expect('keyword', 'modify');\r\n const target = this.expectIdentifier();\r\n if (!target) return null;\r\n\r\n const properties: Record<string, unknown> = {};\r\n\r\n if (this.check('punctuation', '{')) {\r\n this.advance();\r\n while (!this.check('punctuation', '}') && this.position < this.tokens.length) {\r\n this.skipNewlines();\r\n if (this.check('punctuation', '}')) break;\r\n\r\n const prop = this.parseProperty();\r\n if (prop) {\r\n properties[prop.key] = prop.value;\r\n }\r\n this.skipNewlines();\r\n }\r\n this.expect('punctuation', '}');\r\n }\r\n\r\n return {\r\n type: 'expression-statement',\r\n expression: `modify(\"${target}\", ${JSON.stringify(properties)})`,\r\n position: { x: 0, y: 0, z: 0 },\r\n } as ASTNode;\r\n }\r\n\r\n /**\r\n * Parse UI Element: ui2d dashboard#id { ... }\r\n */\r\n private parseUIElement(): ASTNode | null {\r\n const typeToken = this.currentToken();\r\n if (!typeToken) return null;\r\n \r\n const elementType = typeToken.value;\r\n this.advance();\r\n \r\n let elementId = `${elementType}_${Date.now()}`;\r\n \r\n // Check for ID syntax\r\n if (this.currentToken()?.type === 'punctuation' && this.currentToken()?.value === '#') {\r\n this.advance(); \r\n const idToken = this.currentToken();\r\n if (idToken) {\r\n elementId = idToken.value;\r\n this.advance();\r\n }\r\n } else if (this.currentToken()?.type === 'identifier' && this.currentToken()?.value.startsWith('#')) {\r\n elementId = this.currentToken()?.value.slice(1) || elementId;\r\n this.advance();\r\n }\r\n \r\n const properties: Record<string, any> = {};\r\n \r\n if (this.check('punctuation', '{')) {\r\n this.advance();\r\n while (!this.check('punctuation', '}') && this.position < this.tokens.length) {\r\n this.skipNewlines();\r\n if (this.check('punctuation', '}')) break;\r\n \r\n const prop = this.parseProperty();\r\n if (prop) {\r\n properties[prop.key] = prop.value;\r\n }\r\n this.skipNewlines();\r\n }\r\n this.expect('punctuation', '}');\r\n }\r\n \r\n return {\r\n type: 'ui2d', \r\n name: elementType,\r\n properties: { id: elementId, ...properties },\r\n position: { x: 0, y: 0, z: 0 }\r\n } as ASTNode;\r\n }\r\n\r\n private skipNewlines(): void {\r\n while (this.currentToken()?.type === 'newline') {\r\n this.advance();\r\n }\r\n }\r\n}\r\n"]}
|
package/dist/chunk-CZLDE2OZ.cjs
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __esm = (fn, res) => function __init() {
|
|
8
|
-
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
9
|
-
};
|
|
10
|
-
var __export = (target, all) => {
|
|
11
|
-
for (var name in all)
|
|
12
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
13
|
-
};
|
|
14
|
-
var __copyProps = (to, from, except, desc) => {
|
|
15
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
-
for (let key of __getOwnPropNames(from))
|
|
17
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
18
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
19
|
-
}
|
|
20
|
-
return to;
|
|
21
|
-
};
|
|
22
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
-
|
|
24
|
-
exports.__esm = __esm;
|
|
25
|
-
exports.__export = __export;
|
|
26
|
-
exports.__toCommonJS = __toCommonJS;
|
|
27
|
-
//# sourceMappingURL=chunk-CZLDE2OZ.cjs.map
|
|
28
|
-
//# sourceMappingURL=chunk-CZLDE2OZ.cjs.map
|