@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.
@@ -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 LAST `type:"result"`
50
- * event wins — a per-unit log is append-mode, so a prior dispatch's result
51
- * may precede this one in the same slice. With no `result` event at all (an
52
- * agent killed mid-run), per-turn `assistant` usage is summed instead, so an
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;AA4FD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAoLrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CA6BvF;AAKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAoBjF;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"}
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"}
@@ -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 && code !== 0x7f && !(code >= 0x80 && code <= 0x9f))
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 LAST `type:"result"`
322
- * event wins — a per-unit log is append-mode, so a prior dispatch's result
323
- * may precede this one in the same slice. With no `result` event at all (an
324
- * agent killed mid-run), per-turn `assistant` usage is summed instead, so an
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
- // `--output-format json`: the whole payload is one object. Checked first so
341
- // a pretty-printed (multi-line) result is not mistaken for an event stream.
342
- // Stream event types are excluded, or a stream that happens to hold exactly
343
- // ONE line (an agent killed after a single turn, or whose preamble write
344
- // failed) would take this path and report all-null instead of falling
345
- // through to the per-turn sum below.
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 === 'result')
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
  *
@@ -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';
@@ -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":"AAAA;;;;;;;;;;;GAWG;AAGH,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACvE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtE,YAAY,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE9E,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,4BAA4B,EAC5B,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,eAAe,EACf,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,YAAY,GACb,MAAM,WAAW,CAAC;AAEnB,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,SAAS,GACV,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,WAAW,IAAI,gBAAgB,EAC/B,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,YAAY,EACV,gBAAgB,EAChB,SAAS,IAAI,cAAc,EAC3B,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC"}
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.isSupportedPublicKey = exports.canonicalizeFrontmatter = 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.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 = 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;AAIH,6CAQuB;AAPrB,8GAAA,eAAe,OAAA;AACf,iHAAA,kBAAkB,OAAA;AAClB,oHAAA,qBAAqB,OAAA;AACrB,+GAAA,gBAAgB,OAAA;AAChB,iHAAA,kBAAkB,OAAA;AAClB,mHAAA,oBAAoB,OAAA;AACpB,6GAAA,cAAc,OAAA;AAEhB,mBAAmB;AACnB,uCAAgE;AAAvD,6GAAA,iBAAiB,OAAA;AAAE,2GAAA,eAAe,OAAA;AAU3C,yCAAuE;AAA9D,8GAAA,iBAAiB,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAEjD,oBAAoB;AACpB,yCAAsE;AAA7D,iHAAA,oBAAoB,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAUhD,iBAAiB;AACjB,mCAMkB;AALhB,sGAAA,YAAY,OAAA;AACZ,0GAAA,gBAAgB,OAAA;AAChB,qGAAA,WAAW,OAAA;AACX,yGAAA,eAAe,OAAA;AACf,wGAAA,cAAc,OAAA;AAEhB,iBAAiB;AACjB,mCAQkB;AAPhB,6GAAA,mBAAmB,OAAA;AACnB,0GAAA,gBAAgB,OAAA;AAChB,4GAAA,kBAAkB,OAAA;AAClB,yGAAA,eAAe,OAAA;AACf,2GAAA,iBAAiB,OAAA;AACjB,wGAAA,cAAc,OAAA;AACd,6GAAA,mBAAmB,OAAA;AASrB,0BAA0B;AAC1B,qDAA8E;AAArE,oHAAA,iBAAiB,OAAA;AAAE,yHAAA,sBAAsB,OAAA;AAGlD,iDAA8C;AAArC,4GAAA,WAAW,OAAA;AAYpB,uDAO4B;AAN1B,+GAAA,WAAW,OAAA;AACX,wHAAA,oBAAoB,OAAA;AACpB,wHAAA,oBAAoB,OAAA;AACpB,+GAAA,WAAW,OAAA;AACX,mHAAA,eAAe,OAAA;AACf,gHAAA,YAAY,OAAA;AAId,yCAUqB;AATnB,kHAAA,qBAAqB,OAAA;AACrB,+GAAA,kBAAkB,OAAA;AAClB,4GAAA,eAAe,OAAA;AACf,6GAAA,gBAAgB,OAAA;AAChB,qHAAA,wBAAwB,OAAA;AACxB,mHAAA,sBAAsB,OAAA;AACtB,4GAAA,eAAe,OAAA;AACf,8GAAA,iBAAiB,OAAA;AACjB,0GAAA,aAAa,OAAA;AAEf,iDAAiD;AACjD,qCAWmB;AAVjB,wGAAA,aAAa,OAAA;AACb,0GAAA,eAAe,OAAA;AACf,8GAAA,mBAAmB,OAAA;AACnB,oGAAA,SAAS,OAAA;AACT,sGAAA,WAAW,OAAA;AAIX,2GAAA,gBAAgB,OAAA;AAKlB,qDAQ2B;AAPzB,qHAAA,kBAAkB,OAAA;AAClB,0HAAA,uBAAuB,OAAA;AACvB,uHAAA,oBAAoB,OAAA;AACpB,qHAAA,kBAAkB,OAAA;AAClB,kHAAA,eAAe,OAAA;AACf,oHAAA,iBAAiB,OAAA;AACjB,4GAAA,SAAS,OAAA;AASX,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA;AAW3B,mDAA6E;AAApE,qHAAA,mBAAmB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAClD,eAAe;AACf,0CAAwB;AACxB,mBAAmB;AACnB,yCAAuD;AAA9C,oGAAA,UAAU,OAAA;AAAE,mGAAA,SAAS,OAAA;AAC9B,kBAAkB;AAClB,yCAAgE;AAAvD,yGAAA,eAAe,OAAA;AAAE,uGAAA,aAAa,OAAA;AACvC,wBAAwB;AACxB,iCAA8C;AAArC,sGAAA,gBAAgB,OAAA;AACzB,yBAAyB;AACzB,mDAO6B;AAN3B,kHAAA,mBAAmB,OAAA;AACnB,kHAAA,mBAAmB,OAAA;AACnB,iHAAA,kBAAkB,OAAA;AAClB,+GAAA,gBAAgB,OAAA;AAChB,qHAAA,sBAAsB,OAAA;AACtB,8GAAA,eAAe,OAAA;AAEjB,yBAAyB;AACzB,qDAAuE;AAA9D,+HAAA,+BAA+B,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-dossier/core",
3
- "version": "1.6.0",
3
+ "version": "1.8.0",
4
4
  "description": "Parsing, verification, and signing for dossiers — portable, signed, versioned skills for any LLM tool.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",