@newrelic/preflight 1.68.0 → 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 (118) hide show
  1. package/README.md +1 -1
  2. package/dist/config.d.ts +18 -0
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +76 -6
  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 +109 -91
  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 +26 -8
  33. package/dist/index.js.map +1 -1
  34. package/dist/install/cli.d.ts.map +1 -1
  35. package/dist/install/cli.js +53 -0
  36. package/dist/install/cli.js.map +1 -1
  37. package/dist/install/diagnostics.d.ts.map +1 -1
  38. package/dist/install/diagnostics.js +17 -3
  39. package/dist/install/diagnostics.js.map +1 -1
  40. package/dist/install/keychain.d.ts +18 -0
  41. package/dist/install/keychain.d.ts.map +1 -0
  42. package/dist/install/keychain.js +60 -0
  43. package/dist/install/keychain.js.map +1 -0
  44. package/dist/install/kiro-install-helper.d.ts +27 -0
  45. package/dist/install/kiro-install-helper.d.ts.map +1 -0
  46. package/dist/install/kiro-install-helper.js +53 -0
  47. package/dist/install/kiro-install-helper.js.map +1 -0
  48. package/dist/install/setup-wizard.d.ts +4 -0
  49. package/dist/install/setup-wizard.d.ts.map +1 -1
  50. package/dist/install/setup-wizard.js +94 -9
  51. package/dist/install/setup-wizard.js.map +1 -1
  52. package/dist/metrics/cost-tracker-seed.d.ts +16 -0
  53. package/dist/metrics/cost-tracker-seed.d.ts.map +1 -1
  54. package/dist/metrics/cost-tracker-seed.js +42 -7
  55. package/dist/metrics/cost-tracker-seed.js.map +1 -1
  56. package/dist/metrics/cost-tracker.d.ts +11 -3
  57. package/dist/metrics/cost-tracker.d.ts.map +1 -1
  58. package/dist/metrics/cost-tracker.js +4 -1
  59. package/dist/metrics/cost-tracker.js.map +1 -1
  60. package/dist/metrics/git-activity-recorder.d.ts +3 -3
  61. package/dist/metrics/git-activity-recorder.d.ts.map +1 -1
  62. package/dist/metrics/git-activity-recorder.js +3 -3
  63. package/dist/metrics/git-activity-recorder.js.map +1 -1
  64. package/dist/metrics/git-workspace-identity.d.ts +6 -1
  65. package/dist/metrics/git-workspace-identity.d.ts.map +1 -1
  66. package/dist/metrics/git-workspace-identity.js +56 -32
  67. package/dist/metrics/git-workspace-identity.js.map +1 -1
  68. package/dist/metrics/git-workspace-reporter.d.ts +4 -3
  69. package/dist/metrics/git-workspace-reporter.d.ts.map +1 -1
  70. package/dist/metrics/git-workspace-reporter.js +4 -3
  71. package/dist/metrics/git-workspace-reporter.js.map +1 -1
  72. package/dist/metrics/skill-activation-tracker.d.ts +27 -0
  73. package/dist/metrics/skill-activation-tracker.d.ts.map +1 -0
  74. package/dist/metrics/skill-activation-tracker.js +92 -0
  75. package/dist/metrics/skill-activation-tracker.js.map +1 -0
  76. package/dist/metrics/turn-cost-attributor.d.ts +34 -16
  77. package/dist/metrics/turn-cost-attributor.d.ts.map +1 -1
  78. package/dist/metrics/turn-cost-attributor.js +95 -60
  79. package/dist/metrics/turn-cost-attributor.js.map +1 -1
  80. package/dist/secret-command.d.ts +5 -3
  81. package/dist/secret-command.d.ts.map +1 -1
  82. package/dist/secret-command.js +17 -11
  83. package/dist/secret-command.js.map +1 -1
  84. package/dist/shared/pricing-data.d.ts.map +1 -1
  85. package/dist/shared/pricing-data.js +223 -32
  86. package/dist/shared/pricing-data.js.map +1 -1
  87. package/dist/shared/pricing.d.ts +25 -3
  88. package/dist/shared/pricing.d.ts.map +1 -1
  89. package/dist/shared/pricing.js +46 -9
  90. package/dist/shared/pricing.js.map +1 -1
  91. package/dist/shared/tokens.d.ts +16 -0
  92. package/dist/shared/tokens.d.ts.map +1 -1
  93. package/dist/shared/tokens.js +18 -0
  94. package/dist/shared/tokens.js.map +1 -1
  95. package/dist/shared/transport/otlp-shared.d.ts.map +1 -1
  96. package/dist/shared/transport/otlp-shared.js +7 -14
  97. package/dist/shared/transport/otlp-shared.js.map +1 -1
  98. package/dist/storage/session-store.d.ts +24 -1
  99. package/dist/storage/session-store.d.ts.map +1 -1
  100. package/dist/storage/session-store.js +34 -4
  101. package/dist/storage/session-store.js.map +1 -1
  102. package/dist/storage/types.d.ts +13 -0
  103. package/dist/storage/types.d.ts.map +1 -1
  104. package/dist/storage/types.js.map +1 -1
  105. package/dist/tools/session-stats.js +1 -1
  106. package/dist/tools/session-stats.js.map +1 -1
  107. package/dist/transport/nr-ingest.d.ts +4 -0
  108. package/dist/transport/nr-ingest.d.ts.map +1 -1
  109. package/dist/transport/nr-ingest.js +43 -19
  110. package/dist/transport/nr-ingest.js.map +1 -1
  111. package/dist/transport/tier-types.d.ts +11 -1
  112. package/dist/transport/tier-types.d.ts.map +1 -1
  113. package/dist/transport/tier-types.js +28 -6
  114. package/dist/transport/tier-types.js.map +1 -1
  115. package/dist/web/assets/{index-lvdXUntr.js → index-U9DPZ-Tb.js} +3 -3
  116. package/dist/web/index.html +1 -1
  117. package/examples/local-alert-rules.json +28 -0
  118. package/package.json +1 -1
@@ -52,18 +52,24 @@ function createSessionState() {
52
52
  totalAttributedCost: 0,
53
53
  totalToolCalls: 0,
54
54
  attributedToolCalls: 0,
55
- activeSlashSkill: null,
56
55
  droppedTokenEvents: 0,
56
+ lastPlatform: undefined,
57
+ skillRuns: new Map(),
57
58
  };
58
59
  }
59
60
  // ---------------------------------------------------------------------------
60
61
  // Bucket helpers
61
62
  // ---------------------------------------------------------------------------
63
+ function addSkillRun(skillRuns, skill, runId) {
64
+ let runIds = skillRuns.get(skill);
65
+ if (runIds === undefined) {
66
+ runIds = new Set();
67
+ skillRuns.set(skill, runIds);
68
+ }
69
+ runIds.add(runId);
70
+ }
62
71
  function bucketIdentityOf(record) {
63
- const skillName = record.toolName === 'Skill' && record.skillName !== undefined && record.skillName !== ''
64
- ? record.skillName
65
- : null;
66
- return { toolName: record.toolName, skillName };
72
+ return { toolName: record.toolName, skillName: record.activeSkill?.name ?? null };
67
73
  }
68
74
  /** Lookup key only. It is never parsed; the bucket carries its own identity. */
69
75
  function bucketKeyOf(id) {
@@ -137,18 +143,23 @@ export class TurnCostAttributor {
137
143
  const state = this.getOrCreateSession(record.sessionId);
138
144
  state.totalToolCalls++;
139
145
  const endTime = record.timestamp + (record.durationMs ?? 0);
146
+ const platform = typeof record.platform === 'string' ? record.platform : undefined;
147
+ if (platform !== undefined)
148
+ state.lastPlatform = platform;
140
149
  const id = bucketIdentityOf(record);
141
150
  const key = bucketKeyOf(id);
142
151
  const bucket = getOrCreateBucket(state.buckets, key, id);
143
152
  bucket.callCount++;
144
153
  bucket.totalDurationMs += record.durationMs ?? 0;
154
+ if (record.activeSkill)
155
+ addSkillRun(state.skillRuns, record.activeSkill.name, record.activeSkill.runId);
145
156
  const last = state.pendingTurns[state.pendingTurns.length - 1];
146
157
  if (last && record.timestamp - last.endTime <= TURN_GAP_MS) {
147
158
  last.endTime = endTime;
148
159
  last.toolCalls.push({
149
160
  toolUseId: record.toolUseId,
150
161
  toolName: record.toolName,
151
- skillName: id.skillName,
162
+ skill: record.activeSkill ?? null,
152
163
  bucketKey: key,
153
164
  });
154
165
  return;
@@ -161,11 +172,11 @@ export class TurnCostAttributor {
161
172
  {
162
173
  toolUseId: record.toolUseId,
163
174
  toolName: record.toolName,
164
- skillName: id.skillName,
175
+ skill: record.activeSkill ?? null,
165
176
  bucketKey: key,
166
177
  },
167
178
  ],
168
- platform: typeof record.platform === 'string' ? record.platform : undefined,
179
+ platform,
169
180
  });
170
181
  // A new burst starting while MAX_PENDING_TURNS earlier bursts are still
171
182
  // unclosed means token events have stopped arriving entirely (not just
@@ -175,18 +186,9 @@ export class TurnCostAttributor {
175
186
  state.droppedTokenEvents++;
176
187
  }
177
188
  }
178
- recordSlashCommand(sessionId, skillName) {
179
- const state = this.getOrCreateSession(sessionId);
180
- if (skillName) {
181
- state.activeSlashSkill = skillName;
182
- const id = { toolName: 'SlashCommand', skillName };
183
- const key = bucketKeyOf(id);
184
- const bucket = getOrCreateBucket(state.buckets, key, id);
185
- bucket.callCount++;
186
- }
187
- else {
188
- state.activeSlashSkill = null;
189
- }
189
+ /** Counts a run as soon as it opens, so one that never makes a tool call still has a row. */
190
+ recordSkillRun(sessionId, stamp) {
191
+ addSkillRun(this.getOrCreateSession(sessionId).skillRuns, stamp.name, stamp.runId);
190
192
  }
191
193
  recordTokenEvent(event) {
192
194
  const state = this.getOrCreateSession(event.sessionId);
@@ -201,32 +203,21 @@ export class TurnCostAttributor {
201
203
  }
202
204
  const pendingTurn = state.pendingTurns[0];
203
205
  if (!pendingTurn) {
204
- state.droppedTokenEvents++;
205
- return null;
206
+ return this.responseTurn(state, event);
206
207
  }
207
- // The event must postdate the turn it's closing — one that doesn't can't
208
- // belong to it (this turn hadn't even finished yet). Silently drop it
209
- // rather than risk mis-attributing cost to the wrong turn. Dropped
210
- // events show up as a lower `attributionRate` and a rising
211
- // `droppedTokenEvents`, not as an error.
208
+ // The event must postdate the turn it's closing. One that doesn't can't
209
+ // belong to that burst (it hadn't even finished yet), so it stays queued
210
+ // for the next token report and this one is claimed by no burst. If no
211
+ // later report arrives, the burst is evicted as stale above and counted
212
+ // in `droppedTokenEvents`.
212
213
  const timeSinceLastTool = event.timestamp - pendingTurn.endTime;
213
214
  if (timeSinceLastTool < 0) {
214
- state.droppedTokenEvents++;
215
- return null;
215
+ return this.responseTurn(state, event);
216
216
  }
217
217
  state.pendingTurns.shift();
218
- const usage = {
219
- inputTokens: event.inputTokens,
220
- outputTokens: event.outputTokens,
221
- thinkingTokens: 0,
222
- cacheReadTokens: event.cacheReadTokens,
223
- cacheCreationTokens: event.cacheCreationTokens,
224
- totalTokens: event.inputTokens + event.outputTokens,
225
- };
226
- const breakdown = calculateModelCost(event.model, usage);
227
- const costUsd = breakdown.totalUsd * this.rateMultiplier;
218
+ const costUsd = this.priceTokenEvent(event);
228
219
  const toolCount = pendingTurn.toolCalls.length;
229
- const costPerTool = toolCount > 0 ? costUsd / toolCount : 0;
220
+ const costPerTool = costUsd / toolCount;
230
221
  const attribution = {
231
222
  turnId: pendingTurn.turnId,
232
223
  startTime: pendingTurn.startTime,
@@ -259,17 +250,6 @@ export class TurnCostAttributor {
259
250
  bucket.cacheReadTokens += event.cacheReadTokens / toolCount;
260
251
  bucket.cacheCreationTokens += event.cacheCreationTokens / toolCount;
261
252
  }
262
- if (state.activeSlashSkill !== null) {
263
- const id = { toolName: 'SlashCommand', skillName: state.activeSlashSkill };
264
- const key = bucketKeyOf(id);
265
- const slashBucket = getOrCreateBucket(state.buckets, key, id);
266
- slashBucket.attributedCallCount++;
267
- slashBucket.totalCost += costUsd;
268
- slashBucket.inputTokens += event.inputTokens;
269
- slashBucket.outputTokens += event.outputTokens;
270
- slashBucket.cacheReadTokens += event.cacheReadTokens;
271
- slashBucket.cacheCreationTokens += event.cacheCreationTokens;
272
- }
273
253
  // Minted here rather than reusing `attribution.turnId`: the caller's turn
274
254
  // id comes from the process-global TurnTracker and can repeat across two
275
255
  // attributor turns, so it cannot group AiTurnCost rows.
@@ -279,12 +259,53 @@ export class TurnCostAttributor {
279
259
  calls: pendingTurn.toolCalls.map((tc) => ({
280
260
  toolUseId: tc.toolUseId,
281
261
  toolName: tc.toolName,
282
- skillName: tc.skillName,
262
+ skill: tc.skill,
283
263
  })),
284
264
  platform: pendingTurn.platform,
285
265
  };
286
266
  return closedTurn;
287
267
  }
268
+ /**
269
+ * A token report no tool burst claimed. Local metrics leave it out, but it
270
+ * is priced and returned so the report still reaches AiTurnCost, with
271
+ * `costPerToolCall` equal to the whole cost since it has no calls to split
272
+ * across.
273
+ */
274
+ responseTurn(state, event) {
275
+ const costUsd = this.priceTokenEvent(event);
276
+ const id = randomUUID();
277
+ return {
278
+ id,
279
+ attribution: {
280
+ turnId: id,
281
+ startTime: event.timestamp,
282
+ endTime: event.timestamp,
283
+ toolCalls: [],
284
+ toolNames: [],
285
+ inputTokens: event.inputTokens,
286
+ outputTokens: event.outputTokens,
287
+ cacheReadTokens: event.cacheReadTokens,
288
+ cacheCreationTokens: event.cacheCreationTokens,
289
+ model: event.model,
290
+ estimatedCostUsd: costUsd,
291
+ costPerToolCall: costUsd,
292
+ sessionId: event.sessionId ?? null,
293
+ },
294
+ calls: [],
295
+ platform: event.platform ?? state.lastPlatform,
296
+ };
297
+ }
298
+ priceTokenEvent(event) {
299
+ const usage = {
300
+ inputTokens: event.inputTokens,
301
+ outputTokens: event.outputTokens,
302
+ thinkingTokens: 0,
303
+ cacheReadTokens: event.cacheReadTokens,
304
+ cacheCreationTokens: event.cacheCreationTokens,
305
+ totalTokens: event.inputTokens + event.outputTokens,
306
+ };
307
+ return calculateModelCost(event.model, usage).totalUsd * this.rateMultiplier;
308
+ }
288
309
  getCostForToolCall(toolUseId) {
289
310
  for (const state of this.sessions.values()) {
290
311
  for (const turn of state.turns) {
@@ -341,6 +362,10 @@ export class TurnCostAttributor {
341
362
  for (const counter of BUCKET_COUNTERS)
342
363
  merged[counter] += bucket[counter];
343
364
  }
365
+ for (const [skill, runIds] of state.skillRuns) {
366
+ for (const runId of runIds)
367
+ addSkillRun(aggregate.skillRuns, skill, runId);
368
+ }
344
369
  }
345
370
  // Same cap as each per-session bucket already enforces on insert — keep
346
371
  // only the most recent MAX_TURNS across the merged set, by start time.
@@ -355,12 +380,8 @@ export class TurnCostAttributor {
355
380
  const skillAccum = new Map();
356
381
  for (const bucket of state.buckets.values()) {
357
382
  // costByToolType predates the buckets table and only ever listed tools
358
- // that received a token event, so the fold keeps that contract. The
359
- // SlashCommand channel isn't a real tool call — it charges a turn's
360
- // full, unsplit cost to track skill usage (see recordSlashCommand()),
361
- // and folding it in here would double-count against whichever real
362
- // tool(s) that same turn already split its cost across.
363
- if (bucket.toolName !== 'SlashCommand' && bucket.attributedCallCount > 0) {
383
+ // that received a token event, so the fold keeps that contract.
384
+ if (bucket.attributedCallCount > 0) {
364
385
  let entry = toolTypeAccum.get(bucket.toolName);
365
386
  if (entry === undefined) {
366
387
  entry = {
@@ -390,15 +411,29 @@ export class TurnCostAttributor {
390
411
  }
391
412
  for (const counter of BUCKET_COUNTERS)
392
413
  entry[counter] += bucket[counter];
414
+ // The subagent's own calls carry the same run, so its Agent call's
415
+ // duration would count that time twice.
416
+ if (bucket.toolName === 'Agent')
417
+ entry.totalDurationMs -= bucket.totalDurationMs;
393
418
  }
394
419
  }
420
+ // A run whose replies made no tool calls has no bucket but still counts.
421
+ for (const skillName of state.skillRuns.keys()) {
422
+ if (skillAccum.has(skillName))
423
+ continue;
424
+ const entry = {};
425
+ for (const counter of BUCKET_COUNTERS)
426
+ entry[counter] = 0;
427
+ skillAccum.set(skillName, entry);
428
+ }
395
429
  const costBySkill = {};
396
430
  for (const [skillName, entry] of skillAccum) {
431
+ const invocations = state.skillRuns.get(skillName)?.size ?? 0;
397
432
  costBySkill[skillName] = {
398
- callCount: entry.callCount,
433
+ callCount: invocations,
399
434
  attributedCallCount: entry.attributedCallCount,
400
435
  totalCost: entry.totalCost,
401
- avgCost: entry.attributedCallCount > 0 ? entry.totalCost / entry.attributedCallCount : 0,
436
+ avgCost: invocations > 0 ? entry.totalCost / invocations : 0,
402
437
  inputTokens: Math.round(entry.inputTokens),
403
438
  outputTokens: Math.round(entry.outputTokens),
404
439
  cacheReadTokens: Math.round(entry.cacheReadTokens),
@@ -1 +1 @@
1
- {"version":3,"file":"turn-cost-attributor.js","sourceRoot":"","sources":["../../src/metrics/turn-cost-attributor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-cost-attributor.js","sourceRoot":"","sources":["../../src/metrics/turn-cost-attributor.ts"],"names":[],"mappings":"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"}
@@ -23,13 +23,15 @@ export type SecretCommandFailure = 'not-absolute' | 'not-runnable' | 'timeout' |
23
23
  export declare class SecretCommandError extends Error {
24
24
  readonly field: SecretField;
25
25
  readonly failure: SecretCommandFailure;
26
- constructor(field: SecretField, failure: SecretCommandFailure, extra?: string);
26
+ readonly tier: string | undefined;
27
+ constructor(field: SecretField, failure: SecretCommandFailure, extra?: string, tier?: string);
27
28
  }
28
29
  /**
29
30
  * Runs `argv` (absolute executable path first) with no shell and a stripped env, and returns its stdout minus
30
- * one trailing newline. Throws SecretCommandError on any failure.
31
+ * one trailing newline. Throws SecretCommandError on any failure; a `tier`
32
+ * is named in the error so a multi-account config says which key failed.
31
33
  */
32
- export declare function resolveSecretCommand(field: SecretField, argv: readonly string[], timeoutMs?: number): string;
34
+ export declare function resolveSecretCommand(field: SecretField, argv: readonly string[], timeoutMs?: number, tier?: string): string;
33
35
  type SecretInputs = {
34
36
  readonly env: string | undefined;
35
37
  readonly command: readonly string[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"secret-command.d.ts","sourceRoot":"","sources":["../src/secret-command.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,kBAAkB,CAAC;AAEzE,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,EAAE,CAAC,IAAI,WAAW,GAAG,YAAY;CAAE,CAAC;AAE1E,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAE3D;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAClE;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAC5B,cAAc,GACd,cAAc,GACd,SAAS,GACT,kBAAkB,GAClB,QAAQ,GACR,eAAe,GACf,cAAc,CAAC;AAYnB;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;gBAE3B,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,KAAK,SAAK;CAS1E;AAKD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,SAAS,SAA4B,GACpC,MAAM,CAuCR;AAED,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAGjE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5E,cAAc,CAiBhB"}
1
+ {"version":3,"file":"secret-command.d.ts","sourceRoot":"","sources":["../src/secret-command.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,kBAAkB,CAAC;AAEzE,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,EAAE,CAAC,IAAI,WAAW,GAAG,YAAY;CAAE,CAAC;AAE1E,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAE3D;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAClE;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAC5B,cAAc,GACd,cAAc,GACd,SAAS,GACT,kBAAkB,GAClB,QAAQ,GACR,eAAe,GACf,cAAc,CAAC;AAYnB;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEtB,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,KAAK,SAAK,EAAE,IAAI,CAAC,EAAE,MAAM;CAWzF;AAKD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,SAAS,SAA4B,EACrC,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAyCR;AAED,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAGjE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAC5E,cAAc,CAiBhB"}
@@ -20,29 +20,35 @@ const FAILURE_MESSAGES = {
20
20
  export class SecretCommandError extends Error {
21
21
  field;
22
22
  failure;
23
- constructor(field, failure, extra = '') {
24
- super(`Could not read ${field} from ${field}Command: ${FAILURE_MESSAGES[failure]}${extra}. ` +
23
+ tier;
24
+ constructor(field, failure, extra = '', tier) {
25
+ const where = tier === undefined ? '' : ` for tier "${tier}"`;
26
+ super(`Could not read ${field}${where} from ${field}Command: ${FAILURE_MESSAGES[failure]}${extra}. ` +
25
27
  'Preflight does not show the command output; run the command yourself to see why it failed.');
26
28
  this.name = 'SecretCommandError';
27
29
  this.field = field;
28
30
  this.failure = failure;
31
+ this.tier = tier;
29
32
  }
30
33
  }
31
34
  const SECRET_COMMAND_TIMEOUT_MS = 20_000;
32
35
  const MAX_OUTPUT_BYTES = 64 * 1024;
33
36
  /**
34
37
  * Runs `argv` (absolute executable path first) with no shell and a stripped env, and returns its stdout minus
35
- * one trailing newline. Throws SecretCommandError on any failure.
38
+ * one trailing newline. Throws SecretCommandError on any failure; a `tier`
39
+ * is named in the error so a multi-account config says which key failed.
36
40
  */
37
- export function resolveSecretCommand(field, argv, timeoutMs = SECRET_COMMAND_TIMEOUT_MS) {
41
+ export function resolveSecretCommand(field, argv, timeoutMs = SECRET_COMMAND_TIMEOUT_MS, tier) {
42
+ const fail = (failure, extra = '') => new SecretCommandError(field, failure, extra, tier);
38
43
  const [executable, ...args] = argv;
39
44
  if (executable === undefined || !isAbsolute(executable)) {
40
- throw new SecretCommandError(field, 'not-absolute');
45
+ throw fail('not-absolute');
41
46
  }
42
47
  const { env, stripped } = stripDangerousEnv(process.env);
43
48
  if (stripped.length > 0) {
44
49
  logger.debug('Stripped injection-capable env vars from secret helper env', {
45
50
  field,
51
+ tier,
46
52
  envNames: stripped,
47
53
  });
48
54
  }
@@ -58,19 +64,19 @@ export function resolveSecretCommand(field, argv, timeoutMs = SECRET_COMMAND_TIM
58
64
  if (result.error) {
59
65
  const code = result.error.code;
60
66
  if (code === 'ETIMEDOUT')
61
- throw new SecretCommandError(field, 'timeout', ` after ${timeoutMs}ms`);
67
+ throw fail('timeout', ` after ${timeoutMs}ms`);
62
68
  if (code === 'ENOBUFS')
63
- throw new SecretCommandError(field, 'output-too-large');
64
- throw new SecretCommandError(field, 'not-runnable', code ? ` (${code})` : '');
69
+ throw fail('output-too-large');
70
+ throw fail('not-runnable', code ? ` (${code})` : '');
65
71
  }
66
72
  if (result.signal)
67
- throw new SecretCommandError(field, 'killed', ` (${result.signal})`);
73
+ throw fail('killed', ` (${result.signal})`);
68
74
  if (result.status !== 0) {
69
- throw new SecretCommandError(field, 'non-zero-exit', ` (${String(result.status)})`);
75
+ throw fail('non-zero-exit', ` (${String(result.status)})`);
70
76
  }
71
77
  const output = result.stdout.replace(/\r?\n$/, '');
72
78
  if (output.trim() === '')
73
- throw new SecretCommandError(field, 'empty-output');
79
+ throw fail('empty-output');
74
80
  return output;
75
81
  }
76
82
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"secret-command.js","sourceRoot":"","sources":["../src/secret-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secret-command.js","sourceRoot":"","sources":["../src/secret-command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pricing-data.d.ts","sourceRoot":"","sources":["../../src/shared/pricing-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAejD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2LhD,CAAC;AAsCF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA6jD9D,CAAC"}
1
+ {"version":3,"file":"pricing-data.d.ts","sourceRoot":"","sources":["../../src/shared/pricing-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAejD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4LhD,CAAC;AAwCF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAyvD9D,CAAC"}