@ai-devkit/agent-manager 0.1.0 → 0.3.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/dist/adapters/ClaudeCodeAdapter.d.ts +12 -0
- package/dist/adapters/ClaudeCodeAdapter.d.ts.map +1 -1
- package/dist/adapters/ClaudeCodeAdapter.js +208 -50
- package/dist/adapters/ClaudeCodeAdapter.js.map +1 -1
- package/dist/adapters/CodexAdapter.d.ts +52 -0
- package/dist/adapters/CodexAdapter.d.ts.map +1 -0
- package/dist/adapters/CodexAdapter.js +432 -0
- package/dist/adapters/CodexAdapter.js.map +1 -0
- package/dist/adapters/index.d.ts +1 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +3 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/terminal/TerminalFocusManager.d.ts +7 -1
- package/dist/terminal/TerminalFocusManager.d.ts.map +1 -1
- package/dist/terminal/TerminalFocusManager.js +15 -8
- package/dist/terminal/TerminalFocusManager.js.map +1 -1
- package/dist/terminal/TtyWriter.d.ts +23 -0
- package/dist/terminal/TtyWriter.d.ts.map +1 -0
- package/dist/terminal/TtyWriter.js +106 -0
- package/dist/terminal/TtyWriter.js.map +1 -0
- package/dist/terminal/index.d.ts +2 -0
- package/dist/terminal/index.d.ts.map +1 -1
- package/dist/terminal/index.js +5 -1
- package/dist/terminal/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/adapters/ClaudeCodeAdapter.test.ts +120 -2
- package/src/__tests__/adapters/CodexAdapter.test.ts +319 -0
- package/src/__tests__/terminal/TtyWriter.test.ts +154 -0
- package/src/adapters/ClaudeCodeAdapter.ts +309 -56
- package/src/adapters/CodexAdapter.ts +584 -0
- package/src/adapters/index.ts +1 -0
- package/src/index.ts +3 -1
- package/src/terminal/TerminalFocusManager.ts +15 -8
- package/src/terminal/TtyWriter.ts +112 -0
- package/src/terminal/index.ts +2 -0
|
@@ -31,6 +31,14 @@ export declare class ClaudeCodeAdapter implements AgentAdapter {
|
|
|
31
31
|
* Detect running Claude Code agents
|
|
32
32
|
*/
|
|
33
33
|
detectAgents(): Promise<AgentInfo[]>;
|
|
34
|
+
private assignHistoryEntriesForExactProcessCwd;
|
|
35
|
+
private assignSessionsForMode;
|
|
36
|
+
private selectBestSession;
|
|
37
|
+
private mapSessionToAgent;
|
|
38
|
+
private mapProcessOnlyAgent;
|
|
39
|
+
private mapHistoryToAgent;
|
|
40
|
+
private indexHistoryByProjectPath;
|
|
41
|
+
private selectHistoryForProcess;
|
|
34
42
|
/**
|
|
35
43
|
* Read all Claude Code sessions
|
|
36
44
|
*/
|
|
@@ -54,5 +62,9 @@ export declare class ClaudeCodeAdapter implements AgentAdapter {
|
|
|
54
62
|
* Uses project basename, appends slug if multiple sessions for same project
|
|
55
63
|
*/
|
|
56
64
|
private generateAgentName;
|
|
65
|
+
private pathEquals;
|
|
66
|
+
private isChildPath;
|
|
67
|
+
private normalizePath;
|
|
68
|
+
private pathDepth;
|
|
57
69
|
}
|
|
58
70
|
//# sourceMappingURL=ClaudeCodeAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCodeAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ClaudeCodeAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ClaudeCodeAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ClaudeCodeAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAkE3E;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IAClD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,6DAA6D;IAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAK;IAEnD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;;IAS5B;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO;IAI5C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAgE1C,OAAO,CAAC,sCAAsC;IAuB9C,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,iBAAiB;IA6CzB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,uBAAuB;IAa/B;;OAEG;IACH,OAAO,CAAC,YAAY;IA0DpB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAsCtB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqCvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,SAAS;CAQpB"}
|
|
@@ -45,6 +45,16 @@ const path = __importStar(require("path"));
|
|
|
45
45
|
const AgentAdapter_1 = require("./AgentAdapter");
|
|
46
46
|
const process_1 = require("../utils/process");
|
|
47
47
|
const file_1 = require("../utils/file");
|
|
48
|
+
var SessionEntryType;
|
|
49
|
+
(function (SessionEntryType) {
|
|
50
|
+
SessionEntryType["ASSISTANT"] = "assistant";
|
|
51
|
+
SessionEntryType["USER"] = "user";
|
|
52
|
+
SessionEntryType["PROGRESS"] = "progress";
|
|
53
|
+
SessionEntryType["THINKING"] = "thinking";
|
|
54
|
+
SessionEntryType["SYSTEM"] = "system";
|
|
55
|
+
SessionEntryType["MESSAGE"] = "message";
|
|
56
|
+
SessionEntryType["TEXT"] = "text";
|
|
57
|
+
})(SessionEntryType || (SessionEntryType = {}));
|
|
48
58
|
/**
|
|
49
59
|
* Claude Code Adapter
|
|
50
60
|
*
|
|
@@ -73,61 +83,177 @@ class ClaudeCodeAdapter {
|
|
|
73
83
|
* Detect running Claude Code agents
|
|
74
84
|
*/
|
|
75
85
|
async detectAgents() {
|
|
76
|
-
|
|
77
|
-
const claudeProcesses = (0, process_1.listProcesses)({ namePattern: 'claude' });
|
|
86
|
+
const claudeProcesses = (0, process_1.listProcesses)({ namePattern: 'claude' }).filter((processInfo) => this.canHandle(processInfo));
|
|
78
87
|
if (claudeProcesses.length === 0) {
|
|
79
88
|
return [];
|
|
80
89
|
}
|
|
81
|
-
// 2. Read all sessions
|
|
82
90
|
const sessions = this.readSessions();
|
|
83
|
-
// 3. Read history for summaries
|
|
84
91
|
const history = this.readHistory();
|
|
85
|
-
|
|
86
|
-
const
|
|
87
|
-
for (const
|
|
88
|
-
|
|
89
|
-
list.push(p);
|
|
90
|
-
processesByCwd.set(p.cwd, list);
|
|
92
|
+
const historyByProjectPath = this.indexHistoryByProjectPath(history);
|
|
93
|
+
const historyBySessionId = new Map();
|
|
94
|
+
for (const entry of history) {
|
|
95
|
+
historyBySessionId.set(entry.sessionId, entry);
|
|
91
96
|
}
|
|
92
|
-
|
|
97
|
+
const sortedSessions = [...sessions].sort((a, b) => {
|
|
98
|
+
const timeA = a.lastActive?.getTime() || 0;
|
|
99
|
+
const timeB = b.lastActive?.getTime() || 0;
|
|
100
|
+
return timeB - timeA;
|
|
101
|
+
});
|
|
102
|
+
const usedSessionIds = new Set();
|
|
103
|
+
const assignedPids = new Set();
|
|
93
104
|
const agents = [];
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
105
|
+
this.assignSessionsForMode('cwd', claudeProcesses, sortedSessions, usedSessionIds, assignedPids, historyBySessionId, agents);
|
|
106
|
+
this.assignHistoryEntriesForExactProcessCwd(claudeProcesses, assignedPids, historyByProjectPath, usedSessionIds, agents);
|
|
107
|
+
this.assignSessionsForMode('project-parent', claudeProcesses, sortedSessions, usedSessionIds, assignedPids, historyBySessionId, agents);
|
|
108
|
+
for (const processInfo of claudeProcesses) {
|
|
109
|
+
if (assignedPids.has(processInfo.pid)) {
|
|
98
110
|
continue;
|
|
99
111
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const timeA = a.lastActive?.getTime() || 0;
|
|
103
|
-
const timeB = b.lastActive?.getTime() || 0;
|
|
104
|
-
return timeB - timeA;
|
|
105
|
-
});
|
|
106
|
-
// Map processes to the most recent sessions
|
|
107
|
-
// If there are 2 processes, we take the 2 most recent sessions
|
|
108
|
-
const activeSessions = projectSessions.slice(0, processes.length);
|
|
109
|
-
for (let i = 0; i < activeSessions.length; i++) {
|
|
110
|
-
const session = activeSessions[i];
|
|
111
|
-
const process = processes[i]; // Assign process to session (arbitrary 1-to-1 mapping)
|
|
112
|
-
const historyEntry = [...history].reverse().find(h => h.sessionId === session.sessionId);
|
|
113
|
-
const summary = historyEntry?.display || 'Session started';
|
|
114
|
-
const status = this.determineStatus(session);
|
|
115
|
-
const agentName = this.generateAgentName(session, agents); // Pass currently built agents for collision checks
|
|
116
|
-
agents.push({
|
|
117
|
-
name: agentName,
|
|
118
|
-
type: this.type,
|
|
119
|
-
status,
|
|
120
|
-
summary,
|
|
121
|
-
pid: process.pid,
|
|
122
|
-
projectPath: session.projectPath,
|
|
123
|
-
sessionId: session.sessionId,
|
|
124
|
-
slug: session.slug,
|
|
125
|
-
lastActive: session.lastActive || new Date(),
|
|
126
|
-
});
|
|
127
|
-
}
|
|
112
|
+
assignedPids.add(processInfo.pid);
|
|
113
|
+
agents.push(this.mapProcessOnlyAgent(processInfo, agents, historyByProjectPath, usedSessionIds));
|
|
128
114
|
}
|
|
129
115
|
return agents;
|
|
130
116
|
}
|
|
117
|
+
assignHistoryEntriesForExactProcessCwd(claudeProcesses, assignedPids, historyByProjectPath, usedSessionIds, agents) {
|
|
118
|
+
for (const processInfo of claudeProcesses) {
|
|
119
|
+
if (assignedPids.has(processInfo.pid)) {
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
const historyEntry = this.selectHistoryForProcess(processInfo.cwd || '', historyByProjectPath, usedSessionIds);
|
|
123
|
+
if (!historyEntry) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
assignedPids.add(processInfo.pid);
|
|
127
|
+
usedSessionIds.add(historyEntry.sessionId);
|
|
128
|
+
agents.push(this.mapHistoryToAgent(processInfo, historyEntry, agents));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
assignSessionsForMode(mode, claudeProcesses, sessions, usedSessionIds, assignedPids, historyBySessionId, agents) {
|
|
132
|
+
for (const processInfo of claudeProcesses) {
|
|
133
|
+
if (assignedPids.has(processInfo.pid)) {
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
const session = this.selectBestSession(processInfo, sessions, usedSessionIds, mode);
|
|
137
|
+
if (!session) {
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
usedSessionIds.add(session.sessionId);
|
|
141
|
+
assignedPids.add(processInfo.pid);
|
|
142
|
+
agents.push(this.mapSessionToAgent(session, processInfo, historyBySessionId, agents));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
selectBestSession(processInfo, sessions, usedSessionIds, mode) {
|
|
146
|
+
const candidates = sessions.filter((session) => {
|
|
147
|
+
if (usedSessionIds.has(session.sessionId)) {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
if (mode === 'cwd') {
|
|
151
|
+
return this.pathEquals(processInfo.cwd, session.lastCwd)
|
|
152
|
+
|| this.pathEquals(processInfo.cwd, session.projectPath);
|
|
153
|
+
}
|
|
154
|
+
if (mode === 'project-parent') {
|
|
155
|
+
return this.isChildPath(processInfo.cwd, session.projectPath)
|
|
156
|
+
|| this.isChildPath(processInfo.cwd, session.lastCwd);
|
|
157
|
+
}
|
|
158
|
+
return false;
|
|
159
|
+
});
|
|
160
|
+
if (candidates.length === 0) {
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
if (mode !== 'project-parent') {
|
|
164
|
+
return candidates[0];
|
|
165
|
+
}
|
|
166
|
+
return candidates.sort((a, b) => {
|
|
167
|
+
const depthA = Math.max(this.pathDepth(a.projectPath), this.pathDepth(a.lastCwd));
|
|
168
|
+
const depthB = Math.max(this.pathDepth(b.projectPath), this.pathDepth(b.lastCwd));
|
|
169
|
+
if (depthA !== depthB) {
|
|
170
|
+
return depthB - depthA;
|
|
171
|
+
}
|
|
172
|
+
const lastActiveA = a.lastActive?.getTime() || 0;
|
|
173
|
+
const lastActiveB = b.lastActive?.getTime() || 0;
|
|
174
|
+
return lastActiveB - lastActiveA;
|
|
175
|
+
})[0];
|
|
176
|
+
}
|
|
177
|
+
mapSessionToAgent(session, processInfo, historyBySessionId, existingAgents) {
|
|
178
|
+
const historyEntry = historyBySessionId.get(session.sessionId);
|
|
179
|
+
return {
|
|
180
|
+
name: this.generateAgentName(session, existingAgents),
|
|
181
|
+
type: this.type,
|
|
182
|
+
status: this.determineStatus(session),
|
|
183
|
+
summary: historyEntry?.display || 'Session started',
|
|
184
|
+
pid: processInfo.pid,
|
|
185
|
+
projectPath: session.projectPath || processInfo.cwd || '',
|
|
186
|
+
sessionId: session.sessionId,
|
|
187
|
+
slug: session.slug,
|
|
188
|
+
lastActive: session.lastActive || new Date(),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
mapProcessOnlyAgent(processInfo, existingAgents, historyByProjectPath, usedSessionIds) {
|
|
192
|
+
const projectPath = processInfo.cwd || '';
|
|
193
|
+
const historyEntry = this.selectHistoryForProcess(projectPath, historyByProjectPath, usedSessionIds);
|
|
194
|
+
const sessionId = historyEntry?.sessionId || `pid-${processInfo.pid}`;
|
|
195
|
+
const lastActive = historyEntry ? new Date(historyEntry.timestamp) : new Date();
|
|
196
|
+
if (historyEntry) {
|
|
197
|
+
usedSessionIds.add(historyEntry.sessionId);
|
|
198
|
+
}
|
|
199
|
+
const processSession = {
|
|
200
|
+
sessionId,
|
|
201
|
+
projectPath,
|
|
202
|
+
lastCwd: projectPath,
|
|
203
|
+
sessionLogPath: '',
|
|
204
|
+
lastActive,
|
|
205
|
+
};
|
|
206
|
+
return {
|
|
207
|
+
name: this.generateAgentName(processSession, existingAgents),
|
|
208
|
+
type: this.type,
|
|
209
|
+
status: AgentAdapter_1.AgentStatus.RUNNING,
|
|
210
|
+
summary: historyEntry?.display || 'Claude process running',
|
|
211
|
+
pid: processInfo.pid,
|
|
212
|
+
projectPath,
|
|
213
|
+
sessionId: processSession.sessionId,
|
|
214
|
+
lastActive: processSession.lastActive || new Date(),
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
mapHistoryToAgent(processInfo, historyEntry, existingAgents) {
|
|
218
|
+
const projectPath = processInfo.cwd || historyEntry.project;
|
|
219
|
+
const historySession = {
|
|
220
|
+
sessionId: historyEntry.sessionId,
|
|
221
|
+
projectPath,
|
|
222
|
+
lastCwd: projectPath,
|
|
223
|
+
sessionLogPath: '',
|
|
224
|
+
lastActive: new Date(historyEntry.timestamp),
|
|
225
|
+
};
|
|
226
|
+
return {
|
|
227
|
+
name: this.generateAgentName(historySession, existingAgents),
|
|
228
|
+
type: this.type,
|
|
229
|
+
status: AgentAdapter_1.AgentStatus.RUNNING,
|
|
230
|
+
summary: historyEntry.display || 'Claude process running',
|
|
231
|
+
pid: processInfo.pid,
|
|
232
|
+
projectPath,
|
|
233
|
+
sessionId: historySession.sessionId,
|
|
234
|
+
lastActive: historySession.lastActive || new Date(),
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
indexHistoryByProjectPath(historyEntries) {
|
|
238
|
+
const grouped = new Map();
|
|
239
|
+
for (const entry of historyEntries) {
|
|
240
|
+
const key = this.normalizePath(entry.project);
|
|
241
|
+
const list = grouped.get(key) || [];
|
|
242
|
+
list.push(entry);
|
|
243
|
+
grouped.set(key, list);
|
|
244
|
+
}
|
|
245
|
+
for (const [key, list] of grouped.entries()) {
|
|
246
|
+
grouped.set(key, [...list].sort((a, b) => b.timestamp - a.timestamp));
|
|
247
|
+
}
|
|
248
|
+
return grouped;
|
|
249
|
+
}
|
|
250
|
+
selectHistoryForProcess(processCwd, historyByProjectPath, usedSessionIds) {
|
|
251
|
+
if (!processCwd) {
|
|
252
|
+
return undefined;
|
|
253
|
+
}
|
|
254
|
+
const candidates = historyByProjectPath.get(this.normalizePath(processCwd)) || [];
|
|
255
|
+
return candidates.find((entry) => !usedSessionIds.has(entry.sessionId));
|
|
256
|
+
}
|
|
131
257
|
/**
|
|
132
258
|
* Read all Claude Code sessions
|
|
133
259
|
*/
|
|
@@ -164,6 +290,7 @@ class ClaudeCodeAdapter {
|
|
|
164
290
|
sessions.push({
|
|
165
291
|
sessionId,
|
|
166
292
|
projectPath: sessionsIndex.originalPath,
|
|
293
|
+
lastCwd: sessionData.lastCwd,
|
|
167
294
|
slug: sessionData.slug,
|
|
168
295
|
sessionLogPath,
|
|
169
296
|
lastEntry: sessionData.lastEntry,
|
|
@@ -187,6 +314,7 @@ class ClaudeCodeAdapter {
|
|
|
187
314
|
let slug;
|
|
188
315
|
let lastEntry;
|
|
189
316
|
let lastActive;
|
|
317
|
+
let lastCwd;
|
|
190
318
|
for (const line of lines) {
|
|
191
319
|
try {
|
|
192
320
|
const entry = JSON.parse(line);
|
|
@@ -197,12 +325,15 @@ class ClaudeCodeAdapter {
|
|
|
197
325
|
if (entry.timestamp) {
|
|
198
326
|
lastActive = new Date(entry.timestamp);
|
|
199
327
|
}
|
|
328
|
+
if (typeof entry.cwd === 'string' && entry.cwd.trim().length > 0) {
|
|
329
|
+
lastCwd = entry.cwd;
|
|
330
|
+
}
|
|
200
331
|
}
|
|
201
332
|
catch (error) {
|
|
202
333
|
continue;
|
|
203
334
|
}
|
|
204
335
|
}
|
|
205
|
-
return { slug, lastEntry, lastActive };
|
|
336
|
+
return { slug, lastEntry, lastActive, lastCwd };
|
|
206
337
|
}
|
|
207
338
|
/**
|
|
208
339
|
* Read history.jsonl for user prompts
|
|
@@ -224,24 +355,24 @@ class ClaudeCodeAdapter {
|
|
|
224
355
|
if (ageMinutes > ClaudeCodeAdapter.IDLE_THRESHOLD_MINUTES) {
|
|
225
356
|
return AgentAdapter_1.AgentStatus.IDLE;
|
|
226
357
|
}
|
|
227
|
-
if (entryType ===
|
|
358
|
+
if (entryType === SessionEntryType.USER) {
|
|
228
359
|
// Check if user interrupted manually - this puts agent back in waiting state
|
|
229
360
|
const content = session.lastEntry.message?.content;
|
|
230
361
|
if (Array.isArray(content)) {
|
|
231
|
-
const isInterrupted = content.some(c => (c.type ===
|
|
362
|
+
const isInterrupted = content.some(c => (c.type === SessionEntryType.TEXT && c.text?.includes('[Request interrupted')) ||
|
|
232
363
|
(c.type === 'tool_result' && c.content?.includes('[Request interrupted')));
|
|
233
364
|
if (isInterrupted)
|
|
234
365
|
return AgentAdapter_1.AgentStatus.WAITING;
|
|
235
366
|
}
|
|
236
367
|
return AgentAdapter_1.AgentStatus.RUNNING;
|
|
237
368
|
}
|
|
238
|
-
if (entryType ===
|
|
369
|
+
if (entryType === SessionEntryType.PROGRESS || entryType === SessionEntryType.THINKING) {
|
|
239
370
|
return AgentAdapter_1.AgentStatus.RUNNING;
|
|
240
371
|
}
|
|
241
|
-
else if (entryType ===
|
|
372
|
+
else if (entryType === SessionEntryType.ASSISTANT) {
|
|
242
373
|
return AgentAdapter_1.AgentStatus.WAITING;
|
|
243
374
|
}
|
|
244
|
-
else if (entryType ===
|
|
375
|
+
else if (entryType === SessionEntryType.SYSTEM) {
|
|
245
376
|
return AgentAdapter_1.AgentStatus.IDLE;
|
|
246
377
|
}
|
|
247
378
|
return AgentAdapter_1.AgentStatus.UNKNOWN;
|
|
@@ -251,7 +382,7 @@ class ClaudeCodeAdapter {
|
|
|
251
382
|
* Uses project basename, appends slug if multiple sessions for same project
|
|
252
383
|
*/
|
|
253
384
|
generateAgentName(session, existingAgents) {
|
|
254
|
-
const projectName = path.basename(session.projectPath);
|
|
385
|
+
const projectName = path.basename(session.projectPath) || 'claude';
|
|
255
386
|
const sameProjectAgents = existingAgents.filter(a => a.projectPath === session.projectPath);
|
|
256
387
|
if (sameProjectAgents.length === 0) {
|
|
257
388
|
return projectName;
|
|
@@ -267,6 +398,33 @@ class ClaudeCodeAdapter {
|
|
|
267
398
|
// No slug available, use session ID prefix
|
|
268
399
|
return `${projectName} (${session.sessionId.slice(0, 8)})`;
|
|
269
400
|
}
|
|
401
|
+
pathEquals(a, b) {
|
|
402
|
+
if (!a || !b) {
|
|
403
|
+
return false;
|
|
404
|
+
}
|
|
405
|
+
return this.normalizePath(a) === this.normalizePath(b);
|
|
406
|
+
}
|
|
407
|
+
isChildPath(child, parent) {
|
|
408
|
+
if (!child || !parent) {
|
|
409
|
+
return false;
|
|
410
|
+
}
|
|
411
|
+
const normalizedChild = this.normalizePath(child);
|
|
412
|
+
const normalizedParent = this.normalizePath(parent);
|
|
413
|
+
return normalizedChild === normalizedParent || normalizedChild.startsWith(`${normalizedParent}${path.sep}`);
|
|
414
|
+
}
|
|
415
|
+
normalizePath(value) {
|
|
416
|
+
const resolved = path.resolve(value);
|
|
417
|
+
if (resolved.length > 1 && resolved.endsWith(path.sep)) {
|
|
418
|
+
return resolved.slice(0, -1);
|
|
419
|
+
}
|
|
420
|
+
return resolved;
|
|
421
|
+
}
|
|
422
|
+
pathDepth(value) {
|
|
423
|
+
if (!value) {
|
|
424
|
+
return 0;
|
|
425
|
+
}
|
|
426
|
+
return this.normalizePath(value).split(path.sep).filter(Boolean).length;
|
|
427
|
+
}
|
|
270
428
|
}
|
|
271
429
|
exports.ClaudeCodeAdapter = ClaudeCodeAdapter;
|
|
272
430
|
/** Threshold in minutes before considering a session idle */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCodeAdapter.js","sourceRoot":"","sources":["../../src/adapters/ClaudeCodeAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ClaudeCodeAdapter.js","sourceRoot":"","sources":["../../src/adapters/ClaudeCodeAdapter.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAE7B,iDAA6C;AAC7C,8CAAiD;AACjD,wCAAuE;AASvE,IAAK,gBAQJ;AARD,WAAK,gBAAgB;IACjB,2CAAuB,CAAA;IACvB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;IACrB,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;IACnB,iCAAa,CAAA;AACjB,CAAC,EARI,gBAAgB,KAAhB,gBAAgB,QAQpB;AA8CD;;;;;;;;;GASG;AACH,MAAa,iBAAiB;IAU1B;QATS,SAAI,GAAG,QAAiB,CAAC;QAU9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,WAAwB;QAC9B,OAAO,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QACd,MAAM,eAAe,GAAG,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CACpF,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAC9B,CAAC;QAEF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAwB,CAAC;QAC3D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,KAAK,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,IAAI,CAAC,qBAAqB,CACtB,KAAK,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,MAAM,CACT,CAAC;QACF,IAAI,CAAC,sCAAsC,CACvC,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,MAAM,CACT,CAAC;QACF,IAAI,CAAC,qBAAqB,CACtB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,MAAM,CACT,CAAC;QACF,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE,CAAC;YACxC,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,SAAS;YACb,CAAC;YAED,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC,CAAC;QACrG,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,sCAAsC,CAC1C,eAA8B,EAC9B,YAAyB,EACzB,oBAAiD,EACjD,cAA2B,EAC3B,MAAmB;QAEnB,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE,CAAC;YACxC,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,SAAS;YACb,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC;YAC/G,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,SAAS;YACb,CAAC;YAED,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;IAEO,qBAAqB,CACzB,IAAsB,EACtB,eAA8B,EAC9B,QAAyB,EACzB,cAA2B,EAC3B,YAAyB,EACzB,kBAA6C,EAC7C,MAAmB;QAEnB,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE,CAAC;YACxC,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,SAAS;YACb,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;YACpF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,SAAS;YACb,CAAC;YAED,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACtC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1F,CAAC;IACL,CAAC;IAEO,iBAAiB,CACrB,WAAwB,EACxB,QAAyB,EACzB,cAA2B,EAC3B,IAAsB;QAEtB,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;uBACjD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;uBACtD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9D,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC5B,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAClF,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpB,OAAO,MAAM,GAAG,MAAM,CAAC;YAC3B,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,OAAO,WAAW,GAAG,WAAW,CAAC;QACrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;IAEO,iBAAiB,CACrB,OAAsB,EACtB,WAAwB,EACxB,kBAA6C,EAC7C,cAA2B;QAE3B,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE/D,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC;YACrD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YACrC,OAAO,EAAE,YAAY,EAAE,OAAO,IAAI,iBAAiB;YACnD,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,IAAI,EAAE;YACzD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE;SAC/C,CAAC;IACN,CAAC;IAEO,mBAAmB,CACvB,WAAwB,EACxB,cAA2B,EAC3B,oBAAiD,EACjD,cAA2B;QAE3B,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC;QACrG,MAAM,SAAS,GAAG,YAAY,EAAE,SAAS,IAAI,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;QACtE,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAChF,IAAI,YAAY,EAAE,CAAC;YACf,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,cAAc,GAAkB;YAClC,SAAS;YACT,WAAW;YACX,OAAO,EAAE,WAAW;YACpB,cAAc,EAAE,EAAE;YAClB,UAAU;SACb,CAAC;QAEF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC;YAC5D,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,0BAAW,CAAC,OAAO;YAC3B,OAAO,EAAE,YAAY,EAAE,OAAO,IAAI,wBAAwB;YAC1D,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,WAAW;YACX,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,UAAU,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE;SACtD,CAAC;IACN,CAAC;IAEO,iBAAiB,CACrB,WAAwB,EACxB,YAA0B,EAC1B,cAA2B;QAE3B,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC;QAC5D,MAAM,cAAc,GAAkB;YAClC,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,WAAW;YACX,OAAO,EAAE,WAAW;YACpB,cAAc,EAAE,EAAE;YAClB,UAAU,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;SAC/C,CAAC;QAEF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC;YAC5D,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,0BAAW,CAAC,OAAO;YAC3B,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,wBAAwB;YACzD,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,WAAW;YACX,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,UAAU,EAAE,cAAc,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE;SACtD,CAAC;IACN,CAAC;IAEO,yBAAyB,CAAC,cAA8B;QAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;QAElD,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CACP,GAAG,EACH,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CACtD,CAAC;QACN,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,uBAAuB,CAC3B,UAAkB,EAClB,oBAAiD,EACjD,cAA2B;QAE3B,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;QAClF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACK,YAAY;QAChB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErD,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAChC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,SAAS;YACb,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzC,SAAS;YACb,CAAC;YAED,wDAAwD;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;YAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5B,SAAS;YACb,CAAC;YAED,MAAM,aAAa,GAAG,IAAA,eAAQ,EAAgB,SAAS,CAAC,CAAC;YACzD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC;gBAC9C,SAAS;YACb,CAAC;YAED,MAAM,YAAY,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YAElF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACrC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACpD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;gBAE1D,IAAI,CAAC;oBACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;oBAExD,QAAQ,CAAC,IAAI,CAAC;wBACV,SAAS;wBACT,WAAW,EAAE,aAAa,CAAC,YAAY;wBACvC,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;wBACtB,cAAc;wBACd,SAAS,EAAE,WAAW,CAAC,SAAS;wBAChC,UAAU,EAAE,WAAW,CAAC,UAAU;qBACrC,CAAC,CAAC;gBACP,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC7D,SAAS;gBACb,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,OAAe;QAMlC,MAAM,KAAK,GAAG,IAAA,oBAAa,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAE1C,IAAI,IAAwB,CAAC;QAC7B,IAAI,SAAmC,CAAC;QACxC,IAAI,UAA4B,CAAC;QACjC,IAAI,OAA2B,CAAC;QAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC;gBACD,MAAM,KAAK,GAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE7C,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACtB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBACtB,CAAC;gBAED,SAAS,GAAG,KAAK,CAAC;gBAElB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBAClB,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3C,CAAC;gBAED,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/D,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;gBACxB,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,SAAS;YACb,CAAC;QACL,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACpD,CAAC;IAED;;;OAGG;IACK,WAAW;QACf,OAAO,IAAA,oBAAa,EAAe,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAsB;QAC1C,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,0BAAW,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;QACzC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;QAEnE,IAAI,UAAU,GAAG,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;YACxD,OAAO,0BAAW,CAAC,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,SAAS,KAAK,gBAAgB,CAAC,IAAI,EAAE,CAAC;YACtC,6EAA6E;YAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;YACnD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACnC,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC;oBAC9E,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAC5E,CAAC;gBACF,IAAI,aAAa;oBAAE,OAAO,0BAAW,CAAC,OAAO,CAAC;YAClD,CAAC;YACD,OAAO,0BAAW,CAAC,OAAO,CAAC;QAC/B,CAAC;QAED,IAAI,SAAS,KAAK,gBAAgB,CAAC,QAAQ,IAAI,SAAS,KAAK,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YACrF,OAAO,0BAAW,CAAC,OAAO,CAAC;QAC/B,CAAC;aAAM,IAAI,SAAS,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAClD,OAAO,0BAAW,CAAC,OAAO,CAAC;QAC/B,CAAC;aAAM,IAAI,SAAS,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC/C,OAAO,0BAAW,CAAC,IAAI,CAAC;QAC5B,CAAC;QAED,OAAO,0BAAW,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,OAAsB,EAAE,cAA2B;QACzE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC;QAEnE,MAAM,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAC7C,CAAC;QAEF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,WAAW,CAAC;QACvB,CAAC;QAED,kDAAkD;QAClD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,oEAAoE;YACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACvC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,OAAO,GAAG,WAAW,KAAK,QAAQ,GAAG,CAAC;QAC1C,CAAC;QAED,2CAA2C;QAC3C,OAAO,GAAG,WAAW,KAAK,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;IAC/D,CAAC;IAEO,UAAU,CAAC,CAAU,EAAE,CAAU;QACrC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEO,WAAW,CAAC,KAAc,EAAE,MAAe;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO,eAAe,KAAK,gBAAgB,IAAI,eAAe,CAAC,UAAU,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChH,CAAC;IAEO,aAAa,CAAC,KAAa;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,SAAS,CAAC,KAAc;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,CAAC,CAAC;QACb,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC5E,CAAC;;AA7fL,8CA+fC;AA5fG,6DAA6D;AACrC,wCAAsB,GAAG,CAAC,AAAJ,CAAK"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex Adapter
|
|
3
|
+
*
|
|
4
|
+
* Detects running Codex agents by combining:
|
|
5
|
+
* 1. Running `codex` processes
|
|
6
|
+
* 2. Session metadata under ~/.codex/sessions
|
|
7
|
+
*/
|
|
8
|
+
import type { AgentAdapter, AgentInfo, ProcessInfo } from './AgentAdapter';
|
|
9
|
+
export declare class CodexAdapter implements AgentAdapter {
|
|
10
|
+
readonly type: "codex";
|
|
11
|
+
/** Keep status thresholds aligned across adapters. */
|
|
12
|
+
private static readonly IDLE_THRESHOLD_MINUTES;
|
|
13
|
+
/** Limit session parsing per run to keep list latency bounded. */
|
|
14
|
+
private static readonly MIN_SESSION_SCAN;
|
|
15
|
+
private static readonly MAX_SESSION_SCAN;
|
|
16
|
+
private static readonly SESSION_SCAN_MULTIPLIER;
|
|
17
|
+
/** Also include session files around process start day to recover long-lived processes. */
|
|
18
|
+
private static readonly PROCESS_START_DAY_WINDOW_DAYS;
|
|
19
|
+
/** Matching tolerance between process start time and session start time. */
|
|
20
|
+
private static readonly PROCESS_SESSION_TIME_TOLERANCE_MS;
|
|
21
|
+
private codexSessionsDir;
|
|
22
|
+
constructor();
|
|
23
|
+
canHandle(processInfo: ProcessInfo): boolean;
|
|
24
|
+
detectAgents(): Promise<AgentInfo[]>;
|
|
25
|
+
private listCodexProcesses;
|
|
26
|
+
private calculateSessionScanLimit;
|
|
27
|
+
private assignSessionsForMode;
|
|
28
|
+
private addMappedSessionAgent;
|
|
29
|
+
private addProcessOnlyAgent;
|
|
30
|
+
private mapSessionToAgent;
|
|
31
|
+
private mapProcessOnlyAgent;
|
|
32
|
+
private readSessions;
|
|
33
|
+
private findSessionFiles;
|
|
34
|
+
private findProcessDaySessionFiles;
|
|
35
|
+
private toSessionDayKey;
|
|
36
|
+
private readSession;
|
|
37
|
+
private readFirstLine;
|
|
38
|
+
private parseSessionMeta;
|
|
39
|
+
private findLastEventEntry;
|
|
40
|
+
private parseTimestamp;
|
|
41
|
+
private selectBestSession;
|
|
42
|
+
private filterCandidateSessions;
|
|
43
|
+
private rankCandidatesByStartTime;
|
|
44
|
+
private getProcessStartTimes;
|
|
45
|
+
private parseElapsedSeconds;
|
|
46
|
+
private extractSummary;
|
|
47
|
+
private truncate;
|
|
48
|
+
private isCodexExecutable;
|
|
49
|
+
private determineStatus;
|
|
50
|
+
private generateAgentName;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=CodexAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodexAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/CodexAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAoC3E,qBAAa,YAAa,YAAW,YAAY;IAC7C,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAEjC,sDAAsD;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAK;IACnD,kEAAkE;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAK;IACpD,2FAA2F;IAC3F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAK;IAC1D,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iCAAiC,CAAiB;IAE1E,OAAO,CAAC,gBAAgB,CAAS;;IAOjC,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO;IAItC,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAiE1C,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,gBAAgB;IAgDxB,OAAO,CAAC,0BAA0B;IA6BlC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,yBAAyB;IAsBjC,OAAO,CAAC,oBAAoB;IAgC5B,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,iBAAiB;CAW5B"}
|