@sentry/warden 0.9.0 → 0.11.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.
- package/.mcp.json +8 -0
- package/README.md +4 -0
- package/agents.toml +7 -0
- package/conductor.json +8 -0
- package/dist/cli/fix.d.ts +3 -1
- package/dist/cli/fix.d.ts.map +1 -1
- package/dist/cli/fix.js +91 -59
- package/dist/cli/fix.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +29 -8
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/output/ink-runner.d.ts +6 -17
- package/dist/cli/output/ink-runner.d.ts.map +1 -1
- package/dist/cli/output/ink-runner.js +138 -122
- package/dist/cli/output/ink-runner.js.map +1 -1
- package/dist/cli/output/jsonl.d.ts +211 -58
- package/dist/cli/output/jsonl.d.ts.map +1 -1
- package/dist/cli/output/jsonl.js +81 -4
- package/dist/cli/output/jsonl.js.map +1 -1
- package/dist/cli/output/reporter.d.ts +7 -3
- package/dist/cli/output/reporter.d.ts.map +1 -1
- package/dist/cli/output/reporter.js +15 -1
- package/dist/cli/output/reporter.js.map +1 -1
- package/dist/cli/output/tasks.d.ts +10 -1
- package/dist/cli/output/tasks.d.ts.map +1 -1
- package/dist/cli/output/tasks.js +145 -32
- package/dist/cli/output/tasks.js.map +1 -1
- package/dist/cli/terminal.d.ts +7 -1
- package/dist/cli/terminal.d.ts.map +1 -1
- package/dist/cli/terminal.js +31 -9
- package/dist/cli/terminal.js.map +1 -1
- package/dist/config/schema.d.ts +3 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +3 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/evals/index.d.ts +22 -0
- package/dist/evals/index.d.ts.map +1 -0
- package/dist/evals/index.js +92 -0
- package/dist/evals/index.js.map +1 -0
- package/dist/evals/judge.d.ts +12 -0
- package/dist/evals/judge.d.ts.map +1 -0
- package/dist/evals/judge.js +171 -0
- package/dist/evals/judge.js.map +1 -0
- package/dist/evals/runner.d.ts +18 -0
- package/dist/evals/runner.d.ts.map +1 -0
- package/dist/evals/runner.js +133 -0
- package/dist/evals/runner.js.map +1 -0
- package/dist/{examples → evals}/setup.d.ts.map +1 -1
- package/dist/evals/setup.js.map +1 -0
- package/dist/evals/types.d.ts +166 -0
- package/dist/evals/types.d.ts.map +1 -0
- package/dist/evals/types.js +134 -0
- package/dist/evals/types.js.map +1 -0
- package/dist/output/dedup.d.ts.map +1 -1
- package/dist/output/dedup.js +29 -57
- package/dist/output/dedup.js.map +1 -1
- package/dist/output/github-checks.d.ts.map +1 -1
- package/dist/output/github-checks.js +37 -8
- package/dist/output/github-checks.js.map +1 -1
- package/dist/output/renderer.d.ts.map +1 -1
- package/dist/output/renderer.js +16 -1
- package/dist/output/renderer.js.map +1 -1
- package/dist/output/stale.d.ts +1 -0
- package/dist/output/stale.d.ts.map +1 -1
- package/dist/output/stale.js +14 -8
- package/dist/output/stale.js.map +1 -1
- package/dist/sdk/analyze.d.ts +11 -0
- package/dist/sdk/analyze.d.ts.map +1 -1
- package/dist/sdk/analyze.js +99 -19
- package/dist/sdk/analyze.js.map +1 -1
- package/dist/sdk/extract.d.ts +54 -0
- package/dist/sdk/extract.d.ts.map +1 -1
- package/dist/sdk/extract.js +175 -2
- package/dist/sdk/extract.js.map +1 -1
- package/dist/sdk/model-pricing.json +6 -12
- package/dist/sdk/prompt.d.ts +2 -0
- package/dist/sdk/prompt.d.ts.map +1 -1
- package/dist/sdk/prompt.js +18 -8
- package/dist/sdk/prompt.js.map +1 -1
- package/dist/sdk/runner.d.ts +2 -2
- package/dist/sdk/runner.d.ts.map +1 -1
- package/dist/sdk/runner.js +1 -1
- package/dist/sdk/runner.js.map +1 -1
- package/dist/sdk/types.d.ts +11 -3
- package/dist/sdk/types.d.ts.map +1 -1
- package/dist/sdk/types.js +1 -1
- package/dist/sdk/types.js.map +1 -1
- package/dist/sentry.d.ts +15 -0
- package/dist/sentry.d.ts.map +1 -1
- package/dist/sentry.js +40 -1
- package/dist/sentry.js.map +1 -1
- package/dist/types/index.d.ts +19 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +25 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/async.d.ts +14 -0
- package/dist/utils/async.d.ts.map +1 -1
- package/dist/utils/async.js +33 -0
- package/dist/utils/async.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/evals/README.md +154 -0
- package/evals/bug-detection.yaml +56 -0
- package/evals/fixtures/ignores-style-issues/utils.ts +48 -0
- package/evals/fixtures/missing-await/cache.ts +45 -0
- package/evals/fixtures/null-property-access/handler.ts +36 -0
- package/evals/fixtures/off-by-one/paginator.ts +38 -0
- package/evals/fixtures/sql-injection/api.ts +59 -0
- package/evals/fixtures/stale-closure/counter.tsx +33 -0
- package/evals/fixtures/wrong-comparison/validator.ts +52 -0
- package/evals/fixtures/xss-reflected/server.ts +55 -0
- package/evals/precision.yaml +15 -0
- package/evals/security-scanning.yaml +24 -0
- package/evals/skills/bug-detection.md +33 -0
- package/evals/skills/precision.md +18 -0
- package/evals/skills/security-scanning.md +32 -0
- package/package.json +4 -2
- package/dist/examples/index.d.ts +0 -50
- package/dist/examples/index.d.ts.map +0 -1
- package/dist/examples/index.js +0 -104
- package/dist/examples/index.js.map +0 -1
- package/dist/examples/setup.js.map +0 -1
- /package/dist/{examples → evals}/setup.d.ts +0 -0
- /package/dist/{examples → evals}/setup.js +0 -0
|
@@ -2,31 +2,21 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
/**
|
|
3
3
|
* Ink-based skill runner with real-time progress display.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* While skills run, the dynamic Ink area shows running skills and active files.
|
|
6
|
+
* After Ink unmounts, the full per-skill + per-file breakdown is printed to
|
|
7
|
+
* stderr, followed by the normal findings report.
|
|
6
8
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
+
* UI updates are batched via setImmediate() to prevent rapid consecutive
|
|
10
|
+
* rerender() calls from producing duplicate output lines.
|
|
9
11
|
*
|
|
10
|
-
*
|
|
11
|
-
* Multiple Static components cause layout conflicts. We print the header
|
|
12
|
-
* before Ink starts to avoid needing a second Static.
|
|
13
|
-
*
|
|
14
|
-
* 2. **Stable item references**: Static tracks items by reference equality.
|
|
15
|
-
* Never wrap items in new objects (e.g., `{ type: 'skill', skill }`) on
|
|
16
|
-
* each render. Pass the original objects directly.
|
|
17
|
-
*
|
|
18
|
-
* 3. **Batched updates**: Rapid consecutive rerender() calls cause duplicate
|
|
19
|
-
* output. The updateUI() function batches updates using setImmediate().
|
|
20
|
-
*
|
|
21
|
-
* 4. **No direct writes to stderr**: Writing to process.stderr while Ink is
|
|
22
|
-
* running corrupts cursor tracking. The onLargePrompt/onPromptSize callbacks
|
|
23
|
-
* are exceptions that may cause minor display glitches in edge cases.
|
|
12
|
+
* Reporter spec: specs/reporters.md
|
|
24
13
|
*/
|
|
25
14
|
import { useState, useEffect } from 'react';
|
|
26
15
|
import { render, Box, Text, Static } from 'ink';
|
|
16
|
+
import chalk from 'chalk';
|
|
27
17
|
import { runSkillTask, } from './tasks.js';
|
|
28
|
-
import { formatDuration, formatCost, truncate, countBySeverity, formatSeverityDot } from './formatters.js';
|
|
29
|
-
import { runPool } from '../../utils/index.js';
|
|
18
|
+
import { formatDuration, formatCost, truncate, countBySeverity, formatSeverityDot, pluralize } from './formatters.js';
|
|
19
|
+
import { runPool, Semaphore } from '../../utils/index.js';
|
|
30
20
|
import { Verbosity } from './verbosity.js';
|
|
31
21
|
import { ICON_CHECK, ICON_SKIPPED, ICON_PENDING, ICON_ERROR, SPINNER_FRAMES } from './icons.js';
|
|
32
22
|
import figures from 'figures';
|
|
@@ -41,49 +31,46 @@ function Spinner() {
|
|
|
41
31
|
return _jsx(Text, { color: "yellow", children: SPINNER_FRAMES[frame] });
|
|
42
32
|
}
|
|
43
33
|
function FileProgress({ file }) {
|
|
44
|
-
if (file.status === 'pending')
|
|
45
|
-
return null;
|
|
46
34
|
const filename = truncate(file.filename, 50);
|
|
47
|
-
if (file.status === 'skipped') {
|
|
48
|
-
return (_jsxs(Box, { children: [_jsx(Text, { color: "yellow", children: ICON_SKIPPED }), _jsxs(Text, { children: [" ", filename] }), _jsx(Text, { dimColor: true, children: " [skipped]" })] }));
|
|
49
|
-
}
|
|
50
|
-
if (file.status === 'done') {
|
|
51
|
-
const counts = countBySeverity(file.findings);
|
|
52
|
-
const hasFindings = file.findings.length > 0;
|
|
53
|
-
return (_jsxs(Box, { children: [_jsx(Text, { color: "green", children: ICON_CHECK }), _jsxs(Text, { children: [" ", filename] }), _jsxs(Text, { dimColor: true, children: [" [", file.totalHunks, "/", file.totalHunks, "]"] }), hasFindings && (_jsxs(Text, { children: [' ', counts.critical > 0 && _jsxs(Text, { children: [formatSeverityDot('critical'), " ", counts.critical, " "] }), counts.high > 0 && _jsxs(Text, { children: [formatSeverityDot('high'), " ", counts.high, " "] }), counts.medium > 0 && _jsxs(Text, { children: [formatSeverityDot('medium'), " ", counts.medium, " "] }), counts.low > 0 && _jsxs(Text, { children: [formatSeverityDot('low'), " ", counts.low, " "] }), counts.info > 0 && _jsxs(Text, { children: [formatSeverityDot('info'), " ", counts.info] })] })), file.durationMs !== undefined && _jsxs(Text, { dimColor: true, children: [" ", formatDuration(file.durationMs)] }), file.usage !== undefined && _jsxs(Text, { dimColor: true, children: [" ", formatCost(file.usage.costUSD)] })] }));
|
|
54
|
-
}
|
|
55
|
-
// Running
|
|
56
35
|
return (_jsxs(Box, { children: [_jsx(Spinner, {}), _jsxs(Text, { children: [" ", filename, " [", file.currentHunk, "/", file.totalHunks, "]"] })] }));
|
|
57
36
|
}
|
|
37
|
+
function RunningSkill({ skill }) {
|
|
38
|
+
const activeFiles = skill.files.filter((f) => f.status === 'running');
|
|
39
|
+
const doneCount = skill.files.filter((f) => f.status === 'done' || f.status === 'skipped').length;
|
|
40
|
+
const totalCount = skill.files.length;
|
|
41
|
+
const findingCount = skill.files.reduce((sum, f) => sum + f.findings.length, 0);
|
|
42
|
+
const cost = skill.files.reduce((sum, f) => sum + (f.usage?.costUSD ?? 0), 0);
|
|
43
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Spinner, {}), _jsxs(Text, { children: [" ", skill.displayName] }), totalCount > 0 && _jsxs(Text, { dimColor: true, children: [" [", doneCount, "/", totalCount, " files]"] }), findingCount > 0 && _jsxs(Text, { children: [" ", findingCount, " ", findingCount === 1 ? 'finding' : 'findings'] }), cost > 0 && _jsxs(Text, { dimColor: true, children: [" ", formatCost(cost)] })] }), activeFiles.map((file) => (_jsx(Box, { marginLeft: 2, children: _jsx(FileProgress, { file: file }) }, file.filename)))] }));
|
|
44
|
+
}
|
|
58
45
|
function CompletedSkill({ skill }) {
|
|
59
|
-
const duration = skill.durationMs ? formatDuration(skill.durationMs) : '';
|
|
60
46
|
if (skill.status === 'skipped') {
|
|
61
|
-
return (_jsxs(
|
|
47
|
+
return (_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: ICON_SKIPPED }), " ", skill.displayName, " ", _jsx(Text, { dimColor: true, children: "[skipped]" })] }));
|
|
62
48
|
}
|
|
49
|
+
const findingCount = skill.findings.length;
|
|
50
|
+
const cost = skill.usage?.costUSD;
|
|
51
|
+
const duration = skill.durationMs ? formatDuration(skill.durationMs) : undefined;
|
|
63
52
|
if (skill.status === 'error') {
|
|
64
|
-
return (_jsxs(
|
|
53
|
+
return (_jsxs(Text, { children: [_jsx(Text, { color: "red", children: ICON_ERROR }), " ", skill.displayName, duration && _jsxs(Text, { dimColor: true, children: [" [", duration, "]"] })] }));
|
|
65
54
|
}
|
|
66
|
-
return (_jsxs(
|
|
67
|
-
}
|
|
68
|
-
function RunningSkill({ skill }) {
|
|
69
|
-
const visibleFiles = skill.files.filter((f) => f.status !== 'pending');
|
|
70
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Spinner, {}), _jsxs(Text, { children: [" ", skill.displayName] })] }), visibleFiles.map((file) => (_jsx(Box, { marginLeft: 2, children: _jsx(FileProgress, { file: file }) }, file.filename)))] }));
|
|
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)] })] }));
|
|
71
56
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
*
|
|
75
|
-
* IMPORTANT: Ink's Static component tracks items by reference equality.
|
|
76
|
-
* Items passed to Static must have stable references across renders.
|
|
77
|
-
* Creating new wrapper objects causes Static to mishandle its internal
|
|
78
|
-
* state, resulting in duplicate output lines.
|
|
79
|
-
*
|
|
80
|
-
* We use a SINGLE Static component to avoid layout conflicts from multiple
|
|
81
|
-
* absolutely-positioned Static containers.
|
|
82
|
-
*/
|
|
83
|
-
function SkillRunner({ skills, completedItems, interrupted }) {
|
|
57
|
+
function SkillRunner({ skills, warnings, interrupted }) {
|
|
58
|
+
const completed = skills.filter((s) => s.status === 'done' || s.status === 'skipped' || s.status === 'error');
|
|
84
59
|
const running = skills.filter((s) => s.status === 'running');
|
|
85
60
|
const pending = skills.filter((s) => s.status === 'pending');
|
|
86
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Static, { items:
|
|
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))), interrupted && (_jsxs(Text, { color: "yellow", dimColor: true, children: [figures.warning, " Interrupted, finishing up... (press Ctrl+C again to force exit)"] }))] }));
|
|
62
|
+
}
|
|
63
|
+
/** Create a terminal skill state for skills that were skipped or errored before starting. */
|
|
64
|
+
function makeTerminalSkillState(tasks, name, overrides) {
|
|
65
|
+
const task = tasks.find((t) => t.name === name);
|
|
66
|
+
return {
|
|
67
|
+
name,
|
|
68
|
+
displayName: task?.displayName ?? name,
|
|
69
|
+
status: 'pending',
|
|
70
|
+
files: [],
|
|
71
|
+
findings: [],
|
|
72
|
+
...overrides,
|
|
73
|
+
};
|
|
87
74
|
}
|
|
88
75
|
/** No-op callbacks for quiet mode. */
|
|
89
76
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
@@ -96,33 +83,75 @@ const noopCallbacks = {
|
|
|
96
83
|
onSkillSkipped: noop,
|
|
97
84
|
onSkillError: noop,
|
|
98
85
|
};
|
|
86
|
+
/** Severity levels in display order. */
|
|
87
|
+
const SEVERITY_LEVELS = ['critical', 'high', 'medium', 'low', 'info'];
|
|
88
|
+
/** Print the per-file line within a skill summary. */
|
|
89
|
+
function printFileSummary(file) {
|
|
90
|
+
if (file.status === 'done') {
|
|
91
|
+
const filename = truncate(file.filename, 50);
|
|
92
|
+
const counts = countBySeverity(file.findings);
|
|
93
|
+
let line = ` ${chalk.green(ICON_CHECK)} ${filename} ${chalk.dim(`[${file.totalHunks}/${file.totalHunks}]`)}`;
|
|
94
|
+
const severityParts = SEVERITY_LEVELS
|
|
95
|
+
.filter((s) => counts[s] > 0)
|
|
96
|
+
.map((s) => `${formatSeverityDot(s)} ${counts[s]}`);
|
|
97
|
+
if (severityParts.length > 0)
|
|
98
|
+
line += ` ${severityParts.join(' ')}`;
|
|
99
|
+
if (file.durationMs !== undefined)
|
|
100
|
+
line += chalk.dim(` ${formatDuration(file.durationMs)}`);
|
|
101
|
+
if (file.usage !== undefined)
|
|
102
|
+
line += chalk.dim(` ${formatCost(file.usage.costUSD)}`);
|
|
103
|
+
process.stderr.write(`${line}\n`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/** Print the full skill + file breakdown to stderr after Ink unmounts. */
|
|
107
|
+
function printSkillSummary(skillStates) {
|
|
108
|
+
for (const skill of skillStates) {
|
|
109
|
+
const duration = skill.durationMs ? chalk.dim(` [${formatDuration(skill.durationMs)}]`) : '';
|
|
110
|
+
if (skill.status === 'done') {
|
|
111
|
+
process.stderr.write(`${chalk.green(ICON_CHECK)} ${skill.displayName}${duration}\n`);
|
|
112
|
+
}
|
|
113
|
+
else if (skill.status === 'skipped') {
|
|
114
|
+
process.stderr.write(`${chalk.yellow(ICON_SKIPPED)} ${skill.displayName} ${chalk.dim('[skipped]')}\n`);
|
|
115
|
+
}
|
|
116
|
+
else if (skill.status === 'error') {
|
|
117
|
+
process.stderr.write(`${chalk.red(ICON_ERROR)} ${skill.displayName}${duration}\n`);
|
|
118
|
+
if (skill.error) {
|
|
119
|
+
process.stderr.write(`${chalk.red(` Error: ${skill.error}`)}\n`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (skill.status === 'done' || skill.status === 'error') {
|
|
123
|
+
for (const file of skill.files) {
|
|
124
|
+
printFileSummary(file);
|
|
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
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
99
133
|
/**
|
|
100
134
|
* Run skill tasks with Ink-based real-time progress display.
|
|
101
135
|
*/
|
|
102
136
|
export async function runSkillTasksWithInk(tasks, options) {
|
|
103
137
|
const { verbosity, concurrency } = options;
|
|
104
138
|
if (tasks.length === 0 || verbosity === Verbosity.Quiet) {
|
|
105
|
-
// No tasks or quiet mode - run without UI
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
if (task.runnerOptions?.abortController?.signal.aborted)
|
|
109
|
-
break;
|
|
110
|
-
const result = await runSkillTask(task, 5, noopCallbacks);
|
|
111
|
-
results.push(result);
|
|
112
|
-
}
|
|
139
|
+
// No tasks or quiet mode - run without UI using global semaphore
|
|
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 });
|
|
113
142
|
return results;
|
|
114
143
|
}
|
|
115
144
|
// Track skill states
|
|
116
145
|
const skillStates = [];
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
//
|
|
146
|
+
// Warnings are rendered via Ink's Static component so they appear above the
|
|
147
|
+
// dynamic spinner area without corrupting it.
|
|
148
|
+
const warnings = [];
|
|
149
|
+
// Print header before Ink starts
|
|
121
150
|
process.stderr.write('\x1b[1mSKILLS\x1b[0m\n');
|
|
122
151
|
// Track interrupt state for rendering in the Ink component
|
|
123
152
|
let interrupted = false;
|
|
124
153
|
// Create Ink instance
|
|
125
|
-
const { rerender, unmount } = render(_jsx(SkillRunner, { skills: skillStates,
|
|
154
|
+
const { rerender, unmount, clear } = render(_jsx(SkillRunner, { skills: skillStates, warnings: [], interrupted: false }), { stdout: process.stderr });
|
|
126
155
|
// Batch UI updates to prevent rapid consecutive rerenders that cause duplicate lines.
|
|
127
156
|
// Without batching, multiple callbacks firing in quick succession (e.g., 5 files
|
|
128
157
|
// starting simultaneously) trigger 5 immediate rerenders, which Ink cannot
|
|
@@ -137,7 +166,7 @@ export async function runSkillTasksWithInk(tasks, options) {
|
|
|
137
166
|
updatePending = false;
|
|
138
167
|
if (unmounted)
|
|
139
168
|
return;
|
|
140
|
-
rerender(_jsx(SkillRunner, { skills: [...skillStates],
|
|
169
|
+
rerender(_jsx(SkillRunner, { skills: [...skillStates], warnings: [...warnings], interrupted: interrupted }));
|
|
141
170
|
});
|
|
142
171
|
};
|
|
143
172
|
// Listen for abort signal to show interrupt message in the Ink UI
|
|
@@ -158,13 +187,7 @@ export async function runSkillTasksWithInk(tasks, options) {
|
|
|
158
187
|
const idx = skillStates.findIndex((s) => s.name === name);
|
|
159
188
|
const existing = skillStates[idx];
|
|
160
189
|
if (idx >= 0 && existing) {
|
|
161
|
-
|
|
162
|
-
skillStates[idx] = updated;
|
|
163
|
-
// If skill just completed, add to completedItems (only once)
|
|
164
|
-
if (updates.status === 'done' && !completedNames.has(name)) {
|
|
165
|
-
completedNames.add(name);
|
|
166
|
-
completedItems.push(updated);
|
|
167
|
-
}
|
|
190
|
+
skillStates[idx] = { ...existing, ...updates };
|
|
168
191
|
updateUI();
|
|
169
192
|
}
|
|
170
193
|
},
|
|
@@ -182,79 +205,72 @@ export async function runSkillTasksWithInk(tasks, options) {
|
|
|
182
205
|
updateUI();
|
|
183
206
|
},
|
|
184
207
|
onSkillSkipped: (name) => {
|
|
185
|
-
|
|
186
|
-
const state = {
|
|
187
|
-
name,
|
|
188
|
-
displayName: task?.displayName ?? name,
|
|
189
|
-
status: 'skipped',
|
|
190
|
-
files: [],
|
|
191
|
-
findings: [],
|
|
192
|
-
};
|
|
193
|
-
skillStates.push(state);
|
|
194
|
-
if (!completedNames.has(name)) {
|
|
195
|
-
completedNames.add(name);
|
|
196
|
-
completedItems.push(state);
|
|
197
|
-
}
|
|
208
|
+
skillStates.push(makeTerminalSkillState(tasks, name, { status: 'skipped' }));
|
|
198
209
|
updateUI();
|
|
199
210
|
},
|
|
200
211
|
onSkillError: (name, error) => {
|
|
201
212
|
const idx = skillStates.findIndex((s) => s.name === name);
|
|
202
213
|
const existing = skillStates[idx];
|
|
203
|
-
let state;
|
|
204
214
|
if (idx >= 0 && existing) {
|
|
205
|
-
|
|
206
|
-
skillStates[idx] = state;
|
|
215
|
+
skillStates[idx] = { ...existing, status: 'error', error };
|
|
207
216
|
}
|
|
208
217
|
else {
|
|
209
|
-
|
|
210
|
-
state = {
|
|
211
|
-
name,
|
|
212
|
-
displayName: task?.displayName ?? name,
|
|
213
|
-
status: 'error',
|
|
214
|
-
error,
|
|
215
|
-
files: [],
|
|
216
|
-
findings: [],
|
|
217
|
-
};
|
|
218
|
-
skillStates.push(state);
|
|
219
|
-
}
|
|
220
|
-
if (!completedNames.has(name)) {
|
|
221
|
-
completedNames.add(name);
|
|
222
|
-
completedItems.push(state);
|
|
218
|
+
skillStates.push(makeTerminalSkillState(tasks, name, { status: 'error', error }));
|
|
223
219
|
}
|
|
224
220
|
updateUI();
|
|
225
221
|
},
|
|
226
|
-
// CAUTION: Direct stderr writes while Ink is running can cause display glitches.
|
|
227
|
-
// These callbacks are rare (large prompts, debug mode) so the tradeoff is acceptable.
|
|
228
|
-
// If these cause issues, consider queueing messages and printing after unmount().
|
|
229
222
|
onLargePrompt: (_skillName, filename, lineRange, chars, estimatedTokens) => {
|
|
230
223
|
const location = `${filename}:${lineRange}`;
|
|
231
224
|
const size = `${Math.round(chars / 1000)}k chars (~${Math.round(estimatedTokens / 1000)}k tokens)`;
|
|
232
|
-
|
|
225
|
+
warnings.push(`${chalk.yellow(figures.warning)} Large prompt for ${location}: ${size}`);
|
|
226
|
+
updateUI();
|
|
233
227
|
},
|
|
234
228
|
onPromptSize: verbosity >= Verbosity.Debug
|
|
235
229
|
? (_skillName, filename, lineRange, systemChars, userChars, totalChars, estimatedTokens) => {
|
|
236
230
|
const location = `${filename}:${lineRange}`;
|
|
237
|
-
|
|
231
|
+
warnings.push(chalk.dim(`[debug] Prompt for ${location}: system=${systemChars}, user=${userChars}, total=${totalChars} chars (~${estimatedTokens} tokens)`));
|
|
232
|
+
updateUI();
|
|
233
|
+
}
|
|
234
|
+
: undefined,
|
|
235
|
+
onHunkFailed: verbosity >= Verbosity.Verbose
|
|
236
|
+
? (_skillName, filename, lineRange, error) => {
|
|
237
|
+
const location = `${filename}:${lineRange}`;
|
|
238
|
+
warnings.push(`${chalk.yellow(figures.warning)} Chunk failed: ${location} ${chalk.dim(`\u2014 ${error}`)}`);
|
|
239
|
+
updateUI();
|
|
240
|
+
}
|
|
241
|
+
: undefined,
|
|
242
|
+
onExtractionFailure: verbosity >= Verbosity.Verbose
|
|
243
|
+
? (_skillName, filename, lineRange, error, preview) => {
|
|
244
|
+
const location = `${filename}:${lineRange}`;
|
|
245
|
+
warnings.push(`${chalk.yellow(figures.warning)} Extraction failed: ${location} ${chalk.dim(`\u2014 ${error}`)}`);
|
|
246
|
+
if (verbosity >= Verbosity.Debug && preview) {
|
|
247
|
+
warnings.push(chalk.dim(`[debug] Output preview: ${preview.slice(0, 200)}`));
|
|
248
|
+
}
|
|
249
|
+
updateUI();
|
|
250
|
+
}
|
|
251
|
+
: undefined,
|
|
252
|
+
onRetry: verbosity >= Verbosity.Verbose
|
|
253
|
+
? (_skillName, filename, lineRange, attempt, maxRetries, error, delayMs) => {
|
|
254
|
+
const location = `${filename}:${lineRange}`;
|
|
255
|
+
const retryInfo = `attempt ${attempt}/${maxRetries}`;
|
|
256
|
+
const delay = delayMs > 0 ? `, retrying in ${Math.round(delayMs / 1000)}s` : '';
|
|
257
|
+
warnings.push(chalk.dim(`[debug] Retry ${location} (${retryInfo}${delay}): ${error}`));
|
|
258
|
+
updateUI();
|
|
238
259
|
}
|
|
239
260
|
: undefined,
|
|
240
261
|
};
|
|
241
|
-
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
else {
|
|
252
|
-
results.push(...await runPool(tasks, concurrency, (task) => runSkillTask(task, fileConcurrency, callbacks), { shouldAbort: () => tasks[0]?.runnerOptions?.abortController?.signal.aborted ?? false }));
|
|
253
|
-
}
|
|
254
|
-
// Cleanup - set unmounted flag before unmount to prevent pending setImmediate
|
|
255
|
-
// callbacks from calling rerender on the unmounted Ink instance
|
|
262
|
+
// Global semaphore gates file-level work across all skills.
|
|
263
|
+
const semaphore = new Semaphore(concurrency);
|
|
264
|
+
// Launch all skills in parallel; the semaphore is the sole concurrency gate.
|
|
265
|
+
const results = await runPool(tasks, tasks.length, (task) => runSkillTask(task, Number.MAX_SAFE_INTEGER, callbacks, semaphore), { shouldAbort: () => tasks[0]?.runnerOptions?.abortController?.signal.aborted ?? false });
|
|
266
|
+
// Flush any pending setImmediate from updateUI so last-tick warnings are
|
|
267
|
+
// rendered before we tear down. setImmediate is FIFO, so our callback runs
|
|
268
|
+
// after the queued rerender.
|
|
269
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
256
270
|
unmounted = true;
|
|
271
|
+
clear();
|
|
257
272
|
unmount();
|
|
273
|
+
printSkillSummary(skillStates);
|
|
258
274
|
return results;
|
|
259
275
|
}
|
|
260
276
|
//# sourceMappingURL=ink-runner.js.map
|
|
@@ -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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"}
|