@jeffusion/bungee-core 5.19.0 → 5.21.0

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.
Files changed (41) hide show
  1. package/dist/config-worker/private-transport.d.ts +2 -0
  2. package/dist/data-admission/errors.d.ts +6 -1
  3. package/dist/gateway/contracts.d.ts +16 -3
  4. package/dist/gateway/forward-plugin.d.ts +2 -0
  5. package/dist/gateway/plugin.js +12 -2
  6. package/dist/gateway/request-plugin.d.ts +6 -0
  7. package/dist/gateway/responses-websocket-session.d.ts +18 -0
  8. package/dist/gateway/runtime.d.ts +1 -0
  9. package/dist/gateway/websocket-contracts.d.ts +1 -0
  10. package/dist/hooks/plugin-hooks.d.ts +2 -0
  11. package/dist/logger/access-log-writer.d.ts +2 -2
  12. package/dist/main.js +1234 -191
  13. package/dist/plugins/ai-transformer/index.js +11 -1
  14. package/dist/plugins/ai-transformer/index.js.map +5 -3
  15. package/dist/plugins/codex-router/control.js +677 -2
  16. package/dist/plugins/codex-router/control.js.map +19 -4
  17. package/dist/plugins/codex-router/index.js +4123 -33
  18. package/dist/plugins/codex-router/index.js.map +25 -7
  19. package/dist/plugins/codex-router/manifest.json +139 -9
  20. package/dist/plugins/key-access/index.js +12 -2
  21. package/dist/plugins/key-access/index.js.map +3 -3
  22. package/dist/plugins/key-access/ingress.js +12 -2
  23. package/dist/plugins/key-access/ingress.js.map +3 -3
  24. package/dist/plugins/openai-messages-to-chat/index.js +693 -543
  25. package/dist/plugins/openai-messages-to-chat/index.js.map +8 -4
  26. package/dist/plugins/token-metering/index.js +652 -71
  27. package/dist/plugins/token-metering/index.js.map +5 -3
  28. package/dist/plugins/token-stats/manifest.json +16 -6
  29. package/dist/plugins/token-stats/ui/ClientModelPicker.svelte +13 -61
  30. package/dist/plugins/token-stats/ui/PriceModelPicker.svelte +18 -74
  31. package/dist/plugins/token-stats/ui/TokenStatsSettings.svelte +3 -2
  32. package/dist/plugins/token-stats/ui/model-search.ts +2 -45
  33. package/dist/plugins/token-stats/ui/pricing-catalog.ts +2 -1
  34. package/dist/scoped-plugin-registry.d.ts +11 -2
  35. package/dist/websocket/index.d.ts +1 -1
  36. package/dist/websocket/transport.d.ts +40 -18
  37. package/package.json +2 -2
  38. package/dist/plugins/chatgpt-oauth/ui/account-model.test.js +0 -69
  39. package/dist/plugins/local-accounts/ui/login-errors.test.ts +0 -22
  40. package/dist/plugins/token-stats/ui/client-model-search.test.ts +0 -58
  41. package/dist/plugins/token-stats/ui/pricing-catalog.test.ts +0 -114
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/plugin-logger.ts", "../../../src/hooks/impl.ts", "../../../src/plugin.types.ts", "../../../src/plugins/sse-envelope.ts", "../../../src/plugin-extensions.ts", "../../../src/plugin-durable-state.ts", "../../../src/plugin-services/host-rpc.ts", "../../../src/plugin-services/wire-contract.ts", "../../../src/plugin-services/rpc-runtime.ts", "../../../src/plugin-services/peer-channel-protocol.ts", "../../../src/plugin-services/peer-channel-hub.ts", "../../../src/plugin-services/snapshot-store.ts", "../../../src/plugin-services.ts", "../../../src/gateway/retry-action.ts", "../../../src/token-stats-window.ts", "../../../../llms/src/protocol-converters/utils.ts", "../../../../llms/src/protocol-converters/registry.ts", "../../../../llms/src/protocol-converters/anthropic-to-gemini.converter.ts", "../../../../llms/src/providers/openai/protocol-conversion.ts", "../../../../llms/src/protocol-converters/anthropic-to-openai.converter.ts", "../../../../llms/src/protocol-converters/gemini-to-anthropic.converter.ts", "../../../../llms/src/protocol-converters/gemini-to-openai.converter.ts", "../../../../llms/src/providers/openai-anthropic/request-conversion.ts", "../../../../llms/src/providers/anthropic/anthropic-adapter.ts", "../../../../llms/src/core/registry.ts", "../../../../llms/src/core/conversion-service.ts", "../../../../llms/src/providers/provider-catalog.ts", "../../../../llms/src/runtime/llms-runtime.ts", "../../../../llms/src/providers/openai/openai-adapter.ts", "../../../../llms/src/protocol-converters/openai-to-anthropic.converter.ts", "../../../../llms/src/protocol-converters/openai-to-gemini.converter.ts", "../../../../llms/src/protocol-converters/default-registry.ts", "../../../../llms/src/providers/openai/messages-compat-normalization.ts", "../../../../../node_modules/base64-js/index.js", "../../../../../node_modules/js-tiktoken/dist/chunk-VL2OQCWN.js", "../../../../../node_modules/js-tiktoken/dist/index.js", "../../../../llms/src/token-accounting/helpers.ts", "../../../../llms/src/token-accounting/capabilities.ts", "../../../../llms/src/token-accounting/session.ts", "../../../../../plugins/ai-transformer/server/index.ts"],
3
+ "sources": ["../../../src/plugin-logger.ts", "../../../src/hooks/impl.ts", "../../../src/plugin.types.ts", "../../../src/plugins/sse-envelope.ts", "../../../src/plugin-extensions.ts", "../../../src/plugin-durable-state.ts", "../../../src/plugin-services/host-rpc.ts", "../../../src/plugin-services/wire-contract.ts", "../../../src/plugin-services/rpc-runtime.ts", "../../../src/plugin-services/peer-channel-protocol.ts", "../../../src/plugin-services/peer-channel-hub.ts", "../../../src/plugin-services/snapshot-store.ts", "../../../src/plugin-services.ts", "../../../src/gateway/retry-action.ts", "../../../src/token-stats-window.ts", "../../../../llms/src/protocol-converters/utils.ts", "../../../../llms/src/protocol-converters/registry.ts", "../../../../llms/src/protocol-converters/anthropic-to-gemini.converter.ts", "../../../../llms/src/providers/openai/protocol-conversion.ts", "../../../../llms/src/protocol-converters/anthropic-to-openai.converter.ts", "../../../../llms/src/protocol-converters/gemini-to-anthropic.converter.ts", "../../../../llms/src/protocol-converters/gemini-to-openai.converter.ts", "../../../../llms/src/providers/openai-anthropic/request-conversion.ts", "../../../../llms/src/providers/anthropic/anthropic-adapter.ts", "../../../../llms/src/core/registry.ts", "../../../../llms/src/core/conversion-service.ts", "../../../../llms/src/providers/provider-catalog.ts", "../../../../llms/src/runtime/llms-runtime.ts", "../../../../llms/src/providers/openai/openai-adapter.ts", "../../../../llms/src/protocol-converters/openai-to-anthropic.converter.ts", "../../../../llms/src/protocol-converters/openai-to-gemini.converter.ts", "../../../../llms/src/protocol-converters/default-registry.ts", "../../../../llms/src/providers/openai/messages-compat-normalization.ts", "../../../../../node_modules/base64-js/index.js", "../../../../../node_modules/js-tiktoken/dist/chunk-VL2OQCWN.js", "../../../../../node_modules/js-tiktoken/dist/index.js", "../../../../llms/src/token-accounting/helpers.ts", "../../../../llms/src/token-accounting/capabilities.ts", "../../../../llms/src/token-accounting/session.ts", "../../../../llms/src/responses-codec/common.ts", "../../../../llms/src/responses-codec/request.ts", "../../../../../plugins/ai-transformer/server/index.ts"],
4
4
  "sourcesContent": [
5
5
  "/** Shared process sink; the public SDK must not bundle file transports into plugins. */\ntype Context = Readonly<Record<string, unknown>>;\ntype LogMethod = { (context: Context, message?: string): void; (message: string): void };\nexport interface PluginLogSink {\n info: LogMethod; warn: LogMethod; error: LogMethod; debug: LogMethod; fatal: LogMethod;\n child(bindings: Context): PluginLogSink;\n}\nconst sinkKey = Symbol.for('@jeffusion/bungee/plugin-log-sink');\nexport function installPluginLogSink(sink: PluginLogSink): void {\n (globalThis as Record<symbol, unknown>)[sinkKey] = sink;\n}\nfunction createLogger(bindings: Context = {}): PluginLogSink {\n const method = (level: 'info' | 'warn' | 'error' | 'debug' | 'fatal'): LogMethod =>\n (value: Context | string, message?: string) => {\n const sink = (globalThis as Record<symbol, unknown>)[sinkKey] as PluginLogSink | undefined;\n if (sink) {\n if (typeof value === 'string') sink[level](bindings, value);\n else sink[level]({...bindings, ...value}, message);\n } else if (level !== 'debug' || process.env.LOG_LEVEL === 'debug') {\n const write = level === 'fatal' ? console.error : console[level];\n write(message ?? (typeof value === 'string' ? value : ''), typeof value === 'string' ? bindings : {...bindings, ...value});\n }\n };\n return {info: method('info'), warn: method('warn'), error: method('error'), debug: method('debug'),\n fatal: method('fatal'), child: extra => createLogger({...bindings, ...extra})};\n}\nexport const logger = createLogger();\n",
6
6
  "/**\n * Hook 实现类\n *\n * 提供 4 种 Hook 类型的实现:\n * - AsyncParallelHook: 异步并行执行\n * - AsyncSeriesHook: 异步串行执行\n * - AsyncSeriesBailHook: 异步串行可中断\n * - AsyncSeriesWaterfallHook: 异步串行瀑布\n */\n\nimport { logger } from '../plugin-logger';\n/** Host-supplied view refresh, run between every waterfall tap. */\nexport const WATERFALL_VIEW_TRANSFORM = Symbol('waterfall-view-transform');\nimport type {\n TapInfo,\n Tap,\n IAsyncParallelHook,\n IAsyncSeriesHook,\n IAsyncSeriesBailHook,\n IAsyncSeriesWaterfallHook,\n IAsyncSeriesMapHook,\n HookStats,\n} from './types';\n\n/**\n * 标准化 TapInfo\n */\nfunction normalizeTapInfo(info: TapInfo | string): TapInfo {\n if (typeof info === 'string') {\n return { name: info, stage: 0 };\n }\n return { ...info, stage: info.stage ?? 0 };\n}\n\n/**\n * 基础 Hook 类\n */\nabstract class BaseHook<T extends any[]> {\n protected taps: Tap<T, any>[] = [];\n protected name: string;\n protected callCount = 0;\n protected totalTimeMs = 0;\n\n constructor(name?: string) {\n this.name = name ?? 'anonymous';\n }\n\n /**\n * 同步注册\n */\n tap(info: TapInfo | string, fn: (...args: T) => any): void {\n const tapInfo = normalizeTapInfo(info);\n this.taps.push({ info: tapInfo, type: 'sync', fn });\n this.sortTaps();\n }\n\n /**\n * 异步回调风格注册\n */\n tapAsync(info: TapInfo | string, fn: (...args: any[]) => void): void {\n const tapInfo = normalizeTapInfo(info);\n this.taps.push({ info: tapInfo, type: 'async', fn });\n this.sortTaps();\n }\n\n /**\n * Promise 风格注册\n */\n tapPromise(info: TapInfo | string, fn: (...args: T) => Promise<any>): void {\n const tapInfo = normalizeTapInfo(info);\n this.taps.push({ info: tapInfo, type: 'promise', fn });\n this.sortTaps();\n }\n\n /**\n * 检查是否有注册的回调\n */\n hasCallbacks(): boolean {\n return this.taps.length > 0;\n }\n\n /**\n * 获取统计信息\n */\n getStats(): HookStats {\n return {\n name: this.name,\n tapCount: this.taps.length,\n callCount: this.callCount,\n totalTimeMs: this.totalTimeMs,\n avgTimeMs: this.callCount > 0 ? this.totalTimeMs / this.callCount : 0,\n };\n }\n\n /**\n * 重置统计信息\n */\n resetStats(): void {\n this.callCount = 0;\n this.totalTimeMs = 0;\n }\n\n /**\n * 清空所有注册的回调\n */\n clear(): void {\n this.taps = [];\n }\n\n /**\n * 按 stage 排序(稳定排序)\n */\n private sortTaps(): void {\n this.taps.sort((a, b) => (a.info.stage ?? 0) - (b.info.stage ?? 0));\n }\n\n /**\n * 执行单个 tap\n */\n protected async executeTap<R>(\n tap: Tap<T, R>,\n args: T\n ): Promise<R | undefined> {\n try {\n if (tap.type === 'sync') {\n return tap.fn(...args);\n } else if (tap.type === 'promise') {\n return await tap.fn(...args);\n } else {\n // async (callback style)\n return await new Promise<R | undefined>((resolve, reject) => {\n const done = (err?: Error, result?: R) => {\n if (err) reject(err);\n else resolve(result);\n };\n tap.fn(...args, done);\n });\n }\n } catch (error) {\n logger.error(\n { error, hookName: this.name, pluginName: tap.info.name },\n 'Error in hook callback'\n );\n throw error;\n }\n }\n}\n\n/** Synchronous providers use the same registration, ordering and statistics as async hooks. */\nexport class SyncBailHook<T extends any[] = [], R = unknown> extends BaseHook<T> {\n override tapAsync(): never { throw new Error('synchronous provider requires tap'); }\n override tapPromise(): never { throw new Error('synchronous provider requires tap'); }\n call(...args: T): R | undefined {\n const started = performance.now();\n this.callCount++;\n try {\n for (const tap of this.taps) {\n const result = tap.fn(...args);\n if (result && typeof result.then === 'function') throw new Error('synchronous provider returned a Promise');\n if (result !== undefined) return result as R;\n }\n return undefined;\n } finally { this.totalTimeMs += performance.now() - started; }\n }\n}\n\n/**\n * 异步并行 Hook\n * 所有回调并行执行,全部完成后返回\n */\nexport class AsyncParallelHook<T extends any[] = []>\n extends BaseHook<T>\n implements IAsyncParallelHook<T>\n{\n async promise(...args: T): Promise<void> {\n if (this.taps.length === 0) return;\n\n const startTime = performance.now();\n this.callCount++;\n\n try {\n // 并行执行所有回调,错误独立处理不影响其他\n await Promise.all(\n this.taps.map(async (tap) => {\n try {\n await this.executeTap(tap, args);\n } catch (error) {\n // 并行 Hook 中单个回调的错误不应影响其他回调\n logger.error(\n { error, hookName: this.name, pluginName: tap.info.name },\n 'Error in parallel hook callback (ignored)'\n );\n }\n })\n );\n } finally {\n this.totalTimeMs += performance.now() - startTime;\n }\n }\n}\n\n/**\n * 异步串行 Hook\n * 所有回调按顺序串行执行\n */\nexport class AsyncSeriesHook<T extends any[] = []>\n extends BaseHook<T>\n implements IAsyncSeriesHook<T>\n{\n async promise(...args: T): Promise<void> {\n if (this.taps.length === 0) return;\n\n const startTime = performance.now();\n this.callCount++;\n\n try {\n for (const tap of this.taps) {\n await this.executeTap(tap, args);\n }\n } finally {\n this.totalTimeMs += performance.now() - startTime;\n }\n }\n}\n\n/**\n * 异步串行可中断 Hook\n * 任意回调返回非 undefined 值则停止执行并返回该值\n */\nexport class AsyncSeriesBailHook<T extends any[] = [], R = any>\n extends BaseHook<T>\n implements IAsyncSeriesBailHook<T, R>\n{\n async promise(...args: T): Promise<R | undefined> {\n if (this.taps.length === 0) return undefined;\n\n const startTime = performance.now();\n this.callCount++;\n\n try {\n for (const tap of this.taps) {\n const result = await this.executeTap<R>(tap, args);\n if (result !== undefined) {\n logger.debug(\n { hookName: this.name, pluginName: tap.info.name },\n 'Hook bailed with result'\n );\n return result;\n }\n }\n return undefined;\n } finally {\n this.totalTimeMs += performance.now() - startTime;\n }\n }\n}\n\n/**\n * 异步串行瀑布 Hook\n * 每个回调的返回值作为下一个回调的第一个参数\n */\nexport class AsyncSeriesWaterfallHook<T, A extends any[] = []>\n extends BaseHook<[T, ...A]>\n implements IAsyncSeriesWaterfallHook<T, A>\n{\n async promise(value: T, ...args: A): Promise<T> {\n if (this.taps.length === 0) return value;\n\n const startTime = performance.now();\n this.callCount++;\n\n try {\n let current = value;\n for (const tap of this.taps) {\n const result = await this.executeTap<T>(tap, [current, ...args] as [T, ...A]);\n // 只有返回非 undefined 时才更新值\n if (result !== undefined) {\n const transform = args[0]?.[WATERFALL_VIEW_TRANSFORM];\n current = typeof transform === 'function' ? await transform(result,current) : result;\n }\n }\n return current;\n } finally {\n this.totalTimeMs += performance.now() - startTime;\n }\n }\n}\n\n/**\n * 异步串行映射 Hook\n * 支持 N:M 转换:每个回调处理输入,可以返回 0 到多个输出\n *\n * 执行流程:\n * 1. 初始输入:单个 chunk\n * 2. 每个插件处理当前的所有 chunks,返回新的 chunks 数组\n * 3. 下一个插件处理上一步的所有输出\n *\n * 返回值约定:\n * - null/undefined: 不处理,原样输出当前 chunk\n * - []: 缓冲当前 chunk,不输出(N:0)\n * - [chunk]: 1:1 转换\n * - [chunk1, chunk2, ...]: 1:M 拆分\n *\n * 性能优化:\n * - 同步优先执行:sync tap 直接同步调用,跳过 Promise 开销\n * - 适用于流式响应处理等高频调用场景\n */\nexport class AsyncSeriesMapHook<T, A extends any[] = []>\n extends BaseHook<[T, ...A]>\n implements IAsyncSeriesMapHook<T, A>\n{\n /**\n * 同步执行单个 tap(跳过 Promise 开销)\n */\n private executeTapSync<R>(tap: Tap<[T, ...A], R>, args: [T, ...A]): R | undefined {\n try {\n return tap.fn(...args);\n } catch (error) {\n logger.error(\n { error, hookName: this.name, pluginName: tap.info.name },\n 'Error in hook callback'\n );\n throw error;\n }\n }\n\n async promise(value: T, ...args: A): Promise<T[]> {\n // 如果没有注册任何回调,直接返回原始值\n if (this.taps.length === 0) return [value];\n\n const startTime = performance.now();\n this.callCount++;\n\n try {\n // 初始输入为单个 chunk\n let chunks: T[] = [value];\n\n // 依次应用每个插件的转换\n for (const tap of this.taps) {\n const newChunks: T[] = [];\n\n // 对当前的每个 chunk 应用转换\n for (const chunk of chunks) {\n try {\n // 同步优先执行:sync tap 直接同步调用,跳过 Promise 开销\n const result = tap.type === 'sync'\n ? this.executeTapSync<T[] | null | undefined>(tap, [chunk, ...args] as [T, ...A])\n : await this.executeTap<T[] | null | undefined>(tap, [chunk, ...args] as [T, ...A]);\n\n if (result === null || result === undefined) {\n // 不处理,原样输出\n newChunks.push(chunk);\n } else if (Array.isArray(result)) {\n // N:M 转换\n // [] = 缓冲(不输出)\n // [item] = 1:1 转换\n // [item1, item2, ...] = 1:M 拆分\n newChunks.push(...result);\n } else {\n // 非法返回值,警告并原样输出\n logger.warn(\n { hookName: this.name, pluginName: tap.info.name, result },\n 'AsyncSeriesMapHook callback must return an array or null'\n );\n newChunks.push(chunk);\n }\n } catch (error) {\n // 单个 chunk 处理失败,记录错误并原样输出\n logger.error(\n { error, hookName: this.name, pluginName: tap.info.name },\n 'Error in AsyncSeriesMapHook callback'\n );\n if ((args[0] as { strict?: boolean } | undefined)?.strict) {\n throw error;\n }\n newChunks.push(chunk);\n }\n }\n\n chunks = newChunks;\n }\n\n return chunks;\n } finally {\n this.totalTimeMs += performance.now() - startTime;\n }\n }\n}\n",
@@ -41,9 +41,11 @@
41
41
  "import type {\n CanonicalTokenAccountingEventV2,\n TokenAccountingAuthority,\n TokenAccountingOutcome,\n TokenAccountingSessionState\n} from './types';\nimport { TOKEN_ACCOUNTING_AUTHORITIES } from './types';\nimport { getEncoding, type Tiktoken } from 'js-tiktoken';\n\ntype JsonRecord = Record<string, unknown>;\n\ntype EncodingType = 'cl100k_base' | 'o200k_base';\n\nconst MODEL_ENCODING_MAP: Record<string, EncodingType> = {\n 'gpt-4o': 'o200k_base',\n 'gpt-4o-mini': 'o200k_base',\n 'gpt-4.1': 'o200k_base',\n 'gpt-4.1-mini': 'o200k_base',\n 'gpt-4.1-nano': 'o200k_base',\n 'o1': 'o200k_base',\n 'o1-mini': 'o200k_base',\n 'o1-preview': 'o200k_base',\n 'o3': 'o200k_base',\n 'o3-mini': 'o200k_base',\n 'gpt-4': 'cl100k_base',\n 'gpt-4-turbo': 'cl100k_base',\n 'gpt-4-32k': 'cl100k_base',\n 'gpt-3.5-turbo': 'cl100k_base',\n 'gpt-3.5': 'cl100k_base',\n claude: 'cl100k_base',\n 'claude-3': 'cl100k_base',\n 'claude-3.5': 'cl100k_base',\n gemini: 'cl100k_base',\n 'gemini-1.5': 'cl100k_base',\n 'gemini-2.0': 'cl100k_base',\n 'gemini-2.5': 'cl100k_base'\n};\n\nconst encodingCache = new Map<EncodingType, Tiktoken>();\n\nconst CANONICAL_EVENT_KEYS = new Set([\n 'requestId',\n 'attemptId',\n 'routeId',\n 'upstreamId',\n 'provider',\n 'model',\n 'streaming',\n 'inputTokens',\n 'outputTokens',\n 'cacheReadTokens',\n 'cacheWriteTokens',\n 'inputAuthority',\n 'outputAuthority',\n 'final',\n 'outcome',\n 'countedAt'\n]);\n\nexport function isRecord(value: unknown): value is JsonRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nexport function asString(value: unknown): string | undefined {\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nexport function asFiniteNumber(value: unknown): number | undefined {\n return typeof value === 'number' && Number.isFinite(value) ? value : undefined;\n}\n\nexport function readNumber(record: JsonRecord | undefined, key: string): number | undefined {\n if (!record) {\n return undefined;\n }\n\n const value = record[key];\n return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0 ? value : undefined;\n}\n\nexport function readRecord(record: JsonRecord | undefined, key: string): JsonRecord | undefined {\n if (!record) {\n return undefined;\n }\n\n const value = record[key];\n return isRecord(value) ? value : undefined;\n}\n\nexport function countTextTokens(text: string): number {\n if (!text) {\n return 0;\n }\n\n return Math.max(1, Math.ceil(text.length / 4));\n}\n\nfunction getEncodingForModel(model: string): EncodingType {\n const normalizedModel = model.trim().toLowerCase();\n if (MODEL_ENCODING_MAP[normalizedModel]) {\n return MODEL_ENCODING_MAP[normalizedModel];\n }\n\n for (const [prefix, encoding] of Object.entries(MODEL_ENCODING_MAP)) {\n if (normalizedModel.startsWith(prefix)) {\n return encoding;\n }\n }\n\n return 'cl100k_base';\n}\n\nfunction getEncodingCached(type: EncodingType): Tiktoken {\n let encoding = encodingCache.get(type);\n if (!encoding) {\n encoding = getEncoding(type);\n encodingCache.set(type, encoding);\n }\n\n return encoding;\n}\n\nexport function countModelTextTokens(text: string, model?: string): number {\n if (!text) {\n return 0;\n }\n\n if (!model) {\n return countTextTokens(text);\n }\n\n try {\n const encoding = getEncodingCached(getEncodingForModel(model));\n return encoding.encode(text).length;\n } catch {\n return countTextTokens(text);\n }\n}\n\nexport function countJsonLikeTokens(value: unknown): number {\n if (typeof value === 'string') {\n return countTextTokens(value);\n }\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n return 1;\n }\n\n if (value === null || value === undefined) {\n return 0;\n }\n\n if (Array.isArray(value)) {\n return value.reduce((sum, entry) => sum + countJsonLikeTokens(entry), 0);\n }\n\n if (isRecord(value)) {\n return Object.entries(value).reduce((sum, [key, entry]) => {\n return sum + countTextTokens(key) + countJsonLikeTokens(entry);\n }, 0);\n }\n\n return countTextTokens(String(value));\n}\n\nexport function clampTokens(value: number | undefined): number | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n return Number.isFinite(value) ? Math.min(Number.MAX_SAFE_INTEGER, Math.max(0, Math.floor(value))) : undefined;\n}\n\nexport function buildBaseEvent(\n state: TokenAccountingSessionState,\n overrides: Partial<CanonicalTokenAccountingEventV2>\n): CanonicalTokenAccountingEventV2 {\n return {\n requestId: state.requestId,\n attemptId: state.attemptId,\n routeId: state.routeId,\n upstreamId: state.upstreamId,\n provider: state.provider,\n model: state.model ?? 'unknown',\n streaming: state.streaming,\n inputAuthority: 'none',\n outputAuthority: 'none',\n final: false,\n outcome: 'completed',\n countedAt: new Date().toISOString(),\n ...overrides\n };\n}\n\nexport function createPartialTokenAccountingEvent(\n state: TokenAccountingSessionState,\n overrides: Partial<CanonicalTokenAccountingEventV2> = {}\n): CanonicalTokenAccountingEventV2 {\n return buildBaseEvent(state, {\n final: false,\n outcome: 'completed',\n ...overrides\n });\n}\n\nexport function finalizeTokenAccountingEvent(\n state: TokenAccountingSessionState,\n overrides: Partial<CanonicalTokenAccountingEventV2> = {},\n outcome: TokenAccountingOutcome = 'completed'\n): CanonicalTokenAccountingEventV2 {\n const isCompleted = outcome === 'completed';\n return buildBaseEvent(state, {\n final: isCompleted,\n outcome,\n ...overrides\n });\n}\n\nexport function assertCanonicalTokenAccountingEventV2(\n event: unknown\n): asserts event is CanonicalTokenAccountingEventV2 {\n if (!isRecord(event)) {\n throw new Error('Canonical token accounting event must be an object.');\n }\n\n for (const key of Object.keys(event)) {\n if (!CANONICAL_EVENT_KEYS.has(key)) {\n throw new Error(`Unexpected aggregate or legacy token accounting field: ${key}`);\n }\n }\n\n for (const key of ['requestId', 'attemptId', 'routeId', 'upstreamId', 'provider', 'model', 'countedAt']) {\n if (typeof event[key] !== 'string' || event[key].length === 0) {\n throw new Error(`Canonical token accounting event requires non-empty string field: ${key}`);\n }\n }\n\n if (typeof event.streaming !== 'boolean') {\n throw new Error('Canonical token accounting event requires boolean field: streaming');\n }\n\n if (typeof event.final !== 'boolean') {\n throw new Error('Canonical token accounting event requires boolean field: final');\n }\n\n if (event.outcome !== 'completed' && event.outcome !== 'aborted' && event.outcome !== 'failed') {\n throw new Error('Canonical token accounting event requires outcome completed|aborted|failed.');\n }\n\n if (event.final && event.outcome === 'aborted') {\n throw new Error('Aborted token accounting events must not be final.');\n }\n\n if (!TOKEN_ACCOUNTING_AUTHORITIES.includes(event.inputAuthority as TokenAccountingAuthority)) {\n throw new Error('Canonical token accounting event has invalid inputAuthority.');\n }\n\n if (!TOKEN_ACCOUNTING_AUTHORITIES.includes(event.outputAuthority as TokenAccountingAuthority)) {\n throw new Error('Canonical token accounting event has invalid outputAuthority.');\n }\n\n for (const key of ['inputTokens', 'outputTokens', 'cacheReadTokens', 'cacheWriteTokens'] as const) {\n if (event[key] !== undefined && !(typeof event[key] === 'number' && Number.isSafeInteger(event[key]) && event[key] >= 0)) {\n throw new Error(`Canonical token accounting event has invalid numeric field: ${key}`);\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(event, 'source')) {\n throw new Error('Legacy source/hybrid semantics are not allowed in canonical token accounting events.');\n }\n\n if (Object.prototype.hasOwnProperty.call(event, 'logicalRequests') || Object.prototype.hasOwnProperty.call(event, 'upstreamAttempts')) {\n throw new Error('Plugin aggregate fields logicalRequests/upstreamAttempts must not appear on single llms events.');\n }\n\n if (event.inputAuthority === 'official') {\n if (!(typeof event.inputTokens === 'number' && Number.isSafeInteger(event.inputTokens) && event.inputTokens >= 0)) {\n throw new Error('Official inputAuthority requires inputTokens.');\n }\n\n }\n\n if (event.outputAuthority === 'official' && !(typeof event.outputTokens === 'number' && Number.isSafeInteger(event.outputTokens) && event.outputTokens >= 0)) {\n throw new Error('Official outputAuthority requires outputTokens.');\n }\n}\n",
42
42
  "import type { LLMProvider } from '../core/types';\nimport type {\n ProviderTokenAccountingCapabilities,\n ProviderTokenAccountingCapabilityMatrix,\n SupportedTokenAccountingProvider\n} from './types';\n\nexport const PROVIDER_TOKEN_ACCOUNTING_CAPABILITY_MATRIX = {\n openai: {\n provider: 'openai',\n supportsOfficialResponseUsage: true,\n supportsStreamingResponseUsage: true,\n supportsDedicatedCountEndpoint: true,\n supportsLocalTokenizer: true,\n supportsHeuristicFallback: true,\n dedicatedCountEndpoint: {\n supported: true,\n mode: 'input_estimate_only',\n defaultEnabled: false,\n endpoint: '/responses/input_tokens',\n livePathAuthority: false\n }\n },\n anthropic: {\n provider: 'anthropic',\n supportsOfficialResponseUsage: true,\n supportsStreamingResponseUsage: true,\n supportsDedicatedCountEndpoint: true,\n supportsLocalTokenizer: true,\n supportsHeuristicFallback: true,\n dedicatedCountEndpoint: {\n supported: true,\n mode: 'input_estimate_only',\n livePathAuthority: false,\n endpoint: '/v1/messages/count_tokens'\n }\n },\n gemini: {\n provider: 'gemini',\n supportsOfficialResponseUsage: true,\n supportsStreamingResponseUsage: true,\n supportsDedicatedCountEndpoint: true,\n supportsLocalTokenizer: true,\n supportsHeuristicFallback: true,\n countTokens: {\n supported: true,\n mode: 'input_estimate_only',\n livePathAuthority: false\n }\n }\n} as const satisfies ProviderTokenAccountingCapabilityMatrix;\n\nfunction normalizeProvider(provider: LLMProvider): SupportedTokenAccountingProvider {\n return String(provider).trim().toLowerCase() as SupportedTokenAccountingProvider;\n}\n\nexport function getProviderTokenAccountingCapabilities(provider: LLMProvider): ProviderTokenAccountingCapabilities {\n const capabilities = PROVIDER_TOKEN_ACCOUNTING_CAPABILITY_MATRIX[normalizeProvider(provider)];\n if (!capabilities) {\n throw new Error(`Unsupported token accounting provider: ${provider}`);\n }\n\n return capabilities;\n}\n",
43
43
  "import type { LLMProvider } from '../core/types';\nimport { getProviderTokenAccountingCapabilities } from './capabilities';\nimport {\n asString,\n clampTokens,\n countModelTextTokens,\n countJsonLikeTokens,\n countTextTokens,\n createPartialTokenAccountingEvent,\n finalizeTokenAccountingEvent,\n isRecord,\n readNumber,\n readRecord\n} from './helpers';\nimport type {\n CanonicalTokenAccountingEventV2,\n ProviderTokenAccountingAdapter,\n TokenAccountingSession,\n TokenAccountingSessionInput,\n TokenAccountingSessionState\n} from './types';\n\ntype JsonRecord = Record<string, unknown>;\n\nconst DEFERRED_MEDIA_KEYS = new Set([\n 'image_url', 'imageUrl', 'inline_data', 'inlineData', 'file_data', 'fileData',\n 'file_uri', 'fileUri', 'file_url', 'fileUrl', 'file_id', 'fileId', 'input_audio', 'inputAudio', 'audio_url', 'audioUrl',\n 'input_video', 'inputVideo', 'video_url', 'videoUrl'\n]);\nconst DEFERRED_MEDIA_TYPES = new Set([\n 'image', 'input_image', 'image_url', 'input_audio', 'audio', 'input_video', 'video',\n 'input_file', 'file'\n]);\nconst DEFERRED_METADATA_KEYS = new Set([\n 'model', 'role', 'type', 'status', 'index', 'id', 'mime_type', 'mimeType', 'detail'\n]);\n\n// Keep only bounded output fragments while the proxy is forwarding the stream.\n// Tokenization is deliberately deferred until finalization (one encode per side).\nconst MAX_STREAM_ESTIMATE_CHARS = 64 * 1024;\nconst MAX_STREAM_ESTIMATE_FRAGMENTS = 4096;\nconst MAX_INPUT_ESTIMATE_NODES = 4096;\nconst MAX_DEFERRED_MODEL_CHARS = 256;\ntype StreamEstimateState = TokenAccountingSessionState & {\n estimateFragments?: string[];\n estimateChars?: number;\n estimateTruncated?: boolean;\n requestEstimateTruncated?: boolean;\n deferFinalization?: boolean;\n deferredOutcome?: 'completed' | 'failed';\n estimateMediaSeen?: boolean;\n estimateNodes?: number;\n};\n\nfunction isDeferred(state: TokenAccountingSessionState): boolean {\n return (state as StreamEstimateState).deferFinalization === true;\n}\n\nfunction setSessionModel(state: TokenAccountingSessionState, value: unknown): void {\n const model = asString(value) ?? state.model ?? 'unknown';\n if (isDeferred(state) && model.length > MAX_DEFERRED_MODEL_CHARS) {\n state.model = model.slice(0, MAX_DEFERRED_MODEL_CHARS);\n (state as StreamEstimateState).requestEstimateTruncated = true;\n return;\n }\n state.model = model;\n}\n\nfunction observeOutput(state: TokenAccountingSessionState, value: unknown): void {\n if (state.outputAuthority === 'official') return;\n if (isDeferred(state) && typeof value === 'string' && isMediaDataUri(value)) {\n (state as StreamEstimateState).estimateMediaSeen = true;\n return;\n }\n const text = typeof value === 'string' ? value : JSON.stringify(value);\n if (!text) return;\n const estimateState = state as StreamEstimateState;\n const remaining = MAX_STREAM_ESTIMATE_CHARS - (estimateState.estimateChars ?? 0);\n if (remaining <= 0) {\n estimateState.estimateTruncated = true;\n return;\n }\n if ((estimateState.estimateFragments?.length ?? 0) >= MAX_STREAM_ESTIMATE_FRAGMENTS) {\n estimateState.estimateTruncated = true;\n return;\n }\n const fragment = text.slice(0, remaining);\n (estimateState.estimateFragments ??= []).push(fragment);\n estimateState.estimateChars = (estimateState.estimateChars ?? 0) + fragment.length;\n if (fragment.length < text.length) estimateState.estimateTruncated = true;\n}\n\nfunction observeBoundedOutput(state: TokenAccountingSessionState, value: unknown): void {\n if (state.outputAuthority === 'official') return;\n if (!isDeferred(state)) {\n if (typeof value === 'string') {\n observeOutput(state, value);\n return;\n }\n const bounded = boundedRequestSnapshot({ value });\n if (bounded.truncated) (state as StreamEstimateState).estimateTruncated = true;\n observeOutput(state, bounded.value.value);\n return;\n }\n const estimateState = state as StreamEstimateState;\n const nodesLeft = MAX_INPUT_ESTIMATE_NODES - (estimateState.estimateNodes ?? 0);\n if (nodesLeft < 3) {\n estimateState.estimateTruncated = true;\n return;\n }\n const bounded = typeof value === 'string'\n ? { value: { value: value.slice(0, MAX_STREAM_ESTIMATE_CHARS) }, truncated: value.length > MAX_STREAM_ESTIMATE_CHARS, nodesCopied: 0 }\n : boundedRequestSnapshot({ value }, Math.max(1, Math.floor(nodesLeft / 3)));\n estimateState.estimateNodes = (estimateState.estimateNodes ?? 0) + bounded.nodesCopied * 3;\n const filtered = stripDeferredMedia(bounded.value.value);\n if (bounded.truncated) estimateState.estimateTruncated = true;\n if (filtered.sawMedia) estimateState.estimateMediaSeen = true;\n if (filtered.hasContent) observeOutput(state, filtered.value);\n}\n\nfunction isMediaDataUri(value: string): boolean {\n return /^data:(?:image|audio|video)\\//i.test(value);\n}\n\nfunction stripDeferredMedia(value: unknown, key = ''): { value: unknown; sawMedia: boolean; hasContent: boolean } {\n if (key === 'tools' || key === 'tool_calls' || key === 'tool_use' || key === 'functionCall'\n || key === 'function_call' || key === 'arguments' || key === 'args') {\n return { value, sawMedia: false, hasContent: Array.isArray(value) ? value.length > 0 : value !== null && value !== undefined };\n }\n if (DEFERRED_MEDIA_KEYS.has(key)) return { value: undefined, sawMedia: true, hasContent: false };\n if (typeof value === 'string') {\n const dataUriPattern = /data:(?:image|audio|video)\\/[^\\s\"'<>)}\\]]+/gi;\n const stripped = value.replace(dataUriPattern, '');\n const sawMedia = stripped.length !== value.length;\n return { value: stripped || undefined, sawMedia, hasContent: stripped.length > 0 && !DEFERRED_METADATA_KEYS.has(key) };\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return { value, sawMedia: false, hasContent: !DEFERRED_METADATA_KEYS.has(key) };\n }\n if (Array.isArray(value)) {\n let sawMedia = false;\n let hasContent = false;\n const result: unknown[] = [];\n for (const item of value) {\n const filtered = stripDeferredMedia(item);\n sawMedia ||= filtered.sawMedia;\n hasContent ||= filtered.hasContent;\n if (filtered.value !== undefined) result.push(filtered.value);\n }\n return { value: result, sawMedia, hasContent };\n }\n if (!isRecord(value)) return { value, sawMedia: false, hasContent: false };\n if (asString(value.type) === 'tool_use' || asString(value.type) === 'function_call') return { value, sawMedia: false, hasContent: true };\n if (DEFERRED_MEDIA_TYPES.has(asString(value.type) ?? '')) return { value: undefined, sawMedia: true, hasContent: false };\n const result: JsonRecord = {};\n let sawMedia = false;\n let hasContent = false;\n for (const [childKey, child] of Object.entries(value)) {\n const filtered = stripDeferredMedia(child, childKey);\n sawMedia ||= filtered.sawMedia;\n hasContent ||= filtered.hasContent;\n if (filtered.value !== undefined) result[childKey] = filtered.value;\n }\n return { value: result, sawMedia, hasContent };\n}\n\nfunction clearObservedOutput(state: TokenAccountingSessionState): void {\n const estimateState = state as StreamEstimateState;\n estimateState.estimateFragments = undefined;\n estimateState.estimateChars = undefined;\n estimateState.estimateTruncated = false;\n estimateState.estimateMediaSeen = false;\n estimateState.estimateNodes = 0;\n}\n\nfunction estimatedStreamOutput(state: TokenAccountingSessionState): { tokens?: number; authority: 'local' | 'heuristic' | 'partial' | 'none' } {\n const estimateState = state as StreamEstimateState;\n const estimateChars = estimateState.estimateChars ?? 0;\n if (estimateChars === 0) return { authority: 'none' };\n if (isDeferred(state)) {\n const tokens = clampTokens(countTextTokens('x'.repeat(estimateChars)));\n return tokens === undefined\n ? { authority: 'none' }\n : { tokens, authority: estimateState.estimateTruncated || estimateState.estimateMediaSeen ? 'partial' : 'heuristic' };\n }\n const tokens = clampTokens(countModelTextTokens(estimateState.estimateFragments!.join(''), state.model));\n return tokens === undefined\n ? { authority: 'none' }\n : { tokens, authority: estimateState.estimateTruncated ? 'partial' : 'local' };\n}\n\nfunction finalizeMissingStreamOutput(state: TokenAccountingSessionState, interrupted = false): void {\n if (state.outputAuthority === 'official') return;\n const estimate = estimatedStreamOutput(state);\n state.outputTokens = estimate.tokens;\n state.outputAuthority = interrupted && estimate.tokens !== undefined ? 'partial' : estimate.authority;\n}\n\ntype BoundedRequest = { value: JsonRecord; truncated: boolean; nodesCopied: number };\n\nfunction boundedRequestSnapshot(body: JsonRecord, maxNodes = MAX_INPUT_ESTIMATE_NODES): BoundedRequest {\n let remaining = MAX_STREAM_ESTIMATE_CHARS;\n let nodes = maxNodes;\n let truncated = false;\n const copy = (value: unknown): unknown => {\n if (nodes <= 0 || remaining <= 0) {\n truncated = true;\n return undefined;\n }\n nodes -= 1;\n if (typeof value === 'string') {\n if (value.length > remaining) {\n truncated = true;\n const clipped = value.slice(0, remaining);\n remaining = 0;\n return clipped;\n }\n remaining -= value.length;\n return value;\n }\n if (value === null || typeof value === 'number' || typeof value === 'boolean') return value;\n if (Array.isArray(value)) {\n const result: unknown[] = [];\n for (let index = 0; index < value.length; index += 1) {\n if (nodes <= 0 || remaining <= 0) {\n truncated = true;\n break;\n }\n result.push(copy(value[index]));\n }\n if (result.length < value.length) truncated = true;\n return result;\n }\n if (!isRecord(value)) return undefined;\n const result: JsonRecord = {};\n for (const key in value) {\n if (!Object.prototype.hasOwnProperty.call(value, key)) continue;\n if (nodes <= 0 || remaining <= key.length) {\n truncated = true;\n break;\n }\n remaining -= key.length;\n result[key] = copy(value[key]);\n }\n return result;\n };\n return { value: copy(body) as JsonRecord, truncated, nodesCopied: maxNodes - nodes };\n}\n\nfunction storeRequestForEstimate(state: TokenAccountingSessionState, body: JsonRecord, fields: string[]): void {\n const relevant: JsonRecord = {};\n if (body.model !== undefined) relevant.model = isDeferred(state) && typeof body.model === 'string'\n ? body.model.slice(0, MAX_DEFERRED_MODEL_CHARS)\n : body.model;\n for (const field of fields) {\n if (Object.prototype.hasOwnProperty.call(body, field)) relevant[field] = body[field];\n }\n const bounded = boundedRequestSnapshot(relevant);\n state.requestBody = bounded.value;\n (state as StreamEstimateState).requestEstimateTruncated = bounded.truncated\n || (typeof body.model === 'string' && isDeferred(state) && body.model.length > MAX_DEFERRED_MODEL_CHARS);\n}\n\nfunction estimateMissingInput(state: TokenAccountingSessionState): void {\n if (state.estimatedInputAuthority === 'official') return;\n const requestBody = state.requestBody;\n if (!requestBody) {\n state.estimatedInputTokens = undefined;\n state.estimatedInputAuthority = 'none';\n return;\n }\n const hasInput = state.provider === 'openai'\n ? requestBody.input !== undefined || requestBody.messages !== undefined\n : state.provider === 'anthropic'\n ? requestBody.system !== undefined || requestBody.messages !== undefined\n : requestBody.contents !== undefined || requestBody.systemInstruction !== undefined;\n if (!hasInput) {\n state.estimatedInputTokens = undefined;\n state.estimatedInputAuthority = 'none';\n return;\n }\n const bounded = isDeferred(state)\n ? { value: requestBody, truncated: false }\n : boundedRequestSnapshot(requestBody);\n if (isDeferred(state)) {\n const filtered = stripDeferredMedia(bounded.value);\n const estimateBody = { ...filtered.value as JsonRecord };\n delete estimateBody.model;\n const hasToolSchema = Array.isArray(estimateBody.tools) && estimateBody.tools.length > 0;\n const hasContent = filtered.hasContent || hasToolSchema;\n if (!hasContent) {\n state.estimatedInputTokens = undefined;\n state.estimatedInputAuthority = 'none';\n return;\n }\n state.estimatedInputTokens = clampTokens(countJsonLikeTokens(estimateBody));\n state.estimatedInputAuthority = bounded.truncated\n || (state as StreamEstimateState).requestEstimateTruncated\n || filtered.sawMedia\n ? 'partial'\n : 'heuristic';\n return;\n }\n const estimate = state.provider === 'openai'\n ? estimateOpenAIInputTokens(bounded.value)\n : state.provider === 'anthropic'\n ? estimateAnthropicInputTokens(bounded.value)\n : estimateGeminiInputTokens(bounded.value);\n state.estimatedInputTokens = estimate;\n state.estimatedInputAuthority = bounded.truncated || (state as StreamEstimateState).requestEstimateTruncated ? 'partial' : 'local';\n}\nfunction hasOpenAIOutput(body: JsonRecord): boolean {\n if (Array.isArray(body.output) && body.output.length > 0) return true;\n return Array.isArray(body.choices) && body.choices.some((choice) => {\n if (!isRecord(choice)) return false;\n const message = readRecord(choice, 'message') ?? readRecord(choice, 'delta');\n return !!message && (message.content !== undefined && message.content !== null\n || Array.isArray(message.tool_calls) && message.tool_calls.length > 0);\n });\n}\n\nfunction hasAnthropicOutput(body: JsonRecord): boolean {\n return Array.isArray(body.content) && body.content.length > 0;\n}\n\nfunction observeAnthropicOutput(state: TokenAccountingSessionState, body: JsonRecord): void {\n const blocks = Array.isArray(body.content) ? body.content : [];\n for (let index = 0; index < blocks.length && index < MAX_INPUT_ESTIMATE_NODES; index += 1) {\n observeBoundedOutput(state, blocks[index]);\n }\n if (blocks.length > MAX_INPUT_ESTIMATE_NODES && isDeferred(state)) (state as StreamEstimateState).estimateTruncated = true;\n}\n\nfunction hasGeminiOutput(body: JsonRecord): boolean {\n return Array.isArray(body.candidates) && body.candidates.some((candidate) => {\n const parts = readRecord(candidate, 'content')?.parts;\n return Array.isArray(parts) && parts.length > 0;\n });\n}\n\nfunction isErrorResponse(body: JsonRecord): boolean {\n const status = asString(body.status)?.toLowerCase();\n const type = asString(body.type)?.toLowerCase();\n return body.error !== undefined || status === 'error' || status === 'failed'\n || type === 'error' || type?.endsWith('.error') === true || type?.endsWith('.failed') === true;\n}\n\nfunction isDeferredFailure(body: JsonRecord): boolean {\n const status = asString(body.status)?.toLowerCase();\n const type = asString(body.type)?.toLowerCase();\n return isErrorResponse(body) || status === 'incomplete' || type === 'incomplete' || type?.endsWith('.incomplete') === true;\n}\n\nfunction observeOpenAIOutput(\n state: TokenAccountingSessionState,\n chunk: JsonRecord,\n includeResponseSnapshot = true,\n event?: string\n): void {\n if (state.outputAuthority === 'official') return;\n let nodes = MAX_INPUT_ESTIMATE_NODES;\n const truncated = () => {\n if (isDeferred(state)) (state as StreamEstimateState).estimateTruncated = true;\n };\n const type = event ?? asString(chunk.type);\n if (type === 'response.output_text.delta') {\n if (isDeferred(state)) observeBoundedOutput(state, chunk.delta);\n else observeOutput(state, chunk.delta);\n }\n if (type === 'response.function_call_arguments.delta') {\n if (isDeferred(state)) observeBoundedOutput(state, chunk.delta);\n else observeOutput(state, chunk.delta);\n }\n if (includeResponseSnapshot) {\n const response = readRecord(chunk, 'response');\n const responseOutput = Array.isArray(response?.output) ? response.output : Array.isArray(chunk.output) ? chunk.output : undefined;\n if (responseOutput !== undefined) {\n if (isDeferred(state)) {\n const limit = Math.min(responseOutput.length, nodes);\n for (let index = 0; index < limit; index += 1, nodes -= 1) {\n observeBoundedOutput(state, responseOutput[index]);\n }\n if (responseOutput.length > limit) truncated();\n } else observeOutput(state, responseOutput);\n }\n }\n const choices = Array.isArray(chunk.choices) ? chunk.choices : [];\n const choiceLimit = Math.min(choices.length, nodes);\n for (let index = 0; index < choiceLimit; index += 1, nodes -= 1) {\n const choice = choices[index];\n if (!isRecord(choice)) continue;\n const delta = readRecord(choice, 'delta') ?? (isDeferred(state) ? readRecord(choice, 'message') : undefined);\n if (delta?.content !== undefined) {\n if (isDeferred(state)) observeBoundedOutput(state, delta.content);\n else observeOutput(state, delta.content);\n }\n const calls = Array.isArray(delta?.tool_calls) ? delta.tool_calls : [];\n const callLimit = Math.min(calls.length, nodes);\n for (let callIndex = 0; callIndex < callLimit; callIndex += 1, nodes -= 1) {\n const call = calls[callIndex];\n const fn = readRecord(call, 'function');\n if (fn?.arguments !== undefined) {\n if (isDeferred(state)) observeBoundedOutput(state, fn.arguments);\n else observeOutput(state, fn.arguments);\n }\n }\n if (calls.length > callLimit) truncated();\n }\n if (choices.length > choiceLimit) truncated();\n}\n\nfunction replaceObservedOutput(state: TokenAccountingSessionState): void {\n const estimateState = state as StreamEstimateState;\n estimateState.estimateFragments = [];\n estimateState.estimateChars = 0;\n estimateState.estimateTruncated = false;\n estimateState.estimateMediaSeen = false;\n estimateState.estimateNodes = 0;\n}\n\nfunction observeGeminiOutput(state: TokenAccountingSessionState, chunk: JsonRecord): void {\n let nodes = MAX_INPUT_ESTIMATE_NODES;\n const candidates = Array.isArray(chunk.candidates) ? chunk.candidates : [];\n const candidateLimit = Math.min(candidates.length, nodes);\n for (let candidateIndex = 0; candidateIndex < candidateLimit; candidateIndex += 1, nodes -= 1) {\n const candidate = candidates[candidateIndex];\n const content = readRecord(candidate, 'content');\n const parts = Array.isArray(content?.parts) ? content.parts : [];\n const partLimit = Math.min(parts.length, nodes);\n for (let partIndex = 0; partIndex < partLimit; partIndex += 1, nodes -= 1) {\n const part = parts[partIndex];\n if (!isRecord(part)) continue;\n if (isDeferred(state) && (part.inlineData !== undefined || part.inline_data !== undefined || part.fileData !== undefined || part.file_data !== undefined)) {\n (state as StreamEstimateState).estimateMediaSeen = true;\n }\n if (typeof part.text === 'string') {\n if (isDeferred(state)) observeBoundedOutput(state, part.text);\n else observeOutput(state, part.text);\n }\n if (part.functionCall !== undefined) {\n if (isDeferred(state)) observeBoundedOutput(state, part.functionCall);\n else observeOutput(state, part.functionCall);\n }\n }\n if (parts.length > partLimit && isDeferred(state)) (state as StreamEstimateState).estimateTruncated = true;\n }\n if (candidates.length > candidateLimit && isDeferred(state)) (state as StreamEstimateState).estimateTruncated = true;\n}\n\nfunction countOpenAIStringTokens(value: unknown, model: string | undefined): number {\n return countModelTextTokens(asString(value) ?? '', model);\n}\n\nfunction countOpenAIJsonLikeTokens(value: unknown, model: string | undefined): number {\n if (typeof value === 'string') {\n return countOpenAIStringTokens(value, model);\n }\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n return 1;\n }\n\n if (value === null || value === undefined) {\n return 0;\n }\n\n if (Array.isArray(value)) {\n return value.reduce((total, item) => total + countOpenAIJsonLikeTokens(item, model), 0);\n }\n\n if (isRecord(value)) {\n return Object.entries(value).reduce((total, [key, item]) => {\n return total + countOpenAIStringTokens(key, model) + countOpenAIJsonLikeTokens(item, model);\n }, 0);\n }\n\n return countOpenAIStringTokens(String(value), model);\n}\n\nfunction estimateOpenAIImageTokens(part: JsonRecord): number {\n const imageUrl = readRecord(part, 'image_url');\n const detail = asString(part.detail) ?? asString(imageUrl?.detail);\n if (detail === 'low') {\n return 85;\n }\n\n return 170;\n}\n\nfunction estimateOpenAIToolCallTokens(toolCall: unknown, model: string | undefined): number {\n if (!isRecord(toolCall)) {\n return countOpenAIJsonLikeTokens(toolCall, model);\n }\n\n const toolFunction = readRecord(toolCall, 'function');\n return 12\n + countOpenAIStringTokens(toolCall.id, model)\n + countOpenAIStringTokens(toolCall.type, model)\n + countOpenAIStringTokens(toolFunction?.name, model)\n + countOpenAIStringTokens(toolFunction?.arguments, model)\n + countOpenAIJsonLikeTokens(toolCall, model);\n}\n\nfunction estimateOpenAIMessageTokens(message: unknown, model: string | undefined): number {\n if (!isRecord(message)) {\n return countOpenAIJsonLikeTokens(message, model);\n }\n\n const content = message.content;\n const toolCalls = Array.isArray(message.tool_calls) ? message.tool_calls : [];\n return 4\n + countOpenAIStringTokens(message.role, model)\n + countOpenAIStringTokens(message.name, model)\n + countOpenAIStringTokens(message.tool_call_id, model)\n + estimateOpenAIMessageContent(content, model)\n + toolCalls.reduce((total, toolCall) => total + estimateOpenAIToolCallTokens(toolCall, model), 0);\n}\n\nfunction safeTokenSum(...values: number[]): number | undefined {\n const total = values.reduce((sum, value) => sum + value, 0);\n return Number.isSafeInteger(total) && total >= 0 ? total : undefined;\n}\n\nfunction estimateGeminiInlineDataTokens(inlineData: JsonRecord): number {\n const mimeType = asString(inlineData.mimeType)?.toLowerCase() ?? '';\n\n if (mimeType.startsWith('image/')) {\n return 224;\n }\n\n if (mimeType.startsWith('video/')) {\n return 384;\n }\n\n if (mimeType.startsWith('audio/')) {\n return 128;\n }\n\n return 96;\n}\n\nfunction estimateGeminiFunctionCallTokens(functionCall: JsonRecord): number {\n return 12\n + countTextTokens(asString(functionCall.name) ?? '')\n + countJsonLikeTokens(functionCall.args);\n}\n\nfunction estimateGeminiFunctionResponseTokens(functionResponse: JsonRecord): number {\n return 12\n + countTextTokens(asString(functionResponse.name) ?? '')\n + countJsonLikeTokens(functionResponse.response);\n}\n\nfunction buildAnthropicStreamingEvent(\n state: TokenAccountingSessionState,\n overrides: Partial<CanonicalTokenAccountingEventV2> = {}\n): CanonicalTokenAccountingEventV2 {\n return createPartialTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none',\n ...overrides\n });\n}\n\nfunction estimateOpenAIMessageContent(content: unknown, model: string | undefined): number {\n if (typeof content === 'string') {\n return countModelTextTokens(content, model);\n }\n\n if (!Array.isArray(content)) {\n return countOpenAIJsonLikeTokens(content, model);\n }\n\n return content.reduce((total, part) => {\n if (!isRecord(part)) {\n return total + countOpenAIJsonLikeTokens(part, model);\n }\n\n const type = asString(part.type);\n if (type === 'text') {\n return total + countOpenAIStringTokens(part.text, model);\n }\n\n if (type === 'image_url' || type === 'image') {\n return total + estimateOpenAIImageTokens(part);\n }\n\n return total + countOpenAIJsonLikeTokens(part, model);\n }, 0);\n}\n\nfunction estimateOpenAIInputTokens(body: JsonRecord): number {\n const model = asString(body.model);\n if (body.input !== undefined) {\n return clampTokens(countOpenAIJsonLikeTokens(body.input, model) + 8) ?? 0;\n }\n const messages = Array.isArray(body.messages) ? body.messages : [];\n const messageTokens = messages.reduce((total, message) => total + estimateOpenAIMessageTokens(message, model), 0);\n\n const tools = Array.isArray(body.tools) ? body.tools : [];\n const toolTokens = tools.reduce((total, tool) => total + 16 + countOpenAIJsonLikeTokens(tool, model), 0);\n return clampTokens(messageTokens + toolTokens + 8) ?? 0;\n}\n\nfunction estimateOpenAIResponseOutputTokens(body: JsonRecord, model?: string): number {\n const choices = Array.isArray(body.choices) ? body.choices : [];\n return clampTokens(choices.reduce((total, choice) => {\n if (!isRecord(choice)) {\n return total + countOpenAIJsonLikeTokens(choice, model);\n }\n\n const message = readRecord(choice, 'message');\n const delta = readRecord(choice, 'delta');\n const toolCalls = Array.isArray(message?.tool_calls)\n ? message.tool_calls\n : Array.isArray(delta?.tool_calls)\n ? delta.tool_calls\n : [];\n\n return total\n + countOpenAIStringTokens(message?.role ?? delta?.role, model)\n + countOpenAIStringTokens(message?.tool_call_id, model)\n + estimateOpenAIMessageContent(message?.content ?? delta?.content, model)\n + toolCalls.reduce((toolTotal, toolCall) => toolTotal + estimateOpenAIToolCallTokens(toolCall, model), 0)\n + (asString(choice.finish_reason) === 'tool_calls' ? 4 : 0);\n }, 0)) ?? 0;\n}\n\nfunction openAIUsage(body: JsonRecord): JsonRecord | undefined {\n return readRecord(readRecord(body, 'response'), 'usage') ?? readRecord(body, 'usage');\n}\n\nfunction estimateOpenAIResponsesOutputTokens(response: JsonRecord, model?: string): number {\n const output = Array.isArray(response.output) ? response.output : [];\n return clampTokens(output.reduce((total, item) => {\n if (!isRecord(item)) return total + countOpenAIJsonLikeTokens(item, model);\n const content = Array.isArray(item.content) ? item.content : [];\n return total + content.reduce((contentTotal, part) => {\n if (isRecord(part) && typeof part.text === 'string') return contentTotal + countOpenAIStringTokens(part.text, model);\n return contentTotal + countOpenAIJsonLikeTokens(part, model);\n }, 0) + countOpenAIStringTokens(item.arguments, model);\n }, 0)) ?? 0;\n}\n\nfunction isDoneSentinel(chunk: JsonRecord): boolean {\n return chunk.data === '[DONE]' || chunk.type === '[DONE]';\n}\n\nfunction estimateAnthropicInputTokens(body: JsonRecord): number {\n const system = asString(body.system) ?? '';\n const messages = Array.isArray(body.messages) ? body.messages : [];\n const tools = Array.isArray(body.tools) ? body.tools : [];\n return clampTokens(\n countTextTokens(system)\n + messages.reduce((total, message) => total + countJsonLikeTokens(message), 0)\n + tools.reduce((total, tool) => total + 16 + countJsonLikeTokens(tool), 0)\n + 8\n ) ?? 0;\n}\n\nfunction estimateAnthropicOutputTokens(body: JsonRecord): number {\n const content = Array.isArray(body.content) ? body.content : [];\n return clampTokens(content.reduce((total, block) => total + countJsonLikeTokens(block), 0)) ?? 0;\n}\n\nfunction estimateGeminiPartTokens(part: unknown): number {\n if (!isRecord(part)) {\n return countJsonLikeTokens(part);\n }\n\n if (typeof part.text === 'string') {\n return countTextTokens(part.text);\n }\n\n if (isRecord(part.inlineData)) {\n return estimateGeminiInlineDataTokens(part.inlineData);\n }\n\n if (isRecord(part.functionCall)) {\n return estimateGeminiFunctionCallTokens(part.functionCall);\n }\n\n if (isRecord(part.functionResponse)) {\n return estimateGeminiFunctionResponseTokens(part.functionResponse);\n }\n\n return countJsonLikeTokens(part);\n}\n\nfunction estimateGeminiInputTokens(body: JsonRecord): number {\n const systemInstruction = readRecord(body, 'systemInstruction');\n const systemParts = Array.isArray(systemInstruction?.parts) ? systemInstruction.parts : [];\n const contents = Array.isArray(body.contents) ? body.contents : [];\n return clampTokens(\n systemParts.reduce((total, part) => total + estimateGeminiPartTokens(part), 0)\n + contents.reduce((total, item) => {\n if (!isRecord(item)) {\n return total + countJsonLikeTokens(item);\n }\n\n const parts = Array.isArray(item.parts) ? item.parts : [];\n return total + parts.reduce((partTotal, part) => partTotal + estimateGeminiPartTokens(part), 0);\n }, 0)\n + 8\n ) ?? 0;\n}\n\nfunction estimateGeminiOutputTokens(body: JsonRecord): number {\n const candidates = Array.isArray(body.candidates) ? body.candidates : [];\n return clampTokens(candidates.reduce((total, candidate) => {\n if (!isRecord(candidate)) {\n return total + countJsonLikeTokens(candidate);\n }\n\n const content = readRecord(candidate, 'content');\n const parts = Array.isArray(content?.parts) ? content.parts : [];\n return total + parts.reduce((partTotal, part) => partTotal + estimateGeminiPartTokens(part), 0);\n }, 0)) ?? 0;\n}\n\nfunction createOpenAIAdapter(): ProviderTokenAccountingAdapter {\n return {\n provider: 'openai',\n capabilities: getProviderTokenAccountingCapabilities('openai'),\n consumeRequest(state, body) {\n storeRequestForEstimate(state, body, ['input', 'messages', 'tools']);\n setSessionModel(state, body.model);\n },\n consumeResponse(state, body) {\n const usage = openAIUsage(body);\n const promptTokens = readNumber(usage, 'prompt_tokens') ?? readNumber(usage, 'input_tokens');\n const completionTokens = readNumber(usage, 'completion_tokens') ?? readNumber(usage, 'output_tokens');\n const responseStatus = asString(readRecord(body, 'response')?.status) ?? asString(body.status);\n const isIncomplete = responseStatus === 'incomplete' || asString(body.type) === 'response.incomplete';\n const isFailed = responseStatus === 'failed' || asString(body.type) === 'response.failed';\n const promptDetails = readRecord(usage, 'prompt_tokens_details') ?? readRecord(usage, 'input_tokens_details');\n const cacheReadTokens = readNumber(promptDetails, 'cached_tokens');\n if (isDeferred(state)) {\n if (promptTokens !== undefined) {\n state.estimatedInputTokens = promptTokens;\n state.estimatedInputAuthority = 'official';\n }\n if (completionTokens !== undefined) {\n state.outputTokens = completionTokens;\n state.outputAuthority = 'official';\n clearObservedOutput(state);\n }\n if (cacheReadTokens !== undefined) state.cacheReadTokens = cacheReadTokens;\n if (!isIncomplete && !isFailed && !isErrorResponse(body)) observeOpenAIOutput(state, body);\n state.protocolTerminalSeen = true;\n (state as StreamEstimateState).deferredOutcome = isIncomplete || isFailed || isErrorResponse(body) ? 'failed' : 'completed';\n return createPartialTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none'\n });\n }\n if (promptTokens === undefined) estimateMissingInput(state);\n const responseHasOutput = hasOpenAIOutput(body) && !isIncomplete && !isFailed && !isErrorResponse(body);\n const estimatedOutput = completionTokens === undefined && responseHasOutput\n ? (Array.isArray(body.output) ? estimateOpenAIResponsesOutputTokens(body, state.model) : estimateOpenAIResponseOutputTokens(body, state.model))\n : undefined;\n\n if (promptTokens !== undefined || completionTokens !== undefined) {\n state.finalReceived = true;\n return finalizeTokenAccountingEvent(state, {\n inputTokens: promptTokens ?? state.estimatedInputTokens,\n outputTokens: completionTokens ?? estimatedOutput,\n cacheReadTokens,\n cacheWriteTokens: undefined,\n inputAuthority: promptTokens !== undefined ? 'official' : (state.estimatedInputAuthority ?? 'heuristic'),\n outputAuthority: completionTokens !== undefined ? 'official' : estimatedOutput === undefined ? 'none' : 'local'\n }, isIncomplete || isFailed ? 'failed' : 'completed');\n }\n\n const outputTokens = estimatedOutput;\n state.finalReceived = true;\n state.outputTokens = outputTokens;\n state.outputAuthority = outputTokens === undefined ? 'none' : 'local';\n return finalizeTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority\n }, isIncomplete || isFailed ? 'failed' : 'completed');\n },\n consumeStreamChunk(state, chunk, event) {\n if (state.finalReceived || isDoneSentinel(chunk)) return null;\n const response = readRecord(chunk, 'response');\n const usage = openAIUsage(chunk);\n const promptTokens = readNumber(usage, 'prompt_tokens') ?? readNumber(usage, 'input_tokens');\n const completionTokens = readNumber(usage, 'completion_tokens') ?? readNumber(usage, 'output_tokens');\n const promptDetails = readRecord(usage, 'prompt_tokens_details') ?? readRecord(usage, 'input_tokens_details');\n if (promptTokens !== undefined) {\n state.estimatedInputTokens = promptTokens;\n state.estimatedInputAuthority = 'official';\n }\n if (completionTokens !== undefined) {\n state.outputTokens = completionTokens;\n state.outputAuthority = 'official';\n clearObservedOutput(state);\n }\n const reportedCache = readNumber(promptDetails, 'cached_tokens');\n if (reportedCache !== undefined) state.cacheReadTokens = reportedCache;\n const responseType = event ?? asString(chunk.type);\n const responseStatus = asString(response?.status);\n const responseCompleted = responseType === 'response.completed' || responseStatus === 'completed';\n observeOpenAIOutput(state, chunk, !responseCompleted, event);\n const choices = Array.isArray(chunk.choices) ? chunk.choices : [];\n if (choices.some((choice) => isRecord(choice) && asString(choice.finish_reason) !== undefined && choice.finish_reason !== null)) {\n state.protocolTerminalSeen = true;\n if (isDeferred(state)) (state as StreamEstimateState).deferredOutcome = 'completed';\n }\n if (isDeferred(state)) {\n if (responseCompleted) {\n (state as StreamEstimateState).deferredOutcome = 'completed';\n state.protocolTerminalSeen = true;\n if (completionTokens === undefined && state.outputAuthority !== 'official' && Array.isArray(response?.output)) {\n replaceObservedOutput(state);\n observeOpenAIOutput(state, { response });\n }\n } else if (responseType === 'response.incomplete' || responseType === 'response.failed'\n || responseStatus === 'incomplete' || responseStatus === 'failed') {\n (state as StreamEstimateState).deferredOutcome = 'failed';\n state.protocolTerminalSeen = true;\n }\n return createPartialTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none'\n });\n }\n if (responseCompleted) {\n if (completionTokens === undefined && state.outputAuthority !== 'official' && Array.isArray(response?.output)) {\n replaceObservedOutput(state);\n observeOpenAIOutput(state, { response });\n }\n if (completionTokens === undefined) finalizeMissingStreamOutput(state);\n if (promptTokens === undefined) estimateMissingInput(state);\n state.finalReceived = true;\n return finalizeTokenAccountingEvent(state, {\n inputTokens: promptTokens ?? state.estimatedInputTokens,\n outputTokens: completionTokens ?? state.outputTokens,\n cacheReadTokens: readNumber(readRecord(usage, 'input_tokens_details') ?? readRecord(usage, 'prompt_tokens_details'), 'cached_tokens') ?? state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: promptTokens !== undefined ? 'official' : (state.estimatedInputAuthority ?? 'heuristic'),\n outputAuthority: completionTokens !== undefined ? 'official' : (state.outputAuthority ?? 'none')\n });\n }\n if (responseType === 'response.incomplete' || responseType === 'response.failed'\n || responseStatus === 'incomplete' || responseStatus === 'failed') {\n state.finalReceived = true;\n const promptDetails = readRecord(usage, 'input_tokens_details') ?? readRecord(usage, 'prompt_tokens_details');\n const input = promptTokens === undefined ? undefined : promptTokens;\n const output = completionTokens;\n state.estimatedInputTokens = input ?? state.estimatedInputTokens;\n state.outputTokens = output ?? state.outputTokens;\n state.cacheReadTokens = readNumber(promptDetails, 'cached_tokens') ?? state.cacheReadTokens;\n if (output === undefined) finalizeMissingStreamOutput(state);\n if (input === undefined) estimateMissingInput(state);\n return finalizeTokenAccountingEvent(state, {\n inputTokens: input ?? state.estimatedInputTokens,\n outputTokens: output ?? state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: input !== undefined ? 'official' : (state.estimatedInputAuthority ?? 'heuristic'),\n outputAuthority: output !== undefined ? 'official' : (state.outputAuthority ?? 'none')\n }, 'failed');\n }\n return createPartialTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none'\n });\n },\n finalizeAbortedStream(state) {\n finalizeMissingStreamOutput(state, true);\n estimateMissingInput(state);\n return finalizeTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none'\n }, 'aborted');\n },\n finalizeCompletedStream(state) {\n if (state.finalReceived) return createPartialTokenAccountingEvent(state);\n state.finalReceived = true;\n finalizeMissingStreamOutput(state);\n estimateMissingInput(state);\n return finalizeTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none'\n }, (state as StreamEstimateState).deferredOutcome ?? (state.protocolTerminalSeen ? 'completed' : 'failed'));\n }\n };\n}\n\nfunction createAnthropicAdapter(): ProviderTokenAccountingAdapter {\n return {\n provider: 'anthropic',\n capabilities: getProviderTokenAccountingCapabilities('anthropic'),\n consumeRequest(state, body) {\n storeRequestForEstimate(state, body, ['system', 'messages', 'tools']);\n setSessionModel(state, body.model);\n },\n consumeResponse(state, body) {\n const usage = readRecord(body, 'usage');\n const inputTokens = readNumber(usage, 'input_tokens');\n const outputTokens = readNumber(usage, 'output_tokens');\n const cacheWriteTokens = readNumber(usage, 'cache_creation_input_tokens');\n const cacheReadTokens = readNumber(usage, 'cache_read_input_tokens');\n const totalInputTokens = inputTokens === undefined ? undefined : safeTokenSum(inputTokens, cacheWriteTokens ?? 0, cacheReadTokens ?? 0);\n if (isDeferred(state)) {\n if (totalInputTokens !== undefined) {\n state.estimatedInputTokens = totalInputTokens;\n state.estimatedInputAuthority = 'official';\n }\n if (outputTokens !== undefined) {\n state.outputTokens = outputTokens;\n state.outputAuthority = 'official';\n clearObservedOutput(state);\n }\n if (cacheReadTokens !== undefined) state.cacheReadTokens = cacheReadTokens;\n if (cacheWriteTokens !== undefined) state.cacheWriteTokens = cacheWriteTokens;\n const failed = isDeferredFailure(body);\n if (!failed) observeAnthropicOutput(state, body);\n state.protocolTerminalSeen = true;\n (state as StreamEstimateState).deferredOutcome = failed ? 'failed' : 'completed';\n return createPartialTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none'\n });\n }\n if (totalInputTokens === undefined) estimateMissingInput(state);\n const estimatedOutput = outputTokens === undefined && hasAnthropicOutput(body) && !isErrorResponse(body) ? estimateAnthropicOutputTokens(body) : undefined;\n\n if (usage && (inputTokens !== undefined || outputTokens !== undefined\n || readNumber(usage, 'cache_creation_input_tokens') !== undefined\n || readNumber(usage, 'cache_read_input_tokens') !== undefined)) {\n state.finalReceived = true;\n return finalizeTokenAccountingEvent(state, {\n inputTokens: totalInputTokens ?? state.estimatedInputTokens,\n outputTokens: outputTokens ?? estimatedOutput,\n cacheReadTokens,\n cacheWriteTokens,\n inputAuthority: totalInputTokens !== undefined ? 'official' : (state.estimatedInputAuthority ?? 'heuristic'),\n outputAuthority: outputTokens !== undefined ? 'official' : estimatedOutput === undefined ? 'none' : 'local'\n });\n }\n\n return finalizeTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: estimatedOutput,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: estimatedOutput === undefined ? 'none' : 'local'\n });\n },\n consumeStreamChunk(state, chunk, event) {\n if (state.finalReceived || isDoneSentinel(chunk)) return null;\n const type = event ?? asString(chunk.type);\n if (isDeferred(state) && type === 'error') {\n state.protocolTerminalSeen = true;\n (state as StreamEstimateState).deferredOutcome = 'failed';\n return createPartialTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none'\n });\n }\n if (type === 'message_start') {\n const message = readRecord(chunk, 'message');\n const usage = readRecord(message, 'usage');\n setSessionModel(state, message?.model);\n state.cacheWriteTokens = readNumber(usage, 'cache_creation_input_tokens') ?? state.cacheWriteTokens;\n state.cacheReadTokens = readNumber(usage, 'cache_read_input_tokens') ?? state.cacheReadTokens;\n const rawInputTokens = readNumber(usage, 'input_tokens');\n const totalInputTokens = rawInputTokens === undefined\n ? undefined\n : safeTokenSum(rawInputTokens, state.cacheWriteTokens ?? 0, state.cacheReadTokens ?? 0);\n state.estimatedInputTokens = totalInputTokens ?? state.estimatedInputTokens;\n if (totalInputTokens !== undefined) state.estimatedInputAuthority = 'official';\n\n const initialOutputTokens = readNumber(usage, 'output_tokens');\n state.outputTokens = initialOutputTokens ?? state.outputTokens;\n state.outputAuthority = initialOutputTokens !== undefined ? 'official' : 'none';\n if (initialOutputTokens !== undefined) clearObservedOutput(state);\n return buildAnthropicStreamingEvent(state, {\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority\n });\n }\n\n if (type === 'content_block_start') {\n const contentBlock = readRecord(chunk, 'content_block');\n if (contentBlock?.text !== undefined) {\n if (isDeferred(state)) observeBoundedOutput(state, contentBlock.text);\n else observeOutput(state, contentBlock.text);\n }\n return buildAnthropicStreamingEvent(state);\n }\n\n if (type === 'content_block_delta') {\n const delta = readRecord(chunk, 'delta');\n const deltaType = asString(delta?.type);\n if (deltaType === 'text_delta') {\n if (isDeferred(state)) observeBoundedOutput(state, delta?.text);\n else observeOutput(state, delta?.text);\n }\n if (deltaType === 'input_json_delta') observeOutput(state, delta?.partial_json);\n return buildAnthropicStreamingEvent(state);\n }\n\n if (type === 'content_block_stop') {\n return buildAnthropicStreamingEvent(state);\n }\n\n if (type === 'message_delta') {\n const usage = readRecord(chunk, 'usage');\n const outputTokens = readNumber(usage, 'output_tokens');\n const rawInputTokens = readNumber(usage, 'input_tokens');\n if (rawInputTokens !== undefined) {\n state.cacheWriteTokens = readNumber(usage, 'cache_creation_input_tokens') ?? state.cacheWriteTokens;\n state.cacheReadTokens = readNumber(usage, 'cache_read_input_tokens') ?? state.cacheReadTokens;\n const totalInput = safeTokenSum(rawInputTokens, state.cacheWriteTokens ?? 0, state.cacheReadTokens ?? 0);\n state.estimatedInputTokens = totalInput ?? state.estimatedInputTokens;\n if (totalInput !== undefined) state.estimatedInputAuthority = 'official';\n }\n if (outputTokens !== undefined) {\n state.outputTokens = outputTokens;\n state.outputAuthority = 'official';\n clearObservedOutput(state);\n }\n state.cacheWriteTokens = readNumber(usage, 'cache_creation_input_tokens') ?? state.cacheWriteTokens;\n state.cacheReadTokens = readNumber(usage, 'cache_read_input_tokens') ?? state.cacheReadTokens;\n\n return buildAnthropicStreamingEvent(state, {\n outputAuthority: state.outputTokens !== undefined ? (state.outputAuthority ?? 'none') : 'none'\n });\n }\n\n if (type === 'message_stop') {\n if (state.finalReceived) {\n return null;\n }\n\n state.protocolTerminalSeen = true;\n if (isDeferred(state)) {\n (state as StreamEstimateState).deferredOutcome ??= 'completed';\n return createPartialTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none'\n });\n }\n state.finalReceived = true;\n finalizeMissingStreamOutput(state);\n estimateMissingInput(state);\n return finalizeTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none'\n });\n }\n\n return null;\n },\n finalizeAbortedStream(state) {\n finalizeMissingStreamOutput(state, true);\n estimateMissingInput(state);\n return finalizeTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputTokens !== undefined ? (state.outputAuthority ?? 'partial') : 'none'\n }, 'aborted');\n },\n finalizeCompletedStream(state) {\n if (state.finalReceived) return buildAnthropicStreamingEvent(state);\n state.finalReceived = true;\n finalizeMissingStreamOutput(state);\n estimateMissingInput(state);\n return finalizeTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputTokens !== undefined ? (state.outputAuthority ?? 'partial') : 'none'\n }, (state as StreamEstimateState).deferredOutcome ?? (state.protocolTerminalSeen ? 'completed' : 'failed'));\n }\n };\n}\n\nfunction createGeminiAdapter(): ProviderTokenAccountingAdapter {\n return {\n provider: 'gemini',\n capabilities: getProviderTokenAccountingCapabilities('gemini'),\n consumeRequest(state, body) {\n storeRequestForEstimate(state, body, ['contents', 'systemInstruction']);\n setSessionModel(state, body.model);\n },\n consumeResponse(state, body) {\n const usageMetadata = readRecord(body, 'usageMetadata');\n const promptTokenCount = readNumber(usageMetadata, 'promptTokenCount');\n const candidatesTokenCount = readNumber(usageMetadata, 'candidatesTokenCount');\n const thoughtsTokenCount = readNumber(usageMetadata, 'thoughtsTokenCount') ?? 0;\n const toolUsePromptTokenCount = readNumber(usageMetadata, 'toolUsePromptTokenCount') ?? 0;\n const cachedContentTokenCount = readNumber(usageMetadata, 'cachedContentTokenCount');\n if (isDeferred(state)) {\n const input = promptTokenCount === undefined ? undefined : safeTokenSum(promptTokenCount, toolUsePromptTokenCount);\n const output = candidatesTokenCount === undefined ? undefined : safeTokenSum(candidatesTokenCount, thoughtsTokenCount);\n if (input !== undefined) {\n state.estimatedInputTokens = input;\n state.estimatedInputAuthority = 'official';\n }\n if (output !== undefined) {\n state.outputTokens = output;\n state.outputAuthority = 'official';\n clearObservedOutput(state);\n }\n if (cachedContentTokenCount !== undefined) state.cacheReadTokens = cachedContentTokenCount;\n const failed = isDeferredFailure(body);\n if (!failed) observeGeminiOutput(state, body);\n state.protocolTerminalSeen = true;\n (state as StreamEstimateState).deferredOutcome = failed ? 'failed' : 'completed';\n return createPartialTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: undefined,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none'\n });\n }\n if (promptTokenCount === undefined) estimateMissingInput(state);\n const estimatedOutput = candidatesTokenCount === undefined && hasGeminiOutput(body) && !isErrorResponse(body) ? estimateGeminiOutputTokens(body) : undefined;\n\n if (promptTokenCount !== undefined || candidatesTokenCount !== undefined) {\n state.finalReceived = true;\n return finalizeTokenAccountingEvent(state, {\n inputTokens: promptTokenCount === undefined ? state.estimatedInputTokens : safeTokenSum(promptTokenCount, toolUsePromptTokenCount) ?? state.estimatedInputTokens,\n outputTokens: candidatesTokenCount === undefined ? estimatedOutput : safeTokenSum(candidatesTokenCount, thoughtsTokenCount) ?? estimatedOutput,\n cacheReadTokens: cachedContentTokenCount,\n cacheWriteTokens: undefined,\n inputAuthority: promptTokenCount !== undefined && safeTokenSum(promptTokenCount, toolUsePromptTokenCount) !== undefined ? 'official' : (state.estimatedInputAuthority ?? 'heuristic'),\n outputAuthority: candidatesTokenCount !== undefined && safeTokenSum(candidatesTokenCount, thoughtsTokenCount) !== undefined ? 'official' : estimatedOutput === undefined ? 'none' : 'local'\n });\n }\n\n const outputTokens = estimatedOutput;\n state.finalReceived = true;\n state.outputTokens = outputTokens;\n state.outputAuthority = outputTokens === undefined ? 'none' : 'local';\n return finalizeTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority\n });\n },\n consumeStreamChunk(state, chunk, event) {\n if (state.finalReceived || isDoneSentinel(chunk)) return null;\n observeGeminiOutput(state, chunk);\n const usageMetadata = readRecord(chunk, 'usageMetadata');\n const promptTokenCount = readNumber(usageMetadata, 'promptTokenCount');\n const candidatesTokenCount = readNumber(usageMetadata, 'candidatesTokenCount');\n const thoughtsTokenCount = readNumber(usageMetadata, 'thoughtsTokenCount') ?? 0;\n const toolUsePromptTokenCount = readNumber(usageMetadata, 'toolUsePromptTokenCount') ?? 0;\n const reportedCacheRead = readNumber(usageMetadata, 'cachedContentTokenCount');\n const candidates = Array.isArray(chunk.candidates) ? chunk.candidates : [];\n if (candidates.some((candidate) => isRecord(candidate) && asString(candidate.finishReason) !== undefined)) {\n state.protocolTerminalSeen = true;\n if (isDeferred(state)) (state as StreamEstimateState).deferredOutcome ??= 'completed';\n }\n if (isDeferred(state) && isDeferredFailure(chunk)) {\n state.protocolTerminalSeen = true;\n (state as StreamEstimateState).deferredOutcome = 'failed';\n }\n if (isDeferred(state) && reportedCacheRead !== undefined && promptTokenCount === undefined && candidatesTokenCount === undefined) {\n state.cacheReadTokens = reportedCacheRead;\n return createPartialTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: undefined,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? 'none'\n });\n }\n if (promptTokenCount !== undefined || candidatesTokenCount !== undefined) {\n const input = promptTokenCount === undefined ? undefined : safeTokenSum(promptTokenCount, toolUsePromptTokenCount);\n const output = candidatesTokenCount === undefined ? undefined : safeTokenSum(candidatesTokenCount, thoughtsTokenCount);\n state.estimatedInputTokens = input ?? state.estimatedInputTokens;\n if (input !== undefined) state.estimatedInputAuthority = 'official';\n state.outputTokens = output ?? state.outputTokens;\n if (output !== undefined) {\n state.outputAuthority = 'official';\n clearObservedOutput(state);\n }\n const cacheRead = readNumber(usageMetadata, 'cachedContentTokenCount');\n if (cacheRead !== undefined) state.cacheReadTokens = cacheRead;\n return createPartialTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: undefined,\n inputAuthority: state.estimatedInputAuthority ?? 'heuristic',\n outputAuthority: state.outputAuthority ?? 'partial'\n });\n }\n\n return createPartialTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'heuristic',\n outputAuthority: state.outputAuthority ?? (state.outputTokens !== undefined ? 'partial' : 'none')\n });\n },\n finalizeAbortedStream(state) {\n finalizeMissingStreamOutput(state, true);\n estimateMissingInput(state);\n return finalizeTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? (state.outputTokens !== undefined ? 'partial' : 'none')\n }, 'aborted');\n },\n finalizeCompletedStream(state) {\n if (state.finalReceived) return createPartialTokenAccountingEvent(state);\n state.finalReceived = true;\n finalizeMissingStreamOutput(state);\n estimateMissingInput(state);\n return finalizeTokenAccountingEvent(state, {\n inputTokens: state.estimatedInputTokens,\n outputTokens: state.outputTokens,\n cacheReadTokens: state.cacheReadTokens,\n cacheWriteTokens: state.cacheWriteTokens,\n inputAuthority: state.estimatedInputAuthority ?? 'none',\n outputAuthority: state.outputAuthority ?? (state.outputTokens !== undefined ? 'partial' : 'none')\n }, (state as StreamEstimateState).deferredOutcome ?? (state.protocolTerminalSeen ? 'completed' : 'failed'));\n }\n };\n}\n\nconst PROVIDER_ADAPTERS = {\n openai: createOpenAIAdapter(),\n anthropic: createAnthropicAdapter(),\n gemini: createGeminiAdapter()\n} as const satisfies Record<string, ProviderTokenAccountingAdapter>;\n\nfunction normalizeProvider(provider: LLMProvider): keyof typeof PROVIDER_ADAPTERS {\n return String(provider).trim().toLowerCase() as keyof typeof PROVIDER_ADAPTERS;\n}\n\nfunction getProviderAdapter(provider: LLMProvider): ProviderTokenAccountingAdapter {\n const adapter = PROVIDER_ADAPTERS[normalizeProvider(provider)];\n if (!adapter) {\n throw new Error(`Unsupported token accounting provider: ${provider}`);\n }\n\n return adapter;\n}\n\nexport function createTokenAccountingSession(\n input: TokenAccountingSessionInput,\n options: { deferFinalization?: boolean } = {}\n): TokenAccountingSession {\n const adapter = getProviderAdapter(input.provider);\n let terminalEvent: CanonicalTokenAccountingEventV2 | undefined;\n const state: TokenAccountingSessionState & StreamEstimateState = {\n provider: adapter.provider,\n routeId: input.routeId,\n upstreamId: input.upstreamId,\n requestId: input.requestId,\n attemptId: input.attemptId,\n streaming: input.streaming,\n model: input.model,\n finalReceived: false,\n deferFinalization: options.deferFinalization === true\n };\n\n return {\n consumeRequest({ body }) {\n adapter.consumeRequest(state, body);\n },\n consumeResponse({ body }): CanonicalTokenAccountingEventV2 {\n const event = adapter.consumeResponse(state, body);\n if (event.final || event.outcome !== 'completed') terminalEvent = event;\n return event;\n },\n consumeStreamChunk({ chunk, event: eventName }): CanonicalTokenAccountingEventV2 | null {\n const event = adapter.consumeStreamChunk(state, chunk, eventName);\n if (event && (event.final || event.outcome !== 'completed')) terminalEvent = event;\n return event;\n },\n finalizeCompletedStream(): CanonicalTokenAccountingEventV2 {\n if (terminalEvent) return terminalEvent;\n const event = adapter.finalizeCompletedStream(state);\n terminalEvent = event;\n return event;\n },\n finalizeAbortedStream(): CanonicalTokenAccountingEventV2 {\n if (terminalEvent) return terminalEvent;\n const event = adapter.finalizeAbortedStream(state);\n terminalEvent = event;\n return event;\n }\n };\n}\n",
44
+ "export type ResponsesProtocol = 'chat_completions' | 'anthropic_messages';\nexport type JsonRecord = Record<string, unknown>;\nexport interface ResponsesToolName { name: string; namespace?: string; custom: boolean }\n/** Per-request wire-name authority; never infer namespaces by splitting a provider name. */\nexport type ResponsesToolNames = ReadonlyMap<string, ResponsesToolName>;\nexport interface ResponsesCodecLimits {\n maxRequestBytes: number;\n maxOutputBytes: number;\n maxArgumentBytes: number;\n maxItems: number;\n}\nexport const DEFAULT_RESPONSES_CODEC_LIMITS: Readonly<ResponsesCodecLimits> = Object.freeze({\n maxRequestBytes: 8 * 1024 * 1024,\n maxOutputBytes: 8 * 1024 * 1024,\n maxArgumentBytes: 1024 * 1024,\n maxItems: 1024,\n});\nexport interface ResponsesCodecCapabilities {\n reasoningEffort?: boolean;\n /** Plain reasoning history support is independent of effort parameter mapping. */\n reasoningHistory?: boolean;\n /** Codex declares optional hosted search even when the selected model has no search backend. */\n omitOptionalWebSearch?: boolean;\n /** Explicit provider-approved thinking budget; do not guess budgets from effort labels. */\n anthropicThinkingBudget?: number;\n maxOutputTokens?: number;\n limits?: Partial<ResponsesCodecLimits>;\n}\nexport interface ResponsesConversionDiagnostic {\n param: string;\n action: 'mapped' | 'omitted';\n reason: string;\n}\nexport class ResponsesCodecError extends Error {\n constructor(readonly code: string, message: string, readonly param?: string) { super(message); this.name = 'ResponsesCodecError'; }\n}\nexport function fail(code: string, message: string, param?: string): never { throw new ResponsesCodecError(code, message, param); }\nexport function atParam<T>(param: string, run: () => T): T {\n try { return run(); } catch (error) {\n if (error instanceof ResponsesCodecError && error.param === undefined) throw new ResponsesCodecError(error.code, error.message, param);\n throw error;\n }\n}\nexport function record(value: unknown, where: string): JsonRecord {\n if (!value || typeof value !== 'object' || Array.isArray(value)) fail('invalid_payload', `${where} must be an object`);\n return value as JsonRecord;\n}\nexport function string(value: unknown, where: string, nonempty = false): string {\n if (typeof value !== 'string' || (nonempty && !value)) fail('invalid_payload', `${where} must be a${nonempty ? ' non-empty' : ''} string`);\n return value;\n}\nexport function list(value: unknown, where: string): unknown[] {\n if (!Array.isArray(value)) fail('invalid_payload', `${where} must be an array`);\n return value;\n}\nexport function limits(overrides?: Partial<ResponsesCodecLimits>): ResponsesCodecLimits {\n const result = { ...DEFAULT_RESPONSES_CODEC_LIMITS, ...overrides };\n for (const [key, value] of Object.entries(result)) {\n if (!Number.isSafeInteger(value) || value <= 0) fail('invalid_limit', `${key} must be a positive integer`);\n }\n return result;\n}\nexport function bytes(value: string): number { return new TextEncoder().encode(value).byteLength; }\nexport function bounded(value: string, max: number, where: string): string {\n if (bytes(value) > max) fail('resource_limit', `${where} exceeds ${max} bytes`);\n return value;\n}\nexport function serialized(value: unknown, max: number, where: string): string {\n let result: string | undefined;\n try { result = JSON.stringify(value); } catch { fail('invalid_payload', `${where} must be serializable JSON`); }\n if (result === undefined) fail('invalid_payload', `${where} must be serializable JSON`);\n return bounded(result, max, where);\n}\nexport function argumentObject(text: string): JsonRecord {\n let value: unknown;\n try { value = JSON.parse(text); } catch { fail('invalid_tool_arguments', 'Tool arguments must be complete JSON'); }\n return record(value, 'tool arguments');\n}\nexport function restoreTool(name: string, names: ResponsesToolNames): ResponsesToolName {\n const result = names.get(name);\n if (result) return result;\n if (names.size) fail('unknown_tool', `Provider returned undeclared tool ${name}`);\n return { name, custom: false };\n}\nexport function customInput(text: string): string {\n const value = argumentObject(text);\n if (Object.keys(value).length !== 1 || typeof value.input !== 'string') {\n fail('invalid_tool_arguments', 'Custom tools require exactly one string input property');\n }\n return value.input;\n}\n/** Decode only complete JSON-string characters. A split escape remains buffered. */\nexport function customInputPrefix(text: string): string {\n const prefix = /^\\s*\\{\\s*\"input\"\\s*:\\s*\"/.exec(text);\n if (!prefix) return '';\n let result = '';\n for (let i = prefix[0].length; i < text.length;) {\n const char = text[i];\n if (char === '\"') break;\n if (char !== '\\\\') { if (char.charCodeAt(0) < 32) fail('invalid_tool_arguments', 'Invalid JSON string character'); result += char; i++; continue; }\n const escape = text[i + 1];\n if (escape === undefined) break;\n const size = escape === 'u' ? 6 : 2;\n if (i + size > text.length) break;\n try { result += JSON.parse(`\"${text.slice(i, i + size)}\"`); } catch { fail('invalid_tool_arguments', 'Invalid JSON string escape'); }\n i += size;\n }\n return result;\n}\nexport interface Terminal { status: 'completed' | 'incomplete' | 'failed'; reason: string }\nexport function terminal(reason: unknown, protocol: ResponsesProtocol): Terminal {\n if (typeof reason !== 'string' || !reason) fail('missing_terminal', 'Upstream has no explicit completion reason');\n const completed = protocol === 'chat_completions' ? ['stop', 'tool_calls', 'function_call'] : ['end_turn', 'tool_use', 'stop_sequence'];\n if (completed.includes(reason)) return { status: 'completed', reason };\n if (reason === 'length' || reason === 'max_tokens' || reason === 'model_context_window_exceeded') return { status: 'incomplete', reason: 'max_output_tokens' };\n if (reason === 'content_filter' || reason === 'refusal') return { status: 'incomplete', reason: 'content_filter' };\n if (reason === 'error') return { status: 'failed', reason: 'upstream_error' };\n fail('unknown_terminal', `Unsupported upstream completion reason: ${reason}`);\n}\nfunction tokens(value: unknown, where: string): number {\n if (value === undefined) return 0;\n if (!Number.isSafeInteger(value) || (value as number) < 0) fail('invalid_usage', `${where} must be a non-negative integer`);\n return value as number;\n}\nexport function normalizeUsage(raw: unknown, protocol: ResponsesProtocol, prior: JsonRecord = {}): JsonRecord {\n if (raw === undefined || raw === null) return prior;\n const usage = record(raw, 'usage');\n const chat = protocol === 'chat_completions';\n const input = tokens(usage[chat ? 'prompt_tokens' : 'input_tokens'] ?? prior.input_tokens, 'input_tokens');\n const output = tokens(usage[chat ? 'completion_tokens' : 'output_tokens'] ?? prior.output_tokens, 'output_tokens');\n const details = chat ? usage.prompt_tokens_details : undefined;\n const cached = chat ? (details ? record(details, 'prompt_tokens_details').cached_tokens : undefined) : usage.cache_read_input_tokens;\n // Anthropic input_tokens excludes both cache classes; Responses input_tokens includes them.\n const cacheRead = tokens(cached ?? (prior.input_tokens_details as JsonRecord | undefined)?.cached_tokens, 'cached_tokens');\n const cacheWrite = chat ? 0 : tokens(usage.cache_creation_input_tokens, 'cache_creation_input_tokens');\n const totalInput = chat ? input : (usage.input_tokens === undefined ? input : input + cacheRead + cacheWrite);\n const reasoning = chat && usage.completion_tokens_details ? record(usage.completion_tokens_details, 'completion_tokens_details').reasoning_tokens : undefined;\n return { input_tokens: totalInput, output_tokens: output, total_tokens: totalInput + output,\n input_tokens_details: { cached_tokens: cacheRead },\n output_tokens_details: { reasoning_tokens: tokens(reasoning ?? (prior.output_tokens_details as JsonRecord | undefined)?.reasoning_tokens, 'reasoning_tokens') } };\n}\nexport function toolItem(id: string, name: string, args: string, names: ResponsesToolNames, status = 'completed'): JsonRecord {\n const original = restoreTool(name, names);\n const item: JsonRecord = { id: `fc_${id}`, type: original.custom ? 'custom_tool_call' : 'function_call', call_id: id, name: original.name, status };\n if (original.namespace) item.namespace = original.namespace;\n if (original.custom) item.input = customInput(args); else { argumentObject(args); item.arguments = args; }\n return item;\n}\nexport function responsePayload(id: string, model: string, output: JsonRecord[], end: Terminal, usage: JsonRecord, error?: unknown, createdAt = Math.floor(Date.now() / 1000)): JsonRecord {\n const result: JsonRecord = { id, object: 'response', created_at: createdAt, model, status: end.status, output, usage: Object.keys(usage).length ? usage : null };\n if (end.status === 'incomplete') result.incomplete_details = { reason: end.reason };\n if (end.status === 'failed') result.error = error ?? { code: end.reason, message: end.reason };\n return result;\n}\n",
45
+ "import { OpenAIProtocolConversion } from '../providers/openai/protocol-conversion';\nimport { argumentObject, atParam, bounded, fail, limits, list, record, serialized, string,\n type JsonRecord, type ResponsesCodecCapabilities, type ResponsesConversionDiagnostic, type ResponsesProtocol, type ResponsesToolName, type ResponsesToolNames } from './common';\nimport { applyResponsesPreferences } from './request-preferences';\n\nconst contentNormalizer = new OpenAIProtocolConversion({ trimWhitespace: false });\n\nexport interface DecodedResponsesRequest {\n body: JsonRecord;\n toolNames: ResponsesToolNames;\n canonicalInput: JsonRecord[];\n diagnostics: ResponsesConversionDiagnostic[];\n}\n\n// Compare JSON definitions independently of object key order; arrays retain their order.\nfunction definitionKey(value: unknown): string {\n if (Array.isArray(value)) return `[${value.map(definitionKey).join(',')}]`;\n if (value && typeof value === 'object') return `{${Object.keys(value).sort().map(key => `${JSON.stringify(key)}:${definitionKey((value as JsonRecord)[key])}`).join(',')}}`;\n return JSON.stringify(value);\n}\n\n/** Converts only self-contained history. Reference resolution belongs to the caller. */\nexport function decodeResponsesRequest(raw: unknown, protocol: ResponsesProtocol, capabilities: ResponsesCodecCapabilities = {}): DecodedResponsesRequest {\n const body = record(raw, 'Responses request');\n const budget = limits(capabilities.limits);\n serialized(body, budget.maxRequestBytes, 'request');\n const supported = new Set(['model', 'input', 'instructions', 'tools', 'tool_choice', 'reasoning', 'text',\n 'stream', 'temperature', 'top_p', 'parallel_tool_calls', 'metadata', 'max_output_tokens',\n 'previous_response_id', 'conversation', 'response_id', 'background', 'n', 'truncation', 'include', 'store', 'prompt_cache_key', 'client_metadata', 'stream_options', 'access_programs']);\n for (const key of Object.keys(body)) if (!supported.has(key)) fail('unsupported_request', 'Unrecognized Responses request field', key);\n if (body.store === true) fail('unsupported_request', 'Stored Responses require caller-owned persistence');\n for (const key of ['previous_response_id', 'conversation', 'response_id']) {\n if (body[key] != null) fail('unresolved_reference', `${key} must be resolved before protocol conversion`);\n }\n if (body.background === true) fail('unsupported_request', 'Background Responses cannot be represented by this codec');\n if (body.n !== undefined && body.n !== 1) fail('unsupported_request', 'Only one response candidate is supported');\n if (body.truncation !== undefined && body.truncation !== 'disabled') fail('unsupported_request', 'Automatic input truncation cannot be represented');\n // This asks for encrypted output if available; it does not supply opaque input history.\n // Converted providers return no encrypted output. Actual encrypted input remains rejected below.\n if (body.include !== undefined && list(body.include, 'include').some(field => field !== 'reasoning.encrypted_content')) fail('unsupported_request', 'Requested extra Responses output fields cannot be represented');\n if (body.prompt_cache_key !== undefined) string(body.prompt_cache_key, 'prompt_cache_key');\n if (body.client_metadata !== undefined) record(body.client_metadata, 'client_metadata');\n const model = string(body.model, 'model', true);\n const diagnostics: ResponsesConversionDiagnostic[] = [];\n const input = atParam('input', () => typeof body.input === 'string' ? [{ role: 'user', content: body.input }] : list(body.input, 'input'));\n if (input.length > budget.maxItems) fail('resource_limit', 'Too many input items', 'input');\n const canonicalInput: JsonRecord[] = [];\n const toolNames = new Map<string, ResponsesToolName>();\n const byOriginal = new Map<string, string>();\n const definitions = new Map<string, string>();\n let examinedTools = 0;\n const tools: JsonRecord[] = [];\n const identity = (name: string, namespace?: string) => JSON.stringify([namespace ?? null, name]);\n const register = (name: string, namespace: string | undefined, custom: boolean): string => {\n const key = identity(name, namespace);\n if (byOriginal.has(key)) fail('tool_name_collision', 'Duplicate tool identity');\n if (toolNames.size >= budget.maxItems) fail('resource_limit', 'Too many tools');\n // Always use short opaque names: arbitrary Unicode/namespace names and collisions are reversible.\n const wire = `bungee_tool_${toolNames.size}`;\n toolNames.set(wire, { name, namespace, custom }); byOriginal.set(key, wire);\n return wire;\n };\n const expandTool = (rawTool: unknown, namespace?: string, path = 'tools'): void => {\n if (++examinedTools > budget.maxItems) fail('resource_limit', 'Too many tool declarations');\n const tool = record(rawTool, 'tool');\n if (namespace === undefined && capabilities.omitOptionalWebSearch && ['web_search','web_search_preview'].includes(String(tool.type))\n && (body.tool_choice === undefined || body.tool_choice === 'auto' || body.tool_choice === 'none')) return;\n const allowed = tool.type === 'namespace' ? ['type','name','description','tools']\n : tool.type === 'custom' ? ['type','name','description','format'] : ['type','name','description','parameters','strict'];\n for (const key of Object.keys(tool)) if (!allowed.includes(key)) fail('unsupported_tool', 'Unsupported tool definition field', `${path}.${key}`);\n if (tool.type === 'namespace') {\n if (namespace !== undefined) fail('unsupported_tool', 'Nested tool namespaces are not supported');\n const name = string(tool.name, 'namespace name', true);\n for (const [index, child] of list(tool.tools, 'namespace tools').entries()) {\n const childPath = `${path}.tools[${index}]`;\n atParam(childPath, () => expandTool(child, name, childPath));\n }\n return;\n }\n if (tool.type !== 'function' && tool.type !== 'custom') fail('unsupported_tool', 'This tool type cannot be executed by Codex through the target protocol');\n serialized(tool, budget.maxArgumentBytes, 'tool definition');\n const name = string(tool.name, 'tool name', true);\n const custom = tool.type === 'custom';\n if (tool.strict !== undefined && typeof tool.strict !== 'boolean') fail('invalid_payload', 'Tool strict must be boolean');\n if (protocol === 'anthropic_messages' && tool.strict === true) fail('unsupported_tool', 'Anthropic strict tool enforcement requires an explicit provider capability');\n if (custom && tool.format !== undefined) {\n const format = record(tool.format, 'custom format');\n if (format.type !== 'text' && format.type !== 'grammar') fail('unsupported_tool', 'Unknown custom tool format');\n }\n const key = identity(name, namespace);\n const signature = definitionKey(tool);\n if (definitions.has(key)) {\n if (definitions.get(key) !== signature) fail('tool_name_collision', 'Conflicting definitions for the same tool identity');\n return;\n }\n const wire = register(name, namespace, custom);\n definitions.set(key, signature);\n const parameters = custom\n ? { type: 'object', properties: { input: { type: 'string' } }, required: ['input'], additionalProperties: false }\n : record(tool.parameters ?? { type: 'object', properties: {} }, 'tool parameters');\n const description = tool.description === undefined ? undefined : string(tool.description, 'tool description');\n const customHint = custom ? `Pass the complete original custom tool input verbatim in the input string.${tool.format ? ` Original input format: ${JSON.stringify(tool.format)}` : ''}` : undefined;\n if (protocol === 'chat_completions') {\n tools.push({ type: 'function', function: { name: wire, parameters, ...(description || customHint ? { description: [description, customHint].filter(Boolean).join('\\n') } : {}), ...(tool.strict !== undefined ? { strict: tool.strict } : {}) } });\n } else {\n tools.push({ name: wire, input_schema: parameters, ...(description || customHint ? { description: [description, customHint].filter(Boolean).join('\\n') } : {}) });\n }\n };\n if (body.tools !== undefined) atParam('tools', () => {\n for (const [index, tool] of list(body.tools, 'tools').entries()) atParam(`tools[${index}]`, () => expandTool(tool, undefined, `tools[${index}]`));\n });\n // Behavior reference: cc-switch b4a0794 collect_input_declared_tools. Tool carriers\n // are declarations, not messages. Use this codec's existing reversible name authority.\n for (const [index, rawItem] of input.entries()) atParam(`input[${index}]`, () => {\n const item = record(rawItem, 'input item');\n if (item.type !== 'additional_tools') { canonicalInput.push(item); return; }\n if (item.content !== undefined) fail('invalid_payload', 'A tool declaration carrier cannot also contain message content', `input[${index}].content`);\n for (const [toolIndex, tool] of list(item.tools, 'additional tools').entries()) {\n const toolPath = `input[${index}].tools[${toolIndex}]`;\n atParam(toolPath, () => expandTool(tool, undefined, toolPath));\n }\n });\n const resolve = (item: JsonRecord, custom: boolean): string => {\n const name = string(item.name, 'call name', true);\n const namespace = item.namespace === undefined ? undefined : string(item.namespace, 'call namespace', true);\n let wire = byOriginal.get(identity(name, namespace));\n // Historical calls need not appear in today's tool declarations. Preserve them in the same authority.\n if (wire === undefined) wire = register(name, namespace, custom);\n if (toolNames.get(wire)!.custom !== custom) fail('tool_name_collision', 'Historical tool kind conflicts with its current declaration');\n return wire;\n };\n const normalizeContent = (rawContent: unknown, role: string): unknown => {\n if (typeof rawContent === 'string') return rawContent;\n const parts = list(rawContent, 'message content');\n for (const rawPart of parts) {\n const part = record(rawPart, 'content part');\n if (part.type === 'input_text' || part.type === 'output_text' || part.type === 'text') string(part.text, 'content text');\n else if (part.type === 'refusal' && role === 'assistant') string(part.refusal,'refusal');\n else if (part.type === 'input_image' && role === 'user') {\n if (protocol !== 'chat_completions') fail('unsupported_content', 'Anthropic image conversion requires provider-specific URL/data support');\n string(part.image_url, 'image_url', true);\n if (part.detail !== undefined && !['auto', 'low', 'high'].includes(String(part.detail))) fail('unsupported_content', 'Unknown image detail');\n } else fail('unsupported_content', 'Unsupported message content type');\n if (part.annotations !== undefined && list(part.annotations, 'annotations').length) fail('unsupported_content', 'Output annotations cannot be represented in input history');\n }\n // Reuse the existing text/image normalizer only after validating every part.\n const normalized = contentNormalizer.normalizeResponsesMessageContent(parts.map(raw=>{const part=raw as JsonRecord;return part.type==='refusal'?{type:'output_text',text:part.refusal}:part;})) as JsonRecord[];\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i] as JsonRecord;\n if (part.type === 'input_image' && part.detail !== undefined) (normalized[i].image_url as JsonRecord).detail = part.detail;\n }\n return normalized;\n };\n const chat: JsonRecord[] = [];\n const messageParams = new WeakMap<JsonRecord, string>();\n let messageParam = 'instructions';\n const callIds = new Set<string>();\n const answered = new Set<string>();\n let pendingReasoning = '';\n const addMessage = (message: JsonRecord): void => {\n if (chat.length >= budget.maxItems) fail('resource_limit', 'Too many input messages');\n chat.push(message);\n messageParams.set(message, messageParam);\n };\n if (body.instructions !== undefined) addMessage({ role: 'system', content: string(body.instructions, 'instructions') });\n for (const [inputIndex, rawItem] of input.entries()) atParam(`input[${inputIndex}]`, () => {\n messageParam = `input[${inputIndex}]`;\n const item = record(rawItem, 'input item');\n if (item.type === 'additional_tools') return;\n if (item.encrypted_content != null || item.type === 'compaction') fail('unsupported_content', 'Encrypted reasoning and compaction cannot be restored');\n if (item.type === 'item_reference') fail('unresolved_reference', 'Input item references must be resolved before conversion');\n if (item.type === 'reasoning') {\n if (protocol !== 'chat_completions' || !(capabilities.reasoningHistory || capabilities.reasoningEffort)) fail('unsupported_reasoning', 'Reasoning history requires an explicit compatible reasoning capability');\n if (item.content != null) fail('unsupported_reasoning', 'Reasoning content requires an explicit history mapping', `${messageParam}.content`);\n const summary = list(item.summary, 'reasoning summary');\n pendingReasoning += summary.map(part => { const p = record(part, 'reasoning summary'); if (p.type !== 'summary_text') fail('unsupported_reasoning', 'Unknown reasoning summary'); return string(p.text, 'summary text'); }).join('');\n return;\n }\n if (item.type === 'function_call' || item.type === 'custom_tool_call') {\n const custom = item.type === 'custom_tool_call';\n const id = string(item.call_id, 'call_id', true);\n if (callIds.has(id)) fail('invalid_tool_history', 'Duplicate tool call identifier');\n callIds.add(id);\n const args = custom ? JSON.stringify({ input: string(item.input, 'custom input') }) : string(item.arguments, 'arguments');\n bounded(args, budget.maxArgumentBytes, 'arguments'); argumentObject(args);\n const call = { id, type: 'function', function: { name: resolve(item, custom), arguments: args } };\n const previous = chat.at(-1);\n if (previous?.role === 'assistant') {\n previous.tool_calls = [...(previous.tool_calls as JsonRecord[] ?? []), call];\n if (pendingReasoning) previous.reasoning_content = pendingReasoning;\n } else addMessage({ role: 'assistant', content: null, tool_calls: [call], ...(pendingReasoning ? { reasoning_content: pendingReasoning } : {}) });\n pendingReasoning = '';\n return;\n }\n if (item.type === 'function_call_output' || item.type === 'custom_tool_call_output') {\n const id = string(item.call_id, 'call_id', true);\n if (!callIds.has(id) || answered.has(id)) fail('invalid_tool_history', 'Unmatched or duplicate tool result');\n answered.add(id);\n const output = typeof item.output === 'string' ? item.output : normalizeContent(item.output, 'tool');\n addMessage({ role: 'tool', tool_call_id: id, content: output, ...(item.is_error === true ? { is_error: true } : {}) });\n return;\n }\n if (item.type !== undefined && item.type !== 'message') fail('unsupported_content', 'Unsupported input item type');\n const role = string(item.role, 'message role', true);\n if (!['user', 'assistant', 'system', 'developer'].includes(role)) fail('unsupported_content', 'Unknown message role');\n const message: JsonRecord = { role, content: normalizeContent(item.content, role) };\n if (pendingReasoning) { if (role !== 'assistant') fail('unsupported_reasoning', 'Reasoning must precede an assistant item'); message.reasoning_content = pendingReasoning; pendingReasoning = ''; }\n addMessage(message);\n });\n if (pendingReasoning) fail('unsupported_reasoning', 'Orphan reasoning history cannot be represented');\n const result: JsonRecord = { model, messages: chat };\n for (const key of ['stream', 'temperature', 'top_p', 'parallel_tool_calls', 'metadata']) if (body[key] !== undefined) result[key] = body[key];\n if (protocol === 'chat_completions' && body.stream === true) result.stream_options = { include_usage: true };\n const maxTokens = body.max_output_tokens ?? capabilities.maxOutputTokens;\n if (maxTokens !== undefined) {\n if (!Number.isSafeInteger(maxTokens) || (maxTokens as number) <= 0) fail('invalid_payload', 'max_output_tokens must be a positive integer');\n result[protocol === 'chat_completions' ? 'max_completion_tokens' : 'max_tokens'] = maxTokens;\n }\n if (tools.length) result.tools = tools;\n if (body.tool_choice !== undefined) {\n const choice = body.tool_choice;\n if (typeof choice === 'string') {\n if (!['auto', 'none', 'required'].includes(choice)) fail('unsupported_tool_choice', `Unsupported tool choice ${choice}`);\n result.tool_choice = protocol === 'chat_completions' ? choice : { type: choice === 'required' ? 'any' : choice };\n } else {\n const c = record(choice, 'tool_choice');\n if (c.type !== 'function' && c.type !== 'custom') fail('unsupported_tool_choice', 'Forced hosted tools are unsupported');\n const wire = byOriginal.get(identity(string(c.name, 'tool choice name', true), c.namespace === undefined ? undefined : string(c.namespace, 'tool choice namespace')));\n if (!wire || !tools.some(t => t.name === wire || (t.function as JsonRecord | undefined)?.name === wire)) fail('unsupported_tool_choice', 'Forced tool is not declared');\n result.tool_choice = protocol === 'chat_completions' ? { type: 'function', function: { name: wire } } : { type: 'tool', name: wire };\n }\n }\n applyResponsesPreferences(body, result, protocol, capabilities, maxTokens, diagnostics);\n if (body.text !== undefined) atParam('text.format', () => {\n const text = record(body.text, 'text');\n if (text.format !== undefined) {\n const format = record(text.format, 'text format');\n const allowed = format.type === 'json_schema' ? ['type','name','schema','strict','description'] : ['type'];\n for (const key of Object.keys(format)) if (!allowed.includes(key)) fail('unsupported_request', 'Unsupported output format field', `text.format.${key}`);\n if (format.type === 'json_schema') {\n atParam('text.format.name', () => string(format.name, 'output schema name', true));\n atParam('text.format.schema', () => record(format.schema, 'output schema'));\n if (format.strict !== undefined && typeof format.strict !== 'boolean') fail('invalid_payload', 'Output schema strict must be boolean', 'text.format.strict');\n if (format.description !== undefined) atParam('text.format.description', () => string(format.description, 'output schema description'));\n }\n if (protocol !== 'chat_completions' && format.type !== 'text') fail('unsupported_request', 'Anthropic structured output requires a separate provider capability');\n if (format.type === 'json_schema') result.response_format = { type: 'json_schema', json_schema: { name: format.name, schema: format.schema, ...(format.strict !== undefined ? { strict: format.strict } : {}), ...(format.description !== undefined ? { description: format.description } : {}) } };\n else if (format.type === 'json_object' || format.type === 'text') { if (protocol === 'chat_completions') result.response_format = format; }\n else fail('unsupported_request', 'Unknown text format');\n }\n });\n if (protocol === 'anthropic_messages') {\n const system: string[] = [];\n const messages: JsonRecord[] = [];\n const append = (role: string, content: JsonRecord[]): void => {\n const previous = messages.at(-1);\n if (previous?.role === role) (previous.content as JsonRecord[]).push(...content);\n else messages.push({ role, content });\n };\n for (const msg of chat) {\n if (msg.role === 'system' || msg.role === 'developer') {\n if (messages.length) fail('unsupported_content', 'Mid-conversation system instructions cannot be relocated safely', `${messageParams.get(msg)}.role`);\n system.push(typeof msg.content === 'string' ? msg.content : (msg.content as JsonRecord[]).map(p => string(p.text, 'system text')).join(''));\n continue;\n }\n if (msg.role === 'tool') {\n append('user', [{ type: 'tool_result', tool_use_id: msg.tool_call_id, content: msg.content, ...(msg.is_error ? { is_error: true } : {}) }]);\n } else {\n const content: JsonRecord[] = msg.content == null ? [] : typeof msg.content === 'string' ? [{ type: 'text', text: msg.content }] : msg.content as JsonRecord[];\n for (const call of msg.tool_calls as JsonRecord[] ?? []) {\n const fn = call.function as JsonRecord;\n content.push({ type: 'tool_use', id: call.id, name: fn.name, input: argumentObject(fn.arguments as string) });\n }\n append(msg.role as string, content);\n }\n }\n result.messages = messages;\n if (system.length) result.system = system.join('\\n');\n if (maxTokens === undefined) fail('missing_capability', 'Anthropic requires max_output_tokens or capabilities.maxOutputTokens');\n if (body.parallel_tool_calls !== undefined) {\n result.tool_choice = { ...record(result.tool_choice ?? { type: 'auto' }, 'tool_choice'), disable_parallel_tool_use: body.parallel_tool_calls === false };\n delete result.parallel_tool_calls;\n }\n }\n return { body: result, toolNames, canonicalInput, diagnostics };\n}\n",
44
46
  "import { protocolSSEOutput } from '@jeffusion/bungee-core/plugin';\n/**\n * AI Transformer Plugin\n *\n * 统一的 AI 格式转换插件,通过配置支持多种转换方向\n *\n * 使用方式:\n * ```json\n * {\n * \"name\": \"ai-transformer\",\n * \"options\": {\n * \"from\": \"anthropic\",\n * \"to\": \"openai\"\n * }\n * }\n * ```\n *\n * 支持的转换方向:\n * - anthropic ↔ openai\n * - anthropic ↔ gemini\n * - openai ↔ gemini\n */\n\nimport type { Plugin } from '@jeffusion/bungee-core/plugin';\nimport { definePlugin } from '@jeffusion/bungee-core/plugin';\nimport type { PluginHooks } from '@jeffusion/bungee-core/plugin';\nimport {\n type AIConverter,\n ProtocolTransformerRegistry as TransformerRegistry,\n registerDefaultProtocolConverters\n} from '@jeffusion/bungee-llms/plugin-api';\nimport { logger } from '@jeffusion/bungee-core/plugin';\n\n/**\n * AI Transformer Plugin Options\n */\ninterface AITransformerOptions {\n from: string;\n to: string;\n\n anthropicToOpenAIApiMode?: 'chat_completions' | 'responses';\n}\n\ntype MaybeAITransformerOptions = AITransformerOptions | undefined;\n\n/**\n * AI Transformer Plugin\n *\n * 通过配置动态选择转换器,实现统一的转换接口\n */\nclass AITransformerPluginImpl implements Plugin {\n // 保留必要的静态属性(用于类型检查和向后兼容)\n // 详细元数据从 manifest.json 读取\n static readonly name = 'ai-transformer';\n static readonly version = '2.0.0';\n\n converter: AIConverter;\n options: AITransformerOptions;\n private readonly activeRequests = new Set<string>();\n\n constructor(options: MaybeAITransformerOptions) {\n const hasNoRouteDirection = !options || (!options.from && !options.to);\n if (hasNoRouteDirection) {\n this.options = { from: '', to: '' };\n this.converter = { from: '', to: '' };\n return;\n }\n\n if (!options.from || !options.to) {\n throw new Error(\n 'AITransformerPlugin requires both \"from\" and \"to\" in options.\\n' +\n 'Example: { \"from\": \"anthropic\", \"to\": \"openai\" }\\n\\n' +\n 'Available formats: anthropic, openai, gemini'\n );\n }\n\n this.options = options;\n\n try {\n this.converter = TransformerRegistry.get(options.from, options.to);\n this.converter.setRuntimeOptions?.(options);\n\n if (options.from === 'anthropic' && options.to === 'openai') {\n const converterWithMode = this.converter as AIConverter & { setApiMode?: (mode: unknown) => void };\n converterWithMode.setApiMode?.(options.anthropicToOpenAIApiMode);\n }\n\n logger.info(\n { from: options.from, to: options.to },\n 'AI transformer initialized'\n );\n } catch (error) {\n logger.error(\n { error, from: options.from, to: options.to },\n 'Failed to initialize AI transformer'\n );\n throw error;\n }\n }\n\n /**\n * 注册插件 hooks\n */\n bodyRequirements(context: import('@jeffusion/bungee-core/plugin').PluginBodyRequirementContext): import('@jeffusion/bungee-core/plugin').PluginBodyRequirements {\n const path = context.url.pathname;\n const matched = this.options.from === 'anthropic' ? (['/v1/messages', '/messages'].includes(path) || path.endsWith('/messages/count_tokens')) : this.options.from === 'openai' ? ['/v1/chat/completions', '/v1/responses'].includes(path) : this.options.from === 'gemini' ? /(?:generateContent|streamGenerateContent)$/.test(path) : false;\n return this.options.from && this.options.to && this.options.from !== this.options.to && context.method.toUpperCase() === 'POST' && matched ? { request: 'json-write', response: ['json', 'sse-json'] } : { request: 'none' };\n }\n\n register(hooks: PluginHooks): void {\n hooks.onFinally.tap('ai-transformer-cleanup', ctx => { this.activeRequests.delete(ctx.requestId); });\n // 1. 请求前处理:转换请求格式\n if (this.converter.onBeforeRequest) {\n hooks.onBeforeRequest.tapPromise(\n { name: 'ai-transformer', stage: 0 },\n async (ctx) => {\n if (this.bodyRequirements({ ...ctx, stage: 'selected' }).request === 'none') return ctx;\n this.activeRequests.add(ctx.requestId);\n try {\n await this.converter.onBeforeRequest!(ctx);\n logger.debug(\n { from: this.options.from, to: this.options.to, path: ctx.url.pathname },\n 'Request transformed'\n );\n } catch (error) {\n logger.error(\n { error, from: this.options.from, to: this.options.to },\n 'Error transforming request'\n );\n throw error;\n }\n return ctx;\n }\n );\n }\n\n // 2. 响应处理:转换响应格式\n if (this.converter.onResponse) {\n hooks.onResponse.tapPromise(\n { name: 'ai-transformer' },\n async (response, ctx) => {\n if (!this.activeRequests.has(ctx.requestId)) return response;\n try {\n const result = await this.converter.onResponse!({ ...ctx, response, bodyHandle: ctx.bodyHandle! });\n if (result) {\n logger.debug(\n { from: this.options.from, to: this.options.to },\n 'Response transformed'\n );\n return result;\n }\n return response;\n } catch (error) {\n logger.error(\n { error, from: this.options.from, to: this.options.to },\n 'Error transforming response'\n );\n throw error;\n }\n }\n );\n }\n\n // 3. 流式响应块处理:转换流数据格式\n if (this.converter.processStreamChunk) {\n hooks.onStreamChunk.tapPromise(\n { name: 'ai-transformer', stage: 0 },\n async (envelope, ctx) => {\n if (!this.activeRequests.has(ctx.requestId) || envelope.json === undefined) return null;\n try {\n const result = await this.converter.processStreamChunk!(structuredClone(envelope.json), { ...ctx, sseEvent: envelope });\n return result ? protocolSSEOutput(result, this.options.from, envelope) : null;\n } catch (error) {\n logger.error(\n { error, from: this.options.from, to: this.options.to },\n 'Error processing stream chunk'\n );\n throw error;\n }\n }\n );\n }\n\n // 4. 流结束时刷新缓冲区\n if (this.converter.flushStream) {\n hooks.onFlushStream.tapPromise(\n { name: 'ai-transformer' },\n async (chunks, ctx) => {\n if (!this.activeRequests.has(ctx.requestId)) return chunks;\n try {\n const flushed = await this.converter.flushStream!(ctx);\n // 合并已有的 chunks 和新刷新的 chunks\n return [...chunks, ...protocolSSEOutput(flushed, this.options.from)];\n } catch (error) {\n logger.error(\n { error, from: this.options.from, to: this.options.to },\n 'Error flushing stream'\n );\n throw error;\n }\n }\n );\n }\n }\n\n /**\n * 重置插件状态(对象池复用时调用)\n */\n async reset(): Promise<void> {\n // Transformer 是无状态的,不需要重置\n }\n\n}\n\nexport const AITransformerPlugin = definePlugin(AITransformerPluginImpl);\n\n// 注册所有内置 converters\nregisterDefaultProtocolConverters();\n\nexport default AITransformerPlugin;\n"
45
47
  ],
46
- "mappings": "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",
47
- "debugId": "352AAC1622093B7F64756E2164756E21",
48
+ "mappings": "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",
49
+ "debugId": "4BECC177ACC1CE4664756E2164756E21",
48
50
  "names": []
49
51
  }