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
@@ -0,0 +1,81 @@
1
+ import { UpdateRateLimitCacheUseCase } from './UpdateRateLimitCacheUseCase';
2
+ import { mock } from 'jest-mock-extended';
3
+ import { RateLimitCacheRepository } from './adapter-interfaces/RateLimitCacheRepository';
4
+
5
+ describe('UpdateRateLimitCacheUseCase', () => {
6
+ const mockRateLimitCacheRepository = mock<RateLimitCacheRepository>();
7
+
8
+ const useCase = new UpdateRateLimitCacheUseCase(mockRateLimitCacheRepository);
9
+
10
+ beforeEach(() => {
11
+ jest.clearAllMocks();
12
+ });
13
+
14
+ it('should probe a token whose unifiedReset is in the past', async () => {
15
+ const pastReset = 1000000000;
16
+ const nowEpochSeconds = 1000000100;
17
+ mockRateLimitCacheRepository.getTokenRateLimitCaches.mockReturnValue([
18
+ { token: 'token-expired', unifiedReset: pastReset },
19
+ ]);
20
+ mockRateLimitCacheRepository.probeToken.mockResolvedValue(undefined);
21
+
22
+ await useCase.run({ nowEpochSeconds });
23
+
24
+ expect(mockRateLimitCacheRepository.probeToken).toHaveBeenCalledWith(
25
+ 'token-expired',
26
+ );
27
+ });
28
+
29
+ it('should not probe a token whose unifiedReset is in the future', async () => {
30
+ const futureReset = 9999999999;
31
+ const nowEpochSeconds = 1000000000;
32
+ mockRateLimitCacheRepository.getTokenRateLimitCaches.mockReturnValue([
33
+ { token: 'token-active', unifiedReset: futureReset },
34
+ ]);
35
+
36
+ await useCase.run({ nowEpochSeconds });
37
+
38
+ expect(mockRateLimitCacheRepository.probeToken).not.toHaveBeenCalled();
39
+ });
40
+
41
+ it('should probe only tokens with expired reset when mixed tokens exist', async () => {
42
+ const pastReset = 1000000000;
43
+ const futureReset = 9999999999;
44
+ const nowEpochSeconds = 1000000100;
45
+ mockRateLimitCacheRepository.getTokenRateLimitCaches.mockReturnValue([
46
+ { token: 'token-expired', unifiedReset: pastReset },
47
+ { token: 'token-active', unifiedReset: futureReset },
48
+ ]);
49
+ mockRateLimitCacheRepository.probeToken.mockResolvedValue(undefined);
50
+
51
+ await useCase.run({ nowEpochSeconds });
52
+
53
+ expect(mockRateLimitCacheRepository.probeToken).toHaveBeenCalledTimes(1);
54
+ expect(mockRateLimitCacheRepository.probeToken).toHaveBeenCalledWith(
55
+ 'token-expired',
56
+ );
57
+ });
58
+
59
+ it('should update the cache after probing by relying on the repository side effect', async () => {
60
+ const pastReset = 1000000000;
61
+ const nowEpochSeconds = 1000000100;
62
+ mockRateLimitCacheRepository.getTokenRateLimitCaches.mockReturnValue([
63
+ { token: 'token-expired', unifiedReset: pastReset },
64
+ ]);
65
+ mockRateLimitCacheRepository.probeToken.mockResolvedValue(undefined);
66
+
67
+ await useCase.run({ nowEpochSeconds });
68
+
69
+ expect(mockRateLimitCacheRepository.probeToken).toHaveBeenCalledWith(
70
+ 'token-expired',
71
+ );
72
+ });
73
+
74
+ it('should handle an empty token list without errors', async () => {
75
+ mockRateLimitCacheRepository.getTokenRateLimitCaches.mockReturnValue([]);
76
+
77
+ await useCase.run({ nowEpochSeconds: 1000000000 });
78
+
79
+ expect(mockRateLimitCacheRepository.probeToken).not.toHaveBeenCalled();
80
+ });
81
+ });
@@ -0,0 +1,16 @@
1
+ import { RateLimitCacheRepository } from './adapter-interfaces/RateLimitCacheRepository';
2
+
3
+ export class UpdateRateLimitCacheUseCase {
4
+ constructor(
5
+ private readonly rateLimitCacheRepository: RateLimitCacheRepository,
6
+ ) {}
7
+
8
+ run = async (params: { nowEpochSeconds: number }): Promise<void> => {
9
+ const caches = this.rateLimitCacheRepository.getTokenRateLimitCaches();
10
+ for (const cache of caches) {
11
+ if (cache.unifiedReset < params.nowEpochSeconds) {
12
+ await this.rateLimitCacheRepository.probeToken(cache.token);
13
+ }
14
+ }
15
+ };
16
+ }
@@ -0,0 +1,5 @@
1
+ import { ClaudeMessageResponse } from '../../entities/ClaudeMessageResponse';
2
+
3
+ export interface ClaudeMessageResponseRepository {
4
+ append: (response: ClaudeMessageResponse) => void;
5
+ }
@@ -0,0 +1,9 @@
1
+ export interface TokenRateLimitCache {
2
+ token: string;
3
+ unifiedReset: number;
4
+ }
5
+
6
+ export interface RateLimitCacheRepository {
7
+ getTokenRateLimitCaches: () => TokenRateLimitCache[];
8
+ probeToken: (token: string) => Promise<void>;
9
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAwB3D,qBAAa,kCAAkC;IAC7C,MAAM,GACJ,gBAAgB,MAAM,EACtB,UAAU,OAAO,KAChB,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,eAAe,EAAE,IAAI,EAAE,CAAC;KACzB,GAAG,IAAI,CAAC,CAiPP;CACH"}
1
+ {"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AA0B3D,qBAAa,kCAAkC;IAC7C,MAAM,GACJ,gBAAgB,MAAM,EACtB,UAAU,OAAO,KAChB,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,eAAe,EAAE,IAAI,EAAE,CAAC;KACzB,GAAG,IAAI,CAAC,CAwPP;CACH"}
@@ -0,0 +1,4 @@
1
+ import * as http from 'http';
2
+ import { ClaudeMessageResponse } from '../../domain/entities/ClaudeMessageResponse';
3
+ export declare const parseClaudeMessageResponse: (tokenName: string, httpStatus: number, headers: http.IncomingHttpHeaders, body: string) => ClaudeMessageResponse;
4
+ //# sourceMappingURL=ClaudeMessageResponseParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeMessageResponseParser.d.ts","sourceRoot":"","sources":["../../../src/adapter/proxy/ClaudeMessageResponseParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAiFpF,eAAO,MAAM,0BAA0B,GACrC,WAAW,MAAM,EACjB,YAAY,MAAM,EAClB,SAAS,IAAI,CAAC,mBAAmB,EACjC,MAAM,MAAM,KACX,qBA4FF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RateLimitCache.d.ts","sourceRoot":"","sources":["../../../src/adapter/proxy/RateLimitCache.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACrD;AAED,eAAO,MAAM,UAAU,OAAO,CAAC;AAI/B,eAAO,MAAM,QAAQ,QAAO,MAG3B,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,MACqB,CAAC;AAEhE,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,MACC,CAAC;AAiCpD,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,KACrD,IAwCF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,MAAM,EACb,QAAQ,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,KACvC,IAkBF,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,MAAM,MAAM,KACX,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA0BjC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,iBAAiB,GAAG,IA8CjE,CAAC"}
1
+ {"version":3,"file":"RateLimitCache.d.ts","sourceRoot":"","sources":["../../../src/adapter/proxy/RateLimitCache.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACrD;AAED,eAAO,MAAM,UAAU,OAAO,CAAC;AAI/B,eAAO,MAAM,QAAQ,QAAO,MAG3B,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,MACqB,CAAC;AAEhE,eAAO,MAAM,iBAAiB,GAAI,OAAO,MAAM,KAAG,MACC,CAAC;AAiCpD,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,KACrD,IA2BF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,MAAM,EACb,QAAQ,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,KACvC,IAkBF,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,MAAM,MAAM,KACX,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA0BjC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,iBAAiB,GAAG,IA8CjE,CAAC"}
@@ -1,4 +1,5 @@
1
+ import { ClaudeMessageResponseRepository } from '../../domain/usecases/adapter-interfaces/ClaudeMessageResponseRepository';
1
2
  declare const extractToken: (authorization: string | string[] | undefined) => string | null;
2
- declare const startProxy: (port: number) => void;
3
+ declare const startProxy: (port: number, claudeMessageResponseRepository?: ClaudeMessageResponseRepository | null) => void;
3
4
  export { startProxy, extractToken };
4
5
  //# sourceMappingURL=proxyEntry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxyEntry.d.ts","sourceRoot":"","sources":["../../../src/adapter/proxy/proxyEntry.ts"],"names":[],"mappings":"AAeA,QAAA,MAAM,YAAY,GAChB,eAAe,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,KAC3C,MAAM,GAAG,IAQX,CAAC;AAEF,QAAA,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,IA0DlC,CAAC;AAMF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"proxyEntry.d.ts","sourceRoot":"","sources":["../../../src/adapter/proxy/proxyEntry.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,+BAA+B,EAAE,MAAM,0EAA0E,CAAC;AAU3H,QAAA,MAAM,YAAY,GAChB,eAAe,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,KAC3C,MAAM,GAAG,IAQX,CAAC;AAEF,QAAA,MAAM,UAAU,GACd,MAAM,MAAM,EACZ,kCAAiC,+BAA+B,GAAG,IAAW,KAC7E,IA0EF,CAAC;AAQF,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { RateLimitCacheRepository } from '../../domain/usecases/adapter-interfaces/RateLimitCacheRepository';
2
+ import { TokenRateLimitCache } from '../../domain/usecases/adapter-interfaces/RateLimitCacheRepository';
3
+ export declare class ProxyRateLimitCacheRepository implements RateLimitCacheRepository {
4
+ private readonly tokenListJsonPath;
5
+ private readonly port;
6
+ constructor(tokenListJsonPath: string | null, port?: number);
7
+ getTokenRateLimitCaches: () => TokenRateLimitCache[];
8
+ probeToken: (token: string) => Promise<void>;
9
+ }
10
+ //# sourceMappingURL=ProxyRateLimitCacheRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProxyRateLimitCacheRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyRateLimitCacheRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mEAAmE,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAE,MAAM,mEAAmE,CAAC;AAYxG,qBAAa,6BAA8B,YAAW,wBAAwB;IAE1E,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,IAAI,GAAE,MAAmB;IAG5C,uBAAuB,QAAO,mBAAmB,EAAE,CAajD;IAEF,UAAU,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CA6B/C;CACH"}
@@ -0,0 +1,10 @@
1
+ import { ClaudeMessageResponse } from '../../domain/entities/ClaudeMessageResponse';
2
+ import { ClaudeMessageResponseRepository } from '../../domain/usecases/adapter-interfaces/ClaudeMessageResponseRepository';
3
+ export declare const generateUlid: () => string;
4
+ export declare class SqliteClaudeMessageResponseRepository implements ClaudeMessageResponseRepository {
5
+ private readonly db;
6
+ private readonly insert;
7
+ constructor(dbPath: string);
8
+ append: (response: ClaudeMessageResponse) => void;
9
+ }
10
+ //# sourceMappingURL=SqliteClaudeMessageResponseRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqliteClaudeMessageResponseRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/SqliteClaudeMessageResponseRepository.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,0EAA0E,CAAC;AA6B3H,eAAO,MAAM,YAAY,QAAO,MACiB,CAAC;AA0ElD,qBAAa,qCAAsC,YAAW,+BAA+B;IAC3F,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;gBAEhC,MAAM,EAAE,MAAM;IAW1B,MAAM,GAAI,UAAU,qBAAqB,KAAG,IAAI,CAsC9C;CACH"}
@@ -0,0 +1,32 @@
1
+ export type ClaudeMessageResponse = {
2
+ id: string;
3
+ observedAt: Date;
4
+ tokenName: string;
5
+ externalClaudeMessageId: string | null;
6
+ externalClaudeRequestId: string | null;
7
+ httpStatus: number;
8
+ model: string | null;
9
+ role: string | null;
10
+ stopReason: string | null;
11
+ stopSequence: string | null;
12
+ inputTokens: number | null;
13
+ outputTokens: number | null;
14
+ cacheCreationInputTokens: number | null;
15
+ cacheReadInputTokens: number | null;
16
+ ephemeral5mInputTokens: number | null;
17
+ ephemeral1hInputTokens: number | null;
18
+ serviceTier: string | null;
19
+ inferenceGeo: string | null;
20
+ errorType: string | null;
21
+ errorMessage: string | null;
22
+ anthropicRatelimitUnifiedStatus: string | null;
23
+ anthropicRatelimitUnified5hStatus: string | null;
24
+ anthropicRatelimitUnified5hUtilization: number | null;
25
+ anthropicRatelimitUnified5hReset: number | null;
26
+ anthropicRatelimitUnified7dStatus: string | null;
27
+ anthropicRatelimitUnified7dUtilization: number | null;
28
+ anthropicRatelimitUnified7dReset: number | null;
29
+ retryAfter: number | null;
30
+ anthropicOrganizationId: string | null;
31
+ };
32
+ //# sourceMappingURL=ClaudeMessageResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeMessageResponse.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/ClaudeMessageResponse.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,iCAAiC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,sCAAsC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,iCAAiC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,sCAAsC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,CAAC"}
@@ -23,6 +23,7 @@ import { StartPreparationUseCase } from './StartPreparationUseCase';
23
23
  import { RevertOrphanedPreparationUseCase } from './RevertOrphanedPreparationUseCase';
24
24
  import { RevertNotReadyAwaitingQualityCheckUseCase } from './RevertNotReadyAwaitingQualityCheckUseCase';
25
25
  import { SetupTowerDefenceProjectUseCase } from './SetupTowerDefenceProjectUseCase';
26
+ import { UpdateRateLimitCacheUseCase } from './UpdateRateLimitCacheUseCase';
26
27
  export declare class ProjectNotFoundError extends Error {
27
28
  constructor(message: string);
28
29
  }
@@ -44,11 +45,12 @@ export declare class HandleScheduledEventUseCase {
44
45
  readonly startPreparationUseCase: StartPreparationUseCase;
45
46
  readonly revertOrphanedPreparationUseCase: RevertOrphanedPreparationUseCase;
46
47
  readonly revertNotReadyAwaitingQualityCheckUseCase: RevertNotReadyAwaitingQualityCheckUseCase;
48
+ readonly updateRateLimitCacheUseCase: UpdateRateLimitCacheUseCase | null;
47
49
  readonly dateRepository: DateRepository;
48
50
  readonly spreadsheetRepository: SpreadsheetRepository;
49
51
  readonly projectRepository: ProjectRepository;
50
52
  readonly issueRepository: IssueRepository;
51
- constructor(setupTowerDefenceProjectUseCase: SetupTowerDefenceProjectUseCase, actionAnnouncementUseCase: ActionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase: SetWorkflowManagementIssueToStoryUseCase, clearPastNextActionUseCase: ClearPastNextActionDateHourUseCase, analyzeProblemByIssueUseCase: AnalyzeProblemByIssueUseCase, analyzeStoriesUseCase: AnalyzeStoriesUseCase, clearDependedIssueURLUseCase: ClearDependedIssueURLUseCase, createEstimationIssueUseCase: CreateEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase: ConvertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase: ChangeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase: SetNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase, startPreparationUseCase: StartPreparationUseCase, revertOrphanedPreparationUseCase: RevertOrphanedPreparationUseCase, revertNotReadyAwaitingQualityCheckUseCase: RevertNotReadyAwaitingQualityCheckUseCase, dateRepository: DateRepository, spreadsheetRepository: SpreadsheetRepository, projectRepository: ProjectRepository, issueRepository: IssueRepository);
53
+ constructor(setupTowerDefenceProjectUseCase: SetupTowerDefenceProjectUseCase, actionAnnouncementUseCase: ActionAnnouncementUseCase, setWorkflowManagementIssueToStoryUseCase: SetWorkflowManagementIssueToStoryUseCase, clearPastNextActionUseCase: ClearPastNextActionDateHourUseCase, analyzeProblemByIssueUseCase: AnalyzeProblemByIssueUseCase, analyzeStoriesUseCase: AnalyzeStoriesUseCase, clearDependedIssueURLUseCase: ClearDependedIssueURLUseCase, createEstimationIssueUseCase: CreateEstimationIssueUseCase, convertCheckboxToIssueInStoryIssueUseCase: ConvertCheckboxToIssueInStoryIssueUseCase, changeStatusByStoryColorUseCase: ChangeStatusByStoryColorUseCase, setNoStoryIssueToStoryUseCase: SetNoStoryIssueToStoryUseCase, createNewStoryByLabelUseCase: CreateNewStoryByLabelUseCase, assignNoAssigneeIssueToManagerUseCase: AssignNoAssigneeIssueToManagerUseCase, updateIssueStatusByLabelUseCase: UpdateIssueStatusByLabelUseCase, startPreparationUseCase: StartPreparationUseCase, revertOrphanedPreparationUseCase: RevertOrphanedPreparationUseCase, revertNotReadyAwaitingQualityCheckUseCase: RevertNotReadyAwaitingQualityCheckUseCase, updateRateLimitCacheUseCase: UpdateRateLimitCacheUseCase | null, dateRepository: DateRepository, spreadsheetRepository: SpreadsheetRepository, projectRepository: ProjectRepository, issueRepository: IssueRepository);
52
54
  run: (input: {
53
55
  projectName: string;
54
56
  org: string;
@@ -1 +1 @@
1
- {"version":3,"file":"HandleScheduledEventUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/HandleScheduledEventUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandleScheduledEventUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/HandleScheduledEventUseCase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { RateLimitCacheRepository } from './adapter-interfaces/RateLimitCacheRepository';
2
+ export declare class UpdateRateLimitCacheUseCase {
3
+ private readonly rateLimitCacheRepository;
4
+ constructor(rateLimitCacheRepository: RateLimitCacheRepository);
5
+ run: (params: {
6
+ nowEpochSeconds: number;
7
+ }) => Promise<void>;
8
+ }
9
+ //# sourceMappingURL=UpdateRateLimitCacheUseCase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateRateLimitCacheUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/UpdateRateLimitCacheUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAEzF,qBAAa,2BAA2B;IAEpC,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAAxB,wBAAwB,EAAE,wBAAwB;IAGrE,GAAG,GAAU,QAAQ;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAO9D;CACH"}
@@ -0,0 +1,5 @@
1
+ import { ClaudeMessageResponse } from '../../entities/ClaudeMessageResponse';
2
+ export interface ClaudeMessageResponseRepository {
3
+ append: (response: ClaudeMessageResponse) => void;
4
+ }
5
+ //# sourceMappingURL=ClaudeMessageResponseRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeMessageResponseRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/ClaudeMessageResponseRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACnD"}
@@ -0,0 +1,9 @@
1
+ export interface TokenRateLimitCache {
2
+ token: string;
3
+ unifiedReset: number;
4
+ }
5
+ export interface RateLimitCacheRepository {
6
+ getTokenRateLimitCaches: () => TokenRateLimitCache[];
7
+ probeToken: (token: string) => Promise<void>;
8
+ }
9
+ //# sourceMappingURL=RateLimitCacheRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RateLimitCacheRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/RateLimitCacheRepository.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,uBAAuB,EAAE,MAAM,mBAAmB,EAAE,CAAC;IACrD,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C"}