@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,325 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable engine event constructors over the open journal envelope.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import { Journal, JournalEvent } from "@smthrs/journal";
|
|
7
|
+
import type { EngineEvent } from "@smthrs/journal";
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
/**
|
|
10
|
+
* The addressing every engine record shares: which run wrote it, which source
|
|
11
|
+
* inside that run, and which journal lineage it belongs to.
|
|
12
|
+
*
|
|
13
|
+
* Only `lineageId` is a semantic requirement rather than bookkeeping — a
|
|
14
|
+
* record without one is a record no time-travel frame can address — which is
|
|
15
|
+
* why it is required here rather than optional.
|
|
16
|
+
*
|
|
17
|
+
* @since 0.1.0
|
|
18
|
+
* @category models
|
|
19
|
+
*/
|
|
20
|
+
export interface EventOptions {
|
|
21
|
+
readonly runId: string;
|
|
22
|
+
readonly sourceId: string;
|
|
23
|
+
readonly sourceSeq?: number | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* The journal lineage this record addresses itself to — minted by the engine
|
|
26
|
+
* (`FlowEngine.Lineage`) and carried on every engine record.
|
|
27
|
+
*
|
|
28
|
+
* Time travel (`packages/smithers/flows/time-travel/docs/README.md`) makes a frame the position
|
|
29
|
+
* `(lineageId, seq)`, and time travel's replay skips any entry whose
|
|
30
|
+
* `meta.lineageId` names a different lineage. An engine record without it is
|
|
31
|
+
* a record no frame can address, which is why this is required rather than
|
|
32
|
+
* optional: the omission used to make `TimeTravel.inspect` fail `not_found`
|
|
33
|
+
* on every journal the production composition wrote.
|
|
34
|
+
*/
|
|
35
|
+
readonly lineageId: string;
|
|
36
|
+
/**
|
|
37
|
+
* The step-cache key whose sealed row holds this record's result, when one
|
|
38
|
+
* exists. Replay reads it to hand the projection the sealed value instead of
|
|
39
|
+
* re-deriving it.
|
|
40
|
+
*/
|
|
41
|
+
readonly cacheKey?: string | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* What a re-emission of this producer identity means.
|
|
44
|
+
*
|
|
45
|
+
* The default, `content`, is the strict reading: the identity names one set
|
|
46
|
+
* of bytes. `identity` is for a record whose sequence is derived from the
|
|
47
|
+
* event itself, where a collision IS the same event observed twice and the
|
|
48
|
+
* bytes that differ are metadata about the observation — a node settled
|
|
49
|
+
* `built` by the walk that ran it and `clean` by the resumed walk that
|
|
50
|
+
* replayed it is one node settling once, seen twice.
|
|
51
|
+
*/
|
|
52
|
+
readonly dedupe?: JournalEvent.Dedupe | undefined;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The run's state advanced. Replaying these records in order is how time
|
|
56
|
+
* travel derives the state AT a frame, rather than reading the run row's
|
|
57
|
+
* latest value.
|
|
58
|
+
*
|
|
59
|
+
* @since 0.1.0
|
|
60
|
+
* @category events
|
|
61
|
+
*/
|
|
62
|
+
export declare const runDecision: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
63
|
+
/**
|
|
64
|
+
* An action attempt was admitted and its body is about to run. Paired with
|
|
65
|
+
* {@link attemptFinished}; an unmatched one is crash evidence.
|
|
66
|
+
*
|
|
67
|
+
* @since 0.1.0
|
|
68
|
+
* @category events
|
|
69
|
+
*/
|
|
70
|
+
export declare const attemptStarted: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
71
|
+
/**
|
|
72
|
+
* An action attempt settled, successfully or not. Closes the span opened by
|
|
73
|
+
* {@link attemptStarted}.
|
|
74
|
+
*
|
|
75
|
+
* @since 0.1.0
|
|
76
|
+
* @category events
|
|
77
|
+
*/
|
|
78
|
+
export declare const attemptFinished: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
79
|
+
/**
|
|
80
|
+
* A durable deferred was resolved from outside the run. Journaled because the
|
|
81
|
+
* resolution is the only evidence of it — a replay cannot re-derive a value
|
|
82
|
+
* that arrived over the network. The record names the completion row and the
|
|
83
|
+
* digests of its encoded `exit` and `metadata`; the values stay in the row,
|
|
84
|
+
* because the journal is redacted and replayed to subscribers.
|
|
85
|
+
*
|
|
86
|
+
* @since 0.1.0
|
|
87
|
+
* @category events
|
|
88
|
+
*/
|
|
89
|
+
export declare const deferredCompleted: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
90
|
+
/**
|
|
91
|
+
* A run observed a deferred's result, so registration sweeps stop waking it
|
|
92
|
+
* for that result. The result itself stays in its row for replay.
|
|
93
|
+
*
|
|
94
|
+
* @since 1.0.0
|
|
95
|
+
* @category events
|
|
96
|
+
*/
|
|
97
|
+
export declare const deferredConsumed: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
98
|
+
/**
|
|
99
|
+
* A durable timer stopped being pending: it fired, or its run settled first.
|
|
100
|
+
* Without it a rebuilt deadline index would re-arm a clock that already
|
|
101
|
+
* completed (issue #2037).
|
|
102
|
+
*
|
|
103
|
+
* @since 1.0.0
|
|
104
|
+
* @category events
|
|
105
|
+
*/
|
|
106
|
+
export declare const clockCompleted: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
107
|
+
/**
|
|
108
|
+
* The {@link clockCompleted} record for one clock, under the producer identity
|
|
109
|
+
* every completer of that clock shares, so a retried completion collapses.
|
|
110
|
+
*
|
|
111
|
+
* @since 1.0.0
|
|
112
|
+
* @category events
|
|
113
|
+
*/
|
|
114
|
+
export declare const clockCompletedFor: (journalSource: string, lineageId: string, clock: {
|
|
115
|
+
readonly flowName: string;
|
|
116
|
+
readonly executionId: string;
|
|
117
|
+
readonly clockName: string;
|
|
118
|
+
}, completedAtMs: number) => JournalEvent.Input;
|
|
119
|
+
/**
|
|
120
|
+
* A durable timer was armed. Journaling the schedule rather than the firing is
|
|
121
|
+
* what lets a resumed run re-arm the same deadline instead of restarting the
|
|
122
|
+
* wait.
|
|
123
|
+
*
|
|
124
|
+
* @since 0.1.0
|
|
125
|
+
* @category events
|
|
126
|
+
*/
|
|
127
|
+
export declare const clockScheduled: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
128
|
+
/**
|
|
129
|
+
* The run was interrupted — cancelled, fenced out, or torn down — as opposed
|
|
130
|
+
* to failing. Recorded so a later reader can tell a cancelled run from a
|
|
131
|
+
* broken one.
|
|
132
|
+
*
|
|
133
|
+
* @since 0.1.0
|
|
134
|
+
* @category events
|
|
135
|
+
*/
|
|
136
|
+
export declare const interrupted: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
137
|
+
/**
|
|
138
|
+
* The jj pointer and plan digest in force at this point in the journal. These
|
|
139
|
+
* are the two tier-2 facts replay cannot derive, which is why the engine emits
|
|
140
|
+
* them and time travel's snapshot projector folds them into frame anchors.
|
|
141
|
+
*
|
|
142
|
+
* @since 0.1.0
|
|
143
|
+
* @category events
|
|
144
|
+
*/
|
|
145
|
+
export declare const snapshotIdentified: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
146
|
+
/**
|
|
147
|
+
* A hard-mode step wrote outside its declared write set, so its result was
|
|
148
|
+
* refused. The record is the forensic trail for a declaration that does not
|
|
149
|
+
* match what the step actually does.
|
|
150
|
+
*
|
|
151
|
+
* @since 0.1.0
|
|
152
|
+
* @category events
|
|
153
|
+
*/
|
|
154
|
+
export declare const hardViolation: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
155
|
+
/**
|
|
156
|
+
* An expected-mode step wrote paths its declaration did not predict. Unlike
|
|
157
|
+
* {@link hardViolation} the result still stands — the declaration was a
|
|
158
|
+
* prediction, and this is the record of it being wrong.
|
|
159
|
+
*
|
|
160
|
+
* @since 0.1.0
|
|
161
|
+
* @category events
|
|
162
|
+
*/
|
|
163
|
+
export declare const expectedSetDeviation: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
164
|
+
/**
|
|
165
|
+
* An isolated execution produced a diff bundle: its content address, the paths
|
|
166
|
+
* it changed, and the deviations the declaration did not predict. One of the
|
|
167
|
+
* two record types copy-back writes.
|
|
168
|
+
*
|
|
169
|
+
* It is written once the attempt's copy-back has settled, not before it — the
|
|
170
|
+
* rebase loop owns the window in between, and a bundle that lost every race
|
|
171
|
+
* was never a proposal the host saw. A crash inside that window leaves the
|
|
172
|
+
* attempt row unfinished, so the replay re-executes and journals the bundle it
|
|
173
|
+
* actually applies. An execution the declaration invalidated journals nothing
|
|
174
|
+
* here at all; its `hard-violation` record carries the identity instead.
|
|
175
|
+
*
|
|
176
|
+
* @since 0.1.0
|
|
177
|
+
* @category events
|
|
178
|
+
*/
|
|
179
|
+
export declare const diffBundleCaptured: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
180
|
+
/**
|
|
181
|
+
* A diff bundle reached the host. Carries the rebase count, the deduplicated
|
|
182
|
+
* `queued` effect keys, and the `dispatched` keys the delivery stage sent.
|
|
183
|
+
* `dispatched` is present and empty when no `EffectDispatcher` is composed, so
|
|
184
|
+
* the absence of delivery is a journal fact rather than an inference.
|
|
185
|
+
*
|
|
186
|
+
* @since 0.1.0
|
|
187
|
+
* @category events
|
|
188
|
+
*/
|
|
189
|
+
export declare const copyBackSettled: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
190
|
+
/**
|
|
191
|
+
* A plan was recorded and a run is about to be driven under it. Carries the
|
|
192
|
+
* plan id, its generation-0 digest, and its node count, so
|
|
193
|
+
* `packages/smithers/flows/plan/docs/api.md` asks the audit question, "show me the plan this ran
|
|
194
|
+
* under". This record answers it exactly rather than reconstructing it.
|
|
195
|
+
*
|
|
196
|
+
* @since 0.1.0
|
|
197
|
+
* @category events
|
|
198
|
+
*/
|
|
199
|
+
export declare const planRecorded: (options: EventOptions, payload: EngineEvent.PlanRecordedPayload) => JournalEvent.Input;
|
|
200
|
+
/**
|
|
201
|
+
* An elaboration appended a pre-keyed subgraph to the SAME plan. The plan
|
|
202
|
+
* grows; it is never invalidated, so this record names the new generation, the
|
|
203
|
+
* advanced digest, and the node ids added — never a replacement graph.
|
|
204
|
+
*
|
|
205
|
+
* @since 0.1.0
|
|
206
|
+
* @category events
|
|
207
|
+
*/
|
|
208
|
+
export declare const subgraphAppended: (options: EventOptions, payload: EngineEvent.SubgraphAppendedPayload) => JournalEvent.Input;
|
|
209
|
+
/**
|
|
210
|
+
* A plan node was admitted to the scheduler: its caps and seats allowed it,
|
|
211
|
+
* and its effective priority selected it. Paired with `node-settled`, this is
|
|
212
|
+
* the queue-time evidence the journal measures.
|
|
213
|
+
*
|
|
214
|
+
* @since 0.1.0
|
|
215
|
+
* @category events
|
|
216
|
+
*/
|
|
217
|
+
export declare const nodeScheduled: (options: EventOptions, payload: EngineEvent.NodeScheduledPayload) => JournalEvent.Input;
|
|
218
|
+
/**
|
|
219
|
+
* A plan node reached an evaluation outcome. Skyframe's
|
|
220
|
+
* `EvaluationProgressReceiver.EvaluationState` is the prior art:
|
|
221
|
+
* `SUCCESS_VERSION_CHANGED`/`SUCCESS_VERSION_UNCHANGED` map onto `built`/
|
|
222
|
+
* `clean`, and where Skyframe splits failure by version we use `failed` and
|
|
223
|
+
* `skipped` — a content-addressed store never serves a failure from cache, so
|
|
224
|
+
* `FAIL_VERSION_UNCHANGED` has no analogue, while a dependent that never ran
|
|
225
|
+
* because its cone failed does. `deferred` is the one outcome outside the
|
|
226
|
+
* Skyframe quadruple: a scheduling debt recorded by probabilistic selection,
|
|
227
|
+
* not an evaluation state.
|
|
228
|
+
*
|
|
229
|
+
* @since 0.1.0
|
|
230
|
+
* @category events
|
|
231
|
+
*/
|
|
232
|
+
export declare const nodeSettled: (options: EventOptions, payload: EngineEvent.NodeSettledPayload) => JournalEvent.Input;
|
|
233
|
+
/**
|
|
234
|
+
* A scheduled node's dispatch identity was invalidated: its measured inputs no
|
|
235
|
+
* longer match the ones its key was computed from, so it is re-keyed and
|
|
236
|
+
* re-dispatched. Invalidation is re-keying — there is no dirty bit and no
|
|
237
|
+
* invalidating visitor to journal.
|
|
238
|
+
*
|
|
239
|
+
* @since 0.1.0
|
|
240
|
+
* @category events
|
|
241
|
+
*/
|
|
242
|
+
export declare const nodeInvalidated: (options: EventOptions, payload: EngineEvent.NodeInvalidatedPayload) => JournalEvent.Input;
|
|
243
|
+
/**
|
|
244
|
+
* The reconciliation seam returned a verdict for a deviation or an unabsorbed
|
|
245
|
+
* materialization conflict.
|
|
246
|
+
*
|
|
247
|
+
* @since 0.1.0
|
|
248
|
+
* @category events
|
|
249
|
+
*/
|
|
250
|
+
export declare const nodeReconciled: (options: EventOptions, payload: EngineEvent.NodeReconciledPayload) => JournalEvent.Input;
|
|
251
|
+
/**
|
|
252
|
+
* A selection guess postponed a sink node: it did not execute, wrote no cache
|
|
253
|
+
* row, and this record is the debt — node id, plan key, the suspected edge,
|
|
254
|
+
* and the likelihood — that a later guess-free pass repays. `Selection.debt`
|
|
255
|
+
* folds these against {@link nodeSettled} records to list what is still owed.
|
|
256
|
+
*
|
|
257
|
+
* @since 0.1.0
|
|
258
|
+
* @category events
|
|
259
|
+
*/
|
|
260
|
+
export declare const selectionDeferred: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
261
|
+
/**
|
|
262
|
+
* A selection guess proposed a flow no real dependency reaches. V1 records
|
|
263
|
+
* and surfaces the proposal; it never auto-appends plan nodes, so this record
|
|
264
|
+
* is the proposal's only artifact.
|
|
265
|
+
*
|
|
266
|
+
* @since 0.1.0
|
|
267
|
+
* @category events
|
|
268
|
+
*/
|
|
269
|
+
export declare const selectionProposed: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
270
|
+
/**
|
|
271
|
+
* A run forced full selection: every verdict was treated as `Admit`, the way
|
|
272
|
+
* `--fresh` ignores the cache. Journaled so a report can say the guesses were
|
|
273
|
+
* overridden rather than absent.
|
|
274
|
+
*
|
|
275
|
+
* @since 0.1.0
|
|
276
|
+
* @category events
|
|
277
|
+
*/
|
|
278
|
+
export declare const selectionOverridden: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
279
|
+
/**
|
|
280
|
+
* A selection layer returned a Defer or Propose verdict naming a non-sink.
|
|
281
|
+
* The verdict is ignored — only sinks are deferrable — and this observation
|
|
282
|
+
* records the layer disagreeing with the plan's shape, in the pattern of
|
|
283
|
+
* Skyframe's `GraphInconsistencyReceiver`: note it, never wire the detector
|
|
284
|
+
* to /dev/null.
|
|
285
|
+
*
|
|
286
|
+
* @since 0.1.0
|
|
287
|
+
* @category events
|
|
288
|
+
*/
|
|
289
|
+
export declare const selectionInconsistent: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
290
|
+
/**
|
|
291
|
+
* Where a reused result came from: which run first produced it and under which
|
|
292
|
+
* key. A cache hit is otherwise invisible in the journal, and provenance is
|
|
293
|
+
* what makes one auditable after the fact.
|
|
294
|
+
*
|
|
295
|
+
* @since 0.1.0
|
|
296
|
+
* @category events
|
|
297
|
+
*/
|
|
298
|
+
export declare const cacheProvenance: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
299
|
+
/**
|
|
300
|
+
* Two runs recorded different results under one step key — the journaled form
|
|
301
|
+
* of an under-specified declaration.
|
|
302
|
+
*
|
|
303
|
+
* @since 0.1.0
|
|
304
|
+
* @category events
|
|
305
|
+
*/
|
|
306
|
+
export declare const cacheConflict: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
307
|
+
/**
|
|
308
|
+
* A cached output failed its digest check and the entry was evicted. Journaled
|
|
309
|
+
* because a repeat is a failing disk, not a coincidence.
|
|
310
|
+
*
|
|
311
|
+
* @since 0.1.0
|
|
312
|
+
* @category events
|
|
313
|
+
*/
|
|
314
|
+
export declare const cacheCorruption: (options: EventOptions, payload: unknown) => JournalEvent.Input;
|
|
315
|
+
/**
|
|
316
|
+
* Reads a page of engine records without imposing an agent-shaped event union.
|
|
317
|
+
*
|
|
318
|
+
* @since 0.1.0
|
|
319
|
+
* @category queries
|
|
320
|
+
*/
|
|
321
|
+
export declare const entries: (runId: string, after: number | undefined, limit: number) => Effect.Effect<{
|
|
322
|
+
readonly entries: readonly JournalEvent.Entry[];
|
|
323
|
+
readonly hasMore: boolean;
|
|
324
|
+
}, Journal.JournalError, Journal.Journal>;
|
|
325
|
+
//# sourceMappingURL=JournalRecords.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JournalRecords.d.ts","sourceRoot":"","sources":["../../../src/internal/JournalRecords.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
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 JournalRecords_exports = {};
|
|
30
|
+
__export(JournalRecords_exports, {
|
|
31
|
+
attemptFinished: () => attemptFinished,
|
|
32
|
+
attemptStarted: () => attemptStarted,
|
|
33
|
+
cacheConflict: () => cacheConflict,
|
|
34
|
+
cacheCorruption: () => cacheCorruption,
|
|
35
|
+
cacheProvenance: () => cacheProvenance,
|
|
36
|
+
clockCompleted: () => clockCompleted,
|
|
37
|
+
clockCompletedFor: () => clockCompletedFor,
|
|
38
|
+
clockScheduled: () => clockScheduled,
|
|
39
|
+
copyBackSettled: () => copyBackSettled,
|
|
40
|
+
deferredCompleted: () => deferredCompleted,
|
|
41
|
+
deferredConsumed: () => deferredConsumed,
|
|
42
|
+
diffBundleCaptured: () => diffBundleCaptured,
|
|
43
|
+
entries: () => entries,
|
|
44
|
+
expectedSetDeviation: () => expectedSetDeviation,
|
|
45
|
+
hardViolation: () => hardViolation,
|
|
46
|
+
interrupted: () => interrupted,
|
|
47
|
+
nodeInvalidated: () => nodeInvalidated,
|
|
48
|
+
nodeReconciled: () => nodeReconciled,
|
|
49
|
+
nodeScheduled: () => nodeScheduled,
|
|
50
|
+
nodeSettled: () => nodeSettled,
|
|
51
|
+
planRecorded: () => planRecorded,
|
|
52
|
+
runDecision: () => runDecision,
|
|
53
|
+
selectionDeferred: () => selectionDeferred,
|
|
54
|
+
selectionInconsistent: () => selectionInconsistent,
|
|
55
|
+
selectionOverridden: () => selectionOverridden,
|
|
56
|
+
selectionProposed: () => selectionProposed,
|
|
57
|
+
snapshotIdentified: () => snapshotIdentified,
|
|
58
|
+
subgraphAppended: () => subgraphAppended
|
|
59
|
+
});
|
|
60
|
+
module.exports = __toCommonJS(JournalRecords_exports);
|
|
61
|
+
var import_journal = require("@smthrs/journal");
|
|
62
|
+
var Effect = __toESM(require("effect/Effect"), 1);
|
|
63
|
+
var import_EventTypes = require("../EventTypes.js");
|
|
64
|
+
const meta = (options) => ({
|
|
65
|
+
lineageId: options.lineageId,
|
|
66
|
+
...options.cacheKey === void 0 ? {} : { cacheKey: options.cacheKey }
|
|
67
|
+
});
|
|
68
|
+
const event = (options, eventType, payload) => new import_journal.JournalEvent.Input({
|
|
69
|
+
runId: options.runId,
|
|
70
|
+
sourceId: options.sourceId,
|
|
71
|
+
...options.sourceSeq === void 0 ? {} : { sourceSeq: options.sourceSeq },
|
|
72
|
+
...options.dedupe === void 0 ? {} : { dedupe: options.dedupe },
|
|
73
|
+
eventType,
|
|
74
|
+
payload,
|
|
75
|
+
meta: meta(options)
|
|
76
|
+
});
|
|
77
|
+
const runDecision = (options, payload) => event(options, import_EventTypes.EventTypes.runDecision, payload);
|
|
78
|
+
const attemptStarted = (options, payload) => event(options, import_EventTypes.EventTypes.attemptStarted, payload);
|
|
79
|
+
const attemptFinished = (options, payload) => event(options, import_EventTypes.EventTypes.attemptFinished, payload);
|
|
80
|
+
const deferredCompleted = (options, payload) => event(options, import_EventTypes.EventTypes.deferredCompleted, payload);
|
|
81
|
+
const deferredConsumed = (options, payload) => event(options, import_EventTypes.EventTypes.deferredConsumed, payload);
|
|
82
|
+
const clockCompleted = (options, payload) => event(options, import_EventTypes.EventTypes.clockCompleted, payload);
|
|
83
|
+
const clockCompletedFor = (journalSource, lineageId, clock, completedAtMs) => clockCompleted({
|
|
84
|
+
runId: clock.executionId,
|
|
85
|
+
lineageId,
|
|
86
|
+
sourceId: `${journalSource}:clock-completed:${JSON.stringify([clock.flowName, clock.executionId, clock.clockName])}`,
|
|
87
|
+
sourceSeq: 0
|
|
88
|
+
}, {
|
|
89
|
+
flowName: clock.flowName,
|
|
90
|
+
executionId: clock.executionId,
|
|
91
|
+
clockName: clock.clockName,
|
|
92
|
+
completedAtMs
|
|
93
|
+
});
|
|
94
|
+
const clockScheduled = (options, payload) => event(options, import_EventTypes.EventTypes.clockScheduled, payload);
|
|
95
|
+
const interrupted = (options, payload) => event(options, "flows.engine.interrupted", payload);
|
|
96
|
+
const snapshotIdentified = (options, payload) => event(options, import_EventTypes.EventTypes.snapshotIdentified, payload);
|
|
97
|
+
const hardViolation = (options, payload) => event(options, "flows.engine.hard-violation", payload);
|
|
98
|
+
const expectedSetDeviation = (options, payload) => event(options, "flows.engine.expected-set-deviation", payload);
|
|
99
|
+
const diffBundleCaptured = (options, payload) => event(options, "flows.engine.diff-bundle-captured", payload);
|
|
100
|
+
const copyBackSettled = (options, payload) => event(options, "flows.engine.copy-back-settled", payload);
|
|
101
|
+
const planRecorded = (options, payload) => event(options, import_EventTypes.EventTypes.planRecorded, payload);
|
|
102
|
+
const subgraphAppended = (options, payload) => event(options, import_EventTypes.EventTypes.subgraphAppended, payload);
|
|
103
|
+
const nodeScheduled = (options, payload) => event(options, "flows.engine.node-scheduled", payload);
|
|
104
|
+
const nodeSettled = (options, payload) => event(options, "flows.engine.node-settled", payload);
|
|
105
|
+
const nodeInvalidated = (options, payload) => event(options, "flows.engine.node-invalidated", payload);
|
|
106
|
+
const nodeReconciled = (options, payload) => event(options, "flows.engine.node-reconciled", payload);
|
|
107
|
+
const selectionDeferred = (options, payload) => event(options, "flows.engine.selection-deferred", payload);
|
|
108
|
+
const selectionProposed = (options, payload) => event(options, "flows.engine.selection-proposed", payload);
|
|
109
|
+
const selectionOverridden = (options, payload) => event(options, "flows.engine.selection-overridden", payload);
|
|
110
|
+
const selectionInconsistent = (options, payload) => event(options, "flows.engine.selection-inconsistent", payload);
|
|
111
|
+
const cacheProvenance = (options, payload) => event(options, "flows.engine.cache-provenance", payload);
|
|
112
|
+
const cacheConflict = (options, payload) => event(options, "flows.engine.cache-conflict", payload);
|
|
113
|
+
const cacheCorruption = (options, payload) => event(options, "flows.engine.cache-corruption", payload);
|
|
114
|
+
const entries = (runId, after, limit) => Effect.flatMap(
|
|
115
|
+
import_journal.Journal.Journal,
|
|
116
|
+
(journal) => journal.entries({
|
|
117
|
+
runId,
|
|
118
|
+
...after === void 0 ? {} : { after },
|
|
119
|
+
limit
|
|
120
|
+
})
|
|
121
|
+
);
|
|
122
|
+
//# sourceMappingURL=JournalRecords.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/JournalRecords.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Stable engine event constructors over the open journal envelope.\n *\n * @since 0.1.0\n */\n\nimport { Journal, JournalEvent } from \"@smthrs/journal\"\nimport type { EngineEvent } from \"@smthrs/journal\"\nimport * as Effect from \"effect/Effect\"\nimport { EventTypes } from \"../EventTypes.ts\"\n\n/**\n * The addressing every engine record shares: which run wrote it, which source\n * inside that run, and which journal lineage it belongs to.\n *\n * Only `lineageId` is a semantic requirement rather than bookkeeping \u2014 a\n * record without one is a record no time-travel frame can address \u2014 which is\n * why it is required here rather than optional.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface EventOptions {\n readonly runId: string\n readonly sourceId: string\n readonly sourceSeq?: number | undefined\n /**\n * The journal lineage this record addresses itself to \u2014 minted by the engine\n * (`FlowEngine.Lineage`) and carried on every engine record.\n *\n * Time travel (`packages/smithers/flows/time-travel/docs/README.md`) makes a frame the position\n * `(lineageId, seq)`, and time travel's replay skips any entry whose\n * `meta.lineageId` names a different lineage. An engine record without it is\n * a record no frame can address, which is why this is required rather than\n * optional: the omission used to make `TimeTravel.inspect` fail `not_found`\n * on every journal the production composition wrote.\n */\n readonly lineageId: string\n /**\n * The step-cache key whose sealed row holds this record's result, when one\n * exists. Replay reads it to hand the projection the sealed value instead of\n * re-deriving it.\n */\n readonly cacheKey?: string | undefined\n /**\n * What a re-emission of this producer identity means.\n *\n * The default, `content`, is the strict reading: the identity names one set\n * of bytes. `identity` is for a record whose sequence is derived from the\n * event itself, where a collision IS the same event observed twice and the\n * bytes that differ are metadata about the observation \u2014 a node settled\n * `built` by the walk that ran it and `clean` by the resumed walk that\n * replayed it is one node settling once, seen twice.\n */\n readonly dedupe?: JournalEvent.Dedupe | undefined\n}\n\n/**\n * The additive envelope every engine record carries.\n *\n * Kept a plain open record on purpose: `meta` is the journal's forward-compatible\n * side channel, so a consumer that does not know a key ignores it.\n */\nconst meta = (options: EventOptions): Readonly<Record<string, unknown>> => ({\n lineageId: options.lineageId,\n ...(options.cacheKey === undefined ? {} : { cacheKey: options.cacheKey })\n})\n\nconst event = (options: EventOptions, eventType: string, payload: unknown): JournalEvent.Input =>\n new JournalEvent.Input({\n runId: options.runId as JournalEvent.RunId,\n sourceId: options.sourceId as JournalEvent.SourceId,\n ...(options.sourceSeq === undefined ? {} : { sourceSeq: options.sourceSeq as JournalEvent.SourceSeq }),\n ...(options.dedupe === undefined ? {} : { dedupe: options.dedupe }),\n eventType,\n payload,\n meta: meta(options)\n })\n\n/**\n * The run's state advanced. Replaying these records in order is how time\n * travel derives the state AT a frame, rather than reading the run row's\n * latest value.\n *\n * @since 0.1.0\n * @category events\n */\nexport const runDecision = (options: EventOptions, payload: unknown) => event(options, EventTypes.runDecision, payload)\n/**\n * An action attempt was admitted and its body is about to run. Paired with\n * {@link attemptFinished}; an unmatched one is crash evidence.\n *\n * @since 0.1.0\n * @category events\n */\nexport const attemptStarted = (options: EventOptions, payload: unknown) =>\n event(options, EventTypes.attemptStarted, payload)\n/**\n * An action attempt settled, successfully or not. Closes the span opened by\n * {@link attemptStarted}.\n *\n * @since 0.1.0\n * @category events\n */\nexport const attemptFinished = (options: EventOptions, payload: unknown) =>\n event(options, EventTypes.attemptFinished, payload)\n/**\n * A durable deferred was resolved from outside the run. Journaled because the\n * resolution is the only evidence of it \u2014 a replay cannot re-derive a value\n * that arrived over the network. The record names the completion row and the\n * digests of its encoded `exit` and `metadata`; the values stay in the row,\n * because the journal is redacted and replayed to subscribers.\n *\n * @since 0.1.0\n * @category events\n */\nexport const deferredCompleted = (options: EventOptions, payload: unknown) =>\n event(options, EventTypes.deferredCompleted, payload)\n/**\n * A run observed a deferred's result, so registration sweeps stop waking it\n * for that result. The result itself stays in its row for replay.\n *\n * @since 1.0.0\n * @category events\n */\nexport const deferredConsumed = (options: EventOptions, payload: unknown) =>\n event(options, EventTypes.deferredConsumed, payload)\n/**\n * A durable timer stopped being pending: it fired, or its run settled first.\n * Without it a rebuilt deadline index would re-arm a clock that already\n * completed (issue #2037).\n *\n * @since 1.0.0\n * @category events\n */\nexport const clockCompleted = (options: EventOptions, payload: unknown) =>\n event(options, EventTypes.clockCompleted, payload)\n/**\n * The {@link clockCompleted} record for one clock, under the producer identity\n * every completer of that clock shares, so a retried completion collapses.\n *\n * @since 1.0.0\n * @category events\n */\nexport const clockCompletedFor = (\n journalSource: string,\n lineageId: string,\n clock: { readonly flowName: string; readonly executionId: string; readonly clockName: string },\n completedAtMs: number\n) =>\n clockCompleted({\n runId: clock.executionId,\n lineageId,\n sourceId: `${journalSource}:clock-completed:${\n JSON.stringify([clock.flowName, clock.executionId, clock.clockName])\n }`,\n sourceSeq: 0\n }, {\n flowName: clock.flowName,\n executionId: clock.executionId,\n clockName: clock.clockName,\n completedAtMs\n })\n/**\n * A durable timer was armed. Journaling the schedule rather than the firing is\n * what lets a resumed run re-arm the same deadline instead of restarting the\n * wait.\n *\n * @since 0.1.0\n * @category events\n */\nexport const clockScheduled = (options: EventOptions, payload: unknown) =>\n event(options, EventTypes.clockScheduled, payload)\n/**\n * The run was interrupted \u2014 cancelled, fenced out, or torn down \u2014 as opposed\n * to failing. Recorded so a later reader can tell a cancelled run from a\n * broken one.\n *\n * @since 0.1.0\n * @category events\n */\nexport const interrupted = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.interrupted\", payload)\n/**\n * The jj pointer and plan digest in force at this point in the journal. These\n * are the two tier-2 facts replay cannot derive, which is why the engine emits\n * them and time travel's snapshot projector folds them into frame anchors.\n *\n * @since 0.1.0\n * @category events\n */\nexport const snapshotIdentified = (options: EventOptions, payload: unknown) =>\n event(options, EventTypes.snapshotIdentified, payload)\n/**\n * A hard-mode step wrote outside its declared write set, so its result was\n * refused. The record is the forensic trail for a declaration that does not\n * match what the step actually does.\n *\n * @since 0.1.0\n * @category events\n */\nexport const hardViolation = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.hard-violation\", payload)\n/**\n * An expected-mode step wrote paths its declaration did not predict. Unlike\n * {@link hardViolation} the result still stands \u2014 the declaration was a\n * prediction, and this is the record of it being wrong.\n *\n * @since 0.1.0\n * @category events\n */\nexport const expectedSetDeviation = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.expected-set-deviation\", payload)\n/**\n * An isolated execution produced a diff bundle: its content address, the paths\n * it changed, and the deviations the declaration did not predict. One of the\n * two record types copy-back writes.\n *\n * It is written once the attempt's copy-back has settled, not before it \u2014 the\n * rebase loop owns the window in between, and a bundle that lost every race\n * was never a proposal the host saw. A crash inside that window leaves the\n * attempt row unfinished, so the replay re-executes and journals the bundle it\n * actually applies. An execution the declaration invalidated journals nothing\n * here at all; its `hard-violation` record carries the identity instead.\n *\n * @since 0.1.0\n * @category events\n */\nexport const diffBundleCaptured = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.diff-bundle-captured\", payload)\n/**\n * A diff bundle reached the host. Carries the rebase count, the deduplicated\n * `queued` effect keys, and the `dispatched` keys the delivery stage sent.\n * `dispatched` is present and empty when no `EffectDispatcher` is composed, so\n * the absence of delivery is a journal fact rather than an inference.\n *\n * @since 0.1.0\n * @category events\n */\nexport const copyBackSettled = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.copy-back-settled\", payload)\n/**\n * A plan was recorded and a run is about to be driven under it. Carries the\n * plan id, its generation-0 digest, and its node count, so\n * `packages/smithers/flows/plan/docs/api.md` asks the audit question, \"show me the plan this ran\n * under\". This record answers it exactly rather than reconstructing it.\n *\n * @since 0.1.0\n * @category events\n */\nexport const planRecorded = (options: EventOptions, payload: EngineEvent.PlanRecordedPayload) =>\n event(options, EventTypes.planRecorded, payload)\n/**\n * An elaboration appended a pre-keyed subgraph to the SAME plan. The plan\n * grows; it is never invalidated, so this record names the new generation, the\n * advanced digest, and the node ids added \u2014 never a replacement graph.\n *\n * @since 0.1.0\n * @category events\n */\nexport const subgraphAppended = (options: EventOptions, payload: EngineEvent.SubgraphAppendedPayload) =>\n event(options, EventTypes.subgraphAppended, payload)\n/**\n * A plan node was admitted to the scheduler: its caps and seats allowed it,\n * and its effective priority selected it. Paired with `node-settled`, this is\n * the queue-time evidence the journal measures.\n *\n * @since 0.1.0\n * @category events\n */\nexport const nodeScheduled = (options: EventOptions, payload: EngineEvent.NodeScheduledPayload) =>\n event(options, \"flows.engine.node-scheduled\", payload)\n/**\n * A plan node reached an evaluation outcome. Skyframe's\n * `EvaluationProgressReceiver.EvaluationState` is the prior art:\n * `SUCCESS_VERSION_CHANGED`/`SUCCESS_VERSION_UNCHANGED` map onto `built`/\n * `clean`, and where Skyframe splits failure by version we use `failed` and\n * `skipped` \u2014 a content-addressed store never serves a failure from cache, so\n * `FAIL_VERSION_UNCHANGED` has no analogue, while a dependent that never ran\n * because its cone failed does. `deferred` is the one outcome outside the\n * Skyframe quadruple: a scheduling debt recorded by probabilistic selection,\n * not an evaluation state.\n *\n * @since 0.1.0\n * @category events\n */\nexport const nodeSettled = (options: EventOptions, payload: EngineEvent.NodeSettledPayload) =>\n event(options, \"flows.engine.node-settled\", payload)\n/**\n * A scheduled node's dispatch identity was invalidated: its measured inputs no\n * longer match the ones its key was computed from, so it is re-keyed and\n * re-dispatched. Invalidation is re-keying \u2014 there is no dirty bit and no\n * invalidating visitor to journal.\n *\n * @since 0.1.0\n * @category events\n */\nexport const nodeInvalidated = (options: EventOptions, payload: EngineEvent.NodeInvalidatedPayload) =>\n event(options, \"flows.engine.node-invalidated\", payload)\n/**\n * The reconciliation seam returned a verdict for a deviation or an unabsorbed\n * materialization conflict.\n *\n * @since 0.1.0\n * @category events\n */\nexport const nodeReconciled = (options: EventOptions, payload: EngineEvent.NodeReconciledPayload) =>\n event(options, \"flows.engine.node-reconciled\", payload)\n/**\n * A selection guess postponed a sink node: it did not execute, wrote no cache\n * row, and this record is the debt \u2014 node id, plan key, the suspected edge,\n * and the likelihood \u2014 that a later guess-free pass repays. `Selection.debt`\n * folds these against {@link nodeSettled} records to list what is still owed.\n *\n * @since 0.1.0\n * @category events\n */\nexport const selectionDeferred = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.selection-deferred\", payload)\n/**\n * A selection guess proposed a flow no real dependency reaches. V1 records\n * and surfaces the proposal; it never auto-appends plan nodes, so this record\n * is the proposal's only artifact.\n *\n * @since 0.1.0\n * @category events\n */\nexport const selectionProposed = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.selection-proposed\", payload)\n/**\n * A run forced full selection: every verdict was treated as `Admit`, the way\n * `--fresh` ignores the cache. Journaled so a report can say the guesses were\n * overridden rather than absent.\n *\n * @since 0.1.0\n * @category events\n */\nexport const selectionOverridden = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.selection-overridden\", payload)\n/**\n * A selection layer returned a Defer or Propose verdict naming a non-sink.\n * The verdict is ignored \u2014 only sinks are deferrable \u2014 and this observation\n * records the layer disagreeing with the plan's shape, in the pattern of\n * Skyframe's `GraphInconsistencyReceiver`: note it, never wire the detector\n * to /dev/null.\n *\n * @since 0.1.0\n * @category events\n */\nexport const selectionInconsistent = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.selection-inconsistent\", payload)\n/**\n * Where a reused result came from: which run first produced it and under which\n * key. A cache hit is otherwise invisible in the journal, and provenance is\n * what makes one auditable after the fact.\n *\n * @since 0.1.0\n * @category events\n */\nexport const cacheProvenance = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.cache-provenance\", payload)\n/**\n * Two runs recorded different results under one step key \u2014 the journaled form\n * of an under-specified declaration.\n *\n * @since 0.1.0\n * @category events\n */\nexport const cacheConflict = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.cache-conflict\", payload)\n/**\n * A cached output failed its digest check and the entry was evicted. Journaled\n * because a repeat is a failing disk, not a coincidence.\n *\n * @since 0.1.0\n * @category events\n */\nexport const cacheCorruption = (options: EventOptions, payload: unknown) =>\n event(options, \"flows.engine.cache-corruption\", payload)\n\n/**\n * Reads a page of engine records without imposing an agent-shaped event union.\n *\n * @since 0.1.0\n * @category queries\n */\nexport const entries = (runId: string, after: number | undefined, limit: number) =>\n Effect.flatMap(\n Journal.Journal,\n (journal) =>\n journal.entries({\n runId: runId as JournalEvent.RunId,\n ...(after === undefined ? {} : { after: after as JournalEvent.Seq }),\n limit\n })\n )\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The interpreter's node records, as journal entries.
|
|
3
|
+
*
|
|
4
|
+
* `@smthrs/flow` builds a record for the graph it drove and for every node it
|
|
5
|
+
* scheduled and settled, and says nothing about where they go. This module is
|
|
6
|
+
* the durable store's answer: one journal entry per record, addressed by the
|
|
7
|
+
* record's own `sourceId`, typed by the payload schemas `@smthrs/journal`
|
|
8
|
+
* publishes, and carrying the same event types the plan scheduler writes so a
|
|
9
|
+
* reader folds both executors with one decoder.
|
|
10
|
+
*
|
|
11
|
+
* Two facts live here rather than in the interpreter. The journal's producer
|
|
12
|
+
* identity is `(runId, sourceId, sourceSeq)`, so a resumed walk that
|
|
13
|
+
* re-derives the same `sourceId` collapses onto the row the first walk wrote:
|
|
14
|
+
* that is the exactly-once contract, and it holds because the identity is the
|
|
15
|
+
* record's, never a fresh one minted per observation. And a declaration site
|
|
16
|
+
* is made repo-relative here, because only the writer knows the root: a
|
|
17
|
+
* journal is read on machines that did not write it, and an absolute path is
|
|
18
|
+
* at best noise and at worst an operator's home directory published into a
|
|
19
|
+
* run's history.
|
|
20
|
+
*
|
|
21
|
+
* @since 0.1.0
|
|
22
|
+
*/
|
|
23
|
+
import type { FlowRuntime } from "@smthrs/flow";
|
|
24
|
+
import { JournalEvent } from "@smthrs/journal";
|
|
25
|
+
/**
|
|
26
|
+
* Where the records of one run are addressed from.
|
|
27
|
+
*
|
|
28
|
+
* @since 0.1.0
|
|
29
|
+
* @category models
|
|
30
|
+
*/
|
|
31
|
+
export interface Scope {
|
|
32
|
+
readonly runId: string;
|
|
33
|
+
/** The host's journal source, which every record of this run hangs under. */
|
|
34
|
+
readonly sourceId: string;
|
|
35
|
+
readonly lineageId: string;
|
|
36
|
+
/**
|
|
37
|
+
* The directory a declaration path is made relative to, when one is known.
|
|
38
|
+
*
|
|
39
|
+
* `undefined` means no path is recorded at all. That is the honest answer
|
|
40
|
+
* for a host that cannot say where its sources live, and it is better than
|
|
41
|
+
* a path a reader would have to guess the meaning of.
|
|
42
|
+
*/
|
|
43
|
+
readonly root?: string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* The revision the sources those declaration paths point into were read
|
|
46
|
+
* at, when the host can name one.
|
|
47
|
+
*
|
|
48
|
+
* It lives here for the reason `root` does: a journal is read on machines
|
|
49
|
+
* that did not write it, and only the writer knows which tree it loaded.
|
|
50
|
+
* A path alone says where a node was declared and never which bytes were
|
|
51
|
+
* at that line, so a reader without this opens no code at all rather than
|
|
52
|
+
* whatever the working tree holds when they look (D-068).
|
|
53
|
+
*/
|
|
54
|
+
readonly sourceRevision?: string | undefined;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A declaration path as a journal may carry it: relative to the root, or
|
|
58
|
+
* nothing.
|
|
59
|
+
*
|
|
60
|
+
* The rule lives with the schema that refuses an absolute path
|
|
61
|
+
* (`@smthrs/journal`'s `EngineEvent.DeclaredAt`), so every writer of a
|
|
62
|
+
* declaration site obeys it the same way. It is named here because this is
|
|
63
|
+
* the module that applies it, and because the store's own tests are written
|
|
64
|
+
* against it.
|
|
65
|
+
*
|
|
66
|
+
* @since 0.1.0
|
|
67
|
+
* @category accessors
|
|
68
|
+
*/
|
|
69
|
+
export declare const relativePath: (root: string | undefined, path: string) => string | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* The directory declaration paths are recorded relative to.
|
|
72
|
+
*
|
|
73
|
+
* `process` is absent in a worker and in a browser, and a host that cannot
|
|
74
|
+
* name its own working directory records no declaration path at all rather
|
|
75
|
+
* than one a reader would have to guess the meaning of. `host` is the global
|
|
76
|
+
* object by default and is named here so both answers are reachable without
|
|
77
|
+
* taking the real one away from the runtime.
|
|
78
|
+
*
|
|
79
|
+
* @since 0.1.0
|
|
80
|
+
* @category accessors
|
|
81
|
+
*/
|
|
82
|
+
export declare const hostRoot: (explicit: string | undefined, host?: {
|
|
83
|
+
readonly process?: {
|
|
84
|
+
readonly cwd?: () => string;
|
|
85
|
+
} | undefined;
|
|
86
|
+
}) => string | undefined;
|
|
87
|
+
/**
|
|
88
|
+
* How many bytes of a node's settled value a journal row keeps.
|
|
89
|
+
*
|
|
90
|
+
* A node record is a small row beside the plan record's 12,000-byte page
|
|
91
|
+
* budget, and it is written once per node of every graph: a value kept whole
|
|
92
|
+
* would put an agent transcript in a permanent row and a projection would
|
|
93
|
+
* clip it without saying so. Two kibibytes is enough to read what a node
|
|
94
|
+
* produced and small enough that the settlement stays a summary.
|
|
95
|
+
*
|
|
96
|
+
* @since 0.1.0
|
|
97
|
+
* @category constants
|
|
98
|
+
*/
|
|
99
|
+
export declare const maximumResultBytes = 2048;
|
|
100
|
+
/**
|
|
101
|
+
* How large a settled value may be before it is summarized at all.
|
|
102
|
+
*
|
|
103
|
+
* Redacting a value rebuilds every member of it and runs the textual rules
|
|
104
|
+
* over every string, on the journal write path, for every node of every
|
|
105
|
+
* graph. Past this ceiling the walk is the cost rather than the row, and the
|
|
106
|
+
* honest answer is the size alone: the encoding is measured, `preview` is
|
|
107
|
+
* empty, and `truncated` says the text was cut to nothing. Anything below it
|
|
108
|
+
* is redacted whole and then cut.
|
|
109
|
+
*
|
|
110
|
+
* @since 0.1.0
|
|
111
|
+
* @category constants
|
|
112
|
+
*/
|
|
113
|
+
export declare const maximumSummarizedBytes = 65536;
|
|
114
|
+
/**
|
|
115
|
+
* What a node settled with, redacted and then bounded.
|
|
116
|
+
*
|
|
117
|
+
* REDACTION COMES FIRST. `Redaction.redact` is the journal's own write-path
|
|
118
|
+
* scrubber, and it is the one that reads a field NAME: `{ apiKey: "sk-..." }`
|
|
119
|
+
* is a credential because of the key, which no rule over encoded text can see
|
|
120
|
+
* once the value is a string inside a larger string. Running it over the
|
|
121
|
+
* decoded value also collapses cycles and names functions, so the encoding
|
|
122
|
+
* that follows always succeeds. Cutting the text first would be worse than
|
|
123
|
+
* useless: a credential split across the boundary is a credential the textual
|
|
124
|
+
* rules no longer recognise, and half of it would be kept.
|
|
125
|
+
*
|
|
126
|
+
* A value that will not encode even after redaction — a bigint, a value whose
|
|
127
|
+
* own `toJSON` throws — gets no summary at all rather than a fabricated one.
|
|
128
|
+
*
|
|
129
|
+
* `bytes` is the size of the encoding `preview` was cut from, which for a
|
|
130
|
+
* value past {@link maximumSummarizedBytes} is the value's own encoding: that
|
|
131
|
+
* branch keeps nothing, so there is no second number to disagree with.
|
|
132
|
+
*
|
|
133
|
+
* @since 0.1.0
|
|
134
|
+
* @category constructors
|
|
135
|
+
*/
|
|
136
|
+
export declare const resultSummary: (value: unknown) => {
|
|
137
|
+
readonly preview: string;
|
|
138
|
+
readonly bytes: number;
|
|
139
|
+
readonly truncated: boolean;
|
|
140
|
+
} | undefined;
|
|
141
|
+
/**
|
|
142
|
+
* The journal entry one node record is written as.
|
|
143
|
+
*
|
|
144
|
+
* @since 0.1.0
|
|
145
|
+
* @category constructors
|
|
146
|
+
*/
|
|
147
|
+
export declare const entry: (scope: Scope, record: FlowRuntime.NodeRecord) => JournalEvent.Input;
|
|
148
|
+
/**
|
|
149
|
+
* UTF-8 upper bound for the durable entry, including allocated envelope fields.
|
|
150
|
+
*
|
|
151
|
+
* Sequence/time reserve their largest JSON encodings so page boundaries never
|
|
152
|
+
* depend on the current journal position or clock, including after a resume.
|
|
153
|
+
* @since 1.0.0
|
|
154
|
+
* @category accessors
|
|
155
|
+
*/
|
|
156
|
+
export declare const encodedBytes: (scope: Scope, record: FlowRuntime.NodeRecord) => number;
|
|
157
|
+
//# sourceMappingURL=NodeJournal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeJournal.d.ts","sourceRoot":"","sources":["../../../src/internal/NodeJournal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAe,YAAY,EAAa,MAAM,iBAAiB,CAAA;AAItE;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC;;;;;;;;;OASG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC7C;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,gEAA2B,CAAA;AAapD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,GACnB,UAAU,MAAM,GAAG,SAAS,EAC5B,OAAM;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CAAe,KACpF,MAAM,GAAG,SAGX,CAAA;AAsBD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,OAAQ,CAAA;AAEvC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAA;AA2C5C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B,GAAG,SA2BH,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,KAAK,EAAE,QAAQ,WAAW,CAAC,UAAU,KAAG,YAAY,CAAC,KA0DjF,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,EAAE,QAAQ,WAAW,CAAC,UAAU,KAAG,MAc3E,CAAA"}
|