@dzhechkov/harness-core 0.3.149 → 0.4.1
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/.dz-manifest.json +399 -55
- package/README.md +80 -3
- package/dist/agentdb-index.d.ts.map +1 -1
- package/dist/agentdb-index.js +10 -2
- package/dist/agentdb-index.js.map +1 -1
- package/dist/backlog-embed.d.ts +94 -0
- package/dist/backlog-embed.d.ts.map +1 -0
- package/dist/backlog-embed.js +138 -0
- package/dist/backlog-embed.js.map +1 -0
- package/dist/backlog.d.ts +180 -7
- package/dist/backlog.d.ts.map +1 -1
- package/dist/backlog.js +429 -26
- package/dist/backlog.js.map +1 -1
- package/dist/challenge-panel.d.ts +3 -0
- package/dist/challenge-panel.d.ts.map +1 -1
- package/dist/challenge-panel.js +3 -0
- package/dist/challenge-panel.js.map +1 -1
- package/dist/export-holdout.d.ts +149 -0
- package/dist/export-holdout.d.ts.map +1 -0
- package/dist/export-holdout.js +198 -0
- package/dist/export-holdout.js.map +1 -0
- package/dist/feature-adr-checkpoints.d.ts +82 -0
- package/dist/feature-adr-checkpoints.d.ts.map +1 -1
- package/dist/feature-adr-checkpoints.js +138 -1
- package/dist/feature-adr-checkpoints.js.map +1 -1
- package/dist/feature-adr-routing.d.ts +3 -0
- package/dist/feature-adr-routing.d.ts.map +1 -1
- package/dist/feature-adr-routing.js +3 -0
- package/dist/feature-adr-routing.js.map +1 -1
- package/dist/guard.d.ts +42 -0
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +73 -1
- package/dist/guard.js.map +1 -1
- package/dist/index.d.ts +17 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -1
- package/dist/index.js.map +1 -1
- package/dist/loop-blobs.generated.d.ts +33 -0
- package/dist/loop-blobs.generated.d.ts.map +1 -0
- package/dist/loop-blobs.generated.js +101 -0
- package/dist/loop-blobs.generated.js.map +1 -0
- package/dist/loop-lint.d.ts +63 -0
- package/dist/loop-lint.d.ts.map +1 -0
- package/dist/loop-lint.js +606 -0
- package/dist/loop-lint.js.map +1 -0
- package/dist/loop-plan.d.ts +416 -0
- package/dist/loop-plan.d.ts.map +1 -0
- package/dist/loop-plan.js +1151 -0
- package/dist/loop-plan.js.map +1 -0
- package/dist/loop-render.d.ts +104 -0
- package/dist/loop-render.d.ts.map +1 -0
- package/dist/loop-render.js +989 -0
- package/dist/loop-render.js.map +1 -0
- package/dist/loop-trace.d.ts +204 -0
- package/dist/loop-trace.d.ts.map +1 -0
- package/dist/loop-trace.js +550 -0
- package/dist/loop-trace.js.map +1 -0
- package/dist/mutation-gate.d.ts +247 -0
- package/dist/mutation-gate.d.ts.map +1 -0
- package/dist/mutation-gate.js +535 -0
- package/dist/mutation-gate.js.map +1 -0
- package/dist/no-stubs.d.ts +53 -0
- package/dist/no-stubs.d.ts.map +1 -0
- package/dist/no-stubs.js +190 -0
- package/dist/no-stubs.js.map +1 -0
- package/dist/package-skill-layouts.d.ts +67 -0
- package/dist/package-skill-layouts.d.ts.map +1 -0
- package/dist/package-skill-layouts.js +81 -0
- package/dist/package-skill-layouts.js.map +1 -0
- package/dist/patterns.d.ts.map +1 -1
- package/dist/patterns.js +156 -75
- package/dist/patterns.js.map +1 -1
- package/dist/recall-domain-boost.d.ts +96 -0
- package/dist/recall-domain-boost.d.ts.map +1 -0
- package/dist/recall-domain-boost.js +158 -0
- package/dist/recall-domain-boost.js.map +1 -0
- package/dist/store-lock.d.ts +108 -0
- package/dist/store-lock.d.ts.map +1 -0
- package/dist/store-lock.js +231 -0
- package/dist/store-lock.js.map +1 -0
- package/dist/workflows.d.ts +16 -22
- package/dist/workflows.d.ts.map +1 -1
- package/dist/workflows.js +17 -98
- package/dist/workflows.js.map +1 -1
- package/package.json +7 -5
- package/sbom.json +1062 -202
- package/src/agentdb-index.ts +10 -1
- package/src/backlog-embed.ts +156 -0
- package/src/backlog.ts +536 -28
- package/src/challenge-panel.ts +4 -0
- package/src/export-holdout.ts +235 -0
- package/src/feature-adr-checkpoints.ts +192 -1
- package/src/feature-adr-routing.ts +4 -0
- package/src/guard.ts +106 -1
- package/src/index.ts +72 -1
- package/src/loop-blobs.generated.ts +114 -0
- package/src/loop-lint.ts +643 -0
- package/src/loop-plan.ts +1419 -0
- package/src/loop-render.ts +1050 -0
- package/src/loop-trace.ts +650 -0
- package/src/mutation-gate.ts +701 -0
- package/src/no-stubs.ts +204 -0
- package/src/package-skill-layouts.ts +107 -0
- package/src/patterns.ts +135 -60
- package/src/recall-domain-boost.ts +178 -0
- package/src/store-lock.ts +258 -0
- package/src/workflows.ts +18 -117
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/** One named safety property: mutate the protection, run the suite, require red. */
|
|
2
|
+
export interface MutationRegistryEntry {
|
|
3
|
+
/** stable kebab-case id, unique within the registry. */
|
|
4
|
+
readonly id: string;
|
|
5
|
+
/** the sentence the code claims — named so a failure report can say WHAT is undefended. */
|
|
6
|
+
readonly property: string;
|
|
7
|
+
/** package-relative path of the file carrying the protection. */
|
|
8
|
+
readonly file: string;
|
|
9
|
+
/** exact text surgery: `find` must occur EXACTLY ONCE in the file (rule 1). */
|
|
10
|
+
readonly mutation: {
|
|
11
|
+
readonly find: string;
|
|
12
|
+
readonly replace: string;
|
|
13
|
+
};
|
|
14
|
+
/** how many tests MUST go red under the mutation (default 1). */
|
|
15
|
+
readonly minFailing?: number;
|
|
16
|
+
/** how many actually did at the time of writing — makes a coverage DROP visible. */
|
|
17
|
+
readonly observed?: number;
|
|
18
|
+
/**
|
|
19
|
+
* the MOST tests that may go red before the redness stops being attributable to THIS protection
|
|
20
|
+
* (route-c guard — see effectiveMaxFailing for the default when absent). A structural blow-up
|
|
21
|
+
* (broken export surface, dead import) reddens the whole suite; that is not discrimination.
|
|
22
|
+
*/
|
|
23
|
+
readonly maxFailing?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface MutationRegistry {
|
|
26
|
+
/** optional suite command override for the whole registry (default `npm test`). */
|
|
27
|
+
readonly testCommand?: string;
|
|
28
|
+
readonly entries: readonly MutationRegistryEntry[];
|
|
29
|
+
}
|
|
30
|
+
export type MutationVerdict = 'PROVEN' | 'UNDEFENDED' | 'NOT_APPLIED' | 'BELOW_MIN' | 'MUTATION_UNPARSEABLE' | 'MUTATION_LOAD_FATAL' | 'OVER_FAILING' | 'INCONCLUSIVE';
|
|
31
|
+
export interface MutationObservation {
|
|
32
|
+
readonly entry: MutationRegistryEntry;
|
|
33
|
+
/** how many times `find` occurred in the file text (1 = applied). Missing file ⇒ 0. */
|
|
34
|
+
readonly occurrences: number;
|
|
35
|
+
/** the suite's exit code under the mutation; null when it produced none (killed / spawn error). */
|
|
36
|
+
readonly exitCode: number | null;
|
|
37
|
+
/** best-effort failing-test count parsed from runner output; null when unparseable. */
|
|
38
|
+
readonly failingCount: number | null;
|
|
39
|
+
/**
|
|
40
|
+
* set (to the parser's message) when the MUTATED file failed to parse as its own language —
|
|
41
|
+
* the executor checks BEFORE running the suite. Absent/undefined = parsed fine or not checked.
|
|
42
|
+
*/
|
|
43
|
+
readonly parseError?: string;
|
|
44
|
+
/**
|
|
45
|
+
* set (to the classifier's evidence line) when THE SUITE RUN's own output reports a test FILE
|
|
46
|
+
* failing to LOAD under the mutation — the route-a′ guard, round-6 rework. The signal comes from
|
|
47
|
+
* the SAME run that produced the failing count (no isolated child, no environment mismatch — the
|
|
48
|
+
* round-5 isolated `import()` had three measured false-PASS routes precisely because an isolated
|
|
49
|
+
* import is a DIFFERENT environment than the test runner). A file-load failure means the redness
|
|
50
|
+
* is STRUCTURAL — the mutation broke the module, so the count is not attributable to the
|
|
51
|
+
* protection. Absent/undefined = the red output showed test ASSERTION failures (behavioural —
|
|
52
|
+
* redness IS the deleted protection), or the run was green / never ran.
|
|
53
|
+
*/
|
|
54
|
+
readonly fileLoadFailure?: string;
|
|
55
|
+
/**
|
|
56
|
+
* set (to an explanation) when the suite went RED but the output SHAPE matched no runner the
|
|
57
|
+
* classifier knows (`classifyRunFailure` returned 'unrecognised') — a runner-coverage gap of
|
|
58
|
+
* THIS TOOL, not a property of the module under test. The verdict is INCONCLUSIVE (a loud
|
|
59
|
+
* failure), NEVER PROVEN: redness that cannot be attributed proves nothing.
|
|
60
|
+
*/
|
|
61
|
+
readonly outputUnrecognised?: string;
|
|
62
|
+
/**
|
|
63
|
+
* exit code of the suite re-run on the RESTORED tree after this entry (the attribution check
|
|
64
|
+
* for flaky neighbours). undefined = not run; 0 = reproducibly green; any other value (or null)
|
|
65
|
+
* = the "green" baseline is not reproducible, so the red under mutation is not attributable.
|
|
66
|
+
*/
|
|
67
|
+
readonly rebaselineExitCode?: number | null;
|
|
68
|
+
}
|
|
69
|
+
export interface MutationEntryResult {
|
|
70
|
+
readonly id: string;
|
|
71
|
+
readonly property: string;
|
|
72
|
+
readonly file: string;
|
|
73
|
+
readonly applied: boolean;
|
|
74
|
+
readonly occurrences: number;
|
|
75
|
+
readonly exitCode: number | null;
|
|
76
|
+
readonly failingCount: number | null;
|
|
77
|
+
readonly verdict: MutationVerdict;
|
|
78
|
+
/** true when the count is reliable, non-zero, and LOWER than `observed` — the early warning that
|
|
79
|
+
* arrives before the property breaks. A WARNING, not a failure — see classifyMutationOutcome. */
|
|
80
|
+
readonly drop: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* QE round-7 honesty (loop-designer, cross-family reviewer): a coverage DROP can only ever be
|
|
83
|
+
* DETECTED for an entry that carries an `observed` anchor — `drop` is computed as
|
|
84
|
+
* `failingCount < observed`, so an entry with only a `minFailing` threshold is structurally
|
|
85
|
+
* incapable of reporting one. `"0 coverage drops"` therefore means *"0 drops among the entries
|
|
86
|
+
* where a drop is comparable at all"*, and the report must say which denominator that is instead
|
|
87
|
+
* of letting the reader assume it covers every entry.
|
|
88
|
+
*/
|
|
89
|
+
readonly dropComparable: boolean;
|
|
90
|
+
/** human sentence for the report line — names the undefended property on a green suite. */
|
|
91
|
+
readonly detail: string;
|
|
92
|
+
}
|
|
93
|
+
export interface ParsedRegistry {
|
|
94
|
+
readonly registry: MutationRegistry | null;
|
|
95
|
+
/** every defect found — ANY error makes the registry unusable (a half-valid registry that runs
|
|
96
|
+
* its valid half reports a partial scan as a full one). */
|
|
97
|
+
readonly errors: readonly string[];
|
|
98
|
+
}
|
|
99
|
+
/** Parse + validate a registry JSON text. Accepts a bare array of entries or `{testCommand, entries}`. */
|
|
100
|
+
export declare function parseMutationRegistry(text: string): ParsedRegistry;
|
|
101
|
+
export interface AppliedMutation {
|
|
102
|
+
readonly ok: boolean;
|
|
103
|
+
readonly occurrences: number;
|
|
104
|
+
/** the mutated text when ok. */
|
|
105
|
+
readonly text?: string;
|
|
106
|
+
}
|
|
107
|
+
/** Count NON-OVERLAPPING occurrences and apply only when the count is exactly 1. */
|
|
108
|
+
export declare function applyMutationToText(source: string, find: string, replace: string): AppliedMutation;
|
|
109
|
+
/**
|
|
110
|
+
* The route-c upper bound: the most failing tests a mutation may cause and still be read as
|
|
111
|
+
* BEHAVIOURAL redness attributable to this one protection. Explicit `maxFailing` wins; otherwise
|
|
112
|
+
* `max(anchor*5, anchor+10)` where anchor = `observed` (the measured blast radius) falling back to
|
|
113
|
+
* `minFailing`. k=5 / N=10 justification, MEASURED on the live data: every health-advisor registry
|
|
114
|
+
* entry has observed 1–4 ⇒ bounds 11–20, so legitimate growth (more tests covering the property —
|
|
115
|
+
* 5× proportional, or +10 absolute so tiny `observed` is not strangled) still passes, while the
|
|
116
|
+
* two measured structural blow-ups (route a: whole 484-test suite dead on a parse error; route c:
|
|
117
|
+
* 200+ failing vs observed 1) exceed the bound by an order of magnitude. NEVER unbounded — an
|
|
118
|
+
* entry with no `observed` anchors on its own minFailing contract.
|
|
119
|
+
*/
|
|
120
|
+
export declare function effectiveMaxFailing(entry: MutationRegistryEntry): number;
|
|
121
|
+
/**
|
|
122
|
+
* Parse a failing-test count from runner output. Order of preference:
|
|
123
|
+
* 1. node --test / TAP summary `# fail N` (authoritative for TAP);
|
|
124
|
+
* 2. vitest/jest summary `Tests N failed` / `N failed`;
|
|
125
|
+
* 3. top-level (unindented) `not ok` line count.
|
|
126
|
+
* Returns null when nothing parses — the verdict then rests on the exit code ALONE, by design:
|
|
127
|
+
* count parsing failure must never flip red/green (SPEC design decision).
|
|
128
|
+
*/
|
|
129
|
+
export declare function countFailingTests(rawOutput: string): number | null;
|
|
130
|
+
export type RunnerKind = 'node-test' | 'vitest' | 'unknown';
|
|
131
|
+
export interface RunFailureClassification {
|
|
132
|
+
/** which runner's output shape was recognised. */
|
|
133
|
+
readonly runner: RunnerKind;
|
|
134
|
+
/**
|
|
135
|
+
* 'file-load' — the run reported a test FILE failing to load: STRUCTURAL, the mutation broke
|
|
136
|
+
* the module and the failing count is not attributable to the protection;
|
|
137
|
+
* 'assertions' — the red is test ASSERTION failures inside running tests: BEHAVIOURAL, the
|
|
138
|
+
* redness IS the deleted protection;
|
|
139
|
+
* 'unrecognised' — the output shape matched no known runner (or a known runner's red output
|
|
140
|
+
* carried no classifiable failure): a runner-coverage gap of this tool — the
|
|
141
|
+
* verdict must be INCONCLUSIVE, never PROVEN.
|
|
142
|
+
*/
|
|
143
|
+
readonly kind: 'file-load' | 'assertions' | 'unrecognised';
|
|
144
|
+
/** for 'file-load': the evidence line; for 'unrecognised': what could not be classified. */
|
|
145
|
+
readonly evidence?: string;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Classify a RED suite run's output: did a test FILE fail to LOAD (structural) or did test
|
|
149
|
+
* ASSERTIONS fail (behavioural)? This is the round-6 replacement for the isolated-child
|
|
150
|
+
* `import()` load-check, whose three false-PASS routes were ALL artifacts of the isolated import
|
|
151
|
+
* being a DIFFERENT environment than the test runner (env-dependent module goals, unsettled
|
|
152
|
+
* top-level await draining a child's event loop, non-deterministic load aborts dodging a second
|
|
153
|
+
* spawn). The correct signal comes from the SAME run that produced the failing count — no second
|
|
154
|
+
* child, no environment mismatch, nothing to disagree with itself.
|
|
155
|
+
*
|
|
156
|
+
* Runner shapes, both MEASURED (node v22.22.0, vitest 3.2.4 — reproducers in
|
|
157
|
+
* harness-cli/test/mutation-gate-cli.test.ts and this file's unit tests):
|
|
158
|
+
*
|
|
159
|
+
* node --test (flat TAP): every failure is a column-0 `not ok N - <name>` followed by an indented
|
|
160
|
+
* YAML diagnostic block. A test FILE that dies (throw at load, `process.exit` at import, unsettled
|
|
161
|
+
* top-level await ⇒ exit 13, dead require) is reported as a file-named test point whose block
|
|
162
|
+
* carries an `exitCode:` field (and `signal:` when killed) — `failureType: 'testCodeFailure'`,
|
|
163
|
+
* `error: 'test failed'`, `code: 'ERR_TEST_FAILURE'`. An ASSERTION failure — and equally a plain
|
|
164
|
+
* throw INSIDE a running test — NEVER carries `exitCode:`/`signal:`: those fields describe the
|
|
165
|
+
* spawned per-file process, which only appears when the file itself died. That asymmetry is the
|
|
166
|
+
* discriminator, and it is exactly the honest-mutation boundary: delete a guard clause and the
|
|
167
|
+
* file loads, assertions fire, no `exitCode:` field ⇒ behavioural.
|
|
168
|
+
*
|
|
169
|
+
* vitest (`vitest run`): a load/transform/collection error is reported under a `Failed Suites N`
|
|
170
|
+
* section as `FAIL <path> [ <path> ]` (the bracketed suite name repeats the path) with the error
|
|
171
|
+
* where a test name would be, and the summary counts it under `Test Files N failed` while `Tests`
|
|
172
|
+
* shows `no tests` for that file. Assertion failures appear under `Failed Tests N` as
|
|
173
|
+
* `FAIL <path> > <test name>` with `Tests N failed` in the summary. (An unsettled top-level await
|
|
174
|
+
* HANGS vitest rather than failing the file — the suite times out, exitCode null, INCONCLUSIVE —
|
|
175
|
+
* measured, and honestly out of scope for this classifier.)
|
|
176
|
+
*
|
|
177
|
+
* Runner detection is from the OUTPUT SHAPE, not the command (a `npm test` alias hides the
|
|
178
|
+
* runner): node --test requires the TAP header AND node's `# duration_ms` trailer (tape emits TAP
|
|
179
|
+
* + `# fail` but not `# duration_ms`); vitest requires its `RUN v<semver>` banner or `Test Files`
|
|
180
|
+
* summary line. Anything else — jest, mocha, tape, a bare script — is 'unknown'/'unrecognised':
|
|
181
|
+
* the honest, narrowed gap. It is about THIS TOOL's runner coverage, fails LOUD (INCONCLUSIVE),
|
|
182
|
+
* and never silently passes on output it cannot read.
|
|
183
|
+
*/
|
|
184
|
+
export declare function classifyRunFailure(rawOutput: string): RunFailureClassification;
|
|
185
|
+
export interface BaselineResult {
|
|
186
|
+
readonly ok: boolean;
|
|
187
|
+
readonly detail: string;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* A RED baseline in the scratch copy is a SETUP error, never a mutation result: every subsequent
|
|
191
|
+
* "red under mutation" would be noise, and every "green" a lie about an unrunnable copy.
|
|
192
|
+
*/
|
|
193
|
+
export declare function classifyBaseline(exitCode: number | null): BaselineResult;
|
|
194
|
+
/**
|
|
195
|
+
* Classify one entry's observation.
|
|
196
|
+
*
|
|
197
|
+
* PRECEDENCE LATTICE (checked top to bottom; each verdict is justified by what it invalidates
|
|
198
|
+
* BELOW it — a verdict may only outrank another when it makes that other's evidence meaningless):
|
|
199
|
+
* 1. NOT_APPLIED — nothing was mutated, so no run observation means anything;
|
|
200
|
+
* 2. MUTATION_UNPARSEABLE — the mutated file is not even syntactically a module; a non-parsing
|
|
201
|
+
* file never RUNS, so no load- or count-signal can exist (which is
|
|
202
|
+
* why it sits above MUTATION_LOAD_FATAL);
|
|
203
|
+
* 3. MUTATION_LOAD_FATAL — the run happened, but its own output says a test FILE died at
|
|
204
|
+
* load: the redness is structural and every count from that same run
|
|
205
|
+
* is non-attributable — so it outranks every count-based verdict AND
|
|
206
|
+
* the flaky-rebaseline check (a structurally-broken run needs no
|
|
207
|
+
* attribution analysis);
|
|
208
|
+
* 4. INCONCLUSIVE (no exit) — the run produced nothing to classify at all;
|
|
209
|
+
* 5. UNDEFENDED (exit 0) — the disjoint GREEN arm: mutually exclusive with every red-based
|
|
210
|
+
* verdict below;
|
|
211
|
+
* 6. INCONCLUSIVE (unrecognised output) — red, but the shape is unreadable: counts parsed out of
|
|
212
|
+
* unrecognised output must not reach BELOW_MIN/OVER_FAILING/PROVEN;
|
|
213
|
+
* 7. INCONCLUSIVE (flaky rebaseline) — red, readable, but not attributable;
|
|
214
|
+
* 8. BELOW_MIN → 9. OVER_FAILING — reliable-count contract checks, both failing;
|
|
215
|
+
* 10. PROVEN — applied, red, behavioural, attributable, within bounds.
|
|
216
|
+
*
|
|
217
|
+
* THE DROP DECISION (SPEC §Reporting, decided here + justified): `failing < observed` but still
|
|
218
|
+
* `>= minFailing` is a LOUD WARNING, not a failure. Two reasons, both load-bearing:
|
|
219
|
+
* • the count is a BEST-EFFORT secondary parsed from runner output — making it verdict-deciding
|
|
220
|
+
* would let a count-parse failure flip red/green, which the design decisions forbid;
|
|
221
|
+
* • `observed` is a historical measurement, `minFailing` is the entry's declared CONTRACT. A
|
|
222
|
+
* contract violation fails (BELOW_MIN — only ever on a reliable count); history drifting down
|
|
223
|
+
* while the contract still holds is the early warning, reported loudly so a human re-pins
|
|
224
|
+
* `observed` or investigates — silently normalising it would erase the signal.
|
|
225
|
+
*/
|
|
226
|
+
export declare function classifyMutationOutcome(obs: MutationObservation): MutationEntryResult;
|
|
227
|
+
/** Exit contract: 0 all proven · 1 any entry failed (or red baseline) · (2 = usage/setup, CLI-side). */
|
|
228
|
+
export declare function mutationGateExitCode(results: readonly MutationEntryResult[], baselineOk: boolean): number;
|
|
229
|
+
export interface MutationGateSummary {
|
|
230
|
+
readonly total: number;
|
|
231
|
+
readonly proven: number;
|
|
232
|
+
readonly undefended: number;
|
|
233
|
+
readonly notApplied: number;
|
|
234
|
+
readonly belowMin: number;
|
|
235
|
+
readonly unparseable: number;
|
|
236
|
+
readonly loadFatal: number;
|
|
237
|
+
readonly overFailing: number;
|
|
238
|
+
readonly inconclusive: number;
|
|
239
|
+
readonly drops: number;
|
|
240
|
+
/** how many entries a drop is COMPARABLE for (they carry an `observed` anchor) — the honest
|
|
241
|
+
* denominator of `drops`. `drops: 0` over `dropComparable: 23` of `total: 62` says what it can
|
|
242
|
+
* and cannot see; a bare "0 coverage drops" over-reads as "all 62 checked" (QE round-7). */
|
|
243
|
+
readonly dropComparable: number;
|
|
244
|
+
}
|
|
245
|
+
export declare function summarizeMutationResults(results: readonly MutationEntryResult[]): MutationGateSummary;
|
|
246
|
+
export declare function renderMutationReport(results: readonly MutationEntryResult[], baseline: BaselineResult, packageDir: string): string;
|
|
247
|
+
//# sourceMappingURL=mutation-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation-gate.d.ts","sourceRoot":"","sources":["../src/mutation-gate.ts"],"names":[],"mappings":"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"}
|