@newrelic/preflight 1.67.3 → 1.69.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 (183) hide show
  1. package/README.md +2 -2
  2. package/dist/config.d.ts +75 -2
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +201 -22
  5. package/dist/config.js.map +1 -1
  6. package/dist/dashboard/routes/api-handler.d.ts +1 -0
  7. package/dist/dashboard/routes/api-handler.d.ts.map +1 -1
  8. package/dist/dashboard/routes/api-handler.js +120 -94
  9. package/dist/dashboard/routes/api-handler.js.map +1 -1
  10. package/dist/data/dashboards/ai-coding-assistant-adoption-cost.json +291 -1
  11. package/dist/data/dashboards/ai-coding-assistant-team-view.json +6 -6
  12. package/dist/hooks/billed-turn-ledger.d.ts +46 -0
  13. package/dist/hooks/billed-turn-ledger.d.ts.map +1 -0
  14. package/dist/hooks/billed-turn-ledger.js +274 -0
  15. package/dist/hooks/billed-turn-ledger.js.map +1 -0
  16. package/dist/hooks/collector-script.d.ts.map +1 -1
  17. package/dist/hooks/collector-script.js +5 -1
  18. package/dist/hooks/collector-script.js.map +1 -1
  19. package/dist/hooks/event-processor.d.ts +3 -7
  20. package/dist/hooks/event-processor.d.ts.map +1 -1
  21. package/dist/hooks/event-processor.js +21 -7
  22. package/dist/hooks/event-processor.js.map +1 -1
  23. package/dist/hooks/parent-transcript-watcher.d.ts +6 -5
  24. package/dist/hooks/parent-transcript-watcher.d.ts.map +1 -1
  25. package/dist/hooks/parent-transcript-watcher.js +64 -62
  26. package/dist/hooks/parent-transcript-watcher.js.map +1 -1
  27. package/dist/hooks/throttled-warning.d.ts +16 -0
  28. package/dist/hooks/throttled-warning.d.ts.map +1 -0
  29. package/dist/hooks/throttled-warning.js +32 -0
  30. package/dist/hooks/throttled-warning.js.map +1 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +90 -83
  33. package/dist/index.js.map +1 -1
  34. package/dist/install/cli.d.ts.map +1 -1
  35. package/dist/install/cli.js +69 -1
  36. package/dist/install/cli.js.map +1 -1
  37. package/dist/install/dashboard-health.js +1 -1
  38. package/dist/install/dashboard-health.js.map +1 -1
  39. package/dist/install/diagnostics.d.ts +2 -0
  40. package/dist/install/diagnostics.d.ts.map +1 -1
  41. package/dist/install/diagnostics.js +132 -28
  42. package/dist/install/diagnostics.js.map +1 -1
  43. package/dist/install/headless-install.d.ts +26 -0
  44. package/dist/install/headless-install.d.ts.map +1 -1
  45. package/dist/install/headless-install.js +44 -1
  46. package/dist/install/headless-install.js.map +1 -1
  47. package/dist/install/install-helper.d.ts +2 -0
  48. package/dist/install/install-helper.d.ts.map +1 -1
  49. package/dist/install/install-helper.js +5 -0
  50. package/dist/install/install-helper.js.map +1 -1
  51. package/dist/install/keychain.d.ts +18 -0
  52. package/dist/install/keychain.d.ts.map +1 -0
  53. package/dist/install/keychain.js +60 -0
  54. package/dist/install/keychain.js.map +1 -0
  55. package/dist/install/kiro-install-helper.d.ts +27 -0
  56. package/dist/install/kiro-install-helper.d.ts.map +1 -0
  57. package/dist/install/kiro-install-helper.js +53 -0
  58. package/dist/install/kiro-install-helper.js.map +1 -0
  59. package/dist/install/setup-wizard.d.ts +4 -0
  60. package/dist/install/setup-wizard.d.ts.map +1 -1
  61. package/dist/install/setup-wizard.js +94 -9
  62. package/dist/install/setup-wizard.js.map +1 -1
  63. package/dist/lib/child-env.d.ts +11 -0
  64. package/dist/lib/child-env.d.ts.map +1 -0
  65. package/dist/lib/child-env.js +35 -0
  66. package/dist/lib/child-env.js.map +1 -0
  67. package/dist/lib/git-remote.d.ts +7 -0
  68. package/dist/lib/git-remote.d.ts.map +1 -1
  69. package/dist/lib/git-remote.js +13 -0
  70. package/dist/lib/git-remote.js.map +1 -1
  71. package/dist/metrics/cost-tracker-seed.d.ts +16 -0
  72. package/dist/metrics/cost-tracker-seed.d.ts.map +1 -1
  73. package/dist/metrics/cost-tracker-seed.js +42 -7
  74. package/dist/metrics/cost-tracker-seed.js.map +1 -1
  75. package/dist/metrics/cost-tracker.d.ts +11 -3
  76. package/dist/metrics/cost-tracker.d.ts.map +1 -1
  77. package/dist/metrics/cost-tracker.js +4 -1
  78. package/dist/metrics/cost-tracker.js.map +1 -1
  79. package/dist/metrics/git-activity-recorder.d.ts +3 -3
  80. package/dist/metrics/git-activity-recorder.d.ts.map +1 -1
  81. package/dist/metrics/git-activity-recorder.js +3 -3
  82. package/dist/metrics/git-activity-recorder.js.map +1 -1
  83. package/dist/metrics/git-workspace-identity.d.ts +6 -1
  84. package/dist/metrics/git-workspace-identity.d.ts.map +1 -1
  85. package/dist/metrics/git-workspace-identity.js +56 -32
  86. package/dist/metrics/git-workspace-identity.js.map +1 -1
  87. package/dist/metrics/git-workspace-reporter.d.ts +4 -3
  88. package/dist/metrics/git-workspace-reporter.d.ts.map +1 -1
  89. package/dist/metrics/git-workspace-reporter.js +4 -3
  90. package/dist/metrics/git-workspace-reporter.js.map +1 -1
  91. package/dist/metrics/pricing-init.d.ts +13 -0
  92. package/dist/metrics/pricing-init.d.ts.map +1 -0
  93. package/dist/metrics/pricing-init.js +19 -0
  94. package/dist/metrics/pricing-init.js.map +1 -0
  95. package/dist/metrics/skill-activation-tracker.d.ts +27 -0
  96. package/dist/metrics/skill-activation-tracker.d.ts.map +1 -0
  97. package/dist/metrics/skill-activation-tracker.js +92 -0
  98. package/dist/metrics/skill-activation-tracker.js.map +1 -0
  99. package/dist/metrics/turn-cost-attributor.d.ts +34 -16
  100. package/dist/metrics/turn-cost-attributor.d.ts.map +1 -1
  101. package/dist/metrics/turn-cost-attributor.js +95 -60
  102. package/dist/metrics/turn-cost-attributor.js.map +1 -1
  103. package/dist/proxy/proxy-manager.d.ts +3 -0
  104. package/dist/proxy/proxy-manager.d.ts.map +1 -1
  105. package/dist/proxy/proxy-manager.js +43 -3
  106. package/dist/proxy/proxy-manager.js.map +1 -1
  107. package/dist/proxy/types.d.ts +7 -0
  108. package/dist/proxy/types.d.ts.map +1 -1
  109. package/dist/proxy/types.js.map +1 -1
  110. package/dist/proxy/upstream-http.d.ts.map +1 -1
  111. package/dist/proxy/upstream-http.js +44 -1
  112. package/dist/proxy/upstream-http.js.map +1 -1
  113. package/dist/proxy/upstream-stdio.d.ts +0 -1
  114. package/dist/proxy/upstream-stdio.d.ts.map +1 -1
  115. package/dist/proxy/upstream-stdio.js +2 -26
  116. package/dist/proxy/upstream-stdio.js.map +1 -1
  117. package/dist/redaction-patterns.d.ts.map +1 -1
  118. package/dist/redaction-patterns.js +1 -0
  119. package/dist/redaction-patterns.js.map +1 -1
  120. package/dist/secret-command.d.ts +59 -0
  121. package/dist/secret-command.d.ts.map +1 -0
  122. package/dist/secret-command.js +123 -0
  123. package/dist/secret-command.js.map +1 -0
  124. package/dist/security/audit-trail.d.ts +7 -1
  125. package/dist/security/audit-trail.d.ts.map +1 -1
  126. package/dist/security/audit-trail.js +24 -0
  127. package/dist/security/audit-trail.js.map +1 -1
  128. package/dist/server.d.ts.map +1 -1
  129. package/dist/server.js +9 -4
  130. package/dist/server.js.map +1 -1
  131. package/dist/shared/pricing-data.d.ts.map +1 -1
  132. package/dist/shared/pricing-data.js +223 -32
  133. package/dist/shared/pricing-data.js.map +1 -1
  134. package/dist/shared/pricing.d.ts +25 -3
  135. package/dist/shared/pricing.d.ts.map +1 -1
  136. package/dist/shared/pricing.js +46 -9
  137. package/dist/shared/pricing.js.map +1 -1
  138. package/dist/shared/tokens.d.ts +16 -0
  139. package/dist/shared/tokens.d.ts.map +1 -1
  140. package/dist/shared/tokens.js +18 -0
  141. package/dist/shared/tokens.js.map +1 -1
  142. package/dist/shared/transport/otlp-shared.d.ts.map +1 -1
  143. package/dist/shared/transport/otlp-shared.js +7 -14
  144. package/dist/shared/transport/otlp-shared.js.map +1 -1
  145. package/dist/storage/local-store.d.ts +6 -4
  146. package/dist/storage/local-store.d.ts.map +1 -1
  147. package/dist/storage/local-store.js +21 -7
  148. package/dist/storage/local-store.js.map +1 -1
  149. package/dist/storage/session-store.d.ts +24 -1
  150. package/dist/storage/session-store.d.ts.map +1 -1
  151. package/dist/storage/session-store.js +38 -7
  152. package/dist/storage/session-store.js.map +1 -1
  153. package/dist/storage/types.d.ts +13 -0
  154. package/dist/storage/types.d.ts.map +1 -1
  155. package/dist/storage/types.js.map +1 -1
  156. package/dist/tools/cross-session-tools.d.ts +7 -1
  157. package/dist/tools/cross-session-tools.d.ts.map +1 -1
  158. package/dist/tools/cross-session-tools.js +47 -14
  159. package/dist/tools/cross-session-tools.js.map +1 -1
  160. package/dist/tools/session-stats.d.ts +6 -0
  161. package/dist/tools/session-stats.d.ts.map +1 -1
  162. package/dist/tools/session-stats.js +3 -2
  163. package/dist/tools/session-stats.js.map +1 -1
  164. package/dist/transport/audit-record-sender.d.ts +20 -0
  165. package/dist/transport/audit-record-sender.d.ts.map +1 -0
  166. package/dist/transport/audit-record-sender.js +54 -0
  167. package/dist/transport/audit-record-sender.js.map +1 -0
  168. package/dist/transport/nr-ingest.d.ts +7 -0
  169. package/dist/transport/nr-ingest.d.ts.map +1 -1
  170. package/dist/transport/nr-ingest.js +64 -27
  171. package/dist/transport/nr-ingest.js.map +1 -1
  172. package/dist/transport/tier-types.d.ts +11 -1
  173. package/dist/transport/tier-types.d.ts.map +1 -1
  174. package/dist/transport/tier-types.js +28 -6
  175. package/dist/transport/tier-types.js.map +1 -1
  176. package/dist/transport/unforwarded-session-monitor.d.ts +12 -6
  177. package/dist/transport/unforwarded-session-monitor.d.ts.map +1 -1
  178. package/dist/transport/unforwarded-session-monitor.js +24 -5
  179. package/dist/transport/unforwarded-session-monitor.js.map +1 -1
  180. package/dist/web/assets/{index-lvdXUntr.js → index-U9DPZ-Tb.js} +3 -3
  181. package/dist/web/index.html +1 -1
  182. package/examples/local-alert-rules.json +28 -0
  183. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"git-activity-recorder.js","sourceRoot":"","sources":["../../src/metrics/git-activity-recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-activity-recorder.js","sourceRoot":"","sources":["../../src/metrics/git-activity-recorder.ts"],"names":[],"mappings":"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"}
@@ -35,10 +35,15 @@ export interface WorktreeIdentity {
35
35
  * Has a short TTL and is re-resolved on each call. */
36
36
  readonly branch: string | null;
37
37
  }
38
+ export declare function cacheKeyOf(dir: string): string;
38
39
  export declare class WorktreeIdentityResolver {
39
40
  private readonly cache;
40
- private readonly branchTtlMs;
41
+ private readonly ttlMs;
42
+ private readonly missTtlMs;
41
43
  resolve(dir: string | null | undefined): WorktreeIdentity | null;
44
+ /** `ok: false` means the git process itself failed (timeout, signal, spawn
45
+ * error) and the caller must not cache the null. `ok: true, identity: null`
46
+ * is a definite answer that `dir` is not a repository. */
42
47
  private computeIdentity;
43
48
  private deriveWorktreeRoot;
44
49
  private deriveLabel;
@@ -1 +1 @@
1
- {"version":3,"file":"git-workspace-identity.d.ts","sourceRoot":"","sources":["../../src/metrics/git-workspace-identity.ts"],"names":[],"mappings":"AAMA;yCACyC;AACzC,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAEzD;0EAC0E;AAC1E,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAE7D;;4DAE4D;AAC5D,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG,OAAO,CAK9F;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;;;;qBAMiB;IACjB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;0EAGsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;8DAC0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;uCACmC;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;yEACqE;IACrE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;2DACuD;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAgBD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqC;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IAEtC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI;IA8BhE,OAAO,CAAC,eAAe;IAmDvB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,eAAe;IAYvB;;;kFAG8E;IAC9E,OAAO,CAAC,aAAa;CAYtB"}
1
+ {"version":3,"file":"git-workspace-identity.d.ts","sourceRoot":"","sources":["../../src/metrics/git-workspace-identity.ts"],"names":[],"mappings":"AAMA;yCACyC;AACzC,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AAEzD;0EAC0E;AAC1E,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAE7D;;4DAE4D;AAC5D,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG,OAAO,CAK9F;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;;;;qBAMiB;IACjB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;0EAGsE;IACtE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;8DAC0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;uCACmC;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC;yEACqE;IACrE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;2DACuD;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAiBD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqC;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAIhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI;IAgChE;;+DAE2D;IAC3D,OAAO,CAAC,eAAe;IA+DvB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,eAAe;IAYvB;;;kFAG8E;IAC9E,OAAO,CAAC,aAAa;CAYtB"}
@@ -1,6 +1,6 @@
1
1
  import { spawnSync } from 'node:child_process';
2
2
  import { readFileSync } from 'node:fs';
3
- import { basename, dirname } from 'node:path';
3
+ import { basename, dirname, resolve as resolvePath } from 'node:path';
4
4
  import { repoNameFromRemote } from '../lib/git-remote.js';
5
5
  /** Workspace key for activity whose cwd was never recorded and whose session
6
6
  * has no `repoName` to fall back on. */
@@ -23,36 +23,51 @@ const GIT_OPTS = {
23
23
  return { ...process.env, GIT_DIR: undefined, GIT_WORK_TREE: undefined };
24
24
  },
25
25
  };
26
+ // Windows paths are case-insensitive, so every spelling must share one entry.
27
+ export function cacheKeyOf(dir) {
28
+ const abs = resolvePath(dir);
29
+ return process.platform === 'win32' ? abs.toLowerCase() : abs;
30
+ }
26
31
  export class WorktreeIdentityResolver {
27
32
  cache = new Map();
28
- branchTtlMs = 30_000;
33
+ ttlMs = 30_000;
34
+ // Short, because live tool calls share this resolver: a session started in
35
+ // an empty directory must see its `git init` and first commit within a few
36
+ // seconds. It only needs to outlast one replay burst of repeated lookups.
37
+ missTtlMs = 3_000;
29
38
  resolve(dir) {
30
39
  if (typeof dir !== 'string' || dir.length === 0)
31
40
  return null;
32
- const cached = this.cache.get(dir);
41
+ const key = cacheKeyOf(dir);
42
+ const cached = this.cache.get(key);
33
43
  const now = Date.now();
34
- if (cached) {
35
- if (now - cached.branchResolvedAt >= this.branchTtlMs) {
36
- const refreshed = this.resolveBranch(dir);
37
- // `refreshed.branch` is legitimately null for detached HEAD, which is
38
- // a real state a worktree can transition into — `refreshed.ok`, not
39
- // the branch value itself, is what distinguishes that from "the
40
- // subprocess call failed, keep reporting the last known branch".
41
- const updated = {
42
- ...cached.identity,
43
- branch: refreshed.ok ? refreshed.branch : cached.identity.branch,
44
- };
45
- this.cache.set(dir, { identity: updated, branchResolvedAt: now });
46
- return updated;
47
- }
44
+ const ttl = cached?.identity ? this.ttlMs : this.missTtlMs;
45
+ if (cached && now - cached.resolvedAt < ttl)
48
46
  return cached.identity;
47
+ if (cached?.identity) {
48
+ const refreshed = this.resolveBranch(dir);
49
+ // `refreshed.branch` is legitimately null for detached HEAD, which is
50
+ // a real state a worktree can transition into — `refreshed.ok`, not
51
+ // the branch value itself, is what distinguishes that from "the
52
+ // subprocess call failed, keep reporting the last known branch".
53
+ const updated = {
54
+ ...cached.identity,
55
+ branch: refreshed.ok ? refreshed.branch : cached.identity.branch,
56
+ };
57
+ this.cache.set(key, { identity: updated, resolvedAt: now });
58
+ return updated;
49
59
  }
50
- const identity = this.computeIdentity(dir);
51
- if (identity) {
52
- this.cache.set(dir, { identity, branchResolvedAt: now });
53
- }
54
- return identity;
60
+ // Definite misses are cached for the short miss TTL, so a later `git init`
61
+ // is picked up after expiry. A timed-out or failed spawn is not cached;
62
+ // the next call retries.
63
+ const lookup = this.computeIdentity(dir);
64
+ if (lookup.ok)
65
+ this.cache.set(key, { identity: lookup.identity, resolvedAt: now });
66
+ return lookup.identity;
55
67
  }
68
+ /** `ok: false` means the git process itself failed (timeout, signal, spawn
69
+ * error) and the caller must not cache the null. `ok: true, identity: null`
70
+ * is a definite answer that `dir` is not a repository. */
56
71
  computeIdentity(dir) {
57
72
  let repoKey;
58
73
  let worktreeKey;
@@ -65,18 +80,24 @@ export class WorktreeIdentityResolver {
65
80
  // reason that has nothing to do with identity.
66
81
  try {
67
82
  const result = spawnSync('git', ['-C', dir, 'rev-parse', '--path-format=absolute', '--git-common-dir', '--git-dir'], GIT_OPTS);
68
- if (result.status !== 0 || typeof result.stdout !== 'string') {
69
- return null;
83
+ if (typeof result.status === 'number' && result.status !== 0) {
84
+ return { ok: true, identity: null };
85
+ }
86
+ if (result.status === null || result.error) {
87
+ return { ok: false, identity: null };
88
+ }
89
+ if (typeof result.stdout !== 'string') {
90
+ return { ok: true, identity: null };
70
91
  }
71
92
  const lines = result.stdout.trim().split('\n');
72
93
  if (lines.length < 2 || !lines[0] || !lines[1]) {
73
- return null;
94
+ return { ok: true, identity: null };
74
95
  }
75
96
  repoKey = lines[0].trim();
76
97
  worktreeKey = lines[1].trim();
77
98
  }
78
99
  catch {
79
- return null;
100
+ return { ok: false, identity: null };
80
101
  }
81
102
  // Failure here (unborn HEAD, or any other reason) is a real, common
82
103
  // state — not evidence that `dir` isn't a valid repo — so it degrades to
@@ -86,12 +107,15 @@ export class WorktreeIdentityResolver {
86
107
  const repoName = this.resolveRepoName(dir);
87
108
  const worktreeLabel = this.deriveLabel(worktreeKey, repoKey, worktreeRoot);
88
109
  return {
89
- repoKey,
90
- worktreeKey,
91
- repoName,
92
- worktreeRoot,
93
- worktreeLabel,
94
- branch,
110
+ ok: true,
111
+ identity: {
112
+ repoKey,
113
+ worktreeKey,
114
+ repoName,
115
+ worktreeRoot,
116
+ worktreeLabel,
117
+ branch,
118
+ },
95
119
  };
96
120
  }
97
121
  deriveWorktreeRoot(dir, worktreeKey, repoKey) {
@@ -1 +1 @@
1
- {"version":3,"file":"git-workspace-identity.js","sourceRoot":"","sources":["../../src/metrics/git-workspace-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-workspace-identity.js","sourceRoot":"","sources":["../../src/metrics/git-workspace-identity.ts"],"names":[],"mappings":"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"}
@@ -156,9 +156,10 @@ export declare function replaySessionToActivityRecords(session: {
156
156
  * so its replay result never changes and is safe to cache forever. This is
157
157
  * what makes the cache worth having: a cache hit skips
158
158
  * `identityResolver.resolve()` entirely, and that call spawns up to three
159
- * `git` subprocesses per unique historical working directory with no caching
160
- * of its own — paying that cost again for the same closed session on every
161
- * dashboard poll is pure waste.
159
+ * `git` subprocesses per unique historical working directory. The resolver
160
+ * caches only per instance for 30s, and the dashboard builds a fresh resolver
161
+ * per request, so without this cache a closed session would re-pay that cost
162
+ * on every poll.
162
163
  */
163
164
  export declare class ReplaySessionCache {
164
165
  private readonly cache;
@@ -1 +1 @@
1
- {"version":3,"file":"git-workspace-reporter.d.ts","sourceRoot":"","sources":["../../src/metrics/git-workspace-reporter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGL,wBAAwB,EAExB,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AAiBnC;;;;;;;;;GASG;AACH,MAAM,WAAW,4BAA6B,SAAQ,kBAAkB;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAoBD;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAKxC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAuC;IAC/E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;gBAE3D,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;IAKzD;+EAC2E;IAC3E,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAQ5C;;;;;;;;;;OAUG;IACH,aAAa,CACX,OAAO,EAAE,SAAS,iBAAiB,EAAE,EACrC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GACjD,IAAI;IAWP;2CACuC;IACvC,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAIxD;;;;;;;;;OASG;IACH,aAAa,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI;IA0BxD;;;;;OAKG;IACH,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,iBAAiB;IAY9D;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,KAAK,EAAE;QACZ,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;QACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;QACnD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;KACvE,GAAG,4BAA4B;IAwDhC;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;CA6DzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC5D;AAoCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE;IACP,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,EACD,gBAAgB,EAAE,wBAAwB,GACzC,gBAAgB,CA6DlB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;IAE7D,MAAM,CACJ,OAAO,EAAE;QACP,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;QACnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,EACD,gBAAgB,EAAE,wBAAwB,GACzC,gBAAgB;CAepB"}
1
+ {"version":3,"file":"git-workspace-reporter.d.ts","sourceRoot":"","sources":["../../src/metrics/git-workspace-reporter.ts"],"names":[],"mappings":"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"}
@@ -404,9 +404,10 @@ export function replaySessionToActivityRecords(session, identityResolver) {
404
404
  * so its replay result never changes and is safe to cache forever. This is
405
405
  * what makes the cache worth having: a cache hit skips
406
406
  * `identityResolver.resolve()` entirely, and that call spawns up to three
407
- * `git` subprocesses per unique historical working directory with no caching
408
- * of its own — paying that cost again for the same closed session on every
409
- * dashboard poll is pure waste.
407
+ * `git` subprocesses per unique historical working directory. The resolver
408
+ * caches only per instance for 30s, and the dashboard builds a fresh resolver
409
+ * per request, so without this cache a closed session would re-pay that cost
410
+ * on every poll.
410
411
  */
411
412
  export class ReplaySessionCache {
412
413
  cache = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"git-workspace-reporter.js","sourceRoot":"","sources":["../../src/metrics/git-workspace-reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-workspace-reporter.js","sourceRoot":"","sources":["../../src/metrics/git-workspace-reporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { McpServerConfig } from '../config.js';
2
+ export interface InitModelPricingOptions {
3
+ /** `false` skips the LiteLLM refresh, for short-lived commands like `doctor`. */
4
+ readonly refresh?: boolean;
5
+ }
6
+ /**
7
+ * Loads the pricing configuration into the process-wide pricing state that every
8
+ * cost lookup in `pricing-overlay.ts` reads. Every process entry point that prices
9
+ * tokens calls this once at startup, before its first lookup. Lives apart from
10
+ * `pricing-overlay.ts` because `pricing-refresh.ts` already imports that module.
11
+ */
12
+ export declare function initModelPricing(config: Pick<McpServerConfig, 'customPricingFile' | 'pricingRefresh' | 'storagePath'>, options?: InitModelPricingOptions): void;
13
+ //# sourceMappingURL=pricing-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing-init.d.ts","sourceRoot":"","sources":["../../src/metrics/pricing-init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,aAAa,CAAC,EACrF,OAAO,GAAE,uBAA4B,GACpC,IAAI,CAON"}
@@ -0,0 +1,19 @@
1
+ import { resolve } from 'node:path';
2
+ import { applyPricingOverlay } from './pricing-overlay.js';
3
+ import { startPricingRefresh } from './pricing-refresh.js';
4
+ /**
5
+ * Loads the pricing configuration into the process-wide pricing state that every
6
+ * cost lookup in `pricing-overlay.ts` reads. Every process entry point that prices
7
+ * tokens calls this once at startup, before its first lookup. Lives apart from
8
+ * `pricing-overlay.ts` because `pricing-refresh.ts` already imports that module.
9
+ */
10
+ export function initModelPricing(config, options = {}) {
11
+ applyPricingOverlay(config.customPricingFile);
12
+ if (options.refresh === false)
13
+ return;
14
+ void startPricingRefresh({
15
+ enabled: config.pricingRefresh,
16
+ cachePath: resolve(config.storagePath, 'pricing-cache.json'),
17
+ });
18
+ }
19
+ //# sourceMappingURL=pricing-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing-init.js","sourceRoot":"","sources":["../../src/metrics/pricing-init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAO3D;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAqF,EACrF,UAAmC,EAAE;IAErC,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC9C,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;QAAE,OAAO;IACtC,KAAK,mBAAmB,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC,cAAc;QAC9B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,oBAAoB,CAAC;KAC7D,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { SkillStamp, ToolCallRecord } from '../storage/types.js';
2
+ import type { Resettable } from './tracker-contracts.js';
3
+ export interface SkillActivationMetrics {
4
+ /** Every open run, main agent and subagents, across the sessions in view. */
5
+ readonly openRuns: readonly SkillStamp[];
6
+ }
7
+ /**
8
+ * Tracks the open skill run per session and per agent, so every tool call can
9
+ * be stamped with the skill whose work it is. A run opens on a successful,
10
+ * named `Skill` tool call or a `/<skill>` prompt and lasts until the next
11
+ * prompt or the next skill (last wins: there is no signal for a nested skill
12
+ * returning, so the new run records the one it replaced as its parent
13
+ * instead). A subagent keeps whatever run the main agent had open when the
14
+ * subagent first appeared, since that skill is what spawned it; later prompts
15
+ * and skills on the main agent don't move it.
16
+ */
17
+ export declare class SkillActivationTracker implements Resettable {
18
+ /** Per session, per agent; `null` pins a subagent that appeared outside any run. */
19
+ private readonly sessions;
20
+ private runsFor;
21
+ recordToolCall(record: ToolCallRecord): SkillStamp | null;
22
+ /** Closes the main agent's run and returns the slash run it opens, if any. */
23
+ recordPrompt(sessionId: string | null | undefined, slashCommand: string | null): SkillStamp | null;
24
+ getMetrics(sessionId?: string): SkillActivationMetrics;
25
+ reset(_sessionId?: string): void;
26
+ }
27
+ //# sourceMappingURL=skill-activation-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-activation-tracker.d.ts","sourceRoot":"","sources":["../../src/metrics/skill-activation-tracker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAOzD,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;CAC1C;AAED;;;;;;;;;GASG;AACH,qBAAa,sBAAuB,YAAW,UAAU;IACvD,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqD;IAE9E,OAAO,CAAC,OAAO;IAgBf,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,GAAG,IAAI;IAgCzD,8EAA8E;IAC9E,YAAY,CACV,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,UAAU,GAAG,IAAI;IAQpB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,sBAAsB;IAWtD,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;CAGjC"}
@@ -0,0 +1,92 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ const NULL_SESSION_KEY = '__no_session__';
3
+ const MAIN_AGENT_KEY = '';
4
+ const DEFAULT_MAX_SESSIONS = 50;
5
+ const MAX_AGENTS_PER_SESSION = 100;
6
+ /**
7
+ * Tracks the open skill run per session and per agent, so every tool call can
8
+ * be stamped with the skill whose work it is. A run opens on a successful,
9
+ * named `Skill` tool call or a `/<skill>` prompt and lasts until the next
10
+ * prompt or the next skill (last wins: there is no signal for a nested skill
11
+ * returning, so the new run records the one it replaced as its parent
12
+ * instead). A subagent keeps whatever run the main agent had open when the
13
+ * subagent first appeared, since that skill is what spawned it; later prompts
14
+ * and skills on the main agent don't move it.
15
+ */
16
+ export class SkillActivationTracker {
17
+ /** Per session, per agent; `null` pins a subagent that appeared outside any run. */
18
+ sessions = new Map();
19
+ runsFor(sessionId) {
20
+ const key = sessionId ?? NULL_SESSION_KEY;
21
+ let runs = this.sessions.get(key);
22
+ if (runs) {
23
+ this.sessions.delete(key);
24
+ }
25
+ else {
26
+ if (this.sessions.size >= DEFAULT_MAX_SESSIONS) {
27
+ const oldest = this.sessions.keys().next().value;
28
+ if (oldest !== undefined)
29
+ this.sessions.delete(oldest);
30
+ }
31
+ runs = new Map();
32
+ }
33
+ this.sessions.set(key, runs);
34
+ return runs;
35
+ }
36
+ recordToolCall(record) {
37
+ const runs = this.runsFor(record.sessionId);
38
+ const agentKey = record.agentId ?? MAIN_AGENT_KEY;
39
+ if (agentKey !== MAIN_AGENT_KEY && !runs.has(agentKey)) {
40
+ if (runs.size > MAX_AGENTS_PER_SESSION) {
41
+ for (const key of runs.keys()) {
42
+ if (key === MAIN_AGENT_KEY)
43
+ continue;
44
+ runs.delete(key);
45
+ break;
46
+ }
47
+ }
48
+ runs.set(agentKey, runs.get(MAIN_AGENT_KEY) ?? null);
49
+ }
50
+ const open = runs.get(agentKey) ?? null;
51
+ // An interrupted or failed Skill call never loaded the skill, and the
52
+ // orphan sweep can emit it after later prompts; neither should open a run.
53
+ if (record.toolName === 'Skill' && record.skillName && record.success) {
54
+ // Claude Code expands a slash-invoked skill itself; a Skill call naming
55
+ // the same skill right after is the same invocation, not a second one.
56
+ if (open?.source === 'slash' && open.name === record.skillName)
57
+ return open;
58
+ const stamp = {
59
+ name: record.skillName,
60
+ source: 'tool',
61
+ runId: randomUUID(),
62
+ ...(open && { parentRunId: open.runId }),
63
+ };
64
+ runs.set(agentKey, stamp);
65
+ return stamp;
66
+ }
67
+ return open;
68
+ }
69
+ /** Closes the main agent's run and returns the slash run it opens, if any. */
70
+ recordPrompt(sessionId, slashCommand) {
71
+ const stamp = slashCommand
72
+ ? { name: slashCommand, source: 'slash', runId: randomUUID() }
73
+ : null;
74
+ this.runsFor(sessionId).set(MAIN_AGENT_KEY, stamp);
75
+ return stamp;
76
+ }
77
+ getMetrics(sessionId) {
78
+ const sessions = sessionId === undefined ? [...this.sessions.values()] : [this.sessions.get(sessionId)];
79
+ // A subagent pinned to the main run holds the same stamp, so key by run id.
80
+ const openRuns = new Map();
81
+ for (const runs of sessions) {
82
+ for (const stamp of runs?.values() ?? [])
83
+ if (stamp)
84
+ openRuns.set(stamp.runId, stamp);
85
+ }
86
+ return { openRuns: [...openRuns.values()] };
87
+ }
88
+ reset(_sessionId) {
89
+ this.sessions.clear();
90
+ }
91
+ }
92
+ //# sourceMappingURL=skill-activation-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-activation-tracker.js","sourceRoot":"","sources":["../../src/metrics/skill-activation-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ToolCallRecord, TokenEvent } from '../storage/types.js';
1
+ import type { SkillStamp, ToolCallRecord, TokenEvent } from '../storage/types.js';
2
2
  export interface TurnCostAttribution {
3
3
  readonly turnId: string;
4
4
  readonly startTime: number;
@@ -33,13 +33,12 @@ export interface ToolTypeCostEntry {
33
33
  readonly tokens: number;
34
34
  }
35
35
  /**
36
- * Per-skill row aggregating both `Skill` tool invocations and slash-command
37
- * invocations. A `Skill` tool call (channel `Skill`) receives an even split
38
- * of its turn's cost; a slash invocation (channel `SlashCommand`) receives the
39
- * full cost from that prompt to the next. `callCount` counts both channels
40
- * (one per `Skill` tool call, one per slash invocation); `totalDurationMs`
41
- * measures only `Skill` calls (slash commands have none). Cost and tokens
42
- * cover `attributedCallCount` of them.
36
+ * Per-skill row covering every tool call made inside that skill's runs (see
37
+ * SkillActivationTracker), each carrying its even split of its turn's cost.
38
+ * `callCount` counts invocations (distinct run ids, whether opened by a
39
+ * `Skill` call or a slash prompt) and `avgCost` is cost per invocation. `totalDurationMs` and
40
+ * `attributedCallCount` cover the tool calls inside the runs; cost and tokens
41
+ * cover the `attributedCallCount` of them whose turn got a token report.
43
42
  */
44
43
  export interface SkillCostEntry {
45
44
  readonly callCount: number;
@@ -65,15 +64,24 @@ export interface SkillCostEntry {
65
64
  export interface TurnToolCall {
66
65
  readonly toolUseId: string;
67
66
  readonly toolName: string;
68
- /** Set only for Skill calls that carried a skill name; mirrors the bucket identity. */
69
- readonly skillName: string | null;
67
+ /** Set only for tool calls inside a skill run. */
68
+ readonly skill: SkillStamp | null;
70
69
  }
71
70
  /** What recordTokenEvent() hands back once a turn's cost is known. */
72
71
  export interface ClosedTurn {
73
72
  readonly id: string;
74
73
  readonly attribution: TurnCostAttribution;
74
+ /**
75
+ * Empty for a response turn: a token report no tool burst claimed, so the
76
+ * cost is the response's alone. Such turns are never stored in local
77
+ * metrics; they exist so the report still reaches AiTurnCost.
78
+ */
75
79
  readonly calls: readonly TurnToolCall[];
76
- /** `ToolCallRecord.platform` of the turn's first call; undefined when the hook carried no stamp. */
80
+ /**
81
+ * For a tool turn, `ToolCallRecord.platform` of its first call. For a
82
+ * response turn, the token report's platform, else the session's most
83
+ * recent stamped tool call's. Undefined when neither is known.
84
+ */
77
85
  readonly platform: string | undefined;
78
86
  }
79
87
  export interface CostAttributionMetrics {
@@ -83,9 +91,10 @@ export interface CostAttributionMetrics {
83
91
  readonly totalAttributedCost: number;
84
92
  readonly attributionRate: number;
85
93
  /**
86
- * Count of token events (or, on overflow/staleness, whole pending turns)
87
- * that could not be attributed to any tool call. A rising count alongside
88
- * a low `attributionRate` means turns are being lost — see `recordTokenEvent()`.
94
+ * Count of pending tool bursts evicted without a closing token report,
95
+ * because it went stale or the queue overflowed. Their cost is lost. A token
96
+ * report no burst claims is not counted here: it becomes a response turn.
97
+ * See `recordTokenEvent()`.
89
98
  */
90
99
  readonly droppedTokenEvents: number;
91
100
  }
@@ -110,8 +119,17 @@ export declare class TurnCostAttributor {
110
119
  });
111
120
  private getOrCreateSession;
112
121
  recordToolCall(record: ToolCallRecord, turnId?: string): void;
113
- recordSlashCommand(sessionId: string | null | undefined, skillName: string | null): void;
114
- recordTokenEvent(event: TokenEvent): ClosedTurn | null;
122
+ /** Counts a run as soon as it opens, so one that never makes a tool call still has a row. */
123
+ recordSkillRun(sessionId: string | null | undefined, stamp: SkillStamp): void;
124
+ recordTokenEvent(event: TokenEvent): ClosedTurn;
125
+ /**
126
+ * A token report no tool burst claimed. Local metrics leave it out, but it
127
+ * is priced and returned so the report still reaches AiTurnCost, with
128
+ * `costPerToolCall` equal to the whole cost since it has no calls to split
129
+ * across.
130
+ */
131
+ private responseTurn;
132
+ private priceTokenEvent;
115
133
  getCostForToolCall(toolUseId: string): {
116
134
  estimatedTurnCostUsd: number;
117
135
  costPerToolCallUsd: number;
@@ -1 +1 @@
1
- {"version":3,"file":"turn-cost-attributor.d.ts","sourceRoot":"","sources":["../../src/metrics/turn-cost-attributor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-cost-attributor.d.ts","sourceRoot":"","sources":["../../src/metrics/turn-cost-attributor.ts"],"names":[],"mappings":"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"}