ttsc 0.31.1 → 0.31.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.
Files changed (135) hide show
  1. package/lib/compiler/internal/build/BuildExecution.d.ts +4 -2
  2. package/lib/compiler/internal/build/BuildExecution.js +40 -12
  3. package/lib/compiler/internal/build/BuildExecution.js.map +1 -1
  4. package/lib/compiler/internal/startResidentTransform.js +5 -4
  5. package/lib/compiler/internal/startResidentTransform.js.map +1 -1
  6. package/lib/compiler/internal/transformProjectInMemory.js +9 -7
  7. package/lib/compiler/internal/transformProjectInMemory.js.map +1 -1
  8. package/lib/internal/javascriptRuntimeCapabilities.d.ts +13 -4
  9. package/lib/internal/javascriptRuntimeCapabilities.js +56 -6
  10. package/lib/internal/javascriptRuntimeCapabilities.js.map +1 -1
  11. package/lib/internal/pluginSource.d.ts +1 -0
  12. package/lib/internal/pluginSource.js +1 -0
  13. package/lib/internal/pluginSource.js.map +1 -1
  14. package/lib/internal/resolveNodeBinary.d.ts +6 -1
  15. package/lib/internal/resolveNodeBinary.js +6 -2
  16. package/lib/internal/resolveNodeBinary.js.map +1 -1
  17. package/lib/internal/runtimeExecutableIdentity.d.ts +22 -13
  18. package/lib/internal/runtimeExecutableIdentity.js +192 -102
  19. package/lib/internal/runtimeExecutableIdentity.js.map +1 -1
  20. package/lib/launcher/internal/runtime/installRuntimeHooks.js +58 -4
  21. package/lib/launcher/internal/runtime/installRuntimeHooks.js.map +1 -1
  22. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.d.ts +5 -1
  23. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js +7 -2
  24. package/lib/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.js.map +1 -1
  25. package/lib/launcher/internal/ttscserver/runTtscserver.js +8 -1
  26. package/lib/launcher/internal/ttscserver/runTtscserver.js.map +1 -1
  27. package/lib/plugin/internal/CapabilityResolutionFormat.d.ts +21 -62
  28. package/lib/plugin/internal/CapabilityResolutionFormat.js +15 -106
  29. package/lib/plugin/internal/CapabilityResolutionFormat.js.map +1 -1
  30. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.d.ts +6 -0
  31. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js +4 -4
  32. package/lib/plugin/internal/load/PluginDescriptorEvaluationCache.js.map +1 -1
  33. package/lib/plugin/internal/load/loadProjectPlugins.d.ts +12 -1
  34. package/lib/plugin/internal/load/loadProjectPlugins.js +80 -20
  35. package/lib/plugin/internal/load/loadProjectPlugins.js.map +1 -1
  36. package/lib/plugin/internal/readCapabilityResolution.d.ts +6 -0
  37. package/lib/plugin/internal/readCapabilityResolution.js +8 -5
  38. package/lib/plugin/internal/readCapabilityResolution.js.map +1 -1
  39. package/lib/plugin/internal/source/GoEnvironmentReading.d.ts +9 -3
  40. package/lib/plugin/internal/source/GoEnvironmentReading.js +53 -7
  41. package/lib/plugin/internal/source/GoEnvironmentReading.js.map +1 -1
  42. package/lib/plugin/internal/source/NativeSourcePackages.d.ts +44 -6
  43. package/lib/plugin/internal/source/NativeSourcePackages.js +150 -8
  44. package/lib/plugin/internal/source/NativeSourcePackages.js.map +1 -1
  45. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.d.ts +21 -3
  46. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js +32 -7
  47. package/lib/plugin/internal/source/PluginBuildEnvironmentReadings.js.map +1 -1
  48. package/lib/plugin/internal/source/PluginContentIdentities.d.ts +265 -0
  49. package/lib/plugin/internal/source/PluginContentIdentities.js +452 -0
  50. package/lib/plugin/internal/source/PluginContentIdentities.js.map +1 -0
  51. package/lib/plugin/internal/source/PluginLoadAnswers.d.ts +63 -0
  52. package/lib/plugin/internal/source/PluginLoadAnswers.js +128 -0
  53. package/lib/plugin/internal/source/PluginLoadAnswers.js.map +1 -0
  54. package/lib/plugin/internal/source/SourceBuildCacheLayout.d.ts +10 -0
  55. package/lib/plugin/internal/source/SourceBuildCacheLayout.js +12 -0
  56. package/lib/plugin/internal/source/SourceBuildCacheLayout.js.map +1 -1
  57. package/lib/plugin/internal/source/SourcePluginWorkspace.d.ts +5 -2
  58. package/lib/plugin/internal/source/SourcePluginWorkspace.js +5 -3
  59. package/lib/plugin/internal/source/SourcePluginWorkspace.js.map +1 -1
  60. package/lib/plugin/internal/source/buildSourcePlugin.d.ts +15 -2
  61. package/lib/plugin/internal/source/buildSourcePlugin.js +27 -4
  62. package/lib/plugin/internal/source/buildSourcePlugin.js.map +1 -1
  63. package/lib/plugin/internal/source/computeCacheKey.d.ts +21 -5
  64. package/lib/plugin/internal/source/computeCacheKey.js +71 -29
  65. package/lib/plugin/internal/source/computeCacheKey.js.map +1 -1
  66. package/lib/plugin/internal/source/hashPluginBuildEnvironment.d.ts +7 -3
  67. package/lib/plugin/internal/source/hashPluginBuildEnvironment.js +74 -35
  68. package/lib/plugin/internal/source/hashPluginBuildEnvironment.js.map +1 -1
  69. package/lib/plugin/internal/source/pluginBuildEnvironment.d.ts +8 -3
  70. package/lib/plugin/internal/source/pluginBuildEnvironment.js +8 -4
  71. package/lib/plugin/internal/source/pluginBuildEnvironment.js.map +1 -1
  72. package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js +12 -2
  73. package/lib/plugin/internal/source/pluginBuildEnvironmentWorker.js.map +1 -1
  74. package/lib/plugin/internal/source/pluginBuildVersions.d.ts +2 -2
  75. package/lib/plugin/internal/source/pluginBuildVersions.js +4 -17
  76. package/lib/plugin/internal/source/pluginBuildVersions.js.map +1 -1
  77. package/lib/plugin/internal/source/pluginSourceState.d.ts +6 -2
  78. package/lib/plugin/internal/source/pluginSourceState.js +20 -8
  79. package/lib/plugin/internal/source/pluginSourceState.js.map +1 -1
  80. package/lib/plugin/internal/source/pluginSourceStateHolds.d.ts +7 -2
  81. package/lib/plugin/internal/source/pluginSourceStateHolds.js +12 -7
  82. package/lib/plugin/internal/source/pluginSourceStateHolds.js.map +1 -1
  83. package/lib/plugin/internal/source/processPluginBuildEnvironment.d.ts +7 -2
  84. package/lib/plugin/internal/source/processPluginBuildEnvironment.js +8 -3
  85. package/lib/plugin/internal/source/processPluginBuildEnvironment.js.map +1 -1
  86. package/lib/plugin/internal/source/provenPluginSourceDigest.d.ts +28 -0
  87. package/lib/plugin/internal/source/provenPluginSourceDigest.js +41 -0
  88. package/lib/plugin/internal/source/provenPluginSourceDigest.js.map +1 -0
  89. package/lib/plugin/internal/source/pruneCacheFileRoot.d.ts +3 -2
  90. package/lib/plugin/internal/source/pruneCacheFileRoot.js +3 -2
  91. package/lib/plugin/internal/source/pruneCacheFileRoot.js.map +1 -1
  92. package/lib/plugin/internal/source/ttscPackageVersion.d.ts +26 -0
  93. package/lib/plugin/internal/source/ttscPackageVersion.js +47 -0
  94. package/lib/plugin/internal/source/ttscPackageVersion.js.map +1 -0
  95. package/lib/plugin/internal/writeCapabilityResolution.d.ts +6 -0
  96. package/lib/plugin/internal/writeCapabilityResolution.js +11 -7
  97. package/lib/plugin/internal/writeCapabilityResolution.js.map +1 -1
  98. package/lib/plugin/resolveCapabilityPlugins.js +67 -15
  99. package/lib/plugin/resolveCapabilityPlugins.js.map +1 -1
  100. package/package.json +8 -8
  101. package/src/compiler/internal/build/BuildExecution.ts +46 -13
  102. package/src/compiler/internal/startResidentTransform.ts +12 -3
  103. package/src/compiler/internal/transformProjectInMemory.ts +10 -2
  104. package/src/internal/javascriptRuntimeCapabilities.ts +71 -5
  105. package/src/internal/pluginSource.ts +1 -0
  106. package/src/internal/resolveNodeBinary.ts +12 -1
  107. package/src/internal/runtimeExecutableIdentity.ts +227 -141
  108. package/src/launcher/internal/runtime/installRuntimeHooks.ts +68 -3
  109. package/src/launcher/internal/ttscserver/captureLSPPluginSelectionInputs.ts +11 -2
  110. package/src/launcher/internal/ttscserver/runTtscserver.ts +18 -1
  111. package/src/plugin/internal/CapabilityResolutionFormat.ts +23 -107
  112. package/src/plugin/internal/load/PluginDescriptorEvaluationCache.ts +14 -4
  113. package/src/plugin/internal/load/loadProjectPlugins.ts +212 -94
  114. package/src/plugin/internal/readCapabilityResolution.ts +17 -6
  115. package/src/plugin/internal/source/GoEnvironmentReading.ts +74 -5
  116. package/src/plugin/internal/source/NativeSourcePackages.ts +262 -5
  117. package/src/plugin/internal/source/PluginBuildEnvironmentReadings.ts +41 -5
  118. package/src/plugin/internal/source/PluginContentIdentities.ts +563 -0
  119. package/src/plugin/internal/source/PluginLoadAnswers.ts +151 -0
  120. package/src/plugin/internal/source/SourceBuildCacheLayout.ts +14 -0
  121. package/src/plugin/internal/source/SourcePluginWorkspace.ts +6 -1
  122. package/src/plugin/internal/source/buildSourcePlugin.ts +43 -3
  123. package/src/plugin/internal/source/computeCacheKey.ts +103 -47
  124. package/src/plugin/internal/source/hashPluginBuildEnvironment.ts +144 -29
  125. package/src/plugin/internal/source/pluginBuildEnvironment.ts +9 -2
  126. package/src/plugin/internal/source/pluginBuildEnvironmentWorker.ts +18 -2
  127. package/src/plugin/internal/source/pluginBuildVersions.ts +5 -26
  128. package/src/plugin/internal/source/pluginSourceState.ts +28 -12
  129. package/src/plugin/internal/source/pluginSourceStateHolds.ts +15 -8
  130. package/src/plugin/internal/source/processPluginBuildEnvironment.ts +8 -2
  131. package/src/plugin/internal/source/provenPluginSourceDigest.ts +45 -0
  132. package/src/plugin/internal/source/pruneCacheFileRoot.ts +3 -2
  133. package/src/plugin/internal/source/ttscPackageVersion.ts +45 -0
  134. package/src/plugin/internal/writeCapabilityResolution.ts +29 -8
  135. package/src/plugin/resolveCapabilityPlugins.ts +87 -13
@@ -1,18 +1,21 @@
1
+ import type { PluginContentIdentities } from "./source/PluginContentIdentities";
1
2
  /**
2
3
  * The on-disk format of the capability-resolution cache, shared by its reader
3
- * and writer so both agree on the entry's location, version tag, and how a
4
- * plugin source's metadata signature is taken. What proves an entry still
5
- * describes the project is the host inputs' states and the plugin sources'
6
- * states, each by the rule its producer applies.
4
+ * and writer so both agree on the entry's location and version tag. What proves
5
+ * an entry still describes the project is the host inputs' states and the
6
+ * plugin sources' states, each by the rule its producer applies; a plugin
7
+ * source's metadata signature and the clock reference it is judged against
8
+ * belong to `PluginContentIdentities`, which every cross-process plugin proof
9
+ * shares.
7
10
  *
8
- * @evidence contracts/common.md#principled-implementation Reader and writer share format/key and source-metadata witness rules. Metadata acceleration requires a matching device and older reported mtime, relying on native metadata/clock semantics rather than certifying arbitrary timestamp restoration or content mutation.
9
- * @evidence contracts/common.md#clear-and-simple-design The namespace owns format identity and witness construction, while entry acceptance and answer production stay with their reader/writer.
10
- * @evidence contracts/common.md#prohibited-implementation-shortcuts Version tags and NUL delimiters encode the persistence contract; unavailable clock/device evidence causes full content proof rather than guessed reuse.
11
- * @evidence contracts/common.md#meaningful-documentation Native JSDoc explains format evolution, unforgeable path separation and clock proof premises in separate paragraphs; function/tag spacing follows the documentation skill.
12
- * @evidence contracts/portability.md#os-neutral-implementation Native path joins, cache-root resolution and bigint stat device identities preserve OS-neutral filesystem behavior; clock witnesses are matched per device rather than assumed from platform names.
13
- * @evidence contracts/performance.md#efficient-algorithms Key construction orders and serializes environment/name bytes, streams runtime content and delegates native ancestor/manifest/cache-layout selection. Clock witnesses create/query/remove a probe, and each source witness queries native metadata and formats numeric text; path/native/text costs remain distinct from source-content proof owned by the reader.
14
- * @evidence contracts/performance.md#reuse-equivalent-work Project/version keys share one answer across requested capabilities; digest reuse additionally requires matching signature and device-clock separation.
15
- * @evidence contracts/performance.md#bound-retention-and-release-resources Clock probes are call-owned and removed in finally; cache entries belong to the source-cache pruning owner rather than a process-global answer collection. Failed probe removal can leave a small file and is best effort.
11
+ * @evidence contracts/common.md#principled-implementation Reader and writer share format/key rules; source-metadata witnesses come from the shared identity owner, so this cache and the build path apply one separable-stamp rule.
12
+ * @evidence contracts/common.md#clear-and-simple-design The namespace owns format identity and entry location, while entry acceptance, answer production and metadata witnesses stay with their owners.
13
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts Version tags and NUL delimiters encode the persistence contract rather than guessed reuse.
14
+ * @evidence contracts/common.md#meaningful-documentation Native JSDoc explains format evolution, unforgeable path separation and the witness owner in separate paragraphs; function/tag spacing follows the documentation skill.
15
+ * @evidence contracts/portability.md#os-neutral-implementation Native path joins and cache-root resolution preserve OS-neutral filesystem behavior.
16
+ * @evidence contracts/performance.md#efficient-algorithms Key construction orders and serializes environment/name bytes, streams runtime content and delegates native ancestor/manifest/cache-layout selection.
17
+ * @evidence contracts/performance.md#reuse-equivalent-work Project/version keys share one answer across requested capabilities.
18
+ * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Cache entries belong to the source-cache pruning owner; this namespace retains nothing.
16
19
  */
17
20
  export declare namespace CapabilityResolutionFormat {
18
21
  /**
@@ -60,55 +63,11 @@ export declare namespace CapabilityResolutionFormat {
60
63
  tsconfig: string;
61
64
  /** Effective environment selecting workspace-local or explicit storage. */
62
65
  env?: NodeJS.ProcessEnv;
66
+ /**
67
+ * Record store of the project's plugin cache. WARNING (#1725): without it
68
+ * every lookup streamed the whole runtime executable, several times per
69
+ * capability resolution, in every process.
70
+ */
71
+ identities?: PluginContentIdentities.Store;
63
72
  }): string | null;
64
- /**
65
- * A clock reference for plugin source signatures, minted by a write of the
66
- * cache's own beside the entry: the modification stamp a fresh probe file got
67
- * there, by the device that reported it.
68
- *
69
- * A stamp strictly older than the same device's fresh reference satisfies
70
- * this cache's separation policy. Reuse still assumes the filesystem's
71
- * reported metadata reflects writes; the comparison cannot certify arbitrary
72
- * timestamp restoration or future clock behavior. The probe is the cache's
73
- * own file, named for this call, and removal is attempted at once, so
74
- * concurrent readers never lend each other a reference. A failed write, or a
75
- * plugin source on another device, leaves nothing separable, and the proof
76
- * reads the files.
77
- *
78
- * @param entry The entry file, whose directory the probe is written in.
79
- * @evidence contracts/common.md#principled-implementation A unique freshly-written file supplies its native device/mtime reference; acquisition failure clears the witness, and the source observer requires a matching device and strictly older reported stamp under the metadata policy.
80
- * @evidence contracts/common.md#clear-and-simple-design The function returns only device-to-stamp evidence and owns its transient probe from creation through cleanup.
81
- * @evidence contracts/common.md#prohibited-implementation-shortcuts Random probe identity avoids borrowing a concurrent call's witness; failed acquisition does not substitute wall-clock guesses for device evidence.
82
- * @evidence contracts/common.md#meaningful-documentation Native JSDoc explains ended ticks, cross-device refusal and probe lifetime in separate paragraphs; tag separation follows the documentation skill.
83
- * @evidence contracts/portability.md#os-neutral-implementation Native joins and bigint lstat use the actual filesystem's device/stamp values; no fixed timestamp precision or OS-specific temp path is assumed.
84
- * @evidence contracts/performance.md#efficient-algorithms Probe path/UUID/hrtime text construction and mkdir/write/lstat/removal queries produce a witness without reading plugin source bytes; native path/directory work remains and is not bounded by source count.
85
- *
86
- * @evidenceExclude contracts/performance.md#reuse-equivalent-work Each proof needs a fresh clock reference; sharing an earlier probe would defeat the rollback/separation premise.
87
- *
88
- * @evidence contracts/performance.md#bound-retention-and-release-resources The unique call-owned probe is removed in finally even after acquisition failure; removal is best effort and the returned map contains at most its single observed device.
89
- */
90
- function clockReference(entry: string): ReadonlyMap<bigint, bigint>;
91
- /**
92
- * One plugin source file's metadata signature, and whether its stamp is
93
- * separable from `reference`, for `pluginSourceFilesSignature`.
94
- *
95
- * The files the digest reads are regular files (`collectPluginSourceFiles`),
96
- * so these fields are the observer's metadata signature. Native metadata
97
- * reflecting a write/replacement is a reuse premise; the signature is not
98
- * itself a content hash or proof against arbitrary timestamp restoration.
99
- *
100
- * @param reference The clock reference minted for this proof.
101
- * @evidence contracts/common.md#principled-implementation lstat device/inode/link/mode/size/timestamps form the regular-file metadata signature; strict mtime-before-reference marks separation for a matching device under the cache's native metadata policy, without observing content.
102
- * @evidence contracts/common.md#clear-and-simple-design A closure carries one proof's device references and maps each requested file to signature/separation together.
103
- * @evidence contracts/common.md#prohibited-implementation-shortcuts Unreadable files return no witness, and unmatched device or same/newer stamps cannot authorize digest reuse.
104
- * @evidence contracts/common.md#meaningful-documentation Native JSDoc states the regular-file premise and reference origin, with separate acknowledgment prose following the documentation skill.
105
- * @evidence contracts/portability.md#os-neutral-implementation Metadata comes from native bigint lstat and actual device IDs; separators join numeric fields only and no host path is manually parsed.
106
- * @evidence contracts/performance.md#efficient-algorithms Each invocation performs native path/lstat work and formats seven bigint fields without reading content; fixed field count does not remove native lookup or numeric-text costs.
107
- * @evidence contracts/performance.md#reuse-equivalent-work The closure reuses one reference map across files in the same proof, while each file's current metadata is read anew.
108
- * @evidence contracts/performance.md#bound-retention-and-release-resources The closure retains the supplied reference map until its consumer releases it; clockReference supplies at most one entry, but arbitrary callers can supply larger or mutable maps. No file handle/global source population is retained and reference immutability is a caller premise.
109
- */
110
- function sourceEvidence(reference: ReadonlyMap<bigint, bigint>): (file: string) => {
111
- separable: boolean;
112
- signature: string;
113
- } | undefined;
114
73
  }
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CapabilityResolutionFormat = void 0;
7
7
  const node_crypto_1 = __importDefault(require("node:crypto"));
8
- const node_fs_1 = __importDefault(require("node:fs"));
9
8
  const node_path_1 = __importDefault(require("node:path"));
10
9
  const SidecarEnvironment_1 = require("../../compiler/internal/sharedHost/SidecarEnvironment");
11
10
  const runtimeExecutableIdentity_1 = require("../../internal/runtimeExecutableIdentity");
@@ -13,19 +12,21 @@ const SourceBuildCacheLayout_1 = require("./source/SourceBuildCacheLayout");
13
12
  const resolveSourceBuildCachePaths_1 = require("./source/resolveSourceBuildCachePaths");
14
13
  /**
15
14
  * The on-disk format of the capability-resolution cache, shared by its reader
16
- * and writer so both agree on the entry's location, version tag, and how a
17
- * plugin source's metadata signature is taken. What proves an entry still
18
- * describes the project is the host inputs' states and the plugin sources'
19
- * states, each by the rule its producer applies.
15
+ * and writer so both agree on the entry's location and version tag. What proves
16
+ * an entry still describes the project is the host inputs' states and the
17
+ * plugin sources' states, each by the rule its producer applies; a plugin
18
+ * source's metadata signature and the clock reference it is judged against
19
+ * belong to `PluginContentIdentities`, which every cross-process plugin proof
20
+ * shares.
20
21
  *
21
- * @evidence contracts/common.md#principled-implementation Reader and writer share format/key and source-metadata witness rules. Metadata acceleration requires a matching device and older reported mtime, relying on native metadata/clock semantics rather than certifying arbitrary timestamp restoration or content mutation.
22
- * @evidence contracts/common.md#clear-and-simple-design The namespace owns format identity and witness construction, while entry acceptance and answer production stay with their reader/writer.
23
- * @evidence contracts/common.md#prohibited-implementation-shortcuts Version tags and NUL delimiters encode the persistence contract; unavailable clock/device evidence causes full content proof rather than guessed reuse.
24
- * @evidence contracts/common.md#meaningful-documentation Native JSDoc explains format evolution, unforgeable path separation and clock proof premises in separate paragraphs; function/tag spacing follows the documentation skill.
25
- * @evidence contracts/portability.md#os-neutral-implementation Native path joins, cache-root resolution and bigint stat device identities preserve OS-neutral filesystem behavior; clock witnesses are matched per device rather than assumed from platform names.
26
- * @evidence contracts/performance.md#efficient-algorithms Key construction orders and serializes environment/name bytes, streams runtime content and delegates native ancestor/manifest/cache-layout selection. Clock witnesses create/query/remove a probe, and each source witness queries native metadata and formats numeric text; path/native/text costs remain distinct from source-content proof owned by the reader.
27
- * @evidence contracts/performance.md#reuse-equivalent-work Project/version keys share one answer across requested capabilities; digest reuse additionally requires matching signature and device-clock separation.
28
- * @evidence contracts/performance.md#bound-retention-and-release-resources Clock probes are call-owned and removed in finally; cache entries belong to the source-cache pruning owner rather than a process-global answer collection. Failed probe removal can leave a small file and is best effort.
22
+ * @evidence contracts/common.md#principled-implementation Reader and writer share format/key rules; source-metadata witnesses come from the shared identity owner, so this cache and the build path apply one separable-stamp rule.
23
+ * @evidence contracts/common.md#clear-and-simple-design The namespace owns format identity and entry location, while entry acceptance, answer production and metadata witnesses stay with their owners.
24
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts Version tags and NUL delimiters encode the persistence contract rather than guessed reuse.
25
+ * @evidence contracts/common.md#meaningful-documentation Native JSDoc explains format evolution, unforgeable path separation and the witness owner in separate paragraphs; function/tag spacing follows the documentation skill.
26
+ * @evidence contracts/portability.md#os-neutral-implementation Native path joins and cache-root resolution preserve OS-neutral filesystem behavior.
27
+ * @evidence contracts/performance.md#efficient-algorithms Key construction orders and serializes environment/name bytes, streams runtime content and delegates native ancestor/manifest/cache-layout selection.
28
+ * @evidence contracts/performance.md#reuse-equivalent-work Project/version keys share one answer across requested capabilities.
29
+ * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources Cache entries belong to the source-cache pruning owner; this namespace retains nothing.
29
30
  */
30
31
  var CapabilityResolutionFormat;
31
32
  (function (CapabilityResolutionFormat) {
@@ -109,7 +110,7 @@ var CapabilityResolutionFormat;
109
110
  let root;
110
111
  let runtimeIdentity;
111
112
  try {
112
- const observed = (0, runtimeExecutableIdentity_1.runtimeExecutableIdentity)(runtime);
113
+ const observed = (0, runtimeExecutableIdentity_1.runtimeExecutableIdentity)(runtime, options.identities);
113
114
  if (observed === undefined)
114
115
  return null;
115
116
  runtimeIdentity = observed;
@@ -133,97 +134,5 @@ var CapabilityResolutionFormat;
133
134
  return node_path_1.default.join(root, SourceBuildCacheLayout_1.SourceBuildCacheLayout.CAPABILITY_CACHE_DIRNAME, `${key}.json`);
134
135
  }
135
136
  CapabilityResolutionFormat.resolutionFile = resolutionFile;
136
- /**
137
- * A clock reference for plugin source signatures, minted by a write of the
138
- * cache's own beside the entry: the modification stamp a fresh probe file got
139
- * there, by the device that reported it.
140
- *
141
- * A stamp strictly older than the same device's fresh reference satisfies
142
- * this cache's separation policy. Reuse still assumes the filesystem's
143
- * reported metadata reflects writes; the comparison cannot certify arbitrary
144
- * timestamp restoration or future clock behavior. The probe is the cache's
145
- * own file, named for this call, and removal is attempted at once, so
146
- * concurrent readers never lend each other a reference. A failed write, or a
147
- * plugin source on another device, leaves nothing separable, and the proof
148
- * reads the files.
149
- *
150
- * @param entry The entry file, whose directory the probe is written in.
151
- * @evidence contracts/common.md#principled-implementation A unique freshly-written file supplies its native device/mtime reference; acquisition failure clears the witness, and the source observer requires a matching device and strictly older reported stamp under the metadata policy.
152
- * @evidence contracts/common.md#clear-and-simple-design The function returns only device-to-stamp evidence and owns its transient probe from creation through cleanup.
153
- * @evidence contracts/common.md#prohibited-implementation-shortcuts Random probe identity avoids borrowing a concurrent call's witness; failed acquisition does not substitute wall-clock guesses for device evidence.
154
- * @evidence contracts/common.md#meaningful-documentation Native JSDoc explains ended ticks, cross-device refusal and probe lifetime in separate paragraphs; tag separation follows the documentation skill.
155
- * @evidence contracts/portability.md#os-neutral-implementation Native joins and bigint lstat use the actual filesystem's device/stamp values; no fixed timestamp precision or OS-specific temp path is assumed.
156
- * @evidence contracts/performance.md#efficient-algorithms Probe path/UUID/hrtime text construction and mkdir/write/lstat/removal queries produce a witness without reading plugin source bytes; native path/directory work remains and is not bounded by source count.
157
- *
158
- * @evidenceExclude contracts/performance.md#reuse-equivalent-work Each proof needs a fresh clock reference; sharing an earlier probe would defeat the rollback/separation premise.
159
- *
160
- * @evidence contracts/performance.md#bound-retention-and-release-resources The unique call-owned probe is removed in finally even after acquisition failure; removal is best effort and the returned map contains at most its single observed device.
161
- */
162
- function clockReference(entry) {
163
- const references = new Map();
164
- const probe = node_path_1.default.join(node_path_1.default.dirname(entry), `clock-${process.pid}-${node_crypto_1.default.randomUUID()}.probe`);
165
- try {
166
- node_fs_1.default.mkdirSync(node_path_1.default.dirname(probe), { recursive: true });
167
- node_fs_1.default.writeFileSync(probe, `${process.hrtime.bigint()}\n`);
168
- const stats = node_fs_1.default.lstatSync(probe, { bigint: true });
169
- references.set(stats.dev, stats.mtimeNs);
170
- }
171
- catch {
172
- references.clear();
173
- }
174
- finally {
175
- try {
176
- node_fs_1.default.rmSync(probe, { force: true });
177
- }
178
- catch {
179
- // A leftover probe contains this call's hrtime text, not source data.
180
- }
181
- }
182
- return references;
183
- }
184
- CapabilityResolutionFormat.clockReference = clockReference;
185
- /**
186
- * One plugin source file's metadata signature, and whether its stamp is
187
- * separable from `reference`, for `pluginSourceFilesSignature`.
188
- *
189
- * The files the digest reads are regular files (`collectPluginSourceFiles`),
190
- * so these fields are the observer's metadata signature. Native metadata
191
- * reflecting a write/replacement is a reuse premise; the signature is not
192
- * itself a content hash or proof against arbitrary timestamp restoration.
193
- *
194
- * @param reference The clock reference minted for this proof.
195
- * @evidence contracts/common.md#principled-implementation lstat device/inode/link/mode/size/timestamps form the regular-file metadata signature; strict mtime-before-reference marks separation for a matching device under the cache's native metadata policy, without observing content.
196
- * @evidence contracts/common.md#clear-and-simple-design A closure carries one proof's device references and maps each requested file to signature/separation together.
197
- * @evidence contracts/common.md#prohibited-implementation-shortcuts Unreadable files return no witness, and unmatched device or same/newer stamps cannot authorize digest reuse.
198
- * @evidence contracts/common.md#meaningful-documentation Native JSDoc states the regular-file premise and reference origin, with separate acknowledgment prose following the documentation skill.
199
- * @evidence contracts/portability.md#os-neutral-implementation Metadata comes from native bigint lstat and actual device IDs; separators join numeric fields only and no host path is manually parsed.
200
- * @evidence contracts/performance.md#efficient-algorithms Each invocation performs native path/lstat work and formats seven bigint fields without reading content; fixed field count does not remove native lookup or numeric-text costs.
201
- * @evidence contracts/performance.md#reuse-equivalent-work The closure reuses one reference map across files in the same proof, while each file's current metadata is read anew.
202
- * @evidence contracts/performance.md#bound-retention-and-release-resources The closure retains the supplied reference map until its consumer releases it; clockReference supplies at most one entry, but arbitrary callers can supply larger or mutable maps. No file handle/global source population is retained and reference immutability is a caller premise.
203
- */
204
- function sourceEvidence(reference) {
205
- return (file) => {
206
- try {
207
- const stats = node_fs_1.default.lstatSync(file, { bigint: true });
208
- const minted = reference.get(stats.dev);
209
- return {
210
- separable: minted !== undefined && stats.mtimeNs < minted,
211
- signature: [
212
- stats.dev,
213
- stats.ino,
214
- stats.nlink,
215
- stats.mode,
216
- stats.size,
217
- stats.mtimeNs,
218
- stats.ctimeNs,
219
- ].join(":"),
220
- };
221
- }
222
- catch {
223
- return undefined;
224
- }
225
- };
226
- }
227
- CapabilityResolutionFormat.sourceEvidence = sourceEvidence;
228
137
  })(CapabilityResolutionFormat || (exports.CapabilityResolutionFormat = CapabilityResolutionFormat = {}));
229
138
  //# sourceMappingURL=CapabilityResolutionFormat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CapabilityResolutionFormat.js","sourceRoot":"","sources":["../../../src/plugin/internal/CapabilityResolutionFormat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CapabilityResolutionFormat.js","sourceRoot":"","sources":["../../../src/plugin/internal/CapabilityResolutionFormat.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AACjC,0DAA6B;AAE7B,8FAA2F;AAC3F,wFAAqF;AAErF,4EAAyE;AACzE,wFAAqF;AAErF;;;;;;;;;;;;;;;;;GAiBG;AACH,IAAiB,0BAA0B,CAwI1C;AAxID,WAAiB,0BAA0B;IACzC;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,MAAM,GAAG,+BAA+B,CAAC;IAE/C;;;;;;;;;;OAUG;IACH,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAEzC;;;;;;;;;;;;;;;OAeG;IACH,SAAgB,aAAa,CAAC,OAAe;QAC3C,OAAO,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;IAChC,CAAC;IAFe,2BAAA,aAAa,gBAE5B,CAAA;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAgB,cAAc,CAAC,OAgB9B;QACC,MAAM,WAAW,GAAG,uCAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;QACzE,MAAM,OAAO,GACX,uCAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;YACxD,OAAO,CAAC,QAAQ,CAAC;QACnB,IAAI,CAAC,mBAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3C,IAAI,IAAY,CAAC;QACjB,IAAI,eAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,qDAAyB,EAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACxE,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACxC,eAAe,GAAG,QAAQ,CAAC;YAC3B,IAAI,GAAG,IAAA,2DAA4B,EACjC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EACzB,SAAS,EACT,WAAW,CACZ,CAAC,IAAI,CAAC;QACT,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,qBAAM;aACf,UAAU,CAAC,QAAQ,CAAC;aACpB,MAAM,CAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aACjC,MAAM,CAAC,SAAS,CAAC;aACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;aACxB,MAAM,CAAC,SAAS,CAAC;aACjB,MAAM,CACL,IAAI,CAAC,SAAS,CACZ,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;aACxB,MAAM,CACL,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAC7D;aACA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CACxB,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzC,CACJ,CACF;aACA,MAAM,CAAC,SAAS,CAAC;aACjB,MAAM,CAAC,eAAe,CAAC;aACvB,MAAM,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,mBAAI,CAAC,IAAI,CACd,IAAI,EACJ,+CAAsB,CAAC,wBAAwB,EAC/C,GAAG,GAAG,OAAO,CACd,CAAC;IACJ,CAAC;IA7De,2BAAA,cAAc,iBA6D7B,CAAA;AACH,CAAC,EAxIgB,0BAA0B,aAA1B,0BAA0B,GAA1B,0BAA0B,QAwI1C"}
@@ -1,3 +1,4 @@
1
+ import type { PluginContentIdentities } from "../source/PluginContentIdentities";
1
2
  /**
2
3
  * The persistent answers of isolated CommonJS descriptor evaluations, each
3
4
  * recorded with the state it was computed from.
@@ -102,6 +103,11 @@ export declare namespace PluginDescriptorEvaluationCache {
102
103
  runtime: string;
103
104
  /** Ttsc build version, invalidating answers from another build. */
104
105
  version: string;
106
+ /**
107
+ * Record store proving the runtimes' bytes from metadata (#1723); without
108
+ * it each runtime is streamed again.
109
+ */
110
+ identities?: PluginContentIdentities.Store;
105
111
  }): string | null;
106
112
  /**
107
113
  * The recorded answer when its validated content/realpath projections match
@@ -81,14 +81,14 @@ var PluginDescriptorEvaluationCache;
81
81
  // it never sees; a stable option string cannot prove their current meaning.
82
82
  if (SidecarEnvironment_1.SidecarEnvironment.read(environment, "NODE_OPTIONS")?.trim())
83
83
  return null;
84
- const runtime = runtimeIdentity(props.runtime);
84
+ const runtime = runtimeIdentity(props.runtime, props.identities);
85
85
  if (runtime === null)
86
86
  return null;
87
87
  const additionalRuntime = props.additionalRuntime === undefined
88
88
  ? undefined
89
89
  : props.additionalRuntime === props.runtime
90
90
  ? runtime
91
- : runtimeIdentity(props.additionalRuntime);
91
+ : runtimeIdentity(props.additionalRuntime, props.identities);
92
92
  if (additionalRuntime === null)
93
93
  return null;
94
94
  let root;
@@ -257,8 +257,8 @@ var PluginDescriptorEvaluationCache;
257
257
  * content digest and bracketed lexical/physical metadata, so replaced bytes
258
258
  * cannot reuse an evaluation by restoring size/timestamps. Null is unproved.
259
259
  */
260
- function runtimeIdentity(runtime) {
261
- return (0, runtimeExecutableIdentity_1.runtimeExecutableIdentity)(runtime) ?? null;
260
+ function runtimeIdentity(runtime, identities) {
261
+ return (0, runtimeExecutableIdentity_1.runtimeExecutableIdentity)(runtime, identities) ?? null;
262
262
  }
263
263
  /**
264
264
  * The fingerprints a descriptor declared for the files it read itself
@@ -1 +1 @@
1
- {"version":3,"file":"PluginDescriptorEvaluationCache.js","sourceRoot":"","sources":["../../../../src/plugin/internal/load/PluginDescriptorEvaluationCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginDescriptorEvaluationCache.js","sourceRoot":"","sources":["../../../../src/plugin/internal/load/PluginDescriptorEvaluationCache.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AACjC,sDAAyB;AACzB,0DAA6B;AAE7B,iGAA8F;AAC9F,2FAAwF;AAExF,6EAA0E;AAC1E,qEAAkE;AAClE,yFAAsF;AACtF,qEAAkE;AAClE,6DAA0D;AAC1D,qEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,IAAiB,+BAA+B,CAyY/C;AAzYD,WAAiB,+BAA+B;IAkC9C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SAAgB,MAAM,CAAC,KA8BtB;QACC,MAAM,WAAW,GAAG,uCAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,0EAA0E;QAC1E,4EAA4E;QAC5E,IAAI,uCAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE;YAC9D,OAAO,IAAI,CAAC;QACd,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,iBAAiB,GACrB,KAAK,CAAC,iBAAiB,KAAK,SAAS;YACnC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,OAAO;gBACzC,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,iBAAiB,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5C,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,IAAA,2DAA4B,EACjC,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,QAAQ,EACd,WAAW,CACZ,CAAC,IAAI,CAAC;QACT,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,qBAAM;aACf,UAAU,CAAC,QAAQ,CAAC;aACpB,MAAM,CACL,IAAI,CAAC,SAAS,CAAC;YACb,MAAM;YACN,KAAK,CAAC,OAAO;YACb,mBAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC3B,KAAK,CAAC,OAAO;YACb,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;iBACxB,MAAM,CACL,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAC7D;iBACA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CACxB,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzC;YACH,OAAO;YACP,iBAAiB;SAClB,CAAC,CACH;aACA,MAAM,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,mBAAI,CAAC,IAAI,CACd,IAAI,EACJ,+CAAsB,CAAC,wBAAwB,EAC/C,GAAG,GAAG,OAAO,CACd,CAAC;IACJ,CAAC;IAhFe,gCAAA,MAAM,SAgFrB,CAAA;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAgB,IAAI,CAAC,IAAY;QAC/B,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,IACE,MAAM,CAAC,MAAM,KAAK,CAAC;YACnB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAA,uCAAkB,EAAC,MAAM,CAAC,CAAC;YACxD,CAAC,OAAO,CACN,KAAK,CAAC,KAAK,CAAC,SAAS,EACrB,IAAA,+CAAsB,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAC3D;YAED,OAAO,IAAI,CAAC;QACd,IAAA,uCAAkB,EAAC,IAAI,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1B,CAAC;IApBe,gCAAA,IAAI,OAoBnB,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,SAAgB,KAAK,CACnB,IAAY,EACZ,UAAuB,EACvB,oBAA6B;QAE7B,IACE,UAAU,CAAC,oBAAoB,KAAK,IAAI;YACxC,CAAC,IAAA,+CAAsB,EAAC,UAAU,CAAC,UAAU,CAAC;YAE9C,OAAO;QACT,MAAM,MAAM,GAAkC,EAAE,CAAC;QACjD,MAAM,SAAS,GAAkC,EAAE,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,IAAI,GAAG,CACzB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CACtD,EAAE,CAAC;YACF,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CACnC,UAAU,CAAC,eAAe,EAC1B,KAAK,CACN;gBACD,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CACnC,UAAU,CAAC,kBAAkB,EAC7B,KAAK,CACN;gBAED,OAAO;YACT,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,KAAK,CAAE,CAAC;YACnD,SAAS,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAE,CAAC;QAC3D,CAAC;QACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO;QAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,IACE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;gBAEtB,OAAO;YACT,mEAAmE;YACnE,yEAAyE;YACzE,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC7C,MAAM,KAAK,GAAW;YACpB,UAAU;YACV,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;SAC7B,CAAC;QACF,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,IACE,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAClB,mBAAI,CAAC,IAAI,CACP,oBAAoB,EACpB,+CAAsB,CAAC,wBAAwB,CAChD;gBAED,OAAO;YACT,IAAI,CAAC;gBACH,MAAM,YAAY,GAChB,+CAAsB,CAAC,6BAA6B,CAClD,oBAAoB,CACrB,CAAC;gBACJ,MAAM,GAAG,mBAAI,CAAC,IAAI,CAChB,YAAY,EACZ,+CAAsB,CAAC,wBAAwB,EAC/C,mBAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CACpB,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,qBAAM,CAAC,UAAU,EAAE,MAAM,CAAC;QACtE,IAAI,CAAC;YACH,iBAAE,CAAC,SAAS,CAAC,mBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,yEAAyE;YACzE,+BAA+B;YAC/B,iBAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;YACzD,iBAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;QACtE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,iBAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAvFe,gCAAA,KAAK,QAuFpB,CAAA;IAED;;;OAGG;IACH,yEAAyE;IACzE,+EAA+E;IAC/E,MAAM,MAAM,GAAG,+BAA+B,CAAC;IAW/C;;;;OAIG;IACH,SAAS,eAAe,CACtB,OAAe,EACf,UAAqD;QAErD,OAAO,IAAA,qDAAyB,EAAC,OAAO,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACH,SAAS,oBAAoB,CAC3B,UAAmB;QAEnB,MAAM,QAAQ,GAAI,UAA4C;aAC3D,eAAe,CAAC;QACnB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACnE,MAAM,MAAM,GAAkC,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,mBAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC;gBACvE,OAAO,IAAI,CAAC;YACd,MAAM,CAAC,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,OAAO,CAAC,KAAc;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC9D,MAAM,KAAK,GAAG,KAAwB,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,UAA8C,CAAC;QACxE,OAAO,CACL,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAChC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAC/B,KAAK,CAAC,KAAK,KAAK,IAAI;YACpB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9B,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;YACjC,OAAO,UAAU,KAAK,QAAQ;YAC9B,UAAU,KAAK,IAAI;YACnB,UAAU,CAAC,oBAAoB,KAAK,IAAI;YACxC,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC;YACtC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC;YACzC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YAChC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAC9D,CAAC;IACJ,CAAC;IAED,SAAS,UAAU,CAAC,KAAc;QAChC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CACxB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CACvD,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS,OAAO,CACd,QAAuC,EACvC,OAAsC;QAEtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CACf,CAAC,GAAG,EAAE,EAAE,CACN,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;YAClD,QAAQ,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CACjC,CAAC;IACJ,CAAC;AACH,CAAC,EAzYgB,+BAA+B,aAA/B,+BAA+B,GAA/B,+BAA+B,QAyY/C"}
@@ -1,6 +1,7 @@
1
1
  import type { ITtscProjectPluginConfig } from "../../../structures/ITtscProjectPluginConfig";
2
2
  import type { ITtscLoadedNativePlugin } from "../../../structures/internal/ITtscLoadedNativePlugin";
3
3
  import type { ITtscParsedProjectConfig } from "../../../structures/internal/ITtscParsedProjectConfig";
4
+ import { PluginContentIdentities } from "../source/PluginContentIdentities";
4
5
  /**
5
6
  * Resolve, load, and build all native plugin sidecars for a TypeScript project.
6
7
  *
@@ -50,7 +51,7 @@ import type { ITtscParsedProjectConfig } from "../../../structures/internal/ITts
50
51
  * @evidence contracts/common.md#meaningful-documentation Native JSDoc explains result provenance, environment and path options; helper comments explain input races, conservative proof omission, fallback authority and cleanup. Member/tag spacing and separated concepts follow the documentation skill.
51
52
  * @evidence contracts/portability.md#os-neutral-implementation Native path/file-URL conversion, createRequire and hidden spawn with explicit argv/environment implement OS-neutral selection and process execution. Physical identities are preserved separately from lexical candidates; Bun-specific differences are capability decisions, not OS guesses.
52
53
  * @evidence contracts/performance.md#efficient-algorithms Input merging and conflicts use Sets/maps and sorted path populations, with path/key/value byte costs. Discovery can repeat config/manifest/candidate reads and full hashes; descriptor work includes runtime probes, full observation/JSON processing and possibly synchronous evaluation. Watch-only preliminary publication can temporarily digest/watch the full admitted module as well as its package before kind is known; callbacks delegate topology reconciliation. Load-local replacement readings serve preliminary and final publication. Package selection groups equivalent module contexts and batches entries through Go list without dependency compilation; per-load selected-tool manifest readers share overlay readings. Builds delegate source/environment hashing, copying, cold materialized ownership admission and Go execution; per-load digest maps share selected work. Composition can be quadratic in configured plugins/aliases, and native lookup/file/output bytes are not bounded by plugin count alone.
53
- * @evidence contracts/performance.md#reuse-equivalent-work Descriptor hits require the cache's context/environment/runtime/version identity and matching recorded projections, subject to producer declarations and sequential-observation limits. Per-load source/environment maps share directory-keyed digests and one selected transform host serves linked contributors; these identities do not certify every undeclared read or atomic filesystem stability.
54
+ * @evidence contracts/performance.md#reuse-equivalent-work Descriptor hits require the cache's context/environment/runtime/version identity and matching recorded projections, subject to producer declarations and sequential-observation limits. Per-load source/environment maps share directory-keyed digests between package selection and builds, and one selected transform host serves linked contributors. Across processes, the record store opened here proves unchanged sources, toolchain and runtime from separable metadata and answers equal package selections and runtime probes (#1721, #1722, #1723); a store whose root lies inside a plugin source is withdrawn before any source is proven. These identities do not certify every undeclared read or atomic filesystem stability.
54
55
  * @evidence contracts/performance.md#bound-retention-and-release-resources Finally restores injected environment locators, attempts evaluator directory removal and closes direct-evaluator diagnostic descriptors. Close/removal can fail; synchronous completion concerns the selected evaluator and does not certify arbitrary descendants are gone. Generation maps/results scale with observed data, and disk diagnostics/result/observation files have no independent byte ceiling here. Default disk pruning has its own interval/protection/failure policy; explicit roots remain caller-owned.
55
56
  */
56
57
  export declare function loadProjectPlugins(options: {
@@ -66,6 +67,11 @@ export declare function loadProjectPlugins(options: {
66
67
  env?: NodeJS.ProcessEnv;
67
68
  /** Explicit project config, resolved from cwd. */
68
69
  file?: string;
70
+ /**
71
+ * Record store the caller already opened for this invocation, so its later
72
+ * native spawns share it; the loader opens its own when omitted.
73
+ */
74
+ identities?: PluginContentIdentities.Store;
69
75
  /** Observe plugin build roots before building, including failed builds. */
70
76
  onWatchInputs?: (inputs: readonly string[]) => void;
71
77
  /** Caller-selected anchor for plugin-owned configuration discovery. */
@@ -103,6 +109,11 @@ export declare function loadProjectPlugins(options: {
103
109
  * mutation witnesses; omission makes no positive completeness claim.
104
110
  */
105
111
  observationsComplete?: false;
112
+ /**
113
+ * Record store this load proved its inputs through, for the invocation's
114
+ * later native spawns (#1723); absent when the project loads no plugin.
115
+ */
116
+ identities?: PluginContentIdentities.Store;
106
117
  /** Check-stage entries followed by transform-stage entries in stable order. */
107
118
  nativePlugins: ITtscLoadedNativePlugin[];
108
119
  /** Plugin-provided Go directory states that the actual builds were keyed on. */