@telora/daemon-core 0.2.25 → 0.2.29
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/activity-tracker.d.ts +12 -11
- package/dist/activity-tracker.d.ts.map +1 -1
- package/dist/activity-tracker.js +33 -60
- package/dist/activity-tracker.js.map +1 -1
- package/dist/agent-event.d.ts +97 -0
- package/dist/agent-event.d.ts.map +1 -0
- package/dist/agent-event.js +21 -0
- package/dist/agent-event.js.map +1 -0
- package/dist/claude-agent-parser.d.ts +42 -0
- package/dist/claude-agent-parser.d.ts.map +1 -0
- package/dist/claude-agent-parser.js +119 -0
- package/dist/claude-agent-parser.js.map +1 -0
- package/dist/codex-agent-parser.d.ts +42 -0
- package/dist/codex-agent-parser.d.ts.map +1 -0
- package/dist/codex-agent-parser.js +179 -0
- package/dist/codex-agent-parser.js.map +1 -0
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* it via the provided callback. Uses dirty-checking (JSON.stringify comparison)
|
|
6
6
|
* to avoid redundant calls.
|
|
7
7
|
*
|
|
8
|
-
* Designed to be attached to
|
|
9
|
-
* Every flush is wrapped in try/catch -- a failed activity write
|
|
10
|
-
* crash the process.
|
|
8
|
+
* Designed to be attached to an engine-agnostic `AgentEventParser` for a single
|
|
9
|
+
* agent session. Every flush is wrapped in try/catch -- a failed activity write
|
|
10
|
+
* must NEVER crash the process.
|
|
11
11
|
*/
|
|
12
|
-
import type {
|
|
12
|
+
import type { AgentEventParser } from './agent-event.js';
|
|
13
13
|
export interface ActivitySnapshot {
|
|
14
14
|
/** Name of the tool currently being invoked (e.g. "Edit", "Bash", "Read"). */
|
|
15
15
|
currentTool: string | null;
|
|
@@ -39,16 +39,17 @@ export declare class ActivityTracker {
|
|
|
39
39
|
*/
|
|
40
40
|
onNarration(callback: (text: string) => void): void;
|
|
41
41
|
/**
|
|
42
|
-
* Attach the tracker to
|
|
43
|
-
* Listens for
|
|
42
|
+
* Attach the tracker to an AgentEventParser.
|
|
43
|
+
* Listens for narration, tool-activity, and result events.
|
|
44
44
|
*/
|
|
45
|
-
attach(parser:
|
|
45
|
+
attach(parser: AgentEventParser): void;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
48
|
-
* -
|
|
49
|
-
* -
|
|
47
|
+
* Route a neutral agent event:
|
|
48
|
+
* - tool_activity: update currentTool/currentFile and flush immediately.
|
|
49
|
+
* - narration: update lastText (dirty, no immediate flush).
|
|
50
|
+
* - result: increment turn count, accumulate tokens/cost, flush.
|
|
50
51
|
*/
|
|
51
|
-
private
|
|
52
|
+
private handleEvent;
|
|
52
53
|
/**
|
|
53
54
|
* Process a result event.
|
|
54
55
|
* Increments turn count, updates token/cost totals, flushes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-tracker.d.ts","sourceRoot":"","sources":["../src/activity-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"activity-tracker.d.ts","sourceRoot":"","sources":["../src/activity-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIrE,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mDAAmD;IACnD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,aAAa,CAAgD;gBAGnE,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC;IAe9D;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAInD;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAMtC;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IA0BnB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAepB;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;;OAIG;YACW,KAAK;CAwBpB"}
|
package/dist/activity-tracker.js
CHANGED
|
@@ -5,33 +5,10 @@
|
|
|
5
5
|
* it via the provided callback. Uses dirty-checking (JSON.stringify comparison)
|
|
6
6
|
* to avoid redundant calls.
|
|
7
7
|
*
|
|
8
|
-
* Designed to be attached to
|
|
9
|
-
* Every flush is wrapped in try/catch -- a failed activity write
|
|
10
|
-
* crash the process.
|
|
8
|
+
* Designed to be attached to an engine-agnostic `AgentEventParser` for a single
|
|
9
|
+
* agent session. Every flush is wrapped in try/catch -- a failed activity write
|
|
10
|
+
* must NEVER crash the process.
|
|
11
11
|
*/
|
|
12
|
-
// -- File path extraction -----------------------------------------------------
|
|
13
|
-
/** Keys in tool input that commonly contain file paths. */
|
|
14
|
-
const FILE_PATH_KEYS = ['file_path', 'path', 'command', 'notebook_path'];
|
|
15
|
-
/**
|
|
16
|
-
* Extract a file path from tool input, if present.
|
|
17
|
-
* Checks common keys first, then falls back to scanning string values
|
|
18
|
-
* that look like absolute paths.
|
|
19
|
-
*/
|
|
20
|
-
function extractFilePath(input) {
|
|
21
|
-
// Check well-known keys first
|
|
22
|
-
for (const key of FILE_PATH_KEYS) {
|
|
23
|
-
const val = input[key];
|
|
24
|
-
if (typeof val === 'string' && val.length > 0) {
|
|
25
|
-
// For 'command' key, try to extract a path from the command string
|
|
26
|
-
if (key === 'command') {
|
|
27
|
-
const pathMatch = val.match(/(?:^|\s)(\/[^\s'"]+)/);
|
|
28
|
-
return pathMatch ? pathMatch[1] : null;
|
|
29
|
-
}
|
|
30
|
-
return val;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
12
|
// -- Tracker class ------------------------------------------------------------
|
|
36
13
|
export class ActivityTracker {
|
|
37
14
|
sessionId;
|
|
@@ -60,55 +37,51 @@ export class ActivityTracker {
|
|
|
60
37
|
this.onNarrationCallback = callback;
|
|
61
38
|
}
|
|
62
39
|
/**
|
|
63
|
-
* Attach the tracker to
|
|
64
|
-
* Listens for
|
|
40
|
+
* Attach the tracker to an AgentEventParser.
|
|
41
|
+
* Listens for narration, tool-activity, and result events.
|
|
65
42
|
*/
|
|
66
43
|
attach(parser) {
|
|
67
|
-
parser.on('
|
|
68
|
-
this.
|
|
69
|
-
});
|
|
70
|
-
parser.on('result', (result) => {
|
|
71
|
-
this.handleResult(result);
|
|
44
|
+
parser.on('agent_event', (event) => {
|
|
45
|
+
this.handleEvent(event);
|
|
72
46
|
});
|
|
73
47
|
}
|
|
74
48
|
/**
|
|
75
|
-
*
|
|
76
|
-
* -
|
|
77
|
-
* -
|
|
49
|
+
* Route a neutral agent event:
|
|
50
|
+
* - tool_activity: update currentTool/currentFile and flush immediately.
|
|
51
|
+
* - narration: update lastText (dirty, no immediate flush).
|
|
52
|
+
* - result: increment turn count, accumulate tokens/cost, flush.
|
|
78
53
|
*/
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
this.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (textBlock.text.length > 0) {
|
|
91
|
-
this.snapshot.lastText = textBlock.text.slice(0, 200);
|
|
54
|
+
handleEvent(event) {
|
|
55
|
+
switch (event.kind) {
|
|
56
|
+
case 'tool_activity':
|
|
57
|
+
this.snapshot.currentTool = event.tool;
|
|
58
|
+
this.snapshot.currentFile = event.file;
|
|
59
|
+
// Flush immediately on tool use to show real-time activity
|
|
60
|
+
this.flush();
|
|
61
|
+
break;
|
|
62
|
+
case 'narration':
|
|
63
|
+
if (event.text.length > 0) {
|
|
64
|
+
this.snapshot.lastText = event.text.slice(0, 200);
|
|
92
65
|
this.onNarrationCallback?.(this.snapshot.lastText);
|
|
93
66
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
67
|
+
break;
|
|
68
|
+
case 'result':
|
|
69
|
+
this.handleResult(event);
|
|
70
|
+
break;
|
|
71
|
+
default:
|
|
72
|
+
// session_started / subagent_activity / error are not activity signals
|
|
73
|
+
break;
|
|
99
74
|
}
|
|
100
75
|
}
|
|
101
76
|
/**
|
|
102
77
|
* Process a result event.
|
|
103
78
|
* Increments turn count, updates token/cost totals, flushes.
|
|
104
79
|
*/
|
|
105
|
-
handleResult(
|
|
80
|
+
handleResult(event) {
|
|
106
81
|
this.snapshot.turnCount++;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
if (result.total_cost_usd) {
|
|
111
|
-
this.snapshot.totalCostUsd += result.total_cost_usd;
|
|
82
|
+
this.snapshot.totalTokens += (event.inputTokens ?? 0) + (event.outputTokens ?? 0);
|
|
83
|
+
if (event.totalCostUsd) {
|
|
84
|
+
this.snapshot.totalCostUsd += event.totalCostUsd;
|
|
112
85
|
}
|
|
113
86
|
// Clear current tool/file since the turn is complete
|
|
114
87
|
this.snapshot.currentTool = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-tracker.js","sourceRoot":"","sources":["../src/activity-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuBH,gFAAgF;AAEhF,
|
|
1
|
+
{"version":3,"file":"activity-tracker.js","sourceRoot":"","sources":["../src/activity-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-neutral agent event model.
|
|
3
|
+
*
|
|
4
|
+
* This is the engine-agnostic event contract that downstream daemon consumers
|
|
5
|
+
* (completion detection, session-id capture, activity tracking, output logging)
|
|
6
|
+
* read instead of any one engine's wire format. Each coding-agent backend
|
|
7
|
+
* (Claude Code, Codex, ...) supplies an `AgentEventParser` that maps its own
|
|
8
|
+
* stream into this union.
|
|
9
|
+
*
|
|
10
|
+
* Design notes:
|
|
11
|
+
* - The union is small on purpose: it carries only what daemon control flow and
|
|
12
|
+
* observability need, not a faithful re-encoding of every engine event.
|
|
13
|
+
* - `raw` events (carrying the untouched engine payload plus an optional
|
|
14
|
+
* human-readable log line) are emitted alongside the neutral stream so log
|
|
15
|
+
* files keep byte-for-byte parity with each engine's native formatting.
|
|
16
|
+
*
|
|
17
|
+
* Lives in daemon-core (not the daemon package) because the shared
|
|
18
|
+
* `ActivityTracker` consumes it, and daemon-core must not depend on the daemon.
|
|
19
|
+
*/
|
|
20
|
+
import type { Readable } from 'node:stream';
|
|
21
|
+
/** Session began; carries the engine's session id for resume + the model. */
|
|
22
|
+
export interface AgentSessionStartedEvent {
|
|
23
|
+
kind: 'session_started';
|
|
24
|
+
/** Engine session id, replayed on resume (stored per-lineage on the focus). */
|
|
25
|
+
sessionId: string;
|
|
26
|
+
/** Model the engine reported for the session, if known. */
|
|
27
|
+
model?: string;
|
|
28
|
+
}
|
|
29
|
+
/** The lead/agent emitted assistant prose (used for narration/heartbeat). */
|
|
30
|
+
export interface AgentNarrationEvent {
|
|
31
|
+
kind: 'narration';
|
|
32
|
+
/** Assistant text (already trimmed by the parser if needed). */
|
|
33
|
+
text: string;
|
|
34
|
+
}
|
|
35
|
+
/** The agent invoked a tool (used for live activity snapshots). */
|
|
36
|
+
export interface AgentToolActivityEvent {
|
|
37
|
+
kind: 'tool_activity';
|
|
38
|
+
/** Tool name (e.g. "Edit", "Bash", "Read"). */
|
|
39
|
+
tool: string;
|
|
40
|
+
/** File path extracted from the tool input, if any. */
|
|
41
|
+
file: string | null;
|
|
42
|
+
/** Raw tool input, when the engine provides it. */
|
|
43
|
+
input?: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
/** A worker/subagent lifecycle transition (spawn/idle/complete). */
|
|
46
|
+
export interface AgentSubagentActivityEvent {
|
|
47
|
+
kind: 'subagent_activity';
|
|
48
|
+
phase: 'spawned' | 'idle' | 'completed';
|
|
49
|
+
/** Engine-local id for the subagent. */
|
|
50
|
+
agentId: string;
|
|
51
|
+
/** Human-friendly subagent name. */
|
|
52
|
+
agentName: string;
|
|
53
|
+
/** Whether a completed subagent finished with an error. */
|
|
54
|
+
isError?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/** A turn completed (the lead finished a unit of work). Drives completion. */
|
|
57
|
+
export interface AgentResultEvent {
|
|
58
|
+
kind: 'result';
|
|
59
|
+
isError: boolean;
|
|
60
|
+
/** Number of turns the engine reported for this result. */
|
|
61
|
+
numTurns: number;
|
|
62
|
+
totalCostUsd?: number;
|
|
63
|
+
inputTokens?: number;
|
|
64
|
+
outputTokens?: number;
|
|
65
|
+
}
|
|
66
|
+
/** A parse/stream error surfaced by the engine adapter. */
|
|
67
|
+
export interface AgentErrorEvent {
|
|
68
|
+
kind: 'error';
|
|
69
|
+
message: string;
|
|
70
|
+
}
|
|
71
|
+
/** Provider-neutral event union consumed by all downstream daemon code. */
|
|
72
|
+
export type AgentEvent = AgentSessionStartedEvent | AgentNarrationEvent | AgentToolActivityEvent | AgentSubagentActivityEvent | AgentResultEvent | AgentErrorEvent;
|
|
73
|
+
/**
|
|
74
|
+
* Engine-agnostic parser interface. A backend's parser attaches to the spawned
|
|
75
|
+
* process stdout and emits the neutral `AgentEvent` stream plus a `raw` channel
|
|
76
|
+
* for verbatim/log output.
|
|
77
|
+
*
|
|
78
|
+
* Event channels:
|
|
79
|
+
* - `agent_event` -- one neutral `AgentEvent` per recognized engine event.
|
|
80
|
+
* - `raw` -- the untouched engine event object + an optional
|
|
81
|
+
* human-readable log line (null when the event is too
|
|
82
|
+
* granular to log). Consumers write the object to the JSONL
|
|
83
|
+
* log and the line to the stdout log.
|
|
84
|
+
* - `error` -- a parse failure (malformed line); never crashes the parser.
|
|
85
|
+
*/
|
|
86
|
+
export interface AgentEventParser {
|
|
87
|
+
/** Attach to a readable stream (typically process.stdout). */
|
|
88
|
+
attach(stream: Readable): void;
|
|
89
|
+
/** Engine session id, captured from the first session-bearing event. */
|
|
90
|
+
readonly sessionId: string | null;
|
|
91
|
+
/** Timestamp of the most recent successfully parsed event. */
|
|
92
|
+
readonly lastEventTime: Date;
|
|
93
|
+
on(event: 'agent_event', listener: (e: AgentEvent) => void): this;
|
|
94
|
+
on(event: 'raw', listener: (raw: unknown, logLine: string | null) => void): this;
|
|
95
|
+
on(event: 'error', listener: (err: Error, line: string) => void): this;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=agent-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-event.d.ts","sourceRoot":"","sources":["../src/agent-event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,6EAA6E;AAC7E,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,iBAAiB,CAAC;IACxB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mEAAmE;AACnE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,eAAe,CAAC;IACtB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,oEAAoE;AACpE,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;IACxC,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAClB,wBAAwB,GACxB,mBAAmB,GACnB,sBAAsB,GACtB,0BAA0B,GAC1B,gBAAgB,GAChB,eAAe,CAAC;AAIpB;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAE7B,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAClE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACjF,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CACxE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-neutral agent event model.
|
|
3
|
+
*
|
|
4
|
+
* This is the engine-agnostic event contract that downstream daemon consumers
|
|
5
|
+
* (completion detection, session-id capture, activity tracking, output logging)
|
|
6
|
+
* read instead of any one engine's wire format. Each coding-agent backend
|
|
7
|
+
* (Claude Code, Codex, ...) supplies an `AgentEventParser` that maps its own
|
|
8
|
+
* stream into this union.
|
|
9
|
+
*
|
|
10
|
+
* Design notes:
|
|
11
|
+
* - The union is small on purpose: it carries only what daemon control flow and
|
|
12
|
+
* observability need, not a faithful re-encoding of every engine event.
|
|
13
|
+
* - `raw` events (carrying the untouched engine payload plus an optional
|
|
14
|
+
* human-readable log line) are emitted alongside the neutral stream so log
|
|
15
|
+
* files keep byte-for-byte parity with each engine's native formatting.
|
|
16
|
+
*
|
|
17
|
+
* Lives in daemon-core (not the daemon package) because the shared
|
|
18
|
+
* `ActivityTracker` consumes it, and daemon-core must not depend on the daemon.
|
|
19
|
+
*/
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=agent-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-event.js","sourceRoot":"","sources":["../src/agent-event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code adapter: maps the Claude `stream-json` event stream onto the
|
|
3
|
+
* provider-neutral `AgentEvent` contract.
|
|
4
|
+
*
|
|
5
|
+
* This is the `AgentEventParser` implementation for the `claude` backend. It
|
|
6
|
+
* wraps the canonical `StreamJsonParser` (the Claude wire-format reader) and
|
|
7
|
+
* translates each recognized event into a neutral `AgentEvent`, while also
|
|
8
|
+
* re-emitting every raw event (plus a human-readable log line) on the `raw`
|
|
9
|
+
* channel so log files keep parity with Claude's native formatting.
|
|
10
|
+
*
|
|
11
|
+
* Mapping:
|
|
12
|
+
* init -> session_started { sessionId, model }
|
|
13
|
+
* teammate_* -> subagent_activity { phase, agentId, agentName, isError }
|
|
14
|
+
* assistant text -> narration { text } (non-empty blocks only)
|
|
15
|
+
* assistant tool_use -> tool_activity { tool, file, input }
|
|
16
|
+
* assistant thinking -> (dropped: neither narration nor tool activity)
|
|
17
|
+
* result -> result { isError, numTurns, totalCostUsd, tokens }
|
|
18
|
+
* parser error -> error { message }
|
|
19
|
+
*/
|
|
20
|
+
import { EventEmitter } from 'node:events';
|
|
21
|
+
import type { Readable } from 'node:stream';
|
|
22
|
+
import type { AgentEventParser } from './agent-event.js';
|
|
23
|
+
/**
|
|
24
|
+
* Extract a file path from tool input, if present.
|
|
25
|
+
* Checks common keys first; for the `command` key, pulls the first absolute
|
|
26
|
+
* path out of the command string.
|
|
27
|
+
*/
|
|
28
|
+
export declare function extractFilePath(input: Record<string, unknown>): string | null;
|
|
29
|
+
/**
|
|
30
|
+
* `AgentEventParser` for Claude Code. Owns an internal `StreamJsonParser` and
|
|
31
|
+
* forwards translated + raw events.
|
|
32
|
+
*/
|
|
33
|
+
export declare class ClaudeAgentParser extends EventEmitter implements AgentEventParser {
|
|
34
|
+
private readonly inner;
|
|
35
|
+
get sessionId(): string | null;
|
|
36
|
+
get lastEventTime(): Date;
|
|
37
|
+
attach(stream: Readable): void;
|
|
38
|
+
/** Decompose an assistant message into narration + tool-activity events. */
|
|
39
|
+
private translateAssistant;
|
|
40
|
+
private emitAgentEvent;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=claude-agent-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-agent-parser.d.ts","sourceRoot":"","sources":["../src/claude-agent-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAgB1B;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAY7E;AAWD;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,YAAa,YAAW,gBAAgB;IAC7E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAAiC;IAC/D,IAAI,aAAa,IAAI,IAAI,CAAqC;IAE9D,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI;IA0C9B,4EAA4E;IAC5E,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,cAAc;CAGvB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code adapter: maps the Claude `stream-json` event stream onto the
|
|
3
|
+
* provider-neutral `AgentEvent` contract.
|
|
4
|
+
*
|
|
5
|
+
* This is the `AgentEventParser` implementation for the `claude` backend. It
|
|
6
|
+
* wraps the canonical `StreamJsonParser` (the Claude wire-format reader) and
|
|
7
|
+
* translates each recognized event into a neutral `AgentEvent`, while also
|
|
8
|
+
* re-emitting every raw event (plus a human-readable log line) on the `raw`
|
|
9
|
+
* channel so log files keep parity with Claude's native formatting.
|
|
10
|
+
*
|
|
11
|
+
* Mapping:
|
|
12
|
+
* init -> session_started { sessionId, model }
|
|
13
|
+
* teammate_* -> subagent_activity { phase, agentId, agentName, isError }
|
|
14
|
+
* assistant text -> narration { text } (non-empty blocks only)
|
|
15
|
+
* assistant tool_use -> tool_activity { tool, file, input }
|
|
16
|
+
* assistant thinking -> (dropped: neither narration nor tool activity)
|
|
17
|
+
* result -> result { isError, numTurns, totalCostUsd, tokens }
|
|
18
|
+
* parser error -> error { message }
|
|
19
|
+
*/
|
|
20
|
+
import { EventEmitter } from 'node:events';
|
|
21
|
+
import { StreamJsonParser, } from './stream-json.js';
|
|
22
|
+
import { formatEventForLog } from './event-logger.js';
|
|
23
|
+
/** Keys in tool input that commonly contain file paths. */
|
|
24
|
+
const FILE_PATH_KEYS = ['file_path', 'path', 'command', 'notebook_path'];
|
|
25
|
+
/**
|
|
26
|
+
* Extract a file path from tool input, if present.
|
|
27
|
+
* Checks common keys first; for the `command` key, pulls the first absolute
|
|
28
|
+
* path out of the command string.
|
|
29
|
+
*/
|
|
30
|
+
export function extractFilePath(input) {
|
|
31
|
+
for (const key of FILE_PATH_KEYS) {
|
|
32
|
+
const val = input[key];
|
|
33
|
+
if (typeof val === 'string' && val.length > 0) {
|
|
34
|
+
if (key === 'command') {
|
|
35
|
+
const pathMatch = val.match(/(?:^|\s)(\/[^\s'"]+)/);
|
|
36
|
+
return pathMatch ? pathMatch[1] : null;
|
|
37
|
+
}
|
|
38
|
+
return val;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
/** Map a teammate subtype to a neutral subagent phase. */
|
|
44
|
+
function teammatePhase(subtype) {
|
|
45
|
+
switch (subtype) {
|
|
46
|
+
case 'teammate_spawned': return 'spawned';
|
|
47
|
+
case 'teammate_idle': return 'idle';
|
|
48
|
+
case 'teammate_completed': return 'completed';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* `AgentEventParser` for Claude Code. Owns an internal `StreamJsonParser` and
|
|
53
|
+
* forwards translated + raw events.
|
|
54
|
+
*/
|
|
55
|
+
export class ClaudeAgentParser extends EventEmitter {
|
|
56
|
+
inner = new StreamJsonParser();
|
|
57
|
+
get sessionId() { return this.inner.sessionId; }
|
|
58
|
+
get lastEventTime() { return this.inner.lastEventTime; }
|
|
59
|
+
attach(stream) {
|
|
60
|
+
// Raw channel: every parsed event, with the Claude-specific log formatting.
|
|
61
|
+
this.inner.on('event', (event) => {
|
|
62
|
+
this.emit('raw', event, formatEventForLog(event));
|
|
63
|
+
});
|
|
64
|
+
this.inner.on('init', (event) => {
|
|
65
|
+
this.emitAgentEvent({ kind: 'session_started', sessionId: event.session_id, model: event.model });
|
|
66
|
+
});
|
|
67
|
+
this.inner.on('teammate', (event) => {
|
|
68
|
+
this.emitAgentEvent({
|
|
69
|
+
kind: 'subagent_activity',
|
|
70
|
+
phase: teammatePhase(event.subtype),
|
|
71
|
+
agentId: event.agent_id,
|
|
72
|
+
agentName: event.agent_name,
|
|
73
|
+
isError: event.is_error,
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
this.inner.on('assistant', (msg) => {
|
|
77
|
+
this.translateAssistant(msg);
|
|
78
|
+
});
|
|
79
|
+
this.inner.on('result', (result) => {
|
|
80
|
+
this.emitAgentEvent({
|
|
81
|
+
kind: 'result',
|
|
82
|
+
isError: result.is_error,
|
|
83
|
+
numTurns: result.num_turns,
|
|
84
|
+
totalCostUsd: result.total_cost_usd,
|
|
85
|
+
inputTokens: result.usage?.input_tokens,
|
|
86
|
+
outputTokens: result.usage?.output_tokens,
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
this.inner.on('error', (err) => {
|
|
90
|
+
this.emitAgentEvent({ kind: 'error', message: err.message });
|
|
91
|
+
});
|
|
92
|
+
this.inner.attach(stream);
|
|
93
|
+
}
|
|
94
|
+
/** Decompose an assistant message into narration + tool-activity events. */
|
|
95
|
+
translateAssistant(msg) {
|
|
96
|
+
for (const block of msg.message.content) {
|
|
97
|
+
if (block.type === 'tool_use') {
|
|
98
|
+
const tool = block;
|
|
99
|
+
this.emitAgentEvent({
|
|
100
|
+
kind: 'tool_activity',
|
|
101
|
+
tool: tool.name,
|
|
102
|
+
file: extractFilePath(tool.input),
|
|
103
|
+
input: tool.input,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
else if (block.type === 'text') {
|
|
107
|
+
const text = block.text;
|
|
108
|
+
if (text.length > 0) {
|
|
109
|
+
this.emitAgentEvent({ kind: 'narration', text });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// thinking blocks are intentionally dropped.
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
emitAgentEvent(event) {
|
|
116
|
+
this.emit('agent_event', event);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=claude-agent-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-agent-parser.js","sourceRoot":"","sources":["../src/claude-agent-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex CLI adapter: maps the `codex exec --json` JSONL stream onto the
|
|
3
|
+
* provider-neutral `AgentEvent` contract.
|
|
4
|
+
*
|
|
5
|
+
* This is the `AgentEventParser` implementation for the `codex` backend. Codex
|
|
6
|
+
* emits one JSON object per line (NDJSON). The event taxonomy below was
|
|
7
|
+
* validated against the 0.133.0 spike (`/tmp/codex-spike/run1.jsonl`):
|
|
8
|
+
*
|
|
9
|
+
* thread.started { thread_id } -> session_started { sessionId }
|
|
10
|
+
* turn.completed { usage } -> result { tokens }
|
|
11
|
+
* turn.failed | error -> error { message }
|
|
12
|
+
* item.started { item: collab_tool_call } -> subagent_activity (spawned)
|
|
13
|
+
* item.completed { item: collab_tool_call } -> subagent_activity (completed)
|
|
14
|
+
* item.completed { item: agent_message } -> narration { text }
|
|
15
|
+
* item.completed { item: mcp_tool_call } -> tool_activity { tool, file }
|
|
16
|
+
*
|
|
17
|
+
* Subagent spawn/complete are paired by the item id. Codex reports token usage
|
|
18
|
+
* but no USD cost, so `result.totalCostUsd` is left undefined.
|
|
19
|
+
*
|
|
20
|
+
* Unlike Claude's stream-json, Codex JSONL is not Zod-validated here -- lines
|
|
21
|
+
* are parsed defensively and malformed lines are surfaced on `error` and skipped.
|
|
22
|
+
*/
|
|
23
|
+
import { EventEmitter } from 'node:events';
|
|
24
|
+
import type { Readable } from 'node:stream';
|
|
25
|
+
import type { AgentEventParser } from './agent-event.js';
|
|
26
|
+
/**
|
|
27
|
+
* `AgentEventParser` for Codex CLI. Line-buffers stdout, parses NDJSON, and
|
|
28
|
+
* emits neutral AgentEvents plus a `raw` channel for verbatim/log output.
|
|
29
|
+
*/
|
|
30
|
+
export declare class CodexAgentParser extends EventEmitter implements AgentEventParser {
|
|
31
|
+
private buffer;
|
|
32
|
+
private _sessionId;
|
|
33
|
+
private _lastEventTime;
|
|
34
|
+
get sessionId(): string | null;
|
|
35
|
+
get lastEventTime(): Date;
|
|
36
|
+
attach(stream: Readable): void;
|
|
37
|
+
private processBuffer;
|
|
38
|
+
private route;
|
|
39
|
+
private routeItem;
|
|
40
|
+
private emitAgent;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=codex-agent-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-agent-parser.d.ts","sourceRoot":"","sources":["../src/codex-agent-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AA8DrE;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,gBAAgB;IAC5E,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,cAAc,CAAc;IAEpC,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAA4B;IAC1D,IAAI,aAAa,IAAI,IAAI,CAAgC;IAEzD,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI;IAU9B,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,KAAK;IAuCb,OAAO,CAAC,SAAS;IAuCjB,OAAO,CAAC,SAAS;CAGlB"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex CLI adapter: maps the `codex exec --json` JSONL stream onto the
|
|
3
|
+
* provider-neutral `AgentEvent` contract.
|
|
4
|
+
*
|
|
5
|
+
* This is the `AgentEventParser` implementation for the `codex` backend. Codex
|
|
6
|
+
* emits one JSON object per line (NDJSON). The event taxonomy below was
|
|
7
|
+
* validated against the 0.133.0 spike (`/tmp/codex-spike/run1.jsonl`):
|
|
8
|
+
*
|
|
9
|
+
* thread.started { thread_id } -> session_started { sessionId }
|
|
10
|
+
* turn.completed { usage } -> result { tokens }
|
|
11
|
+
* turn.failed | error -> error { message }
|
|
12
|
+
* item.started { item: collab_tool_call } -> subagent_activity (spawned)
|
|
13
|
+
* item.completed { item: collab_tool_call } -> subagent_activity (completed)
|
|
14
|
+
* item.completed { item: agent_message } -> narration { text }
|
|
15
|
+
* item.completed { item: mcp_tool_call } -> tool_activity { tool, file }
|
|
16
|
+
*
|
|
17
|
+
* Subagent spawn/complete are paired by the item id. Codex reports token usage
|
|
18
|
+
* but no USD cost, so `result.totalCostUsd` is left undefined.
|
|
19
|
+
*
|
|
20
|
+
* Unlike Claude's stream-json, Codex JSONL is not Zod-validated here -- lines
|
|
21
|
+
* are parsed defensively and malformed lines are surfaced on `error` and skipped.
|
|
22
|
+
*/
|
|
23
|
+
import { EventEmitter } from 'node:events';
|
|
24
|
+
import { extractFilePath } from './claude-agent-parser.js';
|
|
25
|
+
/** Format a Codex event as a concise human-readable log line (parity helper). */
|
|
26
|
+
function formatCodexEventForLog(line) {
|
|
27
|
+
switch (line.type) {
|
|
28
|
+
case 'thread.started':
|
|
29
|
+
return `[init] Codex thread started (${line.thread_id ?? '?'})`;
|
|
30
|
+
case 'turn.completed': {
|
|
31
|
+
const u = line.usage ?? {};
|
|
32
|
+
return `[result] turn completed (in: ${u.input_tokens ?? '?'}, out: ${u.output_tokens ?? '?'})`;
|
|
33
|
+
}
|
|
34
|
+
case 'turn.failed':
|
|
35
|
+
case 'error':
|
|
36
|
+
return `[error] ${codexErrorMessage(line)}`;
|
|
37
|
+
case 'item.started':
|
|
38
|
+
case 'item.completed': {
|
|
39
|
+
const it = line.item ?? {};
|
|
40
|
+
const verb = line.type === 'item.started' ? 'started' : 'completed';
|
|
41
|
+
if (it.type === 'agent_message')
|
|
42
|
+
return `[assistant] ${(it.text ?? '').slice(0, 200)}`;
|
|
43
|
+
if (it.type === 'collab_tool_call')
|
|
44
|
+
return `[team] subagent ${verb} (${it.tool ?? 'spawn'})`;
|
|
45
|
+
if (it.type === 'mcp_tool_call')
|
|
46
|
+
return `[tool] ${it.server ?? '?'}.${it.tool ?? '?'} ${verb}`;
|
|
47
|
+
return `[item] ${it.type ?? '?'} ${verb}`;
|
|
48
|
+
}
|
|
49
|
+
default:
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/** Extract a human-readable error message from a Codex error/turn.failed line. */
|
|
54
|
+
function codexErrorMessage(line) {
|
|
55
|
+
if (typeof line.message === 'string')
|
|
56
|
+
return line.message;
|
|
57
|
+
const err = line.error;
|
|
58
|
+
if (typeof err === 'string')
|
|
59
|
+
return err;
|
|
60
|
+
if (err && typeof err === 'object' && 'message' in err && typeof err.message === 'string') {
|
|
61
|
+
return err.message;
|
|
62
|
+
}
|
|
63
|
+
return 'Codex run failed';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* `AgentEventParser` for Codex CLI. Line-buffers stdout, parses NDJSON, and
|
|
67
|
+
* emits neutral AgentEvents plus a `raw` channel for verbatim/log output.
|
|
68
|
+
*/
|
|
69
|
+
export class CodexAgentParser extends EventEmitter {
|
|
70
|
+
buffer = '';
|
|
71
|
+
_sessionId = null;
|
|
72
|
+
_lastEventTime = new Date();
|
|
73
|
+
get sessionId() { return this._sessionId; }
|
|
74
|
+
get lastEventTime() { return this._lastEventTime; }
|
|
75
|
+
attach(stream) {
|
|
76
|
+
stream.on('data', (chunk) => {
|
|
77
|
+
this.buffer += chunk.toString();
|
|
78
|
+
this.processBuffer();
|
|
79
|
+
});
|
|
80
|
+
stream.on('end', () => {
|
|
81
|
+
if (this.buffer.trim())
|
|
82
|
+
this.processBuffer();
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
processBuffer() {
|
|
86
|
+
const lines = this.buffer.split('\n');
|
|
87
|
+
this.buffer = lines.pop() ?? '';
|
|
88
|
+
for (const raw of lines) {
|
|
89
|
+
const trimmed = raw.trim();
|
|
90
|
+
if (!trimmed)
|
|
91
|
+
continue;
|
|
92
|
+
let parsed;
|
|
93
|
+
try {
|
|
94
|
+
parsed = JSON.parse(trimmed);
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
this.emit('error', err instanceof Error ? err : new Error(String(err)), trimmed);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
this._lastEventTime = new Date();
|
|
101
|
+
this.emit('raw', parsed, formatCodexEventForLog(parsed));
|
|
102
|
+
this.route(parsed);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
route(line) {
|
|
106
|
+
switch (line.type) {
|
|
107
|
+
case 'thread.started':
|
|
108
|
+
if (line.thread_id) {
|
|
109
|
+
if (!this._sessionId)
|
|
110
|
+
this._sessionId = line.thread_id;
|
|
111
|
+
this.emitAgent({ kind: 'session_started', sessionId: line.thread_id });
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
case 'turn.completed':
|
|
115
|
+
this.emitAgent({
|
|
116
|
+
kind: 'result',
|
|
117
|
+
isError: false,
|
|
118
|
+
numTurns: 1,
|
|
119
|
+
inputTokens: line.usage?.input_tokens,
|
|
120
|
+
outputTokens: line.usage?.output_tokens,
|
|
121
|
+
// Codex does not report a USD cost; left undefined.
|
|
122
|
+
});
|
|
123
|
+
break;
|
|
124
|
+
case 'turn.failed':
|
|
125
|
+
case 'error':
|
|
126
|
+
this.emitAgent({ kind: 'error', message: codexErrorMessage(line) });
|
|
127
|
+
break;
|
|
128
|
+
case 'item.started':
|
|
129
|
+
this.routeItem(line.item, 'started');
|
|
130
|
+
break;
|
|
131
|
+
case 'item.completed':
|
|
132
|
+
this.routeItem(line.item, 'completed');
|
|
133
|
+
break;
|
|
134
|
+
// turn.started and unknown types carry no neutral signal.
|
|
135
|
+
default:
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
routeItem(item, phase) {
|
|
140
|
+
if (!item)
|
|
141
|
+
return;
|
|
142
|
+
switch (item.type) {
|
|
143
|
+
case 'collab_tool_call':
|
|
144
|
+
// Subagent delegation. Spawn/complete paired by item id.
|
|
145
|
+
this.emitAgent({
|
|
146
|
+
kind: 'subagent_activity',
|
|
147
|
+
phase: phase === 'started' ? 'spawned' : 'completed',
|
|
148
|
+
agentId: item.id ?? 'codex-subagent',
|
|
149
|
+
agentName: item.tool ?? 'subagent',
|
|
150
|
+
isError: item.status === 'failed',
|
|
151
|
+
});
|
|
152
|
+
break;
|
|
153
|
+
case 'agent_message':
|
|
154
|
+
// Assistant prose -- only the completed item carries text.
|
|
155
|
+
if (phase === 'completed' && item.text && item.text.length > 0) {
|
|
156
|
+
this.emitAgent({ kind: 'narration', text: item.text });
|
|
157
|
+
}
|
|
158
|
+
break;
|
|
159
|
+
case 'mcp_tool_call':
|
|
160
|
+
// Tool call -- surface on completion (carries args + result).
|
|
161
|
+
if (phase === 'completed') {
|
|
162
|
+
const toolName = item.server ? `${item.server}.${item.tool ?? '?'}` : (item.tool ?? 'mcp');
|
|
163
|
+
this.emitAgent({
|
|
164
|
+
kind: 'tool_activity',
|
|
165
|
+
tool: toolName,
|
|
166
|
+
file: item.arguments ? extractFilePath(item.arguments) : null,
|
|
167
|
+
input: item.arguments,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
break;
|
|
171
|
+
default:
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
emitAgent(event) {
|
|
176
|
+
this.emit('agent_event', event);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=codex-agent-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-agent-parser.js","sourceRoot":"","sources":["../src/codex-agent-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -20,6 +20,12 @@ export interface ProductEntry {
|
|
|
20
20
|
id: string;
|
|
21
21
|
/** Absolute path to the product's git repository. */
|
|
22
22
|
repoPath: string;
|
|
23
|
+
/** Per-product isolated CODEX_HOME dir (provisioned by `telora-daemon connect` for local-model products). */
|
|
24
|
+
codexHome?: string;
|
|
25
|
+
/** Per-product default coding engine id (e.g. 'codex'); null/undefined => inherit org default. */
|
|
26
|
+
defaultCodingEngine?: string;
|
|
27
|
+
/** Per-product explicit model id passed to the engine (e.g. the codex `--model`); undefined => engine/pipeline default. */
|
|
28
|
+
codexModel?: string;
|
|
23
29
|
}
|
|
24
30
|
/**
|
|
25
31
|
* Derive a short human-readable label for a product entry.
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,0CAA0C;AAC1C,eAAO,MAAM,UAAU,QAAoE,CAAC;AAM5F;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,0CAA0C;AAC1C,eAAO,MAAM,UAAU,QAAoE,CAAC;AAM5F;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,6GAA6G;IAC7G,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kGAAkG;IAClG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2HAA2H;IAC3H,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAM1D;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,eAAe,EAAE,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgCzB;AA8FD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC/C,OAAO,CAAC,UAAU,CAAC,CAiDrB;AAmED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,EAAE,CA2ExE"}
|
package/dist/config.js
CHANGED
|
@@ -241,7 +241,18 @@ function resolveProducts(fileConfig, envOverrides, resolvedBase) {
|
|
|
241
241
|
const id = typeof obj.id === 'string' ? obj.id : '';
|
|
242
242
|
const repoPath = typeof obj.repoPath === 'string' ? obj.repoPath : '';
|
|
243
243
|
if (id) {
|
|
244
|
-
|
|
244
|
+
const entry = { id, repoPath: repoPath || process.cwd() };
|
|
245
|
+
// Preserve optional per-product local-model fields when present.
|
|
246
|
+
if (typeof obj.codexHome === 'string' && obj.codexHome !== '') {
|
|
247
|
+
entry.codexHome = obj.codexHome;
|
|
248
|
+
}
|
|
249
|
+
if (typeof obj.defaultCodingEngine === 'string' && obj.defaultCodingEngine !== '') {
|
|
250
|
+
entry.defaultCodingEngine = obj.defaultCodingEngine;
|
|
251
|
+
}
|
|
252
|
+
if (typeof obj.codexModel === 'string' && obj.codexModel !== '') {
|
|
253
|
+
entry.codexModel = obj.codexModel;
|
|
254
|
+
}
|
|
255
|
+
entries.push(entry);
|
|
245
256
|
}
|
|
246
257
|
}
|
|
247
258
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,0CAA0C;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAG,iEAAiE,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ export { createApiClient, isReadOnlyAction, setReadOnlyMode, isReadOnlyMode, typ
|
|
|
3
3
|
export { createTransform, mapDefinedKeys, } from './transforms.js';
|
|
4
4
|
export { TokenSniffingTransform, parseTokenUsageFromOutput, sumTokenUsage, type ParsedTokenUsage, } from './token-usage.js';
|
|
5
5
|
export { OutputEventSchema, StreamJsonParser, sendMessage, type AssistantMessage, type GenericSystemEvent, type InputJsonDelta, type OutputEvent, type RateLimitEvent, type RawStreamEvent, type ResultError, type ResultSuccess, type StreamEvent, type StreamJsonParserEvents, type SystemInitEvent, type TeammateEvent, type TextBlock, type TextDelta, type ThinkingBlock, type TokenUsage, type ToolUseBlock, type UserMessage, type UserTextMessageEvent, type UserToolResultEvent, } from './stream-json.js';
|
|
6
|
+
export { type AgentEvent, type AgentEventParser, type AgentSessionStartedEvent, type AgentNarrationEvent, type AgentToolActivityEvent, type AgentSubagentActivityEvent, type AgentResultEvent, type AgentErrorEvent, } from './agent-event.js';
|
|
7
|
+
export { ClaudeAgentParser, extractFilePath, } from './claude-agent-parser.js';
|
|
8
|
+
export { CodexAgentParser, } from './codex-agent-parser.js';
|
|
6
9
|
export { UUID_REGEX, loadConfigFile, productLabel, resolveBaseConfig, validateBaseConfig, type BaseConfig, type ProductEntry, } from './config.js';
|
|
7
10
|
export { PidLockError, ShutdownController, acquirePidLock, isProcessRunning, releasePidLock, setupSignalHandlers, type ShutdownHandler, } from './lifecycle.js';
|
|
8
11
|
export { DEFAULT_GIT_TIMEOUT_MS, branchExists, runGit, type GitResult, } from './git.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,10 @@ export { createTransform, mapDefinedKeys, } from './transforms.js';
|
|
|
9
9
|
export { TokenSniffingTransform, parseTokenUsageFromOutput, sumTokenUsage, } from './token-usage.js';
|
|
10
10
|
// Stream-JSON protocol (NDJSON parser, schemas, writer for Claude Code sessions)
|
|
11
11
|
export { OutputEventSchema, StreamJsonParser, sendMessage, } from './stream-json.js';
|
|
12
|
+
// Claude Code stream-json -> neutral AgentEvent adapter
|
|
13
|
+
export { ClaudeAgentParser, extractFilePath, } from './claude-agent-parser.js';
|
|
14
|
+
// Codex CLI exec --json (JSONL) -> neutral AgentEvent adapter
|
|
15
|
+
export { CodexAgentParser, } from './codex-agent-parser.js';
|
|
12
16
|
// Shared config infrastructure (BaseConfig, loaders, validators)
|
|
13
17
|
export { UUID_REGEX, loadConfigFile, productLabel, resolveBaseConfig, validateBaseConfig, } from './config.js';
|
|
14
18
|
// Process lifecycle (PID locking, signal handling, shutdown coordination)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAE5E,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EAIzB,kBAAkB,EAClB,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,SAAS,GAEV,MAAM,iBAAiB,CAAC;AAEzB,2DAA2D;AAC3D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,GAGf,MAAM,iBAAiB,CAAC;AAEzB,6DAA6D;AAC7D,OAAO,EACL,eAAe,EACf,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,qDAAqD;AACrD,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,aAAa,GAEd,MAAM,kBAAkB,CAAC;AAE1B,iFAAiF;AACjF,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GAqBZ,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAE5E,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EAIzB,kBAAkB,EAClB,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,SAAS,GAEV,MAAM,iBAAiB,CAAC;AAEzB,2DAA2D;AAC3D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,GAGf,MAAM,iBAAiB,CAAC;AAEzB,6DAA6D;AAC7D,OAAO,EACL,eAAe,EACf,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,qDAAqD;AACrD,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,aAAa,GAEd,MAAM,kBAAkB,CAAC;AAE1B,iFAAiF;AACjF,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GAqBZ,MAAM,kBAAkB,CAAC;AAc1B,wDAAwD;AACxD,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAElC,8DAA8D;AAC9D,OAAO,EACL,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,iEAAiE;AACjE,OAAO,EACL,UAAU,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AAErB,0EAA0E;AAC1E,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,mBAAmB,GAEpB,MAAM,gBAAgB,CAAC;AAExB,yDAAyD;AACzD,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,MAAM,GAEP,MAAM,UAAU,CAAC;AAElB,0DAA0D;AAC1D,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GAExB,MAAM,eAAe,CAAC;AAEvB,gEAAgE;AAChE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,sBAAsB,GAGvB,MAAM,YAAY,CAAC;AASpB,iEAAiE;AACjE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAE7B,2EAA2E;AAC3E,OAAO,EACL,gBAAgB,GAGjB,MAAM,wBAAwB,CAAC;AAEhC,0EAA0E;AAC1E,OAAO,EACL,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,4DAA4D;AAC5D,OAAO,EACL,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAE/B,sFAAsF;AACtF,OAAO,EACL,YAAY,GAEb,MAAM,eAAe,CAAC;AAEvB,oFAAoF;AACpF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAE/B,yFAAyF;AACzF,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,uBAAuB,CAAC;AAE/B,wEAAwE;AACxE,OAAO,EACL,cAAc,EACd,aAAa,GAEd,MAAM,mBAAmB,CAAC;AAE3B,mEAAmE;AACnE,OAAO,EACL,gBAAgB,EAChB,eAAe,GAEhB,MAAM,qBAAqB,CAAC;AAE7B,iEAAiE;AACjE,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GAKjB,MAAM,kBAAkB,CAAC;AAE1B,8CAA8C;AAC9C,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAE7B,oEAAoE;AACpE,OAAO,EACL,iBAAiB,EACjB,YAAY,GAGb,MAAM,oBAAoB,CAAC"}
|
package/package.json
CHANGED