@orkestrel/probe 0.0.26 → 0.0.28

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.
@@ -1,5 +1,4 @@
1
1
  import type { Case } from '@orkestrel/probe';
2
- import type { Check } from '@orkestrel/probe';
3
2
  import type { Claim } from '@orkestrel/probe';
4
3
  import type { EmitterInterface } from '@orkestrel/emitter';
5
4
  import type { EventEmitter } from 'node:events';
@@ -12,6 +11,7 @@ import type { ProbeInterface } from '@orkestrel/probe';
12
11
  import type { ProbeOptions } from '@orkestrel/probe';
13
12
  import type { Project } from '@orkestrel/probe';
14
13
  import type { Stage } from '@orkestrel/probe';
14
+ import type { StageResult } from '@orkestrel/probe';
15
15
  import type { Toolchain } from '@orkestrel/probe';
16
16
  import type { Verdict } from '@orkestrel/probe';
17
17
  import type * as VitestNode from 'vitest/node';
@@ -55,8 +55,12 @@ export declare function captureListeners(emitter: EventEmitter, events: readonly
55
55
  * Collects every regular file a target workspace holds, skipping the trees no inspection reads.
56
56
  *
57
57
  * @remarks
58
- * Skips a directory named `.git`, `dist`, or `node_modules` at any depth, and the directory
59
- * {@link TYPE_MIRROR} names, which would otherwise carry this package's own mirror into the walk. A
58
+ * Skips a directory named `.git`, `dist`, or `node_modules` at any depth. Of the workspace-root
59
+ * `tmp` directory it walks only `tmp/probes`: the scaffold tmp layout holds the runtime probes there
60
+ * and nothing else an inspection reads, so a consumer's ignored data under `tmp/` is never read or
61
+ * copied. The match is the lowercase `tmp` spelling exactly, and a `tmp` directory below the root is
62
+ * walked like any other. The directory {@link TYPE_MIRROR} names is skipped as well, so this
63
+ * package's own mirror stays out of the walk if it ever moves outside `tmp`. A
60
64
  * directory this host cannot list is skipped rather than raised, so one unreadable directory in a
61
65
  * consumer's tree is not a reason to refuse the whole walk. A symbolic link is not carried, whether
62
66
  * it names a file or a directory, so a file reached only through one is absent from the result; a
@@ -86,10 +90,10 @@ export declare function collectWorkspaceFiles(workspace: string): readonly strin
86
90
  *
87
91
  * @example
88
92
  * ```ts
89
- * computeDigest('/srv/checkout', { strict: true }).length // 32
93
+ * computeWorkspaceDigest('/srv/checkout', { strict: true }).length // 32
90
94
  * ```
91
95
  */
92
- export declare function computeDigest(workspace: string, value: unknown): string;
96
+ export declare function computeWorkspaceDigest(workspace: string, value: unknown): string;
93
97
 
94
98
  /**
95
99
  * Creates the protocol failure returned when the MCP handshake cannot arm the probe.
@@ -220,12 +224,12 @@ export declare function filterUniqueIssues(issues: readonly Issue[]): readonly I
220
224
  *
221
225
  * @remarks
222
226
  * The published claim schema constrains `Draft.path` to a non-empty string and nothing else, while
223
- * `isDraft` also refuses an absolute path and one that escapes the workspace. That one member is
224
- * the whole of the difference between the advertised contract and the enforced one, so a caller
225
- * refused after satisfying the schema is refused here and nowhere else. The whole input must first
226
- * satisfy that schema. Each draft is then tested with `isDraft` itself rather than with a second
227
- * copy of its rule. Reports nothing for a value carrying no draft member, including one refused for
228
- * a member this contract does not declare.
227
+ * `isDraft` also refuses an absolute path and one that resolves outside the workspace. That one
228
+ * member is the whole of the difference between the advertised contract and the enforced one, so a
229
+ * caller refused after satisfying the schema is refused here and nowhere else. The whole input must
230
+ * first satisfy that schema. Each draft is then tested with `isDraft` itself rather than with a
231
+ * second copy of its rule. Reports nothing for a value carrying no draft member, including one
232
+ * refused for a member this contract does not declare.
229
233
  *
230
234
  * This function lives in the server helpers rather than in core: core's leaf pair, `helpers.ts` and
231
235
  * `validators.ts`, may not consume the shapes module this function reads `CLAIM_SHAPE` from, and
@@ -397,7 +401,7 @@ export declare function isRefusedName(file: string, error: unknown): boolean;
397
401
  *
398
402
  * @remarks
399
403
  * Starting launches the target workspace's Oxlint binary with its Language Server Protocol mode
400
- * and hands the conversation to `@orkestrel/lsp`: `createStdioClientTransport` owns the child
404
+ * and hands the conversation to `@orkestrel/lsp`: `createLSPStdioTransport` owns the child
401
405
  * process and its bytes, and `createLSPClient` owns the framing, the request correlation, the
402
406
  * capabilities this stage advertises, and the choice between pulled and pushed diagnostics. This
403
407
  * stage owns the workspace, the candidate identity, and the projection from a diagnostic to an
@@ -425,7 +429,7 @@ export declare function isRefusedName(file: string, error: unknown): boolean;
425
429
  * @example
426
430
  * ```ts
427
431
  * const stage = new LintStage('/srv/checkout')
428
- * const check = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
432
+ * const result = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
429
433
  * await stage.destroy()
430
434
  * ```
431
435
  */
@@ -441,7 +445,7 @@ export declare class LintStage implements LintStageInterface {
441
445
  get progress(): number;
442
446
  get exit(): Promise<never>;
443
447
  start(): Promise<void>;
444
- inspect(subject: Case, options?: InspectionOptions): Promise<Check>;
448
+ inspect(subject: Case, options?: InspectionOptions): Promise<StageResult>;
445
449
  destroy(): Promise<void>;
446
450
  }
447
451
 
@@ -461,7 +465,7 @@ export declare class LintStage implements LintStageInterface {
461
465
  *
462
466
  * @example
463
467
  * ```ts
464
- * const check = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
468
+ * const result = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
465
469
  * ```
466
470
  */
467
471
  export declare interface LintStageInterface extends StageInterface {
@@ -478,10 +482,10 @@ export declare interface LintStageInterface extends StageInterface {
478
482
  *
479
483
  * @example
480
484
  * ```ts
481
- * const check = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
485
+ * const result = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
482
486
  * ```
483
487
  */
484
- inspect(subject: Case, options?: InspectionOptions): Promise<Check>;
488
+ inspect(subject: Case, options?: InspectionOptions): Promise<StageResult>;
485
489
  }
486
490
 
487
491
  /**
@@ -582,10 +586,11 @@ export declare function normalizePath(path: string): string;
582
586
  * `tsc --showConfig` spells a path relative to the project file, so a printed record carries an
583
587
  * absolute path only where a project itself declares one. Rewriting a contained absolute path to
584
588
  * its relative form keeps one commit checked out at two roots reading to one digest. A path that
585
- * escapes the workspace is left as it stands, because rewriting it would name a file outside the
586
- * tree by a relative spelling. Key order is the compiler's own and it differs between the supported
587
- * majors, so sorting removes a difference that means nothing. A `__proto__` key is dropped, as
588
- * the earlier assignment-built record dropped it, so a digest stays the same across releases.
589
+ * resolves outside the workspace is left as it stands, because rewriting it would name a file
590
+ * outside the tree by a relative spelling. Key order is the compiler's own and it differs between
591
+ * the supported majors, so sorting removes a difference that means nothing. A `__proto__` key is
592
+ * dropped, as the earlier assignment-built record dropped it, so a digest stays the same across
593
+ * releases.
589
594
  *
590
595
  * @param workspace - The target workspace root
591
596
  * @param value - The value to rewrite
@@ -1279,10 +1284,10 @@ export declare function resolveWorkspaceModule(workspace: string, specifier: str
1279
1284
  * Vitest service after 64 specifications rather than deleting from each map that service owns. Any
1280
1285
  * bound holds the retention flat, because the replacement releases everything the instance held,
1281
1286
  * and 64 is the value chosen. The inspection that crosses the bound pays the replacement
1282
- * synchronously: it closes the resident service and warms a new one before it runs. On 2026-08-20,
1283
- * over this package's own workspace on the host `guides/probe.md` § Cost names, two runs of 66
1284
- * inspections put that one at 480 ms and 269 ms against median inspections of 156 ms and 155 ms, so
1285
- * budget one call in 64 at 110 ms to 330 ms above the rest.
1287
+ * synchronously: it closes the resident service and warms a fresh service before it runs. On
1288
+ * 2026-08-20, over this package's own workspace on the host `guides/probe.md` § Cost names, two
1289
+ * runs of 66 inspections put that one at 480 ms and 269 ms against median inspections of 156 ms and
1290
+ * 155 ms, so budget one call in 64 at 110 ms to 330 ms above the rest.
1286
1291
  *
1287
1292
  * Every issue this stage emits names its party, and the stage emits an issue for every party
1288
1293
  * `Party` declares. An `origin: 'claimant'` issue is a failure Vitest reported about the candidate.
@@ -1307,7 +1312,7 @@ export declare function resolveWorkspaceModule(workspace: string, specifier: str
1307
1312
  * @example
1308
1313
  * ```ts
1309
1314
  * const stage = new RuntimeStage('/srv/checkout')
1310
- * const check = await stage.inspect(subject)
1315
+ * const result = await stage.inspect(subject)
1311
1316
  * await stage.destroy()
1312
1317
  * ```
1313
1318
  */
@@ -1335,7 +1340,7 @@ export declare class RuntimeStage implements StageInterface {
1335
1340
  * @returns One outcome for this stage
1336
1341
  * @throws When the workspace's own tool cannot start or has already been destroyed
1337
1342
  */
1338
- inspect(subject: Case): Promise<Check>;
1343
+ inspect(subject: Case): Promise<StageResult>;
1339
1344
  /**
1340
1345
  * Tears down the resident tool or the mirror and releases its resources.
1341
1346
  *
@@ -1395,8 +1400,8 @@ export declare function scanDiagnostics(text: string): readonly Diagnostic[];
1395
1400
  *
1396
1401
  * @example
1397
1402
  * ```ts
1398
- * const check = await stage.inspect(subject)
1399
- * console.log(check.stage)
1403
+ * const result = await stage.inspect(subject)
1404
+ * console.log(result.stage)
1400
1405
  * await stage.destroy()
1401
1406
  * ```
1402
1407
  */
@@ -1430,11 +1435,11 @@ export declare interface StageInterface {
1430
1435
  *
1431
1436
  * @example
1432
1437
  * ```ts
1433
- * const check = await stage.inspect(subject)
1434
- * console.log(check.stage, check.elapsed, check.issues.length)
1438
+ * const result = await stage.inspect(subject)
1439
+ * console.log(result.stage, result.elapsed, result.issues.length)
1435
1440
  * ```
1436
1441
  */
1437
- inspect(subject: Case): Promise<Check>;
1442
+ inspect(subject: Case): Promise<StageResult>;
1438
1443
  /**
1439
1444
  * Tears down the resident tool or the mirror and releases its resources.
1440
1445
  *
@@ -1484,7 +1489,7 @@ export declare interface StageInterface {
1484
1489
  * @example
1485
1490
  * ```ts
1486
1491
  * const stage = new TypeStage('/srv/checkout')
1487
- * const check = await stage.inspect(subject, 'configs/src/tsconfig.core.json')
1492
+ * const result = await stage.inspect(subject, 'configs/src/tsconfig.core.json')
1488
1493
  * await stage.destroy()
1489
1494
  * ```
1490
1495
  */
@@ -1514,7 +1519,7 @@ export declare class TypeStage implements TypeStageInterface {
1514
1519
  * @throws When the workspace refuses the mirror, when a project the run reads is malformed, or
1515
1520
  * when the stage has already been destroyed
1516
1521
  */
1517
- inspect(subject: Case, project?: string): Promise<Check>;
1522
+ inspect(subject: Case, project?: string): Promise<StageResult>;
1518
1523
  /**
1519
1524
  * Resolves one project to the path and digest this stage applies for it.
1520
1525
  *
@@ -1528,8 +1533,8 @@ export declare class TypeStage implements TypeStageInterface {
1528
1533
  *
1529
1534
  * @param project - The workspace-relative TypeScript project to resolve
1530
1535
  * @returns The resolved workspace-relative path and the digest of its compiler options
1531
- * @throws When the project escapes the workspace, when the compiler refuses it, or when the
1532
- * stage has already been destroyed
1536
+ * @throws When the project resolves outside the workspace, when the compiler refuses it, or when
1537
+ * the stage has already been destroyed
1533
1538
  */
1534
1539
  resolve(project: string): Promise<Project>;
1535
1540
  /**
@@ -1555,7 +1560,7 @@ export declare class TypeStage implements TypeStageInterface {
1555
1560
  * @example
1556
1561
  * ```ts
1557
1562
  * const project = await stage.resolve('configs/src/tsconfig.core.json')
1558
- * const check = await stage.inspect(subject, project.path)
1563
+ * const result = await stage.inspect(subject, project.path)
1559
1564
  * ```
1560
1565
  */
1561
1566
  export declare interface TypeStageInterface extends StageInterface {
@@ -1571,10 +1576,10 @@ export declare interface TypeStageInterface extends StageInterface {
1571
1576
  *
1572
1577
  * @example
1573
1578
  * ```ts
1574
- * const check = await stage.inspect(subject, 'configs/src/tsconfig.core.json')
1579
+ * const result = await stage.inspect(subject, 'configs/src/tsconfig.core.json')
1575
1580
  * ```
1576
1581
  */
1577
- inspect(subject: Case, project?: string): Promise<Check>;
1582
+ inspect(subject: Case, project?: string): Promise<StageResult>;
1578
1583
  /**
1579
1584
  * Resolves one project to the path and digest the stage applies for it.
1580
1585
  * Calls `start()` before reading the project.
@@ -1585,8 +1590,8 @@ export declare interface TypeStageInterface extends StageInterface {
1585
1590
  *
1586
1591
  * @param project - The workspace-relative TypeScript project to resolve
1587
1592
  * @returns The resolved workspace-relative path and the digest of its compiler options
1588
- * @throws When the project escapes the workspace, when the compiler refuses it, or when the
1589
- * stage has already been destroyed
1593
+ * @throws When the project resolves outside the workspace, when the compiler refuses it, or when
1594
+ * the stage has already been destroyed
1590
1595
  *
1591
1596
  * @example
1592
1597
  * ```ts
@@ -1,5 +1,4 @@
1
1
  import type { Case } from '@orkestrel/probe';
2
- import type { Check } from '@orkestrel/probe';
3
2
  import type { Claim } from '@orkestrel/probe';
4
3
  import type { EmitterInterface } from '@orkestrel/emitter';
5
4
  import type { EventEmitter } from 'node:events';
@@ -12,6 +11,7 @@ import type { ProbeInterface } from '@orkestrel/probe';
12
11
  import type { ProbeOptions } from '@orkestrel/probe';
13
12
  import type { Project } from '@orkestrel/probe';
14
13
  import type { Stage } from '@orkestrel/probe';
14
+ import type { StageResult } from '@orkestrel/probe';
15
15
  import type { Toolchain } from '@orkestrel/probe';
16
16
  import type { Verdict } from '@orkestrel/probe';
17
17
  import type * as VitestNode from 'vitest/node';
@@ -55,8 +55,12 @@ export declare function captureListeners(emitter: EventEmitter, events: readonly
55
55
  * Collects every regular file a target workspace holds, skipping the trees no inspection reads.
56
56
  *
57
57
  * @remarks
58
- * Skips a directory named `.git`, `dist`, or `node_modules` at any depth, and the directory
59
- * {@link TYPE_MIRROR} names, which would otherwise carry this package's own mirror into the walk. A
58
+ * Skips a directory named `.git`, `dist`, or `node_modules` at any depth. Of the workspace-root
59
+ * `tmp` directory it walks only `tmp/probes`: the scaffold tmp layout holds the runtime probes there
60
+ * and nothing else an inspection reads, so a consumer's ignored data under `tmp/` is never read or
61
+ * copied. The match is the lowercase `tmp` spelling exactly, and a `tmp` directory below the root is
62
+ * walked like any other. The directory {@link TYPE_MIRROR} names is skipped as well, so this
63
+ * package's own mirror stays out of the walk if it ever moves outside `tmp`. A
60
64
  * directory this host cannot list is skipped rather than raised, so one unreadable directory in a
61
65
  * consumer's tree is not a reason to refuse the whole walk. A symbolic link is not carried, whether
62
66
  * it names a file or a directory, so a file reached only through one is absent from the result; a
@@ -86,10 +90,10 @@ export declare function collectWorkspaceFiles(workspace: string): readonly strin
86
90
  *
87
91
  * @example
88
92
  * ```ts
89
- * computeDigest('/srv/checkout', { strict: true }).length // 32
93
+ * computeWorkspaceDigest('/srv/checkout', { strict: true }).length // 32
90
94
  * ```
91
95
  */
92
- export declare function computeDigest(workspace: string, value: unknown): string;
96
+ export declare function computeWorkspaceDigest(workspace: string, value: unknown): string;
93
97
 
94
98
  /**
95
99
  * Creates the protocol failure returned when the MCP handshake cannot arm the probe.
@@ -220,12 +224,12 @@ export declare function filterUniqueIssues(issues: readonly Issue[]): readonly I
220
224
  *
221
225
  * @remarks
222
226
  * The published claim schema constrains `Draft.path` to a non-empty string and nothing else, while
223
- * `isDraft` also refuses an absolute path and one that escapes the workspace. That one member is
224
- * the whole of the difference between the advertised contract and the enforced one, so a caller
225
- * refused after satisfying the schema is refused here and nowhere else. The whole input must first
226
- * satisfy that schema. Each draft is then tested with `isDraft` itself rather than with a second
227
- * copy of its rule. Reports nothing for a value carrying no draft member, including one refused for
228
- * a member this contract does not declare.
227
+ * `isDraft` also refuses an absolute path and one that resolves outside the workspace. That one
228
+ * member is the whole of the difference between the advertised contract and the enforced one, so a
229
+ * caller refused after satisfying the schema is refused here and nowhere else. The whole input must
230
+ * first satisfy that schema. Each draft is then tested with `isDraft` itself rather than with a
231
+ * second copy of its rule. Reports nothing for a value carrying no draft member, including one
232
+ * refused for a member this contract does not declare.
229
233
  *
230
234
  * This function lives in the server helpers rather than in core: core's leaf pair, `helpers.ts` and
231
235
  * `validators.ts`, may not consume the shapes module this function reads `CLAIM_SHAPE` from, and
@@ -397,7 +401,7 @@ export declare function isRefusedName(file: string, error: unknown): boolean;
397
401
  *
398
402
  * @remarks
399
403
  * Starting launches the target workspace's Oxlint binary with its Language Server Protocol mode
400
- * and hands the conversation to `@orkestrel/lsp`: `createStdioClientTransport` owns the child
404
+ * and hands the conversation to `@orkestrel/lsp`: `createLSPStdioTransport` owns the child
401
405
  * process and its bytes, and `createLSPClient` owns the framing, the request correlation, the
402
406
  * capabilities this stage advertises, and the choice between pulled and pushed diagnostics. This
403
407
  * stage owns the workspace, the candidate identity, and the projection from a diagnostic to an
@@ -425,7 +429,7 @@ export declare function isRefusedName(file: string, error: unknown): boolean;
425
429
  * @example
426
430
  * ```ts
427
431
  * const stage = new LintStage('/srv/checkout')
428
- * const check = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
432
+ * const result = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
429
433
  * await stage.destroy()
430
434
  * ```
431
435
  */
@@ -441,7 +445,7 @@ export declare class LintStage implements LintStageInterface {
441
445
  get progress(): number;
442
446
  get exit(): Promise<never>;
443
447
  start(): Promise<void>;
444
- inspect(subject: Case, options?: InspectionOptions): Promise<Check>;
448
+ inspect(subject: Case, options?: InspectionOptions): Promise<StageResult>;
445
449
  destroy(): Promise<void>;
446
450
  }
447
451
 
@@ -461,7 +465,7 @@ export declare class LintStage implements LintStageInterface {
461
465
  *
462
466
  * @example
463
467
  * ```ts
464
- * const check = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
468
+ * const result = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
465
469
  * ```
466
470
  */
467
471
  export declare interface LintStageInterface extends StageInterface {
@@ -478,10 +482,10 @@ export declare interface LintStageInterface extends StageInterface {
478
482
  *
479
483
  * @example
480
484
  * ```ts
481
- * const check = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
485
+ * const result = await stage.inspect(subject, { signal: AbortSignal.timeout(30_000) })
482
486
  * ```
483
487
  */
484
- inspect(subject: Case, options?: InspectionOptions): Promise<Check>;
488
+ inspect(subject: Case, options?: InspectionOptions): Promise<StageResult>;
485
489
  }
486
490
 
487
491
  /**
@@ -582,10 +586,11 @@ export declare function normalizePath(path: string): string;
582
586
  * `tsc --showConfig` spells a path relative to the project file, so a printed record carries an
583
587
  * absolute path only where a project itself declares one. Rewriting a contained absolute path to
584
588
  * its relative form keeps one commit checked out at two roots reading to one digest. A path that
585
- * escapes the workspace is left as it stands, because rewriting it would name a file outside the
586
- * tree by a relative spelling. Key order is the compiler's own and it differs between the supported
587
- * majors, so sorting removes a difference that means nothing. A `__proto__` key is dropped, as
588
- * the earlier assignment-built record dropped it, so a digest stays the same across releases.
589
+ * resolves outside the workspace is left as it stands, because rewriting it would name a file
590
+ * outside the tree by a relative spelling. Key order is the compiler's own and it differs between
591
+ * the supported majors, so sorting removes a difference that means nothing. A `__proto__` key is
592
+ * dropped, as the earlier assignment-built record dropped it, so a digest stays the same across
593
+ * releases.
589
594
  *
590
595
  * @param workspace - The target workspace root
591
596
  * @param value - The value to rewrite
@@ -1279,10 +1284,10 @@ export declare function resolveWorkspaceModule(workspace: string, specifier: str
1279
1284
  * Vitest service after 64 specifications rather than deleting from each map that service owns. Any
1280
1285
  * bound holds the retention flat, because the replacement releases everything the instance held,
1281
1286
  * and 64 is the value chosen. The inspection that crosses the bound pays the replacement
1282
- * synchronously: it closes the resident service and warms a new one before it runs. On 2026-08-20,
1283
- * over this package's own workspace on the host `guides/probe.md` § Cost names, two runs of 66
1284
- * inspections put that one at 480 ms and 269 ms against median inspections of 156 ms and 155 ms, so
1285
- * budget one call in 64 at 110 ms to 330 ms above the rest.
1287
+ * synchronously: it closes the resident service and warms a fresh service before it runs. On
1288
+ * 2026-08-20, over this package's own workspace on the host `guides/probe.md` § Cost names, two
1289
+ * runs of 66 inspections put that one at 480 ms and 269 ms against median inspections of 156 ms and
1290
+ * 155 ms, so budget one call in 64 at 110 ms to 330 ms above the rest.
1286
1291
  *
1287
1292
  * Every issue this stage emits names its party, and the stage emits an issue for every party
1288
1293
  * `Party` declares. An `origin: 'claimant'` issue is a failure Vitest reported about the candidate.
@@ -1307,7 +1312,7 @@ export declare function resolveWorkspaceModule(workspace: string, specifier: str
1307
1312
  * @example
1308
1313
  * ```ts
1309
1314
  * const stage = new RuntimeStage('/srv/checkout')
1310
- * const check = await stage.inspect(subject)
1315
+ * const result = await stage.inspect(subject)
1311
1316
  * await stage.destroy()
1312
1317
  * ```
1313
1318
  */
@@ -1335,7 +1340,7 @@ export declare class RuntimeStage implements StageInterface {
1335
1340
  * @returns One outcome for this stage
1336
1341
  * @throws When the workspace's own tool cannot start or has already been destroyed
1337
1342
  */
1338
- inspect(subject: Case): Promise<Check>;
1343
+ inspect(subject: Case): Promise<StageResult>;
1339
1344
  /**
1340
1345
  * Tears down the resident tool or the mirror and releases its resources.
1341
1346
  *
@@ -1395,8 +1400,8 @@ export declare function scanDiagnostics(text: string): readonly Diagnostic[];
1395
1400
  *
1396
1401
  * @example
1397
1402
  * ```ts
1398
- * const check = await stage.inspect(subject)
1399
- * console.log(check.stage)
1403
+ * const result = await stage.inspect(subject)
1404
+ * console.log(result.stage)
1400
1405
  * await stage.destroy()
1401
1406
  * ```
1402
1407
  */
@@ -1430,11 +1435,11 @@ export declare interface StageInterface {
1430
1435
  *
1431
1436
  * @example
1432
1437
  * ```ts
1433
- * const check = await stage.inspect(subject)
1434
- * console.log(check.stage, check.elapsed, check.issues.length)
1438
+ * const result = await stage.inspect(subject)
1439
+ * console.log(result.stage, result.elapsed, result.issues.length)
1435
1440
  * ```
1436
1441
  */
1437
- inspect(subject: Case): Promise<Check>;
1442
+ inspect(subject: Case): Promise<StageResult>;
1438
1443
  /**
1439
1444
  * Tears down the resident tool or the mirror and releases its resources.
1440
1445
  *
@@ -1484,7 +1489,7 @@ export declare interface StageInterface {
1484
1489
  * @example
1485
1490
  * ```ts
1486
1491
  * const stage = new TypeStage('/srv/checkout')
1487
- * const check = await stage.inspect(subject, 'configs/src/tsconfig.core.json')
1492
+ * const result = await stage.inspect(subject, 'configs/src/tsconfig.core.json')
1488
1493
  * await stage.destroy()
1489
1494
  * ```
1490
1495
  */
@@ -1514,7 +1519,7 @@ export declare class TypeStage implements TypeStageInterface {
1514
1519
  * @throws When the workspace refuses the mirror, when a project the run reads is malformed, or
1515
1520
  * when the stage has already been destroyed
1516
1521
  */
1517
- inspect(subject: Case, project?: string): Promise<Check>;
1522
+ inspect(subject: Case, project?: string): Promise<StageResult>;
1518
1523
  /**
1519
1524
  * Resolves one project to the path and digest this stage applies for it.
1520
1525
  *
@@ -1528,8 +1533,8 @@ export declare class TypeStage implements TypeStageInterface {
1528
1533
  *
1529
1534
  * @param project - The workspace-relative TypeScript project to resolve
1530
1535
  * @returns The resolved workspace-relative path and the digest of its compiler options
1531
- * @throws When the project escapes the workspace, when the compiler refuses it, or when the
1532
- * stage has already been destroyed
1536
+ * @throws When the project resolves outside the workspace, when the compiler refuses it, or when
1537
+ * the stage has already been destroyed
1533
1538
  */
1534
1539
  resolve(project: string): Promise<Project>;
1535
1540
  /**
@@ -1555,7 +1560,7 @@ export declare class TypeStage implements TypeStageInterface {
1555
1560
  * @example
1556
1561
  * ```ts
1557
1562
  * const project = await stage.resolve('configs/src/tsconfig.core.json')
1558
- * const check = await stage.inspect(subject, project.path)
1563
+ * const result = await stage.inspect(subject, project.path)
1559
1564
  * ```
1560
1565
  */
1561
1566
  export declare interface TypeStageInterface extends StageInterface {
@@ -1571,10 +1576,10 @@ export declare interface TypeStageInterface extends StageInterface {
1571
1576
  *
1572
1577
  * @example
1573
1578
  * ```ts
1574
- * const check = await stage.inspect(subject, 'configs/src/tsconfig.core.json')
1579
+ * const result = await stage.inspect(subject, 'configs/src/tsconfig.core.json')
1575
1580
  * ```
1576
1581
  */
1577
- inspect(subject: Case, project?: string): Promise<Check>;
1582
+ inspect(subject: Case, project?: string): Promise<StageResult>;
1578
1583
  /**
1579
1584
  * Resolves one project to the path and digest the stage applies for it.
1580
1585
  * Calls `start()` before reading the project.
@@ -1585,8 +1590,8 @@ export declare interface TypeStageInterface extends StageInterface {
1585
1590
  *
1586
1591
  * @param project - The workspace-relative TypeScript project to resolve
1587
1592
  * @returns The resolved workspace-relative path and the digest of its compiler options
1588
- * @throws When the project escapes the workspace, when the compiler refuses it, or when the
1589
- * stage has already been destroyed
1593
+ * @throws When the project resolves outside the workspace, when the compiler refuses it, or when
1594
+ * the stage has already been destroyed
1590
1595
  *
1591
1596
  * @example
1592
1597
  * ```ts