@newrelic/preflight 1.29.0 → 1.31.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 (36) hide show
  1. package/dist/hooks/collector-script.d.ts.map +1 -1
  2. package/dist/hooks/collector-script.js +50 -0
  3. package/dist/hooks/collector-script.js.map +1 -1
  4. package/dist/hooks/event-processor.d.ts +32 -0
  5. package/dist/hooks/event-processor.d.ts.map +1 -1
  6. package/dist/hooks/event-processor.js +63 -0
  7. package/dist/hooks/event-processor.js.map +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +34 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/install/install-helper.d.ts +6 -3
  12. package/dist/install/install-helper.d.ts.map +1 -1
  13. package/dist/install/install-helper.js +70 -8
  14. package/dist/install/install-helper.js.map +1 -1
  15. package/dist/metrics/session-resume-tracker.d.ts +42 -0
  16. package/dist/metrics/session-resume-tracker.d.ts.map +1 -0
  17. package/dist/metrics/session-resume-tracker.js +30 -0
  18. package/dist/metrics/session-resume-tracker.js.map +1 -0
  19. package/dist/metrics/task-detector.d.ts +18 -1
  20. package/dist/metrics/task-detector.d.ts.map +1 -1
  21. package/dist/metrics/task-detector.js +40 -1
  22. package/dist/metrics/task-detector.js.map +1 -1
  23. package/dist/metrics/turn-tracker.d.ts +18 -0
  24. package/dist/metrics/turn-tracker.d.ts.map +1 -1
  25. package/dist/metrics/turn-tracker.js +25 -0
  26. package/dist/metrics/turn-tracker.js.map +1 -1
  27. package/dist/storage/types.d.ts +45 -3
  28. package/dist/storage/types.d.ts.map +1 -1
  29. package/dist/tools/cost-tools.d.ts +3 -1
  30. package/dist/tools/cost-tools.d.ts.map +1 -1
  31. package/dist/tools/cost-tools.js +11 -4
  32. package/dist/tools/cost-tools.js.map +1 -1
  33. package/dist/tools/session-stats.d.ts +2 -0
  34. package/dist/tools/session-stats.d.ts.map +1 -1
  35. package/dist/tools/session-stats.js.map +1 -1
  36. package/package.json +1 -1
@@ -41,11 +41,14 @@ const HOOK_SUBCOMMANDS = {
41
41
  * uninstaller and diagnostics recognizing it.
42
42
  */
43
43
  export const HOOK_SUBCOMMAND_PATTERN = Object.values(HOOK_SUBCOMMANDS).join('|');
44
- // InstructionsLoaded and PostModelSwitch are deliberately kept out of
45
- // HOOK_SUBCOMMANDS/HOOK_EVENT_TYPES (see the areHooksInstalled comment below)
46
- // but still need to be recognized here.
44
+ // InstructionsLoaded, PostModelSwitch, SessionStart, UserPromptSubmit, and
45
+ // Stop are deliberately kept out of HOOK_SUBCOMMANDS/HOOK_EVENT_TYPES (see
46
+ // the areHooksInstalled comment below) but still need to be recognized here.
47
47
  const INSTRUCTIONS_LOADED_SUBCOMMAND = 'instructions-loaded';
48
48
  const MODEL_SWITCH_SUBCOMMAND = 'model-switch';
49
+ const SESSION_START_SUBCOMMAND = 'session-start';
50
+ const USER_PROMPT_SUBMIT_SUBCOMMAND = 'user-prompt-submit';
51
+ const STOP_SUBCOMMAND = 'stop';
49
52
  // Matches the hook commands this installer writes, in both bare-name and
50
53
  // absolute-path forms (quoted or unquoted):
51
54
  // preflight-collector pre-tool
@@ -53,7 +56,10 @@ const MODEL_SWITCH_SUBCOMMAND = 'model-switch';
53
56
  // "/quoted/path/preflight-collector" post-tool
54
57
  // preflight-collector instructions-loaded
55
58
  // preflight-collector model-switch
56
- export const NR_HOOK_RE = new RegExp(`preflight-collector"?\\s+(?:${HOOK_SUBCOMMAND_PATTERN}|${INSTRUCTIONS_LOADED_SUBCOMMAND}|${MODEL_SWITCH_SUBCOMMAND})`);
59
+ // preflight-collector session-start
60
+ // preflight-collector user-prompt-submit
61
+ // preflight-collector stop
62
+ export const NR_HOOK_RE = new RegExp(`preflight-collector"?\\s+(?:${HOOK_SUBCOMMAND_PATTERN}|${INSTRUCTIONS_LOADED_SUBCOMMAND}|${MODEL_SWITCH_SUBCOMMAND}|${SESSION_START_SUBCOMMAND}|${USER_PROMPT_SUBMIT_SUBCOMMAND}|${STOP_SUBCOMMAND})`);
57
63
  // ---------------------------------------------------------------------------
58
64
  // Generators
59
65
  // ---------------------------------------------------------------------------
@@ -116,6 +122,49 @@ export function generateHookEntries(binPath, options) {
116
122
  ],
117
123
  },
118
124
  ],
125
+ // SessionStart fires on every session (startup/resume/clear/compact/fork)
126
+ // — this collector only acts on the resume-cost fields, present for a
127
+ // subset of those; every other case is a fast no-op.
128
+ SessionStart: [
129
+ {
130
+ matcher: HOOK_MATCHER,
131
+ hooks: [
132
+ {
133
+ type: 'command',
134
+ command: `${collectorInvocation} ${SESSION_START_SUBCOMMAND}`,
135
+ },
136
+ ],
137
+ },
138
+ ],
139
+ // UserPromptSubmit/Stop are corroborating precise turn/task-boundary
140
+ // signals for TurnTracker/TaskDetector's existing idle-gap heuristics —
141
+ // neither replaces the heuristic (Stop doesn't fire on a user
142
+ // interrupt), so both stay wired regardless. Purely observational: this
143
+ // collector never returns a JSON decision, even though both hooks
144
+ // support one (UserPromptSubmit can block/modify a prompt, Stop can
145
+ // block Claude from stopping).
146
+ UserPromptSubmit: [
147
+ {
148
+ matcher: HOOK_MATCHER,
149
+ hooks: [
150
+ {
151
+ type: 'command',
152
+ command: `${collectorInvocation} ${USER_PROMPT_SUBMIT_SUBCOMMAND}`,
153
+ },
154
+ ],
155
+ },
156
+ ],
157
+ Stop: [
158
+ {
159
+ matcher: HOOK_MATCHER,
160
+ hooks: [
161
+ {
162
+ type: 'command',
163
+ command: `${collectorInvocation} ${STOP_SUBCOMMAND}`,
164
+ },
165
+ ],
166
+ },
167
+ ],
119
168
  };
120
169
  }
121
170
  export function generateMcpServerEntry(binPath, options) {
@@ -208,9 +257,9 @@ function filterNrObserveEntries(entries) {
208
257
  * this re-run their merge and add the missing permission hooks.
209
258
  * Pure — no file I/O.
210
259
  *
211
- * Deliberately does NOT check StopFailure, InstructionsLoaded, or
212
- * PostModelSwitch: broadening
213
- * what counts as "hooks installed" would change behavior for existing users,
260
+ * Deliberately does NOT check StopFailure, InstructionsLoaded,
261
+ * PostModelSwitch, SessionStart, UserPromptSubmit, or Stop: broadening what
262
+ * counts as "hooks installed" would change behavior for existing users,
214
263
  * which is a scope cut for this PR, not an oversight — don't "fix" this
215
264
  * without re-reading why.
216
265
  */
@@ -252,6 +301,9 @@ const HooksFieldSchema = z
252
301
  StopFailure: z.array(z.unknown()).optional(),
253
302
  InstructionsLoaded: z.array(z.unknown()).optional(),
254
303
  PostModelSwitch: z.array(z.unknown()).optional(),
304
+ SessionStart: z.array(z.unknown()).optional(),
305
+ UserPromptSubmit: z.array(z.unknown()).optional(),
306
+ Stop: z.array(z.unknown()).optional(),
255
307
  })
256
308
  .passthrough();
257
309
  const SettingsSchema = z.object({ hooks: HooksFieldSchema.optional() }).passthrough();
@@ -277,7 +329,14 @@ export function mergeSettings(existing, binPath, options) {
277
329
  const hooks = typeof result.hooks === 'object' && result.hooks !== null
278
330
  ? { ...result.hooks }
279
331
  : {};
280
- for (const hookType of [...HOOK_EVENT_TYPES, 'InstructionsLoaded', 'PostModelSwitch']) {
332
+ for (const hookType of [
333
+ ...HOOK_EVENT_TYPES,
334
+ 'InstructionsLoaded',
335
+ 'PostModelSwitch',
336
+ 'SessionStart',
337
+ 'UserPromptSubmit',
338
+ 'Stop',
339
+ ]) {
281
340
  const existingArr = Array.isArray(hooks[hookType]) ? [...hooks[hookType]] : [];
282
341
  if (binPath !== null && binPath !== undefined) {
283
342
  // Resolved path available: remove stale entry and re-add with the current
@@ -343,6 +402,9 @@ export function removeSettings(existing) {
343
402
  ...HOOK_EVENT_TYPES,
344
403
  'InstructionsLoaded',
345
404
  'PostModelSwitch',
405
+ 'SessionStart',
406
+ 'UserPromptSubmit',
407
+ 'Stop',
346
408
  ]) {
347
409
  if (Array.isArray(hooks[hookType])) {
348
410
  const filtered = filterNrObserveEntries(hooks[hookType]);
@@ -1 +1 @@
1
- {"version":3,"file":"install-helper.js","sourceRoot":"","sources":["../../src/install/install-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-helper.js","sourceRoot":"","sources":["../../src/install/install-helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Session Resume Cost Tracking — records what Claude Code's own SessionStart
3
+ * hook reported about resuming a stale conversation: how long it had been
4
+ * since the last response, and Claude Code's own estimate of what re-caching
5
+ * the conversation will cost. Feeds CostForecastTracker's forecast tool so a
6
+ * resume-driven cost spike has an explanation attached instead of showing up
7
+ * as an unexplained cache-hit dip after the fact.
8
+ *
9
+ * Only ever fed for `source: 'resume'`/`'fork'` SessionStart events that
10
+ * carry the resume-cost fields — a plain 'startup'/'clear'/'compact' start
11
+ * has nothing to report, and `recordResume()` is simply never called for
12
+ * those (see the `onSessionStart` callback wiring in index.ts).
13
+ */
14
+ import type { Resettable } from './tracker-contracts.js';
15
+ export interface SessionResumeEvent {
16
+ readonly timestamp: number;
17
+ readonly secondsSinceLastResponse: number;
18
+ readonly contextTokens: number;
19
+ readonly promptCacheLikelyExpired: boolean;
20
+ readonly estimatedCacheWriteUsd: number;
21
+ }
22
+ export interface SessionResumeMetrics {
23
+ readonly resumeCount: number;
24
+ /** Sum of estimatedCacheWriteUsd across every resume this tracker has seen. */
25
+ readonly totalEstimatedCacheWriteUsd: number;
26
+ readonly lastResume: SessionResumeEvent | null;
27
+ }
28
+ export declare class SessionResumeTracker implements Resettable {
29
+ private resumeCount;
30
+ private totalEstimatedCacheWriteUsd;
31
+ private lastResume;
32
+ recordResume(event: {
33
+ secondsSinceLastResponse: number;
34
+ contextTokens: number;
35
+ promptCacheLikelyExpired: boolean;
36
+ estimatedCacheWriteUsd: number;
37
+ timestampMs?: number;
38
+ }): void;
39
+ getMetrics(): SessionResumeMetrics;
40
+ reset(_sessionId: string): void;
41
+ }
42
+ //# sourceMappingURL=session-resume-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-resume-tracker.d.ts","sourceRoot":"","sources":["../../src/metrics/session-resume-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAChD;AAED,qBAAa,oBAAqB,YAAW,UAAU;IACrD,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,2BAA2B,CAAK;IACxC,OAAO,CAAC,UAAU,CAAmC;IAErD,YAAY,CAAC,KAAK,EAAE;QAClB,wBAAwB,EAAE,MAAM,CAAC;QACjC,aAAa,EAAE,MAAM,CAAC;QACtB,wBAAwB,EAAE,OAAO,CAAC;QAClC,sBAAsB,EAAE,MAAM,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI;IAaR,UAAU,IAAI,oBAAoB;IAQlC,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAKhC"}
@@ -0,0 +1,30 @@
1
+ export class SessionResumeTracker {
2
+ resumeCount = 0;
3
+ totalEstimatedCacheWriteUsd = 0;
4
+ lastResume = null;
5
+ recordResume(event) {
6
+ const resume = {
7
+ timestamp: event.timestampMs ?? Date.now(),
8
+ secondsSinceLastResponse: event.secondsSinceLastResponse,
9
+ contextTokens: event.contextTokens,
10
+ promptCacheLikelyExpired: event.promptCacheLikelyExpired,
11
+ estimatedCacheWriteUsd: event.estimatedCacheWriteUsd,
12
+ };
13
+ this.resumeCount++;
14
+ this.totalEstimatedCacheWriteUsd += event.estimatedCacheWriteUsd;
15
+ this.lastResume = resume;
16
+ }
17
+ getMetrics() {
18
+ return {
19
+ resumeCount: this.resumeCount,
20
+ totalEstimatedCacheWriteUsd: this.totalEstimatedCacheWriteUsd,
21
+ lastResume: this.lastResume,
22
+ };
23
+ }
24
+ reset(_sessionId) {
25
+ this.resumeCount = 0;
26
+ this.totalEstimatedCacheWriteUsd = 0;
27
+ this.lastResume = null;
28
+ }
29
+ }
30
+ //# sourceMappingURL=session-resume-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-resume-tracker.js","sourceRoot":"","sources":["../../src/metrics/session-resume-tracker.ts"],"names":[],"mappings":"AA8BA,MAAM,OAAO,oBAAoB;IACvB,WAAW,GAAG,CAAC,CAAC;IAChB,2BAA2B,GAAG,CAAC,CAAC;IAChC,UAAU,GAA8B,IAAI,CAAC;IAErD,YAAY,CAAC,KAMZ;QACC,MAAM,MAAM,GAAuB;YACjC,SAAS,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE;YAC1C,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;YACxD,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;YACxD,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;SACrD,CAAC;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,2BAA2B,IAAI,KAAK,CAAC,sBAAsB,CAAC;QACjE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;YAC7D,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAkB;QACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;CACF"}
@@ -136,9 +136,26 @@ export declare class TaskDetector implements Resettable {
136
136
  * universal task-boundary signal any platform's calling agent can invoke
137
137
  * via `nr_observe_mark_task_boundary` — the only boundary signal available
138
138
  * on platforms that have no equivalent to Claude Code's
139
- * `AskUserQuestion`/`TaskUpdate` tools.
139
+ * `AskUserQuestion`/`TaskUpdate` tools. On Claude Code itself, this is
140
+ * also called from its native `Stop` hook (see the `onStop` wiring in
141
+ * index.ts) — Stop fires once the main agent finishes responding, a more
142
+ * precise "this task is over" signal than waiting for `idleTimeoutMs` of
143
+ * silence, though it doesn't fire on a user interrupt, so the idle timer
144
+ * stays as a fallback for that case. Returns `null` (nothing recorded)
145
+ * when the active task never received a tool call — see the
146
+ * toolCallCount === 0 branch in `closeCurrentTask()`.
140
147
  */
141
148
  markBoundary(timestamp: number): AiCodingTask | null;
149
+ /**
150
+ * Starts a new task at `timestamp` if none is currently active — a no-op
151
+ * otherwise, so it's always safe to call even if a task is already open.
152
+ * Wired to Claude Code's `UserPromptSubmit` hook (see index.ts) so a
153
+ * task's `startTime` reflects the moment the user actually submitted
154
+ * their instruction, not the timestamp of whatever tool call Claude
155
+ * happens to make first — which could be several seconds later, and
156
+ * would otherwise understate the task's true duration by that much.
157
+ */
158
+ startTaskIfNone(timestamp: number): void;
142
159
  /**
143
160
  * Seeds cumulative file/line/test/build/agent-spawn totals (plus the
144
161
  * lifetime completed-task count) from a previous process's last
@@ -1 +1 @@
1
- {"version":3,"file":"task-detector.d.ts","sourceRoot":"","sources":["../../src/metrics/task-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-detector.d.ts","sourceRoot":"","sources":["../../src/metrics/task-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC;IACxC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,eAAe,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACpD;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAkID,qBAAa,YAAa,YAAW,UAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAE3C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,SAAS,CAA8C;IAK/D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,iBAAiB,CAAK;IAG9B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAAK;gBAElB,OAAO,CAAC,EAAE,mBAAmB;IAMzC,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IA2B5C,cAAc,IAAI,YAAY,GAAG,IAAI;IAQrC,iBAAiB,IAAI,YAAY,EAAE;IAInC;;;OAGG;IACH,wBAAwB,IAAI,YAAY,EAAE;IAM1C,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIpD;;;;;;;;OAQG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMxC;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAwB/C,UAAU,IAAI,WAAW;IAiDzB,WAAW,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAa/C,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAmB/B,OAAO,IAAI,IAAI;IAWf,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,gBAAgB;IA4CxB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,cAAc;CAMvB"}
@@ -205,11 +205,32 @@ export class TaskDetector {
205
205
  * universal task-boundary signal any platform's calling agent can invoke
206
206
  * via `nr_observe_mark_task_boundary` — the only boundary signal available
207
207
  * on platforms that have no equivalent to Claude Code's
208
- * `AskUserQuestion`/`TaskUpdate` tools.
208
+ * `AskUserQuestion`/`TaskUpdate` tools. On Claude Code itself, this is
209
+ * also called from its native `Stop` hook (see the `onStop` wiring in
210
+ * index.ts) — Stop fires once the main agent finishes responding, a more
211
+ * precise "this task is over" signal than waiting for `idleTimeoutMs` of
212
+ * silence, though it doesn't fire on a user interrupt, so the idle timer
213
+ * stays as a fallback for that case. Returns `null` (nothing recorded)
214
+ * when the active task never received a tool call — see the
215
+ * toolCallCount === 0 branch in `closeCurrentTask()`.
209
216
  */
210
217
  markBoundary(timestamp) {
211
218
  return this.closeCurrentTask(timestamp);
212
219
  }
220
+ /**
221
+ * Starts a new task at `timestamp` if none is currently active — a no-op
222
+ * otherwise, so it's always safe to call even if a task is already open.
223
+ * Wired to Claude Code's `UserPromptSubmit` hook (see index.ts) so a
224
+ * task's `startTime` reflects the moment the user actually submitted
225
+ * their instruction, not the timestamp of whatever tool call Claude
226
+ * happens to make first — which could be several seconds later, and
227
+ * would otherwise understate the task's true duration by that much.
228
+ */
229
+ startTaskIfNone(timestamp) {
230
+ if (this.activeTask === null) {
231
+ this.startNewTask(timestamp);
232
+ }
233
+ }
213
234
  /**
214
235
  * Seeds cumulative file/line/test/build/agent-spawn totals (plus the
215
236
  * lifetime completed-task count) from a previous process's last
@@ -333,6 +354,24 @@ export class TaskDetector {
333
354
  closeCurrentTask(endTime) {
334
355
  if (this.activeTask === null)
335
356
  return null;
357
+ if (this.activeTask.toolCallCount === 0) {
358
+ // A boundary fired (Stop/AskUserQuestion/markBoundary) before this
359
+ // task ever received a tool call — e.g. `startTaskIfNone` opened it
360
+ // on UserPromptSubmit for a purely conversational turn. Per this
361
+ // tracker's own definition of a task ("the user gives an instruction,
362
+ // Claude executes a series of tool calls, and eventually responds"),
363
+ // that's not a task — drop it rather than recording a zero-tool-call
364
+ // completion that would inflate totalTasksCompleted and dilute
365
+ // averageToolCallsPerTask/averageTaskDurationMs. Deliberately does
366
+ // NOT call computeCostDelta()/reset the cost baseline: any cost
367
+ // incurred during this turn simply carries forward and gets swept
368
+ // into the next task's delta when snapshotCostState() re-snapshots
369
+ // at that task's start — the same behavior as before UserPromptSubmit
370
+ // was wired to startTaskIfNone.
371
+ this.activeTask = null;
372
+ this.clearIdleTimer();
373
+ return null;
374
+ }
336
375
  const { costUsd, tokens } = this.computeCostDelta();
337
376
  const completed = this.activeTask.toCompleted(endTime, costUsd, tokens);
338
377
  this.completedTasks.push(completed);
@@ -1 +1 @@
1
- {"version":3,"file":"task-detector.js","sourceRoot":"","sources":["../../src/metrics/task-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-detector.js","sourceRoot":"","sources":["../../src/metrics/task-detector.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,24 @@ export declare class TurnTracker implements Resettable {
39
39
  getMetrics(): TurnMetrics;
40
40
  getCurrentTurnId(): string;
41
41
  getCurrentTurnNumber(): number;
42
+ /**
43
+ * Finalizes the current open turn using an externally-supplied end
44
+ * timestamp — Claude Code's Stop hook — instead of waiting for the next
45
+ * tool call to arrive more than `gapThresholdMs` late. Fixes two
46
+ * heuristic failure modes at once: two genuinely separate turns that
47
+ * happen to follow each other quickly getting merged (Stop closes the
48
+ * first before the second's tool calls ever have a chance to look like
49
+ * a gap), and a turn's recorded end lagging its last tool call by
50
+ * however long Claude spent generating its final response after that
51
+ * call (this only ever extends `currentTurnEnd`, never shrinks it, so a
52
+ * late/clock-skewed Stop timestamp can't make a turn look shorter than
53
+ * its own last tool call).
54
+ *
55
+ * No-op when no turn is currently open — a tool-call-free conversational
56
+ * turn, or a Stop that doesn't correspond to any pending tool calls, is
57
+ * safe to ignore here.
58
+ */
59
+ finalizeTurnAt(stopTimestampMs: number): void;
42
60
  reset(_sessionId: string): void;
43
61
  private cachedTurnId;
44
62
  private buildTurnId;
@@ -1 +1 @@
1
- {"version":3,"file":"turn-tracker.d.ts","sourceRoot":"","sources":["../../src/metrics/turn-tracker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnD;AAoBD,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,WAAY,YAAW,UAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,cAAc,CAAK;gBAEf,OAAO,CAAC,EAAE,kBAAkB;IAIxC,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IA0B9C,UAAU,IAAI,WAAW;IA2CzB,gBAAgB,IAAI,MAAM;IAU1B,oBAAoB,IAAI,MAAM;IAK9B,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ/B,OAAO,CAAC,YAAY,CAAuB;IAE3C,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;IAsCpB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,kBAAkB;CAwB3B"}
1
+ {"version":3,"file":"turn-tracker.d.ts","sourceRoot":"","sources":["../../src/metrics/turn-tracker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnD;AAoBD,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,WAAY,YAAW,UAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,cAAc,CAAK;gBAEf,OAAO,CAAC,EAAE,kBAAkB;IAIxC,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IA0B9C,UAAU,IAAI,WAAW;IA2CzB,gBAAgB,IAAI,MAAM;IAU1B,oBAAoB,IAAI,MAAM;IAK9B;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAQ7C,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ/B,OAAO,CAAC,YAAY,CAAuB;IAE3C,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;IAsCpB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,kBAAkB;CAwB3B"}
@@ -89,6 +89,31 @@ export class TurnTracker {
89
89
  return 0;
90
90
  return this.turnCounter + 1;
91
91
  }
92
+ /**
93
+ * Finalizes the current open turn using an externally-supplied end
94
+ * timestamp — Claude Code's Stop hook — instead of waiting for the next
95
+ * tool call to arrive more than `gapThresholdMs` late. Fixes two
96
+ * heuristic failure modes at once: two genuinely separate turns that
97
+ * happen to follow each other quickly getting merged (Stop closes the
98
+ * first before the second's tool calls ever have a chance to look like
99
+ * a gap), and a turn's recorded end lagging its last tool call by
100
+ * however long Claude spent generating its final response after that
101
+ * call (this only ever extends `currentTurnEnd`, never shrinks it, so a
102
+ * late/clock-skewed Stop timestamp can't make a turn look shorter than
103
+ * its own last tool call).
104
+ *
105
+ * No-op when no turn is currently open — a tool-call-free conversational
106
+ * turn, or a Stop that doesn't correspond to any pending tool calls, is
107
+ * safe to ignore here.
108
+ */
109
+ finalizeTurnAt(stopTimestampMs) {
110
+ if (this.currentTurnCalls.length === 0)
111
+ return;
112
+ if (stopTimestampMs > this.currentTurnEnd) {
113
+ this.currentTurnEnd = stopTimestampMs;
114
+ }
115
+ this.finalizeTurn();
116
+ }
92
117
  reset(_sessionId) {
93
118
  this.turns = [];
94
119
  this.turnCounter = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"turn-tracker.js","sourceRoot":"","sources":["../../src/metrics/turn-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-tracker.js","sourceRoot":"","sources":["../../src/metrics/turn-tracker.ts"],"names":[],"mappings":"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"}
@@ -135,6 +135,23 @@ export interface ApiFailureHookEvent extends HookEventBase {
135
135
  readonly errorDetails?: string;
136
136
  readonly lastAssistantMessage?: string;
137
137
  }
138
+ /**
139
+ * Emitted by Claude Code's SessionStart hook (code.claude.com/docs/en/hooks.md).
140
+ * Fires on every session (startup/resume/clear/compact/fork) — `source`
141
+ * distinguishes which. Only a `source` of `'resume'`/`'fork'` with a
142
+ * transcript that already has a response carries the four resume-cost
143
+ * fields below (Claude Code v2.1.251+); they're `undefined` for every other
144
+ * `source`, and this event is only actionable when they're present.
145
+ */
146
+ export interface SessionStartHookEvent extends HookEventBase {
147
+ readonly mode: 'session_start';
148
+ readonly sessionId?: string;
149
+ readonly source?: string;
150
+ readonly secondsSinceLastResponse?: number;
151
+ readonly contextTokens?: number;
152
+ readonly promptCacheLikelyExpired?: boolean;
153
+ readonly estimatedCacheWriteUsd?: number;
154
+ }
138
155
  /**
139
156
  * Emitted by Claude Code's InstructionsLoaded hook, which fires each time a
140
157
  * `CLAUDE.md` or `.claude/rules/*.md` file is loaded into context —
@@ -172,16 +189,41 @@ export interface ModelSwitchHookEvent extends HookEventBase {
172
189
  readonly requestedModel?: string | null;
173
190
  readonly source?: string;
174
191
  }
192
+ /**
193
+ * Emitted by Claude Code's UserPromptSubmit hook, which fires when the user
194
+ * submits a prompt, before Claude processes it (code.claude.com/docs/en/hooks.md).
195
+ * Deliberately carries no content — the `prompt` field itself is free text
196
+ * this file has no reason to capture; only its timestamp matters, as a
197
+ * precise "a new task started here" boundary for `TaskDetector`.
198
+ */
199
+ export interface UserPromptSubmitHookEvent extends HookEventBase {
200
+ readonly mode: 'user_prompt_submit';
201
+ readonly sessionId?: string;
202
+ }
203
+ /**
204
+ * Emitted by Claude Code's Stop hook, which fires when the main agent has
205
+ * finished responding — does NOT fire on a user interrupt, so this is a
206
+ * corroborating precise signal, not a full replacement for the existing
207
+ * idle-gap heuristics in `TurnTracker`/`TaskDetector` (code.claude.com/docs/en/hooks.md).
208
+ * Deliberately carries no content — `last_assistant_message`,
209
+ * `background_tasks`, and `session_crons` are all real fields on this hook's
210
+ * input, but none of them are needed just to mark "a turn/task ended here".
211
+ */
212
+ export interface StopHookEvent extends HookEventBase {
213
+ readonly mode: 'stop';
214
+ readonly sessionId?: string;
215
+ }
175
216
  /**
176
217
  * Buffer line discriminated union. `pre`/`post`/`token` are the original
177
218
  * collector modes; `permission_request`/`permission_denied` are collector
178
219
  * modes for Claude Code's permission hooks. `subagent_token`, `workflow_run`,
179
220
  * and `observability_health` are emitted by the SubagentWatcher / WorkflowWatcher.
180
221
  * `api_failure` is emitted by the collector for Claude Code's StopFailure
181
- * hook, `instructions_loaded` for its InstructionsLoaded hook, `model_switch`
182
- * for its PostModelSwitch hook.
222
+ * hook, `session_start` for its SessionStart hook, `instructions_loaded` for
223
+ * its InstructionsLoaded hook, `model_switch` for its PostModelSwitch hook,
224
+ * `user_prompt_submit`/`stop` for its UserPromptSubmit/Stop hooks.
183
225
  */
184
- export type HookEvent = PreHookEvent | PostHookEvent | PermissionRequestHookEvent | PermissionDeniedHookEvent | TokenHookEvent | SubagentTokenHookEvent | WorkflowRunEvent | ObservabilityHealthHookEvent | ApiFailureHookEvent | InstructionsLoadedHookEvent | ModelSwitchHookEvent;
226
+ export type HookEvent = PreHookEvent | PostHookEvent | PermissionRequestHookEvent | PermissionDeniedHookEvent | TokenHookEvent | SubagentTokenHookEvent | WorkflowRunEvent | ObservabilityHealthHookEvent | ApiFailureHookEvent | SessionStartHookEvent | InstructionsLoadedHookEvent | ModelSwitchHookEvent | UserPromptSubmitHookEvent | StopHookEvent;
185
227
  export interface TokenEvent {
186
228
  readonly mode: 'token';
187
229
  readonly timestamp: number;