@ai-dossier/core 1.6.0 → 1.8.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/agent-usage.d.ts +83 -5
- package/dist/agent-usage.d.ts.map +1 -1
- package/dist/agent-usage.js +263 -21
- package/dist/agent-usage.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/agent-usage.d.ts
CHANGED
|
@@ -46,11 +46,10 @@ export declare const SCHED_DISPATCH_EVENT = "sched-dispatch";
|
|
|
46
46
|
* - **A single JSON object** (`--output-format json`, what `ai-dossier run`
|
|
47
47
|
* uses): parsed whole.
|
|
48
48
|
* - **A JSONL event stream** (`--output-format stream-json`, what the
|
|
49
|
-
* scheduler dispatches with since ai-dossier#524): the
|
|
50
|
-
* event wins
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* interrupted dispatch still reports the tokens it really spent.
|
|
49
|
+
* scheduler dispatches with since ai-dossier#524): the last `type:"result"`
|
|
50
|
+
* event wins ({@link findLastResultEvent}). With no `result` event at all
|
|
51
|
+
* (an agent killed mid-run), per-turn `assistant` usage is summed instead,
|
|
52
|
+
* so an interrupted dispatch still reports the tokens it really spent.
|
|
54
53
|
*
|
|
55
54
|
* Lines that do not parse as JSON objects are skipped rather than
|
|
56
55
|
* disqualifying the stream: the sched dispatch preamble
|
|
@@ -63,6 +62,47 @@ export declare const SCHED_DISPATCH_EVENT = "sched-dispatch";
|
|
|
63
62
|
* "the agent reported nothing" and "there was no agent output" stay distinct.
|
|
64
63
|
*/
|
|
65
64
|
export declare function parseAgentUsage(stdout: string | null | undefined): AgentRunUsage | null;
|
|
65
|
+
/**
|
|
66
|
+
* A dispatch result classified as an API-error dispatch FAILURE, not an agent
|
|
67
|
+
* that ran (ai-dossier#629). See {@link parseDispatchApiError}.
|
|
68
|
+
*/
|
|
69
|
+
export interface DispatchApiError {
|
|
70
|
+
/** The provider's HTTP status, e.g. 429. Null when absent even though `terminalReason === 'api_error'` reported the failure some other way. */
|
|
71
|
+
apiErrorStatus: number | null;
|
|
72
|
+
/** e.g. `"api_error"` — together with `apiErrorStatus`, the field whose presence IS the classification signal (never the free-text `message`). */
|
|
73
|
+
terminalReason: string | null;
|
|
74
|
+
/** The result's own `is_error` flag — corroboration only (AC5), never the primary signal. */
|
|
75
|
+
isError: boolean;
|
|
76
|
+
/** `modelUsage` was present and empty — corroboration that no tokens were spent (AC5), never the primary signal. */
|
|
77
|
+
emptyModelUsage: boolean;
|
|
78
|
+
/** The provider's human-readable message (`result`), sanitized and capped — for surfacing in a journal, never for classification. */
|
|
79
|
+
message: string | null;
|
|
80
|
+
/** A structured rate-limit reset time, when the provider supplies one (AC4) — never parsed out of `message`. */
|
|
81
|
+
resetAt: string | null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Classify a dispatch result as a confirmed provider-side API error (a 429
|
|
85
|
+
* spend/rate wall, an auth failure the provider itself rejected outright) —
|
|
86
|
+
* distinct from an agent that started, ran, and exited without posting a
|
|
87
|
+
* milestone (ai-dossier#629). Both shapes surface identically to a caller
|
|
88
|
+
* that only checks "did the process exit without a verified milestone"; this
|
|
89
|
+
* function lets a caller tell them apart BEFORE that check, so a confirmed
|
|
90
|
+
* wall never consumes that caller's per-unit retry/escalation budget.
|
|
91
|
+
*
|
|
92
|
+
* Classification is `api_error_status` (a finite, positive, HTTP-status-
|
|
93
|
+
* shaped number) or `terminal_reason === 'api_error'` — deliberately never
|
|
94
|
+
* the free-text `result` message, which is not a contract the provider owes
|
|
95
|
+
* callers (mirrors the `usage`/`modelUsage` lesson of ai-dossier#609: read
|
|
96
|
+
* only the field actually documented to mean the thing, never a string that
|
|
97
|
+
* happens to look right today). `modelUsage: {}` + `is_error` are read as
|
|
98
|
+
* corroboration (AC5) but never gate the return value on their own — an
|
|
99
|
+
* agent that ran, did nothing, and reported no usage is a real (if
|
|
100
|
+
* unproductive) dispatch, not a wall.
|
|
101
|
+
*
|
|
102
|
+
* Shares {@link findLastResultEvent} with {@link parseAgentUsage} so the two
|
|
103
|
+
* can never disagree about which JSON object in the log is authoritative.
|
|
104
|
+
*/
|
|
105
|
+
export declare function parseDispatchApiError(stdout: string | null | undefined): DispatchApiError | null;
|
|
66
106
|
/**
|
|
67
107
|
* Find the last tool a `claude`-family agent called before its stream ended (#591).
|
|
68
108
|
*
|
|
@@ -82,6 +122,44 @@ export declare function parseAgentUsage(stdout: string | null | undefined): Agen
|
|
|
82
122
|
* the same way `model` is, rather than trusted verbatim.
|
|
83
123
|
*/
|
|
84
124
|
export declare function parseLastToolUse(stdout: string | null | undefined): string | null;
|
|
125
|
+
/**
|
|
126
|
+
* Evidence that THIS dispatch ended with the announce-then-exit signature
|
|
127
|
+
* (ai-dossier#685): a CLEAN exit whose final assistant message announces a
|
|
128
|
+
* wait on background work. See {@link parseAnnouncedWait}.
|
|
129
|
+
*/
|
|
130
|
+
export interface AnnouncedWaitEvidence {
|
|
131
|
+
/** The matched wait phrase (sanitized, capped) — the journal's `wait_signal` evidence. */
|
|
132
|
+
signal: string;
|
|
133
|
+
/** The final assistant message the phrase was found in (sanitized, capped) — the journal's `wait_excerpt` evidence. */
|
|
134
|
+
excerpt: string;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Detect the announce-then-exit signature in one dispatch's log (ai-dossier#685).
|
|
138
|
+
*
|
|
139
|
+
* The issue's three incidents (~$52 of discarded work) all exited CLEANLY
|
|
140
|
+
* (`is_error: false`, `subtype: "success"`) after announcing a wait their
|
|
141
|
+
* headless session could never satisfy — in `-p` mode there is no next turn
|
|
142
|
+
* for a background-notification to arrive on. This parse lets the engine
|
|
143
|
+
* classify that shape as a cheap same-tier redispatch instead of an
|
|
144
|
+
* escalation rung, and it is only consulted AFTER the api-error (#629) and
|
|
145
|
+
* fence-abort (#683) rails: those read exact CLI output, which outranks
|
|
146
|
+
* prose.
|
|
147
|
+
*
|
|
148
|
+
* BOTH conditions must hold:
|
|
149
|
+
* 1. **A clean exit.** The stream carries a final `result` event (shared
|
|
150
|
+
* authority: {@link findLastResultEvent}) whose `is_error` is not true.
|
|
151
|
+
* An agent killed mid-run has no result event; an errored exit rides the
|
|
152
|
+
* existing rails. Either way the signature cannot fire.
|
|
153
|
+
* 2. **A final message announcing the wait.** The LAST text block across the
|
|
154
|
+
* stream (claude: `assistant` message text blocks; opencode: `type:"text"`
|
|
155
|
+
* parts) matches {@link ANNOUNCED_WAIT_RE}. Mid-run mentions don't count —
|
|
156
|
+
* only what the agent said as it ended.
|
|
157
|
+
*
|
|
158
|
+
* Mirrors {@link parseLastToolUse}'s line tolerance (unparseable lines and the
|
|
159
|
+
* sched preamble skipped, never disqualifying). Returns null when either
|
|
160
|
+
* condition fails, when no assistant text exists, or on empty/malformed input.
|
|
161
|
+
*/
|
|
162
|
+
export declare function parseAnnouncedWait(stdout: string | null | undefined): AnnouncedWaitEvidence | null;
|
|
85
163
|
/**
|
|
86
164
|
* Parse an `opencode run --format json` result stream into usage data (#459).
|
|
87
165
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-usage.d.ts","sourceRoot":"","sources":["../src/agent-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,mHAAmH;IACnH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kFAAkF;IAClF,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sEAAsE;IACtE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kFAAkF;IAClF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"agent-usage.d.ts","sourceRoot":"","sources":["../src/agent-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,mHAAmH;IACnH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kFAAkF;IAClF,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sEAAsE;IACtE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kFAAkF;IAClF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAyHD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAwNrD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAqBvF;AA6CD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+IAA+I;IAC/I,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kJAAkJ;IAClJ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,6FAA6F;IAC7F,OAAO,EAAE,OAAO,CAAC;IACjB,oHAAoH;IACpH,eAAe,EAAE,OAAO,CAAC;IACzB,qIAAqI;IACrI,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,gHAAgH;IAChH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAwChG;AAKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAoBjF;AA2BD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAC;IACf,uHAAuH;IACvH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,qBAAqB,GAAG,IAAI,CAyC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CA6F1F;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GACX,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,aAAa,GAAG,IAAI,CAE7D"}
|
package/dist/agent-usage.js
CHANGED
|
@@ -49,7 +49,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
50
|
exports.SCHED_DISPATCH_EVENT = void 0;
|
|
51
51
|
exports.parseAgentUsage = parseAgentUsage;
|
|
52
|
+
exports.parseDispatchApiError = parseDispatchApiError;
|
|
52
53
|
exports.parseLastToolUse = parseLastToolUse;
|
|
54
|
+
exports.parseAnnouncedWait = parseAnnouncedWait;
|
|
53
55
|
exports.parseOpenCodeUsage = parseOpenCodeUsage;
|
|
54
56
|
exports.usageParserFor = usageParserFor;
|
|
55
57
|
const path = __importStar(require("node:path"));
|
|
@@ -109,6 +111,25 @@ function joinModels(names) {
|
|
|
109
111
|
* `sched status`). Shared by every agent-controlled string field this module parses —
|
|
110
112
|
* originally written for `model` (#524), reused for `parseLastToolUse`'s tool name (#591).
|
|
111
113
|
*/
|
|
114
|
+
/**
|
|
115
|
+
* Unicode bidi/format control code points (#629 security review) — invisible
|
|
116
|
+
* or reordering characters (Trojan-Source-style: RLO/LRO/embeddings/isolates,
|
|
117
|
+
* zero-width joiners, soft hyphen, BOM, line/paragraph separators) that pass
|
|
118
|
+
* the plain C0/C1 filter below but can make a persisted journal line RENDER
|
|
119
|
+
* differently from what was written. Immaterial for `model`/`last_tool`
|
|
120
|
+
* (machine-shaped values) but material once this filter also sanitizes
|
|
121
|
+
* free-text provider prose (`message`, up to 500 chars — #629).
|
|
122
|
+
*/
|
|
123
|
+
function isFormatOrBidiControl(code) {
|
|
124
|
+
return (code === 0x00ad ||
|
|
125
|
+
code === 0xfeff ||
|
|
126
|
+
(code >= 0x200b && code <= 0x200f) ||
|
|
127
|
+
(code >= 0x202a && code <= 0x202e) ||
|
|
128
|
+
(code >= 0x2060 && code <= 0x2064) ||
|
|
129
|
+
(code >= 0x2066 && code <= 0x206f) ||
|
|
130
|
+
code === 0x2028 ||
|
|
131
|
+
code === 0x2029);
|
|
132
|
+
}
|
|
112
133
|
function sanitizeAgentText(value, maxLength) {
|
|
113
134
|
if (value === null)
|
|
114
135
|
return null;
|
|
@@ -122,8 +143,12 @@ function sanitizeAgentText(value, maxLength) {
|
|
|
122
143
|
const code = char.codePointAt(0) ?? 0;
|
|
123
144
|
// C0 (< 0x20), DEL (0x7f) and C1 (0x80-0x9f) alike: U+009B is the 8-bit
|
|
124
145
|
// CSI, which a terminal in a non-UTF-8 locale acts on exactly like ESC[.
|
|
125
|
-
if (code >= 0x20 &&
|
|
146
|
+
if (code >= 0x20 &&
|
|
147
|
+
code !== 0x7f &&
|
|
148
|
+
!(code >= 0x80 && code <= 0x9f) &&
|
|
149
|
+
!isFormatOrBidiControl(code)) {
|
|
126
150
|
clean += char;
|
|
151
|
+
}
|
|
127
152
|
}
|
|
128
153
|
return clean;
|
|
129
154
|
}
|
|
@@ -310,6 +335,43 @@ function sumAssistantUsage(events) {
|
|
|
310
335
|
result_text: null,
|
|
311
336
|
};
|
|
312
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* Find the JSON object a claude dispatch's usage/error signal should be read
|
|
340
|
+
* from: either the whole payload (`--output-format json`) or the last
|
|
341
|
+
* `type:"result"` event in a `--output-format stream-json` stream. Checked as
|
|
342
|
+
* a single object first so a pretty-printed (multi-line) result is not
|
|
343
|
+
* mistaken for an event stream; stream event types are excluded there, or a
|
|
344
|
+
* stream that happens to hold exactly ONE line (an agent killed after a
|
|
345
|
+
* single turn, or whose preamble write failed) would take that path and
|
|
346
|
+
* report all-null instead of falling through to the line-by-line scan.
|
|
347
|
+
*
|
|
348
|
+
* Shared by {@link parseAgentUsage} and {@link parseDispatchApiError} so the
|
|
349
|
+
* two can never disagree about WHICH object is authoritative — the exact
|
|
350
|
+
* `usage`/`modelUsage` divergence shape that caused ai-dossier#609,
|
|
351
|
+
* generalized to every field read from this object (ai-dossier#629).
|
|
352
|
+
*
|
|
353
|
+
* Returns null when no `result` event exists at all (an agent killed
|
|
354
|
+
* mid-run): {@link parseAgentUsage} falls back to summing `assistant` events
|
|
355
|
+
* in that case; {@link parseDispatchApiError} has nothing to fall back to,
|
|
356
|
+
* since an API-error result IS a result event.
|
|
357
|
+
*/
|
|
358
|
+
function findLastResultEvent(stdout) {
|
|
359
|
+
const single = parseJsonObject(stdout);
|
|
360
|
+
if (single && !STREAM_EVENT_TYPES.has(single.type))
|
|
361
|
+
return single;
|
|
362
|
+
let lastResult = null;
|
|
363
|
+
for (const line of stdout.split('\n')) {
|
|
364
|
+
const trimmed = line.trim();
|
|
365
|
+
if (!trimmed)
|
|
366
|
+
continue;
|
|
367
|
+
const event = parseJsonObject(trimmed);
|
|
368
|
+
if (!event || event.type === exports.SCHED_DISPATCH_EVENT)
|
|
369
|
+
continue;
|
|
370
|
+
if (event.type === 'result')
|
|
371
|
+
lastResult = event;
|
|
372
|
+
}
|
|
373
|
+
return lastResult;
|
|
374
|
+
}
|
|
313
375
|
/**
|
|
314
376
|
* Parse a claude headless result into usage data — both output formats.
|
|
315
377
|
*
|
|
@@ -318,11 +380,10 @@ function sumAssistantUsage(events) {
|
|
|
318
380
|
* - **A single JSON object** (`--output-format json`, what `ai-dossier run`
|
|
319
381
|
* uses): parsed whole.
|
|
320
382
|
* - **A JSONL event stream** (`--output-format stream-json`, what the
|
|
321
|
-
* scheduler dispatches with since ai-dossier#524): the
|
|
322
|
-
* event wins
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
* interrupted dispatch still reports the tokens it really spent.
|
|
383
|
+
* scheduler dispatches with since ai-dossier#524): the last `type:"result"`
|
|
384
|
+
* event wins ({@link findLastResultEvent}). With no `result` event at all
|
|
385
|
+
* (an agent killed mid-run), per-turn `assistant` usage is summed instead,
|
|
386
|
+
* so an interrupted dispatch still reports the tokens it really spent.
|
|
326
387
|
*
|
|
327
388
|
* Lines that do not parse as JSON objects are skipped rather than
|
|
328
389
|
* disqualifying the stream: the sched dispatch preamble
|
|
@@ -337,16 +398,12 @@ function sumAssistantUsage(events) {
|
|
|
337
398
|
function parseAgentUsage(stdout) {
|
|
338
399
|
if (typeof stdout !== 'string' || stdout.trim() === '')
|
|
339
400
|
return null;
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
//
|
|
344
|
-
//
|
|
345
|
-
//
|
|
346
|
-
const single = parseJsonObject(stdout);
|
|
347
|
-
if (single && !STREAM_EVENT_TYPES.has(single.type))
|
|
348
|
-
return extractResultUsage(single);
|
|
349
|
-
let lastResult = null;
|
|
401
|
+
const result = findLastResultEvent(stdout);
|
|
402
|
+
if (result)
|
|
403
|
+
return extractResultUsage(result);
|
|
404
|
+
// No terminal `result` event anywhere in the stream (agent killed
|
|
405
|
+
// mid-run): sum per-turn `assistant` usage instead, so an interrupted
|
|
406
|
+
// dispatch still reports the tokens it really spent.
|
|
350
407
|
const assistants = [];
|
|
351
408
|
for (const line of stdout.split('\n')) {
|
|
352
409
|
const trimmed = line.trim();
|
|
@@ -355,17 +412,108 @@ function parseAgentUsage(stdout) {
|
|
|
355
412
|
const event = parseJsonObject(trimmed);
|
|
356
413
|
if (!event || event.type === exports.SCHED_DISPATCH_EVENT)
|
|
357
414
|
continue;
|
|
358
|
-
if (event.type === '
|
|
359
|
-
lastResult = event;
|
|
360
|
-
else if (event.type === 'assistant')
|
|
415
|
+
if (event.type === 'assistant')
|
|
361
416
|
assistants.push(event);
|
|
362
417
|
}
|
|
363
|
-
if (lastResult)
|
|
364
|
-
return extractResultUsage(lastResult);
|
|
365
418
|
if (assistants.length > 0)
|
|
366
419
|
return sumAssistantUsage(assistants);
|
|
367
420
|
return null;
|
|
368
421
|
}
|
|
422
|
+
/** Longest free-text provider message copied into a journal entry (#629) — generous enough for a full spend-limit sentence, capped like every other agent-controlled string this module handles. */
|
|
423
|
+
const MAX_DISPATCH_MESSAGE_LENGTH = 500;
|
|
424
|
+
/** Longest `terminal_reason` / structured reset-time string accepted (#629) — machine-shaped values, same cap as {@link MAX_TOOL_NAME_LENGTH} but named separately since the two mean different things. */
|
|
425
|
+
const MAX_DISPATCH_REASON_LENGTH = 100;
|
|
426
|
+
/**
|
|
427
|
+
* Structured, ABSOLUTE reset-time keys checked defensively (#629 AC4) — none
|
|
428
|
+
* observed in real claude CLI output as of this writing (a live 429 capture
|
|
429
|
+
* carried only the free-text `result` message); wired for whenever the
|
|
430
|
+
* provider adds one. Deliberately never derived by parsing the free-text
|
|
431
|
+
* message itself — provider wording is not a contract (see
|
|
432
|
+
* {@link parseDispatchApiError}).
|
|
433
|
+
*
|
|
434
|
+
* `retry_after` is excluded: by every provider convention it is a DURATION in
|
|
435
|
+
* seconds, not an instant, and rendering a bare duration next to an ISO-8601
|
|
436
|
+
* `reset_at` value (`dispatch-health.ts`'s "provider reset at …" message) is
|
|
437
|
+
* actively misleading without a clock to add it to `now`. Only accepted here
|
|
438
|
+
* once a caller can convert it to an absolute instant.
|
|
439
|
+
*/
|
|
440
|
+
const RESET_AT_KEYS = ['reset_at', 'resets_at'];
|
|
441
|
+
/** Widest plausible epoch-seconds reset time accepted from `reset_at`/`resets_at` (#629) — one century out, well past any real rate-limit window, so a bogus huge number cannot render as a plausible-looking date. */
|
|
442
|
+
const MAX_RESET_AT_EPOCH_SECONDS = 60 * 60 * 24 * 365 * 100;
|
|
443
|
+
function toResetAt(parsed) {
|
|
444
|
+
for (const key of RESET_AT_KEYS) {
|
|
445
|
+
const value = parsed[key];
|
|
446
|
+
if (typeof value === 'string' && value.length > 0) {
|
|
447
|
+
return sanitizeAgentText(value, MAX_DISPATCH_REASON_LENGTH);
|
|
448
|
+
}
|
|
449
|
+
if (typeof value === 'number' &&
|
|
450
|
+
Number.isFinite(value) &&
|
|
451
|
+
value >= 0 &&
|
|
452
|
+
value <= MAX_RESET_AT_EPOCH_SECONDS) {
|
|
453
|
+
return String(value);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
return null;
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Classify a dispatch result as a confirmed provider-side API error (a 429
|
|
460
|
+
* spend/rate wall, an auth failure the provider itself rejected outright) —
|
|
461
|
+
* distinct from an agent that started, ran, and exited without posting a
|
|
462
|
+
* milestone (ai-dossier#629). Both shapes surface identically to a caller
|
|
463
|
+
* that only checks "did the process exit without a verified milestone"; this
|
|
464
|
+
* function lets a caller tell them apart BEFORE that check, so a confirmed
|
|
465
|
+
* wall never consumes that caller's per-unit retry/escalation budget.
|
|
466
|
+
*
|
|
467
|
+
* Classification is `api_error_status` (a finite, positive, HTTP-status-
|
|
468
|
+
* shaped number) or `terminal_reason === 'api_error'` — deliberately never
|
|
469
|
+
* the free-text `result` message, which is not a contract the provider owes
|
|
470
|
+
* callers (mirrors the `usage`/`modelUsage` lesson of ai-dossier#609: read
|
|
471
|
+
* only the field actually documented to mean the thing, never a string that
|
|
472
|
+
* happens to look right today). `modelUsage: {}` + `is_error` are read as
|
|
473
|
+
* corroboration (AC5) but never gate the return value on their own — an
|
|
474
|
+
* agent that ran, did nothing, and reported no usage is a real (if
|
|
475
|
+
* unproductive) dispatch, not a wall.
|
|
476
|
+
*
|
|
477
|
+
* Shares {@link findLastResultEvent} with {@link parseAgentUsage} so the two
|
|
478
|
+
* can never disagree about which JSON object in the log is authoritative.
|
|
479
|
+
*/
|
|
480
|
+
function parseDispatchApiError(stdout) {
|
|
481
|
+
if (typeof stdout !== 'string' || stdout.trim() === '')
|
|
482
|
+
return null;
|
|
483
|
+
const parsed = findLastResultEvent(stdout);
|
|
484
|
+
if (!parsed)
|
|
485
|
+
return null;
|
|
486
|
+
const rawStatus = parsed.api_error_status;
|
|
487
|
+
// HTTP-status-shaped: an integer in the standard 100-599 range. Rejects
|
|
488
|
+
// `0.5`, `1e308`, and other values that would parse as a "status" but
|
|
489
|
+
// render as display noise wherever this field is surfaced (#629 security
|
|
490
|
+
// review) — the value is untrusted subprocess output, not a validated API
|
|
491
|
+
// response.
|
|
492
|
+
const apiErrorStatus = typeof rawStatus === 'number' &&
|
|
493
|
+
Number.isInteger(rawStatus) &&
|
|
494
|
+
rawStatus >= 100 &&
|
|
495
|
+
rawStatus <= 599
|
|
496
|
+
? rawStatus
|
|
497
|
+
: null;
|
|
498
|
+
const terminalReason = typeof parsed.terminal_reason === 'string'
|
|
499
|
+
? sanitizeAgentText(parsed.terminal_reason, MAX_DISPATCH_REASON_LENGTH)
|
|
500
|
+
: null;
|
|
501
|
+
if (apiErrorStatus === null && terminalReason !== 'api_error')
|
|
502
|
+
return null;
|
|
503
|
+
const modelUsage = asRecord(parsed.modelUsage);
|
|
504
|
+
const emptyModelUsage = modelUsage !== null && Object.keys(modelUsage).length === 0;
|
|
505
|
+
const message = typeof parsed.result === 'string'
|
|
506
|
+
? sanitizeAgentText(parsed.result, MAX_DISPATCH_MESSAGE_LENGTH)
|
|
507
|
+
: null;
|
|
508
|
+
return {
|
|
509
|
+
apiErrorStatus,
|
|
510
|
+
terminalReason,
|
|
511
|
+
isError: parsed.is_error === true,
|
|
512
|
+
emptyModelUsage,
|
|
513
|
+
message,
|
|
514
|
+
resetAt: toResetAt(parsed),
|
|
515
|
+
};
|
|
516
|
+
}
|
|
369
517
|
/** Longest `last_tool` value written to `events.jsonl` before truncation (#591) — real tool names (`Bash`, `Monitor`, `mcp__server__tool`) are a fraction of this. */
|
|
370
518
|
const MAX_TOOL_NAME_LENGTH = 100;
|
|
371
519
|
/**
|
|
@@ -408,6 +556,100 @@ function parseLastToolUse(stdout) {
|
|
|
408
556
|
}
|
|
409
557
|
return sanitizeAgentText(lastTool, MAX_TOOL_NAME_LENGTH);
|
|
410
558
|
}
|
|
559
|
+
/** Longest announced-wait excerpt kept from the final assistant message (#685) — capped like {@link MAX_DISPATCH_MESSAGE_LENGTH}. */
|
|
560
|
+
const MAX_ANNOUNCED_WAIT_EXCERPT_LENGTH = 500;
|
|
561
|
+
/** Longest wait-signal phrase written to a journal entry (#685) — machine-shaped, same cap as {@link MAX_TOOL_NAME_LENGTH}. */
|
|
562
|
+
const MAX_WAIT_SIGNAL_LENGTH = 100;
|
|
563
|
+
/**
|
|
564
|
+
* The announce-then-exit signature (#685): a headless agent's final message
|
|
565
|
+
* announcing that it is WAITING on background work. Anchored on the three real
|
|
566
|
+
* incidents the issue files (`Waiting for ci-parity.sh to finish.` / `Waiting
|
|
567
|
+
* now for either the background task notification or the scheduled fallback
|
|
568
|
+
* wakeup.` / `I'll wait for the ci-parity.sh background task to complete
|
|
569
|
+
* (notification will arrive automatically) ...`) plus the explicit poll/sleep
|
|
570
|
+
* and `in the background` wordings the dispatch prompt itself teaches.
|
|
571
|
+
* Deliberately conservative in what it does NOT try to do: no tense or
|
|
572
|
+
* completion analysis — a final message that merely REFERENCES a finished
|
|
573
|
+
* wait (`The wait for CI finished`) also matches, but a false positive only
|
|
574
|
+
* downgrades an escalation into a cheap same-tier redispatch, while a false
|
|
575
|
+
* negative burns a tier. The classification is only ever consulted for
|
|
576
|
+
* UNVERIFIED exits (a fresh milestone short-circuits to completion first),
|
|
577
|
+
* which bounds the blast radius of that tradeoff.
|
|
578
|
+
*/
|
|
579
|
+
const ANNOUNCED_WAIT_RE = /\b(waiting (?:for|on|now)|wait (?:for|until|now)|notification will arrive|notification arrives|poll(?:s|ing)? (?:with|until)|sleep loops? (?:until|for)|in the background|while (?:it|that|this) (?:finishes|runs|completes))\b/i;
|
|
580
|
+
/**
|
|
581
|
+
* Detect the announce-then-exit signature in one dispatch's log (ai-dossier#685).
|
|
582
|
+
*
|
|
583
|
+
* The issue's three incidents (~$52 of discarded work) all exited CLEANLY
|
|
584
|
+
* (`is_error: false`, `subtype: "success"`) after announcing a wait their
|
|
585
|
+
* headless session could never satisfy — in `-p` mode there is no next turn
|
|
586
|
+
* for a background-notification to arrive on. This parse lets the engine
|
|
587
|
+
* classify that shape as a cheap same-tier redispatch instead of an
|
|
588
|
+
* escalation rung, and it is only consulted AFTER the api-error (#629) and
|
|
589
|
+
* fence-abort (#683) rails: those read exact CLI output, which outranks
|
|
590
|
+
* prose.
|
|
591
|
+
*
|
|
592
|
+
* BOTH conditions must hold:
|
|
593
|
+
* 1. **A clean exit.** The stream carries a final `result` event (shared
|
|
594
|
+
* authority: {@link findLastResultEvent}) whose `is_error` is not true.
|
|
595
|
+
* An agent killed mid-run has no result event; an errored exit rides the
|
|
596
|
+
* existing rails. Either way the signature cannot fire.
|
|
597
|
+
* 2. **A final message announcing the wait.** The LAST text block across the
|
|
598
|
+
* stream (claude: `assistant` message text blocks; opencode: `type:"text"`
|
|
599
|
+
* parts) matches {@link ANNOUNCED_WAIT_RE}. Mid-run mentions don't count —
|
|
600
|
+
* only what the agent said as it ended.
|
|
601
|
+
*
|
|
602
|
+
* Mirrors {@link parseLastToolUse}'s line tolerance (unparseable lines and the
|
|
603
|
+
* sched preamble skipped, never disqualifying). Returns null when either
|
|
604
|
+
* condition fails, when no assistant text exists, or on empty/malformed input.
|
|
605
|
+
*/
|
|
606
|
+
function parseAnnouncedWait(stdout) {
|
|
607
|
+
if (typeof stdout !== 'string' || stdout.trim() === '')
|
|
608
|
+
return null;
|
|
609
|
+
// Condition 1 — a clean exit. No result event at all means the agent was
|
|
610
|
+
// killed mid-run (or never finished a turn): not an announce-then-exit.
|
|
611
|
+
const result = findLastResultEvent(stdout);
|
|
612
|
+
if (!result || result.is_error === true)
|
|
613
|
+
return null;
|
|
614
|
+
// Condition 2 — the FINAL assistant text announces the wait. Last one wins
|
|
615
|
+
// (JSONL is append-order): an agent that announced a wait mid-run but kept
|
|
616
|
+
// going is judged by what it said when it actually stopped.
|
|
617
|
+
let lastText = null;
|
|
618
|
+
for (const line of stdout.split('\n')) {
|
|
619
|
+
const trimmed = line.trim();
|
|
620
|
+
if (!trimmed)
|
|
621
|
+
continue;
|
|
622
|
+
const event = parseJsonObject(trimmed);
|
|
623
|
+
if (!event || event.type === exports.SCHED_DISPATCH_EVENT)
|
|
624
|
+
continue;
|
|
625
|
+
if (event.type === 'assistant') {
|
|
626
|
+
const content = asRecord(event.message)?.content;
|
|
627
|
+
if (!Array.isArray(content))
|
|
628
|
+
continue;
|
|
629
|
+
for (const raw of content) {
|
|
630
|
+
const block = asRecord(raw);
|
|
631
|
+
if (block?.type === 'text' && typeof block.text === 'string')
|
|
632
|
+
lastText = block.text;
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
// opencode shape: the assistant's text arrives in `type:"text"` parts.
|
|
636
|
+
if (event.type === 'text') {
|
|
637
|
+
const part = asRecord(event.part);
|
|
638
|
+
if (part && typeof part.text === 'string')
|
|
639
|
+
lastText = part.text;
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
if (lastText === null)
|
|
643
|
+
return null;
|
|
644
|
+
const match = ANNOUNCED_WAIT_RE.exec(lastText);
|
|
645
|
+
if (match === null)
|
|
646
|
+
return null;
|
|
647
|
+
const excerpt = sanitizeAgentText(lastText, MAX_ANNOUNCED_WAIT_EXCERPT_LENGTH);
|
|
648
|
+
const signal = sanitizeAgentText(match[0], MAX_WAIT_SIGNAL_LENGTH);
|
|
649
|
+
if (excerpt === null || signal === null)
|
|
650
|
+
return null;
|
|
651
|
+
return { signal, excerpt };
|
|
652
|
+
}
|
|
411
653
|
/**
|
|
412
654
|
* Parse an `opencode run --format json` result stream into usage data (#459).
|
|
413
655
|
*
|
package/dist/agent-usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-usage.js","sourceRoot":"","sources":["../src/agent-usage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-usage.js","sourceRoot":"","sources":["../src/agent-usage.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* - runs.jsonl entry schema and path (shared by cli + sched)
|
|
11
11
|
* - TypeScript type definitions
|
|
12
12
|
*/
|
|
13
|
-
export type { AgentRunUsage } from './agent-usage';
|
|
14
|
-
export { parseAgentUsage, parseLastToolUse, parseOpenCodeUsage, SCHED_DISPATCH_EVENT, usageParserFor, } from './agent-usage';
|
|
13
|
+
export type { AgentRunUsage, AnnouncedWaitEvidence, DispatchApiError } from './agent-usage';
|
|
14
|
+
export { parseAgentUsage, parseAnnouncedWait, parseDispatchApiError, parseLastToolUse, parseOpenCodeUsage, SCHED_DISPATCH_EVENT, usageParserFor, } from './agent-usage';
|
|
15
15
|
export { calculateChecksum, verifyIntegrity } from './checksum';
|
|
16
16
|
export type { CoherenceContext, CoherenceDiagnostic, CoherenceResult, CoherenceSeverity, DeclaredOutputSchema, StepOutput, } from './coherence';
|
|
17
17
|
export { validateCoherence, validateStepCoherence } from './coherence';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -26,10 +26,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
26
26
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
30
|
-
exports.createDefaultVerificationResult = exports.scanBodyForUrls = exports.isUrlCoveredByDeclared = exports.isPlaceholderUrl = exports.findUndeclaredUrls = exports.findStaleReferences = exports.collectDeclaredUrls = exports.readFileIfExists = exports.getErrorStack = exports.getErrorMessage = exports.sha256Hex = exports.sha256Hash = exports.VALID_TRACE_STATUSES = exports.createTraceRecorder = exports.resolveTraceConfig = exports.toSpkiPem = exports.signatureCoverage = exports.publicKeysMatch = exports.normalizePublicKey = void 0;
|
|
29
|
+
exports.buildSignedPayload = exports.VerifierRegistry = exports.KmsVerifier = exports.KmsSigner = exports.getVerifierRegistry = exports.Ed25519Verifier = exports.Ed25519Signer = exports.verifyWithKms = exports.verifyWithEd25519 = exports.verifySignature = exports.trustedKeysFromContent = exports.reportTrustedKeyProblems = exports.parseTrustedKeys = exports.loadTrustedKeys = exports.isKmsKeyIdentifier = exports.findTrustedIdentifier = exports.scanMarkdown = exports.scanDossierFile = exports.scanDossier = exports.SecurityRuleRegistry = exports.defaultSecurityRules = exports.buildReport = exports.runsLogPath = exports.assessVerificationRisk = exports.assessContentRisk = exports.validateFrontmatter = exports.VALID_STATUSES = exports.VALID_RISK_LEVELS = exports.REQUIRED_FIELDS = exports.RECOMMENDED_FIELDS = exports.parseDossierFile = exports.parseDossierContent = exports.loadLintConfig = exports.lintDossierFile = exports.lintDossier = exports.LintRuleRegistry = exports.defaultRules = exports.formatDossierFile = exports.formatDossierContent = exports.validateStepCoherence = exports.validateCoherence = exports.verifyIntegrity = exports.calculateChecksum = exports.usageParserFor = exports.SCHED_DISPATCH_EVENT = exports.parseOpenCodeUsage = exports.parseLastToolUse = exports.parseDispatchApiError = exports.parseAnnouncedWait = exports.parseAgentUsage = void 0;
|
|
30
|
+
exports.createDefaultVerificationResult = exports.scanBodyForUrls = exports.isUrlCoveredByDeclared = exports.isPlaceholderUrl = exports.findUndeclaredUrls = exports.findStaleReferences = exports.collectDeclaredUrls = exports.readFileIfExists = exports.getErrorStack = exports.getErrorMessage = exports.sha256Hex = exports.sha256Hash = exports.VALID_TRACE_STATUSES = exports.createTraceRecorder = exports.resolveTraceConfig = exports.toSpkiPem = exports.signatureCoverage = exports.publicKeysMatch = exports.normalizePublicKey = exports.isSupportedPublicKey = exports.canonicalizeFrontmatter = void 0;
|
|
31
31
|
var agent_usage_1 = require("./agent-usage");
|
|
32
32
|
Object.defineProperty(exports, "parseAgentUsage", { enumerable: true, get: function () { return agent_usage_1.parseAgentUsage; } });
|
|
33
|
+
Object.defineProperty(exports, "parseAnnouncedWait", { enumerable: true, get: function () { return agent_usage_1.parseAnnouncedWait; } });
|
|
34
|
+
Object.defineProperty(exports, "parseDispatchApiError", { enumerable: true, get: function () { return agent_usage_1.parseDispatchApiError; } });
|
|
33
35
|
Object.defineProperty(exports, "parseLastToolUse", { enumerable: true, get: function () { return agent_usage_1.parseLastToolUse; } });
|
|
34
36
|
Object.defineProperty(exports, "parseOpenCodeUsage", { enumerable: true, get: function () { return agent_usage_1.parseOpenCodeUsage; } });
|
|
35
37
|
Object.defineProperty(exports, "SCHED_DISPATCH_EVENT", { enumerable: true, get: function () { return agent_usage_1.SCHED_DISPATCH_EVENT; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;AAIH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED