@ai-devkit/agent-manager 0.11.0 → 0.13.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/AgentAdapter.d.ts +1 -1
- package/dist/adapters/AgentAdapter.d.ts.map +1 -1
- package/dist/adapters/ClaudeCodeAdapter.d.ts +34 -2
- package/dist/adapters/ClaudeCodeAdapter.d.ts.map +1 -1
- package/dist/adapters/ClaudeCodeAdapter.js +145 -41
- package/dist/adapters/ClaudeCodeAdapter.js.map +1 -1
- package/dist/adapters/OpenCodeAdapter.d.ts +35 -0
- package/dist/adapters/OpenCodeAdapter.d.ts.map +1 -0
- package/dist/adapters/OpenCodeAdapter.js +329 -0
- package/dist/adapters/OpenCodeAdapter.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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +5 -1
- package/src/__tests__/adapters/ClaudeCodeAdapter.test.ts +297 -1
- package/src/__tests__/adapters/OpenCodeAdapter.test.ts +475 -0
- package/src/adapters/AgentAdapter.ts +1 -1
- package/src/adapters/ClaudeCodeAdapter.ts +181 -44
- package/src/adapters/OpenCodeAdapter.ts +340 -0
- package/src/adapters/index.ts +1 -0
- package/src/index.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/AgentAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/AgentAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAEjF;;GAEG;AACH,oBAAY,WAAW;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,OAAO,YAAY;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,IAAI,EAAE,SAAS,CAAC;IAEhB,qBAAqB;IACrB,MAAM,EAAE,WAAW,CAAC;IAEpB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IAEZ,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,SAAS,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,UAAU,EAAE,IAAI,CAAC;IAEjB,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IAEZ,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAEhB,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IAEZ,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IAEZ,uDAAuD;IACvD,SAAS,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC3B,sCAAsC;IACtC,IAAI,EAAE,SAAS,CAAC;IAEhB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB,+EAA+E;IAC/E,UAAU,EAAE,IAAI,CAAC;IAEjB,oFAAoF;IACpF,SAAS,EAAE,IAAI,CAAC;IAEhB,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAEzB;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAErC;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC;IAE7C;;;;;OAKG;IACH,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,mBAAmB,EAAE,CAAC;IAEjG;;;;;;;;;OASG;IACH,YAAY,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CACvE"}
|
|
@@ -26,6 +26,31 @@ export declare class ClaudeCodeAdapter implements AgentAdapter {
|
|
|
26
26
|
* via a single batched stat call across all directories.
|
|
27
27
|
*/
|
|
28
28
|
private discoverSessions;
|
|
29
|
+
/**
|
|
30
|
+
* Match processes via `claude --resume <uuid>` in their command line.
|
|
31
|
+
* This works for resumed sessions, where the JSONL was created earlier
|
|
32
|
+
* (so its birthtime is far from the process startTime and the legacy
|
|
33
|
+
* matcher can't pair them) and the PID file may also be misaligned.
|
|
34
|
+
*/
|
|
35
|
+
private tryResumeMatching;
|
|
36
|
+
private extractResumeSessionId;
|
|
37
|
+
/**
|
|
38
|
+
* Read and parse ~/.claude/sessions/<pid>.json, returning null on any
|
|
39
|
+
* I/O / parse failure or when the file is stale relative to the live
|
|
40
|
+
* process.
|
|
41
|
+
*
|
|
42
|
+
* "Stale" means the PID file's startedAt diverges from the process's
|
|
43
|
+
* start time by more than {@link PID_FILE_STALENESS_MS} — typically
|
|
44
|
+
* a previous Claude Code process recycled the same PID without cleanup.
|
|
45
|
+
*/
|
|
46
|
+
private readMatchingPidFile;
|
|
47
|
+
/**
|
|
48
|
+
* Map the PID file's live status string to {@link AgentStatus}.
|
|
49
|
+
*
|
|
50
|
+
* Returns undefined for missing / unrecognized values so the caller
|
|
51
|
+
* can fall back to JSONL-derived heuristics.
|
|
52
|
+
*/
|
|
53
|
+
private mapPidStatus;
|
|
29
54
|
/**
|
|
30
55
|
* Attempt to match each process to its session via ~/.claude/sessions/<pid>.json.
|
|
31
56
|
*
|
|
@@ -40,8 +65,15 @@ export declare class ClaudeCodeAdapter implements AgentAdapter {
|
|
|
40
65
|
/**
|
|
41
66
|
* Derive the Claude Code project directory for a given CWD.
|
|
42
67
|
*
|
|
43
|
-
* Claude Code encodes paths by replacing
|
|
44
|
-
*
|
|
68
|
+
* Claude Code encodes paths by replacing every non-alphanumeric
|
|
69
|
+
* character with '-', so '/', '_', '.', spaces, etc. all collapse:
|
|
70
|
+
* /Users/foo/bar → -Users-foo-bar
|
|
71
|
+
* /Users/foo/my_project → -Users-foo-my-project
|
|
72
|
+
* /Users/foo/.worktrees/x → -Users-foo--worktrees-x
|
|
73
|
+
*
|
|
74
|
+
* The encoding is lossy — multiple real paths can collide on the
|
|
75
|
+
* same encoded dir. Callers that need to disambiguate must read the
|
|
76
|
+
* `cwd` field inside each session JSONL.
|
|
45
77
|
*/
|
|
46
78
|
private getProjectDir;
|
|
47
79
|
private mapSessionToAgent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCodeAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ClaudeCodeAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,YAAY,EACZ,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACtB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ClaudeCodeAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ClaudeCodeAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,YAAY,EACZ,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACtB,MAAM,gBAAgB,CAAC;AAiDxB;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IAClD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAsB;;IASpC,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO;IAI5C,OAAO,CAAC,kBAAkB;IAMpB,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAmE1C;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,sBAAsB;IAK9B;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAapB;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;IAuC1B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,mBAAmB;IAa3B,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,mBAAmB,EAAE;IAI1F,YAAY,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAkCzE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;CAqB/B"}
|
|
@@ -74,9 +74,14 @@ class ClaudeCodeAdapter {
|
|
|
74
74
|
if (processes.length === 0) {
|
|
75
75
|
return [];
|
|
76
76
|
}
|
|
77
|
-
// Step 1:
|
|
78
|
-
|
|
79
|
-
//
|
|
77
|
+
// Step 1: extract `--resume <id>` from command line — authoritative for
|
|
78
|
+
// resumed sessions where the JSONL predates the process and PID-file/
|
|
79
|
+
// birthtime heuristics can't match it.
|
|
80
|
+
const { direct: resumeDirect, fallback: noResume } = this.tryResumeMatching(processes);
|
|
81
|
+
// Step 2: try authoritative PID-file matching for the rest
|
|
82
|
+
const { direct: pidDirect, fallback } = this.tryPidFileMatching(noResume);
|
|
83
|
+
const direct = [...resumeDirect, ...pidDirect];
|
|
84
|
+
// Step 3: run legacy CWD+birthtime matching only for processes without a PID file
|
|
80
85
|
const legacySessions = this.discoverSessions(fallback);
|
|
81
86
|
const legacyMatches = fallback.length > 0 && legacySessions.length > 0
|
|
82
87
|
? (0, matching_1.matchProcessesToSessions)(fallback, legacySessions)
|
|
@@ -86,11 +91,15 @@ class ClaudeCodeAdapter {
|
|
|
86
91
|
...legacyMatches.map((m) => m.process.pid),
|
|
87
92
|
]);
|
|
88
93
|
const agents = [];
|
|
89
|
-
// Build agents from direct (PID-file) matches
|
|
90
|
-
for (const
|
|
94
|
+
// Build agents from direct (resume + PID-file) matches
|
|
95
|
+
for (const match of direct) {
|
|
96
|
+
const { process: proc, sessionFile } = match;
|
|
91
97
|
const sessionData = this.parser.readSession(sessionFile.filePath, sessionFile.resolvedCwd);
|
|
92
98
|
if (sessionData) {
|
|
93
|
-
agents.push(this.mapSessionToAgent(sessionData, proc, sessionFile
|
|
99
|
+
agents.push(this.mapSessionToAgent(sessionData, proc, sessionFile, {
|
|
100
|
+
pidStatus: match.pidStatus,
|
|
101
|
+
waitingFor: match.waitingFor,
|
|
102
|
+
}));
|
|
94
103
|
}
|
|
95
104
|
else {
|
|
96
105
|
matchedPids.delete(proc.pid);
|
|
@@ -146,6 +155,95 @@ class ClaudeCodeAdapter {
|
|
|
146
155
|
}
|
|
147
156
|
return files;
|
|
148
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* Match processes via `claude --resume <uuid>` in their command line.
|
|
160
|
+
* This works for resumed sessions, where the JSONL was created earlier
|
|
161
|
+
* (so its birthtime is far from the process startTime and the legacy
|
|
162
|
+
* matcher can't pair them) and the PID file may also be misaligned.
|
|
163
|
+
*/
|
|
164
|
+
tryResumeMatching(processes) {
|
|
165
|
+
const direct = [];
|
|
166
|
+
const fallback = [];
|
|
167
|
+
for (const proc of processes) {
|
|
168
|
+
const sessionId = this.extractResumeSessionId(proc.command);
|
|
169
|
+
if (!sessionId || !proc.cwd) {
|
|
170
|
+
fallback.push(proc);
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
const projectDir = this.getProjectDir(proc.cwd);
|
|
174
|
+
const jsonlPath = path.join(projectDir, `${sessionId}.jsonl`);
|
|
175
|
+
const stat = (0, session_1.safeStat)(jsonlPath);
|
|
176
|
+
if (!stat) {
|
|
177
|
+
fallback.push(proc);
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
// Best-effort: the PID file (if present for this proc) is the
|
|
181
|
+
// authoritative source of live status. We still match the session
|
|
182
|
+
// via --resume, but we read the PID file alongside to capture
|
|
183
|
+
// status/waitingFor.
|
|
184
|
+
const pidEntry = this.readMatchingPidFile(proc.pid, proc.startTime);
|
|
185
|
+
direct.push({
|
|
186
|
+
process: proc,
|
|
187
|
+
sessionFile: {
|
|
188
|
+
sessionId,
|
|
189
|
+
filePath: jsonlPath,
|
|
190
|
+
projectDir,
|
|
191
|
+
birthtimeMs: stat.birthtimeMs,
|
|
192
|
+
resolvedCwd: proc.cwd,
|
|
193
|
+
},
|
|
194
|
+
pidStatus: this.mapPidStatus(pidEntry?.status),
|
|
195
|
+
waitingFor: pidEntry?.waitingFor,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
return { direct, fallback };
|
|
199
|
+
}
|
|
200
|
+
extractResumeSessionId(command) {
|
|
201
|
+
const match = command.match(/--resume\s+([0-9a-f-]{36})/i);
|
|
202
|
+
return match?.[1] ?? null;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Read and parse ~/.claude/sessions/<pid>.json, returning null on any
|
|
206
|
+
* I/O / parse failure or when the file is stale relative to the live
|
|
207
|
+
* process.
|
|
208
|
+
*
|
|
209
|
+
* "Stale" means the PID file's startedAt diverges from the process's
|
|
210
|
+
* start time by more than {@link PID_FILE_STALENESS_MS} — typically
|
|
211
|
+
* a previous Claude Code process recycled the same PID without cleanup.
|
|
212
|
+
*/
|
|
213
|
+
readMatchingPidFile(pid, procStartTime) {
|
|
214
|
+
const pidFilePath = path.join(this.sessionsDir, `${pid}.json`);
|
|
215
|
+
try {
|
|
216
|
+
const entry = JSON.parse(fs.readFileSync(pidFilePath, 'utf-8'));
|
|
217
|
+
if (procStartTime) {
|
|
218
|
+
const deltaMs = Math.abs(procStartTime.getTime() - entry.startedAt);
|
|
219
|
+
if (deltaMs > PID_FILE_STALENESS_MS) {
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return entry;
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Map the PID file's live status string to {@link AgentStatus}.
|
|
231
|
+
*
|
|
232
|
+
* Returns undefined for missing / unrecognized values so the caller
|
|
233
|
+
* can fall back to JSONL-derived heuristics.
|
|
234
|
+
*/
|
|
235
|
+
mapPidStatus(status) {
|
|
236
|
+
switch (status) {
|
|
237
|
+
case 'running':
|
|
238
|
+
return AgentAdapter_1.AgentStatus.RUNNING;
|
|
239
|
+
case 'waiting':
|
|
240
|
+
return AgentAdapter_1.AgentStatus.WAITING;
|
|
241
|
+
case 'idle':
|
|
242
|
+
return AgentAdapter_1.AgentStatus.IDLE;
|
|
243
|
+
default:
|
|
244
|
+
return undefined;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
149
247
|
/**
|
|
150
248
|
* Attempt to match each process to its session via ~/.claude/sessions/<pid>.json.
|
|
151
249
|
*
|
|
@@ -160,57 +258,63 @@ class ClaudeCodeAdapter {
|
|
|
160
258
|
const direct = [];
|
|
161
259
|
const fallback = [];
|
|
162
260
|
for (const proc of processes) {
|
|
163
|
-
const
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (proc.startTime) {
|
|
168
|
-
const deltaMs = Math.abs(proc.startTime.getTime() - entry.startedAt);
|
|
169
|
-
if (deltaMs > PID_FILE_STALENESS_MS) {
|
|
170
|
-
fallback.push(proc);
|
|
171
|
-
continue;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
const projectDir = this.getProjectDir(entry.cwd);
|
|
175
|
-
const jsonlPath = path.join(projectDir, `${entry.sessionId}.jsonl`);
|
|
176
|
-
if (!fs.existsSync(jsonlPath)) {
|
|
177
|
-
fallback.push(proc);
|
|
178
|
-
continue;
|
|
179
|
-
}
|
|
180
|
-
direct.push({
|
|
181
|
-
process: proc,
|
|
182
|
-
sessionFile: {
|
|
183
|
-
sessionId: entry.sessionId,
|
|
184
|
-
filePath: jsonlPath,
|
|
185
|
-
projectDir,
|
|
186
|
-
birthtimeMs: entry.startedAt,
|
|
187
|
-
resolvedCwd: entry.cwd,
|
|
188
|
-
},
|
|
189
|
-
});
|
|
261
|
+
const entry = this.readMatchingPidFile(proc.pid, proc.startTime);
|
|
262
|
+
if (!entry) {
|
|
263
|
+
fallback.push(proc);
|
|
264
|
+
continue;
|
|
190
265
|
}
|
|
191
|
-
|
|
192
|
-
|
|
266
|
+
const projectDir = this.getProjectDir(entry.cwd);
|
|
267
|
+
const jsonlPath = path.join(projectDir, `${entry.sessionId}.jsonl`);
|
|
268
|
+
if (!fs.existsSync(jsonlPath)) {
|
|
193
269
|
fallback.push(proc);
|
|
270
|
+
continue;
|
|
194
271
|
}
|
|
272
|
+
direct.push({
|
|
273
|
+
process: proc,
|
|
274
|
+
sessionFile: {
|
|
275
|
+
sessionId: entry.sessionId,
|
|
276
|
+
filePath: jsonlPath,
|
|
277
|
+
projectDir,
|
|
278
|
+
birthtimeMs: entry.startedAt,
|
|
279
|
+
resolvedCwd: entry.cwd,
|
|
280
|
+
},
|
|
281
|
+
pidStatus: this.mapPidStatus(entry.status),
|
|
282
|
+
waitingFor: entry.waitingFor,
|
|
283
|
+
});
|
|
195
284
|
}
|
|
196
285
|
return { direct, fallback };
|
|
197
286
|
}
|
|
198
287
|
/**
|
|
199
288
|
* Derive the Claude Code project directory for a given CWD.
|
|
200
289
|
*
|
|
201
|
-
* Claude Code encodes paths by replacing
|
|
202
|
-
*
|
|
290
|
+
* Claude Code encodes paths by replacing every non-alphanumeric
|
|
291
|
+
* character with '-', so '/', '_', '.', spaces, etc. all collapse:
|
|
292
|
+
* /Users/foo/bar → -Users-foo-bar
|
|
293
|
+
* /Users/foo/my_project → -Users-foo-my-project
|
|
294
|
+
* /Users/foo/.worktrees/x → -Users-foo--worktrees-x
|
|
295
|
+
*
|
|
296
|
+
* The encoding is lossy — multiple real paths can collide on the
|
|
297
|
+
* same encoded dir. Callers that need to disambiguate must read the
|
|
298
|
+
* `cwd` field inside each session JSONL.
|
|
203
299
|
*/
|
|
204
300
|
getProjectDir(cwd) {
|
|
205
|
-
const encoded = cwd.replace(
|
|
301
|
+
const encoded = cwd.replace(/[^a-zA-Z0-9]/g, '-');
|
|
206
302
|
return path.join(this.projectsDir, encoded);
|
|
207
303
|
}
|
|
208
|
-
mapSessionToAgent(session, processInfo, sessionFile) {
|
|
304
|
+
mapSessionToAgent(session, processInfo, sessionFile, liveInfo) {
|
|
305
|
+
// Live PID-file status is authoritative when present — JSONL-derived
|
|
306
|
+
// status mis-classifies sessions whose latest entry is a UI-state
|
|
307
|
+
// event like `permission-mode` or `ai-title`.
|
|
308
|
+
const status = liveInfo?.pidStatus ?? this.parser.determineStatus(session);
|
|
309
|
+
const baseSummary = session.lastUserMessage || 'Session started';
|
|
310
|
+
const summary = status === AgentAdapter_1.AgentStatus.WAITING && liveInfo?.waitingFor
|
|
311
|
+
? `${baseSummary} — waiting for ${liveInfo.waitingFor}`
|
|
312
|
+
: baseSummary;
|
|
209
313
|
return {
|
|
210
314
|
name: (0, matching_1.generateAgentName)(processInfo.cwd, processInfo.pid),
|
|
211
315
|
type: this.type,
|
|
212
|
-
status
|
|
213
|
-
summary
|
|
316
|
+
status,
|
|
317
|
+
summary,
|
|
214
318
|
pid: processInfo.pid,
|
|
215
319
|
projectPath: sessionFile.resolvedCwd || processInfo.cwd || '',
|
|
216
320
|
sessionId: sessionFile.sessionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCodeAdapter.js","sourceRoot":"","sources":["../../src/adapters/ClaudeCodeAdapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAS7B,iDAA6C;AAC7C,8CAAuE;AACvE,8CAAgH;AAEhH,gDAAgF;AAChF,sEAAmE;
|
|
1
|
+
{"version":3,"file":"ClaudeCodeAdapter.js","sourceRoot":"","sources":["../../src/adapters/ClaudeCodeAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode Adapter
|
|
3
|
+
*
|
|
4
|
+
* Detects running OpenCode agents by:
|
|
5
|
+
* 1. Finding running opencode processes via shared listAgentProcesses()
|
|
6
|
+
* 2. Enriching with CWD and start times via shared enrichProcesses()
|
|
7
|
+
* 3. Querying OpenCode's SQLite DB (~/.local/share/opencode/opencode.db) to
|
|
8
|
+
* find the session matching each process's CWD and read status from message.time.completed
|
|
9
|
+
*
|
|
10
|
+
* sessionFilePath encodes "<dbPath>::<sessionId>" so getConversation() can open the right
|
|
11
|
+
* DB row without extending the AgentAdapter interface.
|
|
12
|
+
*/
|
|
13
|
+
import type { AgentAdapter, AgentInfo, ProcessInfo, ConversationMessage, SessionSummary, ListSessionsOptions } from './AgentAdapter';
|
|
14
|
+
export declare class OpenCodeAdapter implements AgentAdapter {
|
|
15
|
+
readonly type: "opencode";
|
|
16
|
+
private static readonly IDLE_THRESHOLD_MINUTES;
|
|
17
|
+
private readonly dbPath;
|
|
18
|
+
private db;
|
|
19
|
+
constructor();
|
|
20
|
+
close(): void;
|
|
21
|
+
private static resolveDbPath;
|
|
22
|
+
canHandle(processInfo: ProcessInfo): boolean;
|
|
23
|
+
detectAgents(): Promise<AgentInfo[]>;
|
|
24
|
+
getConversation(sessionFilePath: string, options?: {
|
|
25
|
+
verbose?: boolean;
|
|
26
|
+
}): ConversationMessage[];
|
|
27
|
+
listSessions(opts?: ListSessionsOptions): Promise<SessionSummary[]>;
|
|
28
|
+
private findSessionForDirectory;
|
|
29
|
+
private getSessionStats;
|
|
30
|
+
private mapSessionToAgent;
|
|
31
|
+
private mapProcessOnlyAgent;
|
|
32
|
+
private determineStatus;
|
|
33
|
+
private openDb;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=OpenCodeAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenCodeAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/OpenCodeAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EACR,YAAY,EACZ,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACtB,MAAM,gBAAgB,CAAC;AAgCxB,qBAAa,eAAgB,YAAW,YAAY;IAChD,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAEpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAK;IAEnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,EAAE,CAAkC;;IAU5C,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,MAAM,CAAC,aAAa;IAO5B,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO;IAMtC,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IA2B1C,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,mBAAmB,EAAE;IAiD1F,YAAY,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAwCzE,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,eAAe;IA6DvB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,MAAM;CAUjB"}
|