github-issue-tower-defence-management 1.58.3 → 1.60.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 (67) hide show
  1. package/.gitattributes +2 -0
  2. package/.github/workflows/create-pr.yml +1 -1
  3. package/.github/workflows/test.yml +4 -0
  4. package/.github/workflows/umino-project.yml +3 -3
  5. package/.prettierignore +1 -0
  6. package/CHANGELOG.md +19 -0
  7. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +7 -1
  8. package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
  9. package/bin/adapter/proxy/ClaudeMessageResponseParser.js +123 -0
  10. package/bin/adapter/proxy/ClaudeMessageResponseParser.js.map +1 -0
  11. package/bin/adapter/proxy/RateLimitCache.js +10 -9
  12. package/bin/adapter/proxy/RateLimitCache.js.map +1 -1
  13. package/bin/adapter/proxy/proxyEntry.js +16 -3
  14. package/bin/adapter/proxy/proxyEntry.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/adapter/repositories/SqliteClaudeMessageResponseRepository.js +186 -0
  18. package/bin/adapter/repositories/SqliteClaudeMessageResponseRepository.js.map +1 -0
  19. package/bin/domain/entities/ClaudeMessageResponse.js +3 -0
  20. package/bin/domain/entities/ClaudeMessageResponse.js.map +1 -0
  21. package/bin/domain/usecases/HandleScheduledEventUseCase.js +7 -1
  22. package/bin/domain/usecases/HandleScheduledEventUseCase.js.map +1 -1
  23. package/bin/domain/usecases/UpdateRateLimitCacheUseCase.js +18 -0
  24. package/bin/domain/usecases/UpdateRateLimitCacheUseCase.js.map +1 -0
  25. package/bin/domain/usecases/adapter-interfaces/ClaudeMessageResponseRepository.js +3 -0
  26. package/bin/domain/usecases/adapter-interfaces/ClaudeMessageResponseRepository.js.map +1 -0
  27. package/bin/domain/usecases/adapter-interfaces/RateLimitCacheRepository.js +3 -0
  28. package/bin/domain/usecases/adapter-interfaces/RateLimitCacheRepository.js.map +1 -0
  29. package/package.json +3 -1
  30. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.test.ts +6 -0
  31. package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +9 -0
  32. package/src/adapter/proxy/ClaudeMessageResponseParser.test.ts +211 -0
  33. package/src/adapter/proxy/ClaudeMessageResponseParser.ts +180 -0
  34. package/src/adapter/proxy/RateLimitCache.test.ts +60 -0
  35. package/src/adapter/proxy/RateLimitCache.ts +10 -23
  36. package/src/adapter/proxy/proxyEntry.ts +28 -3
  37. package/src/adapter/repositories/ProxyRateLimitCacheRepository.test.ts +101 -0
  38. package/src/adapter/repositories/ProxyRateLimitCacheRepository.ts +66 -0
  39. package/src/adapter/repositories/SqliteClaudeMessageResponseRepository.test.ts +313 -0
  40. package/src/adapter/repositories/SqliteClaudeMessageResponseRepository.ts +164 -0
  41. package/src/domain/entities/ClaudeMessageResponse.ts +31 -0
  42. package/src/domain/usecases/HandleScheduledEventUseCase.test.ts +63 -0
  43. package/src/domain/usecases/HandleScheduledEventUseCase.ts +7 -0
  44. package/src/domain/usecases/UpdateRateLimitCacheUseCase.test.ts +81 -0
  45. package/src/domain/usecases/UpdateRateLimitCacheUseCase.ts +16 -0
  46. package/src/domain/usecases/adapter-interfaces/ClaudeMessageResponseRepository.ts +5 -0
  47. package/src/domain/usecases/adapter-interfaces/RateLimitCacheRepository.ts +9 -0
  48. package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
  49. package/types/adapter/proxy/ClaudeMessageResponseParser.d.ts +4 -0
  50. package/types/adapter/proxy/ClaudeMessageResponseParser.d.ts.map +1 -0
  51. package/types/adapter/proxy/RateLimitCache.d.ts.map +1 -1
  52. package/types/adapter/proxy/proxyEntry.d.ts +2 -1
  53. package/types/adapter/proxy/proxyEntry.d.ts.map +1 -1
  54. package/types/adapter/repositories/ProxyRateLimitCacheRepository.d.ts +10 -0
  55. package/types/adapter/repositories/ProxyRateLimitCacheRepository.d.ts.map +1 -0
  56. package/types/adapter/repositories/SqliteClaudeMessageResponseRepository.d.ts +10 -0
  57. package/types/adapter/repositories/SqliteClaudeMessageResponseRepository.d.ts.map +1 -0
  58. package/types/domain/entities/ClaudeMessageResponse.d.ts +32 -0
  59. package/types/domain/entities/ClaudeMessageResponse.d.ts.map +1 -0
  60. package/types/domain/usecases/HandleScheduledEventUseCase.d.ts +3 -1
  61. package/types/domain/usecases/HandleScheduledEventUseCase.d.ts.map +1 -1
  62. package/types/domain/usecases/UpdateRateLimitCacheUseCase.d.ts +9 -0
  63. package/types/domain/usecases/UpdateRateLimitCacheUseCase.d.ts.map +1 -0
  64. package/types/domain/usecases/adapter-interfaces/ClaudeMessageResponseRepository.d.ts +5 -0
  65. package/types/domain/usecases/adapter-interfaces/ClaudeMessageResponseRepository.d.ts.map +1 -0
  66. package/types/domain/usecases/adapter-interfaces/RateLimitCacheRepository.d.ts +9 -0
  67. 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
@@ -35,7 +35,7 @@ jobs:
35
35
  - name: Create Pull Request
36
36
  id: create_pr
37
37
  if: steps.check_pr.outputs.existing_pr == ''
38
- uses: repo-sync/pull-request@v2
38
+ uses: repo-sync/pull-request@7e79a9f5dc3ad0ce53138f01df2fad14a04831c5
39
39
  with:
40
40
  github_token: ${{ steps.app-token.outputs.token }}
41
41
  destination_branch: 'main'
@@ -23,6 +23,10 @@ jobs:
23
23
  - name: Install dependencies
24
24
  run: npm ci
25
25
 
26
+ - name: Build native modules
27
+ working-directory: node_modules/better-sqlite3
28
+ run: node ../prebuild-install/bin.js || npm exec --yes -- node-gyp rebuild --release
29
+
26
30
  - name: Prepare
27
31
  run: npm run prepare
28
32
 
@@ -228,7 +228,7 @@ jobs:
228
228
  if: >-
229
229
  github.event_name == 'issues' &&
230
230
  github.event.action == 'opened'
231
- uses: pozil/auto-assign-issue@v3.0.0
231
+ uses: pozil/auto-assign-issue@70adb98ca8b3941524e9ecde48e89067c4f96736
232
232
  with:
233
233
  assignees: HiromiShikata
234
234
  repo-token: ${{ steps.app-token.outputs.token }}
@@ -236,7 +236,7 @@ jobs:
236
236
  if: >-
237
237
  github.event_name == 'pull_request' &&
238
238
  github.event.action == 'opened'
239
- uses: pozil/auto-assign-issue@v3.0.0
239
+ uses: pozil/auto-assign-issue@70adb98ca8b3941524e9ecde48e89067c4f96736
240
240
  with:
241
241
  assignees: HiromiShikata
242
242
  repo-token: ${{ steps.app-token.outputs.token }}
@@ -254,7 +254,7 @@ jobs:
254
254
  app-id: ${{ secrets.HS_BOT_GH_AP_APP_ID }}
255
255
  private-key: ${{ secrets.HS_BOT_GH_AP_PRIVATE_KEY }}
256
256
  owner: HiromiShikata
257
- - uses: nearform-actions/github-action-check-linked-issues@v1
257
+ - uses: nearform-actions/github-action-check-linked-issues@7140e2e01aa0c18b8ac61bddf5e89abde1ca760e
258
258
  id: check-linked-issues
259
259
  if: github.event.pull_request.user.login != 'dependabot[bot]'
260
260
  with:
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,22 @@
1
+ # [1.60.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.59.0...v1.60.0) (2026-05-25)
2
+
3
+
4
+ ### Features
5
+
6
+ * **core:** introduce ClaudeMessageResponse entity and SQLite persistence in proxy ([41b4452](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/41b44523f3d56d6207dfe3cfc03a56cb107de000)), closes [#651](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/651) [#651](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/651)
7
+
8
+ # [1.59.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.58.3...v1.59.0) (2026-05-24)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **core:** resolve eslint errors in UpdateRateLimitCacheUseCase and related tests ([fd90ad6](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/fd90ad620ff003b9b222829713db6ba2b46781f8))
14
+
15
+
16
+ ### Features
17
+
18
+ * **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)
19
+
1
20
  ## [1.58.3](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.58.2...v1.58.3) (2026-05-24)
2
21
 
3
22
 
@@ -69,6 +69,8 @@ const UpdateIssueStatusByLabelUseCase_1 = require("../../../domain/usecases/Upda
69
69
  const StartPreparationUseCase_1 = require("../../../domain/usecases/StartPreparationUseCase");
70
70
  const NodeLocalCommandRunner_1 = require("../../repositories/NodeLocalCommandRunner");
71
71
  const ProxyClaudeTokenUsageRepository_1 = require("../../repositories/ProxyClaudeTokenUsageRepository");
72
+ const ProxyRateLimitCacheRepository_1 = require("../../repositories/ProxyRateLimitCacheRepository");
73
+ const UpdateRateLimitCacheUseCase_1 = require("../../../domain/usecases/UpdateRateLimitCacheUseCase");
72
74
  const RevertOrphanedPreparationUseCase_1 = require("../../../domain/usecases/RevertOrphanedPreparationUseCase");
73
75
  const RevertNotReadyAwaitingQualityCheckUseCase_1 = require("../../../domain/usecases/RevertNotReadyAwaitingQualityCheckUseCase");
74
76
  const GitHubIssueCommentRepository_1 = require("../../repositories/GitHubIssueCommentRepository");
@@ -409,10 +411,14 @@ class HandleScheduledEventUseCaseHandler {
409
411
  const nodeLocalCommandRunner = new NodeLocalCommandRunner_1.NodeLocalCommandRunner();
410
412
  const claudeTokenUsageRepository = new ProxyClaudeTokenUsageRepository_1.ProxyClaudeTokenUsageRepository(mergedInput.claudeCodeOauthTokenListJsonPath ?? null);
411
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;
412
418
  const issueCommentRepository = new GitHubIssueCommentRepository_1.GitHubIssueCommentRepository(input.credentials.bot.github.token);
413
419
  const revertOrphanedPreparationUseCase = new RevertOrphanedPreparationUseCase_1.RevertOrphanedPreparationUseCase(projectRepository, issueRepository, issueCommentRepository, nodeLocalCommandRunner);
414
420
  const revertNotReadyAwaitingQualityCheckUseCase = new RevertNotReadyAwaitingQualityCheckUseCase_1.RevertNotReadyAwaitingQualityCheckUseCase(projectRepository, issueRepository, issueCommentRepository);
415
- 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);
416
422
  const result = await handleScheduledEventUseCase.run(mergedInput);
417
423
  if (result) {
418
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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"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseClaudeMessageResponse = void 0;
4
+ const SqliteClaudeMessageResponseRepository_1 = require("../repositories/SqliteClaudeMessageResponseRepository");
5
+ const pickHeader = (headers, key) => {
6
+ const value = headers[key];
7
+ if (Array.isArray(value))
8
+ return value[0] ?? null;
9
+ return value ?? null;
10
+ };
11
+ const parseNullableFloat = (value) => {
12
+ if (value === null)
13
+ return null;
14
+ const parsed = parseFloat(value);
15
+ return Number.isFinite(parsed) ? parsed : null;
16
+ };
17
+ const parseNullableInt = (value) => {
18
+ if (value === null || value === undefined)
19
+ return null;
20
+ const parsed = typeof value === 'number' ? value : parseInt(String(value), 10);
21
+ return Number.isFinite(parsed) ? parsed : null;
22
+ };
23
+ const isRecord = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
24
+ const extractUsage = (body) => {
25
+ const usage = body['usage'];
26
+ if (!isRecord(usage)) {
27
+ return {
28
+ inputTokens: null,
29
+ outputTokens: null,
30
+ cacheCreationInputTokens: null,
31
+ cacheReadInputTokens: null,
32
+ ephemeral5mInputTokens: null,
33
+ ephemeral1hInputTokens: null,
34
+ };
35
+ }
36
+ return {
37
+ inputTokens: parseNullableInt(usage['input_tokens']),
38
+ outputTokens: parseNullableInt(usage['output_tokens']),
39
+ cacheCreationInputTokens: parseNullableInt(usage['cache_creation_input_tokens']),
40
+ cacheReadInputTokens: parseNullableInt(usage['cache_read_input_tokens']),
41
+ ephemeral5mInputTokens: parseNullableInt(usage['ephemeral_5m_input_tokens']),
42
+ ephemeral1hInputTokens: parseNullableInt(usage['ephemeral_1h_input_tokens']),
43
+ };
44
+ };
45
+ const extractRole = (body) => {
46
+ const role = body['role'];
47
+ return typeof role === 'string' ? role : null;
48
+ };
49
+ const extractFirstContentRole = (body) => {
50
+ const content = body['content'];
51
+ if (!Array.isArray(content))
52
+ return null;
53
+ const first = content[0];
54
+ if (!isRecord(first))
55
+ return null;
56
+ const role = first['role'];
57
+ return typeof role === 'string' ? role : null;
58
+ };
59
+ const parseClaudeMessageResponse = (tokenName, httpStatus, headers, body) => {
60
+ let parsedBody = {};
61
+ try {
62
+ const parsed = JSON.parse(body);
63
+ if (isRecord(parsed)) {
64
+ parsedBody = parsed;
65
+ }
66
+ }
67
+ catch {
68
+ parsedBody = {};
69
+ }
70
+ const errorObj = parsedBody['error'];
71
+ const errorRecord = isRecord(errorObj) ? errorObj : null;
72
+ const errorType = errorRecord !== null && typeof errorRecord['type'] === 'string'
73
+ ? errorRecord['type']
74
+ : null;
75
+ const errorMessage = errorRecord !== null && typeof errorRecord['message'] === 'string'
76
+ ? errorRecord['message']
77
+ : null;
78
+ const externalClaudeMessageId = typeof parsedBody['id'] === 'string' ? parsedBody['id'] : null;
79
+ const model = typeof parsedBody['model'] === 'string' ? parsedBody['model'] : null;
80
+ const role = extractRole(parsedBody) ?? extractFirstContentRole(parsedBody);
81
+ const stopReason = typeof parsedBody['stop_reason'] === 'string'
82
+ ? parsedBody['stop_reason']
83
+ : null;
84
+ const stopSequence = typeof parsedBody['stop_sequence'] === 'string'
85
+ ? parsedBody['stop_sequence']
86
+ : null;
87
+ const usage = extractUsage(parsedBody);
88
+ const retryAfterRaw = pickHeader(headers, 'retry-after');
89
+ const retryAfter = parseNullableFloat(retryAfterRaw);
90
+ return {
91
+ id: (0, SqliteClaudeMessageResponseRepository_1.generateUlid)(),
92
+ observedAt: new Date(),
93
+ tokenName,
94
+ externalClaudeMessageId,
95
+ externalClaudeRequestId: pickHeader(headers, 'x-request-id'),
96
+ httpStatus,
97
+ model,
98
+ role,
99
+ stopReason,
100
+ stopSequence,
101
+ inputTokens: usage.inputTokens,
102
+ outputTokens: usage.outputTokens,
103
+ cacheCreationInputTokens: usage.cacheCreationInputTokens,
104
+ cacheReadInputTokens: usage.cacheReadInputTokens,
105
+ ephemeral5mInputTokens: usage.ephemeral5mInputTokens,
106
+ ephemeral1hInputTokens: usage.ephemeral1hInputTokens,
107
+ serviceTier: pickHeader(headers, 'anthropic-service-tier'),
108
+ inferenceGeo: pickHeader(headers, 'anthropic-inference-geo'),
109
+ errorType,
110
+ errorMessage,
111
+ anthropicRatelimitUnifiedStatus: pickHeader(headers, 'anthropic-ratelimit-unified-status'),
112
+ anthropicRatelimitUnified5hStatus: pickHeader(headers, 'anthropic-ratelimit-unified-5h-status'),
113
+ anthropicRatelimitUnified5hUtilization: parseNullableFloat(pickHeader(headers, 'anthropic-ratelimit-unified-5h-utilization')),
114
+ anthropicRatelimitUnified5hReset: parseNullableFloat(pickHeader(headers, 'anthropic-ratelimit-unified-5h-reset')),
115
+ anthropicRatelimitUnified7dStatus: pickHeader(headers, 'anthropic-ratelimit-unified-7d-status'),
116
+ anthropicRatelimitUnified7dUtilization: parseNullableFloat(pickHeader(headers, 'anthropic-ratelimit-unified-7d-utilization')),
117
+ anthropicRatelimitUnified7dReset: parseNullableFloat(pickHeader(headers, 'anthropic-ratelimit-unified-7d-reset')),
118
+ retryAfter,
119
+ anthropicOrganizationId: pickHeader(headers, 'anthropic-organization-id'),
120
+ };
121
+ };
122
+ exports.parseClaudeMessageResponse = parseClaudeMessageResponse;
123
+ //# sourceMappingURL=ClaudeMessageResponseParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeMessageResponseParser.js","sourceRoot":"","sources":["../../../src/adapter/proxy/ClaudeMessageResponseParser.ts"],"names":[],"mappings":"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"}
@@ -91,17 +91,18 @@ const writeRateLimit = (token, headers) => {
91
91
  };
92
92
  const filePath = path.join(dir, `${(0, exports.hashToken)(token)}.json`);
93
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
+ }
94
103
  const payload = {
95
104
  ts: Date.now() / 1000,
96
- headers: {
97
- 'anthropic-ratelimit-unified-status': pick('anthropic-ratelimit-unified-status'),
98
- 'anthropic-ratelimit-unified-5h-status': pick('anthropic-ratelimit-unified-5h-status'),
99
- 'anthropic-ratelimit-unified-5h-reset': pick('anthropic-ratelimit-unified-5h-reset'),
100
- 'anthropic-ratelimit-unified-5h-utilization': pick('anthropic-ratelimit-unified-5h-utilization'),
101
- 'anthropic-ratelimit-unified-7d-status': pick('anthropic-ratelimit-unified-7d-status'),
102
- 'anthropic-ratelimit-unified-7d-reset': pick('anthropic-ratelimit-unified-7d-reset'),
103
- 'anthropic-ratelimit-unified-7d-utilization': pick('anthropic-ratelimit-unified-7d-utilization'),
104
- },
105
+ headers: rateLimitHeaders,
105
106
  modelWeeklyLimits: readModelWeeklyLimits(existing),
106
107
  };
107
108
  fs.writeFileSync(filePath, JSON.stringify(payload));
@@ -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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"}
@@ -37,6 +37,8 @@ exports.extractToken = exports.startProxy = void 0;
37
37
  const http = __importStar(require("http"));
38
38
  const https = __importStar(require("https"));
39
39
  const RateLimitCache_1 = require("./RateLimitCache");
40
+ const ClaudeMessageResponseParser_1 = require("./ClaudeMessageResponseParser");
41
+ const SqliteClaudeMessageResponseRepository_1 = require("../repositories/SqliteClaudeMessageResponseRepository");
40
42
  const UPSTREAM_HOST = 'api.anthropic.com';
41
43
  const MAX_INSPECTED_BODY_BYTES = 1024 * 1024;
42
44
  const BEARER_PREFIX = 'bearer ';
@@ -52,7 +54,7 @@ const extractToken = (authorization) => {
52
54
  return token.length > 0 ? token : null;
53
55
  };
54
56
  exports.extractToken = extractToken;
55
- const startProxy = (port) => {
57
+ const startProxy = (port, claudeMessageResponseRepository = null) => {
56
58
  const server = http.createServer((clientRequest, clientResponse) => {
57
59
  const token = extractToken(clientRequest.headers['authorization']);
58
60
  const upstreamHeaders = {
@@ -82,14 +84,23 @@ const startProxy = (port) => {
82
84
  inspectedBytes += chunk.length;
83
85
  });
84
86
  upstreamResponse.on('end', () => {
87
+ const body = Buffer.concat(inspectedChunks).toString('utf8');
85
88
  try {
86
- const body = Buffer.concat(inspectedChunks).toString('utf8');
87
89
  const limits = (0, RateLimitCache_1.parseModelRateLimitsFromBody)(body);
88
90
  (0, RateLimitCache_1.writeModelRateLimit)(token, limits);
89
91
  }
90
92
  catch (error) {
91
93
  console.error('Failed to write model rate limit cache:', error);
92
94
  }
95
+ if (claudeMessageResponseRepository !== null) {
96
+ try {
97
+ const response = (0, ClaudeMessageResponseParser_1.parseClaudeMessageResponse)((0, RateLimitCache_1.hashToken)(token), upstreamResponse.statusCode ?? 0, upstreamResponse.headers, body);
98
+ claudeMessageResponseRepository.append(response);
99
+ }
100
+ catch (error) {
101
+ console.error('Failed to record Claude message response:', error);
102
+ }
103
+ }
93
104
  });
94
105
  }
95
106
  clientResponse.writeHead(upstreamResponse.statusCode ?? 502, upstreamResponse.headers);
@@ -110,6 +121,8 @@ const startProxy = (port) => {
110
121
  };
111
122
  exports.startProxy = startProxy;
112
123
  if (require.main === module) {
113
- startProxy(RateLimitCache_1.PROXY_PORT);
124
+ const dbPath = './db/claude_message_response.db';
125
+ const repository = new SqliteClaudeMessageResponseRepository_1.SqliteClaudeMessageResponseRepository(dbPath);
126
+ startProxy(RateLimitCache_1.PROXY_PORT, repository);
114
127
  }
115
128
  //# sourceMappingURL=proxyEntry.js.map
@@ -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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"}
@@ -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"}