@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,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded, indexed run pages.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
import { Effect, Schema } from "effect";
|
|
7
|
+
import * as SqlClient from "effect/unstable/sql/SqlClient";
|
|
8
|
+
import * as Read from "./ExecutionSnapshotRead.ts";
|
|
9
|
+
import { RunCatalogError } from "./RunListingError.ts";
|
|
10
|
+
/**
|
|
11
|
+
* Supported equality and inclusive creation-range filters.
|
|
12
|
+
*
|
|
13
|
+
* @category models
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
*/
|
|
16
|
+
export declare const Filters: Schema.Struct<{
|
|
17
|
+
readonly status: Schema.optionalKey<Schema.Literals<readonly ["pending", "running", "suspended", "completed", "failed", "cancelled"]>>;
|
|
18
|
+
readonly flowName: Schema.optionalKey<Schema.NonEmptyString>;
|
|
19
|
+
readonly parentRunId: Schema.optionalKey<Schema.NullOr<Schema.NonEmptyString>>;
|
|
20
|
+
readonly lineageId: Schema.optionalKey<Schema.NonEmptyString>;
|
|
21
|
+
readonly waitingReason: Schema.optionalKey<Schema.NullOr<Schema.NonEmptyString>>;
|
|
22
|
+
readonly createdAfterMs: Schema.optionalKey<Schema.Int>;
|
|
23
|
+
readonly createdBeforeMs: Schema.optionalKey<Schema.Int>;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Supported filters; lineageId also selects its original root.
|
|
27
|
+
*
|
|
28
|
+
* @category models
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
*/
|
|
31
|
+
export type Filters = typeof Filters.Type;
|
|
32
|
+
/**
|
|
33
|
+
* Options for a bounded run page. Numeric offsets are not cursors.
|
|
34
|
+
*
|
|
35
|
+
* @category models
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
*/
|
|
38
|
+
export interface ListRunsOptions {
|
|
39
|
+
readonly filters?: Filters;
|
|
40
|
+
readonly cursor?: string;
|
|
41
|
+
readonly limit?: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* One transaction's page and watermark; no total count.
|
|
45
|
+
*
|
|
46
|
+
* @category models
|
|
47
|
+
* @since 1.0.0
|
|
48
|
+
*/
|
|
49
|
+
export interface RunPage extends Read.Position {
|
|
50
|
+
readonly runs: ReadonlyArray<Read.Observed>;
|
|
51
|
+
readonly cursor: string | null;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Bounded catalog operations.
|
|
55
|
+
*
|
|
56
|
+
* @category models
|
|
57
|
+
* @since 1.0.0
|
|
58
|
+
*/
|
|
59
|
+
export interface Service {
|
|
60
|
+
readonly listRuns: (options?: ListRunsOptions) => Effect.Effect<RunPage, RunCatalogError>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Maximum page size.
|
|
64
|
+
*
|
|
65
|
+
* @category constants
|
|
66
|
+
* @since 1.0.0
|
|
67
|
+
*/
|
|
68
|
+
export declare const maximumPageSize = 200;
|
|
69
|
+
/**
|
|
70
|
+
* Builds the bounded read against the engine database.
|
|
71
|
+
*
|
|
72
|
+
* @category constructors
|
|
73
|
+
* @since 1.0.0
|
|
74
|
+
*/
|
|
75
|
+
export declare const make: () => Effect.Effect<{
|
|
76
|
+
listRuns: (options?: ListRunsOptions) => Effect.Effect<RunPage, RunCatalogError>;
|
|
77
|
+
}, never, SqlClient.SqlClient>;
|
|
78
|
+
//# sourceMappingURL=RunListing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunListing.d.ts","sourceRoot":"","sources":["../../../src/internal/RunListing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAS,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAC1D,OAAO,KAAK,IAAI,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,OAAO;;;;;;;;EAQlB,CAAA;AACF;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AACzC;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AACD;;;;;GAKG;AACH,MAAM,WAAW,OAAQ,SAAQ,IAAI,CAAC,QAAQ;IAC5C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AACD;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;CAC1F;AACD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,MAAM,CAAA;AAiBlC;;;;;GAKG;AACH,eAAO,MAAM,IAAI;yBA/Be,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC;8BAkJvF,CAAA"}
|
|
@@ -0,0 +1,171 @@
|
|
|
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 RunListing_exports = {};
|
|
30
|
+
__export(RunListing_exports, {
|
|
31
|
+
Filters: () => Filters,
|
|
32
|
+
make: () => make,
|
|
33
|
+
maximumPageSize: () => maximumPageSize
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(RunListing_exports);
|
|
36
|
+
var Dialect = __toESM(require("@smthrs/database/Dialect"), 1);
|
|
37
|
+
var import_RunStore = require("@smthrs/run-store/RunStore");
|
|
38
|
+
var import_effect = require("effect");
|
|
39
|
+
var SqlClient = __toESM(require("effect/unstable/sql/SqlClient"), 1);
|
|
40
|
+
var Read = __toESM(require("./ExecutionSnapshotRead.js"), 1);
|
|
41
|
+
var import_RunListingError = require("./RunListingError.js");
|
|
42
|
+
const Filters = import_effect.Schema.Struct({
|
|
43
|
+
status: import_effect.Schema.optionalKey(import_RunStore.RunStatus),
|
|
44
|
+
flowName: import_effect.Schema.optionalKey(Read.Identifier),
|
|
45
|
+
parentRunId: import_effect.Schema.optionalKey(import_effect.Schema.NullOr(Read.Identifier)),
|
|
46
|
+
lineageId: import_effect.Schema.optionalKey(Read.Identifier),
|
|
47
|
+
waitingReason: import_effect.Schema.optionalKey(import_effect.Schema.NullOr(Read.Identifier)),
|
|
48
|
+
createdAfterMs: import_effect.Schema.optionalKey(Read.Natural),
|
|
49
|
+
createdBeforeMs: import_effect.Schema.optionalKey(Read.Natural)
|
|
50
|
+
});
|
|
51
|
+
const maximumPageSize = 200;
|
|
52
|
+
const Cursor = import_effect.Schema.fromJsonString(import_effect.Schema.Struct({
|
|
53
|
+
version: import_effect.Schema.Literal(1),
|
|
54
|
+
source: Read.Source,
|
|
55
|
+
filters: import_effect.Schema.String,
|
|
56
|
+
createdAtMs: Read.Natural,
|
|
57
|
+
runId: Read.Identifier
|
|
58
|
+
}));
|
|
59
|
+
const Options = import_effect.Schema.Struct({
|
|
60
|
+
filters: import_effect.Schema.optionalKey(Filters),
|
|
61
|
+
// Four 1,024-unit filter strings can expand sevenfold inside the JSON tuple
|
|
62
|
+
// string, plus a sixfold escaped 1,024-unit run ID and bounded scalar fields.
|
|
63
|
+
// 64 Ki UTF-16 units therefore admits every cursor this port can produce.
|
|
64
|
+
cursor: import_effect.Schema.optionalKey(import_effect.Schema.String.check(import_effect.Schema.isMaxLength(65536))),
|
|
65
|
+
limit: import_effect.Schema.optionalKey(import_effect.Schema.Int.check(import_effect.Schema.isBetween({ minimum: 1, maximum: maximumPageSize })))
|
|
66
|
+
});
|
|
67
|
+
const make = () => import_effect.Effect.gen(function* () {
|
|
68
|
+
const sql = yield* SqlClient.SqlClient;
|
|
69
|
+
const listRuns = (options = {}) => import_effect.Effect.gen(function* () {
|
|
70
|
+
const admitted = yield* import_effect.Schema.decodeUnknownEffect(Options)(options, { onExcessProperty: "error" }).pipe(
|
|
71
|
+
import_effect.Effect.mapError(
|
|
72
|
+
(cause) => new import_RunListingError.RunCatalogError({ code: "invalid_options", message: "invalid run page options", cause })
|
|
73
|
+
)
|
|
74
|
+
);
|
|
75
|
+
const filters = admitted.filters ?? {};
|
|
76
|
+
const tuple = JSON.stringify([
|
|
77
|
+
filters.status ?? null,
|
|
78
|
+
filters.flowName ?? null,
|
|
79
|
+
filters.parentRunId === void 0 ? [] : [filters.parentRunId],
|
|
80
|
+
filters.lineageId ?? null,
|
|
81
|
+
filters.waitingReason === void 0 ? [] : [filters.waitingReason],
|
|
82
|
+
filters.createdAfterMs ?? null,
|
|
83
|
+
filters.createdBeforeMs ?? null
|
|
84
|
+
]);
|
|
85
|
+
const cursor = admitted.cursor === void 0 ? null : yield* import_effect.Schema.decodeUnknownEffect(Cursor)(admitted.cursor).pipe(
|
|
86
|
+
import_effect.Effect.mapError(
|
|
87
|
+
(cause) => new import_RunListingError.RunCatalogError({ code: "invalid_cursor", message: "malformed run cursor", cause })
|
|
88
|
+
)
|
|
89
|
+
);
|
|
90
|
+
if (cursor !== null && cursor.filters !== tuple) {
|
|
91
|
+
return yield* import_effect.Effect.fail(
|
|
92
|
+
new import_RunListingError.RunCatalogError({ code: "invalid_cursor", message: "run cursor belongs to another query" })
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
const limit = admitted.limit ?? 100;
|
|
96
|
+
return yield* Read.transaction(
|
|
97
|
+
sql,
|
|
98
|
+
import_effect.Effect.gen(function* () {
|
|
99
|
+
const at = yield* Read.position(sql);
|
|
100
|
+
if (cursor !== null && cursor.source !== at.source) {
|
|
101
|
+
return yield* import_effect.Effect.fail(
|
|
102
|
+
new import_RunListingError.RunCatalogError({ code: "source_changed", message: "run cursor belongs to another engine source" })
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
const predicates = [];
|
|
106
|
+
const values = [];
|
|
107
|
+
let mask = 0;
|
|
108
|
+
const equalities = [
|
|
109
|
+
["status", filters.status],
|
|
110
|
+
["execution_flow", filters.flowName],
|
|
111
|
+
["execution_parent_id", filters.parentRunId],
|
|
112
|
+
["execution_lineage", filters.lineageId],
|
|
113
|
+
["waiting_reason", filters.waitingReason]
|
|
114
|
+
];
|
|
115
|
+
for (const [index, [column, value]] of equalities.entries()) {
|
|
116
|
+
if (value === void 0) continue;
|
|
117
|
+
mask |= 1 << index;
|
|
118
|
+
predicates.push(`r.${column} IS NOT DISTINCT FROM ?`);
|
|
119
|
+
values.push(value);
|
|
120
|
+
}
|
|
121
|
+
if (filters.createdAfterMs !== void 0) {
|
|
122
|
+
predicates.push("r.created_at_ms >= ?");
|
|
123
|
+
values.push(filters.createdAfterMs);
|
|
124
|
+
}
|
|
125
|
+
if (filters.createdBeforeMs !== void 0) {
|
|
126
|
+
predicates.push("r.created_at_ms <= ?");
|
|
127
|
+
values.push(filters.createdBeforeMs);
|
|
128
|
+
}
|
|
129
|
+
if (cursor !== null) {
|
|
130
|
+
predicates.push("(r.created_at_ms, r.run_id) > (?, ?)");
|
|
131
|
+
values.push(cursor.createdAtMs, cursor.runId);
|
|
132
|
+
}
|
|
133
|
+
values.push(limit + 1);
|
|
134
|
+
const rows = yield* Dialect.query(
|
|
135
|
+
sql,
|
|
136
|
+
`SELECT ${Read.selectColumns} FROM flows_runs r ${Dialect.isPostgres(sql) ? "" : `INDEXED BY flows_runs_listing_${mask}`}
|
|
137
|
+
LEFT JOIN flows_run_changes c ON c.run_id = r.run_id
|
|
138
|
+
${predicates.length === 0 ? "" : `WHERE ${predicates.join(" AND ")}`}
|
|
139
|
+
ORDER BY r.created_at_ms, r.run_id LIMIT ?`,
|
|
140
|
+
values
|
|
141
|
+
);
|
|
142
|
+
const decoded = yield* import_effect.Effect.forEach(rows, (row) => Read.observed(row, at));
|
|
143
|
+
const runs = decoded.slice(0, limit);
|
|
144
|
+
const last = runs[runs.length - 1];
|
|
145
|
+
return {
|
|
146
|
+
...at,
|
|
147
|
+
runs,
|
|
148
|
+
cursor: decoded.length > limit ? JSON.stringify({
|
|
149
|
+
version: 1,
|
|
150
|
+
source: at.source,
|
|
151
|
+
filters: tuple,
|
|
152
|
+
createdAtMs: last.createdAtMs,
|
|
153
|
+
runId: last.runId
|
|
154
|
+
}) : null
|
|
155
|
+
};
|
|
156
|
+
})
|
|
157
|
+
);
|
|
158
|
+
}).pipe(import_effect.Effect.catchCause((cause) => {
|
|
159
|
+
if (import_effect.Cause.hasInterruptsOnly(cause)) return import_effect.Effect.failCause(cause);
|
|
160
|
+
const original = import_effect.Cause.squash(cause);
|
|
161
|
+
return import_effect.Effect.fail(
|
|
162
|
+
original instanceof import_RunListingError.RunCatalogError ? original : new import_RunListingError.RunCatalogError({
|
|
163
|
+
code: "list_failed",
|
|
164
|
+
message: "the engine run page could not be read",
|
|
165
|
+
cause: original
|
|
166
|
+
})
|
|
167
|
+
);
|
|
168
|
+
}));
|
|
169
|
+
return { listRuns };
|
|
170
|
+
});
|
|
171
|
+
//# sourceMappingURL=RunListing.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/RunListing.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Bounded, indexed run pages.\n *\n * @since 1.0.0\n */\n\nimport * as Dialect from \"@smthrs/database/Dialect\"\nimport { RunStatus } from \"@smthrs/run-store/RunStore\"\nimport { Cause, Effect, Schema } from \"effect\"\nimport * as SqlClient from \"effect/unstable/sql/SqlClient\"\nimport * as Read from \"./ExecutionSnapshotRead.ts\"\nimport { RunCatalogError } from \"./RunListingError.ts\"\n\n/**\n * Supported equality and inclusive creation-range filters.\n *\n * @category models\n * @since 1.0.0\n */\nexport const Filters = Schema.Struct({\n status: Schema.optionalKey(RunStatus),\n flowName: Schema.optionalKey(Read.Identifier),\n parentRunId: Schema.optionalKey(Schema.NullOr(Read.Identifier)),\n lineageId: Schema.optionalKey(Read.Identifier),\n waitingReason: Schema.optionalKey(Schema.NullOr(Read.Identifier)),\n createdAfterMs: Schema.optionalKey(Read.Natural),\n createdBeforeMs: Schema.optionalKey(Read.Natural)\n})\n/**\n * Supported filters; lineageId also selects its original root.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Filters = typeof Filters.Type\n/**\n * Options for a bounded run page. Numeric offsets are not cursors.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface ListRunsOptions {\n readonly filters?: Filters\n readonly cursor?: string\n readonly limit?: number\n}\n/**\n * One transaction's page and watermark; no total count.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface RunPage extends Read.Position {\n readonly runs: ReadonlyArray<Read.Observed>\n readonly cursor: string | null\n}\n/**\n * Bounded catalog operations.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Service {\n readonly listRuns: (options?: ListRunsOptions) => Effect.Effect<RunPage, RunCatalogError>\n}\n/**\n * Maximum page size.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const maximumPageSize = 200\nconst Cursor = Schema.fromJsonString(Schema.Struct({\n version: Schema.Literal(1),\n source: Read.Source,\n filters: Schema.String,\n createdAtMs: Read.Natural,\n runId: Read.Identifier\n}))\nconst Options = Schema.Struct({\n filters: Schema.optionalKey(Filters),\n // Four 1,024-unit filter strings can expand sevenfold inside the JSON tuple\n // string, plus a sixfold escaped 1,024-unit run ID and bounded scalar fields.\n // 64 Ki UTF-16 units therefore admits every cursor this port can produce.\n cursor: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(65536))),\n limit: Schema.optionalKey(Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: maximumPageSize })))\n})\n\n/**\n * Builds the bounded read against the engine database.\n *\n * @category constructors\n * @since 1.0.0\n */\nexport const make = () =>\n Effect.gen(function*() {\n const sql = yield* SqlClient.SqlClient\n const listRuns: Service[\"listRuns\"] = (options = {}) =>\n Effect.gen(function*() {\n const admitted = yield* Schema.decodeUnknownEffect(Options)(options, { onExcessProperty: \"error\" }).pipe(\n Effect.mapError((cause) =>\n new RunCatalogError({ code: \"invalid_options\", message: \"invalid run page options\", cause })\n )\n )\n const filters = admitted.filters ?? {}\n const tuple = JSON.stringify([\n filters.status ?? null,\n filters.flowName ?? null,\n filters.parentRunId === undefined ? [] : [filters.parentRunId],\n filters.lineageId ?? null,\n filters.waitingReason === undefined ? [] : [filters.waitingReason],\n filters.createdAfterMs ?? null,\n filters.createdBeforeMs ?? null\n ])\n const cursor = admitted.cursor === undefined ?\n null :\n yield* Schema.decodeUnknownEffect(Cursor)(admitted.cursor).pipe(\n Effect.mapError((cause) =>\n new RunCatalogError({ code: \"invalid_cursor\", message: \"malformed run cursor\", cause })\n )\n )\n if (cursor !== null && cursor.filters !== tuple) {\n return yield* Effect.fail(\n new RunCatalogError({ code: \"invalid_cursor\", message: \"run cursor belongs to another query\" })\n )\n }\n const limit = admitted.limit ?? 100\n return yield* Read.transaction(\n sql,\n Effect.gen(function*() {\n const at = yield* Read.position(sql)\n if (cursor !== null && cursor.source !== at.source) {\n return yield* Effect.fail(\n new RunCatalogError({ code: \"source_changed\", message: \"run cursor belongs to another engine source\" })\n )\n }\n const predicates: Array<string> = []\n const values: Array<string | number | null> = []\n let mask = 0\n const equalities = [\n [\"status\", filters.status],\n [\"execution_flow\", filters.flowName],\n [\"execution_parent_id\", filters.parentRunId],\n [\"execution_lineage\", filters.lineageId],\n [\"waiting_reason\", filters.waitingReason]\n ] as const\n for (const [index, [column, value]] of equalities.entries()) {\n if (value === undefined) continue\n mask |= 1 << index\n predicates.push(`r.${column} IS NOT DISTINCT FROM ?`)\n values.push(value)\n }\n if (filters.createdAfterMs !== undefined) {\n predicates.push(\"r.created_at_ms >= ?\")\n values.push(filters.createdAfterMs)\n }\n if (filters.createdBeforeMs !== undefined) {\n predicates.push(\"r.created_at_ms <= ?\")\n values.push(filters.createdBeforeMs)\n }\n if (cursor !== null) {\n predicates.push(\"(r.created_at_ms, r.run_id) > (?, ?)\")\n values.push(cursor.createdAtMs, cursor.runId)\n }\n values.push(limit + 1)\n const rows = yield* Dialect.query(\n sql,\n `SELECT ${Read.selectColumns} FROM flows_runs r ${\n Dialect.isPostgres(sql) ? \"\" : `INDEXED BY flows_runs_listing_${mask}`\n }\n LEFT JOIN flows_run_changes c ON c.run_id = r.run_id\n ${\n predicates.length === 0\n ? \"\"\n : `WHERE ${predicates.join(\" AND \")}`\n }\n ORDER BY r.created_at_ms, r.run_id LIMIT ?`,\n values\n )\n const decoded = yield* Effect.forEach(rows, (row) => Read.observed(row, at))\n const runs = decoded.slice(0, limit)\n const last = runs[runs.length - 1]\n return {\n ...at,\n runs,\n cursor: decoded.length > limit ?\n JSON.stringify({\n version: 1,\n source: at.source,\n filters: tuple,\n createdAtMs: last!.createdAtMs,\n runId: last!.runId\n }) :\n null\n }\n })\n )\n }).pipe(Effect.catchCause((cause) => {\n if (Cause.hasInterruptsOnly(cause)) return Effect.failCause(cause as Cause.Cause<never>)\n const original = Cause.squash(cause)\n return Effect.fail(\n original instanceof RunCatalogError ? original : new RunCatalogError({\n code: \"list_failed\",\n message: \"the engine run page could not be read\",\n cause: original\n })\n )\n }))\n return { listRuns }\n })\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared catalog failure vocabulary.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Schema from "effect/Schema";
|
|
7
|
+
/**
|
|
8
|
+
* Catalog failure codes.
|
|
9
|
+
*
|
|
10
|
+
* @category models
|
|
11
|
+
* @since 0.1.0
|
|
12
|
+
*/
|
|
13
|
+
export declare const RunCatalogErrorCode: Schema.Literals<readonly ["invalid_options", "list_failed", "invalid_cursor", "source_changed"]>;
|
|
14
|
+
/**
|
|
15
|
+
* Catalog failure codes.
|
|
16
|
+
*
|
|
17
|
+
* @category models
|
|
18
|
+
* @since 0.1.0
|
|
19
|
+
*/
|
|
20
|
+
export type RunCatalogErrorCode = typeof RunCatalogErrorCode.Type;
|
|
21
|
+
declare const RunCatalogError_base: Schema.Class<RunCatalogError, Schema.TaggedStruct<"@smthrs/engine-store/RunCatalogError", {
|
|
22
|
+
readonly code: Schema.Literals<readonly ["invalid_options", "list_failed", "invalid_cursor", "source_changed"]>;
|
|
23
|
+
readonly message: Schema.String;
|
|
24
|
+
readonly cause: Schema.optional<Schema.Unknown>;
|
|
25
|
+
}>, import("effect/Cause").YieldableError>;
|
|
26
|
+
/**
|
|
27
|
+
* Catalog read failure retaining its original cause.
|
|
28
|
+
*
|
|
29
|
+
* @category errors
|
|
30
|
+
* @since 0.1.0
|
|
31
|
+
*/
|
|
32
|
+
export declare class RunCatalogError extends RunCatalogError_base {
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=RunListingError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunListingError.d.ts","sourceRoot":"","sources":["../../../src/internal/RunListingError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,kGAK9B,CAAA;AACF;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC,IAAI,CAAA;;;;;;AACjE;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,oBAGpC;CAAG"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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 RunListingError_exports = {};
|
|
30
|
+
__export(RunListingError_exports, {
|
|
31
|
+
RunCatalogError: () => RunCatalogError,
|
|
32
|
+
RunCatalogErrorCode: () => RunCatalogErrorCode
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(RunListingError_exports);
|
|
35
|
+
var Schema = __toESM(require("effect/Schema"), 1);
|
|
36
|
+
const RunCatalogErrorCode = Schema.Literals([
|
|
37
|
+
"invalid_options",
|
|
38
|
+
"list_failed",
|
|
39
|
+
"invalid_cursor",
|
|
40
|
+
"source_changed"
|
|
41
|
+
]);
|
|
42
|
+
class RunCatalogError extends Schema.TaggedError()(
|
|
43
|
+
"@smthrs/engine-store/RunCatalogError",
|
|
44
|
+
{ code: RunCatalogErrorCode, message: Schema.String, cause: Schema.optional(Schema.Unknown) }
|
|
45
|
+
) {
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=RunListingError.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/RunListingError.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Shared catalog failure vocabulary.\n *\n * @since 1.0.0\n */\n\nimport * as Schema from \"effect/Schema\"\n\n/**\n * Catalog failure codes.\n *\n * @category models\n * @since 0.1.0\n */\nexport const RunCatalogErrorCode = Schema.Literals([\n \"invalid_options\",\n \"list_failed\",\n \"invalid_cursor\",\n \"source_changed\"\n])\n/**\n * Catalog failure codes.\n *\n * @category models\n * @since 0.1.0\n */\nexport type RunCatalogErrorCode = typeof RunCatalogErrorCode.Type\n/**\n * Catalog read failure retaining its original cause.\n *\n * @category errors\n * @since 0.1.0\n */\nexport class RunCatalogError extends Schema.TaggedError<RunCatalogError>()(\n \"@smthrs/engine-store/RunCatalogError\",\n { code: RunCatalogErrorCode, message: Schema.String, cause: Schema.optional(Schema.Unknown) }\n) {}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,aAAwB;AAQjB,MAAM,sBAAsB,OAAO,SAAS;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAcM,MAAM,wBAAwB,OAAO,YAA6B;AAAA,EACvE;AAAA,EACA,EAAE,MAAM,qBAAqB,SAAS,OAAO,QAAQ,OAAO,OAAO,SAAS,OAAO,OAAO,EAAE;AAC9F,EAAE;AAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rebuildable scheduler indexes. Only verified, append-only plan nodes enter
|
|
3
|
+
* here; durable plans, observations and attempts remain authoritative.
|
|
4
|
+
*
|
|
5
|
+
* @since 1.0.0
|
|
6
|
+
*/
|
|
7
|
+
import type { Plan, Scheduling } from "@smthrs/plan";
|
|
8
|
+
import type { Outcome } from "../PlanScheduler.ts";
|
|
9
|
+
/** Mutable coordinator state; dispatch fibers own only attempt-local progress.
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
* @category models
|
|
12
|
+
*/
|
|
13
|
+
export interface NodeState {
|
|
14
|
+
status: "pending" | "running" | "settled";
|
|
15
|
+
outcome: Outcome;
|
|
16
|
+
attempts: number;
|
|
17
|
+
rebases: number;
|
|
18
|
+
waited: number;
|
|
19
|
+
dispatchKey: string;
|
|
20
|
+
}
|
|
21
|
+
/** Counts explicit graph work, not host time or VM-internal allocations.
|
|
22
|
+
* `allocations` counts new containers and records, including frontier copies
|
|
23
|
+
* and candidate records. Collection backing storage and sort internals are
|
|
24
|
+
* not observable here. Admission policy work is owned by Scheduling.
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
* @category diagnostics
|
|
27
|
+
*/
|
|
28
|
+
export interface Work {
|
|
29
|
+
nodes: number;
|
|
30
|
+
edges: number;
|
|
31
|
+
allocations: number;
|
|
32
|
+
membership: number;
|
|
33
|
+
}
|
|
34
|
+
/** Run-local adjacency, readiness, membership and work counters.
|
|
35
|
+
*
|
|
36
|
+
* A provisional outcome is staged while reconciliation reads the journal.
|
|
37
|
+
* Only `reconcile` publishes it to dependents. A later verdict can change an
|
|
38
|
+
* outcome's blocking contribution, but never decrement indegree twice.
|
|
39
|
+
*
|
|
40
|
+
* @since 1.0.0
|
|
41
|
+
* @category models
|
|
42
|
+
*/
|
|
43
|
+
export interface RuntimeGraph {
|
|
44
|
+
readonly states: ReadonlyMap<string, NodeState>;
|
|
45
|
+
readonly remaining: number;
|
|
46
|
+
readonly cost: {
|
|
47
|
+
readonly update: Work;
|
|
48
|
+
readonly settlement: Work;
|
|
49
|
+
readonly frontier: Work;
|
|
50
|
+
readonly admission: Work;
|
|
51
|
+
readonly reachability: Work;
|
|
52
|
+
};
|
|
53
|
+
/** Adds only the newly admitted suffix, synchronously after its durable commit. */
|
|
54
|
+
readonly append: (nodes: ReadonlyArray<Plan.PlanNode>) => void;
|
|
55
|
+
readonly stage: (nodeId: string, outcome: Outcome) => void;
|
|
56
|
+
readonly reconcile: () => void;
|
|
57
|
+
/** Declaration-ordered snapshots preserve passive-settlement wave ordering. */
|
|
58
|
+
readonly blocked: () => ReadonlyArray<Plan.PlanNode>;
|
|
59
|
+
readonly ready: () => ReadonlyArray<Plan.PlanNode>;
|
|
60
|
+
readonly candidates: (ready: ReadonlyArray<Plan.PlanNode>) => ReadonlyArray<Scheduling.Candidate>;
|
|
61
|
+
readonly start: (nodeId: string) => void;
|
|
62
|
+
/** Discovered edges affect readiness only, never declared file versions. */
|
|
63
|
+
readonly reorder: (nodeId: string, owners: ReadonlyArray<string>) => void;
|
|
64
|
+
/** Visits declared ancestors once per query, including a not-yet-admitted suffix node. */
|
|
65
|
+
readonly visitAncestors: (node: Plan.PlanNode, visit: (node: Plan.PlanNode) => void) => void;
|
|
66
|
+
}
|
|
67
|
+
/** Builds one private graph per run/resume. Recovery stages durable settlements
|
|
68
|
+
* before the first admission; ordinary attempt replay still verifies content.
|
|
69
|
+
* @since 1.0.0
|
|
70
|
+
* @category constructors
|
|
71
|
+
*/
|
|
72
|
+
export declare const make: (nodes: ReadonlyArray<Plan.PlanNode>) => RuntimeGraph;
|
|
73
|
+
//# sourceMappingURL=RuntimeGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeGraph.d.ts","sourceRoot":"","sources":["../../../src/internal/RuntimeGraph.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAgBD;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAA;QACrB,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;QACzB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;QACvB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;QACxB,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAA;KAC5B,CAAA;IACD,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAA;IAC9D,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAA;IAC9B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClD,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IACjG,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IACzE,0FAA0F;IAC1F,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,KAAK,IAAI,CAAA;CAC7F;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAG,YAkK1D,CAAA"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var RuntimeGraph_exports = {};
|
|
20
|
+
__export(RuntimeGraph_exports, {
|
|
21
|
+
make: () => make
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(RuntimeGraph_exports);
|
|
24
|
+
const work = () => ({ nodes: 0, edges: 0, allocations: 0, membership: 0 });
|
|
25
|
+
const blocks = (outcome) => outcome !== "built" && outcome !== "clean";
|
|
26
|
+
const make = (nodes) => {
|
|
27
|
+
const vertices = /* @__PURE__ */ new Map();
|
|
28
|
+
const states = /* @__PURE__ */ new Map();
|
|
29
|
+
const ready = /* @__PURE__ */ new Set();
|
|
30
|
+
const blocked = /* @__PURE__ */ new Set();
|
|
31
|
+
const staged = /* @__PURE__ */ new Set();
|
|
32
|
+
const cost = { update: work(), settlement: work(), frontier: work(), admission: work(), reachability: work() };
|
|
33
|
+
cost.update.allocations = 12;
|
|
34
|
+
let remaining = 0;
|
|
35
|
+
const refresh = (vertex) => {
|
|
36
|
+
ready.delete(vertex);
|
|
37
|
+
blocked.delete(vertex);
|
|
38
|
+
if (vertex.state.status === "pending" && vertex.unresolved === 0) {
|
|
39
|
+
if (vertex.blocked > 0) blocked.add(vertex);
|
|
40
|
+
else ready.add(vertex);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const edge = (target, dependency, count) => {
|
|
44
|
+
count.edges++;
|
|
45
|
+
count.membership++;
|
|
46
|
+
if (target.dependencies.has(dependency)) return;
|
|
47
|
+
target.dependencies.add(dependency);
|
|
48
|
+
dependency.dependents.add(target);
|
|
49
|
+
if (dependency.propagated === void 0) target.unresolved++;
|
|
50
|
+
else if (blocks(dependency.propagated)) target.blocked++;
|
|
51
|
+
};
|
|
52
|
+
const append = (suffix) => {
|
|
53
|
+
for (const node of suffix) {
|
|
54
|
+
const state = {
|
|
55
|
+
status: "pending",
|
|
56
|
+
outcome: "skipped",
|
|
57
|
+
attempts: 0,
|
|
58
|
+
rebases: 0,
|
|
59
|
+
waited: 0,
|
|
60
|
+
dispatchKey: ""
|
|
61
|
+
};
|
|
62
|
+
const vertex = {
|
|
63
|
+
node,
|
|
64
|
+
index: vertices.size,
|
|
65
|
+
state,
|
|
66
|
+
dependencies: /* @__PURE__ */ new Set(),
|
|
67
|
+
dependents: /* @__PURE__ */ new Set(),
|
|
68
|
+
unresolved: 0,
|
|
69
|
+
blocked: 0,
|
|
70
|
+
propagated: void 0
|
|
71
|
+
};
|
|
72
|
+
vertices.set(node.id, vertex);
|
|
73
|
+
states.set(node.id, state);
|
|
74
|
+
remaining++;
|
|
75
|
+
cost.update.nodes++;
|
|
76
|
+
cost.update.allocations += 4;
|
|
77
|
+
}
|
|
78
|
+
for (const node of suffix) {
|
|
79
|
+
const vertex = vertices.get(node.id);
|
|
80
|
+
cost.update.nodes++;
|
|
81
|
+
cost.update.membership++;
|
|
82
|
+
for (const dependency of node.dependsOn) {
|
|
83
|
+
cost.update.membership++;
|
|
84
|
+
edge(vertex, vertices.get(dependency), cost.update);
|
|
85
|
+
}
|
|
86
|
+
refresh(vertex);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const snapshot = (frontier) => {
|
|
90
|
+
cost.frontier.nodes += frontier.size;
|
|
91
|
+
cost.frontier.allocations += 2;
|
|
92
|
+
return [...frontier].sort((left, right) => left.index - right.index).map((vertex) => vertex.node);
|
|
93
|
+
};
|
|
94
|
+
append(nodes);
|
|
95
|
+
return {
|
|
96
|
+
states,
|
|
97
|
+
get remaining() {
|
|
98
|
+
return remaining;
|
|
99
|
+
},
|
|
100
|
+
cost,
|
|
101
|
+
append,
|
|
102
|
+
stage: (nodeId, outcome) => {
|
|
103
|
+
cost.settlement.nodes++;
|
|
104
|
+
cost.settlement.membership++;
|
|
105
|
+
const vertex = vertices.get(nodeId);
|
|
106
|
+
vertex.state.status = "settled";
|
|
107
|
+
vertex.state.outcome = outcome;
|
|
108
|
+
staged.add(vertex);
|
|
109
|
+
},
|
|
110
|
+
reconcile: () => {
|
|
111
|
+
for (const vertex of staged) {
|
|
112
|
+
cost.settlement.nodes++;
|
|
113
|
+
const previous = vertex.propagated;
|
|
114
|
+
const outcome = vertex.state.outcome;
|
|
115
|
+
if (previous === outcome) continue;
|
|
116
|
+
if (previous === void 0) remaining--;
|
|
117
|
+
const delta = Number(blocks(outcome)) - Number(previous !== void 0 && blocks(previous));
|
|
118
|
+
vertex.propagated = outcome;
|
|
119
|
+
refresh(vertex);
|
|
120
|
+
for (const dependent of vertex.dependents) {
|
|
121
|
+
cost.settlement.edges++;
|
|
122
|
+
cost.settlement.nodes++;
|
|
123
|
+
if (previous === void 0) dependent.unresolved--;
|
|
124
|
+
dependent.blocked += delta;
|
|
125
|
+
refresh(dependent);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
staged.clear();
|
|
129
|
+
},
|
|
130
|
+
blocked: () => snapshot(blocked),
|
|
131
|
+
ready: () => snapshot(ready),
|
|
132
|
+
candidates: (frontier) => {
|
|
133
|
+
cost.admission.allocations += 1 + frontier.length;
|
|
134
|
+
return frontier.map((node) => {
|
|
135
|
+
cost.admission.nodes++;
|
|
136
|
+
cost.admission.membership++;
|
|
137
|
+
const vertex = vertices.get(node.id);
|
|
138
|
+
return { node, order: vertex.index, waited: vertex.state.waited };
|
|
139
|
+
});
|
|
140
|
+
},
|
|
141
|
+
start: (nodeId) => {
|
|
142
|
+
cost.admission.nodes++;
|
|
143
|
+
cost.admission.membership++;
|
|
144
|
+
const vertex = vertices.get(nodeId);
|
|
145
|
+
vertex.state.status = "running";
|
|
146
|
+
ready.delete(vertex);
|
|
147
|
+
},
|
|
148
|
+
reorder: (nodeId, owners) => {
|
|
149
|
+
const dependency = vertices.get(nodeId);
|
|
150
|
+
cost.update.membership++;
|
|
151
|
+
for (const owner of owners) {
|
|
152
|
+
cost.update.nodes++;
|
|
153
|
+
cost.update.membership++;
|
|
154
|
+
const target = vertices.get(owner);
|
|
155
|
+
if (target?.state.status !== "pending") continue;
|
|
156
|
+
edge(target, dependency, cost.update);
|
|
157
|
+
refresh(target);
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
visitAncestors: (node, visit) => {
|
|
161
|
+
const seen = /* @__PURE__ */ new Set([node.id]);
|
|
162
|
+
const stack = [...node.dependsOn];
|
|
163
|
+
cost.reachability.allocations += 2;
|
|
164
|
+
cost.reachability.edges += stack.length;
|
|
165
|
+
while (stack.length > 0) {
|
|
166
|
+
const id = stack.pop();
|
|
167
|
+
cost.reachability.membership++;
|
|
168
|
+
if (seen.has(id)) continue;
|
|
169
|
+
seen.add(id);
|
|
170
|
+
const predecessor = vertices.get(id).node;
|
|
171
|
+
cost.reachability.membership++;
|
|
172
|
+
cost.reachability.nodes++;
|
|
173
|
+
visit(predecessor);
|
|
174
|
+
cost.reachability.edges += predecessor.dependsOn.length;
|
|
175
|
+
stack.push(...predecessor.dependsOn);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
};
|
|
180
|
+
//# sourceMappingURL=RuntimeGraph.js.map
|