@orkestrel/probe 0.0.27 → 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.
@@ -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
@@ -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
@@ -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.
@@ -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
  /**
@@ -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
@@ -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
@@ -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
@@ -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.
@@ -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
  /**
@@ -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
@@ -729,8 +729,12 @@ function matchesLiveProcess(id) {
729
729
  * Collects every regular file a target workspace holds, skipping the trees no inspection reads.
730
730
  *
731
731
  * @remarks
732
- * Skips a directory named `.git`, `dist`, or `node_modules` at any depth, and the directory
733
- * {@link TYPE_MIRROR} names, which would otherwise carry this package's own mirror into the walk. A
732
+ * Skips a directory named `.git`, `dist`, or `node_modules` at any depth. Of the workspace-root
733
+ * `tmp` directory it walks only `tmp/probes`: the scaffold tmp layout holds the runtime probes there
734
+ * and nothing else an inspection reads, so a consumer's ignored data under `tmp/` is never read or
735
+ * copied. The match is the lowercase `tmp` spelling exactly, and a `tmp` directory below the root is
736
+ * walked like any other. The directory {@link TYPE_MIRROR} names is skipped as well, so this
737
+ * package's own mirror stays out of the walk if it ever moves outside `tmp`. A
734
738
  * directory this host cannot list is skipped rather than raised, so one unreadable directory in a
735
739
  * consumer's tree is not a reason to refuse the whole walk. A symbolic link is not carried, whether
736
740
  * it names a file or a directory, so a file reached only through one is absent from the result; a
@@ -747,7 +751,9 @@ function matchesLiveProcess(id) {
747
751
  function collectWorkspaceFiles(workspace) {
748
752
  const excluded = normalizePath(resolveWorkspaceFile(workspace, TYPE_MIRROR));
749
753
  const files = [];
750
- const directories = [resolve(workspace)];
754
+ const root = resolve(workspace);
755
+ const scratch = join(root, "tmp");
756
+ const directories = [root];
751
757
  while (directories.length > 0) {
752
758
  const directory = directories.pop();
753
759
  if (directory === void 0) break;
@@ -755,6 +761,7 @@ function collectWorkspaceFiles(workspace) {
755
761
  const entries = reading.success ? reading.value : [];
756
762
  for (const entry of entries) {
757
763
  if (entry.name === ".git" || entry.name === "dist" || entry.name === "node_modules") continue;
764
+ if (directory === scratch && entry.name !== "probes") continue;
758
765
  const path = join(directory, entry.name);
759
766
  if (entry.isDirectory()) {
760
767
  if (normalizePath(path) !== excluded) directories.push(path);
@@ -814,12 +821,12 @@ async function guardStage(stage, operation) {
814
821
  *
815
822
  * @remarks
816
823
  * The published claim schema constrains `Draft.path` to a non-empty string and nothing else, while
817
- * `isDraft` also refuses an absolute path and one that escapes the workspace. That one member is
818
- * the whole of the difference between the advertised contract and the enforced one, so a caller
819
- * refused after satisfying the schema is refused here and nowhere else. The whole input must first
820
- * satisfy that schema. Each draft is then tested with `isDraft` itself rather than with a second
821
- * copy of its rule. Reports nothing for a value carrying no draft member, including one refused for
822
- * a member this contract does not declare.
824
+ * `isDraft` also refuses an absolute path and one that resolves outside the workspace. That one
825
+ * member is the whole of the difference between the advertised contract and the enforced one, so a
826
+ * caller refused after satisfying the schema is refused here and nowhere else. The whole input must
827
+ * first satisfy that schema. Each draft is then tested with `isDraft` itself rather than with a
828
+ * second copy of its rule. Reports nothing for a value carrying no draft member, including one
829
+ * refused for a member this contract does not declare.
823
830
  *
824
831
  * This function lives in the server helpers rather than in core: core's leaf pair, `helpers.ts` and
825
832
  * `validators.ts`, may not consume the shapes module this function reads `CLAIM_SHAPE` from, and
@@ -854,10 +861,11 @@ function findRefusedPaths(value) {
854
861
  * `tsc --showConfig` spells a path relative to the project file, so a printed record carries an
855
862
  * absolute path only where a project itself declares one. Rewriting a contained absolute path to
856
863
  * its relative form keeps one commit checked out at two roots reading to one digest. A path that
857
- * escapes the workspace is left as it stands, because rewriting it would name a file outside the
858
- * tree by a relative spelling. Key order is the compiler's own and it differs between the supported
859
- * majors, so sorting removes a difference that means nothing. A `__proto__` key is dropped, as
860
- * the earlier assignment-built record dropped it, so a digest stays the same across releases.
864
+ * resolves outside the workspace is left as it stands, because rewriting it would name a file
865
+ * outside the tree by a relative spelling. Key order is the compiler's own and it differs between
866
+ * the supported majors, so sorting removes a difference that means nothing. A `__proto__` key is
867
+ * dropped, as the earlier assignment-built record dropped it, so a digest stays the same across
868
+ * releases.
861
869
  *
862
870
  * @param workspace - The target workspace root
863
871
  * @param value - The value to rewrite
@@ -1093,7 +1101,7 @@ var Overlay = class {
1093
1101
  }
1094
1102
  };
1095
1103
  // package.json
1096
- var version = "0.0.27";
1104
+ var version = "0.0.28";
1097
1105
  var peerDependencies = {
1098
1106
  "typescript": "^6.0.3 || ^7.0.2",
1099
1107
  "vitest": "^4.1.12 || ^5.0.5"
@@ -1345,10 +1353,10 @@ var LintStage = class {
1345
1353
  * Vitest service after 64 specifications rather than deleting from each map that service owns. Any
1346
1354
  * bound holds the retention flat, because the replacement releases everything the instance held,
1347
1355
  * and 64 is the value chosen. The inspection that crosses the bound pays the replacement
1348
- * synchronously: it closes the resident service and warms a new one before it runs. On 2026-08-20,
1349
- * over this package's own workspace on the host `guides/probe.md` § Cost names, two runs of 66
1350
- * inspections put that one at 480 ms and 269 ms against median inspections of 156 ms and 155 ms, so
1351
- * budget one call in 64 at 110 ms to 330 ms above the rest.
1356
+ * synchronously: it closes the resident service and warms a fresh service before it runs. On
1357
+ * 2026-08-20, over this package's own workspace on the host `guides/probe.md` § Cost names, two
1358
+ * runs of 66 inspections put that one at 480 ms and 269 ms against median inspections of 156 ms and
1359
+ * 155 ms, so budget one call in 64 at 110 ms to 330 ms above the rest.
1352
1360
  *
1353
1361
  * Every issue this stage emits names its party, and the stage emits an issue for every party
1354
1362
  * `Party` declares. An `origin: 'claimant'` issue is a failure Vitest reported about the candidate.
@@ -2088,8 +2096,8 @@ var TypeStage = class {
2088
2096
  *
2089
2097
  * @param project - The workspace-relative TypeScript project to resolve
2090
2098
  * @returns The resolved workspace-relative path and the digest of its compiler options
2091
- * @throws When the project escapes the workspace, when the compiler refuses it, or when the
2092
- * stage has already been destroyed
2099
+ * @throws When the project resolves outside the workspace, when the compiler refuses it, or when
2100
+ * the stage has already been destroyed
2093
2101
  */
2094
2102
  resolve(project) {
2095
2103
  return guardStage(this.stage, this.#resolve(project));