@ttsc/unplugin 0.31.0 → 0.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/core/bun/bun.d.cts +3 -2
- package/lib/core/bun/bun.d.mts +3 -2
- package/lib/core/bun/bun.d.ts +3 -2
- package/lib/core/bun/bun.js +8 -4
- package/lib/core/bun/bun.js.map +1 -1
- package/lib/core/bun/bun.mjs +8 -4
- package/lib/core/bun/bun.mjs.map +1 -1
- package/lib/core/observer/createInputObserver.js +6 -5
- package/lib/core/observer/createInputObserver.js.map +1 -1
- package/lib/core/observer/createInputObserver.mjs +6 -5
- package/lib/core/observer/createInputObserver.mjs.map +1 -1
- package/lib/core/observer/openIsolatedRecursiveWatch.d.cts +11 -12
- package/lib/core/observer/openIsolatedRecursiveWatch.d.mts +11 -12
- package/lib/core/observer/openIsolatedRecursiveWatch.d.ts +11 -12
- package/lib/core/observer/openIsolatedRecursiveWatch.js +11 -12
- package/lib/core/observer/openIsolatedRecursiveWatch.js.map +1 -1
- package/lib/core/observer/openIsolatedRecursiveWatch.mjs +11 -12
- package/lib/core/observer/openIsolatedRecursiveWatch.mjs.map +1 -1
- package/lib/core/transform/cache/TtscCachedProjectTransform.d.cts +12 -3
- package/lib/core/transform/cache/TtscCachedProjectTransform.d.mts +12 -3
- package/lib/core/transform/cache/TtscCachedProjectTransform.d.ts +12 -3
- package/lib/core/transform/cache/selectCachedGenerationAction.d.cts +2 -0
- package/lib/core/transform/cache/selectCachedGenerationAction.d.mts +2 -0
- package/lib/core/transform/cache/selectCachedGenerationAction.d.ts +2 -0
- package/lib/core/transform/cache/selectCachedGenerationAction.js +1 -1
- package/lib/core/transform/cache/selectCachedGenerationAction.js.map +1 -1
- package/lib/core/transform/cache/selectCachedGenerationAction.mjs +1 -1
- package/lib/core/transform/cache/selectCachedGenerationAction.mjs.map +1 -1
- package/lib/core/transform/deliverCachedTransform.d.cts +36 -0
- package/lib/core/transform/deliverCachedTransform.d.mts +36 -0
- package/lib/core/transform/deliverCachedTransform.d.ts +36 -0
- package/lib/core/transform/deliverCachedTransform.js +73 -0
- package/lib/core/transform/deliverCachedTransform.js.map +1 -0
- package/lib/core/transform/deliverCachedTransform.mjs +71 -0
- package/lib/core/transform/deliverCachedTransform.mjs.map +1 -0
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.cts +2 -2
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.mts +2 -2
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.d.ts +2 -2
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.js +6 -2
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.js.map +1 -1
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.mjs +6 -2
- package/lib/core/transform/envelope/selectDeclaredProjectInputKeys.mjs.map +1 -1
- package/lib/core/transform/envelope/selectExternalInputPaths.d.cts +3 -5
- package/lib/core/transform/envelope/selectExternalInputPaths.d.mts +3 -5
- package/lib/core/transform/envelope/selectExternalInputPaths.d.ts +3 -5
- package/lib/core/transform/envelope/selectExternalInputPaths.js +8 -7
- package/lib/core/transform/envelope/selectExternalInputPaths.js.map +1 -1
- package/lib/core/transform/envelope/selectExternalInputPaths.mjs +8 -7
- package/lib/core/transform/envelope/selectExternalInputPaths.mjs.map +1 -1
- package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.cts +15 -12
- package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.mts +15 -12
- package/lib/core/transform/filesystem/TtscTransformFilesystemOperations.d.ts +15 -12
- package/lib/core/transform/generation/selectTransformAttemptDisposition.d.cts +3 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.d.mts +3 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.d.ts +3 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.js +3 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.js.map +1 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.mjs +3 -1
- package/lib/core/transform/generation/selectTransformAttemptDisposition.mjs.map +1 -1
- package/lib/core/transform/generation/transformProject.d.cts +9 -7
- package/lib/core/transform/generation/transformProject.d.mts +9 -7
- package/lib/core/transform/generation/transformProject.d.ts +9 -7
- package/lib/core/transform/generation/transformProject.js +14 -9
- package/lib/core/transform/generation/transformProject.js.map +1 -1
- package/lib/core/transform/generation/transformProject.mjs +14 -9
- package/lib/core/transform/generation/transformProject.mjs.map +1 -1
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.cts +11 -4
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.mts +11 -4
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.d.ts +11 -4
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.js +44 -7
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.js.map +1 -1
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.mjs +44 -7
- package/lib/core/transform/inputs/preparePluginBuildEnvironments.mjs.map +1 -1
- package/lib/core/transform/tracker/broker/WatchBroker.d.cts +14 -4
- package/lib/core/transform/tracker/broker/WatchBroker.d.mts +14 -4
- package/lib/core/transform/tracker/broker/WatchBroker.d.ts +14 -4
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.cts +63 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.mts +63 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.d.ts +63 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.js +89 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.js.map +1 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.mjs +89 -0
- package/lib/core/transform/tracker/broker/WatchBrokerTransport.mjs.map +1 -0
- package/lib/core/transform/tracker/broker/drainWatchBroker.d.cts +8 -8
- package/lib/core/transform/tracker/broker/drainWatchBroker.d.mts +8 -8
- package/lib/core/transform/tracker/broker/drainWatchBroker.d.ts +8 -8
- package/lib/core/transform/tracker/broker/drainWatchBroker.js +12 -13
- package/lib/core/transform/tracker/broker/drainWatchBroker.js.map +1 -1
- package/lib/core/transform/tracker/broker/drainWatchBroker.mjs +12 -13
- package/lib/core/transform/tracker/broker/drainWatchBroker.mjs.map +1 -1
- package/lib/core/transform/tracker/broker/getWatchBroker.d.cts +18 -15
- package/lib/core/transform/tracker/broker/getWatchBroker.d.mts +18 -15
- package/lib/core/transform/tracker/broker/getWatchBroker.d.ts +18 -15
- package/lib/core/transform/tracker/broker/getWatchBroker.js +87 -17
- package/lib/core/transform/tracker/broker/getWatchBroker.js.map +1 -1
- package/lib/core/transform/tracker/broker/getWatchBroker.mjs +87 -17
- package/lib/core/transform/tracker/broker/getWatchBroker.mjs.map +1 -1
- package/lib/core/transform/tracker/broker/openBrokeredWatch.d.cts +5 -5
- package/lib/core/transform/tracker/broker/openBrokeredWatch.d.mts +5 -5
- package/lib/core/transform/tracker/broker/openBrokeredWatch.d.ts +5 -5
- package/lib/core/transform/tracker/broker/openBrokeredWatch.js +11 -14
- package/lib/core/transform/tracker/broker/openBrokeredWatch.js.map +1 -1
- package/lib/core/transform/tracker/broker/openBrokeredWatch.mjs +11 -14
- package/lib/core/transform/tracker/broker/openBrokeredWatch.mjs.map +1 -1
- package/lib/core/transform/tracker/broker/usesWatchBroker.d.cts +7 -7
- package/lib/core/transform/tracker/broker/usesWatchBroker.d.mts +7 -7
- package/lib/core/transform/tracker/broker/usesWatchBroker.d.ts +7 -7
- package/lib/core/transform/tracker/broker/usesWatchBroker.js +7 -7
- package/lib/core/transform/tracker/broker/usesWatchBroker.mjs +7 -7
- package/lib/core/transform/tracker/broker/watchBrokerSource.d.cts +9 -10
- package/lib/core/transform/tracker/broker/watchBrokerSource.d.mts +9 -10
- package/lib/core/transform/tracker/broker/watchBrokerSource.d.ts +9 -10
- package/lib/core/transform/tracker/broker/watchBrokerSource.js +10 -11
- package/lib/core/transform/tracker/broker/watchBrokerSource.js.map +1 -1
- package/lib/core/transform/tracker/broker/watchBrokerSource.mjs +10 -11
- package/lib/core/transform/tracker/broker/watchBrokerSource.mjs.map +1 -1
- package/lib/core/transform/transformTtsc.d.cts +7 -4
- package/lib/core/transform/transformTtsc.d.mts +7 -4
- package/lib/core/transform/transformTtsc.d.ts +7 -4
- package/lib/core/transform/transformTtsc.js +37 -92
- package/lib/core/transform/transformTtsc.js.map +1 -1
- package/lib/core/transform/transformTtsc.mjs +37 -92
- package/lib/core/transform/transformTtsc.mjs.map +1 -1
- package/lib/core/transform/validation/TtscGenerationProof.d.cts +105 -0
- package/lib/core/transform/validation/TtscGenerationProof.d.mts +105 -0
- package/lib/core/transform/validation/TtscGenerationProof.d.ts +105 -0
- package/lib/core/transform/validation/TtscGenerationProof.js +149 -0
- package/lib/core/transform/validation/TtscGenerationProof.js.map +1 -0
- package/lib/core/transform/validation/TtscGenerationProof.mjs +149 -0
- package/lib/core/transform/validation/TtscGenerationProof.mjs.map +1 -0
- package/lib/core/transform/validation/matchesCachedSource.d.cts +18 -15
- package/lib/core/transform/validation/matchesCachedSource.d.mts +18 -15
- package/lib/core/transform/validation/matchesCachedSource.d.ts +18 -15
- package/lib/core/transform/validation/matchesCachedSource.js +28 -22
- package/lib/core/transform/validation/matchesCachedSource.js.map +1 -1
- package/lib/core/transform/validation/matchesCachedSource.mjs +28 -22
- package/lib/core/transform/validation/matchesCachedSource.mjs.map +1 -1
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.cts +3 -2
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.mts +3 -2
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.d.ts +3 -2
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.js +4 -4
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.js.map +1 -1
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.mjs +4 -4
- package/lib/core/transform/validation/matchesCompleteInputSnapshot.mjs.map +1 -1
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.cts +2 -1
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.mts +2 -1
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.d.ts +2 -1
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.js +2 -2
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.js.map +1 -1
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.mjs +2 -2
- package/lib/core/transform/validation/matchesNarrowPersistentInputs.mjs.map +1 -1
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.cts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.mts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.d.ts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.js +5 -3
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.js.map +1 -1
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.mjs +5 -3
- package/lib/core/transform/validation/matchesUniversalHostInputTrees.mjs.map +1 -1
- package/lib/core/transform/validation/matchesUniversalHostInputs.d.cts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputs.d.mts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputs.d.ts +3 -2
- package/lib/core/transform/validation/matchesUniversalHostInputs.js +5 -5
- package/lib/core/transform/validation/matchesUniversalHostInputs.js.map +1 -1
- package/lib/core/transform/validation/matchesUniversalHostInputs.mjs +5 -5
- package/lib/core/transform/validation/matchesUniversalHostInputs.mjs.map +1 -1
- package/lib/core/transform/validation/nativeInputPredicatesHold.d.cts +5 -4
- package/lib/core/transform/validation/nativeInputPredicatesHold.d.mts +5 -4
- package/lib/core/transform/validation/nativeInputPredicatesHold.d.ts +5 -4
- package/lib/core/transform/validation/nativeInputPredicatesHold.js +31 -12
- package/lib/core/transform/validation/nativeInputPredicatesHold.js.map +1 -1
- package/lib/core/transform/validation/nativeInputPredicatesHold.mjs +31 -12
- package/lib/core/transform/validation/nativeInputPredicatesHold.mjs.map +1 -1
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.cts +2 -1
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.mts +2 -1
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.d.ts +2 -1
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.js +2 -2
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.js.map +1 -1
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.mjs +2 -2
- package/lib/core/transform/validation/notificationsProveProgramUnchanged.mjs.map +1 -1
- package/lib/core/transform/watch/notifyWatchInputs.js +3 -0
- package/lib/core/transform/watch/notifyWatchInputs.js.map +1 -1
- package/lib/core/transform/watch/notifyWatchInputs.mjs +3 -0
- package/lib/core/transform/watch/notifyWatchInputs.mjs.map +1 -1
- package/lib/core/turbopack/turbopack.js +2 -1
- package/lib/core/turbopack/turbopack.js.map +1 -1
- package/lib/core/turbopack/turbopack.mjs +2 -1
- package/lib/core/turbopack/turbopack.mjs.map +1 -1
- package/package.json +3 -3
- package/src/core/bun/bun.ts +8 -4
- package/src/core/observer/createInputObserver.ts +6 -5
- package/src/core/observer/openIsolatedRecursiveWatch.ts +11 -12
- package/src/core/transform/cache/TtscCachedProjectTransform.ts +13 -3
- package/src/core/transform/cache/selectCachedGenerationAction.ts +9 -1
- package/src/core/transform/deliverCachedTransform.ts +97 -0
- package/src/core/transform/envelope/selectDeclaredProjectInputKeys.ts +5 -2
- package/src/core/transform/envelope/selectExternalInputPaths.ts +7 -7
- package/src/core/transform/filesystem/TtscTransformFilesystemOperations.ts +15 -12
- package/src/core/transform/generation/selectTransformAttemptDisposition.ts +3 -1
- package/src/core/transform/generation/transformProject.ts +13 -9
- package/src/core/transform/inputs/preparePluginBuildEnvironments.ts +41 -7
- package/src/core/transform/tracker/broker/WatchBroker.ts +15 -4
- package/src/core/transform/tracker/broker/WatchBrokerTransport.ts +82 -0
- package/src/core/transform/tracker/broker/drainWatchBroker.ts +12 -13
- package/src/core/transform/tracker/broker/getWatchBroker.ts +89 -18
- package/src/core/transform/tracker/broker/openBrokeredWatch.ts +11 -14
- package/src/core/transform/tracker/broker/usesWatchBroker.ts +7 -7
- package/src/core/transform/tracker/broker/watchBrokerSource.ts +10 -11
- package/src/core/transform/transformTtsc.ts +36 -92
- package/src/core/transform/validation/TtscGenerationProof.ts +201 -0
- package/src/core/transform/validation/matchesCachedSource.ts +27 -21
- package/src/core/transform/validation/matchesCompleteInputSnapshot.ts +5 -3
- package/src/core/transform/validation/matchesNarrowPersistentInputs.ts +3 -1
- package/src/core/transform/validation/matchesUniversalHostInputTrees.ts +6 -2
- package/src/core/transform/validation/matchesUniversalHostInputs.ts +6 -4
- package/src/core/transform/validation/nativeInputPredicatesHold.ts +36 -14
- package/src/core/transform/validation/notificationsProveProgramUnchanged.ts +3 -1
- package/src/core/transform/watch/notifyWatchInputs.ts +3 -0
- package/src/core/turbopack/turbopack.ts +2 -1
|
@@ -9,6 +9,7 @@ import { pathIdentityKey } from '../filesystem/pathIdentityKey.mjs';
|
|
|
9
9
|
import { hostInputStateHash } from '../inputs/hostInputStateHash.mjs';
|
|
10
10
|
import { toProjectKey } from '../project/toProjectKey.mjs';
|
|
11
11
|
import { hashText } from '../utils/hashText.mjs';
|
|
12
|
+
import { TtscGenerationProof } from './TtscGenerationProof.mjs';
|
|
12
13
|
import { matchesCompleteInputSnapshot } from './matchesCompleteInputSnapshot.mjs';
|
|
13
14
|
import { matchesNarrowPersistentInputs } from './matchesNarrowPersistentInputs.mjs';
|
|
14
15
|
import { nativeInputPredicatesHold } from './nativeInputPredicatesHold.mjs';
|
|
@@ -23,17 +24,19 @@ import { notificationsProveProgramUnchanged } from './notificationsProveProgramU
|
|
|
23
24
|
* no source comparison. A cache with a delivery epoch can use that comparison
|
|
24
25
|
* alone for a stable generation's first delivery of each module in the current
|
|
25
26
|
* pass, once the pass's own first delivery has proven the whole generation
|
|
26
|
-
* still matches the filesystem.
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
27
|
+
* still matches the filesystem. Incomplete generations cannot claim complete
|
|
28
|
+
* proof. A coherent local success admitted only because its observer was
|
|
29
|
+
* unavailable may share first deliveries in its exact nonwatching pass through
|
|
30
|
+
* TtscGenerationProof; it cannot cross passes or earn persistent authority.
|
|
31
|
+
* Later graph-bearing requests validate the file's derived input set and
|
|
32
|
+
* project membership. A failed result is a diagnostic of the whole loaded
|
|
33
|
+
* program, so its repair cannot be proved by one delivered output's dependency
|
|
34
|
+
* closure. Failed and graph-free envelopes conservatively validate the complete
|
|
35
|
+
* project and out-of-walk snapshots, reusing qualified signatures. A mismatch
|
|
36
|
+
* rejects this generation for the delivery; its caller chooses replacement or
|
|
37
|
+
* capture. Delivered text that differs while the disk still holds the bytes the
|
|
38
|
+
* generation compiled is not one: it is reported and served, since the compile
|
|
39
|
+
* read the disk (samchon/ttsc#1394).
|
|
37
40
|
*
|
|
38
41
|
* Its place in the adapter's invalidation model, and the units beside it, are
|
|
39
42
|
* mapped in the maintainer page
|
|
@@ -41,7 +44,7 @@ import { notificationsProveProgramUnchanged } from './notificationsProveProgramU
|
|
|
41
44
|
*
|
|
42
45
|
* @evidence contracts/common.md#principled-implementation Delivered source, generation completeness, pass identity and notification authority choose between first-delivery proof, derived-input validation and complete snapshots; divergent editor text never substitutes for compiler disk inputs.
|
|
43
46
|
* @evidence contracts/common.md#clear-and-simple-design This admission boundary chooses the required proof while dedicated validators own membership, universal inputs and content comparisons.
|
|
44
|
-
* @evidence contracts/common.md#prohibited-implementation-shortcuts An incomplete generation cannot
|
|
47
|
+
* @evidence contracts/common.md#prohibited-implementation-shortcuts An incomplete generation cannot claim complete snapshot authority; only separately admitted coherent local success can share first deliveries of its exact nonwatching pass; inherited object members cannot invent a project baseline, and losing watcher proof falls back to recorded-state validation.
|
|
45
48
|
* @evidence contracts/common.md#meaningful-documentation Separate native paragraphs explain disk-versus-delivered authority, epoch qualification, fallback and related maintainer guidance before tags.
|
|
46
49
|
* @evidence contracts/portability.md#os-neutral-implementation Project membership and path identity use recorded compiler case policy and injected native operations; OS names do not certify case sensitivity or watcher capabilities.
|
|
47
50
|
* @evidence contracts/performance.md#bound-retention-and-release-resources
|
|
@@ -51,13 +54,13 @@ import { notificationsProveProgramUnchanged } from './notificationsProveProgramU
|
|
|
51
54
|
* while validators replace current signature/directory witnesses. No new
|
|
52
55
|
* independent handle or historical epoch collection is acquired here.
|
|
53
56
|
* @evidence contracts/performance.md#efficient-algorithms Every admission first replays all generation-owned typed config predicates; this mandatory cost includes native queries, file bytes or directory membership independently of watcher/epoch qualification.
|
|
54
|
-
*
|
|
57
|
+
* Unsupported fresh-only rejection precedes source baseline work. Baseline-bearing paths
|
|
55
58
|
* hash delivered text and divergent paths read/hash host bytes; unrelated
|
|
56
59
|
* absent outputs can return before that hash after an initial K-output index.
|
|
57
60
|
* Epoch-qualified first checkpoints share the complete proof. Other paths
|
|
58
61
|
* pay derived-input or complete project/external/universal proof costs,
|
|
59
62
|
* including path/byte populations, native observations and clock refresh.
|
|
60
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Typed config predicate replay
|
|
63
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Typed config predicate replay remains mandatory for every delivery and shares only the current synchronous transaction with nested validators; immutable membership is indexed separately. A complete generation earns one whole-snapshot proof per new delivery epoch; later first deliveries share it, while repeated or persistent deliveries revalidate their authoritative dependency scope.
|
|
61
64
|
*/
|
|
62
65
|
function matchesCachedSource(
|
|
63
66
|
/** Generation retaining recorded baselines and distinct proof authority. */
|
|
@@ -67,10 +70,11 @@ file,
|
|
|
67
70
|
/** Delivered text, compared with the recorded baseline rather than adopted. */
|
|
68
71
|
source,
|
|
69
72
|
/** Current host pass, or undefined for persistent input validation. */
|
|
70
|
-
epoch) {
|
|
71
|
-
if (!nativeInputPredicatesHold(cached))
|
|
73
|
+
epoch, proof) {
|
|
74
|
+
if (!nativeInputPredicatesHold(cached, proof))
|
|
72
75
|
return false;
|
|
73
|
-
|
|
76
|
+
const pass = TtscGenerationProof.sharesPass(cached, file, epoch);
|
|
77
|
+
if (cached.freshDeliveryOnly === true && !pass)
|
|
74
78
|
return false;
|
|
75
79
|
const identities = envelopeDerivation(cached).identityContext;
|
|
76
80
|
const currentKey = toProjectKey(cached.projectRoot, file, identities);
|
|
@@ -88,7 +92,7 @@ epoch) {
|
|
|
88
92
|
if (!outputs.has(identity)) {
|
|
89
93
|
// While the watchers prove the program unchanged, the module is still
|
|
90
94
|
// outside it, and no walk is needed to say so (samchon/ttsc#1398).
|
|
91
|
-
if (notificationsProveProgramUnchanged(cached)) {
|
|
95
|
+
if (notificationsProveProgramUnchanged(cached, proof)) {
|
|
92
96
|
return true;
|
|
93
97
|
}
|
|
94
98
|
// Root discovery deliberately never hashed this unrelated module. Its
|
|
@@ -96,7 +100,7 @@ epoch) {
|
|
|
96
100
|
// whole program must still be current before we reuse that absence: a
|
|
97
101
|
// changed config or importer can bring this file into the next program.
|
|
98
102
|
refreshFilesystemClockReference(TRANSFORM_CLOCK_REFERENCE_DIRECTORIES.get(cached), resultFilesystem(cached.result));
|
|
99
|
-
return matchesCompleteInputSnapshot(cached);
|
|
103
|
+
return matchesCompleteInputSnapshot(cached, proof);
|
|
100
104
|
}
|
|
101
105
|
}
|
|
102
106
|
if (expected !== hashText(source)) {
|
|
@@ -111,6 +115,8 @@ epoch) {
|
|
|
111
115
|
}
|
|
112
116
|
reportDivergentDelivery(cached, file);
|
|
113
117
|
}
|
|
118
|
+
if (pass)
|
|
119
|
+
return true;
|
|
114
120
|
if (epoch !== undefined && cached.projectSnapshotComplete === true) {
|
|
115
121
|
if (cached.deliveryEpoch !== epoch) {
|
|
116
122
|
// The pass's first delivery. The generation was settled against an
|
|
@@ -120,7 +126,7 @@ epoch) {
|
|
|
120
126
|
// settled against it. That proof is what a per-pass recompile used to buy
|
|
121
127
|
// (samchon/ttsc#1300), at a walk instead of a compile.
|
|
122
128
|
refreshFilesystemClockReference(TRANSFORM_CLOCK_REFERENCE_DIRECTORIES.get(cached), resultFilesystem(cached.result));
|
|
123
|
-
if (!matchesCompleteInputSnapshot(cached)) {
|
|
129
|
+
if (!matchesCompleteInputSnapshot(cached, proof)) {
|
|
124
130
|
return false;
|
|
125
131
|
}
|
|
126
132
|
cached.deliveryEpoch = epoch;
|
|
@@ -138,7 +144,7 @@ epoch) {
|
|
|
138
144
|
cached.projectDirectories !== undefined &&
|
|
139
145
|
cached.projectMutationTracker !== undefined &&
|
|
140
146
|
cached.hostInputMutationTracker !== undefined) {
|
|
141
|
-
const narrow = matchesNarrowPersistentInputs(cached, file);
|
|
147
|
+
const narrow = matchesNarrowPersistentInputs(cached, file, proof);
|
|
142
148
|
if (narrow !== undefined) {
|
|
143
149
|
return narrow;
|
|
144
150
|
}
|
|
@@ -146,7 +152,7 @@ epoch) {
|
|
|
146
152
|
// produced. Losing the proof is not evidence of a change, so fall through
|
|
147
153
|
// to the snapshot the entry still carries.
|
|
148
154
|
}
|
|
149
|
-
return matchesCompleteInputSnapshot(cached);
|
|
155
|
+
return matchesCompleteInputSnapshot(cached, proof);
|
|
150
156
|
}
|
|
151
157
|
|
|
152
158
|
export { matchesCachedSource };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchesCachedSource.mjs","sources":["../../../../src/core/transform/validation/matchesCachedSource.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"matchesCachedSource.mjs","sources":["../../../../src/core/transform/validation/matchesCachedSource.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CG;SACa,mBAAmB;AACjC;AACA,MAAkC;AAClC;AACA,IAAY;AACZ;AACA,MAAc;AACd;AACA,KAAyB,EACzB,KAAuC,EAAA;AAEvC,IAAA,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK;AAC3D,IAAA,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AAChE,IAAA,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,KAAK;IAC5D,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,eAAe;AAC7D,IAAA,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC;IACrE,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC;IAClD,MAAM,QAAQ,GACZ,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC;AAC/B,SAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU;AAClE,cAAE,MAAM,CAAC,WAAW,CAAC,UAAU;cAC7B,SAAS,CAAC;AACd,QAAA,MAAM,CAAC,mBAAmB,GAAG,QAAQ,CAAC;IACxC,IACE,QAAQ,KAAK,SAAS;AACtB,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;QAChC,CAAC,sBAAsB,CACrB,IAAI,EACJ,MAAM,CAAC,gBAAgB,EACvB,KAAK,EACL,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CACzC,EACD;AACA,QAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACxC,MAAM,OAAO,IAAI,KAAK,CAAC,WAAW,KAAK,sBAAsB,CAC3D,KAAK,EACL,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CACrE,CACF,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;;;AAG1B,YAAA,IAAI,kCAAkC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;AACrD,gBAAA,OAAO,IAAI;YACb;;;;;AAKA,YAAA,+BAA+B,CAC7B,qCAAqC,CAAC,GAAG,CAAC,MAAM,CAAC,EACjD,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAChC;AACD,YAAA,OAAO,4BAA4B,CAAC,MAAM,EAAE,KAAK,CAAC;QACpD;IACF;AACA,IAAA,IAAI,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE;;;;;;QAMjC,IACE,QAAQ,KAAK,SAAS;AACtB,YAAA,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,QAAQ,EACtE;AACA,YAAA,OAAO,KAAK;QACd;AACA,QAAA,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC;IACvC;AACA,IAAA,IAAI,IAAI;AAAE,QAAA,OAAO,IAAI;IACrB,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,uBAAuB,KAAK,IAAI,EAAE;AAClE,QAAA,IAAI,MAAM,CAAC,aAAa,KAAK,KAAK,EAAE;;;;;;;AAOlC,YAAA,+BAA+B,CAC7B,qCAAqC,CAAC,GAAG,CAAC,MAAM,CAAC,EACjD,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAChC;YACD,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;AAChD,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,MAAM,CAAC,aAAa,GAAG,KAAK;AAC5B,YAAA,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE;AAC3B,YAAA,OAAO,IAAI;QACb;QACA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI;QACb;IACF;AACA,IAAA,+BAA+B,CAC7B,qCAAqC,CAAC,GAAG,CAAC,MAAM,CAAC,EACjD,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAChC;AACD,IAAA,IACE,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;AAChC,QAAA,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS;QACjC,MAAM,CAAC,uBAAuB,KAAK,IAAI;QACvC,MAAM,CAAC,kBAAkB,KAAK,SAAS;QACvC,MAAM,CAAC,sBAAsB,KAAK,SAAS;AAC3C,QAAA,MAAM,CAAC,wBAAwB,KAAK,SAAS,EAC7C;QACA,MAAM,MAAM,GAAG,6BAA6B,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AACjE,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,OAAO,MAAM;QACf;;;;IAIF;AACA,IAAA,OAAO,4BAA4B,CAAC,MAAM,EAAE,KAAK,CAAC;AACpD;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.cjs";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof.cjs";
|
|
2
3
|
/**
|
|
3
4
|
* Prove one generation from its own recorded snapshot, with no help from live
|
|
4
5
|
* notifications.
|
|
@@ -29,11 +30,11 @@ import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTrans
|
|
|
29
30
|
* target scans, signature entry materialization/adoption and native identity
|
|
30
31
|
* work add population/path/digit costs; unresolved content and predicate
|
|
31
32
|
* replay add bytes/listings. Early rejection skips subsequent domains.
|
|
32
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Typed config
|
|
33
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Typed config predicates remain mandatory on every delivery. An exact-generation synchronous transaction may share their current replay across nested validators, but no pass or notification shortcut authorizes a later delivery to skip them. Qualified separable signatures avoid repeated content reads under the caller's refreshed clock. Successful aggregate proof adopts earned project/external signatures and clears unverified flags; it neither clears recorded changes/failed flags nor makes later quiet notifications sufficient without their other admission conditions.
|
|
33
34
|
*/
|
|
34
35
|
export declare function matchesCompleteInputSnapshot(
|
|
35
36
|
/**
|
|
36
37
|
* Generation with a complete capture baseline and caller-refreshed clock
|
|
37
38
|
* proof.
|
|
38
39
|
*/
|
|
39
|
-
cached: TtscCachedProjectTransform): boolean;
|
|
40
|
+
cached: TtscCachedProjectTransform, proof?: TtscGenerationProof.Transaction): boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.mjs";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof.mjs";
|
|
2
3
|
/**
|
|
3
4
|
* Prove one generation from its own recorded snapshot, with no help from live
|
|
4
5
|
* notifications.
|
|
@@ -29,11 +30,11 @@ import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTrans
|
|
|
29
30
|
* target scans, signature entry materialization/adoption and native identity
|
|
30
31
|
* work add population/path/digit costs; unresolved content and predicate
|
|
31
32
|
* replay add bytes/listings. Early rejection skips subsequent domains.
|
|
32
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Typed config
|
|
33
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Typed config predicates remain mandatory on every delivery. An exact-generation synchronous transaction may share their current replay across nested validators, but no pass or notification shortcut authorizes a later delivery to skip them. Qualified separable signatures avoid repeated content reads under the caller's refreshed clock. Successful aggregate proof adopts earned project/external signatures and clears unverified flags; it neither clears recorded changes/failed flags nor makes later quiet notifications sufficient without their other admission conditions.
|
|
33
34
|
*/
|
|
34
35
|
export declare function matchesCompleteInputSnapshot(
|
|
35
36
|
/**
|
|
36
37
|
* Generation with a complete capture baseline and caller-refreshed clock
|
|
37
38
|
* proof.
|
|
38
39
|
*/
|
|
39
|
-
cached: TtscCachedProjectTransform): boolean;
|
|
40
|
+
cached: TtscCachedProjectTransform, proof?: TtscGenerationProof.Transaction): boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof";
|
|
2
3
|
/**
|
|
3
4
|
* Prove one generation from its own recorded snapshot, with no help from live
|
|
4
5
|
* notifications.
|
|
@@ -29,11 +30,11 @@ import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTrans
|
|
|
29
30
|
* target scans, signature entry materialization/adoption and native identity
|
|
30
31
|
* work add population/path/digit costs; unresolved content and predicate
|
|
31
32
|
* replay add bytes/listings. Early rejection skips subsequent domains.
|
|
32
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Typed config
|
|
33
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Typed config predicates remain mandatory on every delivery. An exact-generation synchronous transaction may share their current replay across nested validators, but no pass or notification shortcut authorizes a later delivery to skip them. Qualified separable signatures avoid repeated content reads under the caller's refreshed clock. Successful aggregate proof adopts earned project/external signatures and clears unverified flags; it neither clears recorded changes/failed flags nor makes later quiet notifications sufficient without their other admission conditions.
|
|
33
34
|
*/
|
|
34
35
|
export declare function matchesCompleteInputSnapshot(
|
|
35
36
|
/**
|
|
36
37
|
* Generation with a complete capture baseline and caller-refreshed clock
|
|
37
38
|
* proof.
|
|
38
39
|
*/
|
|
39
|
-
cached: TtscCachedProjectTransform): boolean;
|
|
40
|
+
cached: TtscCachedProjectTransform, proof?: TtscGenerationProof.Transaction): boolean;
|
|
@@ -44,15 +44,15 @@ var walkSnapshotComplete = require('./walkSnapshotComplete.js');
|
|
|
44
44
|
* target scans, signature entry materialization/adoption and native identity
|
|
45
45
|
* work add population/path/digit costs; unresolved content and predicate
|
|
46
46
|
* replay add bytes/listings. Early rejection skips subsequent domains.
|
|
47
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Typed config
|
|
47
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Typed config predicates remain mandatory on every delivery. An exact-generation synchronous transaction may share their current replay across nested validators, but no pass or notification shortcut authorizes a later delivery to skip them. Qualified separable signatures avoid repeated content reads under the caller's refreshed clock. Successful aggregate proof adopts earned project/external signatures and clears unverified flags; it neither clears recorded changes/failed flags nor makes later quiet notifications sufficient without their other admission conditions.
|
|
48
48
|
*/
|
|
49
49
|
function matchesCompleteInputSnapshot(
|
|
50
50
|
/**
|
|
51
51
|
* Generation with a complete capture baseline and caller-refreshed clock
|
|
52
52
|
* proof.
|
|
53
53
|
*/
|
|
54
|
-
cached) {
|
|
55
|
-
if (!nativeInputPredicatesHold.nativeInputPredicatesHold(cached))
|
|
54
|
+
cached, proof) {
|
|
55
|
+
if (!nativeInputPredicatesHold.nativeInputPredicatesHold(cached, proof))
|
|
56
56
|
return false;
|
|
57
57
|
if (cached.projectSnapshotComplete !== true ||
|
|
58
58
|
cached.projectDirectories === undefined) {
|
|
@@ -70,7 +70,7 @@ cached) {
|
|
|
70
70
|
if (hostValidation === undefined ||
|
|
71
71
|
!matchesUniversalHostInputEntries.matchesUniversalHostInputEntries(cached, hostValidation) ||
|
|
72
72
|
!matchesUniversalHostInputProbes.matchesUniversalHostInputProbes(cached, hostValidation) ||
|
|
73
|
-
!matchesUniversalHostInputTrees.matchesUniversalHostInputTrees(cached, hostValidation)) {
|
|
73
|
+
!matchesUniversalHostInputTrees.matchesUniversalHostInputTrees(cached, hostValidation, proof)) {
|
|
74
74
|
return false;
|
|
75
75
|
}
|
|
76
76
|
const declaredInputs = declaredProjectInputKeys.declaredProjectInputKeys(state, cached);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchesCompleteInputSnapshot.js","sources":["../../../../src/core/transform/validation/matchesCompleteInputSnapshot.ts"],"sourcesContent":[null],"names":["nativeInputPredicatesHold","envelopeDerivation","matchesUniversalHostInputEntries","matchesUniversalHostInputProbes","matchesUniversalHostInputTrees","declaredProjectInputKeys","collectProjectInputSnapshot","resultFilesystem","walkSnapshotComplete","sameProjectDirectories","sameHashes","matchesCachedExternalInputs","matchesExternalInputRealpaths"],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"matchesCompleteInputSnapshot.js","sources":["../../../../src/core/transform/validation/matchesCompleteInputSnapshot.ts"],"sourcesContent":[null],"names":["nativeInputPredicatesHold","envelopeDerivation","matchesUniversalHostInputEntries","matchesUniversalHostInputProbes","matchesUniversalHostInputTrees","declaredProjectInputKeys","collectProjectInputSnapshot","resultFilesystem","walkSnapshotComplete","sameProjectDirectories","sameHashes","matchesCachedExternalInputs","matchesExternalInputRealpaths"],"mappings":"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"}
|
|
@@ -42,15 +42,15 @@ import { walkSnapshotComplete } from './walkSnapshotComplete.mjs';
|
|
|
42
42
|
* target scans, signature entry materialization/adoption and native identity
|
|
43
43
|
* work add population/path/digit costs; unresolved content and predicate
|
|
44
44
|
* replay add bytes/listings. Early rejection skips subsequent domains.
|
|
45
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Typed config
|
|
45
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Typed config predicates remain mandatory on every delivery. An exact-generation synchronous transaction may share their current replay across nested validators, but no pass or notification shortcut authorizes a later delivery to skip them. Qualified separable signatures avoid repeated content reads under the caller's refreshed clock. Successful aggregate proof adopts earned project/external signatures and clears unverified flags; it neither clears recorded changes/failed flags nor makes later quiet notifications sufficient without their other admission conditions.
|
|
46
46
|
*/
|
|
47
47
|
function matchesCompleteInputSnapshot(
|
|
48
48
|
/**
|
|
49
49
|
* Generation with a complete capture baseline and caller-refreshed clock
|
|
50
50
|
* proof.
|
|
51
51
|
*/
|
|
52
|
-
cached) {
|
|
53
|
-
if (!nativeInputPredicatesHold(cached))
|
|
52
|
+
cached, proof) {
|
|
53
|
+
if (!nativeInputPredicatesHold(cached, proof))
|
|
54
54
|
return false;
|
|
55
55
|
if (cached.projectSnapshotComplete !== true ||
|
|
56
56
|
cached.projectDirectories === undefined) {
|
|
@@ -68,7 +68,7 @@ cached) {
|
|
|
68
68
|
if (hostValidation === undefined ||
|
|
69
69
|
!matchesUniversalHostInputEntries(cached, hostValidation) ||
|
|
70
70
|
!matchesUniversalHostInputProbes(cached, hostValidation) ||
|
|
71
|
-
!matchesUniversalHostInputTrees(cached, hostValidation)) {
|
|
71
|
+
!matchesUniversalHostInputTrees(cached, hostValidation, proof)) {
|
|
72
72
|
return false;
|
|
73
73
|
}
|
|
74
74
|
const declaredInputs = declaredProjectInputKeys(state, cached);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchesCompleteInputSnapshot.mjs","sources":["../../../../src/core/transform/validation/matchesCompleteInputSnapshot.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"matchesCompleteInputSnapshot.mjs","sources":["../../../../src/core/transform/validation/matchesCompleteInputSnapshot.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.cjs";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof.cjs";
|
|
2
3
|
/**
|
|
3
4
|
* Validate one graph-bearing cached output against only the inputs that can
|
|
4
5
|
* affect that file. The delivery validator establishes its complete baseline
|
|
@@ -39,4 +40,4 @@ export declare function matchesNarrowPersistentInputs(
|
|
|
39
40
|
*/
|
|
40
41
|
cached: TtscCachedProjectTransform,
|
|
41
42
|
/** Delivered file spelling selecting this envelope's dependency closure. */
|
|
42
|
-
file: string): boolean | undefined;
|
|
43
|
+
file: string, proof?: TtscGenerationProof.Transaction): boolean | undefined;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.mjs";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof.mjs";
|
|
2
3
|
/**
|
|
3
4
|
* Validate one graph-bearing cached output against only the inputs that can
|
|
4
5
|
* affect that file. The delivery validator establishes its complete baseline
|
|
@@ -39,4 +40,4 @@ export declare function matchesNarrowPersistentInputs(
|
|
|
39
40
|
*/
|
|
40
41
|
cached: TtscCachedProjectTransform,
|
|
41
42
|
/** Delivered file spelling selecting this envelope's dependency closure. */
|
|
42
|
-
file: string): boolean | undefined;
|
|
43
|
+
file: string, proof?: TtscGenerationProof.Transaction): boolean | undefined;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof";
|
|
2
3
|
/**
|
|
3
4
|
* Validate one graph-bearing cached output against only the inputs that can
|
|
4
5
|
* affect that file. The delivery validator establishes its complete baseline
|
|
@@ -39,4 +40,4 @@ export declare function matchesNarrowPersistentInputs(
|
|
|
39
40
|
*/
|
|
40
41
|
cached: TtscCachedProjectTransform,
|
|
41
42
|
/** Delivered file spelling selecting this envelope's dependency closure. */
|
|
42
|
-
file: string): boolean | undefined;
|
|
43
|
+
file: string, proof?: TtscGenerationProof.Transaction): boolean | undefined;
|
|
@@ -48,7 +48,7 @@ function matchesNarrowPersistentInputs(
|
|
|
48
48
|
*/
|
|
49
49
|
cached,
|
|
50
50
|
/** Delivered file spelling selecting this envelope's dependency closure. */
|
|
51
|
-
file) {
|
|
51
|
+
file, proof) {
|
|
52
52
|
if (reportsMembershipChange.reportsMembershipChange(cached)) {
|
|
53
53
|
return false;
|
|
54
54
|
}
|
|
@@ -60,7 +60,7 @@ file) {
|
|
|
60
60
|
if (hostValidation === undefined) {
|
|
61
61
|
return undefined;
|
|
62
62
|
}
|
|
63
|
-
if (!matchesUniversalHostInputs.matchesUniversalHostInputs(cached, hostValidation)) {
|
|
63
|
+
if (!matchesUniversalHostInputs.matchesUniversalHostInputs(cached, hostValidation, proof)) {
|
|
64
64
|
return false;
|
|
65
65
|
}
|
|
66
66
|
const inputs = selectWatchInputs.selectWatchInputs({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchesNarrowPersistentInputs.js","sources":["../../../../src/core/transform/validation/matchesNarrowPersistentInputs.ts"],"sourcesContent":[null],"names":["reportsMembershipChange","notificationsProveMembership","envelopeDerivation","matchesUniversalHostInputs","selectWatchInputs","matchesProvenInput"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"matchesNarrowPersistentInputs.js","sources":["../../../../src/core/transform/validation/matchesNarrowPersistentInputs.ts"],"sourcesContent":[null],"names":["reportsMembershipChange","notificationsProveMembership","envelopeDerivation","matchesUniversalHostInputs","selectWatchInputs","matchesProvenInput"],"mappings":";;;;;;;;;;AAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;SACa,6BAA6B;AAC3C;;;AAGG;AACH,MAAkC;AAClC;AACA,IAAY,EACZ,KAAuC,EAAA;AAEvC,IAAA,IAAIA,+CAAuB,CAAC,MAAM,CAAC,EAAE;AACnC,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,CAACC,yDAA4B,CAAC,MAAM,CAAC,EAAE;AACzC,QAAA,OAAO,SAAS;IAClB;AACA,IAAA,MAAM,KAAK,GAAGC,qCAAkB,CAAC,MAAM,CAAC;AACxC,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB;AACjD,IAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAChC,QAAA,OAAO,SAAS;IAClB;IACA,IAAI,CAACC,qDAA0B,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;AAC9D,QAAA,OAAO,KAAK;IACd;IACA,MAAM,MAAM,GAAGC,mCAAiB,CAAC;QAC/B,IAAI;QACJ,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;AAC5C,KAAA,CAAC;AACF,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;;;;AAI1B,QAAA,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;YACnD;QACF;QACA,IAAI,CAACC,qCAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;AAC7C,YAAA,OAAO,KAAK;QACd;IACF;AACA,IAAA,OAAO,IAAI;AACb;;;;"}
|
|
@@ -46,7 +46,7 @@ function matchesNarrowPersistentInputs(
|
|
|
46
46
|
*/
|
|
47
47
|
cached,
|
|
48
48
|
/** Delivered file spelling selecting this envelope's dependency closure. */
|
|
49
|
-
file) {
|
|
49
|
+
file, proof) {
|
|
50
50
|
if (reportsMembershipChange(cached)) {
|
|
51
51
|
return false;
|
|
52
52
|
}
|
|
@@ -58,7 +58,7 @@ file) {
|
|
|
58
58
|
if (hostValidation === undefined) {
|
|
59
59
|
return undefined;
|
|
60
60
|
}
|
|
61
|
-
if (!matchesUniversalHostInputs(cached, hostValidation)) {
|
|
61
|
+
if (!matchesUniversalHostInputs(cached, hostValidation, proof)) {
|
|
62
62
|
return false;
|
|
63
63
|
}
|
|
64
64
|
const inputs = selectWatchInputs({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchesNarrowPersistentInputs.mjs","sources":["../../../../src/core/transform/validation/matchesNarrowPersistentInputs.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"matchesNarrowPersistentInputs.mjs","sources":["../../../../src/core/transform/validation/matchesNarrowPersistentInputs.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;SACa,6BAA6B;AAC3C;;;AAGG;AACH,MAAkC;AAClC;AACA,IAAY,EACZ,KAAuC,EAAA;AAEvC,IAAA,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE;AACnC,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE;AACzC,QAAA,OAAO,SAAS;IAClB;AACA,IAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC;AACxC,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,mBAAmB;AACjD,IAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAChC,QAAA,OAAO,SAAS;IAClB;IACA,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;AAC9D,QAAA,OAAO,KAAK;IACd;IACA,MAAM,MAAM,GAAG,iBAAiB,CAAC;QAC/B,IAAI;QACJ,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;AAC5C,KAAA,CAAC;AACF,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;;;;AAI1B,QAAA,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;YACnD;QACF;QACA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;AAC7C,YAAA,OAAO,KAAK;QACd;IACF;AACA,IAAA,OAAO,IAAI;AACb;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.cjs";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof.cjs";
|
|
2
3
|
import type { TtscHostInputValidation } from "./TtscHostInputValidation.cjs";
|
|
3
4
|
/**
|
|
4
5
|
* Whether every plugin source directory of a generation still holds the state
|
|
@@ -31,7 +32,7 @@ import type { TtscHostInputValidation } from "./TtscHostInputValidation.cjs";
|
|
|
31
32
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs distinguish source notification, environment authority and metadata-qualified digest reuse before param tags.
|
|
32
33
|
* @evidence contracts/portability.md#os-neutral-implementation Supported plugin-source APIs and capability-qualified native trackers own source/toolchain observation without OS-wide watcher assumptions.
|
|
33
34
|
* @evidence contracts/performance.md#bound-retention-and-release-resources One environment witness per current manifest tree is replaced in place; no delivery history is retained.
|
|
34
|
-
* @evidence contracts/performance.md#efficient-algorithms
|
|
35
|
+
* @evidence contracts/performance.md#efficient-algorithms An exact-generation synchronous transaction supplies one current batched environment qualification; otherwise each tree pays the shared environment reader's variable-key construction and native dependency qualification. Qualified silent sources avoid enumeration; other trees enumerate and sort the selected file population, inspect metadata and hash source bytes whenever population, metadata or clock evidence cannot qualify reuse. The synchronous owner can also refresh native environment authority after a mismatch.
|
|
35
36
|
* @evidence contracts/performance.md#reuse-equivalent-work Generation environment witnesses and the owning digest cache share prior proof only while source and toolchain identities remain valid.
|
|
36
37
|
*/
|
|
37
|
-
export declare function matchesUniversalHostInputTrees(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation): boolean;
|
|
38
|
+
export declare function matchesUniversalHostInputTrees(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation, proof?: TtscGenerationProof.Transaction): boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.mjs";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof.mjs";
|
|
2
3
|
import type { TtscHostInputValidation } from "./TtscHostInputValidation.mjs";
|
|
3
4
|
/**
|
|
4
5
|
* Whether every plugin source directory of a generation still holds the state
|
|
@@ -31,7 +32,7 @@ import type { TtscHostInputValidation } from "./TtscHostInputValidation.mjs";
|
|
|
31
32
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs distinguish source notification, environment authority and metadata-qualified digest reuse before param tags.
|
|
32
33
|
* @evidence contracts/portability.md#os-neutral-implementation Supported plugin-source APIs and capability-qualified native trackers own source/toolchain observation without OS-wide watcher assumptions.
|
|
33
34
|
* @evidence contracts/performance.md#bound-retention-and-release-resources One environment witness per current manifest tree is replaced in place; no delivery history is retained.
|
|
34
|
-
* @evidence contracts/performance.md#efficient-algorithms
|
|
35
|
+
* @evidence contracts/performance.md#efficient-algorithms An exact-generation synchronous transaction supplies one current batched environment qualification; otherwise each tree pays the shared environment reader's variable-key construction and native dependency qualification. Qualified silent sources avoid enumeration; other trees enumerate and sort the selected file population, inspect metadata and hash source bytes whenever population, metadata or clock evidence cannot qualify reuse. The synchronous owner can also refresh native environment authority after a mismatch.
|
|
35
36
|
* @evidence contracts/performance.md#reuse-equivalent-work Generation environment witnesses and the owning digest cache share prior proof only while source and toolchain identities remain valid.
|
|
36
37
|
*/
|
|
37
|
-
export declare function matchesUniversalHostInputTrees(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation): boolean;
|
|
38
|
+
export declare function matchesUniversalHostInputTrees(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation, proof?: TtscGenerationProof.Transaction): boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof";
|
|
2
3
|
import type { TtscHostInputValidation } from "./TtscHostInputValidation";
|
|
3
4
|
/**
|
|
4
5
|
* Whether every plugin source directory of a generation still holds the state
|
|
@@ -31,7 +32,7 @@ import type { TtscHostInputValidation } from "./TtscHostInputValidation";
|
|
|
31
32
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs distinguish source notification, environment authority and metadata-qualified digest reuse before param tags.
|
|
32
33
|
* @evidence contracts/portability.md#os-neutral-implementation Supported plugin-source APIs and capability-qualified native trackers own source/toolchain observation without OS-wide watcher assumptions.
|
|
33
34
|
* @evidence contracts/performance.md#bound-retention-and-release-resources One environment witness per current manifest tree is replaced in place; no delivery history is retained.
|
|
34
|
-
* @evidence contracts/performance.md#efficient-algorithms
|
|
35
|
+
* @evidence contracts/performance.md#efficient-algorithms An exact-generation synchronous transaction supplies one current batched environment qualification; otherwise each tree pays the shared environment reader's variable-key construction and native dependency qualification. Qualified silent sources avoid enumeration; other trees enumerate and sort the selected file population, inspect metadata and hash source bytes whenever population, metadata or clock evidence cannot qualify reuse. The synchronous owner can also refresh native environment authority after a mismatch.
|
|
35
36
|
* @evidence contracts/performance.md#reuse-equivalent-work Generation environment witnesses and the owning digest cache share prior proof only while source and toolchain identities remain valid.
|
|
36
37
|
*/
|
|
37
|
-
export declare function matchesUniversalHostInputTrees(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation): boolean;
|
|
38
|
+
export declare function matchesUniversalHostInputTrees(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation, proof?: TtscGenerationProof.Transaction): boolean;
|
|
@@ -37,16 +37,18 @@ var trackerProvesInputUnchanged = require('./trackerProvesInputUnchanged.js');
|
|
|
37
37
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs distinguish source notification, environment authority and metadata-qualified digest reuse before param tags.
|
|
38
38
|
* @evidence contracts/portability.md#os-neutral-implementation Supported plugin-source APIs and capability-qualified native trackers own source/toolchain observation without OS-wide watcher assumptions.
|
|
39
39
|
* @evidence contracts/performance.md#bound-retention-and-release-resources One environment witness per current manifest tree is replaced in place; no delivery history is retained.
|
|
40
|
-
* @evidence contracts/performance.md#efficient-algorithms
|
|
40
|
+
* @evidence contracts/performance.md#efficient-algorithms An exact-generation synchronous transaction supplies one current batched environment qualification; otherwise each tree pays the shared environment reader's variable-key construction and native dependency qualification. Qualified silent sources avoid enumeration; other trees enumerate and sort the selected file population, inspect metadata and hash source bytes whenever population, metadata or clock evidence cannot qualify reuse. The synchronous owner can also refresh native environment authority after a mismatch.
|
|
41
41
|
* @evidence contracts/performance.md#reuse-equivalent-work Generation environment witnesses and the owning digest cache share prior proof only while source and toolchain identities remain valid.
|
|
42
42
|
*/
|
|
43
|
-
function matchesUniversalHostInputTrees(cached, validation) {
|
|
43
|
+
function matchesUniversalHostInputTrees(cached, validation, proof) {
|
|
44
44
|
for (const [directory, digest] of validation.trees) {
|
|
45
45
|
// Read before any proof, so the environment recorded below is one the
|
|
46
46
|
// proof saw or older, never a newer one it did not prove.
|
|
47
47
|
const prepared = preparePluginBuildEnvironments.usesPreparedPluginBuildEnvironments(cached.result);
|
|
48
48
|
const environment = prepared
|
|
49
|
-
?
|
|
49
|
+
? proof?.cached === cached && proof.environments !== undefined
|
|
50
|
+
? proof.environments.get(directory)
|
|
51
|
+
: pluginSource.PluginBuildEnvironmentReadings.cached(directory)
|
|
50
52
|
: pluginSource.processPluginBuildEnvironment(directory);
|
|
51
53
|
if (environment === undefined)
|
|
52
54
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchesUniversalHostInputTrees.js","sources":["../../../../src/core/transform/validation/matchesUniversalHostInputTrees.ts"],"sourcesContent":[null],"names":["usesPreparedPluginBuildEnvironments","PluginBuildEnvironmentReadings","processPluginBuildEnvironment","trackerProvesInputUnchanged","pluginSourceHolds","resultFilesystem"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"matchesUniversalHostInputTrees.js","sources":["../../../../src/core/transform/validation/matchesUniversalHostInputTrees.ts"],"sourcesContent":[null],"names":["usesPreparedPluginBuildEnvironments","PluginBuildEnvironmentReadings","processPluginBuildEnvironment","trackerProvesInputUnchanged","pluginSourceHolds","resultFilesystem"],"mappings":";;;;;;;;AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCG;SACa,8BAA8B,CAC5C,MAAkC,EAClC,UAAmC,EACnC,KAAuC,EAAA;IAEvC,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE;;;QAGlD,MAAM,QAAQ,GAAGA,kEAAmC,CAAC,MAAM,CAAC,MAAM,CAAC;QACnE,MAAM,WAAW,GAAG;cAChB,KAAK,EAAE,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,YAAY,KAAK;kBACjD,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS;AAClC,kBAAEC,2CAA8B,CAAC,MAAM,CAAC,SAAS;AACnD,cAAEC,0CAA6B,CAAC,SAAS,CAAC;QAC5C,IAAI,WAAW,KAAK,SAAS;AAAE,YAAA,OAAO,KAAK;AAC3C,QAAA,IACEC,uDAA2B,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,CAAC;YACvE,UAAU,CAAC,gBAAgB,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,WAAW;YAE3D;QACF,IACE,CAACC,mCAAiB,CAChB,SAAS,EACT,MAAM,EACNC,iCAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAC/B,QAAQ,GAAG,EAAE,WAAW,EAAE,GAAG,SAAS,CACvC;AAED,YAAA,OAAO,KAAK;AACd,QAAA,CAAC,UAAU,CAAC,gBAAgB,KAAK,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC;IACzE;AACA,IAAA,OAAO,IAAI;AACb;;;;"}
|
|
@@ -35,16 +35,18 @@ import { trackerProvesInputUnchanged } from './trackerProvesInputUnchanged.mjs';
|
|
|
35
35
|
* @evidence contracts/common.md#meaningful-documentation Native paragraphs distinguish source notification, environment authority and metadata-qualified digest reuse before param tags.
|
|
36
36
|
* @evidence contracts/portability.md#os-neutral-implementation Supported plugin-source APIs and capability-qualified native trackers own source/toolchain observation without OS-wide watcher assumptions.
|
|
37
37
|
* @evidence contracts/performance.md#bound-retention-and-release-resources One environment witness per current manifest tree is replaced in place; no delivery history is retained.
|
|
38
|
-
* @evidence contracts/performance.md#efficient-algorithms
|
|
38
|
+
* @evidence contracts/performance.md#efficient-algorithms An exact-generation synchronous transaction supplies one current batched environment qualification; otherwise each tree pays the shared environment reader's variable-key construction and native dependency qualification. Qualified silent sources avoid enumeration; other trees enumerate and sort the selected file population, inspect metadata and hash source bytes whenever population, metadata or clock evidence cannot qualify reuse. The synchronous owner can also refresh native environment authority after a mismatch.
|
|
39
39
|
* @evidence contracts/performance.md#reuse-equivalent-work Generation environment witnesses and the owning digest cache share prior proof only while source and toolchain identities remain valid.
|
|
40
40
|
*/
|
|
41
|
-
function matchesUniversalHostInputTrees(cached, validation) {
|
|
41
|
+
function matchesUniversalHostInputTrees(cached, validation, proof) {
|
|
42
42
|
for (const [directory, digest] of validation.trees) {
|
|
43
43
|
// Read before any proof, so the environment recorded below is one the
|
|
44
44
|
// proof saw or older, never a newer one it did not prove.
|
|
45
45
|
const prepared = usesPreparedPluginBuildEnvironments(cached.result);
|
|
46
46
|
const environment = prepared
|
|
47
|
-
?
|
|
47
|
+
? proof?.cached === cached && proof.environments !== undefined
|
|
48
|
+
? proof.environments.get(directory)
|
|
49
|
+
: PluginBuildEnvironmentReadings.cached(directory)
|
|
48
50
|
: processPluginBuildEnvironment(directory);
|
|
49
51
|
if (environment === undefined)
|
|
50
52
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchesUniversalHostInputTrees.mjs","sources":["../../../../src/core/transform/validation/matchesUniversalHostInputTrees.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"matchesUniversalHostInputTrees.mjs","sources":["../../../../src/core/transform/validation/matchesUniversalHostInputTrees.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCG;SACa,8BAA8B,CAC5C,MAAkC,EAClC,UAAmC,EACnC,KAAuC,EAAA;IAEvC,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE;;;QAGlD,MAAM,QAAQ,GAAG,mCAAmC,CAAC,MAAM,CAAC,MAAM,CAAC;QACnE,MAAM,WAAW,GAAG;cAChB,KAAK,EAAE,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,YAAY,KAAK;kBACjD,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS;AAClC,kBAAE,8BAA8B,CAAC,MAAM,CAAC,SAAS;AACnD,cAAE,6BAA6B,CAAC,SAAS,CAAC;QAC5C,IAAI,WAAW,KAAK,SAAS;AAAE,YAAA,OAAO,KAAK;AAC3C,QAAA,IACE,2BAA2B,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,CAAC;YACvE,UAAU,CAAC,gBAAgB,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,WAAW;YAE3D;QACF,IACE,CAAC,iBAAiB,CAChB,SAAS,EACT,MAAM,EACN,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,EAC/B,QAAQ,GAAG,EAAE,WAAW,EAAE,GAAG,SAAS,CACvC;AAED,YAAA,OAAO,KAAK;AACd,QAAA,CAAC,UAAU,CAAC,gBAAgB,KAAK,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC;IACzE;AACA,IAAA,OAAO,IAAI;AACb;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.cjs";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof.cjs";
|
|
2
3
|
import type { TtscHostInputValidation } from "./TtscHostInputValidation.cjs";
|
|
3
4
|
/**
|
|
4
5
|
* Validate universal descriptor/config inputs. Versioned native config
|
|
@@ -23,6 +24,6 @@ import type { TtscHostInputValidation } from "./TtscHostInputValidation.cjs";
|
|
|
23
24
|
* @evidence contracts/portability.md#os-neutral-implementation Filesystem-aware validators use actual tracker delivery capability and exact lexical coverage rather than platform-wide assumptions.
|
|
24
25
|
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The coordinator borrows generation manifests and trackers without retaining a result or acquiring a handle.
|
|
25
26
|
* @evidence contracts/performance.md#efficient-algorithms Every admission first replays all generation-owned typed config predicates; this mandatory cost includes native queries, file bytes or directory membership independently of watcher/epoch qualification. The coverage scan stops at the first unproved input. Each coverage query checks overlapping unproven scopes and sampled events with native path comparisons; fallback adds unresolved bytes, native candidate probes and plugin tree enumeration. Mandatory environment qualification pays its owning dependency and environment-key costs on either route.
|
|
26
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Typed config
|
|
27
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Typed config predicates remain mandatory on every delivery. An exact-generation synchronous transaction may share their current replay across nested validators, but no pass or notification shortcut authorizes a later delivery to skip them. Shared manifests and qualified silent sources avoid repeated content reads only while the owning tree validator also proves unchanged build environment.
|
|
27
28
|
*/
|
|
28
|
-
export declare function matchesUniversalHostInputs(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation): boolean;
|
|
29
|
+
export declare function matchesUniversalHostInputs(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation, proof?: TtscGenerationProof.Transaction): boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform.mjs";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof.mjs";
|
|
2
3
|
import type { TtscHostInputValidation } from "./TtscHostInputValidation.mjs";
|
|
3
4
|
/**
|
|
4
5
|
* Validate universal descriptor/config inputs. Versioned native config
|
|
@@ -23,6 +24,6 @@ import type { TtscHostInputValidation } from "./TtscHostInputValidation.mjs";
|
|
|
23
24
|
* @evidence contracts/portability.md#os-neutral-implementation Filesystem-aware validators use actual tracker delivery capability and exact lexical coverage rather than platform-wide assumptions.
|
|
24
25
|
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The coordinator borrows generation manifests and trackers without retaining a result or acquiring a handle.
|
|
25
26
|
* @evidence contracts/performance.md#efficient-algorithms Every admission first replays all generation-owned typed config predicates; this mandatory cost includes native queries, file bytes or directory membership independently of watcher/epoch qualification. The coverage scan stops at the first unproved input. Each coverage query checks overlapping unproven scopes and sampled events with native path comparisons; fallback adds unresolved bytes, native candidate probes and plugin tree enumeration. Mandatory environment qualification pays its owning dependency and environment-key costs on either route.
|
|
26
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Typed config
|
|
27
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Typed config predicates remain mandatory on every delivery. An exact-generation synchronous transaction may share their current replay across nested validators, but no pass or notification shortcut authorizes a later delivery to skip them. Shared manifests and qualified silent sources avoid repeated content reads only while the owning tree validator also proves unchanged build environment.
|
|
27
28
|
*/
|
|
28
|
-
export declare function matchesUniversalHostInputs(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation): boolean;
|
|
29
|
+
export declare function matchesUniversalHostInputs(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation, proof?: TtscGenerationProof.Transaction): boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TtscCachedProjectTransform } from "../cache/TtscCachedProjectTransform";
|
|
2
|
+
import type { TtscGenerationProof } from "./TtscGenerationProof";
|
|
2
3
|
import type { TtscHostInputValidation } from "./TtscHostInputValidation";
|
|
3
4
|
/**
|
|
4
5
|
* Validate universal descriptor/config inputs. Versioned native config
|
|
@@ -23,6 +24,6 @@ import type { TtscHostInputValidation } from "./TtscHostInputValidation";
|
|
|
23
24
|
* @evidence contracts/portability.md#os-neutral-implementation Filesystem-aware validators use actual tracker delivery capability and exact lexical coverage rather than platform-wide assumptions.
|
|
24
25
|
* @evidenceExclude contracts/performance.md#bound-retention-and-release-resources The coordinator borrows generation manifests and trackers without retaining a result or acquiring a handle.
|
|
25
26
|
* @evidence contracts/performance.md#efficient-algorithms Every admission first replays all generation-owned typed config predicates; this mandatory cost includes native queries, file bytes or directory membership independently of watcher/epoch qualification. The coverage scan stops at the first unproved input. Each coverage query checks overlapping unproven scopes and sampled events with native path comparisons; fallback adds unresolved bytes, native candidate probes and plugin tree enumeration. Mandatory environment qualification pays its owning dependency and environment-key costs on either route.
|
|
26
|
-
* @evidence contracts/performance.md#reuse-equivalent-work Typed config
|
|
27
|
+
* @evidence contracts/performance.md#reuse-equivalent-work Typed config predicates remain mandatory on every delivery. An exact-generation synchronous transaction may share their current replay across nested validators, but no pass or notification shortcut authorizes a later delivery to skip them. Shared manifests and qualified silent sources avoid repeated content reads only while the owning tree validator also proves unchanged build environment.
|
|
27
28
|
*/
|
|
28
|
-
export declare function matchesUniversalHostInputs(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation): boolean;
|
|
29
|
+
export declare function matchesUniversalHostInputs(cached: TtscCachedProjectTransform, validation: TtscHostInputValidation, proof?: TtscGenerationProof.Transaction): boolean;
|