UNPKG

mlld

Version:

mlld: llm scripting language

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