@newrelic/preflight 1.70.0 → 1.72.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.
Files changed (181) hide show
  1. package/README.md +2 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +7 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/dashboard/routes/api-handler.d.ts.map +1 -1
  6. package/dist/dashboard/routes/api-handler.js +11 -16
  7. package/dist/dashboard/routes/api-handler.js.map +1 -1
  8. package/dist/dashboard/subagent-timeline-store.d.ts +12 -1
  9. package/dist/dashboard/subagent-timeline-store.d.ts.map +1 -1
  10. package/dist/dashboard/subagent-timeline-store.js +32 -4
  11. package/dist/dashboard/subagent-timeline-store.js.map +1 -1
  12. package/dist/dashboard/workflow-store.d.ts.map +1 -1
  13. package/dist/dashboard/workflow-store.js +2 -3
  14. package/dist/dashboard/workflow-store.js.map +1 -1
  15. package/dist/hooks/collector-script.d.ts.map +1 -1
  16. package/dist/hooks/collector-script.js +14 -8
  17. package/dist/hooks/collector-script.js.map +1 -1
  18. package/dist/hooks/copilot-app-usage-watcher.d.ts.map +1 -1
  19. package/dist/hooks/copilot-app-usage-watcher.js +3 -4
  20. package/dist/hooks/copilot-app-usage-watcher.js.map +1 -1
  21. package/dist/hooks/copilot-usage-watcher.d.ts +25 -5
  22. package/dist/hooks/copilot-usage-watcher.d.ts.map +1 -1
  23. package/dist/hooks/copilot-usage-watcher.js +254 -92
  24. package/dist/hooks/copilot-usage-watcher.js.map +1 -1
  25. package/dist/hooks/event-processor.d.ts +24 -11
  26. package/dist/hooks/event-processor.d.ts.map +1 -1
  27. package/dist/hooks/event-processor.js +139 -45
  28. package/dist/hooks/event-processor.js.map +1 -1
  29. package/dist/hooks/index.d.ts +1 -1
  30. package/dist/hooks/index.d.ts.map +1 -1
  31. package/dist/hooks/index.js +1 -1
  32. package/dist/hooks/index.js.map +1 -1
  33. package/dist/hooks/parent-transcript-watcher.d.ts +1 -1
  34. package/dist/hooks/parent-transcript-watcher.d.ts.map +1 -1
  35. package/dist/hooks/parent-transcript-watcher.js +11 -6
  36. package/dist/hooks/parent-transcript-watcher.js.map +1 -1
  37. package/dist/hooks/session-resolver.d.ts.map +1 -1
  38. package/dist/hooks/session-resolver.js +2 -1
  39. package/dist/hooks/session-resolver.js.map +1 -1
  40. package/dist/hooks/subagent-watcher.d.ts +21 -15
  41. package/dist/hooks/subagent-watcher.d.ts.map +1 -1
  42. package/dist/hooks/subagent-watcher.js +89 -73
  43. package/dist/hooks/subagent-watcher.js.map +1 -1
  44. package/dist/hooks/throttled-warning.d.ts +5 -5
  45. package/dist/hooks/throttled-warning.d.ts.map +1 -1
  46. package/dist/hooks/throttled-warning.js +14 -12
  47. package/dist/hooks/throttled-warning.js.map +1 -1
  48. package/dist/hooks/workflow-watcher.d.ts.map +1 -1
  49. package/dist/hooks/workflow-watcher.js +2 -2
  50. package/dist/hooks/workflow-watcher.js.map +1 -1
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +57 -62
  53. package/dist/index.js.map +1 -1
  54. package/dist/install/cli.d.ts.map +1 -1
  55. package/dist/install/cli.js +131 -17
  56. package/dist/install/cli.js.map +1 -1
  57. package/dist/install/copilot-install-helper.d.ts +1 -0
  58. package/dist/install/copilot-install-helper.d.ts.map +1 -1
  59. package/dist/install/copilot-install-helper.js +82 -26
  60. package/dist/install/copilot-install-helper.js.map +1 -1
  61. package/dist/install/credentials.d.ts +23 -0
  62. package/dist/install/credentials.d.ts.map +1 -0
  63. package/dist/install/credentials.js +57 -0
  64. package/dist/install/credentials.js.map +1 -0
  65. package/dist/install/diagnostics.d.ts.map +1 -1
  66. package/dist/install/diagnostics.js +6 -3
  67. package/dist/install/diagnostics.js.map +1 -1
  68. package/dist/install/install-helper.d.ts +9 -0
  69. package/dist/install/install-helper.d.ts.map +1 -1
  70. package/dist/install/install-helper.js +42 -17
  71. package/dist/install/install-helper.js.map +1 -1
  72. package/dist/install/schedule.d.ts.map +1 -1
  73. package/dist/install/schedule.js +4 -1
  74. package/dist/install/schedule.js.map +1 -1
  75. package/dist/install/setup-wizard.d.ts.map +1 -1
  76. package/dist/install/setup-wizard.js +3 -3
  77. package/dist/install/setup-wizard.js.map +1 -1
  78. package/dist/install/target-user.d.ts +33 -0
  79. package/dist/install/target-user.d.ts.map +1 -0
  80. package/dist/install/target-user.js +121 -0
  81. package/dist/install/target-user.js.map +1 -0
  82. package/dist/lib/claude-config-dir.d.ts +3 -0
  83. package/dist/lib/claude-config-dir.d.ts.map +1 -0
  84. package/dist/lib/claude-config-dir.js +10 -0
  85. package/dist/lib/claude-config-dir.js.map +1 -0
  86. package/dist/lib/claude-settings-env.d.ts +18 -0
  87. package/dist/lib/claude-settings-env.d.ts.map +1 -0
  88. package/dist/lib/claude-settings-env.js +78 -0
  89. package/dist/lib/claude-settings-env.js.map +1 -0
  90. package/dist/lib/date.d.ts +7 -0
  91. package/dist/lib/date.d.ts.map +1 -1
  92. package/dist/lib/date.js +11 -1
  93. package/dist/lib/date.js.map +1 -1
  94. package/dist/lib/subagent-transcript-parser.d.ts +2 -0
  95. package/dist/lib/subagent-transcript-parser.d.ts.map +1 -1
  96. package/dist/lib/subagent-transcript-parser.js +5 -0
  97. package/dist/lib/subagent-transcript-parser.js.map +1 -1
  98. package/dist/lib/transcript-types.d.ts +4 -0
  99. package/dist/lib/transcript-types.d.ts.map +1 -1
  100. package/dist/metrics/cost-forecast.d.ts +2 -0
  101. package/dist/metrics/cost-forecast.d.ts.map +1 -1
  102. package/dist/metrics/cost-forecast.js +46 -24
  103. package/dist/metrics/cost-forecast.js.map +1 -1
  104. package/dist/metrics/cost-tracker.d.ts +3 -3
  105. package/dist/metrics/cost-tracker.js +3 -3
  106. package/dist/metrics/efficiency-score.d.ts +2 -2
  107. package/dist/metrics/efficiency-score.js +2 -2
  108. package/dist/metrics/first-save-baselines.d.ts +60 -0
  109. package/dist/metrics/first-save-baselines.d.ts.map +1 -0
  110. package/dist/metrics/first-save-baselines.js +77 -0
  111. package/dist/metrics/first-save-baselines.js.map +1 -0
  112. package/dist/metrics/local-session-aggregator.d.ts +6 -5
  113. package/dist/metrics/local-session-aggregator.d.ts.map +1 -1
  114. package/dist/metrics/local-session-aggregator.js +34 -6
  115. package/dist/metrics/local-session-aggregator.js.map +1 -1
  116. package/dist/metrics/model-pricing.d.ts +1 -1
  117. package/dist/metrics/model-pricing.d.ts.map +1 -1
  118. package/dist/metrics/model-pricing.js +2 -2
  119. package/dist/metrics/model-pricing.js.map +1 -1
  120. package/dist/metrics/model-usage-tracker.d.ts +2 -2
  121. package/dist/metrics/model-usage-tracker.js +2 -2
  122. package/dist/metrics/pricing-init.d.ts.map +1 -1
  123. package/dist/metrics/pricing-init.js +5 -3
  124. package/dist/metrics/pricing-init.js.map +1 -1
  125. package/dist/metrics/pricing-overlay.d.ts.map +1 -1
  126. package/dist/metrics/pricing-overlay.js +1 -4
  127. package/dist/metrics/pricing-overlay.js.map +1 -1
  128. package/dist/metrics/pricing-refresh.d.ts +16 -4
  129. package/dist/metrics/pricing-refresh.d.ts.map +1 -1
  130. package/dist/metrics/pricing-refresh.js +47 -1
  131. package/dist/metrics/pricing-refresh.js.map +1 -1
  132. package/dist/metrics/quality-proxy-tracker.d.ts +2 -2
  133. package/dist/metrics/quality-proxy-tracker.js +2 -2
  134. package/dist/metrics/session-tracker.d.ts +5 -1
  135. package/dist/metrics/session-tracker.d.ts.map +1 -1
  136. package/dist/metrics/session-tracker.js +58 -17
  137. package/dist/metrics/session-tracker.js.map +1 -1
  138. package/dist/metrics/task-detector.d.ts +2 -2
  139. package/dist/metrics/task-detector.js +2 -2
  140. package/dist/metrics/token-usage.d.ts +6 -0
  141. package/dist/metrics/token-usage.d.ts.map +1 -0
  142. package/dist/metrics/token-usage.js +34 -0
  143. package/dist/metrics/token-usage.js.map +1 -0
  144. package/dist/metrics/turn-cost-attributor.d.ts.map +1 -1
  145. package/dist/metrics/turn-cost-attributor.js +3 -0
  146. package/dist/metrics/turn-cost-attributor.js.map +1 -1
  147. package/dist/platforms/copilot-adapter.d.ts.map +1 -1
  148. package/dist/platforms/copilot-adapter.js +3 -0
  149. package/dist/platforms/copilot-adapter.js.map +1 -1
  150. package/dist/platforms/copilot-sdk-adapter.d.ts.map +1 -1
  151. package/dist/platforms/copilot-sdk-adapter.js +3 -0
  152. package/dist/platforms/copilot-sdk-adapter.js.map +1 -1
  153. package/dist/storage/drain-claims.d.ts +82 -0
  154. package/dist/storage/drain-claims.d.ts.map +1 -0
  155. package/dist/storage/drain-claims.js +239 -0
  156. package/dist/storage/drain-claims.js.map +1 -0
  157. package/dist/storage/hook-buffer.d.ts +7 -0
  158. package/dist/storage/hook-buffer.d.ts.map +1 -0
  159. package/dist/storage/hook-buffer.js +132 -0
  160. package/dist/storage/hook-buffer.js.map +1 -0
  161. package/dist/storage/local-store.d.ts +38 -16
  162. package/dist/storage/local-store.d.ts.map +1 -1
  163. package/dist/storage/local-store.js +228 -72
  164. package/dist/storage/local-store.js.map +1 -1
  165. package/dist/storage/retention.d.ts.map +1 -1
  166. package/dist/storage/retention.js +7 -6
  167. package/dist/storage/retention.js.map +1 -1
  168. package/dist/storage/session-store.d.ts +37 -8
  169. package/dist/storage/session-store.d.ts.map +1 -1
  170. package/dist/storage/session-store.js +255 -48
  171. package/dist/storage/session-store.js.map +1 -1
  172. package/dist/storage/types.d.ts +7 -0
  173. package/dist/storage/types.d.ts.map +1 -1
  174. package/dist/storage/types.js +4 -0
  175. package/dist/storage/types.js.map +1 -1
  176. package/dist/tools/cost-tools.d.ts.map +1 -1
  177. package/dist/tools/cost-tools.js +1 -0
  178. package/dist/tools/cost-tools.js.map +1 -1
  179. package/dist/web/assets/{index-U9DPZ-Tb.js → index-CZvLy2Qy.js} +2 -2
  180. package/dist/web/index.html +1 -1
  181. package/package.json +4 -1
@@ -1,4 +1,8 @@
1
- import { localStartOfDay } from '../lib/date.js';
1
+ import { localEndOfDay, localStartOfDay } from '../lib/date.js';
2
+ const MIN_FORECAST_WINDOW_MS = 10 * 60_000;
3
+ const MODERATE_CONFIDENCE_WINDOW_MS = 30 * 60_000;
4
+ const MIN_FORECAST_WINDOW_MIN = MIN_FORECAST_WINDOW_MS / 60_000;
5
+ const MODERATE_CONFIDENCE_WINDOW_MIN = MODERATE_CONFIDENCE_WINDOW_MS / 60_000;
2
6
  /**
3
7
  * Backward-compatible legacy entrypoint. Prefer `buildCostForecastFromInputs`
4
8
  * so the EoD forecast can be anchored to today's spend rather than the full
@@ -19,6 +23,7 @@ export function buildCostForecastFromInputs(inputs, nowMs = Date.now()) {
19
23
  forecastEndOfWeekUsd: null,
20
24
  forecastSessionEndUsd: null,
21
25
  confidenceNote: 'Insufficient data for forecast.',
26
+ heldReason: null,
22
27
  };
23
28
  }
24
29
  // Session running but nothing spent yet — return zero forecasts so callers
@@ -32,54 +37,70 @@ export function buildCostForecastFromInputs(inputs, nowMs = Date.now()) {
32
37
  forecastEndOfWeekUsd: 0,
33
38
  forecastSessionEndUsd: 0,
34
39
  confidenceNote: 'Session running — no spend recorded yet.',
40
+ heldReason: null,
35
41
  };
36
42
  }
37
43
  const sessionRateUsdPerMs = sessionSpentUsd / elapsedMs;
38
- // End-of-day boundary in **local** time, matching the rest of the dashboard
39
- // (lib/date.ts localStartOfDay). Previously this used UTC, which drifted
40
- // a forecast across the day boundary for non-UTC users.
44
+ // Local-time day boundary, matching the dashboard's day bucketing.
41
45
  const dayStartMs = localStartOfDay(nowMs);
42
- const dayEndMs = dayStartMs + 86_400_000;
46
+ const dayEndMs = localEndOfDay(dayStartMs);
43
47
  const msUntilEndOfDay = Math.max(0, dayEndMs - nowMs);
44
- // Daily-anchored EoD/EoW forecast when caller supplies today's spend +
45
- // first-activity-of-day. Both the day and week projections use the same
46
- // effective rate and base so they are internally consistent: the week
47
- // forecast is simply the day forecast extended to the full remaining week.
48
- // Falls back to session rate/base when the daily anchor is absent.
48
+ // Day and week projections share one effective rate and base.
49
+ let effectiveElapsedMs;
49
50
  let effectiveRateUsdPerMs;
50
51
  let effectiveBaseUsd;
52
+ let anchorMissing = false;
51
53
  if (typeof dailySpentUsd === 'number' &&
52
54
  dailySpentUsd >= 0 &&
53
55
  typeof dailyFirstActivityMs === 'number' &&
54
56
  dailyFirstActivityMs > 0) {
55
- const dailyElapsedMs = Math.max(1, nowMs - dailyFirstActivityMs);
56
- effectiveRateUsdPerMs = dailySpentUsd / dailyElapsedMs;
57
+ effectiveElapsedMs = Math.max(1, nowMs - dailyFirstActivityMs);
58
+ effectiveRateUsdPerMs = dailySpentUsd / effectiveElapsedMs;
57
59
  effectiveBaseUsd = dailySpentUsd;
58
60
  }
59
61
  else {
62
+ // Without a daily anchor, only a session that began today has all its
63
+ // spend in today's base. An older session's spend is mostly yesterday's.
64
+ effectiveElapsedMs = elapsedMs;
60
65
  effectiveRateUsdPerMs = sessionRateUsdPerMs;
61
66
  effectiveBaseUsd = sessionSpentUsd;
67
+ anchorMissing = sessionStartMs < dayStartMs;
62
68
  }
63
- const forecastEndOfDayUsd = effectiveBaseUsd + effectiveRateUsdPerMs * msUntilEndOfDay;
64
- // ISO week ends on Sunday. Convert local getDay() (0=Sun…6=Sat) to ISO day (1=Mon…7=Sun)
65
- // then compute remaining days: Sunday → 0 remaining, Monday → 6, …, Saturday → 1.
66
- // Use getDay() (local) not getUTCDay() — the week boundary must match the local EoD boundary.
69
+ const forecastHeld = anchorMissing || effectiveElapsedMs < MIN_FORECAST_WINDOW_MS;
70
+ const heldReason = !forecastHeld
71
+ ? null
72
+ : anchorMissing
73
+ ? 'held: no spend yet today'
74
+ : `held: under ${MIN_FORECAST_WINDOW_MIN} minutes of today's data`;
75
+ const project = (msRemaining) => forecastHeld ? null : effectiveBaseUsd + effectiveRateUsdPerMs * msRemaining;
76
+ const forecastEndOfDayUsd = project(msUntilEndOfDay);
77
+ // Local weekday, so the week boundary matches the local day boundary.
67
78
  const now = new Date(nowMs);
68
79
  const dayOfWeek = now.getDay();
69
80
  const isoDay = dayOfWeek === 0 ? 7 : dayOfWeek;
70
81
  const msUntilEndOfWeek = ((7 - isoDay) % 7) * 86_400_000 + msUntilEndOfDay;
71
- const forecastEndOfWeekUsd = effectiveBaseUsd + effectiveRateUsdPerMs * msUntilEndOfWeek;
82
+ const forecastEndOfWeekUsd = project(msUntilEndOfWeek);
72
83
  // Assumes a full 8-hour workday as the session-end horizon — there's no
73
84
  // real "end of session" signal to anchor this forecast to otherwise.
74
85
  const SESSION_TARGET_MS = 8 * 60 * 60 * 1000;
75
86
  const msUntilSessionEnd = Math.max(0, SESSION_TARGET_MS - elapsedMs);
76
- const forecastSessionEndUsd = sessionSpentUsd + sessionRateUsdPerMs * msUntilSessionEnd;
77
- const elapsedMinutes = elapsedMs / 60_000;
78
- const confidenceNote = elapsedMinutes < 10
79
- ? 'Low confidence — less than 10 minutes of data.'
80
- : elapsedMinutes < 30
81
- ? 'Moderate confidence — based on less than 30 minutes of data.'
82
- : 'Reasonable confidence — based on 30+ minutes of data.';
87
+ const forecastSessionEndUsd = elapsedMs < MIN_FORECAST_WINDOW_MS
88
+ ? null
89
+ : sessionSpentUsd + sessionRateUsdPerMs * msUntilSessionEnd;
90
+ // Grades the window of the number the caller sees: the day/week window while
91
+ // those forecasts are shown, else the session window behind the session-end one.
92
+ const sessionEndShown = forecastSessionEndUsd !== null;
93
+ const gradedWindowMs = forecastHeld ? (sessionEndShown ? elapsedMs : 0) : effectiveElapsedMs;
94
+ let confidenceNote;
95
+ if (gradedWindowMs < MIN_FORECAST_WINDOW_MS) {
96
+ confidenceNote = `Low confidence — less than ${MIN_FORECAST_WINDOW_MIN} minutes of data.`;
97
+ }
98
+ else if (gradedWindowMs < MODERATE_CONFIDENCE_WINDOW_MS) {
99
+ confidenceNote = `Moderate confidence — based on less than ${MODERATE_CONFIDENCE_WINDOW_MIN} minutes of data.`;
100
+ }
101
+ else {
102
+ confidenceNote = `Reasonable confidence — based on ${MODERATE_CONFIDENCE_WINDOW_MIN}+ minutes of data.`;
103
+ }
83
104
  return {
84
105
  elapsedMs,
85
106
  spentUsd: sessionSpentUsd,
@@ -88,6 +109,7 @@ export function buildCostForecastFromInputs(inputs, nowMs = Date.now()) {
88
109
  forecastEndOfWeekUsd,
89
110
  forecastSessionEndUsd,
90
111
  confidenceNote,
112
+ heldReason,
91
113
  };
92
114
  }
93
115
  //# sourceMappingURL=cost-forecast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cost-forecast.js","sourceRoot":"","sources":["../../src/metrics/cost-forecast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost-forecast.js","sourceRoot":"","sources":["../../src/metrics/cost-forecast.ts"],"names":[],"mappings":"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"}
@@ -336,9 +336,9 @@ export declare class CostTracker implements Resettable {
336
336
  /**
337
337
  * Seeds cumulative totals from a previous process's last checkpoint for
338
338
  * this same session. Adds to current state rather than overwriting, so
339
- * callers must invoke this at most once per (re)adopted session id, before
340
- * any real activity for that id has been recorded here — see the call
341
- * sites in `index.ts` for the once-per-id guard.
339
+ * callers must invoke this at most once per (re)adopted session id, with
340
+ * totals this tracker has not already counted — see
341
+ * `rehydrateTrackersIfResumed` in `index.ts`.
342
342
  *
343
343
  * Restart data-loss fix: `ParentTranscriptWatcher`'s transcript-read cursor
344
344
  * is durably persisted across process restarts so a resumed session never
@@ -322,9 +322,9 @@ export class CostTracker {
322
322
  /**
323
323
  * Seeds cumulative totals from a previous process's last checkpoint for
324
324
  * this same session. Adds to current state rather than overwriting, so
325
- * callers must invoke this at most once per (re)adopted session id, before
326
- * any real activity for that id has been recorded here — see the call
327
- * sites in `index.ts` for the once-per-id guard.
325
+ * callers must invoke this at most once per (re)adopted session id, with
326
+ * totals this tracker has not already counted — see
327
+ * `rehydrateTrackersIfResumed` in `index.ts`.
328
328
  *
329
329
  * Restart data-loss fix: `ParentTranscriptWatcher`'s transcript-read cursor
330
330
  * is durably persisted across process restarts so a resumed session never
@@ -106,8 +106,8 @@ export declare class EfficiencyScorer implements Resettable {
106
106
  * reconstructable from a checkpoint, only the average is.
107
107
  *
108
108
  * Adds to current totals rather than overwriting, so callers must invoke
109
- * this at most once per (re)adopted session id, before any real activity
110
- * for that id has reached this tracker.
109
+ * this at most once per (re)adopted session id, with totals this tracker
110
+ * has not already counted — see `rehydrateTrackersIfResumed` in `index.ts`.
111
111
  */
112
112
  seedFromPersisted(seed: EfficiencyScoreSeed): void;
113
113
  /**
@@ -113,8 +113,8 @@ export class EfficiencyScorer {
113
113
  * reconstructable from a checkpoint, only the average is.
114
114
  *
115
115
  * Adds to current totals rather than overwriting, so callers must invoke
116
- * this at most once per (re)adopted session id, before any real activity
117
- * for that id has reached this tracker.
116
+ * this at most once per (re)adopted session id, with totals this tracker
117
+ * has not already counted — see `rehydrateTrackersIfResumed` in `index.ts`.
118
118
  */
119
119
  seedFromPersisted(seed) {
120
120
  if (seed.sampleCount <= 0)
@@ -0,0 +1,60 @@
1
+ import type { FullSessionSummary } from '../storage/session-store.js';
2
+ import type { CostTrackerSeed } from './cost-tracker.js';
3
+ import type { ModelBreakdownEntry } from './model-usage-tracker.js';
4
+ import type { EfficiencyScoreSeed } from './efficiency-score.js';
5
+ import type { QualityProxyRawCounts } from './quality-proxy-tracker.js';
6
+ import type { SessionTrackerSeed } from './session-tracker.js';
7
+ import type { TaskDetectorSeed } from './task-detector.js';
8
+ /** What SessionTracker, QualityProxyTracker, TaskDetector and EfficiencyScorer seed from. */
9
+ export interface ToolCallSeed {
10
+ readonly sessionTracker: SessionTrackerSeed;
11
+ readonly qualityProxy: QualityProxyRawCounts;
12
+ readonly taskDetector: TaskDetectorSeed;
13
+ readonly efficiency: EfficiencyScoreSeed | null;
14
+ }
15
+ export declare function toolCallSeedOf(summary: FullSessionSummary): ToolCallSeed;
16
+ /** What CostTracker, ModelUsageTracker and the budget thresholds seed from. */
17
+ export interface CostSeed {
18
+ readonly costTracker: CostTrackerSeed;
19
+ readonly modelBreakdown: Readonly<Record<string, ModelBreakdownEntry>>;
20
+ /** The prior spend alone, which is all the budget thresholds may be seeded from. */
21
+ readonly estimatedCostUsd: number | null;
22
+ }
23
+ export declare function costSeedOf(summary: FullSessionSummary): CostSeed;
24
+ /** The session file each tracker family seeds from; null seeds nothing. */
25
+ export interface RehydrationSeeds {
26
+ readonly toolCalls: ToolCallSeed | null;
27
+ /** For CostTracker, ModelUsageTracker and the budget thresholds. */
28
+ readonly cost: CostSeed | null;
29
+ }
30
+ /**
31
+ * Seeding adds, so each tracker family of a --stdio engine must seed a
32
+ * session from its file as it stood before this process saved anything that
33
+ * family already counted. The tool-call trackers count every record the
34
+ * process drains, provisional rollups of other sessions included, so their
35
+ * snapshot is taken at the first save of any kind. The cost trackers only
36
+ * price another session's tokens, so theirs is taken at the first save of
37
+ * the process's own summary; until then they seed from the current file,
38
+ * which holds the rollup cost they never counted.
39
+ *
40
+ * Entries stay until their id is rehydrated. A provisional engine keeps one
41
+ * small tool-call record per session it rolls up, next to the full rollup
42
+ * (timeline included) LocalSessionAggregator already keeps for that session
43
+ * for the life of the process. Evicting a record would bring the double
44
+ * count back. Only the cwd-guessed id ever has an own-summary snapshot.
45
+ */
46
+ export declare class FirstSaveBaselines {
47
+ private readonly toolCalls;
48
+ private readonly cost;
49
+ /** `previous` is the file the save merged against, null for a new file. */
50
+ recordSave(save: {
51
+ readonly sessionId: string;
52
+ readonly previous: FullSessionSummary | null;
53
+ readonly ownSession: boolean;
54
+ }): void;
55
+ /** Drops a session id that a correction showed was a wrong guess. */
56
+ forget(sessionId: string): void;
57
+ /** Seeds for `sessionId`, falling back to `loadCurrent()` per family, and forgets it. */
58
+ take(sessionId: string, loadCurrent: () => FullSessionSummary | null): RehydrationSeeds;
59
+ }
60
+ //# sourceMappingURL=first-save-baselines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-save-baselines.d.ts","sourceRoot":"","sources":["../../src/metrics/first-save-baselines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACjD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,YAAY,CAkBxE;AAED,+EAA+E;AAC/E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACvE,oFAAoF;IACpF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,QAAQ,CAMhE;AAED,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IACxC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0C;IACpE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAE3D,2EAA2E;IAC3E,UAAU,CAAC,IAAI,EAAE;QACf,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;QAC7C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;KAC9B,GAAG,IAAI;IASR,qEAAqE;IACrE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK/B,yFAAyF;IACzF,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,GAAG,IAAI,GAAG,gBAAgB;CAexF"}
@@ -0,0 +1,77 @@
1
+ import { buildCostTrackerSeed } from './cost-tracker-seed.js';
2
+ import { buildTaskDetectorSeed } from './task-detector-seed.js';
3
+ export function toolCallSeedOf(summary) {
4
+ const sampleCount = summary.efficiencyScoreSampleCount ?? 0;
5
+ return {
6
+ sessionTracker: {
7
+ toolCallCount: summary.toolCallCount,
8
+ bashCommandCount: summary.bashCommandCount,
9
+ },
10
+ qualityProxy: summary.qualityProxy,
11
+ taskDetector: buildTaskDetectorSeed(summary),
12
+ efficiency: summary.efficiencyScore !== null && summary.efficiencyScoreComponents && sampleCount > 0
13
+ ? {
14
+ score: summary.efficiencyScore,
15
+ components: summary.efficiencyScoreComponents,
16
+ sampleCount,
17
+ }
18
+ : null,
19
+ };
20
+ }
21
+ export function costSeedOf(summary) {
22
+ return {
23
+ costTracker: buildCostTrackerSeed(summary),
24
+ modelBreakdown: summary.modelBreakdown,
25
+ estimatedCostUsd: summary.estimatedCostUsd,
26
+ };
27
+ }
28
+ /**
29
+ * Seeding adds, so each tracker family of a --stdio engine must seed a
30
+ * session from its file as it stood before this process saved anything that
31
+ * family already counted. The tool-call trackers count every record the
32
+ * process drains, provisional rollups of other sessions included, so their
33
+ * snapshot is taken at the first save of any kind. The cost trackers only
34
+ * price another session's tokens, so theirs is taken at the first save of
35
+ * the process's own summary; until then they seed from the current file,
36
+ * which holds the rollup cost they never counted.
37
+ *
38
+ * Entries stay until their id is rehydrated. A provisional engine keeps one
39
+ * small tool-call record per session it rolls up, next to the full rollup
40
+ * (timeline included) LocalSessionAggregator already keeps for that session
41
+ * for the life of the process. Evicting a record would bring the double
42
+ * count back. Only the cwd-guessed id ever has an own-summary snapshot.
43
+ */
44
+ export class FirstSaveBaselines {
45
+ toolCalls = new Map();
46
+ cost = new Map();
47
+ /** `previous` is the file the save merged against, null for a new file. */
48
+ recordSave(save) {
49
+ const { sessionId, previous, ownSession } = save;
50
+ if (!this.toolCalls.has(sessionId)) {
51
+ this.toolCalls.set(sessionId, previous && toolCallSeedOf(previous));
52
+ }
53
+ if (ownSession && !this.cost.has(sessionId))
54
+ this.cost.set(sessionId, previous && costSeedOf(previous));
55
+ }
56
+ /** Drops a session id that a correction showed was a wrong guess. */
57
+ forget(sessionId) {
58
+ this.toolCalls.delete(sessionId);
59
+ this.cost.delete(sessionId);
60
+ }
61
+ /** Seeds for `sessionId`, falling back to `loadCurrent()` per family, and forgets it. */
62
+ take(sessionId, loadCurrent) {
63
+ const current = this.toolCalls.has(sessionId) && this.cost.has(sessionId) ? null : loadCurrent();
64
+ const seeds = {
65
+ toolCalls: this.toolCalls.has(sessionId)
66
+ ? (this.toolCalls.get(sessionId) ?? null)
67
+ : current && toolCallSeedOf(current),
68
+ cost: this.cost.has(sessionId)
69
+ ? (this.cost.get(sessionId) ?? null)
70
+ : current && costSeedOf(current),
71
+ };
72
+ this.toolCalls.delete(sessionId);
73
+ this.cost.delete(sessionId);
74
+ return seeds;
75
+ }
76
+ }
77
+ //# sourceMappingURL=first-save-baselines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-save-baselines.js","sourceRoot":"","sources":["../../src/metrics/first-save-baselines.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@
20
20
  * everything it needs to persist real sessions itself. This module keeps a
21
21
  * lightweight per-session rollup so it can do exactly that.
22
22
  */
23
- import type { ReplayTimelineEntry, ToolCallRecord } from '../storage/types.js';
23
+ import { type ReplayTimelineEntry, type ToolCallRecord } from '../storage/types.js';
24
24
  import { type FullSessionSummary } from '../storage/session-store.js';
25
25
  import type { EstimatedModelUsage, UnpricedModelUsage } from './cost-tracker.js';
26
26
  import { QualityProxyTracker } from './quality-proxy-tracker.js';
@@ -173,6 +173,7 @@ export declare class LocalSessionAggregator {
173
173
  constructor(options?: LocalSessionAggregatorOptions);
174
174
  private static isReal;
175
175
  private ensure;
176
+ amendToolCall(record: ToolCallRecord): void;
176
177
  recordToolCall(record: {
177
178
  sessionId?: string | null;
178
179
  toolName?: string;
@@ -224,12 +225,12 @@ export declare class LocalSessionAggregator {
224
225
  size(): number;
225
226
  /**
226
227
  * Session summaries ready for `SessionStore.saveSession()`. Only sessions
227
- * with attributable activity are returned (see `hasAttributableActivity`) —
228
- * a rollup with neither tool calls nor subagent spend would be filtered out
229
- * of `/api/sessions` anyway, and writing it would burn a file that the
228
+ * with recorded usage (see `hasRecordedUsage`) are returned. A rollup with
229
+ * none is an idle process, and writing it would burn a file that the
230
230
  * empty-summary guard then has to defend. A subagent-only rollup (dead
231
231
  * parent, tail still being read) DOES qualify: it has real dollars even
232
- * though its parent timeline and toolCallCount are both zero.
232
+ * though its parent timeline and toolCallCount are both zero. So does a
233
+ * chat-only rollup, with no tool calls but real cost or tokens.
233
234
  */
234
235
  toSummaries(context: {
235
236
  developer: string;
@@ -1 +1 @@
1
- {"version":3,"file":"local-session-aggregator.d.ts","sourceRoot":"","sources":["../../src/metrics/local-session-aggregator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAA0B,MAAM,4BAA4B,CAAC;AAiBzF,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,kBAAkB,EAClB,kBAAkB,GAAG,iBAAiB,GAAG,cAAc,GAAG,sBAAsB,CACjF,CAAC;AAEF,UAAU,WAAW;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,6BAA6B;IAC5C;;;;;;;OAOG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,qBAAqB,GAAG,IAAI,CAAC;CACtF;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,uEAAuE;IACvE,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,2EAA2E;IAC3E,OAAO,EAAE,mBAAmB,CAAC;IAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB;;6EAEyE;IACzE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,+DAA+D;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,iFAAiF;IACjF,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,eAAe,EAAE,WAAW,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACjD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACnD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;4EAGwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;8EAE0E;IAC1E,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAQD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAM/D;AAED,mCAAmC;AACnC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAgED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7B,MAAM,GAAG,IAAI,CAef;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;IAE1D,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAkBtD,4EAA4E;IAC5E,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;CAapD;AAED;;;;;GAKG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyC;IAClE,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyD;gBAEnF,OAAO,GAAE,6BAAkC;IAIvD,OAAO,CAAC,MAAM,CAAC,MAAM;IASrB,OAAO,CAAC,MAAM;IAuCd,cAAc,CAAC,MAAM,EAAE;QACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,GAAG,IAAI;IAqER,gBAAgB,CACd,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,KAAK,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB;;;;;WAKG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,IAAI;IAkEP;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAsB9B,6DAA6D;IAC7D,IAAI,IAAI,MAAM,EAAE;IAQhB,IAAI,IAAI,MAAM;IAId;;;;;;;;OAQG;IACH,WAAW,CAAC,OAAO,EAAE;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,gBAAgB,CAAC;QAC/B,mBAAmB,EAAE,mBAAmB,CAAC;KAC1C,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAoFnC;AAYD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB;;gEAE4D;IAC5D,IAAI,EAAE,MAAM,CAAC;CACd;AAqCD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,eAAe,EAAE,CAqDnB;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW7D"}
1
+ {"version":3,"file":"local-session-aggregator.d.ts","sourceRoot":"","sources":["../../src/metrics/local-session-aggregator.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,8 @@
23
23
  import { spawnSync } from 'node:child_process';
24
24
  import { localDateKey } from '../lib/date.js';
25
25
  import { commitUrlFromRemote, repoNameFromRemote } from '../lib/git-remote.js';
26
- import { hasAttributableActivity } from '../storage/session-store.js';
26
+ import { amendRecord } from '../storage/types.js';
27
+ import { hasRecordedUsage } from '../storage/session-store.js';
27
28
  import { addCallUsage } from './call-usage.js';
28
29
  import { resolvePricingDetail } from './pricing-overlay.js';
29
30
  import { QualityProxyTracker } from './quality-proxy-tracker.js';
@@ -261,6 +262,26 @@ export class LocalSessionAggregator {
261
262
  rollup.endTime = timestamp;
262
263
  return rollup;
263
264
  }
265
+ amendToolCall(record) {
266
+ const rollup = record.sessionId ? this.sessions.get(record.sessionId) : undefined;
267
+ if (!rollup)
268
+ return;
269
+ const index = rollup.records.findIndex((r) => r.id === record.id);
270
+ const previous = rollup.records[index];
271
+ const entry = rollup.timeline[index];
272
+ if (previous?.success !== false || !entry)
273
+ return;
274
+ if (record.success)
275
+ rollup.successCount += 1;
276
+ rollup.records[index] = amendRecord(previous, record);
277
+ const { errorType: _replaced, ...rest } = entry;
278
+ rollup.timeline[index] = {
279
+ ...rest,
280
+ durationMs: record.durationMs,
281
+ success: record.success,
282
+ ...(record.errorType !== undefined && { errorType: record.errorType }),
283
+ };
284
+ }
264
285
  recordToolCall(record) {
265
286
  if (!LocalSessionAggregator.isReal(record.sessionId))
266
287
  return;
@@ -436,17 +457,24 @@ export class LocalSessionAggregator {
436
457
  }
437
458
  /**
438
459
  * Session summaries ready for `SessionStore.saveSession()`. Only sessions
439
- * with attributable activity are returned (see `hasAttributableActivity`) —
440
- * a rollup with neither tool calls nor subagent spend would be filtered out
441
- * of `/api/sessions` anyway, and writing it would burn a file that the
460
+ * with recorded usage (see `hasRecordedUsage`) are returned. A rollup with
461
+ * none is an idle process, and writing it would burn a file that the
442
462
  * empty-summary guard then has to defend. A subagent-only rollup (dead
443
463
  * parent, tail still being read) DOES qualify: it has real dollars even
444
- * though its parent timeline and toolCallCount are both zero.
464
+ * though its parent timeline and toolCallCount are both zero. So does a
465
+ * chat-only rollup, with no tool calls but real cost or tokens.
445
466
  */
446
467
  toSummaries(context) {
447
468
  const out = [];
448
469
  for (const rollup of this.sessions.values()) {
449
- if (!hasAttributableActivity(rollup))
470
+ if (!hasRecordedUsage({
471
+ toolCallCount: rollup.toolCallCount,
472
+ subagentCostUsd: rollup.subagentCostUsd,
473
+ timeline: rollup.timeline,
474
+ estimatedCostUsd: rollup.costUsd,
475
+ tokensInput: rollup.tokensInput,
476
+ tokensOutput: rollup.tokensOutput,
477
+ }))
450
478
  continue;
451
479
  const models = [...rollup.models];
452
480
  rollup.lastEmittedCost = {
@@ -1 +1 @@
1
- {"version":3,"file":"local-session-aggregator.js","sourceRoot":"","sources":["../../src/metrics/local-session-aggregator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-session-aggregator.js","sourceRoot":"","sources":["../../src/metrics/local-session-aggregator.ts"],"names":[],"mappings":"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"}
@@ -27,5 +27,5 @@ export declare function stripTrailingTags(id: string): string;
27
27
  * null for non-Claude ids, unknown families, and ties between differently
28
28
  * priced ids, because a wrong price is worse than a visible $0.
29
29
  */
30
- export declare function estimateFromFamily(model: string, candidateIds: readonly string[], priceOf?: (id: string) => unknown): string | null;
30
+ export declare function estimateFromFamily(model: string, candidateIds: readonly string[], priceOf: (id: string) => unknown): string | null;
31
31
  //# sourceMappingURL=model-pricing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../src/metrics/model-pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GACzF;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAIlC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMpD;AAmBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,OAAO,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAyC,GACjE,MAAM,GAAG,IAAI,CAsCf"}
1
+ {"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../src/metrics/model-pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GACzF;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAIlC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMpD;AAmBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAC/B,MAAM,GAAG,IAAI,CAsCf"}
@@ -1,4 +1,4 @@
1
- import { createLogger, resolveModelPricing } from '../shared/index.js';
1
+ import { createLogger } from '../shared/index.js';
2
2
  const logger = createLogger('model-pricing');
3
3
  const CLAUDE_ID_RE = /^claude-([a-z]+)-(\d+)(?:-(\d{1,2}))?(?:-\d{8})?$/;
4
4
  /**
@@ -35,7 +35,7 @@ const DATED_SUFFIX_RE = /-\d{8}$/;
35
35
  * null for non-Claude ids, unknown families, and ties between differently
36
36
  * priced ids, because a wrong price is worse than a visible $0.
37
37
  */
38
- export function estimateFromFamily(model, candidateIds, priceOf = (id) => resolveModelPricing(id)) {
38
+ export function estimateFromFamily(model, candidateIds, priceOf) {
39
39
  // Only the target is reduced from its Bedrock spelling: the table's own
40
40
  // Bedrock twins are priced separately and must not pool with the bare ids.
41
41
  const target = parseClaudeId(model.replace(BEDROCK_PREFIX_RE, '').replace(BEDROCK_VERSION_RE, ''));