@sentry/warden 0.10.0 → 0.12.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 (82) hide show
  1. package/.mcp.json +8 -0
  2. package/agents.toml +7 -0
  3. package/dist/cli/args.d.ts +1 -0
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +5 -0
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/commands/init.d.ts.map +1 -1
  8. package/dist/cli/commands/init.js +18 -1
  9. package/dist/cli/commands/init.js.map +1 -1
  10. package/dist/cli/fix.d.ts.map +1 -1
  11. package/dist/cli/fix.js +1 -22
  12. package/dist/cli/fix.js.map +1 -1
  13. package/dist/cli/input.d.ts +5 -0
  14. package/dist/cli/input.d.ts.map +1 -0
  15. package/dist/cli/input.js +23 -0
  16. package/dist/cli/input.js.map +1 -0
  17. package/dist/cli/log-cleanup.d.ts +18 -0
  18. package/dist/cli/log-cleanup.d.ts.map +1 -0
  19. package/dist/cli/log-cleanup.js +68 -0
  20. package/dist/cli/log-cleanup.js.map +1 -0
  21. package/dist/cli/main.d.ts.map +1 -1
  22. package/dist/cli/main.js +135 -38
  23. package/dist/cli/main.js.map +1 -1
  24. package/dist/cli/output/formatters.d.ts +5 -0
  25. package/dist/cli/output/formatters.d.ts.map +1 -1
  26. package/dist/cli/output/formatters.js +7 -0
  27. package/dist/cli/output/formatters.js.map +1 -1
  28. package/dist/cli/output/index.d.ts +2 -2
  29. package/dist/cli/output/index.d.ts.map +1 -1
  30. package/dist/cli/output/index.js +2 -2
  31. package/dist/cli/output/index.js.map +1 -1
  32. package/dist/cli/output/ink-runner.d.ts.map +1 -1
  33. package/dist/cli/output/ink-runner.js +64 -30
  34. package/dist/cli/output/ink-runner.js.map +1 -1
  35. package/dist/cli/output/jsonl.d.ts +236 -70
  36. package/dist/cli/output/jsonl.d.ts.map +1 -1
  37. package/dist/cli/output/jsonl.js +118 -32
  38. package/dist/cli/output/jsonl.js.map +1 -1
  39. package/dist/cli/output/tasks.d.ts +11 -0
  40. package/dist/cli/output/tasks.d.ts.map +1 -1
  41. package/dist/cli/output/tasks.js +80 -8
  42. package/dist/cli/output/tasks.js.map +1 -1
  43. package/dist/cli/terminal.d.ts +0 -4
  44. package/dist/cli/terminal.d.ts.map +1 -1
  45. package/dist/cli/terminal.js +0 -43
  46. package/dist/cli/terminal.js.map +1 -1
  47. package/dist/config/schema.d.ts +28 -0
  48. package/dist/config/schema.d.ts.map +1 -1
  49. package/dist/config/schema.js +14 -0
  50. package/dist/config/schema.js.map +1 -1
  51. package/dist/output/dedup.d.ts +14 -5
  52. package/dist/output/dedup.d.ts.map +1 -1
  53. package/dist/output/dedup.js +48 -25
  54. package/dist/output/dedup.js.map +1 -1
  55. package/dist/output/issue-renderer.d.ts.map +1 -1
  56. package/dist/output/issue-renderer.js +6 -18
  57. package/dist/output/issue-renderer.js.map +1 -1
  58. package/dist/output/renderer.d.ts.map +1 -1
  59. package/dist/output/renderer.js +39 -60
  60. package/dist/output/renderer.js.map +1 -1
  61. package/dist/sdk/analyze.d.ts.map +1 -1
  62. package/dist/sdk/analyze.js +10 -5
  63. package/dist/sdk/analyze.js.map +1 -1
  64. package/dist/sdk/extract.d.ts +2 -1
  65. package/dist/sdk/extract.d.ts.map +1 -1
  66. package/dist/sdk/extract.js +4 -3
  67. package/dist/sdk/extract.js.map +1 -1
  68. package/dist/sdk/haiku.d.ts +3 -0
  69. package/dist/sdk/haiku.d.ts.map +1 -1
  70. package/dist/sdk/haiku.js +5 -4
  71. package/dist/sdk/haiku.js.map +1 -1
  72. package/dist/sdk/prompt.d.ts +2 -0
  73. package/dist/sdk/prompt.d.ts.map +1 -1
  74. package/dist/sdk/prompt.js +19 -12
  75. package/dist/sdk/prompt.js.map +1 -1
  76. package/dist/sdk/types.d.ts +4 -0
  77. package/dist/sdk/types.d.ts.map +1 -1
  78. package/dist/types/index.d.ts +6 -0
  79. package/dist/types/index.d.ts.map +1 -1
  80. package/dist/types/index.js +2 -0
  81. package/dist/types/index.js.map +1 -1
  82. package/package.json +3 -3
@@ -12,11 +12,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
12
  * Reporter spec: specs/reporters.md
13
13
  */
14
14
  import { useState, useEffect } from 'react';
15
- import { render, Box, Text } from 'ink';
15
+ import { render, Box, Text, Static } from 'ink';
16
16
  import chalk from 'chalk';
17
- import { runSkillTask, } from './tasks.js';
18
- import { formatDuration, formatCost, truncate, countBySeverity, formatSeverityDot } from './formatters.js';
19
- import { runPool, Semaphore } from '../../utils/index.js';
17
+ import { composeTasksWithFailFast, runComposedSkillTasks, } from './tasks.js';
18
+ import { formatDuration, formatCost, truncate, countBySeverity, formatSeverityDot, pluralize } from './formatters.js';
19
+ import { Semaphore } from '../../utils/index.js';
20
20
  import { Verbosity } from './verbosity.js';
21
21
  import { ICON_CHECK, ICON_SKIPPED, ICON_PENDING, ICON_ERROR, SPINNER_FRAMES } from './icons.js';
22
22
  import figures from 'figures';
@@ -54,11 +54,11 @@ function CompletedSkill({ skill }) {
54
54
  }
55
55
  return (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: ICON_CHECK }), " ", skill.displayName, duration && _jsxs(Text, { dimColor: true, children: [" [", duration, "]"] }), findingCount > 0 && _jsxs(Text, { children: [" ", findingCount, " ", findingCount === 1 ? 'finding' : 'findings'] }), cost !== undefined && cost > 0 && _jsxs(Text, { dimColor: true, children: [" ", formatCost(cost)] })] }));
56
56
  }
57
- function SkillRunner({ skills, interrupted }) {
57
+ function SkillRunner({ skills, warnings, interrupted, failFastTriggered }) {
58
58
  const completed = skills.filter((s) => s.status === 'done' || s.status === 'skipped' || s.status === 'error');
59
59
  const running = skills.filter((s) => s.status === 'running');
60
60
  const pending = skills.filter((s) => s.status === 'pending');
61
- return (_jsxs(Box, { flexDirection: "column", children: [completed.map((skill) => (_jsx(CompletedSkill, { skill: skill }, skill.name))), running.map((skill) => (_jsx(RunningSkill, { skill: skill }, skill.name))), pending.map((skill) => (_jsxs(Text, { dimColor: true, children: [ICON_PENDING, " ", skill.displayName] }, skill.name))), interrupted && (_jsxs(Text, { color: "yellow", dimColor: true, children: [figures.warning, " Interrupted, finishing up... (press Ctrl+C again to force exit)"] }))] }));
61
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Static, { items: warnings, children: (warning, index) => (_jsx(Text, { children: warning }, index)) }), completed.map((skill) => (_jsx(CompletedSkill, { skill: skill }, skill.name))), running.map((skill) => (_jsx(RunningSkill, { skill: skill }, skill.name))), pending.map((skill) => (_jsxs(Text, { dimColor: true, children: [ICON_PENDING, " ", skill.displayName] }, skill.name))), failFastTriggered && (_jsxs(Text, { color: "yellow", dimColor: true, children: [figures.warning, " Stopping ", '\u2014', " finding detected (--fail-fast)"] })), interrupted && !failFastTriggered && (_jsxs(Text, { color: "yellow", dimColor: true, children: [figures.warning, " Interrupted, finishing up... (press Ctrl+C again to force exit)"] }))] }));
62
62
  }
63
63
  /** Create a terminal skill state for skills that were skipped or errored before starting. */
64
64
  function makeTerminalSkillState(tasks, name, overrides) {
@@ -102,10 +102,6 @@ function printFileSummary(file) {
102
102
  line += chalk.dim(` ${formatCost(file.usage.costUSD)}`);
103
103
  process.stderr.write(`${line}\n`);
104
104
  }
105
- else if (file.status === 'skipped') {
106
- const filename = truncate(file.filename, 50);
107
- process.stderr.write(` ${chalk.yellow(ICON_SKIPPED)} ${filename} ${chalk.dim('[skipped]')}\n`);
108
- }
109
105
  }
110
106
  /** Print the full skill + file breakdown to stderr after Ink unmounts. */
111
107
  function printSkillSummary(skillStates) {
@@ -127,6 +123,10 @@ function printSkillSummary(skillStates) {
127
123
  for (const file of skill.files) {
128
124
  printFileSummary(file);
129
125
  }
126
+ const skippedCount = skill.files.filter((f) => f.status === 'skipped').length;
127
+ if (skippedCount > 0) {
128
+ process.stderr.write(` ${chalk.dim(`${skippedCount} ${pluralize(skippedCount, 'file')} skipped`)}\n`);
129
+ }
130
130
  }
131
131
  }
132
132
  }
@@ -134,21 +134,34 @@ function printSkillSummary(skillStates) {
134
134
  * Run skill tasks with Ink-based real-time progress display.
135
135
  */
136
136
  export async function runSkillTasksWithInk(tasks, options) {
137
- const { verbosity, concurrency } = options;
137
+ const { verbosity, concurrency, failFastController } = options;
138
138
  if (tasks.length === 0 || verbosity === Verbosity.Quiet) {
139
139
  // No tasks or quiet mode - run without UI using global semaphore
140
140
  const semaphore = new Semaphore(concurrency);
141
- const results = await runPool(tasks, tasks.length, (task) => runSkillTask(task, Number.MAX_SAFE_INTEGER, noopCallbacks, semaphore), { shouldAbort: () => tasks[0]?.runnerOptions?.abortController?.signal.aborted ?? false });
142
- return results;
141
+ const composedTasks = composeTasksWithFailFast(tasks, failFastController);
142
+ // Wrap noopCallbacks to detect findings and trigger fail-fast
143
+ const callbacks = failFastController
144
+ ? {
145
+ ...noopCallbacks,
146
+ onFileUpdate: (_skillName, _filename, updates) => {
147
+ if (updates.status === 'done' && updates.findings && updates.findings.length > 0) {
148
+ failFastController.abort();
149
+ }
150
+ },
151
+ }
152
+ : noopCallbacks;
153
+ return runComposedSkillTasks(composedTasks, callbacks, semaphore);
143
154
  }
144
155
  // Track skill states
145
156
  const skillStates = [];
146
- // Print header before Ink starts
147
- process.stderr.write('\x1b[1mSKILLS\x1b[0m\n');
157
+ // Warnings are rendered via Ink's Static component so they appear above the
158
+ // dynamic spinner area without corrupting it.
159
+ const warnings = [];
148
160
  // Track interrupt state for rendering in the Ink component
149
161
  let interrupted = false;
162
+ let failFastTriggered = false;
150
163
  // Create Ink instance
151
- const { rerender, unmount, clear } = render(_jsx(SkillRunner, { skills: skillStates, interrupted: false }), { stdout: process.stderr });
164
+ const { rerender, unmount, clear } = render(_jsx(SkillRunner, { skills: skillStates, warnings: [], interrupted: false, failFastTriggered: false }), { stdout: process.stderr });
152
165
  // Batch UI updates to prevent rapid consecutive rerenders that cause duplicate lines.
153
166
  // Without batching, multiple callbacks firing in quick succession (e.g., 5 files
154
167
  // starting simultaneously) trigger 5 immediate rerenders, which Ink cannot
@@ -163,14 +176,24 @@ export async function runSkillTasksWithInk(tasks, options) {
163
176
  updatePending = false;
164
177
  if (unmounted)
165
178
  return;
166
- rerender(_jsx(SkillRunner, { skills: [...skillStates], interrupted: interrupted }));
179
+ rerender(_jsx(SkillRunner, { skills: [...skillStates], warnings: [...warnings], interrupted: interrupted, failFastTriggered: failFastTriggered }));
167
180
  });
168
181
  };
169
182
  // Listen for abort signal to show interrupt message in the Ink UI
170
183
  const abortSignal = tasks[0]?.runnerOptions?.abortController?.signal;
171
184
  if (abortSignal && !abortSignal.aborted) {
172
185
  abortSignal.addEventListener('abort', () => {
173
- interrupted = true;
186
+ // Only show interrupt message for user SIGINT, not fail-fast
187
+ if (!failFastController?.signal.aborted) {
188
+ interrupted = true;
189
+ updateUI();
190
+ }
191
+ }, { once: true });
192
+ }
193
+ // Show fail-fast message when triggered
194
+ if (failFastController) {
195
+ failFastController.signal.addEventListener('abort', () => {
196
+ failFastTriggered = true;
174
197
  updateUI();
175
198
  }, { once: true });
176
199
  }
@@ -195,6 +218,10 @@ export async function runSkillTasksWithInk(tasks, options) {
195
218
  if (file) {
196
219
  Object.assign(file, updates);
197
220
  updateUI();
221
+ // Fail-fast: abort when a file completes with findings
222
+ if (failFastController && updates.status === 'done' && updates.findings && updates.findings.length > 0) {
223
+ failFastController.abort();
224
+ }
198
225
  }
199
226
  }
200
227
  },
@@ -216,33 +243,34 @@ export async function runSkillTasksWithInk(tasks, options) {
216
243
  }
217
244
  updateUI();
218
245
  },
219
- // CAUTION: Direct stderr writes while Ink is running can cause display glitches.
220
- // These callbacks are rare (large prompts, debug mode) so the tradeoff is acceptable.
221
- // If these cause issues, consider queueing messages and printing after unmount().
222
246
  onLargePrompt: (_skillName, filename, lineRange, chars, estimatedTokens) => {
223
247
  const location = `${filename}:${lineRange}`;
224
248
  const size = `${Math.round(chars / 1000)}k chars (~${Math.round(estimatedTokens / 1000)}k tokens)`;
225
- process.stderr.write(`\x1b[33m${figures.warning}\x1b[0m Large prompt for ${location}: ${size}\n`);
249
+ warnings.push(`${chalk.yellow(figures.warning)} Large prompt for ${location}: ${size}`);
250
+ updateUI();
226
251
  },
227
252
  onPromptSize: verbosity >= Verbosity.Debug
228
253
  ? (_skillName, filename, lineRange, systemChars, userChars, totalChars, estimatedTokens) => {
229
254
  const location = `${filename}:${lineRange}`;
230
- process.stderr.write(`\x1b[2m[debug] Prompt for ${location}: system=${systemChars}, user=${userChars}, total=${totalChars} chars (~${estimatedTokens} tokens)\x1b[0m\n`);
255
+ warnings.push(chalk.dim(`[debug] Prompt for ${location}: system=${systemChars}, user=${userChars}, total=${totalChars} chars (~${estimatedTokens} tokens)`));
256
+ updateUI();
231
257
  }
232
258
  : undefined,
233
259
  onHunkFailed: verbosity >= Verbosity.Verbose
234
260
  ? (_skillName, filename, lineRange, error) => {
235
261
  const location = `${filename}:${lineRange}`;
236
- process.stderr.write(`\x1b[33m${figures.warning}\x1b[0m Chunk failed: ${location} \x1b[2m\u2014 ${error}\x1b[0m\n`);
262
+ warnings.push(`${chalk.yellow(figures.warning)} Chunk failed: ${location} ${chalk.dim(`\u2014 ${error}`)}`);
263
+ updateUI();
237
264
  }
238
265
  : undefined,
239
266
  onExtractionFailure: verbosity >= Verbosity.Verbose
240
267
  ? (_skillName, filename, lineRange, error, preview) => {
241
268
  const location = `${filename}:${lineRange}`;
242
- process.stderr.write(`\x1b[33m${figures.warning}\x1b[0m Extraction failed: ${location} \x1b[2m\u2014 ${error}\x1b[0m\n`);
269
+ warnings.push(`${chalk.yellow(figures.warning)} Extraction failed: ${location} ${chalk.dim(`\u2014 ${error}`)}`);
243
270
  if (verbosity >= Verbosity.Debug && preview) {
244
- process.stderr.write(`\x1b[2m[debug] Output preview: ${preview.slice(0, 200)}\x1b[0m\n`);
271
+ warnings.push(chalk.dim(`[debug] Output preview: ${preview.slice(0, 200)}`));
245
272
  }
273
+ updateUI();
246
274
  }
247
275
  : undefined,
248
276
  onRetry: verbosity >= Verbosity.Verbose
@@ -250,19 +278,25 @@ export async function runSkillTasksWithInk(tasks, options) {
250
278
  const location = `${filename}:${lineRange}`;
251
279
  const retryInfo = `attempt ${attempt}/${maxRetries}`;
252
280
  const delay = delayMs > 0 ? `, retrying in ${Math.round(delayMs / 1000)}s` : '';
253
- process.stderr.write(`\x1b[2m[debug] Retry ${location} (${retryInfo}${delay}): ${error}\x1b[0m\n`);
281
+ warnings.push(chalk.dim(`[debug] Retry ${location} (${retryInfo}${delay}): ${error}`));
282
+ updateUI();
254
283
  }
255
284
  : undefined,
256
285
  };
257
286
  // Global semaphore gates file-level work across all skills.
258
287
  const semaphore = new Semaphore(concurrency);
288
+ // Compose per-task abort controllers: fire on either SIGINT or fail-fast
289
+ const composedTasks = composeTasksWithFailFast(tasks, failFastController);
259
290
  // Launch all skills in parallel; the semaphore is the sole concurrency gate.
260
- const results = await runPool(tasks, tasks.length, (task) => runSkillTask(task, Number.MAX_SAFE_INTEGER, callbacks, semaphore), { shouldAbort: () => tasks[0]?.runnerOptions?.abortController?.signal.aborted ?? false });
261
- // Cleanup - set unmounted flag before unmount to prevent pending setImmediate
262
- // callbacks from calling rerender on the unmounted Ink instance
291
+ const results = await runComposedSkillTasks(composedTasks, callbacks, semaphore);
292
+ // Flush any pending setImmediate from updateUI so last-tick warnings are
293
+ // rendered before we tear down. setImmediate is FIFO, so our callback runs
294
+ // after the queued rerender.
295
+ await new Promise((resolve) => setImmediate(resolve));
263
296
  unmounted = true;
264
297
  clear();
265
298
  unmount();
299
+ process.stderr.write(`${chalk.bold('SKILLS')}\n`);
266
300
  printSkillSummary(skillStates);
267
301
  return results;
268
302
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ink-runner.js","sourceRoot":"","sources":["../../../src/cli/output/ink-runner.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ink-runner.js","sourceRoot":"","sources":["../../../src/cli/output/ink-runner.tsx"],"names":[],"mappings":"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"}
@@ -1,87 +1,253 @@
1
- import type { SkillReport, UsageStats, AuxiliaryUsageMap } from '../../types/index.js';
2
- import type { FixStatus } from '../../action/fix-evaluation/types.js';
1
+ import { z } from 'zod';
2
+ import type { SkillReport } from '../../types/index.js';
3
3
  /**
4
- * Get the default run logs directory.
5
- * Uses WARDEN_STATE_DIR env var if set, otherwise ~/.local/warden/runs
4
+ * Generate a unique run ID for this execution.
6
5
  */
7
- export declare function getRunLogsDir(): string;
6
+ export declare function generateRunId(): string;
8
7
  /**
9
- * Generate a run log filename from directory name and timestamp.
10
- * Format: {dirname}_{timestamp}.jsonl
11
- * Timestamp has colons replaced with hyphens for filesystem compatibility.
8
+ * Get the first 8 hex chars (no dashes) of a UUID for use in filenames.
12
9
  */
13
- export declare function generateRunLogFilename(cwd: string, timestamp?: Date): string;
10
+ export declare function shortRunId(runId: string): string;
14
11
  /**
15
- * Get the full path for an automatic run log.
12
+ * Get the repo-local log file path.
13
+ * Returns: {repoRoot}/.warden/logs/{ISO-datetime}-{runId8}.jsonl
16
14
  */
17
- export declare function getRunLogPath(cwd: string, timestamp?: Date): string;
15
+ export declare function getRepoLogPath(repoRoot: string, runId: string, timestamp?: Date): string;
18
16
  /**
19
- * Metadata for a JSONL run record.
17
+ * JSONL record schemas for Warden's structured run output.
18
+ *
19
+ * Formal JSON Schema: specs/jsonl-schema.json
20
+ * Example payloads: specs/jsonl-examples.jsonl
21
+ * Reporter spec: specs/reporters.md Section 3 "JSONL Specification"
20
22
  */
21
- export interface JsonlRunMetadata {
22
- timestamp: string;
23
- durationMs: number;
24
- cwd: string;
25
- traceId?: string;
26
- }
27
- /**
28
- * Per-file record within a JSONL skill record.
29
- */
30
- export interface JsonlFileRecord {
31
- filename: string;
32
- findings: number;
33
- durationMs?: number;
34
- usage?: UsageStats;
35
- }
36
- /**
37
- * A single JSONL record representing one skill's report.
38
- * See specs/reporters.md Section 3 "JSONL Specification" for schema.
39
- */
40
- export interface JsonlRecord {
41
- run: JsonlRunMetadata;
42
- skill: string;
43
- summary: string;
44
- findings: SkillReport['findings'];
45
- metadata?: Record<string, unknown>;
46
- durationMs?: number;
47
- usage?: UsageStats;
48
- auxiliaryUsage?: AuxiliaryUsageMap;
49
- files?: JsonlFileRecord[];
50
- failedHunks?: number;
51
- failedExtractions?: number;
52
- }
53
- /**
54
- * Per-evaluation detail for JSONL fix evaluation records.
55
- */
56
- export interface JsonlFixEvalDetail {
57
- path: string;
58
- line: number;
59
- findingId?: string;
60
- verdict: FixStatus | 're_detected';
61
- reasoning?: string;
62
- durationMs: number;
63
- usage: UsageStats;
64
- }
23
+ /** Metadata common to every JSONL record. */
24
+ export declare const JsonlRunMetadataSchema: z.ZodObject<{
25
+ timestamp: z.ZodString;
26
+ durationMs: z.ZodNumber;
27
+ cwd: z.ZodString;
28
+ runId: z.ZodString;
29
+ traceId: z.ZodOptional<z.ZodString>;
30
+ }, z.core.$strip>;
31
+ export type JsonlRunMetadata = z.infer<typeof JsonlRunMetadataSchema>;
32
+ /** Per-file breakdown within a skill record. */
33
+ export declare const JsonlFileRecordSchema: z.ZodObject<{
34
+ filename: z.ZodString;
35
+ findings: z.ZodNumber;
36
+ durationMs: z.ZodOptional<z.ZodNumber>;
37
+ usage: z.ZodOptional<z.ZodObject<{
38
+ inputTokens: z.ZodNumber;
39
+ outputTokens: z.ZodNumber;
40
+ cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
41
+ cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
42
+ costUSD: z.ZodNumber;
43
+ }, z.core.$strip>>;
44
+ }, z.core.$strip>;
45
+ export type JsonlFileRecord = z.infer<typeof JsonlFileRecordSchema>;
46
+ /** One skill's analysis results. */
47
+ export declare const JsonlRecordSchema: z.ZodObject<{
48
+ run: z.ZodObject<{
49
+ timestamp: z.ZodString;
50
+ durationMs: z.ZodNumber;
51
+ cwd: z.ZodString;
52
+ runId: z.ZodString;
53
+ traceId: z.ZodOptional<z.ZodString>;
54
+ }, z.core.$strip>;
55
+ skill: z.ZodString;
56
+ summary: z.ZodString;
57
+ findings: z.ZodArray<z.ZodObject<{
58
+ id: z.ZodString;
59
+ severity: z.ZodEnum<{
60
+ critical: "critical";
61
+ high: "high";
62
+ medium: "medium";
63
+ low: "low";
64
+ info: "info";
65
+ }>;
66
+ confidence: z.ZodOptional<z.ZodEnum<{
67
+ high: "high";
68
+ medium: "medium";
69
+ low: "low";
70
+ }>>;
71
+ title: z.ZodString;
72
+ description: z.ZodString;
73
+ location: z.ZodOptional<z.ZodObject<{
74
+ path: z.ZodString;
75
+ startLine: z.ZodNumber;
76
+ endLine: z.ZodOptional<z.ZodNumber>;
77
+ }, z.core.$strip>>;
78
+ additionalLocations: z.ZodOptional<z.ZodArray<z.ZodObject<{
79
+ path: z.ZodString;
80
+ startLine: z.ZodNumber;
81
+ endLine: z.ZodOptional<z.ZodNumber>;
82
+ }, z.core.$strip>>>;
83
+ suggestedFix: z.ZodOptional<z.ZodObject<{
84
+ description: z.ZodString;
85
+ diff: z.ZodString;
86
+ }, z.core.$strip>>;
87
+ elapsedMs: z.ZodOptional<z.ZodNumber>;
88
+ }, z.core.$strip>>;
89
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
90
+ durationMs: z.ZodOptional<z.ZodNumber>;
91
+ usage: z.ZodOptional<z.ZodObject<{
92
+ inputTokens: z.ZodNumber;
93
+ outputTokens: z.ZodNumber;
94
+ cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
95
+ cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
96
+ costUSD: z.ZodNumber;
97
+ }, z.core.$strip>>;
98
+ auxiliaryUsage: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
99
+ inputTokens: z.ZodNumber;
100
+ outputTokens: z.ZodNumber;
101
+ cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
102
+ cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
103
+ costUSD: z.ZodNumber;
104
+ }, z.core.$strip>>>;
105
+ files: z.ZodOptional<z.ZodArray<z.ZodObject<{
106
+ filename: z.ZodString;
107
+ findings: z.ZodNumber;
108
+ durationMs: z.ZodOptional<z.ZodNumber>;
109
+ usage: z.ZodOptional<z.ZodObject<{
110
+ inputTokens: z.ZodNumber;
111
+ outputTokens: z.ZodNumber;
112
+ cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
113
+ cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
114
+ costUSD: z.ZodNumber;
115
+ }, z.core.$strip>>;
116
+ }, z.core.$strip>>>;
117
+ skippedFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
118
+ filename: z.ZodString;
119
+ reason: z.ZodEnum<{
120
+ pattern: "pattern";
121
+ builtin: "builtin";
122
+ }>;
123
+ pattern: z.ZodOptional<z.ZodString>;
124
+ }, z.core.$strip>>>;
125
+ failedHunks: z.ZodOptional<z.ZodNumber>;
126
+ failedExtractions: z.ZodOptional<z.ZodNumber>;
127
+ }, z.core.$strip>;
128
+ export type JsonlRecord = z.infer<typeof JsonlRecordSchema>;
129
+ /** Aggregate summary across all skills (always the last JSONL line). */
130
+ export declare const JsonlSummaryRecordSchema: z.ZodObject<{
131
+ run: z.ZodObject<{
132
+ timestamp: z.ZodString;
133
+ durationMs: z.ZodNumber;
134
+ cwd: z.ZodString;
135
+ runId: z.ZodString;
136
+ traceId: z.ZodOptional<z.ZodString>;
137
+ }, z.core.$strip>;
138
+ type: z.ZodLiteral<"summary">;
139
+ totalFindings: z.ZodNumber;
140
+ bySeverity: z.ZodRecord<z.ZodEnum<{
141
+ critical: "critical";
142
+ high: "high";
143
+ medium: "medium";
144
+ low: "low";
145
+ info: "info";
146
+ }>, z.ZodNumber>;
147
+ usage: z.ZodOptional<z.ZodObject<{
148
+ inputTokens: z.ZodNumber;
149
+ outputTokens: z.ZodNumber;
150
+ cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
151
+ cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
152
+ costUSD: z.ZodNumber;
153
+ }, z.core.$strip>>;
154
+ totalSkippedFiles: z.ZodOptional<z.ZodNumber>;
155
+ auxiliaryUsage: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
156
+ inputTokens: z.ZodNumber;
157
+ outputTokens: z.ZodNumber;
158
+ cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
159
+ cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
160
+ costUSD: z.ZodNumber;
161
+ }, z.core.$strip>>>;
162
+ }, z.core.$strip>;
163
+ export type JsonlSummaryRecord = z.infer<typeof JsonlSummaryRecordSchema>;
164
+ /** Per-evaluation detail for fix evaluation records. */
165
+ export declare const JsonlFixEvalDetailSchema: z.ZodObject<{
166
+ path: z.ZodString;
167
+ line: z.ZodNumber;
168
+ findingId: z.ZodOptional<z.ZodString>;
169
+ verdict: z.ZodUnion<readonly [z.ZodEnum<{
170
+ not_attempted: "not_attempted";
171
+ attempted_failed: "attempted_failed";
172
+ resolved: "resolved";
173
+ }>, z.ZodLiteral<"re_detected">]>;
174
+ reasoning: z.ZodOptional<z.ZodString>;
175
+ durationMs: z.ZodNumber;
176
+ usage: z.ZodObject<{
177
+ inputTokens: z.ZodNumber;
178
+ outputTokens: z.ZodNumber;
179
+ cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
180
+ cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
181
+ costUSD: z.ZodNumber;
182
+ }, z.core.$strip>;
183
+ }, z.core.$strip>;
184
+ export type JsonlFixEvalDetail = z.infer<typeof JsonlFixEvalDetailSchema>;
185
+ /** Fix evaluation results record. */
186
+ export declare const JsonlFixEvaluationRecordSchema: z.ZodObject<{
187
+ run: z.ZodObject<{
188
+ timestamp: z.ZodString;
189
+ durationMs: z.ZodNumber;
190
+ cwd: z.ZodString;
191
+ runId: z.ZodString;
192
+ traceId: z.ZodOptional<z.ZodString>;
193
+ }, z.core.$strip>;
194
+ type: z.ZodLiteral<"fix-evaluation">;
195
+ evaluated: z.ZodNumber;
196
+ resolved: z.ZodNumber;
197
+ needsAttention: z.ZodNumber;
198
+ skipped: z.ZodNumber;
199
+ failedEvaluations: z.ZodNumber;
200
+ usage: z.ZodOptional<z.ZodObject<{
201
+ inputTokens: z.ZodNumber;
202
+ outputTokens: z.ZodNumber;
203
+ cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
204
+ cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
205
+ costUSD: z.ZodNumber;
206
+ }, z.core.$strip>>;
207
+ evaluations: z.ZodOptional<z.ZodArray<z.ZodObject<{
208
+ path: z.ZodString;
209
+ line: z.ZodNumber;
210
+ findingId: z.ZodOptional<z.ZodString>;
211
+ verdict: z.ZodUnion<readonly [z.ZodEnum<{
212
+ not_attempted: "not_attempted";
213
+ attempted_failed: "attempted_failed";
214
+ resolved: "resolved";
215
+ }>, z.ZodLiteral<"re_detected">]>;
216
+ reasoning: z.ZodOptional<z.ZodString>;
217
+ durationMs: z.ZodNumber;
218
+ usage: z.ZodObject<{
219
+ inputTokens: z.ZodNumber;
220
+ outputTokens: z.ZodNumber;
221
+ cacheReadInputTokens: z.ZodOptional<z.ZodNumber>;
222
+ cacheCreationInputTokens: z.ZodOptional<z.ZodNumber>;
223
+ costUSD: z.ZodNumber;
224
+ }, z.core.$strip>;
225
+ }, z.core.$strip>>>;
226
+ }, z.core.$strip>;
227
+ export type JsonlFixEvaluationRecord = z.infer<typeof JsonlFixEvaluationRecordSchema>;
65
228
  /**
66
- * JSONL record for fix evaluation results.
229
+ * Render skill reports as a JSONL string.
230
+ * Each line contains one skill report with run metadata.
231
+ * A final summary line is appended at the end.
67
232
  */
68
- export interface JsonlFixEvaluationRecord {
69
- run: JsonlRunMetadata;
70
- type: 'fix-evaluation';
71
- evaluated: number;
72
- resolved: number;
73
- needsAttention: number;
74
- skipped: number;
75
- failedEvaluations: number;
76
- usage?: UsageStats;
77
- evaluations?: JsonlFixEvalDetail[];
78
- }
233
+ export declare function renderJsonlString(reports: SkillReport[], durationMs: number, options?: {
234
+ runId?: string;
235
+ traceId?: string;
236
+ timestamp?: Date;
237
+ }): string;
79
238
  /**
80
239
  * Write skill reports to a JSONL file.
81
- * Each line contains one skill report with run metadata.
82
- * A final summary line is appended at the end.
83
240
  */
84
241
  export declare function writeJsonlReport(outputPath: string, reports: SkillReport[], durationMs: number, options?: {
242
+ runId?: string;
85
243
  traceId?: string;
86
244
  }): void;
245
+ /**
246
+ * Write pre-rendered JSONL content to a file path.
247
+ */
248
+ export declare function writeJsonlContent(outputPath: string, content: string): void;
249
+ /**
250
+ * Read a JSONL log file and return its contents.
251
+ */
252
+ export declare function readJsonlLog(logPath: string): string;
87
253
  //# sourceMappingURL=jsonl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../../src/cli/output/jsonl.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAItE;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAMtC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,IAAiB,GAAG,MAAM,CAIxF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,IAAiB,GAAG,MAAM,CAE/E;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,gBAAgB,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,SAAS,GAAG,aAAa,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACpC;AAkBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,EAAE,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,IAAI,CA2DN"}
1
+ {"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../../src/cli/output/jsonl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,KAAK,EAAE,WAAW,EAAiC,MAAM,sBAAsB,CAAC;AAIvF;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,IAAiB,GAAG,MAAM,CAGpG;AAED;;;;;;GAMG;AAEH,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB;;;;;;iBAMjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,gDAAgD;AAChD,eAAO,MAAM,qBAAqB;;;;;;;;;;;iBAKhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,oCAAoC;AACpC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAa5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAK5D,wEAAwE;AACxE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,wDAAwD;AACxD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;iBAQnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,qCAAqC;AACrC,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAkBtF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EAAE,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,GAC/D,MAAM,CAuDR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,EAAE,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI3E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD"}