@ai-devkit/agent-manager 0.3.0 → 0.5.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 +2 -0
- package/dist/adapters/AgentAdapter.d.ts.map +1 -1
- package/dist/adapters/ClaudeCodeAdapter.d.ts +49 -38
- package/dist/adapters/ClaudeCodeAdapter.d.ts.map +1 -1
- package/dist/adapters/ClaudeCodeAdapter.js +286 -293
- package/dist/adapters/ClaudeCodeAdapter.js.map +1 -1
- package/dist/adapters/CodexAdapter.d.ts +32 -30
- package/dist/adapters/CodexAdapter.d.ts.map +1 -1
- package/dist/adapters/CodexAdapter.js +148 -284
- package/dist/adapters/CodexAdapter.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -10
- package/dist/index.js.map +1 -1
- package/dist/utils/index.d.ts +6 -3
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +12 -11
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/matching.d.ts +39 -0
- package/dist/utils/matching.d.ts.map +1 -0
- package/dist/utils/matching.js +103 -0
- package/dist/utils/matching.js.map +1 -0
- package/dist/utils/process.d.ts +25 -40
- package/dist/utils/process.d.ts.map +1 -1
- package/dist/utils/process.js +151 -105
- package/dist/utils/process.js.map +1 -1
- package/dist/utils/session.d.ts +30 -0
- package/dist/utils/session.d.ts.map +1 -0
- package/dist/utils/session.js +101 -0
- package/dist/utils/session.js.map +1 -0
- package/package.json +2 -2
- package/src/__tests__/AgentManager.test.ts +0 -25
- package/src/__tests__/adapters/ClaudeCodeAdapter.test.ts +921 -205
- package/src/__tests__/adapters/CodexAdapter.test.ts +468 -269
- package/src/__tests__/utils/matching.test.ts +191 -0
- package/src/__tests__/utils/process.test.ts +202 -0
- package/src/__tests__/utils/session.test.ts +117 -0
- package/src/adapters/AgentAdapter.ts +3 -0
- package/src/adapters/ClaudeCodeAdapter.ts +341 -418
- package/src/adapters/CodexAdapter.ts +155 -420
- package/src/index.ts +1 -3
- package/src/utils/index.ts +6 -3
- package/src/utils/matching.ts +92 -0
- package/src/utils/process.ts +133 -119
- package/src/utils/session.ts +92 -0
- package/dist/utils/file.d.ts +0 -52
- package/dist/utils/file.d.ts.map +0 -1
- package/dist/utils/file.js +0 -135
- package/dist/utils/file.js.map +0 -1
- package/src/utils/file.ts +0 -100
|
@@ -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;AAEpE;;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,wGAAwG;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iCAAiC;IACjC,UAAU,EAAE,IAAI,CAAC;CAEpB;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;
|
|
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;AAEpE;;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,wGAAwG;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iCAAiC;IACjC,UAAU,EAAE,IAAI,CAAC;CAEpB;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;;;;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;CAChD"}
|
|
@@ -1,70 +1,81 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude Code Adapter
|
|
3
|
-
*
|
|
4
|
-
* Detects running Claude Code agents by reading session files
|
|
5
|
-
* from ~/.claude/ directory and correlating with running processes.
|
|
6
|
-
*/
|
|
7
1
|
import type { AgentAdapter, AgentInfo, ProcessInfo } from './AgentAdapter';
|
|
8
2
|
/**
|
|
9
3
|
* Claude Code Adapter
|
|
10
4
|
*
|
|
11
5
|
* Detects Claude Code agents by:
|
|
12
|
-
* 1. Finding running claude processes
|
|
13
|
-
* 2.
|
|
14
|
-
* 3.
|
|
15
|
-
* 4.
|
|
16
|
-
* 5. Extracting summary from
|
|
6
|
+
* 1. Finding running claude processes via shared listAgentProcesses()
|
|
7
|
+
* 2. Enriching with CWD and start times via shared enrichProcesses()
|
|
8
|
+
* 3. Attempting authoritative PID-file matching via ~/.claude/sessions/<pid>.json
|
|
9
|
+
* 4. Falling back to CWD+birthtime heuristic (matchProcessesToSessions) for processes without a PID file
|
|
10
|
+
* 5. Extracting summary from last user message in session JSONL
|
|
17
11
|
*/
|
|
18
12
|
export declare class ClaudeCodeAdapter implements AgentAdapter {
|
|
19
13
|
readonly type: "claude";
|
|
20
|
-
/** Threshold in minutes before considering a session idle */
|
|
21
|
-
private static readonly IDLE_THRESHOLD_MINUTES;
|
|
22
|
-
private claudeDir;
|
|
23
14
|
private projectsDir;
|
|
24
|
-
private
|
|
15
|
+
private sessionsDir;
|
|
25
16
|
constructor();
|
|
26
17
|
/**
|
|
27
18
|
* Check if this adapter can handle a given process
|
|
28
19
|
*/
|
|
29
20
|
canHandle(processInfo: ProcessInfo): boolean;
|
|
21
|
+
private isClaudeExecutable;
|
|
30
22
|
/**
|
|
31
23
|
* Detect running Claude Code agents
|
|
32
24
|
*/
|
|
33
25
|
detectAgents(): Promise<AgentInfo[]>;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Discover session files for the given processes.
|
|
28
|
+
*
|
|
29
|
+
* For each unique process CWD, encodes it to derive the expected
|
|
30
|
+
* ~/.claude/projects/<encoded>/ directory, then gets session file birthtimes
|
|
31
|
+
* via a single batched stat call across all directories.
|
|
32
|
+
*/
|
|
33
|
+
private discoverSessions;
|
|
34
|
+
/**
|
|
35
|
+
* Attempt to match each process to its session via ~/.claude/sessions/<pid>.json.
|
|
36
|
+
*
|
|
37
|
+
* Returns:
|
|
38
|
+
* direct — processes matched authoritatively via PID file
|
|
39
|
+
* fallback — processes with no valid PID file (sent to legacy matching)
|
|
40
|
+
*
|
|
41
|
+
* Per-process fallback triggers on: file absent, malformed JSON,
|
|
42
|
+
* stale startedAt (>60 s from proc.startTime), or missing JSONL.
|
|
43
|
+
*/
|
|
44
|
+
private tryPidFileMatching;
|
|
45
|
+
/**
|
|
46
|
+
* Derive the Claude Code project directory for a given CWD.
|
|
47
|
+
*
|
|
48
|
+
* Claude Code encodes paths by replacing '/' with '-':
|
|
49
|
+
* /Users/foo/bar → ~/.claude/projects/-Users-foo-bar/
|
|
50
|
+
*/
|
|
51
|
+
private getProjectDir;
|
|
37
52
|
private mapSessionToAgent;
|
|
38
53
|
private mapProcessOnlyAgent;
|
|
39
|
-
private mapHistoryToAgent;
|
|
40
|
-
private indexHistoryByProjectPath;
|
|
41
|
-
private selectHistoryForProcess;
|
|
42
54
|
/**
|
|
43
|
-
*
|
|
55
|
+
* Parse a single session file into ClaudeSession
|
|
44
56
|
*/
|
|
45
|
-
private
|
|
57
|
+
private readSession;
|
|
46
58
|
/**
|
|
47
|
-
*
|
|
48
|
-
* Only reads last 100 lines for performance with large files
|
|
59
|
+
* Determine agent status from session state
|
|
49
60
|
*/
|
|
50
|
-
private
|
|
61
|
+
private determineStatus;
|
|
51
62
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
63
|
+
* Extract meaningful text from a user message content.
|
|
64
|
+
* Handles string and array formats, skill command expansion, and noise filtering.
|
|
54
65
|
*/
|
|
55
|
-
private
|
|
66
|
+
private extractUserMessageText;
|
|
56
67
|
/**
|
|
57
|
-
*
|
|
68
|
+
* Parse a <command-message> string into "/command args" format.
|
|
58
69
|
*/
|
|
59
|
-
private
|
|
70
|
+
private parseCommandMessage;
|
|
71
|
+
/**
|
|
72
|
+
* Check if a message is noise (not a meaningful user intent).
|
|
73
|
+
*/
|
|
74
|
+
private isNoiseMessage;
|
|
60
75
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
76
|
+
* Check if an entry type is metadata (not conversation state).
|
|
77
|
+
* These should not overwrite lastEntryType used for status determination.
|
|
63
78
|
*/
|
|
64
|
-
private
|
|
65
|
-
private pathEquals;
|
|
66
|
-
private isChildPath;
|
|
67
|
-
private normalizePath;
|
|
68
|
-
private pathDepth;
|
|
79
|
+
private isMetadataEntryType;
|
|
69
80
|
}
|
|
70
81
|
//# sourceMappingURL=ClaudeCodeAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeCodeAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ClaudeCodeAdapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ClaudeCodeAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ClaudeCodeAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA0D3E;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IAClD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;;IAQ5B;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO;IAI5C,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAwD1C;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;IAkD1B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAyGnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiCvB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA2C9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAI9B"}
|