github-issue-tower-defence-management 1.77.1 → 1.77.3
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 +14 -0
- package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js +22 -0
- package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js.map +1 -1
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js +1 -1
- package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.test.ts +157 -9
- package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts +20 -0
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +1 -1
- package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +1 -1
- package/types/adapter/repositories/ProxyClaudeTokenUsageRepository.d.ts +1 -0
- package/types/adapter/repositories/ProxyClaudeTokenUsageRepository.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [1.77.3](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.77.2...v1.77.3) (2026-06-12)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **core:** count token in-flight by worker root not per descendant process ([578e256](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/578e25667ea089c9b578aa436bf9cb1f5780d3b1)), closes [#809](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/809)
|
|
7
|
+
|
|
8
|
+
## [1.77.2](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.77.1...v1.77.2) (2026-06-12)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **core:** format dependent issue URLs as Markdown list items ([733a92f](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/733a92fb24c45b5686904fa5cdd6f3b0cc3a53f2))
|
|
14
|
+
|
|
1
15
|
## [1.77.1](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.77.0...v1.77.1) (2026-06-12)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -121,6 +121,7 @@ class ProxyClaudeTokenUsageRepository {
|
|
|
121
121
|
catch {
|
|
122
122
|
return counts;
|
|
123
123
|
}
|
|
124
|
+
const tokenByPid = new Map();
|
|
124
125
|
for (const entry of procEntries) {
|
|
125
126
|
if (!/^\d+$/.test(entry))
|
|
126
127
|
continue;
|
|
@@ -139,10 +140,31 @@ class ProxyClaudeTokenUsageRepository {
|
|
|
139
140
|
const token = tokenEntry.slice('CLAUDE_CODE_OAUTH_TOKEN='.length);
|
|
140
141
|
if (token.length === 0)
|
|
141
142
|
continue;
|
|
143
|
+
tokenByPid.set(Number(entry), token);
|
|
144
|
+
}
|
|
145
|
+
for (const [pid, token] of tokenByPid) {
|
|
146
|
+
const parentPid = this.readParentPid(pid);
|
|
147
|
+
if (parentPid !== null && tokenByPid.has(parentPid))
|
|
148
|
+
continue;
|
|
142
149
|
counts[token] = (counts[token] ?? 0) + 1;
|
|
143
150
|
}
|
|
144
151
|
return counts;
|
|
145
152
|
};
|
|
153
|
+
this.readParentPid = (pid) => {
|
|
154
|
+
let stat;
|
|
155
|
+
try {
|
|
156
|
+
stat = fs.readFileSync(path.join('/proc', String(pid), 'stat'), 'utf8');
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
const afterComm = stat.slice(stat.lastIndexOf(') ') + 2);
|
|
162
|
+
const fields = afterComm.trim().split(/\s+/);
|
|
163
|
+
const parentPid = Number(fields[1]);
|
|
164
|
+
if (!Number.isInteger(parentPid))
|
|
165
|
+
return null;
|
|
166
|
+
return parentPid;
|
|
167
|
+
};
|
|
146
168
|
this.proxyBaseUrl = () => `http://127.0.0.1:${this.port}`;
|
|
147
169
|
}
|
|
148
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyClaudeTokenUsageRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ProxyClaudeTokenUsageRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,7 +67,7 @@ class NotifyFinishedIssuePreparationUseCase {
|
|
|
67
67
|
issue.status = WorkflowStatus_1.AWAITING_WORKSPACE_STATUS_NAME;
|
|
68
68
|
await this.issueRepository.update(issue, project);
|
|
69
69
|
await this.issueRepository.updateStatus(project, issue, awaitingWorkspaceStatusOption.id);
|
|
70
|
-
await this.issueCommentRepository.createComment(issue, `Issue has dependent issue URLs
|
|
70
|
+
await this.issueCommentRepository.createComment(issue, `Issue has dependent issue URLs:\n${issue.dependedIssueUrls.map((url) => `- ${url}`).join('\n')}`);
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
73
|
if (issue.nextActionDate !== null || issue.nextActionHour !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NotifyFinishedIssuePreparationUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -733,6 +733,9 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
733
733
|
});
|
|
734
734
|
|
|
735
735
|
describe('getTokenInFlightCounts', () => {
|
|
736
|
+
const statWithParent = (parentPid: number): string =>
|
|
737
|
+
`${parentPid + 1} (worker) S ${parentPid} ${parentPid} ${parentPid} 0 -1 4194304`;
|
|
738
|
+
|
|
736
739
|
it('should return empty object when proc directory cannot be read', async () => {
|
|
737
740
|
mockFsReaddirSync.mockImplementation(() => {
|
|
738
741
|
throw new Error('ENOENT');
|
|
@@ -754,12 +757,15 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
754
757
|
expect(result).toEqual({});
|
|
755
758
|
});
|
|
756
759
|
|
|
757
|
-
it('should count one
|
|
760
|
+
it('should count one worker root when one pid has CLAUDE_CODE_OAUTH_TOKEN', async () => {
|
|
758
761
|
mockFsReaddirSync.mockReturnValue(['1234', 'self']);
|
|
759
762
|
mockFsReadFileSync.mockImplementation((filePath: string) => {
|
|
760
763
|
if (filePath === '/proc/1234/environ') {
|
|
761
764
|
return 'HOME=/home/user\0CLAUDE_CODE_OAUTH_TOKEN=sk-ant-abc\0PATH=/usr/bin\0';
|
|
762
765
|
}
|
|
766
|
+
if (filePath === '/proc/1234/stat') {
|
|
767
|
+
return statWithParent(1);
|
|
768
|
+
}
|
|
763
769
|
throw new Error('EACCES');
|
|
764
770
|
});
|
|
765
771
|
const repository = new ProxyClaudeTokenUsageRepository('/tokens.json');
|
|
@@ -769,28 +775,101 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
769
775
|
expect(result).toEqual({ 'sk-ant-abc': 1 });
|
|
770
776
|
});
|
|
771
777
|
|
|
772
|
-
it('should count
|
|
778
|
+
it('should count one worker root when six descendant processes inherit the token from a single worker', async () => {
|
|
779
|
+
mockFsReaddirSync.mockReturnValue([
|
|
780
|
+
'100',
|
|
781
|
+
'101',
|
|
782
|
+
'102',
|
|
783
|
+
'103',
|
|
784
|
+
'104',
|
|
785
|
+
'105',
|
|
786
|
+
]);
|
|
787
|
+
const parentByPid: Record<string, number> = {
|
|
788
|
+
'100': 1,
|
|
789
|
+
'101': 100,
|
|
790
|
+
'102': 100,
|
|
791
|
+
'103': 101,
|
|
792
|
+
'104': 103,
|
|
793
|
+
'105': 104,
|
|
794
|
+
};
|
|
795
|
+
mockFsReadFileSync.mockImplementation((filePath: string) => {
|
|
796
|
+
const environMatch = filePath.match(/^\/proc\/(\d+)\/environ$/);
|
|
797
|
+
if (environMatch) {
|
|
798
|
+
return 'CLAUDE_CODE_OAUTH_TOKEN=sk-ant-abc\0OTHER=val\0';
|
|
799
|
+
}
|
|
800
|
+
const statMatch = filePath.match(/^\/proc\/(\d+)\/stat$/);
|
|
801
|
+
if (statMatch) {
|
|
802
|
+
return statWithParent(parentByPid[statMatch[1]]);
|
|
803
|
+
}
|
|
804
|
+
throw new Error('ENOENT');
|
|
805
|
+
});
|
|
806
|
+
const repository = new ProxyClaudeTokenUsageRepository('/tokens.json');
|
|
807
|
+
|
|
808
|
+
const result = await repository.getTokenInFlightCounts();
|
|
809
|
+
|
|
810
|
+
expect(result).toEqual({ 'sk-ant-abc': 1 });
|
|
811
|
+
});
|
|
812
|
+
|
|
813
|
+
it('should count two worker roots when two workers run on the same token', async () => {
|
|
814
|
+
mockFsReaddirSync.mockReturnValue([
|
|
815
|
+
'200',
|
|
816
|
+
'201',
|
|
817
|
+
'202',
|
|
818
|
+
'300',
|
|
819
|
+
'301',
|
|
820
|
+
'302',
|
|
821
|
+
]);
|
|
822
|
+
const parentByPid: Record<string, number> = {
|
|
823
|
+
'200': 1,
|
|
824
|
+
'201': 200,
|
|
825
|
+
'202': 201,
|
|
826
|
+
'300': 1,
|
|
827
|
+
'301': 300,
|
|
828
|
+
'302': 301,
|
|
829
|
+
};
|
|
830
|
+
mockFsReadFileSync.mockImplementation((filePath: string) => {
|
|
831
|
+
const environMatch = filePath.match(/^\/proc\/(\d+)\/environ$/);
|
|
832
|
+
if (environMatch) {
|
|
833
|
+
return 'CLAUDE_CODE_OAUTH_TOKEN=sk-ant-abc\0';
|
|
834
|
+
}
|
|
835
|
+
const statMatch = filePath.match(/^\/proc\/(\d+)\/stat$/);
|
|
836
|
+
if (statMatch) {
|
|
837
|
+
return statWithParent(parentByPid[statMatch[1]]);
|
|
838
|
+
}
|
|
839
|
+
throw new Error('ENOENT');
|
|
840
|
+
});
|
|
841
|
+
const repository = new ProxyClaudeTokenUsageRepository('/tokens.json');
|
|
842
|
+
|
|
843
|
+
const result = await repository.getTokenInFlightCounts();
|
|
844
|
+
|
|
845
|
+
expect(result).toEqual({ 'sk-ant-abc': 2 });
|
|
846
|
+
});
|
|
847
|
+
|
|
848
|
+
it('should ignore processes without the token env var when counting worker roots', async () => {
|
|
773
849
|
mockFsReaddirSync.mockReturnValue(['1234', '5678', '9999']);
|
|
774
850
|
mockFsReadFileSync.mockImplementation((filePath: string) => {
|
|
775
|
-
if (
|
|
776
|
-
filePath === '/proc/1234/environ' ||
|
|
777
|
-
filePath === '/proc/5678/environ'
|
|
778
|
-
) {
|
|
851
|
+
if (filePath === '/proc/1234/environ') {
|
|
779
852
|
return 'CLAUDE_CODE_OAUTH_TOKEN=sk-ant-abc\0OTHER=val\0';
|
|
780
853
|
}
|
|
781
|
-
if (filePath === '/proc/
|
|
854
|
+
if (filePath === '/proc/5678/environ') {
|
|
782
855
|
return 'HOME=/home/user\0PATH=/usr/bin\0';
|
|
783
856
|
}
|
|
857
|
+
if (filePath === '/proc/9999/environ') {
|
|
858
|
+
return 'CLAUDE_CODE_OAUTH_TOKEN=\0OTHER=val\0';
|
|
859
|
+
}
|
|
860
|
+
if (filePath === '/proc/1234/stat') {
|
|
861
|
+
return statWithParent(1);
|
|
862
|
+
}
|
|
784
863
|
throw new Error('ENOENT');
|
|
785
864
|
});
|
|
786
865
|
const repository = new ProxyClaudeTokenUsageRepository('/tokens.json');
|
|
787
866
|
|
|
788
867
|
const result = await repository.getTokenInFlightCounts();
|
|
789
868
|
|
|
790
|
-
expect(result).toEqual({ 'sk-ant-abc':
|
|
869
|
+
expect(result).toEqual({ 'sk-ant-abc': 1 });
|
|
791
870
|
});
|
|
792
871
|
|
|
793
|
-
it('should count
|
|
872
|
+
it('should count worker roots separately when they use different tokens', async () => {
|
|
794
873
|
mockFsReaddirSync.mockReturnValue(['1234', '5678']);
|
|
795
874
|
mockFsReadFileSync.mockImplementation((filePath: string) => {
|
|
796
875
|
if (filePath === '/proc/1234/environ') {
|
|
@@ -799,6 +878,12 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
799
878
|
if (filePath === '/proc/5678/environ') {
|
|
800
879
|
return 'CLAUDE_CODE_OAUTH_TOKEN=sk-ant-xyz\0';
|
|
801
880
|
}
|
|
881
|
+
if (filePath === '/proc/1234/stat') {
|
|
882
|
+
return statWithParent(1);
|
|
883
|
+
}
|
|
884
|
+
if (filePath === '/proc/5678/stat') {
|
|
885
|
+
return statWithParent(1);
|
|
886
|
+
}
|
|
802
887
|
throw new Error('ENOENT');
|
|
803
888
|
});
|
|
804
889
|
const repository = new ProxyClaudeTokenUsageRepository('/tokens.json');
|
|
@@ -808,12 +893,72 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
808
893
|
expect(result).toEqual({ 'sk-ant-abc': 1, 'sk-ant-xyz': 1 });
|
|
809
894
|
});
|
|
810
895
|
|
|
896
|
+
it('should treat a worker root whose stat cannot be read as a worker root', async () => {
|
|
897
|
+
mockFsReaddirSync.mockReturnValue(['1234']);
|
|
898
|
+
mockFsReadFileSync.mockImplementation((filePath: string) => {
|
|
899
|
+
if (filePath === '/proc/1234/environ') {
|
|
900
|
+
return 'CLAUDE_CODE_OAUTH_TOKEN=sk-ant-abc\0';
|
|
901
|
+
}
|
|
902
|
+
throw new Error('ENOENT');
|
|
903
|
+
});
|
|
904
|
+
const repository = new ProxyClaudeTokenUsageRepository('/tokens.json');
|
|
905
|
+
|
|
906
|
+
const result = await repository.getTokenInFlightCounts();
|
|
907
|
+
|
|
908
|
+
expect(result).toEqual({ 'sk-ant-abc': 1 });
|
|
909
|
+
});
|
|
910
|
+
|
|
911
|
+
it('should parse the parent pid correctly when the process name contains spaces and parentheses', async () => {
|
|
912
|
+
mockFsReaddirSync.mockReturnValue(['400', '401']);
|
|
913
|
+
mockFsReadFileSync.mockImplementation((filePath: string) => {
|
|
914
|
+
if (
|
|
915
|
+
filePath === '/proc/400/environ' ||
|
|
916
|
+
filePath === '/proc/401/environ'
|
|
917
|
+
) {
|
|
918
|
+
return 'CLAUDE_CODE_OAUTH_TOKEN=sk-ant-abc\0';
|
|
919
|
+
}
|
|
920
|
+
if (filePath === '/proc/400/stat') {
|
|
921
|
+
return '400 (claude (worker) :) ) S 1 400 400 0 -1 4194304';
|
|
922
|
+
}
|
|
923
|
+
if (filePath === '/proc/401/stat') {
|
|
924
|
+
return '401 (claude (worker) :) ) S 400 400 400 0 -1 4194304';
|
|
925
|
+
}
|
|
926
|
+
throw new Error('ENOENT');
|
|
927
|
+
});
|
|
928
|
+
const repository = new ProxyClaudeTokenUsageRepository('/tokens.json');
|
|
929
|
+
|
|
930
|
+
const result = await repository.getTokenInFlightCounts();
|
|
931
|
+
|
|
932
|
+
expect(result).toEqual({ 'sk-ant-abc': 1 });
|
|
933
|
+
});
|
|
934
|
+
|
|
935
|
+
it('should treat a worker root whose stat is malformed as a worker root', async () => {
|
|
936
|
+
mockFsReaddirSync.mockReturnValue(['1234']);
|
|
937
|
+
mockFsReadFileSync.mockImplementation((filePath: string) => {
|
|
938
|
+
if (filePath === '/proc/1234/environ') {
|
|
939
|
+
return 'CLAUDE_CODE_OAUTH_TOKEN=sk-ant-abc\0';
|
|
940
|
+
}
|
|
941
|
+
if (filePath === '/proc/1234/stat') {
|
|
942
|
+
return '1234 (worker)';
|
|
943
|
+
}
|
|
944
|
+
throw new Error('ENOENT');
|
|
945
|
+
});
|
|
946
|
+
const repository = new ProxyClaudeTokenUsageRepository('/tokens.json');
|
|
947
|
+
|
|
948
|
+
const result = await repository.getTokenInFlightCounts();
|
|
949
|
+
|
|
950
|
+
expect(result).toEqual({ 'sk-ant-abc': 1 });
|
|
951
|
+
});
|
|
952
|
+
|
|
811
953
|
it('should skip non-numeric proc entries', async () => {
|
|
812
954
|
mockFsReaddirSync.mockReturnValue(['1234', 'self', 'net', 'sys']);
|
|
813
955
|
mockFsReadFileSync.mockImplementation((filePath: string) => {
|
|
814
956
|
if (filePath === '/proc/1234/environ') {
|
|
815
957
|
return 'CLAUDE_CODE_OAUTH_TOKEN=sk-ant-abc\0';
|
|
816
958
|
}
|
|
959
|
+
if (filePath === '/proc/1234/stat') {
|
|
960
|
+
return statWithParent(1);
|
|
961
|
+
}
|
|
817
962
|
throw new Error('ENOENT');
|
|
818
963
|
});
|
|
819
964
|
const repository = new ProxyClaudeTokenUsageRepository('/tokens.json');
|
|
@@ -829,6 +974,9 @@ describe('ProxyClaudeTokenUsageRepository', () => {
|
|
|
829
974
|
if (filePath === '/proc/1234/environ') {
|
|
830
975
|
return 'CLAUDE_CODE_OAUTH_TOKEN=sk-ant-abc\0';
|
|
831
976
|
}
|
|
977
|
+
if (filePath === '/proc/1234/stat') {
|
|
978
|
+
return statWithParent(1);
|
|
979
|
+
}
|
|
832
980
|
throw new Error('EPERM');
|
|
833
981
|
});
|
|
834
982
|
const repository = new ProxyClaudeTokenUsageRepository('/tokens.json');
|
|
@@ -103,6 +103,7 @@ export class ProxyClaudeTokenUsageRepository implements ClaudeTokenUsageReposito
|
|
|
103
103
|
} catch {
|
|
104
104
|
return counts;
|
|
105
105
|
}
|
|
106
|
+
const tokenByPid = new Map<number, string>();
|
|
106
107
|
for (const entry of procEntries) {
|
|
107
108
|
if (!/^\d+$/.test(entry)) continue;
|
|
108
109
|
const environPath = path.join('/proc', entry, 'environ');
|
|
@@ -119,10 +120,29 @@ export class ProxyClaudeTokenUsageRepository implements ClaudeTokenUsageReposito
|
|
|
119
120
|
if (tokenEntry === undefined) continue;
|
|
120
121
|
const token = tokenEntry.slice('CLAUDE_CODE_OAUTH_TOKEN='.length);
|
|
121
122
|
if (token.length === 0) continue;
|
|
123
|
+
tokenByPid.set(Number(entry), token);
|
|
124
|
+
}
|
|
125
|
+
for (const [pid, token] of tokenByPid) {
|
|
126
|
+
const parentPid = this.readParentPid(pid);
|
|
127
|
+
if (parentPid !== null && tokenByPid.has(parentPid)) continue;
|
|
122
128
|
counts[token] = (counts[token] ?? 0) + 1;
|
|
123
129
|
}
|
|
124
130
|
return counts;
|
|
125
131
|
};
|
|
126
132
|
|
|
133
|
+
private readParentPid = (pid: number): number | null => {
|
|
134
|
+
let stat: string;
|
|
135
|
+
try {
|
|
136
|
+
stat = fs.readFileSync(path.join('/proc', String(pid), 'stat'), 'utf8');
|
|
137
|
+
} catch {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
const afterComm = stat.slice(stat.lastIndexOf(') ') + 2);
|
|
141
|
+
const fields = afterComm.trim().split(/\s+/);
|
|
142
|
+
const parentPid = Number(fields[1]);
|
|
143
|
+
if (!Number.isInteger(parentPid)) return null;
|
|
144
|
+
return parentPid;
|
|
145
|
+
};
|
|
146
|
+
|
|
127
147
|
proxyBaseUrl = (): string => `http://127.0.0.1:${this.port}`;
|
|
128
148
|
}
|
|
@@ -387,7 +387,7 @@ describe('NotifyFinishedIssuePreparationUseCase', () => {
|
|
|
387
387
|
expect(mockIssueCommentRepository.createComment).toHaveBeenCalledWith(
|
|
388
388
|
expect.objectContaining({ url: 'https://github.com/user/repo/issues/1' }),
|
|
389
389
|
expect.stringContaining(
|
|
390
|
-
'Issue has dependent issue URLs
|
|
390
|
+
'Issue has dependent issue URLs:\n- https://github.com/user/repo/issues/2\n- https://github.com/user/repo/issues/3',
|
|
391
391
|
),
|
|
392
392
|
);
|
|
393
393
|
});
|
|
@@ -154,7 +154,7 @@ export class NotifyFinishedIssuePreparationUseCase {
|
|
|
154
154
|
);
|
|
155
155
|
await this.issueCommentRepository.createComment(
|
|
156
156
|
issue,
|
|
157
|
-
`Issue has dependent issue URLs
|
|
157
|
+
`Issue has dependent issue URLs:\n${issue.dependedIssueUrls.map((url) => `- ${url}`).join('\n')}`,
|
|
158
158
|
);
|
|
159
159
|
return;
|
|
160
160
|
}
|
|
@@ -7,6 +7,7 @@ export declare class ProxyClaudeTokenUsageRepository implements ClaudeTokenUsage
|
|
|
7
7
|
ensureObservable: () => Promise<void>;
|
|
8
8
|
getAvailableTokenUsages: () => Promise<ClaudeTokenUsage[]>;
|
|
9
9
|
getTokenInFlightCounts: () => Promise<Record<string, number>>;
|
|
10
|
+
private readParentPid;
|
|
10
11
|
proxyBaseUrl: () => string;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=ProxyClaudeTokenUsageRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyClaudeTokenUsageRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;AAKjH,qBAAa,+BAAgC,YAAW,0BAA0B;IAE9E,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,IAAI,GAAE,MAAmB;IAG5C,gBAAgB,QAAa,OAAO,CAAC,IAAI,CAAC,CAExC;IAEF,uBAAuB,QAAa,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6E7D;IAEF,sBAAsB,QAAa,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"ProxyClaudeTokenUsageRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;AAKjH,qBAAa,+BAAgC,YAAW,0BAA0B;IAE9E,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,IAAI,GAAE,MAAmB;IAG5C,gBAAgB,QAAa,OAAO,CAAC,IAAI,CAAC,CAExC;IAEF,uBAAuB,QAAa,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6E7D;IAEF,sBAAsB,QAAa,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAiChE;IAEF,OAAO,CAAC,aAAa,CAYnB;IAEF,YAAY,QAAO,MAAM,CAAoC;CAC9D"}
|