@morsehq-dev/sdk 0.5.0-rc.2 → 0.5.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/anthropic/index.cjs +11 -11
- package/dist/anthropic/index.js +4 -4
- package/dist/anthropic-agent-sdk/index.cjs +37 -37
- package/dist/anthropic-agent-sdk/index.js +6 -6
- package/dist/browser/anthropic/index.cjs +11 -11
- package/dist/browser/anthropic/index.js +4 -4
- package/dist/browser/anthropic-agent-sdk/index.cjs +37 -37
- package/dist/browser/anthropic-agent-sdk/index.js +6 -6
- package/dist/browser/{chunk-SOJYLXCR.cjs → chunk-KFWCOUL3.cjs} +5 -5
- package/dist/browser/{chunk-SOJYLXCR.cjs.map → chunk-KFWCOUL3.cjs.map} +1 -1
- package/dist/browser/{chunk-L6FWDEGJ.js → chunk-KGSLJLWW.js} +4 -4
- package/dist/browser/{chunk-L6FWDEGJ.js.map → chunk-KGSLJLWW.js.map} +1 -1
- package/dist/{chunk-ZWOSPXS4.js → browser/chunk-LGG5PL5U.js} +3 -3
- package/dist/browser/{chunk-AM6LMQCT.js.map → chunk-LGG5PL5U.js.map} +1 -1
- package/dist/browser/{chunk-NRYB5GJT.js → chunk-MI4OUWUZ.js} +3 -3
- package/dist/browser/{chunk-NRYB5GJT.js.map → chunk-MI4OUWUZ.js.map} +1 -1
- package/dist/browser/{chunk-FDE32B3R.js → chunk-MOBYR3AP.js} +4 -4
- package/dist/browser/{chunk-FDE32B3R.js.map → chunk-MOBYR3AP.js.map} +1 -1
- package/dist/browser/{chunk-3MTJGZGX.js → chunk-N4Q2WMOE.js} +5 -5
- package/dist/browser/{chunk-3MTJGZGX.js.map → chunk-N4Q2WMOE.js.map} +1 -1
- package/dist/browser/{chunk-YMEU6XQQ.cjs → chunk-P7XWSMFX.cjs} +6 -6
- package/dist/browser/{chunk-YMEU6XQQ.cjs.map → chunk-P7XWSMFX.cjs.map} +1 -1
- package/dist/browser/{chunk-A5EYWAOT.cjs → chunk-PM5D6VXF.cjs} +12 -6
- package/dist/browser/chunk-PM5D6VXF.cjs.map +1 -0
- package/dist/browser/{chunk-T4NHSVXH.cjs → chunk-QCI2ZDQS.cjs} +12 -12
- package/dist/browser/{chunk-T4NHSVXH.cjs.map → chunk-QCI2ZDQS.cjs.map} +1 -1
- package/dist/browser/{chunk-YR2FCEWM.cjs → chunk-VSG4EWNL.cjs} +18 -18
- package/dist/browser/{chunk-YR2FCEWM.cjs.map → chunk-VSG4EWNL.cjs.map} +1 -1
- package/dist/browser/{chunk-NH54DAJP.js → chunk-WUQXNRD3.js} +3 -3
- package/dist/browser/{chunk-NH54DAJP.js.map → chunk-WUQXNRD3.js.map} +1 -1
- package/dist/{chunk-Z2IYSTRT.cjs → browser/chunk-XLQSSJUZ.cjs} +15 -15
- package/dist/browser/{chunk-63ZI6PGP.cjs.map → chunk-XLQSSJUZ.cjs.map} +1 -1
- package/dist/browser/{chunk-OOGAYEJF.js → chunk-Y3BOPSM3.js} +12 -7
- package/dist/browser/chunk-Y3BOPSM3.js.map +1 -0
- package/dist/{chunk-Y2QHMV6H.cjs → browser/chunk-YSJVJ3Z3.cjs} +7 -7
- package/dist/browser/{chunk-N3PXJCOE.cjs.map → chunk-YSJVJ3Z3.cjs.map} +1 -1
- package/dist/browser/index.cjs +90 -89
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +9 -8
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/integrations/pino.cjs +4 -4
- package/dist/browser/integrations/pino.js +3 -3
- package/dist/browser/langchain/index.cjs +17 -17
- package/dist/browser/langchain/index.js +2 -2
- package/dist/browser/langgraph/index.cjs +27 -27
- package/dist/browser/langgraph/index.js +5 -5
- package/dist/browser/openai/index.cjs +11 -11
- package/dist/browser/openai/index.js +2 -2
- package/dist/browser/openai-agents/index.cjs +38 -36
- package/dist/browser/openai-agents/index.cjs.map +1 -1
- package/dist/browser/openai-agents/index.js +8 -6
- package/dist/browser/openai-agents/index.js.map +1 -1
- package/dist/browser/vercel-ai/index.cjs +14 -14
- package/dist/browser/vercel-ai/index.js +3 -3
- package/dist/{browser/chunk-N3PXJCOE.cjs → chunk-3XQOZXJM.cjs} +7 -7
- package/dist/{chunk-Y2QHMV6H.cjs.map → chunk-3XQOZXJM.cjs.map} +1 -1
- package/dist/{chunk-FCAPLB7A.js → chunk-7PGR4NJG.js} +4 -4
- package/dist/{chunk-FCAPLB7A.js.map → chunk-7PGR4NJG.js.map} +1 -1
- package/dist/{browser/chunk-63ZI6PGP.cjs → chunk-DPGUBZVO.cjs} +15 -15
- package/dist/{chunk-Z2IYSTRT.cjs.map → chunk-DPGUBZVO.cjs.map} +1 -1
- package/dist/{chunk-XCOZIFHC.cjs → chunk-E3G3IE6Y.cjs} +12 -6
- package/dist/chunk-E3G3IE6Y.cjs.map +1 -0
- package/dist/{chunk-SHK2XEPB.js → chunk-HCEKAVDR.js} +4 -4
- package/dist/{chunk-SHK2XEPB.js.map → chunk-HCEKAVDR.js.map} +1 -1
- package/dist/{chunk-VHF4GWJ4.cjs → chunk-NGBJJGOC.cjs} +5 -5
- package/dist/{chunk-VHF4GWJ4.cjs.map → chunk-NGBJJGOC.cjs.map} +1 -1
- package/dist/{chunk-ZIER4DGK.cjs → chunk-RK3JPX27.cjs} +12 -12
- package/dist/{chunk-ZIER4DGK.cjs.map → chunk-RK3JPX27.cjs.map} +1 -1
- package/dist/{chunk-XJUH6PR5.js → chunk-T2NESDMT.js} +3 -3
- package/dist/{chunk-XJUH6PR5.js.map → chunk-T2NESDMT.js.map} +1 -1
- package/dist/{chunk-6DZNK4VX.cjs → chunk-TGHDV5MC.cjs} +6 -6
- package/dist/{chunk-6DZNK4VX.cjs.map → chunk-TGHDV5MC.cjs.map} +1 -1
- package/dist/{chunk-S4WUABAU.js → chunk-UAJO6JM7.js} +3 -3
- package/dist/{chunk-S4WUABAU.js.map → chunk-UAJO6JM7.js.map} +1 -1
- package/dist/{chunk-YJYF4NSA.js → chunk-XHOLQGN6.js} +5 -5
- package/dist/{chunk-YJYF4NSA.js.map → chunk-XHOLQGN6.js.map} +1 -1
- package/dist/{chunk-3IGQWLWE.js → chunk-XZRJXJFA.js} +12 -7
- package/dist/chunk-XZRJXJFA.js.map +1 -0
- package/dist/{chunk-SNGYSP7Z.cjs → chunk-YQ6ZA7OE.cjs} +18 -18
- package/dist/{chunk-SNGYSP7Z.cjs.map → chunk-YQ6ZA7OE.cjs.map} +1 -1
- package/dist/{browser/chunk-AM6LMQCT.js → chunk-ZFE75G7S.js} +3 -3
- package/dist/{chunk-ZWOSPXS4.js.map → chunk-ZFE75G7S.js.map} +1 -1
- package/dist/index.cjs +97 -96
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- package/dist/integrations/pino.cjs +4 -4
- package/dist/integrations/pino.js +3 -3
- package/dist/langchain/index.cjs +17 -17
- package/dist/langchain/index.js +2 -2
- package/dist/langgraph/index.cjs +27 -27
- package/dist/langgraph/index.js +5 -5
- package/dist/openai/index.cjs +11 -11
- package/dist/openai/index.js +2 -2
- package/dist/openai-agents/index.cjs +38 -36
- package/dist/openai-agents/index.cjs.map +1 -1
- package/dist/openai-agents/index.d.cts +4 -0
- package/dist/openai-agents/index.d.ts +4 -0
- package/dist/openai-agents/index.js +8 -6
- package/dist/openai-agents/index.js.map +1 -1
- package/dist/vercel-ai/index.cjs +14 -14
- package/dist/vercel-ai/index.js +3 -3
- package/package.json +1 -1
- package/dist/browser/chunk-A5EYWAOT.cjs.map +0 -1
- package/dist/browser/chunk-OOGAYEJF.js.map +0 -1
- package/dist/chunk-3IGQWLWE.js.map +0 -1
- package/dist/chunk-XCOZIFHC.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/_agent-sdk-common/redaction.ts"],"names":["absorbErrorsSync"],"mappings":"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","file":"chunk-N3PXJCOE.cjs","sourcesContent":["/**\n * Agent-SDK-specific redaction layered on top of `_internal/redaction.ts`.\n *\n * Phase 13 W1.2. The three TS agent-SDK adapters (Anthropic Agent SDK,\n * OpenAI Agents SDK, LangGraph JS) all summarize tool inputs/outputs and\n * content blocks before stamping them onto span attributes. This module\n * provides the shared helpers they call.\n *\n * Rules (see openspec/changes/2026-05-26-phase-13-ts-agent-sdk-adapters/\n * design.md §\"redaction.ts\"):\n * - Tool inputs truncated to 2 KB by default; tool outputs to 4 KB.\n * - Base64 / data: URL blobs >= 4 KB are replaced with a hashed marker\n * `<blob:sha256:HEX:LEN>` rather than stored inline.\n * - Binary content blocks (image / audio / video / screenshot) are\n * replaced by `{kind, hash, byte_len, dims?, mime?}` summaries.\n *\n * All public helpers are wrapped in `absorbErrorsSync` so they cannot\n * throw at the caller — telemetry must never break the host application.\n * On absorbed error: strings degrade to `\"<redaction_error>\"`,\n * `summarizeBinaryBlock` returns `null`, `redactContentBlocks` returns\n * its input unchanged.\n *\n * NB: The sha256 + canonical-JSON helpers below are duplicated from\n * `src/anthropic/index.ts` rather than imported. This is deliberate — the\n * Phase 13 W1 tasks are file-disjoint and cannot reach across into\n * `anthropic/`. The duplication is small and the algorithms are stable.\n */\n\nimport { absorbErrorsSync } from \"../_internal/errors\";\n\n/* ------------------------------------------------------------------------ */\n/* Public constants */\n/* ------------------------------------------------------------------------ */\n\nexport const DEFAULT_TOOL_ARG_MAX_BYTES = 2048;\nexport const DEFAULT_TOOL_OUTPUT_MAX_BYTES = 4096;\nexport const DEFAULT_BLOB_TRIGGER_BYTES = 4096;\n\n/* ------------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------------ */\n\nexport interface SummarizeOptions {\n /** Maximum byte length of the returned string. */\n maxBytes?: number;\n /**\n * If true (default), data: URLs and >= DEFAULT_BLOB_TRIGGER_BYTES base64\n * runs are replaced with `<blob:sha256:HEX:LEN>` markers before\n * truncation. Set false to keep blobs inline (still subject to\n * truncation).\n */\n stripBlobs?: boolean;\n}\n\nexport interface BinaryBlockSummary {\n kind: \"image\" | \"audio\" | \"video\" | \"screenshot\" | \"binary\";\n /** sha256 hex of the decoded (or, if not base64, raw) bytes. */\n hash: string;\n byte_len: number;\n dims?: { width: number; height: number };\n mime?: string;\n}\n\n/* ------------------------------------------------------------------------ */\n/* summarizeToolInput / summarizeToolOutput */\n/* ------------------------------------------------------------------------ */\n\nconst REDACTION_ERROR_FALLBACK = \"<redaction_error>\";\n\nfunction summarizeImpl(value: unknown, opts: SummarizeOptions, defaultMax: number): string {\n const maxBytes = opts.maxBytes ?? defaultMax;\n const stripBlobs = opts.stripBlobs !== false;\n\n // Stringify with stable key order.\n let str: string;\n if (typeof value === \"string\") {\n str = value;\n } else if (value === undefined) {\n str = \"undefined\";\n } else {\n str = canonicalJsonStringify(value);\n }\n\n if (stripBlobs) {\n str = stripBlobsFromString(str);\n }\n\n return truncateUtf8(str, maxBytes);\n}\n\nconst summarizeToolInputInner = (value: unknown, opts?: SummarizeOptions): string =>\n summarizeImpl(value, opts ?? {}, DEFAULT_TOOL_ARG_MAX_BYTES);\n\nconst summarizeToolOutputInner = (value: unknown, opts?: SummarizeOptions): string =>\n summarizeImpl(value, opts ?? {}, DEFAULT_TOOL_OUTPUT_MAX_BYTES);\n\nconst safeSummarizeToolInput = absorbErrorsSync(summarizeToolInputInner, {\n fingerprint: \"agent-sdk.redaction.summarizeToolInput\",\n});\n\nconst safeSummarizeToolOutput = absorbErrorsSync(summarizeToolOutputInner, {\n fingerprint: \"agent-sdk.redaction.summarizeToolOutput\",\n});\n\n/**\n * Reduce an arbitrary tool argument value to a small string suitable for\n * a span attribute. JSON-canonicalized (sorted keys), with optional blob\n * stripping, then truncated to `maxBytes` UTF-8 bytes.\n */\nexport function summarizeToolInput(value: unknown, opts?: SummarizeOptions): string {\n const out = safeSummarizeToolInput(value, opts);\n return out === undefined ? REDACTION_ERROR_FALLBACK : out;\n}\n\n/**\n * Same shape as `summarizeToolInput` but defaults to a larger byte cap\n * (`DEFAULT_TOOL_OUTPUT_MAX_BYTES`) appropriate for tool *results*.\n */\nexport function summarizeToolOutput(value: unknown, opts?: SummarizeOptions): string {\n const out = safeSummarizeToolOutput(value, opts);\n return out === undefined ? REDACTION_ERROR_FALLBACK : out;\n}\n\n/* ------------------------------------------------------------------------ */\n/* summarizeBinaryBlock */\n/* ------------------------------------------------------------------------ */\n\nconst BINARY_KINDS: ReadonlySet<string> = new Set([\"image\", \"audio\", \"video\", \"screenshot\"]);\n\nfunction summarizeBinaryBlockInner(block: unknown): BinaryBlockSummary | null {\n if (block === null || typeof block !== \"object\") return null;\n const b = block as Record<string, unknown>;\n const type = typeof b.type === \"string\" ? b.type : null;\n if (type === null || !BINARY_KINDS.has(type)) return null;\n\n const kind = type as BinaryBlockSummary[\"kind\"];\n\n // Try to extract base64 payload + mime from a variety of shapes.\n let base64: string | null = null;\n let mime: string | undefined;\n\n // Shape 1: { source: { type: \"base64\", data: \"...\", media_type: \"image/png\" } }\n const source = b.source;\n if (source !== null && typeof source === \"object\") {\n const s = source as Record<string, unknown>;\n if (typeof s.data === \"string\") base64 = s.data;\n if (typeof s.media_type === \"string\") mime = s.media_type;\n else if (typeof s.mediaType === \"string\") mime = s.mediaType;\n }\n\n // Shape 2: { url: \"data:image/jpg;base64,...\" } or { dataUrl: \"...\" }\n if (base64 === null) {\n const url =\n typeof b.url === \"string\" ? b.url : typeof b.dataUrl === \"string\" ? b.dataUrl : null;\n if (url !== null && url.startsWith(\"data:\")) {\n const parsed = parseDataUrl(url);\n if (parsed !== null) {\n base64 = parsed.base64;\n if (mime === undefined) mime = parsed.mime;\n }\n }\n }\n\n // Shape 3: raw { data: \"...\" } at the top level.\n if (base64 === null && typeof b.data === \"string\") {\n base64 = b.data;\n }\n\n // Dimensions (optional).\n let dims: { width: number; height: number } | undefined;\n const w = b.width;\n const h = b.height;\n if (typeof w === \"number\" && typeof h === \"number\") {\n dims = { width: w, height: h };\n }\n\n // Hash + length. If we have base64, decode it; otherwise hash whatever\n // string we found as bytes. If we have neither, return a zero-length\n // summary — we still know the block was a binary type.\n let hash: string;\n let byte_len: number;\n if (base64 !== null) {\n const bytes = decodeBase64ToBytes(base64);\n hash = sha256HexBytes(bytes);\n byte_len = bytes.length;\n } else {\n hash = sha256Hex(\"\");\n byte_len = 0;\n }\n\n const out: BinaryBlockSummary = { kind, hash, byte_len };\n if (dims !== undefined) out.dims = dims;\n if (mime !== undefined) out.mime = mime;\n return out;\n}\n\nconst safeSummarizeBinaryBlock = absorbErrorsSync(summarizeBinaryBlockInner, {\n fingerprint: \"agent-sdk.redaction.summarizeBinaryBlock\",\n});\n\n/**\n * Recognize a content block of type image/audio/video/screenshot and\n * return a hashed summary instead of the raw bytes. Returns null if the\n * block isn't a recognizable binary block (or on internal error).\n */\nexport function summarizeBinaryBlock(block: unknown): BinaryBlockSummary | null {\n const out = safeSummarizeBinaryBlock(block);\n return out === undefined ? null : out;\n}\n\n/* ------------------------------------------------------------------------ */\n/* redactContentBlocks */\n/* ------------------------------------------------------------------------ */\n\nfunction redactContentBlocksInner(blocks: unknown[]): unknown[] {\n return blocks.map((block) => {\n const summary = summarizeBinaryBlockInner(block);\n return summary === null ? block : summary;\n });\n}\n\nconst safeRedactContentBlocks = absorbErrorsSync(redactContentBlocksInner, {\n fingerprint: \"agent-sdk.redaction.redactContentBlocks\",\n});\n\n/**\n * Walk a content-blocks array and replace any binary blocks with their\n * `BinaryBlockSummary`. Non-binary blocks pass through unchanged.\n */\nexport function redactContentBlocks(blocks: unknown[]): unknown[] {\n const out = safeRedactContentBlocks(blocks);\n return out === undefined ? blocks : out;\n}\n\n/* ------------------------------------------------------------------------ */\n/* Blob stripping */\n/* ------------------------------------------------------------------------ */\n\n/** Match `data:<mime>;base64,<payload>` URLs of any length. */\nconst DATA_URL_RE = /data:[A-Za-z0-9.+/-]*(?:;[A-Za-z0-9.=+/-]+)*?;base64,[A-Za-z0-9+/=]+/g;\n\n/**\n * Match a long, unbroken run of base64 characters (no whitespace) that\n * could plausibly be a blob. The threshold here is deliberately small —\n * the byte-length check after the match decides whether it really gets\n * replaced.\n */\nconst LONG_BASE64_RE = /[A-Za-z0-9+/]{100,}={0,2}/g;\n\nfunction stripBlobsFromString(s: string): string {\n // Pass 1: data: URLs (any length >= trigger).\n let out = s.replace(DATA_URL_RE, (match) => {\n if (match.length < DEFAULT_BLOB_TRIGGER_BYTES) return match;\n const parsed = parseDataUrl(match);\n if (parsed === null) {\n return blobMarker(sha256Hex(match), match.length);\n }\n const bytes = decodeBase64ToBytes(parsed.base64);\n return blobMarker(sha256HexBytes(bytes), bytes.length);\n });\n\n // Pass 2: long base64 runs not embedded in a data: URL.\n out = out.replace(LONG_BASE64_RE, (match) => {\n if (match.length < DEFAULT_BLOB_TRIGGER_BYTES) return match;\n const bytes = decodeBase64ToBytes(match);\n return blobMarker(sha256HexBytes(bytes), bytes.length);\n });\n\n return out;\n}\n\nfunction blobMarker(hashHex: string, byteLen: number): string {\n return `<blob:sha256:${hashHex}:${byteLen}>`;\n}\n\nfunction parseDataUrl(url: string): { mime: string; base64: string } | null {\n // data:<mime>[;params];base64,<payload>\n if (!url.startsWith(\"data:\")) return null;\n const comma = url.indexOf(\",\");\n if (comma < 0) return null;\n const header = url.slice(5, comma);\n const payload = url.slice(comma + 1);\n if (!header.includes(\"base64\")) return null;\n // Strip any `;base64` and any other params.\n const parts = header.split(\";\");\n const mime = parts[0] !== undefined && parts[0] !== \"\" ? parts[0] : \"application/octet-stream\";\n return { mime, base64: payload };\n}\n\n/* ------------------------------------------------------------------------ */\n/* Base64 decode */\n/* ------------------------------------------------------------------------ */\n\nfunction decodeBase64ToBytes(b64: string): Uint8Array {\n // Strip whitespace.\n const cleaned = b64.replace(/\\s+/g, \"\");\n\n // Prefer Node's Buffer.\n try {\n if (typeof process !== \"undefined\" && process.versions?.node) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dynamicRequire = Function(\"m\", \"return require(m)\") as any as (m: string) => unknown;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bufferMod = dynamicRequire(\"node:buffer\") as any;\n if (bufferMod?.Buffer) {\n const buf = bufferMod.Buffer.from(cleaned, \"base64\") as Uint8Array;\n return new Uint8Array(buf);\n }\n }\n } catch {\n // fall through\n }\n\n // Browser: atob.\n try {\n if (typeof atob === \"function\") {\n const bin = atob(cleaned);\n const out = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);\n return out;\n }\n } catch {\n // fall through\n }\n\n // Last-resort pure-JS decoder.\n return pureBase64Decode(cleaned);\n}\n\nconst B64_ALPHABET = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nconst B64_LOOKUP: Record<string, number> = (() => {\n const m: Record<string, number> = {};\n for (let i = 0; i < B64_ALPHABET.length; i++) m[B64_ALPHABET[i]!] = i;\n return m;\n})();\n\nfunction pureBase64Decode(s: string): Uint8Array {\n const stripped = s.replace(/=+$/, \"\");\n const out: number[] = [];\n let buffer = 0;\n let bits = 0;\n for (let i = 0; i < stripped.length; i++) {\n const ch = stripped[i]!;\n const v = B64_LOOKUP[ch];\n if (v === undefined) continue; // skip invalid\n buffer = (buffer << 6) | v;\n bits += 6;\n if (bits >= 8) {\n bits -= 8;\n out.push((buffer >> bits) & 0xff);\n }\n }\n return new Uint8Array(out);\n}\n\n/* ------------------------------------------------------------------------ */\n/* Canonical JSON stringify (duplicated from anthropic/index.ts) */\n/* ------------------------------------------------------------------------ */\n\nfunction canonicalJsonStringify(value: unknown): string {\n return JSON.stringify(value, function replacer(_key, val) {\n if (val && typeof val === \"object\" && !Array.isArray(val)) {\n const obj = val as Record<string, unknown>;\n const sorted: Record<string, unknown> = {};\n for (const k of Object.keys(obj).sort()) {\n sorted[k] = obj[k];\n }\n return sorted;\n }\n return val;\n });\n}\n\n/* ------------------------------------------------------------------------ */\n/* UTF-8 byte truncation */\n/* ------------------------------------------------------------------------ */\n\nfunction truncateUtf8(text: string, maxBytes: number): string {\n if (maxBytes <= 0) return \"\";\n // Fast path: cheap upper bound.\n if (text.length <= maxBytes / 4) return text;\n const bytes = utf8Encode(text);\n if (bytes.length <= maxBytes) return text;\n let cut = maxBytes;\n while (cut > 0 && (bytes[cut]! & 0xc0) === 0x80) {\n cut--;\n }\n return utf8Decode(bytes.subarray(0, cut));\n}\n\nfunction utf8Encode(text: string): Uint8Array {\n if (typeof TextEncoder !== \"undefined\") {\n return new TextEncoder().encode(text);\n }\n const out: number[] = [];\n for (let i = 0; i < text.length; i++) {\n const code = text.charCodeAt(i);\n if (code < 0x80) {\n out.push(code);\n } else if (code < 0x800) {\n out.push(0xc0 | (code >> 6), 0x80 | (code & 0x3f));\n } else {\n out.push(0xe0 | (code >> 12), 0x80 | ((code >> 6) & 0x3f), 0x80 | (code & 0x3f));\n }\n }\n return new Uint8Array(out);\n}\n\nfunction utf8Decode(bytes: Uint8Array): string {\n if (typeof TextDecoder !== \"undefined\") {\n return new TextDecoder(\"utf-8\").decode(bytes);\n }\n let out = \"\";\n for (let i = 0; i < bytes.length; ) {\n const b = bytes[i]!;\n if (b < 0x80) {\n out += String.fromCharCode(b);\n i++;\n } else if (b < 0xe0) {\n out += String.fromCharCode(((b & 0x1f) << 6) | (bytes[i + 1]! & 0x3f));\n i += 2;\n } else {\n out += String.fromCharCode(\n ((b & 0x0f) << 12) | ((bytes[i + 1]! & 0x3f) << 6) | (bytes[i + 2]! & 0x3f),\n );\n i += 3;\n }\n }\n return out;\n}\n\n/* ------------------------------------------------------------------------ */\n/* SHA-256 (duplicated from anthropic/index.ts) */\n/* ------------------------------------------------------------------------ */\n\nfunction sha256Hex(text: string): string {\n try {\n if (typeof process !== \"undefined\" && process.versions?.node) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dynamicRequire = Function(\"m\", \"return require(m)\") as any as (m: string) => unknown;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const cryptoMod = dynamicRequire(\"node:crypto\") as any;\n if (cryptoMod?.createHash) {\n return cryptoMod.createHash(\"sha256\").update(text).digest(\"hex\");\n }\n }\n } catch {\n // fall through\n }\n return purejsSha256Bytes(utf8Encode(text));\n}\n\nfunction sha256HexBytes(bytes: Uint8Array): string {\n try {\n if (typeof process !== \"undefined\" && process.versions?.node) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dynamicRequire = Function(\"m\", \"return require(m)\") as any as (m: string) => unknown;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const cryptoMod = dynamicRequire(\"node:crypto\") as any;\n if (cryptoMod?.createHash) {\n return cryptoMod.createHash(\"sha256\").update(bytes).digest(\"hex\");\n }\n }\n } catch {\n // fall through\n }\n return purejsSha256Bytes(bytes);\n}\n\nfunction purejsSha256Bytes(msg: Uint8Array): string {\n const K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n ];\n const H = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n ];\n\n const msgLen = msg.length;\n const bitLen = msgLen * 8;\n const padded = new Uint8Array(((msgLen + 9 + 63) >> 6) << 6);\n padded.set(msg);\n padded[msgLen] = 0x80;\n // 64-bit BE length. JS bitwise ops are 32-bit, so split lo/hi via /.\n const lo = (bitLen & 0xffffffff) >>> 0;\n const hi = Math.floor(bitLen / 0x100000000) >>> 0;\n padded[padded.length - 8] = (hi >>> 24) & 0xff;\n padded[padded.length - 7] = (hi >>> 16) & 0xff;\n padded[padded.length - 6] = (hi >>> 8) & 0xff;\n padded[padded.length - 5] = hi & 0xff;\n padded[padded.length - 4] = (lo >>> 24) & 0xff;\n padded[padded.length - 3] = (lo >>> 16) & 0xff;\n padded[padded.length - 2] = (lo >>> 8) & 0xff;\n padded[padded.length - 1] = lo & 0xff;\n\n const W = new Uint32Array(64);\n for (let chunk = 0; chunk < padded.length; chunk += 64) {\n for (let i = 0; i < 16; i++) {\n // `>>> 0` forces unsigned — `(byte << 24)` otherwise produces a\n // signed int when the high bit is set, which corrupts the schedule.\n W[i] =\n ((padded[chunk + i * 4]! << 24) |\n (padded[chunk + i * 4 + 1]! << 16) |\n (padded[chunk + i * 4 + 2]! << 8) |\n padded[chunk + i * 4 + 3]!) >>>\n 0;\n }\n for (let i = 16; i < 64; i++) {\n const s0 = rotr(W[i - 15]!, 7) ^ rotr(W[i - 15]!, 18) ^ (W[i - 15]! >>> 3);\n const s1 = rotr(W[i - 2]!, 17) ^ rotr(W[i - 2]!, 19) ^ (W[i - 2]! >>> 10);\n W[i] = (W[i - 16]! + s0 + W[i - 7]! + s1) >>> 0;\n }\n\n let [a, b, c, d, e, f, g, h] = H;\n\n for (let i = 0; i < 64; i++) {\n const S1 = rotr(e!, 6) ^ rotr(e!, 11) ^ rotr(e!, 25);\n const ch = (e! & f!) ^ (~e! & g!);\n const temp1 = (h! + S1 + ch + K[i]! + W[i]!) >>> 0;\n const S0 = rotr(a!, 2) ^ rotr(a!, 13) ^ rotr(a!, 22);\n const maj = (a! & b!) ^ (a! & c!) ^ (b! & c!);\n const temp2 = (S0 + maj) >>> 0;\n h = g;\n g = f;\n f = e;\n e = (d! + temp1) >>> 0;\n d = c;\n c = b;\n b = a;\n a = (temp1 + temp2) >>> 0;\n }\n\n H[0] = (H[0]! + a!) >>> 0;\n H[1] = (H[1]! + b!) >>> 0;\n H[2] = (H[2]! + c!) >>> 0;\n H[3] = (H[3]! + d!) >>> 0;\n H[4] = (H[4]! + e!) >>> 0;\n H[5] = (H[5]! + f!) >>> 0;\n H[6] = (H[6]! + g!) >>> 0;\n H[7] = (H[7]! + h!) >>> 0;\n }\n\n let hex = \"\";\n for (const v of H) {\n hex += v.toString(16).padStart(8, \"0\");\n }\n return hex;\n}\n\nfunction rotr(x: number, n: number): number {\n return ((x >>> n) | (x << (32 - n))) >>> 0;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/_agent-sdk-common/redaction.ts"],"names":["absorbErrorsSync"],"mappings":"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","file":"chunk-YSJVJ3Z3.cjs","sourcesContent":["/**\n * Agent-SDK-specific redaction layered on top of `_internal/redaction.ts`.\n *\n * Phase 13 W1.2. The three TS agent-SDK adapters (Anthropic Agent SDK,\n * OpenAI Agents SDK, LangGraph JS) all summarize tool inputs/outputs and\n * content blocks before stamping them onto span attributes. This module\n * provides the shared helpers they call.\n *\n * Rules (see openspec/changes/2026-05-26-phase-13-ts-agent-sdk-adapters/\n * design.md §\"redaction.ts\"):\n * - Tool inputs truncated to 2 KB by default; tool outputs to 4 KB.\n * - Base64 / data: URL blobs >= 4 KB are replaced with a hashed marker\n * `<blob:sha256:HEX:LEN>` rather than stored inline.\n * - Binary content blocks (image / audio / video / screenshot) are\n * replaced by `{kind, hash, byte_len, dims?, mime?}` summaries.\n *\n * All public helpers are wrapped in `absorbErrorsSync` so they cannot\n * throw at the caller — telemetry must never break the host application.\n * On absorbed error: strings degrade to `\"<redaction_error>\"`,\n * `summarizeBinaryBlock` returns `null`, `redactContentBlocks` returns\n * its input unchanged.\n *\n * NB: The sha256 + canonical-JSON helpers below are duplicated from\n * `src/anthropic/index.ts` rather than imported. This is deliberate — the\n * Phase 13 W1 tasks are file-disjoint and cannot reach across into\n * `anthropic/`. The duplication is small and the algorithms are stable.\n */\n\nimport { absorbErrorsSync } from \"../_internal/errors\";\n\n/* ------------------------------------------------------------------------ */\n/* Public constants */\n/* ------------------------------------------------------------------------ */\n\nexport const DEFAULT_TOOL_ARG_MAX_BYTES = 2048;\nexport const DEFAULT_TOOL_OUTPUT_MAX_BYTES = 4096;\nexport const DEFAULT_BLOB_TRIGGER_BYTES = 4096;\n\n/* ------------------------------------------------------------------------ */\n/* Public types */\n/* ------------------------------------------------------------------------ */\n\nexport interface SummarizeOptions {\n /** Maximum byte length of the returned string. */\n maxBytes?: number;\n /**\n * If true (default), data: URLs and >= DEFAULT_BLOB_TRIGGER_BYTES base64\n * runs are replaced with `<blob:sha256:HEX:LEN>` markers before\n * truncation. Set false to keep blobs inline (still subject to\n * truncation).\n */\n stripBlobs?: boolean;\n}\n\nexport interface BinaryBlockSummary {\n kind: \"image\" | \"audio\" | \"video\" | \"screenshot\" | \"binary\";\n /** sha256 hex of the decoded (or, if not base64, raw) bytes. */\n hash: string;\n byte_len: number;\n dims?: { width: number; height: number };\n mime?: string;\n}\n\n/* ------------------------------------------------------------------------ */\n/* summarizeToolInput / summarizeToolOutput */\n/* ------------------------------------------------------------------------ */\n\nconst REDACTION_ERROR_FALLBACK = \"<redaction_error>\";\n\nfunction summarizeImpl(value: unknown, opts: SummarizeOptions, defaultMax: number): string {\n const maxBytes = opts.maxBytes ?? defaultMax;\n const stripBlobs = opts.stripBlobs !== false;\n\n // Stringify with stable key order.\n let str: string;\n if (typeof value === \"string\") {\n str = value;\n } else if (value === undefined) {\n str = \"undefined\";\n } else {\n str = canonicalJsonStringify(value);\n }\n\n if (stripBlobs) {\n str = stripBlobsFromString(str);\n }\n\n return truncateUtf8(str, maxBytes);\n}\n\nconst summarizeToolInputInner = (value: unknown, opts?: SummarizeOptions): string =>\n summarizeImpl(value, opts ?? {}, DEFAULT_TOOL_ARG_MAX_BYTES);\n\nconst summarizeToolOutputInner = (value: unknown, opts?: SummarizeOptions): string =>\n summarizeImpl(value, opts ?? {}, DEFAULT_TOOL_OUTPUT_MAX_BYTES);\n\nconst safeSummarizeToolInput = absorbErrorsSync(summarizeToolInputInner, {\n fingerprint: \"agent-sdk.redaction.summarizeToolInput\",\n});\n\nconst safeSummarizeToolOutput = absorbErrorsSync(summarizeToolOutputInner, {\n fingerprint: \"agent-sdk.redaction.summarizeToolOutput\",\n});\n\n/**\n * Reduce an arbitrary tool argument value to a small string suitable for\n * a span attribute. JSON-canonicalized (sorted keys), with optional blob\n * stripping, then truncated to `maxBytes` UTF-8 bytes.\n */\nexport function summarizeToolInput(value: unknown, opts?: SummarizeOptions): string {\n const out = safeSummarizeToolInput(value, opts);\n return out === undefined ? REDACTION_ERROR_FALLBACK : out;\n}\n\n/**\n * Same shape as `summarizeToolInput` but defaults to a larger byte cap\n * (`DEFAULT_TOOL_OUTPUT_MAX_BYTES`) appropriate for tool *results*.\n */\nexport function summarizeToolOutput(value: unknown, opts?: SummarizeOptions): string {\n const out = safeSummarizeToolOutput(value, opts);\n return out === undefined ? REDACTION_ERROR_FALLBACK : out;\n}\n\n/* ------------------------------------------------------------------------ */\n/* summarizeBinaryBlock */\n/* ------------------------------------------------------------------------ */\n\nconst BINARY_KINDS: ReadonlySet<string> = new Set([\"image\", \"audio\", \"video\", \"screenshot\"]);\n\nfunction summarizeBinaryBlockInner(block: unknown): BinaryBlockSummary | null {\n if (block === null || typeof block !== \"object\") return null;\n const b = block as Record<string, unknown>;\n const type = typeof b.type === \"string\" ? b.type : null;\n if (type === null || !BINARY_KINDS.has(type)) return null;\n\n const kind = type as BinaryBlockSummary[\"kind\"];\n\n // Try to extract base64 payload + mime from a variety of shapes.\n let base64: string | null = null;\n let mime: string | undefined;\n\n // Shape 1: { source: { type: \"base64\", data: \"...\", media_type: \"image/png\" } }\n const source = b.source;\n if (source !== null && typeof source === \"object\") {\n const s = source as Record<string, unknown>;\n if (typeof s.data === \"string\") base64 = s.data;\n if (typeof s.media_type === \"string\") mime = s.media_type;\n else if (typeof s.mediaType === \"string\") mime = s.mediaType;\n }\n\n // Shape 2: { url: \"data:image/jpg;base64,...\" } or { dataUrl: \"...\" }\n if (base64 === null) {\n const url =\n typeof b.url === \"string\" ? b.url : typeof b.dataUrl === \"string\" ? b.dataUrl : null;\n if (url !== null && url.startsWith(\"data:\")) {\n const parsed = parseDataUrl(url);\n if (parsed !== null) {\n base64 = parsed.base64;\n if (mime === undefined) mime = parsed.mime;\n }\n }\n }\n\n // Shape 3: raw { data: \"...\" } at the top level.\n if (base64 === null && typeof b.data === \"string\") {\n base64 = b.data;\n }\n\n // Dimensions (optional).\n let dims: { width: number; height: number } | undefined;\n const w = b.width;\n const h = b.height;\n if (typeof w === \"number\" && typeof h === \"number\") {\n dims = { width: w, height: h };\n }\n\n // Hash + length. If we have base64, decode it; otherwise hash whatever\n // string we found as bytes. If we have neither, return a zero-length\n // summary — we still know the block was a binary type.\n let hash: string;\n let byte_len: number;\n if (base64 !== null) {\n const bytes = decodeBase64ToBytes(base64);\n hash = sha256HexBytes(bytes);\n byte_len = bytes.length;\n } else {\n hash = sha256Hex(\"\");\n byte_len = 0;\n }\n\n const out: BinaryBlockSummary = { kind, hash, byte_len };\n if (dims !== undefined) out.dims = dims;\n if (mime !== undefined) out.mime = mime;\n return out;\n}\n\nconst safeSummarizeBinaryBlock = absorbErrorsSync(summarizeBinaryBlockInner, {\n fingerprint: \"agent-sdk.redaction.summarizeBinaryBlock\",\n});\n\n/**\n * Recognize a content block of type image/audio/video/screenshot and\n * return a hashed summary instead of the raw bytes. Returns null if the\n * block isn't a recognizable binary block (or on internal error).\n */\nexport function summarizeBinaryBlock(block: unknown): BinaryBlockSummary | null {\n const out = safeSummarizeBinaryBlock(block);\n return out === undefined ? null : out;\n}\n\n/* ------------------------------------------------------------------------ */\n/* redactContentBlocks */\n/* ------------------------------------------------------------------------ */\n\nfunction redactContentBlocksInner(blocks: unknown[]): unknown[] {\n return blocks.map((block) => {\n const summary = summarizeBinaryBlockInner(block);\n return summary === null ? block : summary;\n });\n}\n\nconst safeRedactContentBlocks = absorbErrorsSync(redactContentBlocksInner, {\n fingerprint: \"agent-sdk.redaction.redactContentBlocks\",\n});\n\n/**\n * Walk a content-blocks array and replace any binary blocks with their\n * `BinaryBlockSummary`. Non-binary blocks pass through unchanged.\n */\nexport function redactContentBlocks(blocks: unknown[]): unknown[] {\n const out = safeRedactContentBlocks(blocks);\n return out === undefined ? blocks : out;\n}\n\n/* ------------------------------------------------------------------------ */\n/* Blob stripping */\n/* ------------------------------------------------------------------------ */\n\n/** Match `data:<mime>;base64,<payload>` URLs of any length. */\nconst DATA_URL_RE = /data:[A-Za-z0-9.+/-]*(?:;[A-Za-z0-9.=+/-]+)*?;base64,[A-Za-z0-9+/=]+/g;\n\n/**\n * Match a long, unbroken run of base64 characters (no whitespace) that\n * could plausibly be a blob. The threshold here is deliberately small —\n * the byte-length check after the match decides whether it really gets\n * replaced.\n */\nconst LONG_BASE64_RE = /[A-Za-z0-9+/]{100,}={0,2}/g;\n\nfunction stripBlobsFromString(s: string): string {\n // Pass 1: data: URLs (any length >= trigger).\n let out = s.replace(DATA_URL_RE, (match) => {\n if (match.length < DEFAULT_BLOB_TRIGGER_BYTES) return match;\n const parsed = parseDataUrl(match);\n if (parsed === null) {\n return blobMarker(sha256Hex(match), match.length);\n }\n const bytes = decodeBase64ToBytes(parsed.base64);\n return blobMarker(sha256HexBytes(bytes), bytes.length);\n });\n\n // Pass 2: long base64 runs not embedded in a data: URL.\n out = out.replace(LONG_BASE64_RE, (match) => {\n if (match.length < DEFAULT_BLOB_TRIGGER_BYTES) return match;\n const bytes = decodeBase64ToBytes(match);\n return blobMarker(sha256HexBytes(bytes), bytes.length);\n });\n\n return out;\n}\n\nfunction blobMarker(hashHex: string, byteLen: number): string {\n return `<blob:sha256:${hashHex}:${byteLen}>`;\n}\n\nfunction parseDataUrl(url: string): { mime: string; base64: string } | null {\n // data:<mime>[;params];base64,<payload>\n if (!url.startsWith(\"data:\")) return null;\n const comma = url.indexOf(\",\");\n if (comma < 0) return null;\n const header = url.slice(5, comma);\n const payload = url.slice(comma + 1);\n if (!header.includes(\"base64\")) return null;\n // Strip any `;base64` and any other params.\n const parts = header.split(\";\");\n const mime = parts[0] !== undefined && parts[0] !== \"\" ? parts[0] : \"application/octet-stream\";\n return { mime, base64: payload };\n}\n\n/* ------------------------------------------------------------------------ */\n/* Base64 decode */\n/* ------------------------------------------------------------------------ */\n\nfunction decodeBase64ToBytes(b64: string): Uint8Array {\n // Strip whitespace.\n const cleaned = b64.replace(/\\s+/g, \"\");\n\n // Prefer Node's Buffer.\n try {\n if (typeof process !== \"undefined\" && process.versions?.node) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dynamicRequire = Function(\"m\", \"return require(m)\") as any as (m: string) => unknown;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bufferMod = dynamicRequire(\"node:buffer\") as any;\n if (bufferMod?.Buffer) {\n const buf = bufferMod.Buffer.from(cleaned, \"base64\") as Uint8Array;\n return new Uint8Array(buf);\n }\n }\n } catch {\n // fall through\n }\n\n // Browser: atob.\n try {\n if (typeof atob === \"function\") {\n const bin = atob(cleaned);\n const out = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);\n return out;\n }\n } catch {\n // fall through\n }\n\n // Last-resort pure-JS decoder.\n return pureBase64Decode(cleaned);\n}\n\nconst B64_ALPHABET = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nconst B64_LOOKUP: Record<string, number> = (() => {\n const m: Record<string, number> = {};\n for (let i = 0; i < B64_ALPHABET.length; i++) m[B64_ALPHABET[i]!] = i;\n return m;\n})();\n\nfunction pureBase64Decode(s: string): Uint8Array {\n const stripped = s.replace(/=+$/, \"\");\n const out: number[] = [];\n let buffer = 0;\n let bits = 0;\n for (let i = 0; i < stripped.length; i++) {\n const ch = stripped[i]!;\n const v = B64_LOOKUP[ch];\n if (v === undefined) continue; // skip invalid\n buffer = (buffer << 6) | v;\n bits += 6;\n if (bits >= 8) {\n bits -= 8;\n out.push((buffer >> bits) & 0xff);\n }\n }\n return new Uint8Array(out);\n}\n\n/* ------------------------------------------------------------------------ */\n/* Canonical JSON stringify (duplicated from anthropic/index.ts) */\n/* ------------------------------------------------------------------------ */\n\nfunction canonicalJsonStringify(value: unknown): string {\n return JSON.stringify(value, function replacer(_key, val) {\n if (val && typeof val === \"object\" && !Array.isArray(val)) {\n const obj = val as Record<string, unknown>;\n const sorted: Record<string, unknown> = {};\n for (const k of Object.keys(obj).sort()) {\n sorted[k] = obj[k];\n }\n return sorted;\n }\n return val;\n });\n}\n\n/* ------------------------------------------------------------------------ */\n/* UTF-8 byte truncation */\n/* ------------------------------------------------------------------------ */\n\nfunction truncateUtf8(text: string, maxBytes: number): string {\n if (maxBytes <= 0) return \"\";\n // Fast path: cheap upper bound.\n if (text.length <= maxBytes / 4) return text;\n const bytes = utf8Encode(text);\n if (bytes.length <= maxBytes) return text;\n let cut = maxBytes;\n while (cut > 0 && (bytes[cut]! & 0xc0) === 0x80) {\n cut--;\n }\n return utf8Decode(bytes.subarray(0, cut));\n}\n\nfunction utf8Encode(text: string): Uint8Array {\n if (typeof TextEncoder !== \"undefined\") {\n return new TextEncoder().encode(text);\n }\n const out: number[] = [];\n for (let i = 0; i < text.length; i++) {\n const code = text.charCodeAt(i);\n if (code < 0x80) {\n out.push(code);\n } else if (code < 0x800) {\n out.push(0xc0 | (code >> 6), 0x80 | (code & 0x3f));\n } else {\n out.push(0xe0 | (code >> 12), 0x80 | ((code >> 6) & 0x3f), 0x80 | (code & 0x3f));\n }\n }\n return new Uint8Array(out);\n}\n\nfunction utf8Decode(bytes: Uint8Array): string {\n if (typeof TextDecoder !== \"undefined\") {\n return new TextDecoder(\"utf-8\").decode(bytes);\n }\n let out = \"\";\n for (let i = 0; i < bytes.length; ) {\n const b = bytes[i]!;\n if (b < 0x80) {\n out += String.fromCharCode(b);\n i++;\n } else if (b < 0xe0) {\n out += String.fromCharCode(((b & 0x1f) << 6) | (bytes[i + 1]! & 0x3f));\n i += 2;\n } else {\n out += String.fromCharCode(\n ((b & 0x0f) << 12) | ((bytes[i + 1]! & 0x3f) << 6) | (bytes[i + 2]! & 0x3f),\n );\n i += 3;\n }\n }\n return out;\n}\n\n/* ------------------------------------------------------------------------ */\n/* SHA-256 (duplicated from anthropic/index.ts) */\n/* ------------------------------------------------------------------------ */\n\nfunction sha256Hex(text: string): string {\n try {\n if (typeof process !== \"undefined\" && process.versions?.node) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dynamicRequire = Function(\"m\", \"return require(m)\") as any as (m: string) => unknown;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const cryptoMod = dynamicRequire(\"node:crypto\") as any;\n if (cryptoMod?.createHash) {\n return cryptoMod.createHash(\"sha256\").update(text).digest(\"hex\");\n }\n }\n } catch {\n // fall through\n }\n return purejsSha256Bytes(utf8Encode(text));\n}\n\nfunction sha256HexBytes(bytes: Uint8Array): string {\n try {\n if (typeof process !== \"undefined\" && process.versions?.node) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dynamicRequire = Function(\"m\", \"return require(m)\") as any as (m: string) => unknown;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const cryptoMod = dynamicRequire(\"node:crypto\") as any;\n if (cryptoMod?.createHash) {\n return cryptoMod.createHash(\"sha256\").update(bytes).digest(\"hex\");\n }\n }\n } catch {\n // fall through\n }\n return purejsSha256Bytes(bytes);\n}\n\nfunction purejsSha256Bytes(msg: Uint8Array): string {\n const K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n ];\n const H = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n ];\n\n const msgLen = msg.length;\n const bitLen = msgLen * 8;\n const padded = new Uint8Array(((msgLen + 9 + 63) >> 6) << 6);\n padded.set(msg);\n padded[msgLen] = 0x80;\n // 64-bit BE length. JS bitwise ops are 32-bit, so split lo/hi via /.\n const lo = (bitLen & 0xffffffff) >>> 0;\n const hi = Math.floor(bitLen / 0x100000000) >>> 0;\n padded[padded.length - 8] = (hi >>> 24) & 0xff;\n padded[padded.length - 7] = (hi >>> 16) & 0xff;\n padded[padded.length - 6] = (hi >>> 8) & 0xff;\n padded[padded.length - 5] = hi & 0xff;\n padded[padded.length - 4] = (lo >>> 24) & 0xff;\n padded[padded.length - 3] = (lo >>> 16) & 0xff;\n padded[padded.length - 2] = (lo >>> 8) & 0xff;\n padded[padded.length - 1] = lo & 0xff;\n\n const W = new Uint32Array(64);\n for (let chunk = 0; chunk < padded.length; chunk += 64) {\n for (let i = 0; i < 16; i++) {\n // `>>> 0` forces unsigned — `(byte << 24)` otherwise produces a\n // signed int when the high bit is set, which corrupts the schedule.\n W[i] =\n ((padded[chunk + i * 4]! << 24) |\n (padded[chunk + i * 4 + 1]! << 16) |\n (padded[chunk + i * 4 + 2]! << 8) |\n padded[chunk + i * 4 + 3]!) >>>\n 0;\n }\n for (let i = 16; i < 64; i++) {\n const s0 = rotr(W[i - 15]!, 7) ^ rotr(W[i - 15]!, 18) ^ (W[i - 15]! >>> 3);\n const s1 = rotr(W[i - 2]!, 17) ^ rotr(W[i - 2]!, 19) ^ (W[i - 2]! >>> 10);\n W[i] = (W[i - 16]! + s0 + W[i - 7]! + s1) >>> 0;\n }\n\n let [a, b, c, d, e, f, g, h] = H;\n\n for (let i = 0; i < 64; i++) {\n const S1 = rotr(e!, 6) ^ rotr(e!, 11) ^ rotr(e!, 25);\n const ch = (e! & f!) ^ (~e! & g!);\n const temp1 = (h! + S1 + ch + K[i]! + W[i]!) >>> 0;\n const S0 = rotr(a!, 2) ^ rotr(a!, 13) ^ rotr(a!, 22);\n const maj = (a! & b!) ^ (a! & c!) ^ (b! & c!);\n const temp2 = (S0 + maj) >>> 0;\n h = g;\n g = f;\n f = e;\n e = (d! + temp1) >>> 0;\n d = c;\n c = b;\n b = a;\n a = (temp1 + temp2) >>> 0;\n }\n\n H[0] = (H[0]! + a!) >>> 0;\n H[1] = (H[1]! + b!) >>> 0;\n H[2] = (H[2]! + c!) >>> 0;\n H[3] = (H[3]! + d!) >>> 0;\n H[4] = (H[4]! + e!) >>> 0;\n H[5] = (H[5]! + f!) >>> 0;\n H[6] = (H[6]! + g!) >>> 0;\n H[7] = (H[7]! + h!) >>> 0;\n }\n\n let hex = \"\";\n for (const v of H) {\n hex += v.toString(16).padStart(8, \"0\");\n }\n return hex;\n}\n\nfunction rotr(x: number, n: number): number {\n return ((x >>> n) | (x << (32 - n))) >>> 0;\n}\n"]}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
require('./chunk-
|
|
6
|
-
var
|
|
3
|
+
var chunkVSG4EWNL_cjs = require('./chunk-VSG4EWNL.cjs');
|
|
4
|
+
var chunkQCI2ZDQS_cjs = require('./chunk-QCI2ZDQS.cjs');
|
|
5
|
+
require('./chunk-KFWCOUL3.cjs');
|
|
6
|
+
var chunkP7XWSMFX_cjs = require('./chunk-P7XWSMFX.cjs');
|
|
7
7
|
require('./chunk-SWQOPFE4.cjs');
|
|
8
8
|
require('./chunk-RBNCTHK3.cjs');
|
|
9
|
-
var
|
|
9
|
+
var chunkPM5D6VXF_cjs = require('./chunk-PM5D6VXF.cjs');
|
|
10
10
|
|
|
11
11
|
// src/_internal/auto-detect.browser.ts
|
|
12
12
|
async function installAdapters() {
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
// src/index.ts
|
|
16
|
-
|
|
16
|
+
chunkPM5D6VXF_cjs.init_env();
|
|
17
17
|
|
|
18
18
|
// src/_internal/db-capture.browser.ts
|
|
19
19
|
function maybeEnableDbCaptureFromEnv() {
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
// src/index.ts
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
chunkPM5D6VXF_cjs.init_otel_provider_browser();
|
|
24
|
+
chunkPM5D6VXF_cjs.init_redaction();
|
|
25
25
|
|
|
26
26
|
// src/_internal/transport.ts
|
|
27
|
-
|
|
28
|
-
var SDK_VERSION = "0.5.0-rc.
|
|
27
|
+
chunkPM5D6VXF_cjs.init_diagnostics();
|
|
28
|
+
var SDK_VERSION = "0.5.0-rc.3" ;
|
|
29
29
|
var RETRY_AFTER_CAP_SECONDS = 30;
|
|
30
30
|
function parseRetryAfter(value) {
|
|
31
31
|
if (!value) return null;
|
|
@@ -130,11 +130,11 @@ var BatchTransport = class {
|
|
|
130
130
|
/** Enqueue an event. Non-blocking. Returns false if the queue is full. */
|
|
131
131
|
track(event) {
|
|
132
132
|
if (this.closed) {
|
|
133
|
-
|
|
133
|
+
chunkPM5D6VXF_cjs.recordDrop(chunkPM5D6VXF_cjs.REASON_SHUTDOWN_DROP, "trace");
|
|
134
134
|
return false;
|
|
135
135
|
}
|
|
136
136
|
if (this.queue.length >= this.maxQueueSize) {
|
|
137
|
-
|
|
137
|
+
chunkPM5D6VXF_cjs.recordDrop(chunkPM5D6VXF_cjs.REASON_QUEUE_FULL, "trace");
|
|
138
138
|
return false;
|
|
139
139
|
}
|
|
140
140
|
this.queue.push(event);
|
|
@@ -221,12 +221,12 @@ var BatchTransport = class {
|
|
|
221
221
|
body: JSON.stringify(payload),
|
|
222
222
|
signal: controller.signal
|
|
223
223
|
});
|
|
224
|
-
|
|
224
|
+
chunkPM5D6VXF_cjs.setLevel(resp.headers.get("X-Morse-Diagnostics"));
|
|
225
225
|
const droppedCount = countPayloadEntries(payload);
|
|
226
226
|
const droppedCategory = categoryOf(payload);
|
|
227
227
|
if (resp.status === 429) {
|
|
228
228
|
await recordQuotaState(resp);
|
|
229
|
-
|
|
229
|
+
chunkPM5D6VXF_cjs.recordDrop(chunkPM5D6VXF_cjs.REASON_QUOTA_REJECTED, droppedCategory, droppedCount);
|
|
230
230
|
}
|
|
231
231
|
if (!resp.ok) {
|
|
232
232
|
let bodySnippet = "";
|
|
@@ -236,9 +236,9 @@ var BatchTransport = class {
|
|
|
236
236
|
} catch {
|
|
237
237
|
}
|
|
238
238
|
if (resp.status !== 429) {
|
|
239
|
-
|
|
239
|
+
chunkPM5D6VXF_cjs.recordDrop(chunkPM5D6VXF_cjs.REASON_RETRY_EXHAUSTED, droppedCategory, droppedCount);
|
|
240
240
|
}
|
|
241
|
-
|
|
241
|
+
chunkPM5D6VXF_cjs.report(new Error(`morse: batch POST returned ${resp.status} ${bodySnippet}`), {
|
|
242
242
|
fingerprint: "morse.transport.post.non_2xx",
|
|
243
243
|
extra: {
|
|
244
244
|
endpoint_host: hostnameOf(url),
|
|
@@ -247,8 +247,8 @@ var BatchTransport = class {
|
|
|
247
247
|
});
|
|
248
248
|
}
|
|
249
249
|
} catch (err) {
|
|
250
|
-
|
|
251
|
-
|
|
250
|
+
chunkPM5D6VXF_cjs.recordDrop(chunkPM5D6VXF_cjs.REASON_RETRY_EXHAUSTED, categoryOf(payload), countPayloadEntries(payload));
|
|
251
|
+
chunkPM5D6VXF_cjs.report(err, {
|
|
252
252
|
fingerprint: "morse.transport.post.network",
|
|
253
253
|
extra: {
|
|
254
254
|
endpoint_host: hostnameOf(url),
|
|
@@ -292,10 +292,10 @@ function categoryOf(payload) {
|
|
|
292
292
|
}
|
|
293
293
|
|
|
294
294
|
// src/index.ts
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
295
|
+
chunkPM5D6VXF_cjs.init_tracing();
|
|
296
|
+
chunkPM5D6VXF_cjs.init_diagnostics();
|
|
297
|
+
chunkPM5D6VXF_cjs.init_spans();
|
|
298
|
+
chunkPM5D6VXF_cjs.init_propagation();
|
|
299
299
|
var version = SDK_VERSION;
|
|
300
300
|
var singleton = null;
|
|
301
301
|
var transportFactory = (opts) => new BatchTransport(opts);
|
|
@@ -315,9 +315,9 @@ function logDestinationOnce(endpoint) {
|
|
|
315
315
|
}
|
|
316
316
|
function resolveEndpoint(explicit) {
|
|
317
317
|
if (explicit && explicit.length > 0) return explicit;
|
|
318
|
-
const fromEnv =
|
|
318
|
+
const fromEnv = chunkPM5D6VXF_cjs.getEndpoint();
|
|
319
319
|
if (fromEnv) return fromEnv;
|
|
320
|
-
return
|
|
320
|
+
return chunkPM5D6VXF_cjs.DEFAULT_ENDPOINT;
|
|
321
321
|
}
|
|
322
322
|
var OTLP_TRACES_PATH = "/api/v1/otlp/v1/traces";
|
|
323
323
|
function deriveOtlpEndpoint(tracesEndpoint) {
|
|
@@ -332,10 +332,10 @@ function deriveOtlpEndpoint(tracesEndpoint) {
|
|
|
332
332
|
}
|
|
333
333
|
}
|
|
334
334
|
function buildSingleton(opts, redaction) {
|
|
335
|
-
if (
|
|
335
|
+
if (chunkPM5D6VXF_cjs.isDisabled()) {
|
|
336
336
|
return null;
|
|
337
337
|
}
|
|
338
|
-
const apiKey = opts.apiKey ??
|
|
338
|
+
const apiKey = opts.apiKey ?? chunkPM5D6VXF_cjs.getApiKey();
|
|
339
339
|
if (!apiKey) {
|
|
340
340
|
if (!noApiKeyWarningEmitted) {
|
|
341
341
|
logger(
|
|
@@ -347,23 +347,24 @@ function buildSingleton(opts, redaction) {
|
|
|
347
347
|
return null;
|
|
348
348
|
}
|
|
349
349
|
const endpoint = resolveEndpoint(opts.endpoint);
|
|
350
|
-
const flushIntervalSeconds = opts.flushIntervalSeconds ??
|
|
350
|
+
const flushIntervalSeconds = opts.flushIntervalSeconds ?? chunkPM5D6VXF_cjs.getFlushIntervalSeconds();
|
|
351
351
|
const transport = transportFactory({ apiKey, endpoint, flushIntervalSeconds });
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
const
|
|
356
|
-
|
|
352
|
+
chunkPM5D6VXF_cjs.setTransport(transport);
|
|
353
|
+
chunkPM5D6VXF_cjs.setRedactionConfig(redaction);
|
|
354
|
+
chunkPM5D6VXF_cjs.setDiagnosticsClientConfig({ apiKey, endpoint });
|
|
355
|
+
const explicitSource = chunkPM5D6VXF_cjs.isValidInternalSource(opts.source) ? opts.source : void 0;
|
|
356
|
+
const resolvedSource = explicitSource ?? chunkPM5D6VXF_cjs.getInternalSource() ?? null;
|
|
357
|
+
chunkPM5D6VXF_cjs.setSource(resolvedSource);
|
|
357
358
|
logDestinationOnce(endpoint);
|
|
358
359
|
try {
|
|
359
|
-
|
|
360
|
+
chunkPM5D6VXF_cjs.getEngine().configure({
|
|
360
361
|
endpoint: deriveOtlpEndpoint(endpoint),
|
|
361
362
|
apiKey,
|
|
362
|
-
sampleRate:
|
|
363
|
+
sampleRate: chunkPM5D6VXF_cjs.getSampleRate(),
|
|
363
364
|
scheduleDelayMillis: flushIntervalSeconds * 1e3,
|
|
364
|
-
maxQueueSize:
|
|
365
|
-
maxExportBatchSize:
|
|
366
|
-
maxFieldBytes:
|
|
365
|
+
maxQueueSize: chunkPM5D6VXF_cjs.getMaxQueueSize(),
|
|
366
|
+
maxExportBatchSize: chunkPM5D6VXF_cjs.getMaxBatchSize(),
|
|
367
|
+
maxFieldBytes: chunkPM5D6VXF_cjs.getMaxFieldBytes(),
|
|
367
368
|
// 10s (not the exporter's un-overridden 30s ceiling): a genuine
|
|
368
369
|
// network blip still gets several retries with backoff; a fully dead
|
|
369
370
|
// endpoint fails within a bounded, shutdown-friendly window instead
|
|
@@ -372,32 +373,32 @@ function buildSingleton(opts, redaction) {
|
|
|
372
373
|
redactionConfig: redaction
|
|
373
374
|
});
|
|
374
375
|
} catch (err) {
|
|
375
|
-
|
|
376
|
+
chunkPM5D6VXF_cjs.report(err, { fingerprint: "morse.otel_provider.configure" });
|
|
376
377
|
}
|
|
377
378
|
void installAdapters().catch(() => {
|
|
378
379
|
});
|
|
379
380
|
try {
|
|
380
381
|
maybeEnableDbCaptureFromEnv();
|
|
381
382
|
} catch (err) {
|
|
382
|
-
|
|
383
|
+
chunkPM5D6VXF_cjs.report(err, { fingerprint: "morse.db_capture.register" });
|
|
383
384
|
}
|
|
384
385
|
return { apiKey, endpoint, transport, redaction };
|
|
385
386
|
}
|
|
386
387
|
function ensureInitialized() {
|
|
387
|
-
if (
|
|
388
|
+
if (chunkPM5D6VXF_cjs.isDisabled()) return null;
|
|
388
389
|
if (singleton !== null) return singleton;
|
|
389
|
-
singleton = buildSingleton({},
|
|
390
|
+
singleton = buildSingleton({}, chunkPM5D6VXF_cjs.buildRedactionConfig());
|
|
390
391
|
return singleton;
|
|
391
392
|
}
|
|
392
|
-
|
|
393
|
+
chunkQCI2ZDQS_cjs._setEnsureInitialized(() => {
|
|
393
394
|
ensureInitialized();
|
|
394
395
|
});
|
|
395
396
|
function init(options = {}) {
|
|
396
|
-
if (
|
|
397
|
+
if (chunkPM5D6VXF_cjs.isDisabled()) {
|
|
397
398
|
logger("info", "morse: MORSE_DISABLED=1 \u2014 SDK is a no-op");
|
|
398
399
|
return;
|
|
399
400
|
}
|
|
400
|
-
const redaction =
|
|
401
|
+
const redaction = chunkPM5D6VXF_cjs.buildRedactionConfig(options.redaction);
|
|
401
402
|
try {
|
|
402
403
|
if (singleton !== null) {
|
|
403
404
|
void singleton.transport.shutdown();
|
|
@@ -405,10 +406,10 @@ function init(options = {}) {
|
|
|
405
406
|
}
|
|
406
407
|
singleton = buildSingleton(options, redaction);
|
|
407
408
|
} catch (err) {
|
|
408
|
-
|
|
409
|
+
chunkPM5D6VXF_cjs.report(err, { fingerprint: "morse.init" });
|
|
409
410
|
}
|
|
410
411
|
}
|
|
411
|
-
var track =
|
|
412
|
+
var track = chunkP7XWSMFX_cjs.absorbErrorsSync(
|
|
412
413
|
(options) => {
|
|
413
414
|
const state = ensureInitialized();
|
|
414
415
|
if (!state) return;
|
|
@@ -416,33 +417,33 @@ var track = chunkYMEU6XQQ_cjs.absorbErrorsSync(
|
|
|
416
417
|
agent_id: options.agentId,
|
|
417
418
|
...options.runData
|
|
418
419
|
};
|
|
419
|
-
const redacted =
|
|
420
|
+
const redacted = chunkPM5D6VXF_cjs.redactValue(payload, state.redaction);
|
|
420
421
|
state.transport.track(redacted);
|
|
421
422
|
},
|
|
422
423
|
{ fingerprint: "morse.track" }
|
|
423
424
|
);
|
|
424
|
-
var batchTrack =
|
|
425
|
+
var batchTrack = chunkP7XWSMFX_cjs.absorbErrorsSync(
|
|
425
426
|
(runs) => {
|
|
426
427
|
const state = ensureInitialized();
|
|
427
428
|
if (!state) return;
|
|
428
429
|
for (const run2 of runs) {
|
|
429
|
-
const redacted =
|
|
430
|
+
const redacted = chunkPM5D6VXF_cjs.redactValue(run2, state.redaction);
|
|
430
431
|
state.transport.track(redacted);
|
|
431
432
|
}
|
|
432
433
|
},
|
|
433
434
|
{ fingerprint: "morse.batch_track" }
|
|
434
435
|
);
|
|
435
|
-
var record =
|
|
436
|
+
var record = chunkP7XWSMFX_cjs.absorbErrorsSync(
|
|
436
437
|
(rec) => {
|
|
437
438
|
const state = ensureInitialized();
|
|
438
439
|
if (!state) return;
|
|
439
|
-
const traceId =
|
|
440
|
-
const now =
|
|
440
|
+
const traceId = chunkPM5D6VXF_cjs.generateTraceId();
|
|
441
|
+
const now = chunkPM5D6VXF_cjs.nowIso();
|
|
441
442
|
const resolvedStatus = rec.errorMessage ? "failed" : rec.status ?? "completed";
|
|
442
443
|
const span2 = {
|
|
443
444
|
trace_id: traceId,
|
|
444
|
-
span_id:
|
|
445
|
-
type:
|
|
445
|
+
span_id: chunkPM5D6VXF_cjs.generateSpanId(),
|
|
446
|
+
type: chunkPM5D6VXF_cjs.SpanType.AGENT,
|
|
446
447
|
name: rec.agent,
|
|
447
448
|
started_at: now,
|
|
448
449
|
ended_at: now,
|
|
@@ -467,57 +468,57 @@ var record = chunkYMEU6XQQ_cjs.absorbErrorsSync(
|
|
|
467
468
|
success: rec.success,
|
|
468
469
|
outcome: rec.outcome
|
|
469
470
|
};
|
|
470
|
-
const entry =
|
|
471
|
-
const redacted =
|
|
472
|
-
|
|
471
|
+
const entry = chunkPM5D6VXF_cjs.buildTraceEntry(traceFields, [span2]);
|
|
472
|
+
const redacted = chunkPM5D6VXF_cjs.redactValue(entry, state.redaction);
|
|
473
|
+
chunkPM5D6VXF_cjs.sendTrace(redacted);
|
|
473
474
|
},
|
|
474
475
|
{ fingerprint: "morse.record" }
|
|
475
476
|
);
|
|
476
477
|
function run(nameOrOpts, fn) {
|
|
477
478
|
const opts = typeof nameOrOpts === "string" ? { agentName: nameOrOpts } : nameOrOpts;
|
|
478
479
|
ensureInitialized();
|
|
479
|
-
return
|
|
480
|
+
return chunkPM5D6VXF_cjs.runSync(opts, fn);
|
|
480
481
|
}
|
|
481
482
|
function runTraced(options, fn) {
|
|
482
483
|
ensureInitialized();
|
|
483
|
-
return
|
|
484
|
+
return chunkPM5D6VXF_cjs.runAsync(options, fn);
|
|
484
485
|
}
|
|
485
486
|
function setContext2(dims) {
|
|
486
|
-
|
|
487
|
+
chunkPM5D6VXF_cjs.setContext(dims);
|
|
487
488
|
}
|
|
488
489
|
function startSpan2(options) {
|
|
489
|
-
return
|
|
490
|
+
return chunkPM5D6VXF_cjs.startSpan(options);
|
|
490
491
|
}
|
|
491
492
|
function span(options, fn) {
|
|
492
|
-
return
|
|
493
|
+
return chunkPM5D6VXF_cjs.spanSync(options, fn);
|
|
493
494
|
}
|
|
494
495
|
function spanAsync2(options, fn) {
|
|
495
|
-
return
|
|
496
|
+
return chunkPM5D6VXF_cjs.spanAsync(options, fn);
|
|
496
497
|
}
|
|
497
|
-
var flush =
|
|
498
|
+
var flush = chunkP7XWSMFX_cjs.absorbErrorsAsync(
|
|
498
499
|
async () => {
|
|
499
500
|
if (singleton !== null) {
|
|
500
501
|
await singleton.transport.flush();
|
|
501
|
-
await
|
|
502
|
+
await chunkPM5D6VXF_cjs.getEngine().flush();
|
|
502
503
|
}
|
|
503
504
|
},
|
|
504
505
|
{ fingerprint: "morse.flush" }
|
|
505
506
|
);
|
|
506
|
-
var quotaState2 =
|
|
507
|
+
var quotaState2 = chunkP7XWSMFX_cjs.absorbErrorsSync(
|
|
507
508
|
() => {
|
|
508
509
|
if (singleton === null) return null;
|
|
509
510
|
return getQuotaState();
|
|
510
511
|
},
|
|
511
512
|
{ fingerprint: "morse.quota_state" }
|
|
512
513
|
);
|
|
513
|
-
var shutdown =
|
|
514
|
+
var shutdown = chunkP7XWSMFX_cjs.absorbErrorsAsync(
|
|
514
515
|
async () => {
|
|
515
516
|
if (singleton !== null) {
|
|
516
517
|
await singleton.transport.shutdown();
|
|
517
|
-
await
|
|
518
|
-
|
|
518
|
+
await chunkPM5D6VXF_cjs.getEngine().flush();
|
|
519
|
+
chunkPM5D6VXF_cjs.getEngine().shutdown();
|
|
519
520
|
singleton = null;
|
|
520
|
-
|
|
521
|
+
chunkPM5D6VXF_cjs.setTransport(null);
|
|
521
522
|
}
|
|
522
523
|
},
|
|
523
524
|
{ fingerprint: "morse.shutdown" }
|
|
@@ -526,14 +527,14 @@ function _resetForTesting4() {
|
|
|
526
527
|
if (singleton !== null) {
|
|
527
528
|
void singleton.transport.shutdown();
|
|
528
529
|
singleton = null;
|
|
529
|
-
|
|
530
|
+
chunkPM5D6VXF_cjs.setTransport(null);
|
|
530
531
|
}
|
|
531
|
-
|
|
532
|
+
chunkPM5D6VXF_cjs.getEngine().resetForTesting();
|
|
532
533
|
noApiKeyWarningEmitted = false;
|
|
533
534
|
lastLoggedEndpoint = null;
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
535
|
+
chunkPM5D6VXF_cjs.setSource(null);
|
|
536
|
+
chunkPM5D6VXF_cjs._resetForTesting2();
|
|
537
|
+
chunkPM5D6VXF_cjs._resetForTesting();
|
|
537
538
|
_resetQuotaStateForTesting();
|
|
538
539
|
transportFactory = (opts) => new BatchTransport(opts);
|
|
539
540
|
}
|
|
@@ -541,59 +542,59 @@ function _setTransportFactoryForTesting(factory) {
|
|
|
541
542
|
transportFactory = factory;
|
|
542
543
|
}
|
|
543
544
|
function _getLastTraceForTesting() {
|
|
544
|
-
return
|
|
545
|
+
return chunkPM5D6VXF_cjs.getLastTrace();
|
|
545
546
|
}
|
|
546
547
|
function _getActiveTraceStateForTesting() {
|
|
547
|
-
return
|
|
548
|
+
return chunkPM5D6VXF_cjs.getActiveTraceState();
|
|
548
549
|
}
|
|
549
550
|
|
|
550
551
|
Object.defineProperty(exports, "MAX_SEGMENT_CONTENT_BYTES", {
|
|
551
552
|
enumerable: true,
|
|
552
|
-
get: function () { return
|
|
553
|
+
get: function () { return chunkVSG4EWNL_cjs.MAX_SEGMENT_CONTENT_BYTES; }
|
|
553
554
|
});
|
|
554
555
|
Object.defineProperty(exports, "extractAnthropicSegments", {
|
|
555
556
|
enumerable: true,
|
|
556
|
-
get: function () { return
|
|
557
|
+
get: function () { return chunkVSG4EWNL_cjs.extractAnthropicSegments; }
|
|
557
558
|
});
|
|
558
559
|
Object.defineProperty(exports, "instrumentAnthropic", {
|
|
559
560
|
enumerable: true,
|
|
560
|
-
get: function () { return
|
|
561
|
+
get: function () { return chunkVSG4EWNL_cjs.instrumentAnthropic; }
|
|
561
562
|
});
|
|
562
563
|
Object.defineProperty(exports, "isAnthropicWrapped", {
|
|
563
564
|
enumerable: true,
|
|
564
|
-
get: function () { return
|
|
565
|
+
get: function () { return chunkVSG4EWNL_cjs.isAnthropicWrapped; }
|
|
565
566
|
});
|
|
566
567
|
Object.defineProperty(exports, "uninstallAnthropic", {
|
|
567
568
|
enumerable: true,
|
|
568
|
-
get: function () { return
|
|
569
|
+
get: function () { return chunkVSG4EWNL_cjs.uninstallAnthropic; }
|
|
569
570
|
});
|
|
570
571
|
Object.defineProperty(exports, "wrapAnthropic", {
|
|
571
572
|
enumerable: true,
|
|
572
|
-
get: function () { return
|
|
573
|
+
get: function () { return chunkVSG4EWNL_cjs.wrapAnthropic; }
|
|
573
574
|
});
|
|
574
575
|
Object.defineProperty(exports, "log", {
|
|
575
576
|
enumerable: true,
|
|
576
|
-
get: function () { return
|
|
577
|
+
get: function () { return chunkQCI2ZDQS_cjs.log; }
|
|
577
578
|
});
|
|
578
579
|
Object.defineProperty(exports, "W3C_TRACEPARENT_HEADER", {
|
|
579
580
|
enumerable: true,
|
|
580
|
-
get: function () { return
|
|
581
|
+
get: function () { return chunkPM5D6VXF_cjs.W3C_TRACEPARENT_HEADER; }
|
|
581
582
|
});
|
|
582
583
|
Object.defineProperty(exports, "extractTraceparent", {
|
|
583
584
|
enumerable: true,
|
|
584
|
-
get: function () { return
|
|
585
|
+
get: function () { return chunkPM5D6VXF_cjs.extractTraceparent; }
|
|
585
586
|
});
|
|
586
587
|
Object.defineProperty(exports, "formatTraceparent", {
|
|
587
588
|
enumerable: true,
|
|
588
|
-
get: function () { return
|
|
589
|
+
get: function () { return chunkPM5D6VXF_cjs.formatTraceparent; }
|
|
589
590
|
});
|
|
590
591
|
Object.defineProperty(exports, "injectIntoRequestInit", {
|
|
591
592
|
enumerable: true,
|
|
592
|
-
get: function () { return
|
|
593
|
+
get: function () { return chunkPM5D6VXF_cjs.injectIntoRequestInit; }
|
|
593
594
|
});
|
|
594
595
|
Object.defineProperty(exports, "injectTraceparent", {
|
|
595
596
|
enumerable: true,
|
|
596
|
-
get: function () { return
|
|
597
|
+
get: function () { return chunkPM5D6VXF_cjs.injectTraceparent; }
|
|
597
598
|
});
|
|
598
599
|
exports._getActiveTraceStateForTesting = _getActiveTraceStateForTesting;
|
|
599
600
|
exports._getLastTraceForTesting = _getLastTraceForTesting;
|