@vitest-agent/ui 1.0.1 → 1.0.2
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/dispatcher/helpers.js +1 -1
- package/index.d.ts +264 -258
- package/index.js +2 -4
- package/package.json +2 -2
- package/pubsub/index.js +1 -1
- package/render-ink/index.js +1 -1
package/dispatcher/helpers.js
CHANGED
|
@@ -183,4 +183,4 @@ const pctCell = (n) => {
|
|
|
183
183
|
};
|
|
184
184
|
|
|
185
185
|
//#endregion
|
|
186
|
-
export { formatBelowTargetTable, formatCoverageJudgmentLine, formatFailure, formatProjectsTable, formatTestName, formatTotals, formatTrendLine, formatWorkspaceTotal, soleModulePath, soleTest };
|
|
186
|
+
export { formatBelowTargetTable, formatCoverageJudgmentLine, formatDisplayDuration, formatFailure, formatProjectRow, formatProjectsTable, formatTestName, formatTotals, formatTrendLine, formatWorkspaceTotal, soleModulePath, soleTest, truncate };
|
package/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Context, Effect, Layer, PubSub, Queue, Schema, Scope, Stream } from "effect";
|
|
2
2
|
import { FC, ReactElement } from "react";
|
|
3
3
|
|
|
4
|
-
//#region ../sdk/dist/dev/pkg/
|
|
4
|
+
//#region ../sdk/dist/dev/pkg/index.d.ts
|
|
5
5
|
//#region src/schemas/Coverage.d.ts
|
|
6
6
|
/**
|
|
7
7
|
* Aggregate coverage percentages across four istanbul metrics.
|
|
@@ -35,156 +35,7 @@ type FileCoverageReport = typeof FileCoverageReport.Type;
|
|
|
35
35
|
* Complete coverage report attached to an AgentReport.
|
|
36
36
|
* @public
|
|
37
37
|
*/
|
|
38
|
-
/**
|
|
39
|
-
* Complete per-project test report written to disk as JSON.
|
|
40
|
-
* @public
|
|
41
|
-
*/
|
|
42
|
-
declare const AgentReport: Schema.Struct<{
|
|
43
|
-
timestamp: typeof Schema.String;
|
|
44
|
-
project: Schema.optional<typeof Schema.String>;
|
|
45
|
-
reason: Schema.Literal<["passed", "failed", "interrupted"]>;
|
|
46
|
-
summary: Schema.Struct<{
|
|
47
|
-
total: typeof Schema.Number;
|
|
48
|
-
passed: typeof Schema.Number;
|
|
49
|
-
failed: typeof Schema.Number;
|
|
50
|
-
skipped: typeof Schema.Number;
|
|
51
|
-
duration: typeof Schema.Number;
|
|
52
|
-
}>;
|
|
53
|
-
failed: Schema.Array$<Schema.Struct<{
|
|
54
|
-
file: typeof Schema.String;
|
|
55
|
-
state: Schema.Literal<["passed", "failed", "skipped", "pending"]>;
|
|
56
|
-
duration: Schema.optional<typeof Schema.Number>;
|
|
57
|
-
errors: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
58
|
-
message: typeof Schema.String;
|
|
59
|
-
stack: Schema.optional<typeof Schema.String>;
|
|
60
|
-
diff: Schema.optional<typeof Schema.String>;
|
|
61
|
-
expected: Schema.optional<typeof Schema.String>;
|
|
62
|
-
received: Schema.optional<typeof Schema.String>;
|
|
63
|
-
}>>>;
|
|
64
|
-
tests: Schema.Array$<Schema.Struct<{
|
|
65
|
-
name: typeof Schema.String;
|
|
66
|
-
fullName: typeof Schema.String;
|
|
67
|
-
state: Schema.Literal<["passed", "failed", "skipped", "pending"]>;
|
|
68
|
-
duration: Schema.optional<typeof Schema.Number>;
|
|
69
|
-
flaky: Schema.optional<typeof Schema.Boolean>;
|
|
70
|
-
slow: Schema.optional<typeof Schema.Boolean>;
|
|
71
|
-
errors: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
72
|
-
message: typeof Schema.String;
|
|
73
|
-
stack: Schema.optional<typeof Schema.String>;
|
|
74
|
-
diff: Schema.optional<typeof Schema.String>;
|
|
75
|
-
expected: Schema.optional<typeof Schema.String>;
|
|
76
|
-
received: Schema.optional<typeof Schema.String>;
|
|
77
|
-
}>>>;
|
|
78
|
-
classification: Schema.optional<Schema.Literal<["stable", "new-failure", "persistent", "flaky", "recovered"]>>;
|
|
79
|
-
}>>;
|
|
80
|
-
}>>;
|
|
81
|
-
unhandledErrors: Schema.Array$<Schema.Struct<{
|
|
82
|
-
message: typeof Schema.String;
|
|
83
|
-
stack: Schema.optional<typeof Schema.String>;
|
|
84
|
-
diff: Schema.optional<typeof Schema.String>;
|
|
85
|
-
expected: Schema.optional<typeof Schema.String>;
|
|
86
|
-
received: Schema.optional<typeof Schema.String>;
|
|
87
|
-
}>>;
|
|
88
|
-
failedFiles: Schema.Array$<typeof Schema.String>;
|
|
89
|
-
coverage: Schema.optional<Schema.Struct<{
|
|
90
|
-
totals: Schema.Struct<{
|
|
91
|
-
statements: typeof Schema.Number;
|
|
92
|
-
branches: typeof Schema.Number;
|
|
93
|
-
functions: typeof Schema.Number;
|
|
94
|
-
lines: typeof Schema.Number;
|
|
95
|
-
}>;
|
|
96
|
-
thresholds: Schema.Struct<{
|
|
97
|
-
global: Schema.Struct<{
|
|
98
|
-
lines: Schema.optional<typeof Schema.Number>;
|
|
99
|
-
functions: Schema.optional<typeof Schema.Number>;
|
|
100
|
-
branches: Schema.optional<typeof Schema.Number>;
|
|
101
|
-
statements: Schema.optional<typeof Schema.Number>;
|
|
102
|
-
}>;
|
|
103
|
-
patterns: Schema.optionalWith<Schema.Array$<Schema.Tuple2<typeof Schema.String, Schema.Struct<{
|
|
104
|
-
lines: Schema.optional<typeof Schema.Number>;
|
|
105
|
-
functions: Schema.optional<typeof Schema.Number>;
|
|
106
|
-
branches: Schema.optional<typeof Schema.Number>;
|
|
107
|
-
statements: Schema.optional<typeof Schema.Number>;
|
|
108
|
-
}>>>, {
|
|
109
|
-
default: () => never[];
|
|
110
|
-
}>;
|
|
111
|
-
}>;
|
|
112
|
-
targets: Schema.optional<Schema.Struct<{
|
|
113
|
-
global: Schema.Struct<{
|
|
114
|
-
lines: Schema.optional<typeof Schema.Number>;
|
|
115
|
-
functions: Schema.optional<typeof Schema.Number>;
|
|
116
|
-
branches: Schema.optional<typeof Schema.Number>;
|
|
117
|
-
statements: Schema.optional<typeof Schema.Number>;
|
|
118
|
-
}>;
|
|
119
|
-
patterns: Schema.optionalWith<Schema.Array$<Schema.Tuple2<typeof Schema.String, Schema.Struct<{
|
|
120
|
-
lines: Schema.optional<typeof Schema.Number>;
|
|
121
|
-
functions: Schema.optional<typeof Schema.Number>;
|
|
122
|
-
branches: Schema.optional<typeof Schema.Number>;
|
|
123
|
-
statements: Schema.optional<typeof Schema.Number>;
|
|
124
|
-
}>>>, {
|
|
125
|
-
default: () => never[];
|
|
126
|
-
}>;
|
|
127
|
-
}>>;
|
|
128
|
-
baselines: Schema.optional<Schema.Struct<{
|
|
129
|
-
global: Schema.Struct<{
|
|
130
|
-
lines: Schema.optional<typeof Schema.Number>;
|
|
131
|
-
functions: Schema.optional<typeof Schema.Number>;
|
|
132
|
-
branches: Schema.optional<typeof Schema.Number>;
|
|
133
|
-
statements: Schema.optional<typeof Schema.Number>;
|
|
134
|
-
}>;
|
|
135
|
-
patterns: Schema.optionalWith<Schema.Array$<Schema.Tuple2<typeof Schema.String, Schema.Struct<{
|
|
136
|
-
lines: Schema.optional<typeof Schema.Number>;
|
|
137
|
-
functions: Schema.optional<typeof Schema.Number>;
|
|
138
|
-
branches: Schema.optional<typeof Schema.Number>;
|
|
139
|
-
statements: Schema.optional<typeof Schema.Number>;
|
|
140
|
-
}>>>, {
|
|
141
|
-
default: () => never[];
|
|
142
|
-
}>;
|
|
143
|
-
}>>;
|
|
144
|
-
scoped: Schema.optionalWith<typeof Schema.Boolean, {
|
|
145
|
-
default: () => false;
|
|
146
|
-
}>;
|
|
147
|
-
scopedFiles: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
148
|
-
lowCoverage: Schema.Array$<Schema.Struct<{
|
|
149
|
-
file: typeof Schema.String;
|
|
150
|
-
summary: Schema.Struct<{
|
|
151
|
-
statements: typeof Schema.Number;
|
|
152
|
-
branches: typeof Schema.Number;
|
|
153
|
-
functions: typeof Schema.Number;
|
|
154
|
-
lines: typeof Schema.Number;
|
|
155
|
-
}>;
|
|
156
|
-
uncoveredLines: typeof Schema.String;
|
|
157
|
-
}>>;
|
|
158
|
-
lowCoverageFiles: Schema.Array$<typeof Schema.String>;
|
|
159
|
-
belowTarget: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
160
|
-
file: typeof Schema.String;
|
|
161
|
-
summary: Schema.Struct<{
|
|
162
|
-
statements: typeof Schema.Number;
|
|
163
|
-
branches: typeof Schema.Number;
|
|
164
|
-
functions: typeof Schema.Number;
|
|
165
|
-
lines: typeof Schema.Number;
|
|
166
|
-
}>;
|
|
167
|
-
uncoveredLines: typeof Schema.String;
|
|
168
|
-
}>>>;
|
|
169
|
-
belowTargetFiles: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
170
|
-
}>>;
|
|
171
|
-
tagCounts: Schema.optional<Schema.Record$<typeof Schema.String, Schema.Struct<{
|
|
172
|
-
passed: Schema.optional<typeof Schema.Number>;
|
|
173
|
-
failed: Schema.optional<typeof Schema.Number>;
|
|
174
|
-
skipped: Schema.optional<typeof Schema.Number>;
|
|
175
|
-
}>>>;
|
|
176
|
-
}>;
|
|
177
|
-
/** @public */
|
|
178
|
-
type AgentReport = typeof AgentReport.Type; //#endregion
|
|
179
|
-
//#region src/schemas/Identity.d.ts
|
|
180
|
-
/**
|
|
181
|
-
* Canonical UUID for an LLM agent invocation. Generated server-side at
|
|
182
|
-
* `register_agent` time. Stable across transport reconnects within an
|
|
183
|
-
* agent's lifetime.
|
|
184
|
-
* @public
|
|
185
|
-
*/
|
|
186
38
|
//#endregion
|
|
187
|
-
//#region ../sdk/dist/dev/pkg/index.d.ts
|
|
188
39
|
//#region src/schemas/RenderState.d.ts
|
|
189
40
|
/**
|
|
190
41
|
* Per-test record accumulated as `TestStarted` / `TestFinished` events arrive.
|
|
@@ -577,6 +428,163 @@ interface CellOptions {
|
|
|
577
428
|
*/
|
|
578
429
|
readonly osc8: (url: string, label: string) => string;
|
|
579
430
|
} //#endregion
|
|
431
|
+
//#region src/schemas/AgentReport.d.ts
|
|
432
|
+
/**
|
|
433
|
+
* Aggregate test run statistics.
|
|
434
|
+
* @public
|
|
435
|
+
*/
|
|
436
|
+
/**
|
|
437
|
+
* Complete per-project test report written to disk as JSON.
|
|
438
|
+
* @public
|
|
439
|
+
*/
|
|
440
|
+
declare const AgentReport: Schema.Struct<{
|
|
441
|
+
timestamp: typeof Schema.String;
|
|
442
|
+
project: Schema.optional<typeof Schema.String>;
|
|
443
|
+
reason: Schema.Literal<["passed", "failed", "interrupted"]>;
|
|
444
|
+
summary: Schema.Struct<{
|
|
445
|
+
total: typeof Schema.Number;
|
|
446
|
+
passed: typeof Schema.Number;
|
|
447
|
+
failed: typeof Schema.Number;
|
|
448
|
+
skipped: typeof Schema.Number;
|
|
449
|
+
duration: typeof Schema.Number;
|
|
450
|
+
}>;
|
|
451
|
+
failed: Schema.Array$<Schema.Struct<{
|
|
452
|
+
file: typeof Schema.String;
|
|
453
|
+
state: Schema.Literal<["passed", "failed", "skipped", "pending"]>;
|
|
454
|
+
duration: Schema.optional<typeof Schema.Number>;
|
|
455
|
+
errors: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
456
|
+
message: typeof Schema.String;
|
|
457
|
+
stack: Schema.optional<typeof Schema.String>;
|
|
458
|
+
diff: Schema.optional<typeof Schema.String>;
|
|
459
|
+
expected: Schema.optional<typeof Schema.String>;
|
|
460
|
+
received: Schema.optional<typeof Schema.String>;
|
|
461
|
+
}>>>;
|
|
462
|
+
tests: Schema.Array$<Schema.Struct<{
|
|
463
|
+
name: typeof Schema.String;
|
|
464
|
+
fullName: typeof Schema.String;
|
|
465
|
+
state: Schema.Literal<["passed", "failed", "skipped", "pending"]>;
|
|
466
|
+
duration: Schema.optional<typeof Schema.Number>;
|
|
467
|
+
flaky: Schema.optional<typeof Schema.Boolean>;
|
|
468
|
+
slow: Schema.optional<typeof Schema.Boolean>;
|
|
469
|
+
errors: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
470
|
+
message: typeof Schema.String;
|
|
471
|
+
stack: Schema.optional<typeof Schema.String>;
|
|
472
|
+
diff: Schema.optional<typeof Schema.String>;
|
|
473
|
+
expected: Schema.optional<typeof Schema.String>;
|
|
474
|
+
received: Schema.optional<typeof Schema.String>;
|
|
475
|
+
}>>>;
|
|
476
|
+
classification: Schema.optional<Schema.Literal<["stable", "new-failure", "persistent", "flaky", "recovered"]>>;
|
|
477
|
+
}>>;
|
|
478
|
+
}>>;
|
|
479
|
+
unhandledErrors: Schema.Array$<Schema.Struct<{
|
|
480
|
+
message: typeof Schema.String;
|
|
481
|
+
stack: Schema.optional<typeof Schema.String>;
|
|
482
|
+
diff: Schema.optional<typeof Schema.String>;
|
|
483
|
+
expected: Schema.optional<typeof Schema.String>;
|
|
484
|
+
received: Schema.optional<typeof Schema.String>;
|
|
485
|
+
}>>;
|
|
486
|
+
failedFiles: Schema.Array$<typeof Schema.String>;
|
|
487
|
+
coverage: Schema.optional<Schema.Struct<{
|
|
488
|
+
totals: Schema.Struct<{
|
|
489
|
+
statements: typeof Schema.Number;
|
|
490
|
+
branches: typeof Schema.Number;
|
|
491
|
+
functions: typeof Schema.Number;
|
|
492
|
+
lines: typeof Schema.Number;
|
|
493
|
+
}>;
|
|
494
|
+
thresholds: Schema.Struct<{
|
|
495
|
+
global: Schema.Struct<{
|
|
496
|
+
lines: Schema.optional<typeof Schema.Number>;
|
|
497
|
+
functions: Schema.optional<typeof Schema.Number>;
|
|
498
|
+
branches: Schema.optional<typeof Schema.Number>;
|
|
499
|
+
statements: Schema.optional<typeof Schema.Number>;
|
|
500
|
+
}>;
|
|
501
|
+
patterns: Schema.optionalWith<Schema.Array$<Schema.Tuple2<typeof Schema.String, Schema.Struct<{
|
|
502
|
+
lines: Schema.optional<typeof Schema.Number>;
|
|
503
|
+
functions: Schema.optional<typeof Schema.Number>;
|
|
504
|
+
branches: Schema.optional<typeof Schema.Number>;
|
|
505
|
+
statements: Schema.optional<typeof Schema.Number>;
|
|
506
|
+
}>>>, {
|
|
507
|
+
default: () => never[];
|
|
508
|
+
}>;
|
|
509
|
+
}>;
|
|
510
|
+
targets: Schema.optional<Schema.Struct<{
|
|
511
|
+
global: Schema.Struct<{
|
|
512
|
+
lines: Schema.optional<typeof Schema.Number>;
|
|
513
|
+
functions: Schema.optional<typeof Schema.Number>;
|
|
514
|
+
branches: Schema.optional<typeof Schema.Number>;
|
|
515
|
+
statements: Schema.optional<typeof Schema.Number>;
|
|
516
|
+
}>;
|
|
517
|
+
patterns: Schema.optionalWith<Schema.Array$<Schema.Tuple2<typeof Schema.String, Schema.Struct<{
|
|
518
|
+
lines: Schema.optional<typeof Schema.Number>;
|
|
519
|
+
functions: Schema.optional<typeof Schema.Number>;
|
|
520
|
+
branches: Schema.optional<typeof Schema.Number>;
|
|
521
|
+
statements: Schema.optional<typeof Schema.Number>;
|
|
522
|
+
}>>>, {
|
|
523
|
+
default: () => never[];
|
|
524
|
+
}>;
|
|
525
|
+
}>>;
|
|
526
|
+
baselines: Schema.optional<Schema.Struct<{
|
|
527
|
+
global: Schema.Struct<{
|
|
528
|
+
lines: Schema.optional<typeof Schema.Number>;
|
|
529
|
+
functions: Schema.optional<typeof Schema.Number>;
|
|
530
|
+
branches: Schema.optional<typeof Schema.Number>;
|
|
531
|
+
statements: Schema.optional<typeof Schema.Number>;
|
|
532
|
+
}>;
|
|
533
|
+
patterns: Schema.optionalWith<Schema.Array$<Schema.Tuple2<typeof Schema.String, Schema.Struct<{
|
|
534
|
+
lines: Schema.optional<typeof Schema.Number>;
|
|
535
|
+
functions: Schema.optional<typeof Schema.Number>;
|
|
536
|
+
branches: Schema.optional<typeof Schema.Number>;
|
|
537
|
+
statements: Schema.optional<typeof Schema.Number>;
|
|
538
|
+
}>>>, {
|
|
539
|
+
default: () => never[];
|
|
540
|
+
}>;
|
|
541
|
+
}>>;
|
|
542
|
+
scoped: Schema.optionalWith<typeof Schema.Boolean, {
|
|
543
|
+
default: () => false;
|
|
544
|
+
}>;
|
|
545
|
+
scopedFiles: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
546
|
+
lowCoverage: Schema.Array$<Schema.Struct<{
|
|
547
|
+
file: typeof Schema.String;
|
|
548
|
+
summary: Schema.Struct<{
|
|
549
|
+
statements: typeof Schema.Number;
|
|
550
|
+
branches: typeof Schema.Number;
|
|
551
|
+
functions: typeof Schema.Number;
|
|
552
|
+
lines: typeof Schema.Number;
|
|
553
|
+
}>;
|
|
554
|
+
uncoveredLines: typeof Schema.String;
|
|
555
|
+
}>>;
|
|
556
|
+
lowCoverageFiles: Schema.Array$<typeof Schema.String>;
|
|
557
|
+
belowTarget: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
558
|
+
file: typeof Schema.String;
|
|
559
|
+
summary: Schema.Struct<{
|
|
560
|
+
statements: typeof Schema.Number;
|
|
561
|
+
branches: typeof Schema.Number;
|
|
562
|
+
functions: typeof Schema.Number;
|
|
563
|
+
lines: typeof Schema.Number;
|
|
564
|
+
}>;
|
|
565
|
+
uncoveredLines: typeof Schema.String;
|
|
566
|
+
}>>>;
|
|
567
|
+
belowTargetFiles: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
568
|
+
}>>;
|
|
569
|
+
tagCounts: Schema.optional<Schema.Record$<typeof Schema.String, Schema.Struct<{
|
|
570
|
+
passed: Schema.optional<typeof Schema.Number>;
|
|
571
|
+
failed: Schema.optional<typeof Schema.Number>;
|
|
572
|
+
skipped: Schema.optional<typeof Schema.Number>;
|
|
573
|
+
}>>>;
|
|
574
|
+
consoleLeaks: Schema.optional<Schema.Struct<{
|
|
575
|
+
total: typeof Schema.Number;
|
|
576
|
+
byFile: Schema.Array$<Schema.Struct<{
|
|
577
|
+
file: typeof Schema.String;
|
|
578
|
+
stdout: typeof Schema.Number;
|
|
579
|
+
stderr: typeof Schema.Number;
|
|
580
|
+
tests: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
581
|
+
sample: Schema.optional<typeof Schema.String>;
|
|
582
|
+
}>>;
|
|
583
|
+
truncated: Schema.optional<typeof Schema.Boolean>;
|
|
584
|
+
}>>;
|
|
585
|
+
}>;
|
|
586
|
+
/** @public */
|
|
587
|
+
type AgentReport = typeof AgentReport.Type; //#endregion
|
|
580
588
|
//#region src/schemas/Common.d.ts
|
|
581
589
|
/**
|
|
582
590
|
* Possible states for an individual test case.
|
|
@@ -1111,30 +1119,48 @@ declare const formatDisplayDuration: (ms: number) => string;
|
|
|
1111
1119
|
//#endregion
|
|
1112
1120
|
//#region src/pubsub/Channel.d.ts
|
|
1113
1121
|
declare const RunEventChannel_base: Context.TagClass<RunEventChannel, "vitest-agent-ui/RunEventChannel", PubSub.PubSub<{
|
|
1114
|
-
readonly
|
|
1115
|
-
readonly
|
|
1116
|
-
readonly
|
|
1117
|
-
readonly
|
|
1118
|
-
|
|
1119
|
-
readonly
|
|
1120
|
-
readonly projectName?: string | undefined;
|
|
1121
|
-
readonly _tag: "ModuleQueued";
|
|
1122
|
+
readonly _tag: "ConsoleLog";
|
|
1123
|
+
readonly modulePath?: string | undefined;
|
|
1124
|
+
readonly testName?: string | undefined;
|
|
1125
|
+
readonly level: "stderr" | "stdout";
|
|
1126
|
+
readonly content: string;
|
|
1127
|
+
readonly time: number;
|
|
1122
1128
|
} | {
|
|
1123
|
-
readonly
|
|
1124
|
-
readonly
|
|
1125
|
-
|
|
1126
|
-
|
|
1129
|
+
readonly _tag: "CoverageReady";
|
|
1130
|
+
readonly metrics: {
|
|
1131
|
+
readonly statements: number;
|
|
1132
|
+
readonly branches: number;
|
|
1133
|
+
readonly functions: number;
|
|
1134
|
+
readonly lines: number;
|
|
1135
|
+
};
|
|
1136
|
+
readonly thresholds: {
|
|
1137
|
+
readonly lines?: number | undefined;
|
|
1138
|
+
readonly functions?: number | undefined;
|
|
1139
|
+
readonly branches?: number | undefined;
|
|
1140
|
+
readonly statements?: number | undefined;
|
|
1141
|
+
};
|
|
1142
|
+
readonly gaps: readonly {
|
|
1143
|
+
readonly file: string;
|
|
1144
|
+
readonly missing: {
|
|
1145
|
+
readonly statements: number;
|
|
1146
|
+
readonly branches: number;
|
|
1147
|
+
readonly functions: number;
|
|
1148
|
+
readonly lines: number;
|
|
1149
|
+
};
|
|
1150
|
+
readonly uncoveredLines?: string | undefined;
|
|
1151
|
+
}[];
|
|
1127
1152
|
} | {
|
|
1153
|
+
readonly _tag: "FailureClassified";
|
|
1128
1154
|
readonly modulePath: string;
|
|
1129
1155
|
readonly testName: string;
|
|
1130
|
-
readonly
|
|
1131
|
-
readonly _tag: "TestStarted";
|
|
1156
|
+
readonly classification: "flaky" | "new-failure" | "persistent" | "recovered" | "stable";
|
|
1132
1157
|
} | {
|
|
1158
|
+
readonly _tag: "HookFinished";
|
|
1133
1159
|
readonly modulePath: string;
|
|
1134
|
-
readonly
|
|
1160
|
+
readonly hookType: "afterAll" | "afterEach" | "beforeAll" | "beforeEach";
|
|
1161
|
+
readonly scopeName: string;
|
|
1135
1162
|
readonly durationMs: number;
|
|
1136
|
-
readonly
|
|
1137
|
-
readonly suitePath: readonly string[];
|
|
1163
|
+
readonly status: "failed" | "passed";
|
|
1138
1164
|
readonly error?: {
|
|
1139
1165
|
readonly message: string;
|
|
1140
1166
|
readonly stack?: string | undefined;
|
|
@@ -1142,46 +1168,91 @@ declare const RunEventChannel_base: Context.TagClass<RunEventChannel, "vitest-ag
|
|
|
1142
1168
|
readonly expected?: string | undefined;
|
|
1143
1169
|
readonly received?: string | undefined;
|
|
1144
1170
|
} | undefined;
|
|
1145
|
-
readonly timedOut?: boolean | undefined;
|
|
1146
|
-
readonly _tag: "TestFinished";
|
|
1147
1171
|
} | {
|
|
1172
|
+
readonly _tag: "HookStarted";
|
|
1173
|
+
readonly modulePath: string;
|
|
1174
|
+
readonly hookType: "afterAll" | "afterEach" | "beforeAll" | "beforeEach";
|
|
1175
|
+
readonly scopeName: string;
|
|
1176
|
+
} | {
|
|
1177
|
+
readonly _tag: "ModuleCollected";
|
|
1178
|
+
readonly modulePath: string;
|
|
1179
|
+
readonly testCount: number;
|
|
1180
|
+
readonly suiteCount: number;
|
|
1181
|
+
} | {
|
|
1182
|
+
readonly _tag: "ModuleFinished";
|
|
1148
1183
|
readonly modulePath: string;
|
|
1149
1184
|
readonly passCount: number;
|
|
1150
1185
|
readonly failCount: number;
|
|
1151
1186
|
readonly skipCount: number;
|
|
1152
|
-
readonly timeoutCount?: number | undefined;
|
|
1153
1187
|
readonly durationMs: number;
|
|
1154
1188
|
readonly projectName?: string | undefined;
|
|
1189
|
+
readonly timeoutCount?: number | undefined;
|
|
1155
1190
|
readonly tagCounts?: {
|
|
1156
1191
|
readonly [x: string]: number;
|
|
1157
1192
|
} | undefined;
|
|
1158
|
-
readonly _tag: "ModuleFinished";
|
|
1159
1193
|
} | {
|
|
1194
|
+
readonly _tag: "ModuleQueued";
|
|
1160
1195
|
readonly modulePath: string;
|
|
1161
|
-
readonly
|
|
1162
|
-
readonly testCount: number;
|
|
1163
|
-
readonly suiteCount: number;
|
|
1196
|
+
readonly projectName?: string | undefined;
|
|
1164
1197
|
} | {
|
|
1198
|
+
readonly _tag: "ModuleStarted";
|
|
1165
1199
|
readonly modulePath: string;
|
|
1166
|
-
readonly
|
|
1167
|
-
readonly
|
|
1168
|
-
|
|
1200
|
+
readonly startedAt: string;
|
|
1201
|
+
readonly projectName?: string | undefined;
|
|
1202
|
+
} | {
|
|
1203
|
+
readonly _tag: "RunFinished";
|
|
1204
|
+
readonly runId: string;
|
|
1205
|
+
readonly finishedAt: string;
|
|
1206
|
+
readonly passCount: number;
|
|
1207
|
+
readonly failCount: number;
|
|
1208
|
+
readonly skipCount: number;
|
|
1209
|
+
readonly durationMs: number;
|
|
1210
|
+
readonly timeoutCount?: number | undefined;
|
|
1211
|
+
} | {
|
|
1212
|
+
readonly _tag: "RunStarted";
|
|
1213
|
+
readonly runId: string;
|
|
1214
|
+
readonly startedAt: string;
|
|
1215
|
+
readonly configHash: string;
|
|
1169
1216
|
} | {
|
|
1217
|
+
readonly _tag: "RunTimedOut";
|
|
1218
|
+
readonly message: string;
|
|
1219
|
+
} | {
|
|
1220
|
+
readonly _tag: "SuggestedAction";
|
|
1221
|
+
readonly severity: "blocker" | "info" | "warn";
|
|
1222
|
+
readonly title: string;
|
|
1223
|
+
readonly detail: string;
|
|
1224
|
+
readonly targetTool?: string | undefined;
|
|
1225
|
+
} | {
|
|
1226
|
+
readonly _tag: "SuiteFinished";
|
|
1170
1227
|
readonly modulePath: string;
|
|
1228
|
+
readonly suitePath: readonly string[];
|
|
1229
|
+
readonly suiteName: string;
|
|
1171
1230
|
readonly passCount: number;
|
|
1172
1231
|
readonly failCount: number;
|
|
1173
1232
|
readonly skipCount: number;
|
|
1233
|
+
} | {
|
|
1234
|
+
readonly _tag: "SuiteStarted";
|
|
1235
|
+
readonly modulePath: string;
|
|
1174
1236
|
readonly suitePath: readonly string[];
|
|
1175
|
-
readonly _tag: "SuiteFinished";
|
|
1176
1237
|
readonly suiteName: string;
|
|
1177
1238
|
} | {
|
|
1239
|
+
readonly _tag: "TestAnnotated";
|
|
1178
1240
|
readonly modulePath: string;
|
|
1179
|
-
readonly
|
|
1180
|
-
readonly
|
|
1181
|
-
readonly
|
|
1241
|
+
readonly testName: string;
|
|
1242
|
+
readonly suitePath: readonly string[];
|
|
1243
|
+
readonly annotation: string;
|
|
1182
1244
|
} | {
|
|
1245
|
+
readonly _tag: "TestArtifactRecorded";
|
|
1183
1246
|
readonly modulePath: string;
|
|
1184
|
-
readonly
|
|
1247
|
+
readonly testName: string;
|
|
1248
|
+
readonly suitePath: readonly string[];
|
|
1249
|
+
readonly artifact: string;
|
|
1250
|
+
} | {
|
|
1251
|
+
readonly _tag: "TestFinished";
|
|
1252
|
+
readonly modulePath: string;
|
|
1253
|
+
readonly testName: string;
|
|
1254
|
+
readonly suitePath: readonly string[];
|
|
1255
|
+
readonly status: "failed" | "passed" | "pending" | "skipped";
|
|
1185
1256
|
readonly durationMs: number;
|
|
1186
1257
|
readonly error?: {
|
|
1187
1258
|
readonly message: string;
|
|
@@ -1190,90 +1261,27 @@ declare const RunEventChannel_base: Context.TagClass<RunEventChannel, "vitest-ag
|
|
|
1190
1261
|
readonly expected?: string | undefined;
|
|
1191
1262
|
readonly received?: string | undefined;
|
|
1192
1263
|
} | undefined;
|
|
1193
|
-
readonly
|
|
1194
|
-
readonly hookType: "beforeAll" | "afterAll" | "beforeEach" | "afterEach";
|
|
1195
|
-
readonly scopeName: string;
|
|
1196
|
-
} | {
|
|
1197
|
-
readonly modulePath?: string | undefined;
|
|
1198
|
-
readonly testName?: string | undefined;
|
|
1199
|
-
readonly _tag: "ConsoleLog";
|
|
1200
|
-
readonly level: "stdout" | "stderr";
|
|
1201
|
-
readonly content: string;
|
|
1202
|
-
readonly time: number;
|
|
1203
|
-
} | {
|
|
1204
|
-
readonly message: string;
|
|
1205
|
-
readonly _tag: "RunTimedOut";
|
|
1264
|
+
readonly timedOut?: boolean | undefined;
|
|
1206
1265
|
} | {
|
|
1266
|
+
readonly _tag: "TestStarted";
|
|
1207
1267
|
readonly modulePath: string;
|
|
1208
1268
|
readonly testName: string;
|
|
1209
1269
|
readonly suitePath: readonly string[];
|
|
1210
|
-
readonly _tag: "TestAnnotated";
|
|
1211
|
-
readonly annotation: string;
|
|
1212
1270
|
} | {
|
|
1213
|
-
readonly
|
|
1214
|
-
readonly
|
|
1215
|
-
readonly
|
|
1216
|
-
readonly
|
|
1217
|
-
|
|
1271
|
+
readonly _tag: "ThresholdViolation";
|
|
1272
|
+
readonly metric: "branches" | "functions" | "lines" | "statements";
|
|
1273
|
+
readonly expected: number;
|
|
1274
|
+
readonly actual: number;
|
|
1275
|
+
} | {
|
|
1276
|
+
readonly _tag: "TrendComputed";
|
|
1277
|
+
readonly direction: "improving" | "regressing" | "stable";
|
|
1278
|
+
readonly runCount: number;
|
|
1218
1279
|
} | {
|
|
1219
1280
|
readonly _tag: "WatcherReady";
|
|
1220
1281
|
} | {
|
|
1221
1282
|
readonly _tag: "WatcherRerun";
|
|
1222
1283
|
readonly triggerFiles: readonly string[];
|
|
1223
1284
|
readonly reason?: string | undefined;
|
|
1224
|
-
} | {
|
|
1225
|
-
readonly direction: "improving" | "regressing" | "stable";
|
|
1226
|
-
readonly runCount: number;
|
|
1227
|
-
readonly _tag: "TrendComputed";
|
|
1228
|
-
} | {
|
|
1229
|
-
readonly metrics: {
|
|
1230
|
-
readonly statements: number;
|
|
1231
|
-
readonly branches: number;
|
|
1232
|
-
readonly functions: number;
|
|
1233
|
-
readonly lines: number;
|
|
1234
|
-
};
|
|
1235
|
-
readonly thresholds: {
|
|
1236
|
-
readonly statements?: number | undefined;
|
|
1237
|
-
readonly branches?: number | undefined;
|
|
1238
|
-
readonly functions?: number | undefined;
|
|
1239
|
-
readonly lines?: number | undefined;
|
|
1240
|
-
};
|
|
1241
|
-
readonly gaps: readonly {
|
|
1242
|
-
readonly file: string;
|
|
1243
|
-
readonly missing: {
|
|
1244
|
-
readonly statements: number;
|
|
1245
|
-
readonly branches: number;
|
|
1246
|
-
readonly functions: number;
|
|
1247
|
-
readonly lines: number;
|
|
1248
|
-
};
|
|
1249
|
-
readonly uncoveredLines?: string | undefined;
|
|
1250
|
-
}[];
|
|
1251
|
-
readonly _tag: "CoverageReady";
|
|
1252
|
-
} | {
|
|
1253
|
-
readonly expected: number;
|
|
1254
|
-
readonly metric: "statements" | "branches" | "functions" | "lines";
|
|
1255
|
-
readonly actual: number;
|
|
1256
|
-
readonly _tag: "ThresholdViolation";
|
|
1257
|
-
} | {
|
|
1258
|
-
readonly modulePath: string;
|
|
1259
|
-
readonly testName: string;
|
|
1260
|
-
readonly classification: "stable" | "new-failure" | "persistent" | "flaky" | "recovered";
|
|
1261
|
-
readonly _tag: "FailureClassified";
|
|
1262
|
-
} | {
|
|
1263
|
-
readonly severity: "info" | "warn" | "blocker";
|
|
1264
|
-
readonly title: string;
|
|
1265
|
-
readonly detail: string;
|
|
1266
|
-
readonly targetTool?: string | undefined;
|
|
1267
|
-
readonly _tag: "SuggestedAction";
|
|
1268
|
-
} | {
|
|
1269
|
-
readonly runId: string;
|
|
1270
|
-
readonly finishedAt: string;
|
|
1271
|
-
readonly passCount: number;
|
|
1272
|
-
readonly failCount: number;
|
|
1273
|
-
readonly skipCount: number;
|
|
1274
|
-
readonly timeoutCount?: number | undefined;
|
|
1275
|
-
readonly durationMs: number;
|
|
1276
|
-
readonly _tag: "RunFinished";
|
|
1277
1285
|
}>>;
|
|
1278
1286
|
/**
|
|
1279
1287
|
* Service tag for the run-event channel. Consumers depend on this tag;
|
|
@@ -1831,9 +1839,7 @@ declare const synthesizeFromAgentReport: (report: AgentReport, options?: Synthes
|
|
|
1831
1839
|
/**
|
|
1832
1840
|
* The version of this package, inlined at build time from
|
|
1833
1841
|
* `package.json#version` via rslib-builder's `__PACKAGE_VERSION__`
|
|
1834
|
-
* substitution.
|
|
1835
|
-
* run its own init-time drift check, but the constant is exported so the
|
|
1836
|
-
* plugin can compare against it.
|
|
1842
|
+
* substitution. Exported for version introspection by downstream tooling.
|
|
1837
1843
|
*
|
|
1838
1844
|
* @public
|
|
1839
1845
|
*/
|
package/index.js
CHANGED
|
@@ -28,13 +28,11 @@ import { ActionSeverity, CoverageFile, CoverageGap, CoverageMetric, CoverageRend
|
|
|
28
28
|
/**
|
|
29
29
|
* The version of this package, inlined at build time from
|
|
30
30
|
* `package.json#version` via rslib-builder's `__PACKAGE_VERSION__`
|
|
31
|
-
* substitution.
|
|
32
|
-
* run its own init-time drift check, but the constant is exported so the
|
|
33
|
-
* plugin can compare against it.
|
|
31
|
+
* substitution. Exported for version introspection by downstream tooling.
|
|
34
32
|
*
|
|
35
33
|
* @public
|
|
36
34
|
*/
|
|
37
|
-
const CURRENT_UI_VERSION = "1.0.
|
|
35
|
+
const CURRENT_UI_VERSION = "1.0.2";
|
|
38
36
|
|
|
39
37
|
//#endregion
|
|
40
38
|
export { ActionSeverity, CURRENT_UI_VERSION, CountColumns, CoverageBlock, CoverageFile, CoverageGap, CoverageMetric, CoverageRenderState, FailureRecord, FailureSection, FailuresSection, ModuleHeader, ModuleRecord, ProjectRow, RenderState, RenderTotals, RunEvent, RunEventChannel, RunEventChannelLive, SPINNER_FRAMES, SPINNER_FRAME_MS, StatusIcon, StreamApp, SuggestedActionRecord, SuggestedActions, TestRecord, TestRow, TrendLine, accumulateUntilFinished, buildFooter, classifyOutcome, classifyRunShape, dispatch, dispatchInk, dispatcherTable, dominantClassification, forEachRenderState, formatDisplayDuration, initialRenderState, publish, publishAll, reduceRenderState, reduceRenderStateAll, renderAgent, renderStateStream, spinnerFrame, spinnerFrameForTime, subscribeRaw, synthesizeFromAgentReport, synthesizeRunEvents };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitest-agent/ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
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": [
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"./package.json": "./package.json"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@vitest-agent/sdk": "1.0
|
|
41
|
+
"@vitest-agent/sdk": "1.1.0",
|
|
42
42
|
"effect": "^3.21.4"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
package/pubsub/index.js
CHANGED
|
@@ -2,4 +2,4 @@ import { RunEventChannel, RunEventChannelLive } from "./Channel.js";
|
|
|
2
2
|
import { publish, publishAll } from "./Publisher.js";
|
|
3
3
|
import { accumulateUntilFinished, forEachRenderState, renderStateStream, subscribeRaw } from "./Subscriber.js";
|
|
4
4
|
|
|
5
|
-
export {
|
|
5
|
+
export { RunEventChannel, RunEventChannelLive, accumulateUntilFinished, forEachRenderState, publish, publishAll, renderStateStream, subscribeRaw };
|
package/render-ink/index.js
CHANGED
|
@@ -11,4 +11,4 @@ import { TrendLine } from "./TrendLine.js";
|
|
|
11
11
|
import { StreamApp } from "./StreamApp.js";
|
|
12
12
|
import { SuggestedActions } from "./SuggestedActions.js";
|
|
13
13
|
|
|
14
|
-
export {
|
|
14
|
+
export { CountColumns, CoverageBlock, FailureSection, FailuresSection, ModuleHeader, ProjectRow, SPINNER_FRAMES, SPINNER_FRAME_MS, StatusIcon, StreamApp, SuggestedActions, TestRow, TrendLine, spinnerFrame, spinnerFrameForTime };
|