{"version":3,"sources":["../core/security/paths.ts","../interpreter/utils/load-content-structured.ts"],"names":["normalizeDirPath","dirPath","trimmed","replace","normalized","path","normalize","withForwardSlashes","process","platform","toLowerCase","resolveRealPath","targetPath","resolved","resolve","fs","realpathSync","native","getAllDirsInPath","filePath","realPath","normalizedPath","parsed","parse","root","sep","dirs","currentDir","dirname","push","nextDir","labelsForPath","map","dir","detectStructuredType","value","Array","isArray","tryParseJson","text","success","trim","JSON","parseJsonWithContext","sourceLabel","error","message","MlldError","parseJsonLines","lines","split","results","i","length","line","offendingLine","isProbablyURL","input","test","buildLoadSecurityDescriptor","result","absolute","undefined","dirLabels","makeSecurityDescriptor","taint","sources","buildMetadata","base","extra","extractLoadContentMetadata","metadata","source","filename","relative","tokest","tokens","fm","json","content","metrics","url","urlResult","domain","title","description","status","headers","htmlResult","html","security","mergeDescriptors","deriveArrayText","toString","prototype","isLoadContentResult","item","join","stringify","String","wrapLoadContentValue","isStructuredValue","wrapStructured","baseMetadata","contentText","filenameLower","endsWith","data","type","parsedFromContent","variableMetadata","hasVariableMetadata","getVariableMetadata","aggregatedSecurity","filter","descriptor","Boolean","mergedSecurity","mx","finalMetadata","fallbackText","isFileLoadedValue","isURLLoadedValue"],"mappings":"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","file":"chunk-GLVJZ2CA.mjs","sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nfunction normalizeDirPath(dirPath: string): string {\n  const trimmed = dirPath.replace(/[\\\\/]+$/, '');\n  const normalized = path.normalize(trimmed || dirPath);\n  const withForwardSlashes = normalized.replace(/\\\\/g, '/');\n  if (process.platform === 'win32') {\n    return withForwardSlashes.toLowerCase();\n  }\n  return withForwardSlashes;\n}\n\nfunction resolveRealPath(targetPath: string): string {\n  const resolved = path.resolve(targetPath);\n  try {\n    return fs.realpathSync.native ? fs.realpathSync.native(resolved) : fs.realpathSync(resolved);\n  } catch {\n    return resolved;\n  }\n}\n\n/**\n * Returns all parent directories for a given file path, from the most specific\n * to the broadest, stopping before the filesystem root.\n *\n * Rules:\n * - Always resolve to an absolute path first.\n * - Follow symlinks (use the resolved path).\n * - Include all parent directories.\n * - Stop before root (do not include the root itself).\n * - Normalize slashes and strip trailing separators.\n * - Respect platform case rules (case-insensitive on Windows).\n */\nexport function getAllDirsInPath(filePath: string): string[] {\n  const realPath = resolveRealPath(filePath);\n  const normalizedPath = normalizeDirPath(realPath);\n  const parsed = path.parse(normalizedPath);\n  const root = normalizeDirPath(parsed.root || path.sep);\n\n  const dirs: string[] = [];\n  let currentDir = normalizeDirPath(path.dirname(normalizedPath));\n\n  while (currentDir && currentDir !== root) {\n    dirs.push(currentDir);\n    const nextDir = normalizeDirPath(path.dirname(currentDir));\n    if (nextDir === currentDir) {\n      break;\n    }\n    currentDir = nextDir;\n  }\n\n  return dirs;\n}\n\nexport function labelsForPath(filePath: string): string[] {\n  return getAllDirsInPath(filePath).map(dir => `dir:${dir}`);\n}\n","import {\n  isLoadContentResult,\n  type LoadContentResult,\n  type LoadContentResultHTML,\n  type LoadContentResultURL\n} from '@core/types/load-content';\nimport { MlldError } from '@core/errors';\nimport { makeSecurityDescriptor, mergeDescriptors } from '@core/types/security';\nimport { labelsForPath } from '@core/security/paths';\nimport {\n  getVariableMetadata,\n  hasVariableMetadata\n} from './variable-migration';\nimport {\n  wrapStructured,\n  isStructuredValue,\n  type StructuredValue,\n  type StructuredValueMetadata,\n  type StructuredValueType\n} from './structured-value';\n\nfunction detectStructuredType(value: unknown): StructuredValueType {\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 tryParseJson(text: string): { success: boolean; value?: unknown } {\n  if (typeof text !== 'string') {\n    return { success: false };\n  }\n\n  const trimmed = text.trim();\n  if (!trimmed) {\n    return { success: false };\n  }\n\n  try {\n    return { success: true, value: JSON.parse(trimmed) };\n  } catch {\n    return { success: false };\n  }\n}\n\nfunction parseJsonWithContext(text: string, sourceLabel: string): unknown {\n  try {\n    return JSON.parse(text);\n  } catch (error: any) {\n    const message = error?.message ? ` (${error.message})` : '';\n    throw new MlldError(`Failed to parse JSON from ${sourceLabel}${message}`);\n  }\n}\n\nfunction parseJsonLines(text: string, sourceLabel: string): unknown[] {\n  const lines = text.split(/\\r?\\n/);\n  const results: unknown[] = [];\n  for (let i = 0; i < lines.length; i++) {\n    const line = lines[i].trim();\n    if (!line) continue;\n    try {\n      results.push(JSON.parse(line));\n    } catch (error: any) {\n      const message = error?.message ? ` (${error.message})` : '';\n      throw new MlldError(`Failed to parse JSONL from ${sourceLabel} at line ${i + 1}${message}`, {\n        line: i + 1,\n        offendingLine: line\n      });\n    }\n  }\n  return results;\n}\n\nfunction isProbablyURL(input: string): boolean {\n  return /^https?:\\/\\//i.test(input);\n}\n\nfunction buildLoadSecurityDescriptor(result: LoadContentResult) {\n  if (!result.absolute || isProbablyURL(result.absolute)) {\n    return undefined;\n  }\n  const dirLabels = labelsForPath(result.absolute);\n  return makeSecurityDescriptor({\n    taint: ['src:file', ...dirLabels],\n    sources: [result.absolute]\n  });\n}\n\nfunction buildMetadata(base?: StructuredValueMetadata, extra?: StructuredValueMetadata): StructuredValueMetadata | undefined {\n  if (!base && !extra) {\n    return undefined;\n  }\n  return {\n    ...(base || {}),\n    ...(extra || {})\n  };\n}\n\nfunction extractLoadContentMetadata(result: LoadContentResult): StructuredValueMetadata {\n  const metadata: StructuredValueMetadata = {\n    source: 'load-content',\n    filename: result.filename,\n    relative: result.relative,\n    absolute: result.absolute,\n    tokest: result.tokest,\n    tokens: result.tokens,\n    fm: result.fm,\n    json: result.json,\n    length: typeof result.content === 'string' ? result.content.length : undefined,\n    metrics: {\n      tokens: result.tokens,\n      length: typeof result.content === 'string' ? result.content.length : undefined\n    }\n  };\n\n  if ('url' in result && result.url) {\n    const urlResult = result as LoadContentResultURL;\n    metadata.url = urlResult.url;\n    metadata.domain = urlResult.domain;\n    if (urlResult.title) metadata.title = urlResult.title;\n    if (urlResult.description) metadata.description = urlResult.description;\n    if (urlResult.status !== undefined) metadata.status = urlResult.status;\n    if (urlResult.headers) metadata.headers = urlResult.headers;\n  }\n\n  if ('html' in result && !(result as LoadContentResultURL).url) {\n    const htmlResult = result as LoadContentResultHTML;\n    metadata.html = htmlResult.html;\n    if (htmlResult.title) metadata.title = htmlResult.title;\n    if (htmlResult.description) metadata.description = htmlResult.description;\n  }\n\n  const security = buildLoadSecurityDescriptor(result);\n  if (security) {\n    metadata.security = metadata.security\n      ? mergeDescriptors(metadata.security, security)\n      : security;\n  }\n\n  return metadata;\n}\n\nfunction deriveArrayText(value: any[]): string {\n  if (typeof value.toString === 'function' && value.toString !== Array.prototype.toString) {\n    return value.toString();\n  }\n\n  // For arrays of LoadContentResult items (glob results), concatenate file contents\n  if (value.length > 0 && isLoadContentResult(value[0])) {\n    return value.map(item => item.content ?? '').join('\\n\\n');\n  }\n\n  try {\n    return JSON.stringify(value);\n  } catch {\n    return value.map(item => String(item)).join('\\n');\n  }\n}\n\nexport function wrapLoadContentValue(value: any): StructuredValue {\n  if (isStructuredValue(value)) {\n    return value;\n  }\n\n  if (typeof value === 'string') {\n    return wrapStructured(value, 'text', value, { source: 'load-content' });\n  }\n\n  if (isLoadContentResult(value)) {\n    const baseMetadata = extractLoadContentMetadata(value);\n    const contentText = typeof value.content === 'string' ? value.content : String(value.content ?? '');\n    const filenameLower = (value.filename || '').toLowerCase();\n    const skipAutoParse = false;\n\n    if (filenameLower.endsWith('.jsonl') && typeof value.content === 'string') {\n      const data = parseJsonLines(contentText, value.filename || 'content');\n      const metadata = buildMetadata(baseMetadata, { type: 'jsonl' });\n      return wrapStructured(data, 'array', contentText, metadata);\n    }\n\n    if (filenameLower.endsWith('.json') && typeof value.content === 'string') {\n      const data = parseJsonWithContext(contentText, value.filename || 'content');\n      const metadata = buildMetadata(baseMetadata, { type: 'json' });\n      return wrapStructured(data, detectStructuredType(data), contentText, metadata);\n    }\n\n    const parsedFromContent = tryParseJson(contentText);\n    if (parsedFromContent.success) {\n      const data = parsedFromContent.value;\n      return wrapStructured(data, detectStructuredType(data), contentText, baseMetadata);\n    }\n    const parsed = value.json;\n    if (parsed !== undefined) {\n      return wrapStructured(parsed, detectStructuredType(parsed), contentText, baseMetadata);\n    }\n    // Default text handling: data is the content string, metadata carries file info\n    return wrapStructured(contentText, 'text', contentText, baseMetadata);\n  }\n\n  if (Array.isArray(value)) {\n    const baseMetadata: StructuredValueMetadata = {\n      source: 'load-content',\n      length: value.length\n    };\n\n    // Preserve original variable metadata if tagged\n    const variableMetadata = hasVariableMetadata(value) ? getVariableMetadata(value) : undefined;\n\n    // Aggregate security descriptors from LoadContentResult items\n    const aggregatedSecurity = value.length > 0 && isLoadContentResult(value[0])\n      ? value\n          .map(item => buildLoadSecurityDescriptor(item))\n          .filter((descriptor): descriptor is NonNullable<ReturnType<typeof buildLoadSecurityDescriptor>> =>\n            Boolean(descriptor)\n          )\n      : [];\n    const mergedSecurity =\n      aggregatedSecurity.length > 0 ? mergeDescriptors(...aggregatedSecurity) : undefined;\n\n    const metadata = buildMetadata(\n      baseMetadata,\n      variableMetadata?.mx\n        ? { variableMetadata: variableMetadata.mx }\n        : undefined\n    );\n    const finalMetadata = mergedSecurity\n      ? buildMetadata(metadata, { security: mergedSecurity })\n      : metadata;\n\n    return wrapStructured(value, 'array', deriveArrayText(value), finalMetadata);\n  }\n\n  const fallbackText =\n    typeof value === 'string'\n      ? value\n      : (() => {\n          try {\n            return JSON.stringify(value);\n          } catch {\n            return String(value ?? '');\n          }\n        })();\n\n  return wrapStructured(value, 'object', fallbackText, { source: 'load-content' });\n}\n\nexport function isFileLoadedValue(value: unknown): boolean {\n  if (isStructuredValue(value)) {\n    return Boolean(value.mx?.filename || value.mx?.url);\n  }\n  return isLoadContentResult(value);\n}\n\nexport function isURLLoadedValue(value: unknown): boolean {\n  if (isStructuredValue(value)) {\n    return Boolean(value.mx?.url);\n  }\n  if (isLoadContentResult(value)) {\n    return Boolean((value as any).url);\n  }\n  return false;\n}\n"]}