mlld
Version:
mlld: llm scripting language
1 lines • 252 kB
Source Map (JSON)
{"version":3,"sources":["../interpreter/eval/with-clause.ts","../core/types/structured-value/StructuredValue.ts","../interpreter/eval/exec-invocation.ts"],"names":["applyWithClause","input","withClause","env","result","wrapExecResult","pipeline","length","processPipeline","pipelineResult","value","format","isRetryable","stream","wrapPipelineResult","stdout","asText","stderr","exitCode","JSON_PRIMITIVES","Set","StructuredValue","raw","options","origin","jsonKind","recognizedReason","jsonEvaluated","jsonValue","jsonError","detection","detectStructuredValue","reason","process","MLLD_DEBUG","shouldWrap","originSummary","source","identifier","preview","slice","console","debug","kind","create","detect","undefined","isStructuredValue","toString","valueOf","Symbol","toPrimitive","toJSON","text","data","asJson","hasJsonCandidate","Boolean","tryParseJson","ok","error","tryJson","isJsonArray","Array","isArray","isJsonObject","asArray","Error","entries","Object","getJsonParseError","trimmed","trim","JSON","parse","err","String","message","formatHint","normalizeFormatHint","allowPrimaries","classifyStructure","classifyPrimitive","structuralKind","primitiveKind","first","last","has","test","asNumber","Number","isSafeInteger","startsWith","endsWith","resolveStdinInput","stdinSource","evaluate","isExpression","isVariable","resolveValue","ResolutionContext","CommandExecution","coerceValueForStdin","chainDebugEnabled","MLLD_DEBUG_CHAINING","chainDebug","payload","serialized","stringify","write","cloneVariableWithNewValue","fallback","cloned","mx","internal","mxCache","cloneGuardCandidateForParameter","name","candidate","argValue","isSystem","isParameter","stringifyGuardArg","applyGuardTransformsToExecArgs","guardInputEntries","transformedInputs","guardVariableCandidates","evaluatedArgs","evaluatedArgStrings","limit","Math","min","i","entry","replacement","argIndex","index","normalizedValue","resolveVariableIndexValue","fieldValue","evaluateDataValue","node","type","valueType","ensureStringTarget","method","target","MlldInterpreterError","ensureArrayTarget","handleStringBuiltin","args","toLowerCase","toUpperCase","start","end","substring","substr","searchValue","RegExp","replaceValue","replace","global","flags","replaceAll","targetLength","padStringArg","padStart","padEnd","count","repeat","handleArrayBuiltin","array","concat","reverse","comparator","sort","handleLengthBuiltin","handleJoinBuiltin","separator","joiner","join","handleSplitBuiltin","splitOn","split","handleTypeCheckingBuiltin","handleSearchBuiltin","arg","includes","indexOf","handleMatchBuiltin","pattern","match","evaluateExecInvocation","operationPreview","buildExecOperationPreview","runWithGuardRetry","operationContext","sourceRetryable","execute","evaluateExecInvocationInternal","commandRef","location","metadata","commandName","builtinMethods","normalizeFields","fields","map","field","streamingOptions","getStreamingOptions","streamingRequested","meta","streamingEnabled","enabled","hasStreamFormat","streamFormat","rawStreamFormat","streamFormatValue","resolveStreamFormatValue","pipelineId","Date","now","floor","random","lastEmittedChunk","setStreamingOptions","skipDefaultSinks","suppressTerminal","activeStreamingOptions","streamingManager","getStreamingManager","adapter","loadStreamAdapter","getAdapter","configure","chunkEffect","chunk","withSpacing","emitEffect","resultSecurityDescriptor","mergeResultDescriptor","descriptor","mergeSecurityDescriptors","interpolateWithResultDescriptor","nodes","targetEnv","interpolationContext","InterpolationContext","Default","interpolate","collectSecurityDescriptor","createParameterMetadata","extractSecurityDescriptor","VariableMetadataUtils","applySecurityMetadata","existingDescriptor","createEvalResult","wrapped","existing","getStructuredSecurityDescriptor","merged","setStructuredSecurityDescriptor","toPipelineInput","structured","hasCommandRef","hasWithClause","hasPipeline","pipelineLength","DEBUG_WHEN","DEBUG_EXEC","logger","nodeSourceLocation","astLocationToSourceLocation","getCurrentFilePath","arguments","identifierNode","content","identifierFields","lastField","resolvedName","isBuiltinMethod","isReservedName","hasVariable","getVariable","isReserved","shouldTrackResolution","isResolving","CircularReferenceError","beginResolving","variable","commandRefWithObject","objectReference","objectSource","typeCheckingMethods","isTypeCheckingBuiltin","objectValue","objectVar","sourceDescriptor","objectRef","typeCheckResult","extractVariableValue","normalizedFields","targetValue","key","asData","srcResult","Display","objectIdentifier","objectType","objectPreview","keys","hasObjectSource","hasObjectReference","targetDescriptor","varMxToSecurityDescriptor","LegacyStructuredValue","evaluatedArg","push","quantifierEvaluator","__mlldQuantifierEvaluator","quantifierResult","propagateResult","output","inheritExpressionProvenance","postFieldsBuiltin","accessField","f","sourceLocation","normalized","normalizeTransformerResult","resolvedValue","wrapOptions","pipelineInputValue","descriptorHint","accessFields","accessedObject","preserveContext","returnUndefinedForMissing","properties","__executable","serializedInternal","capturedShadowEnvs","needsDeserialization","some","lang","Map","deserializeShadowEnvs","capturedModuleEnv","VariableImporter","importer","moduleEnvMap","deserializeModuleEnv","_","createExecutableVariable","paramNames","directive","syntax","hasInterpolation","isMultiLine","executableDef","parts","baseName","variantName","baseVar","variants","transformerVariants","isExecutableVariable","varRef","isBuiltinTransformer","transformerImplementation","varName","varObj","typeInfo","subtype","primitiveType","objValue","arrValue","execDef","endResolving","isGlobPattern","isEmptyLoadArray","resolveLoadContentSource","loadNode","actualSource","segments","hasVariables","protocol","host","path","isStringPathArgument","finalizeExistsResult","existsResult","resolvePathString","trimmedPath","processContentLoader","loadResult","sourceString","targetVar","getResolverVariable","resolveVariable","FieldAccess","fieldResult","pipes","inputValue","transformerName","definition","definitionHasStreamFormat","isStream","whenExprNode","language","codeTemplate","execEnv","createChild","setCapturedModuleEnv","params","argValueAny","isStructured","argType","argKeys","dataType","regex","evaluateWhenExpression","whenRes","evaluateForeachCommand","arr","evalArray","isTemplate","templateAst","accessed","e","wrapLoadContentValue","nestedResult","MLLD_DEBUG_FIX","argCount","argTypes","a","argPreview","originalVariables","expressionSourceVariables","variableType","variableSubtype","isPrimitive","baseVariable","guardHelperImpl","guardHelperImplementation","isGuardHelper","impl","helperResult","guardInputsWithMapping","materializeGuardInputsWithMapping","from","_unused","nameHint","guardInputs","postHookInputs","hookManager","getHookManager","execDescriptor","getVariableSecurityDescriptor","labels","executableType","command","finalizeResult","runPost","handled","handleExecGuardDenial","withOpContext","AutoUnwrapManager","executeWithPreservation","preDecision","runPre","transformedGuardInputs","getGuardTransformedInputs","transformedGuardSet","paramName","argStringValue","originalVar","guardCandidate","isShellCode","preferGuardReplacement","allowOriginalReuse","candidateClone","setParameterVariable","paramVar","createParameterVariable","stringValue","originalVariable","metadataFactory","descriptorPieces","variableDescriptor","mergedParamDescriptor","collectAndMergeParameterDescriptors","recordSecurityDescriptor","guardInputVariable","guardInput","handleGuardDecision","existingInput","clonedInput","workingDirectory","workingDir","resolveWorkingDirectory","directiveType","isTemplateExecutable","templateResult","template","parsed","parseAndWrapJson","security","preserveText","templateType","wrapStructured","templateWithClause","withClauseResult","isDataExecutable","dataValue","dataTemplate","dataDescriptor","recursive","mergeArrayElements","mergedDescriptor","isPipelineExecutable","isCommandExecutable","referencedInTemplate","commandTemplate","n","add","pname","re","ShellCommand","envVars","escapeRegex","s","paramRegexCache","referencesParam","cmd","simple","braced","perVarMax","v","MLLD_MAX_SHELL_ENV_VAR_SIZE","isFinite","needsBashFallback","values","Buffer","byteLength","fallbackDisabled","MLLD_DISABLE_COMMAND_BASH_FALLBACK","fallbackCommand","CommandUtils","validateAndParseCommand","MlldCommandExecutionError","context","duration","getProjectRoot","codeParams","fallbackSnippet","paramCount","commandOutput","executeCode","stdinInput","stdin","commandOptions","executeCommand","stageIndex","pipelineInput","definedAt","isCodeExecutable","activeWhenExpr","whenResult","finalHandled","normalization","normalizeWhenShowEffect","foreachNode","forExprNode","evaluateForExpression","blockNode","blockResult","evaluateExeBlock","code","ASTEvaluator","variableMetadata","hasParamVar","paramVarType","isPipelineInput","rawValue","prepareValueForShadow","shouldSuppressGuards","variableForShadow","isComplex","extractVal","resolvedVar","unwrappedValue","unwrap","unwrappedVar","hasInternal","evaluateToRuntime","isNumber","evaluatedArgs_i","evaluatedArgStrings_i","capturedName","capturedVar","capturedEnvs","__capturedShadowEnvs","codeResult","processedResult","restore","MLLD_DEBUG_STRUCTURED","debugData","hasType","hasText","dataKeys","inputDescriptors","getSecurityDescriptorFromCarrier","filter","mergedInputDescriptor","isCommandRefExecutable","refName","refCommand","capturedEnv","get","commandArgs","refArgs","argNode","argResult","refEnv","captured","refInvocation","refResult","isSectionExecutable","filePath","pathTemplate","sectionName","sectionTemplate","fileContent","readFile","llmxmlInstance","getLlmxml","sectionContent","titleWithoutHash","getSection","includeNested","extractSection","renameTemplate","newTitle","lines","newTitleTrimmed","newHeadingMatch","originalText","originalLevel","isResolverExecutable","resolverPath","payloadTemplate","payloadStr","resolverManager","getResolverManager","resolverResult","resolve","basePath","getBasePath","postFields","current","extracted","typeHint","cleanupShouldTrack","summary","fs","appendFileSync","stages","p","rawIdentifier","executePipeline","sourceFunction","nodeWithoutPipeline","freshResult","SOURCE_STAGE","rawArgs","normalizedPipeline","attachBuiltinEffects","functionalPipeline","originalLength","normalizedLength","returnStructured","pipelineValue","pipelineDescriptor","combinedDescriptor","finalWithClauseResult","log","typeofResult","isArrayResult","finalEvalResult","wasTracked","finalizedStreaming","finalizeResults","setStreamingResult","streaming","applySecurityDescriptorToStructuredValue","carrier","descriptorFromVarMx","sources","taint","envs","shadowObj","func","set"],"mappings":"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","file":"chunk-KZFFCWXR.mjs","sourcesContent":["import type { WithClause } from '@core/types';\nimport type { Environment } from '../env/Environment';\nimport type { EvalResult } from '../core/interpreter';\nimport { asText } from '../utils/structured-value';\nimport { wrapExecResult, wrapPipelineResult } from '../utils/structured-exec';\n\n/**\n * Apply withClause transformations to a result\n * This handles pipeline commands, trust validation, and dependency checks\n */\nexport async function applyWithClause(\n input: unknown,\n withClause: WithClause,\n env: Environment\n): Promise<EvalResult> {\n let result: any = wrapExecResult(input);\n \n // Apply pipeline transformations\n if (withClause.pipeline && withClause.pipeline.length > 0) {\n // Use unified pipeline processor\n const { processPipeline } = await import('./pipeline/unified-processor');\n const pipelineResult = await processPipeline({\n value: result,\n env,\n pipeline: withClause.pipeline,\n format: withClause.format as string | undefined,\n isRetryable: false, // with-clause doesn't track source function\n stream: withClause.stream === true\n });\n result = wrapPipelineResult(pipelineResult);\n }\n \n return {\n value: result,\n env,\n stdout: asText(result),\n stderr: '',\n exitCode: 0\n };\n}\n","export type StructuredValueFormat = 'json' | 'csv' | 'xml' | 'text' | 'unknown';\n\nexport interface StructuredValueOrigin {\n source: 'variable' | 'pipeline' | 'command' | 'import' | 'shadow' | 'other';\n identifier?: string;\n stage?: number;\n hint?: string;\n}\n\ninterface StructuredValueDetection {\n shouldWrap: boolean;\n format: StructuredValueFormat;\n jsonKind?: 'object' | 'array' | 'primitive';\n reason?: 'hint' | 'structure' | 'primitive';\n}\n\nconst JSON_PRIMITIVES = new Set(['true', 'false', 'null']);\n\nexport interface StructuredValueOptions {\n formatHint?: StructuredValueFormat;\n origin?: StructuredValueOrigin;\n allowPrimaries?: boolean;\n}\n\n/**\n * Wrap raw text that resembles structured data (JSON, CSV, XML, etc.).\n * WHY: Callers need both the original string and lazy parsed forms without\n * duplicating detection logic at every access site.\n * CONTEXT: Instances primarily originate from command output, pipeline\n * stages, or content loaders where eager parsing is expensive.\n */\nexport class StructuredValue {\n readonly raw: string;\n readonly format: StructuredValueFormat;\n readonly origin?: StructuredValueOrigin;\n readonly jsonKind?: 'object' | 'array' | 'primitive';\n readonly recognizedReason?: 'hint' | 'structure' | 'primitive';\n\n private jsonEvaluated = false;\n private jsonValue: any;\n private jsonError: Error | undefined;\n\n constructor(raw: string, options: StructuredValueOptions = {}) {\n this.raw = raw;\n const detection = detectStructuredValue(raw, options);\n this.format = detection.format;\n this.jsonKind = detection.jsonKind;\n this.recognizedReason = detection.reason;\n this.origin = options.origin;\n\n if (process.env.MLLD_DEBUG === 'true' && detection.shouldWrap) {\n const originSummary = options.origin\n ? `${options.origin.source}${options.origin.identifier ? `:${options.origin.identifier}` : ''}`\n : 'unknown';\n const preview = raw.length > 160 ? `${raw.slice(0, 160)}…` : raw;\n console.debug('[StructuredValue] recognized candidate', {\n origin: originSummary,\n format: detection.format,\n reason: detection.reason,\n kind: detection.jsonKind,\n preview\n });\n }\n }\n\n static create(raw: string, options: StructuredValueOptions = {}): StructuredValue {\n return new StructuredValue(raw, options);\n }\n\n static detect(raw: string, options: StructuredValueOptions = {}): StructuredValue | undefined {\n const detection = detectStructuredValue(raw, options);\n return detection.shouldWrap ? new StructuredValue(raw, options) : undefined;\n }\n\n static isStructuredValue(value: unknown): value is StructuredValue {\n return value instanceof StructuredValue;\n }\n\n toString(): string {\n return this.raw;\n }\n\n valueOf(): string {\n return this.raw;\n }\n\n [Symbol.toPrimitive](): string {\n return this.raw;\n }\n\n toJSON(): string {\n return this.raw;\n }\n\n get text(): string {\n return this.raw;\n }\n\n get data(): any {\n if (this.format === 'json') {\n return this.asJson();\n }\n return this.raw;\n }\n\n hasJsonCandidate(): boolean {\n return this.format === 'json' || Boolean(this.jsonKind);\n }\n\n asJson(): any {\n const result = this.tryParseJson();\n if (!result.ok) {\n throw result.error;\n }\n return result.value;\n }\n\n tryJson(): { ok: boolean; value?: any; error?: Error } {\n return this.tryParseJson();\n }\n\n isJsonArray(): boolean {\n const result = this.tryParseJson();\n return result.ok && Array.isArray(result.value);\n }\n\n isJsonObject(): boolean {\n const result = this.tryParseJson();\n return result.ok && typeof result.value === 'object' && result.value !== null && !Array.isArray(result.value);\n }\n\n asArray(): any[] {\n const value = this.asJson();\n if (!Array.isArray(value)) {\n throw new Error('StructuredValue contains JSON that is not an array');\n }\n return value;\n }\n\n entries(): Array<[string, any]> {\n const value = this.asJson();\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n throw new Error('StructuredValue contains JSON that is not an object');\n }\n return Object.entries(value);\n }\n\n getJsonParseError(): Error | undefined {\n return this.jsonError;\n }\n\n private tryParseJson(): { ok: boolean; value?: any; error?: Error } {\n if (!this.hasJsonCandidate()) {\n return { ok: false, error: new Error('StructuredValue is not recognized as JSON') };\n }\n\n if (!this.jsonEvaluated) {\n this.jsonEvaluated = true;\n try {\n const trimmed = this.raw.trim();\n this.jsonValue = JSON.parse(trimmed);\n this.jsonError = undefined;\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n this.jsonError = err;\n if (process.env.MLLD_DEBUG === 'true') {\n const originSummary = this.origin\n ? `${this.origin.source}${this.origin.identifier ? `:${this.origin.identifier}` : ''}`\n : 'unknown';\n console.debug('[StructuredValue] JSON parse failed', {\n origin: originSummary,\n message: err.message\n });\n }\n return { ok: false, error: err };\n }\n }\n\n if (this.jsonError) {\n return { ok: false, error: this.jsonError };\n }\n\n return { ok: true, value: this.jsonValue };\n }\n}\n\nexport function detectStructuredValue(raw: string, options: StructuredValueOptions = {}): StructuredValueDetection {\n const formatHint = normalizeFormatHint(options.formatHint);\n const trimmed = raw.trim();\n const allowPrimaries = options.allowPrimaries ?? formatHint === 'json';\n\n if (!trimmed) {\n return {\n shouldWrap: false,\n format: formatHint ?? 'text'\n };\n }\n\n if (formatHint === 'json') {\n return {\n shouldWrap: true,\n format: 'json',\n jsonKind: classifyStructure(trimmed) ?? classifyPrimitive(trimmed, allowPrimaries),\n reason: 'hint'\n };\n }\n\n const structuralKind = classifyStructure(trimmed);\n if (structuralKind) {\n return {\n shouldWrap: true,\n format: 'json',\n jsonKind: structuralKind,\n reason: 'structure'\n };\n }\n\n const primitiveKind = classifyPrimitive(trimmed, allowPrimaries);\n if (primitiveKind) {\n return {\n shouldWrap: true,\n format: 'json',\n jsonKind: primitiveKind,\n reason: 'primitive'\n };\n }\n\n return {\n shouldWrap: false,\n format: formatHint ?? 'text'\n };\n}\n\nexport function looksLikeJsonStructure(raw: string): boolean {\n return classifyStructure(raw.trim()) !== undefined;\n}\n\nexport function tryParseJsonStructure(raw: string): { isJson: boolean; value: any; originalValue: string } {\n const trimmed = raw.trim();\n if (!looksLikeJsonStructure(trimmed)) {\n return { isJson: false, value: raw, originalValue: raw };\n }\n\n try {\n return { isJson: true, value: JSON.parse(trimmed), originalValue: raw };\n } catch {\n return { isJson: false, value: raw, originalValue: raw };\n }\n}\n\nfunction normalizeFormatHint(formatHint?: StructuredValueFormat): StructuredValueFormat | undefined {\n if (!formatHint) return undefined;\n switch (formatHint) {\n case 'json':\n case 'csv':\n case 'xml':\n case 'text':\n return formatHint;\n default:\n return 'unknown';\n }\n}\n\nfunction classifyStructure(trimmed: string): 'object' | 'array' | undefined {\n if (!trimmed) return undefined;\n const first = trimmed[0];\n const last = trimmed[trimmed.length - 1];\n\n if (first === '{' && last === '}') {\n return 'object';\n }\n if (first === '[' && last === ']') {\n return 'array';\n }\n return undefined;\n}\n\nfunction classifyPrimitive(trimmed: string, allowPrimaries = true): 'primitive' | undefined {\n if (!allowPrimaries) return undefined;\n\n if (JSON_PRIMITIVES.has(trimmed)) {\n return 'primitive';\n }\n\n if (/^-?\\d+$/.test(trimmed)) {\n const asNumber = Number(trimmed);\n if (Number.isSafeInteger(asNumber)) {\n return 'primitive';\n }\n return undefined;\n }\n\n if (/^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$/.test(trimmed)) {\n return 'primitive';\n }\n\n if (trimmed.startsWith('\"') && trimmed.endsWith('\"')) {\n return 'primitive';\n }\n\n return undefined;\n}\n","import * as fs from 'fs';\nimport type { ExeBlockNode, ExecInvocation, WithClause } from '@core/types';\nimport { astLocationToSourceLocation } from '@core/types';\nimport type { Environment } from '../env/Environment';\nimport type { EvalResult } from '../core/interpreter';\nimport type { ExecutableDefinition } from '@core/types/executable';\nimport { isCommandExecutable, isCodeExecutable, isTemplateExecutable, isCommandRefExecutable, isSectionExecutable, isResolverExecutable, isPipelineExecutable, isDataExecutable } from '@core/types/executable';\nimport { interpolate } from '../core/interpreter';\nimport { InterpolationContext } from '../core/interpolation-context';\nimport {\n isExecutableVariable,\n VariableMetadataUtils\n} from '@core/types/variable';\nimport type { Variable, VariableContext } from '@core/types/variable';\nimport { applyWithClause } from './with-clause';\nimport { MlldInterpreterError, MlldCommandExecutionError, CircularReferenceError } from '@core/errors';\nimport { CommandUtils } from '../env/CommandUtils';\nimport { logger } from '@core/utils/logger';\nimport { extractSection } from './show';\nimport { prepareValueForShadow } from '../env/variable-proxy';\nimport { evaluateExeBlock } from './exe';\nimport type { ShadowEnvironmentCapture } from '../env/types/ShadowEnvironmentCapture';\nimport { AutoUnwrapManager } from './auto-unwrap-manager';\nimport { StructuredValue as LegacyStructuredValue } from '@core/types/structured-value';\nimport {\n asText,\n asData,\n isStructuredValue,\n wrapStructured,\n parseAndWrapJson,\n collectAndMergeParameterDescriptors,\n extractSecurityDescriptor,\n normalizeWhenShowEffect,\n applySecurityDescriptorToStructuredValue\n} from '../utils/structured-value';\nimport { inheritExpressionProvenance } from '@core/types/provenance/ExpressionProvenance';\nimport type { StructuredValueContext } from '../utils/structured-value';\nimport { coerceValueForStdin } from '../utils/shell-value';\nimport { wrapExecResult, wrapPipelineResult } from '../utils/structured-exec';\nimport type { SecurityDescriptor } from '@core/types/security';\nimport { normalizeTransformerResult } from '../utils/transformer-result';\nimport { varMxToSecurityDescriptor } from '@core/types/variable/VarMxHelpers';\nimport type { WhenExpressionNode } from '@core/types/when';\nimport { handleExecGuardDenial } from './guard-denial-handler';\nimport { resolveWorkingDirectory } from '../utils/working-directory';\nimport type { OperationContext } from '../env/ContextManager';\nimport { getGuardTransformedInputs, handleGuardDecision } from '../hooks/hook-decision-handler';\nimport { runWithGuardRetry } from '../hooks/guard-retry-runner';\nimport {\n materializeGuardInputsWithMapping,\n type GuardInputMappingEntry\n} from '../utils/guard-inputs';\nimport { createParameterVariable } from '../utils/parameter-factory';\nimport { getAdapter } from '../streaming/adapter-registry';\nimport { loadStreamAdapter, resolveStreamFormatValue } from '../streaming/stream-format';\n\n/**\n * Resolve stdin input from expression using shared shell classification.\n */\nasync function resolveStdinInput(stdinSource: unknown, env: Environment): Promise<string> {\n if (stdinSource === null || stdinSource === undefined) {\n return '';\n }\n\n const { evaluate } = await import('../core/interpreter');\n const result = await evaluate(stdinSource as any, env, { isExpression: true });\n let value = result.value;\n\n const { isVariable, resolveValue, ResolutionContext } = await import('../utils/variable-resolution');\n if (isVariable(value)) {\n value = await resolveValue(value, env, ResolutionContext.CommandExecution);\n }\n\n return coerceValueForStdin(value);\n}\n\nconst chainDebugEnabled = process.env.MLLD_DEBUG_CHAINING === '1';\nfunction chainDebug(message: string, payload?: Record<string, unknown>): void {\n if (!chainDebugEnabled) {\n return;\n }\n try {\n const serialized = payload ? ` ${JSON.stringify(payload)}` : '';\n process.stdout.write(`[CHAIN] ${message}${serialized}\\n`);\n } catch {\n process.stdout.write(`[CHAIN] ${message}\\n`);\n }\n}\n\nfunction cloneVariableWithNewValue(\n source: Variable,\n value: unknown,\n fallback: string\n): Variable {\n const cloned: Variable = {\n ...source,\n value: value ?? fallback,\n mx: source.mx ? { ...source.mx } : undefined,\n internal: { ...(source.internal ?? {}) }\n };\n if (cloned.mx?.mxCache) {\n delete cloned.mx.mxCache;\n }\n return cloned;\n}\n\nfunction cloneGuardCandidateForParameter(\n name: string,\n candidate: Variable,\n argValue: unknown,\n fallback: string | undefined\n): Variable {\n const cloned: Variable = {\n ...candidate,\n name,\n value: argValue ?? fallback ?? candidate.value,\n mx: candidate.mx ? { ...candidate.mx } : undefined,\n internal: {\n ...(candidate.internal ?? {}),\n isSystem: true,\n isParameter: true\n }\n };\n if (cloned.mx?.mxCache) {\n delete cloned.mx.mxCache;\n }\n return cloned;\n}\n\nfunction stringifyGuardArg(value: unknown): string {\n if (isStructuredValue(value)) {\n return asText(value);\n }\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n if (value === undefined) {\n return 'undefined';\n }\n if (value === null) {\n return 'null';\n }\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}\n\nfunction applyGuardTransformsToExecArgs(options: {\n guardInputEntries: readonly GuardInputMappingEntry[];\n transformedInputs: readonly Variable[];\n guardVariableCandidates: (Variable | undefined)[];\n evaluatedArgs: any[];\n evaluatedArgStrings: string[];\n}): void {\n const { guardInputEntries, transformedInputs, guardVariableCandidates, evaluatedArgs, evaluatedArgStrings } =\n options;\n const limit = Math.min(transformedInputs.length, guardInputEntries.length);\n for (let i = 0; i < limit; i++) {\n const entry = guardInputEntries[i];\n const replacement = transformedInputs[i];\n if (!entry || !replacement) {\n continue;\n }\n const argIndex = entry.index;\n guardVariableCandidates[argIndex] = replacement;\n const normalizedValue = isStructuredValue(replacement.value)\n ? replacement.value.data\n : replacement.value;\n evaluatedArgs[argIndex] = normalizedValue;\n evaluatedArgStrings[argIndex] = stringifyGuardArg(normalizedValue);\n }\n}\n\nconst resolveVariableIndexValue = async (fieldValue: any, env: Environment): Promise<unknown> => {\n const { evaluateDataValue } = await import('./data-value-evaluator');\n const node =\n typeof fieldValue === 'object'\n ? (fieldValue as any)\n : {\n type: 'VariableReference',\n valueType: 'varIdentifier',\n identifier: String(fieldValue)\n };\n return evaluateDataValue(node as any, env);\n};\n\ntype StringBuiltinMethod =\n | 'toLowerCase'\n | 'toUpperCase'\n | 'trim'\n | 'slice'\n | 'substring'\n | 'substr'\n | 'replace'\n | 'replaceAll'\n | 'padStart'\n | 'padEnd'\n | 'repeat';\ntype ArrayBuiltinMethod = 'slice' | 'concat' | 'reverse' | 'sort';\ntype SearchBuiltinMethod = 'includes' | 'startsWith' | 'endsWith' | 'indexOf';\ntype MatchBuiltinMethod = 'match';\ntype TypeCheckingMethod = 'isArray' | 'isObject' | 'isString' | 'isNumber' | 'isBoolean' | 'isNull' | 'isDefined';\n\nfunction ensureStringTarget(method: string, target: unknown): string {\n if (typeof target === 'string') {\n return target;\n }\n throw new MlldInterpreterError(`Cannot call .${method}() on ${typeof target}`);\n}\n\nfunction ensureArrayTarget(method: string, target: unknown): unknown[] {\n if (Array.isArray(target)) {\n return target;\n }\n throw new MlldInterpreterError(`Cannot call .${method}() on ${typeof target}`);\n}\n\nfunction handleStringBuiltin(method: StringBuiltinMethod, target: unknown, args: unknown[] = []): string {\n const value = ensureStringTarget(method, target);\n switch (method) {\n case 'toLowerCase':\n return value.toLowerCase();\n case 'toUpperCase':\n return value.toUpperCase();\n case 'trim':\n return value.trim();\n case 'slice': {\n const start = args.length > 0 ? Number(args[0]) : undefined;\n const end = args.length > 1 ? Number(args[1]) : undefined;\n return value.slice(start ?? undefined, end ?? undefined);\n }\n case 'substring': {\n const start = args.length > 0 ? Number(args[0]) : 0;\n const end = args.length > 1 ? Number(args[1]) : undefined;\n return value.substring(start, end ?? undefined);\n }\n case 'substr': {\n const start = args.length > 0 ? Number(args[0]) : 0;\n const length = args.length > 1 && args[1] !== undefined ? Number(args[1]) : undefined;\n return length !== undefined ? value.substr(start, length) : value.substr(start);\n }\n case 'replace': {\n const searchValue = args[0] instanceof RegExp ? args[0] : String(args[0] ?? '');\n const replaceValue = String(args[1] ?? '');\n return value.replace(searchValue as any, replaceValue);\n }\n case 'replaceAll': {\n const searchValue = args[0] instanceof RegExp ? args[0] : String(args[0] ?? '');\n const replaceValue = String(args[1] ?? '');\n if (searchValue instanceof RegExp && !searchValue.global) {\n return value.replace(new RegExp(searchValue.source, `${searchValue.flags}g`), replaceValue);\n }\n return value.replaceAll(searchValue as any, replaceValue);\n }\n case 'padStart': {\n const targetLength = args.length > 0 ? Number(args[0]) : value.length;\n const padStringArg = args.length > 1 ? String(args[1]) : ' ';\n return value.padStart(targetLength, padStringArg);\n }\n case 'padEnd': {\n const targetLength = args.length > 0 ? Number(args[0]) : value.length;\n const padStringArg = args.length > 1 ? String(args[1]) : ' ';\n return value.padEnd(targetLength, padStringArg);\n }\n case 'repeat': {\n const count = args.length > 0 ? Number(args[0]) : 0;\n return value.repeat(count);\n }\n }\n throw new MlldInterpreterError(`Unsupported string builtin: ${method}`);\n}\n\nfunction handleArrayBuiltin(method: ArrayBuiltinMethod, target: unknown, args: unknown[] = []): unknown[] {\n const array = ensureArrayTarget(method, target);\n switch (method) {\n case 'slice': {\n const start = args.length > 0 ? Number(args[0]) : undefined;\n const end = args.length > 1 ? Number(args[1]) : undefined;\n return array.slice(start ?? undefined, end ?? undefined);\n }\n case 'concat':\n return array.concat(...args);\n case 'reverse':\n return [...array].reverse();\n case 'sort': {\n const cloned = [...array];\n const comparator = args[0];\n if (typeof comparator === 'function') {\n return cloned.sort(comparator as (a: unknown, b: unknown) => number);\n }\n return cloned.sort();\n }\n }\n throw new MlldInterpreterError(`Unsupported array builtin: ${method}`);\n}\n\nfunction handleLengthBuiltin(target: unknown): number {\n if (typeof target === 'string' || Array.isArray(target)) {\n return target.length;\n }\n throw new MlldInterpreterError(`Cannot call .length() on ${typeof target}`);\n}\n\nfunction handleJoinBuiltin(target: unknown, separator: unknown): string {\n const value = ensureArrayTarget('join', target);\n const joiner = separator !== undefined ? String(separator) : ',';\n return value.join(joiner);\n}\n\nfunction handleSplitBuiltin(target: unknown, separator: unknown): string[] {\n const value = ensureStringTarget('split', target);\n const splitOn = separator !== undefined ? String(separator) : '';\n return value.split(splitOn);\n}\n\nfunction handleTypeCheckingBuiltin(method: TypeCheckingMethod, target: unknown): boolean {\n switch (method) {\n case 'isArray':\n return Array.isArray(target);\n case 'isObject':\n return typeof target === 'object' && target !== null && !Array.isArray(target);\n case 'isString':\n return typeof target === 'string';\n case 'isNumber':\n return typeof target === 'number';\n case 'isBoolean':\n return typeof target === 'boolean';\n case 'isNull':\n return target === null;\n case 'isDefined':\n return target !== null && target !== undefined;\n }\n throw new MlldInterpreterError(`Unsupported type checking builtin: ${method}`);\n}\n\nfunction handleSearchBuiltin(method: SearchBuiltinMethod, target: unknown, arg: unknown): boolean | number {\n if (Array.isArray(target)) {\n if (method === 'includes') {\n return target.includes(arg);\n }\n if (method === 'indexOf') {\n return target.indexOf(arg);\n }\n throw new MlldInterpreterError(`Cannot call .${method}() on array targets`);\n }\n\n const value = ensureStringTarget(method, target);\n const searchValue = String(arg ?? '');\n\n switch (method) {\n case 'includes':\n return value.includes(searchValue);\n case 'indexOf':\n return value.indexOf(searchValue);\n case 'startsWith':\n return value.startsWith(searchValue);\n case 'endsWith':\n return value.endsWith(searchValue);\n }\n throw new MlldInterpreterError(`Unsupported search builtin: ${method}`);\n}\n\nfunction handleMatchBuiltin(target: unknown, arg: unknown): RegExpMatchArray | null {\n const value = ensureStringTarget('match', target);\n const pattern = arg instanceof RegExp ? arg : new RegExp(String(arg ?? ''));\n return value.match(pattern);\n}\n\n/**\n * Evaluate an ExecInvocation node\n * This executes a previously defined exec command with arguments and optional tail modifiers\n */\nexport async function evaluateExecInvocation(\n node: ExecInvocation,\n env: Environment\n): Promise<EvalResult> {\n const operationPreview = buildExecOperationPreview(node);\n return await runWithGuardRetry({\n env,\n operationContext: operationPreview,\n sourceRetryable: true,\n execute: () => evaluateExecInvocationInternal(node, env)\n });\n}\n\nfunction buildExecOperationPreview(node: ExecInvocation): OperationContext | undefined {\n const identifier = (node.commandRef as any)?.identifier;\n if (typeof identifier === 'string' && identifier.length > 0) {\n return {\n type: 'exe',\n name: identifier,\n location: node.location ?? null,\n metadata: { sourceRetryable: true }\n };\n }\n return undefined;\n}\n\nasync function evaluateExecInvocationInternal(\n node: ExecInvocation,\n env: Environment\n): Promise<EvalResult> {\n let commandName: string | undefined; // Declare at function scope for finally block\n\n // Define builtin methods list at function scope for use in circular reference checks\n const builtinMethods = [\n 'includes',\n 'match',\n 'length',\n 'indexOf',\n 'join',\n 'split',\n 'toLowerCase',\n 'toUpperCase',\n 'trim',\n 'slice',\n 'substring',\n 'substr',\n 'replace',\n 'replaceAll',\n 'padStart',\n 'padEnd',\n 'repeat',\n 'startsWith',\n 'endsWith',\n 'concat',\n 'reverse',\n 'sort',\n 'isArray',\n 'isObject',\n 'isString',\n 'isNumber',\n 'isBoolean',\n 'isNull',\n 'isDefined'\n ];\n\n const normalizeFields = (fields?: Array<{ type: string; value: any }>) =>\n (fields || []).map(field => {\n if (!field || typeof field !== 'object') return field;\n if (field.type === 'Field') {\n return { ...field, type: 'field' };\n }\n return field;\n });\n\n let streamingOptions = env.getStreamingOptions();\n let streamingRequested =\n node.stream === true ||\n node.withClause?.stream === true ||\n node.meta?.withClause?.stream === true;\n let streamingEnabled = streamingOptions.enabled !== false && streamingRequested;\n const hasStreamFormat =\n node.withClause?.streamFormat !== undefined ||\n node.meta?.withClause?.streamFormat !== undefined;\n const rawStreamFormat = node.withClause?.streamFormat || node.meta?.withClause?.streamFormat;\n const streamFormatValue = hasStreamFormat\n ? await resolveStreamFormatValue(rawStreamFormat, env)\n : undefined;\n const pipelineId = `exec-${Date.now().toString(36)}-${Math.floor(Math.random() * 1e4)}`;\n let lastEmittedChunk: string | undefined;\n if (hasStreamFormat) {\n env.setStreamingOptions({\n ...streamingOptions,\n streamFormat: streamFormatValue as any,\n skipDefaultSinks: true,\n suppressTerminal: true\n });\n streamingOptions = env.getStreamingOptions();\n }\n const activeStreamingOptions = streamingOptions;\n const streamingManager = env.getStreamingManager();\n if (streamingEnabled) {\n let adapter;\n if (hasStreamFormat && streamFormatValue) {\n adapter = await loadStreamAdapter(streamFormatValue);\n }\n if (!adapter) {\n adapter = await getAdapter('ndjson');\n }\n streamingManager.configure({\n env,\n streamingEnabled: true,\n streamingOptions: activeStreamingOptions,\n adapter: adapter as any\n });\n }\n const chunkEffect = (chunk: string, source: 'stdout' | 'stderr') => {\n if (!streamingEnabled) return;\n\n const trimmed = chunk.trim();\n if (trimmed && trimmed === lastEmittedChunk) {\n return;\n }\n lastEmittedChunk = trimmed || chunk;\n const withSpacing = chunk.endsWith('\\n') ? `${chunk}\\n` : `${chunk}\\n\\n`;\n // Only emit via effects when default sinks are suppressed (avoids double-writing with TerminalSink)\n if (!streamingOptions.skipDefaultSinks) {\n return;\n }\n // Route stdout chunks to doc to display progressively; stderr stays stderr.\n if (source === 'stdout') {\n env.emitEffect('doc', withSpacing);\n } else {\n env.emitEffect('stderr', chunk);\n }\n };\n\n\n try {\n let resultSecurityDescriptor: SecurityDescriptor | undefined;\n const mergeResultDescriptor = (descriptor?: SecurityDescriptor): void => {\n if (!descriptor) {\n return;\n }\n resultSecurityDescriptor = resultSecurityDescriptor\n ? env.mergeSecurityDescriptors(resultSecurityDescriptor, descriptor)\n : descriptor;\n };\n const interpolateWithResultDescriptor = (\n nodes: any,\n targetEnv: Environment = env,\n interpolationContext: InterpolationContext = InterpolationContext.Default\n ): Promise<string> => {\n return interpolate(nodes, targetEnv, interpolationContext, {\n collectSecurityDescriptor: descriptor => {\n if (descriptor) {\n mergeResultDescriptor(descriptor);\n }\n }\n });\n };\n\n const createParameterMetadata = (value: unknown) => {\n const descriptor = extractSecurityDescriptor(value);\n const metadata = descriptor\n ? VariableMetadataUtils.applySecurityMetadata(\n undefined,\n { existingDescriptor: descriptor }\n )\n : undefined;\n\n return {\n metadata,\n internal: {\n isSystem: true,\n isParameter: true\n }\n };\n };\n\n const createEvalResult = (\n value: unknown,\n targetEnv: Environment,\n options?: { type?: string; text?: string }\n ): EvalResult => {\n const wrapped = wrapExecResult(value, options);\n if (resultSecurityDescriptor) {\n const existing = getStructuredSecurityDescriptor(wrapped);\n const merged = existing\n ? env.mergeSecurityDescriptors(existing, resultSecurityDescriptor)\n : resultSecurityDescriptor;\n setStructuredSecurityDescriptor(wrapped, merged);\n }\n return {\n value: wrapped,\n env: targetEnv,\n stdout: asText(wrapped),\n stderr: '',\n exitCode: 0\n };\n };\n\n const toPipelineInput = (value: unknown, options?: { type?: string; text?: string }): unknown => {\n const structured = wrapExecResult(value, options);\n if (resultSecurityDescriptor) {\n setStructuredSecurityDescriptor(structured, resultSecurityDescriptor);\n }\n return structured;\n };\n if (process.env.MLLD_DEBUG === 'true') {\n console.error('[evaluateExecInvocation] Entry:', {\n hasCommandRef: !!node.commandRef,\n hasWithClause: !!node.withClause,\n hasPipeline: !!(node.withClause?.pipeline),\n pipelineLength: node.withClause?.pipeline?.length\n });\n }\n\n if (process.env.DEBUG_WHEN || process.env.DEBUG_EXEC) {\n logger.debug('evaluateExecInvocation called with:', { commandRef: node.commandRef });\n }\n const nodeSourceLocation = astLocationToSourceLocation(node.location, env.getCurrentFilePath());\n\n // Get the command name from the command reference or legacy format\n let args: any[] = [];\n \n // Handle legacy format where name and arguments are directly on the node\n if (!node.commandRef && (node as any).name) {\n commandName = (node as any).name;\n args = (node as any).arguments || [];\n } else if (node.commandRef) {\n // Handle new format with commandRef\n if ((node.commandRef as any).name) {\n commandName = (node.commandRef as any).name;\n args = node.commandRef.args || [];\n } else if (typeof node.commandRef.identifier === 'string') {\n // If identifier is a string, use it directly\n commandName = node.commandRef.identifier;\n args = node.commandRef.args || [];\n } else if (Array.isArray((node.commandRef as any).identifier) && (node.commandRef as any).identifier.length > 0) {\n // If identifier is an array, extract from the first node\n const identifierNode = (node.commandRef as any).identifier[0];\n if (identifierNode.type === 'VariableReference' && identifierNode.identifier) {\n commandName = identifierNode.identifier as string;\n } else if (identifierNode.type === 'Text' && identifierNode.content) {\n commandName = identifierNode.content;\n } else {\n throw new Error('Unable to extract command name from identifier array');\n }\n args = node.commandRef.args || [];\n } else {\n throw new Error('CommandReference missing both name and identifier');\n }\n } else {\n throw new Error('ExecInvocation node missing both commandRef and name');\n }\n\n // Resolve dynamic method names when the final segment is a variable index (e.g., @obj[@name]())\n const identifierNode = (node.commandRef as any)?.identifier?.[0];\n const identifierFields = normalizeFields(identifierNode?.fields);\n const lastField = identifierFields[identifierFields.length - 1];\n if (lastField?.type === 'variableIndex') {\n const resolvedName = await resolveVariableIndexValue(lastField.value, env);\n commandName = String(resolvedName);\n }\n \n if (!commandName) {\n throw new MlldInterpreterError('ExecInvocation has no command identifier');\n }\n\n // Check for circular reference before resolving (skip builtin methods and reserved names)\n const isBuiltinMethod = builtinMethods.includes(commandName);\n const isReservedName = env.hasVariable(commandName) &&\n (env.getVariable(commandName) as any)?.internal?.isReserved;\n const shouldTrackResolution = !isBuiltinMethod && !isReservedName;\n\n if (shouldTrackResolution && env.isResolving(commandName)) {\n throw new CircularReferenceError(\n `Circular reference detected: executable '@${commandName}' calls itself recursively without a terminating condition`,\n {\n identifier: commandName,\n location: nodeSourceLocation\n }\n );\n }\n\n // Mark this executable as being resolved (skip builtin methods and reserved names)\n if (shouldTrackResolution) {\n env.beginResolving(commandName);\n }\n\n // Check if this is a field access exec invocation (e.g., @obj.method())\n // or a method call on an exec result (e.g., @func(args).method())\n let variable;\n const commandRefWithObject = node.commandRef as any & { objectReference?: any; objectSource?: ExecInvocation };\n if (node.commandRef && (commandRefWithObject.objectReference || commandRefWithObject.objectSource)) {\n // Check if this is a builtin method call (e.g., @list.includes())\n const typeCheckingMethods: TypeCheckingMethod[] = [\n 'isArray',\n 'isObject',\n 'isString',\n 'isNumber',\n 'isBoolean',\n 'isNull',\n 'isDefined'\n ];\n const isTypeCheckingBuiltin = typeCheckingMethods.includes(commandName as TypeCheckingMethod);\n if (builtinMethods.includes(commandName)) {\n // Handle builtin methods on objects/arrays/strings\n let objectValue: any;\n let objectVar: Variable | undefined;\n let sourceDescriptor: SecurityDescriptor | undefined;\n\n if (commandRefWithObject.objectReference) {\n const objectRef = commandRefWithObject.objectReference;\n objectVar = env.getVariable(objectRef.identifier);\n\n if (!objectVar) {\n if (isTypeCheckingBuiltin) {\n const typeCheckResult = handleTypeCheckingBuiltin(commandName as TypeCheckingMethod, undefined);\n return createEvalResult(typeCheckResult, env);\n }\n throw new MlldInterpreterError(`Object not found: ${objectRef.identifier}`);\n }\n // Extract the value from the variable reference\n const { extractVariableValue, isVariable } = await import('../utils/variable-resolution');\n objectValue = await extractVariableValue(objectVar, env);\n\n // If the extracted value is itself a Variable (e.g., from a for expression stored via let),\n // unwrap it to get the raw value for builtin method invocation\n // WHY: For expressions return ArrayVariables, and when stored via let they may be wrapped\n // in an ObjectVariable. We need the raw array for .join() etc. to work.\n if (isVariable(objectValue)) {\n objectValue = await extractVariableValue(objectValue, env);\n }\n\n // Navigate through fields if present\n if (objectRef.fields && objectRef.fields.length > 0) {\n const normalizedFields = normalizeFields(objectRef.fields);\n for (const field of normalizedFields) {\n let targetValue: any = objectValue;\n let key = field.value;\n\n if (field.type === 'variableIndex') {\n if (isStructuredValue(targetValue)) {\n targetValue = asData(targetValue);\n }\n key = await resolveVariableIndexValue(field.value, env);\n }\n\n if (isStructuredValue(targetValue) && typeof key === 'string' && key in (targetValue as any)) {\n objectValue = (targetValue as any)[key];\n } else if (typeof targetValue === 'object' && targetValue !== null) {\n objectValue = (targetValue as any)[key];\n } else {\n if (isTypeCheckingBuiltin) {\n const typeCheckResult = handleTypeCheckingBuiltin(commandName as TypeCheckingMethod, undefined);\n return createEvalResult(typeCheckResult, env);\n }\n throw new MlldInterpreterError(`Cannot access field ${String(key)} on non-object`);\n }\n }\n }\n } else if (commandRefWithObject.objectSource) {\n // Evaluate the source ExecInvocation to obtain a value, then apply builtin method\n const srcResult = await evaluateExecInvocation(commandRefWithObject.objectSource, env);\n if (srcResult && typeof srcResult === 'object') {\n sourceDescriptor = extractSecurityDescriptor(srcResult.value);\n if (srcResult.value !== undefined) {\n const { resolveValue, ResolutionContext } = await import('../utils/variable-resolution');\n objectValue = await resolveValue(srcResult.value, env, ResolutionContext.Display);\n } else if (typeof srcResult.stdout === 'string') {\n objectValue = srcResult.stdout;\n }\n }\n }\n\n // Fallback if we still don't have an object value\n if (typeof objectValue === 'undefined') {\n if (isTypeCheckingBuiltin) {\n const typeCheckResult = handleTypeCheckingBuiltin(commandName as TypeCheckingMethod, objectValue);\n return createEvalResult(typeCheckResult, env);\n }\n if (process.env.DEBUG_EXEC) {\n logger.debug('Builtin invocation unresolved object value', {\n commandName,\n objectIdentifier: commandRefWithObject.objectReference?.identifier,\n fields: commandRefWithObject.objectReference?.fields\n });\n }\n throw new MlldInterpreterError('Unable to resolve object value for builtin method invocation');\n }\n\n if (process.env.DEBUG_EXEC) {\n logger.debug('Builtin invocation object value', {\n commandName,\n objectType: Array.isArray(objectValue) ? 'array' : typeof objectValue,\n objectPreview:\n typeof objectValue === 'string'\n ? objectValue.slice(0, 80)\n : Array.isArray(objectValue)\n ? `[array length=${objectValue.length}]`\n : objectValue && typeof objectValue === 'object'\n ? Object.keys(objectValue)\n : objectValue\n });\n }\n\n chainDebug('builtin invocation start', {\n commandName,\n hasObjectSource: Boolean(commandRefWithObject.objectSource),\n hasObjectReference: Boolean(commandRefWithObject.objectReference)\n });\n\n const targetDescriptor =\n sourceDescriptor ||\n (objectVar && varMxToSecurityDescriptor(objectVar.mx)) ||\n extractSecurityDescriptor(objectValue);\n mergeResultDescriptor(targetDescriptor);\n\n // Structured exec returns wrappers – convert them to plain data before method lookup\n if (isStructuredValue(objectValue)) {\n objectValue = objectValue.type === 'array' ? objectValue.data : asText(objectValue);\n } else if (LegacyStructuredValue.isStructuredValue?.(objectValue)) {\n objectValue = objectValue.text;\n }\n\n chainDebug('resolved object value', {\n commandName,\n objectType: Array.isArray(objectValue) ? 'array' : typeof objectValue,\n preview:\n typeof objectValue === 'string'\n ? objectValue.slice(0, 80)\n : Array.isArray(objectValue)\n ? `[array length=${objectValue.length}]`\n : objectValue && typeof objectValue === 'object'\n ? '[object]'\n : objectValue\n });\n \n // Evaluate arguments\n const evaluatedArgs: any[] = [];\n for (const arg of args) {\n const { evaluateDataValue } = await import('./data-value-evaluator');\n const evaluatedArg = await evaluateDataValue(arg, env);\n evaluatedArgs.push(evaluatedArg);\n }\n\n const quantifierEvaluator = (objectValue as any)?.__mlldQuantifierEvaluator;\n if (quantifierEvaluator && typeof quantifierEvaluator === 'function') {\n const quantifierResult = quantifierEvaluator(commandName, evaluatedArgs);\n return createEvalResult(quantifierResult, env);\n }\n \n // Apply the builtin method\n let result: any;\n const propagateResult = (output: unknown): void => {\n inheritExpressionProvenance(output, objectVar ?? objectValue);\n const sourceDescriptor =\n (objectVar && varMxToSecurityDescriptor(objectVar.mx)) || extractSecurityDescriptor(objectValue);\n if (sourceDescriptor) {\n resultSecurityDescriptor = resultSecurityDescriptor\n ? env.mergeSecurityDescriptors(resultSecurityDescriptor, sourceDescriptor)\n : sourceDescriptor;\n }\n };\n switch (commandName) {\n case 'toLowerCase':\n case 'toUpperCase':\n case 'trim':\n case 'substring':\n case 'substr':\n case 'replace':\n case 'replaceAll':\n case 'padStart':\n case 'padEnd':\n case 'repeat':\n result = handleStringBuiltin(commandName as StringBuiltinMethod, objectValue, evaluatedArgs);\n propagateResult(result);\n break;\n case 'slice':\n if (Array.isArray(objectValue)) {\n result = handleArrayBuiltin('slice', objectValue, evaluatedArgs);\n } else {\n result = handleStringBuiltin('slice', objectValue, evaluatedArgs);\n }\n propagateResult(result);\n break;\n case 'concat':\n case 'reverse':\n case 'sort':\n result = handleArrayBuiltin(commandName as ArrayBuiltinMethod, objectValue, evaluatedArgs);\n propagateResult(result);\n break;\n case 'length':\n result = handleLengthBuiltin(objectValue);\n break;\n case 'join':\n result = handleJoinBuiltin(objectValue, evaluatedArgs[0]);\n propagateResult(result);\n break;\n case 'split':\n result = handleSplitBuiltin(objectValue, evaluatedArgs[0]);\n propagateResult(result);\n break;\n case 'includes':\n case 'indexOf':\n case 'startsWith':\n case 'endsWith':\n result = handleSearchBuiltin(commandName as SearchBuiltinMethod, objectValue, evaluatedArgs[0]);\n break;\n case 'match':\n result = handleMatchBuiltin(objectValue, evaluatedArgs[0]);\n propagateResult(result);\n break;\n case 'isArray':\n case 'isObject':\n case 'isString':\n case 'isNumber':\n case 'isBoolean':\n case 'isNull':\n case 'isDefined':\n result = handleTypeCheckingBuiltin(commandName as TypeCheckingMethod, objectValue);\n break;\n default:\n throw new MlldInterpreterError(`Unknown builtin method: ${commandName}`);\n }\n \n // Apply post-invocation fields if present (e.g., @str.split(',')[1])\n const postFieldsBuiltin: any[] = (node as any).fields || [];\n if (postFieldsBuiltin && postFieldsBuiltin.length > 0) {\n const { accessField } = await import('../utils/field-access');\n for (const f of postFieldsBuiltin) {\n result = await accessField(result, f, { env, sourceLocation: nodeSourceLocation });\n }\n }\n \n const normalized = normalizeTransformerResult(commandName, result);\n const resolvedValue = normalized.value;\n const wrapOptions = normalized.options;\n inheritExpressionProvenance(resolvedValue, objectVar ?? objectValue);\n\n // If a withClause (e.g., pipeline) is attached to this builtin invocation, apply it\n if (node.withClause) {\n if (node.withClause.pipeline) {\n const { processPipeline } = await import('./pipeline/unified-processor');\n const pipelineInputValue = toPipelineInput(resolvedValue, wrapOptions);\n chainDebug('applying builtin pipeline', {\n commandName,\n pipelineLength: node.withClause.pipeline.length\n });\n const pipelineResult = await processPipeline({\n value: pipelineInputValue,\n env,\n node,\n identifier: node.identifier,\n descriptorHint: resultSecurityDescriptor\n });\n // Still need to handle other withClause features (trust, needs)\n return applyWithClause(pipelineResult, { ...node.withClause, pipeline: undefined }, env);\n } else {\n return applyWithClause(resolvedValue, node.withClause, env);\n }\n }\n\n // Return the result wrapped appropriately when no withClause is present\n return createEvalResult(resolvedValue, env, wrapOptions);\n }\n // If this is a non-builtin method with objectSource, we do not (yet) support it\n if (commandRefWithObject.objectSource && !commandRefWithObject.objectReference) {\n throw new MlldInterpreterError(`Only builtin methods are supported on exec results (got: ${commandName})`);\n }\n \n // Get the object first\n const objectRef = commandRefWithObject.objectReference;\n const objectVar = env.getVariable(objectRef.identifier);\n if (!objectVar) {\n throw new MlldInterpreterError(`Object not found: ${objectRef.identifier}`);\n }\n \n // Extract Variable value for object field access - WHY: Need raw object to access fields\n const { extractVariableValue } = await import('../utils/variable-resolution');\n const objectValue = await extractVariableValue(objectVar, env);\n \n \n // Access the field\n if (objectRef.fields && objectRef.fields.length > 0) {\n const { accessFields } = await import('../utils/field-access');\n const accessedObject = await accessFields(objectValue, normalizeFields(objectRef.fields), {\n env,\n preserveContext: false,\n returnUndefinedForMissing: true,\n sourceLocation: objectRef.location\n });\n\n if (typeof accessedObject === 'object' && accessedObject !== null) {\n const fieldValue = (accessedObject as any)[commandName];\n variable = fieldValue;\n }\n } else {\n // Direct field access on the object\n if (typeof objectValue === 'object' && objectValue !== null) {\n // Handle AST object structure with type and properties\n let fieldValue;\n if (objectValue.type === 'object' && objectValue.properties) {\n fieldValue = objectValue.properties[commandName];\n } else {\n fieldValue = (objectValue as any)[commandName];\n }\n \n variable = fieldValue;\n }\n }\n \n if (!variable) {\n throw new MlldInterpreterError(`Method not found: ${commandName} on ${objectRef.identifier}`);\n }\n \n // Handle __executable objects from resolved imports\n if (typeof variable === 'object' && variable !== null && '__executable' in variable && variable.__executable) {\n // Deserialize shadow environments if needed\n let serializedInternal =\n (variable.internal as Record<string, unknown> | undefined) ??\n {};\n if (serializedInternal.capturedShadowEnvs && typeof serializedInternal.capturedShadowEnvs === 'object') {\n // Check if it needs deserialization (is plain object, not Map)\n const needsDeserialization = Object.entries(serializedInternal.capturedShadowEnvs).some(\n ([lang, env]) => env && !(env instanceof Map)\n );\n\n if (needsDeserialization) {\n serializedInternal = {\n ...serializedInternal,\n capturedShadowEnvs: deserializeShadowEnvs(serializedInternal.capturedShadowEnvs)\n };\n }\n }\n\n // Deserialize module environment if needed\n if (serializedInternal.capturedModuleEnv && !(serializedInternal.capturedModuleEnv instanceof Map)) {\n // Import the VariableImporter to reuse the proper deserialization logic\n const { VariableImporter } = await import('./import/VariableImporter');\n const importer = new VariableImporter(null); // ObjectResolver not needed for this\n const moduleEnvMap = importer.deserializeModuleEnv(serializedInternal.capturedModuleEnv);\n\n // Each executable in the module env needs access to the full env\n for (const [_, variable] of moduleEnvMap) {\n if (variable.type === 'executable') {\n variable.internal = {\n ...(variable.internal ?? {}),\n capturedModuleEnv: moduleEnvMap\n };\n }\n }\n\n serializedInternal = {\n ...serializedInternal,\n capturedModuleEnv: moduleEnvMap\n };\n }\n \n // Convert the __executable object to a proper ExecutableVariable\n const { createExecutableVariable } = await import('@core/types/variable/VariableFactories');\n variable = createExecutableVariable(\n commandName,\n 'command', // Default type - the real type is in executableDef\n '', // Empty template - the real template is in executableDef\n variable.paramNames || [],\n undefined, // No language here - it's in executableDef\n {\n directive: 'exe',\n syntax: 'braces',\n hasInterpolation: false,\n isMultiLine: false\n },\n {\n internal: {\n executableDef: variable.executableDef,\n ...serializedInternal\n }\n }\n );\n }\n } else {\n // Regular command lookup\n variable = env.getVariable(commandName);\n if (!variable) {\n // Try splitting on dot to handle variant access (e.g., \"json.fromlist\" -> \"json\" + variant \"fromlist\")\n if (commandName.includes('.')) {\n const parts = commandName.split('.');\n const baseName = parts[0];\n const variantName = parts.slice(1).join('.');\n\n const baseVar = env.getVariable(baseName);\n if (baseVar) {\n const variants = baseVar.internal?.transformerVariants as Record<string, MlldVariable> | undefined;\n if (variants && variantName in variants) {\n variable = variants[variantName];\n }\n }\n }\n\n if (!variable) {\n throw new MlldInterpreterError(`Command not found: ${commandName}`);\n }\n }\n\n // Check if this is a transformer variant access (e.g., @json.fromlist)\n if (isExecutableVariable(variable) && node.commandRef) {\n const varRef = (node.commandRef as any).identifier?.[0] || node.commandRef;\n if (varRef && varRef.type === 'VariableReference' && varRef.fields && varRef.fields.length > 0) {\n const field = varRef.fields[0];\n if (field.type === 'field') {\n const variants = variable.internal?.transformerVariants as Record<string, MlldVariable> | undefined;\n if (variants && field.value in variants) {\n // Replace the variable with the variant\n variable = variants[field.value];\n }\n }\n }\n }\n }\n\n // Ensure it's an executable variable\n if (!isExecutableVariable(variable)) {\n throw new MlldInterpreterError(`Variable ${commandName} is not executable (type: ${variable.type})`);\n }\n \n // Special handling for built-in transformers\n if (variable.internal?.isBuiltinTransformer && variable.internal?.transformerImplementation) {\n // Args were already extracted above\n \n // Special handling for @typeof - we need the Variable object, not just the value\n if (commandName === 'typeof' || commandName === 'TYPEOF') {\n if (args.length > 0) {\n const arg = args[0];\n \n // Check if it's a variable reference\n if (arg && typeof arg === 'object' && 'type' in arg && arg.type === 'VariableReference') {\n const varRef = arg as any;\n const varName = varRef.identifier;\n const varObj = env.getVariable(varName);\n \n if (varObj) {\n // Generate type information from the Variable object\n let typeInfo = varObj.type;\n \n // Handle subtypes for text variables\n if (varObj.type === 'simple-text' && 'subtype' in varObj) {\n // For simple-text, show the main type unless it has a special subtype\n const subtype = (varObj as any).subtype;\n if (subtype && subtype !== 'simple' && subtype !== 'interpolated-text') {\n typeInfo = subtype;\n }\n } else if (varObj.type === 'primitive' && 'primitiveType' in varObj) {\n typeInfo = `primitive (${(varObj as any).primitiveType})`;\n } else if (varObj.type === 'object') {\n const objValue = varObj.value;\n if (objValue && typeof objValue === 'object') {\n const keys = Object.keys(objValue);\n typeInfo = `object (${keys.length} properties)`;\n }\n } else if (varObj.type === 'array') {\n const arrValue = varObj.value;\n if (Array.isArray(arrValue)) {\n typeInfo = `array (${arrValue.length} items)`;\n }\n } else if (varObj.type === 'executable') {\n // Get executable type from metadata\n const execDef = varObj.internal?.executableDef;\n if (execDef && 'type' in execDef) {\n typeInfo = `executable (${execDef.type})`;\n }\n }\n \n // Add source information if available\n if (varObj.source?.directive) {\n typeInfo += ` [from /${varObj.source.directive}]`;\n }\n \n // Pass the type info with a special marker\n const result = await variable.internal.transformerImplementation(`__MLLD_VARIABLE_OBJECT__:${typeInfo}`);\n const normalized = normalizeTransformerResult(commandName, result);\n const resolvedValue = normalized.value;\n const wrapOptions = normalized.options;\n \n // Clean up resolution tracking before returning\n if (commandName && shouldTrackResolution) {\n env.endResolving(commandName);\n }\n\n // Apply withClause transformations if present\n if (node.withClause) {\n if (node.withClause.pipeline) {\n // Use unified pipeline processor for pipeline part\n const { processPipeline } = await import('./pipeline/unified-processor');\n const pipelineInputValue = toPipelineInput(resolvedValue, wrapOptions);\n const pipelineResult = await processPipeline({\n value: pipelineInputValue,\n env,\n node,\n identifier: node.identifier,\n descriptorHint: resultSecurityDescriptor\n });\n // Still need to handle other withClause features (trust, needs)\n return applyWithClause(pipelineResult, { ...node.withClause, pipeline: undefined }, env);\n } else {\n return applyWithClause(resolvedValue, node.withClause, env);\n }\n }\n\n return createEvalResult(resolvedValue, env, wrapOptions);\n }\n }\n }\n }\n \n // Special handling for @exists - return true when argument evaluation succeeds\n if (commandName === 'exists' || commandName === 'EXISTS') {\n const arg = args[0];\n const isGlobPattern = (value: string): boolean => /[\\*\\?\\{\\}\\[\\]]/.test(value);\n const isEmptyLoadArray = (value: unknown): boolean => {\n if (isStructuredValue(value)) {\n return (\n value.type === 'array' &&\n Array.isArray(value.data) &&\n value.data.length === 0\n );\n }\n return Array.isArray(value) && value.length === 0;\n };\n\n const resolveLoadContentSource = async (loadNode: any): Promise<string | undefined> => {\n const source = loadNode?.source;\n if (!source || typeof source !== 'object') {\n return undefined;\n }\n const actualSource =\n source.type === 'path' || source.type === 'url'\n ? source\n : source.segments && source.raw !== undefined\n ? { ...source, type: 'path' }\n : source;\n\n if (actualSource.type === 'path') {\n if (actualSource.meta?.hasVariables && Array.isArray(actualSource.segments)) {\n try {\n return (await interpolateWithResultDescriptor(actualSource.segments, env)).trim();\n } catch {\n return typeof actualSource.raw === 'string' ? actualSource.raw.trim() : undefined;\n }\n }\n if (typeof actualSource.raw === 'string') {\n return actualSource.raw.trim();\n }\n }\n\n if (actualSource.type === 'url') {\n if (typeof actualSource.raw === 'string') {\n return actualSource.raw.trim();\n }\n if (typeof actualSource.protocol === 'string' && typeof actualSource.host === 'string') {\n return `${actualSource.protocol}://${actualSource.host}${actualSource.path || ''}`;\n }\n }\n\n return undefined;\n };\n\n const isStringPathArgument = (value: unknown): boolean => {\n if (Array.isArray(value)) {\n return true;\n }\n if (!value || typeof value !== 'object') {\n return false;\n }\n if ('wrapperType' in value && Array.isArray((value as any).content)) {\n return true;\n }\n if ((value as any).type === 'Text') {\n return true;\n }\n if ((value as any).type === 'Literal' && (value as any).valueType === 'string') {\n return true;\n }\n return false;\n };\n\n const finalizeExistsResult = async (existsResult: boolean): Promise<EvalResult> => {\n if (commandName && shouldTrackResolution) {\n env.endResolving(commandName);\n }\n\n if (node.withClause) {\n if (node.withClause.pipeline) {\n const { processPipeline } = await import('./pipeline/unified-processor');\n const pipelineInputValue = toPipelineInput(existsResult);\n const pipelineResult = await processPipeline({\n value: pipelineInputValue,\n env,\n node,\n identifier: node.identifier,\n descriptorHint: resultSecurityDescriptor\n });\n return applyWithClause(pipelineResult, { ...node.withClause, pipeline: undefined }, env);\n }\n return applyWithClause(existsResult, node.withClause, env);\n }\n\n return createEvalResult(existsResult, env);\n };\n\n if (!arg) {\n return finalizeExistsResult(false);\n }\n\n try {\n if (isStringPathArgument(arg)) {\n const resolvePathString = async (): Promise<string> => {\n if (Array.isArray(arg)) {\n return interpolateWithResultDescriptor(arg, env, InterpolationContext.Default);\n }\n if (arg && typeof arg === 'object' && (arg as any).type === 'Text') {\n return String((arg as any).content ?? '');\n }\n if (arg && typeof arg === 'object' && (arg as any).type === 'Literal') {\n return String((arg as any).value ?? '');\n }\n if (arg && typeof arg === 'object' && 'wrapperType' in arg && Array.isArray((arg as any).content)) {\n return interpolateWithResultDescriptor((arg as any).content, env, InterpolationContext.Default);\n }\n return String(arg ?? '');\n };\n\n const trimmedPath = (await resolvePathString()).trim();\n if (!trimmedPath) {\n return finalizeExistsResult(false);\n }\n\n const { processContentLoader } = await import('./content-loader');\n const loadNode = {\n type: 'load-content',\n source: { type: 'path', raw: trimmedPath }\n };\n const loadResult = await processContentLoader(loadNode as any, env);\n if (isGlobPattern(trimmedPath) && isEmptyLoadArray(loadResult)) {\n return finalizeExistsResult(false);\n }\n return finalizeExistsResult(true);\n }\n\n if (arg && typeof arg === 'object' && (arg as any).type === 'load-content') {\n const { processContentLoader } = await import('./content-loader');\n const loadResult = await processContentLoader(arg as any, env);\n const sourceString = await resolveLoadContentSource(arg);\n if (sourceString && isGlobPattern(sourceString) && isEmptyLoadArray(loadResult)) {\n return finalizeExistsResult(false);\n }\n return finalizeExistsResult(true);\n }\n\n if (arg && typeof arg === 'object' && (arg as any).type === 'ExecInvocation') {\n await evaluateExecInvocation(arg as any, env);\n return finalizeExistsResult(true);\n }\n\n if (arg && typeof arg === 'object' && (arg as any).type === 'VariableReference') {\n const varRef = arg as any;\n let targetVar = env.getVariable(varRef.identifier);\n if (!targetVar && env.hasVariable(varRef.identifier)) {\n targetVar = await env.getResolverVariable(varRef.identifier);\n }\n if (!targetVar) {\n return finalizeExistsResult(false);\n }\n\n const { resolveVariable, ResolutionContext } = await import('../utils/variable-resolution');\n let resolvedValue = await resolveVariable(targetVar, env, ResolutionContext.FieldAccess);\n if (varRef.fields && varRef.fields.length > 0) {\n const { accessField } = await import('../utils/field-access');\n const normalized = normalizeFields(varRef.fields);\n for (const field of normalized) {\n const fieldResult = await accessField(resolvedValue, field, {\n preserveContext: true,\n env,\n sourceLocation: nodeSourceLocation\n });\n resolvedValue = (fieldResult as any).value;\n if (resolvedValue === undefined) {\n break;\n }\n }\n }\n\n if (varRef.pipes && varRef.pipes.length > 0) {\n const { processPipeline } = await import('./pipeline/unified-processor');\n await processPipeline({\n value: resolvedValue,\n env,\n node: varRef,\n identifier: varRef.identifier\n });\n }\n\n return finalizeExistsResult(true);\n }\n\n return finalizeExistsResult(true);\n } catch {\n return finalizeExistsResult(false);\n }\n }\n\n // Regular transformer handling\n let inputValue = '';\n if (args.length > 0) {\n let arg: any = args[0];\n if (arg && typeof arg === 'object' && 'type' in arg) {\n const { evaluateDataValue } = await import('./data-value-evaluator');\n arg = await evaluateDataValue(arg as any, env);\n }\n const transformerName = (variable.name ?? commandName ?? '').toLowerCase();\n if (transformerName === 'keep' || transformerName === 'keepstructured') {\n inputValue = arg as any;\n } else if (typeof arg === 'string') {\n inputValue = arg;\n } else if (arg && typeof arg === 'object') {\n inputValue = await interpolateWithResultDescriptor([arg], env);\n } else {\n inputValue = String(arg);\n }\n }\n \n // Call the transformer implementation directly\n const result = await variable.internal.transformerImplementation(inputValue);\n const normalized = normalizeTransformerResult(commandName, result);\n const resolvedValue = normalized.value;\n const wrapOptions = normalized.options;\n\n // Clean up resolution tracking before returning\n if (commandName && shouldTrackResolution) {\n env.endResolving(commandName);\n }\n\n // Apply withClause transformations if present\n if (node.withClause) {\n if (node.withClause.pipeline) {\n // Use unified pipeline processor for pipeline part\n const { processPipeline } = await import('./pipeline/unified-processor');\n const pipelineInputValue = toPipelineInput(resolvedValue, wrapOptions);\n const pipelineResult = await processPipeline({\n value: pipelineInputValue,\n env,\n node,\n identifier: node.identifier,\n descriptorHint: resultSecurityDescriptor\n });\n // Still need to handle other withClause features (trust, needs)\n return applyWithClause(pipelineResult, { ...node.withClause, pipeline: undefined }, env);\n } else {\n return applyWithClause(resolvedValue, node.withClause, env);\n }\n }\n\n return createEvalResult(resolvedValue, env, wrapOptions);\n }\n \n // Get the full executable definition from metadata\n const definition = variable.internal?.executableDef as ExecutableDefinition;\n if (!definition) {\n throw new MlldInterpreterError(`Executable ${commandName} has no definition in metadata`);\n }\n if (process.env.DEBUG_EXEC === 'true' && commandName === 'pipe') {\n // Debug aid for pipeline identity scenarios\n console.error('[debug-exec] definition for @pipe:', JSON.stringify(definition, null, 2));\n }\n const definitionHasStreamFormat =\n definition.withClause?.streamFormat !== undefined ||\n (definition.meta as any)?.withClause?.streamFormat !== undefined;\n streamingRequested =\n streamingRequested ||\n definition.withClause?.stream === true ||\n (definition.meta as any)?.withClause?.stream === true ||\n (definition.meta as any)?.isStream === true;\n streamingEnabled = streamingOptions.enabled !== false && streamingRequested;\n\n let whenExprNode: WhenExpressionNode | null = null;\n if (definition.language === 'mlld-when') {\n const candidate =\n Array.isArray(definition.codeTemplate) && definition.codeTemplate.length > 0\n ? (definition.codeTemplate[0] as WhenExpressionNode | undefined)\n : undefined;\n if (!candidate || candidate.type !== 'WhenExpression') {\n throw new MlldInterpreterError('mlld-when executable missing WhenExpression node');\n }\n whenExprNode = candidate;\n }\n \n // Create a child environment for parameter substitution\n let execEnv = env.createChild();\n\n // Set captured module environment for variable lookup fallback\n if (variable?.internal?.capturedModuleEnv instanceof Map) {\n execEnv.setCapturedModuleEnv(variable.internal.capturedModuleEnv);\n }\n\n // Handle command arguments - args were already extracted above\n const params = definition.paramNames || [];\n \n // Evaluate arguments using consistent interpolate() pattern\n const evaluatedArgStrings: string[] = [];\n const evaluatedArgs: any[] = []; // Preserve original data types\n \n for (const arg of args) {\n let argValue: string;\n let argValueAny: any;\n\n if (process.env.MLLD_DEBUG === 'true') {\n console.error('[DEBUG ARG] Processing arg:', { isStructured: isStructuredValue(arg), argType: typeof arg, argKeys: arg && typeof arg === 'object' ? Object.keys(arg).slice(0, 5) : null });\n }\n\n if (isStructuredValue(arg)) {\n if (process.env.MLLD_DEBUG === 'true') {\n console.error('[DEBUG ARG] StructuredValue detected:', { type: arg.type, dataType: typeof arg.data, isArray: Array.isArray(arg.data) });\n }\n argValueAny = arg;\n argValue = asText(arg);\n } else if (arg && typeof arg === 'object' && (arg as any).type === 'RegexLiteral') {\n const pattern = (arg as any).pattern || '';\n const flags = (arg as any).flags || '';\n const regex = new RegExp(pattern, flags);\n argValueAny = regex;\n argValue = regex.toString();\n } else if (typeof arg === 'string' || typeof arg === 'number' || typeof arg === 'boolean') {\n // Primitives: pass through directly\n argValue = String(arg);\n argValueAny = arg;\n \n } else if (arg && typeof arg === 'object' && 'type' in arg) {\n // AST nodes: evaluate based on type\n switch (arg.type) {\n case 'WhenExpression': {\n // Evaluate when-expression argument\n const { evaluateWhenExpression } = await import('./when-expression');\n const whenRes = await evaluateWhenExpression(arg as any, env);\n argValueAny = whenRes.value;\n // Stringify for argValue if object/array\n if (argValueAny === undefined) {\n argValue = 'undefined';\n } else if (typeof argValueAny === 'object') {\n try { argValue = JSON.stringify(argValueAny); } catch { argValue = String(argValueAny); }\n } else {\n argValue = String(argValueAny);\n }\n break;\n }\n case 'foreach':\n case 'foreach-command': {\n const { evaluateForeachCommand } = await import('./foreach');\n const arr = await evaluateForeachCommand(arg as any, env);\n argValueAny = arr;\n argValue = JSON.stringify(arr);\n break;\n }\n case 'object':\n // Object literals: recursively evaluate properties (may contain exec invocations, etc.)\n const { evaluateDataValue } = await import('./data-value-evaluator');\n argValueAny = await evaluateDataValue(arg, env);\n argValue = JSON.stringify(argValueAny);\n break;\n \n case 'array':\n // Array literals: recursively evaluate items (may contain variables, exec calls, etc.)\n const { evaluateDataValue: evalArray } = await import('./data-value-evaluator');\n argValueAny = await evalArray(arg, env);\n argValue = JSON.stringify(argValueAny);\n break;\n \n case 'VariableReference':\n // Special handling for variable references to preserve objects\n const varRef = arg as any;\n const varName = varRef.identifier;\n const variable = env.getVariable(varName);\n \n if (variable) {\n // Get the actual value from the variable\n let value = variable.value;\n \n // WHY: Template variables store AST arrays for lazy evaluation,\n // must interpolate before passing to executables\n const { isTemplate } = await import('@core/types/variable');\n if (isTemplate(variable)) {\n if (Array.isArray(value)) {\n value = await interpolateWithResultDescriptor(value, env);\n } else if (variable.internal?.templateAst && Array.isArray(variable.internal.templateAst)) {\n value = await interpolateWithResultDescriptor(variable.internal.templateAst, env);\n }\n }\n \n // Handle field access (e.g., @user.name)\n if (varRef.fields && varRef.fields.length > 0) {\n const { accessFields } = await import('../utils/field-access');\n const accessed = await accessFields(value, varRef.fields, {\n env,\n preserveContext: false,\n sourceLocation: (varRef as any).location\n });\n value = accessed;\n }\n \n if (isStructuredValue(value)) {\n argValueAny = value;\n argValue = asText(value);\n } else {\n // Preserve the type of the final value\n argValueAny = value;\n // For objects and arrays, use JSON.stringify to get proper string representation\n if (value === undefined) {\n argValue = 'undefined';\n } else if (typeof value === 'object' && value !== null) {\n try {\n argValue = JSON.stringify(value);\n } catch (e) {\n argValue = String(value);\n }\n } else {\n argValue = String(value);\n }\n }\n } else {\n // Variable not found - use interpolation which will throw appropriate error\n argValue = await interpolateWithResultDescriptor([arg], env, InterpolationContext.Default);\n argValueAny = argValue;\n }\n break;\n\n case 'load-content': {\n const { processContentLoader } = await import('./content-loader');\n const { wrapLoadContentValue } = await import('../utils/load-content-structured');\n const loadResult = await processContentLoader(arg as any, env);\n const structured = wrapLoadContentValue(loadResult);\n argValueAny = structured;\n argValue = asText(structured);\n break;\n }\n \n case 'ExecInvocation': {\n const nestedResult = await evaluateExecInvocation(arg as ExecInvocation, env);\n if (nestedResult && nestedResult.value !== undefined) {\n argValueAny = nestedResult.value;\n } else if (nestedResult && nestedResult.stdout !== undefined) {\n argValueAny = nestedResult.stdout;\n } else {\n argValueAny = undefined;\n }\n\n if (argValueAny === undefined) {\n argValue = 'undefined';\n } else if (isStructuredValue(argValueAny)) {\n argValue = asText(argValueAny);\n } else if (typeof argValueAny === 'object') {\n try {\n argValue = JSON.stringify(argValueAny);\n } catch {\n argValue = String(argValueAny);\n }\n } else {\n argValue = String(argValueAny);\n }\n break;\n }\n case 'Text':\n // Plain text nodes should remain strings; avoid JSON coercion that can\n // truncate large numeric identifiers (e.g., Discord snowflakes)\n argValue = await interpolateWithResultDescriptor([arg], env, InterpolationContext.Default);\n argValueAny = argValue;\n break;\n default:\n // Other nodes: interpolate normally\n argValue = await interpolateWithResultDescriptor([arg], env, InterpolationContext.Default);\n // Try to preserve structured data if it's JSON\n try {\n argValueAny = JSON.parse(argValue);\n } catch {\n argValueAny = argValue;\n }\n break;\n }\n } else {\n // Fallback for unexpected types\n argValue = String(arg);\n argValueAny = arg;\n }\n \n evaluatedArgStrings.push(argValue);\n evaluatedArgs.push(argValueAny);\n }\n\n if (process.env.MLLD_DEBUG_FIX === 'true') {\n console.error('[evaluateExecInvocation] evaluated args', {\n commandName,\n argCount: evaluatedArgs.length,\n argTypes: evaluatedArgs.map(a => (a === null ? 'null' : Array.isArray(a) ? 'array' : typeof a)),\n argPreview: evaluatedArgs.map(a => {\n if (isStructuredValue(a)) return { structured: true, type: a.type, dataType: typeof a.data };\n if (a && typeof a === 'object') return { keys: Object.keys(a).slice(0, 5) };\n return a;\n })\n });\n }\n \n // Track original Variables for arguments\n const originalVariables: (Variable | undefined)[] = new Array(args.length);\n const guardVariableCandidates: (Variable | undefined)[] = new Array(args.length);\n const expressionSourceVariables: (Variable | undefined)[] = new Array(args.length);\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (arg && typeof arg === 'object' && 'type' in arg && arg.type === 'VariableReference') {\n const varRef = arg as any;\n const varName = varRef.identifier;\n const variable = env.getVariable(varName);\n if (variable && !varRef.fields) {\n // GOTCHA: Don't preserve template variables after interpolation,\n // use the interpolated string value instead\n const { isTemplate } = await import('@core/types/variable');\n if (isTemplate(variable) && typeof evaluatedArgs[i] === 'string') {\n originalVariables[i] = undefined;\n } else {\n originalVariables[i] = variable;\n guardVariableCandidates[i] = variable;\n }\n \n if (process.env.MLLD_DEBUG === 'true') {\n const subtype = variable.type === 'primitive' && 'primitiveType' in variable \n ? (variable as any).primitiveType \n : variable.subtype;\n \n logger.debug(`Preserving original Variable for arg ${i}:`, {\n varName,\n variableType: variable.type,\n variableSubtype: subtype,\n isPrimitive: typeof variable.value !== 'object' || variable.value === null\n });\n }\n }\n } else if (\n arg &&\n typeof arg === 'object' &&\n 'type' in arg &&\n arg.type === 'ExecInvocation'\n ) {\n const objectRef = (arg.commandRef as any)?.objectReference;\n if (\n objectRef &&\n typeof objectRef === 'object' &&\n objectRef.type === 'VariableReference' &&\n objectRef.identifier\n ) {\n const baseVariable = env.getVariable(objectRef.identifier);\n if (baseVariable) {\n expressionSourceVariables[i] = baseVariable;\n }\n }\n }\n }\n \n const guardHelperImpl =\n (variable.internal as any)?.guardHelperImplementation;\n if (\n (variable.internal as any)?.isGuardHelper &&\n typeof guardHelperImpl === 'function'\n ) {\n const impl = guardHelperImpl as (args: readonly unknown[]) => unknown | Promise<unknown>;\n const helperResult = await impl(evaluatedArgs);\n return createEvalResult(helperResult, env);\n }\n\n for (let i = 0; i < args.length; i++) {\n if (!guardVariableCandidates[i] && expressionSourceVariables[i]) {\n const source = expressionSourceVariables[i]!;\n const cloned = cloneVariableWithNewValue(\n source,\n evaluatedArgs[i],\n evaluatedArgStrings[i]\n );\n guardVariableCandidates[i] = cloned;\n }\n }\n\n const guardInputsWithMapping = materializeGuardInputsWithMapping(\n Array.from({ length: guardVariableCandidates.length }, (_unused, index) =>\n guardVariableCandidates[index] ?? evaluatedArgs[index]\n ),\n {\n nameHint: '__guard_input__'\n }\n );\n const guardInputs = guardInputsWithMapping.map(entry => entry.variable);\n let postHookInputs: readonly Variable[] = guardInputs;\n const hookManager = env.getHookManager();\n const execDescriptor = getVariableSecurityDescriptor(variable);\n const operationContext: OperationContext = {\n type: 'exe',\n name: variable.name ?? commandName,\n labels: execDescriptor?.labels,\n location: node.location ?? null,\n metadata: {\n executableType: definition.type,\n command: commandName,\n sourceRetryable: true\n }\n };\n const finalizeResult = async (result: EvalResult): Promise<EvalResult> => {\n try {\n return await hookManager.runPost(node, result, postHookInputs, env, operationContext);\n } catch (error) {\n if (whenExprNode) {\n const handled = await handleExecGuardDenial(error, {\n execEnv,\n env,\n whenExprNode\n });\n if (handled) {\n return handled;\n }\n }\n throw error;\n }\n };\n\n return await env.withOpContext(operationContext, async () => {\n return AutoUnwrapManager.executeWithPreservation(async () => {\n const preDecision = await hookManager.runPre(node, guardInputs, env, operationContext);\n const transformedGuardInputs = getGuardTransformedInputs(preDecision, guardInputs);\n const transformedGuardSet =\n transformedGuardInputs && transformedGuardInputs.length > 0\n ? new Set(transformedGuardInputs as readonly Variable[])\n : null;\n if (transformedGuardInputs && transformedGuardInputs.length > 0) {\n postHookInputs = transformedGuardInputs;\n applyGuardTransformsToExecArgs({\n guardInputEntries: guardInputsWithMapping,\n transformedInputs: transformedGuardInputs,\n guardVariableCandidates,\n evaluatedArgs,\n evaluatedArgStrings\n });\n }\n // Bind evaluated arguments to parameters\n for (let i = 0; i < params.length; i++) {\n const paramName = params[i];\n const argValue = evaluatedArgs[i];\n const argStringValue = evaluatedArgStrings[i];\n const originalVar = originalVariables[i];\n const guardCandidate = guardVariableCandidates[i];\n const isShellCode =\n definition.type === 'code' &&\n typeof definition.language === 'string' &&\n (definition.language === 'bash' || definition.language === 'sh');\n const preferGuardReplacement =\n transformedGuardSet?.has(guardCandidate as Variable) ?? false;\n const allowOriginalReuse =\n !preferGuardReplacement && Boolean(originalVar) && !isShellCode && definition.type !== 'command';\n\n if (guardCandidate && (!originalVar || !allowOriginalReuse || preferGuardReplacement)) {\n const candidateClone = cloneGuardCandidateForParameter(\n paramName,\n guardCandidate,\n argValue,\n argStringValue\n );\n execEnv.setParameterVariable(paramName, candidateClone);\n continue;\n }\n\n if (argValue !== undefined) {\n const paramVar = createParameterVariable({\n name: paramName,\n value: evaluatedArgs[i], // Use evaluatedArgs (preserves StructuredValue), not argValue (string)\n stringValue: argStringValue,\n originalVariable: originalVar,\n allowOriginalReuse,\n metadataFactory: createParameterMetadata,\n origin: 'exec-param'\n });\n\n if (paramVar) {\n execEnv.setParameterVariable(paramName, paramVar);\n }\n }\n }\n\n // Capture descriptors from executable definition and parameters\n const descriptorPieces: SecurityDescriptor[] = [];\n const variableDescriptor = getVariableSecurityDescriptor(variable);\n if (variableDescriptor) {\n descriptorPieces.push(variableDescriptor);\n }\n const mergedParamDescriptor = collectAndMergeParameterDescriptors(params, execEnv);\n if (mergedParamDescriptor) {\n descriptorPieces.push(mergedParamDescriptor);\n }\n if (descriptorPieces.length > 0) {\n resultSecurityDescriptor =\n descriptorPieces.length === 1\n ? descriptorPieces[0]\n : env.mergeSecurityDescriptors(...descriptorPieces);\n env.recordSecurityDescriptor(resultSecurityDescriptor);\n }\n\n const guardInputVariable =\n preDecision && preDecision.metadata && (preDecision.metadata as Record<string, unknown>).guardInput;\n try {\n await handleGuardDecision(preDecision, node, env, operationContext);\n } catch (error) {\n if (guardInputVariable) {\n const existingInput = execEnv.getVariable('input');\n if (!existingInput) {\n const clonedInput: Variable = {\n ...(guardInputVariable as Variable),\n name: 'input',\n mx: { ...(guardInputVariable as Variable).mx },\n internal: {\n ...((guardInputVariable as Variable).internal ?? {}),\n isSystem: true,\n isParameter: true\n }\n };\n execEnv.setParameterVariable('input', clonedInput);\n }\n }\n if (whenExprNode) {\n const handled = await handleExecGuardDenial(error, {\n execEnv,\n env,\n whenExprNode\n });\n if (handled) {\n return finalizeResult(handled);\n }\n }\n throw error;\n }\n \n let result: unknown;\n let workingDirectory: string | undefined;\n if ('workingDir' in definition && (definition as any).workingDir) {\n workingDirectory = await resolveWorkingDirectory(\n (definition as any).workingDir as any,\n execEnv,\n {\n sourceLocation: node.location ?? undefined,\n directiveType: 'exec'\n }\n );\n }\n \n // Handle template executables\n if (isTemplateExecutable(definition)) {\n // Interpolate the template with the bound parameters\n const templateResult = await interpolateWithResultDescriptor(definition.template, execEnv);\n if (isStructuredValue(templateResult)) {\n result = templateResult;\n } else if (typeof templateResult === 'string') {\n const parsed = parseAndWrapJson(templateResult, {\n metadata: resultSecurityDescriptor ? { security: resultSecurityDescriptor } : undefined,\n preserveText: true\n });\n result = parsed ?? templateResult;\n } else {\n result = templateResult;\n }\n\n if (!isStructuredValue(result) && result && typeof result === 'object') {\n const templateType = Array.isArray(result) ? 'array' : 'object';\n const metadata = resultSecurityDescriptor ? { security: resultSecurityDescriptor } : undefined;\n result = wrapStructured(result as Record<string, unknown>, templateType, undefined, metadata);\n }\n\n const templateWithClause = (definition as any).withClause;\n if (templateWithClause) {\n if (templateWithClause.pipeline && templateWithClause.pipeline.length > 0) {\n const { processPipeline } = await import('./pipeline/unified-processor');\n const pipelineInputValue = toPipelineInput(result);\n const pipelineResult = await processPipeline({\n value: pipelineInputValue,\n env: execEnv,\n pipeline: templateWithClause.pipeline,\n format: templateWithClause.format as string | undefined,\n isRetryable: false,\n identifier: commandName,\n location: node.location,\n descriptorHint: resultSecurityDescriptor\n });\n result = pipelineResult;\n } else {\n const withClauseResult = await applyWithClause(result, templateWithClause, execEnv);\n result = withClauseResult.value ?? withClauseResult;\n }\n }\n}\n// Handle data executables\n else if (isDataExecutable(definition)) {\n const { evaluateDataValue } = await import('./data-value-evaluator');\n const dataValue = await evaluateDataValue(definition.dataTemplate as any, execEnv);\n const text = typeof dataValue === 'string' ? dataValue : JSON.stringify(dataValue);\n const dataDescriptor = extractSecurityDescriptor(dataValue, {\n recursive: true,\n mergeArrayElements: true\n });\n const mergedDescriptor =\n dataDescriptor && resultSecurityDescriptor\n ? execEnv.mergeSecurityDescriptors(dataDescriptor, resultSecurityDescriptor)\n : dataDescriptor || resultSecurityDescriptor || undefined;\n result = wrapStructured(\n dataValue as any,\n Array.isArray(dataValue) ? 'array' : 'object',\n text,\n mergedDescriptor ? { security: mergedDescriptor } : undefined\n );\n }\n // Handle pipeline executables\n else if (isPipelineExecutable(definition)) {\n const { processPipeline } = await import('./pipeline/unified-processor');\n const pipelineInputValue =\n evaluatedArgs.length > 0\n ? toPipelineInput(evaluatedArgs[0])\n : '';\n const pipelineResult = await processPipeline({\n value: pipelineInputValue,\n env: execEnv,\n pipeline: definition.pipeline,\n format: definition.format,\n identifier: commandName,\n location: node.location,\n isRetryable: false,\n descriptorHint: resultSecurityDescriptor\n });\n result = typeof pipelineResult === 'string' ? pipelineResult : String(pipelineResult ?? '');\n }\n // Handle command executables\n else if (isCommandExecutable(definition)) {\n // First, detect which parameters are referenced in the template BEFORE interpolation\n // This is crucial for deciding when to use bash fallback for large variables\n const referencedInTemplate = new Set<string>();\n try {\n const nodes = definition.commandTemplate as any[];\n if (Array.isArray(nodes)) {\n for (const n of nodes) {\n if (n && typeof n === 'object' && n.type === 'VariableReference' && typeof n.identifier === 'string') {\n referencedInTemplate.add(n.identifier);\n } else if (n && typeof n === 'object' && n.type === 'Text' && typeof (n as any).content === 'string') {\n // Also detect literal @name patterns in text segments\n for (const pname of params) {\n const re = new RegExp(`@${pname}(?![A-Za-z0-9_])`);\n if (re.test((n as any).content)) {\n referencedInTemplate.add(pname);\n }\n }\n }\n }\n }\n } catch {}\n \n // Interpolate the command template with parameters using ShellCommand context\n let command = await interpolateWithResultDescriptor(\n definition.commandTemplate,\n execEnv,\n InterpolationContext.ShellCommand\n );\n // DISABLED (2025-11-25, issue #456): This escape sequence normalization was\n // intended to allow \\n in literal string arguments to become actual newlines\n // (e.g., /exe @echo(msg) = run { echo @msg } with @echo(\"line1\\nline2\")).\n // However, it runs on the ENTIRE interpolated command, including properly-escaped\n // JSON data. When JSON containing \"\\n\" (literal backslash-n) passes through,\n // shell-quote correctly escapes it to \"\\\\n\", but this code then converts it\n // back to actual newlines, corrupting the JSON.\n //\n // Result of disabling: Literal \\n in string arguments will no longer become\n // newlines. Users who need multiline output should use actual newlines in\n // their mlld source or use heredocs/printf in their shell commands.\n //\n // command = command\n // .replace(/\\\\n/g, '\\n')\n // .replace(/\\\\t/g, '\\t')\n // .replace(/\\\\r/g, '\\r')\n // .replace(/\\\\0/g, '\\0');\n \n if (process.env.DEBUG_WHEN || process.env.DEBUG_EXEC) {\n logger.debug('Executing command', {\n command,\n commandTemplate: definition.commandTemplate\n });\n }\n \n // Build environment variables from parameters for shell execution\n // Only include parameters that are referenced in the command string to avoid\n // passing oversized, unused values into the environment (E2BIG risk).\n const envVars: Record<string, string> = {};\n const escapeRegex = (s: string) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n // Cache compiled regex per parameter for performance on large templates\n const paramRegexCache: Record<string, { simple: RegExp; braced: RegExp }> = {};\n const referencesParam = (cmd: string, name: string) => {\n // Prefer original template reference detection so interpolation doesn't hide usage\n if (referencedInTemplate.has(name)) return true;\n // Also check for $name (not followed by word char) or ${name}, avoiding escaped dollars (\\$)\n if (!paramRegexCache[name]) {\n const n = escapeRegex(name);\n paramRegexCache[name] = {\n simple: new RegExp(`(^|[^\\\\\\\\])\\\\$${n}(?![A-Za-z0-9_])`),\n braced: new RegExp(`\\\\$\\\\{${n}\\\\}`)\n };\n }\n const { simple, braced } = paramRegexCache[name];\n return simple.test(cmd) || braced.test(cmd);\n };\n for (let i = 0; i < params.length; i++) {\n const paramName = params[i];\n if (!referencesParam(command, paramName)) continue; // skip unused params\n \n // Properly serialize proxy objects for execution\n const paramVar = execEnv.getVariable(paramName);\n if (paramVar && typeof paramVar.value === 'object' && paramVar.value !== null) {\n try {\n envVars[paramName] = JSON.stringify(paramVar.value);\n } catch {\n envVars[paramName] = evaluatedArgStrings[i];\n }\n } else {\n envVars[paramName] = evaluatedArgStrings[i];\n }\n }\n \n // Check if any referenced env var is oversized; if so, optionally fallback to bash heredoc\n const perVarMax = (() => {\n const v = process.env.MLLD_MAX_SHELL_ENV_VAR_SIZE;\n if (!v) return 128 * 1024; // 128KB default\n const n = Number(v);\n return Number.isFinite(n) && n > 0 ? Math.floor(n) : 128 * 1024;\n })();\n const needsBashFallback = Object.values(envVars).some(v => Buffer.byteLength(v || '', 'utf8') > perVarMax);\n const fallbackDisabled = (() => {\n const v = (process.env.MLLD_DISABLE_COMMAND_BASH_FALLBACK || '').toLowerCase();\n return v === '1' || v === 'true' || v === 'yes' || v === 'on';\n })();\n \n if (needsBashFallback && !fallbackDisabled) {\n // Build a bash-friendly command string where param refs stay as \"$name\"\n // so BashExecutor can inject them via heredoc.\n let fallbackCommand = '';\n try {\n const nodes = definition.commandTemplate as any[];\n if (Array.isArray(nodes)) {\n for (const n of nodes) {\n if (n && typeof n === 'object' && n.type === 'VariableReference' && typeof n.identifier === 'string' && params.includes(n.identifier)) {\n fallbackCommand += `\"$${n.identifier}\"`;\n } else if (n && typeof n === 'object' && 'content' in n) {\n fallbackCommand += String((n as any).content || '');\n } else if (typeof n === 'string') {\n fallbackCommand += n;\n } else {\n // Fallback: interpolate conservatively for unexpected nodes\n fallbackCommand += await interpolateWithResultDescriptor(\n [n as any],\n execEnv,\n InterpolationContext.ShellCommand\n );\n }\n }\n } else {\n fallbackCommand = command;\n }\n } catch {\n fallbackCommand = command;\n }\n\n // Validate base command semantics (keep same security posture)\n try {\n CommandUtils.validateAndParseCommand(fallbackCommand);\n } catch (error) {\n throw new MlldCommandExecutionError(\n error instanceof Error ? error.message : String(error),\n context?.sourceLocation,\n {\n command: fallbackCommand,\n exitCode: 1,\n duration: 0,\n stderr: error instanceof Error ? error.message : String(error),\n workingDirectory: (execEnv as any).getProjectRoot?.() || '',\n directiveType: context?.directiveType || 'run'\n }\n );\n }\n\n // Build params for bash execution using evaluated argument values, but only those referenced\n const codeParams: Record<string, any> = {};\n for (let i = 0; i < params.length; i++) {\n const paramName = params[i];\n if (!referencesParam(command, paramName)) continue;\n codeParams[paramName] = evaluatedArgs[i];\n }\n if (process.env.MLLD_DEBUG === 'true') {\n console.error('[exec-invocation] Falling back to bash heredoc for oversized command params', {\n fallbackSnippet: fallbackCommand.slice(0, 120),\n paramCount: Object.keys(codeParams).length\n });\n }\n const commandOutput = await execEnv.executeCode(\n fallbackCommand,\n 'sh',\n codeParams,\n undefined,\n workingDirectory ? { workingDirectory } : undefined,\n {\n directiveType: 'exec',\n sourceLocation: node.location,\n workingDirectory\n }\n );\n // Normalize structured output when possible\n if (typeof commandOutput === 'string') {\n const parsed = parseAndWrapJson(commandOutput);\n result = parsed ?? commandOutput;\n } else {\n result = commandOutput;\n }\n } else {\n // Check for stdin support in withClause\n let stdinInput: string | undefined;\n if (definition.withClause && 'stdin' in definition.withClause) {\n // Resolve stdin input similar to run.ts\n stdinInput = await resolveStdinInput(definition.withClause.stdin, execEnv);\n }\n\n // Execute the command with environment variables and optional stdin\n const commandOptions = stdinInput !== undefined\n ? { env: envVars, input: stdinInput }\n : { env: envVars };\n if (workingDirectory) {\n (commandOptions as any).workingDirectory = workingDirectory;\n }\n const commandOutput = await execEnv.executeCommand(\n command,\n commandOptions,\n {\n directiveType: 'exec',\n streamingEnabled,\n pipelineId,\n stageIndex: 0,\n sourceLocation: node.location,\n emitEffect: chunkEffect,\n workingDirectory,\n suppressTerminal: hasStreamFormat || streamingOptions.suppressTerminal === true\n }\n );\n \n // Normalize structured output when possible\n if (typeof commandOutput === 'string') {\n const parsed = parseAndWrapJson(commandOutput);\n result = parsed ?? commandOutput;\n } else {\n result = commandOutput;\n }\n }\n\n if (definition.withClause) {\n if (definition.withClause.pipeline && definition.withClause.pipeline.length > 0) {\n const { processPipeline } = await import('./pipeline/unified-processor');\n const pipelineInput = typeof result === 'string'\n ? result\n : result === undefined || result === null\n ? ''\n : isStructuredValue(result)\n ? asText(result)\n : JSON.stringify(result);\n const pipelineResult = await processPipeline({\n value: pipelineInput,\n env: execEnv,\n pipeline: definition.withClause.pipeline,\n format: definition.withClause.format as string | undefined,\n isRetryable: false,\n identifier: commandName,\n location: variable.mx?.definedAt || node.location,\n descriptorHint: resultSecurityDescriptor\n });\n\n if (typeof pipelineResult === 'string') {\n const parsed = parseAndWrapJson(pipelineResult);\n result = parsed ?? pipelineResult;\n } else {\n result = pipelineResult;\n }\n }\n }\n }\n // Handle code executables\n else if (isCodeExecutable(definition)) {\n // Special handling for mlld-when expressions\n if (definition.language === 'mlld-when') {\n const activeWhenExpr = whenExprNode;\n if (!activeWhenExpr) {\n throw new MlldInterpreterError('mlld-when executable missing WhenExpression node');\n }\n\n // Evaluate the when expression with the parameter environment\n const { evaluateWhenExpression } = await import('./when-expression');\n let whenResult: EvalResult;\n try {\n whenResult = await evaluateWhenExpression(activeWhenExpr, execEnv);\n } catch (error) {\n const handled = await handleExecGuardDenial(error, {\n execEnv,\n env,\n whenExprNode: activeWhenExpr\n });\n if (handled) {\n const finalHandled = await finalizeResult(handled);\n return finalHandled;\n }\n throw error;\n }\n const normalization = normalizeWhenShowEffect(whenResult.value);\n result = normalization.normalized;\n // Update execEnv to the result which contains merged nodes\n execEnv = whenResult.env;\n } else if (definition.language === 'mlld-foreach') {\n // Special handling for mlld-foreach expressions\n const foreachNode = definition.codeTemplate[0];\n // Evaluate the foreach expression with the parameter environment\n const { evaluateForeachCommand } = await import('./foreach');\n result = await evaluateForeachCommand(foreachNode, execEnv);\n } else if (definition.language === 'mlld-for') {\n // Special handling for mlld-for expressions\n const forExprNode = definition.codeTemplate[0];\n if (!forExprNode || forExprNode.type !== 'ForExpression') {\n throw new MlldInterpreterError('mlld-for executable missing ForExpression node');\n }\n \n // Evaluate the for expression with the parameter environment\n const { evaluateForExpression } = await import('./for');\n result = await evaluateForExpression(forExprNode, execEnv);\n } else if (definition.language === 'mlld-exe-block') {\n const blockNode = Array.isArray(definition.codeTemplate)\n ? (definition.codeTemplate[0] as ExeBlockNode | undefined)\n : undefined;\n if (!blockNode || !blockNode.values) {\n throw new MlldInterpreterError('mlld-exe-block executable missing block content');\n }\n\n const blockResult = await evaluateExeBlock(blockNode, execEnv);\n result = blockResult.value;\n execEnv = blockResult.env;\n } else {\n // For bash/sh, don't interpolate the code template - bash handles its own variable substitution\n let code: string;\n if (definition.language === 'bash' || definition.language === 'sh') {\n // For bash/sh, just extract the raw code without interpolation\n if (Array.isArray(definition.codeTemplate)) {\n // If it's an array of nodes, concatenate their content\n code = definition.codeTemplate.map(node => {\n if (typeof node === 'string') return node;\n if (node && typeof node === 'object' && 'content' in node) return node.content || '';\n return '';\n }).join('');\n } else if (typeof definition.codeTemplate === 'string') {\n code = definition.codeTemplate;\n } else {\n code = '';\n }\n } else {\n // For other languages (JS, Python), interpolate as before\n code = await interpolateWithResultDescriptor(definition.codeTemplate, execEnv);\n }\n \n // Import ASTEvaluator for normalizing array values\n const { ASTEvaluator } = await import('../core/ast-evaluator');\n \n // Build params object for code execution\n const codeParams: Record<string, any> = {};\n const variableMetadata: Record<string, any> = {};\n \n for (let i = 0; i < params.length; i++) {\n const paramName = params[i];\n \n // Check if this parameter is a pipeline input variable\n const paramVar = execEnv.getVariable(paramName);\n if (process.env.MLLD_DEBUG === 'true') {\n logger.debug('Checking parameter:', {\n paramName,\n hasParamVar: !!paramVar,\n paramVarType: paramVar?.type,\n isPipelineInput: paramVar?.type === 'pipeline-input'\n });\n }\n if (paramVar && paramVar.type === 'pipeline-input') {\n // Pass the pipeline input object directly for code execution\n codeParams[paramName] = paramVar.value;\n } else if (paramVar) {\n // Always use enhanced Variable passing\n if (definition.language === 'bash' || definition.language === 'sh') {\n const rawValue = paramVar.value;\n if (typeof rawValue === 'string') {\n codeParams[paramName] = rawValue;\n } else if (isStructuredValue(rawValue)) {\n codeParams[paramName] = asText(rawValue);\n } else {\n codeParams[paramName] = prepareValueForShadow(paramVar);\n }\n } else {\n if (env.shouldSuppressGuards() && paramVar.internal?.isSystem && paramVar.internal?.isParameter) {\n const rawValue = isStructuredValue(paramVar.value)\n ? paramVar.value.data\n : paramVar.value;\n codeParams[paramName] = rawValue;\n } else {\n // Other languages (JS, Python, Node, etc.) get deferred conversion to proxies\n // so that prepareParamsForShadow can record primitive metadata.\n let variableForShadow: Variable = paramVar;\n\n // But first, check if it's a complex Variable that needs resolution\n if ((paramVar as any).isComplex && paramVar.value && typeof paramVar.value === 'object' && 'type' in paramVar.value) {\n // Complex Variable with AST - extract value - WHY: Shadow environments need evaluated values\n const { extractVariableValue: extractVal } = await import('../utils/variable-resolution');\n const resolvedValue = await extractVal(paramVar, execEnv);\n const resolvedVar = {\n ...paramVar,\n value: resolvedValue,\n isComplex: false\n };\n variableForShadow = resolvedVar;\n } else {\n // Auto-unwrap LoadContentResult objects for JS/Python\n const unwrappedValue = AutoUnwrapManager.unwrap(paramVar.value);\n if (unwrappedValue !== paramVar.value) {\n // Value was unwrapped, create a new variable with the unwrapped content\n const unwrappedVar = {\n ...paramVar,\n value: unwrappedValue,\n // Update type based on unwrapped value\n type: Array.isArray(unwrappedValue) ? 'array' : 'text'\n };\n variableForShadow = unwrappedVar;\n } else {\n variableForShadow = paramVar;\n }\n }\n\n codeParams[paramName] = variableForShadow;\n }\n }\n \n // Store metadata for primitives that can't be proxied (only for non-bash languages)\n if ((definition.language !== 'bash' && definition.language !== 'sh') && \n (paramVar.value === null || typeof paramVar.value !== 'object')) {\n // Handle PrimitiveVariable which has primitiveType instead of subtype\n const subtype = paramVar.type === 'primitive' && 'primitiveType' in paramVar \n ? (paramVar as any).primitiveType \n : paramVar.subtype;\n \n variableMetadata[paramName] = {\n type: paramVar.type,\n subtype: subtype,\n mx: paramVar.mx,\n internal: paramVar.internal,\n isVariable: true\n };\n }\n \n if (process.env.DEBUG_EXEC || process.env.MLLD_DEBUG === 'true') {\n const subtype = paramVar.type === 'primitive' && 'primitiveType' in paramVar \n ? (paramVar as any).primitiveType \n : paramVar.subtype;\n \n logger.debug(`Variable passing for ${paramName}:`, {\n variableType: paramVar.type,\n variableSubtype: subtype,\n hasInternal: !!paramVar.internal,\n isPrimitive: paramVar.value === null || typeof paramVar.value !== 'object',\n language: definition.language\n });\n }\n } else {\n // Use the evaluated argument value directly - this preserves primitives\n const argValue = evaluatedArgs[i];\n // Normalize arrays to ensure plain JavaScript values\n codeParams[paramName] = await ASTEvaluator.evaluateToRuntime(argValue, execEnv);\n \n // Debug primitive values\n if (process.env.DEBUG_EXEC) {\n logger.debug(`Code parameter ${paramName}:`, {\n argValue,\n type: typeof argValue,\n isNumber: typeof argValue === 'number',\n evaluatedArgs_i: evaluatedArgs[i],\n evaluatedArgStrings_i: evaluatedArgStrings[i]\n });\n }\n }\n }\n\n // NEW: Pass captured shadow environments for JS/Node execution\n const capturedModuleEnv =\n (variable.internal?.capturedModuleEnv as Map<string, Variable> | undefined);\n if (\n capturedModuleEnv instanceof Map &&\n (definition.language === 'js' || definition.language === 'javascript' ||\n definition.language === 'node' || definition.language === 'nodejs')\n ) {\n for (const [capturedName, capturedVar] of capturedModuleEnv) {\n if (codeParams[capturedName] !== undefined) {\n continue;\n }\n\n if (params.includes(capturedName)) {\n continue;\n }\n\n if (capturedVar.type === 'executable') {\n continue;\n }\n\n codeParams[capturedName] = capturedVar;\n\n if ((capturedVar.value === null || typeof capturedVar.value !== 'object') && capturedVar.type !== 'executable') {\n const subtype = capturedVar.type === 'primitive' && 'primitiveType' in capturedVar\n ? (capturedVar as any).primitiveType\n : (capturedVar as any).subtype;\n variableMetadata[capturedName] = {\n type: capturedVar.type,\n subtype,\n mx: capturedVar.mx,\n isVariable: true\n };\n }\n }\n }\n\n // NEW: Pass captured shadow environments for JS/Node execution\n const capturedEnvs =\n variable.internal?.capturedShadowEnvs;\n if (capturedEnvs && (definition.language === 'js' || definition.language === 'javascript' || \n definition.language === 'node' || definition.language === 'nodejs')) {\n (codeParams as any).__capturedShadowEnvs = capturedEnvs;\n \n }\n \n // Execute the code with parameters and metadata\n const codeResult = await execEnv.executeCode(\n code,\n definition.language || 'javascript',\n codeParams,\n Object.keys(variableMetadata).length > 0 ? variableMetadata : undefined,\n workingDirectory ? { workingDirectory } : undefined,\n workingDirectory\n ? { directiveType: 'exec', sourceLocation: node.location, workingDirectory }\n : { directiveType: 'exec', sourceLocation: node.location }\n );\n \n // Process the result\n let processedResult: any;\n \n // If the result looks like JSON (from return statement), parse it\n if (typeof codeResult === 'string' && \n (codeResult.startsWith('\"') || codeResult.startsWith('{') || codeResult.startsWith('[') || \n codeResult === 'null' || codeResult === 'true' || codeResult === 'false' ||\n /^-?\\d+(\\.\\d+)?$/.test(codeResult))) {\n try {\n const parsed = JSON.parse(codeResult);\n processedResult = parsed;\n } catch {\n // Not valid JSON, use as-is\n processedResult = codeResult;\n }\n } else {\n processedResult = codeResult;\n }\n\n // Attempt to restore metadata from the auto-unwrap shelf\n result = AutoUnwrapManager.restore(processedResult);\n if (process.env.MLLD_DEBUG_STRUCTURED === 'true' && result && typeof result === 'object') {\n try {\n const debugData = (result as any).data;\n console.error('[exec-invocation] rehydrate candidate', {\n hasType: 'type' in (result as Record<string, unknown>),\n hasText: 'text' in (result as Record<string, unknown>),\n dataType: typeof debugData,\n dataKeys: debugData && typeof debugData === 'object' ? Object.keys(debugData) : undefined\n });\n } catch {}\n }\n if (\n result &&\n typeof result === 'object' &&\n !isStructuredValue(result) &&\n 'type' in result &&\n 'text' in result &&\n 'data' in result\n ) {\n const payload = (result as any).data;\n result = wrapStructured(payload, (result as any).type, (result as any).text, (result as any).metadata);\n }\n\n if (definition.withClause) {\n if (definition.withClause.pipeline && definition.withClause.pipeline.length > 0) {\n const { processPipeline } = await import('./pipeline/unified-processor');\n const pipelineInput = toPipelineInput(result);\n const pipelineResult = await processPipeline({\n value: pipelineInput,\n env: execEnv,\n pipeline: definition.withClause.pipeline,\n format: definition.withClause.format as string | undefined,\n isRetryable: false,\n identifier: commandName,\n location: node.location,\n descriptorHint: resultSecurityDescriptor\n });\n result = pipelineResult;\n } else {\n const withClauseResult = await applyWithClause(result, definition.withClause, execEnv);\n result = withClauseResult.value ?? withClauseResult;\n }\n }\n\n const inputDescriptors = Object.values(variableMetadata)\n .map(meta => getSecurityDescriptorFromCarrier(meta))\n .filter((descriptor): descriptor is SecurityDescriptor => Boolean(descriptor));\n\n if (inputDescriptors.length > 0) {\n const mergedInputDescriptor =\n inputDescriptors.length === 1\n ? inputDescriptors[0]\n : env.mergeSecurityDescriptors(...inputDescriptors);\n env.recordSecurityDescriptor(mergedInputDescriptor);\n mergeResultDescriptor(mergedInputDescriptor);\n }\n }\n }\n // Handle command reference executables\n else if (isCommandRefExecutable(definition)) {\n const refName = definition.commandRef;\n if (!refName) {\n throw new MlldInterpreterError(`Command reference ${commandName} has no target command`);\n }\n \n // Look up the referenced command\n // First check in the captured module environment (for imported executables)\n let refCommand = null;\n if (variable?.internal?.capturedModuleEnv) {\n const capturedEnv =\n (variable.internal?.capturedModuleEnv as Map<string, Variable> | undefined);\n if (capturedEnv instanceof Map) {\n // If it's a Map, we have proper Variables\n refCommand = capturedEnv.get(refName);\n } else if (capturedEnv && typeof capturedEnv === 'object') {\n // This shouldn't happen with proper deserialization, but handle it for safety\n refCommand = capturedEnv[refName];\n }\n }\n\n // Fall back to current environment if not found in captured environment\n if (!refCommand) {\n refCommand = env.getVariable(refName);\n }\n\n if (!refCommand) {\n throw new MlldInterpreterError(`Referenced command not found: ${refName}`);\n }\n\n // The commandArgs contains the original AST nodes for how to call the referenced command\n // We need to evaluate these nodes with the current invocation's parameters bound\n if (definition.commandArgs && definition.commandArgs.length > 0) {\n if (process.env.MLLD_DEBUG === 'true') {\n try {\n console.error('[EXEC INVOC] commandRef args shape:', (definition.commandArgs as any[]).map((a: any) => Array.isArray(a) ? 'array' : (a && typeof a === 'object' && a.type) || typeof a));\n } catch {}\n }\n // Evaluate each arg; handle interpolated string args that are arrays of parts\n let refArgs: any[] = [];\n const { evaluate } = await import('../core/interpreter');\n \n for (const argNode of definition.commandArgs) {\n let value: any;\n // If this arg is an array of parts (from DataString with interpolation),\n // interpolate the whole array into a single string argument\n if (Array.isArray(argNode)) {\n value = await interpolateWithResultDescriptor(argNode as any[], execEnv, InterpolationContext.Default);\n } else {\n // Evaluate the individual argument node\n const argResult = await evaluate(argNode as any, execEnv, { isExpression: true });\n value = argResult?.value;\n }\n if (typeof value === 'string') {\n const paramVar = execEnv.getVariable(value);\n if (paramVar?.internal?.isParameter) {\n value = isStructuredValue(paramVar.value) ? paramVar.value : paramVar.value;\n }\n }\n if (value !== undefined) {\n refArgs.push(value);\n }\n }\n \n // Create a child environment that can access the referenced command\n const refEnv = env.createChild();\n // Set the captured module env so getVariable can find the command\n if (\n variable?.internal?.capturedModuleEnv instanceof Map\n ) {\n const captured =\n (variable.internal?.capturedModuleEnv as Map<string, Variable> | undefined);\n if (captured instanceof Map) {\n refEnv.setCapturedModuleEnv(captured);\n }\n }\n\n // Create a new invocation node for the referenced command with the evaluated args\n const refInvocation: ExecInvocation = {\n type: 'ExecInvocation',\n commandRef: {\n identifier: refName,\n args: refArgs // Pass values directly like foreach does\n },\n // Pass along the pipeline if present\n ...(definition.withClause ? { withClause: definition.withClause } : {})\n };\n\n // Recursively evaluate the referenced command in the environment that has it\n const refResult = await evaluateExecInvocation(refInvocation, refEnv);\n result = refResult.value as string;\n } else {\n // Create a child environment that can access the referenced command\n const refEnv = env.createChild();\n // Set the captured module env so getVariable can find the command\n if (variable?.internal?.capturedModuleEnv instanceof Map) {\n refEnv.setCapturedModuleEnv(variable.internal.capturedModuleEnv);\n }\n\n // No commandArgs means just pass through the current invocation's args\n const refInvocation: ExecInvocation = {\n type: 'ExecInvocation',\n commandRef: {\n identifier: refName,\n args: evaluatedArgs // Pass values directly like foreach does\n },\n // Pass along the pipeline if present\n ...(definition.withClause ? { withClause: definition.withClause } : {})\n };\n\n // Recursively evaluate the referenced command in the environment that has it\n const refResult = await evaluateExecInvocation(refInvocation, refEnv);\n result = refResult.value as string;\n }\n }\n // Handle section executables\n else if (isSectionExecutable(definition)) {\n // Interpolate the path template to get the file path\n const filePath = await interpolateWithResultDescriptor(definition.pathTemplate, execEnv);\n \n // Interpolate the section template to get the section name\n const sectionName = await interpolateWithResultDescriptor(definition.sectionTemplate, execEnv);\n \n // Read the file content\n const fileContent = await execEnv.readFile(filePath);\n \n // Extract the section using llmxml or fallback to basic extraction\n const llmxmlInstance = env.getLlmxml();\n let sectionContent: string;\n \n try {\n // getSection expects just the title without the # prefix\n const titleWithoutHash = sectionName.replace(/^#+\\s*/, '');\n sectionContent = await llmxmlInstance.getSection(fileContent, titleWithoutHash, {\n includeNested: true\n });\n } catch (error) {\n // Fallback to basic extraction if llmxml fails\n sectionContent = extractSection(fileContent, sectionName);\n }\n \n // Handle rename if present\n if (definition.renameTemplate) {\n const newTitle = await interpolateWithResultDescriptor(definition.renameTemplate, execEnv);\n const lines = sectionContent.split('\\n');\n if (lines.length > 0 && lines[0].match(/^#+\\s/)) {\n const newTitleTrimmed = newTitle.trim();\n const newHeadingMatch = newTitleTrimmed.match(/^(#+)(\\s+(.*))?$/);\n \n if (newHeadingMatch) {\n if (!newHeadingMatch[3]) {\n // Just header level\n const originalText = lines[0].replace(/^#+\\s*/, '');\n lines[0] = `${newHeadingMatch[1]} ${originalText}`;\n } else {\n // Full replacement\n lines[0] = newTitleTrimmed;\n }\n } else {\n // Just text - keep original level\n const originalLevel = lines[0].match(/^#+/)?.[0] || '#';\n lines[0] = `${originalLevel} ${newTitleTrimmed}`;\n }\n \n sectionContent = lines.join('\\n');\n }\n }\n \n result = sectionContent;\n }\n // Handle resolver executables\n else if (isResolverExecutable(definition)) {\n // For resolver executables, we need to construct the full resolver path\n // with parameter interpolation\n let resolverPath = definition.resolverPath;\n \n // Replace parameter placeholders in the resolver path\n for (let i = 0; i < params.length; i++) {\n const paramName = params[i];\n const argValue = evaluatedArgs[i];\n if (argValue !== undefined) {\n // Replace @paramName in the resolver path\n resolverPath = resolverPath.replace(new RegExp(`@${paramName}\\\\b`, 'g'), argValue);\n }\n }\n \n // Prepare payload if present\n let payload: any = undefined;\n if (definition.payloadTemplate) {\n // Interpolate the payload template\n const payloadStr = await interpolateWithResultDescriptor(definition.payloadTemplate, execEnv);\n try {\n // Try to parse as JSON\n payload = JSON.parse(payloadStr);\n } catch {\n // If not valid JSON, use as string\n payload = payloadStr;\n }\n }\n \n // Invoke the resolver through the ResolverManager\n const resolverManager = env.getResolverManager();\n if (!resolverManager) {\n throw new MlldInterpreterError('Resolver manager not available');\n }\n \n // Resolve the resolver with the appropriate context\n const resolverResult = await resolverManager.resolve(resolverPath, {\n context: 'exec-invocation',\n basePath: env.getBasePath(),\n payload\n });\n \n // Extract content from resolver result\n if (resolverResult && typeof resolverResult === 'object' && 'content' in resolverResult) {\n // ResolverContent interface\n result = resolverResult.content;\n } else if (typeof resolverResult === 'string') {\n result = resolverResult;\n } else if (resolverResult && typeof resolverResult === 'object') {\n // For objects, serialize to JSON\n result = JSON.stringify(resolverResult, null, 2);\n } else {\n result = String(resolverResult);\n }\n } else {\n throw new MlldInterpreterError(`Unknown executable type: ${(definition as any).type}`);\n }\n \n // Apply post-invocation field/index access if present (e.g., @func()[1], @obj.method().2)\n const postFields: any[] = (node as any).fields || [];\n if (postFields && postFields.length > 0) {\n try {\n const { accessField } = await import('../utils/field-access');\n let current: any = result;\n for (const f of postFields) {\n current = await accessField(current, f, { env, sourceLocation: nodeSourceLocation });\n }\n result = current;\n } catch (e) {\n // Preserve existing behavior: if field access fails, surface error as interpreter error\n throw e;\n }\n }\n\n // Normalize Variable results into raw values (with StructuredValue wrappers when enabled)\n if (result && typeof result === 'object') {\n const { isVariable, extractVariableValue } = await import('../utils/variable-resolution');\n if (isVariable(result)) {\n const extracted = await extractVariableValue(result, execEnv);\n const typeHint = Array.isArray(extracted)\n ? 'array'\n : typeof extracted === 'object' && extracted !== null\n ? 'object'\n : 'text';\n const structured = wrapStructured(extracted as any, typeHint as any);\n result = structured;\n }\n }\n\n mergeResultDescriptor(extractSecurityDescriptor(result));\n\n if (resultSecurityDescriptor) {\n const structured = wrapExecResult(result);\n const existing = getStructuredSecurityDescriptor(structured);\n const merged = existing\n ? env.mergeSecurityDescriptors(existing, resultSecurityDescriptor)\n : resultSecurityDescriptor;\n setStructuredSecurityDescriptor(structured, merged);\n result = structured;\n }\n\n // Clean up resolution tracking after executable body completes, before pipeline/with clause processing\n // This allows pipelines to retry/re-execute the same function without false circular reference detection\n // Skip builtin methods and reserved names as they were never added to the resolution stack\n const cleanupShouldTrack = !builtinMethods.includes(commandName) &&\n !(env.hasVariable(commandName) && (env.getVariable(commandName) as any)?.internal?.isReserved);\n if (commandName && cleanupShouldTrack) {\n env.endResolving(commandName);\n }\n\n if (process.env.MLLD_DEBUG_FIX === 'true') {\n try {\n const summary = {\n commandName,\n type: typeof result,\n isStructured: isStructuredValue(result),\n keys: result && typeof result === 'object' ? Object.keys(result as any).slice(0, 5) : undefined,\n preview:\n isStructuredValue(result) && typeof (result as any).data === 'object'\n ? Object.keys((result as any).data || {}).slice(0, 5)\n : undefined,\n text:\n isStructuredValue(result) && typeof (result as any).text === 'string'\n ? String((result as any).text).slice(0, 120)\n : undefined\n };\n console.error('[evaluateExecInvocation] result summary', summary);\n if (\n commandName === 'needsMeta' ||\n commandName === 'jsDefault' ||\n commandName === 'jsKeep' ||\n commandName === 'agentsContext'\n ) {\n try {\n fs.appendFileSync('/tmp/mlld-debug.log', JSON.stringify(summary) + '\\n');\n } catch {}\n }\n } catch {}\n }\n\n // Apply withClause transformations if present\n if (node.withClause) {\n if (node.withClause.pipeline) {\n if (process.env.MLLD_DEBUG === 'true') {\n console.error('[exec-invocation] Handling pipeline:', {\n pipelineLength: node.withClause.pipeline.length,\n stages: node.withClause.pipeline.map((p: any) => Array.isArray(p) ? '[parallel]' : (p.rawIdentifier || 'unknown'))\n });\n }\n \n // When an ExecInvocation has a pipeline, we need to create a special pipeline\n // where the ExecInvocation itself becomes stage 0, retryable\n const { executePipeline } = await import('./pipeline');\n \n // Create a source function that re-executes this ExecInvocation (without the pipeline)\n const sourceFunction = async () => {\n if (process.env.MLLD_DEBUG === 'true') {\n console.error('[exec-invocation] sourceFunction called - re-executing ExecInvocation');\n }\n // Re-execute this same ExecInvocation but without the pipeline\n // IMPORTANT: Use execEnv not env, so the function parameters are available\n const nodeWithoutPipeline = { ...node, withClause: undefined };\n const freshResult = await evaluateExecInvocation(nodeWithoutPipeline, execEnv);\n return wrapExecResult(freshResult.value);\n };\n \n // Create synthetic source stage for retryable pipeline\n const SOURCE_STAGE = {\n rawIdentifier: '__source__',\n identifier: [],\n args: [],\n fields: [],\n rawArgs: []\n };\n \n // Prepend synthetic source stage and attach builtin effects consistently\n let normalizedPipeline = [SOURCE_STAGE, ...node.withClause.pipeline];\n try {\n const { attachBuiltinEffects } = await import('./pipeline/effects-attachment');\n const { functionalPipeline } = attachBuiltinEffects(normalizedPipeline as any);\n normalizedPipeline = functionalPipeline as any;\n } catch {\n // If helper import fails, proceed without effect attachment\n }\n \n if (process.env.MLLD_DEBUG === 'true') {\n console.error('[exec-invocation] Creating pipeline with synthetic source:', {\n originalLength: node.withClause.pipeline.length,\n normalizedLength: normalizedPipeline.length,\n stages: normalizedPipeline.map((p: any) => Array.isArray(p) ? '[parallel]' : (p.rawIdentifier || 'unknown'))\n });\n }\n \n // Execute the pipeline with the ExecInvocation result as initial input\n // Mark it as retryable with the source function\n const pipelineInput = wrapExecResult(result);\n const pipelineResult = await executePipeline(\n pipelineInput,\n normalizedPipeline,\n execEnv, // Use execEnv which has merged nodes\n node.location,\n node.withClause.format,\n true, // isRetryable\n sourceFunction,\n true, // hasSyntheticSource\n undefined,\n undefined,\n { returnStructured: true }\n );\n \n // Still need to handle other withClause features (trust, needs)\n let pipelineValue = wrapPipelineResult(pipelineResult);\n const pipelineDescriptor = getStructuredSecurityDescriptor(pipelineValue);\n const combinedDescriptor = pipelineDescriptor\n ? (resultSecurityDescriptor\n ? env.mergeSecurityDescriptors(pipelineDescriptor, resultSecurityDescriptor)\n : pipelineDescriptor)\n : resultSecurityDescriptor;\n if (combinedDescriptor) {\n setStructuredSecurityDescriptor(pipelineValue, combinedDescriptor);\n mergeResultDescriptor(combinedDescriptor);\n }\n const withClauseResult = await applyWithClause(\n pipelineValue,\n { ...node.withClause, pipeline: undefined },\n execEnv\n );\n const finalWithClauseResult = await finalizeResult(withClauseResult);\n return finalWithClauseResult;\n } else {\n const withClauseResult = await applyWithClause(result, node.withClause, execEnv);\n const finalWithClauseResult = await finalizeResult(withClauseResult);\n return finalWithClauseResult;\n }\n }\n \n if (process.env.MLLD_DEBUG === 'true') {\n try {\n console.log('[exec-invocation] returning result', {\n commandName,\n typeofResult: typeof result,\n isArrayResult: Array.isArray(result)\n });\n } catch {}\n }\n const finalEvalResult = await finalizeResult(createEvalResult(result, execEnv));\n return finalEvalResult;\n });\n });\n } finally {\n // Ensure resolution tracking is always cleaned up, even on error paths\n // Check if we added it to the tracking (skip builtins/reserved)\n if (commandName) {\n const wasTracked = !builtinMethods.includes(commandName) &&\n !(env.hasVariable(commandName) && (env.getVariable(commandName) as any)?.internal?.isReserved);\n if (wasTracked) {\n env.endResolving(commandName);\n }\n }\n\n const finalizedStreaming = streamingManager.finalizeResults();\n env.setStreamingResult(finalizedStreaming.streaming);\n }\n}\n\ntype SecurityCarrier = {\n mx?: VariableContext | StructuredValueContext;\n};\n\nfunction getVariableSecurityDescriptor(variable?: Variable): SecurityDescriptor | undefined {\n if (!variable) {\n return undefined;\n }\n return getSecurityDescriptorFromCarrier({ mx: variable.mx });\n}\n\nfunction getStructuredSecurityDescriptor(\n value?: { mx?: StructuredValueContext; metadata?: { security?: SecurityDescriptor } }\n): SecurityDescriptor | undefined {\n return getSecurityDescriptorFromCarrier(value);\n}\n\nfunction setStructuredSecurityDescriptor(\n value: { mx?: StructuredValueContext },\n descriptor?: SecurityDescriptor\n): void {\n if (!descriptor || !value || typeof value !== 'object') {\n return;\n }\n applySecurityDescriptorToStructuredValue(value as LegacyStructuredValue, descriptor);\n}\n\nfunction getSecurityDescriptorFromCarrier(carrier?: SecurityCarrier): SecurityDescriptor | undefined {\n if (!carrier) {\n return undefined;\n }\n return descriptorFromVarMx(carrier.mx);\n}\n\nfunction descriptorFromVarMx(\n mx?: VariableContext | StructuredValueContext\n): SecurityDescriptor | undefined {\n if (!mx) {\n return undefined;\n }\n const labels = Array.isArray(mx.labels) ? mx.labels : [];\n const sources = Array.isArray(mx.sources) ? mx.sources : [];\n const taint = (mx as any).taint ?? 'unknown';\n if (labels.length === 0 && sources.length === 0 && taint === 'unknown') {\n return undefined;\n }\n return varMxToSecurityDescriptor(mx as VariableContext);\n}\n\n/**\n * Deserialize shadow environments after import (objects to Maps)\n * WHY: Shadow environments are expected as Maps internally\n */\nfunction deserializeShadowEnvs(envs: any): ShadowEnvironmentCapture {\n const result: ShadowEnvironmentCapture = {};\n \n for (const [lang, shadowObj] of Object.entries(envs)) {\n if (shadowObj && typeof shadowObj === 'object') {\n // Convert object to Map\n const map = new Map<string, any>();\n for (const [name, func] of Object.entries(shadowObj)) {\n map.set(name, func);\n }\n result[lang as keyof ShadowEnvironmentCapture] = map;\n }\n }\n \n return result;\n}\n"]}