@jeffusion/bungee-core 5.23.0 → 5.23.2

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 (29) hide show
  1. package/dist/config-storage-worker.js +3 -1
  2. package/dist/main.js +2756 -295
  3. package/dist/plugins/chatgpt-oauth/index.js +92 -20
  4. package/dist/plugins/chatgpt-oauth/index.js.map +4 -4
  5. package/dist/plugins/codex-router/control.js +606 -2
  6. package/dist/plugins/codex-router/control.js.map +20 -5
  7. package/dist/plugins/codex-router/index.js +2459 -94
  8. package/dist/plugins/codex-router/index.js.map +20 -8
  9. package/dist/plugins/codex-router/manifest.json +14 -14
  10. package/dist/plugins/llm-protocol-adapter/control.js +96 -21
  11. package/dist/plugins/llm-protocol-adapter/control.js.map +8 -7
  12. package/dist/plugins/llm-protocol-adapter/index.js +134 -38
  13. package/dist/plugins/llm-protocol-adapter/index.js.map +11 -10
  14. package/dist/plugins/model-mapping/control.js +1 -1
  15. package/dist/plugins/model-mapping/control.js.map +3 -3
  16. package/dist/plugins/model-mapping/index.js +48 -17
  17. package/dist/plugins/model-mapping/index.js.map +6 -5
  18. package/dist/plugins/model-mapping/manifest.json +50 -6
  19. package/dist/plugins/models-dev/control.js +1 -1
  20. package/dist/plugins/models-dev/control.js.map +3 -3
  21. package/dist/plugins/models-dev/index.js +1 -1
  22. package/dist/plugins/models-dev/index.js.map +3 -3
  23. package/dist/plugins/token-metering/index.js +1 -1
  24. package/dist/plugins/token-metering/index.js.map +1 -1
  25. package/dist/plugins/token-stats/control.js +1 -1
  26. package/dist/plugins/token-stats/control.js.map +3 -3
  27. package/dist/plugins/token-stats/index.js +1 -1
  28. package/dist/plugins/token-stats/index.js.map +3 -3
  29. package/package.json +2 -2
@@ -20,10 +20,10 @@
20
20
  "import type { PluginStorage } from '@jeffusion/bungee-core/plugin';\n\n/** Pricing aliases never rewrite a request or the recorded model name. */\nexport interface PriceModelMapping { source: string; provider: string; model: string }\nexport interface PriceModelOption { provider: string; providerName: string; model: string; name: string }\nexport const PRICE_MODEL_MAPPINGS_KEY = 'pricing:model-mappings:v1';\nexport const MAX_PRICE_MODEL_MAPPINGS = 100;\n\n/** SQLite KV get() is best-effort and hides failures; pricing aliases need strict reads. */\nexport async function readPriceModelMappings(storage: PluginStorage): Promise<PriceModelMapping[]> {\n if (!storage.readStrict) throw new Error('token-stats strict storage capability is required');\n const result = await storage.readStrict(PRICE_MODEL_MAPPINGS_KEY);\n return parsePriceModelMappings(result.found ? result.value : []);\n}\n\nexport function isUnchangedPriceModelMapping(mapping: PriceModelMapping, existing: readonly PriceModelMapping[]): boolean {\n return existing.some(item => item.source === mapping.source && item.provider === mapping.provider && item.model === mapping.model);\n}\n\nexport function parsePriceModelMappings(value: unknown): PriceModelMapping[] {\n if (!Array.isArray(value) || value.length > MAX_PRICE_MODEL_MAPPINGS) throw new Error('invalid_input');\n const sources = new Set<string>();\n return value.map(item => {\n if (!item || typeof item !== 'object' || Array.isArray(item)\n || Object.keys(item).some(key => !['source', 'provider', 'model'].includes(key))) throw new Error('invalid_input');\n const { source, provider, model } = item;\n for (const [text, limit] of [[source, 256], [provider, 128], [model, 256]] as const) {\n if (typeof text !== 'string' || !text.trim() || text !== text.trim() || text.length > limit\n || /[\\u0000-\\u001f\\u007f]/.test(text)) throw new Error('invalid_input');\n }\n if (sources.has(source)) throw new Error('invalid_input');\n sources.add(source);\n return { source, provider, model };\n });\n}\n",
21
21
  "import type {\n PluginStorage,\n TokenStatsAttempt,\n TokenStatsMetricName,\n TokenStatsMeteringStorage,\n TokenStatsSnapshotMetrics,\n TokenStatsRange,\n} from '@jeffusion/bungee-core/plugin';\nimport type { CanonicalTokenAccountingEventV2 } from '@jeffusion/bungee-llms/plugin-api';\n// The control artifact needs only authority names, not the worker conversion runtime.\nconst TOKEN_ACCOUNTING_AUTHORITIES = ['official', 'local', 'heuristic', 'partial', 'none'] as const satisfies readonly CanonicalTokenAccountingEventV2['inputAuthority'][];\nimport { SQLiteTokenStatsMetering } from './storage';\nimport { TOKEN_STATS_RANGES, TOKEN_STATS_RETENTION_MS } from '@jeffusion/bungee-core/plugin';\nimport { PRICE_MODEL_MAPPINGS_KEY, readPriceModelMappings, type PriceModelMapping } from './model-mappings';\n\nexport type GroupByDimension = 'model' | 'time';\ntype TokenAccountingAuthority = typeof TOKEN_ACCOUNTING_AUTHORITIES[number];\nexport type CanonicalEvent = CanonicalTokenAccountingEventV2;\n\nexport interface AuthorityBreakdownDto {\n input: Record<TokenAccountingAuthority, number>;\n output: Record<TokenAccountingAuthority, number>;\n}\n\nexport interface GroupedAggregateDto {\n dimension: string;\n bucketStartMs?: number;\n inputTokens: number;\n outputTokens: number;\n officialInputTokens: number;\n officialOutputTokens: number;\n estimatedInputTokens: number;\n estimatedOutputTokens: number;\n cacheReadTokens: number;\n cacheWriteTokens: number;\n partialOutputs: number;\n logicalRequests: number;\n upstreamAttempts: number;\n observationIncompleteAttempts: number;\n estimatedCostUsd: number | null;\n authorityBreakdown: AuthorityBreakdownDto;\n}\n\nexport interface AggregateDto extends Omit<GroupedAggregateDto, 'dimension' | 'bucketStartMs' | 'inputTokens' | 'outputTokens'> {\n /** Sticky evidence of dropped or failed reporting, shared across worker/control processes. */\n reportingIncomplete: boolean;\n groupBy: GroupByDimension;\n asOfMs: number;\n bucketMs?: number;\n bucketStarts?: number[];\n bucketEndMs?: number;\n totalInputTokens: number;\n totalOutputTokens: number;\n data: GroupedAggregateDto[];\n}\n\nexport class TokenStatsRepositoryError extends Error {\n constructor(message: string) { super(message); this.name = 'TokenStatsRepositoryError'; }\n}\n\nexport class TokenStatsRepositoryLimitError extends TokenStatsRepositoryError {}\n\nexport interface ClientModelPage {\n /** Distinct raw client/attempt model names, exactly as recorded (original case). */\n models: string[];\n total: number;\n page: number;\n pageSize: number;\n}\n\nexport const MAX_CLIENT_MODEL_PAGE_SIZE = 100;\nexport const MAX_CLIENT_MODEL_PAGE = 400;\nconst CLIENT_MODEL_KEYWORD_MAX = 256;\n\nexport const REPORTING_INCOMPLETE_KEY = 'reporting:incomplete';\n\ntype MeteringLogger = { onFailure?(): void; warn(message: string, metadata?: object): void; error(message: string, metadata?: object): void };\ntype AttemptTask = () => TokenStatsAttempt | undefined | Promise<TokenStatsAttempt | undefined>;\ntype QueuedAttempt = { metering: TokenStatsMeteringStorage; task: AttemptTask; logger: MeteringLogger };\n\nconst MAX_PENDING_ATTEMPTS = 256;\nconst LOG_INTERVAL_MS = 60_000;\nconst pendingAttempts: QueuedAttempt[] = [];\nlet pendingCount = 0;\nlet drainTimer: ReturnType<typeof setTimeout> | undefined;\nlet draining = false;\nlet lastDropLogAt = 0;\nlet lastFailureLogAt = 0;\n\nfunction logRateLimited(logger: MeteringLogger, kind: 'drop' | 'failure', error?: unknown): void {\n try { logger.onFailure?.(); } catch { /* failure reporting must not affect proxy flow */ }\n const now = Date.now();\n if (kind === 'drop') {\n if (now - lastDropLogAt < LOG_INTERVAL_MS) return;\n lastDropLogAt = now;\n try { logger.warn('Token stats attempt queue full; dropping metering rows', { capacity: MAX_PENDING_ATTEMPTS }); } catch { /* logging must not affect proxy flow */ }\n return;\n }\n if (now - lastFailureLogAt < LOG_INTERVAL_MS) return;\n lastFailureLogAt = now;\n try {\n logger.error('Token stats attempt processing failed; dropping metering row', {\n error: error instanceof Error ? error.message : error === undefined ? 'attempt task returned no row' : String(error),\n });\n } catch { /* logging must not affect proxy flow */ }\n}\n\nfunction scheduleDrain(): void {\n if (drainTimer !== undefined || draining) return;\n drainTimer = setTimeout(() => { drainTimer = undefined; void drainOneAttempt(); }, 0);\n}\n\nasync function drainOneAttempt(): Promise<void> {\n if (draining) return;\n const item = pendingAttempts.shift();\n if (!item) return;\n draining = true;\n try {\n try {\n const row = await item.task();\n if (row === undefined) {\n logRateLimited(item.logger, 'failure');\n } else {\n await item.metering.recordAttempt(row);\n }\n } catch (error) {\n logRateLimited(item.logger, 'failure', error);\n }\n } finally {\n pendingCount--;\n draining = false;\n if (pendingAttempts.length) scheduleDrain();\n }\n}\n\nconst METRIC_FIELDS: readonly TokenStatsMetricName[] = [\n 'inputTokens', 'outputTokens', 'officialInputTokens', 'officialOutputTokens',\n 'estimatedInputTokens', 'estimatedOutputTokens', 'cacheReadTokens', 'cacheWriteTokens',\n 'partialOutputs', 'logicalRequests', 'upstreamAttempts', 'observationIncompleteAttempts',\n 'inputAuthorityOfficial', 'inputAuthorityLocal', 'inputAuthorityHeuristic', 'inputAuthorityPartial', 'inputAuthorityNone',\n 'outputAuthorityOfficial', 'outputAuthorityLocal', 'outputAuthorityHeuristic', 'outputAuthorityPartial', 'outputAuthorityNone',\n];\n\nfunction emptyMetrics(): TokenStatsSnapshotMetrics {\n return { ...Object.fromEntries(METRIC_FIELDS.map((key) => [key, 0])) as Record<TokenStatsMetricName, number>, estimatedCostUsd: null };\n}\n\nfunction emptyAuthorityBreakdown(): AuthorityBreakdownDto {\n const empty = () => Object.fromEntries(TOKEN_ACCOUNTING_AUTHORITIES.map((authority) => [authority, 0])) as Record<TokenAccountingAuthority, number>;\n return { input: empty(), output: empty() };\n}\n\nfunction metricsToDto(metrics: TokenStatsSnapshotMetrics): Omit<GroupedAggregateDto, 'dimension'> {\n const authorityBreakdown = emptyAuthorityBreakdown();\n for (const authority of TOKEN_ACCOUNTING_AUTHORITIES) {\n authorityBreakdown.input[authority] = metrics[`inputAuthority${authority[0]!.toUpperCase()}${authority.slice(1)}` as TokenStatsMetricName];\n authorityBreakdown.output[authority] = metrics[`outputAuthority${authority[0]!.toUpperCase()}${authority.slice(1)}` as TokenStatsMetricName];\n }\n return {\n inputTokens: metrics.inputTokens,\n outputTokens: metrics.outputTokens,\n officialInputTokens: metrics.officialInputTokens,\n officialOutputTokens: metrics.officialOutputTokens,\n estimatedInputTokens: metrics.estimatedInputTokens,\n estimatedOutputTokens: metrics.estimatedOutputTokens,\n cacheReadTokens: metrics.cacheReadTokens,\n cacheWriteTokens: metrics.cacheWriteTokens,\n partialOutputs: metrics.partialOutputs,\n logicalRequests: metrics.logicalRequests,\n upstreamAttempts: metrics.upstreamAttempts,\n observationIncompleteAttempts: metrics.observationIncompleteAttempts,\n estimatedCostUsd: metrics.estimatedCostUsd,\n authorityBreakdown,\n };\n}\n\nfunction sourceFor(value: number | undefined, authority: CanonicalTokenAccountingEventV2['inputAuthority']): TokenStatsAttempt['input_source'] {\n if (!Number.isSafeInteger(value) || value! < 0) return 'unknown';\n if (authority === 'official') return 'usage';\n if (authority === 'partial') return 'partial';\n return authority === 'none' ? 'unknown' : 'estimated';\n}\n\nexport function attemptRowFromEvent(\n event: CanonicalEvent,\n finishedAtMs: number,\n observationIncomplete: boolean,\n model: string,\n): TokenStatsAttempt {\n const inputSource = sourceFor(event.inputTokens, event.inputAuthority);\n const outputSource = sourceFor(event.outputTokens, event.outputAuthority);\n return {\n attempt_id: event.attemptId,\n request_id: event.requestId,\n finished_at_ms: finishedAtMs,\n route_id: event.routeId || 'unknown',\n upstream_id: event.upstreamId || 'unknown',\n provider: event.provider || 'unknown',\n outcome: event.outcome,\n model,\n input_tokens: inputSource === 'unknown' ? null : event.inputTokens!,\n output_tokens: outputSource === 'unknown' ? null : event.outputTokens!,\n input_source: inputSource,\n output_source: outputSource,\n cache_read_tokens: Number.isSafeInteger(event.cacheReadTokens) && event.cacheReadTokens! >= 0 ? event.cacheReadTokens! : null,\n cache_write_tokens: Number.isSafeInteger(event.cacheWriteTokens) && event.cacheWriteTokens! >= 0 ? event.cacheWriteTokens! : null,\n cost_usd: null,\n observation_incomplete: observationIncomplete,\n };\n}\n\nexport class TokenStatsRepository {\n private readonly metering: TokenStatsMeteringStorage;\n\n constructor(private readonly storage: PluginStorage) {\n if (!storage.metering && !storage.observation) throw new TokenStatsRepositoryError('token-stats metering storage is required');\n this.metering = storage.metering ?? new SQLiteTokenStatsMetering(storage.observation!);\n }\n\n /** Defers synchronous task work to drain; a task can still occupy the EventLoop. */\n enqueueAttempt(task: AttemptTask, logger: MeteringLogger): boolean {\n if (pendingCount >= MAX_PENDING_ATTEMPTS) {\n logRateLimited(logger, 'drop');\n return false;\n }\n pendingAttempts.push({ metering: this.metering, task, logger });\n pendingCount++;\n scheduleDrain();\n return true;\n }\n\n async query(range: string, groupBy: GroupByDimension, asOfMs = Date.now(), timeZone?: string, keyId?: string): Promise<AggregateDto> {\n if (!(TOKEN_STATS_RANGES as readonly string[]).includes(range)) throw new TokenStatsRepositoryError('invalid token-stats range');\n if (groupBy !== 'model' && groupBy !== 'time') {\n throw new TokenStatsRepositoryError('invalid token-stats groupBy');\n }\n if (!Number.isSafeInteger(asOfMs) || asOfMs < 0) throw new TokenStatsRepositoryError('invalid token-stats asOfMs');\n const snapshot = await this.metering.queryWindowSnapshot({ asOfMs, range: range as TokenStatsRange, groupBy, timeZone, keyId });\n const total = metricsToDto(snapshot.all);\n const { inputTokens, outputTokens, ...summary } = total;\n return {\n reportingIncomplete: await (this.storage.uncached?.() ?? this.storage).get(REPORTING_INCOMPLETE_KEY) === true,\n groupBy,\n asOfMs,\n ...summary,\n totalInputTokens: inputTokens,\n totalOutputTokens: outputTokens,\n ...(snapshot.bucketMs === undefined ? {} : { bucketMs: snapshot.bucketMs }),\n ...(snapshot.bucketStarts === undefined ? {} : { bucketStarts: snapshot.bucketStarts }),\n ...(snapshot.bucketEndMs === undefined ? {} : { bucketEndMs: snapshot.bucketEndMs }),\n data: snapshot.data.map((row) => ({\n dimension: row.dimension,\n ...(row.bucketStartMs === undefined ? {} : { bucketStartMs: row.bucketStartMs }),\n ...metricsToDto(row.metrics),\n })).sort(groupBy === 'model'\n ? (a, b) => b.inputTokens + b.outputTokens - a.inputTokens - a.outputTokens\n || b.upstreamAttempts - a.upstreamAttempts || a.dimension.localeCompare(b.dimension)\n : (a, b) => a.bucketStartMs! - b.bucketStartMs! || a.dimension.localeCompare(b.dimension)),\n };\n }\n\n /**\n * Distinct real client model names within the retention window, independent of\n * the dashboard's current time-range filter or Top-N truncation. No synthetic\n * rows are inserted; a storage failure propagates instead of returning an empty\n * page. Bounded and fully reachable through paging.\n */\n async listClientModels(input: { keyword?: string; page?: number; pageSize?: number } = {}): Promise<ClientModelPage> {\n const pageSize = Math.max(1, Math.min(MAX_CLIENT_MODEL_PAGE_SIZE, Math.trunc(input.pageSize ?? 50)));\n const page = Math.max(1, Math.trunc(input.page ?? 1));\n if (!Number.isSafeInteger(page) || page > MAX_CLIENT_MODEL_PAGE) throw new TokenStatsRepositoryError('invalid token-stats page');\n const keyword = input.keyword;\n if (keyword !== undefined && (typeof keyword !== 'string' || keyword.length > CLIENT_MODEL_KEYWORD_MAX)) {\n throw new TokenStatsRepositoryError('invalid token-stats keyword');\n }\n if (this.metering.listClientModels) return this.metering.listClientModels({page,pageSize,keyword});\n throw new TokenStatsRepositoryError('token-stats client models capability is required');\n }\n\n /** Price aliases are token-stats business state, read/written through this repository. */\n async mappings(): Promise<PriceModelMapping[]> {\n return readPriceModelMappings(this.storage);\n }\n\n async configureMappings(mappings: PriceModelMapping[]): Promise<void> {\n await this.storage.set(PRICE_MODEL_MAPPINGS_KEY, mappings);\n }\n}\n",
22
22
  "/**\n * Token-stats pricing.\n *\n * There is no download, scheduler or cache here: prices come from the models-dev\n * public catalog service, and only the explicit alias mappings are owned by\n * token-stats. Protocol detection and price-provider identification are separate:\n * explicit mappings remain strict; automatic pricing uses the catalog's bounded\n * estimate lookups, including normalized names and original-lab reference prices.\n */\n\nimport type { ModelsDevCatalogService, ModelsDevModelMatch } from '../../models-dev/contract';\nimport type { PriceModelMapping } from './model-mappings';\n\nexport interface TokenStatsPricingInput {\n readonly model?: string;\n readonly provider?: string;\n /** Real upstream URL, when the caller has it; used only for provider.api matching. */\n readonly url?: string;\n readonly inputTokens?: number;\n readonly outputTokens?: number;\n readonly cacheReadTokens?: number;\n readonly cacheWriteTokens?: number;\n}\n\nconst TOKENS_PER_UNIT = 1_000_000;\n\nfunction isNonNegativeInteger(value: unknown): value is number {\n return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;\n}\n\nfunction costOf(match: ModelsDevModelMatch, input: TokenStatsPricingInput): number | null {\n const inputTokens = input.inputTokens;\n const outputTokens = input.outputTokens;\n if (!isNonNegativeInteger(inputTokens) || !isNonNegativeInteger(outputTokens)) return null;\n const cacheReads = input.cacheReadTokens ?? 0;\n const cacheWrites = input.cacheWriteTokens ?? 0;\n if (!isNonNegativeInteger(cacheReads) || !isNonNegativeInteger(cacheWrites)\n || cacheReads + cacheWrites > inputTokens) return null;\n let rates: Pick<ModelsDevModelMatch, 'input' | 'output' | 'cacheRead' | 'cacheWrite'> = match;\n // Bands are ascending and apply to the entire request, including cached input.\n for (const tier of match.contextTiers ?? []) {\n if (inputTokens < tier.minimumInputTokens) break;\n rates = tier;\n }\n const cacheRead = rates.cacheRead ?? match.cacheRead ?? rates.input;\n const cacheWrite = rates.cacheWrite ?? match.cacheWrite ?? rates.input;\n const baseInput = inputTokens - cacheReads - cacheWrites;\n const total =\n baseInput * rates.input\n + outputTokens * rates.output\n + cacheReads * cacheRead\n + cacheWrites * cacheWrite;\n const cost = total / TOKENS_PER_UNIT;\n return Number.isFinite(cost) && cost >= 0 ? cost : null;\n}\n\n/**\n * Resolve one price. Explicit aliases are exact and case-sensitive and take\n * priority over every inferred match; a missing alias target stays unknown rather\n * than falling back to another provider.\n */\nexport function calculateTokenStatsCost(\n catalog: ModelsDevCatalogService | null,\n input: TokenStatsPricingInput,\n mappings: readonly PriceModelMapping[] = [],\n): number | null {\n if (catalog === null || typeof input.model !== 'string' || input.model.length === 0) return null;\n const mapping = mappings.find(item => item.source === input.model);\n if (mapping !== undefined) {\n const target = catalog.resolveModel({ model: mapping.model, pricingProvider: mapping.provider });\n return target === null ? null : costOf(target, input);\n }\n const match = catalog.resolveModel({\n model: input.model,\n mode: 'estimate',\n ...(input.provider === undefined ? {} : { pricingProvider: input.provider }),\n ...(input.url === undefined ? {} : { url: input.url }),\n });\n return match === null ? null : costOf(match, input);\n}\n\n/** Reads the models-dev catalog service and applies token-stats aliases. */\nexport class TokenStatsPricing {\n private mappings: PriceModelMapping[] | undefined = [];\n\n constructor(private readonly catalog: ModelsDevCatalogService | null) {}\n\n /** Alias read failures must keep pricing unknown, not select a fallback price. */\n setMappings(mappings: PriceModelMapping[] | undefined): void { this.mappings = mappings; }\n\n hasMappings(): boolean { return this.mappings !== undefined; }\n\n estimate(input: TokenStatsPricingInput): number | null {\n if (this.mappings === undefined) return null;\n return calculateTokenStatsCost(this.catalog, input, this.mappings);\n }\n\n /** Catalog availability is reported separately; nothing is awaited here. */\n ready(): Promise<void> { return Promise.resolve(); }\n}\n",
23
- "/**\n * Public contract of the models-dev catalog provider.\n *\n * This is the ONLY file other plugins may import from models-dev. It contains the\n * declared service identity, the wire-contract snapshot literal and the data types\n * of the read surface; it never exposes the downloader, the private storage keys or\n * the internal catalog representation.\n *\n * Consumers must declare a real dependency on `models-dev` and consume the local\n * service for their own process. The service methods are synchronous and read an\n * already-loaded in-memory view: no per-request network or SQL is performed.\n */\n\n/** Provider plugin name. Must match the manifest. */\nexport const MODELS_DEV_PLUGIN_NAME = 'models-dev';\n\n/** The single upstream source; models-dev is the only component allowed to fetch it. */\nexport const MODELS_DEV_SOURCE_URL = 'https://models.dev/api.json';\n\n/** Same-process local read service, published in both the control and worker processes. */\nexport const MODELS_DEV_CATALOG_SERVICE_ID = 'models-dev.catalog.v1';\nexport const MODELS_DEV_CATALOG_CONTRACT_VERSION = 1;\n\n/** Versioned immutable snapshot of the full catalog, published by the control writer. */\nexport const MODELS_DEV_CATALOG_SNAPSHOT_ID = 'models-dev.catalog.snapshot.v1';\nexport const MODELS_DEV_CATALOG_SNAPSHOT_CONTRACT_VERSION = 1;\n/**\n * One atomic record keeps fetchedAt and the immutable catalog with its version.\n * The catalog remains unrestricted JSON so every upstream field is preserved.\n */\nexport const MODELS_DEV_CATALOG_SNAPSHOT_SCHEMA = Object.freeze({\n type: 'object', properties: {\n version: { type: 'number', integer: true, minimum: 1 },\n fetchedAt: { type: 'number', minimum: 0 },\n catalog: { type: 'json', maxBytes: 32 * 1024 * 1024 },\n },\n} as const);\nexport const MODELS_DEV_CATALOG_SNAPSHOT_CONTRACT = Object.freeze({\n id: MODELS_DEV_CATALOG_SNAPSHOT_ID,\n version: MODELS_DEV_CATALOG_SNAPSHOT_CONTRACT_VERSION,\n content: MODELS_DEV_CATALOG_SNAPSHOT_SCHEMA,\n});\n\n/** Catalog availability is separate from whether the service is published. */\nexport type ModelsDevCatalogState = 'empty' | 'ready' | 'stale' | 'failed';\n\nexport interface ModelsDevCatalogStatus {\n readonly state: ModelsDevCatalogState;\n /** Monotonic published data version; `null` before the first successful load. */\n readonly version: number | null;\n readonly fetchedAt: number | null;\n readonly providerCount: number;\n readonly modelCount: number;\n /** Last failure reason; `null` after a fully successful load. */\n readonly error: string | null;\n}\n\nexport interface ModelsDevProviderSummary {\n readonly provider: string;\n readonly name: string;\n /** Normalized upstream API base (`provider.api`), or `null` when models.dev declares none. */\n readonly api: string | null;\n readonly modelCount: number;\n}\n\n/** One selectable catalog model. `provider` is the pricing provider, never the protocol. */\nexport interface ModelsDevModelOption {\n readonly provider: string;\n readonly providerName: string;\n readonly model: string;\n readonly name: string;\n}\n\nexport interface ModelsDevModelPage {\n readonly models: readonly ModelsDevModelOption[];\n readonly total: number;\n /** 1-based page actually returned. */\n readonly page: number;\n readonly pageSize: number;\n}\n\n/** USD per million tokens, applied to the whole request at this input threshold. */\nexport interface ModelsDevContextTier {\n readonly minimumInputTokens: number;\n readonly input: number;\n readonly output: number;\n readonly cacheRead: number | null;\n readonly cacheWrite: number | null;\n}\n\n/** A resolved catalog entry with optional ascending context price bands. */\nexport interface ModelsDevModelMatch {\n readonly provider: string;\n readonly model: string;\n readonly input: number;\n readonly output: number;\n readonly cacheRead: number | null;\n readonly cacheWrite: number | null;\n readonly tiered: boolean;\n readonly contextTiers?: readonly ModelsDevContextTier[];\n}\n\nexport interface ModelsDevProviderMatch {\n readonly provider: string;\n}\n\n/**\n * The declared local read surface. Implementations must be side-effect free and\n * must never throw for a miss/corruption of the current view: an unavailable\n * catalog returns an `empty`/`failed` status instead of a fabricated price.\n */\nexport interface ModelsDevCatalogService {\n status(): ModelsDevCatalogStatus;\n providers(): readonly ModelsDevProviderSummary[];\n modelOptions(input?: { readonly provider?: string; readonly search?: string; readonly page?: number; readonly pageSize?: number }): ModelsDevModelPage;\n /**\n * Resolve exactly one catalog entry for a client model name.\n *\n * `url` (when supplied) is canonicalized to host + path and matched against the\n * full catalog's `provider.api`; more than one candidate is ambiguous and returns\n * null. `pricingProvider` is a catalog provider id and takes priority over URL and\n * prefix inference. A model id present under several providers without an explicit\n * provider is ambiguous. Matching defaults to exact and case-sensitive.\n * `estimate` additionally permits normalized names, original-lab prices and\n * dated members of the same family. Explicit provider IDs remain binding;\n * an unresolved URL is only a hint in estimate mode.\n */\n resolveModel(input: { readonly model: string; readonly pricingProvider?: string; readonly url?: string; readonly mode?: 'exact' | 'estimate' }): ModelsDevModelMatch | null;\n /** Resolve one provider from a real upstream URL via `provider.api`; ambiguous/none => null. */\n resolveProvider(input: { readonly url: string }): ModelsDevProviderMatch | null;\n}\n\n/** Capability reads are additive; existing catalog.v1 consumers stay unchanged. */\nexport const MODELS_DEV_CAPABILITIES_SERVICE_ID = 'models-dev.capabilities.v1';\nexport const MODELS_DEV_CAPABILITIES_CONTRACT_VERSION = 1;\n/** Upstream control values; null/default do not name a concrete effort level. */\nexport type ModelsDevReasoningEffortValue = null | 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'default';\n/** Validated models.dev reasoning_options, without inferred controls or levels. */\nexport type ModelsDevReasoningOption =\n | { readonly type: 'effort'; readonly values: readonly ModelsDevReasoningEffortValue[] }\n | { readonly type: 'toggle' }\n | { readonly type: 'budget_tokens'; readonly min?: number; readonly max?: number };\nexport type ModelsDevReasoningOptionsStatus = 'known' | 'missing' | 'invalid';\nexport interface ModelsDevCapabilities {\n readonly provider: string;\n readonly model: string;\n readonly name: string;\n readonly contextWindow: number | null;\n readonly outputLimit: number | null;\n readonly toolCall: boolean;\n readonly reasoning: boolean;\n /** null for missing/invalid metadata; a validated empty list remains known. */\n readonly reasoningOptions: readonly ModelsDevReasoningOption[] | null;\n readonly reasoningOptionsStatus: ModelsDevReasoningOptionsStatus;\n /** Version of the same complete snapshot that supplied all fields of this result. */\n readonly catalogVersion: number;\n readonly inputModalities: readonly string[];\n}\nexport interface ModelsDevCapabilitiesService {\n status(): ModelsDevCatalogStatus;\n /** Without a provider, require a unique exact model or a declared API URL match. */\n model(input: { readonly provider?: string; readonly model: string; readonly url?: string }): ModelsDevCapabilities | null;\n}\n",
23
+ "/**\n * Public contract of the models-dev catalog provider.\n *\n * This is the ONLY file other plugins may import from models-dev. It contains the\n * declared service identity, the wire-contract snapshot literal and the data types\n * of the read surface; it never exposes the downloader, the private storage keys or\n * the internal catalog representation.\n *\n * Consumers must declare a real dependency on `models-dev` and consume the local\n * service for their own process. The service methods are synchronous and read an\n * already-loaded in-memory view: no per-request network or SQL is performed.\n */\n\n/** Provider plugin name. Must match the manifest. */\nexport const MODELS_DEV_PLUGIN_NAME = 'models-dev';\n\n/** Explicit catalog identity, independent from the provider's wire model name. */\nexport interface CatalogModelReference {\n readonly provider: string;\n readonly model: string;\n}\nexport interface ModelIdentityDeclaration {\n readonly wireModel: string;\n readonly catalogModel: CatalogModelReference;\n}\nexport const MODEL_IDENTITY_ANNOTATION_KEY = 'models-dev.model-identity';\n\n/** The single upstream source; models-dev is the only component allowed to fetch it. */\nexport const MODELS_DEV_SOURCE_URL = 'https://models.dev/api.json';\n\n/** Same-process local read service, published in both the control and worker processes. */\nexport const MODELS_DEV_CATALOG_SERVICE_ID = 'models-dev.catalog.v1';\nexport const MODELS_DEV_CATALOG_CONTRACT_VERSION = 1;\n\n/** Versioned immutable snapshot of the full catalog, published by the control writer. */\nexport const MODELS_DEV_CATALOG_SNAPSHOT_ID = 'models-dev.catalog.snapshot.v1';\nexport const MODELS_DEV_CATALOG_SNAPSHOT_CONTRACT_VERSION = 1;\n/**\n * One atomic record keeps fetchedAt and the immutable catalog with its version.\n * The catalog remains unrestricted JSON so every upstream field is preserved.\n */\nexport const MODELS_DEV_CATALOG_SNAPSHOT_SCHEMA = Object.freeze({\n type: 'object', properties: {\n version: { type: 'number', integer: true, minimum: 1 },\n fetchedAt: { type: 'number', minimum: 0 },\n catalog: { type: 'json', maxBytes: 32 * 1024 * 1024 },\n },\n} as const);\nexport const MODELS_DEV_CATALOG_SNAPSHOT_CONTRACT = Object.freeze({\n id: MODELS_DEV_CATALOG_SNAPSHOT_ID,\n version: MODELS_DEV_CATALOG_SNAPSHOT_CONTRACT_VERSION,\n content: MODELS_DEV_CATALOG_SNAPSHOT_SCHEMA,\n});\n\n/** Catalog availability is separate from whether the service is published. */\nexport type ModelsDevCatalogState = 'empty' | 'ready' | 'stale' | 'failed';\n\nexport interface ModelsDevCatalogStatus {\n readonly state: ModelsDevCatalogState;\n /** Monotonic published data version; `null` before the first successful load. */\n readonly version: number | null;\n readonly fetchedAt: number | null;\n readonly providerCount: number;\n readonly modelCount: number;\n /** Last failure reason; `null` after a fully successful load. */\n readonly error: string | null;\n}\n\nexport interface ModelsDevProviderSummary {\n readonly provider: string;\n readonly name: string;\n /** Normalized upstream API base (`provider.api`), or `null` when models.dev declares none. */\n readonly api: string | null;\n readonly modelCount: number;\n}\n\n/** One selectable catalog model. `provider` is the pricing provider, never the protocol. */\nexport interface ModelsDevModelOption {\n readonly provider: string;\n readonly providerName: string;\n readonly model: string;\n readonly name: string;\n}\n\nexport interface ModelsDevModelPage {\n readonly models: readonly ModelsDevModelOption[];\n readonly total: number;\n /** 1-based page actually returned. */\n readonly page: number;\n readonly pageSize: number;\n}\n\n/** USD per million tokens, applied to the whole request at this input threshold. */\nexport interface ModelsDevContextTier {\n readonly minimumInputTokens: number;\n readonly input: number;\n readonly output: number;\n readonly cacheRead: number | null;\n readonly cacheWrite: number | null;\n}\n\n/** A resolved catalog entry with optional ascending context price bands. */\nexport interface ModelsDevModelMatch {\n readonly provider: string;\n readonly model: string;\n readonly input: number;\n readonly output: number;\n readonly cacheRead: number | null;\n readonly cacheWrite: number | null;\n readonly tiered: boolean;\n readonly contextTiers?: readonly ModelsDevContextTier[];\n}\n\nexport interface ModelsDevProviderMatch {\n readonly provider: string;\n}\n\n/**\n * The declared local read surface. Implementations must be side-effect free and\n * must never throw for a miss/corruption of the current view: an unavailable\n * catalog returns an `empty`/`failed` status instead of a fabricated price.\n */\nexport interface ModelsDevCatalogService {\n status(): ModelsDevCatalogStatus;\n providers(): readonly ModelsDevProviderSummary[];\n modelOptions(input?: { readonly provider?: string; readonly search?: string; readonly page?: number; readonly pageSize?: number }): ModelsDevModelPage;\n /**\n * Resolve exactly one catalog entry for a client model name.\n *\n * `url` (when supplied) is canonicalized to host + path and matched against the\n * full catalog's `provider.api`; more than one candidate is ambiguous and returns\n * null. `pricingProvider` is a catalog provider id and takes priority over URL and\n * prefix inference. A model id present under several providers without an explicit\n * provider is ambiguous. Matching defaults to exact and case-sensitive.\n * `estimate` additionally permits normalized names, original-lab prices and\n * dated members of the same family. Explicit provider IDs remain binding;\n * an unresolved URL is only a hint in estimate mode.\n */\n resolveModel(input: { readonly model: string; readonly pricingProvider?: string; readonly url?: string; readonly mode?: 'exact' | 'estimate' }): ModelsDevModelMatch | null;\n /** Resolve one provider from a real upstream URL via `provider.api`; ambiguous/none => null. */\n resolveProvider(input: { readonly url: string }): ModelsDevProviderMatch | null;\n}\n\n/** Capability reads are additive; existing catalog.v1 consumers stay unchanged. */\nexport const MODELS_DEV_CAPABILITIES_SERVICE_ID = 'models-dev.capabilities.v1';\nexport const MODELS_DEV_CAPABILITIES_CONTRACT_VERSION = 1;\n/** Upstream control values; null/default do not name a concrete effort level. */\nexport type ModelsDevReasoningEffortValue = null | 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'default';\n/** Validated models.dev reasoning_options, without inferred controls or levels. */\nexport type ModelsDevReasoningOption =\n | { readonly type: 'effort'; readonly values: readonly ModelsDevReasoningEffortValue[] }\n | { readonly type: 'toggle' }\n | { readonly type: 'budget_tokens'; readonly min?: number; readonly max?: number };\nexport type ModelsDevReasoningOptionsStatus = 'known' | 'missing' | 'invalid';\nexport interface ModelsDevCapabilities {\n readonly provider: string;\n readonly model: string;\n readonly name: string;\n readonly contextWindow: number | null;\n readonly outputLimit: number | null;\n readonly toolCall: boolean;\n readonly reasoning: boolean;\n /** null for missing/invalid metadata; a validated empty list remains known. */\n readonly reasoningOptions: readonly ModelsDevReasoningOption[] | null;\n readonly reasoningOptionsStatus: ModelsDevReasoningOptionsStatus;\n /** Version of the same complete snapshot that supplied all fields of this result. */\n readonly catalogVersion: number;\n readonly inputModalities: readonly string[];\n}\nexport interface ModelsDevCapabilitiesService {\n status(): ModelsDevCatalogStatus;\n /** Without a provider, require a unique exact model or a declared API URL match. */\n model(input: { readonly provider?: string; readonly model: string; readonly url?: string }): ModelsDevCapabilities | null;\n}\n",
24
24
  "import type { PluginStorage, Plugin, TokenStatsAttempt } from '@jeffusion/bungee-core/plugin';\nimport { definePlugin } from '@jeffusion/bungee-core/plugin';\nimport type { PluginHooks, PluginInitContext, PluginLogger } from '@jeffusion/bungee-core/plugin';\nimport {\n TOKEN_METERING_SERVICE_ID, TOKEN_METERING_CONTRACT_VERSION, type TokenMeteringService, type TokenMeteringResult,\n TOKEN_PRICING_SERVICE_ID, TOKEN_PRICING_CONTRACT_VERSION, type TokenPricingService,\n} from '@jeffusion/bungee-core/plugin';\nimport { withReportingWriteTimeout } from './storage';\nimport { TokenStatsRepository, REPORTING_INCOMPLETE_KEY } from './repository';\nimport { TokenStatsPricing } from './pricing';\nimport type { PriceModelMapping } from './model-mappings';\nimport { MODELS_DEV_CATALOG_CONTRACT_VERSION, MODELS_DEV_CATALOG_SERVICE_ID, type ModelsDevCatalogService } from '../../models-dev/contract';\n\nconst MAPPING_REFRESH_INTERVAL_MS = 10_000;\n\nfunction rowFromResult(result: TokenMeteringResult): TokenStatsAttempt {\n // Preserve reporting's historical official-only policy for interrupted attempts.\n const inputKnown = result.outcome === 'completed' || result.inputSource === 'official';\n const outputKnown = result.outcome === 'completed' || result.outputSource === 'official';\n const source = (value: TokenMeteringResult['inputSource']): TokenStatsAttempt['input_source'] =>\n value === 'official' ? 'usage' : value === 'none' ? 'unknown' : value;\n return {\n key_id: result.keyId ?? null, attempt_id: result.attemptId, request_id: result.requestId, finished_at_ms: result.finishedAtMs,\n route_id: result.routeId || 'unknown', upstream_id: result.upstreamId || 'unknown', provider: result.provider,\n outcome: result.observationIncomplete && result.outcome === 'completed' ? 'failed' : result.outcome, model: result.model || 'unknown',\n input_tokens: inputKnown ? result.inputTokens ?? null : null, output_tokens: outputKnown ? result.outputTokens ?? null : null,\n input_source: inputKnown ? source(result.inputSource) : 'unknown', output_source: outputKnown ? source(result.outputSource) : 'unknown',\n cache_read_tokens: result.cacheReadTokens ?? null, cache_write_tokens: result.cacheWriteTokens ?? null,\n cost_usd: null, observation_incomplete: result.observationIncomplete,\n };\n}\n\n/** One bounded result cache shared by reporting and required budget consumers. */\nexport class TokenStatsPricingService implements TokenPricingService {\n private readonly results = new Map<string, ReturnType<TokenPricingService['price']>>();\n constructor(private readonly pricing: TokenStatsPricing) {}\n readonly canPrice: TokenPricingService['canPrice'] = async input => {\n return this.pricing.estimate({ model: input.model, provider: input.pricingProvider, inputTokens: 0, outputTokens: 0 }) !== null;\n };\n readonly price: TokenPricingService['price'] = result => {\n // Include settlement revision and all pricing inputs; revised usage must be priced again.\n const row = rowFromResult(result);\n const key = JSON.stringify([result.requestId, result.attemptId, result.settlementVersion, result.model, result.pricingProvider,\n row.input_tokens, row.output_tokens, row.cache_read_tokens, row.cache_write_tokens]);\n const existing = this.results.get(key);\n if (existing) return existing;\n const pending = Promise.resolve().then(async () => {\n const raw = this.pricing.estimate({\n model: result.model, provider: result.pricingProvider,\n inputTokens: row.input_tokens ?? undefined, outputTokens: row.output_tokens ?? undefined,\n cacheReadTokens: result.cacheReadTokens, cacheWriteTokens: result.cacheWriteTokens,\n });\n const nano = raw === null || !Number.isFinite(raw) || raw < 0 ? null : Math.round(raw * 1e9);\n const costNanoUsd = nano !== null && Number.isSafeInteger(nano) && nano >= 0 ? nano : null;\n return Object.freeze({ costNanoUsd, costUsd: costNanoUsd === null ? null : costNanoUsd / 1e9 });\n });\n this.results.set(key, pending);\n if (this.results.size > 2048) this.results.delete(this.results.keys().next().value!);\n return pending;\n };\n}\n\n/** In-memory alias view with a bounded background refresh: never SQL per request. */\nclass MappingCache {\n private mappings: PriceModelMapping[] | undefined = undefined;\n private loadedAt = 0;\n private inFlight = false;\n\n constructor(private readonly load: () => Promise<PriceModelMapping[]>) {}\n\n current(): PriceModelMapping[] | undefined { return this.mappings; }\n\n async refresh(now = Date.now()): Promise<void> {\n if (this.inFlight) return;\n this.inFlight = true;\n try {\n this.mappings = await this.load();\n this.loadedAt = now;\n } catch {\n // A read/parse failure must keep pricing unknown, never select a fallback.\n this.mappings = undefined;\n } finally {\n this.inFlight = false;\n }\n }\n\n maybeRefresh(now = Date.now()): void {\n if (this.inFlight || now - this.loadedAt < MAPPING_REFRESH_INTERVAL_MS) return;\n void this.refresh(now);\n }\n}\n\nexport const TokenStatsPlugin = definePlugin(\n class implements Plugin {\n static readonly name = 'token-stats';\n static readonly version = '4.0.0';\n storage!: PluginStorage;\n logger!: PluginLogger;\n repository!: TokenStatsRepository;\n pricing!: TokenStatsPricing;\n reportingIncomplete = false;\n private unsubscribe?: () => void;\n private mappingRefresh?: ReturnType<typeof setInterval>;\n\n private markReportingIncomplete(): void {\n if (this.reportingIncomplete) return;\n this.reportingIncomplete = true;\n setTimeout(() => {\n const reportFailure = (error: unknown) => {\n try { this.logger.error('Unable to persist reporting incomplete status', { error: String(error) }); } catch {}\n };\n try {\n const persist = () => this.storage.set(REPORTING_INCOMPLETE_KEY, true);\n const pending = this.storage.observation\n ? this.storage.observation.withDatabase(db => withReportingWriteTimeout(db, persist))\n : persist();\n void pending.catch(reportFailure);\n } catch (error) { reportFailure(error); }\n }, 0);\n }\n\n constructor(_config: Record<string, unknown> = {}, private readonly pricingFactory?: () => TokenStatsPricing) {}\n\n private applyMappings(mappings: PriceModelMapping[] | undefined): void {\n // Fixture doubles may not implement the extended surface; the real class does.\n if (typeof this.pricing.setMappings === 'function') this.pricing.setMappings(mappings);\n }\n\n async init(context: PluginInitContext): Promise<void> {\n if (!context.services) throw new Error('token-stats requires token-metering service');\n const metering = context.services.consume<TokenMeteringService>('token-metering', TOKEN_METERING_SERVICE_ID, TOKEN_METERING_CONTRACT_VERSION);\n // The catalog is optional for metering: without it token-stats still records\n // usage, but costs stay unknown instead of being blocked on a catalog.\n let catalog: ModelsDevCatalogService | null = null;\n try {\n catalog = context.services.consume<ModelsDevCatalogService>(\n 'models-dev', MODELS_DEV_CATALOG_SERVICE_ID, MODELS_DEV_CATALOG_CONTRACT_VERSION,\n );\n } catch { catalog = null; }\n this.storage = context.storage.uncached?.() ?? context.storage;\n this.logger = context.logger;\n this.repository = new TokenStatsRepository(context.storage);\n this.pricing = this.pricingFactory?.() ?? new TokenStatsPricing(catalog);\n const mappings = new MappingCache(() => this.repository.mappings());\n await mappings.refresh();\n this.applyMappings(mappings.current());\n const pricingService = new TokenStatsPricingService(this.pricing);\n context.services.publish(TOKEN_PRICING_SERVICE_ID, TOKEN_PRICING_CONTRACT_VERSION, { canPrice: pricingService.canPrice, price: pricingService.price });\n this.unsubscribe = metering.subscribe({\n onResult: result => {\n const row = rowFromResult(result);\n // Pick up alias edits without paying SQL per request.\n mappings.maybeRefresh();\n this.applyMappings(mappings.current());\n const price = pricingService.price(result);\n void price.catch(() => {});\n const accepted = this.repository.enqueueAttempt(async () => {\n try {\n return { ...row, cost_usd: (await price).costUsd };\n } catch (error) { this.markReportingIncomplete(); throw error; }\n }, {\n onFailure: () => this.markReportingIncomplete(),\n warn: (message, metadata) => { this.markReportingIncomplete(); this.logger.warn(message, metadata); },\n error: (message, metadata) => { this.markReportingIncomplete(); this.logger.error(message, metadata); },\n });\n if (!accepted) this.markReportingIncomplete();\n },\n onFailure: () => { this.markReportingIncomplete(); },\n });\n this.mappingRefresh = setInterval(() => { void mappings.refresh().then(() => this.applyMappings(mappings.current())); }, MAPPING_REFRESH_INTERVAL_MS);\n if (typeof this.mappingRefresh.unref === 'function') this.mappingRefresh.unref();\n context.services.onDispose(() => { this.unsubscribe?.(); this.unsubscribe = undefined; });\n this.logger.info('TokenStatsPlugin initialized');\n }\n\n bodyRequirements(): import('@jeffusion/bungee-core/plugin').PluginBodyRequirements { return { request: 'none' }; }\n\n register(_hooks: PluginHooks): void {}\n\n async onDestroy(): Promise<void> {\n this.unsubscribe?.(); this.unsubscribe = undefined;\n if (this.mappingRefresh !== undefined) clearInterval(this.mappingRefresh);\n this.mappingRefresh = undefined;\n this.logger?.info('TokenStatsPlugin destroyed');\n }\n },\n);\nexport default TokenStatsPlugin;\n"
25
25
  ],
26
- "mappings": "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",
27
- "debugId": "5D16D64B3584E38F64756E2164756E21",
26
+ "mappings": "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",
27
+ "debugId": "5AF5B1588AE8435764756E2164756E21",
28
28
  "names": []
29
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jeffusion/bungee-core",
3
- "version": "5.23.0",
3
+ "version": "5.23.2",
4
4
  "description": "Bungee reverse proxy core engine",
5
5
  "main": "./dist/main.js",
6
6
  "types": "./dist/main.d.ts",
@@ -13,7 +13,7 @@
13
13
  "dependencies": {
14
14
  "@bungee/ws-client": "npm:ws@8.22.0",
15
15
  "@types/ws": "^8.18.1",
16
- "@jeffusion/bungee-types": "^5.23.0",
16
+ "@jeffusion/bungee-types": "^5.23.2",
17
17
  "@types/lodash-es": "^4.17.12",
18
18
  "acorn": "^8.15.0",
19
19
  "canonicalize": "3.0.0",