@kaitranntt/ccs 8.10.0-dev.1 → 8.10.0-dev.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -2
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.js +10 -8
- package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -1
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts +12 -2
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js +77 -41
- package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.js +5 -1
- package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -1
- package/dist/cliproxy/ai-providers/schema-sanitizer.d.ts +3 -1
- package/dist/cliproxy/ai-providers/schema-sanitizer.d.ts.map +1 -1
- package/dist/cliproxy/ai-providers/schema-sanitizer.js +3 -1
- package/dist/cliproxy/ai-providers/schema-sanitizer.js.map +1 -1
- package/dist/cliproxy/config/generator.d.ts +7 -0
- package/dist/cliproxy/config/generator.d.ts.map +1 -1
- package/dist/cliproxy/config/generator.js +148 -7
- package/dist/cliproxy/config/generator.js.map +1 -1
- package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
- package/dist/cliproxy/config/thinking-config.js +5 -5
- package/dist/cliproxy/config/thinking-config.js.map +1 -1
- package/dist/cliproxy/executor/env-resolver.js +1 -1
- package/dist/cliproxy/executor/env-resolver.js.map +1 -1
- package/dist/cliproxy/executor/index.d.ts.map +1 -1
- package/dist/cliproxy/executor/index.js +2 -1
- package/dist/cliproxy/executor/index.js.map +1 -1
- package/dist/cliproxy/executor/proxy-chain-builder.d.ts.map +1 -1
- package/dist/cliproxy/executor/proxy-chain-builder.js +4 -0
- package/dist/cliproxy/executor/proxy-chain-builder.js.map +1 -1
- package/dist/cliproxy/model-catalog.d.ts +1 -1
- package/dist/cliproxy/model-catalog.d.ts.map +1 -1
- package/dist/cliproxy/model-catalog.js +105 -12
- package/dist/cliproxy/model-catalog.js.map +1 -1
- package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts +6 -1
- package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -1
- package/dist/cliproxy/proxy/tool-sanitization-proxy.js +27 -28
- package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -1
- package/dist/cliproxy/proxy/upstream-response-timeout.d.ts +13 -0
- package/dist/cliproxy/proxy/upstream-response-timeout.d.ts.map +1 -1
- package/dist/cliproxy/proxy/upstream-response-timeout.js +19 -1
- package/dist/cliproxy/proxy/upstream-response-timeout.js.map +1 -1
- package/dist/cliproxy/services/stats-fetcher.d.ts +4 -0
- package/dist/cliproxy/services/stats-fetcher.d.ts.map +1 -1
- package/dist/cliproxy/services/stats-fetcher.js +14 -1
- package/dist/cliproxy/services/stats-fetcher.js.map +1 -1
- package/dist/cliproxy/services/usage-compatibility-transformer.d.ts +5 -0
- package/dist/cliproxy/services/usage-compatibility-transformer.d.ts.map +1 -1
- package/dist/cliproxy/services/usage-compatibility-transformer.js +77 -6
- package/dist/cliproxy/services/usage-compatibility-transformer.js.map +1 -1
- package/dist/cliproxy/types/config-types.d.ts +3 -0
- package/dist/cliproxy/types/config-types.d.ts.map +1 -1
- package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
- package/dist/commands/cliproxy/variant-subcommand.js +5 -1
- package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
- package/dist/config/schemas/cliproxy.d.ts +1 -1
- package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -1
- package/dist/cursor/cursor-daemon-entry.js +11 -49
- package/dist/cursor/cursor-daemon-entry.js.map +1 -1
- package/dist/cursor/cursor-daemon.d.ts.map +1 -1
- package/dist/cursor/cursor-daemon.js +7 -4
- package/dist/cursor/cursor-daemon.js.map +1 -1
- package/dist/dispatcher/flows/cliproxy-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/cliproxy-flow.js +1 -0
- package/dist/dispatcher/flows/cliproxy-flow.js.map +1 -1
- package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -1
- package/dist/dispatcher/flows/settings-flow.js +3 -1
- package/dist/dispatcher/flows/settings-flow.js.map +1 -1
- package/dist/glmt/glmt-proxy.d.ts +0 -4
- package/dist/glmt/glmt-proxy.d.ts.map +1 -1
- package/dist/glmt/glmt-proxy.js +6 -21
- package/dist/glmt/glmt-proxy.js.map +1 -1
- package/dist/management/shared-manager/plugin-metadata-normalizer.d.ts.map +1 -1
- package/dist/management/shared-manager/plugin-metadata-normalizer.js +72 -21
- package/dist/management/shared-manager/plugin-metadata-normalizer.js.map +1 -1
- package/dist/management/shared-manager/shared-dir-linker.d.ts.map +1 -1
- package/dist/management/shared-manager/shared-dir-linker.js +5 -0
- package/dist/management/shared-manager/shared-dir-linker.js.map +1 -1
- package/dist/proxy/server/http-helpers.d.ts +6 -1
- package/dist/proxy/server/http-helpers.d.ts.map +1 -1
- package/dist/proxy/server/http-helpers.js +19 -77
- package/dist/proxy/server/http-helpers.js.map +1 -1
- package/dist/proxy/server/messages-route.d.ts.map +1 -1
- package/dist/proxy/server/messages-route.js +11 -5
- package/dist/proxy/server/messages-route.js.map +1 -1
- package/dist/shared/provider-preset-catalog.d.ts +1 -1
- package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
- package/dist/shared/provider-preset-catalog.js +28 -0
- package/dist/shared/provider-preset-catalog.js.map +1 -1
- package/dist/ui/assets/{Trans-DpzuO-3l.js → Trans-DH_0k3_n.js} +1 -1
- package/dist/ui/assets/{accounts-B8La6EUn.js → accounts-CVP2-Njk.js} +1 -1
- package/dist/ui/assets/{alert-dialog-Bf9XTqpg.js → alert-dialog-DncbCG0_.js} +1 -1
- package/dist/ui/assets/{api-BKN4bIkK.js → api-CQi3CVcl.js} +1 -1
- package/dist/ui/assets/{auth-section-C9nhoYzH.js → auth-section-Mv8KHvVM.js} +1 -1
- package/dist/ui/assets/{backups-section-xj1966O2.js → backups-section-Vm_gBBHv.js} +1 -1
- package/dist/ui/assets/{channels-BV6KMHQ-.js → channels-CqC51WOc.js} +1 -1
- package/dist/ui/assets/{checkbox-D3J3bEmY.js → checkbox-CPnaepmT.js} +1 -1
- package/dist/ui/assets/{claude-extension-D8MBbLlg.js → claude-extension-fsZuoafg.js} +1 -1
- package/dist/ui/assets/cliproxy-Ci2yqAqv.js +4 -0
- package/dist/ui/assets/{cliproxy-ai-providers-BHXVZIDI.js → cliproxy-ai-providers-UyvtToHe.js} +1 -1
- package/dist/ui/assets/{cliproxy-control-panel-Dnh8fwYy.js → cliproxy-control-panel-CvnXQRoG.js} +1 -1
- package/dist/ui/assets/{codex-BSt3ZMe-.js → codex-yYkmgvBc.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-BTwVtHIm.js → confirm-dialog-C1R4FuKd.js} +1 -1
- package/dist/ui/assets/{copilot-CFxIjoER.js → copilot-BjjH_cxF.js} +1 -1
- package/dist/ui/assets/{cursor-CJEGvYc8.js → cursor-C73hLg6J.js} +1 -1
- package/dist/ui/assets/{droid-BAZEtHVz.js → droid-Dqg2rtFl.js} +1 -1
- package/dist/ui/assets/{globalenv-section-DvHEmWGW.js → globalenv-section-IRGdEiDn.js} +1 -1
- package/dist/ui/assets/{health-CucHeqaT.js → health-Cx6BKtXL.js} +1 -1
- package/dist/ui/assets/{index-DQ5lgrhi.js → index--oj-5HjW.js} +1 -1
- package/dist/ui/assets/{index-DwB2dlO7.js → index-BCHIKzFf.js} +1 -1
- package/dist/ui/assets/{index-COHf4O5A.js → index-ChrMTCdJ.js} +1 -1
- package/dist/ui/assets/{index-Bba-lL0F.js → index-CvGHvolS.js} +1 -1
- package/dist/ui/assets/{index-D7hMaEi7.js → index-D4x8qKjE.js} +1 -1
- package/dist/ui/assets/{index-BAmMxAjc.js → index-DzZjiVVk.js} +1 -1
- package/dist/ui/assets/{index-CjEHrRK5.js → index-rkHleSof.js} +26 -26
- package/dist/ui/assets/{logs-CmiNT73G.js → logs-D_yb-nke.js} +1 -1
- package/dist/ui/assets/{masked-input-DRtifqT7.js → masked-input-CAzxkfDz.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-FQJgTcgi.js → proxy-status-widget-BwQT11fb.js} +1 -1
- package/dist/ui/assets/{raw-json-settings-editor-panel-kpw_rzWt.js → raw-json-settings-editor-panel-DNR2XVKt.js} +1 -1
- package/dist/ui/assets/{searchable-select-BhSnRKdw.js → searchable-select-Bog5jhDi.js} +1 -1
- package/dist/ui/assets/{separator-DrUbmmEV.js → separator-CSIkt-8K.js} +1 -1
- package/dist/ui/assets/{shared-JBfU4vEx.js → shared-Te8ciIIT.js} +1 -1
- package/dist/ui/assets/{table-D3qUcyZ_.js → table-C_bsTTOc.js} +1 -1
- package/dist/ui/assets/{updates-vN6lQzZr.js → updates-CKJCmW7s.js} +1 -1
- package/dist/ui/assets/{use-accounts-BQ8SCEa6.js → use-accounts-CKVEXfmz.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/utils/openai-compat-launch-settings.d.ts +11 -1
- package/dist/utils/openai-compat-launch-settings.d.ts.map +1 -1
- package/dist/utils/openai-compat-launch-settings.js +55 -5
- package/dist/utils/openai-compat-launch-settings.js.map +1 -1
- package/dist/utils/request-body.d.ts +40 -0
- package/dist/utils/request-body.d.ts.map +1 -0
- package/dist/utils/request-body.js +142 -0
- package/dist/utils/request-body.js.map +1 -0
- package/dist/web-server/model-pricing.d.ts.map +1 -1
- package/dist/web-server/model-pricing.js +127 -1
- package/dist/web-server/model-pricing.js.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +6 -0
- package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.js +57 -1
- package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
- package/dist/web-server/usage/codex-native-usage-collector.d.ts.map +1 -1
- package/dist/web-server/usage/codex-native-usage-collector.js +7 -4
- package/dist/web-server/usage/codex-native-usage-collector.js.map +1 -1
- package/package.json +1 -1
- package/scripts/run-test-bucket.js +1 -0
- package/dist/ui/assets/cliproxy-D8g9HOG9.js +0 -4
|
@@ -27,6 +27,8 @@ exports.createOpenAICompatLaunchSettings = void 0;
|
|
|
27
27
|
const fs = __importStar(require("fs"));
|
|
28
28
|
const os = __importStar(require("os"));
|
|
29
29
|
const path = __importStar(require("path"));
|
|
30
|
+
const crypto_1 = require("crypto");
|
|
31
|
+
const config_manager_1 = require("./config-manager");
|
|
30
32
|
const shell_executor_1 = require("./shell-executor");
|
|
31
33
|
// SIBLING HELPER: src/cliproxy/executor/launch-settings.ts (prepareLaunchSettings)
|
|
32
34
|
// solves the same problem by OVERLAYING resolved routing values instead of
|
|
@@ -34,9 +36,7 @@ const shell_executor_1 = require("./shell-executor");
|
|
|
34
36
|
// delete a routing key (e.g. ANTHROPIC_API_KEY in settings-flow) and need it
|
|
35
37
|
// ABSENT from the launch settings. Do not unify without an explicit force-absent
|
|
36
38
|
// key list — see issue #1609.
|
|
37
|
-
function createOpenAICompatLaunchSettings(settingsPath, settings) {
|
|
38
|
-
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'ccs-openai-compat-settings-'));
|
|
39
|
-
fs.chmodSync(tempDir, 0o700);
|
|
39
|
+
function createOpenAICompatLaunchSettings(settingsPath, settings, options) {
|
|
40
40
|
const launchSettings = JSON.parse(JSON.stringify(settings));
|
|
41
41
|
const sanitizedEnv = Object.fromEntries(Object.entries((0, shell_executor_1.stripAnthropicRoutingEnv)({ ...(launchSettings.env ?? {}) })).filter((entry) => typeof entry[1] === 'string'));
|
|
42
42
|
if (Object.keys(sanitizedEnv).length > 0) {
|
|
@@ -45,8 +45,53 @@ function createOpenAICompatLaunchSettings(settingsPath, settings) {
|
|
|
45
45
|
else {
|
|
46
46
|
delete launchSettings.env;
|
|
47
47
|
}
|
|
48
|
+
const contentStr = JSON.stringify(launchSettings, null, 2) + '\n';
|
|
49
|
+
if (options?.durable) {
|
|
50
|
+
// Durable mode: key one private directory per canonical settings path so each
|
|
51
|
+
// profile has exactly one snapshot, atomically replaced on content updates.
|
|
52
|
+
// Do not fall back to $TMPDIR: failure here must fail the launch early rather than
|
|
53
|
+
// causing a deferred background fleet respawn crash (Issue #1734).
|
|
54
|
+
const pathHash = (0, crypto_1.createHash)('sha256')
|
|
55
|
+
.update(path.resolve(settingsPath))
|
|
56
|
+
.digest('hex')
|
|
57
|
+
.slice(0, 16);
|
|
58
|
+
const durableDir = path.join((0, config_manager_1.getCcsDir)(), 'cache', 'isolated-settings', pathHash);
|
|
59
|
+
fs.mkdirSync(durableDir, { recursive: true, mode: 0o700 });
|
|
60
|
+
fs.chmodSync(durableDir, 0o700);
|
|
61
|
+
const launchSettingsPath = path.join(durableDir, path.basename(settingsPath));
|
|
62
|
+
const tempFile = path.join(durableDir, `.${path.basename(settingsPath)}.${(0, crypto_1.randomUUID)()}.tmp`);
|
|
63
|
+
let renamed = false;
|
|
64
|
+
try {
|
|
65
|
+
fs.writeFileSync(tempFile, contentStr, {
|
|
66
|
+
encoding: 'utf8',
|
|
67
|
+
mode: 0o600,
|
|
68
|
+
flag: 'wx',
|
|
69
|
+
});
|
|
70
|
+
fs.renameSync(tempFile, launchSettingsPath);
|
|
71
|
+
renamed = true;
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
if (!renamed) {
|
|
75
|
+
try {
|
|
76
|
+
fs.unlinkSync(tempFile);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// best-effort cleanup on failure
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
settingsPath: launchSettingsPath,
|
|
85
|
+
cleanup: () => {
|
|
86
|
+
// No-op in durable mode: snapshot persists for background fleet daemon respawns.
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
// Ephemeral mode (default / headless): create isolated tempdir in os.tmpdir() and purge on cleanup.
|
|
91
|
+
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'ccs-openai-compat-settings-'));
|
|
92
|
+
fs.chmodSync(tempDir, 0o700);
|
|
48
93
|
const launchSettingsPath = path.join(tempDir, path.basename(settingsPath));
|
|
49
|
-
fs.writeFileSync(launchSettingsPath,
|
|
94
|
+
fs.writeFileSync(launchSettingsPath, contentStr, {
|
|
50
95
|
encoding: 'utf8',
|
|
51
96
|
mode: 0o600,
|
|
52
97
|
});
|
|
@@ -56,7 +101,12 @@ function createOpenAICompatLaunchSettings(settingsPath, settings) {
|
|
|
56
101
|
return;
|
|
57
102
|
}
|
|
58
103
|
cleanedUp = true;
|
|
59
|
-
|
|
104
|
+
try {
|
|
105
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// best-effort cleanup
|
|
109
|
+
}
|
|
60
110
|
};
|
|
61
111
|
return {
|
|
62
112
|
settingsPath: launchSettingsPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-compat-launch-settings.js","sourceRoot":"","sources":["../../src/utils/openai-compat-launch-settings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;
|
|
1
|
+
{"version":3,"file":"openai-compat-launch-settings.js","sourceRoot":"","sources":["../../src/utils/openai-compat-launch-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded request-body reader shared by the local CCS proxies.
|
|
3
|
+
*
|
|
4
|
+
* An oversized body must end in an HTTP 413, never a reset socket. A reset
|
|
5
|
+
* reaches Claude Code as a bare ECONNRESET that it retries silently for
|
|
6
|
+
* minutes. So past the limit we stop buffering but keep draining the body,
|
|
7
|
+
* and only give up on the connection once it passes DRAIN_CAP_MULTIPLIER
|
|
8
|
+
* times the limit.
|
|
9
|
+
*/
|
|
10
|
+
/// <reference types="node" />
|
|
11
|
+
/// <reference types="bun-types" />
|
|
12
|
+
/// <reference types="node" />
|
|
13
|
+
import type * as http from 'http';
|
|
14
|
+
import { type Logger } from '../services/logging';
|
|
15
|
+
export declare const MAX_BODY_ENV_VAR = "CCS_PROXY_MAX_BODY_MB";
|
|
16
|
+
/** Matches the Anthropic Messages API request size limit (32 MB). */
|
|
17
|
+
export declare const DEFAULT_MAX_BODY_MB = 32;
|
|
18
|
+
export declare const REQUEST_TOO_LARGE_ERROR_TYPE = "request_too_large";
|
|
19
|
+
export declare class RequestBodyTooLargeError extends Error {
|
|
20
|
+
readonly receivedBytes: number;
|
|
21
|
+
readonly limitBytes: number;
|
|
22
|
+
/** True when the whole body was read, so the connection can stay open. */
|
|
23
|
+
readonly drained: boolean;
|
|
24
|
+
constructor(receivedBytes: number, limitBytes: number, drained: boolean);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the body limit from CCS_PROXY_MAX_BODY_MB (MiB, 0 < n <= 1024).
|
|
28
|
+
* Invalid values fall back to the default and log one warning per value.
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveMaxBodyBytes(env?: NodeJS.ProcessEnv): number;
|
|
31
|
+
/**
|
|
32
|
+
* Read the request body as UTF-8. Rejects with RequestBodyTooLargeError when
|
|
33
|
+
* it exceeds `limitBytes`; the socket is never destroyed here.
|
|
34
|
+
*/
|
|
35
|
+
export declare function readRequestBody(req: http.IncomingMessage, limitBytes?: number): Promise<string>;
|
|
36
|
+
/** Log an oversized request at warn level: size, limit and path, never the body. */
|
|
37
|
+
export declare function logRequestTooLarge(log: Logger, req: http.IncomingMessage, error: RequestBodyTooLargeError): void;
|
|
38
|
+
/** Log the oversized request and answer it with an Anthropic-shaped 413. */
|
|
39
|
+
export declare function respondRequestTooLarge(req: http.IncomingMessage, res: http.ServerResponse, error: RequestBodyTooLargeError, log: Logger): void;
|
|
40
|
+
//# sourceMappingURL=request-body.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-body.d.ts","sourceRoot":"","sources":["../../src/utils/request-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;;;AAEH,OAAO,KAAK,KAAK,IAAI,MAAM,MAAM,CAAC;AAClC,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEhE,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AACxD,qEAAqE;AACrE,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,4BAA4B,sBAAsB,CAAC;AAchE,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CAaxE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAoBhF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,UAAU,GAAE,MAA8B,GACzC,OAAO,CAAC,MAAM,CAAC,CAsDjB;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,KAAK,EAAE,wBAAwB,GAC9B,IAAI,CAQN;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,KAAK,EAAE,wBAAwB,EAC/B,GAAG,EAAE,MAAM,GACV,IAAI,CAaN"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Bounded request-body reader shared by the local CCS proxies.
|
|
4
|
+
*
|
|
5
|
+
* An oversized body must end in an HTTP 413, never a reset socket. A reset
|
|
6
|
+
* reaches Claude Code as a bare ECONNRESET that it retries silently for
|
|
7
|
+
* minutes. So past the limit we stop buffering but keep draining the body,
|
|
8
|
+
* and only give up on the connection once it passes DRAIN_CAP_MULTIPLIER
|
|
9
|
+
* times the limit.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.respondRequestTooLarge = exports.logRequestTooLarge = exports.readRequestBody = exports.resolveMaxBodyBytes = exports.RequestBodyTooLargeError = exports.REQUEST_TOO_LARGE_ERROR_TYPE = exports.DEFAULT_MAX_BODY_MB = exports.MAX_BODY_ENV_VAR = void 0;
|
|
13
|
+
const logging_1 = require("../services/logging");
|
|
14
|
+
exports.MAX_BODY_ENV_VAR = 'CCS_PROXY_MAX_BODY_MB';
|
|
15
|
+
/** Matches the Anthropic Messages API request size limit (32 MB). */
|
|
16
|
+
exports.DEFAULT_MAX_BODY_MB = 32;
|
|
17
|
+
exports.REQUEST_TOO_LARGE_ERROR_TYPE = 'request_too_large';
|
|
18
|
+
const MAX_ALLOWED_BODY_MB = 1024;
|
|
19
|
+
const DRAIN_CAP_MULTIPLIER = 4;
|
|
20
|
+
const BYTES_PER_MB = 1024 * 1024;
|
|
21
|
+
const logger = (0, logging_1.createLogger)('proxy:request-body');
|
|
22
|
+
let lastInvalidLimitValue;
|
|
23
|
+
function formatMb(bytes) {
|
|
24
|
+
const mb = bytes / BYTES_PER_MB;
|
|
25
|
+
return Number.isInteger(mb) ? String(mb) : mb.toFixed(1);
|
|
26
|
+
}
|
|
27
|
+
class RequestBodyTooLargeError extends Error {
|
|
28
|
+
constructor(receivedBytes, limitBytes, drained) {
|
|
29
|
+
const size = drained
|
|
30
|
+
? `Request is ${formatMb(receivedBytes)} MB`
|
|
31
|
+
: `Request is over ${formatMb(receivedBytes)} MB`;
|
|
32
|
+
super(`${size}, over the ${formatMb(limitBytes)} MB limit of the local ccs proxy ` +
|
|
33
|
+
`(${exports.MAX_BODY_ENV_VAR}). Run /compact or start a new session.`);
|
|
34
|
+
this.name = 'RequestBodyTooLargeError';
|
|
35
|
+
this.receivedBytes = receivedBytes;
|
|
36
|
+
this.limitBytes = limitBytes;
|
|
37
|
+
this.drained = drained;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.RequestBodyTooLargeError = RequestBodyTooLargeError;
|
|
41
|
+
/**
|
|
42
|
+
* Resolve the body limit from CCS_PROXY_MAX_BODY_MB (MiB, 0 < n <= 1024).
|
|
43
|
+
* Invalid values fall back to the default and log one warning per value.
|
|
44
|
+
*/
|
|
45
|
+
function resolveMaxBodyBytes(env = process.env) {
|
|
46
|
+
const defaultBytes = exports.DEFAULT_MAX_BODY_MB * BYTES_PER_MB;
|
|
47
|
+
const raw = env[exports.MAX_BODY_ENV_VAR]?.trim();
|
|
48
|
+
if (!raw)
|
|
49
|
+
return defaultBytes;
|
|
50
|
+
const mb = Number(raw);
|
|
51
|
+
if (Number.isFinite(mb) && mb > 0 && mb <= MAX_ALLOWED_BODY_MB) {
|
|
52
|
+
return Math.floor(mb * BYTES_PER_MB);
|
|
53
|
+
}
|
|
54
|
+
if (lastInvalidLimitValue !== raw) {
|
|
55
|
+
lastInvalidLimitValue = raw;
|
|
56
|
+
logger.warn('request-body.invalid-limit', `Ignoring ${exports.MAX_BODY_ENV_VAR}="${raw}": expected a number of MB above 0 and at most ` +
|
|
57
|
+
`${MAX_ALLOWED_BODY_MB}. Using ${exports.DEFAULT_MAX_BODY_MB} MB.`, { value: raw, defaultMb: exports.DEFAULT_MAX_BODY_MB });
|
|
58
|
+
}
|
|
59
|
+
return defaultBytes;
|
|
60
|
+
}
|
|
61
|
+
exports.resolveMaxBodyBytes = resolveMaxBodyBytes;
|
|
62
|
+
/**
|
|
63
|
+
* Read the request body as UTF-8. Rejects with RequestBodyTooLargeError when
|
|
64
|
+
* it exceeds `limitBytes`; the socket is never destroyed here.
|
|
65
|
+
*/
|
|
66
|
+
function readRequestBody(req, limitBytes = resolveMaxBodyBytes()) {
|
|
67
|
+
const drainCapBytes = limitBytes * DRAIN_CAP_MULTIPLIER;
|
|
68
|
+
return new Promise((resolve, reject) => {
|
|
69
|
+
let chunks = [];
|
|
70
|
+
let total = 0;
|
|
71
|
+
const cleanup = () => {
|
|
72
|
+
req.off('data', onData);
|
|
73
|
+
req.off('end', onEnd);
|
|
74
|
+
req.off('error', onError);
|
|
75
|
+
req.off('close', onClose);
|
|
76
|
+
};
|
|
77
|
+
const onData = (chunk) => {
|
|
78
|
+
total += chunk.length;
|
|
79
|
+
if (total <= limitBytes) {
|
|
80
|
+
chunks.push(chunk);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
// Over the limit: free the buffer and keep draining so we can answer 413.
|
|
84
|
+
chunks = [];
|
|
85
|
+
if (total > drainCapBytes) {
|
|
86
|
+
cleanup();
|
|
87
|
+
// Keep the stream flowing so leftover bytes are discarded, not stalled.
|
|
88
|
+
req.resume();
|
|
89
|
+
reject(new RequestBodyTooLargeError(total, limitBytes, false));
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const onEnd = () => {
|
|
93
|
+
cleanup();
|
|
94
|
+
if (total > limitBytes) {
|
|
95
|
+
reject(new RequestBodyTooLargeError(total, limitBytes, true));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
resolve(Buffer.concat(chunks, total).toString('utf8'));
|
|
99
|
+
};
|
|
100
|
+
const onError = (error) => {
|
|
101
|
+
cleanup();
|
|
102
|
+
reject(error instanceof Error ? error : new Error(String(error)));
|
|
103
|
+
};
|
|
104
|
+
const onClose = () => {
|
|
105
|
+
cleanup();
|
|
106
|
+
reject(new Error('Request closed before the body was fully received'));
|
|
107
|
+
};
|
|
108
|
+
req.on('data', onData);
|
|
109
|
+
req.on('end', onEnd);
|
|
110
|
+
req.on('error', onError);
|
|
111
|
+
req.on('close', onClose);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
exports.readRequestBody = readRequestBody;
|
|
115
|
+
/** Log an oversized request at warn level: size, limit and path, never the body. */
|
|
116
|
+
function logRequestTooLarge(log, req, error) {
|
|
117
|
+
log.warn('request.body-too-large', error.message, {
|
|
118
|
+
method: req.method,
|
|
119
|
+
path: req.url,
|
|
120
|
+
receivedBytes: error.receivedBytes,
|
|
121
|
+
limitBytes: error.limitBytes,
|
|
122
|
+
drained: error.drained,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
exports.logRequestTooLarge = logRequestTooLarge;
|
|
126
|
+
/** Log the oversized request and answer it with an Anthropic-shaped 413. */
|
|
127
|
+
function respondRequestTooLarge(req, res, error, log) {
|
|
128
|
+
logRequestTooLarge(log, req, error);
|
|
129
|
+
if (res.headersSent || res.writableEnded || res.destroyed)
|
|
130
|
+
return;
|
|
131
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
132
|
+
// The rest of the body is still on the wire; ask the client to drop the connection.
|
|
133
|
+
if (!error.drained)
|
|
134
|
+
headers.Connection = 'close';
|
|
135
|
+
res.writeHead(413, headers);
|
|
136
|
+
res.end(JSON.stringify({
|
|
137
|
+
type: 'error',
|
|
138
|
+
error: { type: exports.REQUEST_TOO_LARGE_ERROR_TYPE, message: error.message },
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
exports.respondRequestTooLarge = respondRequestTooLarge;
|
|
142
|
+
//# sourceMappingURL=request-body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-body.js","sourceRoot":"","sources":["../../src/utils/request-body.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,+BAA+B,CAAC;AAMvC,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,6BAA6B;IACzE;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,+BAA+B,CAAC;AAMvC,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,6BAA6B;IACzE;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+mCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,YAAY,CAG/F;AAqCD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAEzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAK3F"}
|
|
@@ -76,6 +76,28 @@ const PRICING_REGISTRY = {
|
|
|
76
76
|
cacheCreationPerMillion: 1.25,
|
|
77
77
|
cacheReadPerMillion: 0.1,
|
|
78
78
|
},
|
|
79
|
+
// Claude Haiku 5.5 - two rate cards chosen by prompt length: $0.10/$0.50 up to
|
|
80
|
+
// 100K prompt tokens, $0.50/$2.50 above. Cost is calculated on aggregated usage,
|
|
81
|
+
// so the per-request card can't be picked here; using the <=100K card as default
|
|
82
|
+
// (same approach as Gemini 3) under-reports prompts longer than 100K tokens.
|
|
83
|
+
'claude-haiku-5-5': {
|
|
84
|
+
inputPerMillion: 0.1,
|
|
85
|
+
outputPerMillion: 0.5,
|
|
86
|
+
cacheCreationPerMillion: 0.125,
|
|
87
|
+
cacheReadPerMillion: 0.01,
|
|
88
|
+
},
|
|
89
|
+
'claude-haiku-5-5-thinking': {
|
|
90
|
+
inputPerMillion: 0.1,
|
|
91
|
+
outputPerMillion: 0.5,
|
|
92
|
+
cacheCreationPerMillion: 0.125,
|
|
93
|
+
cacheReadPerMillion: 0.01,
|
|
94
|
+
},
|
|
95
|
+
'claude-haiku-5.5': {
|
|
96
|
+
inputPerMillion: 0.1,
|
|
97
|
+
outputPerMillion: 0.5,
|
|
98
|
+
cacheCreationPerMillion: 0.125,
|
|
99
|
+
cacheReadPerMillion: 0.01,
|
|
100
|
+
},
|
|
79
101
|
// Claude 3.5 Sonnet (deprecated, same as Sonnet 3.7: $3/$15)
|
|
80
102
|
'claude-3-5-sonnet-20240620': {
|
|
81
103
|
inputPerMillion: 3.0,
|
|
@@ -188,6 +210,27 @@ const PRICING_REGISTRY = {
|
|
|
188
210
|
cacheCreationPerMillion: 2.5,
|
|
189
211
|
cacheReadPerMillion: 0.2,
|
|
190
212
|
},
|
|
213
|
+
// Claude Sonnet 5.5 ($2/$10) — same rates as Sonnet 5 (released 2026-09-28).
|
|
214
|
+
// Standard 0.1x cache-read multiplier, no fast mode. Without these entries the
|
|
215
|
+
// id falls through to the $3/$15 unknown-model fallback and overstates cost 1.5x.
|
|
216
|
+
'claude-sonnet-5-5': {
|
|
217
|
+
inputPerMillion: 2.0,
|
|
218
|
+
outputPerMillion: 10.0,
|
|
219
|
+
cacheCreationPerMillion: 2.5,
|
|
220
|
+
cacheReadPerMillion: 0.2,
|
|
221
|
+
},
|
|
222
|
+
'claude-sonnet-5-5-thinking': {
|
|
223
|
+
inputPerMillion: 2.0,
|
|
224
|
+
outputPerMillion: 10.0,
|
|
225
|
+
cacheCreationPerMillion: 2.5,
|
|
226
|
+
cacheReadPerMillion: 0.2,
|
|
227
|
+
},
|
|
228
|
+
'claude-sonnet-5.5': {
|
|
229
|
+
inputPerMillion: 2.0,
|
|
230
|
+
outputPerMillion: 10.0,
|
|
231
|
+
cacheCreationPerMillion: 2.5,
|
|
232
|
+
cacheReadPerMillion: 0.2,
|
|
233
|
+
},
|
|
191
234
|
// Claude 4 Opus ($15/$75)
|
|
192
235
|
'claude-4-opus-20250514': {
|
|
193
236
|
inputPerMillion: 15.0,
|
|
@@ -292,6 +335,29 @@ const PRICING_REGISTRY = {
|
|
|
292
335
|
// Rates mirror Opus 4.8 (same Opus tier); fast mode uses Anthropic's documented
|
|
293
336
|
// $10/$50 rates. Registered explicitly so it resolves to
|
|
294
337
|
// Opus-tier pricing instead of the unknown-model fallback.
|
|
338
|
+
// Claude Opus 5.5 ($4/$20) — Claude 5.5 generation Opus (released 2026-09-22).
|
|
339
|
+
// Rates: $4 input, $20 output, $5 cache write, $0.20 cache read (5% of input).
|
|
340
|
+
// Fast mode: 2x ($8/$40, cache write $10, cache read $0.40).
|
|
341
|
+
'claude-opus-5-5': {
|
|
342
|
+
inputPerMillion: 4.0,
|
|
343
|
+
outputPerMillion: 20.0,
|
|
344
|
+
cacheCreationPerMillion: 5.0,
|
|
345
|
+
cacheReadPerMillion: 0.2,
|
|
346
|
+
serviceTiers: {
|
|
347
|
+
fast: {
|
|
348
|
+
inputPerMillion: 8.0,
|
|
349
|
+
outputPerMillion: 40.0,
|
|
350
|
+
cacheCreationPerMillion: 10.0,
|
|
351
|
+
cacheReadPerMillion: 0.4,
|
|
352
|
+
},
|
|
353
|
+
},
|
|
354
|
+
},
|
|
355
|
+
'claude-opus-5.5': {
|
|
356
|
+
inputPerMillion: 4.0,
|
|
357
|
+
outputPerMillion: 20.0,
|
|
358
|
+
cacheCreationPerMillion: 5.0,
|
|
359
|
+
cacheReadPerMillion: 0.2,
|
|
360
|
+
},
|
|
295
361
|
'claude-opus-5': {
|
|
296
362
|
inputPerMillion: 5.0,
|
|
297
363
|
outputPerMillion: 25.0,
|
|
@@ -456,6 +522,45 @@ const PRICING_REGISTRY = {
|
|
|
456
522
|
cacheCreationPerMillion: 0.0,
|
|
457
523
|
cacheReadPerMillion: 0.375,
|
|
458
524
|
},
|
|
525
|
+
// GPT-6 Astra ($10/$50, fast 2x)
|
|
526
|
+
'gpt-6-astra': {
|
|
527
|
+
...buildRates(10.0, 50.0),
|
|
528
|
+
serviceTiers: {
|
|
529
|
+
fast: buildRates(20.0, 100.0),
|
|
530
|
+
},
|
|
531
|
+
},
|
|
532
|
+
// GPT-6.1 Sol — Official pricing: ≤272k: $2/$10, 50% cheaper cache read $0.10, fast 2x ($4/$20).
|
|
533
|
+
// Using standard ≤272k pricing as default (per-request >272k long-context billed at 2x input / 1.5x output).
|
|
534
|
+
'gpt-6.1-sol': {
|
|
535
|
+
inputPerMillion: 2.0,
|
|
536
|
+
outputPerMillion: 10.0,
|
|
537
|
+
cacheCreationPerMillion: 2.5,
|
|
538
|
+
cacheReadPerMillion: 0.1,
|
|
539
|
+
serviceTiers: {
|
|
540
|
+
fast: {
|
|
541
|
+
inputPerMillion: 4.0,
|
|
542
|
+
outputPerMillion: 20.0,
|
|
543
|
+
cacheCreationPerMillion: 5.0,
|
|
544
|
+
cacheReadPerMillion: 0.2,
|
|
545
|
+
},
|
|
546
|
+
},
|
|
547
|
+
},
|
|
548
|
+
// GPT-6 Sol — Official pricing: ≤272k: $2/$10, fast 2x ($4/$20).
|
|
549
|
+
// Using standard ≤272k pricing as default.
|
|
550
|
+
'gpt-6-sol': {
|
|
551
|
+
...buildRates(2.0, 10.0),
|
|
552
|
+
serviceTiers: {
|
|
553
|
+
fast: buildRates(4.0, 20.0),
|
|
554
|
+
},
|
|
555
|
+
},
|
|
556
|
+
// GPT-6 Luna — Official pricing: ≤272k: $0.10/$0.50, fast 2x ($0.20/$1.00).
|
|
557
|
+
// Using standard ≤272k pricing as default.
|
|
558
|
+
'gpt-6-luna': {
|
|
559
|
+
...buildRates(0.1, 0.5),
|
|
560
|
+
serviceTiers: {
|
|
561
|
+
fast: buildRates(0.2, 1.0),
|
|
562
|
+
},
|
|
563
|
+
},
|
|
459
564
|
// ---------------------------------------------------------------------------
|
|
460
565
|
// Google Gemini Models - Source: better-ccusage
|
|
461
566
|
// ---------------------------------------------------------------------------
|
|
@@ -884,6 +989,21 @@ const NORMALIZED_PRICING_REGISTRY = Object.entries(PRICING_REGISTRY).reduce((acc
|
|
|
884
989
|
acc[normalizeModelName(key)] = pricing;
|
|
885
990
|
return acc;
|
|
886
991
|
}, {});
|
|
992
|
+
const CODEX_PRICING_TUNING_REGEX = /(?:-(?:none|minimal|low|medium|high|xhigh|max)(?:-fast)?|-fast(?:-(?:none|minimal|low|medium|high|xhigh|max))?|-fast)$/i;
|
|
993
|
+
function isCodexTunableGptModel(modelName) {
|
|
994
|
+
return /^gpt-[56]/i.test(modelName) || /^codex/i.test(modelName);
|
|
995
|
+
}
|
|
996
|
+
function stripCodexPricingTuning(modelName) {
|
|
997
|
+
if (modelName === 'gpt-5.1-codex-max' || !isCodexTunableGptModel(modelName)) {
|
|
998
|
+
return null;
|
|
999
|
+
}
|
|
1000
|
+
const stripped = modelName.replace(CODEX_PRICING_TUNING_REGEX, '');
|
|
1001
|
+
if (stripped !== modelName &&
|
|
1002
|
+
Object.prototype.hasOwnProperty.call(NORMALIZED_PRICING_REGISTRY, stripped)) {
|
|
1003
|
+
return stripped;
|
|
1004
|
+
}
|
|
1005
|
+
return null;
|
|
1006
|
+
}
|
|
887
1007
|
function getLookupCandidates(model) {
|
|
888
1008
|
const normalized = normalizeModelName(model);
|
|
889
1009
|
const baseModel = normalized.split(':')[0];
|
|
@@ -900,6 +1020,11 @@ function getLookupCandidates(model) {
|
|
|
900
1020
|
if (baseStripped !== baseModel && !candidates.includes(baseStripped)) {
|
|
901
1021
|
candidates.push(baseStripped);
|
|
902
1022
|
}
|
|
1023
|
+
// Add codex tuning-stripped variants (e.g., "gpt-6-astra-max-fast" -> "gpt-6-astra")
|
|
1024
|
+
const codexStripped = stripCodexPricingTuning(normalized);
|
|
1025
|
+
if (codexStripped && !candidates.includes(codexStripped)) {
|
|
1026
|
+
candidates.push(codexStripped);
|
|
1027
|
+
}
|
|
903
1028
|
return candidates;
|
|
904
1029
|
}
|
|
905
1030
|
function getDirectOrAliasPricing(model) {
|
|
@@ -982,7 +1107,8 @@ function applyServiceTier(pricing, tier) {
|
|
|
982
1107
|
* first known family tier that happens to share a prefix.
|
|
983
1108
|
*/
|
|
984
1109
|
function getModelPricing(model, options = {}) {
|
|
985
|
-
|
|
1110
|
+
const effectiveTier = options.serviceTier ?? (/-fast(?=-|$)/i.test(model) ? 'fast' : undefined);
|
|
1111
|
+
return applyServiceTier(resolveBasePricing(model, options), effectiveTier);
|
|
986
1112
|
}
|
|
987
1113
|
exports.getModelPricing = getModelPricing;
|
|
988
1114
|
function resolveBasePricing(model, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,oEAIuC;AAuCvC,6EAA6E;AAC7E,sFAAsF;AACtF,mFAAmF;AACnF,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC;;;;GAIG;AACH,SAAS,UAAU,CAAC,eAAuB,EAAE,gBAAwB;IACnE,OAAO;QACL,eAAe;QACf,gBAAgB;QAChB,uBAAuB,EAAE,eAAe,GAAG,yBAAyB;QACpE,mBAAmB,EAAE,eAAe,GAAG,qBAAqB;KAC7D,CAAC;AACJ,CAAC;AAED,oCAAoC;AACpC,+EAA+E;AAC/E,+EAA+E;AAC/E,wEAAwE;AACxE,MAAM,qBAAqB,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtD,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAElD,+EAA+E;AAC/E,8BAA8B;AAC9B,iDAAiD;AACjD,+EAA+E;AAE/E,MAAM,gBAAgB,GAAiC;IACrD,8EAA8E;IAC9E,iEAAiE;IACjE,wEAAwE;IACxE,8EAA8E;IAC9E,+BAA+B;IAC/B,yBAAyB,EAAE;QACzB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,8BAA8B;IAC9B,2BAA2B,EAAE;QAC3B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,yBAAyB,EAAE;QACzB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,2BAA2B;IAC3B,2BAA2B,EAAE;QAC3B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,6DAA6D;IAC7D,4BAA4B,EAAE;QAC5B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,4BAA4B,EAAE;QAC5B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,yCAAyC;IACzC,4BAA4B,EAAE;QAC5B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,sCAAsC;IACtC,wBAAwB,EAAE;QACxB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,sBAAsB,EAAE;QACtB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,2BAA2B;IAC3B,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,6BAA6B;IAC7B,4BAA4B,EAAE;QAC5B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,4BAA4B,EAAE;QAC5B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,6BAA6B;IAC7B,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,4BAA4B,EAAE;QAC5B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,8EAA8E;IAC9E,0EAA0E;IAC1E,0EAA0E;IAC1E,0BAA0B;IAC1B,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B;IAC1B,wBAAwB,EAAE;QACxB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,wBAAwB,EAAE;QACxB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,eAAe,EAAE;QACf,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,4BAA4B;IAC5B,iBAAiB,EAAE;QACjB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,GAAG;KACzB;IACD,0CAA0C;IAC1C,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,iFAAiF;IACjF,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;QACxB,YAAY,EAAE;YACZ,IAAI,EAAE,qBAAqB;SAC5B;KACF;IACD,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;QACxB,YAAY,EAAE;YACZ,IAAI,EAAE,qBAAqB;SAC5B;KACF;IACD,iFAAiF;IACjF,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;QACxB,YAAY,EAAE;YACZ,IAAI,EAAE,qBAAqB;SAC5B;KACF;IACD,0EAA0E;IAC1E,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,0BAA0B,EAAE;QAC1B,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,gFAAgF;IAChF,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;QACxB,YAAY,EAAE;YACZ,IAAI,EAAE,kBAAkB;SACzB;KACF;IACD,2EAA2E;IAC3E,gFAAgF;IAChF,yDAAyD;IACzD,2DAA2D;IAC3D,eAAe,EAAE;QACf,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;QACxB,YAAY,EAAE;YACZ,IAAI,EAAE,kBAAkB;SACzB;KACF;IACD,wBAAwB,EAAE;QACxB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;QACxB,YAAY,EAAE;YACZ,IAAI,EAAE,kBAAkB;SACzB;KACF;IACD,4DAA4D;IAC5D,gBAAgB,EAAE;QAChB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,GAAG;KACzB;IACD,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,gEAAgE;IAChE,kBAAkB,EAAE;QAClB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,mBAAmB,EAAE,IAAI;KAC1B;IAED,8EAA8E;IAC9E,yCAAyC;IACzC,8EAA8E;IAC9E,SAAS;IACT,QAAQ,EAAE;QACR,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,aAAa,EAAE;QACb,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,UAAU;IACV,SAAS,EAAE;QACT,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,cAAc,EAAE;QACd,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,cAAc,EAAE;QACd,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,UAAU;IACV,iBAAiB,EAAE;QACjB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,KAAK;QACvB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,gBAAgB;IAChB,eAAe,EAAE;QACf,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,oBAAoB,EAAE;QACpB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,sBAAsB;IACtB,EAAE,EAAE;QACF,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,SAAS,EAAE;QACT,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,SAAS,EAAE;QACT,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,gDAAgD;IAChD,OAAO,EAAE;QACP,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,aAAa,EAAE;QACb,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IAED,8EAA8E;IAC9E,gDAAgD;IAChD,8EAA8E;IAC9E,aAAa;IACb,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,uBAAuB,EAAE;QACvB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,MAAM;KAC5B;IACD,aAAa;IACb,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,sBAAsB,EAAE;QACtB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,aAAa;IACb,kBAAkB,EAAE;QAClB,eAAe,EAAE,KAAK;QACtB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,qBAAqB,EAAE;QACrB,eAAe,EAAE,MAAM;QACvB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,+EAA+E;IAC/E,0CAA0C;IAC1C,sBAAsB,EAAE;QACtB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,cAAc,EAAE;QACd,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,sCAAsC;IACtC,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IAED,8EAA8E;IAC9E,+DAA+D;IAC/D,8EAA8E;IAC9E,SAAS,EAAE;QACT,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,OAAO,EAAE;QACP,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,SAAS,EAAE;QACT,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,SAAS,EAAE;QACT,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,SAAS,EAAE;QACT,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IACD,aAAa,EAAE;QACb,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,KAAK;KAC3B;IAED,8EAA8E;IAC9E,qEAAqE;IACrE,4EAA4E;IAC5E,8EAA8E;IAC9E,WAAW,EAAE;QACX,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,sBAAsB,EAAE;QACtB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,uBAAuB,EAAE;QACvB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,wBAAwB,EAAE;QACxB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,SAAS,EAAE;QACT,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,aAAa,EAAE;QACb,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,uBAAuB,EAAE;QACvB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,iBAAiB,EAAE;QACjB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IAED,8EAA8E;IAC9E,iFAAiF;IACjF,8EAA8E;IAC9E,YAAY,EAAE;QACZ,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;QACzB,YAAY,EAAE;YACZ,QAAQ,EAAE;gBACR,eAAe,EAAE,IAAI;gBACrB,gBAAgB,EAAE,GAAG;gBACrB,uBAAuB,EAAE,GAAG;gBAC5B,mBAAmB,EAAE,IAAI;aAC1B;SACF;KACF;IACD,cAAc,EAAE;QACd,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,IAAI;KAC1B;IACD,wBAAwB,EAAE;QACxB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,IAAI;KAC1B;IACD,cAAc,EAAE;QACd,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,IAAI;KAC1B;IACD,wBAAwB,EAAE;QACxB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,IAAI;KAC1B;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,KAAK;QAC9B,mBAAmB,EAAE,IAAI;KAC1B;IACD,8EAA8E;IAC9E,wFAAwF;IACxF,8EAA8E;IAC9E,WAAW,EAAE;QACX,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,CAAC;QACnB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,sBAAsB,EAAE;QACtB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,CAAC;QACnB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,CAAC;QACnB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,cAAc,EAAE;QACd,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,eAAe,EAAE;QACf,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,CAAC;QAClB,gBAAgB,EAAE,CAAC;QACnB,uBAAuB,EAAE,CAAC;QAC1B,mBAAmB,EAAE,GAAG;KACzB;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IAED,8EAA8E;IAC9E,2CAA2C;IAC3C,8EAA8E;IAC9E,eAAe,EAAE;QACf,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,mBAAmB,EAAE;QACnB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,IAAI;KAC1B;IACD,gBAAgB,EAAE;QAChB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IAED,8EAA8E;IAC9E,0CAA0C;IAC1C,8EAA8E;IAC9E,sBAAsB,EAAE;QACtB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,uBAAuB,EAAE;QACvB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,sBAAsB,EAAE;QACtB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,gBAAgB,EAAE,GAAG;QACrB,uBAAuB,EAAE,GAAG;QAC5B,mBAAmB,EAAE,GAAG;KACzB;CACF,CAAC;AAEF,MAAM,qBAAqB,GAA2B;IACpD,wDAAwD;IACxD,aAAa,EAAE,kBAAkB;IACjC,YAAY,EAAE,WAAW;IACzB,eAAe,EAAE,cAAc;IAC/B,WAAW,EAAE,cAAc;IAC3B,wBAAwB,EAAE,kBAAkB;IAC5C,oCAAoC,EAAE,kBAAkB;IACxD,wBAAwB,EAAE,sBAAsB;IAChD,0BAA0B,EAAE,kBAAkB;IAC9C,oCAAoC,EAAE,sBAAsB;IAC5D,sCAAsC,EAAE,kBAAkB;IAC1D,wBAAwB,EAAE,sBAAsB;IAChD,0BAA0B,EAAE,kBAAkB;IAC9C,oCAAoC,EAAE,sBAAsB;IAC5D,sCAAsC,EAAE,kBAAkB;CAC3D,CAAC;AAEF,qCAAqC;AACrC,MAAM,qBAAqB,GAAiB;IAC1C,eAAe,EAAE,GAAG;IACpB,gBAAgB,EAAE,IAAI;IACtB,uBAAuB,EAAE,IAAI;IAC7B,mBAAmB,EAAE,GAAG;CACzB,CAAC;AAEF,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,2BAA2B,GAAiC,MAAM,CAAC,OAAO,CAC9E,gBAAgB,CACjB,CAAC,MAAM,CAA+B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE;IAC7D,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IACvC,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAAE,CAAC,CAAC;AAEP,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3C,MAAM,UAAU,GAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,qFAAqF;IACrF,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACrE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,iBAAiB,KAAK,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,OAAO,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAa;IAChD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IAEzD,KAAK,MAAM,SAAS,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAED,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,cAAc,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,OAA6B;IACtE,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,gBAAgB,CAAC,OAAqB,EAAE,IAAwB;IACvE,IAAI,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC;IAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC;IAC/B,OAAO,EAAE,GAAG,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAAa,EAAE,UAAgC,EAAE;IAC/E,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AACnF,CAAC;AAFD,0CAEC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,OAA6B;IACtE,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAED,MAAM,eAAe,GAAG,IAAA,0CAAuB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChE,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,eAAe,CAAC,OAAO,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAA,0CAAuB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjE,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,gBAAgB,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,kEAAkE;QAClE,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,CAAC;YACzE,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAC3B,KAAiB,EACjB,KAAa,EACb,UAAgC,EAAE;IAElC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,OAAS,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAC5E,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,OAAS,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC/E,MAAM,iBAAiB,GACrB,CAAC,KAAK,CAAC,mBAAmB,GAAG,OAAS,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAC5E,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,OAAS,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAExF,OAAO,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,aAAa,CAAC;AACpE,CAAC;AAdD,sCAcC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAA,0CAAuB,GAAE,CAAC,CAAC,CAAC,CAAC;AACxF,CAAC;AAFD,wCAEC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAa,EAAE,UAAgC,EAAE;IAChF,OAAO,CACL,mBAAmB,CAAC,KAAK,CAAC,KAAK,SAAS;QACxC,IAAA,0CAAuB,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,SAAS,CACtD,CAAC;AACJ,CAAC;AALD,4CAKC"}
|
|
1
|
+
{"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../src/web-server/model-pricing.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,12 @@ export interface CliproxyUsageHistoryDetail {
|
|
|
12
12
|
provider?: string;
|
|
13
13
|
/** CLIProxy account email/id derived from auth_index lookup. Populated when an accountMap is supplied. */
|
|
14
14
|
accountId?: string;
|
|
15
|
+
/** Opaque SHA-256 client-key fingerprint, independent of upstream accountId. */
|
|
16
|
+
clientKeyId?: string;
|
|
17
|
+
/** Legacy snapshot identity; not proof that the bucket is a registered client key. */
|
|
18
|
+
usageBucketId?: string;
|
|
19
|
+
/** Proxy-reported total; cache inclusion differs by provider. Absent in old history. */
|
|
20
|
+
totalTokens?: number;
|
|
15
21
|
timestamp: string;
|
|
16
22
|
inputTokens: number;
|
|
17
23
|
outputTokens: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliproxy-usage-transformer.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAkB,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cliproxy-usage-transformer.d.ts","sourceRoot":"","sources":["../../../src/web-server/usage/cliproxy-usage-transformer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAkB,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQrF,qFAAqF;AACrF,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0GAA0G;IAC1G,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAyGD,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,OAAO,GACd,0BAA0B,GAAG,IAAI,CAgEnC;AAeD;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,wBAAwB,EAClC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,0BAA0B,EAAE,CAkB9B;AA8ED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,QAAQ,EAAE,0BAA0B,EAAE,GACrC,0BAA0B,EAAE,CA0F9B;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,0BAA0B,EAAE,EACrC,eAAe,EAAE,MAAM,GACtB,0BAA0B,EAAE,CAK9B;AAoED,0FAA0F;AAC1F,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,UAAU,EAAE,CAsB9F;AAED,2FAA2F;AAC3F,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,WAAW,EAAE,CA2BhG;AAED,6FAA6F;AAC7F,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,wBAAwB,GACjC,YAAY,EAAE,CAkBhB;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,0BAA0B,EAAE,GAAG;IAC1F,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAgEA"}
|