github-issue-tower-defence-management 1.42.4 → 1.43.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.
- package/CHANGELOG.md +12 -0
- package/bin/adapter/entry-points/cli/index.js +2 -2
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/adapter/repositories/OauthAPIProxyClaudeRepository.js +27 -0
- package/bin/adapter/repositories/OauthAPIProxyClaudeRepository.js.map +1 -0
- package/bin/adapter/repositories/OauthProxyClaudeRepository.js +77 -0
- package/bin/adapter/repositories/OauthProxyClaudeRepository.js.map +1 -0
- package/package.json +1 -1
- package/src/adapter/entry-points/cli/index.ts +2 -2
- package/src/adapter/repositories/OauthAPIProxyClaudeRepository.test.ts +166 -0
- package/src/adapter/repositories/OauthAPIProxyClaudeRepository.ts +32 -0
- package/src/adapter/repositories/OauthProxyClaudeRepository.test.ts +231 -0
- package/src/adapter/repositories/OauthProxyClaudeRepository.ts +97 -0
- package/types/adapter/repositories/OauthAPIProxyClaudeRepository.d.ts +10 -0
- package/types/adapter/repositories/OauthAPIProxyClaudeRepository.d.ts.map +1 -0
- package/types/adapter/repositories/OauthProxyClaudeRepository.d.ts +9 -0
- package/types/adapter/repositories/OauthProxyClaudeRepository.d.ts.map +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# [1.43.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.42.4...v1.43.0) (2026-05-11)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **core:** skip NaN utilization from malformed proxy headers and add bin artifacts ([28cc81a](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/28cc81a5cedeb98a0ae054193806c8d414cecfa9))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **core:** add OauthProxyClaudeRepository and OauthAPIProxyClaudeRepository ([2f9262e](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/2f9262e601e3c2f173852ba53bcd2684a5a03c7d)), closes [#511](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/511)
|
|
12
|
+
|
|
1
13
|
## [1.42.4](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.42.3...v1.42.4) (2026-05-11)
|
|
2
14
|
|
|
3
15
|
|
|
@@ -53,7 +53,7 @@ const ApiV3CheerioRestIssueRepository_1 = require("../../repositories/issue/ApiV
|
|
|
53
53
|
const LocalStorageCacheRepository_1 = require("../../repositories/LocalStorageCacheRepository");
|
|
54
54
|
const CheerioProjectRepository_1 = require("../../repositories/CheerioProjectRepository");
|
|
55
55
|
const NodeLocalCommandRunner_1 = require("../../repositories/NodeLocalCommandRunner");
|
|
56
|
-
const
|
|
56
|
+
const OauthAPIProxyClaudeRepository_1 = require("../../repositories/OauthAPIProxyClaudeRepository");
|
|
57
57
|
const GitHubIssueCommentRepository_1 = require("../../repositories/GitHubIssueCommentRepository");
|
|
58
58
|
const FetchWebhookRepository_1 = require("../../repositories/FetchWebhookRepository");
|
|
59
59
|
const RevertOrphanedPreparationUseCase_1 = require("../../../domain/usecases/RevertOrphanedPreparationUseCase");
|
|
@@ -387,7 +387,7 @@ exports.program
|
|
|
387
387
|
const restIssueRepository = new RestIssueRepository_1.RestIssueRepository(...githubRepositoryParams);
|
|
388
388
|
const graphqlProjectItemRepository = new GraphqlProjectItemRepository_1.GraphqlProjectItemRepository(...githubRepositoryParams);
|
|
389
389
|
const issueRepository = new ApiV3CheerioRestIssueRepository_1.ApiV3CheerioRestIssueRepository(apiV3IssueRepository, restIssueRepository, graphqlProjectItemRepository, localStorageCacheRepository, ...githubRepositoryParams);
|
|
390
|
-
const claudeRepository = new
|
|
390
|
+
const claudeRepository = new OauthAPIProxyClaudeRepository_1.OauthAPIProxyClaudeRepository();
|
|
391
391
|
const localCommandRunner = new NodeLocalCommandRunner_1.NodeLocalCommandRunner();
|
|
392
392
|
const preparationProcessCheckCommand = config.preparationProcessCheckCommand;
|
|
393
393
|
if (preparationProcessCheckCommand) {
|
|
@@ -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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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OauthAPIProxyClaudeRepository = void 0;
|
|
4
|
+
const OauthProxyClaudeRepository_1 = require("./OauthProxyClaudeRepository");
|
|
5
|
+
const OauthAPIClaudeRepository_1 = require("./OauthAPIClaudeRepository");
|
|
6
|
+
class OauthAPIProxyClaudeRepository {
|
|
7
|
+
constructor(proxyRepository = new OauthProxyClaudeRepository_1.OauthProxyClaudeRepository(), apiRepository = new OauthAPIClaudeRepository_1.OauthAPIClaudeRepository()) {
|
|
8
|
+
this.proxyRepository = proxyRepository;
|
|
9
|
+
this.apiRepository = apiRepository;
|
|
10
|
+
}
|
|
11
|
+
async getUsage() {
|
|
12
|
+
const proxyUsages = await this.proxyRepository.getUsage();
|
|
13
|
+
if (proxyUsages.length > 0) {
|
|
14
|
+
return proxyUsages;
|
|
15
|
+
}
|
|
16
|
+
return this.apiRepository.getUsage();
|
|
17
|
+
}
|
|
18
|
+
async isClaudeAvailable(threshold) {
|
|
19
|
+
const proxyUsages = await this.proxyRepository.getUsage();
|
|
20
|
+
if (proxyUsages.length > 0) {
|
|
21
|
+
return proxyUsages.every((usage) => usage.utilizationPercentage < threshold);
|
|
22
|
+
}
|
|
23
|
+
return this.apiRepository.isClaudeAvailable(threshold);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.OauthAPIProxyClaudeRepository = OauthAPIProxyClaudeRepository;
|
|
27
|
+
//# sourceMappingURL=OauthAPIProxyClaudeRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OauthAPIProxyClaudeRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/OauthAPIProxyClaudeRepository.ts"],"names":[],"mappings":";;;AAEA,6EAA0E;AAC1E,yEAAsE;AAEtE,MAAa,6BAA6B;IACxC,YACmB,kBAGb,IAAI,uDAA0B,EAAE,EACnB,gBAAkC,IAAI,mDAAwB,EAAE;QAJhE,oBAAe,GAAf,eAAe,CAGI;QACnB,kBAAa,GAAb,aAAa,CAAmD;IAChF,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QAC1D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QAC1D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,WAAW,CAAC,KAAK,CACtB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,qBAAqB,GAAG,SAAS,CACnD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;AA1BD,sEA0BC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.OauthProxyClaudeRepository = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const isProxyFile = (value) => {
|
|
9
|
+
if (typeof value !== 'object' || value === null)
|
|
10
|
+
return false;
|
|
11
|
+
return true;
|
|
12
|
+
};
|
|
13
|
+
class OauthProxyClaudeRepository {
|
|
14
|
+
constructor(filePath = process.env['CLAUDE_RATELIMIT_FILE'] ??
|
|
15
|
+
'/tmp/claude-ratelimit.json') {
|
|
16
|
+
this.filePath = filePath;
|
|
17
|
+
}
|
|
18
|
+
async getUsage() {
|
|
19
|
+
if (!fs_1.default.existsSync(this.filePath)) {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
let parsed;
|
|
23
|
+
try {
|
|
24
|
+
const content = fs_1.default.readFileSync(this.filePath, 'utf-8');
|
|
25
|
+
parsed = JSON.parse(content);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
if (!isProxyFile(parsed)) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
const headers = parsed.headers;
|
|
34
|
+
if (!headers) {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
const usages = [];
|
|
38
|
+
const fiveHourUtilization = headers['anthropic-ratelimit-unified-5h-utilization'];
|
|
39
|
+
const fiveHourReset = headers['anthropic-ratelimit-unified-5h-reset'];
|
|
40
|
+
if (fiveHourUtilization !== undefined) {
|
|
41
|
+
const utilizationPercentage = parseFloat(fiveHourUtilization) * 100;
|
|
42
|
+
if (!isNaN(utilizationPercentage)) {
|
|
43
|
+
usages.push({
|
|
44
|
+
hour: 5,
|
|
45
|
+
utilizationPercentage,
|
|
46
|
+
resetsAt: fiveHourReset
|
|
47
|
+
? new Date(parseInt(fiveHourReset, 10) * 1000)
|
|
48
|
+
: new Date(),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const sevenDayUtilization = headers['anthropic-ratelimit-unified-7d-utilization'];
|
|
53
|
+
const sevenDayReset = headers['anthropic-ratelimit-unified-7d-reset'];
|
|
54
|
+
if (sevenDayUtilization !== undefined) {
|
|
55
|
+
const utilizationPercentage = parseFloat(sevenDayUtilization) * 100;
|
|
56
|
+
if (!isNaN(utilizationPercentage)) {
|
|
57
|
+
usages.push({
|
|
58
|
+
hour: 168,
|
|
59
|
+
utilizationPercentage,
|
|
60
|
+
resetsAt: sevenDayReset
|
|
61
|
+
? new Date(parseInt(sevenDayReset, 10) * 1000)
|
|
62
|
+
: new Date(),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return usages;
|
|
67
|
+
}
|
|
68
|
+
async isClaudeAvailable(threshold) {
|
|
69
|
+
const usages = await this.getUsage();
|
|
70
|
+
if (usages.length === 0) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
return usages.every((usage) => usage.utilizationPercentage < threshold);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.OauthProxyClaudeRepository = OauthProxyClaudeRepository;
|
|
77
|
+
//# sourceMappingURL=OauthProxyClaudeRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OauthProxyClaudeRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/OauthProxyClaudeRepository.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@ import { LocalStorageCacheRepository } from '../../repositories/LocalStorageCach
|
|
|
15
15
|
import { CheerioProjectRepository } from '../../repositories/CheerioProjectRepository';
|
|
16
16
|
import { BaseGitHubRepository } from '../../repositories/BaseGitHubRepository';
|
|
17
17
|
import { NodeLocalCommandRunner } from '../../repositories/NodeLocalCommandRunner';
|
|
18
|
-
import {
|
|
18
|
+
import { OauthAPIProxyClaudeRepository } from '../../repositories/OauthAPIProxyClaudeRepository';
|
|
19
19
|
import { GitHubIssueCommentRepository } from '../../repositories/GitHubIssueCommentRepository';
|
|
20
20
|
import { FetchWebhookRepository } from '../../repositories/FetchWebhookRepository';
|
|
21
21
|
import { RevertOrphanedPreparationUseCase } from '../../../domain/usecases/RevertOrphanedPreparationUseCase';
|
|
@@ -575,7 +575,7 @@ program
|
|
|
575
575
|
localStorageCacheRepository,
|
|
576
576
|
...githubRepositoryParams,
|
|
577
577
|
);
|
|
578
|
-
const claudeRepository = new
|
|
578
|
+
const claudeRepository = new OauthAPIProxyClaudeRepository();
|
|
579
579
|
const localCommandRunner = new NodeLocalCommandRunner();
|
|
580
580
|
|
|
581
581
|
const preparationProcessCheckCommand =
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { OauthAPIProxyClaudeRepository } from './OauthAPIProxyClaudeRepository';
|
|
2
|
+
import { ClaudeRepository } from '../../domain/usecases/adapter-interfaces/ClaudeRepository';
|
|
3
|
+
import { ClaudeWindowUsage } from '../../domain/entities/ClaudeWindowUsage';
|
|
4
|
+
|
|
5
|
+
type Mocked<T> = jest.Mocked<T> & jest.MockedObject<T>;
|
|
6
|
+
|
|
7
|
+
describe('OauthAPIProxyClaudeRepository', () => {
|
|
8
|
+
let mockProxyRepository: Mocked<Pick<ClaudeRepository, 'getUsage'>>;
|
|
9
|
+
let mockApiRepository: Mocked<ClaudeRepository>;
|
|
10
|
+
let repository: OauthAPIProxyClaudeRepository;
|
|
11
|
+
|
|
12
|
+
const fiveHourUsage: ClaudeWindowUsage = {
|
|
13
|
+
hour: 5,
|
|
14
|
+
utilizationPercentage: 23,
|
|
15
|
+
resetsAt: new Date(1772575200 * 1000),
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const sevenDayUsage: ClaudeWindowUsage = {
|
|
19
|
+
hour: 168,
|
|
20
|
+
utilizationPercentage: 34,
|
|
21
|
+
resetsAt: new Date(1772769600 * 1000),
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const apiUsage: ClaudeWindowUsage = {
|
|
25
|
+
hour: 5,
|
|
26
|
+
utilizationPercentage: 50,
|
|
27
|
+
resetsAt: new Date(),
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
beforeEach(() => {
|
|
31
|
+
mockProxyRepository = {
|
|
32
|
+
getUsage: jest.fn(),
|
|
33
|
+
};
|
|
34
|
+
mockApiRepository = {
|
|
35
|
+
getUsage: jest.fn(),
|
|
36
|
+
isClaudeAvailable: jest.fn(),
|
|
37
|
+
};
|
|
38
|
+
repository = new OauthAPIProxyClaudeRepository(
|
|
39
|
+
mockProxyRepository,
|
|
40
|
+
mockApiRepository,
|
|
41
|
+
);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe('getUsage', () => {
|
|
45
|
+
interface TestCase {
|
|
46
|
+
name: string;
|
|
47
|
+
proxyUsages: ClaudeWindowUsage[];
|
|
48
|
+
apiUsages: ClaudeWindowUsage[];
|
|
49
|
+
expected: ClaudeWindowUsage[];
|
|
50
|
+
expectApiCalled: boolean;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const testCases: TestCase[] = [
|
|
54
|
+
{
|
|
55
|
+
name: 'returns proxy usages when proxy has data',
|
|
56
|
+
proxyUsages: [fiveHourUsage, sevenDayUsage],
|
|
57
|
+
apiUsages: [apiUsage],
|
|
58
|
+
expected: [fiveHourUsage, sevenDayUsage],
|
|
59
|
+
expectApiCalled: false,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'falls back to API usages when proxy has no data',
|
|
63
|
+
proxyUsages: [],
|
|
64
|
+
apiUsages: [apiUsage],
|
|
65
|
+
expected: [apiUsage],
|
|
66
|
+
expectApiCalled: true,
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
test.each(testCases)(
|
|
71
|
+
'$name',
|
|
72
|
+
async ({ proxyUsages, apiUsages, expected, expectApiCalled }) => {
|
|
73
|
+
mockProxyRepository.getUsage.mockResolvedValue(proxyUsages);
|
|
74
|
+
mockApiRepository.getUsage.mockResolvedValue(apiUsages);
|
|
75
|
+
|
|
76
|
+
const result = await repository.getUsage();
|
|
77
|
+
|
|
78
|
+
expect(result).toEqual(expected);
|
|
79
|
+
if (expectApiCalled) {
|
|
80
|
+
expect(mockApiRepository.getUsage.mock.calls).not.toHaveLength(0);
|
|
81
|
+
} else {
|
|
82
|
+
expect(mockApiRepository.getUsage.mock.calls).toHaveLength(0);
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
);
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
describe('isClaudeAvailable', () => {
|
|
89
|
+
interface TestCase {
|
|
90
|
+
name: string;
|
|
91
|
+
proxyUsages: ClaudeWindowUsage[];
|
|
92
|
+
apiAvailable: boolean;
|
|
93
|
+
threshold: number;
|
|
94
|
+
expected: boolean;
|
|
95
|
+
expectApiCalled: boolean;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const testCases: TestCase[] = [
|
|
99
|
+
{
|
|
100
|
+
name: 'returns true when proxy has data and all usages under threshold',
|
|
101
|
+
proxyUsages: [fiveHourUsage, sevenDayUsage],
|
|
102
|
+
apiAvailable: false,
|
|
103
|
+
threshold: 90,
|
|
104
|
+
expected: true,
|
|
105
|
+
expectApiCalled: false,
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'returns false when proxy has data and 5h usage above threshold',
|
|
109
|
+
proxyUsages: [
|
|
110
|
+
{
|
|
111
|
+
hour: 5,
|
|
112
|
+
utilizationPercentage: 95,
|
|
113
|
+
resetsAt: new Date(),
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
apiAvailable: true,
|
|
117
|
+
threshold: 90,
|
|
118
|
+
expected: false,
|
|
119
|
+
expectApiCalled: false,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: 'delegates to API when proxy has no data',
|
|
123
|
+
proxyUsages: [],
|
|
124
|
+
apiAvailable: true,
|
|
125
|
+
threshold: 90,
|
|
126
|
+
expected: true,
|
|
127
|
+
expectApiCalled: true,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'returns API result when proxy has no data and API returns false',
|
|
131
|
+
proxyUsages: [],
|
|
132
|
+
apiAvailable: false,
|
|
133
|
+
threshold: 90,
|
|
134
|
+
expected: false,
|
|
135
|
+
expectApiCalled: true,
|
|
136
|
+
},
|
|
137
|
+
];
|
|
138
|
+
|
|
139
|
+
test.each(testCases)(
|
|
140
|
+
'$name',
|
|
141
|
+
async ({
|
|
142
|
+
proxyUsages,
|
|
143
|
+
apiAvailable,
|
|
144
|
+
threshold,
|
|
145
|
+
expected,
|
|
146
|
+
expectApiCalled,
|
|
147
|
+
}) => {
|
|
148
|
+
mockProxyRepository.getUsage.mockResolvedValue(proxyUsages);
|
|
149
|
+
mockApiRepository.isClaudeAvailable.mockResolvedValue(apiAvailable);
|
|
150
|
+
|
|
151
|
+
const result = await repository.isClaudeAvailable(threshold);
|
|
152
|
+
|
|
153
|
+
expect(result).toBe(expected);
|
|
154
|
+
if (expectApiCalled) {
|
|
155
|
+
expect(mockApiRepository.isClaudeAvailable.mock.calls).toEqual([
|
|
156
|
+
[threshold],
|
|
157
|
+
]);
|
|
158
|
+
} else {
|
|
159
|
+
expect(mockApiRepository.isClaudeAvailable.mock.calls).toHaveLength(
|
|
160
|
+
0,
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ClaudeRepository } from '../../domain/usecases/adapter-interfaces/ClaudeRepository';
|
|
2
|
+
import { ClaudeWindowUsage } from '../../domain/entities/ClaudeWindowUsage';
|
|
3
|
+
import { OauthProxyClaudeRepository } from './OauthProxyClaudeRepository';
|
|
4
|
+
import { OauthAPIClaudeRepository } from './OauthAPIClaudeRepository';
|
|
5
|
+
|
|
6
|
+
export class OauthAPIProxyClaudeRepository implements ClaudeRepository {
|
|
7
|
+
constructor(
|
|
8
|
+
private readonly proxyRepository: Pick<
|
|
9
|
+
ClaudeRepository,
|
|
10
|
+
'getUsage'
|
|
11
|
+
> = new OauthProxyClaudeRepository(),
|
|
12
|
+
private readonly apiRepository: ClaudeRepository = new OauthAPIClaudeRepository(),
|
|
13
|
+
) {}
|
|
14
|
+
|
|
15
|
+
async getUsage(): Promise<ClaudeWindowUsage[]> {
|
|
16
|
+
const proxyUsages = await this.proxyRepository.getUsage();
|
|
17
|
+
if (proxyUsages.length > 0) {
|
|
18
|
+
return proxyUsages;
|
|
19
|
+
}
|
|
20
|
+
return this.apiRepository.getUsage();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async isClaudeAvailable(threshold: number): Promise<boolean> {
|
|
24
|
+
const proxyUsages = await this.proxyRepository.getUsage();
|
|
25
|
+
if (proxyUsages.length > 0) {
|
|
26
|
+
return proxyUsages.every(
|
|
27
|
+
(usage) => usage.utilizationPercentage < threshold,
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
return this.apiRepository.isClaudeAvailable(threshold);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
jest.mock('fs');
|
|
2
|
+
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import { OauthProxyClaudeRepository } from './OauthProxyClaudeRepository';
|
|
5
|
+
import { ClaudeWindowUsage } from '../../domain/entities/ClaudeWindowUsage';
|
|
6
|
+
|
|
7
|
+
describe('OauthProxyClaudeRepository', () => {
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
jest.resetAllMocks();
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
describe('getUsage', () => {
|
|
13
|
+
interface TestCase {
|
|
14
|
+
name: string;
|
|
15
|
+
fileExists: boolean;
|
|
16
|
+
fileContent: string | null;
|
|
17
|
+
expected: ClaudeWindowUsage[];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const testCases: TestCase[] = [
|
|
21
|
+
{
|
|
22
|
+
name: 'returns empty array when file does not exist',
|
|
23
|
+
fileExists: false,
|
|
24
|
+
fileContent: null,
|
|
25
|
+
expected: [],
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'returns empty array when file content is invalid JSON',
|
|
29
|
+
fileExists: true,
|
|
30
|
+
fileContent: 'invalid-json',
|
|
31
|
+
expected: [],
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'returns empty array when file has no headers property',
|
|
35
|
+
fileExists: true,
|
|
36
|
+
fileContent: JSON.stringify({ ts: 1234567890 }),
|
|
37
|
+
expected: [],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'returns 5h usage from proxy file',
|
|
41
|
+
fileExists: true,
|
|
42
|
+
fileContent: JSON.stringify({
|
|
43
|
+
headers: {
|
|
44
|
+
'anthropic-ratelimit-unified-5h-utilization': '0.23',
|
|
45
|
+
'anthropic-ratelimit-unified-5h-reset': '1772575200',
|
|
46
|
+
},
|
|
47
|
+
ts: 1234567890,
|
|
48
|
+
}),
|
|
49
|
+
expected: [
|
|
50
|
+
{
|
|
51
|
+
hour: 5,
|
|
52
|
+
utilizationPercentage: 23,
|
|
53
|
+
resetsAt: new Date(1772575200 * 1000),
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'returns 7d usage from proxy file',
|
|
59
|
+
fileExists: true,
|
|
60
|
+
fileContent: JSON.stringify({
|
|
61
|
+
headers: {
|
|
62
|
+
'anthropic-ratelimit-unified-7d-utilization': '0.34',
|
|
63
|
+
'anthropic-ratelimit-unified-7d-reset': '1772769600',
|
|
64
|
+
},
|
|
65
|
+
ts: 1234567890,
|
|
66
|
+
}),
|
|
67
|
+
expected: [
|
|
68
|
+
{
|
|
69
|
+
hour: 168,
|
|
70
|
+
utilizationPercentage: 34,
|
|
71
|
+
resetsAt: new Date(1772769600 * 1000),
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: 'returns both 5h and 7d usage from proxy file',
|
|
77
|
+
fileExists: true,
|
|
78
|
+
fileContent: JSON.stringify({
|
|
79
|
+
headers: {
|
|
80
|
+
'anthropic-ratelimit-unified-5h-utilization': '0.23',
|
|
81
|
+
'anthropic-ratelimit-unified-5h-reset': '1772575200',
|
|
82
|
+
'anthropic-ratelimit-unified-7d-utilization': '0.34',
|
|
83
|
+
'anthropic-ratelimit-unified-7d-reset': '1772769600',
|
|
84
|
+
},
|
|
85
|
+
ts: 1234567890,
|
|
86
|
+
}),
|
|
87
|
+
expected: [
|
|
88
|
+
{
|
|
89
|
+
hour: 5,
|
|
90
|
+
utilizationPercentage: 23,
|
|
91
|
+
resetsAt: new Date(1772575200 * 1000),
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
hour: 168,
|
|
95
|
+
utilizationPercentage: 34,
|
|
96
|
+
resetsAt: new Date(1772769600 * 1000),
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'skips utilization entries with non-numeric header values',
|
|
102
|
+
fileExists: true,
|
|
103
|
+
fileContent: JSON.stringify({
|
|
104
|
+
headers: {
|
|
105
|
+
'anthropic-ratelimit-unified-5h-utilization': 'unknown',
|
|
106
|
+
'anthropic-ratelimit-unified-7d-utilization': '0.34',
|
|
107
|
+
'anthropic-ratelimit-unified-7d-reset': '1772769600',
|
|
108
|
+
},
|
|
109
|
+
ts: 1234567890,
|
|
110
|
+
}),
|
|
111
|
+
expected: [
|
|
112
|
+
{
|
|
113
|
+
hour: 168,
|
|
114
|
+
utilizationPercentage: 34,
|
|
115
|
+
resetsAt: new Date(1772769600 * 1000),
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
},
|
|
119
|
+
];
|
|
120
|
+
|
|
121
|
+
test.each(testCases)(
|
|
122
|
+
'$name',
|
|
123
|
+
async ({ fileExists, fileContent, expected }) => {
|
|
124
|
+
jest.mocked(fs.existsSync).mockReturnValue(fileExists);
|
|
125
|
+
if (fileContent !== null) {
|
|
126
|
+
jest.mocked(fs.readFileSync).mockReturnValue(fileContent);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const repository = new OauthProxyClaudeRepository(
|
|
130
|
+
'/tmp/test-claude-ratelimit.json',
|
|
131
|
+
);
|
|
132
|
+
const result = await repository.getUsage();
|
|
133
|
+
|
|
134
|
+
expect(result).toEqual(expected);
|
|
135
|
+
},
|
|
136
|
+
);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
describe('isClaudeAvailable', () => {
|
|
140
|
+
interface TestCase {
|
|
141
|
+
name: string;
|
|
142
|
+
fileExists: boolean;
|
|
143
|
+
fileContent: string | null;
|
|
144
|
+
threshold: number;
|
|
145
|
+
expected: boolean;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const testCases: TestCase[] = [
|
|
149
|
+
{
|
|
150
|
+
name: 'returns false when no proxy data available',
|
|
151
|
+
fileExists: false,
|
|
152
|
+
fileContent: null,
|
|
153
|
+
threshold: 90,
|
|
154
|
+
expected: false,
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: 'returns true when all usages are under threshold',
|
|
158
|
+
fileExists: true,
|
|
159
|
+
fileContent: JSON.stringify({
|
|
160
|
+
headers: {
|
|
161
|
+
'anthropic-ratelimit-unified-5h-utilization': '0.50',
|
|
162
|
+
'anthropic-ratelimit-unified-5h-reset': '1772575200',
|
|
163
|
+
'anthropic-ratelimit-unified-7d-utilization': '0.30',
|
|
164
|
+
'anthropic-ratelimit-unified-7d-reset': '1772769600',
|
|
165
|
+
},
|
|
166
|
+
ts: 1234567890,
|
|
167
|
+
}),
|
|
168
|
+
threshold: 90,
|
|
169
|
+
expected: true,
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
name: 'returns false when 5h usage is above threshold',
|
|
173
|
+
fileExists: true,
|
|
174
|
+
fileContent: JSON.stringify({
|
|
175
|
+
headers: {
|
|
176
|
+
'anthropic-ratelimit-unified-5h-utilization': '0.95',
|
|
177
|
+
'anthropic-ratelimit-unified-5h-reset': '1772575200',
|
|
178
|
+
},
|
|
179
|
+
ts: 1234567890,
|
|
180
|
+
}),
|
|
181
|
+
threshold: 90,
|
|
182
|
+
expected: false,
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
name: 'returns false when 7d usage is above threshold',
|
|
186
|
+
fileExists: true,
|
|
187
|
+
fileContent: JSON.stringify({
|
|
188
|
+
headers: {
|
|
189
|
+
'anthropic-ratelimit-unified-5h-utilization': '0.50',
|
|
190
|
+
'anthropic-ratelimit-unified-5h-reset': '1772575200',
|
|
191
|
+
'anthropic-ratelimit-unified-7d-utilization': '0.95',
|
|
192
|
+
'anthropic-ratelimit-unified-7d-reset': '1772769600',
|
|
193
|
+
},
|
|
194
|
+
ts: 1234567890,
|
|
195
|
+
}),
|
|
196
|
+
threshold: 90,
|
|
197
|
+
expected: false,
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
name: 'returns false when usage equals threshold',
|
|
201
|
+
fileExists: true,
|
|
202
|
+
fileContent: JSON.stringify({
|
|
203
|
+
headers: {
|
|
204
|
+
'anthropic-ratelimit-unified-5h-utilization': '0.90',
|
|
205
|
+
'anthropic-ratelimit-unified-5h-reset': '1772575200',
|
|
206
|
+
},
|
|
207
|
+
ts: 1234567890,
|
|
208
|
+
}),
|
|
209
|
+
threshold: 90,
|
|
210
|
+
expected: false,
|
|
211
|
+
},
|
|
212
|
+
];
|
|
213
|
+
|
|
214
|
+
test.each(testCases)(
|
|
215
|
+
'$name',
|
|
216
|
+
async ({ fileExists, fileContent, threshold, expected }) => {
|
|
217
|
+
jest.mocked(fs.existsSync).mockReturnValue(fileExists);
|
|
218
|
+
if (fileContent !== null) {
|
|
219
|
+
jest.mocked(fs.readFileSync).mockReturnValue(fileContent);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
const repository = new OauthProxyClaudeRepository(
|
|
223
|
+
'/tmp/test-claude-ratelimit.json',
|
|
224
|
+
);
|
|
225
|
+
const result = await repository.isClaudeAvailable(threshold);
|
|
226
|
+
|
|
227
|
+
expect(result).toBe(expected);
|
|
228
|
+
},
|
|
229
|
+
);
|
|
230
|
+
});
|
|
231
|
+
});
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { ClaudeRepository } from '../../domain/usecases/adapter-interfaces/ClaudeRepository';
|
|
2
|
+
import { ClaudeWindowUsage } from '../../domain/entities/ClaudeWindowUsage';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
|
|
5
|
+
type ProxyFileHeaders = {
|
|
6
|
+
'anthropic-ratelimit-unified-5h-utilization'?: string;
|
|
7
|
+
'anthropic-ratelimit-unified-7d-utilization'?: string;
|
|
8
|
+
'anthropic-ratelimit-unified-5h-reset'?: string;
|
|
9
|
+
'anthropic-ratelimit-unified-7d-reset'?: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
type ProxyFile = {
|
|
13
|
+
headers?: ProxyFileHeaders;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const isProxyFile = (value: unknown): value is ProxyFile => {
|
|
17
|
+
if (typeof value !== 'object' || value === null) return false;
|
|
18
|
+
return true;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export class OauthProxyClaudeRepository implements ClaudeRepository {
|
|
22
|
+
private readonly filePath: string;
|
|
23
|
+
|
|
24
|
+
constructor(
|
|
25
|
+
filePath: string = process.env['CLAUDE_RATELIMIT_FILE'] ??
|
|
26
|
+
'/tmp/claude-ratelimit.json',
|
|
27
|
+
) {
|
|
28
|
+
this.filePath = filePath;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async getUsage(): Promise<ClaudeWindowUsage[]> {
|
|
32
|
+
if (!fs.existsSync(this.filePath)) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
let parsed: unknown;
|
|
37
|
+
try {
|
|
38
|
+
const content = fs.readFileSync(this.filePath, 'utf-8');
|
|
39
|
+
parsed = JSON.parse(content);
|
|
40
|
+
} catch {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (!isProxyFile(parsed)) {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const headers = parsed.headers;
|
|
49
|
+
if (!headers) {
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const usages: ClaudeWindowUsage[] = [];
|
|
54
|
+
|
|
55
|
+
const fiveHourUtilization =
|
|
56
|
+
headers['anthropic-ratelimit-unified-5h-utilization'];
|
|
57
|
+
const fiveHourReset = headers['anthropic-ratelimit-unified-5h-reset'];
|
|
58
|
+
if (fiveHourUtilization !== undefined) {
|
|
59
|
+
const utilizationPercentage = parseFloat(fiveHourUtilization) * 100;
|
|
60
|
+
if (!isNaN(utilizationPercentage)) {
|
|
61
|
+
usages.push({
|
|
62
|
+
hour: 5,
|
|
63
|
+
utilizationPercentage,
|
|
64
|
+
resetsAt: fiveHourReset
|
|
65
|
+
? new Date(parseInt(fiveHourReset, 10) * 1000)
|
|
66
|
+
: new Date(),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const sevenDayUtilization =
|
|
72
|
+
headers['anthropic-ratelimit-unified-7d-utilization'];
|
|
73
|
+
const sevenDayReset = headers['anthropic-ratelimit-unified-7d-reset'];
|
|
74
|
+
if (sevenDayUtilization !== undefined) {
|
|
75
|
+
const utilizationPercentage = parseFloat(sevenDayUtilization) * 100;
|
|
76
|
+
if (!isNaN(utilizationPercentage)) {
|
|
77
|
+
usages.push({
|
|
78
|
+
hour: 168,
|
|
79
|
+
utilizationPercentage,
|
|
80
|
+
resetsAt: sevenDayReset
|
|
81
|
+
? new Date(parseInt(sevenDayReset, 10) * 1000)
|
|
82
|
+
: new Date(),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return usages;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async isClaudeAvailable(threshold: number): Promise<boolean> {
|
|
91
|
+
const usages = await this.getUsage();
|
|
92
|
+
if (usages.length === 0) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
return usages.every((usage) => usage.utilizationPercentage < threshold);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ClaudeRepository } from '../../domain/usecases/adapter-interfaces/ClaudeRepository';
|
|
2
|
+
import { ClaudeWindowUsage } from '../../domain/entities/ClaudeWindowUsage';
|
|
3
|
+
export declare class OauthAPIProxyClaudeRepository implements ClaudeRepository {
|
|
4
|
+
private readonly proxyRepository;
|
|
5
|
+
private readonly apiRepository;
|
|
6
|
+
constructor(proxyRepository?: Pick<ClaudeRepository, 'getUsage'>, apiRepository?: ClaudeRepository);
|
|
7
|
+
getUsage(): Promise<ClaudeWindowUsage[]>;
|
|
8
|
+
isClaudeAvailable(threshold: number): Promise<boolean>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=OauthAPIProxyClaudeRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OauthAPIProxyClaudeRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/OauthAPIProxyClaudeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAI5E,qBAAa,6BAA8B,YAAW,gBAAgB;IAElE,OAAO,CAAC,QAAQ,CAAC,eAAe;IAIhC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAJb,eAAe,GAAE,IAAI,CACpC,gBAAgB,EAChB,UAAU,CACwB,EACnB,aAAa,GAAE,gBAAiD;IAG7E,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAQxC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAS7D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ClaudeRepository } from '../../domain/usecases/adapter-interfaces/ClaudeRepository';
|
|
2
|
+
import { ClaudeWindowUsage } from '../../domain/entities/ClaudeWindowUsage';
|
|
3
|
+
export declare class OauthProxyClaudeRepository implements ClaudeRepository {
|
|
4
|
+
private readonly filePath;
|
|
5
|
+
constructor(filePath?: string);
|
|
6
|
+
getUsage(): Promise<ClaudeWindowUsage[]>;
|
|
7
|
+
isClaudeAvailable(threshold: number): Promise<boolean>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=OauthProxyClaudeRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OauthProxyClaudeRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/OauthProxyClaudeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAmB5E,qBAAa,0BAA2B,YAAW,gBAAgB;IACjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGhC,QAAQ,GAAE,MACoB;IAK1B,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA2DxC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAO7D"}
|