@smthrs/flow 0.0.0-stage → 1.0.0-rc.3
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 +160 -0
- package/LICENSE +21 -0
- package/README.md +210 -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 +373 -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 +105 -0
- package/dist/cjs/Deadline.d.ts.map +1 -0
- package/dist/cjs/Deadline.js +104 -0
- package/dist/cjs/Deadline.js.map +7 -0
- package/dist/cjs/DurableClock.d.ts +61 -0
- package/dist/cjs/DurableClock.d.ts.map +1 -0
- package/dist/cjs/DurableClock.js +90 -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 +338 -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 +160 -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 +134 -0
- package/dist/cjs/Flow/make.d.ts.map +1 -0
- package/dist/cjs/Flow/make.js +104 -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 +198 -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 +175 -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 +1022 -0
- package/dist/cjs/Graph.js.map +7 -0
- package/dist/cjs/HumanTask.d.ts +440 -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 +222 -0
- package/dist/cjs/Interpreter.d.ts.map +1 -0
- package/dist/cjs/Interpreter.js +888 -0
- package/dist/cjs/Interpreter.js.map +7 -0
- package/dist/cjs/Poll.d.ts +238 -0
- package/dist/cjs/Poll.d.ts.map +1 -0
- package/dist/cjs/Poll.js +150 -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 +133 -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 +405 -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 +105 -0
- package/dist/esm/Deadline.d.ts.map +1 -0
- package/dist/esm/Deadline.js +152 -0
- package/dist/esm/Deadline.js.map +1 -0
- package/dist/esm/DurableClock.d.ts +61 -0
- package/dist/esm/DurableClock.d.ts.map +1 -0
- package/dist/esm/DurableClock.js +75 -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 +231 -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 +134 -0
- package/dist/esm/Flow/make.d.ts.map +1 -0
- package/dist/esm/Flow/make.js +106 -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 +198 -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 +175 -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 +1482 -0
- package/dist/esm/Graph.js.map +1 -0
- package/dist/esm/HumanTask.d.ts +440 -0
- package/dist/esm/HumanTask.d.ts.map +1 -0
- package/dist/esm/HumanTask.js +794 -0
- package/dist/esm/HumanTask.js.map +1 -0
- package/dist/esm/Interpreter.d.ts +222 -0
- package/dist/esm/Interpreter.d.ts.map +1 -0
- package/dist/esm/Interpreter.js +1269 -0
- package/dist/esm/Interpreter.js.map +1 -0
- package/dist/esm/Poll.d.ts +238 -0
- package/dist/esm/Poll.d.ts.map +1 -0
- package/dist/esm/Poll.js +282 -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 +230 -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 +150 -0
- package/docs/api.md +436 -0
- package/docs/concepts/bodies-and-plans.md +157 -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 +161 -0
- package/docs/guides/cancel-and-roll-back.md +112 -0
- package/docs/guides/implement-an-action.md +147 -0
- package/docs/guides/inspect-the-plan.md +154 -0
- package/docs/guides/poll-until-ready.md +167 -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 +122 -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 +82 -0
- package/docs/quickstart.md +155 -0
- package/docs/reference/flow.md +1831 -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 +657 -0
- package/src/Action/raceAll.ts +48 -0
- package/src/Action/retry.ts +92 -0
- package/src/Deadline.ts +185 -0
- package/src/DurableClock.ts +133 -0
- package/src/DurableDeferred.ts +753 -0
- package/src/DurableQueue.ts +519 -0
- package/src/ExternalJob.ts +432 -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 +309 -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 +279 -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 +333 -0
- package/src/FlowRuntime/NodeRecord.ts +183 -0
- package/src/FlowRuntime/WaitingAnnotation.ts +85 -0
- package/src/FlowRuntime/index.ts +17 -0
- package/src/Graph.ts +1860 -0
- package/src/HumanTask.ts +1003 -0
- package/src/Interpreter.ts +1593 -0
- package/src/Poll.ts +414 -0
- package/src/RetryPolicy.ts +550 -0
- package/src/Sleep.ts +267 -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,422 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines typed durable flow declarations.
|
|
3
|
+
*
|
|
4
|
+
* A `Flow` has a stable tag, schemas for payload, success, and failure, a
|
|
5
|
+
* REQUIRED pure `body`, and an optional idempotency key used to derive
|
|
6
|
+
* execution ids when the caller does not provide one. Flow definitions can be
|
|
7
|
+
* executed, discarded, polled, interrupted, and resumed.
|
|
8
|
+
*
|
|
9
|
+
* The two nouns of `docs/concepts/flows-and-actions.md` divide the
|
|
10
|
+
* surface here: an Action carries an implementation, attached separately as a
|
|
11
|
+
* Layer; a Flow carries a body, and never opaque executable code. There is
|
|
12
|
+
* therefore no handler to attach to a flow, and no `toLayer` on one to attach
|
|
13
|
+
* it with.
|
|
14
|
+
*
|
|
15
|
+
* @since 0.1.0
|
|
16
|
+
*/
|
|
17
|
+
import type * as Node from "@smthrs/plan/Node";
|
|
18
|
+
import type * as Planned from "@smthrs/plan/Planned";
|
|
19
|
+
import type * as Cause from "effect/Cause";
|
|
20
|
+
import type * as Context from "effect/Context";
|
|
21
|
+
import type * as Crypto from "effect/Crypto";
|
|
22
|
+
import type * as Duration from "effect/Duration";
|
|
23
|
+
import type * as Effect from "effect/Effect";
|
|
24
|
+
import type * as Option from "effect/Option";
|
|
25
|
+
import type * as Schema from "effect/Schema";
|
|
26
|
+
import type * as Scope from "effect/Scope";
|
|
27
|
+
import type { Declared, PlannedPayload, Requirement } from "../Action/Action.ts";
|
|
28
|
+
import type { CancelRequestFailed } from "../FlowRuntime/CancelRequestFailed.ts";
|
|
29
|
+
import type { ExecutionIdentityConflict } from "../FlowRuntime/ExecutionIdentityConflict.ts";
|
|
30
|
+
import type { FlowCycleDetected } from "../FlowRuntime/FlowCycleDetected.ts";
|
|
31
|
+
import type { FlowExecutionNotFound } from "../FlowRuntime/FlowExecutionNotFound.ts";
|
|
32
|
+
import type { FlowInstance, FlowRuntime } from "../FlowRuntime/index.ts";
|
|
33
|
+
import type * as RetryPolicy from "../RetryPolicy.ts";
|
|
34
|
+
import type { Outcome, To } from "./Outcome.ts";
|
|
35
|
+
import type { Result } from "./Result.ts";
|
|
36
|
+
import type { TypeId } from "./TypeId.ts";
|
|
37
|
+
/**
|
|
38
|
+
* Values with which a flow body may settle one round.
|
|
39
|
+
*
|
|
40
|
+
* A plain decoded success completes the flow. A planned success is a symbolic
|
|
41
|
+
* reference the graph resolves before settlement. An outcome either completes
|
|
42
|
+
* explicitly, hands off to another round, or parks durably.
|
|
43
|
+
*
|
|
44
|
+
* @category models
|
|
45
|
+
* @since 0.1.0
|
|
46
|
+
*/
|
|
47
|
+
export type BodySuccess<A> = A | Planned.Planned<A> | Outcome<A | Planned.Planned<A>, unknown>;
|
|
48
|
+
/**
|
|
49
|
+
* A primary model seat with optional ordered fallback seats.
|
|
50
|
+
*
|
|
51
|
+
* @category models
|
|
52
|
+
* @since 1.0.0
|
|
53
|
+
*/
|
|
54
|
+
export type ModelSelection = string | readonly [string, ...Array<string>];
|
|
55
|
+
/**
|
|
56
|
+
* Literal metadata a catalog can read without executing the declaration.
|
|
57
|
+
* Model selection and system teaching are interpreted by the host.
|
|
58
|
+
*
|
|
59
|
+
* @category models
|
|
60
|
+
* @since 1.0.0
|
|
61
|
+
*/
|
|
62
|
+
export interface DeclarationMetadata {
|
|
63
|
+
readonly model?: ModelSelection | undefined;
|
|
64
|
+
readonly effort?: "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max" | undefined;
|
|
65
|
+
readonly system?: ReadonlyArray<string> | undefined;
|
|
66
|
+
readonly chat?: boolean | undefined;
|
|
67
|
+
readonly flows?: ReadonlyArray<string> | undefined;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* A typed prompt declaration lowered to an ordinary declared action.
|
|
71
|
+
* The host supplies that action's implementation; planning never renders it.
|
|
72
|
+
*
|
|
73
|
+
* @category models
|
|
74
|
+
* @since 1.0.0
|
|
75
|
+
*/
|
|
76
|
+
export interface PromptFlow<Tag extends string, Payload extends AnyStructSchema, Success extends Schema.Top, Error extends Schema.Top> extends Flow<Tag, Payload, Success, Error, Requirement<`${Tag}/prompt`>> {
|
|
77
|
+
readonly prompt: (payload: Payload["Type"]) => string;
|
|
78
|
+
readonly action: Declared<`${Tag}/prompt`, Payload, Success, Error>;
|
|
79
|
+
annotate<I, S>(tag: Context.Key<I, S>, value: S): PromptFlow<Tag, Payload, Success, Error>;
|
|
80
|
+
annotateMerge<I>(context: Context.Context<I>): PromptFlow<Tag, Payload, Success, Error>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Durable flow definition with typed payload, success, and error schemas
|
|
84
|
+
* plus operations for execution, polling, interruption, resumption, and
|
|
85
|
+
* registration.
|
|
86
|
+
*
|
|
87
|
+
* @category models
|
|
88
|
+
* @since 0.1.0
|
|
89
|
+
*/
|
|
90
|
+
export interface Flow<Tag extends string, Payload extends AnyStructSchema, Success extends Schema.Top, Error extends Schema.Top, Requires = never> extends DeclarationMetadata {
|
|
91
|
+
new (_: never): {};
|
|
92
|
+
readonly [TypeId]: typeof TypeId;
|
|
93
|
+
readonly _tag: Tag;
|
|
94
|
+
/**
|
|
95
|
+
* One sentence saying what this flow does, for a catalog that lists it.
|
|
96
|
+
*
|
|
97
|
+
* It is a plain literal rather than an annotation because a discovered
|
|
98
|
+
* `flows/<name>/flow.ts` is read WITHOUT being imported: `@smthrs/registry`
|
|
99
|
+
* tokenizes the declaration and takes the description from it, so a flow that
|
|
100
|
+
* states one only in an annotation is listed with nothing to read.
|
|
101
|
+
*/
|
|
102
|
+
readonly description?: string | undefined;
|
|
103
|
+
readonly payloadSchema: Payload;
|
|
104
|
+
readonly successSchema: Success;
|
|
105
|
+
readonly errorSchema: Error;
|
|
106
|
+
readonly annotations: Context.Context<never>;
|
|
107
|
+
/** The renderer a prompt declaration supplies to its host. */
|
|
108
|
+
readonly prompt?: ((payload: Payload["Type"]) => string) | undefined;
|
|
109
|
+
/** The ordinary action a prompt declaration asks its host to implement. */
|
|
110
|
+
readonly action?: Declared<any, Payload, Success, Error, any> | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* The pure plan-time body that IS this flow's behavior.
|
|
113
|
+
*
|
|
114
|
+
* The payload is decoded real data and the returned node only describes
|
|
115
|
+
* topology. It is a FIELD rather than an injectable layer because there is
|
|
116
|
+
* exactly one of it, it is pure, and its digest enters the flow's content
|
|
117
|
+
* identity, so a flow cannot plan one way under one wiring and another way
|
|
118
|
+
* under another. Purity includes closure capture: the body must not read
|
|
119
|
+
* mutable module state, clocks, random values, services, or environment
|
|
120
|
+
* values captured outside `payload`; source-digest identity cannot observe
|
|
121
|
+
* those aliases changing. Work that genuinely wants opaque code is an
|
|
122
|
+
* Action.
|
|
123
|
+
*
|
|
124
|
+
* `Requires` is read off this node. A body that names an action names an
|
|
125
|
+
* implementation it does not carry, and that obligation travels with the flow
|
|
126
|
+
* until something executes it.
|
|
127
|
+
*/
|
|
128
|
+
readonly body: (payload: Payload["Type"]) => Node.Node<BodySuccess<Success["Type"]>, Error["Type"], Requires>;
|
|
129
|
+
/**
|
|
130
|
+
* Declares the stable key used when a caller supplies no execution id.
|
|
131
|
+
*
|
|
132
|
+
* The flow tag and returned key are JSON-tuple framed, then hashed as their
|
|
133
|
+
* exact UTF-8 strings. No Unicode normalization is applied, and this preimage
|
|
134
|
+
* encoding freezes at rc.0.
|
|
135
|
+
*/
|
|
136
|
+
readonly idempotencyKey?: ((payload: Payload["Type"]) => string) | undefined;
|
|
137
|
+
/**
|
|
138
|
+
* How long ONE CALLER keeps polling a suspended execution of this flow.
|
|
139
|
+
*
|
|
140
|
+
* It is a per-caller wall-clock budget, not a bound on the run. `execute`
|
|
141
|
+
* re-drives a parked execution on this schedule and gives up when the
|
|
142
|
+
* schedule is spent; the execution stays parked, and the next caller — a
|
|
143
|
+
* second process, a sweep, a resume — starts a budget of its own. Nothing
|
|
144
|
+
* about it is durable, and a spent budget cancels nothing.
|
|
145
|
+
*
|
|
146
|
+
* What bounds work durably is an action's own `RetryPolicy`: the engine
|
|
147
|
+
* restores `maxAttempts` from the persisted attempt sequence and the
|
|
148
|
+
* `expirationMs` origin from the first attempt's start time, so those
|
|
149
|
+
* survive park, resume, and process death.
|
|
150
|
+
*/
|
|
151
|
+
readonly suspendedRetryPolicy?: RetryPolicy.RetryPolicy | undefined;
|
|
152
|
+
/**
|
|
153
|
+
* How many rounds one trampoline lineage started from this flow may open.
|
|
154
|
+
*
|
|
155
|
+
* The bound is a BUDGET, not loop detection: identical consecutive rounds
|
|
156
|
+
* are legal, so `docs/concepts/trampoline-rounds.md` stops a runaway
|
|
157
|
+
* lineage by counting rounds instead of comparing them. Absent means
|
|
158
|
+
* unbounded, which is the right default for a lineage whose exit condition
|
|
159
|
+
* is its own branch. Exceeding it terminates the lineage with a
|
|
160
|
+
* {@link module:MaxRoundsExceeded.MaxRoundsExceeded} defect recorded in the
|
|
161
|
+
* execution result; it is not a typed `execute` failure.
|
|
162
|
+
*/
|
|
163
|
+
readonly maxRounds?: number | undefined;
|
|
164
|
+
/**
|
|
165
|
+
* How long one execution of this flow may take, counted from its first
|
|
166
|
+
* start.
|
|
167
|
+
*
|
|
168
|
+
* The start is journaled, so the bound survives park, resume and process
|
|
169
|
+
* death: a restarted engine honors the original deadline. On expiry the
|
|
170
|
+
* execution settles with a {@link module:DeadlineExceeded.DeadlineExceeded}
|
|
171
|
+
* defect whether it was running or parked, and its attached children are
|
|
172
|
+
* cancelled with it. Absent means unbounded.
|
|
173
|
+
*/
|
|
174
|
+
readonly deadline?: Duration.Duration | undefined;
|
|
175
|
+
/**
|
|
176
|
+
* Describes an inline call to this flow without executing it.
|
|
177
|
+
*
|
|
178
|
+
* The callee's steps join the caller's plan, so the callee's requirements are
|
|
179
|
+
* the caller's: `Requires` propagates.
|
|
180
|
+
*/
|
|
181
|
+
readonly call: (payload: PlannedPayload<Payload["~type.make.in"]>) => Node.Node<Success["Type"], Error["Type"], Requires>;
|
|
182
|
+
/**
|
|
183
|
+
* Describes an explicit child boundary: ONE node in the caller's plan, and a
|
|
184
|
+
* real child execution when that node is driven.
|
|
185
|
+
*
|
|
186
|
+
* `.call()` splices this flow's body into the caller's plan, so every inner
|
|
187
|
+
* step is visible and individually keyed. `.child()` is the other choice
|
|
188
|
+
* `docs/concepts/flows-and-actions.md` gives: the callee keeps its
|
|
189
|
+
* own execution, journal lineage, retry policy, and placement, and the caller
|
|
190
|
+
* sees one leaf. It is also the way out of the two build refusals inline
|
|
191
|
+
* expansion raises — a recursive `.call()` and a placement the caller cannot
|
|
192
|
+
* satisfy.
|
|
193
|
+
*
|
|
194
|
+
* It is an execution boundary for requirements too, so `Requires` is DROPPED
|
|
195
|
+
* rather than propagated: the child runs under its own driver, which provides
|
|
196
|
+
* its own context, and the caller's plan holds one leaf naming it.
|
|
197
|
+
*/
|
|
198
|
+
readonly child: (payload: PlannedPayload<Payload["~type.make.in"]>) => Node.Node<Success["Type"], Error["Type"]>;
|
|
199
|
+
/**
|
|
200
|
+
* Describes a serializable invocation for the next trampoline round.
|
|
201
|
+
*
|
|
202
|
+
* A handoff ends this execution and names the next one, so `Requires` is
|
|
203
|
+
* DROPPED here as well. That is also what keeps a self-loop's type finite: a
|
|
204
|
+
* body that hands off to its own flow would otherwise have to name its own
|
|
205
|
+
* requirements inside them.
|
|
206
|
+
*/
|
|
207
|
+
readonly to: (payload: PlannedPayload<Payload["~type.make.in"]>) => Node.Node<To<Payload["Type"]>>;
|
|
208
|
+
/**
|
|
209
|
+
* Add an annotation to the flow.
|
|
210
|
+
*/
|
|
211
|
+
annotate<I, S>(key: Context.Key<I, S>, value: S): Flow<Tag, Payload, Success, Error, Requires>;
|
|
212
|
+
/**
|
|
213
|
+
* Merge multiple annotations into the flow.
|
|
214
|
+
*/
|
|
215
|
+
annotateMerge<I>(annotations: Context.Context<I>): Flow<Tag, Payload, Success, Error, Requires>;
|
|
216
|
+
/**
|
|
217
|
+
* Execute the flow with the given payload.
|
|
218
|
+
*
|
|
219
|
+
* This is where `Requires` is collected. Planning is requirement-free by
|
|
220
|
+
* design, so a body that names an action nobody implemented is a legal plan
|
|
221
|
+
* right up to here; asking to RUN it is what makes the missing layer a
|
|
222
|
+
* compile error rather than a run that dies partway through.
|
|
223
|
+
*
|
|
224
|
+
* Identity comes from the first source that has one: the `executionId`
|
|
225
|
+
* option, the flow's declared `idempotencyKey`, then the ambient
|
|
226
|
+
* `CurrentExecutionIds` source, whose default mints a fresh UUID. Equal
|
|
227
|
+
* unkeyed payloads start independent executions. Retain the execution id or
|
|
228
|
+
* opt into a derived source to reattach after a crash.
|
|
229
|
+
*
|
|
230
|
+
* A payload that fails the flow's own schema is a typed
|
|
231
|
+
* `Schema.SchemaError` failure carrying the offending field path — caller
|
|
232
|
+
* input is data, not programmer wiring, so it fails rather than dies.
|
|
233
|
+
*/
|
|
234
|
+
readonly execute: <const Discard extends boolean = false>(payload: Payload["~type.make.in"], options?: {
|
|
235
|
+
readonly discard?: Discard;
|
|
236
|
+
readonly executionId?: string | undefined;
|
|
237
|
+
}) => Effect.Effect<Discard extends true ? string : Success["Type"], Schema.SchemaError | FlowCycleDetected | ExecutionIdentityConflict | (Discard extends true ? never : Error["Type"]), FlowRuntime | Crypto.Crypto | Requires | Payload["EncodingServices"] | Success["DecodingServices"] | Error["DecodingServices"]>;
|
|
238
|
+
/**
|
|
239
|
+
* Starts a fresh execution and returns its id. Equal payloads start independent
|
|
240
|
+
* executions; declared and ambient idempotency policies are intentionally bypassed.
|
|
241
|
+
* Observe the execution with `poll`, or await it using `execute` with this id.
|
|
242
|
+
*/
|
|
243
|
+
readonly start: (payload: Payload["~type.make.in"]) => Effect.Effect<string, Schema.SchemaError | FlowCycleDetected, FlowRuntime | Crypto.Crypto | Requires | Payload["EncodingServices"] | Success["DecodingServices"] | Error["DecodingServices"]>;
|
|
244
|
+
/**
|
|
245
|
+
* Starts or joins the execution identified by this flow tag and an explicit
|
|
246
|
+
* caller key, returning its id. Reusing a key is an explicit retry/reattachment
|
|
247
|
+
* decision. Existing persisted key encodings remain unchanged.
|
|
248
|
+
*/
|
|
249
|
+
readonly ensure: (payload: Payload["~type.make.in"], options: {
|
|
250
|
+
readonly key: string;
|
|
251
|
+
}) => ReturnType<Flow<Tag, Payload, Success, Error, Requires>["start"]>;
|
|
252
|
+
/**
|
|
253
|
+
* Poll the current status of a flow execution.
|
|
254
|
+
*
|
|
255
|
+
* `Option.none` means the execution is known and has not settled;
|
|
256
|
+
* {@link FlowExecutionNotFound} means the runtime has no record of the
|
|
257
|
+
* execution id at all.
|
|
258
|
+
*/
|
|
259
|
+
readonly poll: (executionId: string) => Effect.Effect<Option.Option<Result<Success["Type"], Error["Type"]>>, FlowExecutionNotFound, FlowRuntime | Success["DecodingServices"] | Error["DecodingServices"]>;
|
|
260
|
+
/**
|
|
261
|
+
* Requests cancellation of the execution.
|
|
262
|
+
*
|
|
263
|
+
* This is not a pause operation. The engine interrupts active work while
|
|
264
|
+
* preserving its normal cleanup, compensation, and child-flow semantics.
|
|
265
|
+
* Calling `resume` does not undo the cancellation request.
|
|
266
|
+
*
|
|
267
|
+
* A durable engine records the cancellation request before it interrupts
|
|
268
|
+
* anything, and reports {@link CancelRequestFailed} when that record could
|
|
269
|
+
* not be written — the execution is then still running, so the caller sees
|
|
270
|
+
* the storage failure instead of a false success. An in-memory engine has
|
|
271
|
+
* nothing to record and never raises it.
|
|
272
|
+
*/
|
|
273
|
+
readonly interrupt: (executionId: string) => Effect.Effect<void, CancelRequestFailed, FlowRuntime>;
|
|
274
|
+
/**
|
|
275
|
+
* Re-drives an execution that returned `Suspended` so it can replay its
|
|
276
|
+
* durable history and continue after its awaited condition becomes ready.
|
|
277
|
+
*
|
|
278
|
+
* This does not resume an execution cancelled by `interrupt`, and it is not
|
|
279
|
+
* needed for an execution that is already running or complete.
|
|
280
|
+
*
|
|
281
|
+
* It does NOT collect `Requires`, even though it re-drives the body. The
|
|
282
|
+
* runtime captures the context a flow was REGISTERED under and merges it
|
|
283
|
+
* beneath whatever a run supplies, so the implementations that made the first
|
|
284
|
+
* round possible are the ones a re-driven round reaches; a resumer holding an
|
|
285
|
+
* execution id is not the party that has them. `execute` remains the one
|
|
286
|
+
* place a plan's requirements are asked for.
|
|
287
|
+
*/
|
|
288
|
+
readonly resume: (executionId: string) => Effect.Effect<void, never, FlowRuntime>;
|
|
289
|
+
/**
|
|
290
|
+
* For the given payload, compute the execution ID `execute` would run under
|
|
291
|
+
* when the caller names none.
|
|
292
|
+
*
|
|
293
|
+
* That is the flow's `idempotencyKey` when it declares one, and the ambient
|
|
294
|
+
* `CurrentExecutionIds` source otherwise. It dies with `ExecutionIdRequired`
|
|
295
|
+
* when the opt-in `derived` source cannot canonicalize the payload. The default
|
|
296
|
+
* source mints a fresh UUID on each call; pass the returned id explicitly to
|
|
297
|
+
* `execute` to select that invocation.
|
|
298
|
+
*
|
|
299
|
+
* A payload this flow's own schema refuses also dies as a defect here. This
|
|
300
|
+
* differs from `execute`, which fails with a typed `Schema.SchemaError` for
|
|
301
|
+
* the same caller input. A caller precomputing an id should validate the
|
|
302
|
+
* payload first.
|
|
303
|
+
*/
|
|
304
|
+
readonly executionId: (payload: Payload["~type.make.in"]) => Effect.Effect<string, never, Crypto.Crypto | Payload["EncodingServices"]>;
|
|
305
|
+
/**
|
|
306
|
+
* Runs an effect and registers how to undo its successful result if the
|
|
307
|
+
* current round later exits unsuccessfully.
|
|
308
|
+
*
|
|
309
|
+
* If the effect itself fails, no rollback is registered. If both the effect
|
|
310
|
+
* and the round succeed, the rollback is discarded. Otherwise the rollback
|
|
311
|
+
* receives the effect's successful value and the round's failure cause when
|
|
312
|
+
* the round's scope closes. Suspension keeps that scope open.
|
|
313
|
+
*
|
|
314
|
+
* A handoff completes the round successfully and discards its `withRollback` registrations.
|
|
315
|
+
* A later round's failure cannot invoke those rollbacks. The engine does not
|
|
316
|
+
* provide lineage-scoped compensation.
|
|
317
|
+
*
|
|
318
|
+
* This applies only to effects run directly inside the flow execution. It
|
|
319
|
+
* does not attach rollback behavior to nested actions.
|
|
320
|
+
*/
|
|
321
|
+
readonly withRollback: {
|
|
322
|
+
<A, R2>(rollback: (value: A, cause: Cause.Cause<Error["Type"]>) => Effect.Effect<void, never, R2>): <E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R | R2 | FlowInstance | Scope.Scope>;
|
|
323
|
+
<A, E, R, R2>(effect: Effect.Effect<A, E, R>, rollback: (value: A, cause: Cause.Cause<Error["Type"]>) => Effect.Effect<void, never, R2>): Effect.Effect<A, E, R | R2 | FlowInstance | Scope.Scope>;
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Schema constraint for flow payload schemas that expose struct fields.
|
|
328
|
+
*
|
|
329
|
+
* @category schemas
|
|
330
|
+
* @since 0.1.0
|
|
331
|
+
*/
|
|
332
|
+
export interface AnyStructSchema extends Schema.Top {
|
|
333
|
+
readonly fields: Schema.Struct.Fields;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Type-level marker for services associated with a specific flow
|
|
337
|
+
* execution tag.
|
|
338
|
+
*
|
|
339
|
+
* @category models
|
|
340
|
+
* @since 0.1.0
|
|
341
|
+
*/
|
|
342
|
+
export interface Execution<Tag extends string> {
|
|
343
|
+
readonly _: unique symbol;
|
|
344
|
+
readonly _tag: Tag;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Type-erased flow shape for APIs that operate on flows without
|
|
348
|
+
* preserving their specific payload, success, or error types.
|
|
349
|
+
*
|
|
350
|
+
* @category models
|
|
351
|
+
* @since 0.1.0
|
|
352
|
+
*/
|
|
353
|
+
export interface Any extends DeclarationMetadata {
|
|
354
|
+
new (_: never): {};
|
|
355
|
+
readonly [TypeId]: typeof TypeId;
|
|
356
|
+
readonly _tag: string;
|
|
357
|
+
readonly description?: string | undefined;
|
|
358
|
+
readonly executionId: (payload: any) => Effect.Effect<string, never, any>;
|
|
359
|
+
readonly payloadSchema: AnyStructSchema;
|
|
360
|
+
readonly successSchema: Schema.Top;
|
|
361
|
+
readonly errorSchema: Schema.Top;
|
|
362
|
+
readonly annotations: Context.Context<never>;
|
|
363
|
+
readonly prompt?: ((payload: any) => string) | undefined;
|
|
364
|
+
readonly action?: Pick<Declared<string, AnyStructSchema, Schema.Top, Schema.Top, any>, "name" | "payloadSchema" | "successSchema" | "errorSchema" | "implementationVersion" | "annotations"> | undefined;
|
|
365
|
+
readonly body: (payload: any) => Node.Node<unknown, unknown, any>;
|
|
366
|
+
readonly idempotencyKey?: ((payload: any) => string) | undefined;
|
|
367
|
+
readonly suspendedRetryPolicy?: RetryPolicy.RetryPolicy | undefined;
|
|
368
|
+
readonly maxRounds?: number | undefined;
|
|
369
|
+
readonly deadline?: Duration.Duration | undefined;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Type-erased flow shape that also exposes executable operations needed by
|
|
373
|
+
* flow proxy and engine helpers.
|
|
374
|
+
*
|
|
375
|
+
* @category models
|
|
376
|
+
* @since 0.1.0
|
|
377
|
+
*/
|
|
378
|
+
export interface AnyWithProps extends Any {
|
|
379
|
+
readonly payloadSchema: AnyStructSchema;
|
|
380
|
+
readonly successSchema: Schema.Top;
|
|
381
|
+
readonly errorSchema: Schema.Top;
|
|
382
|
+
readonly execute: (payload: any, options?: {
|
|
383
|
+
readonly discard?: boolean;
|
|
384
|
+
readonly executionId?: string | undefined;
|
|
385
|
+
}) => Effect.Effect<any, any, any>;
|
|
386
|
+
/**
|
|
387
|
+
* Re-drives a durably suspended execution; it does not undo cancellation.
|
|
388
|
+
*/
|
|
389
|
+
readonly resume: (executionId: string) => Effect.Effect<void, never, FlowRuntime>;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Extracts the payload schema from a `Flow`.
|
|
393
|
+
*
|
|
394
|
+
* @category models
|
|
395
|
+
* @since 0.1.0
|
|
396
|
+
*/
|
|
397
|
+
export type PayloadSchema<W> = W extends Flow<infer _Name, infer _Payload, infer _Success, infer _Error, infer _Requires> ? _Payload : never;
|
|
398
|
+
/**
|
|
399
|
+
* Extracts the requirement channel of a `Flow`: the action implementations
|
|
400
|
+
* its body names and does not carry.
|
|
401
|
+
*
|
|
402
|
+
* @category models
|
|
403
|
+
* @since 0.1.0
|
|
404
|
+
*/
|
|
405
|
+
export type Requirements<W> = W extends Flow<infer _Name, infer _Payload, infer _Success, infer _Error, infer _Requires> ? _Requires : never;
|
|
406
|
+
/**
|
|
407
|
+
* Computes the schema services required by clients that execute or poll
|
|
408
|
+
* flows.
|
|
409
|
+
*
|
|
410
|
+
* @category models
|
|
411
|
+
* @since 0.1.0
|
|
412
|
+
*/
|
|
413
|
+
export type RequirementsClient<Flows extends Any> = Flows extends Flow<infer _Name, infer _Payload, infer _Success, infer _Error, infer _Requires> ? _Payload["EncodingServices"] | _Success["DecodingServices"] | _Error["DecodingServices"] : never;
|
|
414
|
+
/**
|
|
415
|
+
* Computes the schema services required by handlers that decode flow
|
|
416
|
+
* payloads and encode flow results.
|
|
417
|
+
*
|
|
418
|
+
* @category models
|
|
419
|
+
* @since 0.1.0
|
|
420
|
+
*/
|
|
421
|
+
export type RequirementsHandler<Flows extends Any> = Flows extends Flow<infer _Name, infer _Payload, infer _Success, infer _Error, infer _Requires> ? _Payload["DecodingServices"] | _Payload["EncodingServices"] | _Success["DecodingServices"] | _Success["EncodingServices"] | _Error["DecodingServices"] | _Error["EncodingServices"] : never;
|
|
422
|
+
//# sourceMappingURL=Flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Flow.d.ts","sourceRoot":"","sources":["../../../src/Flow/Flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Flow.js","sourceRoot":"","sources":["../../../src/Flow/Flow.ts"],"names":[],"mappings":"AAAA,uDAAuD","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Defines typed durable flow declarations.\n *\n * A `Flow` has a stable tag, schemas for payload, success, and failure, a\n * REQUIRED pure `body`, and an optional idempotency key used to derive\n * execution ids when the caller does not provide one. Flow definitions can be\n * executed, discarded, polled, interrupted, and resumed.\n *\n * The two nouns of `docs/concepts/flows-and-actions.md` divide the\n * surface here: an Action carries an implementation, attached separately as a\n * Layer; a Flow carries a body, and never opaque executable code. There is\n * therefore no handler to attach to a flow, and no `toLayer` on one to attach\n * it with.\n *\n * @since 0.1.0\n */\n\nimport type * as Node from \"@smthrs/plan/Node\"\nimport type * as Planned from \"@smthrs/plan/Planned\"\nimport type * as Cause from \"effect/Cause\"\nimport type * as Context from \"effect/Context\"\nimport type * as Crypto from \"effect/Crypto\"\nimport type * as Duration from \"effect/Duration\"\nimport type * as Effect from \"effect/Effect\"\nimport type * as Option from \"effect/Option\"\nimport type * as Schema from \"effect/Schema\"\nimport type * as Scope from \"effect/Scope\"\nimport type { Declared, PlannedPayload, Requirement } from \"../Action/Action.ts\"\nimport type { CancelRequestFailed } from \"../FlowRuntime/CancelRequestFailed.ts\"\nimport type { ExecutionIdentityConflict } from \"../FlowRuntime/ExecutionIdentityConflict.ts\"\nimport type { FlowCycleDetected } from \"../FlowRuntime/FlowCycleDetected.ts\"\nimport type { FlowExecutionNotFound } from \"../FlowRuntime/FlowExecutionNotFound.ts\"\nimport type { FlowInstance, FlowRuntime } from \"../FlowRuntime/index.ts\"\nimport type * as RetryPolicy from \"../RetryPolicy.ts\"\nimport type { Outcome, To } from \"./Outcome.ts\"\nimport type { Result } from \"./Result.ts\"\nimport type { TypeId } from \"./TypeId.ts\"\n\n/**\n * Values with which a flow body may settle one round.\n *\n * A plain decoded success completes the flow. A planned success is a symbolic\n * reference the graph resolves before settlement. An outcome either completes\n * explicitly, hands off to another round, or parks durably.\n *\n * @category models\n * @since 0.1.0\n */\nexport type BodySuccess<A> = A | Planned.Planned<A> | Outcome<A | Planned.Planned<A>, unknown>\n\n/**\n * A primary model seat with optional ordered fallback seats.\n *\n * @category models\n * @since 1.0.0\n */\nexport type ModelSelection = string | readonly [string, ...Array<string>]\n\n/**\n * Literal metadata a catalog can read without executing the declaration.\n * Model selection and system teaching are interpreted by the host.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface DeclarationMetadata {\n readonly model?: ModelSelection | undefined\n readonly effort?: \"none\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\" | undefined\n readonly system?: ReadonlyArray<string> | undefined\n readonly chat?: boolean | undefined\n readonly flows?: ReadonlyArray<string> | undefined\n}\n\n/**\n * A typed prompt declaration lowered to an ordinary declared action.\n * The host supplies that action's implementation; planning never renders it.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface PromptFlow<\n Tag extends string,\n Payload extends AnyStructSchema,\n Success extends Schema.Top,\n Error extends Schema.Top\n> extends Flow<Tag, Payload, Success, Error, Requirement<`${Tag}/prompt`>> {\n readonly prompt: (payload: Payload[\"Type\"]) => string\n readonly action: Declared<`${Tag}/prompt`, Payload, Success, Error>\n annotate<I, S>(tag: Context.Key<I, S>, value: S): PromptFlow<Tag, Payload, Success, Error>\n annotateMerge<I>(context: Context.Context<I>): PromptFlow<Tag, Payload, Success, Error>\n}\n\n/**\n * Durable flow definition with typed payload, success, and error schemas\n * plus operations for execution, polling, interruption, resumption, and\n * registration.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Flow<\n Tag extends string,\n Payload extends AnyStructSchema,\n Success extends Schema.Top,\n Error extends Schema.Top,\n Requires = never\n> extends DeclarationMetadata {\n new(_: never): {}\n\n readonly [TypeId]: typeof TypeId\n readonly _tag: Tag\n /**\n * One sentence saying what this flow does, for a catalog that lists it.\n *\n * It is a plain literal rather than an annotation because a discovered\n * `flows/<name>/flow.ts` is read WITHOUT being imported: `@smthrs/registry`\n * tokenizes the declaration and takes the description from it, so a flow that\n * states one only in an annotation is listed with nothing to read.\n */\n readonly description?: string | undefined\n readonly payloadSchema: Payload\n readonly successSchema: Success\n readonly errorSchema: Error\n readonly annotations: Context.Context<never>\n /** The renderer a prompt declaration supplies to its host. */\n readonly prompt?: ((payload: Payload[\"Type\"]) => string) | undefined\n /** The ordinary action a prompt declaration asks its host to implement. */\n readonly action?: Declared<any, Payload, Success, Error, any> | undefined\n /**\n * The pure plan-time body that IS this flow's behavior.\n *\n * The payload is decoded real data and the returned node only describes\n * topology. It is a FIELD rather than an injectable layer because there is\n * exactly one of it, it is pure, and its digest enters the flow's content\n * identity, so a flow cannot plan one way under one wiring and another way\n * under another. Purity includes closure capture: the body must not read\n * mutable module state, clocks, random values, services, or environment\n * values captured outside `payload`; source-digest identity cannot observe\n * those aliases changing. Work that genuinely wants opaque code is an\n * Action.\n *\n * `Requires` is read off this node. A body that names an action names an\n * implementation it does not carry, and that obligation travels with the flow\n * until something executes it.\n */\n readonly body: (payload: Payload[\"Type\"]) => Node.Node<BodySuccess<Success[\"Type\"]>, Error[\"Type\"], Requires>\n /**\n * Declares the stable key used when a caller supplies no execution id.\n *\n * The flow tag and returned key are JSON-tuple framed, then hashed as their\n * exact UTF-8 strings. No Unicode normalization is applied, and this preimage\n * encoding freezes at rc.0.\n */\n readonly idempotencyKey?: ((payload: Payload[\"Type\"]) => string) | undefined\n /**\n * How long ONE CALLER keeps polling a suspended execution of this flow.\n *\n * It is a per-caller wall-clock budget, not a bound on the run. `execute`\n * re-drives a parked execution on this schedule and gives up when the\n * schedule is spent; the execution stays parked, and the next caller — a\n * second process, a sweep, a resume — starts a budget of its own. Nothing\n * about it is durable, and a spent budget cancels nothing.\n *\n * What bounds work durably is an action's own `RetryPolicy`: the engine\n * restores `maxAttempts` from the persisted attempt sequence and the\n * `expirationMs` origin from the first attempt's start time, so those\n * survive park, resume, and process death.\n */\n readonly suspendedRetryPolicy?: RetryPolicy.RetryPolicy | undefined\n /**\n * How many rounds one trampoline lineage started from this flow may open.\n *\n * The bound is a BUDGET, not loop detection: identical consecutive rounds\n * are legal, so `docs/concepts/trampoline-rounds.md` stops a runaway\n * lineage by counting rounds instead of comparing them. Absent means\n * unbounded, which is the right default for a lineage whose exit condition\n * is its own branch. Exceeding it terminates the lineage with a\n * {@link module:MaxRoundsExceeded.MaxRoundsExceeded} defect recorded in the\n * execution result; it is not a typed `execute` failure.\n */\n readonly maxRounds?: number | undefined\n /**\n * How long one execution of this flow may take, counted from its first\n * start.\n *\n * The start is journaled, so the bound survives park, resume and process\n * death: a restarted engine honors the original deadline. On expiry the\n * execution settles with a {@link module:DeadlineExceeded.DeadlineExceeded}\n * defect whether it was running or parked, and its attached children are\n * cancelled with it. Absent means unbounded.\n */\n readonly deadline?: Duration.Duration | undefined\n\n /**\n * Describes an inline call to this flow without executing it.\n *\n * The callee's steps join the caller's plan, so the callee's requirements are\n * the caller's: `Requires` propagates.\n */\n readonly call: (\n payload: PlannedPayload<Payload[\"~type.make.in\"]>\n ) => Node.Node<Success[\"Type\"], Error[\"Type\"], Requires>\n\n /**\n * Describes an explicit child boundary: ONE node in the caller's plan, and a\n * real child execution when that node is driven.\n *\n * `.call()` splices this flow's body into the caller's plan, so every inner\n * step is visible and individually keyed. `.child()` is the other choice\n * `docs/concepts/flows-and-actions.md` gives: the callee keeps its\n * own execution, journal lineage, retry policy, and placement, and the caller\n * sees one leaf. It is also the way out of the two build refusals inline\n * expansion raises — a recursive `.call()` and a placement the caller cannot\n * satisfy.\n *\n * It is an execution boundary for requirements too, so `Requires` is DROPPED\n * rather than propagated: the child runs under its own driver, which provides\n * its own context, and the caller's plan holds one leaf naming it.\n */\n readonly child: (\n payload: PlannedPayload<Payload[\"~type.make.in\"]>\n ) => Node.Node<Success[\"Type\"], Error[\"Type\"]>\n\n /**\n * Describes a serializable invocation for the next trampoline round.\n *\n * A handoff ends this execution and names the next one, so `Requires` is\n * DROPPED here as well. That is also what keeps a self-loop's type finite: a\n * body that hands off to its own flow would otherwise have to name its own\n * requirements inside them.\n */\n readonly to: (\n payload: PlannedPayload<Payload[\"~type.make.in\"]>\n ) => Node.Node<To<Payload[\"Type\"]>>\n\n /**\n * Add an annotation to the flow.\n */\n annotate<I, S>(\n key: Context.Key<I, S>,\n value: S\n ): Flow<Tag, Payload, Success, Error, Requires>\n\n /**\n * Merge multiple annotations into the flow.\n */\n annotateMerge<I>(\n annotations: Context.Context<I>\n ): Flow<Tag, Payload, Success, Error, Requires>\n\n /**\n * Execute the flow with the given payload.\n *\n * This is where `Requires` is collected. Planning is requirement-free by\n * design, so a body that names an action nobody implemented is a legal plan\n * right up to here; asking to RUN it is what makes the missing layer a\n * compile error rather than a run that dies partway through.\n *\n * Identity comes from the first source that has one: the `executionId`\n * option, the flow's declared `idempotencyKey`, then the ambient\n * `CurrentExecutionIds` source, whose default mints a fresh UUID. Equal\n * unkeyed payloads start independent executions. Retain the execution id or\n * opt into a derived source to reattach after a crash.\n *\n * A payload that fails the flow's own schema is a typed\n * `Schema.SchemaError` failure carrying the offending field path — caller\n * input is data, not programmer wiring, so it fails rather than dies.\n */\n readonly execute: <const Discard extends boolean = false>(\n payload: Payload[\"~type.make.in\"],\n options?: {\n readonly discard?: Discard\n readonly executionId?: string | undefined\n }\n ) => Effect.Effect<\n Discard extends true ? string : Success[\"Type\"],\n Schema.SchemaError | FlowCycleDetected | ExecutionIdentityConflict | (Discard extends true ? never : Error[\"Type\"]),\n | FlowRuntime\n | Crypto.Crypto\n | Requires\n | Payload[\"EncodingServices\"]\n | Success[\"DecodingServices\"]\n | Error[\"DecodingServices\"]\n >\n\n /**\n * Starts a fresh execution and returns its id. Equal payloads start independent\n * executions; declared and ambient idempotency policies are intentionally bypassed.\n * Observe the execution with `poll`, or await it using `execute` with this id.\n */\n readonly start: (payload: Payload[\"~type.make.in\"]) => Effect.Effect<\n string,\n Schema.SchemaError | FlowCycleDetected,\n | FlowRuntime\n | Crypto.Crypto\n | Requires\n | Payload[\"EncodingServices\"]\n | Success[\"DecodingServices\"]\n | Error[\"DecodingServices\"]\n >\n\n /**\n * Starts or joins the execution identified by this flow tag and an explicit\n * caller key, returning its id. Reusing a key is an explicit retry/reattachment\n * decision. Existing persisted key encodings remain unchanged.\n */\n readonly ensure: (\n payload: Payload[\"~type.make.in\"],\n options: { readonly key: string }\n ) => ReturnType<Flow<Tag, Payload, Success, Error, Requires>[\"start\"]>\n\n /**\n * Poll the current status of a flow execution.\n *\n * `Option.none` means the execution is known and has not settled;\n * {@link FlowExecutionNotFound} means the runtime has no record of the\n * execution id at all.\n */\n readonly poll: (\n executionId: string\n ) => Effect.Effect<\n Option.Option<Result<Success[\"Type\"], Error[\"Type\"]>>,\n FlowExecutionNotFound,\n FlowRuntime | Success[\"DecodingServices\"] | Error[\"DecodingServices\"]\n >\n\n /**\n * Requests cancellation of the execution.\n *\n * This is not a pause operation. The engine interrupts active work while\n * preserving its normal cleanup, compensation, and child-flow semantics.\n * Calling `resume` does not undo the cancellation request.\n *\n * A durable engine records the cancellation request before it interrupts\n * anything, and reports {@link CancelRequestFailed} when that record could\n * not be written — the execution is then still running, so the caller sees\n * the storage failure instead of a false success. An in-memory engine has\n * nothing to record and never raises it.\n */\n readonly interrupt: (\n executionId: string\n ) => Effect.Effect<void, CancelRequestFailed, FlowRuntime>\n\n /**\n * Re-drives an execution that returned `Suspended` so it can replay its\n * durable history and continue after its awaited condition becomes ready.\n *\n * This does not resume an execution cancelled by `interrupt`, and it is not\n * needed for an execution that is already running or complete.\n *\n * It does NOT collect `Requires`, even though it re-drives the body. The\n * runtime captures the context a flow was REGISTERED under and merges it\n * beneath whatever a run supplies, so the implementations that made the first\n * round possible are the ones a re-driven round reaches; a resumer holding an\n * execution id is not the party that has them. `execute` remains the one\n * place a plan's requirements are asked for.\n */\n readonly resume: (\n executionId: string\n ) => Effect.Effect<void, never, FlowRuntime>\n\n /**\n * For the given payload, compute the execution ID `execute` would run under\n * when the caller names none.\n *\n * That is the flow's `idempotencyKey` when it declares one, and the ambient\n * `CurrentExecutionIds` source otherwise. It dies with `ExecutionIdRequired`\n * when the opt-in `derived` source cannot canonicalize the payload. The default\n * source mints a fresh UUID on each call; pass the returned id explicitly to\n * `execute` to select that invocation.\n *\n * A payload this flow's own schema refuses also dies as a defect here. This\n * differs from `execute`, which fails with a typed `Schema.SchemaError` for\n * the same caller input. A caller precomputing an id should validate the\n * payload first.\n */\n readonly executionId: (\n payload: Payload[\"~type.make.in\"]\n ) => Effect.Effect<string, never, Crypto.Crypto | Payload[\"EncodingServices\"]>\n\n /**\n * Runs an effect and registers how to undo its successful result if the\n * current round later exits unsuccessfully.\n *\n * If the effect itself fails, no rollback is registered. If both the effect\n * and the round succeed, the rollback is discarded. Otherwise the rollback\n * receives the effect's successful value and the round's failure cause when\n * the round's scope closes. Suspension keeps that scope open.\n *\n * A handoff completes the round successfully and discards its `withRollback` registrations.\n * A later round's failure cannot invoke those rollbacks. The engine does not\n * provide lineage-scoped compensation.\n *\n * This applies only to effects run directly inside the flow execution. It\n * does not attach rollback behavior to nested actions.\n */\n readonly withRollback: {\n <A, R2>(\n rollback: (\n value: A,\n cause: Cause.Cause<Error[\"Type\"]>\n ) => Effect.Effect<void, never, R2>\n ): <E, R>(\n effect: Effect.Effect<A, E, R>\n ) => Effect.Effect<\n A,\n E,\n R | R2 | FlowInstance | Scope.Scope\n >\n <A, E, R, R2>(\n effect: Effect.Effect<A, E, R>,\n rollback: (\n value: A,\n cause: Cause.Cause<Error[\"Type\"]>\n ) => Effect.Effect<void, never, R2>\n ): Effect.Effect<\n A,\n E,\n R | R2 | FlowInstance | Scope.Scope\n >\n }\n}\n\n/**\n * Schema constraint for flow payload schemas that expose struct fields.\n *\n * @category schemas\n * @since 0.1.0\n */\nexport interface AnyStructSchema extends Schema.Top {\n readonly fields: Schema.Struct.Fields\n}\n\n/**\n * Type-level marker for services associated with a specific flow\n * execution tag.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Execution<Tag extends string> {\n readonly _: unique symbol\n readonly _tag: Tag\n}\n\n/**\n * Type-erased flow shape for APIs that operate on flows without\n * preserving their specific payload, success, or error types.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Any extends DeclarationMetadata {\n new(_: never): {}\n\n readonly [TypeId]: typeof TypeId\n readonly _tag: string\n readonly description?: string | undefined\n readonly executionId: (payload: any) => Effect.Effect<string, never, any>\n readonly payloadSchema: AnyStructSchema\n readonly successSchema: Schema.Top\n readonly errorSchema: Schema.Top\n readonly annotations: Context.Context<never>\n readonly prompt?: ((payload: any) => string) | undefined\n readonly action?:\n | Pick<\n Declared<string, AnyStructSchema, Schema.Top, Schema.Top, any>,\n \"name\" | \"payloadSchema\" | \"successSchema\" | \"errorSchema\" | \"implementationVersion\" | \"annotations\"\n >\n | undefined\n readonly body: (payload: any) => Node.Node<unknown, unknown, any>\n readonly idempotencyKey?: ((payload: any) => string) | undefined\n readonly suspendedRetryPolicy?: RetryPolicy.RetryPolicy | undefined\n readonly maxRounds?: number | undefined\n readonly deadline?: Duration.Duration | undefined\n}\n\n/**\n * Type-erased flow shape that also exposes executable operations needed by\n * flow proxy and engine helpers.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface AnyWithProps extends Any {\n readonly payloadSchema: AnyStructSchema\n readonly successSchema: Schema.Top\n readonly errorSchema: Schema.Top\n readonly execute: (\n payload: any,\n options?: {\n readonly discard?: boolean\n readonly executionId?: string | undefined\n }\n ) => Effect.Effect<any, any, any>\n /**\n * Re-drives a durably suspended execution; it does not undo cancellation.\n */\n readonly resume: (\n executionId: string\n ) => Effect.Effect<void, never, FlowRuntime>\n}\n\n/**\n * Extracts the payload schema from a `Flow`.\n *\n * @category models\n * @since 0.1.0\n */\nexport type PayloadSchema<W> = W extends Flow<\n infer _Name,\n infer _Payload,\n infer _Success,\n infer _Error,\n infer _Requires\n> ? _Payload\n : never\n\n/**\n * Extracts the requirement channel of a `Flow`: the action implementations\n * its body names and does not carry.\n *\n * @category models\n * @since 0.1.0\n */\nexport type Requirements<W> = W extends Flow<\n infer _Name,\n infer _Payload,\n infer _Success,\n infer _Error,\n infer _Requires\n> ? _Requires\n : never\n\n/**\n * Computes the schema services required by clients that execute or poll\n * flows.\n *\n * @category models\n * @since 0.1.0\n */\nexport type RequirementsClient<Flows extends Any> = Flows extends Flow<\n infer _Name,\n infer _Payload,\n infer _Success,\n infer _Error,\n infer _Requires\n> ?\n | _Payload[\"EncodingServices\"]\n | _Success[\"DecodingServices\"]\n | _Error[\"DecodingServices\"]\n : never\n\n/**\n * Computes the schema services required by handlers that decode flow\n * payloads and encode flow results.\n *\n * @category models\n * @since 0.1.0\n */\nexport type RequirementsHandler<Flows extends Any> = Flows extends Flow<\n infer _Name,\n infer _Payload,\n infer _Success,\n infer _Error,\n infer _Requires\n> ?\n | _Payload[\"DecodingServices\"]\n | _Payload[\"EncodingServices\"]\n | _Success[\"DecodingServices\"]\n | _Success[\"EncodingServices\"]\n | _Error[\"DecodingServices\"]\n | _Error[\"EncodingServices\"]\n : never\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defect recorded when a trampoline lineage runs past its declared round budget.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Schema from "effect/Schema";
|
|
7
|
+
declare const MaxRoundsExceeded_base: Schema.Class<MaxRoundsExceeded, Schema.TaggedStruct<"@smthrs/flow/MaxRoundsExceeded", {
|
|
8
|
+
readonly code: Schema.withConstructorDefault<Schema.Literal<"max_rounds_exceeded">>;
|
|
9
|
+
readonly flowName: Schema.String;
|
|
10
|
+
readonly lineageId: Schema.String;
|
|
11
|
+
readonly maxRounds: Schema.Number;
|
|
12
|
+
readonly roundOrdinal: Schema.Number;
|
|
13
|
+
readonly message: Schema.String;
|
|
14
|
+
}>, import("effect/Cause").YieldableError>;
|
|
15
|
+
/**
|
|
16
|
+
* A lineage asked for one more round than its flow's `maxRounds` allows.
|
|
17
|
+
*
|
|
18
|
+
* `docs/concepts/trampoline-rounds.md` chooses a budget over loop
|
|
19
|
+
* detection: identical consecutive rounds are legal (a poller is exactly
|
|
20
|
+
* that), so the only honest stop condition is a declared bound on how many
|
|
21
|
+
* rounds one lineage may open. Exceeding it is terminal for the lineage — the
|
|
22
|
+
* round that asked for the handoff is settled with this defect rather than
|
|
23
|
+
* handed off — because a lineage that has run out of budget has nowhere left
|
|
24
|
+
* to continue, and letting it keep going would make the bound advisory.
|
|
25
|
+
*
|
|
26
|
+
* `roundOrdinal` is the zero-based ordinal of the round that was refused, so
|
|
27
|
+
* it always equals `maxRounds` when the refusal is raised.
|
|
28
|
+
*
|
|
29
|
+
* @category errors
|
|
30
|
+
* @since 0.1.0
|
|
31
|
+
*/
|
|
32
|
+
export declare class MaxRoundsExceeded extends MaxRoundsExceeded_base {
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=MaxRoundsExceeded.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaxRoundsExceeded.d.ts","sourceRoot":"","sources":["../../../src/Flow/MaxRoundsExceeded.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;;;;;AAEvC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAkB,SAAQ,sBAYtC;CAAG"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defect recorded when a trampoline lineage runs past its declared round budget.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Schema from "effect/Schema";
|
|
8
|
+
/**
|
|
9
|
+
* A lineage asked for one more round than its flow's `maxRounds` allows.
|
|
10
|
+
*
|
|
11
|
+
* `docs/concepts/trampoline-rounds.md` chooses a budget over loop
|
|
12
|
+
* detection: identical consecutive rounds are legal (a poller is exactly
|
|
13
|
+
* that), so the only honest stop condition is a declared bound on how many
|
|
14
|
+
* rounds one lineage may open. Exceeding it is terminal for the lineage — the
|
|
15
|
+
* round that asked for the handoff is settled with this defect rather than
|
|
16
|
+
* handed off — because a lineage that has run out of budget has nowhere left
|
|
17
|
+
* to continue, and letting it keep going would make the bound advisory.
|
|
18
|
+
*
|
|
19
|
+
* `roundOrdinal` is the zero-based ordinal of the round that was refused, so
|
|
20
|
+
* it always equals `maxRounds` when the refusal is raised.
|
|
21
|
+
*
|
|
22
|
+
* @category errors
|
|
23
|
+
* @since 0.1.0
|
|
24
|
+
*/
|
|
25
|
+
export class MaxRoundsExceeded extends Schema.TaggedError()("@smthrs/flow/MaxRoundsExceeded", {
|
|
26
|
+
code: Schema.Literal("max_rounds_exceeded").pipe(Schema.withConstructorDefault(Effect.succeed("max_rounds_exceeded"))),
|
|
27
|
+
flowName: Schema.String,
|
|
28
|
+
lineageId: Schema.String,
|
|
29
|
+
maxRounds: Schema.Number,
|
|
30
|
+
roundOrdinal: Schema.Number,
|
|
31
|
+
message: Schema.String
|
|
32
|
+
}) {
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=MaxRoundsExceeded.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaxRoundsExceeded.js","sourceRoot":"","sources":["../../../src/Flow/MaxRoundsExceeded.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,WAAW,EAAqB,CAC5E,gCAAgC,EAChC;IACE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CACrE;IACD,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,YAAY,EAAE,MAAM,CAAC,MAAM;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG","sourcesContent":["/**\n * Defect recorded when a trampoline lineage runs past its declared round budget.\n *\n * @since 0.1.0\n */\n\nimport * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\n\n/**\n * A lineage asked for one more round than its flow's `maxRounds` allows.\n *\n * `docs/concepts/trampoline-rounds.md` chooses a budget over loop\n * detection: identical consecutive rounds are legal (a poller is exactly\n * that), so the only honest stop condition is a declared bound on how many\n * rounds one lineage may open. Exceeding it is terminal for the lineage — the\n * round that asked for the handoff is settled with this defect rather than\n * handed off — because a lineage that has run out of budget has nowhere left\n * to continue, and letting it keep going would make the bound advisory.\n *\n * `roundOrdinal` is the zero-based ordinal of the round that was refused, so\n * it always equals `maxRounds` when the refusal is raised.\n *\n * @category errors\n * @since 0.1.0\n */\nexport class MaxRoundsExceeded extends Schema.TaggedError<MaxRoundsExceeded>()(\n \"@smthrs/flow/MaxRoundsExceeded\",\n {\n code: Schema.Literal(\"max_rounds_exceeded\").pipe(\n Schema.withConstructorDefault(Effect.succeed(\"max_rounds_exceeded\"))\n ),\n flowName: Schema.String,\n lineageId: Schema.String,\n maxRounds: Schema.Number,\n roundOrdinal: Schema.Number,\n message: Schema.String\n }\n) {}\n"]}
|