UNPKG

mlld

Version:

mlld: llm scripting language

1 lines 252 kB
{"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"]}