@smthrs/flow 0.0.0-stage → 1.0.0-rc.13
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 +149 -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 +422 -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 +919 -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 +149 -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 +810 -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 +1301 -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 +299 -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 +1021 -0
- package/src/Interpreter.ts +1635 -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,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable external work as ordinary actions, handoffs and parked timers.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Node from "@smthrs/plan/Node";
|
|
7
|
+
import * as Cause from "effect/Cause";
|
|
8
|
+
import * as Clock from "effect/Clock";
|
|
9
|
+
import * as Context from "effect/Context";
|
|
10
|
+
import * as Duration from "effect/Duration";
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import * as Layer from "effect/Layer";
|
|
13
|
+
import * as Option from "effect/Option";
|
|
14
|
+
import * as Schema from "effect/Schema";
|
|
15
|
+
import * as Action from "./Action/index.js";
|
|
16
|
+
import * as Fault from "./Fault.js";
|
|
17
|
+
import * as Flow from "./Flow/index.js";
|
|
18
|
+
import { FlowInstance } from "./FlowRuntime/FlowInstance.js";
|
|
19
|
+
import { ExecutionMiddleware } from "./internal/ExecutionMiddleware.js";
|
|
20
|
+
import * as Interpreter from "./Interpreter.js";
|
|
21
|
+
import * as Sleep from "./Sleep.js";
|
|
22
|
+
/**
|
|
23
|
+
* External process observation.
|
|
24
|
+
* @category schemas
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
*/
|
|
27
|
+
export const Status = Schema.Union([
|
|
28
|
+
Schema.Struct({ _tag: Schema.Literal("Running") }),
|
|
29
|
+
Schema.Struct({ _tag: Schema.Literal("Exited"), exitCode: Schema.Int }),
|
|
30
|
+
Schema.Struct({ _tag: Schema.Literal("Lost") })
|
|
31
|
+
]);
|
|
32
|
+
/**
|
|
33
|
+
* A collected exit that can be replaced.
|
|
34
|
+
*
|
|
35
|
+
* @category errors
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
*/
|
|
38
|
+
export class Again extends Schema.TaggedError()("@smthrs/flow/ExternalJobAgain", { message: Schema.String }) {
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* No worker or exit receipt remains.
|
|
42
|
+
*
|
|
43
|
+
* @category errors
|
|
44
|
+
* @since 1.0.0
|
|
45
|
+
*/
|
|
46
|
+
export class ExternalJobLost extends Schema.TaggedError()("@smthrs/flow/ExternalJobLost", {
|
|
47
|
+
key: Schema.String,
|
|
48
|
+
message: Schema.String
|
|
49
|
+
}) {
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The deadline anchored before initial start elapsed.
|
|
53
|
+
*
|
|
54
|
+
* @category errors
|
|
55
|
+
* @since 1.0.0
|
|
56
|
+
*/
|
|
57
|
+
export class ExternalJobTimedOut extends Schema.TaggedError()("@smthrs/flow/ExternalJobTimedOut", {
|
|
58
|
+
key: Schema.String,
|
|
59
|
+
message: Schema.String
|
|
60
|
+
}) {
|
|
61
|
+
}
|
|
62
|
+
Fault.register("@smthrs/flow/ExternalJobLost", "infra");
|
|
63
|
+
Fault.register("@smthrs/flow/ExternalJobTimedOut", "dependency");
|
|
64
|
+
Fault.register("@smthrs/flow/ExternalJobAgain", "dependency");
|
|
65
|
+
const millis = (value, field) => {
|
|
66
|
+
const parsed = Duration.fromInput(value);
|
|
67
|
+
const result = Option.isSome(parsed) ? Duration.toMillis(parsed.value) : NaN;
|
|
68
|
+
if (!Number.isFinite(result) || result <= 0) {
|
|
69
|
+
throw new RangeError(`ExternalJob.make: ${field} must be a finite positive duration`);
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Create-or-get by execution id and generation. Private ordinary flows carry
|
|
75
|
+
* journaled state; initial callers cannot supply a key or continuation handle.
|
|
76
|
+
* `restarts` counts replacement generations; zero permits only g1.
|
|
77
|
+
* @category constructors
|
|
78
|
+
* @since 1.0.0
|
|
79
|
+
*/
|
|
80
|
+
export const make = (tag, options) => {
|
|
81
|
+
const every = millis(options.probe.every, "probe.every");
|
|
82
|
+
const maximum = millis(options.probe.max, "probe.max");
|
|
83
|
+
const timeout = millis(options.timeout, "timeout");
|
|
84
|
+
const restarts = options.restarts ?? 0;
|
|
85
|
+
if (maximum < every)
|
|
86
|
+
throw new RangeError("ExternalJob.make: probe.max must be at least probe.every");
|
|
87
|
+
if (!Number.isSafeInteger(restarts) || restarts < 0) {
|
|
88
|
+
throw new RangeError("ExternalJob.make: restarts must be a nonnegative safe integer");
|
|
89
|
+
}
|
|
90
|
+
// Erase field modifiers at nesting boundaries: these are required values,
|
|
91
|
+
// even when the author's schema contains optional fields internally.
|
|
92
|
+
const input = (Schema.isSchema(options.payload) ? options.payload : Schema.Struct(options.payload));
|
|
93
|
+
const handle = options.handle;
|
|
94
|
+
const providerError = (options.error ?? Schema.Never);
|
|
95
|
+
const failure = Schema.Union([providerError, ExternalJobLost, ExternalJobTimedOut, Sleep.SleepRequestInvalid]);
|
|
96
|
+
const state = Schema.Struct({
|
|
97
|
+
input,
|
|
98
|
+
origin: Schema.String,
|
|
99
|
+
startedAt: Schema.Number,
|
|
100
|
+
generation: Schema.Int,
|
|
101
|
+
probe: Schema.Int
|
|
102
|
+
});
|
|
103
|
+
const observed = Schema.Struct({ ...state.fields, handle });
|
|
104
|
+
const keyOf = (job) => `${job.origin}#g${job.generation}`;
|
|
105
|
+
const captures = { tag, every, maximum, timeout, restarts, version: "external-job/v1" };
|
|
106
|
+
const active = Context.Service(`${tag}/ExternalJobActive`);
|
|
107
|
+
// Registry tables wrap get() for module isolation but retain add(), the
|
|
108
|
+
// scoped registration owner. Anchor lifecycle bindings to that owner.
|
|
109
|
+
const cancellations = new WeakMap();
|
|
110
|
+
const annotations = Context.make(ExecutionMiddleware, {
|
|
111
|
+
wrap: (payload, body) => Effect.gen(function* () {
|
|
112
|
+
const instance = yield* FlowInstance;
|
|
113
|
+
const table = yield* Action.Implementations;
|
|
114
|
+
const cancel = cancellations.get(table.add);
|
|
115
|
+
if (cancel === undefined) {
|
|
116
|
+
return yield* Effect.die(new Interpreter.InterpreterError({
|
|
117
|
+
code: "unresolved_action",
|
|
118
|
+
flow: tag,
|
|
119
|
+
node: `${tag}/cancel`,
|
|
120
|
+
message: `ExternalJob ${tag} has no cancellation implementation; provide its toLayer`
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
const current = {
|
|
124
|
+
executionId: instance.executionId,
|
|
125
|
+
current: instance.flow._tag === `${tag}/observe`
|
|
126
|
+
? { handle: payload.handle, key: keyOf(payload) } :
|
|
127
|
+
undefined
|
|
128
|
+
};
|
|
129
|
+
yield* Flow.withRollback(Effect.succeed(current), (value, cause) => Cause.hasInterruptsOnly(cause) && !instance.interrupted && !instance.suspended || value.current === undefined
|
|
130
|
+
? Effect.void :
|
|
131
|
+
cancel(value.current.handle, value.current.key));
|
|
132
|
+
return yield* body.pipe(Effect.provideService(active, current));
|
|
133
|
+
})
|
|
134
|
+
});
|
|
135
|
+
const Initialize = Action.make(`${tag}/initialize`, { payload: { input }, success: state });
|
|
136
|
+
const Start = Action.make(`${tag}/start`, {
|
|
137
|
+
payload: state,
|
|
138
|
+
success: options.handle,
|
|
139
|
+
error: providerError,
|
|
140
|
+
tier: "irreversible",
|
|
141
|
+
idempotencyKey: keyOf
|
|
142
|
+
});
|
|
143
|
+
const Probe = Action.make(`${tag}/status`, {
|
|
144
|
+
payload: observed,
|
|
145
|
+
success: Schema.Struct({
|
|
146
|
+
status: Status,
|
|
147
|
+
timedOut: Schema.Boolean,
|
|
148
|
+
wakeAt: Schema.Number,
|
|
149
|
+
next: observed,
|
|
150
|
+
restart: state
|
|
151
|
+
}),
|
|
152
|
+
error: providerError,
|
|
153
|
+
implementationVersion: "external-job/status/v1",
|
|
154
|
+
effects: { reads: [], writes: [], mode: "expected", onConflict: "fail" },
|
|
155
|
+
tier: "sealed",
|
|
156
|
+
idempotencyKey: (job) => `${keyOf(job)}/probe/${job.probe}`
|
|
157
|
+
});
|
|
158
|
+
const Collect = Action.make(`${tag}/collect`, {
|
|
159
|
+
payload: { job: observed, exited: Schema.Struct({ _tag: Schema.Literal("Exited"), exitCode: Schema.Int }) },
|
|
160
|
+
success: options.success,
|
|
161
|
+
error: Schema.Union([providerError, Again]),
|
|
162
|
+
tier: "irreversible",
|
|
163
|
+
idempotencyKey: ({ job }) => `${keyOf(job)}/collect`
|
|
164
|
+
});
|
|
165
|
+
const Cancel = Action.make(`${tag}/cancel`, {
|
|
166
|
+
payload: observed,
|
|
167
|
+
success: Schema.Void,
|
|
168
|
+
tier: "irreversible",
|
|
169
|
+
idempotencyKey: (job) => `${keyOf(job)}/cancel`
|
|
170
|
+
});
|
|
171
|
+
const Fail = Action.make(`${tag}/fail`, {
|
|
172
|
+
payload: { job: observed, timedOut: Schema.Boolean },
|
|
173
|
+
success: Schema.Never,
|
|
174
|
+
error: Schema.Union([ExternalJobLost, ExternalJobTimedOut])
|
|
175
|
+
});
|
|
176
|
+
const Ready = Action.make(`${tag}/ready`, { payload: state, success: Schema.Boolean });
|
|
177
|
+
const LaunchFailure = Action.make(`${tag}/launch-timeout`, {
|
|
178
|
+
payload: state,
|
|
179
|
+
success: Schema.Never,
|
|
180
|
+
error: ExternalJobTimedOut
|
|
181
|
+
});
|
|
182
|
+
const launched = Node.capture(captures, (job) => Start.call(job).pipe(Node.bindPlanned(Node.capture(captures, (handle) => observe.to({
|
|
183
|
+
input: job.input,
|
|
184
|
+
origin: job.origin,
|
|
185
|
+
startedAt: job.startedAt,
|
|
186
|
+
generation: job.generation,
|
|
187
|
+
probe: job.probe,
|
|
188
|
+
handle
|
|
189
|
+
})))));
|
|
190
|
+
// Pin the declared union through recursive bodies: cross-package inference
|
|
191
|
+
// otherwise narrows the error schema to the provider-only generic E.
|
|
192
|
+
const launch = Flow.make(`${tag}/launch`, {
|
|
193
|
+
payload: state,
|
|
194
|
+
success: options.success,
|
|
195
|
+
error: failure,
|
|
196
|
+
annotations,
|
|
197
|
+
body: Node.capture(captures, (job) => Ready.call(job).pipe(Node.branch({
|
|
198
|
+
if: Node.capture(captures, (ready) => ready),
|
|
199
|
+
then: () => launched(job),
|
|
200
|
+
else: () => LaunchFailure.call(job)
|
|
201
|
+
})))
|
|
202
|
+
});
|
|
203
|
+
const recover = (job, result) => Cancel.call(job).pipe(Node.andThen(Node.succeed(job).pipe(Node.branch({
|
|
204
|
+
if: Node.capture(captures, (current) => current.generation <= restarts),
|
|
205
|
+
then: () => Sleep.action.call({ until: result.wakeAt }).pipe(Node.andThen(launch.to(result.restart))),
|
|
206
|
+
else: () => Fail.call({ job, timedOut: false })
|
|
207
|
+
}))));
|
|
208
|
+
const observe = Flow.make(`${tag}/observe`, {
|
|
209
|
+
payload: observed,
|
|
210
|
+
success: options.success,
|
|
211
|
+
error: failure,
|
|
212
|
+
annotations,
|
|
213
|
+
body: Node.capture(captures, (job) => Probe.call(job).pipe(Node.bindPlanned(Node.capture(captures, (result) => Node.succeed(result).pipe(Node.branch({
|
|
214
|
+
if: Node.capture(captures, (value) => value.timedOut),
|
|
215
|
+
then: () => Cancel.call(job).pipe(Node.andThen(Fail.call({ job, timedOut: true }))),
|
|
216
|
+
else: () => Node.succeed(result.status).pipe(Node.branch({
|
|
217
|
+
if: Node.capture(captures, (status) => status._tag === "Running"),
|
|
218
|
+
then: () => Sleep.action.call({ until: result.wakeAt }).pipe(Node.andThen(observe.to(result.next))),
|
|
219
|
+
else: (status) => Node.succeed(status).pipe(Node.branch({
|
|
220
|
+
if: Node.capture(captures, (value) => value._tag === "Lost"),
|
|
221
|
+
then: () => recover(job, result),
|
|
222
|
+
else: (exited) => Collect.call({ job, exited: exited }).pipe(Node.catch({ error: Schema.Struct(Again.fields), onFailure: () => recover(job, result) }))
|
|
223
|
+
}))
|
|
224
|
+
}))
|
|
225
|
+
}))))))
|
|
226
|
+
});
|
|
227
|
+
const flow = Flow.make(tag, {
|
|
228
|
+
payload: options.payload,
|
|
229
|
+
success: options.success,
|
|
230
|
+
error: failure,
|
|
231
|
+
annotations,
|
|
232
|
+
body: Node.capture(captures, (payload) => Initialize.call({ input: payload }).pipe(Node.bindPlanned(launched)))
|
|
233
|
+
});
|
|
234
|
+
const toLayer = (operations) => {
|
|
235
|
+
const bindCancellation = Layer.effectDiscard(Effect.gen(function* () {
|
|
236
|
+
const table = yield* Action.Implementations;
|
|
237
|
+
const context = yield* Effect.context();
|
|
238
|
+
const cancel = (handle, key) => operations.cancel(handle, key).pipe(Effect.provideContext(context));
|
|
239
|
+
cancellations.set(table.add, cancel);
|
|
240
|
+
yield* Effect.addFinalizer(() => Effect.sync(() => {
|
|
241
|
+
if (cancellations.get(table.add) === cancel)
|
|
242
|
+
cancellations.delete(table.add);
|
|
243
|
+
}));
|
|
244
|
+
}));
|
|
245
|
+
const interpreter = Layer.mergeAll(Interpreter.layer(flow), Interpreter.layer(launch), Interpreter.layer(observe));
|
|
246
|
+
const layer = Layer.mergeAll(interpreter, bindCancellation, Sleep.layer, Initialize.toLayer(({ input }) => Effect.gen(function* () {
|
|
247
|
+
const instance = yield* active;
|
|
248
|
+
return {
|
|
249
|
+
input,
|
|
250
|
+
origin: instance.executionId,
|
|
251
|
+
startedAt: Math.floor(yield* Clock.currentTimeMillis),
|
|
252
|
+
generation: 1,
|
|
253
|
+
probe: 1
|
|
254
|
+
};
|
|
255
|
+
})), Start.toLayer((job) => Effect.tap(operations.start(job.input, keyOf(job)), (handle) => Effect.map(active, (value) => {
|
|
256
|
+
value.current = { handle, key: keyOf(job) };
|
|
257
|
+
}))), Probe.toLayer((job) => Effect.gen(function* () {
|
|
258
|
+
let now = Math.floor(yield* Clock.currentTimeMillis);
|
|
259
|
+
const deadline = job.startedAt + timeout;
|
|
260
|
+
let timedOut = now >= deadline;
|
|
261
|
+
const status = timedOut ? { _tag: "Running" } : yield* Effect.raceFirst(operations.status(job.handle, keyOf(job)), Effect.sleep(deadline - now).pipe(Effect.as({ _tag: "Running" })));
|
|
262
|
+
now = Math.floor(yield* Clock.currentTimeMillis);
|
|
263
|
+
timedOut ||= now >= deadline;
|
|
264
|
+
const delay = Math.min(maximum, every * 2 ** Math.min(job.probe - 1, 1023));
|
|
265
|
+
return {
|
|
266
|
+
status,
|
|
267
|
+
timedOut,
|
|
268
|
+
wakeAt: Math.min(deadline, Math.ceil(now + delay)),
|
|
269
|
+
next: { ...job, probe: job.probe + 1 },
|
|
270
|
+
restart: {
|
|
271
|
+
input: job.input,
|
|
272
|
+
origin: job.origin,
|
|
273
|
+
startedAt: job.startedAt,
|
|
274
|
+
generation: job.generation + 1,
|
|
275
|
+
probe: 1
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
}), { implementationVersion: "external-job/status/v1" }), Collect.toLayer(({ exited, job }) => Effect.tap(operations.collect(job.handle, keyOf(job), exited), () => Effect.map(active, (value) => {
|
|
279
|
+
value.current = undefined;
|
|
280
|
+
}))), Cancel.toLayer((job) => Effect.tap(operations.cancel(job.handle, keyOf(job)), () => Effect.map(active, (value) => {
|
|
281
|
+
value.current = undefined;
|
|
282
|
+
}))), Fail.toLayer(({ job, timedOut }) => Effect.fail(timedOut
|
|
283
|
+
? new ExternalJobTimedOut({ key: keyOf(job), message: `Job ${keyOf(job)} timed out` })
|
|
284
|
+
: new ExternalJobLost({
|
|
285
|
+
key: keyOf(job),
|
|
286
|
+
message: `Job ${keyOf(job)} exhausted its replacement generations`
|
|
287
|
+
}))), Ready.toLayer((job) => Effect.map(Clock.currentTimeMillis, (now) => now < job.startedAt + timeout)), LaunchFailure.toLayer((job) => Effect.fail(new ExternalJobTimedOut({ key: keyOf(job), message: `Job ${keyOf(job)} timed out before replacement start` }))));
|
|
288
|
+
// Active is supplied by the execution middleware, never by the host.
|
|
289
|
+
return layer;
|
|
290
|
+
};
|
|
291
|
+
// A job requires its own execution scope and identity even when composed
|
|
292
|
+
// through call; reuse the existing child boundary rather than inline it.
|
|
293
|
+
const call = (payload) => flow.child(payload);
|
|
294
|
+
return Object.assign(flow, { call, toLayer });
|
|
295
|
+
};
|
|
296
|
+
//# sourceMappingURL=ExternalJob.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExternalJob.js","sourceRoot":"","sources":["../../src/ExternalJob.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Durable external work as ordinary actions, handoffs and parked timers.\n *\n * @since 1.0.0\n */\n\nimport * as Node from \"@smthrs/plan/Node\"\nimport * as Cause from \"effect/Cause\"\nimport * as Clock from \"effect/Clock\"\nimport * as Context from \"effect/Context\"\nimport * as Duration from \"effect/Duration\"\nimport * as Effect from \"effect/Effect\"\nimport * as Layer from \"effect/Layer\"\nimport * as Option from \"effect/Option\"\nimport * as Schema from \"effect/Schema\"\nimport * as Action from \"./Action/index.ts\"\nimport * as Fault from \"./Fault.ts\"\nimport * as Flow from \"./Flow/index.ts\"\nimport { FlowInstance } from \"./FlowRuntime/FlowInstance.ts\"\nimport { ExecutionMiddleware } from \"./internal/ExecutionMiddleware.ts\"\nimport * as Interpreter from \"./Interpreter.ts\"\nimport * as Sleep from \"./Sleep.ts\"\n\n/**\n * External process observation.\n * @category schemas\n * @since 1.0.0\n */\nexport const Status = Schema.Union([\n Schema.Struct({ _tag: Schema.Literal(\"Running\") }),\n Schema.Struct({ _tag: Schema.Literal(\"Exited\"), exitCode: Schema.Int }),\n Schema.Struct({ _tag: Schema.Literal(\"Lost\") })\n])\n/**\n * Decoded external process observation.\n * @category models\n * @since 1.0.0\n */\nexport type Status = typeof Status.Type\n/**\n * Decoded external process observation.\n * @category models\n * @since 1.0.0\n */\nexport type Exited = Extract<Status, { readonly _tag: \"Exited\" }>\n/**\n * A collected exit that can be replaced.\n *\n * @category errors\n * @since 1.0.0\n */\nexport class Again extends Schema.TaggedError<Again>()(\"@smthrs/flow/ExternalJobAgain\", { message: Schema.String }) {}\n/**\n * No worker or exit receipt remains.\n *\n * @category errors\n * @since 1.0.0\n */\nexport class ExternalJobLost extends Schema.TaggedError<ExternalJobLost>()(\"@smthrs/flow/ExternalJobLost\", {\n key: Schema.String,\n message: Schema.String\n}) {}\n/**\n * The deadline anchored before initial start elapsed.\n *\n * @category errors\n * @since 1.0.0\n */\nexport class ExternalJobTimedOut extends Schema.TaggedError<ExternalJobTimedOut>()(\"@smthrs/flow/ExternalJobTimedOut\", {\n key: Schema.String,\n message: Schema.String\n}) {}\nFault.register(\"@smthrs/flow/ExternalJobLost\", \"infra\")\nFault.register(\"@smthrs/flow/ExternalJobTimedOut\", \"dependency\")\nFault.register(\"@smthrs/flow/ExternalJobAgain\", \"dependency\")\n\nconst millis = (value: Duration.Input, field: string): number => {\n const parsed = Duration.fromInput(value)\n const result = Option.isSome(parsed) ? Duration.toMillis(parsed.value) : NaN\n if (!Number.isFinite(result) || result <= 0) {\n throw new RangeError(`ExternalJob.make: ${field} must be a finite positive duration`)\n }\n return result\n}\n/**\n * The adapter's full typed failure union belongs in make's error schema.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Operations<P, H, A, E, R> {\n readonly start: (payload: P, key: string) => Effect.Effect<H, E, R>\n readonly status: (handle: H, key: string) => Effect.Effect<Status, E, R>\n readonly collect: (handle: H, key: string, exited: Exited) => Effect.Effect<A, E | Again, R>\n readonly cancel: (handle: H, key: string) => Effect.Effect<void, never, R>\n}\n\n/**\n * Create-or-get by execution id and generation. Private ordinary flows carry\n * journaled state; initial callers cannot supply a key or continuation handle.\n * `restarts` counts replacement generations; zero permits only g1.\n * @category constructors\n * @since 1.0.0\n */\nexport const make = <\n const Tag extends string,\n P extends Schema.Struct.Fields | Flow.AnyStructSchema,\n H extends Schema.Top,\n A extends Schema.Top,\n E extends Schema.Top = typeof Schema.Never\n>(tag: Tag, options: {\n readonly payload: P\n readonly handle: H\n readonly success: A\n readonly error?: E\n readonly probe: { readonly every: Duration.Input; readonly max: Duration.Input }\n readonly timeout: Duration.Input\n readonly restarts?: number\n}) => {\n const every = millis(options.probe.every, \"probe.every\")\n const maximum = millis(options.probe.max, \"probe.max\")\n const timeout = millis(options.timeout, \"timeout\")\n const restarts = options.restarts ?? 0\n if (maximum < every) throw new RangeError(\"ExternalJob.make: probe.max must be at least probe.every\")\n if (!Number.isSafeInteger(restarts) || restarts < 0) {\n throw new RangeError(\"ExternalJob.make: restarts must be a nonnegative safe integer\")\n }\n type Input = P extends Schema.Struct.Fields ? Schema.Struct<P> : P\n // Erase field modifiers at nesting boundaries: these are required values,\n // even when the author's schema contains optional fields internally.\n const input =\n (Schema.isSchema(options.payload) ? options.payload : Schema.Struct(options.payload)) as unknown as Schema.Codec<\n Input[\"Type\"],\n Input[\"Encoded\"],\n Input[\"DecodingServices\"],\n Input[\"EncodingServices\"]\n >\n const handle = options.handle as Schema.Codec<H[\"Type\"], H[\"Encoded\"], H[\"DecodingServices\"], H[\"EncodingServices\"]>\n const providerError = (options.error ?? Schema.Never) as E\n const failure = Schema.Union([providerError, ExternalJobLost, ExternalJobTimedOut, Sleep.SleepRequestInvalid])\n const state = Schema.Struct({\n input,\n origin: Schema.String,\n startedAt: Schema.Number,\n generation: Schema.Int,\n probe: Schema.Int\n })\n const observed = Schema.Struct({ ...state.fields, handle })\n type State = typeof state.Type\n type Observed = typeof observed.Type\n const keyOf = (job: { readonly origin: string; readonly generation: number }) => `${job.origin}#g${job.generation}`\n const captures = { tag, every, maximum, timeout, restarts, version: \"external-job/v1\" }\n type Active = { executionId: string; current: { handle: H[\"Type\"]; key: string } | undefined }\n const active = Context.Service<Active>(`${tag}/ExternalJobActive`)\n // Registry tables wrap get() for module isolation but retain add(), the\n // scoped registration owner. Anchor lifecycle bindings to that owner.\n const cancellations = new WeakMap<object, (handle: H[\"Type\"], key: string) => Effect.Effect<void>>()\n const annotations = Context.make(ExecutionMiddleware, {\n wrap: (payload, body) =>\n Effect.gen(function*() {\n const instance = yield* FlowInstance\n const table = yield* Action.Implementations\n const cancel = cancellations.get(table.add)\n if (cancel === undefined) {\n return yield* Effect.die(\n new Interpreter.InterpreterError({\n code: \"unresolved_action\",\n flow: tag,\n node: `${tag}/cancel`,\n message: `ExternalJob ${tag} has no cancellation implementation; provide its toLayer`\n })\n )\n }\n const current: Active = {\n executionId: instance.executionId,\n current: instance.flow._tag === `${tag}/observe`\n ? { handle: (payload as Observed).handle, key: keyOf(payload as Observed) } :\n undefined\n }\n yield* Flow.withRollback(Effect.succeed(current), (value, cause) =>\n Cause.hasInterruptsOnly(cause) && !instance.interrupted && !instance.suspended || value.current === undefined\n ? Effect.void :\n cancel(value.current.handle, value.current.key))\n return yield* body.pipe(Effect.provideService(active, current))\n })\n })\n const Initialize = Action.make(`${tag}/initialize`, { payload: { input }, success: state })\n const Start = Action.make(`${tag}/start`, {\n payload: state,\n success: options.handle,\n error: providerError,\n tier: \"irreversible\",\n idempotencyKey: keyOf\n })\n const Probe = Action.make(`${tag}/status`, {\n payload: observed,\n success: Schema.Struct({\n status: Status,\n timedOut: Schema.Boolean,\n wakeAt: Schema.Number,\n next: observed,\n restart: state\n }),\n error: providerError,\n implementationVersion: \"external-job/status/v1\",\n effects: { reads: [], writes: [], mode: \"expected\", onConflict: \"fail\" },\n tier: \"sealed\",\n idempotencyKey: (job) => `${keyOf(job)}/probe/${job.probe}`\n })\n const Collect = Action.make(`${tag}/collect`, {\n payload: { job: observed, exited: Schema.Struct({ _tag: Schema.Literal(\"Exited\"), exitCode: Schema.Int }) },\n success: options.success,\n error: Schema.Union([providerError, Again]),\n tier: \"irreversible\",\n idempotencyKey: ({ job }) => `${keyOf(job)}/collect`\n })\n const Cancel = Action.make(`${tag}/cancel`, {\n payload: observed,\n success: Schema.Void,\n tier: \"irreversible\",\n idempotencyKey: (job) => `${keyOf(job)}/cancel`\n })\n const Fail = Action.make(`${tag}/fail`, {\n payload: { job: observed, timedOut: Schema.Boolean },\n success: Schema.Never,\n error: Schema.Union([ExternalJobLost, ExternalJobTimedOut])\n })\n const Ready = Action.make(`${tag}/ready`, { payload: state, success: Schema.Boolean })\n const LaunchFailure = Action.make(`${tag}/launch-timeout`, {\n payload: state,\n success: Schema.Never,\n error: ExternalJobTimedOut\n })\n const launched = Node.capture(\n captures,\n (job: State | Action.PlannedPayload<State>) =>\n Start.call(job as Action.PlannedPayload<State>).pipe(\n Node.bindPlanned(Node.capture(captures, (handle: Action.PlannedPayload<H[\"Type\"]>) =>\n observe.to({\n input: job.input,\n origin: job.origin,\n startedAt: job.startedAt,\n generation: job.generation,\n probe: job.probe,\n handle\n })))\n )\n )\n // Pin the declared union through recursive bodies: cross-package inference\n // otherwise narrows the error schema to the provider-only generic E.\n const launch: Flow.Flow<string, typeof state, A, typeof failure, Action.Requirement<string>> = Flow.make<\n `${Tag}/launch`,\n typeof state,\n A,\n typeof failure,\n Action.Requirement<string>\n >(\n `${tag}/launch`,\n {\n payload: state,\n success: options.success,\n error: failure,\n annotations,\n body: Node.capture(\n captures,\n (job) =>\n Ready.call(job).pipe(Node.branch({\n if: Node.capture(captures, (ready) => ready),\n then: () => launched(job),\n else: () => LaunchFailure.call(job)\n }))\n )\n }\n )\n const recover = (job: Observed, result: Action.PlannedPayload<{ restart: State; wakeAt: number }>) =>\n Cancel.call(job).pipe(Node.andThen(\n Node.succeed(job).pipe(Node.branch({\n if: Node.capture(captures, (current) => current.generation <= restarts),\n then: () => Sleep.action.call({ until: result.wakeAt }).pipe(Node.andThen(launch.to(result.restart))),\n else: () => Fail.call({ job, timedOut: false })\n }))\n ))\n const observe: Flow.Flow<string, typeof observed, A, typeof failure, Action.Requirement<string>> = Flow.make<\n `${Tag}/observe`,\n typeof observed,\n A,\n typeof failure,\n Action.Requirement<string>\n >(\n `${tag}/observe`,\n {\n payload: observed,\n success: options.success,\n error: failure,\n annotations,\n body: Node.capture(\n captures,\n (job) =>\n Probe.call(job).pipe(\n Node.bindPlanned(Node.capture(captures, (result: Action.PlannedPayload<typeof Probe.successSchema.Type>) =>\n Node.succeed(result).pipe(Node.branch({\n if: Node.capture(captures, (value) =>\n value.timedOut),\n then: () =>\n Cancel.call(job).pipe(Node.andThen(Fail.call({ job, timedOut: true }))),\n else: () =>\n Node.succeed(result.status).pipe(Node.branch({\n if: Node.capture(captures, (status) => status._tag === \"Running\"),\n then: () => Sleep.action.call({ until: result.wakeAt }).pipe(Node.andThen(observe.to(result.next))),\n else: (status) =>\n Node.succeed(status).pipe(Node.branch({\n if: Node.capture(captures, (value) => value._tag === \"Lost\"),\n then: () => recover(job, result),\n else: (exited) =>\n Collect.call({ job, exited: exited as unknown as Exited }).pipe(\n Node.catch({ error: Schema.Struct(Again.fields), onFailure: () => recover(job, result) })\n )\n }))\n }))\n }))))\n )\n )\n }\n )\n const flow = Flow.make<Tag, P, A, typeof failure, Action.Requirement<string>>(tag, {\n payload: options.payload,\n success: options.success,\n error: failure,\n annotations,\n body: Node.capture(captures, (payload) => Initialize.call({ input: payload }).pipe(Node.bindPlanned(launched)))\n })\n const toLayer = <R>(operations: Operations<typeof input.Type, H[\"Type\"], A[\"Type\"], E[\"Type\"], R>) => {\n const bindCancellation = Layer.effectDiscard(Effect.gen(function*() {\n const table = yield* Action.Implementations\n const context = yield* Effect.context<R>()\n const cancel = (handle: H[\"Type\"], key: string) =>\n operations.cancel(handle, key).pipe(Effect.provideContext(context))\n cancellations.set(table.add, cancel)\n yield* Effect.addFinalizer(() =>\n Effect.sync(() => {\n if (cancellations.get(table.add) === cancel) cancellations.delete(table.add)\n })\n )\n }))\n const interpreter = Layer.mergeAll(Interpreter.layer(flow), Interpreter.layer(launch), Interpreter.layer(observe))\n const layer = Layer.mergeAll(\n interpreter,\n bindCancellation,\n Sleep.layer,\n Initialize.toLayer(({ input }) =>\n Effect.gen(function*() {\n const instance = yield* active\n return {\n input,\n origin: instance.executionId,\n startedAt: Math.floor(yield* Clock.currentTimeMillis),\n generation: 1,\n probe: 1\n }\n })\n ),\n Start.toLayer((job) =>\n Effect.tap(operations.start(job.input, keyOf(job)), (handle) =>\n Effect.map(active, (value) => {\n value.current = { handle, key: keyOf(job) }\n }))\n ),\n Probe.toLayer((job) =>\n Effect.gen(function*() {\n let now = Math.floor(yield* Clock.currentTimeMillis)\n const deadline = job.startedAt + timeout\n let timedOut = now >= deadline\n const status = timedOut ? { _tag: \"Running\" as const } : yield* Effect.raceFirst(\n operations.status(job.handle, keyOf(job)),\n Effect.sleep(deadline - now).pipe(Effect.as({ _tag: \"Running\" as const }))\n )\n now = Math.floor(yield* Clock.currentTimeMillis)\n timedOut ||= now >= deadline\n const delay = Math.min(maximum, every * 2 ** Math.min(job.probe - 1, 1023))\n return {\n status,\n timedOut,\n wakeAt: Math.min(deadline, Math.ceil(now + delay)),\n next: { ...job, probe: job.probe + 1 },\n restart: {\n input: job.input,\n origin: job.origin,\n startedAt: job.startedAt,\n generation: job.generation + 1,\n probe: 1\n }\n }\n }), { implementationVersion: \"external-job/status/v1\" }),\n Collect.toLayer(({ exited, job }) =>\n Effect.tap(operations.collect(job.handle, keyOf(job), exited), () =>\n Effect.map(active, (value) => {\n value.current = undefined\n }))\n ),\n Cancel.toLayer((job) =>\n Effect.tap(operations.cancel(job.handle, keyOf(job)), () =>\n Effect.map(active, (value) => {\n value.current = undefined\n }))\n ),\n Fail.toLayer(({ job, timedOut }) =>\n Effect.fail(\n timedOut\n ? new ExternalJobTimedOut({ key: keyOf(job), message: `Job ${keyOf(job)} timed out` })\n : new ExternalJobLost({\n key: keyOf(job),\n message: `Job ${keyOf(job)} exhausted its replacement generations`\n })\n )\n ),\n Ready.toLayer((job) => Effect.map(Clock.currentTimeMillis, (now) => now < job.startedAt + timeout)),\n LaunchFailure.toLayer((job) =>\n Effect.fail(\n new ExternalJobTimedOut({ key: keyOf(job), message: `Job ${keyOf(job)} timed out before replacement start` })\n )\n )\n )\n // Active is supplied by the execution middleware, never by the host.\n return layer as Layer.Layer<\n Layer.Success<typeof layer>,\n Layer.Error<typeof layer>,\n Exclude<Layer.Services<typeof layer>, Active>\n >\n }\n // A job requires its own execution scope and identity even when composed\n // through call; reuse the existing child boundary rather than inline it.\n const call: typeof flow.child = (payload) => flow.child(payload)\n return Object.assign(flow, { call, toLayer }) as {\n readonly call: typeof call\n readonly toLayer: typeof toLayer\n } & typeof flow\n}\n"]}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One typed fault for every failure, and the one response table that reads it.
|
|
3
|
+
*
|
|
4
|
+
* Each owner of an error union registers its codes here with a class, so a
|
|
5
|
+
* failure crosses every seam as `{ class, tag }` rather than as prose. The
|
|
6
|
+
* control plane stamps it on a failed run, the gateway carries it to the
|
|
7
|
+
* worker, and every surface reads the same record.
|
|
8
|
+
*
|
|
9
|
+
* @since 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import * as Schema from "effect/Schema";
|
|
13
|
+
/**
|
|
14
|
+
* Whose problem a failure is. The first five are the wire registry; `factory`
|
|
15
|
+
* (the factory's own work failed and a replan may fix it) and `policy` (a cap
|
|
16
|
+
* stopped it) are the factory's.
|
|
17
|
+
*
|
|
18
|
+
* @category models
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
*/
|
|
21
|
+
export declare const Class: Schema.Literals<readonly ["user", "wait", "infra", "dependency", "bug", "factory", "policy"]>;
|
|
22
|
+
/**
|
|
23
|
+
* The decoded form of {@link Class}.
|
|
24
|
+
*
|
|
25
|
+
* @category models
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
*/
|
|
28
|
+
export type Class = typeof Class.Type;
|
|
29
|
+
/**
|
|
30
|
+
* What happens next. `very_hard` is a ladder state the worker reaches, not a class.
|
|
31
|
+
*
|
|
32
|
+
* @category models
|
|
33
|
+
* @since 1.0.0
|
|
34
|
+
*/
|
|
35
|
+
export declare const Response: Schema.Literals<readonly ["retry", "backup", "park", "replan", "very_hard", "help", "close", "stop"]>;
|
|
36
|
+
/**
|
|
37
|
+
* The decoded form of {@link Response}.
|
|
38
|
+
*
|
|
39
|
+
* @category models
|
|
40
|
+
* @since 1.0.0
|
|
41
|
+
*/
|
|
42
|
+
export type Response = typeof Response.Type;
|
|
43
|
+
/**
|
|
44
|
+
* The record stamped on a failed run. `tag` is `<_tag>/<code>`, or `<_tag>`
|
|
45
|
+
* for an error without a code.
|
|
46
|
+
*
|
|
47
|
+
* @category models
|
|
48
|
+
* @since 1.0.0
|
|
49
|
+
*/
|
|
50
|
+
export declare const Fault: Schema.Struct<{
|
|
51
|
+
readonly class: Schema.Literals<readonly ["user", "wait", "infra", "dependency", "bug", "factory", "policy"]>;
|
|
52
|
+
readonly tag: Schema.String;
|
|
53
|
+
}>;
|
|
54
|
+
/**
|
|
55
|
+
* The decoded form of {@link Fault}.
|
|
56
|
+
*
|
|
57
|
+
* @category models
|
|
58
|
+
* @since 1.0.0
|
|
59
|
+
*/
|
|
60
|
+
export type Fault = typeof Fault.Type;
|
|
61
|
+
/**
|
|
62
|
+
* One class per code of an owner's union. `satisfies Rows<Code>` at the owner
|
|
63
|
+
* makes a new code without a class a compile error.
|
|
64
|
+
*
|
|
65
|
+
* @category models
|
|
66
|
+
* @since 1.0.0
|
|
67
|
+
*/
|
|
68
|
+
export type Rows<Code extends string> = Readonly<Record<Code, Class>>;
|
|
69
|
+
/**
|
|
70
|
+
* Registers an owner's error tag: one class for the whole tag, or one per
|
|
71
|
+
* value of its `field` (`code` unless the union names it otherwise). A value
|
|
72
|
+
* the table does not name is `bug`. Registering a tag again with the same
|
|
73
|
+
* rows is a no-op (a module loaded twice); with different rows it throws,
|
|
74
|
+
* because two owners disagreeing about one tag is a defect.
|
|
75
|
+
*
|
|
76
|
+
* @category constructors
|
|
77
|
+
* @since 1.0.0
|
|
78
|
+
*/
|
|
79
|
+
export declare const register: <Code extends string>(tag: string, table: Class | Rows<Code>, field?: string) => void;
|
|
80
|
+
/**
|
|
81
|
+
* Every tag registered so far. The sweep test reads it.
|
|
82
|
+
*
|
|
83
|
+
* @category getters
|
|
84
|
+
* @since 1.0.0
|
|
85
|
+
*/
|
|
86
|
+
export declare const registered: () => ReadonlySet<string>;
|
|
87
|
+
/**
|
|
88
|
+
* The fault of a failure. Walks `cause` and answers the innermost registered
|
|
89
|
+
* tag, because a wrapper names where a failure surfaced and its cause names
|
|
90
|
+
* why: a harness `model_failed` over a model `quota_exceeded` is a wait. A
|
|
91
|
+
* failure no owner registered is a `bug`.
|
|
92
|
+
*
|
|
93
|
+
* @category constructors
|
|
94
|
+
* @since 1.0.0
|
|
95
|
+
*/
|
|
96
|
+
export declare const of: (error: unknown) => Fault;
|
|
97
|
+
/**
|
|
98
|
+
* Retries typed infrastructure failures of an effect the caller can safely repeat.
|
|
99
|
+
* Preserves its error channel when the bounded transient policy expires.
|
|
100
|
+
* Defects and interruption propagate without retry.
|
|
101
|
+
*
|
|
102
|
+
* @category combinators
|
|
103
|
+
* @since 1.0.0
|
|
104
|
+
*/
|
|
105
|
+
export declare const retryTransient: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
106
|
+
/**
|
|
107
|
+
* What the responder knows when it picks a response.
|
|
108
|
+
*
|
|
109
|
+
* @category models
|
|
110
|
+
* @since 1.0.0
|
|
111
|
+
*/
|
|
112
|
+
export interface State {
|
|
113
|
+
/** The action attempt that just failed. */
|
|
114
|
+
readonly attempt: number;
|
|
115
|
+
/** Seats not tried in this frame and not cooling. */
|
|
116
|
+
readonly seatsLeft: number;
|
|
117
|
+
/** Quota parks left before the run stops (`QuotaPolicy.defaultMaxParks` less those spent). */
|
|
118
|
+
readonly parksLeft: number;
|
|
119
|
+
/** Replans spent: the worker's attempt minus one. */
|
|
120
|
+
readonly replans: number;
|
|
121
|
+
/** Whether the item already had its very-hard continuation. */
|
|
122
|
+
readonly veryHard: boolean;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* The one ladder. A new class does not compile until it has a row.
|
|
126
|
+
*
|
|
127
|
+
* @category constructors
|
|
128
|
+
* @since 1.0.0
|
|
129
|
+
*/
|
|
130
|
+
export declare const respond: (fault: Fault, state: State) => Response;
|
|
131
|
+
//# sourceMappingURL=Fault.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fault.d.ts","sourceRoot":"","sources":["../../src/Fault.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,+FAAuF,CAAA;AAEzG;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,uGAA+F,CAAA;AAEpH;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,KAAK;;;EAAsD,CAAA;AAExE;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAErC;;;;;;GAMG;AACH,MAAM,MAAM,IAAI,CAAC,IAAI,SAAS,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AA2BrE;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,KAAG,IAOtG,CAAA;AAOD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,QAAO,WAAW,CAAC,MAAM,CAAyB,CAAA;AAEzE;;;;;;;;GAQG;AACH,eAAO,MAAM,EAAE,GAAI,OAAO,OAAO,KAAG,KAgBnC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAiB1F,CAAA;AAEJ;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IACpB,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,8FAA8F;IAC9F,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,EAAE,OAAO,KAAK,KAAG,QASO,CAAA"}
|