github-issue-tower-defence-management 2.151.5 → 2.151.6

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.
@@ -36,13 +36,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.ProcTakeOwnershipSpawnRepository = void 0;
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
+ const ProcTakeOwnershipWorkerSessionReader_1 = require("./ProcTakeOwnershipWorkerSessionReader");
39
40
  const DEFAULT_PROC_DIRECTORY = '/proc';
40
- const OAUTH_TOKEN_ENVIRON_KEY = 'CLAUDE_CODE_OAUTH_TOKEN';
41
- const TAKE_OWNERSHIP_MARKER = 'Take ownership';
42
41
  const LOG_PATH_PATTERN = /\/logs-aw\/[^\0"]+\.log/;
43
42
  const ISSUE_URL_PATTERN = /Take ownership of (https:\/\/github\.com\/[^ \0"]+)/;
44
- const parseCommandLineArguments = (cmdline) => cmdline.split('\0').filter((argument) => argument.length > 0);
45
- const isTakeOwnershipSpawn = (commandArguments) => commandArguments.some((argument) => argument.includes(TAKE_OWNERSHIP_MARKER));
46
43
  const extractLogPath = (cmdline) => {
47
44
  const match = cmdline.match(LOG_PATH_PATTERN);
48
45
  return match === null ? null : match[0];
@@ -50,16 +47,12 @@ const extractLogPath = (cmdline) => {
50
47
  class ProcTakeOwnershipSpawnRepository {
51
48
  constructor(procDirectory = DEFAULT_PROC_DIRECTORY) {
52
49
  this.procDirectory = procDirectory;
53
- this.listSpawns = () => {
54
- const spawns = [];
55
- for (const pidDirectory of this.listProcessIdDirectories()) {
56
- const spawn = this.readSpawn(pidDirectory);
57
- if (spawn !== null) {
58
- spawns.push(spawn);
59
- }
60
- }
61
- return spawns;
62
- };
50
+ this.listSpawns = () => this.workerSessionReader.listWorkerSessions().flatMap((session) => session.workerProcesses.flatMap((workerProcess) => {
51
+ const logPath = extractLogPath(workerProcess.rawCommandLine);
52
+ return logPath === null
53
+ ? []
54
+ : [{ token: session.sessionToken, logPath }];
55
+ }));
63
56
  this.listRunningIssueUrls = () => {
64
57
  const urls = [];
65
58
  for (const pidDirectory of this.listProcessIdDirectories()) {
@@ -84,29 +77,6 @@ class ProcTakeOwnershipSpawnRepository {
84
77
  }
85
78
  return entries.filter((entry) => /^\d+$/.test(entry));
86
79
  };
87
- this.readSpawn = (processIdDirectory) => {
88
- const rawCmdline = this.readRawCmdline(processIdDirectory);
89
- if (rawCmdline === null) {
90
- return null;
91
- }
92
- const commandArguments = parseCommandLineArguments(rawCmdline);
93
- if (!isTakeOwnershipSpawn(commandArguments)) {
94
- return null;
95
- }
96
- const logPath = extractLogPath(rawCmdline);
97
- if (logPath === null) {
98
- return null;
99
- }
100
- const environ = this.readEnviron(processIdDirectory);
101
- if (environ === null) {
102
- return null;
103
- }
104
- const token = environ.get(OAUTH_TOKEN_ENVIRON_KEY);
105
- if (token === undefined || token.length === 0) {
106
- return null;
107
- }
108
- return { token, logPath };
109
- };
110
80
  this.readRawCmdline = (processIdDirectory) => {
111
81
  const cmdlinePath = path.join(this.procDirectory, processIdDirectory, 'cmdline');
112
82
  try {
@@ -116,30 +86,7 @@ class ProcTakeOwnershipSpawnRepository {
116
86
  return null;
117
87
  }
118
88
  };
119
- this.readEnviron = (processIdDirectory) => {
120
- const environPath = path.join(this.procDirectory, processIdDirectory, 'environ');
121
- let raw;
122
- try {
123
- raw = fs.readFileSync(environPath, 'utf8');
124
- }
125
- catch {
126
- return null;
127
- }
128
- const environ = new Map();
129
- for (const entry of raw.split('\0')) {
130
- if (entry.length === 0) {
131
- continue;
132
- }
133
- const separatorIndex = entry.indexOf('=');
134
- if (separatorIndex <= 0) {
135
- continue;
136
- }
137
- const key = entry.slice(0, separatorIndex);
138
- const value = entry.slice(separatorIndex + 1);
139
- environ.set(key, value);
140
- }
141
- return environ;
142
- };
89
+ this.workerSessionReader = new ProcTakeOwnershipWorkerSessionReader_1.ProcTakeOwnershipWorkerSessionReader(procDirectory);
143
90
  }
144
91
  }
145
92
  exports.ProcTakeOwnershipSpawnRepository = ProcTakeOwnershipSpawnRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"ProcTakeOwnershipSpawnRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/ProcTakeOwnershipSpawnRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProcTakeOwnershipSpawnRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/ProcTakeOwnershipSpawnRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAK7B,iGAA8F;AAE9F,MAAM,sBAAsB,GAAG,OAAO,CAAC;AACvC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AACnD,MAAM,iBAAiB,GAAG,qDAAqD,CAAC;AAEhF,MAAM,cAAc,GAAG,CAAC,OAAe,EAAiB,EAAE;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC9C,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAa,gCAAgC;IAG3C,YAA6B,gBAAwB,sBAAsB;QAA9C,kBAAa,GAAb,aAAa,CAAiC;QAM3E,eAAU,GAAG,GAAyB,EAAE,CACtC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAChE,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;YAChD,MAAM,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC7D,OAAO,OAAO,KAAK,IAAI;gBACrB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CACH,CAAC;QAEJ,yBAAoB,GAAG,GAAa,EAAE;YACpC,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;gBAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACrD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAClD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEM,6BAAwB,GAAG,GAAa,EAAE;YAChD,IAAI,OAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,kBAA0B,EAAiB,EAAE;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,IAAI,CAAC,aAAa,EAClB,kBAAkB,EAClB,SAAS,CACV,CAAC;YACF,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QAnDA,IAAI,CAAC,mBAAmB,GAAG,IAAI,2EAAoC,CACjE,aAAa,CACd,CAAC;IACJ,CAAC;CAiDF;AAxDD,4EAwDC"}
@@ -0,0 +1,211 @@
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.ProcTakeOwnershipWorkerSessionReader = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const OAUTH_TOKEN_ENVIRON_PREFIX = 'CLAUDE_CODE_OAUTH_TOKEN=';
40
+ const TAKE_OWNERSHIP_MARKER = 'Take ownership';
41
+ const CLAUDE_COMMAND_NAME = 'claude';
42
+ const parseProcessStat = (rawStat) => {
43
+ const commandNameStart = rawStat.indexOf('(');
44
+ const commandNameEnd = rawStat.lastIndexOf(')');
45
+ if (commandNameStart < 0 || commandNameEnd < commandNameStart) {
46
+ return null;
47
+ }
48
+ const fieldsAfterCommandName = rawStat
49
+ .slice(commandNameEnd + 1)
50
+ .trim()
51
+ .split(/\s+/);
52
+ const parentProcessId = Number(fieldsAfterCommandName[1]);
53
+ if (!Number.isInteger(parentProcessId)) {
54
+ return null;
55
+ }
56
+ return {
57
+ commandName: rawStat.slice(commandNameStart + 1, commandNameEnd),
58
+ parentProcessId,
59
+ };
60
+ };
61
+ const parseOauthToken = (rawEnviron) => {
62
+ const tokenEntry = rawEnviron
63
+ .split('\0')
64
+ .find((entry) => entry.startsWith(OAUTH_TOKEN_ENVIRON_PREFIX));
65
+ if (tokenEntry === undefined) {
66
+ return null;
67
+ }
68
+ const token = tokenEntry.slice(OAUTH_TOKEN_ENVIRON_PREFIX.length);
69
+ return token.length === 0 ? null : token;
70
+ };
71
+ class ProcTakeOwnershipWorkerSessionReader {
72
+ constructor(procDirectory) {
73
+ this.procDirectory = procDirectory;
74
+ this.listWorkerSessions = () => {
75
+ const snapshotsByProcessId = this.readProcessSnapshots();
76
+ const childProcessIdsByParent = this.groupChildProcessIdsByParent(snapshotsByProcessId);
77
+ const workerProcessesById = this.readTokenHoldingWorkerProcesses(snapshotsByProcessId);
78
+ const sessions = [];
79
+ for (const rootProcess of workerProcessesById.values()) {
80
+ const parentProcessId = snapshotsByProcessId.get(rootProcess.processId)?.stat
81
+ ?.parentProcessId ?? null;
82
+ if (parentProcessId !== null &&
83
+ workerProcessesById.has(parentProcessId)) {
84
+ continue;
85
+ }
86
+ const descendantSnapshots = this.listDescendantsShallowestFirst(rootProcess.processId, childProcessIdsByParent).flatMap((processId) => {
87
+ const snapshot = snapshotsByProcessId.get(processId);
88
+ return snapshot === undefined ? [] : [snapshot];
89
+ });
90
+ const claudeDescendant = descendantSnapshots.find((snapshot) => snapshot.stat?.commandName === CLAUDE_COMMAND_NAME &&
91
+ snapshot.oauthToken !== null);
92
+ sessions.push({
93
+ rootProcessId: rootProcess.processId,
94
+ sessionToken: claudeDescendant?.oauthToken ?? rootProcess.oauthToken,
95
+ workerProcesses: this.listWorkerProcessesOfSession(rootProcess.processId, childProcessIdsByParent, workerProcessesById),
96
+ });
97
+ }
98
+ return sessions.sort((left, right) => left.rootProcessId - right.rootProcessId);
99
+ };
100
+ this.readProcessSnapshots = () => {
101
+ const snapshotsByProcessId = new Map();
102
+ let entries;
103
+ try {
104
+ entries = fs.readdirSync(this.procDirectory);
105
+ }
106
+ catch {
107
+ return snapshotsByProcessId;
108
+ }
109
+ for (const entry of entries) {
110
+ if (!/^\d+$/.test(entry)) {
111
+ continue;
112
+ }
113
+ const rawStat = this.readProcessFile(entry, 'stat');
114
+ const rawEnviron = this.readProcessFile(entry, 'environ');
115
+ snapshotsByProcessId.set(Number(entry), {
116
+ processId: Number(entry),
117
+ stat: rawStat === null ? null : parseProcessStat(rawStat),
118
+ oauthToken: rawEnviron === null ? null : parseOauthToken(rawEnviron),
119
+ });
120
+ }
121
+ return snapshotsByProcessId;
122
+ };
123
+ this.groupChildProcessIdsByParent = (snapshotsByProcessId) => {
124
+ const childProcessIdsByParent = new Map();
125
+ for (const snapshot of snapshotsByProcessId.values()) {
126
+ if (snapshot.stat === null) {
127
+ continue;
128
+ }
129
+ const childProcessIds = childProcessIdsByParent.get(snapshot.stat.parentProcessId) ?? [];
130
+ childProcessIds.push(snapshot.processId);
131
+ childProcessIdsByParent.set(snapshot.stat.parentProcessId, childProcessIds);
132
+ }
133
+ for (const childProcessIds of childProcessIdsByParent.values()) {
134
+ childProcessIds.sort((left, right) => left - right);
135
+ }
136
+ return childProcessIdsByParent;
137
+ };
138
+ this.readTokenHoldingWorkerProcesses = (snapshotsByProcessId) => {
139
+ const workerProcessesById = new Map();
140
+ for (const snapshot of snapshotsByProcessId.values()) {
141
+ if (snapshot.oauthToken === null) {
142
+ continue;
143
+ }
144
+ const rawCommandLine = this.readProcessFile(String(snapshot.processId), 'cmdline');
145
+ if (rawCommandLine === null ||
146
+ !rawCommandLine.includes(TAKE_OWNERSHIP_MARKER)) {
147
+ continue;
148
+ }
149
+ workerProcessesById.set(snapshot.processId, {
150
+ processId: snapshot.processId,
151
+ rawCommandLine,
152
+ oauthToken: snapshot.oauthToken,
153
+ });
154
+ }
155
+ return workerProcessesById;
156
+ };
157
+ this.listDescendantsShallowestFirst = (rootProcessId, childProcessIdsByParent) => {
158
+ const descendants = [];
159
+ const visitedProcessIds = new Set([rootProcessId]);
160
+ const pendingProcessIds = [rootProcessId];
161
+ for (let pendingProcessId = pendingProcessIds.shift(); pendingProcessId !== undefined; pendingProcessId = pendingProcessIds.shift()) {
162
+ for (const childProcessId of childProcessIdsByParent.get(pendingProcessId) ?? []) {
163
+ if (visitedProcessIds.has(childProcessId)) {
164
+ continue;
165
+ }
166
+ visitedProcessIds.add(childProcessId);
167
+ descendants.push(childProcessId);
168
+ pendingProcessIds.push(childProcessId);
169
+ }
170
+ }
171
+ return descendants;
172
+ };
173
+ this.listWorkerProcessesOfSession = (rootProcessId, childProcessIdsByParent, workerProcessesById) => {
174
+ const sessionProcessIds = new Set([rootProcessId]);
175
+ const pendingProcessIds = [rootProcessId];
176
+ for (let pendingProcessId = pendingProcessIds.shift(); pendingProcessId !== undefined; pendingProcessId = pendingProcessIds.shift()) {
177
+ for (const childProcessId of childProcessIdsByParent.get(pendingProcessId) ?? []) {
178
+ if (sessionProcessIds.has(childProcessId) ||
179
+ !workerProcessesById.has(childProcessId)) {
180
+ continue;
181
+ }
182
+ sessionProcessIds.add(childProcessId);
183
+ pendingProcessIds.push(childProcessId);
184
+ }
185
+ }
186
+ return [...sessionProcessIds]
187
+ .sort((left, right) => left - right)
188
+ .flatMap((processId) => {
189
+ const workerProcess = workerProcessesById.get(processId);
190
+ return workerProcess === undefined
191
+ ? []
192
+ : [
193
+ {
194
+ processId: workerProcess.processId,
195
+ rawCommandLine: workerProcess.rawCommandLine,
196
+ },
197
+ ];
198
+ });
199
+ };
200
+ this.readProcessFile = (processIdDirectory, fileName) => {
201
+ try {
202
+ return fs.readFileSync(path.join(this.procDirectory, processIdDirectory, fileName), 'utf8');
203
+ }
204
+ catch {
205
+ return null;
206
+ }
207
+ };
208
+ }
209
+ }
210
+ exports.ProcTakeOwnershipWorkerSessionReader = ProcTakeOwnershipWorkerSessionReader;
211
+ //# sourceMappingURL=ProcTakeOwnershipWorkerSessionReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcTakeOwnershipWorkerSessionReader.js","sourceRoot":"","sources":["../../../src/adapter/repositories/ProcTakeOwnershipWorkerSessionReader.ts"],"names":[],"mappings":"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"}
@@ -1,49 +1,16 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.ProxyClaudeTokenUsageRepository = void 0;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
4
  const ensureProxyRunning_1 = require("../proxy/ensureProxyRunning");
40
5
  const RateLimitCache_1 = require("../proxy/RateLimitCache");
41
6
  const TokenListLoader_1 = require("../proxy/TokenListLoader");
42
- const TAKE_OWNERSHIP_COMMAND_MARKER = 'Take ownership';
7
+ const ProcTakeOwnershipWorkerSessionReader_1 = require("./ProcTakeOwnershipWorkerSessionReader");
8
+ const PROC_DIRECTORY = '/proc';
43
9
  class ProxyClaudeTokenUsageRepository {
44
10
  constructor(tokenListJsonPath, port = RateLimitCache_1.PROXY_PORT) {
45
11
  this.tokenListJsonPath = tokenListJsonPath;
46
12
  this.port = port;
13
+ this.workerSessionReader = new ProcTakeOwnershipWorkerSessionReader_1.ProcTakeOwnershipWorkerSessionReader(PROC_DIRECTORY);
47
14
  this.ensureObservable = async () => {
48
15
  await (0, ensureProxyRunning_1.ensureProxyRunning)(this.port);
49
16
  };
@@ -131,70 +98,11 @@ class ProxyClaudeTokenUsageRepository {
131
98
  };
132
99
  this.getTokenInFlightCounts = async () => {
133
100
  const counts = {};
134
- let procEntries;
135
- try {
136
- procEntries = fs.readdirSync('/proc');
137
- }
138
- catch {
139
- return counts;
140
- }
141
- const tokenByPid = new Map();
142
- for (const entry of procEntries) {
143
- if (!/^\d+$/.test(entry))
144
- continue;
145
- const environPath = path.join('/proc', entry, 'environ');
146
- let environ;
147
- try {
148
- environ = fs.readFileSync(environPath, 'utf8');
149
- }
150
- catch {
151
- continue;
152
- }
153
- const vars = environ.split('\0');
154
- const tokenEntry = vars.find((v) => v.startsWith('CLAUDE_CODE_OAUTH_TOKEN='));
155
- if (tokenEntry === undefined)
156
- continue;
157
- const token = tokenEntry.slice('CLAUDE_CODE_OAUTH_TOKEN='.length);
158
- if (token.length === 0)
159
- continue;
160
- if (!this.isPreparationWorkerProcess(entry))
161
- continue;
162
- tokenByPid.set(Number(entry), token);
163
- }
164
- for (const [pid, token] of tokenByPid) {
165
- const parentPid = this.readParentPid(pid);
166
- if (parentPid !== null && tokenByPid.has(parentPid))
167
- continue;
168
- counts[token] = (counts[token] ?? 0) + 1;
101
+ for (const session of this.workerSessionReader.listWorkerSessions()) {
102
+ counts[session.sessionToken] = (counts[session.sessionToken] ?? 0) + 1;
169
103
  }
170
104
  return counts;
171
105
  };
172
- this.isPreparationWorkerProcess = (procEntry) => {
173
- const commandLinePath = path.join('/proc', procEntry, 'cmdline');
174
- let commandLine;
175
- try {
176
- commandLine = fs.readFileSync(commandLinePath, 'utf8');
177
- }
178
- catch {
179
- return false;
180
- }
181
- return commandLine.includes(TAKE_OWNERSHIP_COMMAND_MARKER);
182
- };
183
- this.readParentPid = (pid) => {
184
- let stat;
185
- try {
186
- stat = fs.readFileSync(path.join('/proc', String(pid), 'stat'), 'utf8');
187
- }
188
- catch {
189
- return null;
190
- }
191
- const afterComm = stat.slice(stat.lastIndexOf(') ') + 2);
192
- const fields = afterComm.trim().split(/\s+/);
193
- const parentPid = Number(fields[1]);
194
- if (!Number.isInteger(parentPid))
195
- return null;
196
- return parentPid;
197
- };
198
106
  this.proxyBaseUrl = () => `http://127.0.0.1:${this.port}`;
199
107
  }
200
108
  }
@@ -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":";;;AAEA,oEAAiE;AACjE,4DAAoE;AACpE,8DAA4D;AAC5D,iGAA8F;AAE9F,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAa,+BAA+B;IAI1C,YACmB,iBAAgC,EAChC,OAAe,2BAAU;QADzB,sBAAiB,GAAjB,iBAAiB,CAAe;QAChC,SAAI,GAAJ,IAAI,CAAqB;QAL3B,wBAAmB,GAClC,IAAI,2EAAoC,CAAC,cAAc,CAAC,CAAC;QAO3D,qBAAgB,GAAG,KAAK,IAAmB,EAAE;YAC3C,MAAM,IAAA,uCAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,4BAAuB,GAAG,KAAK,IAAiC,EAAE;YAChE,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;gBACpC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,OAAO,GAAG,IAAA,kCAAgB,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACzD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CACxB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,EAA2B,EAAE;gBAC5D,MAAM,QAAQ,GAAG,IAAA,8BAAa,EAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,oBAAoB,EAAE,CAAC;oBACvD,OAAO,CAAC,KAAK,CACX,qDAAqD,IAAI,8DAA8D,CACxH,CAAC;oBACF,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,OAAO;wBACL,IAAI;wBACJ,KAAK;wBACL,mBAAmB,EAAE,CAAC;wBACtB,mBAAmB,EAAE,CAAC;wBACtB,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,KAAK;wBACf,gBAAgB,EAAE,KAAK;wBACvB,iBAAiB,EAAE,EAAE;wBACrB,iBAAiB,EAAE,CAAC;wBACpB,eAAe;qBAChB,CAAC;gBACJ,CAAC;gBACD,MAAM,eAAe,GACnB,eAAe,GAAG,QAAQ,CAAC,aAAa;oBACxC,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,aAAa,CAAC;gBACtD,MAAM,eAAe,GACnB,eAAe,GAAG,QAAQ,CAAC,aAAa;oBACxC,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,aAAa,CAAC;gBACtD,MAAM,mBAAmB,GAAG,eAAe;oBACzC,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACjC,MAAM,mBAAmB,GAAG,eAAe;oBACzC,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACjC,MAAM,uBAAuB,GAC3B,QAAQ,CAAC,gBAAgB,IAAI,CAAC,eAAe,CAAC;gBAChD,MAAM,uBAAuB,GAC3B,QAAQ,CAAC,gBAAgB,IAAI,CAAC,eAAe,CAAC;gBAChD,MAAM,sBAAsB,GAC1B,QAAQ,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC;gBAC/C,MAAM,QAAQ,GACZ,sBAAsB;oBACtB,uBAAuB;oBACvB,uBAAuB,CAAC;gBAC1B,MAAM,iBAAiB,GAGnB,EAAE,CAAC;gBACP,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAC7C,QAAQ,CAAC,iBAAiB,CAC3B,EAAE,CAAC;oBACF,MAAM,OAAO,GAAG,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC;oBACjD,iBAAiB,CAAC,SAAS,CAAC,GAAG;wBAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,OAAO;wBACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;qBACzB,CAAC;gBACJ,CAAC;gBACD,MAAM,yBAAyB,GAC7B,iBAAiB,CAAC,WAAW,CAAC,KAAK,SAAS;oBAC5C,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,SAAS;oBACjD,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC;gBACtD,MAAM,0BAA0B,GAC9B,iBAAiB,CAAC,WAAW,CAAC,KAAK,SAAS;oBAC5C,CAAC,CAAC,yBAAyB,IAAI,uBAAuB,CAAC,CAAC;gBAC1D,IACE,QAAQ,CAAC,aAAa,GAAG,CAAC;oBAC1B,CAAC,eAAe;oBAChB,0BAA0B,EAC1B,CAAC;oBACD,iBAAiB,CAAC,WAAW,CAAC,GAAG;wBAC/B,QAAQ,EAAE,uBAAuB;wBACjC,QAAQ,EAAE,QAAQ,CAAC,aAAa;qBACjC,CAAC;gBACJ,CAAC;gBACD,MAAM,cAAc,GAAG,QAAQ,CAAC,iBAAiB,GAAG,eAAe,CAAC;gBACpE,OAAO;oBACL,IAAI;oBACJ,KAAK;oBACL,mBAAmB;oBACnB,mBAAmB;oBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,QAAQ;oBACR,gBAAgB,EAAE,uBAAuB;oBACzC,iBAAiB;oBACjB,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;oBAClE,eAAe;iBAChB,CAAC;YACJ,CAAC,CACF,CAAC;YACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QAC7E,CAAC,CAAC;QAEF,2BAAsB,GAAG,KAAK,IAAqC,EAAE;YACnE,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBACpE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAW,EAAE,CAAC,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC;IApH1D,CAAC;CAqHL;AA5HD,0EA4HC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-issue-tower-defence-management",
3
- "version": "2.151.5",
3
+ "version": "2.151.6",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -1,12 +1,11 @@
1
1
  import { TakeOwnershipSpawn, TakeOwnershipSpawnRepository } from '../../domain/usecases/adapter-interfaces/TakeOwnershipSpawnRepository';
2
2
  export declare class ProcTakeOwnershipSpawnRepository implements TakeOwnershipSpawnRepository {
3
3
  private readonly procDirectory;
4
+ private readonly workerSessionReader;
4
5
  constructor(procDirectory?: string);
5
6
  listSpawns: () => TakeOwnershipSpawn[];
6
7
  listRunningIssueUrls: () => string[];
7
8
  private listProcessIdDirectories;
8
- private readSpawn;
9
9
  private readRawCmdline;
10
- private readEnviron;
11
10
  }
12
11
  //# sourceMappingURL=ProcTakeOwnershipSpawnRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProcTakeOwnershipSpawnRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProcTakeOwnershipSpawnRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC7B,MAAM,uEAAuE,CAAC;AAmB/E,qBAAa,gCAAiC,YAAW,4BAA4B;IAEjF,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,GAAE,MAA+B;IAGjE,UAAU,QAAO,kBAAkB,EAAE,CASnC;IAEF,oBAAoB,QAAO,MAAM,EAAE,CAajC;IAEF,OAAO,CAAC,wBAAwB,CAQ9B;IAEF,OAAO,CAAC,SAAS,CAwBf;IAEF,OAAO,CAAC,cAAc,CAWpB;IAEF,OAAO,CAAC,WAAW,CA4BjB;CACH"}
1
+ {"version":3,"file":"ProcTakeOwnershipSpawnRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProcTakeOwnershipSpawnRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC7B,MAAM,uEAAuE,CAAC;AAY/E,qBAAa,gCAAiC,YAAW,4BAA4B;IAGvE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuC;gBAE9C,aAAa,GAAE,MAA+B;IAM3E,UAAU,QAAO,kBAAkB,EAAE,CAQjC;IAEJ,oBAAoB,QAAO,MAAM,EAAE,CAajC;IAEF,OAAO,CAAC,wBAAwB,CAQ9B;IAEF,OAAO,CAAC,cAAc,CAWpB;CACH"}
@@ -0,0 +1,21 @@
1
+ export type TakeOwnershipWorkerProcess = {
2
+ processId: number;
3
+ rawCommandLine: string;
4
+ };
5
+ export type TakeOwnershipWorkerSession = {
6
+ rootProcessId: number;
7
+ sessionToken: string;
8
+ workerProcesses: TakeOwnershipWorkerProcess[];
9
+ };
10
+ export declare class ProcTakeOwnershipWorkerSessionReader {
11
+ private readonly procDirectory;
12
+ constructor(procDirectory: string);
13
+ listWorkerSessions: () => TakeOwnershipWorkerSession[];
14
+ private readProcessSnapshots;
15
+ private groupChildProcessIdsByParent;
16
+ private readTokenHoldingWorkerProcesses;
17
+ private listDescendantsShallowestFirst;
18
+ private listWorkerProcessesOfSession;
19
+ private readProcessFile;
20
+ }
21
+ //# sourceMappingURL=ProcTakeOwnershipWorkerSessionReader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcTakeOwnershipWorkerSessionReader.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProcTakeOwnershipWorkerSessionReader.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,0BAA0B,EAAE,CAAC;CAC/C,CAAC;AAgDF,qBAAa,oCAAoC;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,MAAM;IAElD,kBAAkB,QAAO,0BAA0B,EAAE,CA0CnD;IAEF,OAAO,CAAC,oBAAoB,CAqB1B;IAEF,OAAO,CAAC,4BAA4B,CAoBlC;IAEF,OAAO,CAAC,+BAA+B,CAyBrC;IAEF,OAAO,CAAC,8BAA8B,CAwBpC;IAEF,OAAO,CAAC,4BAA4B,CAsClC;IAEF,OAAO,CAAC,eAAe,CAYrB;CACH"}
@@ -3,12 +3,11 @@ import { ClaudeTokenUsageRepository } from '../../domain/usecases/adapter-interf
3
3
  export declare class ProxyClaudeTokenUsageRepository implements ClaudeTokenUsageRepository {
4
4
  private readonly tokenListJsonPath;
5
5
  private readonly port;
6
+ private readonly workerSessionReader;
6
7
  constructor(tokenListJsonPath: string | null, port?: number);
7
8
  ensureObservable: () => Promise<void>;
8
9
  getAvailableTokenUsages: () => Promise<ClaudeTokenUsage[]>;
9
10
  getTokenInFlightCounts: () => Promise<Record<string, number>>;
10
- private isPreparationWorkerProcess;
11
- private readParentPid;
12
11
  proxyBaseUrl: () => string;
13
12
  }
14
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;AAOjH,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,CAoG7D;IAEF,sBAAsB,QAAa,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkChE;IAEF,OAAO,CAAC,0BAA0B,CAShC;IAEF,OAAO,CAAC,aAAa,CAYnB;IAEF,YAAY,QAAO,MAAM,CAAoC;CAC9D"}
1
+ {"version":3,"file":"ProxyClaudeTokenUsageRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;AAQjH,qBAAa,+BAAgC,YAAW,0BAA0B;IAK9E,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CACuB;gBAGxC,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,CAoG7D;IAEF,sBAAsB,QAAa,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAMhE;IAEF,YAAY,QAAO,MAAM,CAAoC;CAC9D"}