@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
@@ -31,6 +31,6 @@
31
31
  "import type { Plugin } from '@jeffusion/bungee-core/plugin';\nimport { definePlugin } from '@jeffusion/bungee-core/plugin';\nimport type { AttemptObservationEvent, PluginHooks, PluginInitContext, PluginLogger } from '@jeffusion/bungee-core/plugin';\nimport { assertCanonicalTokenAccountingEventV2, createTokenAccountingSession } from '@jeffusion/bungee-llms/plugin-api';\nimport type { CanonicalTokenAccountingEventV2 as CanonicalEvent } from '@jeffusion/bungee-llms/plugin-api';\nimport { TOKEN_METERING_SERVICE_ID, TOKEN_METERING_CONTRACT_VERSION, type TokenMeteringResult, type TokenMeteringService, type TokenMeteringSubscription } from '@jeffusion/bungee-core/plugin';\n\nimport { classifyRequest, classifyResponse, type SupportedProvider } from './classifier';\nimport { ResponsesWebSocketMetering } from './websocket';\n\ntype JsonRecord = Record<string, unknown>;\ntype TokenAccountingSession = ReturnType<typeof createTokenAccountingSession>;\n\ninterface AttemptState {\n attemptId: string;\n requestId: string;\n keyId?: string | null;\n routeId: string;\n upstreamId: string;\n provider: SupportedProvider | 'unknown';\n pricingProvider?: string;\n model?: string;\n sent: boolean;\n llm: boolean;\n streaming: boolean;\n session?: TokenAccountingSession;\n responseSeen: boolean;\n responseFailed: boolean;\n observationIncomplete: boolean;\n incompleteReasonLogged: boolean;\n latestEvent?: CanonicalEvent;\n}\n\nconst MAX_ACTIVE_ATTEMPTS = 1024;\nconst LOG_INTERVAL_MS = 60_000;\n\nlet lastCapacityWarningAt = 0;\n\nfunction isRecord(value: unknown): value is JsonRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction parseRequestBody(value: unknown): JsonRecord | undefined {\n return isRecord(value) ? value : undefined;\n}\n\nfunction detectModel(body: JsonRecord, url?: URL): string | undefined {\n if (typeof body.model === 'string' && body.model.length > 0) return body.model;\n const match = url?.pathname.match(/\\/models\\/([^/:]+):(?:stream)?generatecontent/i);\n if (!match) return undefined;\n try { return decodeURIComponent(match[1]!); } catch { return match[1]; }\n}\n\n/**\n * The provable provider identity is the FULL original upstream URL (scheme + host\n * + path): the models.dev catalog's `provider.api` is matched by host AND path, so\n * a host-only hint would lose information. A relative/fixture URL carries no real\n * origin and therefore no provider identity.\n */\nfunction pricingProviderFromUrl(url: URL): string | undefined {\n return url.origin === 'http://token-metering-observation.invalid' ? undefined : url.href;\n}\n\nfunction createAttempt(event: AttemptObservationEvent): AttemptState {\n return {\n attemptId: event.attemptId,\n requestId: event.requestId,\n keyId: event.keyId ?? null,\n routeId: event.routeId || 'unknown',\n upstreamId: event.upstreamId || 'unknown',\n provider: 'unknown', sent: false, llm: false, streaming: false, responseSeen: false, responseFailed: false,\n observationIncomplete: false, incompleteReasonLogged: false,\n };\n}\n\nfunction getAttempt(attempts: Map<string, AttemptState>, event: AttemptObservationEvent, logger: PluginLogger, onDrop: (attempt: AttemptState) => void): AttemptState {\n let attempt = attempts.get(event.attemptId);\n if (!attempt) {\n if (attempts.size >= MAX_ACTIVE_ATTEMPTS) {\n const oldest = attempts.keys().next().value as string | undefined;\n if (oldest !== undefined) { const dropped = attempts.get(oldest)!; attempts.delete(oldest); onDrop(dropped); }\n const now = Date.now();\n if (now - lastCapacityWarningAt >= LOG_INTERVAL_MS) {\n lastCapacityWarningAt = now;\n logger.warn('Token metering active attempt state capacity reached; oldest state dropped', { capacity: MAX_ACTIVE_ATTEMPTS });\n }\n }\n attempt = createAttempt(event);\n attempts.set(event.attemptId, attempt);\n }\n if (event.keyId !== undefined) attempt.keyId = event.keyId;\n attempt.routeId = event.routeId || attempt.routeId;\n attempt.upstreamId = event.upstreamId || attempt.upstreamId;\n return attempt;\n}\n\nfunction ensureSession(attempt: AttemptState, provider: SupportedProvider): void {\n if (attempt.session) return;\n attempt.provider = provider;\n attempt.session = createTokenAccountingSession({\n provider,\n model: attempt.model,\n routeId: attempt.routeId,\n upstreamId: attempt.upstreamId,\n requestId: attempt.requestId,\n attemptId: attempt.attemptId,\n streaming: attempt.streaming,\n }, { deferFinalization: true });\n}\n\nfunction markSent(attempt: AttemptState): void { attempt.sent = true; }\n\nfunction mergeOfficialUsage(current: CanonicalEvent, previous?: CanonicalEvent): CanonicalEvent {\n if (!previous) return current;\n if (current.inputAuthority !== 'official' && previous.inputAuthority === 'official' && previous.inputTokens !== undefined) {\n current.inputTokens = previous.inputTokens;\n current.inputAuthority = 'official';\n }\n if (current.outputAuthority !== 'official' && previous.outputAuthority === 'official' && previous.outputTokens !== undefined) {\n current.outputTokens = previous.outputTokens;\n current.outputAuthority = 'official';\n }\n current.cacheReadTokens = mergeObservedCount(current.cacheReadTokens, previous.cacheReadTokens);\n current.cacheWriteTokens = mergeObservedCount(current.cacheWriteTokens, previous.cacheWriteTokens);\n return current;\n}\n\nfunction mergeObservedCount(current?: number, previous?: number): number | undefined {\n if (current === undefined) return previous;\n if (previous === undefined) return current;\n return Math.max(current, previous);\n}\n\nfunction officialOnly(event: CanonicalEvent): CanonicalEvent | undefined {\n const input = event.inputAuthority === 'official' && event.inputTokens !== undefined;\n const output = event.outputAuthority === 'official' && event.outputTokens !== undefined;\n if (!input && !output) return undefined;\n if (!input) { event.inputTokens = undefined; event.inputAuthority = 'none'; }\n if (!output) { event.outputTokens = undefined; event.outputAuthority = 'none'; }\n return event;\n}\n\ntype EndOutcome = 'completed' | 'failed' | 'cancelled';\n\ninterface FinalizationTaskInput {\n attemptId: string;\n requestId: string;\n keyId?: string | null;\n routeId: string;\n upstreamId: string;\n provider: string;\n session?: TokenAccountingSession;\n observedEvent?: CanonicalEvent;\n finishedAtMs: number;\n endOutcome: EndOutcome;\n responseSeen: boolean;\n responseFailed: boolean;\n observationIncomplete: boolean;\n model?: string;\n pricingProvider?: string;\n\n}\n\nfunction finalOutcome(input: FinalizationTaskInput, canonicalOutcome?: CanonicalEvent['outcome'], officialComplete = false): 'completed' | 'failed' | 'aborted' {\n if (input.endOutcome === 'cancelled') return 'aborted';\n if (input.endOutcome === 'failed' || !input.responseSeen || input.responseFailed || (input.observationIncomplete && !officialComplete) || canonicalOutcome === 'failed') return 'failed';\n if (canonicalOutcome === 'aborted' && !officialComplete) return 'aborted';\n return 'completed';\n}\n\nfunction finalizeAttempt(input: FinalizationTaskInput): TokenMeteringResult {\n let event = input.observedEvent;\n try {\n const finalized = input.endOutcome === 'completed' && input.responseSeen && !input.responseFailed && !input.observationIncomplete\n ? input.session?.finalizeCompletedStream() : input.session?.finalizeAbortedStream();\n if (finalized) {\n assertCanonicalTokenAccountingEventV2(finalized);\n event = mergeOfficialUsage(finalized, event);\n }\n } catch { /* preserve validated official observations */ }\n const officialComplete = event?.inputAuthority === 'official' && event?.outputAuthority === 'official' && event.inputTokens !== undefined && event.outputTokens !== undefined;\n const outcome = finalOutcome(input, event?.outcome, officialComplete);\n if (event) {\n event = { ...event, outcome, final: outcome === 'completed' };\n if ((input.responseFailed || input.observationIncomplete || !input.responseSeen) && !officialOnly(event)) {\n event.inputTokens = undefined; event.inputAuthority = 'none';\n event.outputTokens = undefined; event.outputAuthority = 'none';\n }\n assertCanonicalTokenAccountingEventV2(event);\n }\n const source = (value: number | undefined, authority: string | undefined) =>\n value === undefined || authority === 'none' ? 'none' : authority === 'official' ? 'official' : authority === 'partial' ? 'partial' : 'estimated';\n return Object.freeze({\n requestId: input.requestId, keyId: input.keyId ?? null, attemptId: input.attemptId, routeId: input.routeId, upstreamId: input.upstreamId,\n provider: input.provider, model: input.model, pricingProvider: input.pricingProvider,\n inputTokens: event?.inputTokens, outputTokens: event?.outputTokens,\n cacheReadTokens: event?.cacheReadTokens, cacheWriteTokens: event?.cacheWriteTokens,\n inputSource: source(event?.inputTokens, event?.inputAuthority), outputSource: source(event?.outputTokens, event?.outputAuthority),\n inputAuthority: event?.inputAuthority ?? 'none', outputAuthority: event?.outputAuthority ?? 'none',\n outcome, observationIncomplete: input.observationIncomplete,\n complete: outcome === 'completed' && event?.inputTokens !== undefined && event?.outputTokens !== undefined && event.inputAuthority !== 'partial' && event.outputAuthority !== 'partial' && (!input.observationIncomplete || (event.inputAuthority === 'official' && event.outputAuthority === 'official')),\n finishedAtMs: input.finishedAtMs, settlementVersion: 1,\n });\n}\n\nexport const TokenMeteringPlugin = definePlugin(\n class implements Plugin {\n static readonly name = 'token-metering';\n static readonly version = '1.0.0';\n logger!: PluginLogger;\n private attempts = new Map<string, AttemptState>();\n private droppedAttempts = new Map<string, string>();\n private subscriptions = new Set<TokenMeteringSubscription>();\n private requests = new Map<string, readonly TokenMeteringSubscription[]>();\n private pending = new Set<Promise<void>>();\n private requiredPending = new Map<string, Set<Promise<void>>>();\n private closed = false;\n private websocket = new ResponsesWebSocketMetering({\n emit: event => this.handleAttemptObservation(event, true),\n prepareRequest: requestId => this.prepareRequest(requestId),\n discardRequest: (requestId, attemptId) => { this.attempts.delete(attemptId); this.requests.delete(requestId); this.droppedAttempts.delete(attemptId); },\n hasDemand: () => !this.closed && this.subscriptions.size > 0,\n });\n parsedResponses = 0;\n get activeAttempts(): number { return this.attempts.size; }\n async init(context: PluginInitContext): Promise<void> {\n if (context.scope && context.scope.type !== 'global') throw new Error('token-metering requires global scope');\n if (!context.services) throw new Error('token-metering requires plugin service host');\n this.logger = context.logger;\n const service: TokenMeteringService = Object.freeze({\n drainRequest: (requestId: string) => this.drainRequest(requestId),\n subscribe: (subscription: TokenMeteringSubscription) => {\n if (this.closed) throw new Error('token-metering disposed');\n this.subscriptions.add(subscription);\n if (subscription.requestId && this.requests.has(subscription.requestId)) {\n this.requests.set(subscription.requestId, Object.freeze([...this.requests.get(subscription.requestId)!, subscription]));\n }\n return () => {\n this.subscriptions.delete(subscription);\n // Request-specific subscriptions may be cancelled/reprepared before an attempt sends.\n // Already scheduled result promises retain their own subscriber and drain independently.\n if (subscription.requestId) {\n const captured = this.requests.get(subscription.requestId);\n if (captured) this.requests.set(subscription.requestId, Object.freeze(captured.filter(item => item !== subscription)));\n }\n };\n },\n prepareAttempt: (input: Parameters<TokenMeteringService['prepareAttempt']>[0]) => {\n if (this.closed) throw new Error('token-metering disposed');\n this.prepareRequest(input.requestId);\n if (!(this.requests.get(input.requestId)?.length)) return Object.freeze({ supported: false });\n let url: URL;\n try { url = new URL(input.url, 'http://token-metering-observation.invalid'); } catch { return Object.freeze({ supported: false }); }\n const body = parseRequestBody(input.body);\n if (!body) return Object.freeze({ supported: false });\n const classification = classifyRequest(url, body);\n if (!classification.provider) return Object.freeze({ supported: false });\n if (this.droppedAttempts.has(input.attemptId) || (!this.attempts.has(input.attemptId) && this.attempts.size >= MAX_ACTIVE_ATTEMPTS)) return Object.freeze({ supported: false });\n const attempt = getAttempt(this.attempts, { ...input, phase: 'selected', isActive: () => true }, this.logger, dropped => this.dropAttempt(dropped));\n attempt.llm = true; attempt.model = detectModel(body, url);\n attempt.pricingProvider = pricingProviderFromUrl(url);\n attempt.streaming = body.stream === true || /:streamgeneratecontent/i.test(url.pathname);\n ensureSession(attempt, classification.provider);\n // This prepared session is reused by the framework request event, never parsed twice.\n attempt.session!.consumeRequest({ body });\n return Object.freeze({ supported: true, provider: classification.provider, model: attempt.model, pricingProvider: attempt.pricingProvider });\n },\n prepareRequest: (requestId: string) => {\n if (this.closed) throw new Error('token-metering disposed');\n if (!this.requests.has(requestId)) this.requests.set(requestId, Object.freeze([...this.subscriptions].filter(s => !s.requestId || s.requestId === requestId)));\n return this.requests.get(requestId)!.length > 0;\n },\n });\n context.services.publish(TOKEN_METERING_SERVICE_ID, TOKEN_METERING_CONTRACT_VERSION, service);\n }\n bodyRequirements(context: import('@jeffusion/bungee-core/plugin').PluginBodyRequirementContext): import('@jeffusion/bungee-core/plugin').PluginBodyRequirements {\n const subscribed = this.requests.get(context.requestId) ?? [...this.subscriptions].filter(s => !s.requestId || s.requestId === context.requestId);\n return subscribed.length ? { request: 'none', observe: { request: true, response: true, sse: true } } : { request: 'none' };\n }\n\n register(hooks: PluginHooks): void {\n // Demand is captured before attempt selection; raw observation remains a framework hook.\n hooks.onRequestInit.tapPromise('token-metering-demand', async event => this.prepareRequest(event.requestId));\n hooks.onAttemptObservation.tapPromise('token-metering', async event => this.handleAttemptObservation(event));\n hooks.onWebSocketObservation.tapPromise('token-metering-websocket', async event => this.websocket.observe(event));\n }\n private prepareRequest(requestId: string): void {\n if (!this.requests.has(requestId)) this.requests.set(requestId, Object.freeze([...this.subscriptions].filter(s => !s.requestId || s.requestId === requestId)));\n }\n private dropAttempt(attempt: AttemptState): void {\n this.droppedAttempts.set(attempt.attemptId, attempt.requestId);\n if (!attempt.sent) return;\n this.deliver(finalizeAttempt({ ...attempt, session: undefined, observedEvent: attempt.latestEvent ? { ...attempt.latestEvent } : undefined,\n finishedAtMs: Date.now(), endOutcome: 'failed', observationIncomplete: true }), !attempt.llm);\n }\n private async drainRequest(requestId: string): Promise<void> {\n // Required callbacks include settlement and its failure/recovery notification.\n // Degradable report subscribers and unrelated requests never enter this barrier.\n while (this.requiredPending.get(requestId)?.size) {\n await Promise.allSettled([...this.requiredPending.get(requestId)!]);\n }\n }\n private deliver(result: TokenMeteringResult, requiredOnly = false): void {\n for (const subscriber of this.requests.get(result.requestId) ?? []) {\n if (requiredOnly && !subscriber.required) continue;\n // Each subscriber has an independent promise; no consumer can block parsing or another consumer.\n const task = Promise.resolve().then(() => subscriber.onResult(result)).then(() => {}, async error => {\n try { await subscriber.onFailure?.(error, result); } catch { /* isolate consumer failure handlers */ }\n });\n this.pending.add(task);\n if (subscriber.required) {\n let required = this.requiredPending.get(result.requestId);\n if (!required) { required = new Set(); this.requiredPending.set(result.requestId, required); }\n required.add(task);\n }\n void task.finally(() => {\n this.pending.delete(task);\n const required = this.requiredPending.get(result.requestId);\n required?.delete(task);\n if (required?.size === 0) this.requiredPending.delete(result.requestId);\n });\n }\n }\n private async handleAttemptObservation(event: AttemptObservationEvent, websocket = false): Promise<void> {\n if (!event.isActive()) {\n this.attempts.delete(event.attemptId);\n return;\n }\n if (event.phase === 'request-end') {\n await this.drainRequest(event.requestId);\n this.requests.delete(event.requestId);\n for (const [id, requestId] of this.droppedAttempts) if (requestId === event.requestId) this.droppedAttempts.delete(id);\n return;\n }\n if (this.droppedAttempts.has(event.attemptId)) return;\n if (!this.requests.has(event.requestId)) this.prepareRequest(event.requestId);\n if (!(this.requests.get(event.requestId)?.length)) return;\n if (event.phase === 'selected') {\n getAttempt(this.attempts, event, this.logger, dropped => this.dropAttempt(dropped));\n return;\n }\n const attempt = event.phase === 'end'\n ? this.attempts.get(event.attemptId)\n : getAttempt(this.attempts, event, this.logger, dropped => this.dropAttempt(dropped));\n if (!attempt) return;\n\n if (event.phase === 'request') {\n markSent(attempt);\n let url: URL;\n try { url = new URL(event.url, 'http://token-metering-observation.invalid'); }\n catch { return; }\n attempt.pricingProvider = pricingProviderFromUrl(url);\n if (attempt.session) return;\n const body = parseRequestBody(event.body);\n if (!body) return;\n const classification = websocket ? { llm: true, provider: 'openai' as const } : classifyRequest(url, body);\n attempt.llm ||= classification.llm;\n if (!classification.llm) return;\n attempt.model = detectModel(body, url) ?? attempt.model;\n const provider = classification.provider;\n if (!provider) return;\n attempt.streaming = body.stream === true || /:streamgeneratecontent/i.test(url.pathname);\n ensureSession(attempt, provider);\n attempt.session!.consumeRequest({ body });\n return;\n }\n\n if (event.phase === 'response') {\n attempt.responseSeen = true;\n const body = event.body;\n if (websocket && isRecord(body.response)) {\n const model = detectModel(body.response);\n if (model) {\n attempt.model = model;\n attempt.session?.consumeRequest({ body: { model } });\n }\n }\n attempt.responseFailed ||= event.status >= 400 || body.error !== undefined;\n const provider = attempt.provider === 'unknown' ? classifyResponse(body, attempt.llm, event.envelope?.event) : attempt.provider;\n if (!provider) return;\n if (!attempt.llm) {\n attempt.model = detectModel(body) ?? (isRecord(body.response) ? detectModel(body.response) : undefined);\n }\n attempt.llm = true;\n if (!attempt.session) {\n attempt.streaming = event.protocol === 'sse';\n ensureSession(attempt, provider);\n // The request payload is intentionally not retained for ambiguous protocols.\n }\n const session = attempt.session;\n if (!session) return;\n try {\n this.parsedResponses++;\n const parsed = event.protocol === 'json'\n ? session.consumeResponse({ body })\n : session.consumeStreamChunk({ chunk: body, event: event.envelope?.event });\n if (!parsed) return;\n assertCanonicalTokenAccountingEventV2(parsed);\n const merged = mergeOfficialUsage(parsed, attempt.latestEvent);\n attempt.latestEvent = attempt.responseFailed ? officialOnly(merged) : merged;\n } catch (error) {\n attempt.observationIncomplete = true;\n if (attempt.latestEvent) attempt.latestEvent = officialOnly(attempt.latestEvent);\n this.logger.debug('Failed to consume token metering attempt observation', { attemptId: event.attemptId, error });\n }\n return;\n }\n\n if (event.phase === 'incomplete') {\n if (!attempt.observationIncomplete) {\n attempt.observationIncomplete = true;\n if (!attempt.incompleteReasonLogged) {\n attempt.incompleteReasonLogged = true;\n this.logger.warn('Token metering attempt observation incomplete', { attemptId: event.attemptId, reason: event.reason });\n }\n if (attempt.latestEvent) attempt.latestEvent = officialOnly(attempt.latestEvent);\n }\n return;\n }\n\n if (event.phase === 'end') {\n if (event.sent) markSent(attempt);\n if (!event.isActive()) {\n this.attempts.delete(event.attemptId);\n return;\n }\n this.attempts.delete(event.attemptId);\n if (!attempt.sent) return;\n const taskInput: FinalizationTaskInput = {\n attemptId: attempt.attemptId,\n requestId: attempt.requestId,\n keyId: attempt.keyId ?? null,\n routeId: attempt.routeId,\n upstreamId: attempt.upstreamId,\n provider: attempt.provider,\n model: attempt.model,\n pricingProvider: attempt.pricingProvider,\n session: attempt.session,\n observedEvent: attempt.latestEvent ? { ...attempt.latestEvent } : undefined,\n finishedAtMs: Date.now(),\n endOutcome: event.outcome,\n responseSeen: attempt.responseSeen,\n responseFailed: attempt.responseFailed,\n observationIncomplete: attempt.observationIncomplete,\n };\n // Optional reporting needs a classified LLM attempt. Missing body views\n // cannot turn an ordinary API into a zero-token LLM request.\n this.deliver(finalizeAttempt(taskInput), !attempt.llm);\n }\n }\n\n async onDestroy(): Promise<void> {\n this.closed = true;\n this.websocket.dispose();\n await Promise.allSettled([...this.pending]);\n this.subscriptions.clear(); this.requests.clear(); this.attempts.clear(); this.droppedAttempts.clear(); this.requiredPending.clear();\n }\n }\n);\nexport default TokenMeteringPlugin;\n"
32
32
  ],
33
33
  "mappings": "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",
34
- "debugId": "7D6B7E17A714B62164756E2164756E21",
34
+ "debugId": "6E560425A55B5FB164756E2164756E21",
35
35
  "names": []
36
36
  }
@@ -922,4 +922,4 @@ export {
922
922
  control_default as default
923
923
  };
924
924
 
925
- //# debugId=10CD0331CBCFED0164756E2164756E21
925
+ //# debugId=9122F1BC80C45E9664756E2164756E21
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../plugins/models-dev/contract.ts", "../../../src/plugin-logger.ts", "../../../src/hooks/impl.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", "../../../../../plugins/token-stats/server/storage.ts", "../../../../../plugins/token-stats/server/model-mappings.ts", "../../../../../plugins/token-stats/server/repository.ts", "../../../../../plugins/token-stats/server/control.ts"],
4
4
  "sourcesContent": [
5
- "/**\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",
5
+ "/**\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",
6
6
  "/** 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",
7
7
  "/**\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",
8
8
  "import type { PluginDurableState, DurableJson } from './plugin-durable-state';\n\n/** Anonymous is an explicit, signed data identity; it carries no key authority. */\nexport type DataPrincipal = { readonly domain: string; readonly keyId: string; readonly credentialVersion: number };\nexport const ANONYMOUS_PRINCIPAL: DataPrincipal = Object.freeze({domain: 'anonymous', keyId: '', credentialVersion: 0});\nexport interface AdmissionRequirement { readonly plugin: string; readonly routeIds: readonly string[] }\n/** Public contracts. Business rules belong to the implementing plugin. */\nexport interface ManagementSubject {\n readonly id: string;\n readonly provider: string;\n readonly capabilities: readonly string[];\n readonly requiresPasswordChange?: boolean;\n}\nexport interface ManagementProvider {\n authenticate(request: Request): Promise<ManagementSubject | null>;\n authorize(subject: ManagementSubject, capability: string): Promise<boolean>;\n login(request: Request): Promise<Response>;\n logout(request: Request): Promise<Response>;\n bootstrap(input: unknown): Promise<void>;\n hasIdentity(): Promise<boolean>;\n revokeSessions(): Promise<void>;\n validateWrite?(request: Request): void;\n csrfToken?(request: Request): string | undefined;\n /** Optional browser cookie renewal after successful session verification. Must not extend the server-side absolute deadline. */\n sessionCookie?(request: Request): Promise<string | undefined>;\n}\nexport interface AdmissionTarget {\n /** Host-pinned entry scope for one internal handoff. */\n readonly entryRouteId?: string;\n readonly requestId: string;\n readonly attemptId: string;\n readonly principal: DataPrincipal;\n readonly routeId: string;\n readonly serviceId: string | null;\n readonly upstreamId: string;\n readonly url: string;\n readonly model: string | null;\n readonly now: number;\n}\nexport interface AdmissionDenial {\n readonly error: string;\n readonly status: 401 | 403 | 429 | 503 | 422;\n readonly retryAfter?: number;\n}\nexport interface AdmissionPlan {\n /** A complete JSON state replacement, staged by Host before the common decision. */\n readonly state?: DurableJson;\n /** Immutable policy snapshot retained by the grant for subsequent attempts. */\n readonly snapshot?: DurableJson;\n readonly denial?: AdmissionDenial;\n}\nexport interface IngressPlugin {\n /** Effective policy demand; no policy means no content decoding. */\n bodyRequirements(target: AdmissionTarget, policy: DurableJson): { readonly request: 'none' | 'json-read' };\n /** Optional per-principal state. Policies are frozen; plans receive only this key's clones.\n * Expiry must mean absence is behaviorally equivalent to retaining the state. */\n keyedState?: {\n readonly capacity: number;\n policyForKey(policy: DurableJson, keyId: string): DurableJson;\n expiresAt(state: DurableJson): number;\n reconcile(state: DurableJson, policy: DurableJson, now: number): DurableJson;\n };\n authenticate?(request: Request, policy: DurableJson, now: number): DataPrincipal | null;\n resolveIdentity?(target: AdmissionTarget, policy: DurableJson): DataPrincipal;\n /** Pure access decision before preparation/cache reuse; never plans or debits state. */\n authorize?(target: AdmissionTarget, policy: DurableJson): AdmissionDenial | null;\n plan(target: AdmissionTarget, policy: DurableJson, state: DurableJson): AdmissionPlan;\n beforeAttempt?(target: AdmissionTarget, snapshot: DurableJson): AdmissionDenial | null;\n}\nexport interface IngressPluginModule { createIngress(): IngressPlugin }\nexport interface PluginStateRpcContext {\n readonly state: PluginDurableState;\n readonly requestId: string;\n readonly attemptId: string;\n readonly principal: DataPrincipal;\n}\nexport interface PluginPolicyPublication {\n readonly version: number;\n readonly value: DurableJson;\n}\n",
@@ -21,7 +21,7 @@
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
  "import type {\n ControlApiDeclaration,\n ControlApiHandlerContext,\n ControlHostContext,\n ControlPlugin,\n PluginControl,\n} from '@jeffusion/bungee-core/plugin';\nimport { MODELS_DEV_CATALOG_CONTRACT_VERSION, MODELS_DEV_CATALOG_SERVICE_ID, MODELS_DEV_SOURCE_URL, type ModelsDevCatalogService } from '../../models-dev/contract';\nimport {\n MAX_CLIENT_MODEL_PAGE,\n MAX_CLIENT_MODEL_PAGE_SIZE,\n TokenStatsRepository,\n TokenStatsRepositoryError,\n TokenStatsRepositoryLimitError,\n type AggregateDto,\n type GroupByDimension,\n} from './repository';\nimport { TOKEN_STATS_RANGES } from '@jeffusion/bungee-core/plugin';\nimport { SQLiteTokenStatsMetering } from './storage';\nimport { parsePriceModelMappings, isUnchangedPriceModelMapping, type PriceModelOption } from './model-mappings';\n\nconst MAX_RESPONSE_BYTES = 256 * 1024;\nconst MAX_PAGE_STATS_RESPONSE_BYTES = 4 * 1024 * 1024;\nconst VALID_GROUP_BY = ['model', 'time'] as const;\n\ntype ControlErrorCode =\n | 'disposed'\n | 'request_cancelled'\n | 'invalid_input'\n | 'invalid_persisted_value'\n | 'response_limit'\n | 'catalog_unavailable'\n | 'storage_unavailable'\n | 'internal_error';\n\nclass ControlError extends Error {\n constructor(readonly code: ControlErrorCode) {\n super(code);\n this.name = 'TokenStatsControlError';\n }\n}\n\nfunction jsonResponse(value: unknown, status = 200, maxBytes = MAX_RESPONSE_BYTES): Response {\n const body = JSON.stringify(value);\n if (new TextEncoder().encode(body).byteLength > maxBytes) {\n return new Response(JSON.stringify({ error: 'response_limit' }), {\n status: 500,\n headers: { 'content-type': 'application/json; charset=utf-8' },\n });\n }\n return new Response(body, {\n status,\n headers: { 'content-type': 'application/json; charset=utf-8' },\n });\n}\n\nfunction errorResponse(error: unknown): Response {\n const code = error instanceof ControlError\n ? error.code\n : error instanceof TokenStatsRepositoryLimitError\n ? 'response_limit'\n : error instanceof TokenStatsRepositoryError\n ? 'invalid_persisted_value'\n : 'internal_error';\n const status = code === 'request_cancelled' || code === 'invalid_input' ? 400\n : code === 'disposed' ? 409\n : code === 'catalog_unavailable' || code === 'storage_unavailable' ? 503\n : 500;\n return jsonResponse({ error: code }, status);\n}\n\nasync function readSettings(request: Request, maxBytes = 4096): Promise<unknown> {\n const reader = request.body?.getReader();\n if (!reader) throw new ControlError('invalid_input');\n const chunks: Uint8Array[] = [];\n let size = 0;\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) break;\n size += value.byteLength;\n if (size > maxBytes) { await reader.cancel(); throw new ControlError('invalid_input'); }\n chunks.push(value);\n }\n const bytes = new Uint8Array(size);\n let offset = 0;\n for (const chunk of chunks) { bytes.set(chunk, offset); offset += chunk.byteLength; }\n return JSON.parse(new TextDecoder().decode(bytes));\n } finally { reader.releaseLock(); }\n}\n\nfunction abortable<T>(promise: Promise<T>, requestSignal: AbortSignal, hostSignal: AbortSignal): Promise<T> {\n if (hostSignal.aborted) return Promise.reject(new ControlError('disposed'));\n if (requestSignal.aborted) return Promise.reject(new ControlError('request_cancelled'));\n return new Promise<T>((resolve, reject) => {\n let settled = false;\n const cleanup = () => {\n requestSignal.removeEventListener('abort', onRequestAbort);\n hostSignal.removeEventListener('abort', onHostAbort);\n };\n const onRequestAbort = () => { if (!settled) { settled = true; cleanup(); reject(new ControlError('request_cancelled')); } };\n const onHostAbort = () => { if (!settled) { settled = true; cleanup(); reject(new ControlError('disposed')); } };\n requestSignal.addEventListener('abort', onRequestAbort, { once: true });\n hostSignal.addEventListener('abort', onHostAbort, { once: true });\n promise.then(\n (value) => { if (!settled) { settled = true; cleanup(); resolve(value); } },\n (error) => { if (!settled) { settled = true; cleanup(); reject(error); } },\n );\n });\n}\n\nfunction parseModelQuery(request: Request): { provider?: string; search?: string; page?: number; pageSize?: number } | null {\n const params = new URL(request.url).searchParams;\n for (const key of ['provider', 'search', 'page', 'pageSize']) if (params.getAll(key).length > 1) return null;\n const provider = params.get('provider') ?? undefined;\n const search = params.get('search') ?? undefined;\n const page = params.get('page') === null ? 1 : Number(params.get('page'));\n const pageSize = params.get('pageSize') === null ? 50 : Number(params.get('pageSize'));\n if (!Number.isSafeInteger(page) || page < 1\n || !Number.isSafeInteger(pageSize) || pageSize < 1 || pageSize > MAX_CLIENT_MODEL_PAGE_SIZE) return null;\n return { ...(provider === undefined ? {} : { provider }), ...(search === undefined ? {} : { search }), page, pageSize };\n}\n\nclass TokenStatsControl implements PluginControl {\n readonly api: readonly ControlApiDeclaration[];\n readonly rpc = [] as const;\n private readonly repository: TokenStatsRepository;\n private disposed = false;\n private readonly abortListener: () => void;\n\n constructor(private readonly host: ControlHostContext) {\n this.repository = new TokenStatsRepository(host.storage);\n this.abortListener = () => { this.dispose(); };\n if (host.signal.aborted) this.disposed = true;\n else host.signal.addEventListener('abort', this.abortListener, { once: true });\n this.api = this.buildApi();\n }\n\n private assertAlive(signal?: AbortSignal): void {\n if (this.disposed || this.host.signal.aborted) throw new ControlError('disposed');\n if (signal?.aborted) throw new ControlError('request_cancelled');\n }\n\n private catalogService(): ModelsDevCatalogService {\n const services = this.host.services;\n if (services === undefined) throw new ControlError('catalog_unavailable');\n try {\n return services.consume<ModelsDevCatalogService>(\n 'models-dev', MODELS_DEV_CATALOG_SERVICE_ID, MODELS_DEV_CATALOG_CONTRACT_VERSION,\n );\n } catch { throw new ControlError('catalog_unavailable'); }\n }\n\n private buildApi(): readonly ControlApiDeclaration[] {\n const invoke = (handler: (context: ControlApiHandlerContext) => Promise<Response> | Response) =>\n async (context: ControlApiHandlerContext): Promise<Response> => {\n try {\n this.assertAlive(context.requestSignal);\n return await handler(context);\n } catch (error) {\n return errorResponse(error);\n }\n };\n\n return [{\n path: '/stats', methods: ['GET'], handler: 'getStats',\n invoke: invoke(async (context) => {\n if (context.request.method !== 'GET') {\n return new Response(JSON.stringify({ error: 'method_not_allowed' }), {\n status: 405,\n headers: { allow: 'GET', 'content-type': 'application/json; charset=utf-8' },\n });\n }\n this.assertAlive(context.requestSignal);\n const url = new URL(context.request.url);\n const rawRange = url.searchParams.get('range');\n const rawGroupBy = url.searchParams.get('groupBy');\n const timeZone = url.searchParams.get('timeZone') ?? undefined;\n const keyId = url.searchParams.get('keyId') ?? undefined;\n if (url.searchParams.getAll('range').length > 1\n || url.searchParams.getAll('groupBy').length > 1\n || url.searchParams.getAll('timeZone').length > 1\n || url.searchParams.getAll('keyId').length > 1\n || (keyId !== undefined && (!keyId || keyId.length > 128))\n || (rawRange !== null && !(TOKEN_STATS_RANGES as readonly string[]).includes(rawRange))\n || (rawGroupBy !== null && !(VALID_GROUP_BY as readonly string[]).includes(rawGroupBy))) {\n throw new ControlError('invalid_input');\n }\n if (timeZone !== undefined) {\n try {\n if (!timeZone || timeZone.length > 100) throw new Error('invalid time zone');\n new Intl.DateTimeFormat('en-US', { timeZone });\n } catch { throw new ControlError('invalid_input'); }\n }\n const range = rawRange ?? '24h';\n const groupBy = (rawGroupBy ?? 'model') as GroupByDimension;\n const payload = await abortable(\n this.repository.query(range, groupBy, Date.now(), timeZone, keyId),\n context.requestSignal,\n context.signal,\n );\n this.assertAlive(context.requestSignal);\n const maxBytes = ['1h', '12h', '24h'].includes(range) ? MAX_RESPONSE_BYTES : MAX_PAGE_STATS_RESPONSE_BYTES;\n return jsonResponse(payload as AggregateDto, 200, maxBytes);\n }),\n }, {\n path: '/pricing', methods: ['GET'], handler: 'getPricing',\n invoke: invoke(async () => {\n const status = this.catalogService().status();\n return jsonResponse({ ...status, source: MODELS_DEV_SOURCE_URL });\n }),\n }, {\n path: '/pricing/models', methods: ['GET'], handler: 'getPricingModels',\n invoke: invoke(async (context) => {\n const query = parseModelQuery(context.request);\n if (query === null) return jsonResponse({ error: 'invalid_input' }, 400);\n const result = this.catalogService().modelOptions(query);\n const models: PriceModelOption[] = result.models.map(model => ({\n provider: model.provider, providerName: model.providerName, model: model.model, name: model.name,\n }));\n return jsonResponse({ models, total: result.total, page: result.page, pageSize: result.pageSize }, 200, MAX_PAGE_STATS_RESPONSE_BYTES);\n }),\n }, {\n path: '/pricing/mappings', methods: ['GET'], handler: 'getPricingMappings',\n invoke: invoke(async () => jsonResponse({ mappings: await this.repository.mappings() })),\n }, {\n path: '/pricing/mappings', methods: ['PUT'], handler: 'configurePricingMappings',\n invoke: invoke(async (context) => {\n let mappings;\n try { mappings = parsePriceModelMappings(await readSettings(context.request, MAX_RESPONSE_BYTES)); }\n catch { throw new ControlError('invalid_input'); }\n const service = this.catalogService();\n const existing = await this.repository.mappings();\n if (mappings.some(mapping => service.resolveModel({ model: mapping.model, pricingProvider: mapping.provider }) === null\n && !isUnchangedPriceModelMapping(mapping, existing))) throw new ControlError('invalid_input');\n this.assertAlive(context.requestSignal);\n await this.repository.configureMappings(mappings);\n return jsonResponse({ mappings });\n }),\n }, {\n // Deliverable: real client/attempt model names for the free-input picker.\n path: '/models', methods: ['GET'], handler: 'getClientModels',\n invoke: invoke(async (context) => {\n const query = parseModelQuery(context.request);\n if (query === null) return jsonResponse({ error: 'invalid_input' }, 400);\n let page;\n try {\n page = await this.repository.listClientModels({\n ...(query.search === undefined ? {} : { keyword: query.search }),\n page: query.page,\n pageSize: query.pageSize,\n });\n } catch (error) {\n if (error instanceof TokenStatsRepositoryError) throw new ControlError('storage_unavailable');\n throw error;\n }\n this.assertAlive(context.requestSignal);\n return jsonResponse(page);\n }),\n }];\n }\n\n async start(): Promise<void> {\n this.assertAlive();\n }\n\n dispose(): void {\n if (this.disposed) return;\n this.disposed = true;\n this.host.signal.removeEventListener('abort', this.abortListener);\n }\n}\n\nexport function createControl(context: ControlHostContext): PluginControl {\n return new TokenStatsControl(context);\n}\n\nexport default { createControl } satisfies ControlPlugin;\n\n\n/** Trusted catalog adapter. Host invokes this export only inside its access-storage Worker. */\nexport function createObservationAdapter(observation: import('@jeffusion/bungee-core/plugin').PluginObservationStorage) {\n const leaf = new SQLiteTokenStatsMetering(observation);\n return Object.freeze({recordAttempt: leaf.recordAttempt.bind(leaf), queryWindowSnapshot: leaf.queryWindowSnapshot.bind(leaf),\n listClientModels: leaf.listClientModels.bind(leaf)});\n}\n"
23
23
  ],
24
- "mappings": ";;AAiBO,IAAM,wBAAwB;AAG9B,IAAM,gCAAgC;AACtC,IAAM,sCAAsC;AAG5C,IAAM,iCAAiC;AACvC,IAAM,+CAA+C;AAKrD,IAAM,qCAAqC,OAAO,OAAO;AAAA,EAC9D,MAAM;AAAA,EAAU,YAAY;AAAA,IAC1B,SAAS,EAAE,MAAM,UAAU,SAAS,MAAM,SAAS,EAAE;AAAA,IACrD,WAAW,EAAE,MAAM,UAAU,SAAS,EAAE;AAAA,IACxC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,OAAO,KAAK;AAAA,EACtD;AACF,CAAU;AACH,IAAM,uCAAuC,OAAO,OAAO;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,SAAS;AACX,CAAC;;;AClCD,IAAM,UAAU,OAAO,IAAI,mCAAmC;AAI9D,SAAS,YAAY,CAAC,WAAoB,CAAC,GAAkB;AAAA,EAC3D,MAAM,SAAS,CAAC,UACd,CAAC,OAAyB,YAAqB;AAAA,IAC7C,MAAM,OAAQ,WAAuC;AAAA,IACrD,IAAI,MAAM;AAAA,MACR,IAAI,OAAO,UAAU;AAAA,QAAU,KAAK,OAAO,UAAU,KAAK;AAAA,MACrD;AAAA,aAAK,OAAO,KAAI,aAAa,MAAK,GAAG,OAAO;AAAA,IACnD,EAAO,SAAI,UAAU,WAAW,QAAQ,IAAI,cAAc,SAAS;AAAA,MACjE,MAAM,QAAQ,UAAU,UAAU,QAAQ,QAAQ,QAAQ;AAAA,MAC1D,MAAM,YAAY,OAAO,UAAU,WAAW,QAAQ,KAAK,OAAO,UAAU,WAAW,WAAW,KAAI,aAAa,MAAK,CAAC;AAAA,IAC3H;AAAA;AAAA,EAEJ,OAAO;AAAA,IAAC,MAAM,OAAO,MAAM;AAAA,IAAG,MAAM,OAAO,MAAM;AAAA,IAAG,OAAO,OAAO,OAAO;AAAA,IAAG,OAAO,OAAO,OAAO;AAAA,IAC/F,OAAO,OAAO,OAAO;AAAA,IAAG,OAAO,WAAS,aAAa,KAAI,aAAa,MAAK,CAAC;AAAA,EAAC;AAAA;AAE1E,IAAM,SAAS,aAAa;;;ACd5B,IAAM,2BAA2B,OAAO,0BAA0B;;ACRlE,IAAM,sBAAqC,OAAO,OAAO,EAAC,QAAQ,aAAa,OAAO,IAAI,mBAAmB,EAAC,CAAC;;ACgCtH,IAAM,YAAY,OAAO;;ACZzB;;;AC+FO,IAAM,qBAAqB,KAAK;AAEhC,IAAM,yBAAyB,MAAM;AAQ5C,IAAM,oBAAoB,IAAI,IAAoB,CAAC,aAAa,cAAc,cAAc,WAAW,SAAS,CAAC;AACjH,IAAM,4BAA4B,IAAI,IAA6B,CAAC,qBAAqB,qBAAqB,MAAM,CAAC;AACrH,IAAM,0BAA0B,IAAI,IAAI,CAAC,iBAAiB,qBAAqB,cAAc,gBAAgB,CAAC;;;ACxF9G,IAAM,YAAY,IAAI,IAAY,CAAC,WAAW,UAAU,SAAS,CAAC;AAClE,IAAM,SAAS,IAAI,IAAY,CAAC,UAAU,SAAS,CAAC;AACpD,IAAM,WAAW,IAAI,IAAY,CAAC,aAAa,cAAc,cAAc,WAAW,SAAS,CAAC;AAqQhG,IAAM,YAAY,IAAI;AAEtB,IAAM,UAAU,IAAI;;;AFnOpB,IAAM,yBAA8D;AAAA,EAClE,cAAc;AAAA,EACd,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,sBAAsB;AAAA,EACtB,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,wBAAwB;AAAA,EACxB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;AAEA,IAAM,sBAAsB,IAAI,IAAyB,OAAO,KAAK,sBAAsB,CAA0B;AAqSrH,IAAM,gBAAgC,OAAO,OAAO,CAAC,CAAC;AAWtD,IAAM,cAAc,IAAI;AA8CxB,IAAM,cAAc,IAAI;;AGhbjB,IAAM,4BAA4B,IAAI;AAEtC,IAAM,2BAA2B,KAAK;AAEtC,IAAM,0BAA0B,KAAK;AAiDrC,IAAM,uBAAqD,OAAO,OAAO,CAAC,SAAS,YAAY,QAAQ,CAAC;AA4F/G,IAAM,cAAc,IAAI,IAA4B;AAAA,EAClD;AAAA,EAAe;AAAA,EAAa;AAAA,EAAgB;AAAA,EAAW;AAAA,EAAc;AAAA,EACrE;AAAA,EAAY;AAAA,EAAO;AAAA,EAAa;AAAA,EAAY;AAAA,EAAa;AAAA,EAAU;AAAA,EAAW;AAChF,CAAC;AAuCD,IAAM,qBAAoB,IAAI,IAAoB,CAAC,aAAa,cAAc,cAAc,WAAW,SAAS,CAAC;;;ACtI1G,IAAM,oCAAoC,IAAI;AAE9C,IAAM,iCAAiC,KAAK;AAE5C,IAAM,iCAAiC,KAAK,OAAO;AAEnD,IAAM,kCAAkC,IAAI;AAG5C,IAAM,sCAAsC,IAAI;AAchD,IAAM,6BAA6B,KAAK,OAAO;AAQ/C,IAAM,kCAAkC,KAAK;AAGpD,IAAM,QAAQ,IAAI,WAAW,CAAC;AAqgB9B,IAAM,uBAAuB,IAAI;;;AC1lBjC,IAAM,sBAAsB,KAAK;AAQjC,IAAM,uBAAuB,IAAI;;;AClBjC,IAAM,gBAAgB,IAAI,IAAI,CAAC,UAAU,YAAY,QAAQ,CAAC;;ACrB9D,IAAM,mBAAiB,OAAO,IAAI,wCAAwC;;ACC1E,IAAM,OAAO;AACN,IAAM,2BAA2B,KAAK,KAAK;AAC3C,IAAM,qBAAqB,CAAC,MAAM,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,QAAQ,OAAO;AAGzF,SAAS,gBAAgB,CAAC,OAAwB,QAAgB,WAAW,OAAO;AAAA,EACzF,IAAI,UAAU,QAAQ,UAAU,SAAS,UAAU,OAAO;AAAA,IACxD,MAAM,WAAW,EAAE,MAAM,MAAM,OAAO,KAAK,MAAM,OAAO,KAAK,KAAK;AAAA,IAClE,MAAM,WAAW,EAAE,MAAM,QAAS,OAAO,MAAM,OAAO,IAAI,KAAK,EAAE;AAAA,IACjE,OAAO,EAAE,SAAS,SAAS,SAAS,QAAQ,OAAO,QAAQ,SAAS;AAAA,EACtE;AAAA,EACA,IAAI,UAAU,QAAQ,UAAU,QAAQ,UAAU,OAAO;AAAA,IACvD,MAAM,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,EAAE;AAAA,IAC7C,MAAM,WAAW,UAAU,OAAO,OAAO,KAAK;AAAA,IAC9C,MAAM,UAAU,SAAS,OAAO,KAAK;AAAA,IACrC,MAAM,eAAe,MAAM,KAAK,EAAE,QAAQ,UAAU,OAAO,KAAK,KAAK,GAAG,CAAC,GAAG,MAAM,UAAU,IAAI,QAAQ;AAAA,IACxG,OAAO,EAAE,SAAS,OAAO,QAAQ,UAAU,aAAa;AAAA,EAC1D;AAAA,EACA,MAAM,SAAS,IAAI,KAAK,eAAe,SAAS;AAAA,IAC9C;AAAA,IAAU,MAAM;AAAA,IAAW,OAAO;AAAA,IAAW,KAAK;AAAA,IAClD,MAAM;AAAA,IAAW,QAAQ;AAAA,IAAW,QAAQ;AAAA,IAAW,WAAW;AAAA,EACpE,CAAC;AAAA,EACD,MAAM,QAAQ,CAAC,OAAe,OAAO,YAAY,OAAO,cAAc,EAAE,EACrE,OAAO,UAAQ,KAAK,SAAS,SAAS,EAAE,IAAI,UAAQ,CAAC,KAAK,MAAM,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;AAAA,EACvF,MAAM,QAAQ,MAAM,MAAM;AAAA,EAC1B,MAAM,MAAM,KAAK,IAAI,MAAM,MAAO,MAAM,QAAS,GAAG,MAAM,GAAI;AAAA,EAE9D,MAAM,WAAW,CAAC,SAAiB;AAAA,IACjC,IAAI,YAAY;AAAA,IAChB,SAAS,IAAI,EAAG,IAAI,GAAG,KAAK;AAAA,MAC1B,MAAM,IAAI,MAAM,SAAS;AAAA,MACzB,MAAM,QAAQ,KAAK,IAAI,EAAE,MAAO,EAAE,QAAS,GAAG,EAAE,KAAM,EAAE,MAAO,EAAE,QAAS,EAAE,MAAO;AAAA,MACnF,MAAM,OAAO,YAAY,OAAO;AAAA,MAChC,IAAI,SAAS;AAAA,QAAW,OAAO;AAAA,MAC/B,YAAY;AAAA,IACd;AAAA,IACA,OAAO;AAAA;AAAA,EAET,IAAI,UAAU,OAAO;AAAA,IACnB,MAAM,UAAU,SAAS,GAAG;AAAA,IAC5B,MAAM,cAAc,SAAS,MAAM,KAAK,IAAI;AAAA,IAC5C,MAAM,eAAe,MAAM,KAAK,EAAE,QAAQ,KAAK,MAAM,cAAc,WAAW,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,UAAU,IAAI,IAAI;AAAA,IACnH,OAAO,EAAE,SAAS,OAAO,QAAQ,UAAU,MAAM,cAAc,YAAY;AAAA,EAC7E;AAAA,EACA,MAAM,WAAW,UAAU,UAAU,KAAK,IAAI,MAAM,MAAO,MAAM,QAAS,GAAG,CAAC,IAC1E,OAAQ,IAAI,KAAK,GAAG,EAAE,UAAU,IAAI,KAAK,IAAK,KAAK;AAAA,EACvD,MAAM,aAAa,UAAU,UAAU,KAAK,IAAI,MAAM,MAAO,MAAM,OAAQ,CAAC,IAAI,WAAW,IAAI,KAAK;AAAA,EACpG,MAAM,QAAQ,aAAa,aAAa,KAAK;AAAA,EAC7C,MAAM,eAAe,MAAM,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC,GAAG,MAAM,SAAS,WAAW,IAAI,KAAK,IAAI,CAAC;AAAA,EAC9F,OAAO,EAAE,SAAS,aAAa,IAAK,OAAO,QAAQ,UAAU,KAAK,MAAM,cAAc,aAAa,SAAS,UAAU,EAAE;AAAA;;ACxC1H,IAAM,sBAAuD;AAAA,EAC3D;AAAA,EAAe;AAAA,EAAgB;AAAA,EAAuB;AAAA,EACtD;AAAA,EAAwB;AAAA,EAAyB;AAAA,EAAmB;AAAA,EACpE;AAAA,EAAkB;AAAA,EAAmB;AAAA,EAAoB;AAAA,EACzD;AAAA,EAA0B;AAAA,EAAuB;AAAA,EAA2B;AAAA,EAAyB;AAAA,EACrG;AAAA,EAA2B;AAAA,EAAwB;AAAA,EAA4B;AAAA,EAA0B;AAC3G;AACA,IAAM,iCAAiC,IAAI,KAAK;AAChD,IAAM,8BAA8B;AAEpC,IAAM,gBAAsD,OAAO,YACjE,oBAAoB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAC7C;AAAA;AAEO,MAAM,yBAA8D;AAAA,EAC5C;AAAA,EAA7B,WAAW,CAAkB,aAAuC;AAAA,IAAvC;AAAA;AAAA,OAEvB,cAAa,CAAC,KAAuC;AAAA,IACzD,OAAO,KAAK,YAAY,aAAa,CAAC,OAAO;AAAA,MAC3C,0BAA0B,GAAG;AAAA,MAC7B,MAAM,cAAc,GAAG,YAAY,MAAM;AAAA,QACvC,GAAG,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAMR,EAAE,IACD,IAAI,YAAY,IAAI,YAAY,IAAI,gBAAgB,IAAI,UAAU,IAAI,aAAa,IAAI,UACvF,IAAI,SAAS,IAAI,OAAO,IAAI,UAAU,MAAM,IAAI,cAAc,IAAI,eAAe,IAAI,cAAc,IAAI,eACvG,IAAI,mBAAmB,IAAI,oBAAoB,IAAI,UAAU,IAAI,yBAAyB,IAAI,CAChG;AAAA,QAEA,GAAG,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,SAKR,EAAE,IAAI,KAAK,IAAI,IAAI,wBAAwB;AAAA,OAC7C;AAAA,MACD,0BAA0B,IAAI,MAAM,YAAY,UAAU,CAAC;AAAA,KAC5D;AAAA;AAAA,OAGG,oBAAmB,CAAC,OAavB;AAAA,IACD,OAAO,KAAK,YAAY,aAAa,CAAC,OAAO;AAAA,MAC3C,4BAA4B,MAAM,QAAQ,QAAQ;AAAA,MAClD,IAAI,CAAE,mBAAyC,SAAS,MAAM,KAAK;AAAA,QAAG,MAAM,IAAI,MAAM,2BAA2B;AAAA,MACjH,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,MAAM,OAAO;AAAA,QAAG,MAAM,IAAI,MAAM,6BAA6B;AAAA,MAC7F,MAAM,SAAS,iBAAiB,MAAM,OAAO,MAAM,QAAQ,MAAM,QAAQ;AAAA,MACzE,MAAM,UAAU,KAAK,IAAI,OAAO,SAAS,KAAK,IAAI,IAAI,wBAAwB;AAAA,MAC9E,MAAM,WAAW,MAAM,YAAY,SAAS,OAAO,WAAW;AAAA,MAC9D,MAAM,eAAe,MAAM,YAAY,SAAS,OAAO,eAAe;AAAA,MACtE,MAAM,cAAc,MAAM,YAAY,SAAS,OAAO,cAAc;AAAA,MACpE,QAAQ,KAAK,WAAW,mCAAmC,KAAK,QAAQ,SAAS,SAAS,MAAM,SAAS,UAAU,cAAc,OAAO,MAAM,MAAM,CAAC;AAAA,MACrJ,MAAM,OAAO,GAAG,MAAmE,GAAG,EAAE,IAAI,GAAG,MAAM;AAAA,MACrG,MAAM,SAAS,KAAK,KAAK,CAAC,QAAQ,IAAI,SAAS,KAAK;AAAA,MACpD,MAAM,WAAW,KAAK,OAAO,CAAC,QAAQ,IAAI,SAAS,MAAM;AAAA,MACzD,MAAM,UAAU,CAAC,QAAuF;AAAA,QACtG,MAAM,OAAO,CAAC,MAAM,KAAK,cAAc,IAAI,OAAO,YAAY,oBAAoB,IAAI,CAAC,QAAQ;AAAA,UAC7F,MAAM,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAAA,UAClC,IAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ;AAAA,YAAG,MAAM,IAAI,WAAW,kCAAkC,KAAK;AAAA,UAC3G,OAAO,CAAC,KAAK,KAAK;AAAA,SACnB,CAAC;AAAA,QACF,MAAM,UAAU,KAAK;AAAA,QACrB,MAAM,mBAAmB,YAAY,aAAa,YAAY,OAAO,OAAO,OAAO,OAAO;AAAA,QAC1F,IAAI,qBAAqB,SAAS,CAAC,OAAO,SAAS,gBAAgB,KAAK,mBAAmB,IAAI;AAAA,UAC7F,MAAM,IAAI,WAAW,iDAAiD;AAAA,QACxE;AAAA,QACA,OAAO,KAAK,MAAM,iBAAiB;AAAA;AAAA,MAErC,OAAO;AAAA,QACL,KAAK,QAAQ,MAAM;AAAA,QACnB,MAAM,SAAS,IAAI,CAAC,SAAS;AAAA,UAC3B,WAAW,OAAO,IAAI,SAAS;AAAA,aAC3B,MAAM,YAAY,SAAS,EAAE,eAAe,OAAO,IAAI,aAAa,EAAE,IAAI,CAAC;AAAA,UAC/E,SAAS,QAAQ,GAAG;AAAA,QACtB,EAAE;AAAA,WACE,aAAa,YAAY,CAAC,IAAI,EAAE,SAAS;AAAA,WACzC,iBAAiB,YAAY,CAAC,IAAI,EAAE,aAAa;AAAA,WACjD,gBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY;AAAA,QACnD,SAAS,OAAO,QAAQ,WAAW,CAAC,MAAM;AAAA,MAC5C;AAAA,KACD;AAAA;AAAA,OAEG,iBAAgB,CAAC,OAAwD;AAAA,IAC7E,MAAM,OAAK,MAAM,QAAQ,GAAE,WAAS,MAAM,YAAY,IAAG,UAAQ,MAAM;AAAA,IACvE,IAAG,CAAC,OAAO,cAAc,IAAI,KAAG,OAAK,KAAG,OAAK,OAAK,CAAC,OAAO,cAAc,QAAQ,KAAG,WAAS,KAAG,WAAS,OACnG,YAAU,cAAY,OAAO,YAAU,YAAU,QAAQ,SAAO;AAAA,MAAK,MAAM,IAAI,MAAM,wCAAwC;AAAA,IAClI,MAAM,QAAM,KAAK,IAAI,IAAE;AAAA,IACvB,MAAM,SAAO,UAAU,IAAI,QAAQ,QAAQ,WAAW,eAAW,KAAK,WAAW,OAAO;AAAA,IACxF,OAAO,KAAK,YAAY,aAAa,QAAI;AAAA,MACvC,MAAM,SAAO,SAAS,kCAAkC;AAAA,MACxD,MAAM,SAAyB,SAAS,CAAC,OAAM,MAAM,IAAI,CAAC,KAAK;AAAA,MAC/D,MAAM,QAAM,OAAO,GAAG,MAAwC,4FAA4F,QAAQ,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAAA,MAC9L,MAAM,OAAK,GAAG,MAAwC,4EAA4E,4CAA4C,EAAE,IAAI,GAAG,QAAO,WAAU,OAAK,KAAG,QAAQ;AAAA,MACxN,OAAO,EAAC,QAAO,KAAK,IAAI,SAAK,OAAO,IAAI,KAAK,CAAC,GAAE,OAAM,OAAO,cAAc,KAAK,KAAG,SAAO,IAAI,QAAQ,GAAE,MAAK,SAAQ;AAAA,KACtH;AAAA;AAGL;AAEO,SAAS,kCAAkC,CAAC,OAOF;AAAA,EAC/C,MAAM,UAAU,CAAC,UAAkB;AAAA,6BACR,qCAAqC;AAAA,6BACrC,sCAAsC;AAAA,6BACtC,uDAAuD;AAAA,6BACvD,wDAAwD;AAAA,6BACxD,gEAAgE;AAAA,6BAChE,iEAAiE;AAAA,mBAC3E;AAAA,mBACA;AAAA,UACT;AAAA,oBACU,wCAAwC;AAAA,qBACvC;AAAA;AAAA,UAEX;AAAA,UACA;AAAA,oCAC0B;AAAA,UAC1B,iEAAiE;AAAA,UACjE;AAAA,qCAC2B;AAAA,UAC3B,mEAAmE;AAAA,EAC3E,IAAI,MAAM,YAAY,WAAW,CAAC,OAAO,cAAc,MAAM,QAAQ,KAAK,MAAM,YAAa,IAAI;AAAA,IAC/F,MAAM,IAAI,MAAM,8BAA8B;AAAA,EAChD;AAAA,EACA,IAAI,MAAM,iBAAiB,CAAC,MAAM,aAAa,UAAU,MAAM,aAAa,SAAS,MAChF,MAAM,aAAa,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,KAAK,IAAI,KAAK,SAAS,OAAO,IAAI,EAAG,IAAI;AAAA,IAClI,MAAM,IAAI,MAAM,kCAAkC;AAAA,EACpD;AAAA,EACA,IAAI,MAAM,UAAU,cAAc,OAAO,MAAM,UAAU,YAAY,CAAC,MAAM,SAAS,MAAM,MAAM,SAAS;AAAA,IAAM,MAAM,IAAI,MAAM,2BAA2B;AAAA,EAC3J,MAAM,YAAY,MAAM,UAAU,YAAY,KAAK,MAAM,UAAU,qBAAqB,wBAAwB;AAAA,EAChH,MAAM,QAAQ,MAAM,UAAU,YAAY,sCAAsC;AAAA,EAChF,MAAM,SAAS,MAAM,eAAe,MAAM;AAAA,EAC1C,MAAM,UAAU,CAAC,MAAM,gBAAgB,MAAM,aAAa,MAAM,CAAC,OAAO,MAAM,UAAU,SAAS,IAAI,MAAM,QAAS;AAAA,EACpH,MAAM,cAAc,MAAM,YAAY,SAAS,SAAS,UACpD,kCAAkC,aAAa,MAAM,0BAA0B,MAAM,cAAc,WACnG,QAAQ,CAAC,GAAG,MAAM,YAAa,EAAE,QAAQ,EAAE,IAAI,WAAS,kCAAkC,cAAc,OAAO,EAAE,KAAK,GAAG;AAAA,EAC7H,MAAM,eAAe,MAAM,YAAY,SAAS,iCAAiC;AAAA,EACjF,MAAM,UAAU;AAAA;AAAA,yDAEuC,iCAAiC,QAAQ,SAAS;AAAA,2CAChE;AAAA,EACzC,OAAO;AAAA,IACL,KAAK;AAAA;AAAA,wDAE+C;AAAA,0DACE;AAAA;AAAA,yEAEe,QAAQ,SAAS;AAAA;AAAA,QAElF;AAAA;AAAA;AAAA,IAGJ,QAAQ,CAAC,MAAM,SAAS,MAAM,OAAO,GAAI,MAAM,UAAU,aAAa,MAAM,UAAU,qBAAqB,CAAC,MAAM,KAAK,IAAI,CAAC,CAAE;AAAA,EAChI;AAAA;AAGF,SAAS,yBAAyB,CAAC,KAA8B;AAAA,EAC/D,IAAI,CAAC,OAAO,OAAO,QAAQ,YAAY,MAAM,QAAQ,GAAG;AAAA,IAAG,MAAM,IAAI,MAAM,6BAA6B;AAAA,EACxG,WAAW,OAAO,CAAC,cAAc,cAAc,YAAY,eAAe,YAAY,WAAW,OAAO,GAAY;AAAA,IAClH,IAAI,OAAO,IAAI,SAAS,YAAY,IAAI,KAAK,WAAW;AAAA,MAAG,MAAM,IAAI,MAAM,uBAAuB,KAAK;AAAA,EACzG;AAAA,EACA,IAAI,IAAI,UAAU,SAAS,OAAO,IAAI,WAAW,YAAY,CAAC,IAAI,UAAU,IAAI,OAAO,SAAS;AAAA,IAAM,MAAM,IAAI,MAAM,4BAA4B;AAAA,EAClJ,4BAA4B,IAAI,gBAAgB,gBAAgB;AAAA,EAChE,YAAY,KAAK,UAAU;AAAA,IACzB,CAAC,gBAAgB,IAAI,YAAY;AAAA,IAAG,CAAC,iBAAiB,IAAI,aAAa;AAAA,IACvE,CAAC,qBAAqB,IAAI,iBAAiB;AAAA,IAAG,CAAC,sBAAsB,IAAI,kBAAkB;AAAA,EAC7F,GAAY;AAAA,IACV,IAAI,UAAU,SAAS,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ;AAAA,MAAI,MAAM,IAAI,MAAM,uBAAuB,KAAK;AAAA,EACjH;AAAA,EACA,IAAI,IAAI,aAAa,SAAS,CAAC,OAAO,SAAS,IAAI,QAAQ,KAAK,IAAI,WAAW;AAAA,IAAI,MAAM,IAAI,MAAM,8BAA8B;AAAA,EACjI,IAAI,CAAC,mBAAmB,IAAI,YAAY,KAAK,CAAC,mBAAmB,IAAI,aAAa;AAAA,IAAG,MAAM,IAAI,MAAM,kCAAkC;AAAA,EACvI,IAAI,OAAO,IAAI,2BAA2B;AAAA,IAAW,MAAM,IAAI,MAAM,4CAA4C;AAAA,EACjH,IAAK,IAAI,iBAAiB,eAAgB,IAAI,iBAAiB,SACzD,IAAI,kBAAkB,eAAgB,IAAI,kBAAkB;AAAA,IAAO,MAAM,IAAI,MAAM,mCAAmC;AAAA;AAG9H,SAAS,kBAAkB,CAAC,OAAgD;AAAA,EAC1E,OAAO,UAAU,WAAW,UAAU,eAAe,UAAU,aAAa,UAAU;AAAA;AAGxF,SAAS,2BAA2B,CAAC,OAAe,MAAoB;AAAA,EACtE,IAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ;AAAA,IAAG,MAAM,IAAI,MAAM,uBAAuB,MAAM;AAAA,EAC5F,MAAM,MAAM,KAAK,IAAI;AAAA,EACrB,IAAI,QAAQ,MAAM;AAAA,IAA0B,MAAM,IAAI,WAAW,eAAe,+BAA+B;AAAA,EAC/G,IAAI,QAAQ,MAAM;AAAA,IAAgC,MAAM,IAAI,WAAW,eAAe,+BAA+B;AAAA;AAKhH,SAAS,yBAA4B,CAAC,IAAc,WAAuB;AAAA,EAChF,MAAM,cAAc,GAAG,MAA+B,qBAAqB,EAAE,IAAI,GAAG;AAAA,EACpF,IAAI,CAAC,OAAO,cAAc,WAAW,KAAK,cAAe;AAAA,IAAG,MAAM,IAAI,MAAM,oCAAoC;AAAA,EAChH,IAAI;AAAA,IACF,GAAG,IAAI,yBAAyB,6BAA6B;AAAA,IAC7D,OAAO,UAAU;AAAA,YACjB;AAAA,IACA,GAAG,IAAI,yBAAyB,aAAa;AAAA;AAAA;;;AChO1C,IAAM,2BAA2B;AACjC,IAAM,2BAA2B;AAGxC,eAAsB,sBAAsB,CAAC,SAAsD;AAAA,EACjG,IAAI,CAAC,QAAQ;AAAA,IAAY,MAAM,IAAI,MAAM,mDAAmD;AAAA,EAC5F,MAAM,SAAS,MAAM,QAAQ,WAAW,wBAAwB;AAAA,EAChE,OAAO,wBAAwB,OAAO,QAAQ,OAAO,QAAQ,CAAC,CAAC;AAAA;AAG1D,SAAS,4BAA4B,CAAC,SAA4B,UAAiD;AAAA,EACxH,OAAO,SAAS,KAAK,UAAQ,KAAK,WAAW,QAAQ,UAAU,KAAK,aAAa,QAAQ,YAAY,KAAK,UAAU,QAAQ,KAAK;AAAA;AAG5H,SAAS,uBAAuB,CAAC,OAAqC;AAAA,EAC3E,IAAI,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS;AAAA,IAA0B,MAAM,IAAI,MAAM,eAAe;AAAA,EACrG,MAAM,UAAU,IAAI;AAAA,EACpB,OAAO,MAAM,IAAI,UAAQ;AAAA,IACvB,IAAI,CAAC,QAAQ,OAAO,SAAS,YAAY,MAAM,QAAQ,IAAI,KACtD,OAAO,KAAK,IAAI,EAAE,KAAK,SAAO,CAAC,CAAC,UAAU,YAAY,OAAO,EAAE,SAAS,GAAG,CAAC;AAAA,MAAG,MAAM,IAAI,MAAM,eAAe;AAAA,IACnH,QAAQ,QAAQ,UAAU,UAAU;AAAA,IACpC,YAAY,MAAM,UAAU,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,GAAY;AAAA,MACnF,IAAI,OAAO,SAAS,YAAY,CAAC,KAAK,KAAK,KAAK,SAAS,KAAK,KAAK,KAAK,KAAK,SAAS,SACjF,wBAAwB,KAAK,IAAI;AAAA,QAAG,MAAM,IAAI,MAAM,eAAe;AAAA,IAC1E;AAAA,IACA,IAAI,QAAQ,IAAI,MAAM;AAAA,MAAG,MAAM,IAAI,MAAM,eAAe;AAAA,IACxD,QAAQ,IAAI,MAAM;AAAA,IAClB,OAAO,EAAE,QAAQ,UAAU,MAAM;AAAA,GAClC;AAAA;;;ACvBH,IAAM,+BAA+B,CAAC,YAAY,SAAS,aAAa,WAAW,MAAM;AAAA;AA8ClF,MAAM,kCAAkC,MAAM;AAAA,EACnD,WAAW,CAAC,SAAiB;AAAA,IAAE,MAAM,OAAO;AAAA,IAAG,KAAK,OAAO;AAAA;AAC7D;AAAA;AAEO,MAAM,uCAAuC,0BAA0B;AAAC;AAUxE,IAAM,6BAA6B;AACnC,IAAM,wBAAwB;AACrC,IAAM,2BAA2B;AAE1B,IAAM,2BAA2B;AAMxC,IAAM,uBAAuB;AAC7B,IAAM,kBAAkB;AACxB,IAAM,kBAAmC,CAAC;AAC1C,IAAI,eAAe;AACnB,IAAI;AACJ,IAAI,WAAW;AACf,IAAI,gBAAgB;AACpB,IAAI,mBAAmB;AAEvB,SAAS,cAAc,CAAC,QAAwB,MAA0B,OAAuB;AAAA,EAC/F,IAAI;AAAA,IAAE,OAAO,YAAY;AAAA,IAAK,MAAM;AAAA,EACpC,MAAM,MAAM,KAAK,IAAI;AAAA,EACrB,IAAI,SAAS,QAAQ;AAAA,IACnB,IAAI,MAAM,gBAAgB;AAAA,MAAiB;AAAA,IAC3C,gBAAgB;AAAA,IAChB,IAAI;AAAA,MAAE,OAAO,KAAK,0DAA0D,EAAE,UAAU,qBAAqB,CAAC;AAAA,MAAK,MAAM;AAAA,IACzH;AAAA,EACF;AAAA,EACA,IAAI,MAAM,mBAAmB;AAAA,IAAiB;AAAA,EAC9C,mBAAmB;AAAA,EACnB,IAAI;AAAA,IACF,OAAO,MAAM,gEAAgE;AAAA,MAC3E,OAAO,iBAAiB,QAAQ,MAAM,UAAU,UAAU,YAAY,iCAAiC,OAAO,KAAK;AAAA,IACrH,CAAC;AAAA,IACD,MAAM;AAAA;AAGV,SAAS,aAAa,GAAS;AAAA,EAC7B,IAAI,eAAe,aAAa;AAAA,IAAU;AAAA,EAC1C,aAAa,WAAW,MAAM;AAAA,IAAE,aAAa;AAAA,IAAgB,gBAAgB;AAAA,KAAM,CAAC;AAAA;AAGtF,eAAe,eAAe,GAAkB;AAAA,EAC9C,IAAI;AAAA,IAAU;AAAA,EACd,MAAM,OAAO,gBAAgB,MAAM;AAAA,EACnC,IAAI,CAAC;AAAA,IAAM;AAAA,EACX,WAAW;AAAA,EACX,IAAI;AAAA,IACF,IAAI;AAAA,MACF,MAAM,MAAM,MAAM,KAAK,KAAK;AAAA,MAC5B,IAAI,QAAQ,WAAW;AAAA,QACrB,eAAe,KAAK,QAAQ,SAAS;AAAA,MACvC,EAAO;AAAA,QACL,MAAM,KAAK,SAAS,cAAc,GAAG;AAAA;AAAA,MAEvC,OAAO,OAAO;AAAA,MACd,eAAe,KAAK,QAAQ,WAAW,KAAK;AAAA;AAAA,YAE9C;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,IAAI,gBAAgB;AAAA,MAAQ,cAAc;AAAA;AAAA;AAgB9C,SAAS,uBAAuB,GAA0B;AAAA,EACxD,MAAM,QAAQ,MAAM,OAAO,YAAY,6BAA6B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;AAAA,EACtG,OAAO,EAAE,OAAO,MAAM,GAAG,QAAQ,MAAM,EAAE;AAAA;AAG3C,SAAS,YAAY,CAAC,SAA4E;AAAA,EAChG,MAAM,qBAAqB,wBAAwB;AAAA,EACnD,WAAW,aAAa,8BAA8B;AAAA,IACpD,mBAAmB,MAAM,aAAa,QAAQ,iBAAiB,UAAU,GAAI,YAAY,IAAI,UAAU,MAAM,CAAC;AAAA,IAC9G,mBAAmB,OAAO,aAAa,QAAQ,kBAAkB,UAAU,GAAI,YAAY,IAAI,UAAU,MAAM,CAAC;AAAA,EAClH;AAAA,EACA,OAAO;AAAA,IACL,aAAa,QAAQ;AAAA,IACrB,cAAc,QAAQ;AAAA,IACtB,qBAAqB,QAAQ;AAAA,IAC7B,sBAAsB,QAAQ;AAAA,IAC9B,sBAAsB,QAAQ;AAAA,IAC9B,uBAAuB,QAAQ;AAAA,IAC/B,iBAAiB,QAAQ;AAAA,IACzB,kBAAkB,QAAQ;AAAA,IAC1B,gBAAgB,QAAQ;AAAA,IACxB,iBAAiB,QAAQ;AAAA,IACzB,kBAAkB,QAAQ;AAAA,IAC1B,+BAA+B,QAAQ;AAAA,IACvC,kBAAkB,QAAQ;AAAA,IAC1B;AAAA,EACF;AAAA;AAsCK,MAAM,qBAAqB;AAAA,EAGH;AAAA,EAFZ;AAAA,EAEjB,WAAW,CAAkB,SAAwB;AAAA,IAAxB;AAAA,IAC3B,IAAI,CAAC,QAAQ,YAAY,CAAC,QAAQ;AAAA,MAAa,MAAM,IAAI,0BAA0B,0CAA0C;AAAA,IAC7H,KAAK,WAAW,QAAQ,YAAY,IAAI,yBAAyB,QAAQ,WAAY;AAAA;AAAA,EAIvF,cAAc,CAAC,MAAmB,QAAiC;AAAA,IACjE,IAAI,gBAAgB,sBAAsB;AAAA,MACxC,eAAe,QAAQ,MAAM;AAAA,MAC7B,OAAO;AAAA,IACT;AAAA,IACA,gBAAgB,KAAK,EAAE,UAAU,KAAK,UAAU,MAAM,OAAO,CAAC;AAAA,IAC9D;AAAA,IACA,cAAc;AAAA,IACd,OAAO;AAAA;AAAA,OAGH,MAAK,CAAC,OAAe,SAA2B,SAAS,KAAK,IAAI,GAAG,UAAmB,OAAuC;AAAA,IACnI,IAAI,CAAE,mBAAyC,SAAS,KAAK;AAAA,MAAG,MAAM,IAAI,0BAA0B,2BAA2B;AAAA,IAC/H,IAAI,YAAY,WAAW,YAAY,QAAQ;AAAA,MAC7C,MAAM,IAAI,0BAA0B,6BAA6B;AAAA,IACnE;AAAA,IACA,IAAI,CAAC,OAAO,cAAc,MAAM,KAAK,SAAS;AAAA,MAAG,MAAM,IAAI,0BAA0B,4BAA4B;AAAA,IACjH,MAAM,WAAW,MAAM,KAAK,SAAS,oBAAoB,EAAE,QAAQ,OAAiC,SAAS,UAAU,MAAM,CAAC;AAAA,IAC9H,MAAM,QAAQ,aAAa,SAAS,GAAG;AAAA,IACvC,QAAQ,aAAa,iBAAiB,YAAY;AAAA,IAClD,OAAO;AAAA,MACL,qBAAqB,OAAO,KAAK,QAAQ,WAAW,KAAK,KAAK,SAAS,IAAI,wBAAwB,MAAM;AAAA,MACzG;AAAA,MACA;AAAA,SACG;AAAA,MACH,kBAAkB;AAAA,MAClB,mBAAmB;AAAA,SACf,SAAS,aAAa,YAAY,CAAC,IAAI,EAAE,UAAU,SAAS,SAAS;AAAA,SACrE,SAAS,iBAAiB,YAAY,CAAC,IAAI,EAAE,cAAc,SAAS,aAAa;AAAA,SACjF,SAAS,gBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,SAAS,YAAY;AAAA,MAClF,MAAM,SAAS,KAAK,IAAI,CAAC,SAAS;AAAA,QAChC,WAAW,IAAI;AAAA,WACX,IAAI,kBAAkB,YAAY,CAAC,IAAI,EAAE,eAAe,IAAI,cAAc;AAAA,WAC3E,aAAa,IAAI,OAAO;AAAA,MAC7B,EAAE,EAAE,KAAK,YAAY,UACjB,CAAC,GAAG,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,gBAC1D,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,UAAU,cAAc,EAAE,SAAS,IACnF,CAAC,GAAG,MAAM,EAAE,gBAAiB,EAAE,iBAAkB,EAAE,UAAU,cAAc,EAAE,SAAS,CAAC;AAAA,IAC7F;AAAA;AAAA,OASI,iBAAgB,CAAC,QAAgE,CAAC,GAA6B;AAAA,IACnH,MAAM,WAAW,KAAK,IAAI,GAAG,KAAK,IAAI,4BAA4B,KAAK,MAAM,MAAM,YAAY,EAAE,CAAC,CAAC;AAAA,IACnG,MAAM,OAAO,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,QAAQ,CAAC,CAAC;AAAA,IACpD,IAAI,CAAC,OAAO,cAAc,IAAI,KAAK,OAAO;AAAA,MAAuB,MAAM,IAAI,0BAA0B,0BAA0B;AAAA,IAC/H,MAAM,UAAU,MAAM;AAAA,IACtB,IAAI,YAAY,cAAc,OAAO,YAAY,YAAY,QAAQ,SAAS,2BAA2B;AAAA,MACvG,MAAM,IAAI,0BAA0B,6BAA6B;AAAA,IACnE;AAAA,IACA,IAAI,KAAK,SAAS;AAAA,MAAkB,OAAO,KAAK,SAAS,iBAAiB,EAAC,MAAK,UAAS,QAAO,CAAC;AAAA,IACjG,MAAM,IAAI,0BAA0B,kDAAkD;AAAA;AAAA,OAIlF,SAAQ,GAAiC;AAAA,IAC7C,OAAO,uBAAuB,KAAK,OAAO;AAAA;AAAA,OAGtC,kBAAiB,CAAC,UAA8C;AAAA,IACpE,MAAM,KAAK,QAAQ,IAAI,0BAA0B,QAAQ;AAAA;AAE7D;;;AC1QA,IAAM,qBAAqB,MAAM;AACjC,IAAM,gCAAgC,IAAI,OAAO;AACjD,IAAM,iBAAiB,CAAC,SAAS,MAAM;AAAA;AAYvC,MAAM,qBAAqB,MAAM;AAAA,EACV;AAAA,EAArB,WAAW,CAAU,MAAwB;AAAA,IAC3C,MAAM,IAAI;AAAA,IADS;AAAA,IAEnB,KAAK,OAAO;AAAA;AAEhB;AAEA,SAAS,YAAY,CAAC,OAAgB,SAAS,KAAK,WAAW,oBAA8B;AAAA,EAC3F,MAAM,OAAO,KAAK,UAAU,KAAK;AAAA,EACjC,IAAI,IAAI,YAAY,EAAE,OAAO,IAAI,EAAE,aAAa,UAAU;AAAA,IACxD,OAAO,IAAI,SAAS,KAAK,UAAU,EAAE,OAAO,iBAAiB,CAAC,GAAG;AAAA,MAC/D,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,kCAAkC;AAAA,IAC/D,CAAC;AAAA,EACH;AAAA,EACA,OAAO,IAAI,SAAS,MAAM;AAAA,IACxB;AAAA,IACA,SAAS,EAAE,gBAAgB,kCAAkC;AAAA,EAC/D,CAAC;AAAA;AAGH,SAAS,aAAa,CAAC,OAA0B;AAAA,EAC/C,MAAM,OAAO,iBAAiB,eAC1B,MAAM,OACN,iBAAiB,iCACf,mBACF,iBAAiB,4BACf,4BACA;AAAA,EACN,MAAM,SAAS,SAAS,uBAAuB,SAAS,kBAAkB,MACtE,SAAS,aAAa,MACtB,SAAS,yBAAyB,SAAS,wBAAwB,MACnE;AAAA,EACJ,OAAO,aAAa,EAAE,OAAO,KAAK,GAAG,MAAM;AAAA;AAG7C,eAAe,YAAY,CAAC,SAAkB,WAAW,MAAwB;AAAA,EAC/E,MAAM,SAAS,QAAQ,MAAM,UAAU;AAAA,EACvC,IAAI,CAAC;AAAA,IAAQ,MAAM,IAAI,aAAa,eAAe;AAAA,EACnD,MAAM,SAAuB,CAAC;AAAA,EAC9B,IAAI,OAAO;AAAA,EACX,IAAI;AAAA,IACF,UAAS;AAAA,MACP,QAAQ,MAAM,UAAU,MAAM,OAAO,KAAK;AAAA,MAC1C,IAAI;AAAA,QAAM;AAAA,MACV,QAAQ,MAAM;AAAA,MACd,IAAI,OAAO,UAAU;AAAA,QAAE,MAAM,OAAO,OAAO;AAAA,QAAG,MAAM,IAAI,aAAa,eAAe;AAAA,MAAG;AAAA,MACvF,OAAO,KAAK,KAAK;AAAA,IACnB;AAAA,IACA,MAAM,QAAQ,IAAI,WAAW,IAAI;AAAA,IACjC,IAAI,SAAS;AAAA,IACb,WAAW,SAAS,QAAQ;AAAA,MAAE,MAAM,IAAI,OAAO,MAAM;AAAA,MAAG,UAAU,MAAM;AAAA,IAAY;AAAA,IACpF,OAAO,KAAK,MAAM,IAAI,YAAY,EAAE,OAAO,KAAK,CAAC;AAAA,YACjD;AAAA,IAAU,OAAO,YAAY;AAAA;AAAA;AAGjC,SAAS,SAAY,CAAC,SAAqB,eAA4B,YAAqC;AAAA,EAC1G,IAAI,WAAW;AAAA,IAAS,OAAO,QAAQ,OAAO,IAAI,aAAa,UAAU,CAAC;AAAA,EAC1E,IAAI,cAAc;AAAA,IAAS,OAAO,QAAQ,OAAO,IAAI,aAAa,mBAAmB,CAAC;AAAA,EACtF,OAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AAAA,IACzC,IAAI,UAAU;AAAA,IACd,MAAM,UAAU,MAAM;AAAA,MACpB,cAAc,oBAAoB,SAAS,cAAc;AAAA,MACzD,WAAW,oBAAoB,SAAS,WAAW;AAAA;AAAA,IAErD,MAAM,iBAAiB,MAAM;AAAA,MAAE,IAAI,CAAC,SAAS;AAAA,QAAE,UAAU;AAAA,QAAM,QAAQ;AAAA,QAAG,OAAO,IAAI,aAAa,mBAAmB,CAAC;AAAA,MAAG;AAAA;AAAA,IACzH,MAAM,cAAc,MAAM;AAAA,MAAE,IAAI,CAAC,SAAS;AAAA,QAAE,UAAU;AAAA,QAAM,QAAQ;AAAA,QAAG,OAAO,IAAI,aAAa,UAAU,CAAC;AAAA,MAAG;AAAA;AAAA,IAC7G,cAAc,iBAAiB,SAAS,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAAA,IACtE,WAAW,iBAAiB,SAAS,aAAa,EAAE,MAAM,KAAK,CAAC;AAAA,IAChE,QAAQ,KACN,CAAC,UAAU;AAAA,MAAE,IAAI,CAAC,SAAS;AAAA,QAAE,UAAU;AAAA,QAAM,QAAQ;AAAA,QAAG,QAAQ,KAAK;AAAA,MAAG;AAAA,OACxE,CAAC,UAAU;AAAA,MAAE,IAAI,CAAC,SAAS;AAAA,QAAE,UAAU;AAAA,QAAM,QAAQ;AAAA,QAAG,OAAO,KAAK;AAAA,MAAG;AAAA,KACzE;AAAA,GACD;AAAA;AAGH,SAAS,eAAe,CAAC,SAAmG;AAAA,EAC1H,MAAM,SAAS,IAAI,IAAI,QAAQ,GAAG,EAAE;AAAA,EACpC,WAAW,OAAO,CAAC,YAAY,UAAU,QAAQ,UAAU;AAAA,IAAG,IAAI,OAAO,OAAO,GAAG,EAAE,SAAS;AAAA,MAAG,OAAO;AAAA,EACxG,MAAM,WAAW,OAAO,IAAI,UAAU,KAAK;AAAA,EAC3C,MAAM,SAAS,OAAO,IAAI,QAAQ,KAAK;AAAA,EACvC,MAAM,OAAO,OAAO,IAAI,MAAM,MAAM,OAAO,IAAI,OAAO,OAAO,IAAI,MAAM,CAAC;AAAA,EACxE,MAAM,WAAW,OAAO,IAAI,UAAU,MAAM,OAAO,KAAK,OAAO,OAAO,IAAI,UAAU,CAAC;AAAA,EACrF,IAAI,CAAC,OAAO,cAAc,IAAI,KAAK,OAAO,KACrC,CAAC,OAAO,cAAc,QAAQ,KAAK,WAAW,KAAK,WAAW;AAAA,IAA4B,OAAO;AAAA,EACtG,OAAO,KAAM,aAAa,YAAY,CAAC,IAAI,EAAE,SAAS,MAAQ,WAAW,YAAY,CAAC,IAAI,EAAE,OAAO,GAAI,MAAM,SAAS;AAAA;AAAA;AAGxH,MAAM,kBAA2C;AAAA,EAOlB;AAAA,EANpB;AAAA,EACA,MAAM,CAAC;AAAA,EACC;AAAA,EACT,WAAW;AAAA,EACF;AAAA,EAEjB,WAAW,CAAkB,MAA0B;AAAA,IAA1B;AAAA,IAC3B,KAAK,aAAa,IAAI,qBAAqB,KAAK,OAAO;AAAA,IACvD,KAAK,gBAAgB,MAAM;AAAA,MAAE,KAAK,QAAQ;AAAA;AAAA,IAC1C,IAAI,KAAK,OAAO;AAAA,MAAS,KAAK,WAAW;AAAA,IACpC;AAAA,WAAK,OAAO,iBAAiB,SAAS,KAAK,eAAe,EAAE,MAAM,KAAK,CAAC;AAAA,IAC7E,KAAK,MAAM,KAAK,SAAS;AAAA;AAAA,EAGnB,WAAW,CAAC,QAA4B;AAAA,IAC9C,IAAI,KAAK,YAAY,KAAK,KAAK,OAAO;AAAA,MAAS,MAAM,IAAI,aAAa,UAAU;AAAA,IAChF,IAAI,QAAQ;AAAA,MAAS,MAAM,IAAI,aAAa,mBAAmB;AAAA;AAAA,EAGzD,cAAc,GAA4B;AAAA,IAChD,MAAM,WAAW,KAAK,KAAK;AAAA,IAC3B,IAAI,aAAa;AAAA,MAAW,MAAM,IAAI,aAAa,qBAAqB;AAAA,IACxE,IAAI;AAAA,MACF,OAAO,SAAS,QACd,cAAc,+BAA+B,mCAC/C;AAAA,MACA,MAAM;AAAA,MAAE,MAAM,IAAI,aAAa,qBAAqB;AAAA;AAAA;AAAA,EAGhD,QAAQ,GAAqC;AAAA,IACnD,MAAM,SAAS,CAAC,YACd,OAAO,YAAyD;AAAA,MAC9D,IAAI;AAAA,QACF,KAAK,YAAY,QAAQ,aAAa;AAAA,QACtC,OAAO,MAAM,QAAQ,OAAO;AAAA,QAC5B,OAAO,OAAO;AAAA,QACd,OAAO,cAAc,KAAK;AAAA;AAAA;AAAA,IAIhC,OAAO,CAAC;AAAA,MACN,MAAM;AAAA,MAAU,SAAS,CAAC,KAAK;AAAA,MAAG,SAAS;AAAA,MAC3C,QAAQ,OAAO,OAAO,YAAY;AAAA,QAChC,IAAI,QAAQ,QAAQ,WAAW,OAAO;AAAA,UACpC,OAAO,IAAI,SAAS,KAAK,UAAU,EAAE,OAAO,qBAAqB,CAAC,GAAG;AAAA,YACnE,QAAQ;AAAA,YACR,SAAS,EAAE,OAAO,OAAO,gBAAgB,kCAAkC;AAAA,UAC7E,CAAC;AAAA,QACH;AAAA,QACA,KAAK,YAAY,QAAQ,aAAa;AAAA,QACtC,MAAM,MAAM,IAAI,IAAI,QAAQ,QAAQ,GAAG;AAAA,QACvC,MAAM,WAAW,IAAI,aAAa,IAAI,OAAO;AAAA,QAC7C,MAAM,aAAa,IAAI,aAAa,IAAI,SAAS;AAAA,QACjD,MAAM,WAAW,IAAI,aAAa,IAAI,UAAU,KAAK;AAAA,QACrD,MAAM,QAAQ,IAAI,aAAa,IAAI,OAAO,KAAK;AAAA,QAC/C,IAAI,IAAI,aAAa,OAAO,OAAO,EAAE,SAAS,KACzC,IAAI,aAAa,OAAO,SAAS,EAAE,SAAS,KAC5C,IAAI,aAAa,OAAO,UAAU,EAAE,SAAS,KAC7C,IAAI,aAAa,OAAO,OAAO,EAAE,SAAS,KACzC,UAAU,cAAc,CAAC,SAAS,MAAM,SAAS,QACjD,aAAa,QAAQ,CAAE,mBAAyC,SAAS,QAAQ,KACjF,eAAe,QAAQ,CAAE,eAAqC,SAAS,UAAU,GAAI;AAAA,UACzF,MAAM,IAAI,aAAa,eAAe;AAAA,QACxC;AAAA,QACA,IAAI,aAAa,WAAW;AAAA,UAC1B,IAAI;AAAA,YACF,IAAI,CAAC,YAAY,SAAS,SAAS;AAAA,cAAK,MAAM,IAAI,MAAM,mBAAmB;AAAA,YAC3E,IAAI,KAAK,eAAe,SAAS,EAAE,SAAS,CAAC;AAAA,YAC7C,MAAM;AAAA,YAAE,MAAM,IAAI,aAAa,eAAe;AAAA;AAAA,QAClD;AAAA,QACA,MAAM,QAAQ,YAAY;AAAA,QAC1B,MAAM,UAAW,cAAc;AAAA,QAC/B,MAAM,UAAU,MAAM,UACpB,KAAK,WAAW,MAAM,OAAO,SAAS,KAAK,IAAI,GAAG,UAAU,KAAK,GACjE,QAAQ,eACR,QAAQ,MACV;AAAA,QACA,KAAK,YAAY,QAAQ,aAAa;AAAA,QACtC,MAAM,WAAW,CAAC,MAAM,OAAO,KAAK,EAAE,SAAS,KAAK,IAAI,qBAAqB;AAAA,QAC7E,OAAO,aAAa,SAAyB,KAAK,QAAQ;AAAA,OAC3D;AAAA,IACH,GAAG;AAAA,MACD,MAAM;AAAA,MAAY,SAAS,CAAC,KAAK;AAAA,MAAG,SAAS;AAAA,MAC7C,QAAQ,OAAO,YAAY;AAAA,QACzB,MAAM,SAAS,KAAK,eAAe,EAAE,OAAO;AAAA,QAC5C,OAAO,aAAa,KAAK,QAAQ,QAAQ,sBAAsB,CAAC;AAAA,OACjE;AAAA,IACH,GAAG;AAAA,MACD,MAAM;AAAA,MAAmB,SAAS,CAAC,KAAK;AAAA,MAAG,SAAS;AAAA,MACpD,QAAQ,OAAO,OAAO,YAAY;AAAA,QAChC,MAAM,QAAQ,gBAAgB,QAAQ,OAAO;AAAA,QAC7C,IAAI,UAAU;AAAA,UAAM,OAAO,aAAa,EAAE,OAAO,gBAAgB,GAAG,GAAG;AAAA,QACvE,MAAM,SAAS,KAAK,eAAe,EAAE,aAAa,KAAK;AAAA,QACvD,MAAM,SAA6B,OAAO,OAAO,IAAI,YAAU;AAAA,UAC7D,UAAU,MAAM;AAAA,UAAU,cAAc,MAAM;AAAA,UAAc,OAAO,MAAM;AAAA,UAAO,MAAM,MAAM;AAAA,QAC9F,EAAE;AAAA,QACF,OAAO,aAAa,EAAE,QAAQ,OAAO,OAAO,OAAO,MAAM,OAAO,MAAM,UAAU,OAAO,SAAS,GAAG,KAAK,6BAA6B;AAAA,OACtI;AAAA,IACH,GAAG;AAAA,MACD,MAAM;AAAA,MAAqB,SAAS,CAAC,KAAK;AAAA,MAAG,SAAS;AAAA,MACtD,QAAQ,OAAO,YAAY,aAAa,EAAE,UAAU,MAAM,KAAK,WAAW,SAAS,EAAE,CAAC,CAAC;AAAA,IACzF,GAAG;AAAA,MACD,MAAM;AAAA,MAAqB,SAAS,CAAC,KAAK;AAAA,MAAG,SAAS;AAAA,MACtD,QAAQ,OAAO,OAAO,YAAY;AAAA,QAChC,IAAI;AAAA,QACJ,IAAI;AAAA,UAAE,WAAW,wBAAwB,MAAM,aAAa,QAAQ,SAAS,kBAAkB,CAAC;AAAA,UAChG,MAAM;AAAA,UAAE,MAAM,IAAI,aAAa,eAAe;AAAA;AAAA,QAC9C,MAAM,UAAU,KAAK,eAAe;AAAA,QACpC,MAAM,WAAW,MAAM,KAAK,WAAW,SAAS;AAAA,QAChD,IAAI,SAAS,KAAK,aAAW,QAAQ,aAAa,EAAE,OAAO,QAAQ,OAAO,iBAAiB,QAAQ,SAAS,CAAC,MAAM,QAC9G,CAAC,6BAA6B,SAAS,QAAQ,CAAC;AAAA,UAAG,MAAM,IAAI,aAAa,eAAe;AAAA,QAC9F,KAAK,YAAY,QAAQ,aAAa;AAAA,QACtC,MAAM,KAAK,WAAW,kBAAkB,QAAQ;AAAA,QAChD,OAAO,aAAa,EAAE,SAAS,CAAC;AAAA,OACjC;AAAA,IACH,GAAG;AAAA,MAED,MAAM;AAAA,MAAW,SAAS,CAAC,KAAK;AAAA,MAAG,SAAS;AAAA,MAC5C,QAAQ,OAAO,OAAO,YAAY;AAAA,QAChC,MAAM,QAAQ,gBAAgB,QAAQ,OAAO;AAAA,QAC7C,IAAI,UAAU;AAAA,UAAM,OAAO,aAAa,EAAE,OAAO,gBAAgB,GAAG,GAAG;AAAA,QACvE,IAAI;AAAA,QACJ,IAAI;AAAA,UACF,OAAO,MAAM,KAAK,WAAW,iBAAiB;AAAA,eACxC,MAAM,WAAW,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,OAAO;AAAA,YAC9D,MAAM,MAAM;AAAA,YACZ,UAAU,MAAM;AAAA,UAClB,CAAC;AAAA,UACD,OAAO,OAAO;AAAA,UACd,IAAI,iBAAiB;AAAA,YAA2B,MAAM,IAAI,aAAa,qBAAqB;AAAA,UAC5F,MAAM;AAAA;AAAA,QAER,KAAK,YAAY,QAAQ,aAAa;AAAA,QACtC,OAAO,aAAa,IAAI;AAAA,OACzB;AAAA,IACH,CAAC;AAAA;AAAA,OAGG,MAAK,GAAkB;AAAA,IAC3B,KAAK,YAAY;AAAA;AAAA,EAGnB,OAAO,GAAS;AAAA,IACd,IAAI,KAAK;AAAA,MAAU;AAAA,IACnB,KAAK,WAAW;AAAA,IAChB,KAAK,KAAK,OAAO,oBAAoB,SAAS,KAAK,aAAa;AAAA;AAEpE;AAEO,SAAS,aAAa,CAAC,SAA4C;AAAA,EACxE,OAAO,IAAI,kBAAkB,OAAO;AAAA;AAGtC,IAAe,oBAAE,cAAc;AAIxB,SAAS,wBAAwB,CAAC,aAA+E;AAAA,EACtH,MAAM,OAAO,IAAI,yBAAyB,WAAW;AAAA,EACrD,OAAO,OAAO,OAAO;AAAA,IAAC,eAAe,KAAK,cAAc,KAAK,IAAI;AAAA,IAAG,qBAAqB,KAAK,oBAAoB,KAAK,IAAI;AAAA,IACzH,kBAAkB,KAAK,iBAAiB,KAAK,IAAI;AAAA,EAAC,CAAC;AAAA;",
25
- "debugId": "10CD0331CBCFED0164756E2164756E21",
24
+ "mappings": "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",
25
+ "debugId": "9122F1BC80C45E9664756E2164756E21",
26
26
  "names": []
27
27
  }
@@ -912,4 +912,4 @@ export {
912
912
  server_default as default
913
913
  };
914
914
 
915
- //# debugId=5D16D64B3584E38F64756E2164756E21
915
+ //# debugId=5AF5B1588AE8435764756E2164756E21