@ai-dossier/cli 0.33.0 → 0.33.2

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.
@@ -12,7 +12,7 @@
12
12
  * render what it returns.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.MAX_NAMED_ALIASES = exports.DELIVERED_PHASES = exports.UNKNOWN_RUN = exports.MODEL_ALIASES = exports.MODEL_ROUTING_PREFIXES = exports.UNKNOWN_MODEL = exports.STATS_PHASE_ORDER = exports.BATCH_MERGE_WAIT_PHASE = exports.MERGE_WAIT_PHASE = void 0;
15
+ exports.MAX_NAMED_ALIASES = exports.DELIVERED_PHASES = exports.UNKNOWN_RUN = exports.MODEL_ALIASES = exports.MODEL_ROUTING_PREFIXES = exports.PERCENT = exports.UNCLASSIFIED_CLASS = exports.UNKNOWN_MODEL = exports.STATS_PHASE_ORDER = exports.BATCH_MERGE_WAIT_PHASE = exports.MERGE_WAIT_PHASE = void 0;
16
16
  exports.canonicalModel = canonicalModel;
17
17
  exports.providerOf = providerOf;
18
18
  exports.renderValue = renderValue;
@@ -48,6 +48,8 @@ exports.BATCH_MERGE_WAIT_PHASE = 'batch-merge-wait';
48
48
  const SHIP_PHASE = 'ship';
49
49
  const GATE_PHASE = 'gate';
50
50
  const REPORT_PHASE = 'report';
51
+ const REVIEW_PHASE = 'review';
52
+ const BATCH_REVIEW_PHASE = 'batch-review';
51
53
  const BATCH_SHIP_PHASE = 'batch-ship';
52
54
  const BATCH_REPORT_PHASE = 'batch-report';
53
55
  const AWAITING_MERGE = 'awaiting-merge';
@@ -73,6 +75,28 @@ exports.STATS_PHASE_ORDER = runstate_1.ALL_PHASES.flatMap((phase) => phase === S
73
75
  * would let anyone who can comment on an issue steer the "we could not attribute this" row.
74
76
  */
75
77
  exports.UNKNOWN_MODEL = '<unknown>';
78
+ /**
79
+ * The class bucket for a run whose issue carries no classifier verdict.
80
+ *
81
+ * Bracketed like {@link UNKNOWN_MODEL}, and unforgeable for the same *mechanical* reason
82
+ * rather than by appeal to the write-path contract: {@link classificationOf} accepts only
83
+ * the closed {@link ./runstate!RISK_LEVELS} set, and none of those values starts with `<`.
84
+ * Without that read-side check a comment carrying `risk=<unclassified>` would fold forged
85
+ * runs into this bucket and skew {@link classWarnings}' coverage share — the one number
86
+ * telling a reader how thin the axis is.
87
+ *
88
+ * An issue that was never classified gets its own row rather than being folded into `low`.
89
+ * On this repo that row is the *majority* today — the classifier is newer than most of the
90
+ * corpus — so hiding it would overstate the class axis's coverage.
91
+ */
92
+ exports.UNCLASSIFIED_CLASS = '<unclassified>';
93
+ /**
94
+ * Scale for turning a fraction in [0, 1] into a whole-percent figure.
95
+ *
96
+ * Exported so this module's warning text and the command layer's table cells cannot drift
97
+ * onto two different constants.
98
+ */
99
+ exports.PERCENT = 100;
76
100
  /**
77
101
  * Gateway and provider tokens stripped from a recorded `model=` to find its bucket.
78
102
  *
@@ -249,6 +273,23 @@ const TIMESTAMP_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{
249
273
  const MAX_CELL_LENGTH = 120;
250
274
  /** The replacement drawn in place of a control character. */
251
275
  const CONTROL_REPLACEMENT = '�';
276
+ /**
277
+ * Code points a milestone value must never carry into a rendered table cell.
278
+ *
279
+ * C0 and DEL are the obvious ones. C1 (`0x80`–`0x9f`) matters just as much on an 8-bit-clean
280
+ * terminal, where `U+009B` IS the CSI introducer — `\u009b[2K` erases a row exactly like
281
+ * `\u001b[2K` does. The bidi and zero-width ranges are the other half: they leave `.length`
282
+ * unchanged while visually reordering the drawn line, which defeats the column alignment this
283
+ * function exists to guarantee.
284
+ */
285
+ function isUnsafeCodePoint(code) {
286
+ return (code < 0x20 ||
287
+ code === 0x7f ||
288
+ (code >= 0x80 && code <= 0x9f) ||
289
+ (code >= 0x200b && code <= 0x200f) ||
290
+ (code >= 0x202a && code <= 0x202e) ||
291
+ (code >= 0x2066 && code <= 0x2069));
292
+ }
252
293
  /**
253
294
  * Make a milestone-derived value safe to print.
254
295
  *
@@ -262,7 +303,7 @@ function renderValue(value) {
262
303
  let clean = '';
263
304
  for (const char of value) {
264
305
  const code = char.codePointAt(0) ?? 0;
265
- clean += code < 0x20 || code === 0x7f ? CONTROL_REPLACEMENT : char;
306
+ clean += isUnsafeCodePoint(code) ? CONTROL_REPLACEMENT : char;
266
307
  }
267
308
  return clean.length > MAX_CELL_LENGTH ? `${clean.slice(0, MAX_CELL_LENGTH)}…` : clean;
268
309
  }
@@ -362,7 +403,7 @@ function issueRef(repo, issue) {
362
403
  * duration silently covering two phases, which reads as a real measurement. The row after a
363
404
  * break is `-`, and the warning says which milestone caused it.
364
405
  */
365
- function timePhases(repo, issue, run, milestones, warn) {
406
+ function timePhases(repo, issue, run, milestones, classification, warn) {
366
407
  const phases = [];
367
408
  let previous = null;
368
409
  let firstAt = null;
@@ -395,10 +436,31 @@ function timePhases(repo, issue, run, milestones, warn) {
395
436
  previous = milestone;
396
437
  }
397
438
  const last = milestones[milestones.length - 1];
439
+ const review = lastReviewOf(milestones);
440
+ // Dropping a malformed counter silently would break the module's contract exactly where
441
+ // the numbers feed a tier-routing decision: the run vanishes from the denominator with no
442
+ // trace. Warn once per unreadable key, naming the value that could not be read.
443
+ for (const key of REVIEW_COUNTER_KEYS) {
444
+ const raw = review?.keys[key];
445
+ if (raw !== undefined && countKey(review, key) === null) {
446
+ warn(`${where}: review milestone has ${key}='${renderValue(raw)}' — expected a non-negative integer of at most ${MAX_COUNT}, so this run is left out of the ${key === 'escalated' ? 'escalation' : 'conformance'} figures`);
447
+ }
448
+ }
449
+ const acMet = countKey(review, 'ac_met');
450
+ const acTotal = countKey(review, 'ac_total');
451
+ if (acMet !== null && acTotal !== null && acMet > acTotal) {
452
+ warn(`${where}: review milestone reports ac_met=${acMet} above ac_total=${acTotal} — counted as 0 criteria not met, which is the floor, not a measurement`);
453
+ }
398
454
  return {
399
455
  issue,
400
456
  run,
401
457
  model: modelOf(milestones),
458
+ risk_class: classification.risk,
459
+ classified_mode: classification.mode,
460
+ classify_only: milestones.every((m) => m.phase === runstate_1.CLASSIFY_PHASE),
461
+ escalated: countKey(review, 'escalated'),
462
+ ac_met: acMet,
463
+ ac_total: acTotal,
402
464
  phases,
403
465
  last_phase: last?.phase ?? '',
404
466
  last_status: last?.status ?? '',
@@ -423,6 +485,90 @@ function modelOf(milestones) {
423
485
  return gate.keys.model;
424
486
  return milestones.find((m) => m.keys.model)?.keys.model ?? null;
425
487
  }
488
+ /**
489
+ * The classifier's verdict for an issue — the class axis's key.
490
+ *
491
+ * An issue-level attribute, not a run-level one, and that distinction is the whole reason
492
+ * this function takes the trail rather than a run's milestones. The classifier posts its
493
+ * verdict under its **own** `run=` (`r-540-edcf` classifies what `r-540-…` then implements),
494
+ * so a per-run lookup would find `risk=` on the classify run and nothing on the cycle run
495
+ * that actually did the work — the one run the class axis exists to bucket.
496
+ *
497
+ * Same precedence shape as {@link modelOf}: the `classify` milestone is authoritative, and
498
+ * any other milestone carrying the key is a fallback rather than reporting a trail that
499
+ * plainly states its class as unclassified.
500
+ */
501
+ function classificationOf(milestones) {
502
+ const hasRisk = (m) => riskOf(m) !== null;
503
+ const classify = milestones.filter((m) => m.phase === runstate_1.CLASSIFY_PHASE && hasRisk(m)).at(-1);
504
+ const source = classify ?? milestones.filter(hasRisk).at(-1);
505
+ return { risk: source === undefined ? null : riskOf(source), mode: modeOf(source) };
506
+ }
507
+ /**
508
+ * A milestone's `risk=`, accepted only if it is one of the classifier's own levels.
509
+ *
510
+ * `parseMilestone` is tolerant by design and {@link ./runstate!KEY_VALUE_RULES} runs on the
511
+ * WRITE path, so a value reaching this reader is whatever someone typed into a comment.
512
+ * Unvalidated it becomes a bucket key: `risk=CRITICAL` invents a row in the table an
513
+ * operator routes tiers from, and `risk=<unclassified>` forges the sentinel. Values are
514
+ * lowercased first so `LOW` folds onto `low` instead of splitting the row — the same
515
+ * canonicalisation {@link canonicalModel} applies for the same reason.
516
+ */
517
+ function riskOf(milestone) {
518
+ const value = milestone.keys.risk?.trim().toLowerCase();
519
+ return value !== undefined && runstate_1.RISK_LEVELS.includes(value) ? value : null;
520
+ }
521
+ /** The same closed-set treatment for `mode=`, which `--json` exposes as `classified_mode`. */
522
+ function modeOf(milestone) {
523
+ const value = milestone?.keys.mode?.trim().toLowerCase();
524
+ return value !== undefined && runstate_1.CLASSIFY_MODES.includes(value)
525
+ ? value
526
+ : null;
527
+ }
528
+ /**
529
+ * A milestone key read as a non-negative count, or null when it is absent or unreadable.
530
+ *
531
+ * Null and zero mean different things here and must not collapse: `escalated=0` is a run
532
+ * that reviewed and escalated nothing, while a missing key is a run that never reported.
533
+ * Averaging the second as a zero would silently reward runs that skipped review.
534
+ */
535
+ function countKey(milestone, key) {
536
+ const raw = milestone?.keys[key];
537
+ // `Number()` is not a grammar: it reads '' as 0 (turning "never reported" into a measured
538
+ // zero, the exact collapse this function exists to prevent), and accepts '0x1f', '1e3',
539
+ // '+7' and ' 12 '. The protocol's own count grammar is the gate.
540
+ if (raw === undefined || !runstate_1.NON_NEGATIVE_INT_RE.test(raw))
541
+ return null;
542
+ const value = Number(raw);
543
+ return value <= MAX_COUNT ? value : null;
544
+ }
545
+ /**
546
+ * Upper bound on a milestone count, above which the value is treated as unreadable.
547
+ *
548
+ * `NON_NEGATIVE_INT_RE` admits any number of digits, and a 21-digit `ac_total=` would
549
+ * silently make every sum it feeds lossy past 2^53 and render as `0/1e+21`. No real review
550
+ * judges ten thousand criteria; a value that claims to is data corruption, not a measurement.
551
+ */
552
+ const MAX_COUNT = 10_000;
553
+ /** The review counters this module reads — listed once so the warning loop cannot drift. */
554
+ const REVIEW_COUNTER_KEYS = ['escalated', 'ac_met', 'ac_total'];
555
+ /**
556
+ * The run's last `review` milestone — the one whose counters are current.
557
+ *
558
+ * Review can post twice on one run (`partial`, then `done` after the pending agents finish),
559
+ * and only the later comment carries the settled `escalated=`/`ac_met=` figures.
560
+ *
561
+ * `batch-review` counts too: it posts the SAME keys on a batch anchor, and {@link isCompleted}
562
+ * already scores a delivered anchor via {@link DELIVERED_PHASES}. Reading only `review` would
563
+ * put every batch anchor in the model table as a delivered run whose conformance was never
564
+ * checked — and make this module disagree with `scripts/model-scorecard.mjs`, which reads both
565
+ * phases, about the same trail.
566
+ */
567
+ function lastReviewOf(milestones) {
568
+ return milestones
569
+ .filter((m) => m.phase === REVIEW_PHASE || m.phase === BATCH_REVIEW_PHASE)
570
+ .at(-1);
571
+ }
426
572
  /** Per-phase median/min/max across every run in the report. */
427
573
  function aggregatePhases(runs) {
428
574
  const samples = new Map();
@@ -479,19 +625,59 @@ exports.DELIVERED_PHASES = [
479
625
  function isCompleted(run) {
480
626
  return run.last_status === DONE && exports.DELIVERED_PHASES.includes(run.last_phase);
481
627
  }
628
+ /**
629
+ * The runs the model and class tables are built from.
630
+ *
631
+ * A classify run is the classifier's own dispatch — one milestone, no `model=`, no ship — so
632
+ * it is not a cycle run and counting it as one would report the classifier's every verdict as
633
+ * an `<unknown>`-model run that failed to deliver.
634
+ */
635
+ function cycleRuns(runs) {
636
+ return runs.filter((run) => !run.classify_only);
637
+ }
638
+ function emptyCounters() {
639
+ return {
640
+ runs: 0,
641
+ delivered: 0,
642
+ blocked: 0,
643
+ escalationRuns: 0,
644
+ escalations: 0,
645
+ conformanceRuns: 0,
646
+ conformanceCriteria: 0,
647
+ conformanceNotMet: 0,
648
+ };
649
+ }
650
+ function countRun(counters, run) {
651
+ counters.runs += 1;
652
+ if (isCompleted(run))
653
+ counters.delivered += 1;
654
+ else if (run.last_status === BLOCKED)
655
+ counters.blocked += 1;
656
+ if (run.escalated !== null) {
657
+ counters.escalationRuns += 1;
658
+ counters.escalations += run.escalated;
659
+ }
660
+ // `ac_total=0` is a review that judged nothing, not a run with a perfect record — it
661
+ // contributes no criteria and must not enter the denominator.
662
+ if (run.ac_total !== null && run.ac_total > 0 && run.ac_met !== null) {
663
+ counters.conformanceRuns += 1;
664
+ counters.conformanceCriteria += run.ac_total;
665
+ // Clamped: a malformed trail claiming more met than total would otherwise subtract
666
+ // from the not-met total and understate every bucket it lands in.
667
+ counters.conformanceNotMet += Math.max(0, run.ac_total - run.ac_met);
668
+ }
669
+ }
482
670
  /** Whole-run totals and outcomes bucketed by `model=`, so runs become comparable across models. */
483
671
  function aggregateModels(runs) {
484
672
  const buckets = new Map();
485
- for (const run of runs) {
673
+ for (const run of cycleRuns(runs)) {
486
674
  const key = run.model === null ? exports.UNKNOWN_MODEL : canonicalModel(run.model);
487
675
  const bucket = buckets.get(key) ?? {
488
- runs: 0,
676
+ ...emptyCounters(),
489
677
  totals: [],
490
678
  aliases: new Set(),
491
- delivered: 0,
492
- blocked: 0,
493
679
  };
494
- bucket.runs += 1;
680
+ countRun(bucket, run);
495
681
  // Only a spelling someone actually recorded is an alias. The unknown bucket's runs
496
682
  // recorded nothing, so inventing `<unknown>` there would put a value in `aliases` that
497
683
  // appears in no trail — and make a run that literally recorded `model=unknown`
@@ -500,10 +686,6 @@ function aggregateModels(runs) {
500
686
  bucket.aliases.add(run.model);
501
687
  if (run.total_seconds !== null)
502
688
  bucket.totals.push(run.total_seconds);
503
- if (isCompleted(run))
504
- bucket.delivered += 1;
505
- else if (run.last_status === BLOCKED)
506
- bucket.blocked += 1;
507
689
  buckets.set(key, bucket);
508
690
  }
509
691
  return [...buckets.entries()]
@@ -522,10 +704,87 @@ function aggregateModels(runs) {
522
704
  blocked: bucket.blocked,
523
705
  unfinished: bucket.runs - bucket.delivered - bucket.blocked,
524
706
  delivery_rate: bucket.delivered / bucket.runs,
707
+ escalation_runs: bucket.escalationRuns,
708
+ escalations: bucket.escalations,
709
+ escalations_per_run: bucket.escalationRuns > 0 ? bucket.escalations / bucket.escalationRuns : null,
710
+ conformance_runs: bucket.conformanceRuns,
711
+ conformance_criteria: bucket.conformanceCriteria,
712
+ conformance_not_met: bucket.conformanceNotMet,
713
+ conformance_not_met_rate: bucket.conformanceCriteria > 0
714
+ ? bucket.conformanceNotMet / bucket.conformanceCriteria
715
+ : null,
525
716
  };
526
717
  })
527
718
  .sort((a, b) => a.model.localeCompare(b.model));
528
719
  }
720
+ /**
721
+ * Order the class rows put the operator's question first: worst class, then worst model.
722
+ *
723
+ * `high` before `med` before `low` before unclassified, because "is this model safe for the
724
+ * risky class" is the routing decision; alphabetical order would bury it under `low`.
725
+ *
726
+ * Derived from {@link ./runstate!RISK_LEVELS} rather than restated, so a fourth level added to
727
+ * the protocol sorts into its severity position here instead of silently into the unclassified
728
+ * tail with no test failing.
729
+ */
730
+ const CLASS_ORDER = [...runstate_1.RISK_LEVELS].reverse();
731
+ /**
732
+ * Separator for the `model × class` composite key.
733
+ *
734
+ * NUL cannot survive {@link canonicalModel} or {@link riskOf}, so `glm x/low` and `glm/x` +
735
+ * `low` cannot collide on one key the way a space separator lets them. Written as an escape
736
+ * on purpose: a literal NUL byte in the source is invisible in a diff and makes the whole
737
+ * file binary to `grep`/`rg` — which is how this was found.
738
+ */
739
+ const CLASS_KEY_SEP = '\u0000';
740
+ function byClassOrder(a, b) {
741
+ const ai = CLASS_ORDER.indexOf(a.risk_class);
742
+ const bi = CLASS_ORDER.indexOf(b.risk_class);
743
+ if (ai !== bi) {
744
+ if (ai === -1)
745
+ return 1;
746
+ if (bi === -1)
747
+ return -1;
748
+ return ai - bi;
749
+ }
750
+ if (a.risk_class !== b.risk_class)
751
+ return a.risk_class.localeCompare(b.risk_class);
752
+ return a.model.localeCompare(b.model);
753
+ }
754
+ /**
755
+ * The same whole-run outcomes, split again by the issue's classifier verdict (AC3).
756
+ *
757
+ * Keyed on the canonical model so PR #546's alias fold is not undone here — a class table
758
+ * that re-split `glm-5.3` from `llmgateway/glm-5.3` would reintroduce the exact defect the
759
+ * model table was fixed for, one axis over.
760
+ */
761
+ function aggregateClasses(runs) {
762
+ const buckets = new Map();
763
+ for (const run of cycleRuns(runs)) {
764
+ const model = run.model === null ? exports.UNKNOWN_MODEL : canonicalModel(run.model);
765
+ const risk_class = run.risk_class ?? exports.UNCLASSIFIED_CLASS;
766
+ const key = `${model}${CLASS_KEY_SEP}${risk_class}`;
767
+ const bucket = buckets.get(key) ?? { ...emptyCounters(), model, risk_class };
768
+ countRun(bucket, run);
769
+ buckets.set(key, bucket);
770
+ }
771
+ return [...buckets.values()]
772
+ .map((bucket) => ({
773
+ model: bucket.model,
774
+ risk_class: bucket.risk_class,
775
+ runs: bucket.runs,
776
+ delivered: bucket.delivered,
777
+ blocked: bucket.blocked,
778
+ unfinished: bucket.runs - bucket.delivered - bucket.blocked,
779
+ delivery_rate: bucket.delivered / bucket.runs,
780
+ escalation_runs: bucket.escalationRuns,
781
+ escalations: bucket.escalations,
782
+ conformance_runs: bucket.conformanceRuns,
783
+ conformance_criteria: bucket.conformanceCriteria,
784
+ conformance_not_met: bucket.conformanceNotMet,
785
+ }))
786
+ .sort(byClassOrder);
787
+ }
529
788
  /**
530
789
  * What the model buckets could not measure, in the module's own `warnings` channel.
531
790
  *
@@ -567,6 +826,48 @@ function modelWarnings(models) {
567
826
  }
568
827
  return warnings;
569
828
  }
829
+ /**
830
+ * What the class table could not measure — the same contract as {@link modelWarnings}.
831
+ *
832
+ * The class axis is only as good as the classifier's coverage of the corpus, and coverage is
833
+ * the one thing a reader cannot see from the rows: an `<unclassified>` row looks like just
834
+ * another class rather than "most of this table has no class at all". Stating the share makes
835
+ * a thin axis obvious instead of letting a two-run `low` row read as a verdict on `low`.
836
+ */
837
+ /**
838
+ * The runs excluded from both tables, disclosed rather than quietly dropped.
839
+ *
840
+ * Without this the by-model row counts cannot be reconciled against `runs.length`, and in the
841
+ * all-classify case both tables vanish with no explanation at all — the exclusion is only
842
+ * mentioned in the class table's footnote, which is not printed when there is no class table.
843
+ */
844
+ function exclusionWarnings(runs) {
845
+ const excluded = runs.length - cycleRuns(runs).length;
846
+ if (excluded === 0)
847
+ return [];
848
+ return [
849
+ `${excluded} of ${runs.length} run(s) are classifier dispatches (classify milestones only) — excluded from the by-model and by-class tables, since they record no model= and never ship`,
850
+ ];
851
+ }
852
+ function classWarnings(classes) {
853
+ const total = classes.reduce((sum, c) => sum + c.runs, 0);
854
+ if (total === 0)
855
+ return [];
856
+ const unclassified = classes
857
+ .filter((c) => c.risk_class === exports.UNCLASSIFIED_CLASS)
858
+ .reduce((sum, c) => sum + c.runs, 0);
859
+ // Same rule the unknown-model bucket follows, for the same reason: a table that is ALL
860
+ // unclassified offers no class comparison to misread — it visibly has one row per model —
861
+ // and warning there would fire on almost every historical trail, since the classifier is
862
+ // newer than the corpus. The misreadable case is the MIXED one, where a two-run `low` row
863
+ // sits beside a large unclassified row and looks like a verdict on `low`.
864
+ if (unclassified === 0 || unclassified === total)
865
+ return [];
866
+ const share = Math.round((unclassified / total) * exports.PERCENT);
867
+ return [
868
+ `${unclassified} of ${total} run(s) (${share}%) carry no classifier risk= verdict — they are bucketed as ${exports.UNCLASSIFIED_CLASS}, so the class rows describe only the classified remainder`,
869
+ ];
870
+ }
570
871
  /** One aggregate row's skew note, or null when every sample was forwards. */
571
872
  function skewNote(negativeSamples) {
572
873
  if (negativeSamples === 0)
@@ -618,15 +919,20 @@ function buildStatsReport(input) {
618
919
  withoutTrail.push(trail.issue);
619
920
  continue;
620
921
  }
922
+ // Read once per ISSUE, before the runs are split: the classifier posts its verdict under
923
+ // its own run= id, so the cycle run that did the work never carries it (see
924
+ // classificationOf) and a per-run lookup would find nothing to bucket on.
925
+ const classification = classificationOf(trail.milestones);
621
926
  for (const [run, milestones] of groupByRun(trail.milestones)) {
622
927
  if (run === exports.UNKNOWN_RUN) {
623
928
  warn(`issue ${issueRef(repo, trail.issue)}: ${milestones.length} milestone(s) carry no run= id — grouped together as '${exports.UNKNOWN_RUN}', so their durations may span unrelated runs`);
624
929
  }
625
- runs.push(timePhases(repo, trail.issue, run, milestones, warn));
930
+ runs.push(timePhases(repo, trail.issue, run, milestones, classification, warn));
626
931
  }
627
932
  }
628
933
  const phases = aggregatePhases(runs);
629
934
  const models = aggregateModels(runs);
935
+ const classes = aggregateClasses(runs);
630
936
  for (const phase of phases) {
631
937
  if (phase.negative_samples > 0) {
632
938
  warn(`aggregate for phase '${renderValue(phase.phase)}' includes ${phase.negative_samples} negative sample(s) from clock skew — its median and min are not meaningful`);
@@ -634,11 +940,15 @@ function buildStatsReport(input) {
634
940
  }
635
941
  for (const line of modelWarnings(models))
636
942
  warn(line);
943
+ for (const line of exclusionWarnings(runs))
944
+ warn(line);
945
+ for (const line of classWarnings(classes))
946
+ warn(line);
637
947
  return {
638
948
  repo,
639
949
  issues: trails.map((t) => t.issue),
640
950
  runs,
641
- aggregates: { phases, models },
951
+ aggregates: { phases, models, classes },
642
952
  issues_without_trail: withoutTrail,
643
953
  issues_failed: failed,
644
954
  warnings: [...counts.entries()].map(([line, n]) => (n > 1 ? `${line} (×${n})` : line)),
@@ -1 +1 @@
1
- {"version":3,"file":"runstate-stats.js","sourceRoot":"","sources":["../src/runstate-stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runstate-stats.js","sourceRoot":"","sources":["../src/runstate-stats.ts"],"names":[],"mappings":"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"}
@@ -131,6 +131,15 @@ interface KeyValueRule {
131
131
  test: (value: string) => boolean;
132
132
  expects: string;
133
133
  }
134
+ /**
135
+ * `est_files`/`est_diff`: a count or a size, never signed, fractional, or descriptive.
136
+ *
137
+ * Exported because the READ side needs the same grammar. `parseMilestone` is tolerant by
138
+ * design, so a count key reaching a reader can be `''`, `0x1f`, `1e3` or `+7` — all of which
139
+ * `Number()` happily accepts, and the first of which silently turns "never reported" into a
140
+ * measured zero. Readers test against this before coercing.
141
+ */
142
+ export declare const NON_NEGATIVE_INT_RE: RegExp;
134
143
  /**
135
144
  * `takeover`: a label naming what took the run over (#504) — a run id, a slot id, an
136
145
  * agent name. Loose on purpose (the ladder has no single naming scheme) but still a
@@ -150,6 +159,15 @@ export declare const TAKEOVER_RE: RegExp;
150
159
  * as `gh.ts`'s `snippet`/`isSafeArg` and `dispatch.ts`'s prompt flattening.
151
160
  */
152
161
  export declare function safeLabel(raw: string | undefined): string;
162
+ /**
163
+ * The classifier's closed risk set, ordered least- to most-severe.
164
+ *
165
+ * Exported so the write-path rule below and every reader bucket on the SAME list. A reader
166
+ * that hard-codes its own copy silently disagrees the day a fourth level is added here.
167
+ */
168
+ export declare const RISK_LEVELS: readonly ["low", "med", "high"];
169
+ /** The classifier's closed mode set — which cycle shape the issue was routed to. */
170
+ export declare const CLASSIFY_MODES: readonly ["full", "slot"];
153
171
  export declare const KEY_VALUE_RULES: Record<string, KeyValueRule>;
154
172
  /**
155
173
  * The phase that follows `phase`, for the milestone's `next=` line.
@@ -263,6 +281,12 @@ export declare const MAX_GENERATION = 1000;
263
281
  export declare function generationOf(milestone: ParsedMilestone): number | null;
264
282
  /** Read a generation off a flag or a comment value; null when it is not one. */
265
283
  export declare function parseGeneration(raw: string): number | null;
284
+ /**
285
+ * Read a `--dispatched-at` flag value; null when it is not an ISO-8601 instant with an
286
+ * explicit zone. Normalizes to a canonical `Date#toISOString()` form so it compares
287
+ * cleanly against milestone `at=` values regardless of the offset it was given in.
288
+ */
289
+ export declare function parseDispatchedAt(raw: string): string | null;
266
290
  /**
267
291
  * The highest-generation fence on `run`'s trail, or null when the run was never fenced.
268
292
  *
@@ -316,13 +340,23 @@ export interface ResumeProbe {
316
340
  mergedAt: string | null;
317
341
  mergeable: string;
318
342
  } | null;
319
- /** The issue's state is CLOSED. */
320
- issueClosed(): boolean;
343
+ /**
344
+ * The issue's state is CLOSED, or null if it could not be determined (a failed or
345
+ * non-JSON `gh` read). Callers that only care about "definitely closed" can treat
346
+ * `null` the same as `false` (`!issueClosed()` is truthy for both) — but
347
+ * {@link reportTrailVerdict} distinguishes them, since minting a fresh run on an
348
+ * unknown-state issue risks a duplicate PR for one that was actually already merged.
349
+ */
350
+ issueClosed(): boolean | null;
321
351
  }
322
352
  export interface ResumeResult {
323
353
  /** Phase to resume from: a phase name, `ship-wait`, `ship-teardown`, `done`, or `none`. */
324
354
  resume_from: string;
325
- /** The run id to reuse, or null on a fresh run. */
355
+ /**
356
+ * The run id to reuse, or null on an empty trail. Exception: on a stale `report/done`
357
+ * trail (#582) this is a freshly minted id for a fresh entry — it must NOT be reused;
358
+ * the prior run's id is carried separately in {@link prior_run}.
359
+ */
326
360
  run_id: string | null;
327
361
  /** Checks that passed, for the gate milestone's `verified=` key. */
328
362
  verified: string[];
@@ -349,6 +383,13 @@ export interface ResumeResult {
349
383
  slot_trail?: boolean;
350
384
  /** Human-readable note, e.g. "already complete". */
351
385
  note?: string;
386
+ /**
387
+ * Set only for a stale `report/done` trail (#582): the OLD run id, carried forward so
388
+ * the caller (gate-issue's milestone) can record where this fresh attempt's
389
+ * predecessor left off. `run_id` on this same result is a newly minted id, not this
390
+ * one — see {@link reportTrailVerdict}.
391
+ */
392
+ prior_run?: string;
352
393
  /**
353
394
  * The generation that owns this run (#504) — 0 for a run that was never fenced. A
354
395
  * resuming agent passes it to `runstate post --gen`; posting below it is rejected,
@@ -371,7 +412,12 @@ export declare function hitLoopCap(milestones: ParsedMilestone[]): boolean;
371
412
  * Resolve where a run should resume from, implementing the resume verification table in
372
413
  * `imboard-ai/git/gate-issue`. Never trusts the milestone alone — every claim is checked
373
414
  * against reality through `probe`, and {@link PHASE_RESUMERS} holds the per-phase rules.
415
+ *
416
+ * `dispatchedAt` — the ISO time THIS run was dispatched — is what lets a `report/done`
417
+ * milestone left by a prior attempt be told apart from this run's own
418
+ * ({@link reportTrailVerdict}, #582). Omitting it (the default `null`) degrades to the
419
+ * old, unfenced answer (`resume_from=report`), with the ambiguity reported in `note`.
374
420
  */
375
- export declare function computeResume(milestones: ParsedMilestone[], probe: ResumeProbe): ResumeResult;
421
+ export declare function computeResume(milestones: ParsedMilestone[], probe: ResumeProbe, dispatchedAt?: string | null): ResumeResult;
376
422
  export {};
377
423
  //# sourceMappingURL=runstate.d.ts.map