@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,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serializable values with which one flow round can settle.
|
|
3
|
+
*
|
|
4
|
+
* Engine handoff semantics are intentionally separate. These values contain
|
|
5
|
+
* only the completed value, the next flow invocation, or the durable waiting
|
|
6
|
+
* classification described by `docs/concepts/trampoline-rounds.md`.
|
|
7
|
+
*
|
|
8
|
+
* @since 0.1.0
|
|
9
|
+
*/
|
|
10
|
+
import type { CapabilityPattern } from "@smthrs/capability/Capability";
|
|
11
|
+
import * as Node from "@smthrs/plan/Node";
|
|
12
|
+
import * as Schema from "effect/Schema";
|
|
13
|
+
import { WaitingAnnotation } from "../FlowRuntime/WaitingAnnotation.ts";
|
|
14
|
+
/**
|
|
15
|
+
* A completed trampoline lineage value.
|
|
16
|
+
*
|
|
17
|
+
* @category models
|
|
18
|
+
* @since 0.1.0
|
|
19
|
+
*/
|
|
20
|
+
export interface Done<A> {
|
|
21
|
+
readonly _tag: "Done";
|
|
22
|
+
/**
|
|
23
|
+
* The completed value in its author-facing form. The engine encodes it with
|
|
24
|
+
* the settling flow's success schema at the settlement boundary; callers do
|
|
25
|
+
* not pre-encode values passed to {@link done}.
|
|
26
|
+
*/
|
|
27
|
+
readonly value: A;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A serializable invocation of the next flow round.
|
|
31
|
+
*
|
|
32
|
+
* @category models
|
|
33
|
+
* @since 0.1.0
|
|
34
|
+
*/
|
|
35
|
+
export interface To<Payload> {
|
|
36
|
+
readonly _tag: "To";
|
|
37
|
+
readonly flow: string;
|
|
38
|
+
readonly capabilityCeilings?: ReadonlyArray<ReadonlyArray<CapabilityPattern>>;
|
|
39
|
+
/**
|
|
40
|
+
* The next round's payload in its author-facing form. The engine encodes it
|
|
41
|
+
* with the target flow's payload schema at settlement, before persisting the
|
|
42
|
+
* handoff; callers do not pre-encode values passed to `Flow.to`.
|
|
43
|
+
*/
|
|
44
|
+
readonly payload: Payload;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A request to durably park the current flow round.
|
|
48
|
+
*
|
|
49
|
+
* @category models
|
|
50
|
+
* @since 0.1.0
|
|
51
|
+
*/
|
|
52
|
+
export interface Park {
|
|
53
|
+
readonly _tag: "Park";
|
|
54
|
+
readonly reason: WaitingAnnotation;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The three pure-data settlements a trampoline round can produce.
|
|
58
|
+
*
|
|
59
|
+
* @category models
|
|
60
|
+
* @since 0.1.0
|
|
61
|
+
*/
|
|
62
|
+
export type Outcome<A = unknown, Payload = unknown> = Done<A> | To<Payload> | Park;
|
|
63
|
+
/**
|
|
64
|
+
* Schema for completed trampoline lineage values.
|
|
65
|
+
*
|
|
66
|
+
* @category schemas
|
|
67
|
+
* @since 0.1.0
|
|
68
|
+
*/
|
|
69
|
+
export declare const Done: Schema.Struct<{
|
|
70
|
+
readonly _tag: Schema.tag<"Done">;
|
|
71
|
+
readonly value: Schema.Unknown;
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* Schema for next-round flow invocations.
|
|
75
|
+
*
|
|
76
|
+
* @category schemas
|
|
77
|
+
* @since 0.1.0
|
|
78
|
+
*/
|
|
79
|
+
export declare const To: Schema.Struct<{
|
|
80
|
+
readonly _tag: Schema.tag<"To">;
|
|
81
|
+
readonly flow: Schema.String;
|
|
82
|
+
readonly payload: Schema.Unknown;
|
|
83
|
+
}>;
|
|
84
|
+
/**
|
|
85
|
+
* Schema for durable trampoline parking requests.
|
|
86
|
+
*
|
|
87
|
+
* @category schemas
|
|
88
|
+
* @since 0.1.0
|
|
89
|
+
*/
|
|
90
|
+
export declare const Park: Schema.Struct<{
|
|
91
|
+
readonly _tag: Schema.tag<"Park">;
|
|
92
|
+
readonly reason: Schema.Struct<{
|
|
93
|
+
readonly reason: Schema.String;
|
|
94
|
+
readonly wakeAt: Schema.optional<Schema.Number>;
|
|
95
|
+
readonly token: Schema.optional<Schema.String>;
|
|
96
|
+
readonly request: Schema.optional<Schema.String>;
|
|
97
|
+
}>;
|
|
98
|
+
}>;
|
|
99
|
+
/**
|
|
100
|
+
* Schema for every pure-data trampoline settlement.
|
|
101
|
+
*
|
|
102
|
+
* @category schemas
|
|
103
|
+
* @since 0.1.0
|
|
104
|
+
*/
|
|
105
|
+
export declare const Outcome: Schema.Union<readonly [Schema.Struct<{
|
|
106
|
+
readonly _tag: Schema.tag<"Done">;
|
|
107
|
+
readonly value: Schema.Unknown;
|
|
108
|
+
}>, Schema.Struct<{
|
|
109
|
+
readonly _tag: Schema.tag<"To">;
|
|
110
|
+
readonly flow: Schema.String;
|
|
111
|
+
readonly payload: Schema.Unknown;
|
|
112
|
+
}>, Schema.Struct<{
|
|
113
|
+
readonly _tag: Schema.tag<"Park">;
|
|
114
|
+
readonly reason: Schema.Struct<{
|
|
115
|
+
readonly reason: Schema.String;
|
|
116
|
+
readonly wakeAt: Schema.optional<Schema.Number>;
|
|
117
|
+
readonly token: Schema.optional<Schema.String>;
|
|
118
|
+
readonly request: Schema.optional<Schema.String>;
|
|
119
|
+
}>;
|
|
120
|
+
}>]>;
|
|
121
|
+
/**
|
|
122
|
+
* Constructs a completed trampoline lineage value using Node.succeed's JSON
|
|
123
|
+
* projection. Pass a planned reference to retain an upstream domain value.
|
|
124
|
+
*
|
|
125
|
+
* @category constructors
|
|
126
|
+
* @since 0.1.0
|
|
127
|
+
*/
|
|
128
|
+
export declare const done: <A>(value: A) => Node.Node<Node.Succeed<Done<A>>>;
|
|
129
|
+
/**
|
|
130
|
+
* Constructs a durable parking request using the runtime waiting vocabulary.
|
|
131
|
+
*
|
|
132
|
+
* The two forms describe the same wait. The record is the whole waiting
|
|
133
|
+
* vocabulary, and is what a park with a deadline needs; the positional form is
|
|
134
|
+
* the common case — a reason and the token a wake handler matches against —
|
|
135
|
+
* written the way an author says it out loud, `Flow.park("approval", requestId)`.
|
|
136
|
+
* A positional call with no token omits the field rather than parking under an
|
|
137
|
+
* empty one.
|
|
138
|
+
*
|
|
139
|
+
* @category constructors
|
|
140
|
+
* @since 0.1.0
|
|
141
|
+
*/
|
|
142
|
+
export declare const park: {
|
|
143
|
+
(reason: WaitingAnnotation): Node.Node<Park>;
|
|
144
|
+
(reason: string, token?: string | undefined): Node.Node<Park>;
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* Whether a settled body value is one of the three trampoline settlements.
|
|
148
|
+
*
|
|
149
|
+
* A body's root node may settle with anything its author wrote; only these
|
|
150
|
+
* three values authored through {@link done}, a flow's `to` method, or
|
|
151
|
+
* {@link park} ask the engine for a settlement other than "this value is the
|
|
152
|
+
* answer". Shape alone is deliberately insufficient: ordinary success data
|
|
153
|
+
* may legally contain the same `_tag` fields. Graph construction carries a
|
|
154
|
+
* non-enumerable marker from the explicit authoring node to its hydrated
|
|
155
|
+
* value, and encoded outcome records remain plain data until decoded by the
|
|
156
|
+
* runtime surface that owns them.
|
|
157
|
+
*
|
|
158
|
+
* @category refinements
|
|
159
|
+
* @since 0.1.0
|
|
160
|
+
*/
|
|
161
|
+
export declare const isOutcome: (value: unknown) => value is Outcome;
|
|
162
|
+
//# sourceMappingURL=Outcome.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Outcome.d.ts","sourceRoot":"","sources":["../../../src/Flow/Outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAcvE;;;;;GAKG;AACH,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,EAAE,CAAC,OAAO;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC7E;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;CACnC;AAED;;;;;GAKG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;AAElF;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;;EAGf,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,EAAE;;;;EAIb,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;;;;;;;EAGf,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;IAAiC,CAAA;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAkD,CAAA;AAEpH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,EAAE;IACjB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;CAS3D,CAAA;AAEJ;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,OAMnD,CAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var Outcome_exports = {};
|
|
30
|
+
__export(Outcome_exports, {
|
|
31
|
+
Done: () => Done,
|
|
32
|
+
Outcome: () => Outcome,
|
|
33
|
+
Park: () => Park,
|
|
34
|
+
To: () => To,
|
|
35
|
+
done: () => done,
|
|
36
|
+
isOutcome: () => isOutcome,
|
|
37
|
+
park: () => park
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(Outcome_exports);
|
|
40
|
+
var Node = __toESM(require("@smthrs/plan/Node"), 1);
|
|
41
|
+
var Schema = __toESM(require("effect/Schema"), 1);
|
|
42
|
+
var import_WaitingAnnotation = require("../FlowRuntime/WaitingAnnotation.js");
|
|
43
|
+
var import_OutcomeMarker = require("../internal/OutcomeMarker.js");
|
|
44
|
+
const outcomeNode = (value) => {
|
|
45
|
+
const node = Node.succeed(value);
|
|
46
|
+
Object.defineProperty(node.ast, import_OutcomeMarker.OutcomeNodeTypeId, {
|
|
47
|
+
configurable: false,
|
|
48
|
+
enumerable: false,
|
|
49
|
+
value: value._tag,
|
|
50
|
+
writable: false
|
|
51
|
+
});
|
|
52
|
+
return node;
|
|
53
|
+
};
|
|
54
|
+
const Done = Schema.Struct({
|
|
55
|
+
_tag: Schema.tag("Done"),
|
|
56
|
+
value: Schema.Unknown
|
|
57
|
+
});
|
|
58
|
+
const To = Schema.Struct({
|
|
59
|
+
_tag: Schema.tag("To"),
|
|
60
|
+
flow: Schema.String,
|
|
61
|
+
payload: Schema.Unknown
|
|
62
|
+
});
|
|
63
|
+
const Park = Schema.Struct({
|
|
64
|
+
_tag: Schema.tag("Park"),
|
|
65
|
+
reason: import_WaitingAnnotation.WaitingAnnotation
|
|
66
|
+
});
|
|
67
|
+
const Outcome = Schema.Union([Done, To, Park]);
|
|
68
|
+
const done = (value) => outcomeNode({ _tag: "Done", value });
|
|
69
|
+
const park = (reason, token) => outcomeNode({
|
|
70
|
+
_tag: "Park",
|
|
71
|
+
reason: typeof reason !== "string" ? reason : token === void 0 ? { reason } : { reason, token }
|
|
72
|
+
});
|
|
73
|
+
const isOutcome = (value) => {
|
|
74
|
+
if (typeof value !== "object" || value === null) return false;
|
|
75
|
+
const marker = Object.getOwnPropertyDescriptor(value, import_OutcomeMarker.OutcomeValueTypeId);
|
|
76
|
+
if (marker === void 0 || !("value" in marker)) return false;
|
|
77
|
+
const tag = Object.getOwnPropertyDescriptor(value, "_tag");
|
|
78
|
+
return tag !== void 0 && "value" in tag && marker.value === tag.value && Schema.is(Outcome)(value);
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=Outcome.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Flow/Outcome.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Serializable values with which one flow round can settle.\n *\n * Engine handoff semantics are intentionally separate. These values contain\n * only the completed value, the next flow invocation, or the durable waiting\n * classification described by `docs/concepts/trampoline-rounds.md`.\n *\n * @since 0.1.0\n */\n\nimport type { CapabilityPattern } from \"@smthrs/capability/Capability\"\nimport * as Node from \"@smthrs/plan/Node\"\nimport * as Schema from \"effect/Schema\"\nimport { WaitingAnnotation } from \"../FlowRuntime/WaitingAnnotation.ts\"\nimport { OutcomeNodeTypeId, OutcomeValueTypeId } from \"../internal/OutcomeMarker.ts\"\n\nconst outcomeNode = <A extends Outcome>(value: A): Node.Node<Node.Succeed<A>> => {\n const node = Node.succeed(value)\n Object.defineProperty(node.ast, OutcomeNodeTypeId, {\n configurable: false,\n enumerable: false,\n value: value._tag,\n writable: false\n })\n return node\n}\n\n/**\n * A completed trampoline lineage value.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Done<A> {\n readonly _tag: \"Done\"\n /**\n * The completed value in its author-facing form. The engine encodes it with\n * the settling flow's success schema at the settlement boundary; callers do\n * not pre-encode values passed to {@link done}.\n */\n readonly value: A\n}\n\n/**\n * A serializable invocation of the next flow round.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface To<Payload> {\n readonly _tag: \"To\"\n readonly flow: string\n readonly capabilityCeilings?: ReadonlyArray<ReadonlyArray<CapabilityPattern>>\n /**\n * The next round's payload in its author-facing form. The engine encodes it\n * with the target flow's payload schema at settlement, before persisting the\n * handoff; callers do not pre-encode values passed to `Flow.to`.\n */\n readonly payload: Payload\n}\n\n/**\n * A request to durably park the current flow round.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Park {\n readonly _tag: \"Park\"\n readonly reason: WaitingAnnotation\n}\n\n/**\n * The three pure-data settlements a trampoline round can produce.\n *\n * @category models\n * @since 0.1.0\n */\nexport type Outcome<A = unknown, Payload = unknown> = Done<A> | To<Payload> | Park\n\n/**\n * Schema for completed trampoline lineage values.\n *\n * @category schemas\n * @since 0.1.0\n */\nexport const Done = Schema.Struct({\n _tag: Schema.tag(\"Done\"),\n value: Schema.Unknown\n})\n\n/**\n * Schema for next-round flow invocations.\n *\n * @category schemas\n * @since 0.1.0\n */\nexport const To = Schema.Struct({\n _tag: Schema.tag(\"To\"),\n flow: Schema.String,\n payload: Schema.Unknown\n})\n\n/**\n * Schema for durable trampoline parking requests.\n *\n * @category schemas\n * @since 0.1.0\n */\nexport const Park = Schema.Struct({\n _tag: Schema.tag(\"Park\"),\n reason: WaitingAnnotation\n})\n\n/**\n * Schema for every pure-data trampoline settlement.\n *\n * @category schemas\n * @since 0.1.0\n */\nexport const Outcome = Schema.Union([Done, To, Park])\n\n/**\n * Constructs a completed trampoline lineage value using Node.succeed's JSON\n * projection. Pass a planned reference to retain an upstream domain value.\n *\n * @category constructors\n * @since 0.1.0\n */\nexport const done = <A>(value: A): Node.Node<Node.Succeed<Done<A>>> => outcomeNode<Done<A>>({ _tag: \"Done\", value })\n\n/**\n * Constructs a durable parking request using the runtime waiting vocabulary.\n *\n * The two forms describe the same wait. The record is the whole waiting\n * vocabulary, and is what a park with a deadline needs; the positional form is\n * the common case \u2014 a reason and the token a wake handler matches against \u2014\n * written the way an author says it out loud, `Flow.park(\"approval\", requestId)`.\n * A positional call with no token omits the field rather than parking under an\n * empty one.\n *\n * @category constructors\n * @since 0.1.0\n */\nexport const park: {\n (reason: WaitingAnnotation): Node.Node<Park>\n (reason: string, token?: string | undefined): Node.Node<Park>\n} = (reason: WaitingAnnotation | string, token?: string | undefined): Node.Node<Park> =>\n outcomeNode({\n _tag: \"Park\",\n reason: typeof reason !== \"string\"\n ? reason\n : token === undefined\n ? { reason }\n : { reason, token }\n })\n\n/**\n * Whether a settled body value is one of the three trampoline settlements.\n *\n * A body's root node may settle with anything its author wrote; only these\n * three values authored through {@link done}, a flow's `to` method, or\n * {@link park} ask the engine for a settlement other than \"this value is the\n * answer\". Shape alone is deliberately insufficient: ordinary success data\n * may legally contain the same `_tag` fields. Graph construction carries a\n * non-enumerable marker from the explicit authoring node to its hydrated\n * value, and encoded outcome records remain plain data until decoded by the\n * runtime surface that owns them.\n *\n * @category refinements\n * @since 0.1.0\n */\nexport const isOutcome = (value: unknown): value is Outcome => {\n if (typeof value !== \"object\" || value === null) return false\n const marker = Object.getOwnPropertyDescriptor(value, OutcomeValueTypeId)\n if (marker === undefined || !(\"value\" in marker)) return false\n const tag = Object.getOwnPropertyDescriptor(value, \"_tag\")\n return tag !== undefined && \"value\" in tag && marker.value === tag.value && Schema.is(Outcome)(value)\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,WAAsB;AACtB,aAAwB;AACxB,+BAAkC;AAClC,2BAAsD;AAEtD,MAAM,cAAc,CAAoB,UAAyC;AAC/E,QAAM,OAAO,KAAK,QAAQ,KAAK;AAC/B,SAAO,eAAe,KAAK,KAAK,wCAAmB;AAAA,IACjD,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,OAAO,MAAM;AAAA,IACb,UAAU;AAAA,EACZ,CAAC;AACD,SAAO;AACT;AA6DO,MAAM,OAAO,OAAO,OAAO;AAAA,EAChC,MAAM,OAAO,IAAI,MAAM;AAAA,EACvB,OAAO,OAAO;AAChB,CAAC;AAQM,MAAM,KAAK,OAAO,OAAO;AAAA,EAC9B,MAAM,OAAO,IAAI,IAAI;AAAA,EACrB,MAAM,OAAO;AAAA,EACb,SAAS,OAAO;AAClB,CAAC;AAQM,MAAM,OAAO,OAAO,OAAO;AAAA,EAChC,MAAM,OAAO,IAAI,MAAM;AAAA,EACvB,QAAQ;AACV,CAAC;AAQM,MAAM,UAAU,OAAO,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;AAS7C,MAAM,OAAO,CAAI,UAA+C,YAAqB,EAAE,MAAM,QAAQ,MAAM,CAAC;AAe5G,MAAM,OAGT,CAAC,QAAoC,UACvC,YAAY;AAAA,EACV,MAAM;AAAA,EACN,QAAQ,OAAO,WAAW,WACtB,SACA,UAAU,SACV,EAAE,OAAO,IACT,EAAE,QAAQ,MAAM;AACtB,CAAC;AAiBI,MAAM,YAAY,CAAC,UAAqC;AAC7D,MAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;AACxD,QAAM,SAAS,OAAO,yBAAyB,OAAO,uCAAkB;AACxE,MAAI,WAAW,UAAa,EAAE,WAAW,QAAS,QAAO;AACzD,QAAM,MAAM,OAAO,yBAAyB,OAAO,MAAM;AACzD,SAAO,QAAQ,UAAa,WAAW,OAAO,OAAO,UAAU,IAAI,SAAS,OAAO,GAAG,OAAO,EAAE,KAAK;AACtG;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serializable completion and suspension states returned by flow executions.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.1.0
|
|
5
|
+
*/
|
|
6
|
+
import { CapabilityPattern } from "@smthrs/capability/Capability";
|
|
7
|
+
import type * as Exit from "effect/Exit";
|
|
8
|
+
import * as Schema from "effect/Schema";
|
|
9
|
+
import type { ExitEncoded } from "effect/unstable/rpc/RpcMessage";
|
|
10
|
+
declare const ResultTypeId = "@smthrs/flow/Flow/Result";
|
|
11
|
+
/**
|
|
12
|
+
* Returns `true` when a value is a flow `Result`.
|
|
13
|
+
*
|
|
14
|
+
* @category results
|
|
15
|
+
* @since 0.1.0
|
|
16
|
+
*/
|
|
17
|
+
export declare const isResult: <A = unknown, E = unknown>(u: unknown) => u is Result<A, E>;
|
|
18
|
+
/**
|
|
19
|
+
* Result of a flow execution: a completed exit, a suspended flow state, or a
|
|
20
|
+
* handoff to the next round of a trampoline lineage.
|
|
21
|
+
*
|
|
22
|
+
* @category results
|
|
23
|
+
* @since 0.1.0
|
|
24
|
+
*/
|
|
25
|
+
export type Result<A, E> = Complete<A, E> | Suspended | Handoff;
|
|
26
|
+
/**
|
|
27
|
+
* Encoded representation of a flow `Result`.
|
|
28
|
+
*
|
|
29
|
+
* @category results
|
|
30
|
+
* @since 0.1.0
|
|
31
|
+
*/
|
|
32
|
+
export type ResultEncoded<A, E> = CompleteEncoded<A, E> | typeof Suspended.Encoded | typeof Handoff.Encoded;
|
|
33
|
+
/**
|
|
34
|
+
* Encoded representation of a completed flow result containing an encoded
|
|
35
|
+
* `Exit`.
|
|
36
|
+
*
|
|
37
|
+
* @category results
|
|
38
|
+
* @since 0.1.0
|
|
39
|
+
*/
|
|
40
|
+
export interface CompleteEncoded<A, E> {
|
|
41
|
+
readonly _tag: "Complete";
|
|
42
|
+
readonly exit: ExitEncoded<A, E>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Schema constructor for `Complete` flow results using the supplied
|
|
46
|
+
* success and error schemas.
|
|
47
|
+
*
|
|
48
|
+
* @category schemas
|
|
49
|
+
* @since 0.1.0
|
|
50
|
+
*/
|
|
51
|
+
export interface CompleteSchema<Success extends Schema.Constraint, Error extends Schema.Constraint> extends Schema.declareConstructor<Complete<Success["Type"], Error["Type"]>, Complete<Success["Encoded"], Error["Encoded"]>, readonly [Schema.Exit<Success, Error, Schema.Defect>]> {
|
|
52
|
+
readonly success: Success;
|
|
53
|
+
readonly error: Error;
|
|
54
|
+
}
|
|
55
|
+
declare const Complete_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }>) => Readonly<A_1> & {
|
|
56
|
+
readonly _tag: "Complete";
|
|
57
|
+
} & import("effect/Pipeable").Pipeable;
|
|
58
|
+
/**
|
|
59
|
+
* Represents a completed flow execution with its success or failure `Exit`.
|
|
60
|
+
*
|
|
61
|
+
* @category results
|
|
62
|
+
* @since 0.1.0
|
|
63
|
+
*/
|
|
64
|
+
export declare class Complete<A, E> extends Complete_base<{
|
|
65
|
+
readonly exit: Exit.Exit<A, E>;
|
|
66
|
+
}> {
|
|
67
|
+
/**
|
|
68
|
+
* Marks this value as a flow result for runtime guards.
|
|
69
|
+
*
|
|
70
|
+
* @since 0.1.0
|
|
71
|
+
*/
|
|
72
|
+
readonly [ResultTypeId] = "@smthrs/flow/Flow/Result";
|
|
73
|
+
/**
|
|
74
|
+
* Builds the schema for completed flow results from success and error schemas.
|
|
75
|
+
*
|
|
76
|
+
* @since 0.1.0
|
|
77
|
+
*/
|
|
78
|
+
static Schema<Success extends Schema.Constraint, Error extends Schema.Constraint>(options: {
|
|
79
|
+
readonly success: Success;
|
|
80
|
+
readonly error: Error;
|
|
81
|
+
}): CompleteSchema<Success, Error>;
|
|
82
|
+
}
|
|
83
|
+
declare const Suspended_base: Schema.Class<Suspended, Schema.Struct<{
|
|
84
|
+
readonly _tag: Schema.tag<"Suspended">;
|
|
85
|
+
readonly cause: Schema.optional<Schema.Cause<Schema.Never, Schema.Defect>>;
|
|
86
|
+
}>, {}>;
|
|
87
|
+
/**
|
|
88
|
+
* Represents a suspended flow execution, optionally carrying the cause that
|
|
89
|
+
* triggered suspension.
|
|
90
|
+
*
|
|
91
|
+
* @category results
|
|
92
|
+
* @since 0.1.0
|
|
93
|
+
*/
|
|
94
|
+
export declare class Suspended extends Suspended_base {
|
|
95
|
+
/**
|
|
96
|
+
* Marks this value as a flow result for runtime guards.
|
|
97
|
+
*
|
|
98
|
+
* @since 0.1.0
|
|
99
|
+
*/
|
|
100
|
+
readonly [ResultTypeId] = "@smthrs/flow/Flow/Result";
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* The deadline a trampoline lineage's rounds share: the journaled first start
|
|
104
|
+
* of its originating round and the bound in milliseconds, so every round
|
|
105
|
+
* expires at `startedAtMs + deadlineMs`.
|
|
106
|
+
*
|
|
107
|
+
* @category results
|
|
108
|
+
* @since 1.0.0
|
|
109
|
+
*/
|
|
110
|
+
export declare const LineageDeadline: Schema.Struct<{
|
|
111
|
+
readonly startedAtMs: Schema.Number;
|
|
112
|
+
readonly deadlineMs: Schema.Number;
|
|
113
|
+
}>;
|
|
114
|
+
/**
|
|
115
|
+
* The deadline a trampoline lineage's rounds share.
|
|
116
|
+
*
|
|
117
|
+
* @category results
|
|
118
|
+
* @since 1.0.0
|
|
119
|
+
*/
|
|
120
|
+
export type LineageDeadline = typeof LineageDeadline.Type;
|
|
121
|
+
declare const Handoff_base: Schema.Class<Handoff, Schema.Struct<{
|
|
122
|
+
readonly _tag: Schema.tag<"Handoff">;
|
|
123
|
+
readonly flow: Schema.NonEmptyString;
|
|
124
|
+
readonly capabilityCeilings: Schema.optionalKey<Schema.$Array<Schema.$Array<typeof CapabilityPattern>>>;
|
|
125
|
+
readonly payload: Schema.Unknown;
|
|
126
|
+
/**
|
|
127
|
+
* The lineage deadline the next round runs under, stamped by the round
|
|
128
|
+
* that handed off when its lineage is bounded (`Deadline.bound`).
|
|
129
|
+
*/
|
|
130
|
+
readonly deadline: Schema.optionalKey<Schema.Struct<{
|
|
131
|
+
readonly startedAtMs: Schema.Number;
|
|
132
|
+
readonly deadlineMs: Schema.Number;
|
|
133
|
+
}>>;
|
|
134
|
+
}>, {}>;
|
|
135
|
+
/**
|
|
136
|
+
* Represents a flow round that ended by handing off to the next round of its
|
|
137
|
+
* trampoline lineage.
|
|
138
|
+
*
|
|
139
|
+
* A round settles this way when its body's root value is a `to` invocation
|
|
140
|
+
* (`docs/concepts/trampoline-rounds.md`): the round produced no answer of
|
|
141
|
+
* its own, it produced the NEXT flow to run. `flow` is the target's tag, so the
|
|
142
|
+
* value survives the journal and the run row unchanged.
|
|
143
|
+
*
|
|
144
|
+
* DECIDED: `payload` is the target's payload in
|
|
145
|
+
* ENCODED form. The target's `to` method accepts its ordinary constructor
|
|
146
|
+
* shape so authoring stays aligned with `call` and `execute`; the body
|
|
147
|
+
* interpreter resolves planned references and encodes the invocation through
|
|
148
|
+
* the target declaration before constructing `Handoff`. The receiving round
|
|
149
|
+
* decodes those bytes through the same schema.
|
|
150
|
+
*
|
|
151
|
+
* It is a third settlement rather than a `Complete` carrying a magic value
|
|
152
|
+
* because the engine has to tell "this run answered" from "this run continues
|
|
153
|
+
* elsewhere" without decoding against a success schema the handoff never
|
|
154
|
+
* satisfies.
|
|
155
|
+
*
|
|
156
|
+
* @category results
|
|
157
|
+
* @since 0.1.0
|
|
158
|
+
*/
|
|
159
|
+
export declare class Handoff extends Handoff_base {
|
|
160
|
+
/**
|
|
161
|
+
* Marks this value as a flow result for runtime guards.
|
|
162
|
+
*
|
|
163
|
+
* @since 0.1.0
|
|
164
|
+
*/
|
|
165
|
+
readonly [ResultTypeId] = "@smthrs/flow/Flow/Result";
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Creates a schema for flow results using the supplied success and error
|
|
169
|
+
* schemas.
|
|
170
|
+
*
|
|
171
|
+
* @category results
|
|
172
|
+
* @since 0.1.0
|
|
173
|
+
*/
|
|
174
|
+
export declare const Result: <Success extends Schema.Constraint, Error extends Schema.Constraint>(options: {
|
|
175
|
+
readonly success: Success;
|
|
176
|
+
readonly error: Error;
|
|
177
|
+
}) => Schema.Union<readonly [CompleteSchema<Success, Error>, typeof Suspended, typeof Handoff]>;
|
|
178
|
+
/**
|
|
179
|
+
* Schema for encoded flow results with generic success and error payloads.
|
|
180
|
+
*
|
|
181
|
+
* @category results
|
|
182
|
+
* @since 0.1.0
|
|
183
|
+
*/
|
|
184
|
+
export declare const ResultEncoded: Schema.Codec<ResultEncoded<any, any>>;
|
|
185
|
+
export {};
|
|
186
|
+
//# sourceMappingURL=Result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../../src/Flow/Result.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var Result_exports = {};
|
|
30
|
+
__export(Result_exports, {
|
|
31
|
+
Complete: () => Complete,
|
|
32
|
+
Handoff: () => Handoff,
|
|
33
|
+
LineageDeadline: () => LineageDeadline,
|
|
34
|
+
Result: () => Result,
|
|
35
|
+
ResultEncoded: () => ResultEncoded,
|
|
36
|
+
Suspended: () => Suspended,
|
|
37
|
+
isResult: () => isResult
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(Result_exports);
|
|
40
|
+
var import_Capability = require("@smthrs/capability/Capability");
|
|
41
|
+
var Data = __toESM(require("effect/Data"), 1);
|
|
42
|
+
var Effect = __toESM(require("effect/Effect"), 1);
|
|
43
|
+
var Schema = __toESM(require("effect/Schema"), 1);
|
|
44
|
+
var SchemaIssue = __toESM(require("effect/SchemaIssue"), 1);
|
|
45
|
+
var SchemaParser = __toESM(require("effect/SchemaParser"), 1);
|
|
46
|
+
var Transformation = __toESM(require("effect/SchemaTransformation"), 1);
|
|
47
|
+
const ResultTypeId = "@smthrs/flow/Flow/Result";
|
|
48
|
+
const isResult = (u) => {
|
|
49
|
+
if (u !== Object(u)) return false;
|
|
50
|
+
const marker = Object.getOwnPropertyDescriptor(u, ResultTypeId);
|
|
51
|
+
if (marker === void 0 || !("value" in marker) || marker.value !== ResultTypeId) return false;
|
|
52
|
+
const tag = Object.getOwnPropertyDescriptor(u, "_tag");
|
|
53
|
+
return tag !== void 0 && "value" in tag && (tag.value === "Complete" || tag.value === "Suspended" || tag.value === "Handoff");
|
|
54
|
+
};
|
|
55
|
+
class Complete extends Data.TaggedClass("Complete") {
|
|
56
|
+
/**
|
|
57
|
+
* Marks this value as a flow result for runtime guards.
|
|
58
|
+
*
|
|
59
|
+
* @since 0.1.0
|
|
60
|
+
*/
|
|
61
|
+
[ResultTypeId] = ResultTypeId;
|
|
62
|
+
/**
|
|
63
|
+
* Builds the schema for completed flow results from success and error schemas.
|
|
64
|
+
*
|
|
65
|
+
* @since 0.1.0
|
|
66
|
+
*/
|
|
67
|
+
static Schema(options) {
|
|
68
|
+
const schema = Schema.declareConstructor()(
|
|
69
|
+
[Schema.Exit(options.success, options.error, Schema.Defect())],
|
|
70
|
+
([exit]) => (input, ast, options2) => {
|
|
71
|
+
if (!(isResult(input) && input._tag === "Complete")) {
|
|
72
|
+
return Effect.fail(new SchemaIssue.InvalidType(ast, input, options2));
|
|
73
|
+
}
|
|
74
|
+
return Effect.mapBothEager(
|
|
75
|
+
SchemaParser.decodeEffect(exit)(input.exit, options2),
|
|
76
|
+
{
|
|
77
|
+
onSuccess: (exit2) => new Complete({ exit: exit2 }),
|
|
78
|
+
onFailure: (issue) => new SchemaIssue.Composite(
|
|
79
|
+
ast,
|
|
80
|
+
[
|
|
81
|
+
new SchemaIssue.Pointer(["exit"], issue)
|
|
82
|
+
],
|
|
83
|
+
input,
|
|
84
|
+
options2
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
expected: "Flow.Complete",
|
|
91
|
+
toCodecJson: ([exit]) => Schema.link()(
|
|
92
|
+
Schema.Struct({
|
|
93
|
+
_tag: Schema.tag("Complete"),
|
|
94
|
+
exit
|
|
95
|
+
}),
|
|
96
|
+
Transformation.transform({
|
|
97
|
+
decode: (encoded) => new Complete({ exit: encoded.exit }),
|
|
98
|
+
encode: (result) => ({
|
|
99
|
+
_tag: "Complete",
|
|
100
|
+
exit: result.exit
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
)
|
|
104
|
+
}
|
|
105
|
+
);
|
|
106
|
+
return Schema.make(schema.ast, {
|
|
107
|
+
success: options.success,
|
|
108
|
+
error: options.error
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
class Suspended extends Schema.Class(
|
|
113
|
+
"@smthrs/flow/Flow/Suspended"
|
|
114
|
+
)({
|
|
115
|
+
_tag: Schema.tag("Suspended"),
|
|
116
|
+
cause: Schema.optional(Schema.Cause(Schema.Never, Schema.Defect()))
|
|
117
|
+
}) {
|
|
118
|
+
/**
|
|
119
|
+
* Marks this value as a flow result for runtime guards.
|
|
120
|
+
*
|
|
121
|
+
* @since 0.1.0
|
|
122
|
+
*/
|
|
123
|
+
[ResultTypeId] = ResultTypeId;
|
|
124
|
+
}
|
|
125
|
+
const LineageDeadline = Schema.Struct({
|
|
126
|
+
startedAtMs: Schema.Number,
|
|
127
|
+
deadlineMs: Schema.Number
|
|
128
|
+
});
|
|
129
|
+
class Handoff extends Schema.Class(
|
|
130
|
+
"@smthrs/flow/Flow/Handoff"
|
|
131
|
+
)({
|
|
132
|
+
_tag: Schema.tag("Handoff"),
|
|
133
|
+
flow: Schema.NonEmptyString,
|
|
134
|
+
capabilityCeilings: Schema.optionalKey(Schema.Array(Schema.Array(import_Capability.CapabilityPattern))),
|
|
135
|
+
payload: Schema.Unknown,
|
|
136
|
+
/**
|
|
137
|
+
* The lineage deadline the next round runs under, stamped by the round
|
|
138
|
+
* that handed off when its lineage is bounded (`Deadline.bound`).
|
|
139
|
+
*/
|
|
140
|
+
deadline: Schema.optionalKey(LineageDeadline)
|
|
141
|
+
}) {
|
|
142
|
+
/**
|
|
143
|
+
* Marks this value as a flow result for runtime guards.
|
|
144
|
+
*
|
|
145
|
+
* @since 0.1.0
|
|
146
|
+
*/
|
|
147
|
+
[ResultTypeId] = ResultTypeId;
|
|
148
|
+
}
|
|
149
|
+
const Result = (options) => Schema.Union([Complete.Schema(options), Suspended, Handoff]);
|
|
150
|
+
const AnyOrVoid = Schema.Union([Schema.Any, Schema.Void]);
|
|
151
|
+
const ResultEncoded = Schema.toEncoded(
|
|
152
|
+
Schema.toCodecJson(
|
|
153
|
+
Result({
|
|
154
|
+
success: AnyOrVoid,
|
|
155
|
+
error: AnyOrVoid
|
|
156
|
+
})
|
|
157
|
+
)
|
|
158
|
+
);
|
|
159
|
+
//# sourceMappingURL=Result.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Flow/Result.ts"],
|
|
4
|
+
"sourcesContent": ["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Serializable completion and suspension states returned by flow executions.\n *\n * @since 0.1.0\n */\n\nimport { CapabilityPattern } from \"@smthrs/capability/Capability\"\nimport * as Data from \"effect/Data\"\nimport * as Effect from \"effect/Effect\"\nimport type * as Exit from \"effect/Exit\"\nimport * as Schema from \"effect/Schema\"\nimport * as SchemaIssue from \"effect/SchemaIssue\"\nimport * as SchemaParser from \"effect/SchemaParser\"\nimport * as Transformation from \"effect/SchemaTransformation\"\nimport type { ExitEncoded } from \"effect/unstable/rpc/RpcMessage\"\n\nconst ResultTypeId = \"@smthrs/flow/Flow/Result\"\n\n/**\n * Returns `true` when a value is a flow `Result`.\n *\n * @category results\n * @since 0.1.0\n */\nexport const isResult = <A = unknown, E = unknown>(\n u: unknown\n): u is Result<A, E> => {\n if (u !== Object(u)) return false\n const marker = Object.getOwnPropertyDescriptor(u, ResultTypeId)\n if (marker === undefined || !(\"value\" in marker) || marker.value !== ResultTypeId) return false\n const tag = Object.getOwnPropertyDescriptor(u, \"_tag\")\n return tag !== undefined && \"value\" in tag &&\n (tag.value === \"Complete\" || tag.value === \"Suspended\" || tag.value === \"Handoff\")\n}\n\n/**\n * Result of a flow execution: a completed exit, a suspended flow state, or a\n * handoff to the next round of a trampoline lineage.\n *\n * @category results\n * @since 0.1.0\n */\nexport type Result<A, E> = Complete<A, E> | Suspended | Handoff\n\n/**\n * Encoded representation of a flow `Result`.\n *\n * @category results\n * @since 0.1.0\n */\nexport type ResultEncoded<A, E> =\n | CompleteEncoded<A, E>\n | typeof Suspended.Encoded\n | typeof Handoff.Encoded\n\n/**\n * Encoded representation of a completed flow result containing an encoded\n * `Exit`.\n *\n * @category results\n * @since 0.1.0\n */\nexport interface CompleteEncoded<A, E> {\n readonly _tag: \"Complete\"\n readonly exit: ExitEncoded<A, E>\n}\n\n/**\n * Schema constructor for `Complete` flow results using the supplied\n * success and error schemas.\n *\n * @category schemas\n * @since 0.1.0\n */\nexport interface CompleteSchema<\n Success extends Schema.Constraint,\n Error extends Schema.Constraint\n> extends\n Schema.declareConstructor<\n Complete<Success[\"Type\"], Error[\"Type\"]>,\n Complete<Success[\"Encoded\"], Error[\"Encoded\"]>,\n readonly [Schema.Exit<Success, Error, Schema.Defect>]\n >\n{\n readonly success: Success\n readonly error: Error\n}\n\n/**\n * Represents a completed flow execution with its success or failure `Exit`.\n *\n * @category results\n * @since 0.1.0\n */\nexport class Complete<A, E> extends Data.TaggedClass(\"Complete\")<{\n readonly exit: Exit.Exit<A, E>\n}> {\n /**\n * Marks this value as a flow result for runtime guards.\n *\n * @since 0.1.0\n */\n readonly [ResultTypeId] = ResultTypeId\n\n /**\n * Builds the schema for completed flow results from success and error schemas.\n *\n * @since 0.1.0\n */\n static Schema<Success extends Schema.Constraint, Error extends Schema.Constraint>(options: {\n readonly success: Success\n readonly error: Error\n }): CompleteSchema<Success, Error> {\n // The declaration stays inline because it closes over this constructor's schemas.\n const schema = Schema.declareConstructor<\n Complete<Success[\"Type\"], Error[\"Type\"]>,\n Complete<Success[\"Encoded\"], Error[\"Encoded\"]>\n >()(\n [Schema.Exit(options.success, options.error, Schema.Defect())],\n ([exit]) => (input, ast, options) => {\n if (!(isResult(input) && input._tag === \"Complete\")) {\n return Effect.fail(new SchemaIssue.InvalidType(ast, input, options))\n }\n return Effect.mapBothEager(\n SchemaParser.decodeEffect(exit)(input.exit, options),\n {\n onSuccess: (exit) => new Complete({ exit }),\n onFailure: (issue) =>\n new SchemaIssue.Composite(\n ast,\n [\n new SchemaIssue.Pointer([\"exit\"], issue)\n ],\n input,\n options\n )\n }\n )\n },\n {\n expected: \"Flow.Complete\",\n toCodecJson: ([exit]) =>\n Schema.link<Complete<Success[\"Encoded\"], Error[\"Encoded\"]>>()(\n Schema.Struct({\n _tag: Schema.tag(\"Complete\"),\n exit\n }),\n Transformation.transform({\n decode: (encoded) => new Complete({ exit: encoded.exit }),\n encode: (result) => (({\n _tag: \"Complete\",\n exit: result.exit\n }) as const)\n })\n )\n }\n )\n return Schema.make(schema.ast, {\n success: options.success,\n error: options.error\n })\n }\n}\n\n/**\n * Represents a suspended flow execution, optionally carrying the cause that\n * triggered suspension.\n *\n * @category results\n * @since 0.1.0\n */\nexport class Suspended extends Schema.Class<Suspended>(\n \"@smthrs/flow/Flow/Suspended\"\n)({\n _tag: Schema.tag(\"Suspended\"),\n cause: Schema.optional(Schema.Cause(Schema.Never, Schema.Defect()))\n}) {\n /**\n * Marks this value as a flow result for runtime guards.\n *\n * @since 0.1.0\n */\n readonly [ResultTypeId] = ResultTypeId\n}\n\n/**\n * The deadline a trampoline lineage's rounds share: the journaled first start\n * of its originating round and the bound in milliseconds, so every round\n * expires at `startedAtMs + deadlineMs`.\n *\n * @category results\n * @since 1.0.0\n */\nexport const LineageDeadline = Schema.Struct({\n startedAtMs: Schema.Number,\n deadlineMs: Schema.Number\n})\n\n/**\n * The deadline a trampoline lineage's rounds share.\n *\n * @category results\n * @since 1.0.0\n */\nexport type LineageDeadline = typeof LineageDeadline.Type\n\n/**\n * Represents a flow round that ended by handing off to the next round of its\n * trampoline lineage.\n *\n * A round settles this way when its body's root value is a `to` invocation\n * (`docs/concepts/trampoline-rounds.md`): the round produced no answer of\n * its own, it produced the NEXT flow to run. `flow` is the target's tag, so the\n * value survives the journal and the run row unchanged.\n *\n * DECIDED: `payload` is the target's payload in\n * ENCODED form. The target's `to` method accepts its ordinary constructor\n * shape so authoring stays aligned with `call` and `execute`; the body\n * interpreter resolves planned references and encodes the invocation through\n * the target declaration before constructing `Handoff`. The receiving round\n * decodes those bytes through the same schema.\n *\n * It is a third settlement rather than a `Complete` carrying a magic value\n * because the engine has to tell \"this run answered\" from \"this run continues\n * elsewhere\" without decoding against a success schema the handoff never\n * satisfies.\n *\n * @category results\n * @since 0.1.0\n */\nexport class Handoff extends Schema.Class<Handoff>(\n \"@smthrs/flow/Flow/Handoff\"\n)({\n _tag: Schema.tag(\"Handoff\"),\n flow: Schema.NonEmptyString,\n capabilityCeilings: Schema.optionalKey(Schema.Array(Schema.Array(CapabilityPattern))),\n payload: Schema.Unknown,\n /**\n * The lineage deadline the next round runs under, stamped by the round\n * that handed off when its lineage is bounded (`Deadline.bound`).\n */\n deadline: Schema.optionalKey(LineageDeadline)\n}) {\n /**\n * Marks this value as a flow result for runtime guards.\n *\n * @since 0.1.0\n */\n readonly [ResultTypeId] = ResultTypeId\n}\n\n/**\n * Creates a schema for flow results using the supplied success and error\n * schemas.\n *\n * @category results\n * @since 0.1.0\n */\nexport const Result = <\n Success extends Schema.Constraint,\n Error extends Schema.Constraint\n>(options: {\n readonly success: Success\n readonly error: Error\n}) => Schema.Union([Complete.Schema(options), Suspended, Handoff])\n\nconst AnyOrVoid = Schema.Union([Schema.Any, Schema.Void])\n\n/**\n * Schema for encoded flow results with generic success and error payloads.\n *\n * @category results\n * @since 0.1.0\n */\nexport const ResultEncoded: Schema.Codec<ResultEncoded<any, any>> = Schema.toEncoded(\n Schema.toCodecJson(\n Result({\n success: AnyOrVoid,\n error: AnyOrVoid\n })\n )\n) as any\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["options", "exit"]
|
|
7
|
+
}
|