@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,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/PlanMergeStore.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Owner-fenced scheduler decisions, distinct from action failure evidence and\n * redacted journal projections. Intent survives before a merge is appended.\n * @since 1.0.0\n */\n\nimport { Sha256 } from \"@smthrs/crypto\"\nimport { DurableWriter } from \"@smthrs/database/DurableWriter\"\nimport { Plan } from \"@smthrs/plan\"\nimport { OwnerId } from \"@smthrs/run-store/Ownership\"\nimport { Context, Effect, Layer, Option, Schema } from \"effect\"\nimport type * as Crypto from \"effect/Crypto\"\nimport * as SqlClient from \"effect/unstable/sql/SqlClient\"\n\nconst Natural = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))\nconst Positive = Schema.Int.check(Schema.isGreaterThan(0))\nconst Names = Schema.Array(Schema.NonEmptyString).check(Schema.isMaxLength(Plan.maximumPlanNodes))\n\n/** Execution binding shared by every decision of one plan run.\n * @since 1.0.0\n * @category schemas\n */\nexport const Identity = Schema.Struct({\n runId: Schema.NonEmptyString,\n planId: Schema.NonEmptyString,\n baseDigest: Schema.NonEmptyString,\n environmentDigest: Schema.NonEmptyString\n})\n/** Execution binding.\n * @since 1.0.0\n * @category models\n */\nexport type Identity = typeof Identity.Type\n/** A stopped attempt and the exact cohort eligible to supply merge winners.\n * @since 1.0.0\n * @category schemas\n */\nexport const Intent = Schema.Struct({\n version: Schema.Literal(1),\n nodeId: Schema.NonEmptyString,\n nodeKey: Schema.NonEmptyString,\n dispatchKey: Schema.NonEmptyString,\n attempts: Positive,\n rebases: Natural,\n peers: Names\n})\n/** Durable stopped-attempt decision.\n * @since 1.0.0\n * @category models\n */\nexport type Intent = typeof Intent.Type\n/** The plan extension committed for an intent.\n * @since 1.0.0\n * @category schemas\n */\nexport const Completion = Schema.Struct({\n version: Schema.Literal(1),\n generation: Positive,\n parentDigest: Schema.NonEmptyString,\n planDigest: Schema.NonEmptyString,\n mergeId: Schema.NonEmptyString,\n mergeKey: Schema.NonEmptyString,\n winners: Names\n})\n/** Committed merge extension.\n * @since 1.0.0\n * @category models\n */\nexport type Completion = typeof Completion.Type\n/** Intent with its optional committed extension.\n * @since 1.0.0\n * @category models\n */\nexport interface Decision {\n readonly intent: Intent\n readonly completion?: Completion\n}\n/** Typed admission/storage refusal.\n * @since 1.0.0\n * @category errors\n */\nexport class PlanMergeError extends Schema.TaggedError<PlanMergeError>()(\"@smthrs/engine-store/PlanMergeError\", {\n code: Schema.Literals([\n \"invalid_input\",\n \"corrupt_state\",\n \"incompatible_state\",\n \"fence_lost\",\n \"transaction_open\",\n \"transaction_required\",\n \"persistence_failed\"\n ]),\n message: Schema.String,\n cause: Schema.optional(Schema.Unknown)\n}) {}\n/** Store operations; writes may join the owning transaction, reads require committed state.\n * @since 1.0.0\n * @category models\n */\nexport interface Service {\n readonly list: (identity: Identity, owner: OwnerId) => Effect.Effect<ReadonlyArray<Decision>, PlanMergeError>\n readonly intend: (identity: Identity, intent: Intent, owner: OwnerId) => Effect.Effect<Intent, PlanMergeError>\n readonly complete: (\n identity: Identity,\n nodeId: string,\n completion: Completion,\n owner: OwnerId\n ) => Effect.Effect<Completion, PlanMergeError>\n}\n/** Durable merge decision service.\n * @since 1.0.0\n * @category services\n */\nexport class PlanMergeStore extends Context.Service<PlanMergeStore, Service>()(\"@smthrs/engine-store/PlanMergeStore\") {}\n/** Encoded decision limit, in JavaScript code units.\n * @since 1.0.0\n * @category constants\n */\nexport const maximumDecisionCharacters = 16 * 1024 * 1024\nconst error = (code: PlanMergeError[\"code\"], message: string, cause?: unknown) =>\n new PlanMergeError({ code, message, ...(cause === undefined ? {} : { cause }) })\nconst storageError = (cause: unknown) =>\n cause instanceof PlanMergeError ? cause : error(\"persistence_failed\", \"could not access plan merge decisions\", cause)\nconst decode = <S extends Schema.Top & { readonly DecodingServices: never }>(\n schema: S,\n value: unknown,\n code: \"invalid_input\" | \"corrupt_state\"\n) =>\n Effect.try({\n try: () => Schema.decodeUnknownSync(schema)(value, { onExcessProperty: \"error\" }),\n catch: (cause) => error(code, \"invalid plan merge decision\", cause)\n })\nconst unique = (names: ReadonlyArray<string>, code: \"invalid_input\" | \"corrupt_state\") =>\n new Set(names).size === names.length ? Effect.void : Effect.fail(error(code, \"duplicate merge peer identity\"))\n\n/** SQL constructor; all collaborating stores must use the same database/writer.\n * @since 1.0.0\n * @category constructors\n */\nexport const make: Effect.Effect<Service, never, SqlClient.SqlClient | DurableWriter | Crypto.Crypto> = Effect.gen(\n function*() {\n const sql = yield* SqlClient.SqlClient\n const writer = yield* DurableWriter\n const crypto = yield* Effect.context<Crypto.Crypto>()\n const hash = (value: string) => Schema.decodeUnknownEffect(Sha256)(value).pipe(Effect.provide(crypto))\n const fence = (identity: Identity, owner: OwnerId, requireHead: boolean) =>\n Effect.gen(function*() {\n const owned = yield* sql`SELECT run_id FROM flows_runs WHERE run_id = ${identity.runId}\n AND status = 'running' AND cancel_requested_at_ms IS NULL\n AND owner_host_id = ${owner.hostId} AND owner_pid = ${owner.pid} AND owner_nonce = ${owner.nonce}`\n if (owned.length !== 1) {\n return yield* Effect.fail(error(\"fence_lost\", \"merge decision owner no longer owns the run\"))\n }\n const heads = yield* sql<\n { planId: string; baseDigest: string; environmentDigest: string | null; version: number | null }\n >`SELECT\n plan_id AS \"planId\", base_digest AS \"baseDigest\", environment_digest AS \"environmentDigest\", merge_state_version AS version\n FROM flows_plan_input_heads WHERE run_id = ${identity.runId}`\n const head = heads[0]\n if (head === undefined) {\n const orphan = yield* sql`SELECT 1 FROM flows_plan_merge_intents WHERE run_id = ${identity.runId} LIMIT 1`\n if (requireHead || orphan.length > 0) {\n return yield* Effect.fail(error(\"corrupt_state\", \"merge intent has no admitted input generation\"))\n }\n return\n }\n if (\n head.version !== 1 || head.planId !== identity.planId || head.baseDigest !== identity.baseDigest ||\n head.environmentDigest !== identity.environmentDigest\n ) {\n return yield* Effect.fail(\n error(\n \"incompatible_state\",\n \"this run has different or unrecorded merge execution state; recover with its original runtime or reconcile before starting a new run\"\n )\n )\n }\n })\n const encoded = <A>(value: A) =>\n Effect.gen(function*() {\n const json = JSON.stringify(value)\n if (json.length > maximumDecisionCharacters) {\n return yield* Effect.fail(error(\"invalid_input\", \"merge decision exceeds its durable size limit\"))\n }\n return { json, checksum: yield* hash(json) }\n })\n const stored = <S extends Schema.Top & { readonly DecodingServices: never }>(\n schema: S,\n row: { json: string; checksum: string }\n ) =>\n Effect.gen(function*() {\n if (row.json.length > maximumDecisionCharacters || (yield* hash(row.json)) !== row.checksum) {\n return yield* Effect.fail(error(\"corrupt_state\", \"merge decision failed its size or integrity check\"))\n }\n return yield* decode(Schema.fromJsonString(schema), row.json, \"corrupt_state\")\n })\n const load = (identity: Identity, nodeId?: string) =>\n Effect.gen(function*() {\n const rows = yield* sql<\n {\n nodeId: string\n json: string\n checksum: string\n generation: number | null\n mergeId: string | null\n completionJson: string | null\n completionChecksum: string | null\n }\n >`SELECT i.stopped_node_id AS \"nodeId\", i.intent_json AS json, i.checksum,\n c.generation, c.merge_node_id AS \"mergeId\", c.completion_json AS \"completionJson\",\n c.checksum AS \"completionChecksum\"\n FROM flows_plan_merge_intents i LEFT JOIN flows_plan_merge_completions c\n ON c.run_id = i.run_id AND c.stopped_node_id = i.stopped_node_id\n WHERE i.run_id = ${identity.runId} ${nodeId === undefined ? sql`` : sql`AND i.stopped_node_id = ${nodeId}`}\n ORDER BY i.stopped_node_id LIMIT ${Plan.maximumPlanNodes + 1}`\n if (rows.length > Plan.maximumPlanNodes) {\n return yield* Effect.fail(error(\"corrupt_state\", \"too many merge decisions for one plan\"))\n }\n return yield* Effect.forEach(rows, (row) =>\n Effect.gen(function*() {\n const intent = yield* stored(Intent, row)\n yield* unique(intent.peers, \"corrupt_state\")\n if (intent.nodeId !== row.nodeId || intent.peers.includes(intent.nodeId)) {\n return yield* Effect.fail(error(\"corrupt_state\", \"merge intent identity is inconsistent\"))\n }\n if (row.completionJson === null) return { intent } satisfies Decision\n const completion = yield* stored(Completion, {\n json: row.completionJson,\n checksum: row.completionChecksum!\n })\n yield* unique(completion.winners, \"corrupt_state\")\n if (\n completion.generation !== row.generation || completion.mergeId !== row.mergeId ||\n completion.winners.some((id) => !intent.peers.includes(id))\n ) {\n return yield* Effect.fail(error(\"corrupt_state\", \"merge completion does not match its intent\"))\n }\n return { intent, completion } satisfies Decision\n }))\n })\n const list: Service[\"list\"] = (input, ownerInput) =>\n Effect.gen(function*() {\n const identity = yield* decode(Identity, input, \"invalid_input\")\n const owner = yield* decode(OwnerId, ownerInput, \"invalid_input\")\n if (Option.isSome(yield* Effect.serviceOption(sql.transactionService))) {\n return yield* Effect.fail(error(\"transaction_open\", \"merge recovery requires committed decisions\"))\n }\n return yield* writer.write(Effect.gen(function*() {\n yield* fence(identity, owner, false)\n return yield* load(identity)\n }))\n }).pipe(Effect.mapError(storageError))\n const intend: Service[\"intend\"] = (input, value, ownerInput) =>\n Effect.gen(function*() {\n const identity = yield* decode(Identity, input, \"invalid_input\")\n const owner = yield* decode(OwnerId, ownerInput, \"invalid_input\")\n const intent = yield* decode(Intent, value, \"invalid_input\")\n yield* unique(intent.peers, \"invalid_input\")\n if (intent.peers.includes(intent.nodeId)) {\n return yield* Effect.fail(error(\"invalid_input\", \"a merge cannot stop its own peer\"))\n }\n const data = yield* encoded(intent)\n return yield* writer.write(Effect.gen(function*() {\n yield* fence(identity, owner, true)\n const [existing] = yield* load(identity, intent.nodeId)\n if (existing !== undefined) return existing.intent\n const [count] = yield* sql<{ count: number }>`SELECT count(*) AS count\n FROM flows_plan_merge_intents WHERE run_id = ${identity.runId}`\n if (count!.count >= Plan.maximumPlanNodes) {\n return yield* Effect.fail(error(\"invalid_input\", \"too many merge intents for one plan\"))\n }\n yield* sql`INSERT INTO flows_plan_merge_intents (run_id, stopped_node_id, intent_json, checksum)\n VALUES (${identity.runId}, ${intent.nodeId}, ${data.json}, ${data.checksum})`\n return intent\n }))\n }).pipe(Effect.mapError(storageError))\n const complete: Service[\"complete\"] = (input, nodeIdInput, value, ownerInput) =>\n Effect.gen(function*() {\n if (Option.isNone(yield* Effect.serviceOption(sql.transactionService))) {\n return yield* Effect.fail(\n error(\"transaction_required\", \"merge completion must join the plan/input append transaction\")\n )\n }\n const identity = yield* decode(Identity, input, \"invalid_input\")\n const owner = yield* decode(OwnerId, ownerInput, \"invalid_input\")\n const nodeId = yield* decode(Schema.NonEmptyString, nodeIdInput, \"invalid_input\")\n const completion = yield* decode(Completion, value, \"invalid_input\")\n yield* unique(completion.winners, \"invalid_input\")\n const data = yield* encoded(completion)\n return yield* writer.write(Effect.gen(function*() {\n yield* fence(identity, owner, true)\n const [decision] = yield* load(identity, nodeId)\n if (decision === undefined) {\n return yield* Effect.fail(error(\"corrupt_state\", \"merge completion has no intent\"))\n }\n if (decision.completion !== undefined) {\n if (JSON.stringify(decision.completion) !== JSON.stringify(completion)) {\n return yield* Effect.fail(\n error(\"incompatible_state\", \"a merge intent already committed a different extension\")\n )\n }\n return decision.completion\n }\n if (completion.winners.some((id) => !decision.intent.peers.includes(id))) {\n return yield* Effect.fail(error(\"invalid_input\", \"merge winner was not an admitted peer\"))\n }\n const appended =\n yield* sql`SELECT p.plan_id FROM flows_plans p JOIN flows_plan_input_generations i ON i.plan_id = p.plan_id\n JOIN flows_plan_nodes n ON n.plan_id = p.plan_id AND n.generation = p.generation\n WHERE p.plan_id = ${identity.planId} AND p.digest = ${completion.planDigest} AND p.generation = ${completion.generation}\n AND i.run_id = ${identity.runId} AND i.generation = ${completion.generation}\n AND n.node_id = ${completion.mergeId} AND n.key_digest = ${completion.mergeKey} AND n.kind = 'merge'`\n if (appended.length !== 1) {\n return yield* Effect.fail(\n error(\"corrupt_state\", \"merge completion requires its plan and input generation in the same transaction\")\n )\n }\n yield* sql`INSERT INTO flows_plan_merge_completions (run_id, stopped_node_id, generation, merge_node_id, completion_json, checksum)\n VALUES (${identity.runId}, ${nodeId}, ${completion.generation}, ${completion.mergeId}, ${data.json}, ${data.checksum})`\n return completion\n }))\n }).pipe(Effect.mapError(storageError))\n return { list, intend, complete }\n }\n)\n/** SQL-backed merge decisions; migrations must run first.\n * @since 1.0.0\n * @category layers\n */\nexport const layer: Layer.Layer<PlanMergeStore, never, SqlClient.SqlClient | DurableWriter | Crypto.Crypto> = Layer\n .effect(PlanMergeStore)(make)\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drives a persisted plan: the node scheduler.
|
|
3
|
+
*
|
|
4
|
+
* `@smthrs/plan` makes the plan a value; this makes it run. The scheduler
|
|
5
|
+
* walks the persisted graph, dispatches ready nodes through the same
|
|
6
|
+
* `internal/ActionPersistence` seam every action uses — so the shared step
|
|
7
|
+
* cache, the workspace sandbox's execute→materialize transaction, attempt
|
|
8
|
+
* rows, and the fenced journal all apply unchanged — and records an
|
|
9
|
+
* evaluation outcome per node.
|
|
10
|
+
*
|
|
11
|
+
* ## What it is, and what it is not
|
|
12
|
+
*
|
|
13
|
+
* Skyframe's `AbstractParallelEvaluator` is the prior art for the state
|
|
14
|
+
* machine (`CHECK_DEPENDENCIES → VERIFIED_CLEAN | NEEDS_REBUILDING →
|
|
15
|
+
* REBUILDING → DONE`) and `EvaluationProgressReceiver` for the outcome
|
|
16
|
+
* vocabulary. Two deliberate deviations:
|
|
17
|
+
*
|
|
18
|
+
* 1. **No cache-invalidating node visitor.** Content addressing governs
|
|
19
|
+
* reuse. Private reverse indexes propagate settled outcomes and readiness,
|
|
20
|
+
* never dirty bits. Dispatch-time content measurement still decides
|
|
21
|
+
* whether a recorded result can serve the node.
|
|
22
|
+
* 2. **Completion-driven, without Skyframe restarts.** Skyframe atomically
|
|
23
|
+
* signals reverse dependencies when one node settles. Our dependencies are
|
|
24
|
+
* declared in the plan before anything runs, so one coordinator can make
|
|
25
|
+
* the equivalent decision from the plan, settled state, and scheduling
|
|
26
|
+
* permits: every completion is reconciled and immediately opens another
|
|
27
|
+
* admission pass. Giving up the wavefront barrier also gives up its
|
|
28
|
+
* trivially serialized reconciliation; draining and applying the durable
|
|
29
|
+
* deviation journal after each settlement, before reevaluating downstream
|
|
30
|
+
* readiness, restores that ordering without holding unrelated ready cones.
|
|
31
|
+
* The coordinator is the sole writer of scheduling state, which keeps every
|
|
32
|
+
* admission decision deterministic without the `DeterministicHelper` the
|
|
33
|
+
* vault rejected.
|
|
34
|
+
*
|
|
35
|
+
* ## The three limits
|
|
36
|
+
*
|
|
37
|
+
* The same number must never
|
|
38
|
+
* stand in for graph width, scheduler admission, and provider capacity. This
|
|
39
|
+
* module owns the middle one only: `concurrency.steps` is the leaf-execution
|
|
40
|
+
* cap, and `concurrency.agents` is the subset cap an agent node consumes in
|
|
41
|
+
* addition. Structural width is whatever the plan says; seats belong to
|
|
42
|
+
* `Agent Adapters` and are not modelled here.
|
|
43
|
+
*
|
|
44
|
+
* Under contention, ready work is ordered by effective priority — declared
|
|
45
|
+
* `priority` plus one point per capacity-constrained admission pass. A ready
|
|
46
|
+
* node gains a point exactly when a pass considers it but cannot give it the
|
|
47
|
+
* required permits. Aging is what lets priority change latency without
|
|
48
|
+
* permitting starvation; equal effective priorities preserve deterministic
|
|
49
|
+
* plan order.
|
|
50
|
+
*
|
|
51
|
+
* ## Observing the world exactly once
|
|
52
|
+
*
|
|
53
|
+
* The torn-run rule: never re-observe the
|
|
54
|
+
* world mid-run. Reads with no preceding writer are **source** inputs; their
|
|
55
|
+
* digests and glob membership are durably recorded before dispatch and restored
|
|
56
|
+
* on reopening. Preceding producers' outputs are measured after settlement —
|
|
57
|
+
* observing our own output, not the world. Later and self-writes are not source
|
|
58
|
+
* producers. New generations retain prior pins and record new observations.
|
|
59
|
+
*
|
|
60
|
+
* @since 0.1.0
|
|
61
|
+
*/
|
|
62
|
+
import type { FileBoundary } from "@smthrs/flow/FileBoundary";
|
|
63
|
+
import { Journal } from "@smthrs/journal";
|
|
64
|
+
import type { Jj } from "@smthrs/kernel";
|
|
65
|
+
import { Plan, Scheduling, StepKey } from "@smthrs/plan";
|
|
66
|
+
import { PlanStore } from "@smthrs/plan-store";
|
|
67
|
+
import { AttemptStore, type Ownership, type RunStore } from "@smthrs/run-store";
|
|
68
|
+
import type { CacheStore } from "@smthrs/step-cache";
|
|
69
|
+
import * as Cause from "effect/Cause";
|
|
70
|
+
import * as Context from "effect/Context";
|
|
71
|
+
import type * as Crypto from "effect/Crypto";
|
|
72
|
+
import * as Effect from "effect/Effect";
|
|
73
|
+
import * as Layer from "effect/Layer";
|
|
74
|
+
import * as Schema from "effect/Schema";
|
|
75
|
+
import * as PlanInputStore from "./PlanInputStore.ts";
|
|
76
|
+
import * as PlanMergeStore from "./PlanMergeStore.ts";
|
|
77
|
+
import * as Reconciliation from "./Reconciliation.ts";
|
|
78
|
+
import * as Selection from "./Selection.ts";
|
|
79
|
+
import * as StepBoundary from "./StepBoundary.ts";
|
|
80
|
+
/**
|
|
81
|
+
* The evaluation outcomes: Skyframe's `EvaluationState` adapted to a
|
|
82
|
+
* content-addressed store, plus the selection debt.
|
|
83
|
+
*
|
|
84
|
+
* - `built` — the node executed (`SUCCESS_VERSION_CHANGED`).
|
|
85
|
+
* - `clean` — a recorded result served it and no executor ran. This includes
|
|
86
|
+
* same-run durable attempt replay for every tier, and shared-cache hits for
|
|
87
|
+
* eligible sealed work (`SUCCESS_VERSION_UNCHANGED`). It does not assert
|
|
88
|
+
* cross-run cache eligibility.
|
|
89
|
+
* - `failed` — the node executed and failed, or reconciliation failed it.
|
|
90
|
+
* - `skipped` — its cone prevented dispatch, or `stop-merge` stopped a
|
|
91
|
+
* conflicted attempt in favour of a merge node. The latter has nonzero
|
|
92
|
+
* attempts; skipped does not imply that its executor never ran. Skyframe
|
|
93
|
+
* splits failure by version instead; a content-addressed store never serves
|
|
94
|
+
* a failure from cache, so that split has no meaning here and this one does.
|
|
95
|
+
* - `deferred`: a selection guess postponed this sink
|
|
96
|
+
* (`docs/guides/defer-work-with-selection.md`). It never dispatched,
|
|
97
|
+
* wrote no cache row, and is journaled as a debt for a later guess-free
|
|
98
|
+
* pass. Distinct from `skipped` — the work was runnable, a guess postponed
|
|
99
|
+
* it — and never reported as passed.
|
|
100
|
+
*
|
|
101
|
+
* @since 0.1.0
|
|
102
|
+
* @category models
|
|
103
|
+
*/
|
|
104
|
+
export type Outcome = "built" | "clean" | "failed" | "skipped" | "deferred";
|
|
105
|
+
/**
|
|
106
|
+
* One material `Ref` input, resolved: the settled output of `from` projected
|
|
107
|
+
* along `path` — for sealed work, the value whose digest the dispatch key folds.
|
|
108
|
+
*
|
|
109
|
+
* @since 0.1.0
|
|
110
|
+
* @category models
|
|
111
|
+
*/
|
|
112
|
+
export interface ResolvedInput {
|
|
113
|
+
readonly from: string;
|
|
114
|
+
readonly path: ReadonlyArray<string>;
|
|
115
|
+
readonly value: unknown;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* What the scheduler hands a node's executor.
|
|
119
|
+
*
|
|
120
|
+
* @since 0.1.0
|
|
121
|
+
* @category models
|
|
122
|
+
*/
|
|
123
|
+
export interface NodeInput {
|
|
124
|
+
readonly node: Plan.PlanNode;
|
|
125
|
+
readonly attempt: number;
|
|
126
|
+
/** The measured boundary; folded into sealed keys, diagnostic context for other tiers. */
|
|
127
|
+
readonly boundary: FileBoundary;
|
|
128
|
+
/**
|
|
129
|
+
* The node's material `Ref` inputs, resolved through the same projection the
|
|
130
|
+
* dispatch key digests for sealed work. Ordering (`Pending`) dependencies
|
|
131
|
+
* and unprojected sibling fields are deliberately absent. This preserves
|
|
132
|
+
* the consumed-data contract for every tier and prevents a sealed cache hit
|
|
133
|
+
* from serving an execution that consumed different data.
|
|
134
|
+
*/
|
|
135
|
+
readonly inputs: ReadonlyArray<ResolvedInput>;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* The DI seam that turns a plan node into work.
|
|
139
|
+
*
|
|
140
|
+
* The scheduler owns identity, admission, caching, and journaling; it
|
|
141
|
+
* deliberately owns nothing about what a node *means*. A flow runtime, a test,
|
|
142
|
+
* or a remote host each supply their own executor.
|
|
143
|
+
*
|
|
144
|
+
* @since 0.1.0
|
|
145
|
+
* @category models
|
|
146
|
+
*/
|
|
147
|
+
export interface Executor {
|
|
148
|
+
readonly execute: (input: NodeInput) => Effect.Effect<unknown, unknown>;
|
|
149
|
+
}
|
|
150
|
+
declare const NodeExecutor_base: Context.ServiceClass<NodeExecutor, "@smthrs/engine-store/NodeExecutor", Executor>;
|
|
151
|
+
/**
|
|
152
|
+
* Service tag for the node executor.
|
|
153
|
+
*
|
|
154
|
+
* @since 0.1.0
|
|
155
|
+
* @category services
|
|
156
|
+
*/
|
|
157
|
+
export declare class NodeExecutor extends NodeExecutor_base {
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Provides a plain {@link Executor} value as the {@link NodeExecutor} service.
|
|
161
|
+
*
|
|
162
|
+
* This is the whole wiring story for the scheduler's one open seam: a flow
|
|
163
|
+
* runtime, a test double, or a remote dispatcher each become a layer by
|
|
164
|
+
* passing themselves here.
|
|
165
|
+
*
|
|
166
|
+
* @since 0.1.0
|
|
167
|
+
* @category layers
|
|
168
|
+
*/
|
|
169
|
+
export declare const layerExecutor: (executor: Executor) => Layer.Layer<NodeExecutor>;
|
|
170
|
+
/**
|
|
171
|
+
* How one node ended.
|
|
172
|
+
*
|
|
173
|
+
* @since 0.1.0
|
|
174
|
+
* @category models
|
|
175
|
+
*/
|
|
176
|
+
export interface Settlement {
|
|
177
|
+
readonly nodeId: string;
|
|
178
|
+
/** The plan-time key: a pure function of declarations. */
|
|
179
|
+
readonly planKey: string;
|
|
180
|
+
/** The execution key: content-derived for sealed work; run/plan/node/declaration-scoped for other tiers. */
|
|
181
|
+
readonly dispatchKey: string;
|
|
182
|
+
readonly outcome: Outcome;
|
|
183
|
+
readonly attempts: number;
|
|
184
|
+
readonly rebases: number;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* What a run of a plan produced.
|
|
188
|
+
*
|
|
189
|
+
* @since 0.1.0
|
|
190
|
+
* @category models
|
|
191
|
+
*/
|
|
192
|
+
export interface Report {
|
|
193
|
+
readonly planId: string;
|
|
194
|
+
readonly digest: string;
|
|
195
|
+
readonly settlements: ReadonlyArray<Settlement>;
|
|
196
|
+
readonly results: Readonly<Record<string, unknown>>;
|
|
197
|
+
readonly verdicts: ReadonlyArray<{
|
|
198
|
+
readonly nodeId: string;
|
|
199
|
+
readonly verdict: Reconciliation.Verdict;
|
|
200
|
+
}>;
|
|
201
|
+
/** Merge nodes a `stop-merge` conflict appended to the plan. */
|
|
202
|
+
readonly appended: ReadonlyArray<string>;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Scheduler construction options.
|
|
206
|
+
*
|
|
207
|
+
* @since 0.1.0
|
|
208
|
+
* @category models
|
|
209
|
+
*/
|
|
210
|
+
export interface Options {
|
|
211
|
+
readonly runId: string;
|
|
212
|
+
readonly owner: Ownership.OwnerId;
|
|
213
|
+
readonly sourceId: string;
|
|
214
|
+
/**
|
|
215
|
+
* Engine-resolved identity, copied at scheduler construction and durably
|
|
216
|
+
* bound before dispatch. A changed identity cannot resume the same run.
|
|
217
|
+
* Omitting it preserves existing action keys but is itself a distinct binding.
|
|
218
|
+
*/
|
|
219
|
+
readonly environment?: StepKey.EnvironmentIdentity | undefined;
|
|
220
|
+
/**
|
|
221
|
+
* The admission caps. Both default to unbounded, because a cap the caller
|
|
222
|
+
* did not declare is not the scheduler's to invent — `aspects.ts` owns the
|
|
223
|
+
* policy and narrows it. Explicit caps must be positive safe integers;
|
|
224
|
+
* zero is refused rather than silently clamped or allowed to deadlock.
|
|
225
|
+
*/
|
|
226
|
+
readonly concurrency?: Scheduling.Concurrency | undefined;
|
|
227
|
+
/**
|
|
228
|
+
* How many times a `delay-rebase` node may re-measure and re-key against a
|
|
229
|
+
* newly recorded base before reconciliation is asked. Bounded on purpose: an
|
|
230
|
+
* unbounded rebase loop is a livelock with good manners.
|
|
231
|
+
*/
|
|
232
|
+
readonly rebaseLimit?: number | undefined;
|
|
233
|
+
/**
|
|
234
|
+
* Probabilistic selection input for this run (`Selection`). Every field is
|
|
235
|
+
* optional because every default is inert: no changed paths and no beliefs
|
|
236
|
+
* admit everything, so a caller that never opted in runs exactly as today.
|
|
237
|
+
* `full: true` is the run-level override — every verdict is treated as
|
|
238
|
+
* `Admit` and the override is journaled, the way `--fresh` ignores the
|
|
239
|
+
* cache.
|
|
240
|
+
*/
|
|
241
|
+
readonly selection?: {
|
|
242
|
+
/** Changed paths the belief edges are matched against. */
|
|
243
|
+
readonly changed?: ReadonlyArray<string> | undefined;
|
|
244
|
+
/** The belief snapshot pinned before planning. */
|
|
245
|
+
readonly beliefs?: Selection.BeliefSnapshot | undefined;
|
|
246
|
+
/** Deferral policy; `deferBelow` defaults to zero, which defers nothing. */
|
|
247
|
+
readonly policy?: Selection.Policy | undefined;
|
|
248
|
+
/** Force full selection: treat every verdict as `Admit`, journaled. */
|
|
249
|
+
readonly full?: boolean | undefined;
|
|
250
|
+
} | undefined;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Everything driving a plan needs from the composition.
|
|
254
|
+
*
|
|
255
|
+
* @since 0.1.0
|
|
256
|
+
* @category models
|
|
257
|
+
*/
|
|
258
|
+
export type Requirements = PlanMergeStore.PlanMergeStore | AttemptStore.AttemptStore | CacheStore.CacheStore | Crypto.Crypto | Jj.Jj | Journal.Journal | NodeExecutor | PlanStore.PlanStore | PlanInputStore.PlanInputStore | RunStore.RunStore | StepBoundary.Service;
|
|
259
|
+
declare const SchedulerError_base: Schema.Class<SchedulerError, Schema.TaggedStruct<"@smthrs/engine-store/SchedulerError", {
|
|
260
|
+
readonly code: Schema.Literals<readonly ["invalid_plan", "boundary_unavailable", "key_uncomputable", "elaboration_failed", "store_failed"]>;
|
|
261
|
+
readonly message: Schema.String;
|
|
262
|
+
readonly cause: Schema.optional<Schema.Unknown>;
|
|
263
|
+
/** Failures while settling siblings after the primary scheduler failure. */
|
|
264
|
+
readonly cleanupErrors: Schema.optional<Schema.$Array<Schema.Unknown>>;
|
|
265
|
+
}>, Cause.YieldableError>;
|
|
266
|
+
/**
|
|
267
|
+
* A refusal the scheduler itself raises. A node's own failure is an outcome,
|
|
268
|
+
* not one of these — the run continues and the report says `failed`.
|
|
269
|
+
*
|
|
270
|
+
* @since 0.1.0
|
|
271
|
+
* @category errors
|
|
272
|
+
*/
|
|
273
|
+
export declare class SchedulerError extends SchedulerError_base {
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Plan-driving operations.
|
|
277
|
+
*
|
|
278
|
+
* @since 0.1.0
|
|
279
|
+
* @category models
|
|
280
|
+
*/
|
|
281
|
+
export interface Service {
|
|
282
|
+
/** Persists generation 0 and journals `plan-recorded`. */
|
|
283
|
+
readonly record: (plan: Plan.Plan) => Effect.Effect<PlanStore.RecordResult, SchedulerError, PlanStore.PlanStore | Journal.Journal | Crypto.Crypto>;
|
|
284
|
+
/** Persists the newest generation and journals `subgraph-appended`. */
|
|
285
|
+
readonly append: (plan: Plan.Plan) => Effect.Effect<void, SchedulerError, PlanStore.PlanStore | Journal.Journal | Crypto.Crypto>;
|
|
286
|
+
/** Drives the plan to completion and reports every node's outcome. */
|
|
287
|
+
readonly run: (plan: Plan.Plan) => Effect.Effect<Report, SchedulerError, Requirements>;
|
|
288
|
+
}
|
|
289
|
+
declare const PlanScheduler_base: Context.ServiceClass<PlanScheduler, "@smthrs/engine-store/PlanScheduler", Service>;
|
|
290
|
+
/**
|
|
291
|
+
* Service tag for the plan scheduler.
|
|
292
|
+
*
|
|
293
|
+
* @since 0.1.0
|
|
294
|
+
* @category services
|
|
295
|
+
*/
|
|
296
|
+
export declare class PlanScheduler extends PlanScheduler_base {
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Constructs a scheduler bound to one run.
|
|
300
|
+
*
|
|
301
|
+
* @since 0.1.0
|
|
302
|
+
* @category constructors
|
|
303
|
+
*/
|
|
304
|
+
export declare const make: (options: Options) => Service;
|
|
305
|
+
/**
|
|
306
|
+
* Provides a scheduler bound to one run.
|
|
307
|
+
*
|
|
308
|
+
* @since 0.1.0
|
|
309
|
+
* @category layers
|
|
310
|
+
*/
|
|
311
|
+
export declare const layer: (options: Options) => Layer.Layer<PlanScheduler>;
|
|
312
|
+
/**
|
|
313
|
+
* What {@link recertify} returns: the repaying run's id, its report, and the
|
|
314
|
+
* deferring run's remaining debt after the repayment is counted.
|
|
315
|
+
*
|
|
316
|
+
* @since 0.1.0
|
|
317
|
+
* @category models
|
|
318
|
+
*/
|
|
319
|
+
export interface RecertifyResult {
|
|
320
|
+
readonly runId: string;
|
|
321
|
+
readonly report: Report;
|
|
322
|
+
readonly remaining: ReadonlyArray<Selection.DebtEntry>;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* The recertification driver: re-drives a compiled plan under a fresh,
|
|
326
|
+
* caller-supplied run with the `full` selection override — guess-free by
|
|
327
|
+
* construction — then reports the deferring run's remaining debt via
|
|
328
|
+
* `Selection.debt(deferringRunId, { repaidBy: [options.runId] })`.
|
|
329
|
+
*
|
|
330
|
+
* The design draft placed this beside the other Selection helpers; it lives
|
|
331
|
+
* here because it constructs a scheduler, and `Selection` must stay
|
|
332
|
+
* type-only toward this module to keep the dependency graph acyclic. The
|
|
333
|
+
* deferring run's journal is never written — repayment is a read-side join.
|
|
334
|
+
* Scheduling the cadence (nightly, per-merge) stays a product concern; this
|
|
335
|
+
* is only the primitive one pass runs.
|
|
336
|
+
*
|
|
337
|
+
* @since 0.1.0
|
|
338
|
+
* @category combinators
|
|
339
|
+
*/
|
|
340
|
+
export declare const recertify: (input: {
|
|
341
|
+
readonly plan: Plan.Plan;
|
|
342
|
+
readonly deferringRunId: string;
|
|
343
|
+
readonly options: Options;
|
|
344
|
+
}) => Effect.Effect<{
|
|
345
|
+
runId: string;
|
|
346
|
+
report: Report;
|
|
347
|
+
remaining: readonly {
|
|
348
|
+
readonly planId: string;
|
|
349
|
+
readonly nodeId: string;
|
|
350
|
+
readonly planKey: string;
|
|
351
|
+
readonly edge: {
|
|
352
|
+
readonly scope: string;
|
|
353
|
+
readonly affects: string;
|
|
354
|
+
readonly confidence: number;
|
|
355
|
+
readonly validFromMs: number;
|
|
356
|
+
readonly evidence: readonly string[];
|
|
357
|
+
};
|
|
358
|
+
readonly likelihood: number;
|
|
359
|
+
readonly seq: number;
|
|
360
|
+
}[];
|
|
361
|
+
}, Journal.JournalError | SchedulerError, Requirements>;
|
|
362
|
+
export {};
|
|
363
|
+
//# sourceMappingURL=PlanScheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanScheduler.d.ts","sourceRoot":"","sources":["../../src/PlanScheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAqB,MAAM,iBAAiB,CAAA;AAC5D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAMrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAWvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAGjD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;AAE3E;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;CAC9C;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;CACxE;;AAED;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,iBAA8E;CAAG;AAEnH;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,QAAQ,KAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAA0C,CAAA;AAErH;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,4GAA4G;IAC5G,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;IAC/C,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAA;KAAE,CAAC,CAAA;IACvG,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACzC;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAA;IAC9D;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,GAAG,SAAS,CAAA;IACzD;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,0DAA0D;QAC1D,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;QACpD,kDAAkD;QAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,SAAS,CAAA;QACvD,4EAA4E;QAC5E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAA;QAC9C,uEAAuE;QACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KACpC,GAAG,SAAS,CAAA;CACd;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB,cAAc,CAAC,cAAc,GAC7B,YAAY,CAAC,YAAY,GACzB,UAAU,CAAC,UAAU,GACrB,MAAM,CAAC,MAAM,GACb,EAAE,CAAC,EAAE,GACL,OAAO,CAAC,OAAO,GACf,YAAY,GACZ,SAAS,CAAC,SAAS,GACnB,cAAc,CAAC,cAAc,GAC7B,QAAQ,CAAC,QAAQ,GACjB,YAAY,CAAC,OAAO,CAAA;;;;;IAmBtB,4EAA4E;;;AAjB9E;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,mBAYlC;CAAG;AAEL;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,CACf,IAAI,EAAE,IAAI,CAAC,IAAI,KACZ,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,EAAE,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IACjH,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,CACf,IAAI,EAAE,IAAI,CAAC,IAAI,KACZ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC/F,sEAAsE;IACtE,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,CAAA;CACvF;;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,kBAA+E;CAAG;AAmIrH;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GAAI,SAAS,OAAO,KAAG,OAqvCvC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,OAAO,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAgD,CAAA;AAElH;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;CACvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,SAAS;mBAEH,IAAI,CAAC,IAAI;6BACC,MAAM;sBACb,OAAO;;;;;;;;;;;;;;;;;;uDAW5B,CAAA"}
|