@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.
Files changed (148) hide show
  1. package/README.md +14 -2
  2. package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts.map +1 -1
  3. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js +10 -8
  4. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -1
  5. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts +12 -2
  6. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -1
  7. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js +77 -41
  8. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -1
  9. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts +1 -1
  10. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -1
  11. package/dist/cliproxy/ai-providers/model-id-normalizer.js +5 -1
  12. package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -1
  13. package/dist/cliproxy/ai-providers/schema-sanitizer.d.ts +3 -1
  14. package/dist/cliproxy/ai-providers/schema-sanitizer.d.ts.map +1 -1
  15. package/dist/cliproxy/ai-providers/schema-sanitizer.js +3 -1
  16. package/dist/cliproxy/ai-providers/schema-sanitizer.js.map +1 -1
  17. package/dist/cliproxy/config/generator.d.ts +7 -0
  18. package/dist/cliproxy/config/generator.d.ts.map +1 -1
  19. package/dist/cliproxy/config/generator.js +148 -7
  20. package/dist/cliproxy/config/generator.js.map +1 -1
  21. package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
  22. package/dist/cliproxy/config/thinking-config.js +5 -5
  23. package/dist/cliproxy/config/thinking-config.js.map +1 -1
  24. package/dist/cliproxy/executor/env-resolver.js +1 -1
  25. package/dist/cliproxy/executor/env-resolver.js.map +1 -1
  26. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  27. package/dist/cliproxy/executor/index.js +2 -1
  28. package/dist/cliproxy/executor/index.js.map +1 -1
  29. package/dist/cliproxy/executor/proxy-chain-builder.d.ts.map +1 -1
  30. package/dist/cliproxy/executor/proxy-chain-builder.js +4 -0
  31. package/dist/cliproxy/executor/proxy-chain-builder.js.map +1 -1
  32. package/dist/cliproxy/model-catalog.d.ts +1 -1
  33. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  34. package/dist/cliproxy/model-catalog.js +105 -12
  35. package/dist/cliproxy/model-catalog.js.map +1 -1
  36. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts +6 -1
  37. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -1
  38. package/dist/cliproxy/proxy/tool-sanitization-proxy.js +27 -28
  39. package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -1
  40. package/dist/cliproxy/proxy/upstream-response-timeout.d.ts +13 -0
  41. package/dist/cliproxy/proxy/upstream-response-timeout.d.ts.map +1 -1
  42. package/dist/cliproxy/proxy/upstream-response-timeout.js +19 -1
  43. package/dist/cliproxy/proxy/upstream-response-timeout.js.map +1 -1
  44. package/dist/cliproxy/services/stats-fetcher.d.ts +4 -0
  45. package/dist/cliproxy/services/stats-fetcher.d.ts.map +1 -1
  46. package/dist/cliproxy/services/stats-fetcher.js +14 -1
  47. package/dist/cliproxy/services/stats-fetcher.js.map +1 -1
  48. package/dist/cliproxy/services/usage-compatibility-transformer.d.ts +5 -0
  49. package/dist/cliproxy/services/usage-compatibility-transformer.d.ts.map +1 -1
  50. package/dist/cliproxy/services/usage-compatibility-transformer.js +77 -6
  51. package/dist/cliproxy/services/usage-compatibility-transformer.js.map +1 -1
  52. package/dist/cliproxy/types/config-types.d.ts +3 -0
  53. package/dist/cliproxy/types/config-types.d.ts.map +1 -1
  54. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
  55. package/dist/commands/cliproxy/variant-subcommand.js +5 -1
  56. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  57. package/dist/config/schemas/cliproxy.d.ts +1 -1
  58. package/dist/cursor/cursor-daemon-entry.d.ts.map +1 -1
  59. package/dist/cursor/cursor-daemon-entry.js +11 -49
  60. package/dist/cursor/cursor-daemon-entry.js.map +1 -1
  61. package/dist/cursor/cursor-daemon.d.ts.map +1 -1
  62. package/dist/cursor/cursor-daemon.js +7 -4
  63. package/dist/cursor/cursor-daemon.js.map +1 -1
  64. package/dist/dispatcher/flows/cliproxy-flow.d.ts.map +1 -1
  65. package/dist/dispatcher/flows/cliproxy-flow.js +1 -0
  66. package/dist/dispatcher/flows/cliproxy-flow.js.map +1 -1
  67. package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -1
  68. package/dist/dispatcher/flows/settings-flow.js +3 -1
  69. package/dist/dispatcher/flows/settings-flow.js.map +1 -1
  70. package/dist/glmt/glmt-proxy.d.ts +0 -4
  71. package/dist/glmt/glmt-proxy.d.ts.map +1 -1
  72. package/dist/glmt/glmt-proxy.js +6 -21
  73. package/dist/glmt/glmt-proxy.js.map +1 -1
  74. package/dist/management/shared-manager/plugin-metadata-normalizer.d.ts.map +1 -1
  75. package/dist/management/shared-manager/plugin-metadata-normalizer.js +72 -21
  76. package/dist/management/shared-manager/plugin-metadata-normalizer.js.map +1 -1
  77. package/dist/management/shared-manager/shared-dir-linker.d.ts.map +1 -1
  78. package/dist/management/shared-manager/shared-dir-linker.js +5 -0
  79. package/dist/management/shared-manager/shared-dir-linker.js.map +1 -1
  80. package/dist/proxy/server/http-helpers.d.ts +6 -1
  81. package/dist/proxy/server/http-helpers.d.ts.map +1 -1
  82. package/dist/proxy/server/http-helpers.js +19 -77
  83. package/dist/proxy/server/http-helpers.js.map +1 -1
  84. package/dist/proxy/server/messages-route.d.ts.map +1 -1
  85. package/dist/proxy/server/messages-route.js +11 -5
  86. package/dist/proxy/server/messages-route.js.map +1 -1
  87. package/dist/shared/provider-preset-catalog.d.ts +1 -1
  88. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  89. package/dist/shared/provider-preset-catalog.js +28 -0
  90. package/dist/shared/provider-preset-catalog.js.map +1 -1
  91. package/dist/ui/assets/{Trans-DpzuO-3l.js → Trans-DH_0k3_n.js} +1 -1
  92. package/dist/ui/assets/{accounts-B8La6EUn.js → accounts-CVP2-Njk.js} +1 -1
  93. package/dist/ui/assets/{alert-dialog-Bf9XTqpg.js → alert-dialog-DncbCG0_.js} +1 -1
  94. package/dist/ui/assets/{api-BKN4bIkK.js → api-CQi3CVcl.js} +1 -1
  95. package/dist/ui/assets/{auth-section-C9nhoYzH.js → auth-section-Mv8KHvVM.js} +1 -1
  96. package/dist/ui/assets/{backups-section-xj1966O2.js → backups-section-Vm_gBBHv.js} +1 -1
  97. package/dist/ui/assets/{channels-BV6KMHQ-.js → channels-CqC51WOc.js} +1 -1
  98. package/dist/ui/assets/{checkbox-D3J3bEmY.js → checkbox-CPnaepmT.js} +1 -1
  99. package/dist/ui/assets/{claude-extension-D8MBbLlg.js → claude-extension-fsZuoafg.js} +1 -1
  100. package/dist/ui/assets/cliproxy-Ci2yqAqv.js +4 -0
  101. package/dist/ui/assets/{cliproxy-ai-providers-BHXVZIDI.js → cliproxy-ai-providers-UyvtToHe.js} +1 -1
  102. package/dist/ui/assets/{cliproxy-control-panel-Dnh8fwYy.js → cliproxy-control-panel-CvnXQRoG.js} +1 -1
  103. package/dist/ui/assets/{codex-BSt3ZMe-.js → codex-yYkmgvBc.js} +1 -1
  104. package/dist/ui/assets/{confirm-dialog-BTwVtHIm.js → confirm-dialog-C1R4FuKd.js} +1 -1
  105. package/dist/ui/assets/{copilot-CFxIjoER.js → copilot-BjjH_cxF.js} +1 -1
  106. package/dist/ui/assets/{cursor-CJEGvYc8.js → cursor-C73hLg6J.js} +1 -1
  107. package/dist/ui/assets/{droid-BAZEtHVz.js → droid-Dqg2rtFl.js} +1 -1
  108. package/dist/ui/assets/{globalenv-section-DvHEmWGW.js → globalenv-section-IRGdEiDn.js} +1 -1
  109. package/dist/ui/assets/{health-CucHeqaT.js → health-Cx6BKtXL.js} +1 -1
  110. package/dist/ui/assets/{index-DQ5lgrhi.js → index--oj-5HjW.js} +1 -1
  111. package/dist/ui/assets/{index-DwB2dlO7.js → index-BCHIKzFf.js} +1 -1
  112. package/dist/ui/assets/{index-COHf4O5A.js → index-ChrMTCdJ.js} +1 -1
  113. package/dist/ui/assets/{index-Bba-lL0F.js → index-CvGHvolS.js} +1 -1
  114. package/dist/ui/assets/{index-D7hMaEi7.js → index-D4x8qKjE.js} +1 -1
  115. package/dist/ui/assets/{index-BAmMxAjc.js → index-DzZjiVVk.js} +1 -1
  116. package/dist/ui/assets/{index-CjEHrRK5.js → index-rkHleSof.js} +26 -26
  117. package/dist/ui/assets/{logs-CmiNT73G.js → logs-D_yb-nke.js} +1 -1
  118. package/dist/ui/assets/{masked-input-DRtifqT7.js → masked-input-CAzxkfDz.js} +1 -1
  119. package/dist/ui/assets/{proxy-status-widget-FQJgTcgi.js → proxy-status-widget-BwQT11fb.js} +1 -1
  120. package/dist/ui/assets/{raw-json-settings-editor-panel-kpw_rzWt.js → raw-json-settings-editor-panel-DNR2XVKt.js} +1 -1
  121. package/dist/ui/assets/{searchable-select-BhSnRKdw.js → searchable-select-Bog5jhDi.js} +1 -1
  122. package/dist/ui/assets/{separator-DrUbmmEV.js → separator-CSIkt-8K.js} +1 -1
  123. package/dist/ui/assets/{shared-JBfU4vEx.js → shared-Te8ciIIT.js} +1 -1
  124. package/dist/ui/assets/{table-D3qUcyZ_.js → table-C_bsTTOc.js} +1 -1
  125. package/dist/ui/assets/{updates-vN6lQzZr.js → updates-CKJCmW7s.js} +1 -1
  126. package/dist/ui/assets/{use-accounts-BQ8SCEa6.js → use-accounts-CKVEXfmz.js} +1 -1
  127. package/dist/ui/index.html +1 -1
  128. package/dist/utils/openai-compat-launch-settings.d.ts +11 -1
  129. package/dist/utils/openai-compat-launch-settings.d.ts.map +1 -1
  130. package/dist/utils/openai-compat-launch-settings.js +55 -5
  131. package/dist/utils/openai-compat-launch-settings.js.map +1 -1
  132. package/dist/utils/request-body.d.ts +40 -0
  133. package/dist/utils/request-body.d.ts.map +1 -0
  134. package/dist/utils/request-body.js +142 -0
  135. package/dist/utils/request-body.js.map +1 -0
  136. package/dist/web-server/model-pricing.d.ts.map +1 -1
  137. package/dist/web-server/model-pricing.js +127 -1
  138. package/dist/web-server/model-pricing.js.map +1 -1
  139. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +6 -0
  140. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
  141. package/dist/web-server/usage/cliproxy-usage-transformer.js +57 -1
  142. package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
  143. package/dist/web-server/usage/codex-native-usage-collector.d.ts.map +1 -1
  144. package/dist/web-server/usage/codex-native-usage-collector.js +7 -4
  145. package/dist/web-server/usage/codex-native-usage-collector.js.map +1 -1
  146. package/package.json +1 -1
  147. package/scripts/run-test-bucket.js +1 -0
  148. 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, JSON.stringify(launchSettings, null, 2) + '\n', {
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
- fs.rmSync(tempDir, { recursive: true, force: true });
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;AAG7B,qDAA4D;AAO5D,mFAAmF;AACnF,2EAA2E;AAC3E,kFAAkF;AAClF,6EAA6E;AAC7E,iFAAiF;AACjF,8BAA8B;AAC9B,SAAgB,gCAAgC,CAC9C,YAAoB,EACpB,QAAkB;IAElB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;IACtF,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE7B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAa,CAAC;IACxE,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,MAAM,CAAC,OAAO,CAAC,IAAA,yCAAwB,EAAC,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAChF,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CACnE,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,cAAc,CAAC,GAAG,GAAG,YAAY,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO,cAAc,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3E,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QACnF,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,SAAS,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,SAAS,GAAG,IAAI,CAAC;QACjB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,OAAO;QACL,YAAY,EAAE,kBAAkB;QAChC,OAAO;KACR,CAAC;AACJ,CAAC;AAvCD,4EAuCC"}
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;AA6+BD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,YAAY,CAE/F;AAsCD;;;;;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"}
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
- return applyServiceTier(resolveBasePricing(model, options), options.serviceTier);
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":"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"}
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;AAOrF,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,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;AAsGD,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,OAAO,GACd,0BAA0B,GAAG,IAAI,CAiDnC;AAeD;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,wBAAwB,EAClC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,0BAA0B,EAAE,CAkB9B;AAwED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,QAAQ,EAAE,0BAA0B,EAAE,GACrC,0BAA0B,EAAE,CA0C9B;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"}
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"}