@vitest-agent/ui 5.0.6 → 5.0.8
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/counts.js +1 -2
- package/dispatcher/cells/single-file-fail.js +1 -2
- package/dispatcher/cells/single-file-pass.js +1 -2
- package/dispatcher/cells/single-file-threshold.js +1 -2
- package/dispatcher/cells/single-project-fail.js +1 -2
- package/dispatcher/cells/single-project-pass.js +1 -2
- package/dispatcher/cells/single-project-threshold.js +1 -2
- package/dispatcher/cells/single-test-fail.js +1 -2
- package/dispatcher/cells/single-test-pass.js +1 -2
- package/dispatcher/cells/single-test-threshold.js +1 -2
- package/dispatcher/cells/workspace-fail.js +1 -2
- package/dispatcher/cells/workspace-pass.js +1 -2
- package/dispatcher/cells/workspace-threshold.js +1 -2
- package/dispatcher/classify.js +1 -2
- package/dispatcher/dispatch.js +1 -2
- package/dispatcher/footer.js +1 -2
- package/dispatcher/helpers.js +1 -2
- package/format-duration.js +1 -2
- package/index.d.ts +0 -35
- package/index.js +2 -3
- package/ink/CountColumns.js +1 -2
- package/ink/CoverageBlock.js +1 -2
- package/ink/FailureSection.js +1 -2
- package/ink/FailuresSection.js +1 -2
- package/ink/ModuleHeader.js +1 -2
- package/ink/ProjectRow.js +1 -2
- package/ink/StatusIcon.js +1 -2
- package/ink/StreamApp.js +1 -2
- package/ink/SuggestedActions.js +1 -2
- package/ink/TagColumns.js +1 -2
- package/ink/TestRow.js +1 -2
- package/ink/TrendLine.js +1 -2
- package/ink/dispatch-ink.js +1 -2
- package/ink/ink-helpers.js +1 -2
- package/ink.d.ts +0 -32
- package/package.json +7 -7
- package/reducer.js +1 -2
- package/render-agent.js +1 -2
- package/spinner.js +1 -2
- package/synthesize.js +1 -2
- package/theme.js +1 -2
package/counts.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VitestAgentStatus } from "./theme.js";
|
|
2
2
|
import { Doc, Render } from "@effected/cli";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/counts.ts
|
|
5
5
|
/** The test counters a totals line folds into its `n/total`. */
|
|
6
6
|
const TEST_KEYS = /* @__PURE__ */ new Set([
|
|
7
7
|
"pass",
|
|
@@ -60,5 +60,4 @@ const formatTotalsLine = (input) => {
|
|
|
60
60
|
})], AGENT_CONTEXT);
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
//#endregion
|
|
64
63
|
export { formatTotalsLine };
|
|
@@ -2,7 +2,7 @@ import { buildFooter } from "../footer.js";
|
|
|
2
2
|
import { formatDisplayDuration } from "../../format-duration.js";
|
|
3
3
|
import { formatFailure, soleModulePath } from "../helpers.js";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/dispatcher/cells/single-file-fail.ts
|
|
6
6
|
const DEFAULT_WIDTH = 80;
|
|
7
7
|
const renderAgent = (inputs) => {
|
|
8
8
|
const modulePath = soleModulePath(inputs.state);
|
|
@@ -21,5 +21,4 @@ const renderAgent = (inputs) => {
|
|
|
21
21
|
};
|
|
22
22
|
const renderSingleFileFail = { agent: renderAgent };
|
|
23
23
|
|
|
24
|
-
//#endregion
|
|
25
24
|
export { renderSingleFileFail };
|
|
@@ -3,7 +3,7 @@ import { formatDisplayDuration } from "../../format-duration.js";
|
|
|
3
3
|
import { soleModulePath } from "../helpers.js";
|
|
4
4
|
import { Fmt } from "@effected/cli";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/dispatcher/cells/single-file-pass.ts
|
|
7
7
|
const renderAgent = (inputs) => {
|
|
8
8
|
const modulePath = soleModulePath(inputs.state);
|
|
9
9
|
if (modulePath === void 0) return "";
|
|
@@ -12,5 +12,4 @@ const renderAgent = (inputs) => {
|
|
|
12
12
|
};
|
|
13
13
|
const renderSingleFilePass = { agent: renderAgent };
|
|
14
14
|
|
|
15
|
-
//#endregion
|
|
16
15
|
export { renderSingleFilePass };
|
|
@@ -3,7 +3,7 @@ import { formatDisplayDuration } from "../../format-duration.js";
|
|
|
3
3
|
import { formatCoverageSummaryLines, soleModulePath } from "../helpers.js";
|
|
4
4
|
import { Fmt } from "@effected/cli";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/dispatcher/cells/single-file-threshold.ts
|
|
7
7
|
const renderAgent = (inputs) => {
|
|
8
8
|
const modulePath = soleModulePath(inputs.state);
|
|
9
9
|
if (modulePath === void 0) return "";
|
|
@@ -14,5 +14,4 @@ const renderAgent = (inputs) => {
|
|
|
14
14
|
};
|
|
15
15
|
const renderSingleFileThreshold = { agent: renderAgent };
|
|
16
16
|
|
|
17
|
-
//#endregion
|
|
18
17
|
export { renderSingleFileThreshold };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { buildFooter } from "../footer.js";
|
|
2
2
|
import { formatFailure, formatTotals } from "../helpers.js";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/dispatcher/cells/single-project-fail.ts
|
|
5
5
|
const DEFAULT_WIDTH = 80;
|
|
6
6
|
const renderAgent = (inputs) => {
|
|
7
7
|
const sections = [[formatTotals(inputs.state)]];
|
|
@@ -26,5 +26,4 @@ const renderAgent = (inputs) => {
|
|
|
26
26
|
};
|
|
27
27
|
const renderSingleProjectFail = { agent: renderAgent };
|
|
28
28
|
|
|
29
|
-
//#endregion
|
|
30
29
|
export { renderSingleProjectFail };
|
|
@@ -2,7 +2,7 @@ import { buildFooter } from "../footer.js";
|
|
|
2
2
|
import { formatTotals } from "../helpers.js";
|
|
3
3
|
import { Fmt } from "@effected/cli";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/dispatcher/cells/single-project-pass.ts
|
|
6
6
|
const renderAgent = (inputs) => {
|
|
7
7
|
const { passCount, failCount, skipCount, timeoutCount } = inputs.state.totals;
|
|
8
8
|
if (passCount + failCount + skipCount + timeoutCount === 0) return `${[formatTotals(inputs.state), "0 tests collected. A zero-test run usually means a wrong working directory, a filter that matched nothing, or a load-time error — verify before trusting it."].join("\n\n")}\n${buildFooter(inputs)}`;
|
|
@@ -11,5 +11,4 @@ const renderAgent = (inputs) => {
|
|
|
11
11
|
};
|
|
12
12
|
const renderSingleProjectPass = { agent: renderAgent };
|
|
13
13
|
|
|
14
|
-
//#endregion
|
|
15
14
|
export { renderSingleProjectPass };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { buildFooter } from "../footer.js";
|
|
2
2
|
import { formatBelowTargetTable, formatCoverageSummaryLines, formatTotals, formatTrendLine } from "../helpers.js";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/dispatcher/cells/single-project-threshold.ts
|
|
5
5
|
const BELOW_TARGET_LIMIT = 5;
|
|
6
6
|
const renderAgent = (inputs) => {
|
|
7
7
|
const sections = [[formatTotals(inputs.state)]];
|
|
@@ -17,5 +17,4 @@ const renderAgent = (inputs) => {
|
|
|
17
17
|
};
|
|
18
18
|
const renderSingleProjectThreshold = { agent: renderAgent };
|
|
19
19
|
|
|
20
|
-
//#endregion
|
|
21
20
|
export { renderSingleProjectThreshold };
|
|
@@ -3,7 +3,7 @@ import { statusGlyph } from "../../theme.js";
|
|
|
3
3
|
import { formatDisplayDuration } from "../../format-duration.js";
|
|
4
4
|
import { formatFailure, formatTestName, soleTest } from "../helpers.js";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/dispatcher/cells/single-test-fail.ts
|
|
7
7
|
const DEFAULT_WIDTH = 80;
|
|
8
8
|
const renderAgent = (inputs) => {
|
|
9
9
|
const test = soleTest(inputs.state);
|
|
@@ -15,5 +15,4 @@ const renderAgent = (inputs) => {
|
|
|
15
15
|
};
|
|
16
16
|
const renderSingleTestFail = { agent: renderAgent };
|
|
17
17
|
|
|
18
|
-
//#endregion
|
|
19
18
|
export { renderSingleTestFail };
|
|
@@ -3,7 +3,7 @@ import { statusGlyph } from "../../theme.js";
|
|
|
3
3
|
import { formatDisplayDuration } from "../../format-duration.js";
|
|
4
4
|
import { formatTestName, soleTest } from "../helpers.js";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/dispatcher/cells/single-test-pass.ts
|
|
7
7
|
const renderAgent = (inputs) => {
|
|
8
8
|
const test = soleTest(inputs.state);
|
|
9
9
|
if (test === void 0) return "";
|
|
@@ -12,5 +12,4 @@ const renderAgent = (inputs) => {
|
|
|
12
12
|
};
|
|
13
13
|
const renderSingleTestPass = { agent: renderAgent };
|
|
14
14
|
|
|
15
|
-
//#endregion
|
|
16
15
|
export { renderSingleTestPass };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/dispatcher/cells/single-test-threshold.ts
|
|
2
2
|
/**
|
|
3
3
|
* No-op cell. The `single-test × threshold-violation` combination has
|
|
4
4
|
* no observable difference from `single-test × all-pass` because a
|
|
@@ -8,5 +8,4 @@
|
|
|
8
8
|
*/
|
|
9
9
|
const renderSingleTestThreshold = { agent: () => "" };
|
|
10
10
|
|
|
11
|
-
//#endregion
|
|
12
11
|
export { renderSingleTestThreshold };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { buildFooter } from "../footer.js";
|
|
2
2
|
import { formatFailure, formatProjectsTable, formatTrendLine, formatWorkspaceTotal } from "../helpers.js";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/dispatcher/cells/workspace-fail.ts
|
|
5
5
|
const DEFAULT_WIDTH = 80;
|
|
6
6
|
const renderAgent = (inputs) => {
|
|
7
7
|
const sections = [];
|
|
@@ -19,5 +19,4 @@ const renderAgent = (inputs) => {
|
|
|
19
19
|
};
|
|
20
20
|
const renderWorkspaceFail = { agent: renderAgent };
|
|
21
21
|
|
|
22
|
-
//#endregion
|
|
23
22
|
export { renderWorkspaceFail };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { buildFooter } from "../footer.js";
|
|
2
2
|
import { formatCoverageJudgmentLine, formatProjectsTable, formatTrendLine, formatWorkspaceTotal } from "../helpers.js";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/dispatcher/cells/workspace-pass.ts
|
|
5
5
|
const renderAgent = (inputs) => {
|
|
6
6
|
const sections = [];
|
|
7
7
|
const projects = formatProjectsTable(inputs.projects);
|
|
@@ -17,5 +17,4 @@ const renderAgent = (inputs) => {
|
|
|
17
17
|
};
|
|
18
18
|
const renderWorkspacePass = { agent: renderAgent };
|
|
19
19
|
|
|
20
|
-
//#endregion
|
|
21
20
|
export { renderWorkspacePass };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { buildFooter } from "../footer.js";
|
|
2
2
|
import { formatBelowTargetTable, formatCoverageSummaryLines, formatProjectsTable, formatTrendLine, formatWorkspaceTotal } from "../helpers.js";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/dispatcher/cells/workspace-threshold.ts
|
|
5
5
|
const BELOW_TARGET_LIMIT = 10;
|
|
6
6
|
const renderAgent = (inputs) => {
|
|
7
7
|
const sections = [];
|
|
@@ -20,5 +20,4 @@ const renderAgent = (inputs) => {
|
|
|
20
20
|
};
|
|
21
21
|
const renderWorkspaceThreshold = { agent: renderAgent };
|
|
22
22
|
|
|
23
|
-
//#endregion
|
|
24
23
|
export { renderWorkspaceThreshold };
|
package/dispatcher/classify.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/dispatcher/classify.ts
|
|
2
2
|
/**
|
|
3
3
|
* Compute the run shape from the reduced state plus the per-project
|
|
4
4
|
* aggregates the plugin carries through `DispatchInputs.projects`.
|
|
@@ -59,5 +59,4 @@ const classifyOutcome = (state) => {
|
|
|
59
59
|
return "all-pass";
|
|
60
60
|
};
|
|
61
61
|
|
|
62
|
-
//#endregion
|
|
63
62
|
export { classifyOutcome, classifyRunShape };
|
package/dispatcher/dispatch.js
CHANGED
|
@@ -12,7 +12,7 @@ import { renderWorkspacePass } from "./cells/workspace-pass.js";
|
|
|
12
12
|
import { renderWorkspaceThreshold } from "./cells/workspace-threshold.js";
|
|
13
13
|
import { formatScopedCoverageNote, formatStrayOutputNote } from "@vitest-agent/sdk";
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
// src/dispatcher/dispatch.ts
|
|
16
16
|
/**
|
|
17
17
|
* The 4×3 cell table. Exported for the test harness so spy-based
|
|
18
18
|
* routing tests can introspect the wiring without re-deriving it from
|
|
@@ -88,5 +88,4 @@ const scopedCoverageNoteFor = (inputs) => {
|
|
|
88
88
|
return formatScopedCoverageNote(cov.scopedFiles ?? 0, cov.totalFiles);
|
|
89
89
|
};
|
|
90
90
|
|
|
91
|
-
//#endregion
|
|
92
91
|
export { dispatch, dispatcherTable, scopedCoverageNoteFor, strayOutputNoteFor };
|
package/dispatcher/footer.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/dispatcher/footer.ts
|
|
2
2
|
const FOOTER_COVERAGE_GAP = "Use `file_coverage` to find uncovered functions.";
|
|
3
3
|
const FOOTER_FAILURE_PERSISTENT = "Use `test_errors` for failure detail; `failure_signature_get` to check known patterns.";
|
|
4
4
|
const FOOTER_FAILURE_FLAKY = "Use `failure_signature_get` to confirm the flakiness signature.";
|
|
@@ -51,5 +51,4 @@ const buildFooter = (inputs) => {
|
|
|
51
51
|
return `\n${lines.join("\n")}\n`;
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
-
//#endregion
|
|
55
54
|
export { buildFooter, dominantClassification };
|
package/dispatcher/helpers.js
CHANGED
|
@@ -3,7 +3,7 @@ import { formatTotalsLine } from "../counts.js";
|
|
|
3
3
|
import { formatDisplayDuration } from "../format-duration.js";
|
|
4
4
|
import { Doc, Fmt, Render } from "@effected/cli";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/dispatcher/helpers.ts
|
|
7
7
|
/**
|
|
8
8
|
* Format a coverage percentage given on istanbul's 0–100 scale. One
|
|
9
9
|
* decimal place for non-integer values, none for integers, with a
|
|
@@ -239,5 +239,4 @@ const pctCell = (n) => {
|
|
|
239
239
|
return `${" ".repeat(left + 1)}${text}${" ".repeat(right)}`;
|
|
240
240
|
};
|
|
241
241
|
|
|
242
|
-
//#endregion
|
|
243
242
|
export { formatBelowTargetTable, formatCoverageJudgmentLine, formatCoverageSummaryLines, formatDisplayDuration, formatFailure, formatGlobShortfallLines, formatPercent, formatProjectRow, formatProjectsTable, formatTestName, formatTotals, formatTrendLine, formatWorkspaceTotal, soleModulePath, soleTest };
|
package/format-duration.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fmt } from "@effected/cli";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
// src/format-duration.ts
|
|
4
4
|
/**
|
|
5
5
|
* Shared display formatter for run / module / test durations.
|
|
6
6
|
*
|
|
@@ -30,5 +30,4 @@ import { Fmt } from "@effected/cli";
|
|
|
30
30
|
*/
|
|
31
31
|
const formatDisplayDuration = (ms) => Fmt.duration(ms);
|
|
32
32
|
|
|
33
|
-
//#endregion
|
|
34
33
|
export { formatDisplayDuration };
|
package/index.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
2
|
import { CoreStatusName, GlyphSet, Status, Style, TokenName } from "@effected/cli";
|
|
3
|
-
//#region ../sdk/dist/dev/pkg/index.d.ts
|
|
4
|
-
//#region src/schemas/Coverage.d.ts
|
|
5
3
|
/**
|
|
6
4
|
* Aggregate coverage percentages across four istanbul metrics.
|
|
7
5
|
* @public
|
|
@@ -59,8 +57,6 @@ declare const GlobShortfall: Schema.Struct<{
|
|
|
59
57
|
}>;
|
|
60
58
|
/** @public */
|
|
61
59
|
type GlobShortfall = typeof GlobShortfall.Type;
|
|
62
|
-
//#endregion
|
|
63
|
-
//#region src/schemas/RenderState.d.ts
|
|
64
60
|
/**
|
|
65
61
|
* Per-test record accumulated as `TestStarted` / `TestFinished` events arrive.
|
|
66
62
|
* @public
|
|
@@ -405,8 +401,6 @@ export type RenderState = typeof RenderState.Type;
|
|
|
405
401
|
* @public
|
|
406
402
|
*/
|
|
407
403
|
export declare const initialRenderState: RenderState;
|
|
408
|
-
//#endregion
|
|
409
|
-
//#region src/contracts/dispatcher.d.ts
|
|
410
404
|
/**
|
|
411
405
|
* The four run shapes the dispatcher distinguishes.
|
|
412
406
|
*
|
|
@@ -735,8 +729,6 @@ type AgentReport = typeof AgentReport.Type;
|
|
|
735
729
|
declare const TestClassification: Schema.Literals<readonly ["stable", "new-failure", "persistent", "flaky", "recovered"]>;
|
|
736
730
|
/** @public */
|
|
737
731
|
type TestClassification = typeof TestClassification.Type;
|
|
738
|
-
//#endregion
|
|
739
|
-
//#region src/schemas/RunEvent.d.ts
|
|
740
732
|
/**
|
|
741
733
|
* Coverage metric whose threshold can be violated independently.
|
|
742
734
|
* @public
|
|
@@ -1006,8 +998,6 @@ export type RunEvent = typeof RunEvent.Type;
|
|
|
1006
998
|
* @public
|
|
1007
999
|
*/
|
|
1008
1000
|
type RunEventByTag = { [E in RunEvent as E["_tag"]]: E; };
|
|
1009
|
-
//#endregion
|
|
1010
|
-
//#region src/schemas/Thresholds.d.ts
|
|
1011
1001
|
/**
|
|
1012
1002
|
* Per-metric threshold values. All optional -- only set metrics are enforced.
|
|
1013
1003
|
* @public
|
|
@@ -1020,8 +1010,6 @@ declare const MetricThresholds: Schema.Struct<{
|
|
|
1020
1010
|
}>;
|
|
1021
1011
|
/** @public */
|
|
1022
1012
|
type MetricThresholds = typeof MetricThresholds.Type;
|
|
1023
|
-
//#endregion
|
|
1024
|
-
//#region src/utils/build-report.d.ts
|
|
1025
1013
|
/**
|
|
1026
1014
|
* Duck-typed Vitest parsed stack frame.
|
|
1027
1015
|
*
|
|
@@ -1164,8 +1152,6 @@ interface VitestTestModule {
|
|
|
1164
1152
|
diagnostic(): VitestModuleDiagnostic | undefined;
|
|
1165
1153
|
errors(): Array<VitestModuleError>;
|
|
1166
1154
|
}
|
|
1167
|
-
//#endregion
|
|
1168
|
-
//#region src/dispatcher/cell-types.d.ts
|
|
1169
1155
|
/**
|
|
1170
1156
|
* A cell's agent-string half: pure function from dispatch inputs to a
|
|
1171
1157
|
* token-economy string emitted once at end-of-run.
|
|
@@ -1184,8 +1170,6 @@ interface Cell {
|
|
|
1184
1170
|
/** Agent-string half — always present. */
|
|
1185
1171
|
readonly agent: AgentCellFn;
|
|
1186
1172
|
}
|
|
1187
|
-
//#endregion
|
|
1188
|
-
//#region src/dispatcher/classify.d.ts
|
|
1189
1173
|
/**
|
|
1190
1174
|
* Compute the run shape from the reduced state plus the per-project
|
|
1191
1175
|
* aggregates the plugin carries through `DispatchInputs.projects`.
|
|
@@ -1227,8 +1211,6 @@ export declare const classifyRunShape: (state: RenderState, projects: ReadonlyAr
|
|
|
1227
1211
|
* @public
|
|
1228
1212
|
*/
|
|
1229
1213
|
export declare const classifyOutcome: (state: RenderState) => RunOutcome;
|
|
1230
|
-
//#endregion
|
|
1231
|
-
//#region src/dispatcher/dispatch.d.ts
|
|
1232
1214
|
/**
|
|
1233
1215
|
* The 4×3 cell table. Exported for the test harness so spy-based
|
|
1234
1216
|
* routing tests can introspect the wiring without re-deriving it from
|
|
@@ -1247,8 +1229,6 @@ export declare const dispatcherTable: Readonly<Record<RunShape, Readonly<Record<
|
|
|
1247
1229
|
* @public
|
|
1248
1230
|
*/
|
|
1249
1231
|
export declare const dispatch: (inputs: DispatchInputs, opts: CellOptions) => string;
|
|
1250
|
-
//#endregion
|
|
1251
|
-
//#region src/dispatcher/footer.d.ts
|
|
1252
1232
|
/**
|
|
1253
1233
|
* Pick the dominant classification from a state's failure list.
|
|
1254
1234
|
*
|
|
@@ -1272,8 +1252,6 @@ export declare const dominantClassification: (state: RenderState) => TestClassif
|
|
|
1272
1252
|
* @public
|
|
1273
1253
|
*/
|
|
1274
1254
|
export declare const buildFooter: (inputs: DispatchInputs) => string;
|
|
1275
|
-
//#endregion
|
|
1276
|
-
//#region src/format-duration.d.ts
|
|
1277
1255
|
/**
|
|
1278
1256
|
* Shared display formatter for run / module / test durations.
|
|
1279
1257
|
*
|
|
@@ -1302,8 +1280,6 @@ export declare const buildFooter: (inputs: DispatchInputs) => string;
|
|
|
1302
1280
|
* @public
|
|
1303
1281
|
*/
|
|
1304
1282
|
export declare const formatDisplayDuration: (ms: number) => string;
|
|
1305
|
-
//#endregion
|
|
1306
|
-
//#region src/reducer.d.ts
|
|
1307
1283
|
/**
|
|
1308
1284
|
* Apply a single event to the previous state and return the next.
|
|
1309
1285
|
*
|
|
@@ -1329,8 +1305,6 @@ export declare const reduceRenderState: (state: RenderState, event: RunEvent) =>
|
|
|
1329
1305
|
* @public
|
|
1330
1306
|
*/
|
|
1331
1307
|
export declare const reduceRenderStateAll: (events: ReadonlyArray<RunEvent>, seed?: RenderState) => RenderState;
|
|
1332
|
-
//#endregion
|
|
1333
|
-
//#region src/render-agent.d.ts
|
|
1334
1308
|
/**
|
|
1335
1309
|
* Options controlling agent-mode output. All fields optional; defaults
|
|
1336
1310
|
* match the spec's "80-column, top-3 gaps, no error stack" target.
|
|
@@ -1376,8 +1350,6 @@ interface RenderAgentOptions {
|
|
|
1376
1350
|
* @public
|
|
1377
1351
|
*/
|
|
1378
1352
|
export declare const renderAgent: (state: RenderState, options?: RenderAgentOptions) => string;
|
|
1379
|
-
//#endregion
|
|
1380
|
-
//#region src/spinner.d.ts
|
|
1381
1353
|
/**
|
|
1382
1354
|
* The Unicode spinner frames, in animation order (`Glyphs.unicode.spinner`).
|
|
1383
1355
|
*
|
|
@@ -1402,8 +1374,6 @@ export declare const SPINNER_FRAME_MS: number;
|
|
|
1402
1374
|
* @public
|
|
1403
1375
|
*/
|
|
1404
1376
|
export declare const spinnerFrame: (index: number, glyphs?: GlyphSet) => string;
|
|
1405
|
-
//#endregion
|
|
1406
|
-
//#region src/synthesize.d.ts
|
|
1407
1377
|
/**
|
|
1408
1378
|
* Synthetic test name used to surface a suite-level (collection/load)
|
|
1409
1379
|
* failure in the Failures detail. A module that fails to import has no real
|
|
@@ -1513,8 +1483,6 @@ interface SynthesizeFromAgentReportOptions {
|
|
|
1513
1483
|
* @public
|
|
1514
1484
|
*/
|
|
1515
1485
|
export declare const synthesizeFromAgentReport: (report: AgentReport, options?: SynthesizeFromAgentReportOptions) => RunEvent[];
|
|
1516
|
-
//#endregion
|
|
1517
|
-
//#region src/theme.d.ts
|
|
1518
1486
|
/**
|
|
1519
1487
|
* The status vocabulary every vitest-agent render path draws from.
|
|
1520
1488
|
*
|
|
@@ -1589,8 +1557,6 @@ export declare const statusGlyph: (name: VitestAgentStatusName, glyphs?: GlyphSe
|
|
|
1589
1557
|
* @public
|
|
1590
1558
|
*/
|
|
1591
1559
|
export declare const statusInkStyle: (name: VitestAgentStatusName) => InkTextStyle;
|
|
1592
|
-
//#endregion
|
|
1593
|
-
//#region src/index.d.ts
|
|
1594
1560
|
/**
|
|
1595
1561
|
* The version of this package, inlined at build time from
|
|
1596
1562
|
* `package.json#version` via rslib-builder's `__PACKAGE_VERSION__`
|
|
@@ -1599,6 +1565,5 @@ export declare const statusInkStyle: (name: VitestAgentStatusName) => InkTextSty
|
|
|
1599
1565
|
* @public
|
|
1600
1566
|
*/
|
|
1601
1567
|
export declare const CURRENT_UI_VERSION: string;
|
|
1602
|
-
//#endregion
|
|
1603
1568
|
export { type AgentCellFn, type AgentReport, type Cell, type CellOptions, FileCoverageReport as CoverageFile, type CoverageTotals, type DispatchInputs, type GlobShortfall, type InkTextStyle, type MetricThresholds, type ProjectSummary, type RenderAgentOptions, type RunEventByTag, type RunOutcome, type RunShape, type SynthesizeFromAgentReportOptions, type SynthesizeOptions, type SynthesizedCoverage, type TestClassification, type TrendSummary, type VitestAgentStatusName, type VitestModuleDiagnostic, type VitestModuleError, type VitestParsedStack, type VitestTestCase, type VitestTestDiagnostic, type VitestTestError, type VitestTestModule, type VitestTestResult, type VitestTestSuite };
|
|
1604
1569
|
//# sourceMappingURL=index.d.ts.map
|
package/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import { SPINNER_FRAMES, SPINNER_FRAME_MS, spinnerFrame } from "./spinner.js";
|
|
|
9
9
|
import { SUITE_FAILURE_LABEL, SUITE_LOAD_FAILURE_LABEL, synthesizeFromAgentReport, synthesizeRunEvents } from "./synthesize.js";
|
|
10
10
|
import { ActionSeverity, CoverageFile, CoverageGap, CoverageMetric, CoverageRenderState, FailureRecord, ModuleRecord, RenderState, RenderTotals, RunEvent, SuggestedActionRecord, TestRecord, initialRenderState } from "@vitest-agent/sdk";
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
// src/index.ts
|
|
13
13
|
/**
|
|
14
14
|
* The version of this package, inlined at build time from
|
|
15
15
|
* `package.json#version` via rslib-builder's `__PACKAGE_VERSION__`
|
|
@@ -17,7 +17,6 @@ import { ActionSeverity, CoverageFile, CoverageGap, CoverageMetric, CoverageRend
|
|
|
17
17
|
*
|
|
18
18
|
* @public
|
|
19
19
|
*/
|
|
20
|
-
const CURRENT_UI_VERSION = "5.0.
|
|
20
|
+
const CURRENT_UI_VERSION = "5.0.8";
|
|
21
21
|
|
|
22
|
-
//#endregion
|
|
23
22
|
export { ActionSeverity, CURRENT_UI_VERSION, CoverageFile, CoverageGap, CoverageMetric, CoverageRenderState, FailureRecord, ModuleRecord, RenderState, RenderTotals, RunEvent, SPINNER_FRAMES, SPINNER_FRAME_MS, SUITE_FAILURE_LABEL, SUITE_LOAD_FAILURE_LABEL, SuggestedActionRecord, TestRecord, VitestAgentStatus, VitestAgentTokens, buildFooter, classifyOutcome, classifyRunShape, dispatch, dispatcherTable, dominantClassification, formatDisplayDuration, initialRenderState, inkStyle, reduceRenderState, reduceRenderStateAll, renderAgent, spinnerFrame, statusGlyph, statusInkStyle, synthesizeFromAgentReport, synthesizeRunEvents };
|
package/ink/CountColumns.js
CHANGED
|
@@ -3,7 +3,7 @@ import { useGlyphs } from "@effected/cli/ui";
|
|
|
3
3
|
import { Text } from "ink";
|
|
4
4
|
import { jsxs } from "react/jsx-runtime";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/ink/CountColumns.tsx
|
|
7
7
|
/**
|
|
8
8
|
* Fixed width of the duration cell that follows the count columns on an
|
|
9
9
|
* aggregate row — sized for the formatter's widest common output
|
|
@@ -38,5 +38,4 @@ const CountColumns = ({ passCount, failCount, skipCount, timeoutCount }) => {
|
|
|
38
38
|
] });
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
-
//#endregion
|
|
42
41
|
export { CountColumns, DURATION_CELL_WIDTH };
|
package/ink/CoverageBlock.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Fmt } from "@effected/cli";
|
|
|
3
3
|
import { Box, Text } from "ink";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/ink/CoverageBlock.tsx
|
|
7
7
|
/**
|
|
8
8
|
* Coverage section: per-metric percentage, threshold violations, top-N gaps.
|
|
9
9
|
*/
|
|
@@ -82,5 +82,4 @@ const CoverageBlock = ({ coverage, maxGaps = 3 }) => {
|
|
|
82
82
|
});
|
|
83
83
|
};
|
|
84
84
|
|
|
85
|
-
//#endregion
|
|
86
85
|
export { CoverageBlock };
|
package/ink/FailureSection.js
CHANGED
|
@@ -3,7 +3,7 @@ import { useGlyphs } from "@effected/cli/ui";
|
|
|
3
3
|
import { Box, Text } from "ink";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/ink/FailureSection.tsx
|
|
7
7
|
/**
|
|
8
8
|
* Failure list: one block per failed test with classification, message,
|
|
9
9
|
* diff, and optionally stack trace.
|
|
@@ -72,5 +72,4 @@ const FailureSection = ({ failures, includeStack = false }) => {
|
|
|
72
72
|
});
|
|
73
73
|
};
|
|
74
74
|
|
|
75
|
-
//#endregion
|
|
76
75
|
export { FailureSection };
|
package/ink/FailuresSection.js
CHANGED
|
@@ -3,7 +3,7 @@ import { useGlyphs } from "@effected/cli/ui";
|
|
|
3
3
|
import { Box, Text } from "ink";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/ink/FailuresSection.tsx
|
|
7
7
|
/**
|
|
8
8
|
* The capped failures block for aggregate-row shapes (workspace,
|
|
9
9
|
* single-project) — the rows there are projects or modules and cannot
|
|
@@ -94,5 +94,4 @@ const FailuresSection = ({ failures, limit }) => {
|
|
|
94
94
|
});
|
|
95
95
|
};
|
|
96
96
|
|
|
97
|
-
//#endregion
|
|
98
97
|
export { FailuresSection };
|
package/ink/ModuleHeader.js
CHANGED
|
@@ -3,7 +3,7 @@ import { StatusIcon } from "./StatusIcon.js";
|
|
|
3
3
|
import { Box, Text } from "ink";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/ink/ModuleHeader.tsx
|
|
7
7
|
const moduleGlyph = (m) => {
|
|
8
8
|
if (m.status === "queued") return "queued";
|
|
9
9
|
if (m.status === "running") return "running";
|
|
@@ -39,5 +39,4 @@ const ModuleHeader = ({ module }) => {
|
|
|
39
39
|
] });
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
-
//#endregion
|
|
43
42
|
export { ModuleHeader };
|
package/ink/ProjectRow.js
CHANGED
|
@@ -6,7 +6,7 @@ import { TagColumns } from "./TagColumns.js";
|
|
|
6
6
|
import { Box, Text } from "ink";
|
|
7
7
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
// src/ink/ProjectRow.tsx
|
|
10
10
|
/**
|
|
11
11
|
* Pick the glyph element for the project row using the spec's severity
|
|
12
12
|
* precedence (`✗ > ⧖ > ⚠ > ↷ > ✓`). Skip-only projects (no passes, no
|
|
@@ -53,5 +53,4 @@ const ProjectRow = ({ project, counts, running, timedOut = false, elapsedMs, fra
|
|
|
53
53
|
})] }) : null
|
|
54
54
|
] });
|
|
55
55
|
|
|
56
|
-
//#endregion
|
|
57
56
|
export { ProjectRow };
|
package/ink/StatusIcon.js
CHANGED
|
@@ -3,7 +3,7 @@ import { useGlyphs } from "@effected/cli/ui";
|
|
|
3
3
|
import { Text } from "ink";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/ink/StatusIcon.tsx
|
|
7
7
|
/**
|
|
8
8
|
* Single-character status glyph for tests, modules, and the run itself.
|
|
9
9
|
*
|
|
@@ -39,5 +39,4 @@ const StatusIcon = ({ status }) => {
|
|
|
39
39
|
});
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
-
//#endregion
|
|
43
42
|
export { StatusIcon };
|
package/ink/StreamApp.js
CHANGED
|
@@ -14,7 +14,7 @@ import { useGlyphs } from "@effected/cli/ui";
|
|
|
14
14
|
import { Box, Text } from "ink";
|
|
15
15
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
// src/ink/StreamApp.tsx
|
|
18
18
|
const ANONYMOUS_PROJECT = "default";
|
|
19
19
|
/** Maximum number of running rows displayed in the Live region. Beyond this,
|
|
20
20
|
* excess running units collapse into a single "… and N more running" line. */
|
|
@@ -523,5 +523,4 @@ const StreamApp = ({ state, frameIndex, nowMs }) => {
|
|
|
523
523
|
});
|
|
524
524
|
};
|
|
525
525
|
|
|
526
|
-
//#endregion
|
|
527
526
|
export { StreamApp, buildProjectSummary };
|
package/ink/SuggestedActions.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Token } from "@effected/cli";
|
|
|
3
3
|
import { Box, Text } from "ink";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/ink/SuggestedActions.tsx
|
|
7
7
|
const SEVERITY_TOKEN = {
|
|
8
8
|
info: Token.named("blue"),
|
|
9
9
|
warn: "warning",
|
|
@@ -47,5 +47,4 @@ const SuggestedActions = ({ actions }) => {
|
|
|
47
47
|
});
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
-
//#endregion
|
|
51
50
|
export { SuggestedActions };
|
package/ink/TagColumns.js
CHANGED
|
@@ -2,7 +2,7 @@ import { VitestAgentTokens, inkStyle } from "../theme.js";
|
|
|
2
2
|
import { Text } from "ink";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/ink/TagColumns.tsx
|
|
6
6
|
/**
|
|
7
7
|
* Fixed-width tag-count columns for aggregate rows in the `stream` view.
|
|
8
8
|
* Every row renders every tag in the view's union so the columns align
|
|
@@ -46,5 +46,4 @@ const TagColumns = ({ tags, counts }) => {
|
|
|
46
46
|
}) });
|
|
47
47
|
};
|
|
48
48
|
|
|
49
|
-
//#endregion
|
|
50
49
|
export { TagColumns, tagUnion };
|
package/ink/TestRow.js
CHANGED
|
@@ -3,7 +3,7 @@ import { StatusIcon } from "./StatusIcon.js";
|
|
|
3
3
|
import { Box, Text } from "ink";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/ink/TestRow.tsx
|
|
7
7
|
const testGlyph = (status) => status;
|
|
8
8
|
/**
|
|
9
9
|
* Renders one test row: status glyph, optional suite prefix, test name, and duration.
|
|
@@ -29,5 +29,4 @@ const TestRow = ({ test, indent = 2 }) => {
|
|
|
29
29
|
] });
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
//#endregion
|
|
33
32
|
export { TestRow };
|
package/ink/TrendLine.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Fmt } from "@effected/cli";
|
|
|
3
3
|
import { Text } from "ink";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/ink/TrendLine.tsx
|
|
7
7
|
/** A regressing trend is a `warning`, not a failure (the kit's drift decision). */
|
|
8
8
|
const TOKEN = {
|
|
9
9
|
improving: "success",
|
|
@@ -38,5 +38,4 @@ const TrendLine = ({ trend }) => {
|
|
|
38
38
|
] });
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
-
//#endregion
|
|
42
41
|
export { TrendLine };
|
package/ink/dispatch-ink.js
CHANGED
|
@@ -3,7 +3,7 @@ import { renderAgentStringAsInk } from "./ink-helpers.js";
|
|
|
3
3
|
import { Box, Text } from "ink";
|
|
4
4
|
import { createElement } from "react";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/ink/dispatch-ink.ts
|
|
7
7
|
/** The Ink half of a cell whose live view is its agent string, painted. */
|
|
8
8
|
const asInk = (agent) => (inputs, opts) => renderAgentStringAsInk(agent(inputs, opts));
|
|
9
9
|
const inkOf = (shape, outcome) => asInk(dispatcherTable[shape][outcome].agent);
|
|
@@ -57,5 +57,4 @@ const dispatchInk = (inputs, opts) => {
|
|
|
57
57
|
return createElement(Box, { flexDirection: "column" }, element, note !== null ? createElement(Text, null, note) : null, stray !== null ? createElement(Box, { marginTop: 1 }, createElement(Text, null, stray)) : null);
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
//#endregion
|
|
61
60
|
export { dispatchInk, inkDispatcherTable };
|
package/ink/ink-helpers.js
CHANGED
|
@@ -2,7 +2,7 @@ import { inkStyle, statusGlyph, statusInkStyle } from "../theme.js";
|
|
|
2
2
|
import { Box, Text } from "ink";
|
|
3
3
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/ink/ink-helpers.tsx
|
|
6
6
|
/**
|
|
7
7
|
* Render an agent-string output as a column of Ink Text rows, applying
|
|
8
8
|
* color to the leading status glyph on each line.
|
|
@@ -52,5 +52,4 @@ const colorize = (line) => {
|
|
|
52
52
|
return line;
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
//#endregion
|
|
56
55
|
export { renderAgentStringAsInk };
|
package/ink.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
2
|
import { FC, ReactElement } from "react";
|
|
3
|
-
//#region ../sdk/dist/dev/pkg/index.d.ts
|
|
4
3
|
/**
|
|
5
4
|
* Per-file coverage data including uncovered line ranges.
|
|
6
5
|
* @public
|
|
@@ -17,8 +16,6 @@ declare const FileCoverageReport: Schema.Struct<{
|
|
|
17
16
|
}>;
|
|
18
17
|
/** @public */
|
|
19
18
|
type FileCoverageReport = typeof FileCoverageReport.Type;
|
|
20
|
-
//#endregion
|
|
21
|
-
//#region src/schemas/RenderState.d.ts
|
|
22
19
|
/**
|
|
23
20
|
* Per-test record accumulated as `TestStarted` / `TestFinished` events arrive.
|
|
24
21
|
* @public
|
|
@@ -342,8 +339,6 @@ declare const RenderState: Schema.Struct<{
|
|
|
342
339
|
}>;
|
|
343
340
|
/** @public */
|
|
344
341
|
type RenderState = typeof RenderState.Type;
|
|
345
|
-
//#endregion
|
|
346
|
-
//#region src/contracts/dispatcher.d.ts
|
|
347
342
|
/**
|
|
348
343
|
* The four run shapes the dispatcher distinguishes.
|
|
349
344
|
*
|
|
@@ -465,8 +460,6 @@ interface CellOptions {
|
|
|
465
460
|
*/
|
|
466
461
|
readonly osc8: (url: string, label: string) => string;
|
|
467
462
|
}
|
|
468
|
-
//#endregion
|
|
469
|
-
//#region src/ink/CountColumns.d.ts
|
|
470
463
|
/**
|
|
471
464
|
* Props for the `CountColumns` component.
|
|
472
465
|
*
|
|
@@ -500,8 +493,6 @@ export declare const DURATION_CELL_WIDTH = 7;
|
|
|
500
493
|
* @public
|
|
501
494
|
*/
|
|
502
495
|
export declare const CountColumns: FC<CountColumnsProps>;
|
|
503
|
-
//#endregion
|
|
504
|
-
//#region src/ink/CoverageBlock.d.ts
|
|
505
496
|
/**
|
|
506
497
|
* Props for the `CoverageBlock` component.
|
|
507
498
|
*
|
|
@@ -520,8 +511,6 @@ interface CoverageBlockProps {
|
|
|
520
511
|
* @public
|
|
521
512
|
*/
|
|
522
513
|
export declare const CoverageBlock: FC<CoverageBlockProps>;
|
|
523
|
-
//#endregion
|
|
524
|
-
//#region src/ink/dispatch-ink.d.ts
|
|
525
514
|
/**
|
|
526
515
|
* A cell's Ink half: pure function from dispatch inputs to a React
|
|
527
516
|
* element rendered to the terminal.
|
|
@@ -549,8 +538,6 @@ export declare const inkDispatcherTable: Readonly<Record<RunShape, Readonly<Reco
|
|
|
549
538
|
* @public
|
|
550
539
|
*/
|
|
551
540
|
export declare const dispatchInk: (inputs: DispatchInputs, opts: CellOptions) => ReactElement | null;
|
|
552
|
-
//#endregion
|
|
553
|
-
//#region src/ink/FailureSection.d.ts
|
|
554
541
|
/**
|
|
555
542
|
* Props for the `FailureSection` component.
|
|
556
543
|
*
|
|
@@ -569,8 +556,6 @@ interface FailureSectionProps {
|
|
|
569
556
|
* @public
|
|
570
557
|
*/
|
|
571
558
|
export declare const FailureSection: FC<FailureSectionProps>;
|
|
572
|
-
//#endregion
|
|
573
|
-
//#region src/ink/FailuresSection.d.ts
|
|
574
559
|
/**
|
|
575
560
|
* Props for the `FailuresSection` component.
|
|
576
561
|
*
|
|
@@ -589,8 +574,6 @@ interface FailuresSectionProps {
|
|
|
589
574
|
* @public
|
|
590
575
|
*/
|
|
591
576
|
export declare const FailuresSection: FC<FailuresSectionProps>;
|
|
592
|
-
//#endregion
|
|
593
|
-
//#region src/ink/ModuleHeader.d.ts
|
|
594
577
|
/**
|
|
595
578
|
* Props for the `ModuleHeader` component.
|
|
596
579
|
*
|
|
@@ -607,8 +590,6 @@ interface ModuleHeaderProps {
|
|
|
607
590
|
* @public
|
|
608
591
|
*/
|
|
609
592
|
export declare const ModuleHeader: FC<ModuleHeaderProps>;
|
|
610
|
-
//#endregion
|
|
611
|
-
//#region src/ink/ProjectRow.d.ts
|
|
612
593
|
/**
|
|
613
594
|
* Props for the `ProjectRow` component.
|
|
614
595
|
*
|
|
@@ -653,8 +634,6 @@ interface ProjectRowProps {
|
|
|
653
634
|
* @public
|
|
654
635
|
*/
|
|
655
636
|
export declare const ProjectRow: FC<ProjectRowProps>;
|
|
656
|
-
//#endregion
|
|
657
|
-
//#region src/ink/StatusIcon.d.ts
|
|
658
637
|
/**
|
|
659
638
|
* The set of named statuses a `StatusIcon` can render.
|
|
660
639
|
*
|
|
@@ -676,8 +655,6 @@ interface StatusIconProps {
|
|
|
676
655
|
* @public
|
|
677
656
|
*/
|
|
678
657
|
export declare const StatusIcon: FC<StatusIconProps>;
|
|
679
|
-
//#endregion
|
|
680
|
-
//#region src/ink/StreamApp.d.ts
|
|
681
658
|
/**
|
|
682
659
|
* Props for the `StreamApp` component.
|
|
683
660
|
*
|
|
@@ -698,8 +675,6 @@ interface StreamAppProps {
|
|
|
698
675
|
* @public
|
|
699
676
|
*/
|
|
700
677
|
export declare const StreamApp: FC<StreamAppProps>;
|
|
701
|
-
//#endregion
|
|
702
|
-
//#region src/ink/SuggestedActions.d.ts
|
|
703
678
|
/**
|
|
704
679
|
* Props for the `SuggestedActions` component.
|
|
705
680
|
*
|
|
@@ -716,8 +691,6 @@ interface SuggestedActionsProps {
|
|
|
716
691
|
* @public
|
|
717
692
|
*/
|
|
718
693
|
export declare const SuggestedActions: FC<SuggestedActionsProps>;
|
|
719
|
-
//#endregion
|
|
720
|
-
//#region src/ink/TagColumns.d.ts
|
|
721
694
|
/**
|
|
722
695
|
* Compute the view-level tag union: the alphabetically sorted set of tag
|
|
723
696
|
* names across every row's tag counts. A union of a single tag carries no
|
|
@@ -745,8 +718,6 @@ interface TagColumnsProps {
|
|
|
745
718
|
* @public
|
|
746
719
|
*/
|
|
747
720
|
export declare const TagColumns: FC<TagColumnsProps>;
|
|
748
|
-
//#endregion
|
|
749
|
-
//#region src/ink/TestRow.d.ts
|
|
750
721
|
/**
|
|
751
722
|
* Props for the `TestRow` component.
|
|
752
723
|
*
|
|
@@ -764,8 +735,6 @@ interface TestRowProps {
|
|
|
764
735
|
* @public
|
|
765
736
|
*/
|
|
766
737
|
export declare const TestRow: FC<TestRowProps>;
|
|
767
|
-
//#endregion
|
|
768
|
-
//#region src/ink/TrendLine.d.ts
|
|
769
738
|
/**
|
|
770
739
|
* Props for the `TrendLine` component.
|
|
771
740
|
*
|
|
@@ -784,6 +753,5 @@ interface TrendLineProps {
|
|
|
784
753
|
* @public
|
|
785
754
|
*/
|
|
786
755
|
export declare const TrendLine: FC<TrendLineProps>;
|
|
787
|
-
//#endregion
|
|
788
756
|
export type { CellOptions, CountColumnsProps, CoverageBlockProps, CoverageRenderState, DispatchInputs, FailureRecord, FailureSectionProps, FailuresSectionProps, FileCoverageReport, InkCellFn, ModuleHeaderProps, ModuleRecord, ProjectRowProps, ProjectSummary, RenderState, RunOutcome, RunShape, StatusIconKind, StatusIconProps, StreamAppProps, SuggestedActionRecord, SuggestedActionsProps, TagColumnsProps, TestRecord, TestRowProps, TrendLineProps, TrendSummary };
|
|
789
757
|
//# sourceMappingURL=ink.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitest-agent/ui",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.8",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Shared event-sourced renderer for vitest-agent. React Ink view for humans, plain-string view for agents, both fed by the same reducer over a RunEvent stream.",
|
|
6
6
|
"keywords": [
|
|
@@ -44,14 +44,14 @@
|
|
|
44
44
|
"./package.json": "./package.json"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@vitest-agent/sdk": "7.0.
|
|
48
|
-
"effect": "^4.0.
|
|
47
|
+
"@vitest-agent/sdk": "7.0.5",
|
|
48
|
+
"effect": "^4.0.6"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"@effected/cli": "^0.
|
|
52
|
-
"@effected/env": "^0.
|
|
53
|
-
"@effected/glob": "^0.
|
|
54
|
-
"@effected/walker": "^0.
|
|
51
|
+
"@effected/cli": "^0.22.0",
|
|
52
|
+
"@effected/env": "^0.5.0",
|
|
53
|
+
"@effected/glob": "^0.14.0",
|
|
54
|
+
"@effected/walker": "^0.19.0",
|
|
55
55
|
"ink": "^8.0.0",
|
|
56
56
|
"react": "^19.3.0"
|
|
57
57
|
},
|
package/reducer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { initialRenderState } from "@vitest-agent/sdk";
|
|
2
2
|
import { Match } from "effect";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/reducer.ts
|
|
5
5
|
const queuedModule = (modulePath, projectName) => ({
|
|
6
6
|
modulePath,
|
|
7
7
|
status: "queued",
|
|
@@ -263,5 +263,4 @@ const reduceRenderState = (state, event) => {
|
|
|
263
263
|
*/
|
|
264
264
|
const reduceRenderStateAll = (events, seed = initialRenderState) => events.reduce(reduceRenderState, seed);
|
|
265
265
|
|
|
266
|
-
//#endregion
|
|
267
266
|
export { reduceRenderState, reduceRenderStateAll };
|
package/render-agent.js
CHANGED
|
@@ -3,7 +3,7 @@ import { formatFailure as formatFailure$1, formatGlobShortfallLines } from "./di
|
|
|
3
3
|
import { formatStrayOutputNote } from "@vitest-agent/sdk";
|
|
4
4
|
import { Fmt } from "@effected/cli";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/render-agent.ts
|
|
7
7
|
/**
|
|
8
8
|
* Agent-mode renderer: produces a token-efficient final-frame string
|
|
9
9
|
* from a fully-reduced `RenderState`.
|
|
@@ -146,5 +146,4 @@ const renderAgent = (state, options = {}) => {
|
|
|
146
146
|
return `${sections.join("\n\n")}\n`;
|
|
147
147
|
};
|
|
148
148
|
|
|
149
|
-
//#endregion
|
|
150
149
|
export { renderAgent };
|
package/spinner.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Glyphs } from "@effected/cli";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
// src/spinner.ts
|
|
4
4
|
/**
|
|
5
5
|
* The Unicode spinner frames, in animation order (`Glyphs.unicode.spinner`).
|
|
6
6
|
*
|
|
@@ -30,5 +30,4 @@ const spinnerFrame = (index, glyphs = Glyphs.unicode) => {
|
|
|
30
30
|
return frames[(Math.trunc(index) % count + count) % count] ?? "";
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
//#endregion
|
|
34
33
|
export { SPINNER_FRAMES, SPINNER_FRAME_MS, spinnerFrame };
|
package/synthesize.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isTimeoutError } from "@vitest-agent/sdk";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
// src/synthesize.ts
|
|
4
4
|
/**
|
|
5
5
|
* Synthetic test name used to surface a suite-level (collection/load)
|
|
6
6
|
* failure in the Failures detail. A module that fails to import has no real
|
|
@@ -392,5 +392,4 @@ const synthesizeFromAgentReport = (report, options = {}) => {
|
|
|
392
392
|
return events;
|
|
393
393
|
};
|
|
394
394
|
|
|
395
|
-
//#endregion
|
|
396
395
|
export { SUITE_FAILURE_LABEL, SUITE_LOAD_FAILURE_LABEL, synthesizeFromAgentReport, synthesizeRunEvents };
|
package/theme.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Glyphs, Status, Token } from "@effected/cli";
|
|
2
2
|
import { inkProps } from "@effected/cli/ui";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/theme.ts
|
|
5
5
|
/**
|
|
6
6
|
* The status vocabulary every vitest-agent render path draws from.
|
|
7
7
|
*
|
|
@@ -78,5 +78,4 @@ const statusGlyph = (name, glyphs = Glyphs.unicode) => VitestAgentStatus.glyph(n
|
|
|
78
78
|
*/
|
|
79
79
|
const statusInkStyle = (name) => inkStyle(VitestAgentStatus.def(name).token);
|
|
80
80
|
|
|
81
|
-
//#endregion
|
|
82
81
|
export { VitestAgentStatus, VitestAgentTokens, inkStyle, statusGlyph, statusInkStyle };
|