{"version":3,"sources":["../src/correlation-metadata.ts"],"names":[],"mappings":";AAEO,IAAM,sBAAA,GAAyB;AAAA,EACpC,eAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAEA,SAAS,iBAAiB,KAAA,EAAiC;AACzD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,MAAA,GAAS,CAAA;AACrD;AAGO,SAAS,2BACd,MAAA,EACsC;AACtC,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,MAAgC,EAAC;AACvC,EAAA,IAAI,KAAA,GAAQ,KAAA;AAEZ,EAAA,KAAA,MAAW,OAAO,sBAAA,EAAwB;AACxC,IAAA,MAAM,KAAA,GAAQ,OAAO,GAAG,CAAA;AACxB,IAAA,IAAI,gBAAA,CAAiB,KAAK,CAAA,EAAG;AAC3B,MAAA,GAAA,CAAI,GAAG,CAAA,GAAI,KAAA;AACX,MAAA,KAAA,GAAQ,IAAA;AAAA,IACV;AAAA,EACF;AAEA,EAAA,OAAO,QAAQ,GAAA,GAAM,MAAA;AACvB;AAMO,SAAS,wBACd,OAAA,EAQqC;AACrC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,MAAA,GACJ,QAAQ,QAAA,KAAa,MAAA,GAAY,EAAE,GAAG,OAAA,CAAQ,QAAA,EAAS,GAAI,EAAC;AAE9D,EAAA,IAAI,gBAAA,CAAiB,OAAA,CAAQ,aAAa,CAAA,EAAG;AAC3C,IAAA,MAAA,CAAO,gBAAgB,OAAA,CAAQ,aAAA;AAAA,EACjC;AACA,EAAA,IAAI,gBAAA,CAAiB,OAAA,CAAQ,SAAS,CAAA,EAAG;AACvC,IAAA,MAAA,CAAO,YAAY,OAAA,CAAQ,SAAA;AAAA,EAC7B;AACA,EAAA,IAAI,gBAAA,CAAiB,OAAA,CAAQ,UAAU,CAAA,EAAG;AACxC,IAAA,MAAA,CAAO,aAAa,OAAA,CAAQ,UAAA;AAAA,EAC9B;AACA,EAAA,IAAI,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA,EAAG;AACrC,IAAA,MAAA,CAAO,UAAU,OAAA,CAAQ,OAAA;AAAA,EAC3B;AAEA,EAAA,OAAO,OAAO,IAAA,CAAK,MAAM,CAAA,CAAE,MAAA,GAAS,IAAI,MAAA,GAAS,MAAA;AACnD","file":"chunk-S4YWKV4G.mjs","sourcesContent":["import type { InspectRunOptions, TraceCorrelationMetadata } from \"./types.js\";\n\nexport const TRACE_CORRELATION_KEYS = [\n  \"correlationId\",\n  \"requestId\",\n  \"decisionId\",\n  \"groupId\",\n] as const satisfies readonly (keyof TraceCorrelationMetadata)[];\n\nfunction isNonEmptyString(value: unknown): value is string {\n  return typeof value === \"string\" && value.length > 0;\n}\n\n/** Extracts known correlation keys from a metadata record. */\nexport function extractCorrelationMetadata(\n  record: Record<string, unknown> | undefined,\n): TraceCorrelationMetadata | undefined {\n  if (!record) {\n    return undefined;\n  }\n\n  const out: TraceCorrelationMetadata = {};\n  let found = false;\n\n  for (const key of TRACE_CORRELATION_KEYS) {\n    const value = record[key];\n    if (isNonEmptyString(value)) {\n      out[key] = value;\n      found = true;\n    }\n  }\n\n  return found ? out : undefined;\n}\n\n/**\n * Builds `run_started` metadata from optional run metadata and top-level correlation fields.\n * Top-level correlation options override the same keys in `options.metadata`.\n */\nexport function buildRunStartedMetadata(\n  options?: Pick<\n    InspectRunOptions,\n    | \"metadata\"\n    | \"correlationId\"\n    | \"requestId\"\n    | \"decisionId\"\n    | \"groupId\"\n  >,\n): Record<string, unknown> | undefined {\n  if (!options) {\n    return undefined;\n  }\n\n  const merged: Record<string, unknown> =\n    options.metadata !== undefined ? { ...options.metadata } : {};\n\n  if (isNonEmptyString(options.correlationId)) {\n    merged.correlationId = options.correlationId;\n  }\n  if (isNonEmptyString(options.requestId)) {\n    merged.requestId = options.requestId;\n  }\n  if (isNonEmptyString(options.decisionId)) {\n    merged.decisionId = options.decisionId;\n  }\n  if (isNonEmptyString(options.groupId)) {\n    merged.groupId = options.groupId;\n  }\n\n  return Object.keys(merged).length > 0 ? merged : undefined;\n}\n"]}