@newrelic/preflight 1.15.4 → 1.15.6

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.
Files changed (42) hide show
  1. package/dist/hooks/collector-script.d.ts.map +1 -1
  2. package/dist/hooks/collector-script.js +5 -0
  3. package/dist/hooks/collector-script.js.map +1 -1
  4. package/dist/hooks/tool-parsers.d.ts.map +1 -1
  5. package/dist/hooks/tool-parsers.js +4 -0
  6. package/dist/hooks/tool-parsers.js.map +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +26 -8
  9. package/dist/index.js.map +1 -1
  10. package/dist/metrics/budget-tracker.d.ts +29 -0
  11. package/dist/metrics/budget-tracker.d.ts.map +1 -1
  12. package/dist/metrics/budget-tracker.js +39 -0
  13. package/dist/metrics/budget-tracker.js.map +1 -1
  14. package/dist/metrics/context-composition-tracker.d.ts +1 -1
  15. package/dist/metrics/context-composition-tracker.d.ts.map +1 -1
  16. package/dist/metrics/context-composition-tracker.js +15 -4
  17. package/dist/metrics/context-composition-tracker.js.map +1 -1
  18. package/dist/metrics/efficiency-score.d.ts +39 -0
  19. package/dist/metrics/efficiency-score.d.ts.map +1 -1
  20. package/dist/metrics/efficiency-score.js +56 -7
  21. package/dist/metrics/efficiency-score.js.map +1 -1
  22. package/dist/metrics/quality-proxy-tracker.d.ts +15 -0
  23. package/dist/metrics/quality-proxy-tracker.d.ts.map +1 -1
  24. package/dist/metrics/quality-proxy-tracker.js +42 -7
  25. package/dist/metrics/quality-proxy-tracker.js.map +1 -1
  26. package/dist/metrics/retry-detector.d.ts +0 -1
  27. package/dist/metrics/retry-detector.d.ts.map +1 -1
  28. package/dist/metrics/retry-detector.js +24 -7
  29. package/dist/metrics/retry-detector.js.map +1 -1
  30. package/dist/metrics/task-detector-seed.d.ts +4 -0
  31. package/dist/metrics/task-detector-seed.d.ts.map +1 -0
  32. package/dist/metrics/task-detector-seed.js +20 -0
  33. package/dist/metrics/task-detector-seed.js.map +1 -0
  34. package/dist/metrics/task-detector.d.ts +65 -0
  35. package/dist/metrics/task-detector.d.ts.map +1 -1
  36. package/dist/metrics/task-detector.js +76 -0
  37. package/dist/metrics/task-detector.js.map +1 -1
  38. package/dist/storage/session-store.d.ts +25 -1
  39. package/dist/storage/session-store.d.ts.map +1 -1
  40. package/dist/storage/session-store.js +38 -0
  41. package/dist/storage/session-store.js.map +1 -1
  42. package/package.json +1 -1
@@ -32,6 +32,18 @@ export interface EfficiencyScoreOptions {
32
32
  readonly firstAttemptQualityWeight?: number;
33
33
  readonly speedBaselineLinesPerSecond?: number;
34
34
  }
35
+ /**
36
+ * Input shape for `EfficiencyScorer.seedFromPersisted()` — a previous
37
+ * process's last checkpoint of `getSessionAverage()` for this same session,
38
+ * built directly from `FullSessionSummary.efficiencyScore` +
39
+ * `.efficiencyScoreComponents` + `.efficiencyScoreSampleCount`
40
+ * (session-store.ts).
41
+ */
42
+ export interface EfficiencyScoreSeed {
43
+ readonly score: number;
44
+ readonly components: EfficiencyScoreComponents;
45
+ readonly sampleCount: number;
46
+ }
35
47
  export declare class EfficiencyScorer implements Resettable {
36
48
  private readonly speedWeight;
37
49
  private readonly correctnessWeight;
@@ -40,16 +52,43 @@ export declare class EfficiencyScorer implements Resettable {
40
52
  private readonly speedBaselineLps;
41
53
  private readonly scores;
42
54
  private lastEmittedIndex;
55
+ private seededScoreSum;
56
+ private seededSpeedSum;
57
+ private seededCorrectnessSum;
58
+ private seededAutonomySum;
59
+ private seededFirstAttemptSum;
60
+ private seededSampleCount;
43
61
  constructor(options?: EfficiencyScoreOptions);
44
62
  /**
45
63
  * Compute the efficiency score for a completed task.
46
64
  * Anti-patterns are optional — if not provided, first-attempt quality defaults to 1.0.
47
65
  */
48
66
  computeScore(task: AiCodingTask, antiPatterns?: AntiPattern[]): EfficiencyScore;
67
+ /**
68
+ * Seeds a weighted contribution to the session average from a previous
69
+ * process's last checkpoint for this same session — same restart-recovery
70
+ * problem as `CostTracker.seedFromPersisted()`/`ModelUsageTracker.seedFromPersisted()`,
71
+ * but adapted for a tracker whose own persisted checkpoint is already an
72
+ * average rather than raw per-task data — the per-task score list isn't
73
+ * reconstructable from a checkpoint, only the average is.
74
+ *
75
+ * Adds to current totals rather than overwriting, so callers must invoke
76
+ * this at most once per (re)adopted session id, before any real activity
77
+ * for that id has reached this tracker.
78
+ */
79
+ seedFromPersisted(seed: EfficiencyScoreSeed): void;
49
80
  /**
50
81
  * Session-wide rolling average across all scored tasks.
51
82
  */
52
83
  getSessionAverage(): EfficiencyScore | null;
84
+ /**
85
+ * Effective sample count behind getSessionAverage() — fresh scores plus
86
+ * any seeded weight from a previous process's checkpoint. Distinct from
87
+ * getScores().length, which is fresh-only and would silently drop or
88
+ * under-weight seeded history if used to persist the sample count that
89
+ * pairs with getSessionAverage()'s seed-inclusive score.
90
+ */
91
+ getSessionSampleCount(): number;
53
92
  /**
54
93
  * Recompute and replace the score for a task that may have changed (e.g., active task).
55
94
  */
@@ -1 +1 @@
1
- {"version":3,"file":"efficiency-score.d.ts","sourceRoot":"","sources":["../../src/metrics/efficiency-score.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMzD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;CAC/C;AAkBD,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,OAAO,CAAC,EAAE,sBAAsB;IAS5C;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,eAAe;IA2B/E;;OAEG;IACH,iBAAiB,IAAI,eAAe,GAAG,IAAI;IAgC3C;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,WAAW,EAAE,GAAG,eAAe;IAgC9E,SAAS,IAAI,eAAe,EAAE;IAI9B,WAAW,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAY/C,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAS/B,OAAO,CAAC,iBAAiB;IAYzB;;;OAGG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,WAAW;CAQpB"}
1
+ {"version":3,"file":"efficiency-score.d.ts","sourceRoot":"","sources":["../../src/metrics/efficiency-score.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,17 @@ export class EfficiencyScorer {
29
29
  speedBaselineLps;
30
30
  scores = [];
31
31
  lastEmittedIndex = 0;
32
+ // Weighted seed from a previous process's last checkpoint for this same
33
+ // session — see seedFromPersisted()'s doc comment. The persisted
34
+ // checkpoint is already itself an average (not raw per-task scores), so
35
+ // seeding accumulates a weighted contribution (value * sampleCount) rather
36
+ // than raw per-task totals like CostTracker.seedFromPersisted() does.
37
+ seededScoreSum = 0;
38
+ seededSpeedSum = 0;
39
+ seededCorrectnessSum = 0;
40
+ seededAutonomySum = 0;
41
+ seededFirstAttemptSum = 0;
42
+ seededSampleCount = 0;
32
43
  constructor(options) {
33
44
  this.speedWeight = options?.speedWeight ?? DEFAULT_SPEED_WEIGHT;
34
45
  this.correctnessWeight = options?.correctnessWeight ?? DEFAULT_CORRECTNESS_WEIGHT;
@@ -63,17 +74,40 @@ export class EfficiencyScorer {
63
74
  }
64
75
  return result;
65
76
  }
77
+ /**
78
+ * Seeds a weighted contribution to the session average from a previous
79
+ * process's last checkpoint for this same session — same restart-recovery
80
+ * problem as `CostTracker.seedFromPersisted()`/`ModelUsageTracker.seedFromPersisted()`,
81
+ * but adapted for a tracker whose own persisted checkpoint is already an
82
+ * average rather than raw per-task data — the per-task score list isn't
83
+ * reconstructable from a checkpoint, only the average is.
84
+ *
85
+ * Adds to current totals rather than overwriting, so callers must invoke
86
+ * this at most once per (re)adopted session id, before any real activity
87
+ * for that id has reached this tracker.
88
+ */
89
+ seedFromPersisted(seed) {
90
+ if (seed.sampleCount <= 0)
91
+ return;
92
+ this.seededScoreSum += seed.score * seed.sampleCount;
93
+ this.seededSpeedSum += seed.components.speed * seed.sampleCount;
94
+ this.seededCorrectnessSum += seed.components.correctness * seed.sampleCount;
95
+ this.seededAutonomySum += seed.components.autonomy * seed.sampleCount;
96
+ this.seededFirstAttemptSum += seed.components.firstAttemptQuality * seed.sampleCount;
97
+ this.seededSampleCount += seed.sampleCount;
98
+ }
66
99
  /**
67
100
  * Session-wide rolling average across all scored tasks.
68
101
  */
69
102
  getSessionAverage() {
70
- if (this.scores.length === 0)
103
+ const n = this.scores.length + this.seededSampleCount;
104
+ if (n === 0)
71
105
  return null;
72
- let totalScore = 0;
73
- let totalSpeed = 0;
74
- let totalCorrectness = 0;
75
- let totalAutonomy = 0;
76
- let totalFirstAttempt = 0;
106
+ let totalScore = this.seededScoreSum;
107
+ let totalSpeed = this.seededSpeedSum;
108
+ let totalCorrectness = this.seededCorrectnessSum;
109
+ let totalAutonomy = this.seededAutonomySum;
110
+ let totalFirstAttempt = this.seededFirstAttemptSum;
77
111
  for (const s of this.scores) {
78
112
  totalScore += s.score;
79
113
  totalSpeed += s.components.speed;
@@ -81,7 +115,6 @@ export class EfficiencyScorer {
81
115
  totalAutonomy += s.components.autonomy;
82
116
  totalFirstAttempt += s.components.firstAttemptQuality;
83
117
  }
84
- const n = this.scores.length;
85
118
  return {
86
119
  score: Math.round((totalScore / n) * 1000) / 1000,
87
120
  components: {
@@ -94,6 +127,16 @@ export class EfficiencyScorer {
94
127
  timestamp: Date.now(),
95
128
  };
96
129
  }
130
+ /**
131
+ * Effective sample count behind getSessionAverage() — fresh scores plus
132
+ * any seeded weight from a previous process's checkpoint. Distinct from
133
+ * getScores().length, which is fresh-only and would silently drop or
134
+ * under-weight seeded history if used to persist the sample count that
135
+ * pairs with getSessionAverage()'s seed-inclusive score.
136
+ */
137
+ getSessionSampleCount() {
138
+ return this.scores.length + this.seededSampleCount;
139
+ }
97
140
  /**
98
141
  * Recompute and replace the score for a task that may have changed (e.g., active task).
99
142
  */
@@ -141,6 +184,12 @@ export class EfficiencyScorer {
141
184
  reset(_sessionId) {
142
185
  this.scores.length = 0;
143
186
  this.lastEmittedIndex = 0;
187
+ this.seededScoreSum = 0;
188
+ this.seededSpeedSum = 0;
189
+ this.seededCorrectnessSum = 0;
190
+ this.seededAutonomySum = 0;
191
+ this.seededFirstAttemptSum = 0;
192
+ this.seededSampleCount = 0;
144
193
  }
145
194
  // ---------------------------------------------------------------------------
146
195
  // Private
@@ -1 +1 @@
1
- {"version":3,"file":"efficiency-score.js","sourceRoot":"","sources":["../../src/metrics/efficiency-score.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"efficiency-score.js","sourceRoot":"","sources":["../../src/metrics/efficiency-score.ts"],"names":[],"mappings":"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"}
@@ -68,8 +68,23 @@ export declare class QualityProxyTracker {
68
68
  private lastEditFile;
69
69
  private lastEditTurn;
70
70
  private lastEditSuccess;
71
+ private seededCounts;
71
72
  constructor(options?: QualityProxyOptions);
72
73
  recordToolCall(record: ToolCallRecord): void;
74
+ /**
75
+ * Seeds cumulative raw signal counts from a previous process's last
76
+ * checkpoint for this same session — mirrors
77
+ * `ModelUsageTracker.seedFromPersisted()`, which has the identical
78
+ * in-memory-only, resets-on-restart problem: a process restart mid-session
79
+ * (sleep, closing a terminal, `claude --resume`, a crash) otherwise
80
+ * silently discards every diff/test/backtrack/self-correction signal a
81
+ * now-dead prior process already observed.
82
+ *
83
+ * Adds to current counts rather than overwriting, so callers must invoke
84
+ * this at most once per (re)adopted session id, before any real activity
85
+ * for that id has reached this tracker.
86
+ */
87
+ seedFromPersisted(counts: QualityProxyRawCounts): void;
73
88
  getRawCounts(): QualityProxyRawCounts;
74
89
  getMetrics(): QualityProxyMetrics;
75
90
  emitMetrics(aggregator: MetricAggregator): void;
@@ -1 +1 @@
1
- {"version":3,"file":"quality-proxy-tracker.d.ts","sourceRoot":"","sources":["../../src/metrics/quality-proxy-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality-proxy-tracker.d.ts","sourceRoot":"","sources":["../../src/metrics/quality-proxy-tracker.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,14 @@ export class QualityProxyTracker {
77
77
  lastEditFile = null;
78
78
  lastEditTurn = 0;
79
79
  lastEditSuccess = false;
80
+ // Additive seed from a previous process's last checkpoint for this same
81
+ // session — see seedFromPersisted()'s doc comment for why. Kept separate
82
+ // from `events` rather than pushed in as synthetic entries: `events` feeds
83
+ // computeTurnBuckets()/detectDegradation(), which need real turn numbers a
84
+ // persisted aggregate count can't provide (see FullSessionSummary.qualityProxy's
85
+ // doc comment for the same caveat). Only the aggregate counts/rates below
86
+ // are recoverable this way.
87
+ seededCounts = { ...ZERO_QUALITY_PROXY_COUNTS };
80
88
  constructor(options) {
81
89
  this.bucketSize = options?.bucketSize ?? DEFAULT_BUCKET_SIZE;
82
90
  this.maxEvents = options?.maxEvents ?? DEFAULT_MAX_EVENTS;
@@ -129,19 +137,45 @@ export class QualityProxyTracker {
129
137
  }
130
138
  }
131
139
  }
140
+ /**
141
+ * Seeds cumulative raw signal counts from a previous process's last
142
+ * checkpoint for this same session — mirrors
143
+ * `ModelUsageTracker.seedFromPersisted()`, which has the identical
144
+ * in-memory-only, resets-on-restart problem: a process restart mid-session
145
+ * (sleep, closing a terminal, `claude --resume`, a crash) otherwise
146
+ * silently discards every diff/test/backtrack/self-correction signal a
147
+ * now-dead prior process already observed.
148
+ *
149
+ * Adds to current counts rather than overwriting, so callers must invoke
150
+ * this at most once per (re)adopted session id, before any real activity
151
+ * for that id has reached this tracker.
152
+ */
153
+ seedFromPersisted(counts) {
154
+ if (counts.totalSignals === 0)
155
+ return;
156
+ this.seededCounts = {
157
+ totalSignals: this.seededCounts.totalSignals + counts.totalSignals,
158
+ diffApplyCleanCount: this.seededCounts.diffApplyCleanCount + counts.diffApplyCleanCount,
159
+ diffFailCount: this.seededCounts.diffFailCount + counts.diffFailCount,
160
+ testPassCount: this.seededCounts.testPassCount + counts.testPassCount,
161
+ testFailCount: this.seededCounts.testFailCount + counts.testFailCount,
162
+ backtrackCount: this.seededCounts.backtrackCount + counts.backtrackCount,
163
+ selfCorrectionCount: this.seededCounts.selfCorrectionCount + counts.selfCorrectionCount,
164
+ };
165
+ }
132
166
  // Raw per-session counts only — no derived rates. This is the shape
133
167
  // persisted onto FullSessionSummary.qualityProxy (session-store.ts) so a
134
168
  // session file never stores a stale derived rate; rates are always
135
169
  // recomputed at read time via getMetrics()/combineQualityProxyRawCounts().
136
170
  getRawCounts() {
137
171
  return {
138
- totalSignals: this.events.length,
139
- diffApplyCleanCount: this.countBySignal('diff_applied_clean'),
140
- diffFailCount: this.countBySignal('diff_failed'),
141
- testPassCount: this.countBySignal('test_pass'),
142
- testFailCount: this.countBySignal('test_fail'),
143
- backtrackCount: this.countBySignal('backtrack'),
144
- selfCorrectionCount: this.countBySignal('self_correction'),
172
+ totalSignals: this.events.length + this.seededCounts.totalSignals,
173
+ diffApplyCleanCount: this.countBySignal('diff_applied_clean') + this.seededCounts.diffApplyCleanCount,
174
+ diffFailCount: this.countBySignal('diff_failed') + this.seededCounts.diffFailCount,
175
+ testPassCount: this.countBySignal('test_pass') + this.seededCounts.testPassCount,
176
+ testFailCount: this.countBySignal('test_fail') + this.seededCounts.testFailCount,
177
+ backtrackCount: this.countBySignal('backtrack') + this.seededCounts.backtrackCount,
178
+ selfCorrectionCount: this.countBySignal('self_correction') + this.seededCounts.selfCorrectionCount,
145
179
  };
146
180
  }
147
181
  getMetrics() {
@@ -181,6 +215,7 @@ export class QualityProxyTracker {
181
215
  this.lastEditFile = null;
182
216
  this.lastEditTurn = 0;
183
217
  this.lastEditSuccess = false;
218
+ this.seededCounts = { ...ZERO_QUALITY_PROXY_COUNTS };
184
219
  }
185
220
  addEvent(signal, turnNumber, toolName) {
186
221
  this.events.push({ signal, turnNumber, timestamp: Date.now(), toolName });
@@ -1 +1 @@
1
- {"version":3,"file":"quality-proxy-tracker.js","sourceRoot":"","sources":["../../src/metrics/quality-proxy-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quality-proxy-tracker.js","sourceRoot":"","sources":["../../src/metrics/quality-proxy-tracker.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,6 @@ export declare class RetryDetector implements Resettable {
37
37
  private readonly alerts;
38
38
  private totalTokensWasted;
39
39
  private readonly firedKeys;
40
- private callCounter;
41
40
  constructor(options?: RetryDetectorOptions);
42
41
  recordToolCall(record: ToolCallRecord): ThrashingAlert | null;
43
42
  getMetrics(): RetryDetectorMetrics;
@@ -1 +1 @@
1
- {"version":3,"file":"retry-detector.d.ts","sourceRoot":"","sources":["../../src/metrics/retry-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CACpD;AAmBD,wBAAgB,+BAA+B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAa5E;AA+BD,qBAAa,aAAc,YAAW,UAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;IAEnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,iBAAiB,CAAK;IAE9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,WAAW,CAAK;gBAEZ,OAAO,CAAC,EAAE,oBAAoB;IAO1C,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI;IAY7D,UAAU,IAAI,oBAAoB;IAQlC,WAAW,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAO/C,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ/B,OAAO,CAAC,WAAW;IAyDnB,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,oBAAoB;CAO7B"}
1
+ {"version":3,"file":"retry-detector.d.ts","sourceRoot":"","sources":["../../src/metrics/retry-detector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CACpD;AAmBD,wBAAgB,+BAA+B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAa5E;AA+BD,qBAAa,aAAc,YAAW,UAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;IAEnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,iBAAiB,CAAK;IAE9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;gBAEnC,OAAO,CAAC,EAAE,oBAAoB;IAO1C,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI;IAW7D,UAAU,IAAI,oBAAoB;IAQlC,WAAW,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAO/C,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAO/B,OAAO,CAAC,WAAW;IAiEnB,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,oBAAoB;CAO7B"}
@@ -71,7 +71,6 @@ export class RetryDetector {
71
71
  totalTokensWasted = 0;
72
72
  // Track which tool+window combos already fired to avoid spamming
73
73
  firedKeys = new Set();
74
- callCounter = 0;
75
74
  constructor(options) {
76
75
  this.minOccurrences = options?.minOccurrences ?? DEFAULT_MIN_OCCURRENCES;
77
76
  this.windowSize = options?.windowSize ?? DEFAULT_WINDOW_SIZE;
@@ -80,7 +79,6 @@ export class RetryDetector {
80
79
  }
81
80
  recordToolCall(record) {
82
81
  this.recentCalls.push(record);
83
- this.callCounter++;
84
82
  // Only keep the window we need
85
83
  if (this.recentCalls.length > this.windowSize * 2) {
86
84
  this.recentCalls.splice(0, this.recentCalls.length - this.windowSize * 2);
@@ -105,7 +103,6 @@ export class RetryDetector {
105
103
  this.alerts.length = 0;
106
104
  this.totalTokensWasted = 0;
107
105
  this.firedKeys.clear();
108
- this.callCounter = 0;
109
106
  }
110
107
  checkWindow() {
111
108
  const window = this.recentCalls.slice(-this.windowSize);
@@ -127,8 +124,16 @@ export class RetryDetector {
127
124
  const isSimilar = similarity >= this.similarityThreshold;
128
125
  if (!allFailed && !isSimilar)
129
126
  continue;
130
- // Dedupe: use the call counter so alerts can fire again after new calls arrive
131
- const dedupeKey = `${toolName}:${this.callCounter}`;
127
+ // Dedupe on the offending group's actual call IDs not a monotonic
128
+ // counter, which never repeats and so never dedupes: it re-fired for
129
+ // the same unchanged group on every subsequent call, however unrelated.
130
+ // A key built from the group's own call IDs repeats exactly when the
131
+ // group itself hasn't changed, and changes the moment a call ages out
132
+ // of the window or a genuinely new occurrence joins it.
133
+ const dedupeKey = `${toolName}:${calls
134
+ .map((c) => c.id)
135
+ .sort()
136
+ .join(',')}`;
132
137
  if (this.firedKeys.has(dedupeKey))
133
138
  continue;
134
139
  this.firedKeys.add(dedupeKey);
@@ -174,8 +179,18 @@ export class RetryDetector {
174
179
  // input/arguments are identical (timestamps, ids, sizes, error details) —
175
180
  // without stripping these, every call would serialize as "different" and
176
181
  // similarity would never detect a genuine repeated-input retry.
182
+ //
183
+ // inputHash is kept, deliberately not stripped: it's a hash of the FULL raw
184
+ // tool input, computed for every call regardless of tool name, unlike the
185
+ // narrowed per-tool fields extractInputMeta()/parseToolSpecificFields() only
186
+ // populate for a known subset of tools. Without it, a call to any tool
187
+ // outside that subset (PowerShell, WebFetch, a third-party MCP tool, ...)
188
+ // serializes to just `{toolName}` — identical for every call regardless of
189
+ // how different the real inputs were, so it always scored similarity 1.0.
190
+ // A genuine repeat still hashes identically, so real-retry detection is
191
+ // unaffected.
177
192
  serializeInput(record) {
178
- const { id: _id, sessionId: _s, timestamp: _t, durationMs: _d, success: _su, errorType: _e, error: _er, inputSizeBytes: _is, outputSizeBytes: _os, inputHash: _ih, toolUseId: _tu, ...rest } = record;
193
+ const { id: _id, sessionId: _s, timestamp: _t, durationMs: _d, success: _su, errorType: _e, error: _er, inputSizeBytes: _is, outputSizeBytes: _os, toolUseId: _tu, ...rest } = record;
179
194
  try {
180
195
  return JSON.stringify(rest, null, 0);
181
196
  }
@@ -183,9 +198,11 @@ export class RetryDetector {
183
198
  return '';
184
199
  }
185
200
  }
201
+ // The first call in the group is necessary work, not waste — only the
202
+ // repeats after it represent redundant, wasted effort.
186
203
  estimateTokensWasted(calls) {
187
204
  let totalBytes = 0;
188
- for (const call of calls) {
205
+ for (const call of calls.slice(1)) {
189
206
  totalBytes += (call.inputSizeBytes ?? 0) + (call.outputSizeBytes ?? 0);
190
207
  }
191
208
  return Math.ceil(totalBytes / BYTES_PER_TOKEN_ESTIMATE);
@@ -1 +1 @@
1
- {"version":3,"file":"retry-detector.js","sourceRoot":"","sources":["../../src/metrics/retry-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry-detector.js","sourceRoot":"","sources":["../../src/metrics/retry-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { FullSessionSummary } from '../storage/session-store.js';
2
+ import type { TaskDetectorSeed } from './task-detector.js';
3
+ export declare function buildTaskDetectorSeed(persisted: FullSessionSummary): TaskDetectorSeed;
4
+ //# sourceMappingURL=task-detector-seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-detector-seed.d.ts","sourceRoot":"","sources":["../../src/metrics/task-detector-seed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAO3D,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,GAAG,gBAAgB,CAarF"}
@@ -0,0 +1,20 @@
1
+ // Builds the seed a freshly-started process's TaskDetector needs to recover
2
+ // a resumed session's pre-restart file/line/test/build/agent-spawn totals —
3
+ // see TaskDetector.seedFromPersisted() for why this exists. Lives in its own
4
+ // file (not task-detector.ts) to avoid a circular import: session-store.ts
5
+ // already imports TaskDetector/TaskMetrics from task-detector.ts.
6
+ export function buildTaskDetectorSeed(persisted) {
7
+ return {
8
+ filesRead: persisted.filesRead,
9
+ filesModified: persisted.filesModified,
10
+ linesAdded: persisted.linesAdded,
11
+ linesRemoved: persisted.linesRemoved,
12
+ testsRun: persisted.testRunCount,
13
+ testsPassed: persisted.testPassCount,
14
+ buildRun: persisted.buildRunCount,
15
+ buildPassed: persisted.buildPassCount,
16
+ agentSpawns: persisted.agentSpawns,
17
+ taskCount: persisted.taskCount,
18
+ };
19
+ }
20
+ //# sourceMappingURL=task-detector-seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-detector-seed.js","sourceRoot":"","sources":["../../src/metrics/task-detector-seed.ts"],"names":[],"mappings":"AAGA,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,kEAAkE;AAClE,MAAM,UAAU,qBAAqB,CAAC,SAA6B;IACjE,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,QAAQ,EAAE,SAAS,CAAC,YAAY;QAChC,WAAW,EAAE,SAAS,CAAC,aAAa;QACpC,QAAQ,EAAE,SAAS,CAAC,aAAa;QACjC,WAAW,EAAE,SAAS,CAAC,cAAc;QACrC,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAC;AACJ,CAAC"}
@@ -44,6 +44,50 @@ export interface TaskMetrics {
44
44
  readonly averageTaskDurationMs: number | null;
45
45
  readonly averageToolCallsPerTask: number | null;
46
46
  readonly completedTasks: AiCodingTask[];
47
+ /**
48
+ * Pre-restart file/line/test/build/agent-spawn totals recovered by
49
+ * `seedFromPersisted()`, folded in by `buildSessionSummary()` alongside
50
+ * the totals it derives from `completedTasks` (session-store.ts). null
51
+ * when nothing has been seeded. Deliberately NOT represented as a
52
+ * synthetic entry inside `completedTasks` itself — that would skew
53
+ * `averageTaskDurationMs`/`averageToolCallsPerTask` above (both derived
54
+ * from `completedTasks.length`) and has no real `toolCalls` list to
55
+ * attach — the per-task tool-call list isn't reconstructable from a
56
+ * scalar checkpoint.
57
+ */
58
+ readonly seededAggregate: TaskSeedAggregate | null;
59
+ }
60
+ /** See `TaskMetrics.seededAggregate`'s doc comment. */
61
+ export interface TaskSeedAggregate {
62
+ readonly filesRead: string[];
63
+ readonly filesModified: string[];
64
+ readonly linesAdded: number;
65
+ readonly linesRemoved: number;
66
+ readonly testsRun: number;
67
+ readonly testsPassed: number;
68
+ readonly buildRun: number;
69
+ readonly buildPassed: number;
70
+ readonly agentSpawns: number;
71
+ }
72
+ /**
73
+ * Input shape for `TaskDetector.seedFromPersisted()` — built from a
74
+ * previous process's last `FullSessionSummary` checkpoint for this same
75
+ * session by `buildTaskDetectorSeed()` (task-detector-seed.ts). Kept as a
76
+ * separate type/file rather than importing `FullSessionSummary` directly
77
+ * into this file, which would create a circular import (session-store.ts
78
+ * already imports from this file).
79
+ */
80
+ export interface TaskDetectorSeed {
81
+ readonly filesRead: readonly string[];
82
+ readonly filesModified: readonly string[];
83
+ readonly linesAdded: number;
84
+ readonly linesRemoved: number;
85
+ readonly testsRun: number;
86
+ readonly testsPassed: number;
87
+ readonly buildRun: number;
88
+ readonly buildPassed: number;
89
+ readonly agentSpawns: number;
90
+ readonly taskCount: number;
47
91
  }
48
92
  export interface TaskDetectorOptions {
49
93
  readonly idleTimeoutMs?: number;
@@ -66,6 +110,15 @@ export declare class TaskDetector implements Resettable {
66
110
  private pendingEmission;
67
111
  private lifetimeCompletedCount;
68
112
  private idleTimer;
113
+ private readonly seededFilesRead;
114
+ private readonly seededFilesModified;
115
+ private seededLinesAdded;
116
+ private seededLinesRemoved;
117
+ private seededTestsRun;
118
+ private seededTestsPassed;
119
+ private seededBuildRun;
120
+ private seededBuildPassed;
121
+ private seededAgentSpawns;
69
122
  private costAtTaskStart;
70
123
  private tokensAtTaskStart;
71
124
  constructor(options?: TaskDetectorOptions);
@@ -86,6 +139,18 @@ export declare class TaskDetector implements Resettable {
86
139
  * `AskUserQuestion`/`TaskUpdate` tools.
87
140
  */
88
141
  markBoundary(timestamp: number): AiCodingTask | null;
142
+ /**
143
+ * Seeds cumulative file/line/test/build/agent-spawn totals (plus the
144
+ * lifetime completed-task count) from a previous process's last
145
+ * checkpoint for this same session — same restart-recovery problem as
146
+ * `CostTracker.seedFromPersisted()`. See `TaskMetrics.seededAggregate`'s
147
+ * doc comment for why this doesn't touch `completedTasks` directly.
148
+ *
149
+ * Adds to current totals rather than overwriting, so callers must invoke
150
+ * this at most once per (re)adopted session id, before any real activity
151
+ * for that id has reached this tracker.
152
+ */
153
+ seedFromPersisted(seed: TaskDetectorSeed): void;
89
154
  getMetrics(): TaskMetrics;
90
155
  emitMetrics(aggregator: MetricAggregator): void;
91
156
  reset(_sessionId: string): void;