@sentry/warden 0.36.1 → 0.38.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 (150) hide show
  1. package/dist/cli/args.d.ts +1 -2
  2. package/dist/cli/args.d.ts.map +1 -1
  3. package/dist/cli/args.js +0 -4
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/cli/commands/init.d.ts.map +1 -1
  6. package/dist/cli/commands/init.js +12 -1
  7. package/dist/cli/commands/init.js.map +1 -1
  8. package/dist/cli/commands/runs.d.ts.map +1 -1
  9. package/dist/cli/commands/runs.js +10 -10
  10. package/dist/cli/commands/runs.js.map +1 -1
  11. package/dist/cli/context.d.ts +3 -0
  12. package/dist/cli/context.d.ts.map +1 -1
  13. package/dist/cli/context.js +4 -1
  14. package/dist/cli/context.js.map +1 -1
  15. package/dist/cli/files.d.ts +9 -3
  16. package/dist/cli/files.d.ts.map +1 -1
  17. package/dist/cli/files.js +28 -8
  18. package/dist/cli/files.js.map +1 -1
  19. package/dist/cli/main.d.ts +28 -2
  20. package/dist/cli/main.d.ts.map +1 -1
  21. package/dist/cli/main.js +149 -65
  22. package/dist/cli/main.js.map +1 -1
  23. package/dist/cli/output/formatters.d.ts +7 -4
  24. package/dist/cli/output/formatters.d.ts.map +1 -1
  25. package/dist/cli/output/formatters.js +51 -17
  26. package/dist/cli/output/formatters.js.map +1 -1
  27. package/dist/cli/output/index.d.ts +2 -2
  28. package/dist/cli/output/index.d.ts.map +1 -1
  29. package/dist/cli/output/index.js +2 -2
  30. package/dist/cli/output/index.js.map +1 -1
  31. package/dist/cli/output/jsonl-schema-gen.d.ts.map +1 -1
  32. package/dist/cli/output/jsonl-schema-gen.js +15 -4
  33. package/dist/cli/output/jsonl-schema-gen.js.map +1 -1
  34. package/dist/cli/output/jsonl.d.ts +176 -47
  35. package/dist/cli/output/jsonl.d.ts.map +1 -1
  36. package/dist/cli/output/jsonl.js +102 -49
  37. package/dist/cli/output/jsonl.js.map +1 -1
  38. package/dist/cli/output/tasks.d.ts.map +1 -1
  39. package/dist/cli/output/tasks.js +3 -6
  40. package/dist/cli/output/tasks.js.map +1 -1
  41. package/dist/cli/output/usage-breakdown.d.ts +92 -0
  42. package/dist/cli/output/usage-breakdown.d.ts.map +1 -0
  43. package/dist/cli/output/usage-breakdown.js +214 -0
  44. package/dist/cli/output/usage-breakdown.js.map +1 -0
  45. package/dist/cli/terminal.d.ts +0 -1
  46. package/dist/cli/terminal.d.ts.map +1 -1
  47. package/dist/cli/terminal.js +4 -30
  48. package/dist/cli/terminal.js.map +1 -1
  49. package/dist/config/loader.d.ts +9 -1
  50. package/dist/config/loader.d.ts.map +1 -1
  51. package/dist/config/loader.js +48 -0
  52. package/dist/config/loader.js.map +1 -1
  53. package/dist/config/schema.d.ts +35 -13
  54. package/dist/config/schema.d.ts.map +1 -1
  55. package/dist/config/schema.js +24 -4
  56. package/dist/config/schema.js.map +1 -1
  57. package/dist/config/writer.d.ts.map +1 -1
  58. package/dist/config/writer.js +0 -6
  59. package/dist/config/writer.js.map +1 -1
  60. package/dist/diff/classify.d.ts +1 -15
  61. package/dist/diff/classify.d.ts.map +1 -1
  62. package/dist/diff/classify.js +1 -55
  63. package/dist/diff/classify.js.map +1 -1
  64. package/dist/event/schedule-context.d.ts +5 -0
  65. package/dist/event/schedule-context.d.ts.map +1 -1
  66. package/dist/event/schedule-context.js +2 -2
  67. package/dist/event/schedule-context.js.map +1 -1
  68. package/dist/index.d.ts +4 -4
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +2 -3
  71. package/dist/index.js.map +1 -1
  72. package/dist/output/github-checks.d.ts +19 -0
  73. package/dist/output/github-checks.d.ts.map +1 -1
  74. package/dist/output/github-checks.js +93 -19
  75. package/dist/output/github-checks.js.map +1 -1
  76. package/dist/output/github-issues.d.ts +1 -19
  77. package/dist/output/github-issues.d.ts.map +1 -1
  78. package/dist/output/github-issues.js +0 -142
  79. package/dist/output/github-issues.js.map +1 -1
  80. package/dist/output/issue-renderer.d.ts.map +1 -1
  81. package/dist/output/issue-renderer.js +0 -3
  82. package/dist/output/issue-renderer.js.map +1 -1
  83. package/dist/output/renderer.d.ts.map +1 -1
  84. package/dist/output/renderer.js +3 -16
  85. package/dist/output/renderer.js.map +1 -1
  86. package/dist/output/stale.d.ts +6 -1
  87. package/dist/output/stale.d.ts.map +1 -1
  88. package/dist/output/stale.js +11 -3
  89. package/dist/output/stale.js.map +1 -1
  90. package/dist/output/types.d.ts +0 -1
  91. package/dist/output/types.d.ts.map +1 -1
  92. package/dist/sdk/analyze.d.ts.map +1 -1
  93. package/dist/sdk/analyze.js +20 -5
  94. package/dist/sdk/analyze.js.map +1 -1
  95. package/dist/sdk/post-process.d.ts.map +1 -1
  96. package/dist/sdk/post-process.js +12 -25
  97. package/dist/sdk/post-process.js.map +1 -1
  98. package/dist/sdk/prepare.d.ts.map +1 -1
  99. package/dist/sdk/prepare.js +14 -5
  100. package/dist/sdk/prepare.js.map +1 -1
  101. package/dist/sdk/prompt.d.ts.map +1 -1
  102. package/dist/sdk/prompt.js +1 -8
  103. package/dist/sdk/prompt.js.map +1 -1
  104. package/dist/sdk/runtimes/claude.d.ts.map +1 -1
  105. package/dist/sdk/runtimes/claude.js +12 -4
  106. package/dist/sdk/runtimes/claude.js.map +1 -1
  107. package/dist/sdk/runtimes/pi.d.ts.map +1 -1
  108. package/dist/sdk/runtimes/pi.js +10 -6
  109. package/dist/sdk/runtimes/pi.js.map +1 -1
  110. package/dist/sdk/runtimes/types.d.ts +8 -2
  111. package/dist/sdk/runtimes/types.d.ts.map +1 -1
  112. package/dist/sdk/runtimes/types.js.map +1 -1
  113. package/dist/sdk/scan-policy.d.ts +32 -0
  114. package/dist/sdk/scan-policy.d.ts.map +1 -0
  115. package/dist/sdk/scan-policy.js +355 -0
  116. package/dist/sdk/scan-policy.js.map +1 -0
  117. package/dist/sdk/types.d.ts +16 -3
  118. package/dist/sdk/types.d.ts.map +1 -1
  119. package/dist/sdk/types.js.map +1 -1
  120. package/dist/sdk/usage.d.ts +9 -1
  121. package/dist/sdk/usage.d.ts.map +1 -1
  122. package/dist/sdk/usage.js +94 -0
  123. package/dist/sdk/usage.js.map +1 -1
  124. package/dist/sdk/verify.d.ts.map +1 -1
  125. package/dist/sdk/verify.js +0 -6
  126. package/dist/sdk/verify.js.map +1 -1
  127. package/dist/sentry-trace.d.ts +3 -3
  128. package/dist/sentry-trace.d.ts.map +1 -1
  129. package/dist/sentry-trace.js +5 -5
  130. package/dist/sentry-trace.js.map +1 -1
  131. package/dist/sentry.d.ts +2 -1
  132. package/dist/sentry.d.ts.map +1 -1
  133. package/dist/sentry.js +12 -9
  134. package/dist/sentry.js.map +1 -1
  135. package/dist/types/index.d.ts +38 -13
  136. package/dist/types/index.d.ts.map +1 -1
  137. package/dist/types/index.js +23 -8
  138. package/dist/types/index.js.map +1 -1
  139. package/package.json +3 -3
  140. package/src/builtin-skills/code-review/SKILL.md +0 -1
  141. package/src/builtin-skills/code-review/SOURCES.md +0 -1
  142. package/src/builtin-skills/security-review/SKILL.md +0 -1
  143. package/dist/cli/fix.d.ts +0 -39
  144. package/dist/cli/fix.d.ts.map +0 -1
  145. package/dist/cli/fix.js +0 -277
  146. package/dist/cli/fix.js.map +0 -1
  147. package/dist/sdk/fix-quality.d.ts +0 -26
  148. package/dist/sdk/fix-quality.d.ts.map +0 -1
  149. package/dist/sdk/fix-quality.js +0 -188
  150. package/dist/sdk/fix-quality.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/cli/files.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { SkillDefinition, WardenConfig, Effort } from '../config/schema.js';
2
2
  import { type SkillRunnerOptions } from '../sdk/runner.js';
3
3
  import { type InvalidPiModelSelector } from '../sdk/runtimes/model-selectors.js';
4
- import type { SkillReport, SeverityThreshold, ConfidenceThreshold } from '../types/index.js';
4
+ import type { SkillReport, SeverityThreshold, ConfidenceThreshold, SkillError } from '../types/index.js';
5
5
  import { type CLIOptions } from './args.js';
6
6
  import { buildLocalEventContext } from './context.js';
7
- import { Reporter, runSkillTasks, type SkillTaskOptions } from './output/index.js';
7
+ import { Reporter, runSkillTasks, type JsonlChunkRecord, type JsonlRunMetadata, type SkillTaskOptions } from './output/index.js';
8
8
  /**
9
9
  * Global abort controller for graceful shutdown on SIGINT.
10
10
  * Used to cancel in-progress SDK queries.
@@ -19,6 +19,32 @@ export declare const interrupted: {
19
19
  };
20
20
  /** Resolve the directory Warden should treat as the invocation root. */
21
21
  export declare function resolveInvocationCwd(baseCwd: string, cliCwd: string | undefined): string;
22
+ /**
23
+ * In-flight JSONL log state for a run. Chunk records are streamed while
24
+ * skills run, then rewritten from final reports after post-processing.
25
+ * A path is dropped from `paths` if its initial write failed.
26
+ */
27
+ export interface RunLog {
28
+ paths: string[];
29
+ primaryLogPath: string;
30
+ primaryLogWritten: boolean;
31
+ outputPath: string | undefined;
32
+ startTime: number;
33
+ baseRun: Omit<JsonlRunMetadata, 'durationMs'>;
34
+ chunks: JsonlChunkRecord[];
35
+ }
36
+ /**
37
+ * Append a report-level JSONL record when streaming has not already captured one.
38
+ */
39
+ export declare function appendReportToRunLog(log: RunLog, report: SkillReport): void;
40
+ /**
41
+ * Build finalized chunk records from streamed chunks and final reports.
42
+ */
43
+ export declare function buildFinalChunkRecords(log: RunLog, reports: SkillReport[], totalDurationMs: number, error?: SkillError): JsonlChunkRecord[];
44
+ /**
45
+ * Render the finalized JSONL content for a run log.
46
+ */
47
+ export declare function renderFinalRunLogContent(log: RunLog, reports: SkillReport[], totalDurationMs: number, error?: SkillError): string;
22
48
  export interface RunSkillSpec {
23
49
  name: string;
24
50
  displayName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
package/dist/cli/main.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { existsSync, readFileSync, renameSync, unlinkSync, writeFileSync } from 'node:fs';
2
2
  import { join, relative, resolve } from 'node:path';
3
3
  import { config as dotenvConfig } from 'dotenv';
4
- import { Sentry, flushSentry, setRepositoryScope, emitRunMetric, getTraceId } from '../sentry.js';
4
+ import { Sentry, flushSentry, setRepositoryScope, emitRunMetric, getTraceId, initSentry } from '../sentry.js';
5
5
  import { emptyToUndefined, loadWardenConfigFile, resolveSkillConfigs } from '../config/loader.js';
6
6
  import { verifyAuth } from '../sdk/runner.js';
7
7
  import { findInvalidPiModelSelector as findInvalidPiModelSelectorTarget, invalidPiModelSelectorMessage, } from '../sdk/runtimes/model-selectors.js';
8
8
  import { mapExtractionErrorCode } from '../sdk/errors.js';
9
- import { mergeAuxiliaryUsage } from '../sdk/usage.js';
9
+ import { aggregateAuxiliaryUsageAttribution, mergeAuxiliaryUsage } from '../sdk/usage.js';
10
10
  import { resolveSkillAsync, SkillLoaderError } from '../skills/loader.js';
11
11
  import { matchTrigger, filterContextByPaths, shouldFail, countFindingsAtOrAbove } from '../triggers/matcher.js';
12
12
  import { filterFindings } from '../types/index.js';
@@ -17,9 +17,8 @@ import { showHelp } from './help.js';
17
17
  import { buildLocalEventContext, buildFileEventContext } from './context.js';
18
18
  import { getRepoRoot, getHeadSha, refExists, getDefaultBranch } from './git.js';
19
19
  import { renderTerminalReport, filterReports } from './terminal.js';
20
- import { Reporter, detectOutputMode, parseVerbosity, Verbosity, runSkillTasks, runSkillTasksWithInk, pluralize, MODEL_DEFAULT_SENTINEL, writeJsonlContent, renderJsonlString, renderJsonlChunkLine, renderJsonlChunkRecords, initJsonlFile, appendJsonlLine, getRepoLogPath, generateRunId, } from './output/index.js';
20
+ import { Reporter, detectOutputMode, parseVerbosity, runSkillTasks, runSkillTasksWithInk, pluralize, MODEL_DEFAULT_SENTINEL, writeJsonlContent, renderJsonlString, renderJsonlChunkLine, renderJsonlChunkRecords, renderJsonlSummaryLine, buildJsonlUsageBreakdown, auxiliaryUsageFromBreakdown, usageStatsHaveValue, initJsonlFile, appendJsonlLine, getRepoLogPath, generateRunId, } from './output/index.js';
21
21
  import { cleanupArtifacts } from './log-cleanup.js';
22
- import { collectFixableFindings, applyAllFixes, runInteractiveFixFlow, renderFixSummary, } from './fix.js';
23
22
  import { UserAbortError } from './input.js';
24
23
  import { runInit } from './commands/init.js';
25
24
  import { runAdd } from './commands/add.js';
@@ -179,6 +178,7 @@ function appendChunkToRunLog(log, skillName, chunk) {
179
178
  if (log.paths.length === 0)
180
179
  return;
181
180
  const auxiliaryUsage = chunk.auxiliaryUsage?.reduce((acc, entry) => mergeAuxiliaryUsage(acc, { [entry.agent]: entry.usage }), undefined);
181
+ const auxiliaryUsageAttribution = aggregateAuxiliaryUsageAttribution(chunk.auxiliaryUsage ?? []);
182
182
  const error = chunk.failed
183
183
  ? {
184
184
  code: chunk.failureCode ?? 'unknown',
@@ -205,9 +205,11 @@ function appendChunkToRunLog(log, skillName, chunk) {
205
205
  },
206
206
  status: error ? 'error' : 'ok',
207
207
  findings: chunk.findings,
208
- usage: chunk.usage,
208
+ usageBreakdown: buildJsonlUsageBreakdown(chunk.usage, auxiliaryUsage, {
209
+ scan: { model: chunk.model },
210
+ auxiliary: auxiliaryUsageAttribution,
211
+ }),
209
212
  durationMs: chunk.durationMs,
210
- auxiliaryUsage,
211
213
  error,
212
214
  trace: chunk.trace,
213
215
  };
@@ -226,7 +228,7 @@ function appendChunkToRunLog(log, skillName, chunk) {
226
228
  catch { /* best-effort */ }
227
229
  }
228
230
  }
229
- function buildReportChunkRecord(log, report, runDurationMs, index = 1, total = 1, error) {
231
+ function buildReportChunkRecord(log, report, runDurationMs, index = 1, total = 1, error, includeReportResults = true) {
230
232
  const reportError = report.error ?? error;
231
233
  return {
232
234
  schemaVersion: 1,
@@ -240,10 +242,14 @@ function buildReportChunkRecord(log, report, runDurationMs, index = 1, total = 1
240
242
  lineRange: '',
241
243
  },
242
244
  status: reportError ? 'error' : report.skippedFiles?.length ? 'skipped' : 'ok',
243
- findings: report.findings,
244
- usage: report.usage,
245
- durationMs: report.durationMs ?? runDurationMs,
246
- auxiliaryUsage: report.auxiliaryUsage,
245
+ findings: includeReportResults ? report.findings : [],
246
+ usageBreakdown: includeReportResults
247
+ ? buildJsonlUsageBreakdown(report.usage, report.auxiliaryUsage, {
248
+ scan: { model: report.model, runtime: report.runtime },
249
+ auxiliary: report.auxiliaryUsageAttribution,
250
+ })
251
+ : undefined,
252
+ durationMs: includeReportResults ? (report.durationMs ?? runDurationMs) : 0,
247
253
  error: reportError,
248
254
  skippedFiles: report.skippedFiles,
249
255
  };
@@ -278,15 +284,22 @@ function hasReportRecord(log, report) {
278
284
  return true;
279
285
  });
280
286
  }
287
+ function hasSkillChunkRecord(chunks, skill) {
288
+ return chunks.some((chunk) => chunk.skill === skill);
289
+ }
281
290
  function shouldStreamReportRecord(log, report) {
282
291
  if (hasReportRecord(log, report))
283
292
  return false;
284
- return Boolean(report.error || report.skippedFiles?.length || !log.chunks.some((chunk) => chunk.skill === report.skill));
293
+ return Boolean(report.error || report.skippedFiles?.length || !hasSkillChunkRecord(log.chunks, report.skill));
285
294
  }
286
- function appendReportToRunLog(log, report) {
295
+ /**
296
+ * Append a report-level JSONL record when streaming has not already captured one.
297
+ */
298
+ export function appendReportToRunLog(log, report) {
287
299
  if (!shouldStreamReportRecord(log, report))
288
300
  return;
289
- const record = buildReportChunkRecord(log, report, Date.now() - log.startTime);
301
+ const hasExistingSkillChunks = hasSkillChunkRecord(log.chunks, report.skill);
302
+ const record = buildReportChunkRecord(log, report, Date.now() - log.startTime, undefined, undefined, undefined, !hasExistingSkillChunks);
290
303
  let line;
291
304
  try {
292
305
  line = renderJsonlChunkLine(record);
@@ -302,6 +315,43 @@ function appendReportToRunLog(log, report) {
302
315
  catch { /* best-effort */ }
303
316
  }
304
317
  }
318
+ function subtractUsage(total, alreadyRecorded) {
319
+ if (!total)
320
+ return undefined;
321
+ const result = {
322
+ inputTokens: Math.max(0, total.inputTokens - (alreadyRecorded?.inputTokens ?? 0)),
323
+ outputTokens: Math.max(0, total.outputTokens - (alreadyRecorded?.outputTokens ?? 0)),
324
+ costUSD: Math.max(0, total.costUSD - (alreadyRecorded?.costUSD ?? 0)),
325
+ };
326
+ if (total.cacheReadInputTokens !== undefined || alreadyRecorded?.cacheReadInputTokens !== undefined) {
327
+ result.cacheReadInputTokens = Math.max(0, (total.cacheReadInputTokens ?? 0) - (alreadyRecorded?.cacheReadInputTokens ?? 0));
328
+ }
329
+ if (total.cacheCreationInputTokens !== undefined || alreadyRecorded?.cacheCreationInputTokens !== undefined) {
330
+ result.cacheCreationInputTokens = Math.max(0, (total.cacheCreationInputTokens ?? 0) - (alreadyRecorded?.cacheCreationInputTokens ?? 0));
331
+ }
332
+ if (total.cacheCreation5mInputTokens !== undefined || alreadyRecorded?.cacheCreation5mInputTokens !== undefined) {
333
+ result.cacheCreation5mInputTokens = Math.max(0, (total.cacheCreation5mInputTokens ?? 0) - (alreadyRecorded?.cacheCreation5mInputTokens ?? 0));
334
+ }
335
+ if (total.cacheCreation1hInputTokens !== undefined || alreadyRecorded?.cacheCreation1hInputTokens !== undefined) {
336
+ result.cacheCreation1hInputTokens = Math.max(0, (total.cacheCreation1hInputTokens ?? 0) - (alreadyRecorded?.cacheCreation1hInputTokens ?? 0));
337
+ }
338
+ if (total.webSearchRequests !== undefined || alreadyRecorded?.webSearchRequests !== undefined) {
339
+ result.webSearchRequests = Math.max(0, (total.webSearchRequests ?? 0) - (alreadyRecorded?.webSearchRequests ?? 0));
340
+ }
341
+ return usageStatsHaveValue(result) ? result : undefined;
342
+ }
343
+ function subtractAuxiliaryUsage(total, alreadyRecorded) {
344
+ if (!total)
345
+ return undefined;
346
+ const missing = {};
347
+ for (const [agent, usage] of Object.entries(total)) {
348
+ const remainder = subtractUsage(usage, alreadyRecorded?.[agent]);
349
+ if (remainder) {
350
+ missing[agent] = remainder;
351
+ }
352
+ }
353
+ return Object.keys(missing).length > 0 ? missing : undefined;
354
+ }
305
355
  function lineRangeIncludes(lineRange, line) {
306
356
  if (!lineRange)
307
357
  return false;
@@ -317,7 +367,30 @@ function findChunkForFinding(chunks, skill, finding) {
317
367
  return sameSkill[0];
318
368
  return sameSkill.find((chunk) => chunk.chunk.file === location.path && lineRangeIncludes(chunk.chunk.lineRange, location.startLine)) ?? sameSkill.find((chunk) => chunk.chunk.file === location.path) ?? sameSkill[0];
319
369
  }
320
- function buildFinalChunkRecords(log, reports, totalDurationMs, error) {
370
+ function buildUsageOnlyChunkRecord(log, report, runDurationMs, auxiliaryUsage) {
371
+ return {
372
+ schemaVersion: 1,
373
+ run: { ...log.baseRun, durationMs: runDurationMs },
374
+ skill: report.skill,
375
+ model: report.model,
376
+ chunk: {
377
+ file: '',
378
+ index: 1,
379
+ total: 1,
380
+ lineRange: 'post-processing',
381
+ },
382
+ status: 'ok',
383
+ findings: [],
384
+ durationMs: 0,
385
+ usageBreakdown: buildJsonlUsageBreakdown(undefined, auxiliaryUsage, {
386
+ auxiliary: report.auxiliaryUsageAttribution,
387
+ }),
388
+ };
389
+ }
390
+ /**
391
+ * Build finalized chunk records from streamed chunks and final reports.
392
+ */
393
+ export function buildFinalChunkRecords(log, reports, totalDurationMs, error) {
321
394
  const finalRun = { ...log.baseRun, durationMs: totalDurationMs };
322
395
  if (log.chunks.length === 0) {
323
396
  if (reports.length === 0 && error) {
@@ -340,16 +413,39 @@ function buildFinalChunkRecords(log, reports, totalDurationMs, error) {
340
413
  ...chunk,
341
414
  run: { ...finalRun },
342
415
  findings: findingsByChunk.get(chunk) ?? [],
416
+ usageBreakdown: chunk.usageBreakdown,
343
417
  }));
344
418
  const finalLog = { ...log, chunks: chunkRecords };
345
419
  const missingReports = reports.filter((report) => shouldStreamReportRecord(finalLog, report));
420
+ const postProcessingUsageRecords = reports.flatMap((report) => {
421
+ const skillChunkRecords = chunkRecords.filter((chunk) => chunk.skill === report.skill);
422
+ if (skillChunkRecords.length === 0)
423
+ return [];
424
+ const recordedAuxiliaryUsage = skillChunkRecords.reduce((acc, chunk) => mergeAuxiliaryUsage(acc, auxiliaryUsageFromBreakdown(chunk.usageBreakdown)), undefined);
425
+ const missingAuxiliaryUsage = subtractAuxiliaryUsage(report.auxiliaryUsage, recordedAuxiliaryUsage);
426
+ return missingAuxiliaryUsage
427
+ ? [buildUsageOnlyChunkRecord(log, report, totalDurationMs, missingAuxiliaryUsage)]
428
+ : [];
429
+ });
346
430
  return [
347
431
  ...chunkRecords,
348
- ...missingReports.map((report) => buildReportChunkRecord(log, report, totalDurationMs, undefined, undefined, error)),
432
+ ...postProcessingUsageRecords,
433
+ ...missingReports.map((report) => {
434
+ const hasExistingSkillChunks = hasSkillChunkRecord(chunkRecords, report.skill);
435
+ return buildReportChunkRecord(log, report, totalDurationMs, undefined, undefined, error, !hasExistingSkillChunks);
436
+ }),
349
437
  ];
350
438
  }
351
439
  /**
352
- * Rewrite the run log with final chunk records. Returns the set of paths that
440
+ * Render the finalized JSONL content for a run log.
441
+ */
442
+ export function renderFinalRunLogContent(log, reports, totalDurationMs, error) {
443
+ const records = buildFinalChunkRecords(log, reports, totalDurationMs, error);
444
+ const run = { ...log.baseRun, durationMs: totalDurationMs };
445
+ return renderJsonlChunkRecords(records) + renderJsonlSummaryLine(reports, run, error);
446
+ }
447
+ /**
448
+ * Rewrite the run log with final records. Returns the set of paths that
353
449
  * accepted the write, so the caller can decide whether to claim
354
450
  * "wrote JSONL output to X" (only true when the final log actually landed).
355
451
  */
@@ -359,8 +455,7 @@ function finalizeRunLog(log, reports, totalDurationMs, error) {
359
455
  return wrote;
360
456
  let content;
361
457
  try {
362
- const records = buildFinalChunkRecords(log, reports, totalDurationMs, error);
363
- content = renderJsonlChunkRecords(records);
458
+ content = renderFinalRunLogContent(log, reports, totalDurationMs, error);
364
459
  }
365
460
  catch {
366
461
  return wrote;
@@ -449,6 +544,24 @@ export function mergeSkillRunnerOptions(base, overrides) {
449
544
  function needsClaudeAuth(items) {
450
545
  return items.some((item) => (item.runtime ?? 'pi') === 'claude');
451
546
  }
547
+ function findRepoPath(cwd) {
548
+ try {
549
+ return getRepoRoot(cwd);
550
+ }
551
+ catch {
552
+ return undefined;
553
+ }
554
+ }
555
+ function loadOptionalConfig(options, repoPath) {
556
+ const configPath = options.configPath
557
+ ? resolveConfigInput(options.configPath)
558
+ : repoPath
559
+ ? resolve(repoPath, 'warden.toml')
560
+ : null;
561
+ return configPath && existsSync(configPath)
562
+ ? loadWardenConfigFile(configPath)
563
+ : null;
564
+ }
452
565
  /**
453
566
  * Find the first Pi runner option using a model ID that is not provider/model.
454
567
  */
@@ -615,7 +728,7 @@ async function outputResultsAndHandleFixes(processed, options, reporter, runLog,
615
728
  const { reports, filteredReports, hasFailure, failureReasons } = processed;
616
729
  const traceId = runLog.baseRun.traceId;
617
730
  const finalizedPaths = finalizeRunLog(runLog, reports, totalDuration);
618
- // Only claim --output succeeded if the summary actually landed there.
731
+ // Only claim --output succeeded if finalization actually landed there.
619
732
  if (runLog.outputPath) {
620
733
  if (finalizedPaths.has(runLog.outputPath)) {
621
734
  reporter.success(`Wrote JSONL output to ${runLog.outputPath}`);
@@ -624,22 +737,12 @@ async function outputResultsAndHandleFixes(processed, options, reporter, runLog,
624
737
  reporter.warning(`Failed to write output file: ${runLog.outputPath}`);
625
738
  }
626
739
  }
627
- // Collect fixable findings early so we know whether to suppress diffs in the report
628
- const fixableFindings = collectFixableFindings(filteredReports);
629
- const willStepThrough = fixableFindings.length > 0
630
- && !interrupted.value
631
- && !failFastAborted
632
- && !options.json
633
- && !options.fix
634
- && reporter.verbosity !== Verbosity.Quiet
635
- && reporter.mode.isTTY
636
- && process.stdin.isTTY;
637
740
  reporter.blank();
638
741
  if (options.json) {
639
742
  // Prefer reading the on-disk log (per-skill durationMs is a snapshot).
640
- // Only read it back if finalize actually landed the summary there;
743
+ // Only read it back if finalization actually landed there;
641
744
  // a half-written file should fall through to the in-memory render.
642
- // The fallback renders the same chunk-record shape in memory.
745
+ // The fallback renders the same finalized JSONL shape in memory.
643
746
  let jsonlContent;
644
747
  if (finalizedPaths.has(runLog.primaryLogPath)) {
645
748
  try {
@@ -649,7 +752,7 @@ async function outputResultsAndHandleFixes(processed, options, reporter, runLog,
649
752
  }
650
753
  if (!jsonlContent) {
651
754
  try {
652
- jsonlContent = renderJsonlChunkRecords(buildFinalChunkRecords(runLog, reports, totalDuration));
755
+ jsonlContent = renderFinalRunLogContent(runLog, reports, totalDuration);
653
756
  }
654
757
  catch (err) {
655
758
  reporter.error(`Failed to render JSONL output: ${err instanceof Error ? err.message : String(err)}`);
@@ -659,7 +762,7 @@ async function outputResultsAndHandleFixes(processed, options, reporter, runLog,
659
762
  process.stdout.write(jsonlContent);
660
763
  }
661
764
  else {
662
- console.log(renderTerminalReport(filteredReports, reporter.mode, { suppressFixDiffs: willStepThrough, verbosity: reporter.verbosity }));
765
+ console.log(renderTerminalReport(filteredReports, reporter.mode, { verbosity: reporter.verbosity }));
663
766
  }
664
767
  // Show interrupted / fail-fast banner before summary
665
768
  if (failFastAborted) {
@@ -677,17 +780,6 @@ async function outputResultsAndHandleFixes(processed, options, reporter, runLog,
677
780
  if (!options.json && runLog.primaryLogWritten) {
678
781
  reporter.dim(`Log: ${runLog.primaryLogPath}`);
679
782
  }
680
- // Handle fixes: --fix (automatic) always runs, interactive step-through in TTY mode
681
- if (fixableFindings.length > 0) {
682
- if (options.fix) {
683
- const fixSummary = applyAllFixes(fixableFindings);
684
- renderFixSummary(fixSummary, reporter);
685
- }
686
- else if (willStepThrough && !interrupted.value) {
687
- const fixSummary = await runInteractiveFixFlow(fixableFindings, reporter);
688
- renderFixSummary(fixSummary, reporter);
689
- }
690
- }
691
783
  // Interrupted takes precedence for exit code
692
784
  if (interrupted.value) {
693
785
  return 130;
@@ -706,26 +798,8 @@ export async function runSkills(context, options, reporter) {
706
798
  const startTime = Date.now();
707
799
  // Claude runtime can fall back to local Claude Code auth.
708
800
  const apiKey = getAnthropicApiKey();
709
- // Try to find repo root for config loading
710
- let repoPath;
711
- try {
712
- repoPath = getRepoRoot(cwd);
713
- }
714
- catch {
715
- // Not in a git repo - that's fine for file mode
716
- }
717
- // Resolve config path
718
- let configPath = null;
719
- if (options.configPath) {
720
- configPath = resolveConfigInput(options.configPath);
721
- }
722
- else if (repoPath) {
723
- configPath = resolve(repoPath, 'warden.toml');
724
- }
725
- // Load config if available
726
- const config = configPath && existsSync(configPath)
727
- ? loadWardenConfigFile(configPath)
728
- : null;
801
+ const repoPath = findRepoPath(cwd);
802
+ const config = loadOptionalConfig(options, repoPath);
729
803
  const defaultModel = resolveCliDefaultModel(config, options.model);
730
804
  const defaultAuxiliaryModel = resolveCliDefaultAuxiliaryModel(config);
731
805
  const defaultSynthesisModel = resolveCliDefaultSynthesisModel(config);
@@ -829,6 +903,9 @@ export async function runSkills(context, options, reporter) {
829
903
  effort: defaultEffort,
830
904
  batchDelayMs: config?.defaults?.batchDelayMs,
831
905
  maxContextFiles: config?.defaults?.chunking?.maxContextFiles,
906
+ ignore: config?.defaults?.ignore,
907
+ scan: config?.defaults?.scan,
908
+ chunking: config?.defaults?.chunking,
832
909
  auxiliaryMaxRetries: config?.defaults?.auxiliary?.maxRetries ??
833
910
  config?.defaults?.auxiliaryMaxRetries,
834
911
  verifyFindings: config?.defaults?.verification?.enabled !== false,
@@ -913,11 +990,14 @@ export async function runSkills(context, options, reporter) {
913
990
  }
914
991
  async function runFileMode(filePatterns, options, reporter) {
915
992
  const cwd = process.cwd();
993
+ const config = loadOptionalConfig(options, findRepoPath(cwd));
916
994
  // Build context from files
917
995
  reporter.step('Building context from files...');
918
996
  const context = await buildFileEventContext({
919
997
  patterns: filePatterns,
920
998
  cwd,
999
+ ignore: config?.defaults?.ignore,
1000
+ scan: config?.defaults?.scan,
921
1001
  });
922
1002
  const pullRequest = context.pullRequest;
923
1003
  if (!pullRequest) {
@@ -1127,6 +1207,9 @@ async function runConfigMode(options, reporter) {
1127
1207
  abortController,
1128
1208
  maxTurns: trigger.maxTurns,
1129
1209
  maxContextFiles: config.defaults?.chunking?.maxContextFiles,
1210
+ ignore: trigger.ignore,
1211
+ scan: trigger.scan,
1212
+ chunking: trigger.chunking,
1130
1213
  auxiliaryMaxRetries: trigger.auxiliaryMaxRetries,
1131
1214
  verifyFindings: trigger.verifyFindings,
1132
1215
  captureTraces: options.traces,
@@ -1336,6 +1419,7 @@ export async function main() {
1336
1419
  // Not in a git repo - use cwd
1337
1420
  }
1338
1421
  loadEnvFiles(envDir);
1422
+ initSentry('cli');
1339
1423
  // Show header (unless JSON output or quiet)
1340
1424
  if (!options.json) {
1341
1425
  reporter.header();