@smthrs/flow 0.0.0-stage → 1.0.0-rc.12
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 +161 -0
- package/LICENSE +21 -0
- package/README.md +212 -2
- package/THIRD_PARTY_NOTICES.md +52 -0
- package/dist/cjs/Action/Action.d.ts +250 -0
- package/dist/cjs/Action/Action.d.ts.map +1 -0
- package/dist/cjs/Action/Action.js +42 -0
- package/dist/cjs/Action/Action.js.map +7 -0
- package/dist/cjs/Action/AttemptTimedOut.d.ts +33 -0
- package/dist/cjs/Action/AttemptTimedOut.d.ts.map +1 -0
- package/dist/cjs/Action/AttemptTimedOut.js +51 -0
- package/dist/cjs/Action/AttemptTimedOut.js.map +7 -0
- package/dist/cjs/Action/BoundaryMode.d.ts +29 -0
- package/dist/cjs/Action/BoundaryMode.d.ts.map +1 -0
- package/dist/cjs/Action/BoundaryMode.js +36 -0
- package/dist/cjs/Action/BoundaryMode.js.map +7 -0
- package/dist/cjs/Action/CacheEnvironment.d.ts +158 -0
- package/dist/cjs/Action/CacheEnvironment.d.ts.map +1 -0
- package/dist/cjs/Action/CacheEnvironment.js +57 -0
- package/dist/cjs/Action/CacheEnvironment.js.map +7 -0
- package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts +34 -0
- package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
- package/dist/cjs/Action/ConcurrentKeylessDispatch.js +46 -0
- package/dist/cjs/Action/ConcurrentKeylessDispatch.js.map +7 -0
- package/dist/cjs/Action/Context.d.ts +131 -0
- package/dist/cjs/Action/Context.d.ts.map +1 -0
- package/dist/cjs/Action/Context.js +68 -0
- package/dist/cjs/Action/Context.js.map +7 -0
- package/dist/cjs/Action/DuplicateImplementation.d.ts +20 -0
- package/dist/cjs/Action/DuplicateImplementation.d.ts.map +1 -0
- package/dist/cjs/Action/DuplicateImplementation.js +46 -0
- package/dist/cjs/Action/DuplicateImplementation.js.map +7 -0
- package/dist/cjs/Action/FileBoundary.d.ts +59 -0
- package/dist/cjs/Action/FileBoundary.d.ts.map +1 -0
- package/dist/cjs/Action/FileBoundary.js +81 -0
- package/dist/cjs/Action/FileBoundary.js.map +7 -0
- package/dist/cjs/Action/FileInput.d.ts +28 -0
- package/dist/cjs/Action/FileInput.d.ts.map +1 -0
- package/dist/cjs/Action/FileInput.js +42 -0
- package/dist/cjs/Action/FileInput.js.map +7 -0
- package/dist/cjs/Action/Filegroup.d.ts +16 -0
- package/dist/cjs/Action/Filegroup.d.ts.map +1 -0
- package/dist/cjs/Action/Filegroup.js +27 -0
- package/dist/cjs/Action/Filegroup.js.map +7 -0
- package/dist/cjs/Action/Glob.d.ts +8 -0
- package/dist/cjs/Action/Glob.d.ts.map +1 -0
- package/dist/cjs/Action/Glob.js +28 -0
- package/dist/cjs/Action/Glob.js.map +7 -0
- package/dist/cjs/Action/ImplementationVersionMismatch.d.ts +26 -0
- package/dist/cjs/Action/ImplementationVersionMismatch.d.ts.map +1 -0
- package/dist/cjs/Action/ImplementationVersionMismatch.js +45 -0
- package/dist/cjs/Action/ImplementationVersionMismatch.js.map +7 -0
- package/dist/cjs/Action/Implementations.d.ts +114 -0
- package/dist/cjs/Action/Implementations.d.ts.map +1 -0
- package/dist/cjs/Action/Implementations.js +65 -0
- package/dist/cjs/Action/Implementations.js.map +7 -0
- package/dist/cjs/Action/InfraInterrupt.d.ts +26 -0
- package/dist/cjs/Action/InfraInterrupt.d.ts.map +1 -0
- package/dist/cjs/Action/InfraInterrupt.js +46 -0
- package/dist/cjs/Action/InfraInterrupt.js.map +7 -0
- package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
- package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
- package/dist/cjs/Action/InfraInterruptRetriesExhausted.js +54 -0
- package/dist/cjs/Action/InfraInterruptRetriesExhausted.js.map +7 -0
- package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
- package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
- package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js +47 -0
- package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +7 -0
- package/dist/cjs/Action/StepIdentity.d.ts +153 -0
- package/dist/cjs/Action/StepIdentity.d.ts.map +1 -0
- package/dist/cjs/Action/StepIdentity.js +75 -0
- package/dist/cjs/Action/StepIdentity.js.map +7 -0
- package/dist/cjs/Action/TreeArtifact.d.ts +8 -0
- package/dist/cjs/Action/TreeArtifact.d.ts.map +1 -0
- package/dist/cjs/Action/TreeArtifact.js +25 -0
- package/dist/cjs/Action/TreeArtifact.js.map +7 -0
- package/dist/cjs/Action/TypeId.d.ts +8 -0
- package/dist/cjs/Action/TypeId.d.ts.map +1 -0
- package/dist/cjs/Action/TypeId.js +25 -0
- package/dist/cjs/Action/TypeId.js.map +7 -0
- package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts +32 -0
- package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
- package/dist/cjs/Action/UncanonicalIdempotencyKey.js +51 -0
- package/dist/cjs/Action/UncanonicalIdempotencyKey.js.map +7 -0
- package/dist/cjs/Action/idempotencyKey.d.ts +21 -0
- package/dist/cjs/Action/idempotencyKey.d.ts.map +1 -0
- package/dist/cjs/Action/idempotencyKey.js +59 -0
- package/dist/cjs/Action/idempotencyKey.js.map +7 -0
- package/dist/cjs/Action/index.d.ts +29 -0
- package/dist/cjs/Action/index.d.ts.map +1 -0
- package/dist/cjs/Action/index.js +60 -0
- package/dist/cjs/Action/index.js.map +7 -0
- package/dist/cjs/Action/make.d.ts +128 -0
- package/dist/cjs/Action/make.d.ts.map +1 -0
- package/dist/cjs/Action/make.js +387 -0
- package/dist/cjs/Action/make.js.map +7 -0
- package/dist/cjs/Action/raceAll.d.ts +21 -0
- package/dist/cjs/Action/raceAll.d.ts.map +1 -0
- package/dist/cjs/Action/raceAll.js +46 -0
- package/dist/cjs/Action/raceAll.js.map +7 -0
- package/dist/cjs/Action/retry.d.ts +19 -0
- package/dist/cjs/Action/retry.d.ts.map +1 -0
- package/dist/cjs/Action/retry.js +75 -0
- package/dist/cjs/Action/retry.js.map +7 -0
- package/dist/cjs/Deadline.d.ts +110 -0
- package/dist/cjs/Deadline.d.ts.map +1 -0
- package/dist/cjs/Deadline.js +112 -0
- package/dist/cjs/Deadline.js.map +7 -0
- package/dist/cjs/DurableClock.d.ts +60 -0
- package/dist/cjs/DurableClock.d.ts.map +1 -0
- package/dist/cjs/DurableClock.js +107 -0
- package/dist/cjs/DurableClock.js.map +7 -0
- package/dist/cjs/DurableDeferred.d.ts +311 -0
- package/dist/cjs/DurableDeferred.d.ts.map +1 -0
- package/dist/cjs/DurableDeferred.js +322 -0
- package/dist/cjs/DurableDeferred.js.map +7 -0
- package/dist/cjs/DurableQueue.d.ts +160 -0
- package/dist/cjs/DurableQueue.d.ts.map +1 -0
- package/dist/cjs/DurableQueue.js +229 -0
- package/dist/cjs/DurableQueue.js.map +7 -0
- package/dist/cjs/ExternalJob.d.ts +179 -0
- package/dist/cjs/ExternalJob.d.ts.map +1 -0
- package/dist/cjs/ExternalJob.js +339 -0
- package/dist/cjs/ExternalJob.js.map +7 -0
- package/dist/cjs/Fault.d.ts +131 -0
- package/dist/cjs/Fault.d.ts.map +1 -0
- package/dist/cjs/Fault.js +157 -0
- package/dist/cjs/Fault.js.map +7 -0
- package/dist/cjs/Flow/Annotations.d.ts +245 -0
- package/dist/cjs/Flow/Annotations.d.ts.map +1 -0
- package/dist/cjs/Flow/Annotations.js +72 -0
- package/dist/cjs/Flow/Annotations.js.map +7 -0
- package/dist/cjs/Flow/CapabilityCeiling.d.ts +21 -0
- package/dist/cjs/Flow/CapabilityCeiling.d.ts.map +1 -0
- package/dist/cjs/Flow/CapabilityCeiling.js +49 -0
- package/dist/cjs/Flow/CapabilityCeiling.js.map +7 -0
- package/dist/cjs/Flow/DeadlineExceeded.d.ts +33 -0
- package/dist/cjs/Flow/DeadlineExceeded.d.ts.map +1 -0
- package/dist/cjs/Flow/DeadlineExceeded.js +52 -0
- package/dist/cjs/Flow/DeadlineExceeded.js.map +7 -0
- package/dist/cjs/Flow/ExecutionIdRequired.d.ts +25 -0
- package/dist/cjs/Flow/ExecutionIdRequired.d.ts.map +1 -0
- package/dist/cjs/Flow/ExecutionIdRequired.js +46 -0
- package/dist/cjs/Flow/ExecutionIdRequired.js.map +7 -0
- package/dist/cjs/Flow/ExecutionIds.d.ts +80 -0
- package/dist/cjs/Flow/ExecutionIds.d.ts.map +1 -0
- package/dist/cjs/Flow/ExecutionIds.js +66 -0
- package/dist/cjs/Flow/ExecutionIds.js.map +7 -0
- package/dist/cjs/Flow/Flow.d.ts +422 -0
- package/dist/cjs/Flow/Flow.d.ts.map +1 -0
- package/dist/cjs/Flow/Flow.js +17 -0
- package/dist/cjs/Flow/Flow.js.map +7 -0
- package/dist/cjs/Flow/MaxRoundsExceeded.d.ts +35 -0
- package/dist/cjs/Flow/MaxRoundsExceeded.d.ts.map +1 -0
- package/dist/cjs/Flow/MaxRoundsExceeded.js +50 -0
- package/dist/cjs/Flow/MaxRoundsExceeded.js.map +7 -0
- package/dist/cjs/Flow/Outcome.d.ts +162 -0
- package/dist/cjs/Flow/Outcome.d.ts.map +1 -0
- package/dist/cjs/Flow/Outcome.js +80 -0
- package/dist/cjs/Flow/Outcome.js.map +7 -0
- package/dist/cjs/Flow/Result.d.ts +186 -0
- package/dist/cjs/Flow/Result.d.ts.map +1 -0
- package/dist/cjs/Flow/Result.js +159 -0
- package/dist/cjs/Flow/Result.js.map +7 -0
- package/dist/cjs/Flow/Runtime.d.ts +98 -0
- package/dist/cjs/Flow/Runtime.d.ts.map +1 -0
- package/dist/cjs/Flow/Runtime.js +186 -0
- package/dist/cjs/Flow/Runtime.js.map +7 -0
- package/dist/cjs/Flow/TypeId.d.ts +8 -0
- package/dist/cjs/Flow/TypeId.d.ts.map +1 -0
- package/dist/cjs/Flow/TypeId.js +25 -0
- package/dist/cjs/Flow/TypeId.js.map +7 -0
- package/dist/cjs/Flow/index.d.ts +17 -0
- package/dist/cjs/Flow/index.d.ts.map +1 -0
- package/dist/cjs/Flow/index.js +29 -0
- package/dist/cjs/Flow/index.js.map +7 -0
- package/dist/cjs/Flow/internal.d.ts +34 -0
- package/dist/cjs/Flow/internal.d.ts.map +1 -0
- package/dist/cjs/Flow/internal.js +187 -0
- package/dist/cjs/Flow/internal.js.map +7 -0
- package/dist/cjs/Flow/make.d.ts +135 -0
- package/dist/cjs/Flow/make.d.ts.map +1 -0
- package/dist/cjs/Flow/make.js +107 -0
- package/dist/cjs/Flow/make.js.map +7 -0
- package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts +55 -0
- package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/CancelRequestFailed.js +51 -0
- package/dist/cjs/FlowRuntime/CancelRequestFailed.js.map +7 -0
- package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
- package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js +55 -0
- package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js.map +7 -0
- package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts +28 -0
- package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/FlowCycleDetected.js +49 -0
- package/dist/cjs/FlowRuntime/FlowCycleDetected.js.map +7 -0
- package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
- package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js +53 -0
- package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js.map +7 -0
- package/dist/cjs/FlowRuntime/FlowInstance.d.ts +115 -0
- package/dist/cjs/FlowRuntime/FlowInstance.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/FlowInstance.js +37 -0
- package/dist/cjs/FlowRuntime/FlowInstance.js.map +7 -0
- package/dist/cjs/FlowRuntime/FlowRuntime.d.ts +204 -0
- package/dist/cjs/FlowRuntime/FlowRuntime.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/FlowRuntime.js +37 -0
- package/dist/cjs/FlowRuntime/FlowRuntime.js.map +7 -0
- package/dist/cjs/FlowRuntime/NodeRecord.d.ts +177 -0
- package/dist/cjs/FlowRuntime/NodeRecord.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/NodeRecord.js +17 -0
- package/dist/cjs/FlowRuntime/NodeRecord.js.map +7 -0
- package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts +69 -0
- package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/WaitingAnnotation.js +53 -0
- package/dist/cjs/FlowRuntime/WaitingAnnotation.js.map +7 -0
- package/dist/cjs/FlowRuntime/index.d.ts +14 -0
- package/dist/cjs/FlowRuntime/index.d.ts.map +1 -0
- package/dist/cjs/FlowRuntime/index.js +26 -0
- package/dist/cjs/FlowRuntime/index.js.map +7 -0
- package/dist/cjs/Graph.d.ts +325 -0
- package/dist/cjs/Graph.d.ts.map +1 -0
- package/dist/cjs/Graph.js +1020 -0
- package/dist/cjs/Graph.js.map +7 -0
- package/dist/cjs/HumanTask.d.ts +442 -0
- package/dist/cjs/HumanTask.d.ts.map +1 -0
- package/dist/cjs/HumanTask.js +413 -0
- package/dist/cjs/HumanTask.js.map +7 -0
- package/dist/cjs/Interpreter.d.ts +223 -0
- package/dist/cjs/Interpreter.d.ts.map +1 -0
- package/dist/cjs/Interpreter.js +908 -0
- package/dist/cjs/Interpreter.js.map +7 -0
- package/dist/cjs/Poll.d.ts +240 -0
- package/dist/cjs/Poll.d.ts.map +1 -0
- package/dist/cjs/Poll.js +154 -0
- package/dist/cjs/Poll.js.map +7 -0
- package/dist/cjs/RetryPolicy.d.ts +273 -0
- package/dist/cjs/RetryPolicy.d.ts.map +1 -0
- package/dist/cjs/RetryPolicy.js +251 -0
- package/dist/cjs/RetryPolicy.js.map +7 -0
- package/dist/cjs/Sleep.d.ts +98 -0
- package/dist/cjs/Sleep.d.ts.map +1 -0
- package/dist/cjs/Sleep.js +141 -0
- package/dist/cjs/Sleep.js.map +7 -0
- package/dist/cjs/Stall.d.ts +173 -0
- package/dist/cjs/Stall.d.ts.map +1 -0
- package/dist/cjs/Stall.js +92 -0
- package/dist/cjs/Stall.js.map +7 -0
- package/dist/cjs/WaitFor.d.ts +109 -0
- package/dist/cjs/WaitFor.d.ts.map +1 -0
- package/dist/cjs/WaitFor.js +117 -0
- package/dist/cjs/WaitFor.js.map +7 -0
- package/dist/cjs/index.d.ts +107 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +69 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/internal/BoundedJson.d.ts +48 -0
- package/dist/cjs/internal/BoundedJson.d.ts.map +1 -0
- package/dist/cjs/internal/BoundedJson.js +96 -0
- package/dist/cjs/internal/BoundedJson.js.map +7 -0
- package/dist/cjs/internal/DeclarationSite.d.ts +135 -0
- package/dist/cjs/internal/DeclarationSite.d.ts.map +1 -0
- package/dist/cjs/internal/DeclarationSite.js +89 -0
- package/dist/cjs/internal/DeclarationSite.js.map +7 -0
- package/dist/cjs/internal/Declarations.d.ts +35 -0
- package/dist/cjs/internal/Declarations.d.ts.map +1 -0
- package/dist/cjs/internal/Declarations.js +50 -0
- package/dist/cjs/internal/Declarations.js.map +7 -0
- package/dist/cjs/internal/ExecutionMiddleware.d.ts +21 -0
- package/dist/cjs/internal/ExecutionMiddleware.d.ts.map +1 -0
- package/dist/cjs/internal/ExecutionMiddleware.js +39 -0
- package/dist/cjs/internal/ExecutionMiddleware.js.map +7 -0
- package/dist/cjs/internal/JsonSchemaSubset.d.ts +133 -0
- package/dist/cjs/internal/JsonSchemaSubset.d.ts.map +1 -0
- package/dist/cjs/internal/JsonSchemaSubset.js +229 -0
- package/dist/cjs/internal/JsonSchemaSubset.js.map +7 -0
- package/dist/cjs/internal/OutcomeMarker.d.ts +18 -0
- package/dist/cjs/internal/OutcomeMarker.d.ts.map +1 -0
- package/dist/cjs/internal/OutcomeMarker.js +27 -0
- package/dist/cjs/internal/OutcomeMarker.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/Action/Action.d.ts +250 -0
- package/dist/esm/Action/Action.d.ts.map +1 -0
- package/dist/esm/Action/Action.js +30 -0
- package/dist/esm/Action/Action.js.map +1 -0
- package/dist/esm/Action/AttemptTimedOut.d.ts +33 -0
- package/dist/esm/Action/AttemptTimedOut.d.ts.map +1 -0
- package/dist/esm/Action/AttemptTimedOut.js +32 -0
- package/dist/esm/Action/AttemptTimedOut.js.map +1 -0
- package/dist/esm/Action/BoundaryMode.d.ts +29 -0
- package/dist/esm/Action/BoundaryMode.d.ts.map +1 -0
- package/dist/esm/Action/BoundaryMode.js +23 -0
- package/dist/esm/Action/BoundaryMode.js.map +1 -0
- package/dist/esm/Action/CacheEnvironment.d.ts +158 -0
- package/dist/esm/Action/CacheEnvironment.d.ts.map +1 -0
- package/dist/esm/Action/CacheEnvironment.js +130 -0
- package/dist/esm/Action/CacheEnvironment.js.map +1 -0
- package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts +34 -0
- package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
- package/dist/esm/Action/ConcurrentKeylessDispatch.js +33 -0
- package/dist/esm/Action/ConcurrentKeylessDispatch.js.map +1 -0
- package/dist/esm/Action/Context.d.ts +131 -0
- package/dist/esm/Action/Context.d.ts.map +1 -0
- package/dist/esm/Action/Context.js +99 -0
- package/dist/esm/Action/Context.js.map +1 -0
- package/dist/esm/Action/DuplicateImplementation.d.ts +20 -0
- package/dist/esm/Action/DuplicateImplementation.d.ts.map +1 -0
- package/dist/esm/Action/DuplicateImplementation.js +20 -0
- package/dist/esm/Action/DuplicateImplementation.js.map +1 -0
- package/dist/esm/Action/FileBoundary.d.ts +59 -0
- package/dist/esm/Action/FileBoundary.d.ts.map +1 -0
- package/dist/esm/Action/FileBoundary.js +60 -0
- package/dist/esm/Action/FileBoundary.js.map +1 -0
- package/dist/esm/Action/FileInput.d.ts +28 -0
- package/dist/esm/Action/FileInput.d.ts.map +1 -0
- package/dist/esm/Action/FileInput.js +32 -0
- package/dist/esm/Action/FileInput.js.map +1 -0
- package/dist/esm/Action/Filegroup.d.ts +16 -0
- package/dist/esm/Action/Filegroup.d.ts.map +1 -0
- package/dist/esm/Action/Filegroup.js +15 -0
- package/dist/esm/Action/Filegroup.js.map +1 -0
- package/dist/esm/Action/Glob.d.ts +8 -0
- package/dist/esm/Action/Glob.d.ts.map +1 -0
- package/dist/esm/Action/Glob.js +7 -0
- package/dist/esm/Action/Glob.js.map +1 -0
- package/dist/esm/Action/ImplementationVersionMismatch.d.ts +26 -0
- package/dist/esm/Action/ImplementationVersionMismatch.d.ts.map +1 -0
- package/dist/esm/Action/ImplementationVersionMismatch.js +24 -0
- package/dist/esm/Action/ImplementationVersionMismatch.js.map +1 -0
- package/dist/esm/Action/Implementations.d.ts +114 -0
- package/dist/esm/Action/Implementations.d.ts.map +1 -0
- package/dist/esm/Action/Implementations.js +94 -0
- package/dist/esm/Action/Implementations.js.map +1 -0
- package/dist/esm/Action/InfraInterrupt.d.ts +26 -0
- package/dist/esm/Action/InfraInterrupt.d.ts.map +1 -0
- package/dist/esm/Action/InfraInterrupt.js +25 -0
- package/dist/esm/Action/InfraInterrupt.js.map +1 -0
- package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
- package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
- package/dist/esm/Action/InfraInterruptRetriesExhausted.js +32 -0
- package/dist/esm/Action/InfraInterruptRetriesExhausted.js.map +1 -0
- package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
- package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
- package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js +25 -0
- package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +1 -0
- package/dist/esm/Action/StepIdentity.d.ts +153 -0
- package/dist/esm/Action/StepIdentity.d.ts.map +1 -0
- package/dist/esm/Action/StepIdentity.js +139 -0
- package/dist/esm/Action/StepIdentity.js.map +1 -0
- package/dist/esm/Action/TreeArtifact.d.ts +8 -0
- package/dist/esm/Action/TreeArtifact.d.ts.map +1 -0
- package/dist/esm/Action/TreeArtifact.js +7 -0
- package/dist/esm/Action/TreeArtifact.js.map +1 -0
- package/dist/esm/Action/TypeId.d.ts +8 -0
- package/dist/esm/Action/TypeId.d.ts.map +1 -0
- package/dist/esm/Action/TypeId.js +9 -0
- package/dist/esm/Action/TypeId.js.map +1 -0
- package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts +32 -0
- package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
- package/dist/esm/Action/UncanonicalIdempotencyKey.js +31 -0
- package/dist/esm/Action/UncanonicalIdempotencyKey.js.map +1 -0
- package/dist/esm/Action/idempotencyKey.d.ts +21 -0
- package/dist/esm/Action/idempotencyKey.d.ts.map +1 -0
- package/dist/esm/Action/idempotencyKey.js +50 -0
- package/dist/esm/Action/idempotencyKey.js.map +1 -0
- package/dist/esm/Action/index.d.ts +29 -0
- package/dist/esm/Action/index.d.ts.map +1 -0
- package/dist/esm/Action/index.js +30 -0
- package/dist/esm/Action/index.js.map +1 -0
- package/dist/esm/Action/make.d.ts +128 -0
- package/dist/esm/Action/make.d.ts.map +1 -0
- package/dist/esm/Action/make.js +413 -0
- package/dist/esm/Action/make.js.map +1 -0
- package/dist/esm/Action/raceAll.d.ts +21 -0
- package/dist/esm/Action/raceAll.d.ts.map +1 -0
- package/dist/esm/Action/raceAll.js +20 -0
- package/dist/esm/Action/raceAll.js.map +1 -0
- package/dist/esm/Action/retry.d.ts +19 -0
- package/dist/esm/Action/retry.d.ts.map +1 -0
- package/dist/esm/Action/retry.js +72 -0
- package/dist/esm/Action/retry.js.map +1 -0
- package/dist/esm/Deadline.d.ts +110 -0
- package/dist/esm/Deadline.d.ts.map +1 -0
- package/dist/esm/Deadline.js +164 -0
- package/dist/esm/Deadline.js.map +1 -0
- package/dist/esm/DurableClock.d.ts +60 -0
- package/dist/esm/DurableClock.d.ts.map +1 -0
- package/dist/esm/DurableClock.js +122 -0
- package/dist/esm/DurableClock.js.map +1 -0
- package/dist/esm/DurableDeferred.d.ts +311 -0
- package/dist/esm/DurableDeferred.d.ts.map +1 -0
- package/dist/esm/DurableDeferred.js +357 -0
- package/dist/esm/DurableDeferred.js.map +1 -0
- package/dist/esm/DurableQueue.d.ts +160 -0
- package/dist/esm/DurableQueue.d.ts.map +1 -0
- package/dist/esm/DurableQueue.js +303 -0
- package/dist/esm/DurableQueue.js.map +1 -0
- package/dist/esm/ExternalJob.d.ts +179 -0
- package/dist/esm/ExternalJob.d.ts.map +1 -0
- package/dist/esm/ExternalJob.js +296 -0
- package/dist/esm/ExternalJob.js.map +1 -0
- package/dist/esm/Fault.d.ts +131 -0
- package/dist/esm/Fault.d.ts.map +1 -0
- package/dist/esm/Fault.js +198 -0
- package/dist/esm/Fault.js.map +1 -0
- package/dist/esm/Flow/Annotations.d.ts +245 -0
- package/dist/esm/Flow/Annotations.d.ts.map +1 -0
- package/dist/esm/Flow/Annotations.js +110 -0
- package/dist/esm/Flow/Annotations.js.map +1 -0
- package/dist/esm/Flow/CapabilityCeiling.d.ts +21 -0
- package/dist/esm/Flow/CapabilityCeiling.d.ts.map +1 -0
- package/dist/esm/Flow/CapabilityCeiling.js +27 -0
- package/dist/esm/Flow/CapabilityCeiling.js.map +1 -0
- package/dist/esm/Flow/DeadlineExceeded.d.ts +33 -0
- package/dist/esm/Flow/DeadlineExceeded.d.ts.map +1 -0
- package/dist/esm/Flow/DeadlineExceeded.js +34 -0
- package/dist/esm/Flow/DeadlineExceeded.js.map +1 -0
- package/dist/esm/Flow/ExecutionIdRequired.d.ts +25 -0
- package/dist/esm/Flow/ExecutionIdRequired.d.ts.map +1 -0
- package/dist/esm/Flow/ExecutionIdRequired.js +30 -0
- package/dist/esm/Flow/ExecutionIdRequired.js.map +1 -0
- package/dist/esm/Flow/ExecutionIds.d.ts +80 -0
- package/dist/esm/Flow/ExecutionIds.d.ts.map +1 -0
- package/dist/esm/Flow/ExecutionIds.js +91 -0
- package/dist/esm/Flow/ExecutionIds.js.map +1 -0
- package/dist/esm/Flow/Flow.d.ts +422 -0
- package/dist/esm/Flow/Flow.d.ts.map +1 -0
- package/dist/esm/Flow/Flow.js +3 -0
- package/dist/esm/Flow/Flow.js.map +1 -0
- package/dist/esm/Flow/MaxRoundsExceeded.d.ts +35 -0
- package/dist/esm/Flow/MaxRoundsExceeded.d.ts.map +1 -0
- package/dist/esm/Flow/MaxRoundsExceeded.js +34 -0
- package/dist/esm/Flow/MaxRoundsExceeded.js.map +1 -0
- package/dist/esm/Flow/Outcome.d.ts +162 -0
- package/dist/esm/Flow/Outcome.d.ts.map +1 -0
- package/dist/esm/Flow/Outcome.js +115 -0
- package/dist/esm/Flow/Outcome.js.map +1 -0
- package/dist/esm/Flow/Result.d.ts +186 -0
- package/dist/esm/Flow/Result.d.ts.map +1 -0
- package/dist/esm/Flow/Result.js +171 -0
- package/dist/esm/Flow/Result.js.map +1 -0
- package/dist/esm/Flow/Runtime.d.ts +98 -0
- package/dist/esm/Flow/Runtime.d.ts.map +1 -0
- package/dist/esm/Flow/Runtime.js +252 -0
- package/dist/esm/Flow/Runtime.js.map +1 -0
- package/dist/esm/Flow/TypeId.d.ts +8 -0
- package/dist/esm/Flow/TypeId.d.ts.map +1 -0
- package/dist/esm/Flow/TypeId.js +9 -0
- package/dist/esm/Flow/TypeId.js.map +1 -0
- package/dist/esm/Flow/index.d.ts +17 -0
- package/dist/esm/Flow/index.d.ts.map +1 -0
- package/dist/esm/Flow/index.js +18 -0
- package/dist/esm/Flow/index.js.map +1 -0
- package/dist/esm/Flow/internal.d.ts +34 -0
- package/dist/esm/Flow/internal.d.ts.map +1 -0
- package/dist/esm/Flow/internal.js +149 -0
- package/dist/esm/Flow/internal.js.map +1 -0
- package/dist/esm/Flow/make.d.ts +135 -0
- package/dist/esm/Flow/make.d.ts.map +1 -0
- package/dist/esm/Flow/make.js +111 -0
- package/dist/esm/Flow/make.js.map +1 -0
- package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts +55 -0
- package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/CancelRequestFailed.js +53 -0
- package/dist/esm/FlowRuntime/CancelRequestFailed.js.map +1 -0
- package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
- package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js +24 -0
- package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js.map +1 -0
- package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts +28 -0
- package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/FlowCycleDetected.js +35 -0
- package/dist/esm/FlowRuntime/FlowCycleDetected.js.map +1 -0
- package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
- package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/FlowExecutionNotFound.js +40 -0
- package/dist/esm/FlowRuntime/FlowExecutionNotFound.js.map +1 -0
- package/dist/esm/FlowRuntime/FlowInstance.d.ts +115 -0
- package/dist/esm/FlowRuntime/FlowInstance.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/FlowInstance.js +24 -0
- package/dist/esm/FlowRuntime/FlowInstance.js.map +1 -0
- package/dist/esm/FlowRuntime/FlowRuntime.d.ts +204 -0
- package/dist/esm/FlowRuntime/FlowRuntime.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/FlowRuntime.js +34 -0
- package/dist/esm/FlowRuntime/FlowRuntime.js.map +1 -0
- package/dist/esm/FlowRuntime/NodeRecord.d.ts +177 -0
- package/dist/esm/FlowRuntime/NodeRecord.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/NodeRecord.js +21 -0
- package/dist/esm/FlowRuntime/NodeRecord.js.map +1 -0
- package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts +69 -0
- package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/WaitingAnnotation.js +53 -0
- package/dist/esm/FlowRuntime/WaitingAnnotation.js.map +1 -0
- package/dist/esm/FlowRuntime/index.d.ts +14 -0
- package/dist/esm/FlowRuntime/index.d.ts.map +1 -0
- package/dist/esm/FlowRuntime/index.js +15 -0
- package/dist/esm/FlowRuntime/index.js.map +1 -0
- package/dist/esm/Graph.d.ts +325 -0
- package/dist/esm/Graph.d.ts.map +1 -0
- package/dist/esm/Graph.js +1485 -0
- package/dist/esm/Graph.js.map +1 -0
- package/dist/esm/HumanTask.d.ts +442 -0
- package/dist/esm/HumanTask.d.ts.map +1 -0
- package/dist/esm/HumanTask.js +798 -0
- package/dist/esm/HumanTask.js.map +1 -0
- package/dist/esm/Interpreter.d.ts +223 -0
- package/dist/esm/Interpreter.d.ts.map +1 -0
- package/dist/esm/Interpreter.js +1289 -0
- package/dist/esm/Interpreter.js.map +1 -0
- package/dist/esm/Poll.d.ts +240 -0
- package/dist/esm/Poll.d.ts.map +1 -0
- package/dist/esm/Poll.js +289 -0
- package/dist/esm/Poll.js.map +1 -0
- package/dist/esm/RetryPolicy.d.ts +273 -0
- package/dist/esm/RetryPolicy.d.ts.map +1 -0
- package/dist/esm/RetryPolicy.js +429 -0
- package/dist/esm/RetryPolicy.js.map +1 -0
- package/dist/esm/Sleep.d.ts +98 -0
- package/dist/esm/Sleep.d.ts.map +1 -0
- package/dist/esm/Sleep.js +256 -0
- package/dist/esm/Sleep.js.map +1 -0
- package/dist/esm/Stall.d.ts +173 -0
- package/dist/esm/Stall.d.ts.map +1 -0
- package/dist/esm/Stall.js +138 -0
- package/dist/esm/Stall.js.map +1 -0
- package/dist/esm/WaitFor.d.ts +109 -0
- package/dist/esm/WaitFor.d.ts.map +1 -0
- package/dist/esm/WaitFor.js +184 -0
- package/dist/esm/WaitFor.js.map +1 -0
- package/dist/esm/index.d.ts +107 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +108 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/BoundedJson.d.ts +48 -0
- package/dist/esm/internal/BoundedJson.d.ts.map +1 -0
- package/dist/esm/internal/BoundedJson.js +107 -0
- package/dist/esm/internal/BoundedJson.js.map +1 -0
- package/dist/esm/internal/DeclarationSite.d.ts +135 -0
- package/dist/esm/internal/DeclarationSite.d.ts.map +1 -0
- package/dist/esm/internal/DeclarationSite.js +196 -0
- package/dist/esm/internal/DeclarationSite.js.map +1 -0
- package/dist/esm/internal/Declarations.d.ts +35 -0
- package/dist/esm/internal/Declarations.d.ts.map +1 -0
- package/dist/esm/internal/Declarations.js +43 -0
- package/dist/esm/internal/Declarations.js.map +1 -0
- package/dist/esm/internal/ExecutionMiddleware.d.ts +21 -0
- package/dist/esm/internal/ExecutionMiddleware.d.ts.map +1 -0
- package/dist/esm/internal/ExecutionMiddleware.js +13 -0
- package/dist/esm/internal/ExecutionMiddleware.js.map +1 -0
- package/dist/esm/internal/JsonSchemaSubset.d.ts +133 -0
- package/dist/esm/internal/JsonSchemaSubset.d.ts.map +1 -0
- package/dist/esm/internal/JsonSchemaSubset.js +363 -0
- package/dist/esm/internal/JsonSchemaSubset.js.map +1 -0
- package/dist/esm/internal/OutcomeMarker.d.ts +18 -0
- package/dist/esm/internal/OutcomeMarker.d.ts.map +1 -0
- package/dist/esm/internal/OutcomeMarker.js +18 -0
- package/dist/esm/internal/OutcomeMarker.js.map +1 -0
- package/docs/README.md +152 -0
- package/docs/api.md +440 -0
- package/docs/concepts/bodies-and-plans.md +167 -0
- package/docs/concepts/execution-identity.md +142 -0
- package/docs/concepts/flows-and-actions.md +129 -0
- package/docs/concepts/suspension-and-replay.md +130 -0
- package/docs/concepts/the-runtime-port.md +110 -0
- package/docs/concepts/trampoline-rounds.md +151 -0
- package/docs/guides/ask-a-person.md +184 -0
- package/docs/guides/build-a-body.md +164 -0
- package/docs/guides/cancel-and-roll-back.md +112 -0
- package/docs/guides/implement-an-action.md +155 -0
- package/docs/guides/inspect-the-plan.md +235 -0
- package/docs/guides/poll-until-ready.md +169 -0
- package/docs/guides/queue-work-to-a-worker.md +122 -0
- package/docs/guides/retry-a-failing-action.md +243 -0
- package/docs/guides/reuse-a-recorded-result.md +129 -0
- package/docs/guides/run-a-child-flow.md +108 -0
- package/docs/guides/run-an-external-job.md +86 -0
- package/docs/guides/use-a-prompt.md +38 -0
- package/docs/guides/wait-for-a-deadline.md +141 -0
- package/docs/guides/wait-for-an-external-signal.md +151 -0
- package/docs/installation.md +87 -0
- package/docs/quickstart.md +164 -0
- package/docs/reference/flow.md +1835 -0
- package/docs/testing.md +157 -0
- package/docs/troubleshooting.md +286 -0
- package/package.json +327 -3
- package/src/Action/Action.ts +333 -0
- package/src/Action/AttemptTimedOut.ts +37 -0
- package/src/Action/BoundaryMode.ts +33 -0
- package/src/Action/CacheEnvironment.ts +170 -0
- package/src/Action/ConcurrentKeylessDispatch.ts +38 -0
- package/src/Action/Context.ts +156 -0
- package/src/Action/DuplicateImplementation.ts +24 -0
- package/src/Action/FileBoundary.ts +77 -0
- package/src/Action/FileInput.ts +42 -0
- package/src/Action/Filegroup.ts +16 -0
- package/src/Action/Glob.ts +8 -0
- package/src/Action/ImplementationVersionMismatch.ts +27 -0
- package/src/Action/Implementations.ts +149 -0
- package/src/Action/InfraInterrupt.ts +30 -0
- package/src/Action/InfraInterruptRetriesExhausted.ts +37 -0
- package/src/Action/IrreversibleRetryRequiresIdempotencyKey.ts +32 -0
- package/src/Action/StepIdentity.ts +219 -0
- package/src/Action/TreeArtifact.ts +8 -0
- package/src/Action/TypeId.ts +9 -0
- package/src/Action/UncanonicalIdempotencyKey.ts +36 -0
- package/src/Action/idempotencyKey.ts +67 -0
- package/src/Action/index.ts +31 -0
- package/src/Action/make.ts +671 -0
- package/src/Action/raceAll.ts +48 -0
- package/src/Action/retry.ts +92 -0
- package/src/Deadline.ts +201 -0
- package/src/DurableClock.ts +176 -0
- package/src/DurableDeferred.ts +753 -0
- package/src/DurableQueue.ts +519 -0
- package/src/ExternalJob.ts +437 -0
- package/src/Fault.ts +279 -0
- package/src/Flow/Annotations.ts +151 -0
- package/src/Flow/CapabilityCeiling.ts +37 -0
- package/src/Flow/DeadlineExceeded.ts +40 -0
- package/src/Flow/ExecutionIdRequired.ts +36 -0
- package/src/Flow/ExecutionIds.ts +133 -0
- package/src/Flow/Flow.ts +576 -0
- package/src/Flow/MaxRoundsExceeded.ts +39 -0
- package/src/Flow/Outcome.ts +179 -0
- package/src/Flow/Result.ts +284 -0
- package/src/Flow/Runtime.ts +339 -0
- package/src/Flow/TypeId.ts +9 -0
- package/src/Flow/index.ts +19 -0
- package/src/Flow/internal.ts +237 -0
- package/src/Flow/make.ts +285 -0
- package/src/FlowRuntime/CancelRequestFailed.ts +56 -0
- package/src/FlowRuntime/ExecutionIdentityConflict.ts +32 -0
- package/src/FlowRuntime/FlowCycleDetected.ts +41 -0
- package/src/FlowRuntime/FlowExecutionNotFound.ts +46 -0
- package/src/FlowRuntime/FlowInstance.ts +128 -0
- package/src/FlowRuntime/FlowRuntime.ts +339 -0
- package/src/FlowRuntime/NodeRecord.ts +185 -0
- package/src/FlowRuntime/WaitingAnnotation.ts +85 -0
- package/src/FlowRuntime/index.ts +17 -0
- package/src/Graph.ts +1865 -0
- package/src/HumanTask.ts +1007 -0
- package/src/Interpreter.ts +1620 -0
- package/src/Poll.ts +420 -0
- package/src/RetryPolicy.ts +550 -0
- package/src/Sleep.ts +296 -0
- package/src/Stall.ts +217 -0
- package/src/WaitFor.ts +228 -0
- package/src/index.ts +125 -0
- package/src/internal/BoundedJson.ts +109 -0
- package/src/internal/DeclarationSite.ts +214 -0
- package/src/internal/Declarations.ts +49 -0
- package/src/internal/ExecutionMiddleware.ts +29 -0
- package/src/internal/JsonSchemaSubset.ts +392 -0
- package/src/internal/OutcomeMarker.ts +19 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../../../src/Action/Action.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;GAIG;AAEH,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAO/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AASvC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;AAUhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;IACzC,MAAM,CAAC,MAAM;IACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;CAC1C,CAAC,CAAA","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Defines the schemas and interfaces of a durable action.\n *\n * @since 0.1.0\n */\n\nimport * as Effects from \"@smthrs/plan/Effects\"\nimport type * as Node from \"@smthrs/plan/Node\"\nimport type * as Planned from \"@smthrs/plan/Planned\"\nimport type * as Context from \"effect/Context\"\nimport type * as Crypto from \"effect/Crypto\"\nimport type * as Effect from \"effect/Effect\"\nimport type * as Layer from \"effect/Layer\"\nimport * as Schema from \"effect/Schema\"\nimport type { Scope } from \"effect/Scope\"\nimport type { AnyStructSchema } from \"../Flow/Flow.ts\"\nimport type { FlowInstance, FlowRuntime } from \"../FlowRuntime/index.ts\"\nimport type * as RetryPolicy from \"../RetryPolicy.ts\"\nimport type { FileBoundary } from \"./FileBoundary.ts\"\nimport type { Implementation } from \"./Implementations.ts\"\nimport type { TypeId } from \"./TypeId.ts\"\n\n/**\n * The durability and retry semantics of an action.\n *\n * The schema is `@smthrs/plan`'s `Effects.Tier`: an action's durability, a\n * declared envelope's ceiling and `KeyMaterial.kind` are the same three words,\n * and they are declared once.\n *\n * @category models\n * @since 0.1.0\n */\nexport const Tier = Effects.Tier\n\n/**\n * The durability and retry semantics of an action.\n *\n * @category models\n * @since 0.1.0\n */\nexport type Tier = Effects.Tier\n\n/**\n * Schema for caller-declared sealed action identity.\n *\n * @category models\n * @since 0.1.0\n */\nexport const IdempotencyKey = Schema.Union([\n Schema.String,\n Schema.Record(Schema.String, Schema.Json)\n])\n\n/**\n * Caller-declared sealed action identity.\n *\n * A string is namespaced by the action declaration. A JSON object is\n * caller-owned and remains stable across action renames. Runtime\n * environment and filesystem facts are always added by the engine. An explicit\n * implementation version is also separate engine key material; a caller-owned\n * object cannot mask it with a field of the same name.\n *\n * @category models\n * @since 0.1.0\n */\nexport type IdempotencyKey = typeof IdempotencyKey.Type\n\n/**\n * Recursively permits planned references wherever a declared action payload\n * accepts a concrete value.\n *\n * @category models\n * @since 0.1.0\n */\nexport type PlannedPayload<T> =\n | Planned.Planned<T>\n | ([T] extends [ReadonlyArray<infer Value>] ? ReadonlyArray<PlannedPayload<Value>>\n : [T] extends [object] ? { readonly [Key in keyof T]: PlannedPayload<T[Key]> }\n : T)\n\n/**\n * The requirement one declared action mints for itself, identified by its\n * tag.\n *\n * A declaration is data that travels everywhere and carries no code, so a body\n * that calls it names an implementation it does not hold. This type is that\n * \"does not hold\", stated to the compiler: `Charge.call(...)` produces a node\n * requiring `Requirement<\"payments/Charge\">`, `Charge.toLayer(...)` produces a\n * layer providing it, and `Flow.execute` is where the two have to meet. It is\n * phantom — nothing reads it, and nothing about planning, keying, or replay\n * changes with it.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Requirement<Tag extends string> {\n readonly _: unique symbol\n readonly _tag: Tag\n}\n\n/**\n * A named action declaration whose implementation is supplied separately\n * through a layer and whose calls only add nodes to a plan.\n *\n * `Requires` is what `.call()` puts in the requirement channel of the node it\n * records. It is this action's own {@link Requirement} for an ordinary\n * declaration, and `never` for a system declaration the engine itself\n * implements ({@link module:make.makeSystem}).\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Declared<\n Tag extends string,\n Payload extends AnyStructSchema,\n Success extends Schema.Top,\n Error extends Schema.Top,\n Requires = Requirement<Tag>\n> {\n readonly [TypeId]: typeof TypeId\n readonly name: Tag\n /**\n * Semantic implementation identity. Changing it requires a newly planned\n * execution; it is not an in-place upgrade of a persisted run. Canonical\n * composition requires it for sealed actions with an idempotency key.\n * Invocation-scoped actions may omit it; low-level keyed legacy callers\n * retain their old handler-reuse contract when it is absent.\n */\n readonly implementationVersion: string | undefined\n readonly payloadSchema: Payload\n readonly successSchema: Success\n readonly errorSchema: Error\n readonly tier: Tier\n readonly idempotencyKey: IdempotencyKey | ((payload: Payload[\"Type\"]) => IdempotencyKey) | undefined\n /** Allows multiple legitimate sealed results to race under one cache key. */\n readonly nondeterministic: true | undefined\n /** Durable retry policy applied to every implementation invocation. */\n readonly retryPolicy: RetryPolicy.RetryPolicy | undefined\n /** Milliseconds one attempt may run before it fails with `AttemptTimedOut`. */\n readonly attemptTimeoutMs: number | undefined\n /** Milliseconds one attempt may go without `Action.heartbeat` before it fails. */\n readonly heartbeatTimeoutMs: number | undefined\n /** Filesystem declaration, optionally derived from the decoded payload. */\n readonly fileBoundary: FileBoundary | ((payload: Payload[\"Type\"]) => FileBoundary) | undefined\n readonly annotations: Context.Context<never>\n /**\n * The context key this declaration's implementation is provided under, and\n * the identity behind {@link Requirement}.\n *\n * `toLayer` provides it; a composition that would rather hand the runtime an\n * implementation directly can provide it itself with `Layer.succeed`. Its\n * string key is derived from the action tag, so two declarations of one tag\n * name one slot.\n */\n readonly requirement: Context.Service<Requirement<Tag>, Implementation>\n annotate<I, S>(key: Context.Key<I, S>, value: S): Declared<Tag, Payload, Success, Error, Requires>\n annotateMerge<I>(annotations: Context.Context<I>): Declared<Tag, Payload, Success, Error, Requires>\n readonly call: (\n payload: PlannedPayload<Payload[\"~type.make.in\"]>\n ) => Node.Node<Success[\"Type\"], Error[\"Type\"], Requires>\n /**\n * Attaches the implementation and yields the layer that provides this\n * declaration's {@link Requirement}. A versioned declaration requires the\n * same `implementationVersion` here; a mismatch throws\n * `ImplementationVersionMismatch` before registration. The version must cover\n * handler semantics and semantic service/configuration changes, not merely a\n * package publication label. Source text is never inferred as that identity.\n *\n * Let inference name the returned layer's requirements. The requirement\n * channel is what a composition trusts: a layer type that under-declares it\n * still typechecks at `Effect.provide` and dies at runtime as a missing\n * service. A concrete hand annotation cannot lie — dropping a service from\n * it is a compile error — but a GENERIC one can: when the annotated\n * requirement union keeps a deferred member such as\n * `Output[\"DecodingServices\"]` (constrained only as `unknown` through\n * `Schema.Top`), TypeScript lets that member absorb every concrete service\n * the annotation dropped, and the drop compiles. A wrapper that must\n * annotate — a public interface naming its layer's type, say — therefore\n * pins the set at a concrete instantiation, where the check works again:\n *\n * ```ts\n * // Wrapped.layer is the wrapper's hand-annotated toLayer result, held\n * // here with every schema argument concrete.\n * type Needed = Layer.Services<typeof Wrapped.layer>\n * expectTypeOf<Meter extends Needed ? true : false>().toEqualTypeOf<true>()\n * ```\n */\n readonly toLayer: <R>(\n execute: (payload: Payload[\"Type\"]) => Effect.Effect<Success[\"Type\"], Error[\"Type\"], R>,\n options?: {\n readonly override?: boolean\n /** Must exactly match the declaration, including absence on legacy declarations. */\n readonly implementationVersion?: string | undefined\n }\n ) => Layer.Layer<\n Requires,\n never,\n | FlowRuntime\n | Exclude<R, FlowRuntime | FlowInstance | Scope>\n | Payload[\"DecodingServices\"]\n | Payload[\"EncodingServices\"]\n | Success[\"DecodingServices\"]\n | Success[\"EncodingServices\"]\n | Error[\"DecodingServices\"]\n | Error[\"EncodingServices\"]\n >\n}\n\n/**\n * Durable flow action that behaves as an `Effect` and records its name,\n * result schemas, annotations, and encoded execution form for the flow\n * engine.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Action<\n Success extends Schema.Constraint = Schema.Void,\n Error extends Schema.Constraint = Schema.Never,\n R = never\n> extends\n Effect.Effect<\n Success[\"Type\"],\n Error[\"Type\"],\n | Success[\"DecodingServices\"]\n | Error[\"DecodingServices\"]\n | R\n | Crypto.Crypto\n | FlowRuntime\n | FlowInstance\n >\n{\n readonly [TypeId]: typeof TypeId\n readonly name: string\n readonly implementationVersion?: string | undefined\n readonly successSchema: Success\n readonly errorSchema: Error\n readonly exitSchema: Schema.Exit<Success, Error, Schema.Defect>\n readonly exitSchemaPartial: Schema.Exit<Success, Error, Schema.Unknown>\n readonly annotations: Context.Context<never>\n readonly tier: Tier\n readonly idempotencyKey: IdempotencyKey | undefined\n /** Allows multiple legitimate sealed results to race under one cache key. */\n readonly nondeterministic: true | undefined\n readonly metadata: unknown\n /** Typed filesystem boundary used by the durable engine. */\n readonly fileBoundary: FileBoundary | undefined\n readonly retryPolicy: RetryPolicy.RetryPolicy | undefined\n /** Milliseconds one attempt may run before it fails with `AttemptTimedOut`. */\n readonly attemptTimeoutMs: number | undefined\n /** Milliseconds one attempt may go without `Action.heartbeat` before it fails. */\n readonly heartbeatTimeoutMs: number | undefined\n annotate<I, S>(\n key: Context.Key<I, S>,\n value: S\n ): Action<Success, Error, R>\n annotateMerge<I>(\n annotations: Context.Context<I>\n ): Action<Success, Error, R>\n readonly execute: Effect.Effect<\n Success[\"Type\"],\n Error[\"Type\"],\n | Success[\"DecodingServices\"]\n | Success[\"EncodingServices\"]\n | Error[\"DecodingServices\"]\n | Error[\"EncodingServices\"]\n | R\n | Crypto.Crypto\n | Scope\n | FlowRuntime\n | FlowInstance\n >\n readonly executeEncoded: Effect.Effect<\n unknown,\n unknown,\n | Success[\"DecodingServices\"]\n | Success[\"EncodingServices\"]\n | Error[\"DecodingServices\"]\n | Error[\"EncodingServices\"]\n | R\n | Crypto.Crypto\n | Scope\n | FlowRuntime\n | FlowInstance\n >\n}\n\n/**\n * Type-erased action shape for APIs that only need the action identity,\n * name, annotations, and encoded execution.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Any {\n readonly [TypeId]: typeof TypeId\n readonly name: string\n readonly implementationVersion?: string | undefined\n readonly executeEncoded: Effect.Effect<any, any, any>\n readonly annotations: Context.Context<never>\n readonly tier: Tier\n readonly idempotencyKey: IdempotencyKey | undefined\n readonly nondeterministic: true | undefined\n readonly metadata: unknown\n /** Typed filesystem boundary used by the durable engine. */\n readonly fileBoundary: FileBoundary | undefined\n readonly retryPolicy: RetryPolicy.RetryPolicy | undefined\n}\n\n/**\n * Type-erased action shape that also exposes success and error schemas for\n * derived flow APIs.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface AnyWithProps {\n readonly [TypeId]: typeof TypeId\n readonly name: string\n readonly implementationVersion?: string | undefined\n readonly successSchema: Schema.Top\n readonly errorSchema: Schema.Top\n readonly executeEncoded: Effect.Effect<any, any, any>\n readonly tier: Tier\n readonly idempotencyKey: IdempotencyKey | undefined\n readonly nondeterministic: true | undefined\n readonly metadata: unknown\n /** Typed filesystem boundary used by the durable engine. */\n readonly fileBoundary: FileBoundary | undefined\n readonly retryPolicy: RetryPolicy.RetryPolicy | undefined\n}\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines the defect an action attempt settles with when it outlives its
|
|
3
|
+
* declared `attemptTimeoutMs` or misses its `heartbeatTimeoutMs`.
|
|
4
|
+
*
|
|
5
|
+
* @since 1.0.0
|
|
6
|
+
*/
|
|
7
|
+
import * as Schema from "effect/Schema";
|
|
8
|
+
declare const AttemptTimedOut_base: Schema.Class<AttemptTimedOut, Schema.TaggedStruct<"@smthrs/flow/AttemptTimedOut", {
|
|
9
|
+
readonly code: Schema.withConstructorDefault<Schema.Literal<"attempt_timed_out">>;
|
|
10
|
+
readonly actionName: Schema.String;
|
|
11
|
+
readonly attempt: Schema.Number;
|
|
12
|
+
/** Which bound expired: the whole attempt, or the gap between heartbeats. */
|
|
13
|
+
readonly bound: Schema.Literals<readonly ["attempt", "heartbeat"]>;
|
|
14
|
+
readonly timeoutMs: Schema.Number;
|
|
15
|
+
readonly message: Schema.String;
|
|
16
|
+
}>, import("effect/Cause").YieldableError>;
|
|
17
|
+
/**
|
|
18
|
+
* One attempt of an action ran past a declared time bound and was
|
|
19
|
+
* interrupted.
|
|
20
|
+
*
|
|
21
|
+
* It is a defect rather than a typed failure because the bound belongs to the
|
|
22
|
+
* dispatch, not to the action's declared error channel. The engine's retry
|
|
23
|
+
* decision point still counts it as a retryable attempt failure under the
|
|
24
|
+
* action's `retryPolicy`, and a policy can refuse it by listing this tag in
|
|
25
|
+
* `nonRetryable`.
|
|
26
|
+
*
|
|
27
|
+
* @category errors
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
*/
|
|
30
|
+
export declare class AttemptTimedOut extends AttemptTimedOut_base {
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=AttemptTimedOut.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttemptTimedOut.d.ts","sourceRoot":"","sources":["../../../src/Action/AttemptTimedOut.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;IAuBnC,6EAA6E;;;;;AArBjF;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAgB,SAAQ,oBAapC;CAAG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines the defect an action attempt settles with when it outlives its
|
|
3
|
+
* declared `attemptTimeoutMs` or misses its `heartbeatTimeoutMs`.
|
|
4
|
+
*
|
|
5
|
+
* @since 1.0.0
|
|
6
|
+
*/
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import * as Schema from "effect/Schema";
|
|
9
|
+
/**
|
|
10
|
+
* One attempt of an action ran past a declared time bound and was
|
|
11
|
+
* interrupted.
|
|
12
|
+
*
|
|
13
|
+
* It is a defect rather than a typed failure because the bound belongs to the
|
|
14
|
+
* dispatch, not to the action's declared error channel. The engine's retry
|
|
15
|
+
* decision point still counts it as a retryable attempt failure under the
|
|
16
|
+
* action's `retryPolicy`, and a policy can refuse it by listing this tag in
|
|
17
|
+
* `nonRetryable`.
|
|
18
|
+
*
|
|
19
|
+
* @category errors
|
|
20
|
+
* @since 1.0.0
|
|
21
|
+
*/
|
|
22
|
+
export class AttemptTimedOut extends Schema.TaggedError()("@smthrs/flow/AttemptTimedOut", {
|
|
23
|
+
code: Schema.Literal("attempt_timed_out").pipe(Schema.withConstructorDefault(Effect.succeed("attempt_timed_out"))),
|
|
24
|
+
actionName: Schema.String,
|
|
25
|
+
attempt: Schema.Number,
|
|
26
|
+
/** Which bound expired: the whole attempt, or the gap between heartbeats. */
|
|
27
|
+
bound: Schema.Literals(["attempt", "heartbeat"]),
|
|
28
|
+
timeoutMs: Schema.Number,
|
|
29
|
+
message: Schema.String
|
|
30
|
+
}) {
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=AttemptTimedOut.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttemptTimedOut.js","sourceRoot":"","sources":["../../../src/Action/AttemptTimedOut.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,WAAW,EAAmB,CACxE,8BAA8B,EAC9B;IACE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAC5C,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CACnE;IACD,UAAU,EAAE,MAAM,CAAC,MAAM;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAChD,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG","sourcesContent":["/**\n * Defines the defect an action attempt settles with when it outlives its\n * declared `attemptTimeoutMs` or misses its `heartbeatTimeoutMs`.\n *\n * @since 1.0.0\n */\n\nimport * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\n\n/**\n * One attempt of an action ran past a declared time bound and was\n * interrupted.\n *\n * It is a defect rather than a typed failure because the bound belongs to the\n * dispatch, not to the action's declared error channel. The engine's retry\n * decision point still counts it as a retryable attempt failure under the\n * action's `retryPolicy`, and a policy can refuse it by listing this tag in\n * `nonRetryable`.\n *\n * @category errors\n * @since 1.0.0\n */\nexport class AttemptTimedOut extends Schema.TaggedError<AttemptTimedOut>()(\n \"@smthrs/flow/AttemptTimedOut\",\n {\n code: Schema.Literal(\"attempt_timed_out\").pipe(\n Schema.withConstructorDefault(Effect.succeed(\"attempt_timed_out\"))\n ),\n actionName: Schema.String,\n attempt: Schema.Number,\n /** Which bound expired: the whole attempt, or the gap between heartbeats. */\n bound: Schema.Literals([\"attempt\", \"heartbeat\"]),\n timeoutMs: Schema.Number,\n message: Schema.String\n }\n) {}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines filesystem boundary enforcement modes.
|
|
3
|
+
*
|
|
4
|
+
* The schema itself is `@smthrs/plan`'s `FileSet.BoundaryMode`, because the
|
|
5
|
+
* same two words are what a plan node's `effects.boundaryMode` carries. This
|
|
6
|
+
* module is the name an action reaches for; there is one declaration behind
|
|
7
|
+
* both.
|
|
8
|
+
*
|
|
9
|
+
* @since 0.1.0
|
|
10
|
+
*/
|
|
11
|
+
import * as FileSet from "@smthrs/plan/FileSet";
|
|
12
|
+
/**
|
|
13
|
+
* Schema for how strictly an action's filesystem boundary is enforced.
|
|
14
|
+
*
|
|
15
|
+
* `hard` rejects undeclared access. `expected` records access for validation
|
|
16
|
+
* after execution without requiring the sandbox to reject it immediately.
|
|
17
|
+
*
|
|
18
|
+
* @category models
|
|
19
|
+
* @since 0.1.0
|
|
20
|
+
*/
|
|
21
|
+
export declare const BoundaryMode: import("effect/Schema").Literals<readonly ["hard", "expected"]>;
|
|
22
|
+
/**
|
|
23
|
+
* How strictly an action's filesystem boundary is enforced.
|
|
24
|
+
*
|
|
25
|
+
* @category models
|
|
26
|
+
* @since 0.1.0
|
|
27
|
+
*/
|
|
28
|
+
export type BoundaryMode = FileSet.BoundaryMode;
|
|
29
|
+
//# sourceMappingURL=BoundaryMode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundaryMode.d.ts","sourceRoot":"","sources":["../../../src/Action/BoundaryMode.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,iEAAuB,CAAA;AAEhD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Deep reviewed and polished by a human on 2026-08-10.
|
|
2
|
+
/**
|
|
3
|
+
* Defines filesystem boundary enforcement modes.
|
|
4
|
+
*
|
|
5
|
+
* The schema itself is `@smthrs/plan`'s `FileSet.BoundaryMode`, because the
|
|
6
|
+
* same two words are what a plan node's `effects.boundaryMode` carries. This
|
|
7
|
+
* module is the name an action reaches for; there is one declaration behind
|
|
8
|
+
* both.
|
|
9
|
+
*
|
|
10
|
+
* @since 0.1.0
|
|
11
|
+
*/
|
|
12
|
+
import * as FileSet from "@smthrs/plan/FileSet";
|
|
13
|
+
/**
|
|
14
|
+
* Schema for how strictly an action's filesystem boundary is enforced.
|
|
15
|
+
*
|
|
16
|
+
* `hard` rejects undeclared access. `expected` records access for validation
|
|
17
|
+
* after execution without requiring the sandbox to reject it immediately.
|
|
18
|
+
*
|
|
19
|
+
* @category models
|
|
20
|
+
* @since 0.1.0
|
|
21
|
+
*/
|
|
22
|
+
export const BoundaryMode = FileSet.BoundaryMode;
|
|
23
|
+
//# sourceMappingURL=BoundaryMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundaryMode.js","sourceRoot":"","sources":["../../../src/Action/BoundaryMode.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;;;;;;GASG;AAEH,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Defines filesystem boundary enforcement modes.\n *\n * The schema itself is `@smthrs/plan`'s `FileSet.BoundaryMode`, because the\n * same two words are what a plan node's `effects.boundaryMode` carries. This\n * module is the name an action reaches for; there is one declaration behind\n * both.\n *\n * @since 0.1.0\n */\n\nimport * as FileSet from \"@smthrs/plan/FileSet\"\n\n/**\n * Schema for how strictly an action's filesystem boundary is enforced.\n *\n * `hard` rejects undeclared access. `expected` records access for validation\n * after execution without requiring the sandbox to reject it immediately.\n *\n * @category models\n * @since 0.1.0\n */\nexport const BoundaryMode = FileSet.BoundaryMode\n\n/**\n * How strictly an action's filesystem boundary is enforced.\n *\n * @category models\n * @since 0.1.0\n */\nexport type BoundaryMode = FileSet.BoundaryMode\n"]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The environment description folded into every cross-run cache key.
|
|
3
|
+
*
|
|
4
|
+
* A cached result is only reusable on a host that would have produced the same
|
|
5
|
+
* bytes, so the key has to name the environment as well as the inputs — the
|
|
6
|
+
* platform, the toolchain, and the capability groups in force. Bazel's action
|
|
7
|
+
* key does the same thing for the same reason.
|
|
8
|
+
*
|
|
9
|
+
* It is a *complete* value on purpose: an environment a composition cannot
|
|
10
|
+
* fully describe is one whose cache hits cannot be justified, and the engine
|
|
11
|
+
* executes rather than guessing at the missing part.
|
|
12
|
+
*
|
|
13
|
+
* @since 0.1.0
|
|
14
|
+
*/
|
|
15
|
+
import * as PlanCachePolicy from "@smthrs/plan/CachePolicy";
|
|
16
|
+
import * as Schema from "effect/Schema";
|
|
17
|
+
/**
|
|
18
|
+
* Complete runtime environment included in every cross-run cache key.
|
|
19
|
+
*
|
|
20
|
+
* If a composition cannot provide this complete value, the engine executes
|
|
21
|
+
* normally but does not derive a cross-run cache key.
|
|
22
|
+
*
|
|
23
|
+
* @category models
|
|
24
|
+
* @since 0.1.0
|
|
25
|
+
*/
|
|
26
|
+
export type CacheEnvironment = typeof CacheEnvironment.Type;
|
|
27
|
+
/**
|
|
28
|
+
* Schema for the complete runtime environment included in cache keys.
|
|
29
|
+
*
|
|
30
|
+
* @category models
|
|
31
|
+
* @since 0.1.0
|
|
32
|
+
*/
|
|
33
|
+
export declare const CacheEnvironment: Schema.Struct<{
|
|
34
|
+
/** Ordered semantic runtime layers, including versions and configuration. */
|
|
35
|
+
readonly layers: Schema.$Array<Schema.NonEmptyString>;
|
|
36
|
+
/** Complete effective capability groups. */
|
|
37
|
+
readonly capabilities: Schema.$Record<Schema.String, Schema.$Array<Schema.NonEmptyString>>;
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* How far a recorded sealed result may travel.
|
|
41
|
+
*
|
|
42
|
+
* `shared` is the content-addressed default: the key names the inputs and the
|
|
43
|
+
* environment, so any run on any host that would have produced the same bytes
|
|
44
|
+
* may reuse the row. `run` and `flow` narrow that on purpose — a step whose
|
|
45
|
+
* result is only meaningful inside one execution, or inside one flow, folds
|
|
46
|
+
* that identity into its key so a sibling never reads it.
|
|
47
|
+
*
|
|
48
|
+
* This is `@smthrs/plan`'s `CachePolicy.CacheScope`, the one scope vocabulary
|
|
49
|
+
* `@smthrs/patterns` also declares its policy with.
|
|
50
|
+
*
|
|
51
|
+
* @category models
|
|
52
|
+
* @since 0.1.0
|
|
53
|
+
*/
|
|
54
|
+
export declare const CacheScope: Schema.Literals<readonly ["run", "flow", "shared"]>;
|
|
55
|
+
/**
|
|
56
|
+
* How far a recorded sealed result may travel.
|
|
57
|
+
*
|
|
58
|
+
* @category models
|
|
59
|
+
* @since 0.1.0
|
|
60
|
+
*/
|
|
61
|
+
export type CacheScope = PlanCachePolicy.CacheScope;
|
|
62
|
+
/**
|
|
63
|
+
* The caller's declaration about the decay and the reach of a sealed action's
|
|
64
|
+
* recorded result.
|
|
65
|
+
*
|
|
66
|
+
* `ttlMs` bounds the age of a row the engine may serve: past it the dispatch
|
|
67
|
+
* executes again and journals `cache-expired`, so the refusal is durable
|
|
68
|
+
* evidence a replay reads rather than a fresh clock reading. `scope` decides
|
|
69
|
+
* what the key names besides the inputs.
|
|
70
|
+
*
|
|
71
|
+
* This is `@smthrs/plan`'s `CachePolicy.CachePolicy`, the one policy schema.
|
|
72
|
+
*
|
|
73
|
+
* @category schemas
|
|
74
|
+
* @since 0.1.0
|
|
75
|
+
*/
|
|
76
|
+
export declare const CachePolicy: Schema.Struct<{
|
|
77
|
+
readonly ttlMs: Schema.optionalKey<Schema.Int>;
|
|
78
|
+
readonly scope: Schema.optionalKey<Schema.Literals<readonly ["run", "flow", "shared"]>>;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* The caller's declaration about the decay and the reach of a sealed action's
|
|
82
|
+
* recorded result.
|
|
83
|
+
*
|
|
84
|
+
* @category models
|
|
85
|
+
* @since 0.1.0
|
|
86
|
+
*/
|
|
87
|
+
export type CachePolicy = PlanCachePolicy.CachePolicy;
|
|
88
|
+
/**
|
|
89
|
+
* Annotation key carrying a declaration's {@link CachePolicy}.
|
|
90
|
+
*
|
|
91
|
+
* It is an annotation, not a field on the action, for the same reason
|
|
92
|
+
* placement and effects are: the policy is data that travels with the
|
|
93
|
+
* declaration and is read by whoever executes it, and adding it changes no
|
|
94
|
+
* existing call site.
|
|
95
|
+
*
|
|
96
|
+
* It is `@smthrs/plan`'s `CachePolicy.CachePolicyAnnotation` itself, the same
|
|
97
|
+
* object `@smthrs/patterns` annotates a flow with, identified by
|
|
98
|
+
* `"@smthrs/flow/Action/CachePolicy"`.
|
|
99
|
+
*
|
|
100
|
+
* @category annotations
|
|
101
|
+
* @since 0.1.0
|
|
102
|
+
*/
|
|
103
|
+
export declare const CachePolicyAnnotation: import("effect/Context").Service<{
|
|
104
|
+
readonly ttlMs?: number;
|
|
105
|
+
readonly scope?: "run" | "flow" | "shared";
|
|
106
|
+
}, {
|
|
107
|
+
readonly ttlMs?: number;
|
|
108
|
+
readonly scope?: "run" | "flow" | "shared";
|
|
109
|
+
}>;
|
|
110
|
+
/**
|
|
111
|
+
* Reads the cache policy an annotation bag carries, or `undefined` when it
|
|
112
|
+
* carries none.
|
|
113
|
+
*
|
|
114
|
+
* @category getters
|
|
115
|
+
* @since 0.1.0
|
|
116
|
+
*/
|
|
117
|
+
export declare const cachePolicyOf: (annotations: import("effect/Context").Context<never>) => PlanCachePolicy.CachePolicy | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* Declares a cache policy on an action.
|
|
120
|
+
*
|
|
121
|
+
* This is the form the engine honors today: `@smthrs/engine-store` reads
|
|
122
|
+
* {@link CachePolicyAnnotation} off the dispatched action, bounds the age of
|
|
123
|
+
* the row it may serve by `ttlMs`, and narrows the address that row is stored
|
|
124
|
+
* under from `scope`. `@smthrs/patterns`' `WithCache` declares the same policy
|
|
125
|
+
* over a `@smthrs/core` flow under the same annotation key, for the
|
|
126
|
+
* declaration surface, so a policy written by either is read by the engine.
|
|
127
|
+
*
|
|
128
|
+
* The action is not mutated. `annotate` returns a new declaration carrying the
|
|
129
|
+
* policy, which is what a plan captures.
|
|
130
|
+
*
|
|
131
|
+
* It is `@smthrs/plan`'s `CachePolicy.annotate` under this package's name for
|
|
132
|
+
* it.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* import { Action } from "@smthrs/flow"
|
|
137
|
+
* import * as CacheEnvironment from "@smthrs/flow/CacheEnvironment"
|
|
138
|
+
* import * as Effect from "effect/Effect"
|
|
139
|
+
* import * as Schema from "effect/Schema"
|
|
140
|
+
*
|
|
141
|
+
* const compile = CacheEnvironment.withCache(
|
|
142
|
+
* Action.make({
|
|
143
|
+
* name: "build/compile",
|
|
144
|
+
* success: Schema.String,
|
|
145
|
+
* tier: "sealed",
|
|
146
|
+
* execute: Effect.succeed("dist/server.js")
|
|
147
|
+
* }),
|
|
148
|
+
* { ttlMs: 60_000, scope: "shared" }
|
|
149
|
+
* )
|
|
150
|
+
* ```
|
|
151
|
+
*
|
|
152
|
+
* @category combinators
|
|
153
|
+
* @since 0.1.0
|
|
154
|
+
*/
|
|
155
|
+
export declare const withCache: <A extends {
|
|
156
|
+
annotate: (key: typeof PlanCachePolicy.CachePolicyAnnotation, value: PlanCachePolicy.CachePolicy) => A;
|
|
157
|
+
}>(declaration: A, policy: PlanCachePolicy.CachePolicy) => A;
|
|
158
|
+
//# sourceMappingURL=CacheEnvironment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheEnvironment.d.ts","sourceRoot":"","sources":["../../../src/Action/CacheEnvironment.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAcvC;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;IAC3B,6EAA6E;;IAE7E,4CAA4C;;EAE5C,CAAA;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU,qDAA6B,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAA;AAEnD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW;;;EAA8B,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAA;AAErD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB;;;;;;EAAwC,CAAA;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,mGAAgC,CAAA;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,SAAS;;4DAA2B,CAAA"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// Deep reviewed and polished by a human on 2026-08-10.
|
|
2
|
+
/**
|
|
3
|
+
* The environment description folded into every cross-run cache key.
|
|
4
|
+
*
|
|
5
|
+
* A cached result is only reusable on a host that would have produced the same
|
|
6
|
+
* bytes, so the key has to name the environment as well as the inputs — the
|
|
7
|
+
* platform, the toolchain, and the capability groups in force. Bazel's action
|
|
8
|
+
* key does the same thing for the same reason.
|
|
9
|
+
*
|
|
10
|
+
* It is a *complete* value on purpose: an environment a composition cannot
|
|
11
|
+
* fully describe is one whose cache hits cannot be justified, and the engine
|
|
12
|
+
* executes rather than guessing at the missing part.
|
|
13
|
+
*
|
|
14
|
+
* @since 0.1.0
|
|
15
|
+
*/
|
|
16
|
+
import * as PlanCachePolicy from "@smthrs/plan/CachePolicy";
|
|
17
|
+
import * as Schema from "effect/Schema";
|
|
18
|
+
/**
|
|
19
|
+
* Validates named capability groups.
|
|
20
|
+
*
|
|
21
|
+
* @private
|
|
22
|
+
* @since 0.1.0
|
|
23
|
+
*/
|
|
24
|
+
const Capabilities = Schema.Record(Schema.String, Schema.Array(Schema.NonEmptyString)).check(Schema.makeFilter((capabilities) => Object.keys(capabilities).every((name) => name.length > 0) || "Capability names must not be empty"));
|
|
25
|
+
/**
|
|
26
|
+
* Schema for the complete runtime environment included in cache keys.
|
|
27
|
+
*
|
|
28
|
+
* @category models
|
|
29
|
+
* @since 0.1.0
|
|
30
|
+
*/
|
|
31
|
+
export const CacheEnvironment = Schema.Struct({
|
|
32
|
+
/** Ordered semantic runtime layers, including versions and configuration. */
|
|
33
|
+
layers: Schema.Array(Schema.NonEmptyString),
|
|
34
|
+
/** Complete effective capability groups. */
|
|
35
|
+
capabilities: Capabilities
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* How far a recorded sealed result may travel.
|
|
39
|
+
*
|
|
40
|
+
* `shared` is the content-addressed default: the key names the inputs and the
|
|
41
|
+
* environment, so any run on any host that would have produced the same bytes
|
|
42
|
+
* may reuse the row. `run` and `flow` narrow that on purpose — a step whose
|
|
43
|
+
* result is only meaningful inside one execution, or inside one flow, folds
|
|
44
|
+
* that identity into its key so a sibling never reads it.
|
|
45
|
+
*
|
|
46
|
+
* This is `@smthrs/plan`'s `CachePolicy.CacheScope`, the one scope vocabulary
|
|
47
|
+
* `@smthrs/patterns` also declares its policy with.
|
|
48
|
+
*
|
|
49
|
+
* @category models
|
|
50
|
+
* @since 0.1.0
|
|
51
|
+
*/
|
|
52
|
+
export const CacheScope = PlanCachePolicy.CacheScope;
|
|
53
|
+
/**
|
|
54
|
+
* The caller's declaration about the decay and the reach of a sealed action's
|
|
55
|
+
* recorded result.
|
|
56
|
+
*
|
|
57
|
+
* `ttlMs` bounds the age of a row the engine may serve: past it the dispatch
|
|
58
|
+
* executes again and journals `cache-expired`, so the refusal is durable
|
|
59
|
+
* evidence a replay reads rather than a fresh clock reading. `scope` decides
|
|
60
|
+
* what the key names besides the inputs.
|
|
61
|
+
*
|
|
62
|
+
* This is `@smthrs/plan`'s `CachePolicy.CachePolicy`, the one policy schema.
|
|
63
|
+
*
|
|
64
|
+
* @category schemas
|
|
65
|
+
* @since 0.1.0
|
|
66
|
+
*/
|
|
67
|
+
export const CachePolicy = PlanCachePolicy.CachePolicy;
|
|
68
|
+
/**
|
|
69
|
+
* Annotation key carrying a declaration's {@link CachePolicy}.
|
|
70
|
+
*
|
|
71
|
+
* It is an annotation, not a field on the action, for the same reason
|
|
72
|
+
* placement and effects are: the policy is data that travels with the
|
|
73
|
+
* declaration and is read by whoever executes it, and adding it changes no
|
|
74
|
+
* existing call site.
|
|
75
|
+
*
|
|
76
|
+
* It is `@smthrs/plan`'s `CachePolicy.CachePolicyAnnotation` itself, the same
|
|
77
|
+
* object `@smthrs/patterns` annotates a flow with, identified by
|
|
78
|
+
* `"@smthrs/flow/Action/CachePolicy"`.
|
|
79
|
+
*
|
|
80
|
+
* @category annotations
|
|
81
|
+
* @since 0.1.0
|
|
82
|
+
*/
|
|
83
|
+
export const CachePolicyAnnotation = PlanCachePolicy.CachePolicyAnnotation;
|
|
84
|
+
/**
|
|
85
|
+
* Reads the cache policy an annotation bag carries, or `undefined` when it
|
|
86
|
+
* carries none.
|
|
87
|
+
*
|
|
88
|
+
* @category getters
|
|
89
|
+
* @since 0.1.0
|
|
90
|
+
*/
|
|
91
|
+
export const cachePolicyOf = PlanCachePolicy.cachePolicyOf;
|
|
92
|
+
/**
|
|
93
|
+
* Declares a cache policy on an action.
|
|
94
|
+
*
|
|
95
|
+
* This is the form the engine honors today: `@smthrs/engine-store` reads
|
|
96
|
+
* {@link CachePolicyAnnotation} off the dispatched action, bounds the age of
|
|
97
|
+
* the row it may serve by `ttlMs`, and narrows the address that row is stored
|
|
98
|
+
* under from `scope`. `@smthrs/patterns`' `WithCache` declares the same policy
|
|
99
|
+
* over a `@smthrs/core` flow under the same annotation key, for the
|
|
100
|
+
* declaration surface, so a policy written by either is read by the engine.
|
|
101
|
+
*
|
|
102
|
+
* The action is not mutated. `annotate` returns a new declaration carrying the
|
|
103
|
+
* policy, which is what a plan captures.
|
|
104
|
+
*
|
|
105
|
+
* It is `@smthrs/plan`'s `CachePolicy.annotate` under this package's name for
|
|
106
|
+
* it.
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* import { Action } from "@smthrs/flow"
|
|
111
|
+
* import * as CacheEnvironment from "@smthrs/flow/CacheEnvironment"
|
|
112
|
+
* import * as Effect from "effect/Effect"
|
|
113
|
+
* import * as Schema from "effect/Schema"
|
|
114
|
+
*
|
|
115
|
+
* const compile = CacheEnvironment.withCache(
|
|
116
|
+
* Action.make({
|
|
117
|
+
* name: "build/compile",
|
|
118
|
+
* success: Schema.String,
|
|
119
|
+
* tier: "sealed",
|
|
120
|
+
* execute: Effect.succeed("dist/server.js")
|
|
121
|
+
* }),
|
|
122
|
+
* { ttlMs: 60_000, scope: "shared" }
|
|
123
|
+
* )
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
126
|
+
* @category combinators
|
|
127
|
+
* @since 0.1.0
|
|
128
|
+
*/
|
|
129
|
+
export const withCache = PlanCachePolicy.annotate;
|
|
130
|
+
//# sourceMappingURL=CacheEnvironment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheEnvironment.js","sourceRoot":"","sources":["../../../src/Action/CacheEnvironment.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;GAKG;AACH,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAC1F,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,EAAE,CACjC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,oCAAoC,CACnG,CACF,CAAA;AAaD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;IAC3C,4CAA4C;IAC5C,YAAY,EAAE,YAAY;CAC3B,CAAC,CAAA;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAA;AAUpD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAA;AAWtD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAC,qBAAqB,CAAA;AAE1E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC,aAAa,CAAA;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAA","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * The environment description folded into every cross-run cache key.\n *\n * A cached result is only reusable on a host that would have produced the same\n * bytes, so the key has to name the environment as well as the inputs — the\n * platform, the toolchain, and the capability groups in force. Bazel's action\n * key does the same thing for the same reason.\n *\n * It is a *complete* value on purpose: an environment a composition cannot\n * fully describe is one whose cache hits cannot be justified, and the engine\n * executes rather than guessing at the missing part.\n *\n * @since 0.1.0\n */\n\nimport * as PlanCachePolicy from \"@smthrs/plan/CachePolicy\"\nimport * as Schema from \"effect/Schema\"\n\n/**\n * Validates named capability groups.\n *\n * @private\n * @since 0.1.0\n */\nconst Capabilities = Schema.Record(Schema.String, Schema.Array(Schema.NonEmptyString)).check(\n Schema.makeFilter((capabilities) =>\n Object.keys(capabilities).every((name) => name.length > 0) || \"Capability names must not be empty\"\n )\n)\n\n/**\n * Complete runtime environment included in every cross-run cache key.\n *\n * If a composition cannot provide this complete value, the engine executes\n * normally but does not derive a cross-run cache key.\n *\n * @category models\n * @since 0.1.0\n */\nexport type CacheEnvironment = typeof CacheEnvironment.Type\n\n/**\n * Schema for the complete runtime environment included in cache keys.\n *\n * @category models\n * @since 0.1.0\n */\nexport const CacheEnvironment = Schema.Struct({\n /** Ordered semantic runtime layers, including versions and configuration. */\n layers: Schema.Array(Schema.NonEmptyString),\n /** Complete effective capability groups. */\n capabilities: Capabilities\n})\n\n/**\n * How far a recorded sealed result may travel.\n *\n * `shared` is the content-addressed default: the key names the inputs and the\n * environment, so any run on any host that would have produced the same bytes\n * may reuse the row. `run` and `flow` narrow that on purpose — a step whose\n * result is only meaningful inside one execution, or inside one flow, folds\n * that identity into its key so a sibling never reads it.\n *\n * This is `@smthrs/plan`'s `CachePolicy.CacheScope`, the one scope vocabulary\n * `@smthrs/patterns` also declares its policy with.\n *\n * @category models\n * @since 0.1.0\n */\nexport const CacheScope = PlanCachePolicy.CacheScope\n\n/**\n * How far a recorded sealed result may travel.\n *\n * @category models\n * @since 0.1.0\n */\nexport type CacheScope = PlanCachePolicy.CacheScope\n\n/**\n * The caller's declaration about the decay and the reach of a sealed action's\n * recorded result.\n *\n * `ttlMs` bounds the age of a row the engine may serve: past it the dispatch\n * executes again and journals `cache-expired`, so the refusal is durable\n * evidence a replay reads rather than a fresh clock reading. `scope` decides\n * what the key names besides the inputs.\n *\n * This is `@smthrs/plan`'s `CachePolicy.CachePolicy`, the one policy schema.\n *\n * @category schemas\n * @since 0.1.0\n */\nexport const CachePolicy = PlanCachePolicy.CachePolicy\n\n/**\n * The caller's declaration about the decay and the reach of a sealed action's\n * recorded result.\n *\n * @category models\n * @since 0.1.0\n */\nexport type CachePolicy = PlanCachePolicy.CachePolicy\n\n/**\n * Annotation key carrying a declaration's {@link CachePolicy}.\n *\n * It is an annotation, not a field on the action, for the same reason\n * placement and effects are: the policy is data that travels with the\n * declaration and is read by whoever executes it, and adding it changes no\n * existing call site.\n *\n * It is `@smthrs/plan`'s `CachePolicy.CachePolicyAnnotation` itself, the same\n * object `@smthrs/patterns` annotates a flow with, identified by\n * `\"@smthrs/flow/Action/CachePolicy\"`.\n *\n * @category annotations\n * @since 0.1.0\n */\nexport const CachePolicyAnnotation = PlanCachePolicy.CachePolicyAnnotation\n\n/**\n * Reads the cache policy an annotation bag carries, or `undefined` when it\n * carries none.\n *\n * @category getters\n * @since 0.1.0\n */\nexport const cachePolicyOf = PlanCachePolicy.cachePolicyOf\n\n/**\n * Declares a cache policy on an action.\n *\n * This is the form the engine honors today: `@smthrs/engine-store` reads\n * {@link CachePolicyAnnotation} off the dispatched action, bounds the age of\n * the row it may serve by `ttlMs`, and narrows the address that row is stored\n * under from `scope`. `@smthrs/patterns`' `WithCache` declares the same policy\n * over a `@smthrs/core` flow under the same annotation key, for the\n * declaration surface, so a policy written by either is read by the engine.\n *\n * The action is not mutated. `annotate` returns a new declaration carrying the\n * policy, which is what a plan captures.\n *\n * It is `@smthrs/plan`'s `CachePolicy.annotate` under this package's name for\n * it.\n *\n * @example\n * ```ts\n * import { Action } from \"@smthrs/flow\"\n * import * as CacheEnvironment from \"@smthrs/flow/CacheEnvironment\"\n * import * as Effect from \"effect/Effect\"\n * import * as Schema from \"effect/Schema\"\n *\n * const compile = CacheEnvironment.withCache(\n * Action.make({\n * name: \"build/compile\",\n * success: Schema.String,\n * tier: \"sealed\",\n * execute: Effect.succeed(\"dist/server.js\")\n * }),\n * { ttlMs: 60_000, scope: \"shared\" }\n * )\n * ```\n *\n * @category combinators\n * @since 0.1.0\n */\nexport const withCache = PlanCachePolicy.annotate\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines the `ConcurrentKeylessDispatch` action failure.
|
|
3
|
+
*
|
|
4
|
+
* The `_tag` string was settled under `@smthrs/flow/` for 1.0.0-rc.0. The RC
|
|
5
|
+
* makes no compatibility promise to 0.x journals, and the tag freezes when
|
|
6
|
+
* the RC ships.
|
|
7
|
+
*
|
|
8
|
+
* @since 0.1.0
|
|
9
|
+
*/
|
|
10
|
+
import * as Schema from "effect/Schema";
|
|
11
|
+
declare const ConcurrentKeylessDispatch_base: Schema.Class<ConcurrentKeylessDispatch, Schema.TaggedStruct<"@smthrs/flow/ConcurrentKeylessDispatch", {
|
|
12
|
+
readonly code: Schema.withConstructorDefault<Schema.Literal<"concurrent_keyless_dispatch">>;
|
|
13
|
+
readonly actionName: Schema.String;
|
|
14
|
+
}>, import("effect/Cause").YieldableError>;
|
|
15
|
+
/**
|
|
16
|
+
* Two ordinal-keyed invocations of one allocation scope were in flight
|
|
17
|
+
* concurrently, either keyless invocations of one declaration or same-key
|
|
18
|
+
* invocations at a non-sealed tier (issue #130), so their ordinals, and with
|
|
19
|
+
* them their step keys, attempt rows, and recorded outcomes, would be
|
|
20
|
+
* assigned by fiber arrival order. A crash-resume that replays the fibers in
|
|
21
|
+
* the opposite order would silently hand one invocation the other's recorded
|
|
22
|
+
* outcome (issue #111); Temporal fails such replays with a nondeterminism
|
|
23
|
+
* error, and the engine refuses the hazard up front instead of detecting it
|
|
24
|
+
* after the corruption. Declare an `idempotencyKey` *distinguishing* the
|
|
25
|
+
* invocations to dispatch them concurrently; a sealed action with a key
|
|
26
|
+
* takes a pure cache key and is exempt.
|
|
27
|
+
*
|
|
28
|
+
* @category errors
|
|
29
|
+
* @since 0.1.0
|
|
30
|
+
*/
|
|
31
|
+
export declare class ConcurrentKeylessDispatch extends ConcurrentKeylessDispatch_base {
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=ConcurrentKeylessDispatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConcurrentKeylessDispatch.d.ts","sourceRoot":"","sources":["../../../src/Action/ConcurrentKeylessDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,yBAA0B,SAAQ,8BAQ9C;CAAG"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines the `ConcurrentKeylessDispatch` action failure.
|
|
3
|
+
*
|
|
4
|
+
* The `_tag` string was settled under `@smthrs/flow/` for 1.0.0-rc.0. The RC
|
|
5
|
+
* makes no compatibility promise to 0.x journals, and the tag freezes when
|
|
6
|
+
* the RC ships.
|
|
7
|
+
*
|
|
8
|
+
* @since 0.1.0
|
|
9
|
+
*/
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import * as Schema from "effect/Schema";
|
|
12
|
+
/**
|
|
13
|
+
* Two ordinal-keyed invocations of one allocation scope were in flight
|
|
14
|
+
* concurrently, either keyless invocations of one declaration or same-key
|
|
15
|
+
* invocations at a non-sealed tier (issue #130), so their ordinals, and with
|
|
16
|
+
* them their step keys, attempt rows, and recorded outcomes, would be
|
|
17
|
+
* assigned by fiber arrival order. A crash-resume that replays the fibers in
|
|
18
|
+
* the opposite order would silently hand one invocation the other's recorded
|
|
19
|
+
* outcome (issue #111); Temporal fails such replays with a nondeterminism
|
|
20
|
+
* error, and the engine refuses the hazard up front instead of detecting it
|
|
21
|
+
* after the corruption. Declare an `idempotencyKey` *distinguishing* the
|
|
22
|
+
* invocations to dispatch them concurrently; a sealed action with a key
|
|
23
|
+
* takes a pure cache key and is exempt.
|
|
24
|
+
*
|
|
25
|
+
* @category errors
|
|
26
|
+
* @since 0.1.0
|
|
27
|
+
*/
|
|
28
|
+
export class ConcurrentKeylessDispatch extends Schema.TaggedError()("@smthrs/flow/ConcurrentKeylessDispatch", {
|
|
29
|
+
code: Schema.Literal("concurrent_keyless_dispatch").pipe(Schema.withConstructorDefault(Effect.succeed("concurrent_keyless_dispatch"))),
|
|
30
|
+
actionName: Schema.String
|
|
31
|
+
}) {
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ConcurrentKeylessDispatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConcurrentKeylessDispatch.js","sourceRoot":"","sources":["../../../src/Action/ConcurrentKeylessDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,yBAA0B,SAAQ,MAAM,CAAC,WAAW,EAA6B,CAC5F,wCAAwC,EACxC;IACE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,IAAI,CACtD,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAC7E;IACD,UAAU,EAAE,MAAM,CAAC,MAAM;CAC1B,CACF;CAAG","sourcesContent":["/**\n * Defines the `ConcurrentKeylessDispatch` action failure.\n *\n * The `_tag` string was settled under `@smthrs/flow/` for 1.0.0-rc.0. The RC\n * makes no compatibility promise to 0.x journals, and the tag freezes when\n * the RC ships.\n *\n * @since 0.1.0\n */\n\nimport * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\n\n/**\n * Two ordinal-keyed invocations of one allocation scope were in flight\n * concurrently, either keyless invocations of one declaration or same-key\n * invocations at a non-sealed tier (issue #130), so their ordinals, and with\n * them their step keys, attempt rows, and recorded outcomes, would be\n * assigned by fiber arrival order. A crash-resume that replays the fibers in\n * the opposite order would silently hand one invocation the other's recorded\n * outcome (issue #111); Temporal fails such replays with a nondeterminism\n * error, and the engine refuses the hazard up front instead of detecting it\n * after the corruption. Declare an `idempotencyKey` *distinguishing* the\n * invocations to dispatch them concurrently; a sealed action with a key\n * takes a pure cache key and is exempt.\n *\n * @category errors\n * @since 0.1.0\n */\nexport class ConcurrentKeylessDispatch extends Schema.TaggedError<ConcurrentKeylessDispatch>()(\n \"@smthrs/flow/ConcurrentKeylessDispatch\",\n {\n code: Schema.Literal(\"concurrent_keyless_dispatch\").pipe(\n Schema.withConstructorDefault(Effect.succeed(\"concurrent_keyless_dispatch\"))\n ),\n actionName: Schema.String\n }\n) {}\n"]}
|