@telora/daemon-core 0.2.83 → 0.2.86
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 +22 -1
- package/dist/activity-tracker.d.ts.map +1 -1
- package/dist/activity-tracker.js +45 -14
- package/dist/activity-tracker.js.map +1 -1
- package/dist/agent-event.d.ts +17 -1
- package/dist/agent-event.d.ts.map +1 -1
- package/dist/agent-event.js +4 -19
- package/dist/agent-event.js.map +1 -1
- package/dist/api-client.d.ts +27 -1
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +74 -32
- package/dist/api-client.js.map +1 -1
- package/dist/claude-agent-parser.d.ts +1 -0
- package/dist/claude-agent-parser.d.ts.map +1 -1
- package/dist/claude-agent-parser.js +14 -0
- package/dist/claude-agent-parser.js.map +1 -1
- package/dist/codex-agent-parser.d.ts.map +1 -1
- package/dist/codex-agent-parser.js +3 -0
- package/dist/codex-agent-parser.js.map +1 -1
- package/dist/config.d.ts +0 -11
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/disposition.d.ts.map +1 -1
- package/dist/disposition.js +3 -15
- package/dist/disposition.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +3 -16
- package/dist/engine.js.map +1 -1
- package/dist/env-config.d.ts +3 -1
- package/dist/env-config.d.ts.map +1 -1
- package/dist/env-config.js +10 -2
- package/dist/env-config.js.map +1 -1
- package/dist/escalation-types.d.ts.map +1 -1
- package/dist/escalation-types.js +3 -8
- package/dist/escalation-types.js.map +1 -1
- package/dist/event-logger.d.ts.map +1 -1
- package/dist/event-logger.js +3 -6
- package/dist/event-logger.js.map +1 -1
- package/dist/execution-status.d.ts.map +1 -1
- package/dist/execution-status.js +4 -0
- package/dist/execution-status.js.map +1 -1
- package/dist/focus-stage.d.ts.map +1 -1
- package/dist/focus-stage.js +3 -0
- package/dist/focus-stage.js.map +1 -1
- package/dist/focus-status.d.ts.map +1 -1
- package/dist/focus-status.js +3 -0
- package/dist/focus-status.js.map +1 -1
- package/dist/git.d.ts +0 -7
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +3 -0
- package/dist/git.js.map +1 -1
- package/dist/health-events.d.ts.map +1 -1
- package/dist/health-events.js +3 -7
- package/dist/health-events.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/lifecycle.d.ts +0 -7
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +3 -0
- package/dist/lifecycle.js.map +1 -1
- package/dist/log-manager.d.ts +0 -17
- package/dist/log-manager.d.ts.map +1 -1
- package/dist/log-manager.js +3 -0
- package/dist/log-manager.js.map +1 -1
- package/dist/mcp-resolution.d.ts +0 -17
- package/dist/mcp-resolution.d.ts.map +1 -1
- package/dist/mcp-resolution.js +3 -0
- package/dist/mcp-resolution.js.map +1 -1
- package/dist/otel-env.d.ts.map +1 -1
- package/dist/otel-env.js +3 -8
- package/dist/otel-env.js.map +1 -1
- package/dist/product-status.d.ts.map +1 -1
- package/dist/product-status.js +3 -0
- package/dist/product-status.js.map +1 -1
- package/dist/resilience.d.ts +17 -7
- package/dist/resilience.d.ts.map +1 -1
- package/dist/resilience.js +18 -1
- package/dist/resilience.js.map +1 -1
- package/dist/resolution-class.d.ts.map +1 -1
- package/dist/resolution-class.js +3 -18
- package/dist/resolution-class.js.map +1 -1
- package/dist/resource-governor.d.ts.map +1 -1
- package/dist/resource-governor.js +3 -11
- package/dist/resource-governor.js.map +1 -1
- package/dist/spawn.d.ts.map +1 -1
- package/dist/spawn.js +3 -0
- package/dist/spawn.js.map +1 -1
- package/dist/stream-json.d.ts +21 -2
- package/dist/stream-json.d.ts.map +1 -1
- package/dist/stream-json.js +28 -0
- package/dist/stream-json.js.map +1 -1
- package/dist/token-usage.d.ts.map +1 -1
- package/dist/token-usage.js +3 -0
- package/dist/token-usage.js.map +1 -1
- package/dist/transforms.d.ts.map +1 -1
- package/dist/transforms.js +3 -9
- package/dist/transforms.js.map +1 -1
- package/dist/unified-config.d.ts +0 -25
- package/dist/unified-config.d.ts.map +1 -1
- package/dist/unified-config.js +3 -25
- package/dist/unified-config.js.map +1 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +3 -0
- package/dist/vocabulary.js.map +1 -1
- package/dist/work-facing.d.ts.map +1 -1
- package/dist/work-facing.js +3 -0
- package/dist/work-facing.js.map +1 -1
- package/dist/workflow-types.d.ts.map +1 -1
- package/dist/workflow-types.js +3 -12
- package/dist/workflow-types.js.map +1 -1
- package/dist/worktree.d.ts +0 -9
- package/dist/worktree.d.ts.map +1 -1
- package/dist/worktree.js +3 -0
- package/dist/worktree.js.map +1 -1
- package/package.json +1 -1
|
@@ -33,6 +33,13 @@ export declare class ActivityTracker {
|
|
|
33
33
|
private flushInProgress;
|
|
34
34
|
private onNarrationCallback;
|
|
35
35
|
private flushCallback;
|
|
36
|
+
/**
|
|
37
|
+
* Max ms a single flush write may run before it is treated as failed. Bounds
|
|
38
|
+
* the re-entry guard so a write that never returns can neither hang the flush
|
|
39
|
+
* nor latch `flushInProgress` -- the published liveness clock then stops only
|
|
40
|
+
* when the session itself stops producing events, not when one write wedges.
|
|
41
|
+
*/
|
|
42
|
+
private readonly flushTimeoutMs;
|
|
36
43
|
/** Epoch ms of the last every-event liveness touch flush (throttle floor). */
|
|
37
44
|
private lastEventTouchMs;
|
|
38
45
|
/**
|
|
@@ -42,7 +49,13 @@ export declare class ActivityTracker {
|
|
|
42
49
|
* last-active advances on every event without a DB write per event.
|
|
43
50
|
*/
|
|
44
51
|
private static readonly EVENT_TOUCH_THROTTLE_MS;
|
|
45
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Default flush-write timeout. Production wiring overrides this from the
|
|
54
|
+
* TELORA_ACTIVITY_WRITE_TIMEOUT_MS env knob (see the daemon's ActivityTracker
|
|
55
|
+
* subclass); kept as a self-contained default so daemon-core stays env-free.
|
|
56
|
+
*/
|
|
57
|
+
private static readonly DEFAULT_FLUSH_TIMEOUT_MS;
|
|
58
|
+
constructor(sessionId: string, flushCallback: (snapshot: ActivitySnapshot) => Promise<void>, flushTimeoutMs?: number);
|
|
46
59
|
/**
|
|
47
60
|
* Set a callback for narration updates (called when lastText changes).
|
|
48
61
|
*/
|
|
@@ -83,5 +96,13 @@ export declare class ActivityTracker {
|
|
|
83
96
|
* Wrapped in try/catch -- failures are logged but never thrown.
|
|
84
97
|
*/
|
|
85
98
|
private flush;
|
|
99
|
+
/**
|
|
100
|
+
* Run the flush callback but never wait longer than `flushTimeoutMs`. The
|
|
101
|
+
* awaited promise ALWAYS settles within the bound: if the write is still
|
|
102
|
+
* pending at the deadline the race rejects, so the caller's `finally` clears
|
|
103
|
+
* the re-entry guard. A late settlement of the abandoned write is swallowed so
|
|
104
|
+
* it cannot surface as an unhandled rejection.
|
|
105
|
+
*/
|
|
106
|
+
private writeWithTimeout;
|
|
86
107
|
}
|
|
87
108
|
//# sourceMappingURL=activity-tracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-tracker.d.ts","sourceRoot":"","sources":["../src/activity-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"activity-tracker.d.ts","sourceRoot":"","sources":["../src/activity-tracker.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;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;IACrE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,8EAA8E;IAC9E,OAAO,CAAC,gBAAgB,CAAK;IAC7B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAU;IAEzD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAU;gBAGxD,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,EAC5D,cAAc,GAAE,MAAiD;IAgBnE;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAInD;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAatC;;;;;;OAMG;YACW,mBAAmB;IAUjC;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IA0BnB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAepB;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC;;;;OAIG;YACW,KAAK;IA4BnB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;CAmBzB"}
|
package/dist/activity-tracker.js
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Maintains a local snapshot of what the agent is currently doing and flushes
|
|
5
|
-
* it via the provided callback. Uses dirty-checking (JSON.stringify comparison)
|
|
6
|
-
* to avoid redundant calls.
|
|
7
|
-
*
|
|
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
|
-
*/
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon-core/src/__tests__/activity-tracker.test.ts
|
|
3
|
+
// PINNED-BY-END
|
|
12
4
|
// -- Tracker class ------------------------------------------------------------
|
|
13
5
|
export class ActivityTracker {
|
|
14
6
|
sessionId;
|
|
@@ -17,6 +9,13 @@ export class ActivityTracker {
|
|
|
17
9
|
flushInProgress = false;
|
|
18
10
|
onNarrationCallback = null;
|
|
19
11
|
flushCallback;
|
|
12
|
+
/**
|
|
13
|
+
* Max ms a single flush write may run before it is treated as failed. Bounds
|
|
14
|
+
* the re-entry guard so a write that never returns can neither hang the flush
|
|
15
|
+
* nor latch `flushInProgress` -- the published liveness clock then stops only
|
|
16
|
+
* when the session itself stops producing events, not when one write wedges.
|
|
17
|
+
*/
|
|
18
|
+
flushTimeoutMs;
|
|
20
19
|
/** Epoch ms of the last every-event liveness touch flush (throttle floor). */
|
|
21
20
|
lastEventTouchMs = 0;
|
|
22
21
|
/**
|
|
@@ -26,9 +25,16 @@ export class ActivityTracker {
|
|
|
26
25
|
* last-active advances on every event without a DB write per event.
|
|
27
26
|
*/
|
|
28
27
|
static EVENT_TOUCH_THROTTLE_MS = 15_000;
|
|
29
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Default flush-write timeout. Production wiring overrides this from the
|
|
30
|
+
* TELORA_ACTIVITY_WRITE_TIMEOUT_MS env knob (see the daemon's ActivityTracker
|
|
31
|
+
* subclass); kept as a self-contained default so daemon-core stays env-free.
|
|
32
|
+
*/
|
|
33
|
+
static DEFAULT_FLUSH_TIMEOUT_MS = 30_000;
|
|
34
|
+
constructor(sessionId, flushCallback, flushTimeoutMs = ActivityTracker.DEFAULT_FLUSH_TIMEOUT_MS) {
|
|
30
35
|
this.sessionId = sessionId;
|
|
31
36
|
this.flushCallback = flushCallback;
|
|
37
|
+
this.flushTimeoutMs = flushTimeoutMs;
|
|
32
38
|
this.snapshot = {
|
|
33
39
|
currentTool: null,
|
|
34
40
|
currentFile: null,
|
|
@@ -144,16 +150,41 @@ export class ActivityTracker {
|
|
|
144
150
|
return;
|
|
145
151
|
this.flushInProgress = true;
|
|
146
152
|
try {
|
|
147
|
-
await this.
|
|
153
|
+
await this.writeWithTimeout(this.snapshot);
|
|
148
154
|
this.lastFlushedJson = json;
|
|
149
155
|
}
|
|
150
156
|
catch (err) {
|
|
151
|
-
// Activity writes must NEVER crash the process
|
|
157
|
+
// Activity writes must NEVER crash the process. A timeout lands here too:
|
|
158
|
+
// the write is treated as failed, logged, and the guard clears in finally.
|
|
152
159
|
console.warn(`[activity-tracker] Failed to flush activity for session ${this.sessionId}:`, err.message);
|
|
153
160
|
}
|
|
154
161
|
finally {
|
|
162
|
+
// Cleared unconditionally: even if the underlying write never settles, the
|
|
163
|
+
// timeout below makes the awaited promise settle, so the guard cannot latch.
|
|
155
164
|
this.flushInProgress = false;
|
|
156
165
|
}
|
|
157
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Run the flush callback but never wait longer than `flushTimeoutMs`. The
|
|
169
|
+
* awaited promise ALWAYS settles within the bound: if the write is still
|
|
170
|
+
* pending at the deadline the race rejects, so the caller's `finally` clears
|
|
171
|
+
* the re-entry guard. A late settlement of the abandoned write is swallowed so
|
|
172
|
+
* it cannot surface as an unhandled rejection.
|
|
173
|
+
*/
|
|
174
|
+
writeWithTimeout(snapshot) {
|
|
175
|
+
const write = this.flushCallback(snapshot);
|
|
176
|
+
// Swallow a rejection that arrives after the timeout already won the race.
|
|
177
|
+
void write.catch(() => { });
|
|
178
|
+
let timer;
|
|
179
|
+
const timeout = new Promise((_resolve, reject) => {
|
|
180
|
+
timer = setTimeout(() => reject(new Error(`activity flush timed out after ${this.flushTimeoutMs}ms`)), this.flushTimeoutMs);
|
|
181
|
+
// Do not keep the event loop alive solely for this timer.
|
|
182
|
+
timer.unref?.();
|
|
183
|
+
});
|
|
184
|
+
return Promise.race([write, timeout]).finally(() => {
|
|
185
|
+
if (timer !== undefined)
|
|
186
|
+
clearTimeout(timer);
|
|
187
|
+
});
|
|
188
|
+
}
|
|
158
189
|
}
|
|
159
190
|
//# sourceMappingURL=activity-tracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-tracker.js","sourceRoot":"","sources":["../src/activity-tracker.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"activity-tracker.js","sourceRoot":"","sources":["../src/activity-tracker.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-event.d.ts
CHANGED
|
@@ -68,8 +68,24 @@ export interface AgentErrorEvent {
|
|
|
68
68
|
kind: 'error';
|
|
69
69
|
message: string;
|
|
70
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* A heartbeat emitted by the engine WHILE a single long tool call is still
|
|
73
|
+
* running (~every 30s). It is a LIVENESS touch only -- "still inside the same
|
|
74
|
+
* call", not "something happened" -- so consumers MUST treat it as activity for
|
|
75
|
+
* the liveness clock but NEVER as a turn, a tool invocation, or progress for any
|
|
76
|
+
* stall / no-progress detector.
|
|
77
|
+
*/
|
|
78
|
+
export interface AgentHeartbeatEvent {
|
|
79
|
+
kind: 'heartbeat';
|
|
80
|
+
/** Tool the long call is running, if the engine names it. */
|
|
81
|
+
toolName?: string;
|
|
82
|
+
/** Seconds elapsed inside the ongoing call, if provided. */
|
|
83
|
+
elapsedSeconds?: number;
|
|
84
|
+
/** The parent tool_use id the heartbeat belongs to, if provided. */
|
|
85
|
+
parentToolUseId?: string;
|
|
86
|
+
}
|
|
71
87
|
/** Provider-neutral event union consumed by all downstream daemon code. */
|
|
72
|
-
export type AgentEvent = AgentSessionStartedEvent | AgentNarrationEvent | AgentToolActivityEvent | AgentSubagentActivityEvent | AgentResultEvent | AgentErrorEvent;
|
|
88
|
+
export type AgentEvent = AgentSessionStartedEvent | AgentNarrationEvent | AgentToolActivityEvent | AgentSubagentActivityEvent | AgentResultEvent | AgentErrorEvent | AgentHeartbeatEvent;
|
|
73
89
|
/**
|
|
74
90
|
* Engine-agnostic parser interface. A backend's parser attaches to the spawned
|
|
75
91
|
* process stdout and emits the neutral `AgentEvent` stream plus a `raw` channel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-event.d.ts","sourceRoot":"","sources":["../src/agent-event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-event.d.ts","sourceRoot":"","sources":["../src/agent-event.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;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;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAClB,wBAAwB,GACxB,mBAAmB,GACnB,sBAAsB,GACtB,0BAA0B,GAC1B,gBAAgB,GAChB,eAAe,GACf,mBAAmB,CAAC;AAIxB;;;;;;;;;;;;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"}
|
package/dist/agent-event.js
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
*/
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon-core/src/__tests__/activity-tracker.test.ts,
|
|
3
|
+
// packages/daemon-core/src/__tests__/heartbeat.test.ts
|
|
4
|
+
// PINNED-BY-END
|
|
20
5
|
export {};
|
|
21
6
|
//# sourceMappingURL=agent-event.js.map
|
package/dist/agent-event.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-event.js","sourceRoot":"","sources":["../src/agent-event.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent-event.js","sourceRoot":"","sources":["../src/agent-event.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0EAA0E;AAC1E,yDAAyD;AACzD,gBAAgB"}
|
package/dist/api-client.d.ts
CHANGED
|
@@ -104,6 +104,31 @@ export interface ApiClient {
|
|
|
104
104
|
*/
|
|
105
105
|
validateTrackerAuth(): Promise<void>;
|
|
106
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Extract the machine-readable wire code from a parsed error body.
|
|
109
|
+
*
|
|
110
|
+
* The edge error envelope is `{ success: false, error, code? }`; `code` is
|
|
111
|
+
* carried through as a raw string (daemon-core must tolerate codes it does
|
|
112
|
+
* not know, so no typed union here). Returns undefined -- never throws --
|
|
113
|
+
* for any body that is not an object carrying a string `code`.
|
|
114
|
+
*
|
|
115
|
+
* Exported for tests; not part of the ApiClient interface.
|
|
116
|
+
*/
|
|
117
|
+
export declare function extractWireCode(body: unknown): string | undefined;
|
|
118
|
+
/** Minimal fetch signature this client depends on (injectable for tests). */
|
|
119
|
+
type FetchFn = (url: string, init: RequestInit) => Promise<Response>;
|
|
120
|
+
/** Optional knobs for {@link createApiClient}. */
|
|
121
|
+
export interface CreateApiClientOptions {
|
|
122
|
+
/**
|
|
123
|
+
* Max ms a single product-api fetch may run before it is aborted (default
|
|
124
|
+
* 60s). A stalled request is cancelled via AbortController so it surfaces as a
|
|
125
|
+
* retryable network error instead of hanging the caller forever -- e.g. a
|
|
126
|
+
* hung session-activity write can never wedge the activity flush.
|
|
127
|
+
*/
|
|
128
|
+
fetchTimeoutMs?: number;
|
|
129
|
+
/** Injectable fetch implementation (tests); defaults to the global fetch. */
|
|
130
|
+
fetchImpl?: FetchFn;
|
|
131
|
+
}
|
|
107
132
|
/**
|
|
108
133
|
* Create an API client bound to a config and circuit breaker topology.
|
|
109
134
|
*
|
|
@@ -131,5 +156,6 @@ export interface ApiClient {
|
|
|
131
156
|
* );
|
|
132
157
|
* ```
|
|
133
158
|
*/
|
|
134
|
-
export declare function createApiClient(config: BaseApiConfig, breakerMap: Record<string, CircuitBreaker>, actionToConcern: (action: string) => string): ApiClient;
|
|
159
|
+
export declare function createApiClient(config: BaseApiConfig, breakerMap: Record<string, CircuitBreaker>, actionToConcern: (action: string) => string, options?: CreateApiClientOptions): ApiClient;
|
|
160
|
+
export {};
|
|
135
161
|
//# sourceMappingURL=api-client.d.ts.map
|
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAyF,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAwBxI,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,GAC7D,IAAI,CAcN;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,IAAI,iBAAiB,CAExD;AAeD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAKxD;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzE;;;;;OAKG;IACH,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAExG;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7E;;;;OAIG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIjE;AAaD,6EAA6E;AAC7E,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAErE,kDAAkD;AAClD,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6CD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC1C,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,EAC3C,OAAO,GAAE,sBAA2B,GACnC,SAAS,CA8JX"}
|
package/dist/api-client.js
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* The action-to-concern circuit breaker mapping stays engine-specific
|
|
9
|
-
* (daemon has 4 concerns, factory has 3). This module provides the
|
|
10
|
-
* factory function; each engine provides its own concern mapping.
|
|
11
|
-
*/
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon-core/src/__tests__/api-client-timeout.test.ts,
|
|
3
|
+
// packages/daemon-core/src/__tests__/read-only-mode.test.ts,
|
|
4
|
+
// packages/daemon-core/src/__tests__/schema-constraint-violation.test.ts,
|
|
5
|
+
// packages/daemon-core/src/__tests__/wire-code.test.ts
|
|
6
|
+
// PINNED-BY-END
|
|
12
7
|
import { withRetry, ApiError, ReadOnlyModeError, SchemaConstraintViolation, classifyHttpStatus } from './resilience.js';
|
|
13
8
|
import { healthEvents } from './health-events.js';
|
|
14
9
|
let readOnlyModeState = { active: false };
|
|
@@ -71,9 +66,61 @@ export function isReadOnlyAction(action) {
|
|
|
71
66
|
return true;
|
|
72
67
|
return false;
|
|
73
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Extract the machine-readable wire code from a parsed error body.
|
|
71
|
+
*
|
|
72
|
+
* The edge error envelope is `{ success: false, error, code? }`; `code` is
|
|
73
|
+
* carried through as a raw string (daemon-core must tolerate codes it does
|
|
74
|
+
* not know, so no typed union here). Returns undefined -- never throws --
|
|
75
|
+
* for any body that is not an object carrying a string `code`.
|
|
76
|
+
*
|
|
77
|
+
* Exported for tests; not part of the ApiClient interface.
|
|
78
|
+
*/
|
|
79
|
+
export function extractWireCode(body) {
|
|
80
|
+
if (typeof body !== 'object' || body === null)
|
|
81
|
+
return undefined;
|
|
82
|
+
const code = body.code;
|
|
83
|
+
return typeof code === 'string' ? code : undefined;
|
|
84
|
+
}
|
|
74
85
|
// ---------------------------------------------------------------------------
|
|
75
86
|
// Factory function
|
|
76
87
|
// ---------------------------------------------------------------------------
|
|
88
|
+
/**
|
|
89
|
+
* Default per-request fetch timeout. Production wiring overrides this from the
|
|
90
|
+
* TELORA_API_FETCH_TIMEOUT_MS env knob (see the daemon's queries/shared.ts);
|
|
91
|
+
* kept as a self-contained default so this module stays env-free.
|
|
92
|
+
*/
|
|
93
|
+
const DEFAULT_API_FETCH_TIMEOUT_MS = 60_000;
|
|
94
|
+
/**
|
|
95
|
+
* Classify a failed product-api response and throw the right typed error.
|
|
96
|
+
*
|
|
97
|
+
* Never returns -- the `never` return type lets the caller treat the call as a
|
|
98
|
+
* throw site. Emits a health event on an auth rejection (401/403) before
|
|
99
|
+
* throwing, so a bad tracker token surfaces on the health channel rather than
|
|
100
|
+
* only as a retry storm.
|
|
101
|
+
*
|
|
102
|
+
* Typed schema-drift errors (D2) come back as
|
|
103
|
+
* { errorType: 'schema_constraint_violation', constraintName, rejectedValue }
|
|
104
|
+
* and become a discriminated SchemaConstraintViolation the listener uses to
|
|
105
|
+
* bound retries on the same (constraint, value) combo; everything else becomes
|
|
106
|
+
* an ApiError carrying the retryability classification.
|
|
107
|
+
*/
|
|
108
|
+
function throwApiFailure(response, data) {
|
|
109
|
+
if (response.status === 401 || response.status === 403) {
|
|
110
|
+
healthEvents.emit({
|
|
111
|
+
severity: 'error',
|
|
112
|
+
source: 'api-client',
|
|
113
|
+
code: 'auth.token_invalid',
|
|
114
|
+
message: `Authentication failed (HTTP ${response.status}): ${data.error || 'token rejected'}`,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
const body = data;
|
|
118
|
+
if (body.errorType === 'schema_constraint_violation') {
|
|
119
|
+
throw new SchemaConstraintViolation(body.error || `CHECK constraint violation (${response.status})`, body.constraintName ?? null, body.rejectedValue ?? null);
|
|
120
|
+
}
|
|
121
|
+
const classification = classifyHttpStatus(response.status);
|
|
122
|
+
throw new ApiError(data.error || `API error (${response.status})`, response.status, classification === 'retryable', extractWireCode(body));
|
|
123
|
+
}
|
|
77
124
|
/**
|
|
78
125
|
* Create an API client bound to a config and circuit breaker topology.
|
|
79
126
|
*
|
|
@@ -101,7 +148,9 @@ export function isReadOnlyAction(action) {
|
|
|
101
148
|
* );
|
|
102
149
|
* ```
|
|
103
150
|
*/
|
|
104
|
-
export function createApiClient(config, breakerMap, actionToConcern) {
|
|
151
|
+
export function createApiClient(config, breakerMap, actionToConcern, options = {}) {
|
|
152
|
+
const doFetch = options.fetchImpl ?? fetch;
|
|
153
|
+
const fetchTimeoutMs = options.fetchTimeoutMs ?? DEFAULT_API_FETCH_TIMEOUT_MS;
|
|
105
154
|
/**
|
|
106
155
|
* Resolve the circuit breaker for a given API action.
|
|
107
156
|
*/
|
|
@@ -120,41 +169,34 @@ export function createApiClient(config, breakerMap, actionToConcern) {
|
|
|
120
169
|
throw new ReadOnlyModeError(action);
|
|
121
170
|
}
|
|
122
171
|
const url = `${config.teloraUrl}/functions/v1/product-api`;
|
|
172
|
+
// Bound every request with an AbortController: a stalled socket is cancelled
|
|
173
|
+
// at the deadline and surfaces as a retryable network error below, so a hung
|
|
174
|
+
// write (e.g. daemon_update_session) can never hang the caller forever.
|
|
175
|
+
const controller = new AbortController();
|
|
176
|
+
const timer = setTimeout(() => controller.abort(), fetchTimeoutMs);
|
|
123
177
|
let response;
|
|
124
178
|
try {
|
|
125
|
-
response = await
|
|
179
|
+
response = await doFetch(url, {
|
|
126
180
|
method: 'POST',
|
|
127
181
|
headers: {
|
|
128
182
|
Authorization: `Bearer ${config.trackerId}`,
|
|
129
183
|
'Content-Type': 'application/json',
|
|
130
184
|
},
|
|
131
185
|
body: JSON.stringify({ action, ...params }),
|
|
186
|
+
signal: controller.signal,
|
|
132
187
|
});
|
|
133
188
|
}
|
|
134
189
|
catch (error) {
|
|
135
|
-
// Network-level errors (ECONNRESET,
|
|
190
|
+
// Network-level errors (ECONNRESET, DNS, or an abort on our own timeout)
|
|
191
|
+
// -- always retryable so withRetry re-attempts a transient failure.
|
|
136
192
|
throw Object.assign(error, { isRetryable: true });
|
|
137
193
|
}
|
|
194
|
+
finally {
|
|
195
|
+
clearTimeout(timer);
|
|
196
|
+
}
|
|
138
197
|
const data = (await response.json());
|
|
139
198
|
if (!response.ok || !data.success) {
|
|
140
|
-
|
|
141
|
-
healthEvents.emit({
|
|
142
|
-
severity: 'error',
|
|
143
|
-
source: 'api-client',
|
|
144
|
-
code: 'auth.token_invalid',
|
|
145
|
-
message: `Authentication failed (HTTP ${response.status}): ${data.error || 'token rejected'}`,
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
// Typed schema-drift errors (D2): edge function returns
|
|
149
|
-
// { errorType: 'schema_constraint_violation', constraintName, rejectedValue }
|
|
150
|
-
// The listener uses this discriminated subclass to bound retries on
|
|
151
|
-
// the same (constraint, value) combo.
|
|
152
|
-
const body = data;
|
|
153
|
-
if (body.errorType === 'schema_constraint_violation') {
|
|
154
|
-
throw new SchemaConstraintViolation(body.error || `CHECK constraint violation (${response.status})`, body.constraintName ?? null, body.rejectedValue ?? null);
|
|
155
|
-
}
|
|
156
|
-
const classification = classifyHttpStatus(response.status);
|
|
157
|
-
throw new ApiError(data.error || `API error (${response.status})`, response.status, classification === 'retryable');
|
|
199
|
+
throwApiFailure(response, data);
|
|
158
200
|
}
|
|
159
201
|
return data;
|
|
160
202
|
}
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* assistant tool_use -> tool_activity { tool, file, input }
|
|
16
16
|
* assistant thinking -> (dropped: neither narration nor tool activity)
|
|
17
17
|
* result -> result { isError, numTurns, totalCostUsd, tokens }
|
|
18
|
+
* tool_progress -> heartbeat { toolName, elapsedSeconds, parentToolUseId }
|
|
18
19
|
* parser error -> error { message }
|
|
19
20
|
*/
|
|
20
21
|
import { EventEmitter } from 'node:events';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-agent-parser.d.ts","sourceRoot":"","sources":["../src/claude-agent-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude-agent-parser.d.ts","sourceRoot":"","sources":["../src/claude-agent-parser.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;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;AAiB1B;;;;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;IAqD9B,4EAA4E;IAC5E,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,cAAc;CAGvB"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon-core/src/__tests__/heartbeat.test.ts
|
|
3
|
+
// PINNED-BY-END
|
|
1
4
|
/**
|
|
2
5
|
* Claude Code adapter: maps the Claude `stream-json` event stream onto the
|
|
3
6
|
* provider-neutral `AgentEvent` contract.
|
|
@@ -15,6 +18,7 @@
|
|
|
15
18
|
* assistant tool_use -> tool_activity { tool, file, input }
|
|
16
19
|
* assistant thinking -> (dropped: neither narration nor tool activity)
|
|
17
20
|
* result -> result { isError, numTurns, totalCostUsd, tokens }
|
|
21
|
+
* tool_progress -> heartbeat { toolName, elapsedSeconds, parentToolUseId }
|
|
18
22
|
* parser error -> error { message }
|
|
19
23
|
*/
|
|
20
24
|
import { EventEmitter } from 'node:events';
|
|
@@ -86,6 +90,16 @@ export class ClaudeAgentParser extends EventEmitter {
|
|
|
86
90
|
outputTokens: result.usage?.output_tokens,
|
|
87
91
|
});
|
|
88
92
|
});
|
|
93
|
+
this.inner.on('tool_progress', (event) => {
|
|
94
|
+
// A heartbeat inside one long tool call: a liveness touch only. Never a
|
|
95
|
+
// turn or a tool invocation.
|
|
96
|
+
this.emitAgentEvent({
|
|
97
|
+
kind: 'heartbeat',
|
|
98
|
+
toolName: event.tool_name,
|
|
99
|
+
elapsedSeconds: event.elapsed_time_seconds,
|
|
100
|
+
parentToolUseId: event.parent_tool_use_id ?? undefined,
|
|
101
|
+
});
|
|
102
|
+
});
|
|
89
103
|
this.inner.on('error', (err) => {
|
|
90
104
|
this.emitAgentEvent({ kind: 'error', message: err.message });
|
|
91
105
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-agent-parser.js","sourceRoot":"","sources":["../src/claude-agent-parser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"claude-agent-parser.js","sourceRoot":"","sources":["../src/claude-agent-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-agent-parser.d.ts","sourceRoot":"","sources":["../src/codex-agent-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codex-agent-parser.d.ts","sourceRoot":"","sources":["../src/codex-agent-parser.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: none -- no test imports this module directly (baselined; see lint:pinned-by)
|
|
3
|
+
// PINNED-BY-END
|
|
1
4
|
/**
|
|
2
5
|
* Codex CLI adapter: maps the `codex exec --json` JSONL stream onto the
|
|
3
6
|
* provider-neutral `AgentEvent` contract.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-agent-parser.js","sourceRoot":"","sources":["../src/codex-agent-parser.ts"],"names":[],"mappings":"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"}
|
|
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
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared configuration infrastructure for Telora daemon and factory engines.
|
|
3
|
-
*
|
|
4
|
-
* Provides:
|
|
5
|
-
* - BaseConfig interface with fields common to both DaemonConfig and FactoryConfig
|
|
6
|
-
* - Generic config file loader (JSON from disk)
|
|
7
|
-
* - Base config resolver (env vars over file config)
|
|
8
|
-
* - Base config validator (collects errors without throwing)
|
|
9
|
-
*
|
|
10
|
-
* Each engine imports these and layers its own fields on top.
|
|
11
|
-
*/
|
|
12
1
|
/** Regex for UUID v1-v8 (loose check). */
|
|
13
2
|
export declare const UUID_REGEX: RegExp;
|
|
14
3
|
/**
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAwBA,0CAA0C;AAC1C,eAAO,MAAM,UAAU,QAAoE,CAAC;AAE5F;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAQxD;AAMD;;;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,CA4FxE"}
|
package/dist/config.js
CHANGED