github-issue-tower-defence-management 1.58.2 → 1.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/.gitattributes +2 -0
  2. package/.prettierignore +1 -0
  3. package/CHANGELOG.md +21 -0
  4. package/README.md +3 -3
  5. package/bin/adapter/entry-points/cli/index.js +1 -3
  6. package/bin/adapter/entry-points/cli/index.js.map +1 -1
  7. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +8 -4
  8. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
  9. package/bin/adapter/proxy/RateLimitCache.js +104 -12
  10. package/bin/adapter/proxy/RateLimitCache.js.map +1 -1
  11. package/bin/adapter/proxy/proxyEntry.js +19 -0
  12. package/bin/adapter/proxy/proxyEntry.js.map +1 -1
  13. package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js +33 -2
  14. package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js.map +1 -1
  15. package/bin/adapter/repositories/ProxyRateLimitCacheRepository.js +92 -0
  16. package/bin/adapter/repositories/ProxyRateLimitCacheRepository.js.map +1 -0
  17. package/bin/domain/usecases/HandleScheduledEventUseCase.js +7 -1
  18. package/bin/domain/usecases/HandleScheduledEventUseCase.js.map +1 -1
  19. package/bin/domain/usecases/StartPreparationUseCase.js +34 -35
  20. package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
  21. package/bin/domain/usecases/UpdateRateLimitCacheUseCase.js +18 -0
  22. package/bin/domain/usecases/UpdateRateLimitCacheUseCase.js.map +1 -0
  23. package/bin/domain/usecases/adapter-interfaces/RateLimitCacheRepository.js +3 -0
  24. package/bin/domain/usecases/adapter-interfaces/RateLimitCacheRepository.js.map +1 -0
  25. package/package.json +1 -1
  26. package/src/adapter/entry-points/cli/index.ts +0 -3
  27. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.test.ts +6 -0
  28. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +9 -3
  29. package/src/adapter/proxy/RateLimitCache.test.ts +250 -0
  30. package/src/adapter/proxy/RateLimitCache.ts +114 -25
  31. package/src/adapter/proxy/proxyEntry.ts +24 -1
  32. package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.test.ts +354 -7
  33. package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts +42 -2
  34. package/src/adapter/repositories/ProxyRateLimitCacheRepository.test.ts +101 -0
  35. package/src/adapter/repositories/ProxyRateLimitCacheRepository.ts +66 -0
  36. package/src/domain/entities/ClaudeTokenUsage.ts +7 -0
  37. package/src/domain/usecases/HandleScheduledEventUseCase.test.ts +63 -0
  38. package/src/domain/usecases/HandleScheduledEventUseCase.ts +7 -0
  39. package/src/domain/usecases/StartPreparationUseCase.test.ts +1212 -887
  40. package/src/domain/usecases/StartPreparationUseCase.ts +47 -57
  41. package/src/domain/usecases/UpdateRateLimitCacheUseCase.test.ts +81 -0
  42. package/src/domain/usecases/UpdateRateLimitCacheUseCase.ts +16 -0
  43. package/src/domain/usecases/adapter-interfaces/RateLimitCacheRepository.ts +9 -0
  44. package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
  45. package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
  46. package/types/adapter/proxy/RateLimitCache.d.ts +11 -0
  47. package/types/adapter/proxy/RateLimitCache.d.ts.map +1 -1
  48. package/types/adapter/proxy/proxyEntry.d.ts.map +1 -1
  49. package/types/adapter/repositories/ProxyClaudeTokenUsageRepository.d.ts.map +1 -1
  50. package/types/adapter/repositories/ProxyRateLimitCacheRepository.d.ts +10 -0
  51. package/types/adapter/repositories/ProxyRateLimitCacheRepository.d.ts.map +1 -0
  52. package/types/domain/entities/ClaudeTokenUsage.d.ts +6 -0
  53. package/types/domain/entities/ClaudeTokenUsage.d.ts.map +1 -1
  54. package/types/domain/usecases/HandleScheduledEventUseCase.d.ts +3 -1
  55. package/types/domain/usecases/HandleScheduledEventUseCase.d.ts.map +1 -1
  56. package/types/domain/usecases/StartPreparationUseCase.d.ts +3 -3
  57. package/types/domain/usecases/StartPreparationUseCase.d.ts.map +1 -1
  58. package/types/domain/usecases/UpdateRateLimitCacheUseCase.d.ts +9 -0
  59. package/types/domain/usecases/UpdateRateLimitCacheUseCase.d.ts.map +1 -0
  60. package/types/domain/usecases/adapter-interfaces/RateLimitCacheRepository.d.ts +9 -0
  61. package/types/domain/usecases/adapter-interfaces/RateLimitCacheRepository.d.ts.map +1 -0
package/.gitattributes ADDED
@@ -0,0 +1,2 @@
1
+ bin/** linguist-generated=true
2
+ types/** linguist-generated=true
package/.prettierignore CHANGED
@@ -1,6 +1,7 @@
1
1
  *.xml
2
2
  .gitignore
3
3
  .prettierignore
4
+ .gitattributes
4
5
  .gitkeep
5
6
 
6
7
 
package/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ # [1.59.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.58.3...v1.59.0) (2026-05-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **core:** resolve eslint errors in UpdateRateLimitCacheUseCase and related tests ([fd90ad6](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/fd90ad620ff003b9b222829713db6ba2b46781f8))
7
+
8
+
9
+ ### Features
10
+
11
+ * **core:** persist all rate-limit headers and add UpdateRateLimitCacheUseCase ([47d33b9](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/47d33b9503dcf5d4162ddb32ba57fa43d8ab21ee)), closes [#638](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/638)
12
+
13
+ ## [1.58.3](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.58.2...v1.58.3) (2026-05-24)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * **core:** exclude tokens whose model-specific weekly limit (seven_day_sonnet) is exhausted ([4d10303](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/4d10303646007a3345c2921525d168afccd83d22))
19
+ * **core:** expire stale rate-limit observations so reset tokens re-enter rotation ([7a63c1d](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/7a63c1d0c365526833dcd1293430adb5b9b27bba))
20
+ * **core:** gate preparation on per-token 5h utilization threshold and remove legacy getUsage() global gate ([cf7cb93](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/cf7cb93b12c6e4e04e6c20a8100805d0cc0abc0e)), closes [#622](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/622)
21
+
1
22
  ## [1.58.2](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.58.1...v1.58.2) (2026-05-24)
2
23
 
3
24
 
package/README.md CHANGED
@@ -97,7 +97,7 @@ startPreparation?: # Optional: Enable automatic issue preparation workflow
97
97
  defaultLlmModelName?: string | null # Optional: Default LLM model name (overridable via llm-model: label)
98
98
  defaultLlmAgentName?: string | null # Optional: Default LLM agent name (overridable via llm-agent: label)
99
99
  maximumPreparingIssuesCount: number | null # Max concurrent preparing issues (null = unlimited)
100
- utilizationPercentageThreshold?: number # Optional: Claude usage % threshold above which preparation is throttled (default: 90)
100
+ utilizationPercentageThreshold?: number # Optional: Per-token Claude 5h utilization % threshold; tokens at or above it are excluded from rotation, and preparation is skipped when no token remains (default: 90)
101
101
  allowedIssueAuthors?: string[] | null # Optional: Only start preparation for issues from these authors (null = all authors)
102
102
  preparationProcessCheckCommand?: string # Optional: Shell command template with {URL} placeholder to check if a preparation process is alive. When set, orphaned Preparation issues (process exits non-zero, or stale aw log) are evaluated for completion: if work is done they advance to Awaiting Quality Check; otherwise they fall back to Awaiting Workspace
103
103
  awaitingQualityCheckStatus?: string | null # Optional: Project status name for issues awaiting quality check. When set with preparationProcessCheckCommand, orphaned issues with no rejections advance to this status instead of awaitingWorkspaceStatus
@@ -211,9 +211,9 @@ When `claudeCodeOauthTokenListJsonPath` is set, `startDaemon` distributes prepar
211
211
 
212
212
  Only the `token` field is consumed; `name` is for human reference. Entries without a string `token` are skipped. Missing files or malformed JSON yield no tokens and disable rotation for that run (the daemon then falls back to whatever `CLAUDE_CODE_OAUTH_TOKEN` is already in the environment).
213
213
 
214
- 2. Local reverse proxy (`127.0.0.1:8787`): on each `startDaemon` run, the daemon TCP-probes the port. If nothing responds, it spawns a detached child running `bin/adapter/proxy/proxyEntry.js`. The proxy forwards every request to `api.anthropic.com`, observes the `anthropic-ratelimit-unified-*` response headers, and writes them to a per-token cache file at `${XDG_CACHE_HOME:-~/.cache}/tdpm/ratelimit/<sha256-of-token>.json`. The cache file stores the latest 5-hour and 7-day utilization, reset epochs, and the unified status (used to detect `blocked` state).
214
+ 2. Local reverse proxy (`127.0.0.1:8787`): on each `startDaemon` run, the daemon TCP-probes the port. If nothing responds, it spawns a detached child running `bin/adapter/proxy/proxyEntry.js`. The proxy forwards every request to `api.anthropic.com`, observes the `anthropic-ratelimit-unified-*` response headers, and writes them to a per-token cache file at `${XDG_CACHE_HOME:-~/.cache}/tdpm/ratelimit/<sha256-of-token>.json`. The cache file stores the latest 5-hour and 7-day utilization, reset epochs, and the unified, 5-hour, and 7-day statuses (used to detect `blocked` and `rejected` state per window). In addition to the unified headers, the proxy inspects the streamed response body for `rate_limit` events (objects carrying `rateLimitType`, `status`, and `resetsAt`) and records the model-specific weekly limits — at minimum `seven_day_sonnet` and `seven_day` — per token. These model-specific weekly limits are exposed only in the response body, never in the unified headers, so a token can appear healthy on `anthropic-ratelimit-unified-7d-*` while its Sonnet weekly limit is exhausted.
215
215
 
216
- 3. Selection: before spawning each `aw` job, the daemon reads every token's cache file. Tokens whose latest status is `blocked` are excluded; the remainder are sorted by 5-hour utilization ascending. The first token (lowest utilization) is selected for the next spawn, then the next, round-robin, for the duration of the run. The selected token and the proxy URL (`http://127.0.0.1:8787`) are passed to the child `aw` process as `CLAUDE_CODE_OAUTH_TOKEN` and `ANTHROPIC_BASE_URL` environment variables. The child inherits the parent process's environment, so no further wiring is required inside `aw`.
216
+ 3. Selection: before spawning each `aw` job, the daemon reads every token's cache file. A cached observation is treated as expired once its reset epoch has passed: when the current time is past the 5-hour reset, that token's 5-hour utilization is treated as `0` and any 5-hour-window rejection is cleared; a 7-day-window rejection is cleared once the 7-day reset has passed; a model-specific weekly limit rejection is cleared once that limit's `resetsAt` has passed. This stale-reset expiry prevents a token that has actually recovered from being locked out of rotation forever (an excluded token receives no new requests, so the proxy never re-observes it). After expiry normalization, tokens whose status is `blocked`, whose remaining (non-expired) rejection is still active, whose weekly limit for the model that will be used is rejected (the model name maps to a limit type: a model name containing `sonnet` maps to `seven_day_sonnet`, one containing `opus` maps to `seven_day_opus`, otherwise `seven_day`; the generic `seven_day` rejection also excludes regardless of model), or whose 5-hour utilization is at or above `utilizationPercentageThreshold` are excluded; the remainder are sorted by 5-hour utilization ascending. The first token (lowest utilization) is selected for the next spawn, then the next, round-robin, for the duration of the run. When a token list is configured but no token survives the filter, preparation is skipped for that run. The selected token and the proxy URL (`http://127.0.0.1:8787`) are passed to the child `aw` process as `CLAUDE_CODE_OAUTH_TOKEN` and `ANTHROPIC_BASE_URL` environment variables. The child inherits the parent process's environment, so no further wiring is required inside `aw`.
217
217
 
218
218
  When `claudeCodeOauthTokenListJsonPath` is unset, no proxy is started and `aw` runs with whatever `CLAUDE_CODE_OAUTH_TOKEN` and `ANTHROPIC_BASE_URL` are already in the environment.
219
219
 
@@ -21,7 +21,6 @@ const GraphqlProjectItemRepository_1 = require("../../repositories/issue/Graphql
21
21
  const ApiV3CheerioRestIssueRepository_1 = require("../../repositories/issue/ApiV3CheerioRestIssueRepository");
22
22
  const LocalStorageCacheRepository_1 = require("../../repositories/LocalStorageCacheRepository");
23
23
  const NodeLocalCommandRunner_1 = require("../../repositories/NodeLocalCommandRunner");
24
- const OauthAPIProxyClaudeRepository_1 = require("../../repositories/OauthAPIProxyClaudeRepository");
25
24
  const GitHubIssueCommentRepository_1 = require("../../repositories/GitHubIssueCommentRepository");
26
25
  const FetchWebhookRepository_1 = require("../../repositories/FetchWebhookRepository");
27
26
  const RevertOrphanedPreparationUseCase_1 = require("../../../domain/usecases/RevertOrphanedPreparationUseCase");
@@ -134,7 +133,6 @@ exports.program
134
133
  const restIssueRepository = new RestIssueRepository_1.RestIssueRepository(...githubRepositoryParams);
135
134
  const graphqlProjectItemRepository = new GraphqlProjectItemRepository_1.GraphqlProjectItemRepository(...githubRepositoryParams);
136
135
  const issueRepository = new ApiV3CheerioRestIssueRepository_1.ApiV3CheerioRestIssueRepository(apiV3IssueRepository, restIssueRepository, graphqlProjectItemRepository, localStorageCacheRepository, ...githubRepositoryParams);
137
- const claudeRepository = new OauthAPIProxyClaudeRepository_1.OauthAPIProxyClaudeRepository();
138
136
  const localCommandRunner = new NodeLocalCommandRunner_1.NodeLocalCommandRunner();
139
137
  const preparationProcessCheckCommand = config.preparationProcessCheckCommand;
140
138
  if (preparationProcessCheckCommand) {
@@ -149,7 +147,7 @@ exports.program
149
147
  });
150
148
  }
151
149
  const claudeTokenUsageRepository = new ProxyClaudeTokenUsageRepository_1.ProxyClaudeTokenUsageRepository(config.claudeCodeOauthTokenListJsonPath ?? null);
152
- const useCase = new StartPreparationUseCase_1.StartPreparationUseCase(projectRepository, issueRepository, claudeRepository, localCommandRunner, claudeTokenUsageRepository);
150
+ const useCase = new StartPreparationUseCase_1.StartPreparationUseCase(projectRepository, issueRepository, localCommandRunner, claudeTokenUsageRepository);
153
151
  const rawAllowedIssueAuthors = config.allowedIssueAuthors;
154
152
  const allowedIssueAuthors = rawAllowedIssueAuthors
155
153
  ? rawAllowedIssueAuthors
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":"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"}
@@ -68,8 +68,9 @@ const AssignNoAssigneeIssueToManagerUseCase_1 = require("../../../domain/usecase
68
68
  const UpdateIssueStatusByLabelUseCase_1 = require("../../../domain/usecases/UpdateIssueStatusByLabelUseCase");
69
69
  const StartPreparationUseCase_1 = require("../../../domain/usecases/StartPreparationUseCase");
70
70
  const NodeLocalCommandRunner_1 = require("../../repositories/NodeLocalCommandRunner");
71
- const OauthAPIProxyClaudeRepository_1 = require("../../repositories/OauthAPIProxyClaudeRepository");
72
71
  const ProxyClaudeTokenUsageRepository_1 = require("../../repositories/ProxyClaudeTokenUsageRepository");
72
+ const ProxyRateLimitCacheRepository_1 = require("../../repositories/ProxyRateLimitCacheRepository");
73
+ const UpdateRateLimitCacheUseCase_1 = require("../../../domain/usecases/UpdateRateLimitCacheUseCase");
73
74
  const RevertOrphanedPreparationUseCase_1 = require("../../../domain/usecases/RevertOrphanedPreparationUseCase");
74
75
  const RevertNotReadyAwaitingQualityCheckUseCase_1 = require("../../../domain/usecases/RevertNotReadyAwaitingQualityCheckUseCase");
75
76
  const GitHubIssueCommentRepository_1 = require("../../repositories/GitHubIssueCommentRepository");
@@ -408,13 +409,16 @@ class HandleScheduledEventUseCaseHandler {
408
409
  const assignNoAssigneeIssueToManagerUseCase = new AssignNoAssigneeIssueToManagerUseCase_1.AssignNoAssigneeIssueToManagerUseCase(issueRepository);
409
410
  const updateIssueStatusByLabelUseCase = new UpdateIssueStatusByLabelUseCase_1.UpdateIssueStatusByLabelUseCase(issueRepository);
410
411
  const nodeLocalCommandRunner = new NodeLocalCommandRunner_1.NodeLocalCommandRunner();
411
- const claudeRepository = new OauthAPIProxyClaudeRepository_1.OauthAPIProxyClaudeRepository();
412
412
  const claudeTokenUsageRepository = new ProxyClaudeTokenUsageRepository_1.ProxyClaudeTokenUsageRepository(mergedInput.claudeCodeOauthTokenListJsonPath ?? null);
413
- const startPreparationUseCase = new StartPreparationUseCase_1.StartPreparationUseCase(projectRepository, issueRepository, claudeRepository, nodeLocalCommandRunner, claudeTokenUsageRepository);
413
+ const startPreparationUseCase = new StartPreparationUseCase_1.StartPreparationUseCase(projectRepository, issueRepository, nodeLocalCommandRunner, claudeTokenUsageRepository);
414
+ const proxyRateLimitCacheRepository = new ProxyRateLimitCacheRepository_1.ProxyRateLimitCacheRepository(mergedInput.claudeCodeOauthTokenListJsonPath ?? null);
415
+ const updateRateLimitCacheUseCase = mergedInput.startPreparation
416
+ ? new UpdateRateLimitCacheUseCase_1.UpdateRateLimitCacheUseCase(proxyRateLimitCacheRepository)
417
+ : null;
414
418
  const issueCommentRepository = new GitHubIssueCommentRepository_1.GitHubIssueCommentRepository(input.credentials.bot.github.token);
415
419
  const revertOrphanedPreparationUseCase = new RevertOrphanedPreparationUseCase_1.RevertOrphanedPreparationUseCase(projectRepository, issueRepository, issueCommentRepository, nodeLocalCommandRunner);
416
420
  const revertNotReadyAwaitingQualityCheckUseCase = new RevertNotReadyAwaitingQualityCheckUseCase_1.RevertNotReadyAwaitingQualityCheckUseCase(projectRepository, issueRepository, issueCommentRepository);
417
- const handleScheduledEventUseCase = new HandleScheduledEventUseCase_1.HandleScheduledEventUseCase(setupTowerDefenceProjectUseCase, actionAnnouncement, setWorkflowManagementIssueToStoryUseCase, clearPastNextActionUseCase, analyzeProblemByIssueUseCase, analyzeStoriesUseCase, clearDependedIssueURLUseCase, createEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase, createNewStoryByLabel, assignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase, startPreparationUseCase, revertOrphanedPreparationUseCase, revertNotReadyAwaitingQualityCheckUseCase, systemDateRepository, googleSpreadsheetRepository, projectRepository, issueRepository);
421
+ const handleScheduledEventUseCase = new HandleScheduledEventUseCase_1.HandleScheduledEventUseCase(setupTowerDefenceProjectUseCase, actionAnnouncement, setWorkflowManagementIssueToStoryUseCase, clearPastNextActionUseCase, analyzeProblemByIssueUseCase, analyzeStoriesUseCase, clearDependedIssueURLUseCase, createEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase, createNewStoryByLabel, assignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase, startPreparationUseCase, revertOrphanedPreparationUseCase, revertNotReadyAwaitingQualityCheckUseCase, updateRateLimitCacheUseCase, systemDateRepository, googleSpreadsheetRepository, projectRepository, issueRepository);
418
422
  const result = await handleScheduledEventUseCase.run(mergedInput);
419
423
  if (result) {
420
424
  await (0, situationFileWriter_1.writeSituationFile)({
@@ -1 +1 @@
1
- {"version":3,"file":"HandleScheduledEventUseCaseHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandleScheduledEventUseCaseHandler.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.readRateLimit = exports.writeRateLimit = exports.cachePathForToken = exports.hashToken = exports.cacheDir = exports.PROXY_PORT = void 0;
36
+ exports.readRateLimit = exports.parseModelRateLimitsFromBody = exports.writeModelRateLimit = exports.writeRateLimit = exports.cachePathForToken = exports.hashToken = exports.cacheDir = exports.PROXY_PORT = void 0;
37
37
  const crypto = __importStar(require("crypto"));
38
38
  const fs = __importStar(require("fs"));
39
39
  const os = __importStar(require("os"));
@@ -49,6 +49,35 @@ const hashToken = (token) => crypto.createHash(HASH_ALGORITHM).update(token).dig
49
49
  exports.hashToken = hashToken;
50
50
  const cachePathForToken = (token) => path.join((0, exports.cacheDir)(), `${(0, exports.hashToken)(token)}.json`);
51
51
  exports.cachePathForToken = cachePathForToken;
52
+ const isRecord = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
53
+ const readPayload = (filePath) => {
54
+ if (!fs.existsSync(filePath))
55
+ return {};
56
+ try {
57
+ const raw = fs.readFileSync(filePath, 'utf8');
58
+ const parsed = JSON.parse(raw);
59
+ return isRecord(parsed) ? parsed : {};
60
+ }
61
+ catch {
62
+ return {};
63
+ }
64
+ };
65
+ const readModelWeeklyLimits = (payload) => {
66
+ const stored = payload.modelWeeklyLimits;
67
+ const result = {};
68
+ if (!isRecord(stored))
69
+ return result;
70
+ for (const [limitType, value] of Object.entries(stored)) {
71
+ if (!isRecord(value))
72
+ continue;
73
+ const rejected = value.rejected;
74
+ const resetsAt = value.resetsAt;
75
+ if (typeof rejected === 'boolean' && typeof resetsAt === 'number') {
76
+ result[limitType] = { rejected, resetsAt };
77
+ }
78
+ }
79
+ return result;
80
+ };
52
81
  const writeRateLimit = (token, headers) => {
53
82
  const dir = (0, exports.cacheDir)();
54
83
  if (!fs.existsSync(dir)) {
@@ -60,22 +89,78 @@ const writeRateLimit = (token, headers) => {
60
89
  return value[0];
61
90
  return value;
62
91
  };
92
+ const filePath = path.join(dir, `${(0, exports.hashToken)(token)}.json`);
93
+ const existing = readPayload(filePath);
94
+ const rateLimitHeaders = {};
95
+ for (const key of Object.keys(headers)) {
96
+ if (key.startsWith('anthropic-ratelimit-')) {
97
+ const value = pick(key);
98
+ if (value !== undefined) {
99
+ rateLimitHeaders[key] = value;
100
+ }
101
+ }
102
+ }
63
103
  const payload = {
64
104
  ts: Date.now() / 1000,
65
- headers: {
66
- 'anthropic-ratelimit-unified-status': pick('anthropic-ratelimit-unified-status'),
67
- 'anthropic-ratelimit-unified-5h-status': pick('anthropic-ratelimit-unified-5h-status'),
68
- 'anthropic-ratelimit-unified-5h-reset': pick('anthropic-ratelimit-unified-5h-reset'),
69
- 'anthropic-ratelimit-unified-5h-utilization': pick('anthropic-ratelimit-unified-5h-utilization'),
70
- 'anthropic-ratelimit-unified-7d-status': pick('anthropic-ratelimit-unified-7d-status'),
71
- 'anthropic-ratelimit-unified-7d-reset': pick('anthropic-ratelimit-unified-7d-reset'),
72
- 'anthropic-ratelimit-unified-7d-utilization': pick('anthropic-ratelimit-unified-7d-utilization'),
73
- },
105
+ headers: rateLimitHeaders,
106
+ modelWeeklyLimits: readModelWeeklyLimits(existing),
74
107
  };
75
- const filePath = path.join(dir, `${(0, exports.hashToken)(token)}.json`);
76
108
  fs.writeFileSync(filePath, JSON.stringify(payload));
77
109
  };
78
110
  exports.writeRateLimit = writeRateLimit;
111
+ const writeModelRateLimit = (token, limits) => {
112
+ const limitTypes = Object.keys(limits);
113
+ if (limitTypes.length === 0)
114
+ return;
115
+ const dir = (0, exports.cacheDir)();
116
+ if (!fs.existsSync(dir)) {
117
+ fs.mkdirSync(dir, { recursive: true });
118
+ }
119
+ const filePath = path.join(dir, `${(0, exports.hashToken)(token)}.json`);
120
+ const existing = readPayload(filePath);
121
+ const merged = {
122
+ ...readModelWeeklyLimits(existing),
123
+ ...limits,
124
+ };
125
+ const payload = {
126
+ ...existing,
127
+ modelWeeklyLimits: merged,
128
+ };
129
+ fs.writeFileSync(filePath, JSON.stringify(payload));
130
+ };
131
+ exports.writeModelRateLimit = writeModelRateLimit;
132
+ const parseModelRateLimitsFromBody = (body) => {
133
+ const result = {};
134
+ const matches = body.match(/\{[^{}]*"rateLimitType"[^{}]*\}|\{[^{}]*"resetsAt"[^{}]*"rateLimitType"[^{}]*\}/g);
135
+ if (matches === null)
136
+ return result;
137
+ for (const candidate of matches) {
138
+ let parsed;
139
+ try {
140
+ parsed = JSON.parse(candidate);
141
+ }
142
+ catch {
143
+ continue;
144
+ }
145
+ if (!isRecord(parsed))
146
+ continue;
147
+ const rateLimitType = parsed.rateLimitType;
148
+ const status = parsed.status;
149
+ const resetsAt = parsed.resetsAt;
150
+ if (typeof rateLimitType !== 'string')
151
+ continue;
152
+ if (typeof status !== 'string')
153
+ continue;
154
+ if (typeof resetsAt !== 'number')
155
+ continue;
156
+ result[rateLimitType] = {
157
+ rejected: status === 'rejected',
158
+ resetsAt,
159
+ };
160
+ }
161
+ return result;
162
+ };
163
+ exports.parseModelRateLimitsFromBody = parseModelRateLimitsFromBody;
79
164
  const readRateLimit = (token) => {
80
165
  const filePath = (0, exports.cachePathForToken)(token);
81
166
  if (!fs.existsSync(filePath))
@@ -83,7 +168,6 @@ const readRateLimit = (token) => {
83
168
  try {
84
169
  const raw = fs.readFileSync(filePath, 'utf8');
85
170
  const parsed = JSON.parse(raw);
86
- const isRecord = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
87
171
  if (!isRecord(parsed))
88
172
  return null;
89
173
  const headersUnknown = parsed.headers;
@@ -105,6 +189,9 @@ const readRateLimit = (token) => {
105
189
  const status = headers['anthropic-ratelimit-unified-status'];
106
190
  const fiveHourStatus = headers['anthropic-ratelimit-unified-5h-status'];
107
191
  const sevenDayStatus = headers['anthropic-ratelimit-unified-7d-status'];
192
+ const unifiedRejected = status === 'rejected';
193
+ const fiveHourRejected = fiveHourStatus === 'rejected';
194
+ const sevenDayRejected = sevenDayStatus === 'rejected';
108
195
  return {
109
196
  fiveHourUtilization: num('anthropic-ratelimit-unified-5h-utilization'),
110
197
  fiveHourReset: num('anthropic-ratelimit-unified-5h-reset'),
@@ -113,6 +200,11 @@ const readRateLimit = (token) => {
113
200
  blocked: status === 'blocked' ||
114
201
  fiveHourStatus === 'blocked' ||
115
202
  sevenDayStatus === 'blocked',
203
+ rejected: unifiedRejected || fiveHourRejected || sevenDayRejected,
204
+ unifiedRejected,
205
+ fiveHourRejected,
206
+ sevenDayRejected,
207
+ modelWeeklyLimits: readModelWeeklyLimits(parsed),
116
208
  };
117
209
  }
118
210
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"RateLimitCache.js","sourceRoot":"","sources":["../../../src/adapter/proxy/RateLimitCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RateLimitCache.js","sourceRoot":"","sources":["../../../src/adapter/proxy/RateLimitCache.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ const http = __importStar(require("http"));
38
38
  const https = __importStar(require("https"));
39
39
  const RateLimitCache_1 = require("./RateLimitCache");
40
40
  const UPSTREAM_HOST = 'api.anthropic.com';
41
+ const MAX_INSPECTED_BODY_BYTES = 1024 * 1024;
41
42
  const BEARER_PREFIX = 'bearer ';
42
43
  const extractToken = (authorization) => {
43
44
  const value = Array.isArray(authorization) ? authorization[0] : authorization;
@@ -72,6 +73,24 @@ const startProxy = (port) => {
72
73
  catch (error) {
73
74
  console.error('Failed to write rate limit cache:', error);
74
75
  }
76
+ const inspectedChunks = [];
77
+ let inspectedBytes = 0;
78
+ upstreamResponse.on('data', (chunk) => {
79
+ if (inspectedBytes >= MAX_INSPECTED_BODY_BYTES)
80
+ return;
81
+ inspectedChunks.push(new Uint8Array(chunk));
82
+ inspectedBytes += chunk.length;
83
+ });
84
+ upstreamResponse.on('end', () => {
85
+ try {
86
+ const body = Buffer.concat(inspectedChunks).toString('utf8');
87
+ const limits = (0, RateLimitCache_1.parseModelRateLimitsFromBody)(body);
88
+ (0, RateLimitCache_1.writeModelRateLimit)(token, limits);
89
+ }
90
+ catch (error) {
91
+ console.error('Failed to write model rate limit cache:', error);
92
+ }
93
+ });
75
94
  }
76
95
  clientResponse.writeHead(upstreamResponse.statusCode ?? 502, upstreamResponse.headers);
77
96
  upstreamResponse.pipe(clientResponse);
@@ -1 +1 @@
1
- {"version":3,"file":"proxyEntry.js","sourceRoot":"","sources":["../../../src/adapter/proxy/proxyEntry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxyEntry.js","sourceRoot":"","sources":["../../../src/adapter/proxy/proxyEntry.ts"],"names":[],"mappings":"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"}
@@ -19,12 +19,43 @@ class ProxyClaudeTokenUsageRepository {
19
19
  if (tokens === null) {
20
20
  return [];
21
21
  }
22
+ const nowEpochSeconds = Date.now() / 1000;
22
23
  return tokens.map((token) => {
23
24
  const snapshot = (0, RateLimitCache_1.readRateLimit)(token);
25
+ if (snapshot === null) {
26
+ return {
27
+ token,
28
+ fiveHourUtilization: 0,
29
+ blocked: false,
30
+ rejected: false,
31
+ modelWeeklyLimits: {},
32
+ };
33
+ }
34
+ const fiveHourExpired = nowEpochSeconds > snapshot.fiveHourReset;
35
+ const sevenDayExpired = nowEpochSeconds > snapshot.sevenDayReset;
36
+ const fiveHourUtilization = fiveHourExpired
37
+ ? 0
38
+ : snapshot.fiveHourUtilization;
39
+ const fiveHourRejectionActive = snapshot.fiveHourRejected && !fiveHourExpired;
40
+ const sevenDayRejectionActive = snapshot.sevenDayRejected && !sevenDayExpired;
41
+ const unifiedRejectionActive = snapshot.unifiedRejected && !fiveHourExpired;
42
+ const rejected = unifiedRejectionActive ||
43
+ fiveHourRejectionActive ||
44
+ sevenDayRejectionActive;
45
+ const modelWeeklyLimits = {};
46
+ for (const [limitType, limit] of Object.entries(snapshot.modelWeeklyLimits)) {
47
+ const expired = nowEpochSeconds > limit.resetsAt;
48
+ modelWeeklyLimits[limitType] = {
49
+ rejected: limit.rejected && !expired,
50
+ resetsAt: limit.resetsAt,
51
+ };
52
+ }
24
53
  return {
25
54
  token,
26
- fiveHourUtilization: snapshot ? snapshot.fiveHourUtilization : 0,
27
- blocked: snapshot?.blocked ?? false,
55
+ fiveHourUtilization,
56
+ blocked: snapshot.blocked,
57
+ rejected,
58
+ modelWeeklyLimits,
28
59
  };
29
60
  });
30
61
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ProxyClaudeTokenUsageRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts"],"names":[],"mappings":";;;AAEA,oEAAiE;AACjE,4DAAoE;AACpE,8DAAsD;AAEtD,MAAa,+BAA+B;IAC1C,YACmB,iBAAgC,EAChC,OAAe,2BAAU;QADzB,sBAAiB,GAAjB,iBAAiB,CAAe;QAChC,SAAI,GAAJ,IAAI,CAAqB;QAG5C,qBAAgB,GAAG,KAAK,IAAmB,EAAE;YAC3C,MAAM,IAAA,uCAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,4BAAuB,GAAG,KAAK,IAAiC,EAAE;YAChE,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;gBACpC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,4BAAU,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1B,MAAM,QAAQ,GAAG,IAAA,8BAAa,EAAC,KAAK,CAAC,CAAC;gBACtC,OAAO;oBACL,KAAK;oBACL,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;oBAChE,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,KAAK;iBACpC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAW,EAAE,CAAC,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC;IAxB1D,CAAC;CAyBL;AA7BD,0EA6BC"}
1
+ {"version":3,"file":"ProxyClaudeTokenUsageRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts"],"names":[],"mappings":";;;AAEA,oEAAiE;AACjE,4DAAoE;AACpE,8DAAsD;AAEtD,MAAa,+BAA+B;IAC1C,YACmB,iBAAgC,EAChC,OAAe,2BAAU;QADzB,sBAAiB,GAAjB,iBAAiB,CAAe;QAChC,SAAI,GAAJ,IAAI,CAAqB;QAG5C,qBAAgB,GAAG,KAAK,IAAmB,EAAE;YAC3C,MAAM,IAAA,uCAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,4BAAuB,GAAG,KAAK,IAAiC,EAAE;YAChE,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;gBACpC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,4BAAU,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1B,MAAM,QAAQ,GAAG,IAAA,8BAAa,EAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,OAAO;wBACL,KAAK;wBACL,mBAAmB,EAAE,CAAC;wBACtB,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,KAAK;wBACf,iBAAiB,EAAE,EAAE;qBACtB,CAAC;gBACJ,CAAC;gBACD,MAAM,eAAe,GAAG,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC;gBACjE,MAAM,eAAe,GAAG,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC;gBACjE,MAAM,mBAAmB,GAAG,eAAe;oBACzC,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACjC,MAAM,uBAAuB,GAC3B,QAAQ,CAAC,gBAAgB,IAAI,CAAC,eAAe,CAAC;gBAChD,MAAM,uBAAuB,GAC3B,QAAQ,CAAC,gBAAgB,IAAI,CAAC,eAAe,CAAC;gBAChD,MAAM,sBAAsB,GAC1B,QAAQ,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC;gBAC/C,MAAM,QAAQ,GACZ,sBAAsB;oBACtB,uBAAuB;oBACvB,uBAAuB,CAAC;gBAC1B,MAAM,iBAAiB,GAGnB,EAAE,CAAC;gBACP,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAC7C,QAAQ,CAAC,iBAAiB,CAC3B,EAAE,CAAC;oBACF,MAAM,OAAO,GAAG,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC;oBACjD,iBAAiB,CAAC,SAAS,CAAC,GAAG;wBAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,OAAO;wBACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;qBACzB,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,KAAK;oBACL,mBAAmB;oBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,QAAQ;oBACR,iBAAiB;iBAClB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAW,EAAE,CAAC,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC;IAhE1D,CAAC;CAiEL;AArED,0EAqEC"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ProxyRateLimitCacheRepository = void 0;
37
+ const http = __importStar(require("http"));
38
+ const RateLimitCache_1 = require("../proxy/RateLimitCache");
39
+ const TokenListLoader_1 = require("../proxy/TokenListLoader");
40
+ const HAIKU_MODEL = 'claude-haiku-4-5';
41
+ const PROBE_REQUEST_BODY = JSON.stringify({
42
+ model: HAIKU_MODEL,
43
+ max_tokens: 1,
44
+ messages: [{ role: 'user', content: 'hi' }],
45
+ });
46
+ class ProxyRateLimitCacheRepository {
47
+ constructor(tokenListJsonPath, port = RateLimitCache_1.PROXY_PORT) {
48
+ this.tokenListJsonPath = tokenListJsonPath;
49
+ this.port = port;
50
+ this.getTokenRateLimitCaches = () => {
51
+ if (this.tokenListJsonPath === null) {
52
+ return [];
53
+ }
54
+ const tokens = (0, TokenListLoader_1.loadTokens)(this.tokenListJsonPath);
55
+ if (tokens === null) {
56
+ return [];
57
+ }
58
+ return tokens.map((token) => {
59
+ const snapshot = (0, RateLimitCache_1.readRateLimit)(token);
60
+ const unifiedReset = snapshot !== null ? snapshot.fiveHourReset : 0;
61
+ return { token, unifiedReset };
62
+ });
63
+ };
64
+ this.probeToken = async (token) => {
65
+ await new Promise((resolve) => {
66
+ const request = http.request({
67
+ host: '127.0.0.1',
68
+ port: this.port,
69
+ method: 'POST',
70
+ path: '/v1/messages',
71
+ headers: {
72
+ 'content-type': 'application/json',
73
+ 'anthropic-version': '2023-06-01',
74
+ authorization: `Bearer ${token}`,
75
+ 'content-length': Buffer.byteLength(PROBE_REQUEST_BODY),
76
+ },
77
+ }, (response) => {
78
+ response.resume();
79
+ response.on('end', () => resolve());
80
+ });
81
+ request.on('error', (error) => {
82
+ console.error(`[UpdateRateLimitCache] Probe request failed for token hash: ${error.message}`);
83
+ resolve();
84
+ });
85
+ request.write(PROBE_REQUEST_BODY);
86
+ request.end();
87
+ });
88
+ };
89
+ }
90
+ }
91
+ exports.ProxyRateLimitCacheRepository = ProxyRateLimitCacheRepository;
92
+ //# sourceMappingURL=ProxyRateLimitCacheRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProxyRateLimitCacheRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyRateLimitCacheRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAG7B,4DAAoE;AACpE,8DAAsD;AAEtD,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAEvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC;IACxC,KAAK,EAAE,WAAW;IAClB,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAa,6BAA6B;IACxC,YACmB,iBAAgC,EAChC,OAAe,2BAAU;QADzB,sBAAiB,GAAjB,iBAAiB,CAAe;QAChC,SAAI,GAAJ,IAAI,CAAqB;QAG5C,4BAAuB,GAAG,GAA0B,EAAE;YACpD,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;gBACpC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,4BAAU,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1B,MAAM,QAAQ,GAAG,IAAA,8BAAa,EAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,YAAY,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,eAAU,GAAG,KAAK,EAAE,KAAa,EAAiB,EAAE;YAClD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAC1B;oBACE,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,mBAAmB,EAAE,YAAY;wBACjC,aAAa,EAAE,UAAU,KAAK,EAAE;wBAChC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC;qBACxD;iBACF,EACD,CAAC,QAAQ,EAAE,EAAE;oBACX,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtC,CAAC,CACF,CAAC;gBACF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC5B,OAAO,CAAC,KAAK,CACX,+DAA+D,KAAK,CAAC,OAAO,EAAE,CAC/E,CAAC;oBACF,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBAClC,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IA9CC,CAAC;CA+CL;AAnDD,sEAmDC"}