@ttsc/unplugin 0.31.0 → 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 (291) hide show
  1. package/lib/core/bridge/projectRecordMoved.js +1 -1
  2. package/lib/core/bridge/projectRecordMoved.js.map +1 -1
  3. package/lib/core/bridge/projectRecordMoved.mjs +1 -1
  4. package/lib/core/bridge/projectRecordMoved.mjs.map +1 -1
  5. package/lib/core/bun/bun.d.cts +3 -2
  6. package/lib/core/bun/bun.d.mts +3 -2
  7. package/lib/core/bun/bun.d.ts +3 -2
  8. package/lib/core/bun/bun.js +8 -4
  9. package/lib/core/bun/bun.js.map +1 -1
  10. package/lib/core/bun/bun.mjs +8 -4
  11. package/lib/core/bun/bun.mjs.map +1 -1
  12. package/lib/core/observer/createInputObserver.js +7 -6
  13. package/lib/core/observer/createInputObserver.js.map +1 -1
  14. package/lib/core/observer/createInputObserver.mjs +7 -6
  15. package/lib/core/observer/createInputObserver.mjs.map +1 -1
  16. package/lib/core/observer/openIsolatedRecursiveWatch.d.cts +11 -12
  17. package/lib/core/observer/openIsolatedRecursiveWatch.d.mts +11 -12
  18. package/lib/core/observer/openIsolatedRecursiveWatch.d.ts +11 -12
  19. package/lib/core/observer/openIsolatedRecursiveWatch.js +11 -12
  20. package/lib/core/observer/openIsolatedRecursiveWatch.js.map +1 -1
  21. package/lib/core/observer/openIsolatedRecursiveWatch.mjs +11 -12
  22. package/lib/core/observer/openIsolatedRecursiveWatch.mjs.map +1 -1
  23. package/lib/core/transform/cache/TtscCachedProjectTransform.d.cts +12 -3
  24. package/lib/core/transform/cache/TtscCachedProjectTransform.d.mts +12 -3
  25. package/lib/core/transform/cache/TtscCachedProjectTransform.d.ts +12 -3
  26. package/lib/core/transform/cache/selectCachedGenerationAction.d.cts +2 -0
  27. package/lib/core/transform/cache/selectCachedGenerationAction.d.mts +2 -0
  28. package/lib/core/transform/cache/selectCachedGenerationAction.d.ts +2 -0
  29. package/lib/core/transform/cache/selectCachedGenerationAction.js +1 -1
  30. package/lib/core/transform/cache/selectCachedGenerationAction.js.map +1 -1
  31. package/lib/core/transform/cache/selectCachedGenerationAction.mjs +1 -1
  32. package/lib/core/transform/cache/selectCachedGenerationAction.mjs.map +1 -1
  33. package/lib/core/transform/deliverCachedTransform.d.cts +36 -0
  34. package/lib/core/transform/deliverCachedTransform.d.mts +36 -0
  35. package/lib/core/transform/deliverCachedTransform.d.ts +36 -0
  36. package/lib/core/transform/deliverCachedTransform.js +73 -0
  37. package/lib/core/transform/deliverCachedTransform.js.map +1 -0
  38. package/lib/core/transform/deliverCachedTransform.mjs +71 -0
  39. package/lib/core/transform/deliverCachedTransform.mjs.map +1 -0
  40. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.cts +2 -2
  41. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.mts +2 -2
  42. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.ts +2 -2
  43. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.js +6 -2
  44. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.js.map +1 -1
  45. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.mjs +6 -2
  46. package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.mjs.map +1 -1
  47. package/lib/core/transform/envelope/selectExternalInputPaths.d.cts +3 -5
  48. package/lib/core/transform/envelope/selectExternalInputPaths.d.mts +3 -5
  49. package/lib/core/transform/envelope/selectExternalInputPaths.d.ts +3 -5
  50. package/lib/core/transform/envelope/selectExternalInputPaths.js +8 -7
  51. package/lib/core/transform/envelope/selectExternalInputPaths.js.map +1 -1
  52. package/lib/core/transform/envelope/selectExternalInputPaths.mjs +8 -7
  53. package/lib/core/transform/envelope/selectExternalInputPaths.mjs.map +1 -1
  54. package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.cts +15 -12
  55. package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.mts +15 -12
  56. package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.ts +15 -12
  57. package/lib/core/transform/generation/captureFailedGenerationInputStates.js +1 -1
  58. package/lib/core/transform/generation/captureFailedGenerationInputStates.js.map +1 -1
  59. package/lib/core/transform/generation/captureFailedGenerationInputStates.mjs +1 -1
  60. package/lib/core/transform/generation/captureFailedGenerationInputStates.mjs.map +1 -1
  61. package/lib/core/transform/generation/captureTransformGeneration.js +1 -1
  62. package/lib/core/transform/generation/captureTransformGeneration.js.map +1 -1
  63. package/lib/core/transform/generation/captureTransformGeneration.mjs +1 -1
  64. package/lib/core/transform/generation/captureTransformGeneration.mjs.map +1 -1
  65. package/lib/core/transform/generation/failedGenerationEnvironmentChanged.js +2 -2
  66. package/lib/core/transform/generation/failedGenerationEnvironmentChanged.js.map +1 -1
  67. package/lib/core/transform/generation/failedGenerationEnvironmentChanged.mjs +2 -2
  68. package/lib/core/transform/generation/failedGenerationEnvironmentChanged.mjs.map +1 -1
  69. package/lib/core/transform/generation/selectTransformAttemptDisposition.d.cts +3 -1
  70. package/lib/core/transform/generation/selectTransformAttemptDisposition.d.mts +3 -1
  71. package/lib/core/transform/generation/selectTransformAttemptDisposition.d.ts +3 -1
  72. package/lib/core/transform/generation/selectTransformAttemptDisposition.js +3 -1
  73. package/lib/core/transform/generation/selectTransformAttemptDisposition.js.map +1 -1
  74. package/lib/core/transform/generation/selectTransformAttemptDisposition.mjs +3 -1
  75. package/lib/core/transform/generation/selectTransformAttemptDisposition.mjs.map +1 -1
  76. package/lib/core/transform/generation/transformProject.d.cts +9 -7
  77. package/lib/core/transform/generation/transformProject.d.mts +9 -7
  78. package/lib/core/transform/generation/transformProject.d.ts +9 -7
  79. package/lib/core/transform/generation/transformProject.js +14 -9
  80. package/lib/core/transform/generation/transformProject.js.map +1 -1
  81. package/lib/core/transform/generation/transformProject.mjs +14 -9
  82. package/lib/core/transform/generation/transformProject.mjs.map +1 -1
  83. package/lib/core/transform/inputs/pluginSourceFilesDigest.d.cts +9 -3
  84. package/lib/core/transform/inputs/pluginSourceFilesDigest.d.mts +9 -3
  85. package/lib/core/transform/inputs/pluginSourceFilesDigest.d.ts +9 -3
  86. package/lib/core/transform/inputs/pluginSourceFilesDigest.js +10 -4
  87. package/lib/core/transform/inputs/pluginSourceFilesDigest.js.map +1 -1
  88. package/lib/core/transform/inputs/pluginSourceFilesDigest.mjs +11 -5
  89. package/lib/core/transform/inputs/pluginSourceFilesDigest.mjs.map +1 -1
  90. package/lib/core/transform/inputs/pluginSourceHolds.d.cts +4 -2
  91. package/lib/core/transform/inputs/pluginSourceHolds.d.mts +4 -2
  92. package/lib/core/transform/inputs/pluginSourceHolds.d.ts +4 -2
  93. package/lib/core/transform/inputs/pluginSourceHolds.js +9 -4
  94. package/lib/core/transform/inputs/pluginSourceHolds.js.map +1 -1
  95. package/lib/core/transform/inputs/pluginSourceHolds.mjs +9 -4
  96. package/lib/core/transform/inputs/pluginSourceHolds.mjs.map +1 -1
  97. package/lib/core/transform/inputs/pluginSourceState.d.cts +3 -1
  98. package/lib/core/transform/inputs/pluginSourceState.d.mts +3 -1
  99. package/lib/core/transform/inputs/pluginSourceState.d.ts +3 -1
  100. package/lib/core/transform/inputs/pluginSourceState.js +8 -3
  101. package/lib/core/transform/inputs/pluginSourceState.js.map +1 -1
  102. package/lib/core/transform/inputs/pluginSourceState.mjs +8 -3
  103. package/lib/core/transform/inputs/pluginSourceState.mjs.map +1 -1
  104. package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.cts +18 -5
  105. package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.mts +18 -5
  106. package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.ts +18 -5
  107. package/lib/core/transform/inputs/preparePluginBuildEnvironments.js +53 -12
  108. package/lib/core/transform/inputs/preparePluginBuildEnvironments.js.map +1 -1
  109. package/lib/core/transform/inputs/preparePluginBuildEnvironments.mjs +53 -12
  110. package/lib/core/transform/inputs/preparePluginBuildEnvironments.mjs.map +1 -1
  111. package/lib/core/transform/tracker/broker/WatchBroker.d.cts +14 -4
  112. package/lib/core/transform/tracker/broker/WatchBroker.d.mts +14 -4
  113. package/lib/core/transform/tracker/broker/WatchBroker.d.ts +14 -4
  114. package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.cts +63 -0
  115. package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.mts +63 -0
  116. package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.ts +63 -0
  117. package/lib/core/transform/tracker/broker/WatchBrokerTransport.js +89 -0
  118. package/lib/core/transform/tracker/broker/WatchBrokerTransport.js.map +1 -0
  119. package/lib/core/transform/tracker/broker/WatchBrokerTransport.mjs +89 -0
  120. package/lib/core/transform/tracker/broker/WatchBrokerTransport.mjs.map +1 -0
  121. package/lib/core/transform/tracker/broker/drainWatchBroker.d.cts +8 -8
  122. package/lib/core/transform/tracker/broker/drainWatchBroker.d.mts +8 -8
  123. package/lib/core/transform/tracker/broker/drainWatchBroker.d.ts +8 -8
  124. package/lib/core/transform/tracker/broker/drainWatchBroker.js +12 -13
  125. package/lib/core/transform/tracker/broker/drainWatchBroker.js.map +1 -1
  126. package/lib/core/transform/tracker/broker/drainWatchBroker.mjs +12 -13
  127. package/lib/core/transform/tracker/broker/drainWatchBroker.mjs.map +1 -1
  128. package/lib/core/transform/tracker/broker/getWatchBroker.d.cts +18 -15
  129. package/lib/core/transform/tracker/broker/getWatchBroker.d.mts +18 -15
  130. package/lib/core/transform/tracker/broker/getWatchBroker.d.ts +18 -15
  131. package/lib/core/transform/tracker/broker/getWatchBroker.js +87 -17
  132. package/lib/core/transform/tracker/broker/getWatchBroker.js.map +1 -1
  133. package/lib/core/transform/tracker/broker/getWatchBroker.mjs +87 -17
  134. package/lib/core/transform/tracker/broker/getWatchBroker.mjs.map +1 -1
  135. package/lib/core/transform/tracker/broker/openBrokeredWatch.d.cts +5 -5
  136. package/lib/core/transform/tracker/broker/openBrokeredWatch.d.mts +5 -5
  137. package/lib/core/transform/tracker/broker/openBrokeredWatch.d.ts +5 -5
  138. package/lib/core/transform/tracker/broker/openBrokeredWatch.js +11 -14
  139. package/lib/core/transform/tracker/broker/openBrokeredWatch.js.map +1 -1
  140. package/lib/core/transform/tracker/broker/openBrokeredWatch.mjs +11 -14
  141. package/lib/core/transform/tracker/broker/openBrokeredWatch.mjs.map +1 -1
  142. package/lib/core/transform/tracker/broker/usesWatchBroker.d.cts +7 -7
  143. package/lib/core/transform/tracker/broker/usesWatchBroker.d.mts +7 -7
  144. package/lib/core/transform/tracker/broker/usesWatchBroker.d.ts +7 -7
  145. package/lib/core/transform/tracker/broker/usesWatchBroker.js +7 -7
  146. package/lib/core/transform/tracker/broker/usesWatchBroker.mjs +7 -7
  147. package/lib/core/transform/tracker/broker/watchBrokerSource.d.cts +9 -10
  148. package/lib/core/transform/tracker/broker/watchBrokerSource.d.mts +9 -10
  149. package/lib/core/transform/tracker/broker/watchBrokerSource.d.ts +9 -10
  150. package/lib/core/transform/tracker/broker/watchBrokerSource.js +10 -11
  151. package/lib/core/transform/tracker/broker/watchBrokerSource.js.map +1 -1
  152. package/lib/core/transform/tracker/broker/watchBrokerSource.mjs +10 -11
  153. package/lib/core/transform/tracker/broker/watchBrokerSource.mjs.map +1 -1
  154. package/lib/core/transform/transformTtsc.d.cts +7 -4
  155. package/lib/core/transform/transformTtsc.d.mts +7 -4
  156. package/lib/core/transform/transformTtsc.d.ts +7 -4
  157. package/lib/core/transform/transformTtsc.js +38 -93
  158. package/lib/core/transform/transformTtsc.js.map +1 -1
  159. package/lib/core/transform/transformTtsc.mjs +38 -93
  160. package/lib/core/transform/transformTtsc.mjs.map +1 -1
  161. package/lib/core/transform/validation/TtscGenerationProof.d.cts +105 -0
  162. package/lib/core/transform/validation/TtscGenerationProof.d.mts +105 -0
  163. package/lib/core/transform/validation/TtscGenerationProof.d.ts +105 -0
  164. package/lib/core/transform/validation/TtscGenerationProof.js +149 -0
  165. package/lib/core/transform/validation/TtscGenerationProof.js.map +1 -0
  166. package/lib/core/transform/validation/TtscGenerationProof.mjs +149 -0
  167. package/lib/core/transform/validation/TtscGenerationProof.mjs.map +1 -0
  168. package/lib/core/transform/validation/captureUniversalHostInputValidation.js +2 -2
  169. package/lib/core/transform/validation/captureUniversalHostInputValidation.js.map +1 -1
  170. package/lib/core/transform/validation/captureUniversalHostInputValidation.mjs +2 -2
  171. package/lib/core/transform/validation/captureUniversalHostInputValidation.mjs.map +1 -1
  172. package/lib/core/transform/validation/matchesCachedSource.d.cts +18 -15
  173. package/lib/core/transform/validation/matchesCachedSource.d.mts +18 -15
  174. package/lib/core/transform/validation/matchesCachedSource.d.ts +18 -15
  175. package/lib/core/transform/validation/matchesCachedSource.js +28 -22
  176. package/lib/core/transform/validation/matchesCachedSource.js.map +1 -1
  177. package/lib/core/transform/validation/matchesCachedSource.mjs +28 -22
  178. package/lib/core/transform/validation/matchesCachedSource.mjs.map +1 -1
  179. package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.cts +3 -2
  180. package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.mts +3 -2
  181. package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.ts +3 -2
  182. package/lib/core/transform/validation/matchesCompleteInputSnapshot.js +4 -4
  183. package/lib/core/transform/validation/matchesCompleteInputSnapshot.js.map +1 -1
  184. package/lib/core/transform/validation/matchesCompleteInputSnapshot.mjs +4 -4
  185. package/lib/core/transform/validation/matchesCompleteInputSnapshot.mjs.map +1 -1
  186. package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.cts +2 -1
  187. package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.mts +2 -1
  188. package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.ts +2 -1
  189. package/lib/core/transform/validation/matchesNarrowPersistentInputs.js +2 -2
  190. package/lib/core/transform/validation/matchesNarrowPersistentInputs.js.map +1 -1
  191. package/lib/core/transform/validation/matchesNarrowPersistentInputs.mjs +2 -2
  192. package/lib/core/transform/validation/matchesNarrowPersistentInputs.mjs.map +1 -1
  193. package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.cts +3 -2
  194. package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.mts +3 -2
  195. package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.ts +3 -2
  196. package/lib/core/transform/validation/matchesUniversalHostInputTrees.js +7 -5
  197. package/lib/core/transform/validation/matchesUniversalHostInputTrees.js.map +1 -1
  198. package/lib/core/transform/validation/matchesUniversalHostInputTrees.mjs +7 -5
  199. package/lib/core/transform/validation/matchesUniversalHostInputTrees.mjs.map +1 -1
  200. package/lib/core/transform/validation/matchesUniversalHostInputs.d.cts +3 -2
  201. package/lib/core/transform/validation/matchesUniversalHostInputs.d.mts +3 -2
  202. package/lib/core/transform/validation/matchesUniversalHostInputs.d.ts +3 -2
  203. package/lib/core/transform/validation/matchesUniversalHostInputs.js +5 -5
  204. package/lib/core/transform/validation/matchesUniversalHostInputs.js.map +1 -1
  205. package/lib/core/transform/validation/matchesUniversalHostInputs.mjs +5 -5
  206. package/lib/core/transform/validation/matchesUniversalHostInputs.mjs.map +1 -1
  207. package/lib/core/transform/validation/nativeInputPredicatesHold.d.cts +5 -4
  208. package/lib/core/transform/validation/nativeInputPredicatesHold.d.mts +5 -4
  209. package/lib/core/transform/validation/nativeInputPredicatesHold.d.ts +5 -4
  210. package/lib/core/transform/validation/nativeInputPredicatesHold.js +31 -12
  211. package/lib/core/transform/validation/nativeInputPredicatesHold.js.map +1 -1
  212. package/lib/core/transform/validation/nativeInputPredicatesHold.mjs +31 -12
  213. package/lib/core/transform/validation/nativeInputPredicatesHold.mjs.map +1 -1
  214. package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.cts +2 -1
  215. package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.mts +2 -1
  216. package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.ts +2 -1
  217. package/lib/core/transform/validation/notificationsProveProgramUnchanged.js +2 -2
  218. package/lib/core/transform/validation/notificationsProveProgramUnchanged.js.map +1 -1
  219. package/lib/core/transform/validation/notificationsProveProgramUnchanged.mjs +2 -2
  220. package/lib/core/transform/validation/notificationsProveProgramUnchanged.mjs.map +1 -1
  221. package/lib/core/transform/watch/captureWatchInputBaseline.d.cts +4 -0
  222. package/lib/core/transform/watch/captureWatchInputBaseline.d.mts +4 -0
  223. package/lib/core/transform/watch/captureWatchInputBaseline.d.ts +4 -0
  224. package/lib/core/transform/watch/captureWatchInputBaseline.js +3 -0
  225. package/lib/core/transform/watch/captureWatchInputBaseline.js.map +1 -1
  226. package/lib/core/transform/watch/captureWatchInputBaseline.mjs +3 -0
  227. package/lib/core/transform/watch/captureWatchInputBaseline.mjs.map +1 -1
  228. package/lib/core/transform/watch/captureWatchInputBaselines.d.cts +2 -0
  229. package/lib/core/transform/watch/captureWatchInputBaselines.d.mts +2 -0
  230. package/lib/core/transform/watch/captureWatchInputBaselines.d.ts +2 -0
  231. package/lib/core/transform/watch/captureWatchInputBaselines.js +3 -1
  232. package/lib/core/transform/watch/captureWatchInputBaselines.js.map +1 -1
  233. package/lib/core/transform/watch/captureWatchInputBaselines.mjs +3 -1
  234. package/lib/core/transform/watch/captureWatchInputBaselines.mjs.map +1 -1
  235. package/lib/core/transform/watch/notifyWatchInputs.js +3 -0
  236. package/lib/core/transform/watch/notifyWatchInputs.js.map +1 -1
  237. package/lib/core/transform/watch/notifyWatchInputs.mjs +3 -0
  238. package/lib/core/transform/watch/notifyWatchInputs.mjs.map +1 -1
  239. package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.d.cts +5 -2
  240. package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.d.mts +5 -2
  241. package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.d.ts +5 -2
  242. package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.js +6 -3
  243. package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.js.map +1 -1
  244. package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.mjs +6 -3
  245. package/lib/core/transform/watch/watchInputEvidenceMatchesDisk.mjs.map +1 -1
  246. package/lib/core/turbopack/turbopack.js +2 -1
  247. package/lib/core/turbopack/turbopack.js.map +1 -1
  248. package/lib/core/turbopack/turbopack.mjs +2 -1
  249. package/lib/core/turbopack/turbopack.mjs.map +1 -1
  250. package/package.json +3 -3
  251. package/src/core/bridge/projectRecordMoved.ts +3 -1
  252. package/src/core/bun/bun.ts +8 -4
  253. package/src/core/observer/createInputObserver.ts +8 -5
  254. package/src/core/observer/openIsolatedRecursiveWatch.ts +11 -12
  255. package/src/core/transform/cache/TtscCachedProjectTransform.ts +13 -3
  256. package/src/core/transform/cache/selectCachedGenerationAction.ts +9 -1
  257. package/src/core/transform/deliverCachedTransform.ts +97 -0
  258. package/src/core/transform/envelope/selectDeclaredProjectInputKeys.ts +5 -2
  259. package/src/core/transform/envelope/selectExternalInputPaths.ts +7 -7
  260. package/src/core/transform/filesystem/TtscTransformFilesystemOperations.ts +15 -12
  261. package/src/core/transform/generation/captureFailedGenerationInputStates.ts +1 -0
  262. package/src/core/transform/generation/captureTransformGeneration.ts +6 -1
  263. package/src/core/transform/generation/failedGenerationEnvironmentChanged.ts +12 -2
  264. package/src/core/transform/generation/selectTransformAttemptDisposition.ts +3 -1
  265. package/src/core/transform/generation/transformProject.ts +13 -9
  266. package/src/core/transform/inputs/pluginSourceFilesDigest.ts +11 -4
  267. package/src/core/transform/inputs/pluginSourceHolds.ts +13 -3
  268. package/src/core/transform/inputs/pluginSourceState.ts +8 -2
  269. package/src/core/transform/inputs/preparePluginBuildEnvironments.ts +64 -11
  270. package/src/core/transform/tracker/broker/WatchBroker.ts +15 -4
  271. package/src/core/transform/tracker/broker/WatchBrokerTransport.ts +82 -0
  272. package/src/core/transform/tracker/broker/drainWatchBroker.ts +12 -13
  273. package/src/core/transform/tracker/broker/getWatchBroker.ts +89 -18
  274. package/src/core/transform/tracker/broker/openBrokeredWatch.ts +11 -14
  275. package/src/core/transform/tracker/broker/usesWatchBroker.ts +7 -7
  276. package/src/core/transform/tracker/broker/watchBrokerSource.ts +10 -11
  277. package/src/core/transform/transformTtsc.ts +38 -92
  278. package/src/core/transform/validation/TtscGenerationProof.ts +201 -0
  279. package/src/core/transform/validation/captureUniversalHostInputValidation.ts +2 -1
  280. package/src/core/transform/validation/matchesCachedSource.ts +27 -21
  281. package/src/core/transform/validation/matchesCompleteInputSnapshot.ts +5 -3
  282. package/src/core/transform/validation/matchesNarrowPersistentInputs.ts +3 -1
  283. package/src/core/transform/validation/matchesUniversalHostInputTrees.ts +8 -3
  284. package/src/core/transform/validation/matchesUniversalHostInputs.ts +6 -4
  285. package/src/core/transform/validation/nativeInputPredicatesHold.ts +36 -14
  286. package/src/core/transform/validation/notificationsProveProgramUnchanged.ts +3 -1
  287. package/src/core/transform/watch/captureWatchInputBaseline.ts +4 -0
  288. package/src/core/transform/watch/captureWatchInputBaselines.ts +7 -1
  289. package/src/core/transform/watch/notifyWatchInputs.ts +3 -0
  290. package/src/core/transform/watch/watchInputEvidenceMatchesDisk.ts +12 -2
  291. package/src/core/turbopack/turbopack.ts +2 -1
@@ -15,9 +15,15 @@ import type { TtscTransformFilesystemOperations } from "../filesystem/TtscTransf
15
15
  * historical-directory eviction or owner partition and can grow with distinct
16
16
  * directory spellings.
17
17
  *
18
- * @param directory The source directory.
18
+ * @param directory The source directory. WARNING (samchon/ttsc#1725): the map
19
+ * below ends with the process, and every bundler worker or restart is a new
20
+ * one, so each first proof read every plugin source byte again (0.35 s for
21
+ * typia's Go module). A caller that names its project takes a miss's digest
22
+ * from that project's plugin cache records, which the load that reported the
23
+ * state wrote.
19
24
  * @param filesystem The operations whose clock reference the caller refreshed
20
25
  * (`refreshFilesystemClockReference`), which decides separability.
26
+ * @param projectRoot Project whose plugin cache root holds the records.
21
27
  * @throws When a listed file cannot be read, as `pluginSourceDigest` does.
22
28
  * @evidence contracts/common.md#principled-implementation The build's exact file selector signs names and metadata around a fresh byte digest; matching separable signatures permit reuse only under the same native source-tree and refreshed-clock premises.
23
29
  * @evidence contracts/common.md#clear-and-simple-design This coordinator owns the directory digest entry while ttsc owns selection and byte hashing and inputMetadataEvidence owns stamp interpretation.
@@ -25,7 +31,7 @@ import type { TtscTransformFilesystemOperations } from "../filesystem/TtscTransf
25
31
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain population invalidation, before/after proof, fresh clock ordering, native-view assumptions and unbounded retained entries, with separated tags following documentation guidance.
26
32
  * @evidence contracts/portability.md#os-neutral-implementation OS-neutral native source paths use Node resolution and ttsc's native selector; injected metadata must observe those paths. A different filesystem view or path dialect is not supported by the native enumeration/read calls here.
27
33
  * @evidence contracts/performance.md#efficient-algorithms Reuse still enumerates and stats F files; a miss performs two metadata walks and one O(B) byte digest. Selection sorts its population, and temporary storage follows the file list and largest file buffer.
28
- * @evidence contracts/performance.md#reuse-equivalent-work All calls share DIGESTS by resolved directory spelling; current separable metadata must match the signature recorded around the producer read. The key does not partition filesystem owners, so sharing assumes one native source view.
34
+ * @evidence contracts/performance.md#reuse-equivalent-work All calls share DIGESTS by resolved directory spelling; current separable metadata must match the signature recorded around the producer read. The key does not partition filesystem owners, so sharing assumes one native source view. A miss of a caller naming its project takes the digest the load recorded in that project's plugin cache, across processes.
29
35
  * @evidence contracts/performance.md#bound-retention-and-release-resources DIGESTS is module-owned and retains one digest/signature per encountered key until failed stabilization deletes that key or the process ends; no historical-directory bound or explicit teardown currently exists.
30
36
  */
31
- export declare function pluginSourceFilesDigest(directory: string, filesystem?: TtscTransformFilesystemOperations): string;
37
+ export declare function pluginSourceFilesDigest(directory: string, filesystem?: TtscTransformFilesystemOperations, projectRoot?: string): string;
@@ -15,9 +15,15 @@ import type { TtscTransformFilesystemOperations } from "../filesystem/TtscTransf
15
15
  * historical-directory eviction or owner partition and can grow with distinct
16
16
  * directory spellings.
17
17
  *
18
- * @param directory The source directory.
18
+ * @param directory The source directory. WARNING (samchon/ttsc#1725): the map
19
+ * below ends with the process, and every bundler worker or restart is a new
20
+ * one, so each first proof read every plugin source byte again (0.35 s for
21
+ * typia's Go module). A caller that names its project takes a miss's digest
22
+ * from that project's plugin cache records, which the load that reported the
23
+ * state wrote.
19
24
  * @param filesystem The operations whose clock reference the caller refreshed
20
25
  * (`refreshFilesystemClockReference`), which decides separability.
26
+ * @param projectRoot Project whose plugin cache root holds the records.
21
27
  * @throws When a listed file cannot be read, as `pluginSourceDigest` does.
22
28
  * @evidence contracts/common.md#principled-implementation The build's exact file selector signs names and metadata around a fresh byte digest; matching separable signatures permit reuse only under the same native source-tree and refreshed-clock premises.
23
29
  * @evidence contracts/common.md#clear-and-simple-design This coordinator owns the directory digest entry while ttsc owns selection and byte hashing and inputMetadataEvidence owns stamp interpretation.
@@ -25,7 +31,7 @@ import type { TtscTransformFilesystemOperations } from "../filesystem/TtscTransf
25
31
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain population invalidation, before/after proof, fresh clock ordering, native-view assumptions and unbounded retained entries, with separated tags following documentation guidance.
26
32
  * @evidence contracts/portability.md#os-neutral-implementation OS-neutral native source paths use Node resolution and ttsc's native selector; injected metadata must observe those paths. A different filesystem view or path dialect is not supported by the native enumeration/read calls here.
27
33
  * @evidence contracts/performance.md#efficient-algorithms Reuse still enumerates and stats F files; a miss performs two metadata walks and one O(B) byte digest. Selection sorts its population, and temporary storage follows the file list and largest file buffer.
28
- * @evidence contracts/performance.md#reuse-equivalent-work All calls share DIGESTS by resolved directory spelling; current separable metadata must match the signature recorded around the producer read. The key does not partition filesystem owners, so sharing assumes one native source view.
34
+ * @evidence contracts/performance.md#reuse-equivalent-work All calls share DIGESTS by resolved directory spelling; current separable metadata must match the signature recorded around the producer read. The key does not partition filesystem owners, so sharing assumes one native source view. A miss of a caller naming its project takes the digest the load recorded in that project's plugin cache, across processes.
29
35
  * @evidence contracts/performance.md#bound-retention-and-release-resources DIGESTS is module-owned and retains one digest/signature per encountered key until failed stabilization deletes that key or the process ends; no historical-directory bound or explicit teardown currently exists.
30
36
  */
31
- export declare function pluginSourceFilesDigest(directory: string, filesystem?: TtscTransformFilesystemOperations): string;
37
+ export declare function pluginSourceFilesDigest(directory: string, filesystem?: TtscTransformFilesystemOperations, projectRoot?: string): string;
@@ -15,9 +15,15 @@ import type { TtscTransformFilesystemOperations } from "../filesystem/TtscTransf
15
15
  * historical-directory eviction or owner partition and can grow with distinct
16
16
  * directory spellings.
17
17
  *
18
- * @param directory The source directory.
18
+ * @param directory The source directory. WARNING (samchon/ttsc#1725): the map
19
+ * below ends with the process, and every bundler worker or restart is a new
20
+ * one, so each first proof read every plugin source byte again (0.35 s for
21
+ * typia's Go module). A caller that names its project takes a miss's digest
22
+ * from that project's plugin cache records, which the load that reported the
23
+ * state wrote.
19
24
  * @param filesystem The operations whose clock reference the caller refreshed
20
25
  * (`refreshFilesystemClockReference`), which decides separability.
26
+ * @param projectRoot Project whose plugin cache root holds the records.
21
27
  * @throws When a listed file cannot be read, as `pluginSourceDigest` does.
22
28
  * @evidence contracts/common.md#principled-implementation The build's exact file selector signs names and metadata around a fresh byte digest; matching separable signatures permit reuse only under the same native source-tree and refreshed-clock premises.
23
29
  * @evidence contracts/common.md#clear-and-simple-design This coordinator owns the directory digest entry while ttsc owns selection and byte hashing and inputMetadataEvidence owns stamp interpretation.
@@ -25,7 +31,7 @@ import type { TtscTransformFilesystemOperations } from "../filesystem/TtscTransf
25
31
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain population invalidation, before/after proof, fresh clock ordering, native-view assumptions and unbounded retained entries, with separated tags following documentation guidance.
26
32
  * @evidence contracts/portability.md#os-neutral-implementation OS-neutral native source paths use Node resolution and ttsc's native selector; injected metadata must observe those paths. A different filesystem view or path dialect is not supported by the native enumeration/read calls here.
27
33
  * @evidence contracts/performance.md#efficient-algorithms Reuse still enumerates and stats F files; a miss performs two metadata walks and one O(B) byte digest. Selection sorts its population, and temporary storage follows the file list and largest file buffer.
28
- * @evidence contracts/performance.md#reuse-equivalent-work All calls share DIGESTS by resolved directory spelling; current separable metadata must match the signature recorded around the producer read. The key does not partition filesystem owners, so sharing assumes one native source view.
34
+ * @evidence contracts/performance.md#reuse-equivalent-work All calls share DIGESTS by resolved directory spelling; current separable metadata must match the signature recorded around the producer read. The key does not partition filesystem owners, so sharing assumes one native source view. A miss of a caller naming its project takes the digest the load recorded in that project's plugin cache, across processes.
29
35
  * @evidence contracts/performance.md#bound-retention-and-release-resources DIGESTS is module-owned and retains one digest/signature per encountered key until failed stabilization deletes that key or the process ends; no historical-directory bound or explicit teardown currently exists.
30
36
  */
31
- export declare function pluginSourceFilesDigest(directory: string, filesystem?: TtscTransformFilesystemOperations): string;
37
+ export declare function pluginSourceFilesDigest(directory: string, filesystem?: TtscTransformFilesystemOperations, projectRoot?: string): string;
@@ -21,9 +21,15 @@ var inputMetadataEvidence = require('./inputMetadataEvidence.js');
21
21
  * historical-directory eviction or owner partition and can grow with distinct
22
22
  * directory spellings.
23
23
  *
24
- * @param directory The source directory.
24
+ * @param directory The source directory. WARNING (samchon/ttsc#1725): the map
25
+ * below ends with the process, and every bundler worker or restart is a new
26
+ * one, so each first proof read every plugin source byte again (0.35 s for
27
+ * typia's Go module). A caller that names its project takes a miss's digest
28
+ * from that project's plugin cache records, which the load that reported the
29
+ * state wrote.
25
30
  * @param filesystem The operations whose clock reference the caller refreshed
26
31
  * (`refreshFilesystemClockReference`), which decides separability.
32
+ * @param projectRoot Project whose plugin cache root holds the records.
27
33
  * @throws When a listed file cannot be read, as `pluginSourceDigest` does.
28
34
  * @evidence contracts/common.md#principled-implementation The build's exact file selector signs names and metadata around a fresh byte digest; matching separable signatures permit reuse only under the same native source-tree and refreshed-clock premises.
29
35
  * @evidence contracts/common.md#clear-and-simple-design This coordinator owns the directory digest entry while ttsc owns selection and byte hashing and inputMetadataEvidence owns stamp interpretation.
@@ -31,10 +37,10 @@ var inputMetadataEvidence = require('./inputMetadataEvidence.js');
31
37
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain population invalidation, before/after proof, fresh clock ordering, native-view assumptions and unbounded retained entries, with separated tags following documentation guidance.
32
38
  * @evidence contracts/portability.md#os-neutral-implementation OS-neutral native source paths use Node resolution and ttsc's native selector; injected metadata must observe those paths. A different filesystem view or path dialect is not supported by the native enumeration/read calls here.
33
39
  * @evidence contracts/performance.md#efficient-algorithms Reuse still enumerates and stats F files; a miss performs two metadata walks and one O(B) byte digest. Selection sorts its population, and temporary storage follows the file list and largest file buffer.
34
- * @evidence contracts/performance.md#reuse-equivalent-work All calls share DIGESTS by resolved directory spelling; current separable metadata must match the signature recorded around the producer read. The key does not partition filesystem owners, so sharing assumes one native source view.
40
+ * @evidence contracts/performance.md#reuse-equivalent-work All calls share DIGESTS by resolved directory spelling; current separable metadata must match the signature recorded around the producer read. The key does not partition filesystem owners, so sharing assumes one native source view. A miss of a caller naming its project takes the digest the load recorded in that project's plugin cache, across processes.
35
41
  * @evidence contracts/performance.md#bound-retention-and-release-resources DIGESTS is module-owned and retains one digest/signature per encountered key until failed stabilization deletes that key or the process ends; no historical-directory bound or explicit teardown currently exists.
36
42
  */
37
- function pluginSourceFilesDigest(directory, filesystem = DEFAULT_FILESYSTEM_OPERATIONS.DEFAULT_FILESYSTEM_OPERATIONS) {
43
+ function pluginSourceFilesDigest(directory, filesystem = DEFAULT_FILESYSTEM_OPERATIONS.DEFAULT_FILESYSTEM_OPERATIONS, projectRoot) {
38
44
  const key = path.resolve(directory);
39
45
  /**
40
46
  * Supply this caller's metadata and clock view to the shared native selector.
@@ -48,7 +54,7 @@ function pluginSourceFilesDigest(directory, filesystem = DEFAULT_FILESYSTEM_OPER
48
54
  known?.signature === before.signature) {
49
55
  return known.digest;
50
56
  }
51
- const digest = pluginSource.pluginSourceDigest(key);
57
+ const digest = pluginSource.provenPluginSourceDigest(key, projectRoot);
52
58
  const after = pluginSource.pluginSourceFilesSignature(key, evidence);
53
59
  if (before !== undefined &&
54
60
  after !== undefined &&
@@ -1 +1 @@
1
- {"version":3,"file":"pluginSourceFilesDigest.js","sources":["../../../../src/core/transform/inputs/pluginSourceFilesDigest.ts"],"sourcesContent":[null],"names":["DEFAULT_FILESYSTEM_OPERATIONS","inputMetadataEvidence","pluginSourceFilesSignature","pluginSourceDigest"],"mappings":";;;;;;;AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BG;SACa,uBAAuB,CACrC,SAAiB,EACjB,aAAgDA,2DAA6B,EAAA;IAE7E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACnC;;;AAGG;AACH,IAAA,MAAM,QAAQ,GAAG,CAAC,IAAY,KAAKC,2CAAqB,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1E,MAAM,MAAM,GAAGC,uCAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,IACE,MAAM,KAAK,SAAS;AACpB,QAAA,MAAM,CAAC,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,SAAS,EACrC;QACA,OAAO,KAAK,CAAC,MAAM;IACrB;AACA,IAAA,MAAM,MAAM,GAAGC,+BAAkB,CAAC,GAAG,CAAC;IACtC,MAAM,KAAK,GAAGD,uCAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvD,IACE,MAAM,KAAK,SAAS;AACpB,QAAA,KAAK,KAAK,SAAS;AACnB,QAAA,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;QACpC,KAAK,CAAC,SAAS,EACf;AACA,QAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1D;SAAO;AACL,QAAA,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;IACrB;AACA,IAAA,OAAO,MAAM;AACf;AAEA;;;AAGG;AACH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiD;;;;"}
1
+ {"version":3,"file":"pluginSourceFilesDigest.js","sources":["../../../../src/core/transform/inputs/pluginSourceFilesDigest.ts"],"sourcesContent":[null],"names":["DEFAULT_FILESYSTEM_OPERATIONS","inputMetadataEvidence","pluginSourceFilesSignature","provenPluginSourceDigest"],"mappings":";;;;;;;AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;AACG,SAAU,uBAAuB,CACrC,SAAiB,EACjB,UAAA,GAAgDA,2DAA6B,EAC7E,WAAoB,EAAA;IAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACnC;;;AAGG;AACH,IAAA,MAAM,QAAQ,GAAG,CAAC,IAAY,KAAKC,2CAAqB,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1E,MAAM,MAAM,GAAGC,uCAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,IACE,MAAM,KAAK,SAAS;AACpB,QAAA,MAAM,CAAC,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,SAAS,EACrC;QACA,OAAO,KAAK,CAAC,MAAM;IACrB;IACA,MAAM,MAAM,GAAGC,qCAAwB,CAAC,GAAG,EAAE,WAAW,CAAC;IACzD,MAAM,KAAK,GAAGD,uCAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvD,IACE,MAAM,KAAK,SAAS;AACpB,QAAA,KAAK,KAAK,SAAS;AACnB,QAAA,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;QACpC,KAAK,CAAC,SAAS,EACf;AACA,QAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1D;SAAO;AACL,QAAA,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;IACrB;AACA,IAAA,OAAO,MAAM;AACf;AAEA;;;AAGG;AACH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiD;;;;"}
@@ -1,5 +1,5 @@
1
1
  import path from 'node:path';
2
- import { pluginSourceFilesSignature, pluginSourceDigest } from 'ttsc/plugin-source';
2
+ import { pluginSourceFilesSignature, provenPluginSourceDigest } from 'ttsc/plugin-source';
3
3
  import { DEFAULT_FILESYSTEM_OPERATIONS } from '../filesystem/DEFAULT_FILESYSTEM_OPERATIONS.mjs';
4
4
  import { inputMetadataEvidence } from './inputMetadataEvidence.mjs';
5
5
 
@@ -19,9 +19,15 @@ import { inputMetadataEvidence } from './inputMetadataEvidence.mjs';
19
19
  * historical-directory eviction or owner partition and can grow with distinct
20
20
  * directory spellings.
21
21
  *
22
- * @param directory The source directory.
22
+ * @param directory The source directory. WARNING (samchon/ttsc#1725): the map
23
+ * below ends with the process, and every bundler worker or restart is a new
24
+ * one, so each first proof read every plugin source byte again (0.35 s for
25
+ * typia's Go module). A caller that names its project takes a miss's digest
26
+ * from that project's plugin cache records, which the load that reported the
27
+ * state wrote.
23
28
  * @param filesystem The operations whose clock reference the caller refreshed
24
29
  * (`refreshFilesystemClockReference`), which decides separability.
30
+ * @param projectRoot Project whose plugin cache root holds the records.
25
31
  * @throws When a listed file cannot be read, as `pluginSourceDigest` does.
26
32
  * @evidence contracts/common.md#principled-implementation The build's exact file selector signs names and metadata around a fresh byte digest; matching separable signatures permit reuse only under the same native source-tree and refreshed-clock premises.
27
33
  * @evidence contracts/common.md#clear-and-simple-design This coordinator owns the directory digest entry while ttsc owns selection and byte hashing and inputMetadataEvidence owns stamp interpretation.
@@ -29,10 +35,10 @@ import { inputMetadataEvidence } from './inputMetadataEvidence.mjs';
29
35
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain population invalidation, before/after proof, fresh clock ordering, native-view assumptions and unbounded retained entries, with separated tags following documentation guidance.
30
36
  * @evidence contracts/portability.md#os-neutral-implementation OS-neutral native source paths use Node resolution and ttsc's native selector; injected metadata must observe those paths. A different filesystem view or path dialect is not supported by the native enumeration/read calls here.
31
37
  * @evidence contracts/performance.md#efficient-algorithms Reuse still enumerates and stats F files; a miss performs two metadata walks and one O(B) byte digest. Selection sorts its population, and temporary storage follows the file list and largest file buffer.
32
- * @evidence contracts/performance.md#reuse-equivalent-work All calls share DIGESTS by resolved directory spelling; current separable metadata must match the signature recorded around the producer read. The key does not partition filesystem owners, so sharing assumes one native source view.
38
+ * @evidence contracts/performance.md#reuse-equivalent-work All calls share DIGESTS by resolved directory spelling; current separable metadata must match the signature recorded around the producer read. The key does not partition filesystem owners, so sharing assumes one native source view. A miss of a caller naming its project takes the digest the load recorded in that project's plugin cache, across processes.
33
39
  * @evidence contracts/performance.md#bound-retention-and-release-resources DIGESTS is module-owned and retains one digest/signature per encountered key until failed stabilization deletes that key or the process ends; no historical-directory bound or explicit teardown currently exists.
34
40
  */
35
- function pluginSourceFilesDigest(directory, filesystem = DEFAULT_FILESYSTEM_OPERATIONS) {
41
+ function pluginSourceFilesDigest(directory, filesystem = DEFAULT_FILESYSTEM_OPERATIONS, projectRoot) {
36
42
  const key = path.resolve(directory);
37
43
  /**
38
44
  * Supply this caller's metadata and clock view to the shared native selector.
@@ -46,7 +52,7 @@ function pluginSourceFilesDigest(directory, filesystem = DEFAULT_FILESYSTEM_OPER
46
52
  known?.signature === before.signature) {
47
53
  return known.digest;
48
54
  }
49
- const digest = pluginSourceDigest(key);
55
+ const digest = provenPluginSourceDigest(key, projectRoot);
50
56
  const after = pluginSourceFilesSignature(key, evidence);
51
57
  if (before !== undefined &&
52
58
  after !== undefined &&
@@ -1 +1 @@
1
- {"version":3,"file":"pluginSourceFilesDigest.mjs","sources":["../../../../src/core/transform/inputs/pluginSourceFilesDigest.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BG;SACa,uBAAuB,CACrC,SAAiB,EACjB,aAAgD,6BAA6B,EAAA;IAE7E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACnC;;;AAGG;AACH,IAAA,MAAM,QAAQ,GAAG,CAAC,IAAY,KAAK,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1E,MAAM,MAAM,GAAG,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,IACE,MAAM,KAAK,SAAS;AACpB,QAAA,MAAM,CAAC,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,SAAS,EACrC;QACA,OAAO,KAAK,CAAC,MAAM;IACrB;AACA,IAAA,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC;IACtC,MAAM,KAAK,GAAG,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvD,IACE,MAAM,KAAK,SAAS;AACpB,QAAA,KAAK,KAAK,SAAS;AACnB,QAAA,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;QACpC,KAAK,CAAC,SAAS,EACf;AACA,QAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1D;SAAO;AACL,QAAA,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;IACrB;AACA,IAAA,OAAO,MAAM;AACf;AAEA;;;AAGG;AACH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiD;;;;"}
1
+ {"version":3,"file":"pluginSourceFilesDigest.mjs","sources":["../../../../src/core/transform/inputs/pluginSourceFilesDigest.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;AACG,SAAU,uBAAuB,CACrC,SAAiB,EACjB,UAAA,GAAgD,6BAA6B,EAC7E,WAAoB,EAAA;IAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACnC;;;AAGG;AACH,IAAA,MAAM,QAAQ,GAAG,CAAC,IAAY,KAAK,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1E,MAAM,MAAM,GAAG,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,IACE,MAAM,KAAK,SAAS;AACpB,QAAA,MAAM,CAAC,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,SAAS,EACrC;QACA,OAAO,KAAK,CAAC,MAAM;IACrB;IACA,MAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,EAAE,WAAW,CAAC;IACzD,MAAM,KAAK,GAAG,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvD,IACE,MAAM,KAAK,SAAS;AACpB,QAAA,KAAK,KAAK,SAAS;AACnB,QAAA,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;QACpC,KAAK,CAAC,SAAS,EACf;AACA,QAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1D;SAAO;AACL,QAAA,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;IACrB;AACA,IAAA,OAAO,MAAM;AACf;AAEA;;;AAGG;AACH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiD;;;;"}
@@ -21,15 +21,17 @@ import type { TtscTransformFilesystemOperations } from "../filesystem/TtscTransf
21
21
  * @param state The state the envelope, a record, or a capture recorded.
22
22
  * @param filesystem The operations whose clock reference the caller refreshed.
23
23
  * @param prepared Optional already-qualified native environment authority.
24
+ * @param projectRoot Project whose plugin cache records prove the sources and
25
+ * the SDK in a new process (samchon/ttsc#1725).
24
26
  * @evidence contracts/common.md#principled-implementation Source-state equality uses ttsc's build-key composition. Synchronous clients retain mismatch-triggered environment refresh; async clients supply current native authority and own fresh preparation separately. Unavailable source or prepared environment rejects proof.
25
27
  * @evidence contracts/common.md#clear-and-simple-design This adapter supplies a proven source digest to the shared state comparator, keeping environment composition and refresh in ttsc's owner.
26
28
  * @evidence contracts/common.md#prohibited-implementation-shortcuts The fresh environment comparison corrects an actual stale environment witness; unreadable source is not hidden by expected state exceptions or perpetual compensating retries.
27
29
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain source versus environment proof, failure semantics and refreshed-clock parameters, followed by separated tags under documentation guidance.
28
30
  * @evidence contracts/portability.md#os-neutral-implementation OS-neutral source/environment comparison uses the build's native boundaries. Injected metadata must describe that same native source tree; arbitrary foreign-filesystem views are not established by this adapter.
29
31
  * @evidence contracts/performance.md#efficient-algorithms One proven source digest serves either the supplied-environment comparison or both synchronous environment comparisons; file work is delegated to the digest owner.
30
- * @evidence contracts/performance.md#reuse-equivalent-work Metadata-proven source digests and current native environment witnesses qualify reuse; async preparation and synchronous mismatch refresh remain distinct owning paths.
32
+ * @evidence contracts/performance.md#reuse-equivalent-work Metadata-proven source digests and current native environment witnesses qualify reuse; async preparation and synchronous mismatch refresh remain distinct owning paths. A named project lets the source and SDK readings come from its plugin cache records across processes.
31
33
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This comparison acquires no retained source cache or native handle; digest storage and process-environment retention have separate owners.
32
34
  */
33
35
  export declare function pluginSourceHolds(directory: string, state: string, filesystem?: TtscTransformFilesystemOperations, prepared?: {
34
36
  environment: string | undefined;
35
- }): boolean;
37
+ }, projectRoot?: string): boolean;
@@ -21,15 +21,17 @@ import type { TtscTransformFilesystemOperations } from "../filesystem/TtscTransf
21
21
  * @param state The state the envelope, a record, or a capture recorded.
22
22
  * @param filesystem The operations whose clock reference the caller refreshed.
23
23
  * @param prepared Optional already-qualified native environment authority.
24
+ * @param projectRoot Project whose plugin cache records prove the sources and
25
+ * the SDK in a new process (samchon/ttsc#1725).
24
26
  * @evidence contracts/common.md#principled-implementation Source-state equality uses ttsc's build-key composition. Synchronous clients retain mismatch-triggered environment refresh; async clients supply current native authority and own fresh preparation separately. Unavailable source or prepared environment rejects proof.
25
27
  * @evidence contracts/common.md#clear-and-simple-design This adapter supplies a proven source digest to the shared state comparator, keeping environment composition and refresh in ttsc's owner.
26
28
  * @evidence contracts/common.md#prohibited-implementation-shortcuts The fresh environment comparison corrects an actual stale environment witness; unreadable source is not hidden by expected state exceptions or perpetual compensating retries.
27
29
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain source versus environment proof, failure semantics and refreshed-clock parameters, followed by separated tags under documentation guidance.
28
30
  * @evidence contracts/portability.md#os-neutral-implementation OS-neutral source/environment comparison uses the build's native boundaries. Injected metadata must describe that same native source tree; arbitrary foreign-filesystem views are not established by this adapter.
29
31
  * @evidence contracts/performance.md#efficient-algorithms One proven source digest serves either the supplied-environment comparison or both synchronous environment comparisons; file work is delegated to the digest owner.
30
- * @evidence contracts/performance.md#reuse-equivalent-work Metadata-proven source digests and current native environment witnesses qualify reuse; async preparation and synchronous mismatch refresh remain distinct owning paths.
32
+ * @evidence contracts/performance.md#reuse-equivalent-work Metadata-proven source digests and current native environment witnesses qualify reuse; async preparation and synchronous mismatch refresh remain distinct owning paths. A named project lets the source and SDK readings come from its plugin cache records across processes.
31
33
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This comparison acquires no retained source cache or native handle; digest storage and process-environment retention have separate owners.
32
34
  */
33
35
  export declare function pluginSourceHolds(directory: string, state: string, filesystem?: TtscTransformFilesystemOperations, prepared?: {
34
36
  environment: string | undefined;
35
- }): boolean;
37
+ }, projectRoot?: string): boolean;
@@ -21,15 +21,17 @@ import type { TtscTransformFilesystemOperations } from "../filesystem/TtscTransf
21
21
  * @param state The state the envelope, a record, or a capture recorded.
22
22
  * @param filesystem The operations whose clock reference the caller refreshed.
23
23
  * @param prepared Optional already-qualified native environment authority.
24
+ * @param projectRoot Project whose plugin cache records prove the sources and
25
+ * the SDK in a new process (samchon/ttsc#1725).
24
26
  * @evidence contracts/common.md#principled-implementation Source-state equality uses ttsc's build-key composition. Synchronous clients retain mismatch-triggered environment refresh; async clients supply current native authority and own fresh preparation separately. Unavailable source or prepared environment rejects proof.
25
27
  * @evidence contracts/common.md#clear-and-simple-design This adapter supplies a proven source digest to the shared state comparator, keeping environment composition and refresh in ttsc's owner.
26
28
  * @evidence contracts/common.md#prohibited-implementation-shortcuts The fresh environment comparison corrects an actual stale environment witness; unreadable source is not hidden by expected state exceptions or perpetual compensating retries.
27
29
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain source versus environment proof, failure semantics and refreshed-clock parameters, followed by separated tags under documentation guidance.
28
30
  * @evidence contracts/portability.md#os-neutral-implementation OS-neutral source/environment comparison uses the build's native boundaries. Injected metadata must describe that same native source tree; arbitrary foreign-filesystem views are not established by this adapter.
29
31
  * @evidence contracts/performance.md#efficient-algorithms One proven source digest serves either the supplied-environment comparison or both synchronous environment comparisons; file work is delegated to the digest owner.
30
- * @evidence contracts/performance.md#reuse-equivalent-work Metadata-proven source digests and current native environment witnesses qualify reuse; async preparation and synchronous mismatch refresh remain distinct owning paths.
32
+ * @evidence contracts/performance.md#reuse-equivalent-work Metadata-proven source digests and current native environment witnesses qualify reuse; async preparation and synchronous mismatch refresh remain distinct owning paths. A named project lets the source and SDK readings come from its plugin cache records across processes.
31
33
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This comparison acquires no retained source cache or native handle; digest storage and process-environment retention have separate owners.
32
34
  */
33
35
  export declare function pluginSourceHolds(directory: string, state: string, filesystem?: TtscTransformFilesystemOperations, prepared?: {
34
36
  environment: string | undefined;
35
- }): boolean;
37
+ }, projectRoot?: string): boolean;
@@ -26,25 +26,30 @@ var pluginSourceFilesDigest = require('./pluginSourceFilesDigest.js');
26
26
  * @param state The state the envelope, a record, or a capture recorded.
27
27
  * @param filesystem The operations whose clock reference the caller refreshed.
28
28
  * @param prepared Optional already-qualified native environment authority.
29
+ * @param projectRoot Project whose plugin cache records prove the sources and
30
+ * the SDK in a new process (samchon/ttsc#1725).
29
31
  * @evidence contracts/common.md#principled-implementation Source-state equality uses ttsc's build-key composition. Synchronous clients retain mismatch-triggered environment refresh; async clients supply current native authority and own fresh preparation separately. Unavailable source or prepared environment rejects proof.
30
32
  * @evidence contracts/common.md#clear-and-simple-design This adapter supplies a proven source digest to the shared state comparator, keeping environment composition and refresh in ttsc's owner.
31
33
  * @evidence contracts/common.md#prohibited-implementation-shortcuts The fresh environment comparison corrects an actual stale environment witness; unreadable source is not hidden by expected state exceptions or perpetual compensating retries.
32
34
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain source versus environment proof, failure semantics and refreshed-clock parameters, followed by separated tags under documentation guidance.
33
35
  * @evidence contracts/portability.md#os-neutral-implementation OS-neutral source/environment comparison uses the build's native boundaries. Injected metadata must describe that same native source tree; arbitrary foreign-filesystem views are not established by this adapter.
34
36
  * @evidence contracts/performance.md#efficient-algorithms One proven source digest serves either the supplied-environment comparison or both synchronous environment comparisons; file work is delegated to the digest owner.
35
- * @evidence contracts/performance.md#reuse-equivalent-work Metadata-proven source digests and current native environment witnesses qualify reuse; async preparation and synchronous mismatch refresh remain distinct owning paths.
37
+ * @evidence contracts/performance.md#reuse-equivalent-work Metadata-proven source digests and current native environment witnesses qualify reuse; async preparation and synchronous mismatch refresh remain distinct owning paths. A named project lets the source and SDK readings come from its plugin cache records across processes.
36
38
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This comparison acquires no retained source cache or native handle; digest storage and process-environment retention have separate owners.
37
39
  */
38
- function pluginSourceHolds(directory, state, filesystem = DEFAULT_FILESYSTEM_OPERATIONS.DEFAULT_FILESYSTEM_OPERATIONS, prepared) {
40
+ function pluginSourceHolds(directory, state, filesystem = DEFAULT_FILESYSTEM_OPERATIONS.DEFAULT_FILESYSTEM_OPERATIONS, prepared, projectRoot) {
39
41
  try {
40
- const sourceDigest = pluginSourceFilesDigest.pluginSourceFilesDigest(directory, filesystem);
42
+ const sourceDigest = pluginSourceFilesDigest.pluginSourceFilesDigest(directory, filesystem, projectRoot);
41
43
  if (prepared !== undefined)
42
44
  return (prepared.environment !== undefined &&
43
45
  pluginSource.pluginSourceState(directory, {
44
46
  environment: prepared.environment,
45
47
  sourceDigest,
46
48
  }) === state);
47
- return pluginSource.pluginSourceStateHolds(directory, state, { sourceDigest });
49
+ return pluginSource.pluginSourceStateHolds(directory, state, {
50
+ projectRoot,
51
+ sourceDigest,
52
+ });
48
53
  }
49
54
  catch {
50
55
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"pluginSourceHolds.js","sources":["../../../../src/core/transform/inputs/pluginSourceHolds.ts"],"sourcesContent":[null],"names":["DEFAULT_FILESYSTEM_OPERATIONS","pluginSourceFilesDigest","pluginSourceState","pluginSourceStateHolds"],"mappings":";;;;;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACG,SAAU,iBAAiB,CAC/B,SAAiB,EACjB,KAAa,EACb,UAAA,GAAgDA,2DAA6B,EAC7E,QAA8C,EAAA;AAE9C,IAAA,IAAI;QACF,MAAM,YAAY,GAAGC,+CAAuB,CAAC,SAAS,EAAE,UAAU,CAAC;QACnE,IAAI,QAAQ,KAAK,SAAS;AACxB,YAAA,QACE,QAAQ,CAAC,WAAW,KAAK,SAAS;gBAClCC,8BAAiB,CAAC,SAAS,EAAE;oBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,YAAY;iBACb,CAAC,KAAK,KAAK;QAEhB,OAAOC,mCAAsB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC;IACnE;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,KAAK;IACd;AACF;;;;"}
1
+ {"version":3,"file":"pluginSourceHolds.js","sources":["../../../../src/core/transform/inputs/pluginSourceHolds.ts"],"sourcesContent":[null],"names":["DEFAULT_FILESYSTEM_OPERATIONS","pluginSourceFilesDigest","pluginSourceState","pluginSourceStateHolds"],"mappings":";;;;;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;AACG,SAAU,iBAAiB,CAC/B,SAAiB,EACjB,KAAa,EACb,UAAA,GAAgDA,2DAA6B,EAC7E,QAA8C,EAC9C,WAAoB,EAAA;AAEpB,IAAA,IAAI;QACF,MAAM,YAAY,GAAGC,+CAAuB,CAC1C,SAAS,EACT,UAAU,EACV,WAAW,CACZ;QACD,IAAI,QAAQ,KAAK,SAAS;AACxB,YAAA,QACE,QAAQ,CAAC,WAAW,KAAK,SAAS;gBAClCC,8BAAiB,CAAC,SAAS,EAAE;oBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,YAAY;iBACb,CAAC,KAAK,KAAK;AAEhB,QAAA,OAAOC,mCAAsB,CAAC,SAAS,EAAE,KAAK,EAAE;YAC9C,WAAW;YACX,YAAY;AACb,SAAA,CAAC;IACJ;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,KAAK;IACd;AACF;;;;"}
@@ -24,25 +24,30 @@ import { pluginSourceFilesDigest } from './pluginSourceFilesDigest.mjs';
24
24
  * @param state The state the envelope, a record, or a capture recorded.
25
25
  * @param filesystem The operations whose clock reference the caller refreshed.
26
26
  * @param prepared Optional already-qualified native environment authority.
27
+ * @param projectRoot Project whose plugin cache records prove the sources and
28
+ * the SDK in a new process (samchon/ttsc#1725).
27
29
  * @evidence contracts/common.md#principled-implementation Source-state equality uses ttsc's build-key composition. Synchronous clients retain mismatch-triggered environment refresh; async clients supply current native authority and own fresh preparation separately. Unavailable source or prepared environment rejects proof.
28
30
  * @evidence contracts/common.md#clear-and-simple-design This adapter supplies a proven source digest to the shared state comparator, keeping environment composition and refresh in ttsc's owner.
29
31
  * @evidence contracts/common.md#prohibited-implementation-shortcuts The fresh environment comparison corrects an actual stale environment witness; unreadable source is not hidden by expected state exceptions or perpetual compensating retries.
30
32
  * @evidence contracts/common.md#meaningful-documentation Native paragraphs explain source versus environment proof, failure semantics and refreshed-clock parameters, followed by separated tags under documentation guidance.
31
33
  * @evidence contracts/portability.md#os-neutral-implementation OS-neutral source/environment comparison uses the build's native boundaries. Injected metadata must describe that same native source tree; arbitrary foreign-filesystem views are not established by this adapter.
32
34
  * @evidence contracts/performance.md#efficient-algorithms One proven source digest serves either the supplied-environment comparison or both synchronous environment comparisons; file work is delegated to the digest owner.
33
- * @evidence contracts/performance.md#reuse-equivalent-work Metadata-proven source digests and current native environment witnesses qualify reuse; async preparation and synchronous mismatch refresh remain distinct owning paths.
35
+ * @evidence contracts/performance.md#reuse-equivalent-work Metadata-proven source digests and current native environment witnesses qualify reuse; async preparation and synchronous mismatch refresh remain distinct owning paths. A named project lets the source and SDK readings come from its plugin cache records across processes.
34
36
  * @evidenceExclude contracts/performance.md#bound-retention-and-release-resources This comparison acquires no retained source cache or native handle; digest storage and process-environment retention have separate owners.
35
37
  */
36
- function pluginSourceHolds(directory, state, filesystem = DEFAULT_FILESYSTEM_OPERATIONS, prepared) {
38
+ function pluginSourceHolds(directory, state, filesystem = DEFAULT_FILESYSTEM_OPERATIONS, prepared, projectRoot) {
37
39
  try {
38
- const sourceDigest = pluginSourceFilesDigest(directory, filesystem);
40
+ const sourceDigest = pluginSourceFilesDigest(directory, filesystem, projectRoot);
39
41
  if (prepared !== undefined)
40
42
  return (prepared.environment !== undefined &&
41
43
  pluginSourceState(directory, {
42
44
  environment: prepared.environment,
43
45
  sourceDigest,
44
46
  }) === state);
45
- return pluginSourceStateHolds(directory, state, { sourceDigest });
47
+ return pluginSourceStateHolds(directory, state, {
48
+ projectRoot,
49
+ sourceDigest,
50
+ });
46
51
  }
47
52
  catch {
48
53
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"pluginSourceHolds.mjs","sources":["../../../../src/core/transform/inputs/pluginSourceHolds.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;AACG,SAAU,iBAAiB,CAC/B,SAAiB,EACjB,KAAa,EACb,UAAA,GAAgD,6BAA6B,EAC7E,QAA8C,EAAA;AAE9C,IAAA,IAAI;QACF,MAAM,YAAY,GAAG,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC;QACnE,IAAI,QAAQ,KAAK,SAAS;AACxB,YAAA,QACE,QAAQ,CAAC,WAAW,KAAK,SAAS;gBAClC,iBAAiB,CAAC,SAAS,EAAE;oBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,YAAY;iBACb,CAAC,KAAK,KAAK;QAEhB,OAAO,sBAAsB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC;IACnE;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,KAAK;IACd;AACF;;;;"}
1
+ {"version":3,"file":"pluginSourceHolds.mjs","sources":["../../../../src/core/transform/inputs/pluginSourceHolds.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;AACG,SAAU,iBAAiB,CAC/B,SAAiB,EACjB,KAAa,EACb,UAAA,GAAgD,6BAA6B,EAC7E,QAA8C,EAC9C,WAAoB,EAAA;AAEpB,IAAA,IAAI;QACF,MAAM,YAAY,GAAG,uBAAuB,CAC1C,SAAS,EACT,UAAU,EACV,WAAW,CACZ;QACD,IAAI,QAAQ,KAAK,SAAS;AACxB,YAAA,QACE,QAAQ,CAAC,WAAW,KAAK,SAAS;gBAClC,iBAAiB,CAAC,SAAS,EAAE;oBAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,YAAY;iBACb,CAAC,KAAK,KAAK;AAEhB,QAAA,OAAO,sBAAsB,CAAC,SAAS,EAAE,KAAK,EAAE;YAC9C,WAAW;YACX,YAAY;AACb,SAAA,CAAC;IACJ;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,KAAK;IACd;AACF;;;;"}
@@ -19,6 +19,8 @@
19
19
  *
20
20
  * @param directory The source directory, as the envelope names it.
21
21
  * @param prepared Optional current environment prepared by the async owner.
22
+ * @param projectRoot Project whose plugin cache records prove the sources and
23
+ * the SDK in a new process (samchon/ttsc#1725).
22
24
  * @evidence contracts/common.md#principled-implementation The shared pluginSourceState composition combines source digest and build environment exactly as binary keys do, and an observation error preserves null rather than a plausible state.
23
25
  * @evidence contracts/common.md#clear-and-simple-design Capture delegates state composition to ttsc while proof callers use pluginSourceHolds for mismatch refresh; the two roles are explicit without duplicate key logic.
24
26
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Missing observations cannot become hardcoded state or equal a recorded valid state through an exception branch.
@@ -30,4 +32,4 @@
30
32
  */
31
33
  export declare function pluginSourceState(directory: string, prepared?: {
32
34
  environment: string | undefined;
33
- }): string | null;
35
+ }, projectRoot?: string): string | null;
@@ -19,6 +19,8 @@
19
19
  *
20
20
  * @param directory The source directory, as the envelope names it.
21
21
  * @param prepared Optional current environment prepared by the async owner.
22
+ * @param projectRoot Project whose plugin cache records prove the sources and
23
+ * the SDK in a new process (samchon/ttsc#1725).
22
24
  * @evidence contracts/common.md#principled-implementation The shared pluginSourceState composition combines source digest and build environment exactly as binary keys do, and an observation error preserves null rather than a plausible state.
23
25
  * @evidence contracts/common.md#clear-and-simple-design Capture delegates state composition to ttsc while proof callers use pluginSourceHolds for mismatch refresh; the two roles are explicit without duplicate key logic.
24
26
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Missing observations cannot become hardcoded state or equal a recorded valid state through an exception branch.
@@ -30,4 +32,4 @@
30
32
  */
31
33
  export declare function pluginSourceState(directory: string, prepared?: {
32
34
  environment: string | undefined;
33
- }): string | null;
35
+ }, projectRoot?: string): string | null;
@@ -19,6 +19,8 @@
19
19
  *
20
20
  * @param directory The source directory, as the envelope names it.
21
21
  * @param prepared Optional current environment prepared by the async owner.
22
+ * @param projectRoot Project whose plugin cache records prove the sources and
23
+ * the SDK in a new process (samchon/ttsc#1725).
22
24
  * @evidence contracts/common.md#principled-implementation The shared pluginSourceState composition combines source digest and build environment exactly as binary keys do, and an observation error preserves null rather than a plausible state.
23
25
  * @evidence contracts/common.md#clear-and-simple-design Capture delegates state composition to ttsc while proof callers use pluginSourceHolds for mismatch refresh; the two roles are explicit without duplicate key logic.
24
26
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Missing observations cannot become hardcoded state or equal a recorded valid state through an exception branch.
@@ -30,4 +32,4 @@
30
32
  */
31
33
  export declare function pluginSourceState(directory: string, prepared?: {
32
34
  environment: string | undefined;
33
- }): string | null;
35
+ }, projectRoot?: string): string | null;
@@ -42,6 +42,8 @@ var pluginSource__namespace = /*#__PURE__*/_interopNamespaceDefault(pluginSource
42
42
  *
43
43
  * @param directory The source directory, as the envelope names it.
44
44
  * @param prepared Optional current environment prepared by the async owner.
45
+ * @param projectRoot Project whose plugin cache records prove the sources and
46
+ * the SDK in a new process (samchon/ttsc#1725).
45
47
  * @evidence contracts/common.md#principled-implementation The shared pluginSourceState composition combines source digest and build environment exactly as binary keys do, and an observation error preserves null rather than a plausible state.
46
48
  * @evidence contracts/common.md#clear-and-simple-design Capture delegates state composition to ttsc while proof callers use pluginSourceHolds for mismatch refresh; the two roles are explicit without duplicate key logic.
47
49
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Missing observations cannot become hardcoded state or equal a recorded valid state through an exception branch.
@@ -51,13 +53,16 @@ var pluginSource__namespace = /*#__PURE__*/_interopNamespaceDefault(pluginSource
51
53
  * @evidenceExclude contracts/performance.md#efficient-algorithms The digest and its cost belong to ttsc's pluginSourceState; this wrapper only turns a failure into null.
52
54
  * @evidenceExclude contracts/performance.md#reuse-equivalent-work This observation adapter adds no sharing. The shared state owner reads source bytes for each call and can reuse qualified process-environment readings; a supplied environment remains the caller's current authority rather than a source-digest cache.
53
55
  */
54
- function pluginSourceState(directory, prepared) {
56
+ function pluginSourceState(directory, prepared, projectRoot) {
55
57
  try {
56
58
  if (prepared !== undefined)
57
59
  return prepared.environment === undefined
58
60
  ? null
59
- : pluginSource__namespace.pluginSourceState(directory, prepared);
60
- return pluginSource__namespace.pluginSourceState(directory);
61
+ : pluginSource__namespace.pluginSourceState(directory, {
62
+ environment: prepared.environment,
63
+ projectRoot,
64
+ });
65
+ return pluginSource__namespace.pluginSourceState(directory, { projectRoot });
61
66
  }
62
67
  catch {
63
68
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"pluginSourceState.js","sources":["../../../../src/core/transform/inputs/pluginSourceState.ts"],"sourcesContent":[null],"names":["pluginSource"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACG,SAAU,iBAAiB,CAC/B,SAAiB,EACjB,QAA8C,EAAA;AAE9C,IAAA,IAAI;QACF,IAAI,QAAQ,KAAK,SAAS;AACxB,YAAA,OAAO,QAAQ,CAAC,WAAW,KAAK;AAC9B,kBAAE;kBACAA,uBAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACzD,QAAA,OAAOA,uBAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC;IAClD;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;;;;"}
1
+ {"version":3,"file":"pluginSourceState.js","sources":["../../../../src/core/transform/inputs/pluginSourceState.ts"],"sourcesContent":[null],"names":["pluginSource"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;SACa,iBAAiB,CAC/B,SAAiB,EACjB,QAA8C,EAC9C,WAAoB,EAAA;AAEpB,IAAA,IAAI;QACF,IAAI,QAAQ,KAAK,SAAS;AACxB,YAAA,OAAO,QAAQ,CAAC,WAAW,KAAK;AAC9B,kBAAE;AACF,kBAAEA,uBAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE;oBACxC,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,WAAW;AACZ,iBAAA,CAAC;QACR,OAAOA,uBAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,CAAC;IACnE;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;;;;"}
@@ -21,6 +21,8 @@ import * as pluginSource from 'ttsc/plugin-source';
21
21
  *
22
22
  * @param directory The source directory, as the envelope names it.
23
23
  * @param prepared Optional current environment prepared by the async owner.
24
+ * @param projectRoot Project whose plugin cache records prove the sources and
25
+ * the SDK in a new process (samchon/ttsc#1725).
24
26
  * @evidence contracts/common.md#principled-implementation The shared pluginSourceState composition combines source digest and build environment exactly as binary keys do, and an observation error preserves null rather than a plausible state.
25
27
  * @evidence contracts/common.md#clear-and-simple-design Capture delegates state composition to ttsc while proof callers use pluginSourceHolds for mismatch refresh; the two roles are explicit without duplicate key logic.
26
28
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Missing observations cannot become hardcoded state or equal a recorded valid state through an exception branch.
@@ -30,13 +32,16 @@ import * as pluginSource from 'ttsc/plugin-source';
30
32
  * @evidenceExclude contracts/performance.md#efficient-algorithms The digest and its cost belong to ttsc's pluginSourceState; this wrapper only turns a failure into null.
31
33
  * @evidenceExclude contracts/performance.md#reuse-equivalent-work This observation adapter adds no sharing. The shared state owner reads source bytes for each call and can reuse qualified process-environment readings; a supplied environment remains the caller's current authority rather than a source-digest cache.
32
34
  */
33
- function pluginSourceState(directory, prepared) {
35
+ function pluginSourceState(directory, prepared, projectRoot) {
34
36
  try {
35
37
  if (prepared !== undefined)
36
38
  return prepared.environment === undefined
37
39
  ? null
38
- : pluginSource.pluginSourceState(directory, prepared);
39
- return pluginSource.pluginSourceState(directory);
40
+ : pluginSource.pluginSourceState(directory, {
41
+ environment: prepared.environment,
42
+ projectRoot,
43
+ });
44
+ return pluginSource.pluginSourceState(directory, { projectRoot });
40
45
  }
41
46
  catch {
42
47
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"pluginSourceState.mjs","sources":["../../../../src/core/transform/inputs/pluginSourceState.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACG,SAAU,iBAAiB,CAC/B,SAAiB,EACjB,QAA8C,EAAA;AAE9C,IAAA,IAAI;QACF,IAAI,QAAQ,KAAK,SAAS;AACxB,YAAA,OAAO,QAAQ,CAAC,WAAW,KAAK;AAC9B,kBAAE;kBACA,YAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACzD,QAAA,OAAO,YAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC;IAClD;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;;;;"}
1
+ {"version":3,"file":"pluginSourceState.mjs","sources":["../../../../src/core/transform/inputs/pluginSourceState.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;SACa,iBAAiB,CAC/B,SAAiB,EACjB,QAA8C,EAC9C,WAAoB,EAAA;AAEpB,IAAA,IAAI;QACF,IAAI,QAAQ,KAAK,SAAS;AACxB,YAAA,OAAO,QAAQ,CAAC,WAAW,KAAK;AAC9B,kBAAE;AACF,kBAAE,YAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE;oBACxC,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,WAAW;AACZ,iBAAA,CAAC;QACR,OAAO,YAAY,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,CAAC;IACnE;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;;;;"}
@@ -1,27 +1,40 @@
1
1
  import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.cjs";
2
2
  import type { TtscTransformFilesystemOperations } from "../filesystem/TtscTransformFilesystemOperations.cjs";
3
3
  /**
4
- * Prepare actual plugin toolchain authority before synchronous input proofs.
4
+ * Qualify actual plugin toolchain authority before synchronous input proofs.
5
5
  * Cold Go/environment/SDK work stays off the host thread. A mismatch requests
6
6
  * one fresh native environment reading; observation failure remains unavailable
7
7
  * and the following admission or replay validator retains its failure policy. A
8
8
  * resident generation can reuse its exact proven source state while healthy
9
9
  * notifications and the still-qualified environment witness both hold. Native
10
- * environment preparation remains mandatory; source events cannot prove it.
10
+ * environment authority remains mandatory; source events cannot prove it.
11
+ *
12
+ * WARNING (#1712): yield before observing queued source changes, then qualify
13
+ * all current readings in one synchronous batch. Missing readings require an
14
+ * await and a fresh batch afterward. Source comparisons may request native
15
+ * refreshes; the caller must establish another current proof after those
16
+ * awaits. Never preserve a positive batch across an await or replay the SDK
17
+ * witness independently for every plugin and nested validator.
18
+ *
19
+ * The project root reaches ttsc's environment worker, so that isolate proves
20
+ * the Go SDK and executables from the plugin cache's records instead of reading
21
+ * 135 MB of SDK once per bundler or runtime process (samchon/ttsc#1722).
11
22
  *
12
23
  * @param cached Optional resident generation whose existing source-state and
13
24
  * environment witness may qualify source reuse. Other preparation owners
14
25
  * retain direct source comparison.
15
- * @evidence contracts/common.md#principled-implementation Every reported plugin directory prepares its actual current environment. The same result's matching manifest state can share source proof only with a healthy exact-source tracker and the environment under which that tree was proven. Otherwise this operation compares source state once and a mismatch refreshes environment authority for the following owning validator to compare again; failed preparation cannot qualify an input.
26
+ * @param projectRoot Project whose plugin cache holds those records; the
27
+ * resident generation's own root when omitted.
28
+ * @evidence contracts/common.md#principled-implementation Every reported plugin directory qualifies current environment authority; only missing readings require asynchronous preparation. The same result's matching manifest state can share source proof only with a healthy exact-source tracker and the environment under which that tree was proven. Otherwise this operation compares source state once and a mismatch refreshes environment authority for the following owning validator to compare again; failed preparation cannot qualify an input.
16
29
  * @evidence contracts/common.md#clear-and-simple-design One async boundary precedes existing synchronous generation, delivery and terminal proofs.
17
30
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Missing observations stay unproved; reported binary state never substitutes for native environment preparation or source comparison.
18
31
  * @evidence contracts/common.md#meaningful-documentation Native prose identifies off-thread work, mismatch refresh and preserved downstream failure ownership.
19
32
  * @evidence contracts/portability.md#os-neutral-implementation The same native toolchain/environment reader and caller filesystem source digest qualify each directory without platform guesses.
20
- * @evidence contracts/performance.md#efficient-algorithms The envelope selector builds its directory map once per result, and preparation visits each reported directory once. Environment requests build keys from effective variables and qualify native dependencies. A qualified source witness avoids enumeration; other source comparisons enumerate and sort files, check metadata and hash bytes when the digest cannot be reused. A mismatch requests one environment refresh rather than a second source comparison here.
33
+ * @evidence contracts/performance.md#efficient-algorithms The envelope selector indexes directories once per result. Linear directory passes batch-qualify current readings, prepare missing authority, compare source state and refresh mismatches. Each synchronous batch hashes variables once and shares distinct native dependencies; any preparation await requires another current batch. A qualified source witness avoids enumeration; other source comparisons enumerate and sort files, check metadata and hash bytes when the digest cannot be reused. A mismatch requests one environment refresh rather than a second source comparison here.
21
34
  * @evidence contracts/performance.md#reuse-equivalent-work The environment owner shares equivalent in-flight requests and still-qualified readings. Resident source proof is reused only for the exact result and manifest digest, unchanged qualified environment and currently healthy covered source notifications; absent, dirty, replaced or unavailable witnesses retain direct proof. No epoch or quiet watcher alone authorizes reuse, and subsequent admission still owns its current validation.
22
35
  * @evidence contracts/performance.md#bound-retention-and-release-resources This module records asynchronous execution ownership in a WeakSet before preparation, including failures, so disposed results are not retained. Requests and worker lifetimes remain with the environment owner; this sequential operation awaits each request and acquires no native observer or independent cancellation handle.
23
36
  */
24
- export declare function preparePluginBuildEnvironments(result: TtscCachedProjectTransform["result"], filesystem: TtscTransformFilesystemOperations, cached?: TtscCachedProjectTransform): Promise<void>;
37
+ export declare function preparePluginBuildEnvironments(result: TtscCachedProjectTransform["result"], filesystem: TtscTransformFilesystemOperations, cached?: TtscCachedProjectTransform, projectRoot?: string | undefined): Promise<void>;
25
38
  /**
26
39
  * Whether this result's owner attempted asynchronous native preparation. This
27
40
  * records execution ownership, never successful observation authority.
@@ -1,27 +1,40 @@
1
1
  import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.mjs";
2
2
  import type { TtscTransformFilesystemOperations } from "../filesystem/TtscTransformFilesystemOperations.mjs";
3
3
  /**
4
- * Prepare actual plugin toolchain authority before synchronous input proofs.
4
+ * Qualify actual plugin toolchain authority before synchronous input proofs.
5
5
  * Cold Go/environment/SDK work stays off the host thread. A mismatch requests
6
6
  * one fresh native environment reading; observation failure remains unavailable
7
7
  * and the following admission or replay validator retains its failure policy. A
8
8
  * resident generation can reuse its exact proven source state while healthy
9
9
  * notifications and the still-qualified environment witness both hold. Native
10
- * environment preparation remains mandatory; source events cannot prove it.
10
+ * environment authority remains mandatory; source events cannot prove it.
11
+ *
12
+ * WARNING (#1712): yield before observing queued source changes, then qualify
13
+ * all current readings in one synchronous batch. Missing readings require an
14
+ * await and a fresh batch afterward. Source comparisons may request native
15
+ * refreshes; the caller must establish another current proof after those
16
+ * awaits. Never preserve a positive batch across an await or replay the SDK
17
+ * witness independently for every plugin and nested validator.
18
+ *
19
+ * The project root reaches ttsc's environment worker, so that isolate proves
20
+ * the Go SDK and executables from the plugin cache's records instead of reading
21
+ * 135 MB of SDK once per bundler or runtime process (samchon/ttsc#1722).
11
22
  *
12
23
  * @param cached Optional resident generation whose existing source-state and
13
24
  * environment witness may qualify source reuse. Other preparation owners
14
25
  * retain direct source comparison.
15
- * @evidence contracts/common.md#principled-implementation Every reported plugin directory prepares its actual current environment. The same result's matching manifest state can share source proof only with a healthy exact-source tracker and the environment under which that tree was proven. Otherwise this operation compares source state once and a mismatch refreshes environment authority for the following owning validator to compare again; failed preparation cannot qualify an input.
26
+ * @param projectRoot Project whose plugin cache holds those records; the
27
+ * resident generation's own root when omitted.
28
+ * @evidence contracts/common.md#principled-implementation Every reported plugin directory qualifies current environment authority; only missing readings require asynchronous preparation. The same result's matching manifest state can share source proof only with a healthy exact-source tracker and the environment under which that tree was proven. Otherwise this operation compares source state once and a mismatch refreshes environment authority for the following owning validator to compare again; failed preparation cannot qualify an input.
16
29
  * @evidence contracts/common.md#clear-and-simple-design One async boundary precedes existing synchronous generation, delivery and terminal proofs.
17
30
  * @evidence contracts/common.md#prohibited-implementation-shortcuts Missing observations stay unproved; reported binary state never substitutes for native environment preparation or source comparison.
18
31
  * @evidence contracts/common.md#meaningful-documentation Native prose identifies off-thread work, mismatch refresh and preserved downstream failure ownership.
19
32
  * @evidence contracts/portability.md#os-neutral-implementation The same native toolchain/environment reader and caller filesystem source digest qualify each directory without platform guesses.
20
- * @evidence contracts/performance.md#efficient-algorithms The envelope selector builds its directory map once per result, and preparation visits each reported directory once. Environment requests build keys from effective variables and qualify native dependencies. A qualified source witness avoids enumeration; other source comparisons enumerate and sort files, check metadata and hash bytes when the digest cannot be reused. A mismatch requests one environment refresh rather than a second source comparison here.
33
+ * @evidence contracts/performance.md#efficient-algorithms The envelope selector indexes directories once per result. Linear directory passes batch-qualify current readings, prepare missing authority, compare source state and refresh mismatches. Each synchronous batch hashes variables once and shares distinct native dependencies; any preparation await requires another current batch. A qualified source witness avoids enumeration; other source comparisons enumerate and sort files, check metadata and hash bytes when the digest cannot be reused. A mismatch requests one environment refresh rather than a second source comparison here.
21
34
  * @evidence contracts/performance.md#reuse-equivalent-work The environment owner shares equivalent in-flight requests and still-qualified readings. Resident source proof is reused only for the exact result and manifest digest, unchanged qualified environment and currently healthy covered source notifications; absent, dirty, replaced or unavailable witnesses retain direct proof. No epoch or quiet watcher alone authorizes reuse, and subsequent admission still owns its current validation.
22
35
  * @evidence contracts/performance.md#bound-retention-and-release-resources This module records asynchronous execution ownership in a WeakSet before preparation, including failures, so disposed results are not retained. Requests and worker lifetimes remain with the environment owner; this sequential operation awaits each request and acquires no native observer or independent cancellation handle.
23
36
  */
24
- export declare function preparePluginBuildEnvironments(result: TtscCachedProjectTransform["result"], filesystem: TtscTransformFilesystemOperations, cached?: TtscCachedProjectTransform): Promise<void>;
37
+ export declare function preparePluginBuildEnvironments(result: TtscCachedProjectTransform["result"], filesystem: TtscTransformFilesystemOperations, cached?: TtscCachedProjectTransform, projectRoot?: string | undefined): Promise<void>;
25
38
  /**
26
39
  * Whether this result's owner attempted asynchronous native preparation. This
27
40
  * records execution ownership, never successful observation authority.