@smthrs/engine-store 0.0.0-stage → 1.0.0-rc.4
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/CHANGELOG.md +247 -0
- package/LICENSE +21 -0
- package/README.md +146 -2
- package/dist/cjs/ArtifactGc.d.ts +235 -0
- package/dist/cjs/ArtifactGc.d.ts.map +1 -0
- package/dist/cjs/ArtifactGc.js +183 -0
- package/dist/cjs/ArtifactGc.js.map +7 -0
- package/dist/cjs/ArtifactSync.d.ts +164 -0
- package/dist/cjs/ArtifactSync.d.ts.map +1 -0
- package/dist/cjs/ArtifactSync.js +144 -0
- package/dist/cjs/ArtifactSync.js.map +7 -0
- package/dist/cjs/CacheSync.d.ts +112 -0
- package/dist/cjs/CacheSync.d.ts.map +1 -0
- package/dist/cjs/CacheSync.js +64 -0
- package/dist/cjs/CacheSync.js.map +7 -0
- package/dist/cjs/DeferredClockFold.d.ts +354 -0
- package/dist/cjs/DeferredClockFold.d.ts.map +1 -0
- package/dist/cjs/DeferredClockFold.js +335 -0
- package/dist/cjs/DeferredClockFold.js.map +7 -0
- package/dist/cjs/DisasterRecovery.d.ts +431 -0
- package/dist/cjs/DisasterRecovery.d.ts.map +1 -0
- package/dist/cjs/DisasterRecovery.js +453 -0
- package/dist/cjs/DisasterRecovery.js.map +7 -0
- package/dist/cjs/DurableEngineState.d.ts +776 -0
- package/dist/cjs/DurableEngineState.d.ts.map +1 -0
- package/dist/cjs/DurableEngineState.js +1536 -0
- package/dist/cjs/DurableEngineState.js.map +7 -0
- package/dist/cjs/EngineStore.d.ts +158 -0
- package/dist/cjs/EngineStore.d.ts.map +1 -0
- package/dist/cjs/EngineStore.js +398 -0
- package/dist/cjs/EngineStore.js.map +7 -0
- package/dist/cjs/EngineStoreMetrics.d.ts +276 -0
- package/dist/cjs/EngineStoreMetrics.d.ts.map +1 -0
- package/dist/cjs/EngineStoreMetrics.js +135 -0
- package/dist/cjs/EngineStoreMetrics.js.map +7 -0
- package/dist/cjs/Errors.d.ts +22 -0
- package/dist/cjs/Errors.d.ts.map +1 -0
- package/dist/cjs/Errors.js +39 -0
- package/dist/cjs/Errors.js.map +7 -0
- package/dist/cjs/EventTypes.d.ts +27 -0
- package/dist/cjs/EventTypes.d.ts.map +1 -0
- package/dist/cjs/EventTypes.js +37 -0
- package/dist/cjs/EventTypes.js.map +7 -0
- package/dist/cjs/ExecutionFacts.d.ts +59 -0
- package/dist/cjs/ExecutionFacts.d.ts.map +1 -0
- package/dist/cjs/ExecutionFacts.js +123 -0
- package/dist/cjs/ExecutionFacts.js.map +7 -0
- package/dist/cjs/ExecutionSnapshot.d.ts +117 -0
- package/dist/cjs/ExecutionSnapshot.d.ts.map +1 -0
- package/dist/cjs/ExecutionSnapshot.js +111 -0
- package/dist/cjs/ExecutionSnapshot.js.map +7 -0
- package/dist/cjs/Inconsistency.d.ts +154 -0
- package/dist/cjs/Inconsistency.d.ts.map +1 -0
- package/dist/cjs/Inconsistency.js +135 -0
- package/dist/cjs/Inconsistency.js.map +7 -0
- package/dist/cjs/Migrations.d.ts +56 -0
- package/dist/cjs/Migrations.d.ts.map +1 -0
- package/dist/cjs/Migrations.js +78 -0
- package/dist/cjs/Migrations.js.map +7 -0
- package/dist/cjs/OwnerIdentity.d.ts +91 -0
- package/dist/cjs/OwnerIdentity.d.ts.map +1 -0
- package/dist/cjs/OwnerIdentity.js +65 -0
- package/dist/cjs/OwnerIdentity.js.map +7 -0
- package/dist/cjs/PlanInputStore.d.ts +110 -0
- package/dist/cjs/PlanInputStore.d.ts.map +1 -0
- package/dist/cjs/PlanInputStore.js +224 -0
- package/dist/cjs/PlanInputStore.js.map +7 -0
- package/dist/cjs/PlanMergeStore.d.ts +113 -0
- package/dist/cjs/PlanMergeStore.d.ts.map +1 -0
- package/dist/cjs/PlanMergeStore.js +255 -0
- package/dist/cjs/PlanMergeStore.js.map +7 -0
- package/dist/cjs/PlanScheduler.d.ts +363 -0
- package/dist/cjs/PlanScheduler.d.ts.map +1 -0
- package/dist/cjs/PlanScheduler.js +1090 -0
- package/dist/cjs/PlanScheduler.js.map +7 -0
- package/dist/cjs/Reconciliation.d.ts +175 -0
- package/dist/cjs/Reconciliation.d.ts.map +1 -0
- package/dist/cjs/Reconciliation.js +119 -0
- package/dist/cjs/Reconciliation.js.map +7 -0
- package/dist/cjs/ReplayOnly.d.ts +91 -0
- package/dist/cjs/ReplayOnly.d.ts.map +1 -0
- package/dist/cjs/ReplayOnly.js +52 -0
- package/dist/cjs/ReplayOnly.js.map +7 -0
- package/dist/cjs/Retention.d.ts +113 -0
- package/dist/cjs/Retention.d.ts.map +1 -0
- package/dist/cjs/Retention.js +99 -0
- package/dist/cjs/Retention.js.map +7 -0
- package/dist/cjs/RunCatalogRead.d.ts +17 -0
- package/dist/cjs/RunCatalogRead.d.ts.map +1 -0
- package/dist/cjs/RunCatalogRead.js +33 -0
- package/dist/cjs/RunCatalogRead.js.map +7 -0
- package/dist/cjs/RunChangeFeed.d.ts +75 -0
- package/dist/cjs/RunChangeFeed.d.ts.map +1 -0
- package/dist/cjs/RunChangeFeed.js +96 -0
- package/dist/cjs/RunChangeFeed.js.map +7 -0
- package/dist/cjs/RunState.d.ts +116 -0
- package/dist/cjs/RunState.d.ts.map +1 -0
- package/dist/cjs/RunState.js +76 -0
- package/dist/cjs/RunState.js.map +7 -0
- package/dist/cjs/Selection.d.ts +495 -0
- package/dist/cjs/Selection.d.ts.map +1 -0
- package/dist/cjs/Selection.js +288 -0
- package/dist/cjs/Selection.js.map +7 -0
- package/dist/cjs/SelectionStore.d.ts +141 -0
- package/dist/cjs/SelectionStore.d.ts.map +1 -0
- package/dist/cjs/SelectionStore.js +229 -0
- package/dist/cjs/SelectionStore.js.map +7 -0
- package/dist/cjs/StepBoundary.d.ts +501 -0
- package/dist/cjs/StepBoundary.d.ts.map +1 -0
- package/dist/cjs/StepBoundary.js +619 -0
- package/dist/cjs/StepBoundary.js.map +7 -0
- package/dist/cjs/StepCacheFold.d.ts +148 -0
- package/dist/cjs/StepCacheFold.d.ts.map +1 -0
- package/dist/cjs/StepCacheFold.js +131 -0
- package/dist/cjs/StepCacheFold.js.map +7 -0
- package/dist/cjs/StepSandbox.d.ts +78 -0
- package/dist/cjs/StepSandbox.d.ts.map +1 -0
- package/dist/cjs/StepSandbox.js +75 -0
- package/dist/cjs/StepSandbox.js.map +7 -0
- package/dist/cjs/WakeBus.d.ts +116 -0
- package/dist/cjs/WakeBus.d.ts.map +1 -0
- package/dist/cjs/WakeBus.js +89 -0
- package/dist/cjs/WakeBus.js.map +7 -0
- package/dist/cjs/WorkspaceSandbox.d.ts +619 -0
- package/dist/cjs/WorkspaceSandbox.d.ts.map +1 -0
- package/dist/cjs/WorkspaceSandbox.js +711 -0
- package/dist/cjs/WorkspaceSandbox.js.map +7 -0
- package/dist/cjs/index.d.ts +157 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +95 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/internal/ActionPersistence.d.ts +276 -0
- package/dist/cjs/internal/ActionPersistence.d.ts.map +1 -0
- package/dist/cjs/internal/ActionPersistence.js +1395 -0
- package/dist/cjs/internal/ActionPersistence.js.map +7 -0
- package/dist/cjs/internal/ArtifactRoots.d.ts +38 -0
- package/dist/cjs/internal/ArtifactRoots.d.ts.map +1 -0
- package/dist/cjs/internal/ArtifactRoots.js +89 -0
- package/dist/cjs/internal/ArtifactRoots.js.map +7 -0
- package/dist/cjs/internal/AttemptAdmission.d.ts +53 -0
- package/dist/cjs/internal/AttemptAdmission.d.ts.map +1 -0
- package/dist/cjs/internal/AttemptAdmission.js +52 -0
- package/dist/cjs/internal/AttemptAdmission.js.map +7 -0
- package/dist/cjs/internal/AttemptLifecycle.d.ts +245 -0
- package/dist/cjs/internal/AttemptLifecycle.d.ts.map +1 -0
- package/dist/cjs/internal/AttemptLifecycle.js +112 -0
- package/dist/cjs/internal/AttemptLifecycle.js.map +7 -0
- package/dist/cjs/internal/AttemptProbe.d.ts +53 -0
- package/dist/cjs/internal/AttemptProbe.d.ts.map +1 -0
- package/dist/cjs/internal/AttemptProbe.js +66 -0
- package/dist/cjs/internal/AttemptProbe.js.map +7 -0
- package/dist/cjs/internal/CacheAdmission.d.ts +79 -0
- package/dist/cjs/internal/CacheAdmission.d.ts.map +1 -0
- package/dist/cjs/internal/CacheAdmission.js +71 -0
- package/dist/cjs/internal/CacheAdmission.js.map +7 -0
- package/dist/cjs/internal/CacheAgeHistory.d.ts +27 -0
- package/dist/cjs/internal/CacheAgeHistory.d.ts.map +1 -0
- package/dist/cjs/internal/CacheAgeHistory.js +61 -0
- package/dist/cjs/internal/CacheAgeHistory.js.map +7 -0
- package/dist/cjs/internal/CacheAgeVerdicts.d.ts +15 -0
- package/dist/cjs/internal/CacheAgeVerdicts.d.ts.map +1 -0
- package/dist/cjs/internal/CacheAgeVerdicts.js +73 -0
- package/dist/cjs/internal/CacheAgeVerdicts.js.map +7 -0
- package/dist/cjs/internal/CacheOutputPolicy.d.ts +24 -0
- package/dist/cjs/internal/CacheOutputPolicy.d.ts.map +1 -0
- package/dist/cjs/internal/CacheOutputPolicy.js +75 -0
- package/dist/cjs/internal/CacheOutputPolicy.js.map +7 -0
- package/dist/cjs/internal/CachePublication.d.ts +97 -0
- package/dist/cjs/internal/CachePublication.d.ts.map +1 -0
- package/dist/cjs/internal/CachePublication.js +80 -0
- package/dist/cjs/internal/CachePublication.js.map +7 -0
- package/dist/cjs/internal/CallFacts.d.ts +15 -0
- package/dist/cjs/internal/CallFacts.d.ts.map +1 -0
- package/dist/cjs/internal/CallFacts.js +97 -0
- package/dist/cjs/internal/CallFacts.js.map +7 -0
- package/dist/cjs/internal/CopiedRecord.d.ts +61 -0
- package/dist/cjs/internal/CopiedRecord.d.ts.map +1 -0
- package/dist/cjs/internal/CopiedRecord.js +134 -0
- package/dist/cjs/internal/CopiedRecord.js.map +7 -0
- package/dist/cjs/internal/DeferredPersistence.d.ts +108 -0
- package/dist/cjs/internal/DeferredPersistence.d.ts.map +1 -0
- package/dist/cjs/internal/DeferredPersistence.js +270 -0
- package/dist/cjs/internal/DeferredPersistence.js.map +7 -0
- package/dist/cjs/internal/EffectRecords.d.ts +92 -0
- package/dist/cjs/internal/EffectRecords.d.ts.map +1 -0
- package/dist/cjs/internal/EffectRecords.js +63 -0
- package/dist/cjs/internal/EffectRecords.js.map +7 -0
- package/dist/cjs/internal/EngineJj.d.ts +30 -0
- package/dist/cjs/internal/EngineJj.d.ts.map +1 -0
- package/dist/cjs/internal/EngineJj.js +42 -0
- package/dist/cjs/internal/EngineJj.js.map +7 -0
- package/dist/cjs/internal/EngineStateSchema.d.ts +68 -0
- package/dist/cjs/internal/EngineStateSchema.d.ts.map +1 -0
- package/dist/cjs/internal/EngineStateSchema.js +58 -0
- package/dist/cjs/internal/EngineStateSchema.js.map +7 -0
- package/dist/cjs/internal/ExecutionSnapshotRead.d.ts +162 -0
- package/dist/cjs/internal/ExecutionSnapshotRead.d.ts.map +1 -0
- package/dist/cjs/internal/ExecutionSnapshotRead.js +201 -0
- package/dist/cjs/internal/ExecutionSnapshotRead.js.map +7 -0
- package/dist/cjs/internal/ExecutionSnapshotRelations.d.ts +39 -0
- package/dist/cjs/internal/ExecutionSnapshotRelations.d.ts.map +1 -0
- package/dist/cjs/internal/ExecutionSnapshotRelations.js +105 -0
- package/dist/cjs/internal/ExecutionSnapshotRelations.js.map +7 -0
- package/dist/cjs/internal/ExitEncoding.d.ts +180 -0
- package/dist/cjs/internal/ExitEncoding.d.ts.map +1 -0
- package/dist/cjs/internal/ExitEncoding.js +236 -0
- package/dist/cjs/internal/ExitEncoding.js.map +7 -0
- package/dist/cjs/internal/FileBoundarySnapshot.d.ts +14 -0
- package/dist/cjs/internal/FileBoundarySnapshot.d.ts.map +1 -0
- package/dist/cjs/internal/FileBoundarySnapshot.js +51 -0
- package/dist/cjs/internal/FileBoundarySnapshot.js.map +7 -0
- package/dist/cjs/internal/FileEnumeration.d.ts +127 -0
- package/dist/cjs/internal/FileEnumeration.d.ts.map +1 -0
- package/dist/cjs/internal/FileEnumeration.js +194 -0
- package/dist/cjs/internal/FileEnumeration.js.map +7 -0
- package/dist/cjs/internal/HostReflection.d.ts +80 -0
- package/dist/cjs/internal/HostReflection.d.ts.map +1 -0
- package/dist/cjs/internal/HostReflection.js +43 -0
- package/dist/cjs/internal/HostReflection.js.map +7 -0
- package/dist/cjs/internal/JournalRecords.d.ts +325 -0
- package/dist/cjs/internal/JournalRecords.d.ts.map +1 -0
- package/dist/cjs/internal/JournalRecords.js +122 -0
- package/dist/cjs/internal/JournalRecords.js.map +7 -0
- package/dist/cjs/internal/NodeJournal.d.ts +157 -0
- package/dist/cjs/internal/NodeJournal.d.ts.map +1 -0
- package/dist/cjs/internal/NodeJournal.js +192 -0
- package/dist/cjs/internal/NodeJournal.js.map +7 -0
- package/dist/cjs/internal/Ordering.d.ts +14 -0
- package/dist/cjs/internal/Ordering.d.ts.map +1 -0
- package/dist/cjs/internal/Ordering.js +25 -0
- package/dist/cjs/internal/Ordering.js.map +7 -0
- package/dist/cjs/internal/PlanInputs.d.ts +14 -0
- package/dist/cjs/internal/PlanInputs.d.ts.map +1 -0
- package/dist/cjs/internal/PlanInputs.js +78 -0
- package/dist/cjs/internal/PlanInputs.js.map +7 -0
- package/dist/cjs/internal/PlanMerges.d.ts +178 -0
- package/dist/cjs/internal/PlanMerges.d.ts.map +1 -0
- package/dist/cjs/internal/PlanMerges.js +125 -0
- package/dist/cjs/internal/PlanMerges.js.map +7 -0
- package/dist/cjs/internal/ProvenanceSlot.d.ts +30 -0
- package/dist/cjs/internal/ProvenanceSlot.d.ts.map +1 -0
- package/dist/cjs/internal/ProvenanceSlot.js +53 -0
- package/dist/cjs/internal/ProvenanceSlot.js.map +7 -0
- package/dist/cjs/internal/ResultEnvelope.d.ts +88 -0
- package/dist/cjs/internal/ResultEnvelope.d.ts.map +1 -0
- package/dist/cjs/internal/ResultEnvelope.js +90 -0
- package/dist/cjs/internal/ResultEnvelope.js.map +7 -0
- package/dist/cjs/internal/RetentionOps.d.ts +414 -0
- package/dist/cjs/internal/RetentionOps.d.ts.map +1 -0
- package/dist/cjs/internal/RetentionOps.js +354 -0
- package/dist/cjs/internal/RetentionOps.js.map +7 -0
- package/dist/cjs/internal/RunCatalogOps.d.ts +118 -0
- package/dist/cjs/internal/RunCatalogOps.d.ts.map +1 -0
- package/dist/cjs/internal/RunCatalogOps.js +85 -0
- package/dist/cjs/internal/RunCatalogOps.js.map +7 -0
- package/dist/cjs/internal/RunCoordinator.d.ts +78 -0
- package/dist/cjs/internal/RunCoordinator.d.ts.map +1 -0
- package/dist/cjs/internal/RunCoordinator.js +123 -0
- package/dist/cjs/internal/RunCoordinator.js.map +7 -0
- package/dist/cjs/internal/RunDriver.d.ts +192 -0
- package/dist/cjs/internal/RunDriver.d.ts.map +1 -0
- package/dist/cjs/internal/RunDriver.js +1586 -0
- package/dist/cjs/internal/RunDriver.js.map +7 -0
- package/dist/cjs/internal/RunLifecycle.d.ts +22 -0
- package/dist/cjs/internal/RunLifecycle.d.ts.map +1 -0
- package/dist/cjs/internal/RunLifecycle.js +63 -0
- package/dist/cjs/internal/RunLifecycle.js.map +7 -0
- package/dist/cjs/internal/RunListing.d.ts +78 -0
- package/dist/cjs/internal/RunListing.d.ts.map +1 -0
- package/dist/cjs/internal/RunListing.js +171 -0
- package/dist/cjs/internal/RunListing.js.map +7 -0
- package/dist/cjs/internal/RunListingError.d.ts +35 -0
- package/dist/cjs/internal/RunListingError.d.ts.map +1 -0
- package/dist/cjs/internal/RunListingError.js +47 -0
- package/dist/cjs/internal/RunListingError.js.map +7 -0
- package/dist/cjs/internal/RuntimeGraph.d.ts +73 -0
- package/dist/cjs/internal/RuntimeGraph.d.ts.map +1 -0
- package/dist/cjs/internal/RuntimeGraph.js +180 -0
- package/dist/cjs/internal/RuntimeGraph.js.map +7 -0
- package/dist/cjs/internal/SandboxedExecution.d.ts +80 -0
- package/dist/cjs/internal/SandboxedExecution.d.ts.map +1 -0
- package/dist/cjs/internal/SandboxedExecution.js +104 -0
- package/dist/cjs/internal/SandboxedExecution.js.map +7 -0
- package/dist/cjs/internal/StateTransaction.d.ts +44 -0
- package/dist/cjs/internal/StateTransaction.d.ts.map +1 -0
- package/dist/cjs/internal/StateTransaction.js +52 -0
- package/dist/cjs/internal/StateTransaction.js.map +7 -0
- package/dist/cjs/internal/StepFacts.d.ts +14 -0
- package/dist/cjs/internal/StepFacts.d.ts.map +1 -0
- package/dist/cjs/internal/StepFacts.js +58 -0
- package/dist/cjs/internal/StepFacts.js.map +7 -0
- package/dist/cjs/internal/TypedEvents.d.ts +14 -0
- package/dist/cjs/internal/TypedEvents.d.ts.map +1 -0
- package/dist/cjs/internal/TypedEvents.js +37 -0
- package/dist/cjs/internal/TypedEvents.js.map +7 -0
- package/dist/cjs/migrations/0001_initial.d.ts +17 -0
- package/dist/cjs/migrations/0001_initial.d.ts.map +1 -0
- package/dist/cjs/migrations/0001_initial.js +61 -0
- package/dist/cjs/migrations/0001_initial.js.map +7 -0
- package/dist/cjs/migrations/0002_selection_store.d.ts +15 -0
- package/dist/cjs/migrations/0002_selection_store.d.ts.map +1 -0
- package/dist/cjs/migrations/0002_selection_store.js +56 -0
- package/dist/cjs/migrations/0002_selection_store.js.map +7 -0
- package/dist/cjs/migrations/0003_plan_inputs.d.ts +13 -0
- package/dist/cjs/migrations/0003_plan_inputs.d.ts.map +1 -0
- package/dist/cjs/migrations/0003_plan_inputs.js +90 -0
- package/dist/cjs/migrations/0003_plan_inputs.js.map +7 -0
- package/dist/cjs/migrations/0004_plan_environment.d.ts +14 -0
- package/dist/cjs/migrations/0004_plan_environment.d.ts.map +1 -0
- package/dist/cjs/migrations/0004_plan_environment.js +56 -0
- package/dist/cjs/migrations/0004_plan_environment.js.map +7 -0
- package/dist/cjs/migrations/0005_plan_merges.d.ts +14 -0
- package/dist/cjs/migrations/0005_plan_merges.d.ts.map +1 -0
- package/dist/cjs/migrations/0005_plan_merges.js +82 -0
- package/dist/cjs/migrations/0005_plan_merges.js.map +7 -0
- package/dist/cjs/migrations/0006_execution_listing.d.ts +15 -0
- package/dist/cjs/migrations/0006_execution_listing.d.ts.map +1 -0
- package/dist/cjs/migrations/0006_execution_listing.js +101 -0
- package/dist/cjs/migrations/0006_execution_listing.js.map +7 -0
- package/dist/cjs/migrations/0007_run_parent_sequence.d.ts +15 -0
- package/dist/cjs/migrations/0007_run_parent_sequence.d.ts.map +1 -0
- package/dist/cjs/migrations/0007_run_parent_sequence.js +40 -0
- package/dist/cjs/migrations/0007_run_parent_sequence.js.map +7 -0
- package/dist/cjs/migrations/0008_deferred_consumption.d.ts +16 -0
- package/dist/cjs/migrations/0008_deferred_consumption.d.ts.map +1 -0
- package/dist/cjs/migrations/0008_deferred_consumption.js +45 -0
- package/dist/cjs/migrations/0008_deferred_consumption.js.map +7 -0
- package/dist/cjs/migrations/0009_deferred_clock_facts.d.ts +24 -0
- package/dist/cjs/migrations/0009_deferred_clock_facts.d.ts.map +1 -0
- package/dist/cjs/migrations/0009_deferred_clock_facts.js +141 -0
- package/dist/cjs/migrations/0009_deferred_clock_facts.js.map +7 -0
- package/dist/cjs/migrations/0010_pending_cancellation.d.ts +15 -0
- package/dist/cjs/migrations/0010_pending_cancellation.d.ts.map +1 -0
- package/dist/cjs/migrations/0010_pending_cancellation.js +41 -0
- package/dist/cjs/migrations/0010_pending_cancellation.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/test/TestStores.d.ts +89 -0
- package/dist/cjs/test/TestStores.d.ts.map +1 -0
- package/dist/cjs/test/TestStores.js +98 -0
- package/dist/cjs/test/TestStores.js.map +7 -0
- package/dist/esm/ArtifactGc.d.ts +235 -0
- package/dist/esm/ArtifactGc.d.ts.map +1 -0
- package/dist/esm/ArtifactGc.js +268 -0
- package/dist/esm/ArtifactGc.js.map +1 -0
- package/dist/esm/ArtifactSync.d.ts +164 -0
- package/dist/esm/ArtifactSync.d.ts.map +1 -0
- package/dist/esm/ArtifactSync.js +176 -0
- package/dist/esm/ArtifactSync.js.map +1 -0
- package/dist/esm/CacheSync.d.ts +112 -0
- package/dist/esm/CacheSync.d.ts.map +1 -0
- package/dist/esm/CacheSync.js +94 -0
- package/dist/esm/CacheSync.js.map +1 -0
- package/dist/esm/DeferredClockFold.d.ts +354 -0
- package/dist/esm/DeferredClockFold.d.ts.map +1 -0
- package/dist/esm/DeferredClockFold.js +472 -0
- package/dist/esm/DeferredClockFold.js.map +1 -0
- package/dist/esm/DisasterRecovery.d.ts +431 -0
- package/dist/esm/DisasterRecovery.d.ts.map +1 -0
- package/dist/esm/DisasterRecovery.js +523 -0
- package/dist/esm/DisasterRecovery.js.map +1 -0
- package/dist/esm/DurableEngineState.d.ts +776 -0
- package/dist/esm/DurableEngineState.d.ts.map +1 -0
- package/dist/esm/DurableEngineState.js +1648 -0
- package/dist/esm/DurableEngineState.js.map +1 -0
- package/dist/esm/EngineStore.d.ts +158 -0
- package/dist/esm/EngineStore.d.ts.map +1 -0
- package/dist/esm/EngineStore.js +403 -0
- package/dist/esm/EngineStore.js.map +1 -0
- package/dist/esm/EngineStoreMetrics.d.ts +276 -0
- package/dist/esm/EngineStoreMetrics.d.ts.map +1 -0
- package/dist/esm/EngineStoreMetrics.js +260 -0
- package/dist/esm/EngineStoreMetrics.js.map +1 -0
- package/dist/esm/Errors.d.ts +22 -0
- package/dist/esm/Errors.d.ts.map +1 -0
- package/dist/esm/Errors.js +22 -0
- package/dist/esm/Errors.js.map +1 -0
- package/dist/esm/EventTypes.d.ts +27 -0
- package/dist/esm/EventTypes.d.ts.map +1 -0
- package/dist/esm/EventTypes.js +27 -0
- package/dist/esm/EventTypes.js.map +1 -0
- package/dist/esm/ExecutionFacts.d.ts +59 -0
- package/dist/esm/ExecutionFacts.d.ts.map +1 -0
- package/dist/esm/ExecutionFacts.js +96 -0
- package/dist/esm/ExecutionFacts.js.map +1 -0
- package/dist/esm/ExecutionSnapshot.d.ts +117 -0
- package/dist/esm/ExecutionSnapshot.d.ts.map +1 -0
- package/dist/esm/ExecutionSnapshot.js +95 -0
- package/dist/esm/ExecutionSnapshot.js.map +1 -0
- package/dist/esm/Inconsistency.d.ts +154 -0
- package/dist/esm/Inconsistency.d.ts.map +1 -0
- package/dist/esm/Inconsistency.js +133 -0
- package/dist/esm/Inconsistency.js.map +1 -0
- package/dist/esm/Migrations.d.ts +56 -0
- package/dist/esm/Migrations.d.ts.map +1 -0
- package/dist/esm/Migrations.js +91 -0
- package/dist/esm/Migrations.js.map +1 -0
- package/dist/esm/OwnerIdentity.d.ts +91 -0
- package/dist/esm/OwnerIdentity.d.ts.map +1 -0
- package/dist/esm/OwnerIdentity.js +99 -0
- package/dist/esm/OwnerIdentity.js.map +1 -0
- package/dist/esm/PlanInputStore.d.ts +110 -0
- package/dist/esm/PlanInputStore.d.ts.map +1 -0
- package/dist/esm/PlanInputStore.js +207 -0
- package/dist/esm/PlanInputStore.js.map +1 -0
- package/dist/esm/PlanMergeStore.d.ts +113 -0
- package/dist/esm/PlanMergeStore.d.ts.map +1 -0
- package/dist/esm/PlanMergeStore.js +244 -0
- package/dist/esm/PlanMergeStore.js.map +1 -0
- package/dist/esm/PlanScheduler.d.ts +363 -0
- package/dist/esm/PlanScheduler.d.ts.map +1 -0
- package/dist/esm/PlanScheduler.js +1321 -0
- package/dist/esm/PlanScheduler.js.map +1 -0
- package/dist/esm/Reconciliation.d.ts +175 -0
- package/dist/esm/Reconciliation.d.ts.map +1 -0
- package/dist/esm/Reconciliation.js +175 -0
- package/dist/esm/Reconciliation.js.map +1 -0
- package/dist/esm/ReplayOnly.d.ts +91 -0
- package/dist/esm/ReplayOnly.d.ts.map +1 -0
- package/dist/esm/ReplayOnly.js +59 -0
- package/dist/esm/ReplayOnly.js.map +1 -0
- package/dist/esm/Retention.d.ts +113 -0
- package/dist/esm/Retention.d.ts.map +1 -0
- package/dist/esm/Retention.js +139 -0
- package/dist/esm/Retention.js.map +1 -0
- package/dist/esm/RunCatalogRead.d.ts +17 -0
- package/dist/esm/RunCatalogRead.d.ts.map +1 -0
- package/dist/esm/RunCatalogRead.js +17 -0
- package/dist/esm/RunCatalogRead.js.map +1 -0
- package/dist/esm/RunChangeFeed.d.ts +75 -0
- package/dist/esm/RunChangeFeed.d.ts.map +1 -0
- package/dist/esm/RunChangeFeed.js +81 -0
- package/dist/esm/RunChangeFeed.js.map +1 -0
- package/dist/esm/RunState.d.ts +116 -0
- package/dist/esm/RunState.d.ts.map +1 -0
- package/dist/esm/RunState.js +109 -0
- package/dist/esm/RunState.js.map +1 -0
- package/dist/esm/Selection.d.ts +495 -0
- package/dist/esm/Selection.d.ts.map +1 -0
- package/dist/esm/Selection.js +482 -0
- package/dist/esm/Selection.js.map +1 -0
- package/dist/esm/SelectionStore.d.ts +141 -0
- package/dist/esm/SelectionStore.d.ts.map +1 -0
- package/dist/esm/SelectionStore.js +215 -0
- package/dist/esm/SelectionStore.js.map +1 -0
- package/dist/esm/StepBoundary.d.ts +501 -0
- package/dist/esm/StepBoundary.d.ts.map +1 -0
- package/dist/esm/StepBoundary.js +919 -0
- package/dist/esm/StepBoundary.js.map +1 -0
- package/dist/esm/StepCacheFold.d.ts +148 -0
- package/dist/esm/StepCacheFold.d.ts.map +1 -0
- package/dist/esm/StepCacheFold.js +201 -0
- package/dist/esm/StepCacheFold.js.map +1 -0
- package/dist/esm/StepSandbox.d.ts +78 -0
- package/dist/esm/StepSandbox.d.ts.map +1 -0
- package/dist/esm/StepSandbox.js +70 -0
- package/dist/esm/StepSandbox.js.map +1 -0
- package/dist/esm/WakeBus.d.ts +116 -0
- package/dist/esm/WakeBus.d.ts.map +1 -0
- package/dist/esm/WakeBus.js +121 -0
- package/dist/esm/WakeBus.js.map +1 -0
- package/dist/esm/WorkspaceSandbox.d.ts +619 -0
- package/dist/esm/WorkspaceSandbox.d.ts.map +1 -0
- package/dist/esm/WorkspaceSandbox.js +985 -0
- package/dist/esm/WorkspaceSandbox.js.map +1 -0
- package/dist/esm/index.d.ts +157 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +157 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/ActionPersistence.d.ts +276 -0
- package/dist/esm/internal/ActionPersistence.d.ts.map +1 -0
- package/dist/esm/internal/ActionPersistence.js +2306 -0
- package/dist/esm/internal/ActionPersistence.js.map +1 -0
- package/dist/esm/internal/ArtifactRoots.d.ts +38 -0
- package/dist/esm/internal/ArtifactRoots.d.ts.map +1 -0
- package/dist/esm/internal/ArtifactRoots.js +76 -0
- package/dist/esm/internal/ArtifactRoots.js.map +1 -0
- package/dist/esm/internal/AttemptAdmission.d.ts +53 -0
- package/dist/esm/internal/AttemptAdmission.d.ts.map +1 -0
- package/dist/esm/internal/AttemptAdmission.js +52 -0
- package/dist/esm/internal/AttemptAdmission.js.map +1 -0
- package/dist/esm/internal/AttemptLifecycle.d.ts +245 -0
- package/dist/esm/internal/AttemptLifecycle.d.ts.map +1 -0
- package/dist/esm/internal/AttemptLifecycle.js +104 -0
- package/dist/esm/internal/AttemptLifecycle.js.map +1 -0
- package/dist/esm/internal/AttemptProbe.d.ts +53 -0
- package/dist/esm/internal/AttemptProbe.d.ts.map +1 -0
- package/dist/esm/internal/AttemptProbe.js +83 -0
- package/dist/esm/internal/AttemptProbe.js.map +1 -0
- package/dist/esm/internal/CacheAdmission.d.ts +79 -0
- package/dist/esm/internal/CacheAdmission.d.ts.map +1 -0
- package/dist/esm/internal/CacheAdmission.js +72 -0
- package/dist/esm/internal/CacheAdmission.js.map +1 -0
- package/dist/esm/internal/CacheAgeHistory.d.ts +27 -0
- package/dist/esm/internal/CacheAgeHistory.d.ts.map +1 -0
- package/dist/esm/internal/CacheAgeHistory.js +49 -0
- package/dist/esm/internal/CacheAgeHistory.js.map +1 -0
- package/dist/esm/internal/CacheAgeVerdicts.d.ts +15 -0
- package/dist/esm/internal/CacheAgeVerdicts.d.ts.map +1 -0
- package/dist/esm/internal/CacheAgeVerdicts.js +54 -0
- package/dist/esm/internal/CacheAgeVerdicts.js.map +1 -0
- package/dist/esm/internal/CacheOutputPolicy.d.ts +24 -0
- package/dist/esm/internal/CacheOutputPolicy.d.ts.map +1 -0
- package/dist/esm/internal/CacheOutputPolicy.js +73 -0
- package/dist/esm/internal/CacheOutputPolicy.js.map +1 -0
- package/dist/esm/internal/CachePublication.d.ts +97 -0
- package/dist/esm/internal/CachePublication.d.ts.map +1 -0
- package/dist/esm/internal/CachePublication.js +116 -0
- package/dist/esm/internal/CachePublication.js.map +1 -0
- package/dist/esm/internal/CallFacts.d.ts +15 -0
- package/dist/esm/internal/CallFacts.d.ts.map +1 -0
- package/dist/esm/internal/CallFacts.js +83 -0
- package/dist/esm/internal/CallFacts.js.map +1 -0
- package/dist/esm/internal/CopiedRecord.d.ts +61 -0
- package/dist/esm/internal/CopiedRecord.d.ts.map +1 -0
- package/dist/esm/internal/CopiedRecord.js +165 -0
- package/dist/esm/internal/CopiedRecord.js.map +1 -0
- package/dist/esm/internal/DeferredPersistence.d.ts +108 -0
- package/dist/esm/internal/DeferredPersistence.d.ts.map +1 -0
- package/dist/esm/internal/DeferredPersistence.js +240 -0
- package/dist/esm/internal/DeferredPersistence.js.map +1 -0
- package/dist/esm/internal/EffectRecords.d.ts +92 -0
- package/dist/esm/internal/EffectRecords.d.ts.map +1 -0
- package/dist/esm/internal/EffectRecords.js +94 -0
- package/dist/esm/internal/EffectRecords.js.map +1 -0
- package/dist/esm/internal/EngineJj.d.ts +30 -0
- package/dist/esm/internal/EngineJj.d.ts.map +1 -0
- package/dist/esm/internal/EngineJj.js +29 -0
- package/dist/esm/internal/EngineJj.js.map +1 -0
- package/dist/esm/internal/EngineStateSchema.d.ts +68 -0
- package/dist/esm/internal/EngineStateSchema.d.ts.map +1 -0
- package/dist/esm/internal/EngineStateSchema.js +53 -0
- package/dist/esm/internal/EngineStateSchema.js.map +1 -0
- package/dist/esm/internal/ExecutionSnapshotRead.d.ts +162 -0
- package/dist/esm/internal/ExecutionSnapshotRead.d.ts.map +1 -0
- package/dist/esm/internal/ExecutionSnapshotRead.js +218 -0
- package/dist/esm/internal/ExecutionSnapshotRead.js.map +1 -0
- package/dist/esm/internal/ExecutionSnapshotRelations.d.ts +39 -0
- package/dist/esm/internal/ExecutionSnapshotRelations.d.ts.map +1 -0
- package/dist/esm/internal/ExecutionSnapshotRelations.js +81 -0
- package/dist/esm/internal/ExecutionSnapshotRelations.js.map +1 -0
- package/dist/esm/internal/ExitEncoding.d.ts +180 -0
- package/dist/esm/internal/ExitEncoding.d.ts.map +1 -0
- package/dist/esm/internal/ExitEncoding.js +361 -0
- package/dist/esm/internal/ExitEncoding.js.map +1 -0
- package/dist/esm/internal/FileBoundarySnapshot.d.ts +14 -0
- package/dist/esm/internal/FileBoundarySnapshot.d.ts.map +1 -0
- package/dist/esm/internal/FileBoundarySnapshot.js +29 -0
- package/dist/esm/internal/FileBoundarySnapshot.js.map +1 -0
- package/dist/esm/internal/FileEnumeration.d.ts +127 -0
- package/dist/esm/internal/FileEnumeration.d.ts.map +1 -0
- package/dist/esm/internal/FileEnumeration.js +236 -0
- package/dist/esm/internal/FileEnumeration.js.map +1 -0
- package/dist/esm/internal/HostReflection.d.ts +80 -0
- package/dist/esm/internal/HostReflection.d.ts.map +1 -0
- package/dist/esm/internal/HostReflection.js +98 -0
- package/dist/esm/internal/HostReflection.js.map +1 -0
- package/dist/esm/internal/JournalRecords.d.ts +325 -0
- package/dist/esm/internal/JournalRecords.d.ts.map +1 -0
- package/dist/esm/internal/JournalRecords.js +306 -0
- package/dist/esm/internal/JournalRecords.js.map +1 -0
- package/dist/esm/internal/NodeJournal.d.ts +157 -0
- package/dist/esm/internal/NodeJournal.d.ts.map +1 -0
- package/dist/esm/internal/NodeJournal.js +298 -0
- package/dist/esm/internal/NodeJournal.js.map +1 -0
- package/dist/esm/internal/Ordering.d.ts +14 -0
- package/dist/esm/internal/Ordering.d.ts.map +1 -0
- package/dist/esm/internal/Ordering.js +14 -0
- package/dist/esm/internal/Ordering.js.map +1 -0
- package/dist/esm/internal/PlanInputs.d.ts +14 -0
- package/dist/esm/internal/PlanInputs.d.ts.map +1 -0
- package/dist/esm/internal/PlanInputs.js +57 -0
- package/dist/esm/internal/PlanInputs.js.map +1 -0
- package/dist/esm/internal/PlanMerges.d.ts +178 -0
- package/dist/esm/internal/PlanMerges.d.ts.map +1 -0
- package/dist/esm/internal/PlanMerges.js +113 -0
- package/dist/esm/internal/PlanMerges.js.map +1 -0
- package/dist/esm/internal/ProvenanceSlot.d.ts +30 -0
- package/dist/esm/internal/ProvenanceSlot.d.ts.map +1 -0
- package/dist/esm/internal/ProvenanceSlot.js +39 -0
- package/dist/esm/internal/ProvenanceSlot.js.map +1 -0
- package/dist/esm/internal/ResultEnvelope.d.ts +88 -0
- package/dist/esm/internal/ResultEnvelope.d.ts.map +1 -0
- package/dist/esm/internal/ResultEnvelope.js +83 -0
- package/dist/esm/internal/ResultEnvelope.js.map +1 -0
- package/dist/esm/internal/RetentionOps.d.ts +414 -0
- package/dist/esm/internal/RetentionOps.d.ts.map +1 -0
- package/dist/esm/internal/RetentionOps.js +576 -0
- package/dist/esm/internal/RetentionOps.js.map +1 -0
- package/dist/esm/internal/RunCatalogOps.d.ts +118 -0
- package/dist/esm/internal/RunCatalogOps.d.ts.map +1 -0
- package/dist/esm/internal/RunCatalogOps.js +120 -0
- package/dist/esm/internal/RunCatalogOps.js.map +1 -0
- package/dist/esm/internal/RunCoordinator.d.ts +78 -0
- package/dist/esm/internal/RunCoordinator.d.ts.map +1 -0
- package/dist/esm/internal/RunCoordinator.js +115 -0
- package/dist/esm/internal/RunCoordinator.js.map +1 -0
- package/dist/esm/internal/RunDriver.d.ts +192 -0
- package/dist/esm/internal/RunDriver.d.ts.map +1 -0
- package/dist/esm/internal/RunDriver.js +2334 -0
- package/dist/esm/internal/RunDriver.js.map +1 -0
- package/dist/esm/internal/RunLifecycle.d.ts +22 -0
- package/dist/esm/internal/RunLifecycle.d.ts.map +1 -0
- package/dist/esm/internal/RunLifecycle.js +49 -0
- package/dist/esm/internal/RunLifecycle.js.map +1 -0
- package/dist/esm/internal/RunListing.d.ts +78 -0
- package/dist/esm/internal/RunListing.d.ts.map +1 -0
- package/dist/esm/internal/RunListing.js +146 -0
- package/dist/esm/internal/RunListing.js.map +1 -0
- package/dist/esm/internal/RunListingError.d.ts +35 -0
- package/dist/esm/internal/RunListingError.d.ts.map +1 -0
- package/dist/esm/internal/RunListingError.js +27 -0
- package/dist/esm/internal/RunListingError.js.map +1 -0
- package/dist/esm/internal/RuntimeGraph.d.ts +73 -0
- package/dist/esm/internal/RuntimeGraph.d.ts.map +1 -0
- package/dist/esm/internal/RuntimeGraph.js +182 -0
- package/dist/esm/internal/RuntimeGraph.js.map +1 -0
- package/dist/esm/internal/SandboxedExecution.d.ts +80 -0
- package/dist/esm/internal/SandboxedExecution.d.ts.map +1 -0
- package/dist/esm/internal/SandboxedExecution.js +107 -0
- package/dist/esm/internal/SandboxedExecution.js.map +1 -0
- package/dist/esm/internal/StateTransaction.d.ts +44 -0
- package/dist/esm/internal/StateTransaction.d.ts.map +1 -0
- package/dist/esm/internal/StateTransaction.js +54 -0
- package/dist/esm/internal/StateTransaction.js.map +1 -0
- package/dist/esm/internal/StepFacts.d.ts +14 -0
- package/dist/esm/internal/StepFacts.d.ts.map +1 -0
- package/dist/esm/internal/StepFacts.js +35 -0
- package/dist/esm/internal/StepFacts.js.map +1 -0
- package/dist/esm/internal/TypedEvents.d.ts +14 -0
- package/dist/esm/internal/TypedEvents.d.ts.map +1 -0
- package/dist/esm/internal/TypedEvents.js +14 -0
- package/dist/esm/internal/TypedEvents.js.map +1 -0
- package/dist/esm/migrations/0001_initial.d.ts +17 -0
- package/dist/esm/migrations/0001_initial.d.ts.map +1 -0
- package/dist/esm/migrations/0001_initial.js +41 -0
- package/dist/esm/migrations/0001_initial.js.map +1 -0
- package/dist/esm/migrations/0002_selection_store.d.ts +15 -0
- package/dist/esm/migrations/0002_selection_store.d.ts.map +1 -0
- package/dist/esm/migrations/0002_selection_store.js +34 -0
- package/dist/esm/migrations/0002_selection_store.js.map +1 -0
- package/dist/esm/migrations/0003_plan_inputs.d.ts +13 -0
- package/dist/esm/migrations/0003_plan_inputs.d.ts.map +1 -0
- package/dist/esm/migrations/0003_plan_inputs.js +70 -0
- package/dist/esm/migrations/0003_plan_inputs.js.map +1 -0
- package/dist/esm/migrations/0004_plan_environment.d.ts +14 -0
- package/dist/esm/migrations/0004_plan_environment.d.ts.map +1 -0
- package/dist/esm/migrations/0004_plan_environment.js +33 -0
- package/dist/esm/migrations/0004_plan_environment.js.map +1 -0
- package/dist/esm/migrations/0005_plan_merges.d.ts +14 -0
- package/dist/esm/migrations/0005_plan_merges.d.ts.map +1 -0
- package/dist/esm/migrations/0005_plan_merges.js +59 -0
- package/dist/esm/migrations/0005_plan_merges.js.map +1 -0
- package/dist/esm/migrations/0006_execution_listing.d.ts +15 -0
- package/dist/esm/migrations/0006_execution_listing.d.ts.map +1 -0
- package/dist/esm/migrations/0006_execution_listing.js +81 -0
- package/dist/esm/migrations/0006_execution_listing.js.map +1 -0
- package/dist/esm/migrations/0007_run_parent_sequence.d.ts +15 -0
- package/dist/esm/migrations/0007_run_parent_sequence.d.ts.map +1 -0
- package/dist/esm/migrations/0007_run_parent_sequence.js +18 -0
- package/dist/esm/migrations/0007_run_parent_sequence.js.map +1 -0
- package/dist/esm/migrations/0008_deferred_consumption.d.ts +16 -0
- package/dist/esm/migrations/0008_deferred_consumption.d.ts.map +1 -0
- package/dist/esm/migrations/0008_deferred_consumption.js +24 -0
- package/dist/esm/migrations/0008_deferred_consumption.js.map +1 -0
- package/dist/esm/migrations/0009_deferred_clock_facts.d.ts +24 -0
- package/dist/esm/migrations/0009_deferred_clock_facts.d.ts.map +1 -0
- package/dist/esm/migrations/0009_deferred_clock_facts.js +127 -0
- package/dist/esm/migrations/0009_deferred_clock_facts.js.map +1 -0
- package/dist/esm/migrations/0010_pending_cancellation.d.ts +15 -0
- package/dist/esm/migrations/0010_pending_cancellation.d.ts.map +1 -0
- package/dist/esm/migrations/0010_pending_cancellation.js +19 -0
- package/dist/esm/migrations/0010_pending_cancellation.js.map +1 -0
- package/dist/esm/test/TestStores.d.ts +89 -0
- package/dist/esm/test/TestStores.d.ts.map +1 -0
- package/dist/esm/test/TestStores.js +103 -0
- package/dist/esm/test/TestStores.js.map +1 -0
- package/docs/README.md +113 -0
- package/docs/api.md +1494 -0
- package/docs/concepts/attempts-and-replay.md +149 -0
- package/docs/concepts/cache-admission.md +265 -0
- package/docs/concepts/call-facts.md +86 -0
- package/docs/concepts/durable-waits.md +175 -0
- package/docs/concepts/execution-facts.md +90 -0
- package/docs/concepts/ownership-and-fencing.md +128 -0
- package/docs/concepts/step-boundaries.md +148 -0
- package/docs/concepts/workspace-transactions.md +199 -0
- package/docs/event-types.md +14 -0
- package/docs/guides/back-up-and-restore.md +164 -0
- package/docs/guides/collect-unreferenced-artifacts.md +128 -0
- package/docs/guides/compose-a-durable-engine.md +146 -0
- package/docs/guides/coordinate-two-processes.md +120 -0
- package/docs/guides/defer-work-with-selection.md +171 -0
- package/docs/guides/delete-old-run-history.md +154 -0
- package/docs/guides/drive-a-plan.md +314 -0
- package/docs/guides/observe-engine-metrics.md +98 -0
- package/docs/guides/observe-executions.md +187 -0
- package/docs/guides/reclaim-runs-from-a-dead-host.md +133 -0
- package/docs/guides/share-a-cache-across-machines.md +134 -0
- package/docs/guides/testing.md +123 -0
- package/docs/installation.md +102 -0
- package/docs/quickstart.md +215 -0
- package/docs/troubleshooting.md +347 -0
- package/package.json +438 -3
- package/src/ArtifactGc.ts +408 -0
- package/src/ArtifactSync.ts +278 -0
- package/src/CacheSync.ts +131 -0
- package/src/DeferredClockFold.ts +586 -0
- package/src/DisasterRecovery.ts +888 -0
- package/src/DurableEngineState.ts +2656 -0
- package/src/EngineStore.ts +656 -0
- package/src/EngineStoreMetrics.ts +331 -0
- package/src/Errors.ts +28 -0
- package/src/EventTypes.ts +27 -0
- package/src/ExecutionFacts.ts +125 -0
- package/src/ExecutionSnapshot.ts +186 -0
- package/src/Inconsistency.ts +253 -0
- package/src/Migrations.ts +95 -0
- package/src/OwnerIdentity.ts +125 -0
- package/src/PlanInputStore.ts +292 -0
- package/src/PlanMergeStore.ts +330 -0
- package/src/PlanScheduler.ts +1806 -0
- package/src/Reconciliation.ts +224 -0
- package/src/ReplayOnly.ts +95 -0
- package/src/Retention.ts +214 -0
- package/src/RunCatalogRead.ts +27 -0
- package/src/RunChangeFeed.ts +125 -0
- package/src/RunState.ts +137 -0
- package/src/Selection.ts +683 -0
- package/src/SelectionStore.ts +353 -0
- package/src/StepBoundary.ts +1165 -0
- package/src/StepCacheFold.ts +244 -0
- package/src/StepSandbox.ts +110 -0
- package/src/WakeBus.ts +167 -0
- package/src/WorkspaceSandbox.ts +1604 -0
- package/src/index.ts +185 -0
- package/src/internal/ActionPersistence.ts +2687 -0
- package/src/internal/ArtifactRoots.ts +92 -0
- package/src/internal/AttemptAdmission.ts +76 -0
- package/src/internal/AttemptLifecycle.ts +163 -0
- package/src/internal/AttemptProbe.ts +90 -0
- package/src/internal/CacheAdmission.ts +133 -0
- package/src/internal/CacheAgeHistory.ts +58 -0
- package/src/internal/CacheAgeVerdicts.ts +61 -0
- package/src/internal/CacheOutputPolicy.ts +82 -0
- package/src/internal/CachePublication.ts +153 -0
- package/src/internal/CallFacts.ts +87 -0
- package/src/internal/CopiedRecord.ts +201 -0
- package/src/internal/DeferredPersistence.ts +459 -0
- package/src/internal/EffectRecords.ts +136 -0
- package/src/internal/EngineJj.ts +30 -0
- package/src/internal/EngineStateSchema.ts +92 -0
- package/src/internal/ExecutionSnapshotRead.ts +300 -0
- package/src/internal/ExecutionSnapshotRelations.ts +121 -0
- package/src/internal/ExitEncoding.ts +453 -0
- package/src/internal/FileBoundarySnapshot.ts +39 -0
- package/src/internal/FileEnumeration.ts +334 -0
- package/src/internal/HostReflection.ts +128 -0
- package/src/internal/JournalRecords.ts +396 -0
- package/src/internal/NodeJournal.ts +340 -0
- package/src/internal/Ordering.ts +14 -0
- package/src/internal/PlanInputs.ts +62 -0
- package/src/internal/PlanMerges.ts +123 -0
- package/src/internal/ProvenanceSlot.ts +52 -0
- package/src/internal/ResultEnvelope.ts +118 -0
- package/src/internal/RetentionOps.ts +865 -0
- package/src/internal/RunCatalogOps.ts +174 -0
- package/src/internal/RunCoordinator.ts +215 -0
- package/src/internal/RunDriver.ts +3154 -0
- package/src/internal/RunLifecycle.ts +53 -0
- package/src/internal/RunListing.ts +210 -0
- package/src/internal/RunListingError.ts +37 -0
- package/src/internal/RuntimeGraph.ts +253 -0
- package/src/internal/SandboxedExecution.ts +165 -0
- package/src/internal/StateTransaction.ts +71 -0
- package/src/internal/StepFacts.ts +36 -0
- package/src/internal/TypedEvents.ts +29 -0
- package/src/migrations/0001_initial.ts +51 -0
- package/src/migrations/0002_selection_store.ts +38 -0
- package/src/migrations/0003_plan_inputs.ts +75 -0
- package/src/migrations/0004_plan_environment.ts +34 -0
- package/src/migrations/0005_plan_merges.ts +60 -0
- package/src/migrations/0006_execution_listing.ts +86 -0
- package/src/migrations/0007_run_parent_sequence.ts +19 -0
- package/src/migrations/0008_deferred_consumption.ts +27 -0
- package/src/migrations/0009_deferred_clock_facts.ts +163 -0
- package/src/migrations/0010_pending_cancellation.ts +20 -0
- package/src/test/TestStores.ts +145 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var PlanMerges_exports = {};
|
|
30
|
+
__export(PlanMerges_exports, {
|
|
31
|
+
allocateId: () => allocateId,
|
|
32
|
+
draft: () => draft,
|
|
33
|
+
recover: () => recover,
|
|
34
|
+
validateIntent: () => validateIntent
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(PlanMerges_exports);
|
|
37
|
+
var import_plan = require("@smthrs/plan");
|
|
38
|
+
var import_effect = require("effect");
|
|
39
|
+
var PlanMergeStore = __toESM(require("../PlanMergeStore.js"), 1);
|
|
40
|
+
const invalid = (message, cause) => new PlanMergeStore.PlanMergeError({
|
|
41
|
+
code: "corrupt_state",
|
|
42
|
+
message,
|
|
43
|
+
...cause === void 0 ? {} : { cause }
|
|
44
|
+
});
|
|
45
|
+
const allocateId = (plan, nodeId) => {
|
|
46
|
+
const occupied = new Set(plan.nodes.map((node) => node.id));
|
|
47
|
+
const base = `${nodeId}+merge`;
|
|
48
|
+
let candidate = base;
|
|
49
|
+
for (let suffix = 1; occupied.has(candidate); suffix++) candidate = `${base}#${suffix}`;
|
|
50
|
+
return candidate;
|
|
51
|
+
};
|
|
52
|
+
const draft = (node, mergeId, winners) => ({
|
|
53
|
+
id: mergeId,
|
|
54
|
+
kind: "merge",
|
|
55
|
+
material: {
|
|
56
|
+
version: import_plan.KeyMaterial.version,
|
|
57
|
+
kind: node.material.kind,
|
|
58
|
+
body: { merge: { stopped: node.id, winners } },
|
|
59
|
+
inputs: winners.map((id) => ({ _tag: "Pending", from: id })),
|
|
60
|
+
layers: [],
|
|
61
|
+
capabilities: []
|
|
62
|
+
},
|
|
63
|
+
effects: node.effects
|
|
64
|
+
});
|
|
65
|
+
const validateIntent = (plan, intent) => import_effect.Effect.gen(function* () {
|
|
66
|
+
const node = plan.nodes.find((candidate) => candidate.id === intent.nodeId);
|
|
67
|
+
if (node === void 0 || node.key !== intent.nodeKey || node.material.kind === "irreversible" || node.runtime !== "stop-merge" && !node.conflicts.some((conflict) => conflict.runtime === "stop-merge") || intent.peers.some((id) => !node.conflicts.some((conflict) => conflict.with === id))) {
|
|
68
|
+
return yield* import_effect.Effect.fail(invalid("merge intent does not match its approved stopped node"));
|
|
69
|
+
}
|
|
70
|
+
return node;
|
|
71
|
+
});
|
|
72
|
+
const recover = (candidate, decisions) => import_effect.Effect.gen(function* () {
|
|
73
|
+
const byGeneration = new Map(
|
|
74
|
+
decisions.flatMap(
|
|
75
|
+
(decision) => decision.completion === void 0 ? [] : [[decision.completion.generation, decision]]
|
|
76
|
+
)
|
|
77
|
+
);
|
|
78
|
+
let plan = candidate;
|
|
79
|
+
if (byGeneration.size > 0) {
|
|
80
|
+
plan = yield* import_plan.Plan.verify({
|
|
81
|
+
...candidate,
|
|
82
|
+
generation: 0,
|
|
83
|
+
digest: candidate.baseDigest,
|
|
84
|
+
nodes: candidate.nodes.filter((node) => node.generation === 0)
|
|
85
|
+
}).pipe(import_effect.Effect.mapError((cause) => invalid("merge recovery has an invalid approved base", cause)));
|
|
86
|
+
const last = Math.max(candidate.generation, ...byGeneration.keys());
|
|
87
|
+
if (last > import_plan.Plan.maximumPlanNodes) return yield* import_effect.Effect.fail(invalid("merge generation exceeds the plan limit"));
|
|
88
|
+
for (let generation = 1; generation <= last; generation++) {
|
|
89
|
+
const decision = byGeneration.get(generation);
|
|
90
|
+
let drafts;
|
|
91
|
+
if (decision?.completion !== void 0) {
|
|
92
|
+
const stopped = yield* validateIntent(plan, decision.intent);
|
|
93
|
+
if (decision.completion.parentDigest !== plan.digest) {
|
|
94
|
+
return yield* import_effect.Effect.fail(invalid("merge parent digest changed"));
|
|
95
|
+
}
|
|
96
|
+
drafts = [draft(stopped, decision.completion.mergeId, decision.completion.winners)];
|
|
97
|
+
} else {
|
|
98
|
+
drafts = candidate.nodes.filter((node) => node.generation === generation).map((node) => ({
|
|
99
|
+
id: node.id,
|
|
100
|
+
kind: node.kind,
|
|
101
|
+
material: node.material,
|
|
102
|
+
effects: node.effects,
|
|
103
|
+
priority: node.priority,
|
|
104
|
+
conflictStrategy: node.strategy,
|
|
105
|
+
runtimeStrategy: node.runtime
|
|
106
|
+
}));
|
|
107
|
+
if (drafts.length === 0) {
|
|
108
|
+
return yield* import_effect.Effect.fail(invalid("merge recovery requires the approved intervening plan generations"));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
plan = yield* import_plan.Plan.append(plan, drafts).pipe(
|
|
112
|
+
import_effect.Effect.mapError((cause) => invalid("stored merge extension cannot be reconstructed", cause))
|
|
113
|
+
);
|
|
114
|
+
if (decision?.completion !== void 0 && (plan.digest !== decision.completion.planDigest || import_plan.Plan.generationNodes(plan)[0].key !== decision.completion.mergeKey)) {
|
|
115
|
+
return yield* import_effect.Effect.fail(invalid("merge decision does not identify its generated node"));
|
|
116
|
+
}
|
|
117
|
+
if (generation === candidate.generation && plan.digest !== candidate.digest) {
|
|
118
|
+
return yield* import_effect.Effect.fail(invalid("merge decisions disagree with the supplied plan"));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
for (const decision of decisions) yield* validateIntent(plan, decision.intent);
|
|
123
|
+
return plan;
|
|
124
|
+
});
|
|
125
|
+
//# sourceMappingURL=PlanMerges.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/PlanMerges.ts"],
|
|
4
|
+
"sourcesContent": ["/** Durable merge recovery and generated identity, independent of dispatch.\n * @since 1.0.0\n */\n\nimport { KeyMaterial, Plan } from \"@smthrs/plan\"\nimport { Effect } from \"effect\"\nimport * as PlanMergeStore from \"../PlanMergeStore.ts\"\n\nconst invalid = (message: string, cause?: unknown) =>\n new PlanMergeStore.PlanMergeError({\n code: \"corrupt_state\",\n message,\n ...(cause === undefined ? {} : { cause })\n })\n/** Chooses a free display ID; ownership comes from the durable decision, not this spelling.\n * @since 1.0.0\n * @category identity\n */\nexport const allocateId = (plan: Plan.Plan, nodeId: string): string => {\n const occupied = new Set(plan.nodes.map((node) => node.id))\n const base = `${nodeId}+merge`\n let candidate = base\n for (let suffix = 1; occupied.has(candidate); suffix++) candidate = `${base}#${suffix}`\n return candidate\n}\n/** The single declaration used both when appending and when recovering an extension.\n * @since 1.0.0\n * @category constructors\n */\nexport const draft = (node: Plan.PlanNode, mergeId: string, winners: ReadonlyArray<string>): Plan.NodeDraft => ({\n id: mergeId,\n kind: \"merge\",\n material: {\n version: KeyMaterial.version,\n kind: node.material.kind,\n body: { merge: { stopped: node.id, winners } },\n inputs: winners.map((id) => ({ _tag: \"Pending\", from: id })),\n layers: [],\n capabilities: []\n },\n effects: node.effects\n})\n/** Checks that an intent names a permissible stopped node and its actual conflict peers.\n * @since 1.0.0\n * @category validation\n */\nexport const validateIntent = (plan: Plan.Plan, intent: PlanMergeStore.Intent) =>\n Effect.gen(function*() {\n const node = plan.nodes.find((candidate) => candidate.id === intent.nodeId)\n if (\n node === undefined || node.key !== intent.nodeKey || node.material.kind === \"irreversible\" ||\n (node.runtime !== \"stop-merge\" && !node.conflicts.some((conflict) => conflict.runtime === \"stop-merge\")) ||\n intent.peers.some((id) => !node.conflicts.some((conflict) => conflict.with === id))\n ) {\n return yield* Effect.fail(invalid(\"merge intent does not match its approved stopped node\"))\n }\n return node\n })\n/** Recovers only recorded merge extensions, never unrelated/unapproved appended work.\n * @since 1.0.0\n * @category recovery\n */\nexport const recover = (candidate: Plan.Plan, decisions: ReadonlyArray<PlanMergeStore.Decision>) =>\n Effect.gen(function*() {\n const byGeneration = new Map(\n decisions.flatMap((decision) =>\n decision.completion === undefined ? [] : [[decision.completion.generation, decision] as const]\n )\n )\n let plan = candidate\n if (byGeneration.size > 0) {\n // Rebuild each prefix once. Re-verifying every complete prefix separately\n // would multiply the compiler's overlap work across a long merge history.\n plan = yield* Plan.verify({\n ...candidate,\n generation: 0,\n digest: candidate.baseDigest,\n nodes: candidate.nodes.filter((node) => node.generation === 0)\n })\n .pipe(Effect.mapError((cause) => invalid(\"merge recovery has an invalid approved base\", cause)))\n const last = Math.max(candidate.generation, ...byGeneration.keys())\n if (last > Plan.maximumPlanNodes) return yield* Effect.fail(invalid(\"merge generation exceeds the plan limit\"))\n for (let generation = 1; generation <= last; generation++) {\n const decision = byGeneration.get(generation)\n let drafts: ReadonlyArray<Plan.NodeDraft>\n if (decision?.completion !== undefined) {\n const stopped = yield* validateIntent(plan, decision.intent)\n if (decision.completion.parentDigest !== plan.digest) {\n return yield* Effect.fail(invalid(\"merge parent digest changed\"))\n }\n drafts = [draft(stopped, decision.completion.mergeId, decision.completion.winners)]\n } else {\n drafts = candidate.nodes.filter((node) => node.generation === generation).map((node) => ({\n id: node.id,\n kind: node.kind,\n material: node.material,\n effects: node.effects,\n priority: node.priority,\n conflictStrategy: node.strategy,\n runtimeStrategy: node.runtime\n }))\n if (drafts.length === 0) {\n return yield* Effect.fail(invalid(\"merge recovery requires the approved intervening plan generations\"))\n }\n }\n plan = yield* Plan.append(plan, drafts).pipe(\n Effect.mapError((cause) => invalid(\"stored merge extension cannot be reconstructed\", cause))\n )\n if (\n decision?.completion !== undefined &&\n (plan.digest !== decision.completion.planDigest ||\n Plan.generationNodes(plan)[0]!.key !== decision.completion.mergeKey)\n ) {\n return yield* Effect.fail(invalid(\"merge decision does not identify its generated node\"))\n }\n if (generation === candidate.generation && plan.digest !== candidate.digest) {\n return yield* Effect.fail(invalid(\"merge decisions disagree with the supplied plan\"))\n }\n }\n }\n for (const decision of decisions) yield* validateIntent(plan, decision.intent)\n return plan\n })\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,kBAAkC;AAClC,oBAAuB;AACvB,qBAAgC;AAEhC,MAAM,UAAU,CAAC,SAAiB,UAChC,IAAI,eAAe,eAAe;AAAA,EAChC,MAAM;AAAA,EACN;AAAA,EACA,GAAI,UAAU,SAAY,CAAC,IAAI,EAAE,MAAM;AACzC,CAAC;AAKI,MAAM,aAAa,CAAC,MAAiB,WAA2B;AACrE,QAAM,WAAW,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC;AAC1D,QAAM,OAAO,GAAG,MAAM;AACtB,MAAI,YAAY;AAChB,WAAS,SAAS,GAAG,SAAS,IAAI,SAAS,GAAG,SAAU,aAAY,GAAG,IAAI,IAAI,MAAM;AACrF,SAAO;AACT;AAKO,MAAM,QAAQ,CAAC,MAAqB,SAAiB,aAAoD;AAAA,EAC9G,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,UAAU;AAAA,IACR,SAAS,wBAAY;AAAA,IACrB,MAAM,KAAK,SAAS;AAAA,IACpB,MAAM,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,QAAQ,EAAE;AAAA,IAC7C,QAAQ,QAAQ,IAAI,CAAC,QAAQ,EAAE,MAAM,WAAW,MAAM,GAAG,EAAE;AAAA,IAC3D,QAAQ,CAAC;AAAA,IACT,cAAc,CAAC;AAAA,EACjB;AAAA,EACA,SAAS,KAAK;AAChB;AAKO,MAAM,iBAAiB,CAAC,MAAiB,WAC9C,qBAAO,IAAI,aAAY;AACrB,QAAM,OAAO,KAAK,MAAM,KAAK,CAAC,cAAc,UAAU,OAAO,OAAO,MAAM;AAC1E,MACE,SAAS,UAAa,KAAK,QAAQ,OAAO,WAAW,KAAK,SAAS,SAAS,kBAC3E,KAAK,YAAY,gBAAgB,CAAC,KAAK,UAAU,KAAK,CAAC,aAAa,SAAS,YAAY,YAAY,KACtG,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,UAAU,KAAK,CAAC,aAAa,SAAS,SAAS,EAAE,CAAC,GAClF;AACA,WAAO,OAAO,qBAAO,KAAK,QAAQ,uDAAuD,CAAC;AAAA,EAC5F;AACA,SAAO;AACT,CAAC;AAKI,MAAM,UAAU,CAAC,WAAsB,cAC5C,qBAAO,IAAI,aAAY;AACrB,QAAM,eAAe,IAAI;AAAA,IACvB,UAAU;AAAA,MAAQ,CAAC,aACjB,SAAS,eAAe,SAAY,CAAC,IAAI,CAAC,CAAC,SAAS,WAAW,YAAY,QAAQ,CAAU;AAAA,IAC/F;AAAA,EACF;AACA,MAAI,OAAO;AACX,MAAI,aAAa,OAAO,GAAG;AAGzB,WAAO,OAAO,iBAAK,OAAO;AAAA,MACxB,GAAG;AAAA,MACH,YAAY;AAAA,MACZ,QAAQ,UAAU;AAAA,MAClB,OAAO,UAAU,MAAM,OAAO,CAAC,SAAS,KAAK,eAAe,CAAC;AAAA,IAC/D,CAAC,EACE,KAAK,qBAAO,SAAS,CAAC,UAAU,QAAQ,+CAA+C,KAAK,CAAC,CAAC;AACjG,UAAM,OAAO,KAAK,IAAI,UAAU,YAAY,GAAG,aAAa,KAAK,CAAC;AAClE,QAAI,OAAO,iBAAK,iBAAkB,QAAO,OAAO,qBAAO,KAAK,QAAQ,yCAAyC,CAAC;AAC9G,aAAS,aAAa,GAAG,cAAc,MAAM,cAAc;AACzD,YAAM,WAAW,aAAa,IAAI,UAAU;AAC5C,UAAI;AACJ,UAAI,UAAU,eAAe,QAAW;AACtC,cAAM,UAAU,OAAO,eAAe,MAAM,SAAS,MAAM;AAC3D,YAAI,SAAS,WAAW,iBAAiB,KAAK,QAAQ;AACpD,iBAAO,OAAO,qBAAO,KAAK,QAAQ,6BAA6B,CAAC;AAAA,QAClE;AACA,iBAAS,CAAC,MAAM,SAAS,SAAS,WAAW,SAAS,SAAS,WAAW,OAAO,CAAC;AAAA,MACpF,OAAO;AACL,iBAAS,UAAU,MAAM,OAAO,CAAC,SAAS,KAAK,eAAe,UAAU,EAAE,IAAI,CAAC,UAAU;AAAA,UACvF,IAAI,KAAK;AAAA,UACT,MAAM,KAAK;AAAA,UACX,UAAU,KAAK;AAAA,UACf,SAAS,KAAK;AAAA,UACd,UAAU,KAAK;AAAA,UACf,kBAAkB,KAAK;AAAA,UACvB,iBAAiB,KAAK;AAAA,QACxB,EAAE;AACF,YAAI,OAAO,WAAW,GAAG;AACvB,iBAAO,OAAO,qBAAO,KAAK,QAAQ,mEAAmE,CAAC;AAAA,QACxG;AAAA,MACF;AACA,aAAO,OAAO,iBAAK,OAAO,MAAM,MAAM,EAAE;AAAA,QACtC,qBAAO,SAAS,CAAC,UAAU,QAAQ,kDAAkD,KAAK,CAAC;AAAA,MAC7F;AACA,UACE,UAAU,eAAe,WACxB,KAAK,WAAW,SAAS,WAAW,cACnC,iBAAK,gBAAgB,IAAI,EAAE,CAAC,EAAG,QAAQ,SAAS,WAAW,WAC7D;AACA,eAAO,OAAO,qBAAO,KAAK,QAAQ,qDAAqD,CAAC;AAAA,MAC1F;AACA,UAAI,eAAe,UAAU,cAAc,KAAK,WAAW,UAAU,QAAQ;AAC3E,eAAO,OAAO,qBAAO,KAAK,QAAQ,iDAAiD,CAAC;AAAA,MACtF;AAAA,IACF;AAAA,EACF;AACA,aAAW,YAAY,UAAW,QAAO,eAAe,MAAM,SAAS,MAAM;AAC7E,SAAO;AACT,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only validation of the cache-provenance record occupying a producer
|
|
3
|
+
* slot this run re-emits into.
|
|
4
|
+
*
|
|
5
|
+
* A provenance producer identity (`cache:<digest>:<action>[:<run>:<seq>]`,
|
|
6
|
+
* `sourceSeq` 0) names ONE fact about one cache row — this key expired, this
|
|
7
|
+
* row was served, this replay failed — so a re-emission after a resume or in
|
|
8
|
+
* a fork child records the same fact with fresh measurements (`ageMs`, the
|
|
9
|
+
* clock, a later `reason`) and collapses onto the row already there. That
|
|
10
|
+
* collapse is legitimate only while the occupying record IS that fact: the
|
|
11
|
+
* same event type, the same key, the same action, and the same recorded row
|
|
12
|
+
* when the record names one. Anything else in the slot is the conflict the
|
|
13
|
+
* journal reported.
|
|
14
|
+
* @since 1.0.0-rc.0
|
|
15
|
+
*/
|
|
16
|
+
import type { Journal, JournalEvent } from "@smthrs/journal";
|
|
17
|
+
import * as Effect from "effect/Effect";
|
|
18
|
+
/**
|
|
19
|
+
* Accepts the occupying record only when it states the same provenance fact
|
|
20
|
+
* as `record`; otherwise fails with `conflict`.
|
|
21
|
+
* @category accessors
|
|
22
|
+
* @since 1.0.0-rc.0
|
|
23
|
+
*/
|
|
24
|
+
export declare const accept: (options: {
|
|
25
|
+
readonly journal: Journal.Service;
|
|
26
|
+
readonly runId: string;
|
|
27
|
+
readonly record: JournalEvent.Input;
|
|
28
|
+
readonly conflict: Journal.JournalError;
|
|
29
|
+
}) => Effect.Effect<void, Journal.JournalError>;
|
|
30
|
+
//# sourceMappingURL=ProvenanceSlot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProvenanceSlot.d.ts","sourceRoot":"","sources":["../../../src/internal/ProvenanceSlot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAQvC;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,SAAS;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAA;CACxC,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAexC,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var ProvenanceSlot_exports = {};
|
|
30
|
+
__export(ProvenanceSlot_exports, {
|
|
31
|
+
accept: () => accept
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(ProvenanceSlot_exports);
|
|
34
|
+
var Effect = __toESM(require("effect/Effect"), 1);
|
|
35
|
+
var CacheAgeHistory = __toESM(require("./CacheAgeHistory.js"), 1);
|
|
36
|
+
const identity = ["keyDigest", "action", "recordedRunId", "recordedEventSeq"];
|
|
37
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
38
|
+
const accept = (options) => Effect.gen(function* () {
|
|
39
|
+
const { conflict, journal, record } = options;
|
|
40
|
+
const sourceSeq = record.sourceSeq ?? 0;
|
|
41
|
+
const entry = yield* CacheAgeHistory.find(
|
|
42
|
+
journal,
|
|
43
|
+
options.runId,
|
|
44
|
+
(candidate) => candidate.sourceId === record.sourceId && Number(candidate.sourceSeq) === Number(sourceSeq)
|
|
45
|
+
);
|
|
46
|
+
if (entry === void 0 || entry.eventType !== record.eventType) return yield* Effect.fail(conflict);
|
|
47
|
+
const attempted = record.payload;
|
|
48
|
+
const occupying = entry.payload;
|
|
49
|
+
if (!isRecord(attempted) || !isRecord(occupying)) return yield* Effect.fail(conflict);
|
|
50
|
+
const same = identity.every((field) => !(field in attempted) || attempted[field] === occupying[field]);
|
|
51
|
+
return same ? void 0 : yield* Effect.fail(conflict);
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=ProvenanceSlot.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/ProvenanceSlot.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Read-only validation of the cache-provenance record occupying a producer\n * slot this run re-emits into.\n *\n * A provenance producer identity (`cache:<digest>:<action>[:<run>:<seq>]`,\n * `sourceSeq` 0) names ONE fact about one cache row \u2014 this key expired, this\n * row was served, this replay failed \u2014 so a re-emission after a resume or in\n * a fork child records the same fact with fresh measurements (`ageMs`, the\n * clock, a later `reason`) and collapses onto the row already there. That\n * collapse is legitimate only while the occupying record IS that fact: the\n * same event type, the same key, the same action, and the same recorded row\n * when the record names one. Anything else in the slot is the conflict the\n * journal reported.\n * @since 1.0.0-rc.0\n */\n\nimport type { Journal, JournalEvent } from \"@smthrs/journal\"\nimport * as Effect from \"effect/Effect\"\nimport * as CacheAgeHistory from \"./CacheAgeHistory.ts\"\n\nconst identity = [\"keyDigest\", \"action\", \"recordedRunId\", \"recordedEventSeq\"] as const\n\nconst isRecord = (value: unknown): value is Readonly<Record<string, unknown>> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value)\n\n/**\n * Accepts the occupying record only when it states the same provenance fact\n * as `record`; otherwise fails with `conflict`.\n * @category accessors\n * @since 1.0.0-rc.0\n */\nexport const accept = (options: {\n readonly journal: Journal.Service\n readonly runId: string\n readonly record: JournalEvent.Input\n readonly conflict: Journal.JournalError\n}): Effect.Effect<void, Journal.JournalError> =>\n Effect.gen(function*() {\n const { conflict, journal, record } = options\n const sourceSeq = record.sourceSeq ?? 0\n const entry = yield* CacheAgeHistory.find(\n journal,\n options.runId,\n (candidate) => candidate.sourceId === record.sourceId && Number(candidate.sourceSeq) === Number(sourceSeq)\n )\n if (entry === undefined || entry.eventType !== record.eventType) return yield* Effect.fail(conflict)\n const attempted = record.payload\n const occupying = entry.payload\n if (!isRecord(attempted) || !isRecord(occupying)) return yield* Effect.fail(conflict)\n const same = identity.every((field) => !(field in attempted) || attempted[field] === occupying[field])\n return same ? undefined : yield* Effect.fail(conflict)\n })\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBA,aAAwB;AACxB,sBAAiC;AAEjC,MAAM,WAAW,CAAC,aAAa,UAAU,iBAAiB,kBAAkB;AAE5E,MAAM,WAAW,CAAC,UAChB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAQ9D,MAAM,SAAS,CAAC,YAMrB,OAAO,IAAI,aAAY;AACrB,QAAM,EAAE,UAAU,SAAS,OAAO,IAAI;AACtC,QAAM,YAAY,OAAO,aAAa;AACtC,QAAM,QAAQ,OAAO,gBAAgB;AAAA,IACnC;AAAA,IACA,QAAQ;AAAA,IACR,CAAC,cAAc,UAAU,aAAa,OAAO,YAAY,OAAO,UAAU,SAAS,MAAM,OAAO,SAAS;AAAA,EAC3G;AACA,MAAI,UAAU,UAAa,MAAM,cAAc,OAAO,UAAW,QAAO,OAAO,OAAO,KAAK,QAAQ;AACnG,QAAM,YAAY,OAAO;AACzB,QAAM,YAAY,MAAM;AACxB,MAAI,CAAC,SAAS,SAAS,KAAK,CAAC,SAAS,SAAS,EAAG,QAAO,OAAO,OAAO,KAAK,QAAQ;AACpF,QAAM,OAAO,SAAS,MAAM,CAAC,UAAU,EAAE,SAAS,cAAc,UAAU,KAAK,MAAM,UAAU,KAAK,CAAC;AACrG,SAAO,OAAO,SAAY,OAAO,OAAO,KAAK,QAAQ;AACvD,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A typed JSON settlement at the engine persistence boundary. The existing
|
|
3
|
+
* terminal fallback remains the encoder, so a rejected class cannot leave a
|
|
4
|
+
* run live. This module does not change existing result bytes or writers.
|
|
5
|
+
*
|
|
6
|
+
* @since 1.0.0
|
|
7
|
+
*/
|
|
8
|
+
import type { Flow } from "@smthrs/flow";
|
|
9
|
+
import * as EngineEvent from "@smthrs/journal/EngineEvent";
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import * as Schema from "effect/Schema";
|
|
12
|
+
/**
|
|
13
|
+
* Encoded success or a classified failure.
|
|
14
|
+
*
|
|
15
|
+
* @category schemas
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
*/
|
|
18
|
+
export declare const ResultEnvelope: Schema.Union<readonly [Schema.TaggedStruct<"Success", {
|
|
19
|
+
readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
|
|
20
|
+
}>, Schema.TaggedStruct<"Failure", {
|
|
21
|
+
readonly reason: Schema.Literals<readonly ["error", "defect", "interrupted", "encoding"]>;
|
|
22
|
+
readonly detail: Schema.Codec<Schema.Json, Schema.Json, never, never>;
|
|
23
|
+
}>]>;
|
|
24
|
+
/**
|
|
25
|
+
* Encoded success or a classified failure.
|
|
26
|
+
*
|
|
27
|
+
* @category models
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
*/
|
|
30
|
+
export type ResultEnvelope = EngineEvent.ResultEnvelope;
|
|
31
|
+
/**
|
|
32
|
+
* Validate untrusted encoded state without dropping contradictory fields.
|
|
33
|
+
*
|
|
34
|
+
* @category decoders
|
|
35
|
+
* @since 1.0.0
|
|
36
|
+
*/
|
|
37
|
+
export declare const decode: (input: unknown) => Effect.Effect<{
|
|
38
|
+
readonly _tag: "Success";
|
|
39
|
+
readonly value: Schema.Json;
|
|
40
|
+
} | {
|
|
41
|
+
readonly _tag: "Failure";
|
|
42
|
+
readonly reason: "error" | "encoding" | "defect" | "interrupted";
|
|
43
|
+
readonly detail: Schema.Json;
|
|
44
|
+
}, EngineEvent.EventError, never>;
|
|
45
|
+
/**
|
|
46
|
+
* The encoded settlement and whether the existing encoder required terminal
|
|
47
|
+
* fallback. Encoded domain failure is still an Encoded settlement; callers
|
|
48
|
+
* read its exit, never infer domain success from this discriminant.
|
|
49
|
+
*
|
|
50
|
+
* @category schemas
|
|
51
|
+
* @since 1.0.0
|
|
52
|
+
*/
|
|
53
|
+
export declare const Settlement: Schema.Union<readonly [Schema.TaggedStruct<"Encoded", {
|
|
54
|
+
readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
|
|
55
|
+
}>, Schema.TaggedStruct<"EncodingFailure", {
|
|
56
|
+
readonly value: Schema.Codec<Schema.Json, Schema.Json, never, never>;
|
|
57
|
+
readonly note: Schema.String;
|
|
58
|
+
}>]>;
|
|
59
|
+
/**
|
|
60
|
+
* Encoded terminal settlement and its encoding-failure status.
|
|
61
|
+
*
|
|
62
|
+
* @category models
|
|
63
|
+
* @since 1.0.0
|
|
64
|
+
*/
|
|
65
|
+
export type Settlement = typeof Settlement.Type;
|
|
66
|
+
/**
|
|
67
|
+
* Admit an encoded settlement without introducing an error channel on the
|
|
68
|
+
* terminal write path. A corrupt codec output becomes a terminal failure.
|
|
69
|
+
*
|
|
70
|
+
* @category decoders
|
|
71
|
+
* @since 1.0.0
|
|
72
|
+
*/
|
|
73
|
+
export declare const fromEncoded: (encoded: unknown, note?: string) => Effect.Effect<Settlement>;
|
|
74
|
+
/**
|
|
75
|
+
* Wrap the established no-fail terminal encoder without changing its bytes.
|
|
76
|
+
*
|
|
77
|
+
* @category conversions
|
|
78
|
+
* @since 1.0.0
|
|
79
|
+
*/
|
|
80
|
+
export declare const encode: (flow: Flow.Any, result: Flow.Result<unknown, unknown>) => Effect.Effect<{
|
|
81
|
+
readonly _tag: "Encoded";
|
|
82
|
+
readonly value: Schema.Json;
|
|
83
|
+
} | {
|
|
84
|
+
readonly _tag: "EncodingFailure";
|
|
85
|
+
readonly value: Schema.Json;
|
|
86
|
+
readonly note: string;
|
|
87
|
+
}, never, never>;
|
|
88
|
+
//# sourceMappingURL=ResultEnvelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResultEnvelope.d.ts","sourceRoot":"","sources":["../../../src/internal/ResultEnvelope.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAA;AAE1D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;IAA6B,CAAA;AACxD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAA;AACvD;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,OAAO;;;;;;;iCAWlC,CAAA;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU;;;;;IAGrB,CAAA;AACF;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,OAAO,EAAE,OAAO,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CA+BnF,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;;;;;;;gBAGzE,CAAA"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var ResultEnvelope_exports = {};
|
|
30
|
+
__export(ResultEnvelope_exports, {
|
|
31
|
+
ResultEnvelope: () => ResultEnvelope,
|
|
32
|
+
Settlement: () => Settlement,
|
|
33
|
+
decode: () => decode,
|
|
34
|
+
encode: () => encode,
|
|
35
|
+
fromEncoded: () => fromEncoded
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(ResultEnvelope_exports);
|
|
38
|
+
var EngineEvent = __toESM(require("@smthrs/journal/EngineEvent"), 1);
|
|
39
|
+
var Cause = __toESM(require("effect/Cause"), 1);
|
|
40
|
+
var Effect = __toESM(require("effect/Effect"), 1);
|
|
41
|
+
var Schema = __toESM(require("effect/Schema"), 1);
|
|
42
|
+
var ExitEncoding = __toESM(require("./ExitEncoding.js"), 1);
|
|
43
|
+
const ResultEnvelope = EngineEvent.ResultEnvelope;
|
|
44
|
+
const decode = (input) => Effect.suspend(() => Schema.decodeUnknownEffect(ResultEnvelope, { onExcessProperty: "error" })(input)).pipe(
|
|
45
|
+
Effect.catchCause(
|
|
46
|
+
(cause) => Effect.fail(
|
|
47
|
+
new EngineEvent.EventError({
|
|
48
|
+
code: "malformed",
|
|
49
|
+
message: "invalid result envelope",
|
|
50
|
+
cause: Cause.squash(cause)
|
|
51
|
+
})
|
|
52
|
+
)
|
|
53
|
+
)
|
|
54
|
+
);
|
|
55
|
+
const Settlement = Schema.Union([
|
|
56
|
+
Schema.TaggedStruct("Encoded", { value: Schema.Json }),
|
|
57
|
+
Schema.TaggedStruct("EncodingFailure", { value: Schema.Json, note: Schema.String })
|
|
58
|
+
]);
|
|
59
|
+
const fromEncoded = (encoded, note) => Effect.suspend(() => Schema.decodeUnknownEffect(Schema.Json)(encoded)).pipe(
|
|
60
|
+
Effect.map(
|
|
61
|
+
(value) => note === void 0 ? { _tag: "Encoded", value } : { _tag: "EncodingFailure", value, note }
|
|
62
|
+
),
|
|
63
|
+
Effect.catchCause((_cause) => {
|
|
64
|
+
const note2 = "the encoded settlement was not JSON";
|
|
65
|
+
return Effect.as(Effect.logWarning(`${note2}; preserving a terminal failure`), {
|
|
66
|
+
_tag: "EncodingFailure",
|
|
67
|
+
note: note2,
|
|
68
|
+
value: {
|
|
69
|
+
_tag: "Complete",
|
|
70
|
+
exit: {
|
|
71
|
+
_tag: "Failure",
|
|
72
|
+
cause: [{
|
|
73
|
+
_tag: "Die",
|
|
74
|
+
defect: {
|
|
75
|
+
_tag: ExitEncoding.projectionTag,
|
|
76
|
+
result: "Complete",
|
|
77
|
+
note: note2,
|
|
78
|
+
reasons: [],
|
|
79
|
+
value: null
|
|
80
|
+
}
|
|
81
|
+
}]
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
})
|
|
86
|
+
);
|
|
87
|
+
const encode = (flow, result) => ExitEncoding.encode(flow, result).pipe(
|
|
88
|
+
Effect.flatMap(({ encoded, note }) => fromEncoded(encoded, note))
|
|
89
|
+
);
|
|
90
|
+
//# sourceMappingURL=ResultEnvelope.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/ResultEnvelope.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * A typed JSON settlement at the engine persistence boundary. The existing\n * terminal fallback remains the encoder, so a rejected class cannot leave a\n * run live. This module does not change existing result bytes or writers.\n *\n * @since 1.0.0\n */\n\nimport type { Flow } from \"@smthrs/flow\"\nimport * as EngineEvent from \"@smthrs/journal/EngineEvent\"\nimport * as Cause from \"effect/Cause\"\nimport * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\nimport * as ExitEncoding from \"./ExitEncoding.ts\"\n\n/**\n * Encoded success or a classified failure.\n *\n * @category schemas\n * @since 1.0.0\n */\nexport const ResultEnvelope = EngineEvent.ResultEnvelope\n/**\n * Encoded success or a classified failure.\n *\n * @category models\n * @since 1.0.0\n */\nexport type ResultEnvelope = EngineEvent.ResultEnvelope\n/**\n * Validate untrusted encoded state without dropping contradictory fields.\n *\n * @category decoders\n * @since 1.0.0\n */\nexport const decode = (input: unknown) =>\n Effect.suspend(() => Schema.decodeUnknownEffect(ResultEnvelope, { onExcessProperty: \"error\" })(input)).pipe(\n Effect.catchCause((cause) =>\n Effect.fail(\n new EngineEvent.EventError({\n code: \"malformed\",\n message: \"invalid result envelope\",\n cause: Cause.squash(cause)\n })\n )\n )\n )\n\n/**\n * The encoded settlement and whether the existing encoder required terminal\n * fallback. Encoded domain failure is still an Encoded settlement; callers\n * read its exit, never infer domain success from this discriminant.\n *\n * @category schemas\n * @since 1.0.0\n */\nexport const Settlement = Schema.Union([\n Schema.TaggedStruct(\"Encoded\", { value: Schema.Json }),\n Schema.TaggedStruct(\"EncodingFailure\", { value: Schema.Json, note: Schema.String })\n])\n/**\n * Encoded terminal settlement and its encoding-failure status.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Settlement = typeof Settlement.Type\n\n/**\n * Admit an encoded settlement without introducing an error channel on the\n * terminal write path. A corrupt codec output becomes a terminal failure.\n *\n * @category decoders\n * @since 1.0.0\n */\nexport const fromEncoded = (encoded: unknown, note?: string): Effect.Effect<Settlement> =>\n Effect.suspend(() => Schema.decodeUnknownEffect(Schema.Json)(encoded)).pipe(\n Effect.map((value): Settlement =>\n note === undefined ? { _tag: \"Encoded\", value } : { _tag: \"EncodingFailure\", value, note }\n ),\n Effect.catchCause((_cause) => {\n const note = \"the encoded settlement was not JSON\"\n // This is the same terminal-only policy as ExitEncoding.encode: record\n // a failed settlement even when pure codec validation defects. No I/O\n // or authority decision is retried by recovering this validation cause.\n return Effect.as(Effect.logWarning(`${note}; preserving a terminal failure`), {\n _tag: \"EncodingFailure\" as const,\n note,\n value: {\n _tag: \"Complete\",\n exit: {\n _tag: \"Failure\",\n cause: [{\n _tag: \"Die\",\n defect: {\n _tag: ExitEncoding.projectionTag,\n result: \"Complete\",\n note,\n reasons: [],\n value: null\n }\n }]\n }\n }\n })\n })\n )\n\n/**\n * Wrap the established no-fail terminal encoder without changing its bytes.\n *\n * @category conversions\n * @since 1.0.0\n */\nexport const encode = (flow: Flow.Any, result: Flow.Result<unknown, unknown>) =>\n ExitEncoding.encode(flow, result).pipe(\n Effect.flatMap(({ encoded, note }) => fromEncoded(encoded, note))\n )\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,kBAA6B;AAC7B,YAAuB;AACvB,aAAwB;AACxB,aAAwB;AACxB,mBAA8B;AAQvB,MAAM,iBAAiB,YAAY;AAcnC,MAAM,SAAS,CAAC,UACrB,OAAO,QAAQ,MAAM,OAAO,oBAAoB,gBAAgB,EAAE,kBAAkB,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE;AAAA,EACrG,OAAO;AAAA,IAAW,CAAC,UACjB,OAAO;AAAA,MACL,IAAI,YAAY,WAAW;AAAA,QACzB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO,MAAM,OAAO,KAAK;AAAA,MAC3B,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAUK,MAAM,aAAa,OAAO,MAAM;AAAA,EACrC,OAAO,aAAa,WAAW,EAAE,OAAO,OAAO,KAAK,CAAC;AAAA,EACrD,OAAO,aAAa,mBAAmB,EAAE,OAAO,OAAO,MAAM,MAAM,OAAO,OAAO,CAAC;AACpF,CAAC;AAgBM,MAAM,cAAc,CAAC,SAAkB,SAC5C,OAAO,QAAQ,MAAM,OAAO,oBAAoB,OAAO,IAAI,EAAE,OAAO,CAAC,EAAE;AAAA,EACrE,OAAO;AAAA,IAAI,CAAC,UACV,SAAS,SAAY,EAAE,MAAM,WAAW,MAAM,IAAI,EAAE,MAAM,mBAAmB,OAAO,KAAK;AAAA,EAC3F;AAAA,EACA,OAAO,WAAW,CAAC,WAAW;AAC5B,UAAMA,QAAO;AAIb,WAAO,OAAO,GAAG,OAAO,WAAW,GAAGA,KAAI,iCAAiC,GAAG;AAAA,MAC5E,MAAM;AAAA,MACN,MAAAA;AAAA,MACA,OAAO;AAAA,QACL,MAAM;AAAA,QACN,MAAM;AAAA,UACJ,MAAM;AAAA,UACN,OAAO,CAAC;AAAA,YACN,MAAM;AAAA,YACN,QAAQ;AAAA,cACN,MAAM,aAAa;AAAA,cACnB,QAAQ;AAAA,cACR,MAAAA;AAAA,cACA,SAAS,CAAC;AAAA,cACV,OAAO;AAAA,YACT;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;AAQK,MAAM,SAAS,CAAC,MAAgB,WACrC,aAAa,OAAO,MAAM,MAAM,EAAE;AAAA,EAChC,OAAO,QAAQ,CAAC,EAAE,SAAS,KAAK,MAAM,YAAY,SAAS,IAAI,CAAC;AAClE;",
|
|
6
|
+
"names": ["note"]
|
|
7
|
+
}
|