{"version":3,"sources":["../interpreter/utils/parameter-factory.ts","../interpreter/utils/transformer-result.ts","../interpreter/eval/guard-denial-handler.ts"],"names":["createParameterVariable","options","name","value","stringValue","originalVariable","allowOriginalReuse","metadataFactory","mx","internal","isSystem","isParameter","preservedValue","undefined","metadata","isStructuredValue","createStructuredValueVariable","directive","syntax","hasInterpolation","isMultiLine","Array","isArray","createObjectVariable","createArrayVariable","createPrimitiveVariable","createSimpleTextVariable","String","createPipelineParameterVariable","pipelineStage","isPipelineInput","isPipelineParameter","Boolean","provenanceVariable","materializeExpressionValue","resolvedMetadataFactory","val","base","origin","inferStructuredType","safeStringify","JSON","stringify","normalizeTransformerResult","transformerName","result","normalizedName","toLowerCase","trimmed","trim","parsed","parse","type","text","handleExecGuardDenial","error","GuardError","decision","details","reason","message","guardContext","guardInput","deniedContext","denied","guardName","guardFilter","evaluateWhenExpression","warning","formatGuardWarning","materializedWarning","materializeDisplayValue","env","emitEffect","descriptor","recordSecurityDescriptor","maybeInjectGuardInputVariable","execEnv","input","output","existingOutput","getVariable","isVariable","outVar","clonedOutput","setParameterVariable","runHandlers","withDeniedContext","whenExprNode","denyMode","whenResult","withGuardContext","normalization","normalizeWhenShowEffect","normalizedResult","hadShowEffect","normalized","deniedHandlerRan","stderr","existingInput","variable","clonedInput","filter","length","identifier"],"mappings":"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","file":"chunk-JRTTHLAJ.mjs","sourcesContent":["import type { Variable } from '@core/types/variable';\nimport {\n  createSimpleTextVariable,\n  createStructuredValueVariable,\n  createObjectVariable,\n  createArrayVariable,\n  createPrimitiveVariable,\n  type VariableFactoryInitOptions\n} from '@core/types/variable/VariableFactories';\nimport { isStructuredValue } from '../utils/structured-value';\nimport { materializeExpressionValue } from './expression-provenance';\n\nexport interface ParameterFactoryOptions {\n  name: string;\n  value: unknown;\n  stringValue?: string;\n  originalVariable?: Variable;\n  allowOriginalReuse?: boolean;\n  metadataFactory?: (value: unknown) => VariableFactoryInitOptions | undefined;\n  origin: 'exec-param' | 'pipeline' | 'directive';\n  closureEnv?: Map<string, Variable>;\n}\n\nexport function createParameterVariable(\n  options: ParameterFactoryOptions\n): Variable | undefined {\n  const {\n    name,\n    value,\n    stringValue,\n    originalVariable,\n    allowOriginalReuse,\n    metadataFactory\n  } = options;\n\n  if (originalVariable && allowOriginalReuse) {\n    return {\n      ...originalVariable,\n      name,\n      mx: { ...(originalVariable.mx ?? {}) },\n      internal: {\n        ...(originalVariable.internal ?? {}),\n        isSystem: true,\n        isParameter: true\n      }\n    };\n  }\n\n  const preservedValue = value !== undefined ? value : stringValue;\n  if (preservedValue === undefined) {\n    return undefined;\n  }\n\n  const metadata = metadataFactory ? metadataFactory(preservedValue) : undefined;\n\n  if (isStructuredValue(preservedValue)) {\n    return createStructuredValueVariable(\n      name,\n      preservedValue,\n      {\n        directive: 'var',\n        syntax: 'reference',\n        hasInterpolation: false,\n        isMultiLine: false\n      },\n      metadata\n    );\n  }\n\n  if (\n    preservedValue !== null &&\n    typeof preservedValue === 'object' &&\n    !Array.isArray(preservedValue)\n  ) {\n    return createObjectVariable(\n      name,\n      preservedValue,\n      true,\n      {\n        directive: 'var',\n        syntax: 'object',\n        hasInterpolation: false,\n        isMultiLine: false\n      },\n      metadata\n    );\n  }\n\n  if (Array.isArray(preservedValue)) {\n    return createArrayVariable(\n      name,\n      preservedValue,\n      true,\n      {\n        directive: 'var',\n        syntax: 'array',\n        hasInterpolation: false,\n        isMultiLine: false\n      },\n      metadata\n    );\n  }\n\n  if (\n    typeof preservedValue === 'number' ||\n    typeof preservedValue === 'boolean' ||\n    preservedValue === null\n  ) {\n    return createPrimitiveVariable(\n      name,\n      preservedValue,\n      {\n        directive: 'var',\n        syntax: 'literal',\n        hasInterpolation: false,\n        isMultiLine: false\n      },\n      metadata\n    );\n  }\n\n  return createSimpleTextVariable(\n    name,\n    String(preservedValue),\n    {\n      directive: 'var',\n      syntax: 'quoted',\n      hasInterpolation: false,\n      isMultiLine: false\n    },\n    metadata\n  );\n}\n\nexport interface PipelineParameterFactoryOptions extends ParameterFactoryOptions {\n  pipelineStage?: number;\n  isPipelineInput?: boolean;\n}\n\nexport function createPipelineParameterVariable(\n  options: PipelineParameterFactoryOptions\n): Variable | undefined {\n  const {\n    name,\n    value,\n    stringValue,\n    originalVariable,\n    allowOriginalReuse,\n    metadataFactory,\n    pipelineStage,\n    isPipelineInput\n  } = options;\n\n  if (originalVariable && allowOriginalReuse) {\n    return {\n      ...originalVariable,\n      name,\n      mx: { ...(originalVariable.mx ?? {}) },\n      internal: {\n        ...(originalVariable.internal ?? {}),\n        isSystem: true,\n        isParameter: true,\n        isPipelineParameter: Boolean(isPipelineInput),\n        pipelineStage\n      }\n    };\n  }\n\n  const provenanceVariable =\n    materializeExpressionValue(value, { name }) ??\n    (stringValue !== undefined ? materializeExpressionValue(stringValue, { name }) : undefined);\n  if (provenanceVariable) {\n    return {\n      ...provenanceVariable,\n      internal: {\n        ...(provenanceVariable.internal ?? {}),\n        isSystem: true,\n        isParameter: true,\n        isPipelineParameter: Boolean(isPipelineInput),\n        pipelineStage\n      }\n    };\n  }\n\n  const resolvedMetadataFactory = (val: unknown) => {\n    const base = metadataFactory ? metadataFactory(val) : undefined;\n    return {\n      ...base,\n      internal: {\n        ...(base?.internal ?? {}),\n        isParameter: true,\n        isPipelineParameter: Boolean(isPipelineInput),\n        pipelineStage\n      }\n    };\n  };\n\n  return createParameterVariable({\n    ...options,\n    metadataFactory: resolvedMetadataFactory,\n    origin: options.origin ?? 'pipeline'\n  });\n}\n","import type { StructuredValueType } from './structured-value';\nimport { isStructuredValue } from './structured-value';\n\nexport interface TransformerNormalization {\n  value: unknown;\n  options?: {\n    type?: StructuredValueType;\n    text?: string;\n  };\n}\n\nfunction inferStructuredType(value: unknown): StructuredValueType | undefined {\n  if (Array.isArray(value)) {\n    return 'array';\n  }\n  if (value !== null && typeof value === 'object') {\n    return 'object';\n  }\n  return 'json';\n}\n\nfunction safeStringify(value: unknown): string {\n  try {\n    return JSON.stringify(value, null, 2);\n  } catch {\n    return String(value ?? '');\n  }\n}\n\nexport function normalizeTransformerResult(\n  transformerName: string | undefined,\n  result: unknown\n): TransformerNormalization {\n  if (!transformerName) {\n    return { value: result };\n  }\n\n  const normalizedName = transformerName.toLowerCase();\n\n  if (normalizedName === 'json') {\n    if (isStructuredValue(result)) {\n      return { value: result };\n    }\n\n    if (typeof result === 'string') {\n      const trimmed = result.trim();\n      if (trimmed) {\n        try {\n          const parsed = JSON.parse(result);\n          const type = inferStructuredType(parsed);\n          return {\n            value: parsed,\n            options: {\n              type,\n              text: result\n            }\n          };\n        } catch {\n          // Ignore parse failure, fall through to legacy behaviour\n        }\n      }\n      return { value: result };\n    }\n\n    if (result !== null && typeof result === 'object') {\n      return {\n        value: result,\n        options: {\n          type: inferStructuredType(result),\n          text: safeStringify(result)\n        }\n      };\n    }\n  }\n\n  return { value: result };\n}\n","import { GuardError } from '@core/errors/GuardError';\nimport type { GuardErrorDetails } from '@core/errors/GuardError';\nimport type { Environment } from '../env/Environment';\nimport type { EvalResult } from '../core/interpreter';\nimport type { WhenExpressionNode } from '@core/types/when';\nimport type { GuardContextSnapshot } from '../env/ContextManager';\nimport { normalizeWhenShowEffect } from '../utils/structured-value';\nimport { isVariable } from '../utils/variable-resolution';\nimport type { Variable } from '@core/types/variable';\nimport { materializeExpressionValue } from '@core/types/provenance/ExpressionProvenance';\nimport { materializeDisplayValue } from '../utils/display-materialization';\n\nexport async function handleExecGuardDenial(\n  error: unknown,\n  options: {\n    execEnv: Environment;\n    env: Environment;\n    whenExprNode: WhenExpressionNode;\n  }\n): Promise<EvalResult | null> {\n  if (!(error instanceof GuardError) || error.decision !== 'deny') {\n    return null;\n  }\n\n  const details = (error.details ?? {}) as GuardErrorDetails;\n  const reason = error.reason ?? details.reason ?? error.message ?? 'Guard denied operation';\n  const guardContext = details.guardContext as GuardContextSnapshot | undefined;\n  const guardInput = details.guardInput;\n  const deniedContext = {\n    denied: true,\n    reason,\n    guardName: details.guardName ?? null,\n    guardFilter: details.guardFilter ?? null\n  };\n\n  const { evaluateWhenExpression } = await import('./when-expression');\n  const warning = formatGuardWarning(reason, deniedContext.guardFilter, deniedContext.guardName);\n  const materializedWarning = materializeDisplayValue(`${warning}\\n`, undefined, warning);\n  options.env.emitEffect('stderr', materializedWarning.text);\n  if (materializedWarning.descriptor) {\n    options.env.recordSecurityDescriptor(materializedWarning.descriptor);\n  }\n  maybeInjectGuardInputVariable(options.execEnv, guardInput ?? guardContext?.input);\n  // Populate @output for after-guard denied handlers when available\n  if (guardContext?.output !== undefined) {\n    const existingOutput = options.execEnv.getVariable?.('output');\n    if (!existingOutput && isVariable(guardContext.output as Variable)) {\n      const outVar = guardContext.output as Variable;\n      const clonedOutput: Variable = {\n        ...outVar,\n        name: 'output',\n        mx: { ...(outVar.mx ?? {}) },\n        internal: {\n          ...(outVar.internal ?? {}),\n          isSystem: true,\n          isParameter: true\n        }\n      };\n      options.execEnv.setParameterVariable('output', clonedOutput);\n    }\n  }\n  const runHandlers = async () =>\n    options.execEnv.withDeniedContext(deniedContext, async () =>\n      evaluateWhenExpression(options.whenExprNode, options.execEnv, undefined, { denyMode: true })\n    );\n  const whenResult = guardContext\n    ? await options.execEnv.withGuardContext(guardContext, runHandlers)\n    : await runHandlers();\n\n  const normalization = normalizeWhenShowEffect(whenResult.value);\n  const normalizedResult = {\n    ...whenResult,\n    value: normalization.hadShowEffect ? undefined : normalization.normalized\n  };\n\n  if (!normalizedResult.internal?.deniedHandlerRan) {\n    return null;\n  }\n\n  return {\n    ...normalizedResult,\n    stderr: warning\n  };\n}\n\nfunction maybeInjectGuardInputVariable(execEnv: Environment, value: unknown) {\n  if (value === undefined || value === null) {\n    return;\n  }\n  const existingInput = execEnv.getVariable?.('input');\n  if (existingInput) {\n    return;\n  }\n\n  const variable =\n    (isVariable(value as Variable) ? (value as Variable) : undefined) ??\n    materializeExpressionValue(value, { name: 'input' });\n\n  if (!variable) {\n    return;\n  }\n\n  const clonedInput: Variable = {\n    ...variable,\n    name: 'input',\n    mx: { ...(variable.mx ?? {}) },\n    internal: {\n      ...(variable.internal ?? {}),\n      isSystem: true,\n      isParameter: true\n    }\n  };\n\n  execEnv.setParameterVariable('input', clonedInput);\n}\n\nexport function formatGuardWarning(\n  reason?: string | null,\n  filter?: string | null,\n  guardName?: string | null\n): string {\n  if (reason && reason.trim().length > 0) {\n    return `[Guard Warning] ${reason}`;\n  }\n  const identifier = guardName ?? filter ?? 'operation';\n  return `[Guard Warning] Guard for ${identifier} prevented operation due to policy violation`;\n}\n"]}