@ablehi/server-execution-contract 0.3.0 → 0.3.1

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/dist/edge.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { AcquireExecutionLeaseData, AcquireExecutionLeaseRequest, COMPLETE_EVENT_WAIT_ROUTE_SUBPATH, CONTEXT_STATE_CLEANUP_ROUTE_PATH, CompleteFlowRunWaitBody, CompleteFlowRunWaitData, ContextStateCleanupRequestBody, ContextStateCleanupResponseData, ContextStateScope, CreateHumanInputRequestBody, DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES, DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES, DEPLOYMENT_HANDSHAKE_ROUTE, DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH, DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, DeploymentHandshakeData, DeploymentHandshakeRequestBody, DeploymentHandshakeResponse, DiscoveryDispatchBody, DiscoveryEgressGrantBinding, DiscoveryExecutionBinding, DiscoveryGrantBody, DiscoveryInvokeRequest, DiscoveryRuntimeCredentialBinding, EGRESS_GRANT_AUDIT_ROUTE_SUBPATH, EGRESS_GRANT_CONSUME_ROUTE_SUBPATH, EGRESS_GRANT_SCOPE_KINDS, EXECUTION_CONTEXT_ROUTE_SUBPATH, EXECUTION_LEASE_INVALID, EXECUTION_LEASE_ROUTE_SUBPATH, EXECUTION_LEASE_SUPERSEDED, EgressGrant, EgressGrantAuditBody, EgressGrantBodyParseResult, EgressGrantConsumeBody, EgressGrantCredentialMaterial, EgressGrantFileRuntime, EgressGrantScopeKind, EmitInboxMessageData, EmitInboxMessageRequest, ExecutionAnchor, ExecutionBinding, ExecutionBindingConnection, ExecutionContextCompiled, ExecutionContextData, ExecutionLease, ExecutionWriteScope, FILE_ACCESS_ROUTE_SUBPATH, FILE_COMPLETE_ROUTE_SUBPATH, FILE_CONTENT_ROUTE_SUBPATH, FILE_STAT_ROUTE_SUBPATH, FILE_UPLOAD_SESSION_ROUTE_SUBPATH, FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH, FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH, FLOW_RUN_EXECUTION_EVENT_TYPES, FLOW_RUN_RESULT_ROUTE_SUBPATH, FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, FileMetadataData, FileRefData, FileRuntimeLimits, FileRuntimeScope, FileRuntimeScopeKind, FileUploadSessionData, FlowActionGrantBody, FlowExecutionContextFileRuntime, FlowExecutionScope, FlowRunExecutionEventBody, FlowRunExecutionEventData, FlowRunExecutionEventType, FlowRunInputFactBody, FlowRunResultData, FlowRunResultRequestBody, FlowRuntimeCredentialBody, FlowWaitResolvedEvent, GenerationCallbackErrorCode, HANDLER_BUNDLES_ROUTE_SUBPATH, HANDSHAKE_CAPABILITY_MISSING, HANDSHAKE_CONTRACT_VERSION_MISMATCH, HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH, HANDSHAKE_REQUEST_INVALID, HANDSHAKE_SECRET_MISMATCH, HANDSHAKE_SECRET_UNCONFIGURED, HUMAN_INPUTS_ROUTE_SUBPATH, HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH, HUMAN_INPUT_CANCELLED_BY_RESET, HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH, HUMAN_INPUT_PROMPT_BODY_MAX_CODE_POINTS, HUMAN_INPUT_PROMPT_TITLE_MAX_CODE_POINTS, HUMAN_INPUT_REQUEST_ROUTE_SUBPATH, HUMAN_INPUT_RESOLVED_EVENT_PREFIX, HandlerBundle, HandlerBundleModule, HandlerBundlesData, HandlerBundlesParseResult, HumanInputActor, HumanInputOutput, HumanInputRequestView, HumanInputResolvedEvent, HumanInputResponse, INBOX_MESSAGE_EMISSION_ROUTE_SUBPATH, INBOX_MESSAGE_EXECUTION_ERROR_REGISTRY, INTERNAL_DISCOVERY_INVOCATIONS_ROUTE_PREFIX, INTERNAL_EGRESS_GRANTS_ROUTE_PREFIX, INTERNAL_FILES_ROUTE_PREFIX, INTERNAL_FLOW_RUNS_ROUTE_PREFIX, INTERNAL_FLOW_VERSIONS_ROUTE_PREFIX, INTERNAL_INSTALLATIONS_ROUTE_PREFIX, INTERNAL_POLLING_TRIGGER_INSTANCES_ROUTE_PREFIX, INTERNAL_TOOL_INVOCATIONS_ROUTE_PREFIX, INTERNAL_WEBHOOK_TRIGGER_INSTANCES_ROUTE_PREFIX, InboxMessageExecutionErrorCode, IntegrationDiscoverySubject, InternalFileAccessData, InternalFileAccessIntent, POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH, POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH, POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH, POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH, PackageInputDiscoveryDescriptor, PackageInputDiscoveryKind, PackagePollingTriggerRuntimeDescriptor, PackageTriggerFileOutput, PackageWebhookTriggerRuntimeDescriptor, ParsedFlowRunResultBody, PartiallyRenderedHumanInputDelivery, PartiallyRenderedMapping, PartiallyRenderedTemplatePart, PartiallyRenderedValue, PollingPublishBody, PollingPublishEvent, PollingRuntimeCredentialBody, PollingTriggerContext, PollingTriggerDispatchData, PollingTriggerGrantBody, PresignedFileUrlData, PublishPollingTickEventResult, PublishPollingTickEventsData, REGISTER_EVENT_WAIT_ROUTE_SUBPATH, RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS, RUN_DISPATCH_UNAVAILABLE, RegisterFlowRunWaitBody, RegisterFlowRunWaitData, RenderedHumanInputPrompt, RuntimeCredentialSession, RuntimeCredentialSessionNetwork, RuntimeCredentialSessionScopeKind, RuntimeNetwork, RuntimeNetworkModel, SERVER_EXECUTION_CONTRACT_VERSION, STEP_RESULT_ROUTE_SUBPATH, ServerExecutionContractVersion, ServerExecutionError, ServerExecutionErrorEnvelope, SingleToolGrantBody, StepRecordBody, StepRecordBodyParseResult, StepRecordData, StepRecordResult, TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH, TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH, TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, ToolHandlerBundlesData, TriggerConnectionInfo, TriggerFileRuntimeDispatch, TriggerHandlerBundlesData, TriggerHandlerModule, WAIT_EXECUTION_SUPERSEDED, WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH, WEBHOOK_PROTOCOL_ADAPTER_MODULE, WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH, WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH, WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH, WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH, WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH, WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH, WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION, WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION, WORKFLOW_RESTART_INSTANCE_UNAVAILABLE, WORKFLOW_RESTART_REJECTED, WORKFLOW_RESTART_REQUEST_INVALID, WORKFLOW_RESTART_ROUTE, WebhookDelivery, WebhookDeliveryDispatchData, WebhookProtocolAdapterBundleData, WebhookProtocolAdapterModule, WebhookPublishEvent, WebhookPublishEventsBody, WebhookPublishEventsData, WebhookRearmBody, WebhookRearmData, WebhookRuntimeCredentialBody, WebhookTriggerGrantBody, WebhookTriggerVerificationMethod, WebhookWatcherContext, WfpUserRuntimeManifest, WorkflowDispatchRestartRequest, WorkflowDispatchRestartResponse, WorkflowRestartErrorCode, acquireExecutionLeasePath, completeEventWaitPath, deploymentHandshakeProbePayload, deploymentHandshakeResponseProofPayload, discoveryInvocationEgressGrantPath, discoveryInvocationRuntimeCredentialPath, egressGrantAuditPath, egressGrantConsumePath, executionContextPath, flowRunEgressGrantPath, flowRunExecutionEventsPath, flowRunResultPath, flowRunRuntimeCredentialPath, flowScriptProtocolAdapterModuleName, handlerBundlesPath, humanInputAcknowledgePath, humanInputExpirePath, humanInputRequestPath, humanInputResolvedEventType, humanInputsPath, inboxMessageEmissionPath, internalFileAccessPath, internalFileCompletePath, internalFileContentPath, internalFileStatPath, internalFileUploadSessionPath, internalFilesPath, isValidRequestDigest, parseAcquireExecutionLeaseData, parseAcquireExecutionLeaseRequest, parseCompleteFlowRunWaitBody, parseCompleteFlowRunWaitData, parseContextStateCleanupRequestBody, parseContextStateCleanupResponseData, parseContextStateScope, parseCreateHumanInputBody, parseDiscoveryGrantBody, parseDiscoveryRuntimeCredentialBody, parseEgressGrantAuditBody, parseEgressGrantConsumeBody, parseEgressGrantConsumeData, parseEgressGrantData, parseEmitInboxMessageData, parseEmitInboxMessageRequest, parseExecutionAnchor, parseExecutionContextData, parseExecutionLease, parseExecutionWriteScope, parseFileMetadataData, parseFileRefData, parseFileRuntimeLimits, parseFileUploadSessionData, parseFlowActionGrantBody, parseFlowExecutionScope, parseFlowRunExecutionEventBody, parseFlowRunExecutionEventData, parseFlowRunResultBody, parseFlowRunResultData, parseFlowRuntimeCredentialBody, parseFlowWaitResolvedEvent, parseHandlerBundle, parseHandlerBundlesData, parseHumanInputAcknowledgeData, parseHumanInputCreateData, parseHumanInputRequestViewData, parseHumanInputResolvedEvent, parseHumanInputResponse, parseHumanInputResponseForSpec, parseHumanInputSpec, parseInternalFileAccessData, parsePollingPublishBody, parsePollingRuntimeCredentialBody, parsePollingTriggerContext, parsePollingTriggerDispatchData, parsePollingTriggerGrantBody, parsePublishPollingTickEventsData, parseRegisterFlowRunWaitBody, parseRegisterFlowRunWaitData, parseRenderedHumanInputPrompt, parseRuntimeCredentialSessionCredential, parseRuntimeNetwork, parseServerExecutionErrorEnvelope, parseSingleToolGrantBody, parseSingleToolRuntimeCredentialBody, parseStepRecordBody, parseStepRecordData, parseToolHandlerBundlesData, parseTriggerFileRuntimeDispatch, parseTriggerHandlerBundlesData, parseWebhookDelivery, parseWebhookDeliveryDispatchData, parseWebhookPublishEventsBody, parseWebhookRearmBody, parseWebhookRuntimeCredentialBody, parseWebhookTriggerGrantBody, parseWebhookWatcherContext, parseWorkflowDispatchRestartRequest, parseWorkflowDispatchRestartResponse, pollingTriggerContextPath, pollingTriggerEgressGrantPath, pollingTriggerHandlerBundlesPath, pollingTriggerRuntimeCredentialPath, pollingTriggerTickEventsPath, registerEventWaitPath, requestHasMultipartFileParts, stepResultPath, toolHandlerBundlesPath, toolInvocationEgressGrantPath, toolInvocationRuntimeCredentialPath, webhookProtocolAdapterBundlePath, webhookTriggerContextPath, webhookTriggerDeliveryPath, webhookTriggerEgressGrantPath, webhookTriggerEventsPath, webhookTriggerHandlerBundlesPath, webhookTriggerRearmPath, webhookTriggerRuntimeCredentialPath, wfpUserRuntimeManifestPath } from './index.js';
1
+ export { AcquireExecutionLeaseData, AcquireExecutionLeaseRequest, COMPLETE_EVENT_WAIT_ROUTE_SUBPATH, CONTEXT_STATE_CLEANUP_ROUTE_PATH, CompleteFlowRunWaitBody, CompleteFlowRunWaitData, ContextStateCleanupRequestBody, ContextStateCleanupResponseData, ContextStateScope, CreateHumanInputRequestBody, DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES, DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES, DEPLOYMENT_HANDSHAKE_ROUTE, DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH, DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, DeploymentHandshakeData, DeploymentHandshakeRequestBody, DeploymentHandshakeResponse, DiscoveryDispatchBody, DiscoveryEgressGrantBinding, DiscoveryExecutionBinding, DiscoveryGrantBody, DiscoveryInvokeRequest, DiscoveryRuntimeCredentialBinding, EGRESS_GRANT_AUDIT_ROUTE_SUBPATH, EGRESS_GRANT_CONSUME_ROUTE_SUBPATH, EGRESS_GRANT_SCOPE_KINDS, EXECUTION_CONTEXT_ROUTE_SUBPATH, EXECUTION_LEASE_INVALID, EXECUTION_LEASE_ROUTE_SUBPATH, EXECUTION_LEASE_SUPERSEDED, EgressGrant, EgressGrantAuditBody, EgressGrantBodyParseResult, EgressGrantConsumeBody, EgressGrantCredentialMaterial, EgressGrantFileRuntime, EgressGrantScopeKind, EmitInboxMessageData, EmitInboxMessageRequest, ExecutionAnchor, ExecutionBinding, ExecutionBindingConnection, ExecutionContextCompiled, ExecutionContextData, ExecutionLease, FILE_ACCESS_ROUTE_SUBPATH, FILE_COMPLETE_ROUTE_SUBPATH, FILE_CONTENT_ROUTE_SUBPATH, FILE_STAT_ROUTE_SUBPATH, FILE_UPLOAD_SESSION_ROUTE_SUBPATH, FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH, FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH, FLOW_RUN_EXECUTION_EVENT_TYPES, FLOW_RUN_RESULT_ROUTE_SUBPATH, FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, FileMetadataData, FileRefData, FileRuntimeLimits, FileRuntimeScope, FileRuntimeScopeKind, FileUploadSessionData, FlowActionGrantBody, FlowExecutionContextFileRuntime, FlowRunExecutionEventBody, FlowRunExecutionEventData, FlowRunExecutionEventType, FlowRunInputFactBody, FlowRunResultData, FlowRunResultRequestBody, FlowRuntimeCredentialBody, FlowWaitResolvedEvent, GenerationCallbackErrorCode, HANDLER_BUNDLES_ROUTE_SUBPATH, HANDSHAKE_CAPABILITY_MISSING, HANDSHAKE_CONTRACT_VERSION_MISMATCH, HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH, HANDSHAKE_REQUEST_INVALID, HANDSHAKE_SECRET_MISMATCH, HANDSHAKE_SECRET_UNCONFIGURED, HUMAN_INPUTS_ROUTE_SUBPATH, HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH, HUMAN_INPUT_CANCELLED_BY_RESET, HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH, HUMAN_INPUT_PROMPT_BODY_MAX_CODE_POINTS, HUMAN_INPUT_PROMPT_TITLE_MAX_CODE_POINTS, HUMAN_INPUT_REQUEST_ROUTE_SUBPATH, HUMAN_INPUT_RESOLVED_EVENT_PREFIX, HandlerBundle, HandlerBundleModule, HandlerBundlesData, HandlerBundlesParseResult, HumanInputActor, HumanInputOutput, HumanInputRequestView, HumanInputResolvedEvent, HumanInputResponse, INBOX_MESSAGE_EMISSION_ROUTE_SUBPATH, INBOX_MESSAGE_EXECUTION_ERROR_REGISTRY, INTERNAL_DISCOVERY_INVOCATIONS_ROUTE_PREFIX, INTERNAL_EGRESS_GRANTS_ROUTE_PREFIX, INTERNAL_FILES_ROUTE_PREFIX, INTERNAL_FLOW_RUNS_ROUTE_PREFIX, INTERNAL_FLOW_VERSIONS_ROUTE_PREFIX, INTERNAL_INSTALLATIONS_ROUTE_PREFIX, INTERNAL_POLLING_TRIGGER_INSTANCES_ROUTE_PREFIX, INTERNAL_TOOL_INVOCATIONS_ROUTE_PREFIX, INTERNAL_WEBHOOK_TRIGGER_INSTANCES_ROUTE_PREFIX, InboxMessageExecutionErrorCode, IntegrationDiscoverySubject, InternalFileAccessData, InternalFileAccessIntent, POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH, POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH, POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH, POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH, PackageInputDiscoveryDescriptor, PackageInputDiscoveryKind, PackagePollingTriggerRuntimeDescriptor, PackageTriggerFileOutput, PackageWebhookTriggerRuntimeDescriptor, ParsedFlowRunResultBody, PartiallyRenderedHumanInputDelivery, PartiallyRenderedMapping, PartiallyRenderedTemplatePart, PartiallyRenderedValue, PollingPublishBody, PollingPublishEvent, PollingRuntimeCredentialBody, PollingTriggerContext, PollingTriggerDispatchData, PollingTriggerGrantBody, PresignedFileUrlData, PublishPollingTickEventResult, PublishPollingTickEventsData, REGISTER_EVENT_WAIT_ROUTE_SUBPATH, RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS, RUN_DISPATCH_UNAVAILABLE, RegisterFlowRunWaitBody, RegisterFlowRunWaitData, RenderedHumanInputPrompt, RuntimeCredentialSession, RuntimeCredentialSessionNetwork, RuntimeCredentialSessionScopeKind, RuntimeNetwork, RuntimeNetworkModel, SERVER_EXECUTION_CONTRACT_VERSION, STEP_RESULT_ROUTE_SUBPATH, ServerExecutionContractVersion, ServerExecutionError, ServerExecutionErrorEnvelope, SingleToolGrantBody, StepRecordBody, StepRecordBodyParseResult, StepRecordData, StepRecordResult, TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH, TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH, TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, ToolHandlerBundlesData, TriggerConnectionInfo, TriggerFileRuntimeDispatch, TriggerHandlerBundlesData, TriggerHandlerModule, WAIT_EXECUTION_SUPERSEDED, WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH, WEBHOOK_PROTOCOL_ADAPTER_MODULE, WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH, WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH, WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH, WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH, WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH, WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH, WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION, WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION, WORKFLOW_RESTART_INSTANCE_UNAVAILABLE, WORKFLOW_RESTART_REJECTED, WORKFLOW_RESTART_REQUEST_INVALID, WORKFLOW_RESTART_ROUTE, WebhookDelivery, WebhookDeliveryDispatchData, WebhookProtocolAdapterBundleData, WebhookProtocolAdapterModule, WebhookPublishEvent, WebhookPublishEventsBody, WebhookPublishEventsData, WebhookRearmBody, WebhookRearmData, WebhookRuntimeCredentialBody, WebhookTriggerGrantBody, WebhookTriggerVerificationMethod, WebhookWatcherContext, WfpUserRuntimeManifest, WorkflowDispatchRestartRequest, WorkflowDispatchRestartResponse, WorkflowExecutionGeneration, WorkflowRestartErrorCode, acquireExecutionLeasePath, completeEventWaitPath, deploymentHandshakeProbePayload, deploymentHandshakeResponseProofPayload, discoveryInvocationEgressGrantPath, discoveryInvocationRuntimeCredentialPath, egressGrantAuditPath, egressGrantConsumePath, executionContextPath, flowRunEgressGrantPath, flowRunExecutionEventsPath, flowRunResultPath, flowRunRuntimeCredentialPath, flowScriptProtocolAdapterModuleName, handlerBundlesPath, humanInputAcknowledgePath, humanInputExpirePath, humanInputRequestPath, humanInputResolvedEventType, humanInputsPath, inboxMessageEmissionPath, internalFileAccessPath, internalFileCompletePath, internalFileContentPath, internalFileStatPath, internalFileUploadSessionPath, internalFilesPath, isValidRequestDigest, parseAcquireExecutionLeaseData, parseAcquireExecutionLeaseRequest, parseCompleteFlowRunWaitBody, parseCompleteFlowRunWaitData, parseContextStateCleanupRequestBody, parseContextStateCleanupResponseData, parseContextStateScope, parseCreateHumanInputBody, parseDiscoveryGrantBody, parseDiscoveryRuntimeCredentialBody, parseEgressGrantAuditBody, parseEgressGrantConsumeBody, parseEgressGrantConsumeData, parseEgressGrantData, parseEmitInboxMessageData, parseEmitInboxMessageRequest, parseExecutionAnchor, parseExecutionContextData, parseExecutionLease, parseFileMetadataData, parseFileRefData, parseFileRuntimeLimits, parseFileUploadSessionData, parseFlowActionGrantBody, parseFlowRunExecutionEventBody, parseFlowRunExecutionEventData, parseFlowRunResultBody, parseFlowRunResultData, parseFlowRuntimeCredentialBody, parseFlowWaitResolvedEvent, parseHandlerBundle, parseHandlerBundlesData, parseHumanInputAcknowledgeData, parseHumanInputCreateData, parseHumanInputRequestViewData, parseHumanInputResolvedEvent, parseHumanInputResponse, parseHumanInputResponseForSpec, parseHumanInputSpec, parseInternalFileAccessData, parsePollingPublishBody, parsePollingRuntimeCredentialBody, parsePollingTriggerContext, parsePollingTriggerDispatchData, parsePollingTriggerGrantBody, parsePublishPollingTickEventsData, parseRegisterFlowRunWaitBody, parseRegisterFlowRunWaitData, parseRenderedHumanInputPrompt, parseRuntimeCredentialSessionCredential, parseRuntimeNetwork, parseServerExecutionErrorEnvelope, parseSingleToolGrantBody, parseSingleToolRuntimeCredentialBody, parseStepRecordBody, parseStepRecordData, parseToolHandlerBundlesData, parseTriggerFileRuntimeDispatch, parseTriggerHandlerBundlesData, parseWebhookDelivery, parseWebhookDeliveryDispatchData, parseWebhookPublishEventsBody, parseWebhookRearmBody, parseWebhookRuntimeCredentialBody, parseWebhookTriggerGrantBody, parseWebhookWatcherContext, parseWorkflowDispatchRestartRequest, parseWorkflowDispatchRestartResponse, pollingTriggerContextPath, pollingTriggerEgressGrantPath, pollingTriggerHandlerBundlesPath, pollingTriggerRuntimeCredentialPath, pollingTriggerTickEventsPath, registerEventWaitPath, requestHasMultipartFileParts, stepResultPath, toolHandlerBundlesPath, toolInvocationEgressGrantPath, toolInvocationRuntimeCredentialPath, webhookProtocolAdapterBundlePath, webhookTriggerContextPath, webhookTriggerDeliveryPath, webhookTriggerEgressGrantPath, webhookTriggerEventsPath, webhookTriggerHandlerBundlesPath, webhookTriggerRearmPath, webhookTriggerRuntimeCredentialPath, wfpUserRuntimeManifestPath } from './index.js';
2
2
  import '@ablehi/flow-contract';
3
3
  import '@ablehi/error-contract';
package/dist/edge.js CHANGED
@@ -1 +1 @@
1
- var Ie="0.4.0";function u(e){return{ok:!0,value:e}}function r(e){return{ok:!1,reason:e}}function s(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var wt="/cleanup-state-scopes";function x(e){if(!s(e)||typeof e.kind!="string")return r("context state scope surface shape is invalid");switch(e.kind){case"webhook-trigger":return ye(e);case"polling-trigger":return Ee(e);case"flow-action":return ke(e);default:return r("context state scope kind is invalid")}}function Tt(e){if(!s(e))return r("cleanup request body must be a JSON object");let t=B(e,["scopes"]);if(t!==void 0)return r(`cleanup request does not accept the "${t}" field`);if(!Array.isArray(e.scopes))return r("cleanup request scopes must be an array");let n=[];for(let o of e.scopes){let i=x(o);if(!i.ok)return i;n.push(i.value)}return u({scopes:n})}function At(e){return!s(e)||typeof e.deleted!="number"||!Number.isSafeInteger(e.deleted)||e.deleted<0?r("cleanup response data surface shape is invalid"):u({deleted:e.deleted})}function ye(e){let t=B(e,["kind","workspaceId","triggerInstanceId"]);return t!==void 0?r(`webhook trigger scope does not accept "${t}"`):e.kind!=="webhook-trigger"||!_(e.workspaceId)||!_(e.triggerInstanceId)?r("webhook trigger state scope is invalid"):u({kind:"webhook-trigger",workspaceId:e.workspaceId,triggerInstanceId:e.triggerInstanceId})}function Ee(e){let t=B(e,["kind","workspaceId","pollingInstanceId"]);return t!==void 0?r(`polling trigger scope does not accept "${t}"`):e.kind!=="polling-trigger"||!_(e.workspaceId)||!_(e.pollingInstanceId)?r("polling trigger state scope is invalid"):u({kind:"polling-trigger",workspaceId:e.workspaceId,pollingInstanceId:e.pollingInstanceId})}function ke(e){let t=B(e,["kind","workspaceId","flowId","nodeId","connectionId"]);if(t!==void 0)return r(`flow action scope does not accept "${t}"`);let n=e.connectionId;return e.kind!=="flow-action"||!_(e.workspaceId)||!_(e.flowId)||!_(e.nodeId)||n!==null&&!_(n)?r("flow action state scope is invalid"):u({kind:"flow-action",workspaceId:e.workspaceId,flowId:e.flowId,nodeId:e.nodeId,connectionId:n})}function _(e){return typeof e=="string"&&e.length>0}function B(e,t){return Object.keys(e).find(n=>!t.includes(n))}import{parseFlowDefinition as Se}from"@ablehi/flow-contract";var Ot="/:flowRunId/execution-leases",Ct="/restart",Dt="WORKFLOW_RESTART_REQUEST_INVALID",vt="WORKFLOW_RESTART_INSTANCE_UNAVAILABLE",Ut="WORKFLOW_RESTART_REJECTED",Bt="RUN_DISPATCH_UNAVAILABLE",Ft="EXECUTION_LEASE_INVALID",Ht="EXECUTION_LEASE_SUPERSEDED",Lt="WAIT_EXECUTION_SUPERSEDED",Mt="HUMAN_INPUT_CANCELLED_BY_RESET";function $t(e){return`${g}/${encodeURIComponent(e)}/execution-leases`}var _e=/^generation:[A-Za-z0-9][A-Za-z0-9._:-]{0,239}$/;function Q(e){return!s(e)||!E(e,e.kind==="standalone"?["kind"]:["kind","productRunId"])?r("execution scope shape is invalid"):e.kind==="standalone"?u({kind:"standalone"}):e.kind==="automation_app"&&y(e.productRunId)?u({kind:"automation_app",productRunId:e.productRunId}):r("execution scope discriminator is invalid")}function Z(e){return s(e)?e.kind==="terminal"&&E(e,["kind"])?u({kind:"terminal"}):e.kind==="node"&&E(e,["kind","nodeId"])&&y(e.nodeId)?u({kind:"node",nodeId:e.nodeId}):r("execution anchor shape is invalid"):r("execution anchor must be an object")}function xe(e){if(!s(e)||!E(e,["productRunId","flowRunId","generationId","generationNumber","anchor","leaseId"])||!y(e.productRunId)||!y(e.flowRunId)||!y(e.generationId)||!he(e.generationNumber)||!y(e.leaseId))return r("execution lease shape is invalid");let t=Z(e.anchor);return t.ok?u({productRunId:e.productRunId,flowRunId:e.flowRunId,generationId:e.generationId,generationNumber:e.generationNumber,anchor:t.value,leaseId:e.leaseId}):r(t.reason)}function k(e){if(!s(e))return r("execution write scope must be an object");if(e.kind==="standalone"&&E(e,["kind"]))return u({kind:"standalone"});if(e.kind==="automation_app"&&E(e,["kind","lease"])){let t=xe(e.lease);return t.ok?u({kind:"automation_app",lease:t.value}):r(t.reason)}return r("execution write scope shape is invalid")}function Wt(e){if(!s(e)||!E(e,["anchor"]))return r("lease request shape is invalid");let t=Z(e.anchor);return t.ok?u({anchor:t.value}):r(t.reason)}function Gt(e){if(!s(e)||!E(e,["executionScope"]))return r("lease response shape is invalid");let t=k(e.executionScope);return t.ok?u({executionScope:t.value}):r(t.reason)}function Kt(e){return!s(e)||!E(e,["instanceId","flowRunId","commandId","generationId","from"])||!y(e.instanceId)||!y(e.flowRunId)||!y(e.commandId)||!y(e.generationId)||!s(e.from)||!E(e.from,["name","count","type"])||typeof e.from.name!="string"||!_e.test(e.from.name)||e.from.name==="generation:terminal"||e.from.count!==1||e.from.type!=="do"?r("restart request shape is invalid"):u(e)}function qt(e){return!s(e)||!E(e,["ok","data"])||e.ok!==!0||!s(e.data)||!E(e.data,["accepted","instanceId","commandId","generationId"])||e.data.accepted!==!0||!y(e.data.instanceId)||!y(e.data.commandId)||!y(e.data.generationId)?r("restart response shape is invalid"):u(e)}function E(e,t){let n=Object.keys(e).sort(),o=[...t].sort();return n.length===o.length&&n.every((i,a)=>i===o[a])}function y(e){return typeof e=="string"&&e.length>0}function he(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}var g="/internal/flow-runs",zt="/:flowRunId/execution-context";function Qt(e){return`${g}/${encodeURIComponent(e)}/execution-context`}function W(e){return!s(e)||!$(e.fileMaxBytes)||!$(e.fileReadMaxBytes)||!$(e.inlineMultipartBytesMax)?r("file runtime limits must carry three positive integer bounds"):u({fileMaxBytes:e.fileMaxBytes,fileReadMaxBytes:e.fileReadMaxBytes,inlineMultipartBytesMax:e.inlineMultipartBytesMax})}function Zt(e){if(!s(e))return r("execution context must be a JSON object");let t=ee(e,["flowRunId","workspaceId","input","executionScope","compiled","executionBindings","fileRuntime"]);if(t!==void 0)return r(`execution context does not accept the "${t}" field`);let n=e.compiled;if(typeof e.flowRunId!="string"||typeof e.workspaceId!="string"||!s(e.input)||!s(n)||ee(n,["irSchemaVersion","interpreterContractVersion","ir","compiledArtifactId"])!==void 0||typeof n.irSchemaVersion!="string"||typeof n.interpreterContractVersion!="string"||typeof n.compiledArtifactId!="string"||!Te(e.executionBindings))return r("execution context surface shape is invalid");let o=Se(n.ir);if(!o.ok)return r(o.reason);let i=Q(e.executionScope);if(!i.ok)return r(i.reason);let a=we(e.fileRuntime);return a.ok?u({...e,compiled:{...n,ir:o.value},executionScope:i.value,fileRuntime:a.value}):r(a.reason)}function we(e){if(e===null)return u(null);if(!s(e))return r("fileRuntime must be null or an object");let t=W(e.limits);return t.ok?u({limits:t.value}):r(t.reason)}function Te(e){return Array.isArray(e)?e.every(t=>{if(!s(t))return!1;let n=t.connection,o=x(t.stateScope);return typeof t.nodeId=="string"&&typeof t.toolRef=="string"&&s(t.toolDescriptor)&&s(t.integrationDescriptor)&&s(n)&&typeof n.installationId=="string"&&typeof n.connectionRef=="string"&&typeof n.connectionId=="string"&&typeof n.authProfileRef=="string"&&typeof n.authType=="string"&&o.ok}):!1}function $(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function ee(e,t){return Object.keys(e).find(n=>!t.includes(n))}import{parseAblehiErrorDigest as G}from"@ablehi/error-contract";var sn="/:flowRunId/steps/:nodeId/result",un="/:flowRunId/result",an="/:flowRunId/execution-events",cn="/:flowRunId/waits/:nodeId/register",dn="/:flowRunId/waits/:nodeId/complete";function pn(e,t){return`${g}/${encodeURIComponent(e)}/steps/${encodeURIComponent(t)}/result`}function ln(e){return`${g}/${encodeURIComponent(e)}/result`}function fn(e){return`${g}/${encodeURIComponent(e)}/execution-events`}function gn(e,t){return`${g}/${encodeURIComponent(e)}/waits/${encodeURIComponent(t)}/register`}function mn(e,t){return`${g}/${encodeURIComponent(e)}/waits/${encodeURIComponent(t)}/complete`}function Rn(e){if(!s(e))return{ok:!1,kind:"validation",reason:"step record body must be a JSON object"};let t=R(e,["executionScope","attempt","result","durationMs"]);if(t!==void 0)return{ok:!1,kind:"validation",reason:`step record does not accept the "${t}" field`};let n=k(e.executionScope);if(!n.ok)return{ok:!1,kind:"validation",reason:n.reason};let o=e.attempt;if(typeof o!="number"||!Number.isInteger(o)||o<=0)return{ok:!1,kind:"validation",reason:"attempt must be a positive integer"};let i=Ae(e.result);if(!i.ok)return i;let a={executionScope:n.value,attempt:o,result:i.value};if(e.durationMs!==void 0){let c=e.durationMs;if(typeof c!="number"||!Number.isFinite(c)||c<0)return{ok:!1,kind:"validation",reason:"durationMs must be a non-negative number"};a.durationMs=c}return{ok:!0,value:a}}function Ae(e){if(!s(e))return{ok:!1,kind:"step_result_invalid",reason:"result must be a JSON object"};let t=e.status;if(t==="succeeded"){let n=R(e,["status","output"]);return n!==void 0?{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`}:"output"in e?{ok:!0,value:{status:"succeeded",output:e.output}}:{ok:!1,kind:"step_result_invalid",reason:"a succeeded result must carry output"}}if(t==="failed"){let n=R(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=G(e.error);return o.ok?{ok:!0,value:{status:"failed",error:o.value}}:{ok:!1,kind:"step_result_invalid",reason:`a failed result must carry an AblehiErrorDigest: ${o.reason}`}}if(t==="skipped"){let n=R(e,["status","reason"]);return n!==void 0?{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`}:e.reason!=="run_if_false"?{ok:!1,kind:"step_result_invalid",reason:'a skipped result reason must be "run_if_false"'}:{ok:!0,value:{status:"skipped",reason:"run_if_false"}}}if(t==="timed_out"){let n=R(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=G(e.error);return o.ok?{ok:!0,value:{status:"timed_out",error:o.value}}:{ok:!1,kind:"step_result_invalid",reason:`a timed_out result must carry an AblehiErrorDigest: ${o.reason}`}}return{ok:!1,kind:"step_result_invalid",reason:'result status must be "succeeded", "failed", "skipped", or "timed_out"'}}function In(e){return!s(e)||typeof e.flowRunId!="string"||typeof e.nodeId!="string"||!Pe(e.recorded)?r("step record data surface shape is invalid"):u({flowRunId:e.flowRunId,nodeId:e.nodeId,recorded:e.recorded})}function Pe(e){return e==="succeeded"||e==="failed"||e==="skipped"||e==="timed_out"}function yn(e){if(!s(e))return r("result body must be a JSON object");let t=R(e,["executionScope","status","output","error"]);if(t!==void 0)return r(`result does not accept the "${t}" field`);let n=k(e.executionScope);if(!n.ok)return r(n.reason);let o=e.status;if(o!=="succeeded"&&o!=="failed")return r('result status must be "succeeded" or "failed"');let i={executionScope:n.value,status:o};if(e.output!==void 0){if(o!=="succeeded")return r("output is only allowed on a succeeded result");i.output=e.output}if(e.error!==void 0){if(o!=="failed")return r("error is only allowed on a failed result");let a=G(e.error);if(!a.ok)return r(`result error must be an AblehiErrorDigest: ${a.reason}`);i.error=a.value}return o==="failed"&&i.error===void 0?r("a failed result must carry an AblehiErrorDigest"):u(i)}function En(e){return s(e)?u(e):r("flow run result data must be a JSON object")}var be=["flow_run_started","step_started","step_retry_scheduled","wait_registered","wait_event_received","wait_event_timed_out","human_input_created","human_input_submitted","human_input_expired","flow_run_succeeded","flow_run_failed","flow_run_interrupted","flow_run_cancelled"];function kn(e){if(!s(e))return r("execution event data must be a JSON object");let t=R(e,["flowRunId","eventId","accepted"]);return t!==void 0?r(`execution event data does not accept the "${t}" field`):typeof e.flowRunId!="string"||e.flowRunId.length===0?r("flowRunId must be a non-empty string"):typeof e.eventId!="string"||e.eventId.length===0?r("eventId must be a non-empty string"):e.accepted!==!0?r("accepted must be true"):u({flowRunId:e.flowRunId,eventId:e.eventId,accepted:!0})}function _n(e){if(!s(e))return r("execution event body must be a JSON object");let t=R(e,["executionScope","eventId","eventType","nodeId","stepRunId","attempt","durationMs","occurredAt","errorId","payloadRef","inputFact"]);if(t!==void 0)return r(`execution event does not accept the "${t}" field`);let n=k(e.executionScope);if(!n.ok)return r(n.reason);let o=e.eventId;if(typeof o!="string"||o.length===0)return r("eventId must be a non-empty string");let i=e.eventType;if(!Ne(i))return r("eventType is not a known flow execution event type");let a=e.occurredAt;if(typeof a!="string"||a.length===0)return r("occurredAt must be a non-empty string");let c={executionScope:n.value,eventId:o,eventType:i,occurredAt:a};for(let d of["nodeId","stepRunId","errorId","payloadRef"]){let l=e[d];if(l!==void 0){if(typeof l!="string"||l.length===0)return r(`${d} must be a non-empty string`);c[d]=l}}for(let d of["attempt","durationMs"]){let l=e[d];if(l!==void 0){if(typeof l!="number"||!Number.isFinite(l)||!Number.isInteger(l)||l<0)return r(`${d} must be a non-negative integer`);c[d]=l}}if(e.inputFact!==void 0){if(i!=="step_started")return r("inputFact is only allowed on step_started events");if(c.attempt===void 0)return r("inputFact requires attempt");let d=Oe(e.inputFact);if(!d.ok)return d;c.inputFact=d.value}return u(c)}function Ne(e){return typeof e=="string"&&be.includes(e)}function Oe(e){if(!s(e))return r("inputFact must be a JSON object");let t=R(e,["digestAlgorithm","digest","domain"]);if(t!==void 0)return r(`inputFact does not accept the "${t}" field`);if(e.digestAlgorithm!=="sha256")return r('inputFact.digestAlgorithm must be "sha256"');let n=e.digest;if(typeof n!="string"||!/^[0-9a-f]{64}$/.test(n))return r("inputFact.digest must be a sha256 hex string");let o=e.domain;if(!s(o))return r("inputFact.domain must be a JSON object");let i=R(o,["irSchemaVersion","interpreterContractVersion","compiledArtifactId","nodeId","algorithmVersion"]);return i!==void 0?r(`inputFact.domain does not accept the "${i}" field`):typeof o.irSchemaVersion!="string"||o.irSchemaVersion.length===0||typeof o.interpreterContractVersion!="string"||o.interpreterContractVersion.length===0||typeof o.compiledArtifactId!="string"||o.compiledArtifactId.length===0||typeof o.nodeId!="string"||o.nodeId.length===0?r("inputFact.domain string fields must be non-empty strings"):o.algorithmVersion!=="flow_input_digest.v1"?r('inputFact.domain.algorithmVersion must be "flow_input_digest.v1"'):u({digestAlgorithm:"sha256",digest:n,domain:{irSchemaVersion:o.irSchemaVersion,interpreterContractVersion:o.interpreterContractVersion,compiledArtifactId:o.compiledArtifactId,nodeId:o.nodeId,algorithmVersion:"flow_input_digest.v1"}})}var Ce=/^[A-Za-z0-9_-]{1,100}$/;function xn(e){if(!s(e))return r("register body must be a JSON object");let t=R(e,["executionScope","eventType","correlationKey"]);if(t!==void 0)return r(`register wait does not accept the "${t}" field`);let n=k(e.executionScope);if(!n.ok)return r(n.reason);let o=te(e.eventType);if(!o.ok)return r(o.reason);let i=e.correlationKey;return typeof i!="string"||i.length===0?r("correlationKey must be a non-empty string"):u({executionScope:n.value,eventType:o.value,correlationKey:i})}function hn(e){if(!s(e))return r("complete body must be a JSON object");let t=R(e,["executionScope","waitExecutionId","outcome","eventId"]);if(t!==void 0)return r(`complete wait does not accept the "${t}" field`);let n=k(e.executionScope);if(!n.ok)return r(n.reason);let o=e.waitExecutionId;if(typeof o!="string"||o.length===0)return r("waitExecutionId must be a non-empty string");let i=e.outcome;if(i!=="received"&&i!=="timed_out")return r('outcome must be "received" or "timed_out"');let a={executionScope:n.value,waitExecutionId:o,outcome:i};if(e.eventId!==void 0){if(typeof e.eventId!="string"||e.eventId.length===0)return r("eventId must be a non-empty string");a.eventId=e.eventId}return u(a)}function Sn(e){if(!s(e)||R(e,["waitExecutionId","workflowEventType"])!==void 0||typeof e.waitExecutionId!="string"||e.waitExecutionId.length===0)return r("register wait data surface shape is invalid");let t=te(e.workflowEventType);return t.ok?u({waitExecutionId:e.waitExecutionId,workflowEventType:t.value}):r(t.reason)}function wn(e){return!s(e)||R(e,["completed"])!==void 0||e.completed!==!0?r("complete wait data surface shape is invalid"):u({completed:!0})}function Tn(e){return!s(e)||R(e,["waitExecutionId","eventId","payload"])!==void 0||typeof e.waitExecutionId!="string"||e.waitExecutionId.length===0||typeof e.eventId!="string"||e.eventId.length===0||!Object.hasOwn(e,"payload")?r("Wait resolved event surface shape is invalid"):u({waitExecutionId:e.waitExecutionId,eventId:e.eventId,payload:e.payload})}function te(e){return typeof e!="string"||e.length===0?r("eventType must be a non-empty string"):Ce.test(e)?u(e):r("eventType must match ^[A-Za-z0-9_-]{1,100}$")}function R(e,t){return Object.keys(e).find(n=>!t.includes(n))}var De="/internal/flow-versions",Pn="/:flowVersionId/handler-bundles",q="/internal/installations",bn="/:installationId/handler-bundles";function Nn(e,t){return`${De}/${encodeURIComponent(e)}/handler-bundles?compiledArtifactId=${encodeURIComponent(t)}`}function On(e){return`${q}/${encodeURIComponent(e.installationId)}/handler-bundles?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var ve=new Set(["managed_only","managed_plus_unmanaged_sdk"]);function F(e){if(!S(e))return K("runtimeNetwork must be a JSON object");let t=e.networkModel;return typeof t!="string"||!ve.has(t)?K("runtimeNetwork.networkModel is unknown"):!ne(e.apiHosts)||!ne(e.authHosts)||typeof e.httpsOnly!="boolean"?K("runtimeNetwork host/https fields are invalid"):{ok:!0,value:{networkModel:t,apiHosts:e.apiHosts,authHosts:e.authHosts,httpsOnly:e.httpsOnly}}}function Cn(e){if(!S(e)||typeof e.flowVersionId!="string"||typeof e.compiledArtifactId!="string"||!Array.isArray(e.bundles))return b("handler bundles data surface shape is invalid");let t=re(e.bundles);return t.ok?{ok:!0,value:{flowVersionId:e.flowVersionId,compiledArtifactId:e.compiledArtifactId,bundles:t.value}}:t}function Dn(e){if(!S(e)||typeof e.installationId!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.bundles))return b("tool handler bundles data surface shape is invalid");let t=re(e.bundles);return t.ok?{ok:!0,value:{installationId:e.installationId,artifactDigest:e.artifactDigest,bundles:t.value}}:t}function re(e){let t=[];for(let n of e){let o=Ue(n);if(!o.ok)return o;t.push(o.value)}return{ok:!0,value:t}}function Ue(e){if(!S(e)||typeof e.toolRef!="string"||e.kind!=="handler"&&e.kind!=="request")return b("handler bundle entry shape is invalid");if(e.kind==="request"){if(e.module!==void 0)return b("a request bundle must not carry a module");let o=F(e.runtimeNetwork);return o.ok?{ok:!0,value:{toolRef:e.toolRef,kind:"request",runtimeNetwork:o.value}}:o}let t=e.module;if(!S(t)||typeof t.entry!="string"||t.entry.length===0||!Be(t.files))return b("a handler bundle must carry a { entry, files } module");let n=F(e.runtimeNetwork);return n.ok?{ok:!0,value:{toolRef:e.toolRef,kind:"handler",module:{entry:t.entry,files:t.files},runtimeNetwork:n.value}}:n}function b(e){return{ok:!1,kind:"shape",reason:e}}function K(e){return{ok:!1,kind:"runtime_network",reason:e}}function S(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ne(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Be(e){return S(e)&&Object.values(e).every(t=>typeof t=="string")}var N="/internal/webhook-trigger-instances",Mn="/:triggerInstanceId/context",$n="/:triggerInstanceId/handler-bundles",Wn="/:triggerInstanceId/deliveries/:deliveryId",Gn="/:triggerInstanceId/events",Kn="/:triggerInstanceId/rearm",O=e=>`${N}/${encodeURIComponent(e)}`;function qn(e,t){return`${O(e)}/context?artifactDigest=${encodeURIComponent(t)}`}function Vn(e,t){return`${O(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function jn(e,t){return`${O(e)}/deliveries/${encodeURIComponent(t)}`}function Xn(e){return`${O(e)}/events`}function Jn(e){return`${O(e)}/rearm`}var Yn="/:installationId/webhook-protocol-adapter-bundle";function zn(e){return`${q}/${encodeURIComponent(e.installationId)}/webhook-protocol-adapter-bundle?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var Qn="modules/webhook/protocol-adapter.js";function Zn(e){return`modules/webhook/protocol-adapter-${e}.js`}function er(e){let t=s(e)?x(e.stateScope):r("webhook watcher context state scope is invalid");return!s(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!s(e.inputs)||e.connection!==null&&!Fe(e.connection)||!He(e.runtime)||!t.ok||t.value.kind!=="webhook-trigger"?r("webhook watcher context surface shape is invalid"):u(e)}function Fe(e){return s(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function He(e){if(!s(e)||e.type!=="webhook"||typeof e.trigger_ref!="string")return!1;let t=e.webhook;return s(t)&&typeof t.event_handler_module=="string"&&typeof t.enable_handler_module=="string"&&typeof t.disable_handler_module=="string"}function Le(e){if(!s(e)||typeof e.deliveryId!="string"||typeof e.receivedAt!="string"||!s(e.request))return r("webhook delivery surface shape is invalid");let t=e.request;return t.method!=="POST"||!s(t.headers)||typeof t.rawBody!="string"?r("webhook delivery request shape is invalid"):u(e)}function V(e){if(!s(e)||typeof e.token!="string"||typeof e.expiresAt!="string")return r("trigger file runtime dispatch shape is invalid");let t=W(e.limits);return t.ok?u({token:e.token,expiresAt:e.expiresAt,limits:t.value}):r(t.reason)}function tr(e){if(!s(e))return r("webhook delivery dispatch data is invalid");let t=Le(e.delivery);if(!t.ok)return r(t.reason);let n=e.fileRuntime;if(n===null)return u({delivery:t.value,fileRuntime:null});let o=V(n);return o.ok?u({delivery:t.value,fileRuntime:o.value}):r(o.reason)}function nr(e){if(!s(e)||typeof e.triggerRef!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.modules)||!e.modules.every(Me))return{ok:!1,kind:"shape",reason:"trigger handler bundles data surface shape is invalid"};let t=F(e.runtimeNetwork);return t.ok?{ok:!0,value:{triggerRef:e.triggerRef,artifactDigest:e.artifactDigest,modules:e.modules,runtimeNetwork:t.value}}:t}function Me(e){return s(e)&&typeof e.specifier=="string"&&e.specifier.length>0&&typeof e.source=="string"}function rr(e){if(!s(e))return r("publish events body must be a JSON object");let t=j(e,["deliveryId","events"]);if(t!==void 0)return r(`publish events does not accept the "${t}" field`);let n=e.deliveryId;if(typeof n!="string"||n.length===0)return r("deliveryId must be a non-empty string");let o=e.events;if(!Array.isArray(o))return r("events must be an array");let i=[];for(let a of o){let c=$e(a);if(!c.ok)return c;i.push(c.value)}return u({deliveryId:n,events:i})}function $e(e){if(!s(e))return r("each event must be a JSON object");let t=j(e,["eventId","occurredAt","dedupeKey","payload"]);if(t!==void 0)return r(`event does not accept the "${t}" field`);let n=e.eventId;if(typeof n!="string"||n.length===0)return r("eventId must be a non-empty string");let o=e.occurredAt;if(typeof o!="string"||o.length===0)return r("occurredAt must be a non-empty string");if(!s(e.payload))return r("event payload must be a JSON object");let i={eventId:n,occurredAt:o,payload:e.payload};if(e.dedupeKey!==void 0){if(typeof e.dedupeKey!="string"||e.dedupeKey.length===0)return r("dedupeKey must be a non-empty string");i.dedupeKey=e.dedupeKey}return u(i)}function or(e){if(!s(e))return r("rearm body must be a JSON object");let t=j(e,["expectedWatcherInstanceId"]);if(t!==void 0)return r(`rearm does not accept the "${t}" field`);let n=e.expectedWatcherInstanceId;return typeof n!="string"||n.length===0?r("expectedWatcherInstanceId must be a non-empty string"):u({expectedWatcherInstanceId:n})}function j(e,t){return Object.keys(e).find(n=>!t.includes(n))}var C="/internal/polling-trigger-instances",cr="/:pollingInstanceId/context",dr="/:pollingInstanceId/handler-bundles",pr="/:pollingInstanceId/ticks/:tickId/events",X=e=>`${C}/${encodeURIComponent(e)}`;function lr(e,t,n){return`${X(e)}/context?artifactDigest=${encodeURIComponent(t)}&tickId=${encodeURIComponent(n)}`}function fr(e,t){return`${X(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function gr(e,t){return`${X(e)}/ticks/${encodeURIComponent(t)}/events`}function We(e){let t=s(e)?x(e.stateScope):r("polling trigger context state scope is invalid");return!s(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!s(e.inputs)||e.connection!==null&&!Ge(e.connection)||!Ke(e.runtime)||!t.ok||t.value.kind!=="polling-trigger"||!Ve(e.tick)||!je(e.limits)?r("polling trigger context surface shape is invalid"):u(e)}function mr(e){if(!s(e))return r("polling trigger dispatch data is invalid");let t=We(e.context);if(!t.ok)return r(t.reason);let n=e.fileRuntime;if(n===null)return u({context:t.value,fileRuntime:null});let o=V(n);return o.ok?u({context:t.value,fileRuntime:o.value}):r(o.reason)}function Ge(e){return s(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function Ke(e){if(!s(e)||e.type!=="polling"||typeof e.trigger_id!="string"||typeof e.trigger_ref!="string"||!qe(e.file_outputs))return!1;let t=e.polling;if(!s(t)||typeof t.run_handler_module!="string")return!1;let n=t.schedule;if(!s(n)||n.type!=="interval"||typeof n.every_seconds!="number")return!1;let o=t.dedup;return s(o)&&(o.strategy==="cursor"||o.strategy==="hash"||o.strategy==="id_field")}function qe(e){return e===void 0?!0:Array.isArray(e)&&e.length>0&&e.every(t=>s(t)&&typeof t.field=="string"&&t.field.length>0)}function Ve(e){return s(e)&&typeof e.tickId=="string"&&typeof e.scheduledAt=="string"&&typeof e.attempt=="number"}function je(e){return s(e)&&typeof e.maxEventsPerTick=="number"}function Rr(e){if(!s(e))return r("publish body must be a JSON object");let t=oe(e,["events","nextCursor"]);if(t!==void 0)return r(`publish does not accept the "${t}" field`);let n=e.events;if(!Array.isArray(n))return r("events must be an array");let o=[];for(let a of n){let c=Xe(a);if(!c.ok)return c;o.push(c.value)}let i={events:o};if("nextCursor"in e){let a=e.nextCursor;if(a!==null&&typeof a!="string")return r("nextCursor must be a string, null, or omitted");i.nextCursor=a}return u(i)}function Xe(e){if(!s(e))return r("each event must be a JSON object");let t=oe(e,["eventId","occurredAt","dedupeKey","payload"]);if(t!==void 0)return r(`event does not accept the "${t}" field`);if(typeof e.eventId!="string"||e.eventId.length===0)return r("event eventId must be a non-empty string");if(!s(e.payload))return r("event payload must be a JSON object");let n={eventId:e.eventId,payload:e.payload};if(e.occurredAt!==void 0){if(typeof e.occurredAt!="string"||e.occurredAt.length===0)return r("event occurredAt must be a non-empty string");n.occurredAt=e.occurredAt}if(e.dedupeKey!==void 0){if(typeof e.dedupeKey!="string"||e.dedupeKey.length===0)return r("event dedupeKey must be a non-empty string");n.dedupeKey=e.dedupeKey}return u(n)}function Ir(e){return!s(e)||typeof e.tickId!="string"||typeof e.cursorUpdated!="boolean"||!Array.isArray(e.results)||!e.results.every(Je)?r("publish polling tick events data surface shape is invalid"):u(e)}function Je(e){return s(e)&&typeof e.eventId=="string"&&typeof e.dedupeKey=="string"&&typeof e.duplicate=="boolean"&&(e.flowRunId===null||typeof e.flowRunId=="string")}function oe(e,t){return Object.keys(e).find(n=>!t.includes(n))}var ie="/internal/egress-grants",J="/internal/tool-invocations",Y="/internal/discovery-invocations",hr="/:flowRunId/egress-grant",Sr="/:invocationId/egress-grant",wr="/:discoveryInvocationId/egress-grant",Tr="/:pollingInstanceId/egress-grant",Ar="/:triggerInstanceId/egress-grant",Pr="/:grantId/consume",br="/:grantId/audit",Nr=e=>`${g}/${encodeURIComponent(e)}/egress-grant`,Or=e=>`${J}/${encodeURIComponent(e)}/egress-grant`,Cr=e=>`${Y}/${encodeURIComponent(e)}/egress-grant`,Dr=e=>`${C}/${encodeURIComponent(e)}/egress-grant`,vr=e=>`${N}/${encodeURIComponent(e)}/egress-grant`,Ur=e=>`${ie}/${encodeURIComponent(e)}/consume`,Br=e=>`${ie}/${encodeURIComponent(e)}/audit`,Ye=["flow_action","single_tool","discovery","polling_trigger","webhook_trigger"],ze=/^[A-Za-z0-9][A-Za-z0-9:_+/=.-]{15,1023}$/;function w(e){return typeof e=="string"&&ze.test(e)}function Qe(e){if(!s(e)||e.body_type!=="multipart")return!1;let t=e.body;if(!s(t))return!1;let n=t.parts;return Array.isArray(n)?n.some(o=>s(o)?o.kind==="file"&&typeof o.file_id=="string"&&o.file_id.length>0:!1):!1}function p(e){return{ok:!1,kind:"shape",reason:e}}function T(){return{ok:!1,kind:"request_digest",reason:"request digest is missing or malformed"}}function D(e,t){if(!s(e))return{ok:!1,reason:"grant request body must be a JSON object"};for(let n of Object.keys(e))if(!t.includes(n))return{ok:!1,reason:`grant request does not accept the "${n}" field`};return{ok:!0,record:e}}function v(e){if(!s(e))return"request must be a JSON object"}function Fr(e){let t=D(e,["nodeId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.nodeId;if(typeof n!="string"||n.length===0)return p("nodeId is required");let o=v(t.record.request);if(o!==void 0)return p(o);let i=t.record.requestDigest;return w(i)?{ok:!0,value:{nodeId:n,requestDigest:i,requestHasMultipartFiles:Qe(t.record.request)}}:T()}function Hr(e){let t=D(e,["request","requestDigest"]);if(!t.ok)return p(t.reason);let n=v(t.record.request);if(n!==void 0)return p(n);let o=t.record.requestDigest;return w(o)?{ok:!0,value:{requestDigest:o}}:T()}function Lr(e){let t=D(e,["request","requestDigest"]);if(!t.ok)return p(t.reason);let n=v(t.record.request);if(n!==void 0)return p(n);let o=t.record.requestDigest;return w(o)?{ok:!0,value:{requestDigest:o}}:T()}function Mr(e){let t=D(e,["tickId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.tickId;if(typeof n!="string"||n.length===0)return p("tickId is required");let o=v(t.record.request);if(o!==void 0)return p(o);let i=t.record.requestDigest;return w(i)?{ok:!0,value:{tickId:n,requestDigest:i}}:T()}function $r(e){let t=D(e,["phase","lifecycle","deliveryId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.phase;if(n!=="lifecycle"&&n!=="handler")return p('phase must be "lifecycle" or "handler"');let o=t.record.lifecycle,i;if(o!==void 0){if(o!=="enable"&&o!=="disable"&&o!=="renew")return p('lifecycle must be "enable", "disable", or "renew"');i=o}if(n==="lifecycle"&&i===void 0)return p("lifecycle is required for the lifecycle phase");let a=t.record.deliveryId,c;if(a!==void 0){if(typeof a!="string"||a.length===0)return p("deliveryId must be a non-empty string");c=a}if(n==="handler"&&c===void 0)return p("deliveryId is required for the handler phase");let d=v(t.record.request);if(d!==void 0)return p(d);let l=t.record.requestDigest;return w(l)?{ok:!0,value:{phase:n,...i!==void 0?{lifecycle:i}:{},...c!==void 0?{deliveryId:c}:{},requestDigest:l}}:T()}function se(e){return Ye.includes(e)?e:void 0}var Ze=["scopeKind","scopeId","requestDigest"];function Wr(e){if(!s(e))return p("consume body must be a JSON object");for(let i of Object.keys(e))if(!Ze.includes(i))return p(`consume does not accept the "${i}" field`);let t=se(e.scopeKind);if(t===void 0)return p("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return p("scopeId is required");let o=e.requestDigest;return w(o)?{ok:!0,value:{scopeKind:t,scopeId:n,requestDigest:o}}:T()}var et=["scopeKind","scopeId","providerHost","status","durationMs","requestBytes","responseBytes","errorCode"];function H(e,t){return typeof e!="number"||!Number.isInteger(e)||e<0?{ok:!1,reason:`${t} must be a non-negative integer`}:{ok:!0,value:e}}function Gr(e){if(!s(e))return p("audit body must be a JSON object");for(let f of Object.keys(e))if(!et.includes(f))return p(`audit does not accept the "${f}" field`);let t=se(e.scopeKind);if(t===void 0)return p("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return p("scopeId is required");let o=e.providerHost;if(typeof o!="string"||o.length===0)return p("providerHost is required");let i=H(e.durationMs,"durationMs");if(!i.ok)return p(i.reason);let a;if(e.status!==void 0){let f=H(e.status,"status");if(!f.ok)return p(f.reason);a=f.value}let c;if(e.requestBytes!==void 0){let f=H(e.requestBytes,"requestBytes");if(!f.ok)return p(f.reason);c=f.value}let d;if(e.responseBytes!==void 0){let f=H(e.responseBytes,"responseBytes");if(!f.ok)return p(f.reason);d=f.value}let l;if(e.errorCode!==void 0){let f=e.errorCode;if(typeof f!="string"||f.length===0)return p("errorCode must be a non-empty string");l=f}return{ok:!0,value:{scopeKind:t,scopeId:n,providerHost:o,...a!==void 0?{status:a}:{},durationMs:i.value,...c!==void 0?{requestBytes:c}:{},...d!==void 0?{responseBytes:d}:{},...l!==void 0?{errorCode:l}:{}}}}function Kr(e){return!s(e)||!s(e.grant)?r("egress grant envelope must carry a grant object"):u(e.grant)}function qr(e){return!s(e)||e.consumed!==!0?r("egress grant consume data must carry consumed:true"):u({consumed:!0})}var Qr="/:flowRunId/runtime-credential",Zr="/:invocationId/runtime-credential",eo="/:discoveryInvocationId/runtime-credential",to="/:pollingInstanceId/runtime-credential",no="/:triggerInstanceId/runtime-credential",ro=e=>`${g}/${encodeURIComponent(e)}/runtime-credential`,oo=e=>`${J}/${encodeURIComponent(e)}/runtime-credential`,io=e=>`${Y}/${encodeURIComponent(e)}/runtime-credential`,so=e=>`${C}/${encodeURIComponent(e)}/runtime-credential`,uo=e=>`${N}/${encodeURIComponent(e)}/runtime-credential`,ao=["flow_action","tool_invoke","discovery","polling_trigger","webhook_trigger"];function U(e,t){if(!s(e))return{ok:!1,reason:"runtime credential request body must be a JSON object"};for(let n of Object.keys(e))if(!t.includes(n))return{ok:!1,reason:`runtime credential request does not accept the "${n}" field`};return{ok:!0,record:e}}function co(e){let t=U(e,["nodeId"]);if(!t.ok)return r(t.reason);let n=t.record.nodeId;return typeof n!="string"||n.length===0?r("nodeId is required"):u({nodeId:n})}function po(e){let t=U(e??{},[]);return t.ok?u(null):r(t.reason)}function lo(e){let t=U(e??{},[]);return t.ok?u(null):r(t.reason)}function fo(e){let t=U(e,["tickId"]);if(!t.ok)return r(t.reason);let n=t.record.tickId;return typeof n!="string"||n.length===0?r("tickId is required"):u({tickId:n})}function go(e){let t=U(e,["executionKind","deliveryId","lifecycleOperation"]);if(!t.ok)return r(t.reason);let n=t.record.executionKind;if(n!=="event_handler"&&n!=="lifecycle")return r('executionKind must be "event_handler" or "lifecycle"');let o,i=t.record.deliveryId;if(i!==void 0){if(typeof i!="string"||i.length===0)return r("deliveryId must be a non-empty string");o=i}let a,c=t.record.lifecycleOperation;if(c!==void 0){if(c!=="enable"&&c!=="disable"&&c!=="renew")return r('lifecycleOperation must be "enable", "disable", or "renew"');a=c}return n==="lifecycle"&&a===void 0?r("lifecycleOperation is required for the lifecycle execution kind"):u({executionKind:n,...o!==void 0?{deliveryId:o}:{},...a!==void 0?{lifecycleOperation:a}:{}})}function mo(e){return!s(e)||typeof e.sessionId!="string"||typeof e.connectionId!="string"||typeof e.authProfileRef!="string"||typeof e.authType!="string"||!s(e.credential)?r("runtime credential session must carry sessionId, connectionId, auth profile facts and a credential object"):u(e.credential)}function L(e){return!s(e)||typeof e.file_id!="string"||typeof e.name!="string"||typeof e.size_bytes!="number"||typeof e.created_at!="string"||typeof e.expires_at!="string"||e.mime_type!==void 0&&typeof e.mime_type!="string"||e.sha256!==void 0&&typeof e.sha256!="string"||e.source!==void 0&&typeof e.source!="string"?r("file ref data does not match the AIS file-ref shape"):u(e)}function z(e){return!s(e)||e.method!=="GET"&&e.method!=="PUT"||typeof e.url!="string"||typeof e.expires_at!="string"||!rt(e.headers)?r("presigned file URL data is invalid"):u(e)}function tt(e){if(!s(e))return r("file upload session data is invalid");let t=L(e.file);if(!t.ok)return r(t.reason);let n=z(e.upload);return n.ok?u({file:t.value,upload:n.value}):r(n.reason)}function nt(e){if(!s(e))return r("file metadata data is invalid");let t=L(e.file);return t.ok?u({file:t.value}):r(t.reason)}function rt(e){return s(e)?Object.values(e).every(t=>typeof t=="string"):!1}var A="/internal/files",_o="/upload-session",xo="/:fileId/complete",ho="/:fileId/access",So="/:fileId/stat",wo="/:fileId/content",To=()=>A,Ao=()=>`${A}/upload-session`,Po=e=>`${A}/${encodeURIComponent(e)}/complete`,bo=(e,t)=>`${A}/${encodeURIComponent(e)}/access?intent=${encodeURIComponent(t)}`,ue=e=>`?scope_kind=${encodeURIComponent(e.scopeKind)}&scope_id=${encodeURIComponent(e.scopeId)}`,No=(e,t)=>`${A}/${encodeURIComponent(e)}/stat${ue(t)}`,Oo=(e,t)=>`${A}/${encodeURIComponent(e)}/content${ue(t)}`;function Co(e){if(!s(e))return r("internal file access data is invalid");if(e.intent==="runtime_read"||e.intent==="provider_multipart"){let t=L(e.file);if(!t.ok)return r(t.reason);let n=z(e.access);return n.ok?u({file:t.value,access:n.value,intent:e.intent}):r(n.reason)}return r("internal file access intent is invalid")}import{isHumanInputSpec as ot}from"@ablehi/flow-contract";var Ho="/:flowRunId/human-inputs",Lo="/:flowRunId/human-inputs/:requestId",Mo="/:flowRunId/human-inputs/:requestId/expire",$o="/:flowRunId/human-inputs/:requestId/acknowledge",it=e=>`${g}/${encodeURIComponent(e)}/human-inputs`,pe=(e,t)=>`${it(e)}/${encodeURIComponent(t)}`,Wo=(e,t)=>`${pe(e,t)}/expire`,Go=(e,t)=>`${pe(e,t)}/acknowledge`,st="human_input_resolved";function Ko(e){return`${st}_${e}`}function qo(e){return!s(e)||Object.keys(e).length!==4||!Object.hasOwn(e,"requestId")||!Object.hasOwn(e,"flowRunId")||!Object.hasOwn(e,"nodeId")||!Object.hasOwn(e,"status")||typeof e.requestId!="string"||e.requestId.length===0||typeof e.flowRunId!="string"||e.flowRunId.length===0||typeof e.nodeId!="string"||e.nodeId.length===0||e.status!=="submitted"&&e.status!=="expired"?r("Human Input resolved event shape is invalid"):u({requestId:e.requestId,flowRunId:e.flowRunId,nodeId:e.nodeId,status:e.status})}var ae=160,ce=500;function ut(e){return s(e)?e.kind==="choice"?!M(e,["kind","choiceId","comment"])||typeof e.choiceId!="string"||e.choiceId.length===0||e.comment!==void 0&&typeof e.comment!="string"?r("Human Input choice response is invalid"):u({kind:"choice",choiceId:e.choiceId,...e.comment!==void 0?{comment:e.comment}:{}}):e.kind==="text"&&M(e,["kind","text"])&&typeof e.text=="string"?u({kind:"text",text:e.text}):e.kind==="form"&&M(e,["kind","values"])&&s(e.values)?u({kind:"form",values:e.values}):r("Human Input response is invalid"):r("Human Input response must be an object")}function Vo(e,t){let n=ut(e);if(!n.ok||n.value.kind!==t.kind)return r("Human Input response does not match its input spec");switch(t.kind){case"choice":{let o=n.value;return o.kind!=="choice"?r("Human Input choice response does not match its spec"):!t.choices.some(i=>i.id===o.choiceId)||o.comment!==void 0&&t.allowComment!==!0?r("Human Input choice response does not match its spec"):n}case"text":return n.value.kind!=="text"||t.required===!0&&n.value.text.trim().length===0?r("Human Input text response does not match its spec"):n;case"form":{if(n.value.kind!=="form")return r("Human Input form response does not match its spec");let o=new Map(t.fields.map(i=>[i.id,i]));if(Object.keys(n.value.values).some(i=>!o.has(i)))return r("Human Input form response contains an unknown field");for(let i of t.fields){let a=n.value.values[i.id];if(!Object.hasOwn(n.value.values,i.id)){if(i.required===!0)return r(`Human Input form response is missing required field '${i.id}'`);continue}if(a==null||!at(i,a))return r(`Human Input form response field '${i.id}' does not match its spec`)}return n}}}function at(e,t){switch(e.type){case"text":case"textarea":return typeof t=="string";case"number":return typeof t=="number"&&Number.isFinite(t);case"boolean":return typeof t=="boolean";case"select":return typeof t=="string"&&(e.options??[]).some(n=>n.id===t)}}function m(e){return{ok:!1,reason:e}}function h(e,t){return s(e)?{ok:!0,value:e}:m(`${t} must be an object`)}function M(e,t){return Object.keys(e).every(n=>t.includes(n))}function P(e,t){return typeof e!="string"||e.length===0?m(`${t} must be a non-empty string`):{ok:!0,value:e}}var ct=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/;function dt(e,t){return typeof e!="string"||!ct.test(e)||Number.isNaN(Date.parse(e))?m(`${t} must be an ISO-8601 timestamp`):{ok:!0,value:e}}function le(e){let t=h(e,"renderedPrompt");if(!t.ok)return t;if(!M(t.value,["title","body","format"]))return m("renderedPrompt contains an unknown field");let n=P(t.value.title,"renderedPrompt.title");if(!n.ok)return n;if(!/[^\p{White_Space}]/u.test(n.value))return m("renderedPrompt.title must contain non-whitespace text");if(!de(n.value,ae))return m(`renderedPrompt.title must contain at most ${ae} code points`);let o={title:n.value};if(t.value.body!==void 0){if(typeof t.value.body!="string")return m("renderedPrompt.body must be a string");if(!de(t.value.body,ce))return m(`renderedPrompt.body must contain at most ${ce} code points`);o.body=t.value.body}if(t.value.format!==void 0){if(t.value.format!=="plain"&&t.value.format!=="markdown")return m("renderedPrompt.format is invalid");o.format=t.value.format}return{ok:!0,value:o}}function de(e,t){let n=0,o=e[Symbol.iterator]();for(;!o.next().done;)if(n+=1,n>t)return!1;return!0}function jo(e){let t=le(e);return t.ok?u(t.value):r(t.reason)}function pt(e){try{return ot(e)?u(e):r("Human Input spec shape is invalid")}catch{return r("Human Input spec shape is invalid")}}function lt(e){let t=pt(e);return t.ok?t:m(t.reason)}function ft(e){if(e==null)return{ok:!0,value:void 0};let t=h(e,"partiallyRenderedDelivery");if(!t.ok)return t;let n=t.value.actions;if(n===void 0)return{ok:!0,value:{}};if(!Array.isArray(n))return m("partiallyRenderedDelivery.actions must be an array");let o=[];for(let i of n){let a=h(i,"delivery action");if(!a.ok)return a;let c=P(a.value.id,"delivery action id");if(!c.ok)return c;let d=fe(a.value.inputs,`delivery action '${c.value}' inputs`);if(!d.ok)return d;o.push({id:c.value,inputs:d.value})}return{ok:!0,value:{actions:o}}}function fe(e,t){let n=h(e,t);if(!n.ok)return n;let o={};for(let[i,a]of Object.entries(n.value)){let c=ge(a,`${t}.${i}`);if(!c.ok)return c;o[i]=c.value}return{ok:!0,value:o}}function ge(e,t){let n=h(e,t);if(!n.ok)return n;switch(n.value.kind){case"literal":return{ok:!0,value:{kind:"literal",value:n.value.value}};case"human_input_ref":{let i=P(n.value.path,`${t}.path`);return i.ok?{ok:!0,value:{kind:"human_input_ref",path:i.value}}:i}case"array":{if(!Array.isArray(n.value.items))return m(`${t}.items must be an array`);let i=[];for(let[a,c]of n.value.items.entries()){let d=ge(c,`${t}[${a}]`);if(!d.ok)return d;i.push(d.value)}return{ok:!0,value:{kind:"array",items:i}}}case"object":{let i=fe(n.value.entries,`${t}.entries`);return i.ok?{ok:!0,value:{kind:"object",entries:i.value}}:i}case"template":{if(!Array.isArray(n.value.parts))return m(`${t}.parts must be an array`);let i=[];for(let[a,c]of n.value.parts.entries()){let d=gt(c,`${t}.parts[${a}]`);if(!d.ok)return d;i.push(d.value)}return{ok:!0,value:{kind:"template",parts:i}}}default:return m(`${t}.kind is invalid`)}}function gt(e,t){let n=h(e,t);if(!n.ok)return n;let o=n.value.kind;if(o==="literal")return typeof n.value.value!="string"?m(`${t}.value must be a string`):{ok:!0,value:{kind:"literal",value:n.value.value}};if(o==="human_input_ref"){let i=P(n.value.path,`${t}.path`);return i.ok?{ok:!0,value:{kind:"human_input_ref",path:i.value}}:i}return m(`${t}.kind is invalid`)}function Xo(e){let t=h(e,"request body");if(!t.ok)return r(t.reason);let n=Object.keys(t.value).find(Re=>!["executionScope","nodeId","renderedPrompt","input","partiallyRenderedDelivery","timeout","expiresAt"].includes(Re));if(n!==void 0)return r(`human input body does not accept the "${n}" field`);let o=k(t.value.executionScope);if(!o.ok)return r(o.reason);let i=P(t.value.nodeId,"nodeId");if(!i.ok)return r(i.reason);let a=le(t.value.renderedPrompt);if(!a.ok)return r(a.reason);let c=lt(t.value.input);if(!c.ok)return r(c.reason);let d=P(t.value.timeout,"timeout");if(!d.ok)return r(d.reason);let l=dt(t.value.expiresAt,"expiresAt");if(!l.ok)return r(l.reason);let f=ft(t.value.partiallyRenderedDelivery);return f.ok?u({executionScope:o.value,nodeId:i.value,renderedPrompt:a.value,input:c.value,timeout:d.value,expiresAt:l.value,...f.value!==void 0?{partiallyRenderedDelivery:f.value}:{}}):r(f.reason)}function mt(e){return!s(e)||typeof e.id!="string"||e.id.length===0||typeof e.nodeId!="string"||typeof e.status!="string"||!(e.output===null||s(e.output))?r("human input request view must carry id, nodeId, status and output"):u(e)}function Jo(e){if(!s(e)||typeof e.created!="boolean")return r("human input create data must carry created:boolean");let t=mt(e.request);return t.ok?u({created:e.created,request:t.value}):t}function Yo(e){return!s(e)||e.acknowledged!==!0?r("human input acknowledge data must carry acknowledged:true"):u({acknowledged:!0})}var Qo="ablehi-wfp-user-runtime-manifest/v1",Zo="unknown";function ei(e){return e.endsWith(".js")?`${e.slice(0,-3)}.manifest.json`:`${e}.manifest.json`}var ni="/internal/deployment-handshake",Rt=["start","terminate","send-event","start-webhook-watcher","run-polling-tick","invoke-tool","invoke-discovery","invoke-trigger-handler","invoke-webhook-protocol-adapter","deployment-handshake"],ri=Rt,oi="HANDSHAKE_REQUEST_INVALID",ii="HANDSHAKE_SECRET_UNCONFIGURED",si="HANDSHAKE_SECRET_MISMATCH",ui="HANDSHAKE_CONTRACT_VERSION_MISMATCH",ai="HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH",ci="HANDSHAKE_CAPABILITY_MISSING";function di(e){return[e.nonce,e.timestamp,e.contractVersion,e.dispatchNamespace].map(n=>`${n.length}:${n}`).join(".")}function pi(e){return["response",e.nonce,e.contractVersion,e.dispatchNamespace,...e.capabilities].map(n=>`${n.length}:${n}`).join(".")}function gi(e){if(!s(e)||e.ok!==!1||!s(e.error))return r("Server execution error envelope is invalid");let t=Object.keys(e).find(i=>i!=="ok"&&i!=="error"&&i!=="guidance"),n=e.error,o=Object.keys(n).find(i=>i!=="code"&&i!=="message"&&i!=="retryable"&&i!=="issues"&&i!=="details");return t!==void 0||o!==void 0||typeof n.code!="string"||n.code.length===0||typeof n.message!="string"||typeof n.retryable!="boolean"||n.issues!==void 0&&!Array.isArray(n.issues)||n.details!==void 0&&!s(n.details)?r("Server execution error must carry code, message, and boolean retryable"):u(e)}import{lookupErrorRegistryEntry as It}from"@ablehi/error-contract";var ki="/:flowRunId/inbox-message-emissions/:nodeId";function _i(e,t){return`${g}/${encodeURIComponent(e)}/inbox-message-emissions/${encodeURIComponent(t)}`}function I(e){let t=It(e);if(t.code!==e)throw new Error(`Inbox message execution error code is not registered: ${e}`);return t.retryable}var xi=_t({INBOX_MESSAGE_IDEMPOTENCY_KEY_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_IDEMPOTENCY_KEY_INVALID")},INBOX_MESSAGE_PAYLOAD_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_PAYLOAD_INVALID")},INBOX_MESSAGE_PAYLOAD_TOO_LARGE:{httpStatus:413,retryable:I("INBOX_MESSAGE_PAYLOAD_TOO_LARGE")},INBOX_MESSAGE_RENDER_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_RENDER_INVALID")},INBOX_MESSAGE_CONTENT_TOO_LARGE:{httpStatus:413,retryable:I("INBOX_MESSAGE_CONTENT_TOO_LARGE")},INBOX_MESSAGE_ATTACHMENT_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_ATTACHMENT_INVALID")},INBOX_MESSAGE_ATTACHMENT_UNAVAILABLE:{httpStatus:409,retryable:I("INBOX_MESSAGE_ATTACHMENT_UNAVAILABLE")},FLOW_INBOX_MESSAGE_INVALID:{httpStatus:422,retryable:I("FLOW_INBOX_MESSAGE_INVALID")},EXECUTION_LEASE_INVALID:{httpStatus:409,retryable:I("EXECUTION_LEASE_INVALID")},EXECUTION_LEASE_SUPERSEDED:{httpStatus:409,retryable:I("EXECUTION_LEASE_SUPERSEDED")},AUTOMATION_APP_INSTALLATION_DISABLED:{httpStatus:409,retryable:I("AUTOMATION_APP_INSTALLATION_DISABLED")},INBOX_MESSAGE_EMISSION_WINDOW_CLOSED:{httpStatus:409,retryable:I("INBOX_MESSAGE_EMISSION_WINDOW_CLOSED")},INBOX_MESSAGE_EMISSION_CONFLICT:{httpStatus:409,retryable:I("INBOX_MESSAGE_EMISSION_CONFLICT")},INBOX_MESSAGE_EMISSION_UNAVAILABLE:{httpStatus:503,retryable:I("INBOX_MESSAGE_EMISSION_UNAVAILABLE")}});function hi(e){if(!s(e)||!me(e,["executionScope","idempotencyKey","payload"])||typeof e.idempotencyKey!="string"||!yt(e.payload))return r("Inbox message Emission request shape is invalid");let t=k(e.executionScope);return t.ok?u({executionScope:t.value,idempotencyKey:e.idempotencyKey,payload:e.payload}):r(t.reason)}function Si(e){return!s(e)||!me(e,["emissionId","outcome","occurredAt"])||typeof e.emissionId!="string"||e.emissionId.length===0||e.outcome!=="created"&&e.outcome!=="replayed"||typeof e.occurredAt!="string"||e.occurredAt.length===0?r("Inbox message Emission response shape is invalid"):u(e)}function me(e,t){let n=Object.keys(e).sort(),o=[...t].sort();return n.length===o.length&&n.every((i,a)=>i===o[a])}function yt(e){return s(e)&&Et(e)}function Et(e){let n=new WeakSet,o=[{value:e}],i=0;for(;o.length>0;){let a=o.pop();if(a.exiting){n.delete(a.value);continue}let c=a.value;if(c===null||typeof c=="string"||typeof c=="boolean"||typeof c=="number"&&Number.isFinite(c))continue;if(typeof c!="object"||n.has(c)||(i+=1,i>1e5))return!1;let d=Array.isArray(c)?c:s(c)&&kt(c)?Object.values(c):void 0;if(d===void 0)return!1;n.add(c),o.push({value:c,exiting:!0});for(let l=d.length-1;l>=0;l-=1)o.push({value:d[l]})}return!0}function kt(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function _t(e){for(let t of Object.values(e))Object.freeze(t);return Object.freeze(e)}export{dn as COMPLETE_EVENT_WAIT_ROUTE_SUBPATH,wt as CONTEXT_STATE_CLEANUP_ROUTE_PATH,Rt as DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES,ri as DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES,ni as DEPLOYMENT_HANDSHAKE_ROUTE,wr as DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,eo as DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,br as EGRESS_GRANT_AUDIT_ROUTE_SUBPATH,Pr as EGRESS_GRANT_CONSUME_ROUTE_SUBPATH,Ye as EGRESS_GRANT_SCOPE_KINDS,zt as EXECUTION_CONTEXT_ROUTE_SUBPATH,Ft as EXECUTION_LEASE_INVALID,Ot as EXECUTION_LEASE_ROUTE_SUBPATH,Ht as EXECUTION_LEASE_SUPERSEDED,ho as FILE_ACCESS_ROUTE_SUBPATH,xo as FILE_COMPLETE_ROUTE_SUBPATH,wo as FILE_CONTENT_ROUTE_SUBPATH,So as FILE_STAT_ROUTE_SUBPATH,_o as FILE_UPLOAD_SESSION_ROUTE_SUBPATH,hr as FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH,an as FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH,be as FLOW_RUN_EXECUTION_EVENT_TYPES,un as FLOW_RUN_RESULT_ROUTE_SUBPATH,Qr as FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Pn as HANDLER_BUNDLES_ROUTE_SUBPATH,ci as HANDSHAKE_CAPABILITY_MISSING,ui as HANDSHAKE_CONTRACT_VERSION_MISMATCH,ai as HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH,oi as HANDSHAKE_REQUEST_INVALID,si as HANDSHAKE_SECRET_MISMATCH,ii as HANDSHAKE_SECRET_UNCONFIGURED,Ho as HUMAN_INPUTS_ROUTE_SUBPATH,$o as HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH,Mt as HUMAN_INPUT_CANCELLED_BY_RESET,Mo as HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH,ce as HUMAN_INPUT_PROMPT_BODY_MAX_CODE_POINTS,ae as HUMAN_INPUT_PROMPT_TITLE_MAX_CODE_POINTS,Lo as HUMAN_INPUT_REQUEST_ROUTE_SUBPATH,st as HUMAN_INPUT_RESOLVED_EVENT_PREFIX,ki as INBOX_MESSAGE_EMISSION_ROUTE_SUBPATH,xi as INBOX_MESSAGE_EXECUTION_ERROR_REGISTRY,Y as INTERNAL_DISCOVERY_INVOCATIONS_ROUTE_PREFIX,ie as INTERNAL_EGRESS_GRANTS_ROUTE_PREFIX,A as INTERNAL_FILES_ROUTE_PREFIX,g as INTERNAL_FLOW_RUNS_ROUTE_PREFIX,De as INTERNAL_FLOW_VERSIONS_ROUTE_PREFIX,q as INTERNAL_INSTALLATIONS_ROUTE_PREFIX,C as INTERNAL_POLLING_TRIGGER_INSTANCES_ROUTE_PREFIX,J as INTERNAL_TOOL_INVOCATIONS_ROUTE_PREFIX,N as INTERNAL_WEBHOOK_TRIGGER_INSTANCES_ROUTE_PREFIX,cr as POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH,Tr as POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,dr as POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,to as POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,pr as POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH,cn as REGISTER_EVENT_WAIT_ROUTE_SUBPATH,ao as RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS,Bt as RUN_DISPATCH_UNAVAILABLE,Ie as SERVER_EXECUTION_CONTRACT_VERSION,sn as STEP_RESULT_ROUTE_SUBPATH,bn as TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH,Sr as TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,Zr as TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Lt as WAIT_EXECUTION_SUPERSEDED,Yn as WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH,Qn as WEBHOOK_PROTOCOL_ADAPTER_MODULE,Mn as WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH,Wn as WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH,Ar as WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,Gn as WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH,$n as WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,Kn as WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH,no as WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Qo as WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION,Zo as WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION,vt as WORKFLOW_RESTART_INSTANCE_UNAVAILABLE,Ut as WORKFLOW_RESTART_REJECTED,Dt as WORKFLOW_RESTART_REQUEST_INVALID,Ct as WORKFLOW_RESTART_ROUTE,$t as acquireExecutionLeasePath,mn as completeEventWaitPath,di as deploymentHandshakeProbePayload,pi as deploymentHandshakeResponseProofPayload,Cr as discoveryInvocationEgressGrantPath,io as discoveryInvocationRuntimeCredentialPath,Br as egressGrantAuditPath,Ur as egressGrantConsumePath,Qt as executionContextPath,Nr as flowRunEgressGrantPath,fn as flowRunExecutionEventsPath,ln as flowRunResultPath,ro as flowRunRuntimeCredentialPath,Zn as flowScriptProtocolAdapterModuleName,Nn as handlerBundlesPath,Go as humanInputAcknowledgePath,Wo as humanInputExpirePath,pe as humanInputRequestPath,Ko as humanInputResolvedEventType,it as humanInputsPath,_i as inboxMessageEmissionPath,bo as internalFileAccessPath,Po as internalFileCompletePath,Oo as internalFileContentPath,No as internalFileStatPath,Ao as internalFileUploadSessionPath,To as internalFilesPath,w as isValidRequestDigest,Gt as parseAcquireExecutionLeaseData,Wt as parseAcquireExecutionLeaseRequest,hn as parseCompleteFlowRunWaitBody,wn as parseCompleteFlowRunWaitData,Tt as parseContextStateCleanupRequestBody,At as parseContextStateCleanupResponseData,x as parseContextStateScope,Xo as parseCreateHumanInputBody,Lr as parseDiscoveryGrantBody,lo as parseDiscoveryRuntimeCredentialBody,Gr as parseEgressGrantAuditBody,Wr as parseEgressGrantConsumeBody,qr as parseEgressGrantConsumeData,Kr as parseEgressGrantData,Si as parseEmitInboxMessageData,hi as parseEmitInboxMessageRequest,Z as parseExecutionAnchor,Zt as parseExecutionContextData,xe as parseExecutionLease,k as parseExecutionWriteScope,nt as parseFileMetadataData,L as parseFileRefData,W as parseFileRuntimeLimits,tt as parseFileUploadSessionData,Fr as parseFlowActionGrantBody,Q as parseFlowExecutionScope,_n as parseFlowRunExecutionEventBody,kn as parseFlowRunExecutionEventData,yn as parseFlowRunResultBody,En as parseFlowRunResultData,co as parseFlowRuntimeCredentialBody,Tn as parseFlowWaitResolvedEvent,Ue as parseHandlerBundle,Cn as parseHandlerBundlesData,Yo as parseHumanInputAcknowledgeData,Jo as parseHumanInputCreateData,mt as parseHumanInputRequestViewData,qo as parseHumanInputResolvedEvent,ut as parseHumanInputResponse,Vo as parseHumanInputResponseForSpec,pt as parseHumanInputSpec,Co as parseInternalFileAccessData,Rr as parsePollingPublishBody,fo as parsePollingRuntimeCredentialBody,We as parsePollingTriggerContext,mr as parsePollingTriggerDispatchData,Mr as parsePollingTriggerGrantBody,Ir as parsePublishPollingTickEventsData,xn as parseRegisterFlowRunWaitBody,Sn as parseRegisterFlowRunWaitData,jo as parseRenderedHumanInputPrompt,mo as parseRuntimeCredentialSessionCredential,F as parseRuntimeNetwork,gi as parseServerExecutionErrorEnvelope,Hr as parseSingleToolGrantBody,po as parseSingleToolRuntimeCredentialBody,Rn as parseStepRecordBody,In as parseStepRecordData,Dn as parseToolHandlerBundlesData,V as parseTriggerFileRuntimeDispatch,nr as parseTriggerHandlerBundlesData,Le as parseWebhookDelivery,tr as parseWebhookDeliveryDispatchData,rr as parseWebhookPublishEventsBody,or as parseWebhookRearmBody,go as parseWebhookRuntimeCredentialBody,$r as parseWebhookTriggerGrantBody,er as parseWebhookWatcherContext,Kt as parseWorkflowDispatchRestartRequest,qt as parseWorkflowDispatchRestartResponse,lr as pollingTriggerContextPath,Dr as pollingTriggerEgressGrantPath,fr as pollingTriggerHandlerBundlesPath,so as pollingTriggerRuntimeCredentialPath,gr as pollingTriggerTickEventsPath,gn as registerEventWaitPath,Qe as requestHasMultipartFileParts,pn as stepResultPath,On as toolHandlerBundlesPath,Or as toolInvocationEgressGrantPath,oo as toolInvocationRuntimeCredentialPath,zn as webhookProtocolAdapterBundlePath,qn as webhookTriggerContextPath,jn as webhookTriggerDeliveryPath,vr as webhookTriggerEgressGrantPath,Xn as webhookTriggerEventsPath,Vn as webhookTriggerHandlerBundlesPath,Jn as webhookTriggerRearmPath,uo as webhookTriggerRuntimeCredentialPath,ei as wfpUserRuntimeManifestPath};
1
+ var Re="0.4.1";function u(e){return{ok:!0,value:e}}function r(e){return{ok:!1,reason:e}}function s(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var wt="/cleanup-state-scopes";function x(e){if(!s(e)||typeof e.kind!="string")return r("context state scope surface shape is invalid");switch(e.kind){case"webhook-trigger":return Ie(e);case"polling-trigger":return ye(e);case"flow-action":return Ee(e);default:return r("context state scope kind is invalid")}}function Tt(e){if(!s(e))return r("cleanup request body must be a JSON object");let t=L(e,["scopes"]);if(t!==void 0)return r(`cleanup request does not accept the "${t}" field`);if(!Array.isArray(e.scopes))return r("cleanup request scopes must be an array");let n=[];for(let o of e.scopes){let i=x(o);if(!i.ok)return i;n.push(i.value)}return u({scopes:n})}function St(e){return!s(e)||typeof e.deleted!="number"||!Number.isSafeInteger(e.deleted)||e.deleted<0?r("cleanup response data surface shape is invalid"):u({deleted:e.deleted})}function Ie(e){let t=L(e,["kind","workspaceId","triggerInstanceId"]);return t!==void 0?r(`webhook trigger scope does not accept "${t}"`):e.kind!=="webhook-trigger"||!_(e.workspaceId)||!_(e.triggerInstanceId)?r("webhook trigger state scope is invalid"):u({kind:"webhook-trigger",workspaceId:e.workspaceId,triggerInstanceId:e.triggerInstanceId})}function ye(e){let t=L(e,["kind","workspaceId","pollingInstanceId"]);return t!==void 0?r(`polling trigger scope does not accept "${t}"`):e.kind!=="polling-trigger"||!_(e.workspaceId)||!_(e.pollingInstanceId)?r("polling trigger state scope is invalid"):u({kind:"polling-trigger",workspaceId:e.workspaceId,pollingInstanceId:e.pollingInstanceId})}function Ee(e){let t=L(e,["kind","workspaceId","flowId","nodeId","connectionId"]);if(t!==void 0)return r(`flow action scope does not accept "${t}"`);let n=e.connectionId;return e.kind!=="flow-action"||!_(e.workspaceId)||!_(e.flowId)||!_(e.nodeId)||n!==null&&!_(n)?r("flow action state scope is invalid"):u({kind:"flow-action",workspaceId:e.workspaceId,flowId:e.flowId,nodeId:e.nodeId,connectionId:n})}function _(e){return typeof e=="string"&&e.length>0}function L(e,t){return Object.keys(e).find(n=>!t.includes(n))}import{parseFlowDefinition as ke}from"@ablehi/flow-contract";var g="/internal/flow-runs",Ot="/:flowRunId/execution-context";function Ct(e){return`${g}/${encodeURIComponent(e)}/execution-context`}function W(e){return!s(e)||!B(e.fileMaxBytes)||!B(e.fileReadMaxBytes)||!B(e.inlineMultipartBytesMax)?r("file runtime limits must carry three positive integer bounds"):u({fileMaxBytes:e.fileMaxBytes,fileReadMaxBytes:e.fileReadMaxBytes,inlineMultipartBytesMax:e.inlineMultipartBytesMax})}function vt(e){if(!s(e))return r("execution context must be a JSON object");let t=$(e,["flowRunId","workspaceId","input","executionGeneration","compiled","executionBindings","fileRuntime"]);if(t!==void 0)return r(`execution context does not accept the "${t}" field`);let n=e.compiled;if(typeof e.flowRunId!="string"||typeof e.workspaceId!="string"||!s(e.input)||!s(n)||$(n,["irSchemaVersion","interpreterContractVersion","ir","compiledArtifactId"])!==void 0||typeof n.irSchemaVersion!="string"||typeof n.interpreterContractVersion!="string"||typeof n.compiledArtifactId!="string"||!he(e.executionBindings))return r("execution context surface shape is invalid");let o=ke(n.ir);if(!o.ok)return r(o.reason);let i=_e(e.executionGeneration,e.flowRunId);if(!i.ok)return r(i.reason);let a=xe(e.fileRuntime);return a.ok?u({...e,compiled:{...n,ir:o.value},executionGeneration:i.value,fileRuntime:a.value}):r(a.reason)}function _e(e,t){return!s(e)||$(e,["id","flowRunId","number"])!==void 0||typeof e.id!="string"||e.id.length===0||typeof e.flowRunId!="string"||e.flowRunId!==t||!B(e.number)?r("executionGeneration surface shape is invalid"):u({id:e.id,flowRunId:e.flowRunId,number:e.number})}function xe(e){if(e===null)return u(null);if(!s(e))return r("fileRuntime must be null or an object");let t=W(e.limits);return t.ok?u({limits:t.value}):r(t.reason)}function he(e){return Array.isArray(e)?e.every(t=>{if(!s(t))return!1;let n=t.connection,o=x(t.stateScope);return typeof t.nodeId=="string"&&typeof t.toolRef=="string"&&s(t.toolDescriptor)&&s(t.integrationDescriptor)&&s(n)&&typeof n.installationId=="string"&&typeof n.connectionRef=="string"&&typeof n.connectionId=="string"&&typeof n.authProfileRef=="string"&&typeof n.authType=="string"&&o.ok}):!1}function B(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function $(e,t){return Object.keys(e).find(n=>!t.includes(n))}var Bt="/:flowRunId/execution-leases",Ft="/restart",Ht="WORKFLOW_RESTART_REQUEST_INVALID",Mt="WORKFLOW_RESTART_INSTANCE_UNAVAILABLE",Gt="WORKFLOW_RESTART_REJECTED",$t="RUN_DISPATCH_UNAVAILABLE",Wt="EXECUTION_LEASE_INVALID",Kt="EXECUTION_LEASE_SUPERSEDED",qt="WAIT_EXECUTION_SUPERSEDED",Vt="HUMAN_INPUT_CANCELLED_BY_RESET";function jt(e){return`${g}/${encodeURIComponent(e)}/execution-leases`}var we=/^generation:[A-Za-z0-9][A-Za-z0-9._:-]{0,239}$/;function Z(e){return s(e)?e.kind==="terminal"&&k(e,["kind"])?u({kind:"terminal"}):e.kind==="node"&&k(e,["kind","nodeId"])&&y(e.nodeId)?u({kind:"node",nodeId:e.nodeId}):r("execution anchor shape is invalid"):r("execution anchor must be an object")}function E(e){if(!s(e)||!k(e,["flowRunId","generationId","generationNumber","anchor","leaseId"])||!y(e.flowRunId)||!y(e.generationId)||!Te(e.generationNumber)||!y(e.leaseId))return r("execution lease shape is invalid");let t=Z(e.anchor);return t.ok?u({flowRunId:e.flowRunId,generationId:e.generationId,generationNumber:e.generationNumber,anchor:t.value,leaseId:e.leaseId}):r(t.reason)}function Xt(e){if(!s(e)||!k(e,["anchor"]))return r("lease request shape is invalid");let t=Z(e.anchor);return t.ok?u({anchor:t.value}):r(t.reason)}function Jt(e){if(!s(e)||!k(e,["lease"]))return r("lease response shape is invalid");let t=E(e.lease);return t.ok?u({lease:t.value}):r(t.reason)}function Yt(e){return!s(e)||!k(e,["instanceId","flowRunId","commandId","generationId","from"])||!y(e.instanceId)||!y(e.flowRunId)||!y(e.commandId)||!y(e.generationId)||!s(e.from)||!k(e.from,["name","count","type"])||typeof e.from.name!="string"||!we.test(e.from.name)||e.from.name==="generation:terminal"||e.from.count!==1||e.from.type!=="do"?r("restart request shape is invalid"):u(e)}function zt(e){return!s(e)||!k(e,["ok","data"])||e.ok!==!0||!s(e.data)||!k(e.data,["accepted","instanceId","commandId","generationId"])||e.data.accepted!==!0||!y(e.data.instanceId)||!y(e.data.commandId)||!y(e.data.generationId)?r("restart response shape is invalid"):u(e)}function k(e,t){let n=Object.keys(e).sort(),o=[...t].sort();return n.length===o.length&&n.every((i,a)=>i===o[a])}function y(e){return typeof e=="string"&&e.length>0}function Te(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}import{parseAblehiErrorDigest as K}from"@ablehi/error-contract";var rn="/:flowRunId/steps/:nodeId/result",on="/:flowRunId/result",sn="/:flowRunId/execution-events",un="/:flowRunId/waits/:nodeId/register",an="/:flowRunId/waits/:nodeId/complete";function cn(e,t){return`${g}/${encodeURIComponent(e)}/steps/${encodeURIComponent(t)}/result`}function dn(e){return`${g}/${encodeURIComponent(e)}/result`}function pn(e){return`${g}/${encodeURIComponent(e)}/execution-events`}function ln(e,t){return`${g}/${encodeURIComponent(e)}/waits/${encodeURIComponent(t)}/register`}function fn(e,t){return`${g}/${encodeURIComponent(e)}/waits/${encodeURIComponent(t)}/complete`}function gn(e){if(!s(e))return{ok:!1,kind:"validation",reason:"step record body must be a JSON object"};let t=R(e,["executionLease","attempt","result","durationMs"]);if(t!==void 0)return{ok:!1,kind:"validation",reason:`step record does not accept the "${t}" field`};let n=E(e.executionLease);if(!n.ok)return{ok:!1,kind:"validation",reason:n.reason};let o=e.attempt;if(typeof o!="number"||!Number.isInteger(o)||o<=0)return{ok:!1,kind:"validation",reason:"attempt must be a positive integer"};let i=Se(e.result);if(!i.ok)return i;let a={executionLease:n.value,attempt:o,result:i.value};if(e.durationMs!==void 0){let c=e.durationMs;if(typeof c!="number"||!Number.isFinite(c)||c<0)return{ok:!1,kind:"validation",reason:"durationMs must be a non-negative number"};a.durationMs=c}return{ok:!0,value:a}}function Se(e){if(!s(e))return{ok:!1,kind:"step_result_invalid",reason:"result must be a JSON object"};let t=e.status;if(t==="succeeded"){let n=R(e,["status","output"]);return n!==void 0?{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`}:"output"in e?{ok:!0,value:{status:"succeeded",output:e.output}}:{ok:!1,kind:"step_result_invalid",reason:"a succeeded result must carry output"}}if(t==="failed"){let n=R(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=K(e.error);return o.ok?{ok:!0,value:{status:"failed",error:o.value}}:{ok:!1,kind:"step_result_invalid",reason:`a failed result must carry an AblehiErrorDigest: ${o.reason}`}}if(t==="skipped"){let n=R(e,["status","reason"]);return n!==void 0?{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`}:e.reason!=="run_if_false"?{ok:!1,kind:"step_result_invalid",reason:'a skipped result reason must be "run_if_false"'}:{ok:!0,value:{status:"skipped",reason:"run_if_false"}}}if(t==="timed_out"){let n=R(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=K(e.error);return o.ok?{ok:!0,value:{status:"timed_out",error:o.value}}:{ok:!1,kind:"step_result_invalid",reason:`a timed_out result must carry an AblehiErrorDigest: ${o.reason}`}}return{ok:!1,kind:"step_result_invalid",reason:'result status must be "succeeded", "failed", "skipped", or "timed_out"'}}function mn(e){return!s(e)||typeof e.flowRunId!="string"||typeof e.nodeId!="string"||!Ae(e.recorded)?r("step record data surface shape is invalid"):u({flowRunId:e.flowRunId,nodeId:e.nodeId,recorded:e.recorded})}function Ae(e){return e==="succeeded"||e==="failed"||e==="skipped"||e==="timed_out"}function Rn(e){if(!s(e))return r("result body must be a JSON object");let t=R(e,["executionLease","status","output","error"]);if(t!==void 0)return r(`result does not accept the "${t}" field`);let n=E(e.executionLease);if(!n.ok)return r(n.reason);let o=e.status;if(o!=="succeeded"&&o!=="failed")return r('result status must be "succeeded" or "failed"');let i={executionLease:n.value,status:o};if(e.output!==void 0){if(o!=="succeeded")return r("output is only allowed on a succeeded result");i.output=e.output}if(e.error!==void 0){if(o!=="failed")return r("error is only allowed on a failed result");let a=K(e.error);if(!a.ok)return r(`result error must be an AblehiErrorDigest: ${a.reason}`);i.error=a.value}return o==="failed"&&i.error===void 0?r("a failed result must carry an AblehiErrorDigest"):u(i)}function In(e){return s(e)?u(e):r("flow run result data must be a JSON object")}var Pe=["flow_run_started","step_started","step_retry_scheduled","wait_registered","wait_event_received","wait_event_timed_out","human_input_created","human_input_submitted","human_input_expired","flow_run_succeeded","flow_run_failed","flow_run_interrupted","flow_run_cancelled"];function yn(e){if(!s(e))return r("execution event data must be a JSON object");let t=R(e,["flowRunId","eventId","accepted"]);return t!==void 0?r(`execution event data does not accept the "${t}" field`):typeof e.flowRunId!="string"||e.flowRunId.length===0?r("flowRunId must be a non-empty string"):typeof e.eventId!="string"||e.eventId.length===0?r("eventId must be a non-empty string"):e.accepted!==!0?r("accepted must be true"):u({flowRunId:e.flowRunId,eventId:e.eventId,accepted:!0})}function En(e){if(!s(e))return r("execution event body must be a JSON object");let t=R(e,["executionLease","eventId","eventType","nodeId","stepRunId","attempt","durationMs","occurredAt","errorId","payloadRef","inputFact"]);if(t!==void 0)return r(`execution event does not accept the "${t}" field`);let n=E(e.executionLease);if(!n.ok)return r(n.reason);let o=e.eventId;if(typeof o!="string"||o.length===0)return r("eventId must be a non-empty string");let i=e.eventType;if(!be(i))return r("eventType is not a known flow execution event type");let a=e.occurredAt;if(typeof a!="string"||a.length===0)return r("occurredAt must be a non-empty string");let c={executionLease:n.value,eventId:o,eventType:i,occurredAt:a};for(let d of["nodeId","stepRunId","errorId","payloadRef"]){let l=e[d];if(l!==void 0){if(typeof l!="string"||l.length===0)return r(`${d} must be a non-empty string`);c[d]=l}}for(let d of["attempt","durationMs"]){let l=e[d];if(l!==void 0){if(typeof l!="number"||!Number.isFinite(l)||!Number.isInteger(l)||l<0)return r(`${d} must be a non-negative integer`);c[d]=l}}if(e.inputFact!==void 0){if(i!=="step_started")return r("inputFact is only allowed on step_started events");if(c.attempt===void 0)return r("inputFact requires attempt");let d=Ne(e.inputFact);if(!d.ok)return d;c.inputFact=d.value}return u(c)}function be(e){return typeof e=="string"&&Pe.includes(e)}function Ne(e){if(!s(e))return r("inputFact must be a JSON object");let t=R(e,["digestAlgorithm","digest","domain"]);if(t!==void 0)return r(`inputFact does not accept the "${t}" field`);if(e.digestAlgorithm!=="sha256")return r('inputFact.digestAlgorithm must be "sha256"');let n=e.digest;if(typeof n!="string"||!/^[0-9a-f]{64}$/.test(n))return r("inputFact.digest must be a sha256 hex string");let o=e.domain;if(!s(o))return r("inputFact.domain must be a JSON object");let i=R(o,["irSchemaVersion","interpreterContractVersion","compiledArtifactId","nodeId","algorithmVersion"]);return i!==void 0?r(`inputFact.domain does not accept the "${i}" field`):typeof o.irSchemaVersion!="string"||o.irSchemaVersion.length===0||typeof o.interpreterContractVersion!="string"||o.interpreterContractVersion.length===0||typeof o.compiledArtifactId!="string"||o.compiledArtifactId.length===0||typeof o.nodeId!="string"||o.nodeId.length===0?r("inputFact.domain string fields must be non-empty strings"):o.algorithmVersion!=="flow_input_digest.v1"?r('inputFact.domain.algorithmVersion must be "flow_input_digest.v1"'):u({digestAlgorithm:"sha256",digest:n,domain:{irSchemaVersion:o.irSchemaVersion,interpreterContractVersion:o.interpreterContractVersion,compiledArtifactId:o.compiledArtifactId,nodeId:o.nodeId,algorithmVersion:"flow_input_digest.v1"}})}var Oe=/^[A-Za-z0-9_-]{1,100}$/;function kn(e){if(!s(e))return r("register body must be a JSON object");let t=R(e,["executionLease","eventType","correlationKey"]);if(t!==void 0)return r(`register wait does not accept the "${t}" field`);let n=E(e.executionLease);if(!n.ok)return r(n.reason);let o=ee(e.eventType);if(!o.ok)return r(o.reason);let i=e.correlationKey;return typeof i!="string"||i.length===0?r("correlationKey must be a non-empty string"):u({executionLease:n.value,eventType:o.value,correlationKey:i})}function _n(e){if(!s(e))return r("complete body must be a JSON object");let t=R(e,["executionLease","waitExecutionId","outcome","eventId"]);if(t!==void 0)return r(`complete wait does not accept the "${t}" field`);let n=E(e.executionLease);if(!n.ok)return r(n.reason);let o=e.waitExecutionId;if(typeof o!="string"||o.length===0)return r("waitExecutionId must be a non-empty string");let i=e.outcome;if(i!=="received"&&i!=="timed_out")return r('outcome must be "received" or "timed_out"');let a={executionLease:n.value,waitExecutionId:o,outcome:i};if(e.eventId!==void 0){if(typeof e.eventId!="string"||e.eventId.length===0)return r("eventId must be a non-empty string");a.eventId=e.eventId}return u(a)}function xn(e){if(!s(e)||R(e,["waitExecutionId","workflowEventType"])!==void 0||typeof e.waitExecutionId!="string"||e.waitExecutionId.length===0)return r("register wait data surface shape is invalid");let t=ee(e.workflowEventType);return t.ok?u({waitExecutionId:e.waitExecutionId,workflowEventType:t.value}):r(t.reason)}function hn(e){return!s(e)||R(e,["completed"])!==void 0||e.completed!==!0?r("complete wait data surface shape is invalid"):u({completed:!0})}function wn(e){return!s(e)||R(e,["waitExecutionId","eventId","payload"])!==void 0||typeof e.waitExecutionId!="string"||e.waitExecutionId.length===0||typeof e.eventId!="string"||e.eventId.length===0||!Object.hasOwn(e,"payload")?r("Wait resolved event surface shape is invalid"):u({waitExecutionId:e.waitExecutionId,eventId:e.eventId,payload:e.payload})}function ee(e){return typeof e!="string"||e.length===0?r("eventType must be a non-empty string"):Oe.test(e)?u(e):r("eventType must match ^[A-Za-z0-9_-]{1,100}$")}function R(e,t){return Object.keys(e).find(n=>!t.includes(n))}var Ce="/internal/flow-versions",Sn="/:flowVersionId/handler-bundles",V="/internal/installations",An="/:installationId/handler-bundles";function Pn(e,t){return`${Ce}/${encodeURIComponent(e)}/handler-bundles?compiledArtifactId=${encodeURIComponent(t)}`}function bn(e){return`${V}/${encodeURIComponent(e.installationId)}/handler-bundles?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var ve=new Set(["managed_only","managed_plus_unmanaged_sdk"]);function F(e){if(!w(e))return q("runtimeNetwork must be a JSON object");let t=e.networkModel;return typeof t!="string"||!ve.has(t)?q("runtimeNetwork.networkModel is unknown"):!te(e.apiHosts)||!te(e.authHosts)||typeof e.httpsOnly!="boolean"?q("runtimeNetwork host/https fields are invalid"):{ok:!0,value:{networkModel:t,apiHosts:e.apiHosts,authHosts:e.authHosts,httpsOnly:e.httpsOnly}}}function Nn(e){if(!w(e)||typeof e.flowVersionId!="string"||typeof e.compiledArtifactId!="string"||!Array.isArray(e.bundles))return b("handler bundles data surface shape is invalid");let t=ne(e.bundles);return t.ok?{ok:!0,value:{flowVersionId:e.flowVersionId,compiledArtifactId:e.compiledArtifactId,bundles:t.value}}:t}function On(e){if(!w(e)||typeof e.installationId!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.bundles))return b("tool handler bundles data surface shape is invalid");let t=ne(e.bundles);return t.ok?{ok:!0,value:{installationId:e.installationId,artifactDigest:e.artifactDigest,bundles:t.value}}:t}function ne(e){let t=[];for(let n of e){let o=De(n);if(!o.ok)return o;t.push(o.value)}return{ok:!0,value:t}}function De(e){if(!w(e)||typeof e.toolRef!="string"||e.kind!=="handler"&&e.kind!=="request")return b("handler bundle entry shape is invalid");if(e.kind==="request"){if(e.module!==void 0)return b("a request bundle must not carry a module");let o=F(e.runtimeNetwork);return o.ok?{ok:!0,value:{toolRef:e.toolRef,kind:"request",runtimeNetwork:o.value}}:o}let t=e.module;if(!w(t)||typeof t.entry!="string"||t.entry.length===0||!Ue(t.files))return b("a handler bundle must carry a { entry, files } module");let n=F(e.runtimeNetwork);return n.ok?{ok:!0,value:{toolRef:e.toolRef,kind:"handler",module:{entry:t.entry,files:t.files},runtimeNetwork:n.value}}:n}function b(e){return{ok:!1,kind:"shape",reason:e}}function q(e){return{ok:!1,kind:"runtime_network",reason:e}}function w(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function te(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Ue(e){return w(e)&&Object.values(e).every(t=>typeof t=="string")}var N="/internal/webhook-trigger-instances",Fn="/:triggerInstanceId/context",Hn="/:triggerInstanceId/handler-bundles",Mn="/:triggerInstanceId/deliveries/:deliveryId",Gn="/:triggerInstanceId/events",$n="/:triggerInstanceId/rearm",O=e=>`${N}/${encodeURIComponent(e)}`;function Wn(e,t){return`${O(e)}/context?artifactDigest=${encodeURIComponent(t)}`}function Kn(e,t){return`${O(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function qn(e,t){return`${O(e)}/deliveries/${encodeURIComponent(t)}`}function Vn(e){return`${O(e)}/events`}function jn(e){return`${O(e)}/rearm`}var Xn="/:installationId/webhook-protocol-adapter-bundle";function Jn(e){return`${V}/${encodeURIComponent(e.installationId)}/webhook-protocol-adapter-bundle?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var Yn="modules/webhook/protocol-adapter.js";function zn(e){return`modules/webhook/protocol-adapter-${e}.js`}function Qn(e){let t=s(e)?x(e.stateScope):r("webhook watcher context state scope is invalid");return!s(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!s(e.inputs)||e.connection!==null&&!Le(e.connection)||!Be(e.runtime)||!t.ok||t.value.kind!=="webhook-trigger"?r("webhook watcher context surface shape is invalid"):u(e)}function Le(e){return s(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function Be(e){if(!s(e)||e.type!=="webhook"||typeof e.trigger_ref!="string")return!1;let t=e.webhook;return s(t)&&typeof t.event_handler_module=="string"&&typeof t.enable_handler_module=="string"&&typeof t.disable_handler_module=="string"}function Fe(e){if(!s(e)||typeof e.deliveryId!="string"||typeof e.receivedAt!="string"||!s(e.request))return r("webhook delivery surface shape is invalid");let t=e.request;return t.method!=="POST"||!s(t.headers)||typeof t.rawBody!="string"?r("webhook delivery request shape is invalid"):u(e)}function j(e){if(!s(e)||typeof e.token!="string"||typeof e.expiresAt!="string")return r("trigger file runtime dispatch shape is invalid");let t=W(e.limits);return t.ok?u({token:e.token,expiresAt:e.expiresAt,limits:t.value}):r(t.reason)}function Zn(e){if(!s(e))return r("webhook delivery dispatch data is invalid");let t=Fe(e.delivery);if(!t.ok)return r(t.reason);let n=e.fileRuntime;if(n===null)return u({delivery:t.value,fileRuntime:null});let o=j(n);return o.ok?u({delivery:t.value,fileRuntime:o.value}):r(o.reason)}function er(e){if(!s(e)||typeof e.triggerRef!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.modules)||!e.modules.every(He))return{ok:!1,kind:"shape",reason:"trigger handler bundles data surface shape is invalid"};let t=F(e.runtimeNetwork);return t.ok?{ok:!0,value:{triggerRef:e.triggerRef,artifactDigest:e.artifactDigest,modules:e.modules,runtimeNetwork:t.value}}:t}function He(e){return s(e)&&typeof e.specifier=="string"&&e.specifier.length>0&&typeof e.source=="string"}function tr(e){if(!s(e))return r("publish events body must be a JSON object");let t=X(e,["deliveryId","events"]);if(t!==void 0)return r(`publish events does not accept the "${t}" field`);let n=e.deliveryId;if(typeof n!="string"||n.length===0)return r("deliveryId must be a non-empty string");let o=e.events;if(!Array.isArray(o))return r("events must be an array");let i=[];for(let a of o){let c=Me(a);if(!c.ok)return c;i.push(c.value)}return u({deliveryId:n,events:i})}function Me(e){if(!s(e))return r("each event must be a JSON object");let t=X(e,["eventId","occurredAt","dedupeKey","payload"]);if(t!==void 0)return r(`event does not accept the "${t}" field`);let n=e.eventId;if(typeof n!="string"||n.length===0)return r("eventId must be a non-empty string");let o=e.occurredAt;if(typeof o!="string"||o.length===0)return r("occurredAt must be a non-empty string");if(!s(e.payload))return r("event payload must be a JSON object");let i={eventId:n,occurredAt:o,payload:e.payload};if(e.dedupeKey!==void 0){if(typeof e.dedupeKey!="string"||e.dedupeKey.length===0)return r("dedupeKey must be a non-empty string");i.dedupeKey=e.dedupeKey}return u(i)}function nr(e){if(!s(e))return r("rearm body must be a JSON object");let t=X(e,["expectedWatcherInstanceId"]);if(t!==void 0)return r(`rearm does not accept the "${t}" field`);let n=e.expectedWatcherInstanceId;return typeof n!="string"||n.length===0?r("expectedWatcherInstanceId must be a non-empty string"):u({expectedWatcherInstanceId:n})}function X(e,t){return Object.keys(e).find(n=>!t.includes(n))}var C="/internal/polling-trigger-instances",ur="/:pollingInstanceId/context",ar="/:pollingInstanceId/handler-bundles",cr="/:pollingInstanceId/ticks/:tickId/events",J=e=>`${C}/${encodeURIComponent(e)}`;function dr(e,t,n){return`${J(e)}/context?artifactDigest=${encodeURIComponent(t)}&tickId=${encodeURIComponent(n)}`}function pr(e,t){return`${J(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function lr(e,t){return`${J(e)}/ticks/${encodeURIComponent(t)}/events`}function Ge(e){let t=s(e)?x(e.stateScope):r("polling trigger context state scope is invalid");return!s(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!s(e.inputs)||e.connection!==null&&!$e(e.connection)||!We(e.runtime)||!t.ok||t.value.kind!=="polling-trigger"||!qe(e.tick)||!Ve(e.limits)?r("polling trigger context surface shape is invalid"):u(e)}function fr(e){if(!s(e))return r("polling trigger dispatch data is invalid");let t=Ge(e.context);if(!t.ok)return r(t.reason);let n=e.fileRuntime;if(n===null)return u({context:t.value,fileRuntime:null});let o=j(n);return o.ok?u({context:t.value,fileRuntime:o.value}):r(o.reason)}function $e(e){return s(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function We(e){if(!s(e)||e.type!=="polling"||typeof e.trigger_id!="string"||typeof e.trigger_ref!="string"||!Ke(e.file_outputs))return!1;let t=e.polling;if(!s(t)||typeof t.run_handler_module!="string")return!1;let n=t.schedule;if(!s(n)||n.type!=="interval"||typeof n.every_seconds!="number")return!1;let o=t.dedup;return s(o)&&(o.strategy==="cursor"||o.strategy==="hash"||o.strategy==="id_field")}function Ke(e){return e===void 0?!0:Array.isArray(e)&&e.length>0&&e.every(t=>s(t)&&typeof t.field=="string"&&t.field.length>0)}function qe(e){return s(e)&&typeof e.tickId=="string"&&typeof e.scheduledAt=="string"&&typeof e.attempt=="number"}function Ve(e){return s(e)&&typeof e.maxEventsPerTick=="number"}function gr(e){if(!s(e))return r("publish body must be a JSON object");let t=re(e,["events","nextCursor"]);if(t!==void 0)return r(`publish does not accept the "${t}" field`);let n=e.events;if(!Array.isArray(n))return r("events must be an array");let o=[];for(let a of n){let c=je(a);if(!c.ok)return c;o.push(c.value)}let i={events:o};if("nextCursor"in e){let a=e.nextCursor;if(a!==null&&typeof a!="string")return r("nextCursor must be a string, null, or omitted");i.nextCursor=a}return u(i)}function je(e){if(!s(e))return r("each event must be a JSON object");let t=re(e,["eventId","occurredAt","dedupeKey","payload"]);if(t!==void 0)return r(`event does not accept the "${t}" field`);if(typeof e.eventId!="string"||e.eventId.length===0)return r("event eventId must be a non-empty string");if(!s(e.payload))return r("event payload must be a JSON object");let n={eventId:e.eventId,payload:e.payload};if(e.occurredAt!==void 0){if(typeof e.occurredAt!="string"||e.occurredAt.length===0)return r("event occurredAt must be a non-empty string");n.occurredAt=e.occurredAt}if(e.dedupeKey!==void 0){if(typeof e.dedupeKey!="string"||e.dedupeKey.length===0)return r("event dedupeKey must be a non-empty string");n.dedupeKey=e.dedupeKey}return u(n)}function mr(e){return!s(e)||typeof e.tickId!="string"||typeof e.cursorUpdated!="boolean"||!Array.isArray(e.results)||!e.results.every(Xe)?r("publish polling tick events data surface shape is invalid"):u(e)}function Xe(e){return s(e)&&typeof e.eventId=="string"&&typeof e.dedupeKey=="string"&&typeof e.duplicate=="boolean"&&(e.flowRunId===null||typeof e.flowRunId=="string")}function re(e,t){return Object.keys(e).find(n=>!t.includes(n))}var oe="/internal/egress-grants",Y="/internal/tool-invocations",z="/internal/discovery-invocations",_r="/:flowRunId/egress-grant",xr="/:invocationId/egress-grant",hr="/:discoveryInvocationId/egress-grant",wr="/:pollingInstanceId/egress-grant",Tr="/:triggerInstanceId/egress-grant",Sr="/:grantId/consume",Ar="/:grantId/audit",Pr=e=>`${g}/${encodeURIComponent(e)}/egress-grant`,br=e=>`${Y}/${encodeURIComponent(e)}/egress-grant`,Nr=e=>`${z}/${encodeURIComponent(e)}/egress-grant`,Or=e=>`${C}/${encodeURIComponent(e)}/egress-grant`,Cr=e=>`${N}/${encodeURIComponent(e)}/egress-grant`,vr=e=>`${oe}/${encodeURIComponent(e)}/consume`,Dr=e=>`${oe}/${encodeURIComponent(e)}/audit`,Je=["flow_action","single_tool","discovery","polling_trigger","webhook_trigger"],Ye=/^[A-Za-z0-9][A-Za-z0-9:_+/=.-]{15,1023}$/;function T(e){return typeof e=="string"&&Ye.test(e)}function ze(e){if(!s(e)||e.body_type!=="multipart")return!1;let t=e.body;if(!s(t))return!1;let n=t.parts;return Array.isArray(n)?n.some(o=>s(o)?o.kind==="file"&&typeof o.file_id=="string"&&o.file_id.length>0:!1):!1}function p(e){return{ok:!1,kind:"shape",reason:e}}function S(){return{ok:!1,kind:"request_digest",reason:"request digest is missing or malformed"}}function v(e,t){if(!s(e))return{ok:!1,reason:"grant request body must be a JSON object"};for(let n of Object.keys(e))if(!t.includes(n))return{ok:!1,reason:`grant request does not accept the "${n}" field`};return{ok:!0,record:e}}function D(e){if(!s(e))return"request must be a JSON object"}function Ur(e){let t=v(e,["nodeId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.nodeId;if(typeof n!="string"||n.length===0)return p("nodeId is required");let o=D(t.record.request);if(o!==void 0)return p(o);let i=t.record.requestDigest;return T(i)?{ok:!0,value:{nodeId:n,requestDigest:i,requestHasMultipartFiles:ze(t.record.request)}}:S()}function Lr(e){let t=v(e,["request","requestDigest"]);if(!t.ok)return p(t.reason);let n=D(t.record.request);if(n!==void 0)return p(n);let o=t.record.requestDigest;return T(o)?{ok:!0,value:{requestDigest:o}}:S()}function Br(e){let t=v(e,["request","requestDigest"]);if(!t.ok)return p(t.reason);let n=D(t.record.request);if(n!==void 0)return p(n);let o=t.record.requestDigest;return T(o)?{ok:!0,value:{requestDigest:o}}:S()}function Fr(e){let t=v(e,["tickId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.tickId;if(typeof n!="string"||n.length===0)return p("tickId is required");let o=D(t.record.request);if(o!==void 0)return p(o);let i=t.record.requestDigest;return T(i)?{ok:!0,value:{tickId:n,requestDigest:i}}:S()}function Hr(e){let t=v(e,["phase","lifecycle","deliveryId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.phase;if(n!=="lifecycle"&&n!=="handler")return p('phase must be "lifecycle" or "handler"');let o=t.record.lifecycle,i;if(o!==void 0){if(o!=="enable"&&o!=="disable"&&o!=="renew")return p('lifecycle must be "enable", "disable", or "renew"');i=o}if(n==="lifecycle"&&i===void 0)return p("lifecycle is required for the lifecycle phase");let a=t.record.deliveryId,c;if(a!==void 0){if(typeof a!="string"||a.length===0)return p("deliveryId must be a non-empty string");c=a}if(n==="handler"&&c===void 0)return p("deliveryId is required for the handler phase");let d=D(t.record.request);if(d!==void 0)return p(d);let l=t.record.requestDigest;return T(l)?{ok:!0,value:{phase:n,...i!==void 0?{lifecycle:i}:{},...c!==void 0?{deliveryId:c}:{},requestDigest:l}}:S()}function ie(e){return Je.includes(e)?e:void 0}var Qe=["scopeKind","scopeId","requestDigest"];function Mr(e){if(!s(e))return p("consume body must be a JSON object");for(let i of Object.keys(e))if(!Qe.includes(i))return p(`consume does not accept the "${i}" field`);let t=ie(e.scopeKind);if(t===void 0)return p("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return p("scopeId is required");let o=e.requestDigest;return T(o)?{ok:!0,value:{scopeKind:t,scopeId:n,requestDigest:o}}:S()}var Ze=["scopeKind","scopeId","providerHost","status","durationMs","requestBytes","responseBytes","errorCode"];function H(e,t){return typeof e!="number"||!Number.isInteger(e)||e<0?{ok:!1,reason:`${t} must be a non-negative integer`}:{ok:!0,value:e}}function Gr(e){if(!s(e))return p("audit body must be a JSON object");for(let f of Object.keys(e))if(!Ze.includes(f))return p(`audit does not accept the "${f}" field`);let t=ie(e.scopeKind);if(t===void 0)return p("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return p("scopeId is required");let o=e.providerHost;if(typeof o!="string"||o.length===0)return p("providerHost is required");let i=H(e.durationMs,"durationMs");if(!i.ok)return p(i.reason);let a;if(e.status!==void 0){let f=H(e.status,"status");if(!f.ok)return p(f.reason);a=f.value}let c;if(e.requestBytes!==void 0){let f=H(e.requestBytes,"requestBytes");if(!f.ok)return p(f.reason);c=f.value}let d;if(e.responseBytes!==void 0){let f=H(e.responseBytes,"responseBytes");if(!f.ok)return p(f.reason);d=f.value}let l;if(e.errorCode!==void 0){let f=e.errorCode;if(typeof f!="string"||f.length===0)return p("errorCode must be a non-empty string");l=f}return{ok:!0,value:{scopeKind:t,scopeId:n,providerHost:o,...a!==void 0?{status:a}:{},durationMs:i.value,...c!==void 0?{requestBytes:c}:{},...d!==void 0?{responseBytes:d}:{},...l!==void 0?{errorCode:l}:{}}}}function $r(e){return!s(e)||!s(e.grant)?r("egress grant envelope must carry a grant object"):u(e.grant)}function Wr(e){return!s(e)||e.consumed!==!0?r("egress grant consume data must carry consumed:true"):u({consumed:!0})}var Yr="/:flowRunId/runtime-credential",zr="/:invocationId/runtime-credential",Qr="/:discoveryInvocationId/runtime-credential",Zr="/:pollingInstanceId/runtime-credential",eo="/:triggerInstanceId/runtime-credential",to=e=>`${g}/${encodeURIComponent(e)}/runtime-credential`,no=e=>`${Y}/${encodeURIComponent(e)}/runtime-credential`,ro=e=>`${z}/${encodeURIComponent(e)}/runtime-credential`,oo=e=>`${C}/${encodeURIComponent(e)}/runtime-credential`,io=e=>`${N}/${encodeURIComponent(e)}/runtime-credential`,so=["flow_action","tool_invoke","discovery","polling_trigger","webhook_trigger"];function U(e,t){if(!s(e))return{ok:!1,reason:"runtime credential request body must be a JSON object"};for(let n of Object.keys(e))if(!t.includes(n))return{ok:!1,reason:`runtime credential request does not accept the "${n}" field`};return{ok:!0,record:e}}function uo(e){let t=U(e,["nodeId"]);if(!t.ok)return r(t.reason);let n=t.record.nodeId;return typeof n!="string"||n.length===0?r("nodeId is required"):u({nodeId:n})}function ao(e){let t=U(e??{},[]);return t.ok?u(null):r(t.reason)}function co(e){let t=U(e??{},[]);return t.ok?u(null):r(t.reason)}function po(e){let t=U(e,["tickId"]);if(!t.ok)return r(t.reason);let n=t.record.tickId;return typeof n!="string"||n.length===0?r("tickId is required"):u({tickId:n})}function lo(e){let t=U(e,["executionKind","deliveryId","lifecycleOperation"]);if(!t.ok)return r(t.reason);let n=t.record.executionKind;if(n!=="event_handler"&&n!=="lifecycle")return r('executionKind must be "event_handler" or "lifecycle"');let o,i=t.record.deliveryId;if(i!==void 0){if(typeof i!="string"||i.length===0)return r("deliveryId must be a non-empty string");o=i}let a,c=t.record.lifecycleOperation;if(c!==void 0){if(c!=="enable"&&c!=="disable"&&c!=="renew")return r('lifecycleOperation must be "enable", "disable", or "renew"');a=c}return n==="lifecycle"&&a===void 0?r("lifecycleOperation is required for the lifecycle execution kind"):u({executionKind:n,...o!==void 0?{deliveryId:o}:{},...a!==void 0?{lifecycleOperation:a}:{}})}function fo(e){return!s(e)||typeof e.sessionId!="string"||typeof e.connectionId!="string"||typeof e.authProfileRef!="string"||typeof e.authType!="string"||!s(e.credential)?r("runtime credential session must carry sessionId, connectionId, auth profile facts and a credential object"):u(e.credential)}function M(e){return!s(e)||typeof e.file_id!="string"||typeof e.name!="string"||typeof e.size_bytes!="number"||typeof e.created_at!="string"||typeof e.expires_at!="string"||e.mime_type!==void 0&&typeof e.mime_type!="string"||e.sha256!==void 0&&typeof e.sha256!="string"||e.source!==void 0&&typeof e.source!="string"?r("file ref data does not match the AIS file-ref shape"):u(e)}function Q(e){return!s(e)||e.method!=="GET"&&e.method!=="PUT"||typeof e.url!="string"||typeof e.expires_at!="string"||!nt(e.headers)?r("presigned file URL data is invalid"):u(e)}function et(e){if(!s(e))return r("file upload session data is invalid");let t=M(e.file);if(!t.ok)return r(t.reason);let n=Q(e.upload);return n.ok?u({file:t.value,upload:n.value}):r(n.reason)}function tt(e){if(!s(e))return r("file metadata data is invalid");let t=M(e.file);return t.ok?u({file:t.value}):r(t.reason)}function nt(e){return s(e)?Object.values(e).every(t=>typeof t=="string"):!1}var A="/internal/files",Eo="/upload-session",ko="/:fileId/complete",_o="/:fileId/access",xo="/:fileId/stat",ho="/:fileId/content",wo=()=>A,To=()=>`${A}/upload-session`,So=e=>`${A}/${encodeURIComponent(e)}/complete`,Ao=(e,t)=>`${A}/${encodeURIComponent(e)}/access?intent=${encodeURIComponent(t)}`,se=e=>`?scope_kind=${encodeURIComponent(e.scopeKind)}&scope_id=${encodeURIComponent(e.scopeId)}`,Po=(e,t)=>`${A}/${encodeURIComponent(e)}/stat${se(t)}`,bo=(e,t)=>`${A}/${encodeURIComponent(e)}/content${se(t)}`;function No(e){if(!s(e))return r("internal file access data is invalid");if(e.intent==="runtime_read"||e.intent==="provider_multipart"){let t=M(e.file);if(!t.ok)return r(t.reason);let n=Q(e.access);return n.ok?u({file:t.value,access:n.value,intent:e.intent}):r(n.reason)}return r("internal file access intent is invalid")}import{isHumanInputSpec as rt}from"@ablehi/flow-contract";var Lo="/:flowRunId/human-inputs",Bo="/:flowRunId/human-inputs/:requestId",Fo="/:flowRunId/human-inputs/:requestId/expire",Ho="/:flowRunId/human-inputs/:requestId/acknowledge",ot=e=>`${g}/${encodeURIComponent(e)}/human-inputs`,de=(e,t)=>`${ot(e)}/${encodeURIComponent(t)}`,Mo=(e,t)=>`${de(e,t)}/expire`,Go=(e,t)=>`${de(e,t)}/acknowledge`,it="human_input_resolved";function $o(e){return`${it}_${e}`}function Wo(e){return!s(e)||Object.keys(e).length!==4||!Object.hasOwn(e,"requestId")||!Object.hasOwn(e,"flowRunId")||!Object.hasOwn(e,"nodeId")||!Object.hasOwn(e,"status")||typeof e.requestId!="string"||e.requestId.length===0||typeof e.flowRunId!="string"||e.flowRunId.length===0||typeof e.nodeId!="string"||e.nodeId.length===0||e.status!=="submitted"&&e.status!=="expired"?r("Human Input resolved event shape is invalid"):u({requestId:e.requestId,flowRunId:e.flowRunId,nodeId:e.nodeId,status:e.status})}var ue=160,ae=500;function st(e){return s(e)?e.kind==="choice"?!G(e,["kind","choiceId","comment"])||typeof e.choiceId!="string"||e.choiceId.length===0||e.comment!==void 0&&typeof e.comment!="string"?r("Human Input choice response is invalid"):u({kind:"choice",choiceId:e.choiceId,...e.comment!==void 0?{comment:e.comment}:{}}):e.kind==="text"&&G(e,["kind","text"])&&typeof e.text=="string"?u({kind:"text",text:e.text}):e.kind==="form"&&G(e,["kind","values"])&&s(e.values)?u({kind:"form",values:e.values}):r("Human Input response is invalid"):r("Human Input response must be an object")}function Ko(e,t){let n=st(e);if(!n.ok||n.value.kind!==t.kind)return r("Human Input response does not match its input spec");switch(t.kind){case"choice":{let o=n.value;return o.kind!=="choice"?r("Human Input choice response does not match its spec"):!t.choices.some(i=>i.id===o.choiceId)||o.comment!==void 0&&t.allowComment!==!0?r("Human Input choice response does not match its spec"):n}case"text":return n.value.kind!=="text"||t.required===!0&&n.value.text.trim().length===0?r("Human Input text response does not match its spec"):n;case"form":{if(n.value.kind!=="form")return r("Human Input form response does not match its spec");let o=new Map(t.fields.map(i=>[i.id,i]));if(Object.keys(n.value.values).some(i=>!o.has(i)))return r("Human Input form response contains an unknown field");for(let i of t.fields){let a=n.value.values[i.id];if(!Object.hasOwn(n.value.values,i.id)){if(i.required===!0)return r(`Human Input form response is missing required field '${i.id}'`);continue}if(a==null||!ut(i,a))return r(`Human Input form response field '${i.id}' does not match its spec`)}return n}}}function ut(e,t){switch(e.type){case"text":case"textarea":return typeof t=="string";case"number":return typeof t=="number"&&Number.isFinite(t);case"boolean":return typeof t=="boolean";case"select":return typeof t=="string"&&(e.options??[]).some(n=>n.id===t)}}function m(e){return{ok:!1,reason:e}}function h(e,t){return s(e)?{ok:!0,value:e}:m(`${t} must be an object`)}function G(e,t){return Object.keys(e).every(n=>t.includes(n))}function P(e,t){return typeof e!="string"||e.length===0?m(`${t} must be a non-empty string`):{ok:!0,value:e}}var at=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/;function ct(e,t){return typeof e!="string"||!at.test(e)||Number.isNaN(Date.parse(e))?m(`${t} must be an ISO-8601 timestamp`):{ok:!0,value:e}}function pe(e){let t=h(e,"renderedPrompt");if(!t.ok)return t;if(!G(t.value,["title","body","format"]))return m("renderedPrompt contains an unknown field");let n=P(t.value.title,"renderedPrompt.title");if(!n.ok)return n;if(!/[^\p{White_Space}]/u.test(n.value))return m("renderedPrompt.title must contain non-whitespace text");if(!ce(n.value,ue))return m(`renderedPrompt.title must contain at most ${ue} code points`);let o={title:n.value};if(t.value.body!==void 0){if(typeof t.value.body!="string")return m("renderedPrompt.body must be a string");if(!ce(t.value.body,ae))return m(`renderedPrompt.body must contain at most ${ae} code points`);o.body=t.value.body}if(t.value.format!==void 0){if(t.value.format!=="plain"&&t.value.format!=="markdown")return m("renderedPrompt.format is invalid");o.format=t.value.format}return{ok:!0,value:o}}function ce(e,t){let n=0,o=e[Symbol.iterator]();for(;!o.next().done;)if(n+=1,n>t)return!1;return!0}function qo(e){let t=pe(e);return t.ok?u(t.value):r(t.reason)}function dt(e){try{return rt(e)?u(e):r("Human Input spec shape is invalid")}catch{return r("Human Input spec shape is invalid")}}function pt(e){let t=dt(e);return t.ok?t:m(t.reason)}function lt(e){if(e==null)return{ok:!0,value:void 0};let t=h(e,"partiallyRenderedDelivery");if(!t.ok)return t;let n=t.value.actions;if(n===void 0)return{ok:!0,value:{}};if(!Array.isArray(n))return m("partiallyRenderedDelivery.actions must be an array");let o=[];for(let i of n){let a=h(i,"delivery action");if(!a.ok)return a;let c=P(a.value.id,"delivery action id");if(!c.ok)return c;let d=le(a.value.inputs,`delivery action '${c.value}' inputs`);if(!d.ok)return d;o.push({id:c.value,inputs:d.value})}return{ok:!0,value:{actions:o}}}function le(e,t){let n=h(e,t);if(!n.ok)return n;let o={};for(let[i,a]of Object.entries(n.value)){let c=fe(a,`${t}.${i}`);if(!c.ok)return c;o[i]=c.value}return{ok:!0,value:o}}function fe(e,t){let n=h(e,t);if(!n.ok)return n;switch(n.value.kind){case"literal":return{ok:!0,value:{kind:"literal",value:n.value.value}};case"human_input_ref":{let i=P(n.value.path,`${t}.path`);return i.ok?{ok:!0,value:{kind:"human_input_ref",path:i.value}}:i}case"array":{if(!Array.isArray(n.value.items))return m(`${t}.items must be an array`);let i=[];for(let[a,c]of n.value.items.entries()){let d=fe(c,`${t}[${a}]`);if(!d.ok)return d;i.push(d.value)}return{ok:!0,value:{kind:"array",items:i}}}case"object":{let i=le(n.value.entries,`${t}.entries`);return i.ok?{ok:!0,value:{kind:"object",entries:i.value}}:i}case"template":{if(!Array.isArray(n.value.parts))return m(`${t}.parts must be an array`);let i=[];for(let[a,c]of n.value.parts.entries()){let d=ft(c,`${t}.parts[${a}]`);if(!d.ok)return d;i.push(d.value)}return{ok:!0,value:{kind:"template",parts:i}}}default:return m(`${t}.kind is invalid`)}}function ft(e,t){let n=h(e,t);if(!n.ok)return n;let o=n.value.kind;if(o==="literal")return typeof n.value.value!="string"?m(`${t}.value must be a string`):{ok:!0,value:{kind:"literal",value:n.value.value}};if(o==="human_input_ref"){let i=P(n.value.path,`${t}.path`);return i.ok?{ok:!0,value:{kind:"human_input_ref",path:i.value}}:i}return m(`${t}.kind is invalid`)}function Vo(e){let t=h(e,"request body");if(!t.ok)return r(t.reason);let n=Object.keys(t.value).find(me=>!["executionLease","nodeId","renderedPrompt","input","partiallyRenderedDelivery","timeout","expiresAt"].includes(me));if(n!==void 0)return r(`human input body does not accept the "${n}" field`);let o=E(t.value.executionLease);if(!o.ok)return r(o.reason);let i=P(t.value.nodeId,"nodeId");if(!i.ok)return r(i.reason);let a=pe(t.value.renderedPrompt);if(!a.ok)return r(a.reason);let c=pt(t.value.input);if(!c.ok)return r(c.reason);let d=P(t.value.timeout,"timeout");if(!d.ok)return r(d.reason);let l=ct(t.value.expiresAt,"expiresAt");if(!l.ok)return r(l.reason);let f=lt(t.value.partiallyRenderedDelivery);return f.ok?u({executionLease:o.value,nodeId:i.value,renderedPrompt:a.value,input:c.value,timeout:d.value,expiresAt:l.value,...f.value!==void 0?{partiallyRenderedDelivery:f.value}:{}}):r(f.reason)}function gt(e){return!s(e)||typeof e.id!="string"||e.id.length===0||typeof e.nodeId!="string"||typeof e.status!="string"||!(e.output===null||s(e.output))?r("human input request view must carry id, nodeId, status and output"):u(e)}function jo(e){if(!s(e)||typeof e.created!="boolean")return r("human input create data must carry created:boolean");let t=gt(e.request);return t.ok?u({created:e.created,request:t.value}):t}function Xo(e){return!s(e)||e.acknowledged!==!0?r("human input acknowledge data must carry acknowledged:true"):u({acknowledged:!0})}var Yo="ablehi-wfp-user-runtime-manifest/v1",zo="unknown";function Qo(e){return e.endsWith(".js")?`${e.slice(0,-3)}.manifest.json`:`${e}.manifest.json`}var ei="/internal/deployment-handshake",mt=["start","terminate","send-event","start-webhook-watcher","run-polling-tick","invoke-tool","invoke-discovery","invoke-trigger-handler","invoke-webhook-protocol-adapter","deployment-handshake"],ti=mt,ni="HANDSHAKE_REQUEST_INVALID",ri="HANDSHAKE_SECRET_UNCONFIGURED",oi="HANDSHAKE_SECRET_MISMATCH",ii="HANDSHAKE_CONTRACT_VERSION_MISMATCH",si="HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH",ui="HANDSHAKE_CAPABILITY_MISSING";function ai(e){return[e.nonce,e.timestamp,e.contractVersion,e.dispatchNamespace].map(n=>`${n.length}:${n}`).join(".")}function ci(e){return["response",e.nonce,e.contractVersion,e.dispatchNamespace,...e.capabilities].map(n=>`${n.length}:${n}`).join(".")}function li(e){if(!s(e)||e.ok!==!1||!s(e.error))return r("Server execution error envelope is invalid");let t=Object.keys(e).find(i=>i!=="ok"&&i!=="error"&&i!=="guidance"),n=e.error,o=Object.keys(n).find(i=>i!=="code"&&i!=="message"&&i!=="retryable"&&i!=="issues"&&i!=="details");return t!==void 0||o!==void 0||typeof n.code!="string"||n.code.length===0||typeof n.message!="string"||typeof n.retryable!="boolean"||n.issues!==void 0&&!Array.isArray(n.issues)||n.details!==void 0&&!s(n.details)?r("Server execution error must carry code, message, and boolean retryable"):u(e)}import{lookupErrorRegistryEntry as Rt}from"@ablehi/error-contract";var yi="/:flowRunId/inbox-message-emissions/:nodeId";function Ei(e,t){return`${g}/${encodeURIComponent(e)}/inbox-message-emissions/${encodeURIComponent(t)}`}function I(e){let t=Rt(e);if(t.code!==e)throw new Error(`Inbox message execution error code is not registered: ${e}`);return t.retryable}var ki=kt({INBOX_MESSAGE_IDEMPOTENCY_KEY_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_IDEMPOTENCY_KEY_INVALID")},INBOX_MESSAGE_PAYLOAD_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_PAYLOAD_INVALID")},INBOX_MESSAGE_PAYLOAD_TOO_LARGE:{httpStatus:413,retryable:I("INBOX_MESSAGE_PAYLOAD_TOO_LARGE")},INBOX_MESSAGE_RENDER_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_RENDER_INVALID")},INBOX_MESSAGE_CONTENT_TOO_LARGE:{httpStatus:413,retryable:I("INBOX_MESSAGE_CONTENT_TOO_LARGE")},INBOX_MESSAGE_ATTACHMENT_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_ATTACHMENT_INVALID")},INBOX_MESSAGE_ATTACHMENT_UNAVAILABLE:{httpStatus:409,retryable:I("INBOX_MESSAGE_ATTACHMENT_UNAVAILABLE")},FLOW_INBOX_MESSAGE_INVALID:{httpStatus:422,retryable:I("FLOW_INBOX_MESSAGE_INVALID")},EXECUTION_LEASE_INVALID:{httpStatus:409,retryable:I("EXECUTION_LEASE_INVALID")},EXECUTION_LEASE_SUPERSEDED:{httpStatus:409,retryable:I("EXECUTION_LEASE_SUPERSEDED")},INBOX_MESSAGE_EMISSION_WINDOW_CLOSED:{httpStatus:409,retryable:I("INBOX_MESSAGE_EMISSION_WINDOW_CLOSED")},INBOX_MESSAGE_EMISSION_CONFLICT:{httpStatus:409,retryable:I("INBOX_MESSAGE_EMISSION_CONFLICT")},INBOX_MESSAGE_EMISSION_UNAVAILABLE:{httpStatus:503,retryable:I("INBOX_MESSAGE_EMISSION_UNAVAILABLE")}});function _i(e){if(!s(e)||!ge(e,["executionLease","idempotencyKey","payload"])||typeof e.idempotencyKey!="string"||!It(e.payload))return r("Inbox message Emission request shape is invalid");let t=E(e.executionLease);return t.ok?u({executionLease:t.value,idempotencyKey:e.idempotencyKey,payload:e.payload}):r(t.reason)}function xi(e){return!s(e)||!ge(e,["emissionId","outcome","occurredAt"])||typeof e.emissionId!="string"||e.emissionId.length===0||e.outcome!=="created"&&e.outcome!=="replayed"||typeof e.occurredAt!="string"||e.occurredAt.length===0?r("Inbox message Emission response shape is invalid"):u(e)}function ge(e,t){let n=Object.keys(e).sort(),o=[...t].sort();return n.length===o.length&&n.every((i,a)=>i===o[a])}function It(e){return s(e)&&yt(e)}function yt(e){let n=new WeakSet,o=[{value:e}],i=0;for(;o.length>0;){let a=o.pop();if(a.exiting){n.delete(a.value);continue}let c=a.value;if(c===null||typeof c=="string"||typeof c=="boolean"||typeof c=="number"&&Number.isFinite(c))continue;if(typeof c!="object"||n.has(c)||(i+=1,i>1e5))return!1;let d=Array.isArray(c)?c:s(c)&&Et(c)?Object.values(c):void 0;if(d===void 0)return!1;n.add(c),o.push({value:c,exiting:!0});for(let l=d.length-1;l>=0;l-=1)o.push({value:d[l]})}return!0}function Et(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function kt(e){for(let t of Object.values(e))Object.freeze(t);return Object.freeze(e)}export{an as COMPLETE_EVENT_WAIT_ROUTE_SUBPATH,wt as CONTEXT_STATE_CLEANUP_ROUTE_PATH,mt as DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES,ti as DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES,ei as DEPLOYMENT_HANDSHAKE_ROUTE,hr as DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,Qr as DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Ar as EGRESS_GRANT_AUDIT_ROUTE_SUBPATH,Sr as EGRESS_GRANT_CONSUME_ROUTE_SUBPATH,Je as EGRESS_GRANT_SCOPE_KINDS,Ot as EXECUTION_CONTEXT_ROUTE_SUBPATH,Wt as EXECUTION_LEASE_INVALID,Bt as EXECUTION_LEASE_ROUTE_SUBPATH,Kt as EXECUTION_LEASE_SUPERSEDED,_o as FILE_ACCESS_ROUTE_SUBPATH,ko as FILE_COMPLETE_ROUTE_SUBPATH,ho as FILE_CONTENT_ROUTE_SUBPATH,xo as FILE_STAT_ROUTE_SUBPATH,Eo as FILE_UPLOAD_SESSION_ROUTE_SUBPATH,_r as FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH,sn as FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH,Pe as FLOW_RUN_EXECUTION_EVENT_TYPES,on as FLOW_RUN_RESULT_ROUTE_SUBPATH,Yr as FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Sn as HANDLER_BUNDLES_ROUTE_SUBPATH,ui as HANDSHAKE_CAPABILITY_MISSING,ii as HANDSHAKE_CONTRACT_VERSION_MISMATCH,si as HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH,ni as HANDSHAKE_REQUEST_INVALID,oi as HANDSHAKE_SECRET_MISMATCH,ri as HANDSHAKE_SECRET_UNCONFIGURED,Lo as HUMAN_INPUTS_ROUTE_SUBPATH,Ho as HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH,Vt as HUMAN_INPUT_CANCELLED_BY_RESET,Fo as HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH,ae as HUMAN_INPUT_PROMPT_BODY_MAX_CODE_POINTS,ue as HUMAN_INPUT_PROMPT_TITLE_MAX_CODE_POINTS,Bo as HUMAN_INPUT_REQUEST_ROUTE_SUBPATH,it as HUMAN_INPUT_RESOLVED_EVENT_PREFIX,yi as INBOX_MESSAGE_EMISSION_ROUTE_SUBPATH,ki as INBOX_MESSAGE_EXECUTION_ERROR_REGISTRY,z as INTERNAL_DISCOVERY_INVOCATIONS_ROUTE_PREFIX,oe as INTERNAL_EGRESS_GRANTS_ROUTE_PREFIX,A as INTERNAL_FILES_ROUTE_PREFIX,g as INTERNAL_FLOW_RUNS_ROUTE_PREFIX,Ce as INTERNAL_FLOW_VERSIONS_ROUTE_PREFIX,V as INTERNAL_INSTALLATIONS_ROUTE_PREFIX,C as INTERNAL_POLLING_TRIGGER_INSTANCES_ROUTE_PREFIX,Y as INTERNAL_TOOL_INVOCATIONS_ROUTE_PREFIX,N as INTERNAL_WEBHOOK_TRIGGER_INSTANCES_ROUTE_PREFIX,ur as POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH,wr as POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,ar as POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,Zr as POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,cr as POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH,un as REGISTER_EVENT_WAIT_ROUTE_SUBPATH,so as RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS,$t as RUN_DISPATCH_UNAVAILABLE,Re as SERVER_EXECUTION_CONTRACT_VERSION,rn as STEP_RESULT_ROUTE_SUBPATH,An as TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH,xr as TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,zr as TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,qt as WAIT_EXECUTION_SUPERSEDED,Xn as WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH,Yn as WEBHOOK_PROTOCOL_ADAPTER_MODULE,Fn as WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH,Mn as WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH,Tr as WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,Gn as WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH,Hn as WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,$n as WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH,eo as WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Yo as WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION,zo as WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION,Mt as WORKFLOW_RESTART_INSTANCE_UNAVAILABLE,Gt as WORKFLOW_RESTART_REJECTED,Ht as WORKFLOW_RESTART_REQUEST_INVALID,Ft as WORKFLOW_RESTART_ROUTE,jt as acquireExecutionLeasePath,fn as completeEventWaitPath,ai as deploymentHandshakeProbePayload,ci as deploymentHandshakeResponseProofPayload,Nr as discoveryInvocationEgressGrantPath,ro as discoveryInvocationRuntimeCredentialPath,Dr as egressGrantAuditPath,vr as egressGrantConsumePath,Ct as executionContextPath,Pr as flowRunEgressGrantPath,pn as flowRunExecutionEventsPath,dn as flowRunResultPath,to as flowRunRuntimeCredentialPath,zn as flowScriptProtocolAdapterModuleName,Pn as handlerBundlesPath,Go as humanInputAcknowledgePath,Mo as humanInputExpirePath,de as humanInputRequestPath,$o as humanInputResolvedEventType,ot as humanInputsPath,Ei as inboxMessageEmissionPath,Ao as internalFileAccessPath,So as internalFileCompletePath,bo as internalFileContentPath,Po as internalFileStatPath,To as internalFileUploadSessionPath,wo as internalFilesPath,T as isValidRequestDigest,Jt as parseAcquireExecutionLeaseData,Xt as parseAcquireExecutionLeaseRequest,_n as parseCompleteFlowRunWaitBody,hn as parseCompleteFlowRunWaitData,Tt as parseContextStateCleanupRequestBody,St as parseContextStateCleanupResponseData,x as parseContextStateScope,Vo as parseCreateHumanInputBody,Br as parseDiscoveryGrantBody,co as parseDiscoveryRuntimeCredentialBody,Gr as parseEgressGrantAuditBody,Mr as parseEgressGrantConsumeBody,Wr as parseEgressGrantConsumeData,$r as parseEgressGrantData,xi as parseEmitInboxMessageData,_i as parseEmitInboxMessageRequest,Z as parseExecutionAnchor,vt as parseExecutionContextData,E as parseExecutionLease,tt as parseFileMetadataData,M as parseFileRefData,W as parseFileRuntimeLimits,et as parseFileUploadSessionData,Ur as parseFlowActionGrantBody,En as parseFlowRunExecutionEventBody,yn as parseFlowRunExecutionEventData,Rn as parseFlowRunResultBody,In as parseFlowRunResultData,uo as parseFlowRuntimeCredentialBody,wn as parseFlowWaitResolvedEvent,De as parseHandlerBundle,Nn as parseHandlerBundlesData,Xo as parseHumanInputAcknowledgeData,jo as parseHumanInputCreateData,gt as parseHumanInputRequestViewData,Wo as parseHumanInputResolvedEvent,st as parseHumanInputResponse,Ko as parseHumanInputResponseForSpec,dt as parseHumanInputSpec,No as parseInternalFileAccessData,gr as parsePollingPublishBody,po as parsePollingRuntimeCredentialBody,Ge as parsePollingTriggerContext,fr as parsePollingTriggerDispatchData,Fr as parsePollingTriggerGrantBody,mr as parsePublishPollingTickEventsData,kn as parseRegisterFlowRunWaitBody,xn as parseRegisterFlowRunWaitData,qo as parseRenderedHumanInputPrompt,fo as parseRuntimeCredentialSessionCredential,F as parseRuntimeNetwork,li as parseServerExecutionErrorEnvelope,Lr as parseSingleToolGrantBody,ao as parseSingleToolRuntimeCredentialBody,gn as parseStepRecordBody,mn as parseStepRecordData,On as parseToolHandlerBundlesData,j as parseTriggerFileRuntimeDispatch,er as parseTriggerHandlerBundlesData,Fe as parseWebhookDelivery,Zn as parseWebhookDeliveryDispatchData,tr as parseWebhookPublishEventsBody,nr as parseWebhookRearmBody,lo as parseWebhookRuntimeCredentialBody,Hr as parseWebhookTriggerGrantBody,Qn as parseWebhookWatcherContext,Yt as parseWorkflowDispatchRestartRequest,zt as parseWorkflowDispatchRestartResponse,dr as pollingTriggerContextPath,Or as pollingTriggerEgressGrantPath,pr as pollingTriggerHandlerBundlesPath,oo as pollingTriggerRuntimeCredentialPath,lr as pollingTriggerTickEventsPath,ln as registerEventWaitPath,ze as requestHasMultipartFileParts,cn as stepResultPath,bn as toolHandlerBundlesPath,br as toolInvocationEgressGrantPath,no as toolInvocationRuntimeCredentialPath,Jn as webhookProtocolAdapterBundlePath,Wn as webhookTriggerContextPath,qn as webhookTriggerDeliveryPath,Cr as webhookTriggerEgressGrantPath,Vn as webhookTriggerEventsPath,Kn as webhookTriggerHandlerBundlesPath,jn as webhookTriggerRearmPath,io as webhookTriggerRuntimeCredentialPath,Qo as wfpUserRuntimeManifestPath};
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { PublishedFlowDefinition, RuntimeHumanInputSpec, JsonObject } from '@ablehi/flow-contract';
2
2
  import { AblehiErrorDigest } from '@ablehi/error-contract';
3
3
 
4
- declare const SERVER_EXECUTION_CONTRACT_VERSION = "0.4.0";
4
+ declare const SERVER_EXECUTION_CONTRACT_VERSION = "0.4.1";
5
5
  type ServerExecutionContractVersion = typeof SERVER_EXECUTION_CONTRACT_VERSION;
6
6
 
7
7
  type ContractParseResult<T> = {
@@ -51,11 +51,10 @@ declare const WAIT_EXECUTION_SUPERSEDED = "WAIT_EXECUTION_SUPERSEDED";
51
51
  declare const HUMAN_INPUT_CANCELLED_BY_RESET = "HUMAN_INPUT_CANCELLED_BY_RESET";
52
52
  type GenerationCallbackErrorCode = typeof EXECUTION_LEASE_INVALID | typeof EXECUTION_LEASE_SUPERSEDED | typeof WAIT_EXECUTION_SUPERSEDED | typeof HUMAN_INPUT_CANCELLED_BY_RESET;
53
53
  declare function acquireExecutionLeasePath(flowRunId: string): string;
54
- type FlowExecutionScope = {
55
- kind: "standalone";
56
- } | {
57
- kind: "automation_app";
58
- productRunId: string;
54
+ type WorkflowExecutionGeneration = {
55
+ id: string;
56
+ flowRunId: string;
57
+ number: number;
59
58
  };
60
59
  type ExecutionAnchor = {
61
60
  kind: "node";
@@ -64,24 +63,17 @@ type ExecutionAnchor = {
64
63
  kind: "terminal";
65
64
  };
66
65
  type ExecutionLease = {
67
- productRunId: string;
68
66
  flowRunId: string;
69
67
  generationId: string;
70
68
  generationNumber: number;
71
69
  anchor: ExecutionAnchor;
72
70
  leaseId: string;
73
71
  };
74
- type ExecutionWriteScope = {
75
- kind: "standalone";
76
- } | {
77
- kind: "automation_app";
78
- lease: ExecutionLease;
79
- };
80
72
  type AcquireExecutionLeaseRequest = {
81
73
  anchor: ExecutionAnchor;
82
74
  };
83
75
  type AcquireExecutionLeaseData = {
84
- executionScope: ExecutionWriteScope;
76
+ lease: ExecutionLease;
85
77
  };
86
78
  type WorkflowDispatchRestartRequest = {
87
79
  instanceId: string;
@@ -103,10 +95,8 @@ type WorkflowDispatchRestartResponse = {
103
95
  generationId: string;
104
96
  };
105
97
  };
106
- declare function parseFlowExecutionScope(value: unknown): ContractParseResult<FlowExecutionScope>;
107
98
  declare function parseExecutionAnchor(value: unknown): ContractParseResult<ExecutionAnchor>;
108
99
  declare function parseExecutionLease(value: unknown): ContractParseResult<ExecutionLease>;
109
- declare function parseExecutionWriteScope(value: unknown): ContractParseResult<ExecutionWriteScope>;
110
100
  declare function parseAcquireExecutionLeaseRequest(value: unknown): ContractParseResult<AcquireExecutionLeaseRequest>;
111
101
  declare function parseAcquireExecutionLeaseData(value: unknown): ContractParseResult<AcquireExecutionLeaseData>;
112
102
  declare function parseWorkflowDispatchRestartRequest(value: unknown): ContractParseResult<WorkflowDispatchRestartRequest>;
@@ -149,7 +139,7 @@ type ExecutionContextData<TToolDescriptor = Record<string, unknown>, TIntegratio
149
139
  flowRunId: string;
150
140
  workspaceId: string;
151
141
  input: Record<string, unknown>;
152
- executionScope: FlowExecutionScope;
142
+ executionGeneration: WorkflowExecutionGeneration;
153
143
  compiled: ExecutionContextCompiled;
154
144
  executionBindings: Array<ExecutionBinding<TToolDescriptor, TIntegrationDescriptor>>;
155
145
  fileRuntime: FlowExecutionContextFileRuntime;
@@ -181,7 +171,7 @@ type StepRecordResult = {
181
171
  error: AblehiErrorDigest;
182
172
  };
183
173
  type StepRecordBody = {
184
- executionScope: ExecutionWriteScope;
174
+ executionLease: ExecutionLease;
185
175
  attempt: number;
186
176
  result: StepRecordResult;
187
177
  durationMs?: number;
@@ -202,16 +192,16 @@ type StepRecordBodyParseResult = {
202
192
  declare function parseStepRecordBody(body: unknown): StepRecordBodyParseResult;
203
193
  declare function parseStepRecordData(data: unknown): ContractParseResult<StepRecordData>;
204
194
  type FlowRunResultRequestBody = {
205
- executionScope: ExecutionWriteScope;
195
+ executionLease: ExecutionLease;
206
196
  status: "succeeded";
207
197
  output?: unknown;
208
198
  } | {
209
- executionScope: ExecutionWriteScope;
199
+ executionLease: ExecutionLease;
210
200
  status: "failed";
211
201
  error: AblehiErrorDigest;
212
202
  };
213
203
  type ParsedFlowRunResultBody = {
214
- executionScope: ExecutionWriteScope;
204
+ executionLease: ExecutionLease;
215
205
  status: "succeeded" | "failed";
216
206
  output?: unknown;
217
207
  error?: AblehiErrorDigest;
@@ -235,7 +225,7 @@ type FlowRunInputFactBody = {
235
225
  };
236
226
  };
237
227
  type FlowRunExecutionEventBody = {
238
- executionScope: ExecutionWriteScope;
228
+ executionLease: ExecutionLease;
239
229
  eventId: string;
240
230
  eventType: FlowRunExecutionEventType;
241
231
  nodeId?: string;
@@ -255,12 +245,12 @@ type FlowRunExecutionEventData = {
255
245
  declare function parseFlowRunExecutionEventData(data: unknown): ContractParseResult<FlowRunExecutionEventData>;
256
246
  declare function parseFlowRunExecutionEventBody(body: unknown): ContractParseResult<FlowRunExecutionEventBody>;
257
247
  type RegisterFlowRunWaitBody = {
258
- executionScope: ExecutionWriteScope;
248
+ executionLease: ExecutionLease;
259
249
  eventType: string;
260
250
  correlationKey: string;
261
251
  };
262
252
  type CompleteFlowRunWaitBody = {
263
- executionScope: ExecutionWriteScope;
253
+ executionLease: ExecutionLease;
264
254
  waitExecutionId: string;
265
255
  outcome: "received" | "timed_out";
266
256
  eventId?: string;
@@ -874,7 +864,7 @@ type PartiallyRenderedHumanInputDelivery = {
874
864
  }>;
875
865
  };
876
866
  type CreateHumanInputRequestBody = {
877
- executionScope: ExecutionWriteScope;
867
+ executionLease: ExecutionLease;
878
868
  nodeId: string;
879
869
  renderedPrompt: RenderedHumanInputPrompt;
880
870
  input: RuntimeHumanInputSpec;
@@ -1029,7 +1019,7 @@ declare function parseServerExecutionErrorEnvelope(value: unknown): ContractPars
1029
1019
  declare const INBOX_MESSAGE_EMISSION_ROUTE_SUBPATH = "/:flowRunId/inbox-message-emissions/:nodeId";
1030
1020
  declare function inboxMessageEmissionPath(flowRunId: string, nodeId: string): string;
1031
1021
  type EmitInboxMessageRequest = {
1032
- executionScope: ExecutionWriteScope;
1022
+ executionLease: ExecutionLease;
1033
1023
  idempotencyKey: string;
1034
1024
  payload: JsonObject;
1035
1025
  };
@@ -1079,10 +1069,6 @@ declare const INBOX_MESSAGE_EXECUTION_ERROR_REGISTRY: Readonly<{
1079
1069
  readonly httpStatus: 409;
1080
1070
  readonly retryable: boolean;
1081
1071
  };
1082
- readonly AUTOMATION_APP_INSTALLATION_DISABLED: {
1083
- readonly httpStatus: 409;
1084
- readonly retryable: boolean;
1085
- };
1086
1072
  readonly INBOX_MESSAGE_EMISSION_WINDOW_CLOSED: {
1087
1073
  readonly httpStatus: 409;
1088
1074
  readonly retryable: boolean;
@@ -1100,4 +1086,4 @@ type InboxMessageExecutionErrorCode = keyof typeof INBOX_MESSAGE_EXECUTION_ERROR
1100
1086
  declare function parseEmitInboxMessageRequest(value: unknown): ContractParseResult<EmitInboxMessageRequest>;
1101
1087
  declare function parseEmitInboxMessageData(value: unknown): ContractParseResult<EmitInboxMessageData>;
1102
1088
 
1103
- export { type AcquireExecutionLeaseData, type AcquireExecutionLeaseRequest, COMPLETE_EVENT_WAIT_ROUTE_SUBPATH, CONTEXT_STATE_CLEANUP_ROUTE_PATH, type CompleteFlowRunWaitBody, type CompleteFlowRunWaitData, type ContextStateCleanupRequestBody, type ContextStateCleanupResponseData, type ContextStateScope, type CreateHumanInputRequestBody, DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES, DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES, DEPLOYMENT_HANDSHAKE_ROUTE, DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH, DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, type DeploymentHandshakeData, type DeploymentHandshakeRequestBody, type DeploymentHandshakeResponse, type DiscoveryDispatchBody, type DiscoveryEgressGrantBinding, type DiscoveryExecutionBinding, type DiscoveryGrantBody, type DiscoveryInvokeRequest, type DiscoveryRuntimeCredentialBinding, EGRESS_GRANT_AUDIT_ROUTE_SUBPATH, EGRESS_GRANT_CONSUME_ROUTE_SUBPATH, EGRESS_GRANT_SCOPE_KINDS, EXECUTION_CONTEXT_ROUTE_SUBPATH, EXECUTION_LEASE_INVALID, EXECUTION_LEASE_ROUTE_SUBPATH, EXECUTION_LEASE_SUPERSEDED, type EgressGrant, type EgressGrantAuditBody, type EgressGrantBodyParseResult, type EgressGrantConsumeBody, type EgressGrantCredentialMaterial, type EgressGrantFileRuntime, type EgressGrantScopeKind, type EmitInboxMessageData, type EmitInboxMessageRequest, type ExecutionAnchor, type ExecutionBinding, type ExecutionBindingConnection, type ExecutionContextCompiled, type ExecutionContextData, type ExecutionLease, type ExecutionWriteScope, FILE_ACCESS_ROUTE_SUBPATH, FILE_COMPLETE_ROUTE_SUBPATH, FILE_CONTENT_ROUTE_SUBPATH, FILE_STAT_ROUTE_SUBPATH, FILE_UPLOAD_SESSION_ROUTE_SUBPATH, FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH, FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH, FLOW_RUN_EXECUTION_EVENT_TYPES, FLOW_RUN_RESULT_ROUTE_SUBPATH, FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, type FileMetadataData, type FileRefData, type FileRuntimeLimits, type FileRuntimeScope, type FileRuntimeScopeKind, type FileUploadSessionData, type FlowActionGrantBody, type FlowExecutionContextFileRuntime, type FlowExecutionScope, type FlowRunExecutionEventBody, type FlowRunExecutionEventData, type FlowRunExecutionEventType, type FlowRunInputFactBody, type FlowRunResultData, type FlowRunResultRequestBody, type FlowRuntimeCredentialBody, type FlowWaitResolvedEvent, type GenerationCallbackErrorCode, HANDLER_BUNDLES_ROUTE_SUBPATH, HANDSHAKE_CAPABILITY_MISSING, HANDSHAKE_CONTRACT_VERSION_MISMATCH, HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH, HANDSHAKE_REQUEST_INVALID, HANDSHAKE_SECRET_MISMATCH, HANDSHAKE_SECRET_UNCONFIGURED, HUMAN_INPUTS_ROUTE_SUBPATH, HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH, HUMAN_INPUT_CANCELLED_BY_RESET, HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH, HUMAN_INPUT_PROMPT_BODY_MAX_CODE_POINTS, HUMAN_INPUT_PROMPT_TITLE_MAX_CODE_POINTS, HUMAN_INPUT_REQUEST_ROUTE_SUBPATH, HUMAN_INPUT_RESOLVED_EVENT_PREFIX, type HandlerBundle, type HandlerBundleModule, type HandlerBundlesData, type HandlerBundlesParseResult, type HumanInputActor, type HumanInputOutput, type HumanInputRequestView, type HumanInputResolvedEvent, type HumanInputResponse, INBOX_MESSAGE_EMISSION_ROUTE_SUBPATH, INBOX_MESSAGE_EXECUTION_ERROR_REGISTRY, INTERNAL_DISCOVERY_INVOCATIONS_ROUTE_PREFIX, INTERNAL_EGRESS_GRANTS_ROUTE_PREFIX, INTERNAL_FILES_ROUTE_PREFIX, INTERNAL_FLOW_RUNS_ROUTE_PREFIX, INTERNAL_FLOW_VERSIONS_ROUTE_PREFIX, INTERNAL_INSTALLATIONS_ROUTE_PREFIX, INTERNAL_POLLING_TRIGGER_INSTANCES_ROUTE_PREFIX, INTERNAL_TOOL_INVOCATIONS_ROUTE_PREFIX, INTERNAL_WEBHOOK_TRIGGER_INSTANCES_ROUTE_PREFIX, type InboxMessageExecutionErrorCode, type IntegrationDiscoverySubject, type InternalFileAccessData, type InternalFileAccessIntent, POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH, POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH, POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH, POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH, type PackageInputDiscoveryDescriptor, type PackageInputDiscoveryKind, type PackagePollingTriggerRuntimeDescriptor, type PackageTriggerFileOutput, type PackageWebhookTriggerRuntimeDescriptor, type ParsedFlowRunResultBody, type PartiallyRenderedHumanInputDelivery, type PartiallyRenderedMapping, type PartiallyRenderedTemplatePart, type PartiallyRenderedValue, type PollingPublishBody, type PollingPublishEvent, type PollingRuntimeCredentialBody, type PollingTriggerContext, type PollingTriggerDispatchData, type PollingTriggerGrantBody, type PresignedFileUrlData, type PublishPollingTickEventResult, type PublishPollingTickEventsData, REGISTER_EVENT_WAIT_ROUTE_SUBPATH, RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS, RUN_DISPATCH_UNAVAILABLE, type RegisterFlowRunWaitBody, type RegisterFlowRunWaitData, type RenderedHumanInputPrompt, type RuntimeCredentialSession, type RuntimeCredentialSessionNetwork, type RuntimeCredentialSessionScopeKind, type RuntimeNetwork, type RuntimeNetworkModel, SERVER_EXECUTION_CONTRACT_VERSION, STEP_RESULT_ROUTE_SUBPATH, type ServerExecutionContractVersion, type ServerExecutionError, type ServerExecutionErrorEnvelope, type SingleToolGrantBody, type StepRecordBody, type StepRecordBodyParseResult, type StepRecordData, type StepRecordResult, TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH, TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH, TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, type ToolHandlerBundlesData, type TriggerConnectionInfo, type TriggerFileRuntimeDispatch, type TriggerHandlerBundlesData, type TriggerHandlerModule, WAIT_EXECUTION_SUPERSEDED, WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH, WEBHOOK_PROTOCOL_ADAPTER_MODULE, WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH, WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH, WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH, WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH, WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH, WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH, WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION, WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION, WORKFLOW_RESTART_INSTANCE_UNAVAILABLE, WORKFLOW_RESTART_REJECTED, WORKFLOW_RESTART_REQUEST_INVALID, WORKFLOW_RESTART_ROUTE, type WebhookDelivery, type WebhookDeliveryDispatchData, type WebhookProtocolAdapterBundleData, type WebhookProtocolAdapterModule, type WebhookPublishEvent, type WebhookPublishEventsBody, type WebhookPublishEventsData, type WebhookRearmBody, type WebhookRearmData, type WebhookRuntimeCredentialBody, type WebhookTriggerGrantBody, type WebhookTriggerVerificationMethod, type WebhookWatcherContext, type WfpUserRuntimeManifest, type WorkflowDispatchRestartRequest, type WorkflowDispatchRestartResponse, type WorkflowRestartErrorCode, acquireExecutionLeasePath, completeEventWaitPath, deploymentHandshakeProbePayload, deploymentHandshakeResponseProofPayload, discoveryInvocationEgressGrantPath, discoveryInvocationRuntimeCredentialPath, egressGrantAuditPath, egressGrantConsumePath, executionContextPath, flowRunEgressGrantPath, flowRunExecutionEventsPath, flowRunResultPath, flowRunRuntimeCredentialPath, flowScriptProtocolAdapterModuleName, handlerBundlesPath, humanInputAcknowledgePath, humanInputExpirePath, humanInputRequestPath, humanInputResolvedEventType, humanInputsPath, inboxMessageEmissionPath, internalFileAccessPath, internalFileCompletePath, internalFileContentPath, internalFileStatPath, internalFileUploadSessionPath, internalFilesPath, isValidRequestDigest, parseAcquireExecutionLeaseData, parseAcquireExecutionLeaseRequest, parseCompleteFlowRunWaitBody, parseCompleteFlowRunWaitData, parseContextStateCleanupRequestBody, parseContextStateCleanupResponseData, parseContextStateScope, parseCreateHumanInputBody, parseDiscoveryGrantBody, parseDiscoveryRuntimeCredentialBody, parseEgressGrantAuditBody, parseEgressGrantConsumeBody, parseEgressGrantConsumeData, parseEgressGrantData, parseEmitInboxMessageData, parseEmitInboxMessageRequest, parseExecutionAnchor, parseExecutionContextData, parseExecutionLease, parseExecutionWriteScope, parseFileMetadataData, parseFileRefData, parseFileRuntimeLimits, parseFileUploadSessionData, parseFlowActionGrantBody, parseFlowExecutionScope, parseFlowRunExecutionEventBody, parseFlowRunExecutionEventData, parseFlowRunResultBody, parseFlowRunResultData, parseFlowRuntimeCredentialBody, parseFlowWaitResolvedEvent, parseHandlerBundle, parseHandlerBundlesData, parseHumanInputAcknowledgeData, parseHumanInputCreateData, parseHumanInputRequestViewData, parseHumanInputResolvedEvent, parseHumanInputResponse, parseHumanInputResponseForSpec, parseHumanInputSpec, parseInternalFileAccessData, parsePollingPublishBody, parsePollingRuntimeCredentialBody, parsePollingTriggerContext, parsePollingTriggerDispatchData, parsePollingTriggerGrantBody, parsePublishPollingTickEventsData, parseRegisterFlowRunWaitBody, parseRegisterFlowRunWaitData, parseRenderedHumanInputPrompt, parseRuntimeCredentialSessionCredential, parseRuntimeNetwork, parseServerExecutionErrorEnvelope, parseSingleToolGrantBody, parseSingleToolRuntimeCredentialBody, parseStepRecordBody, parseStepRecordData, parseToolHandlerBundlesData, parseTriggerFileRuntimeDispatch, parseTriggerHandlerBundlesData, parseWebhookDelivery, parseWebhookDeliveryDispatchData, parseWebhookPublishEventsBody, parseWebhookRearmBody, parseWebhookRuntimeCredentialBody, parseWebhookTriggerGrantBody, parseWebhookWatcherContext, parseWorkflowDispatchRestartRequest, parseWorkflowDispatchRestartResponse, pollingTriggerContextPath, pollingTriggerEgressGrantPath, pollingTriggerHandlerBundlesPath, pollingTriggerRuntimeCredentialPath, pollingTriggerTickEventsPath, registerEventWaitPath, requestHasMultipartFileParts, stepResultPath, toolHandlerBundlesPath, toolInvocationEgressGrantPath, toolInvocationRuntimeCredentialPath, webhookProtocolAdapterBundlePath, webhookTriggerContextPath, webhookTriggerDeliveryPath, webhookTriggerEgressGrantPath, webhookTriggerEventsPath, webhookTriggerHandlerBundlesPath, webhookTriggerRearmPath, webhookTriggerRuntimeCredentialPath, wfpUserRuntimeManifestPath };
1089
+ export { type AcquireExecutionLeaseData, type AcquireExecutionLeaseRequest, COMPLETE_EVENT_WAIT_ROUTE_SUBPATH, CONTEXT_STATE_CLEANUP_ROUTE_PATH, type CompleteFlowRunWaitBody, type CompleteFlowRunWaitData, type ContextStateCleanupRequestBody, type ContextStateCleanupResponseData, type ContextStateScope, type CreateHumanInputRequestBody, DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES, DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES, DEPLOYMENT_HANDSHAKE_ROUTE, DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH, DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, type DeploymentHandshakeData, type DeploymentHandshakeRequestBody, type DeploymentHandshakeResponse, type DiscoveryDispatchBody, type DiscoveryEgressGrantBinding, type DiscoveryExecutionBinding, type DiscoveryGrantBody, type DiscoveryInvokeRequest, type DiscoveryRuntimeCredentialBinding, EGRESS_GRANT_AUDIT_ROUTE_SUBPATH, EGRESS_GRANT_CONSUME_ROUTE_SUBPATH, EGRESS_GRANT_SCOPE_KINDS, EXECUTION_CONTEXT_ROUTE_SUBPATH, EXECUTION_LEASE_INVALID, EXECUTION_LEASE_ROUTE_SUBPATH, EXECUTION_LEASE_SUPERSEDED, type EgressGrant, type EgressGrantAuditBody, type EgressGrantBodyParseResult, type EgressGrantConsumeBody, type EgressGrantCredentialMaterial, type EgressGrantFileRuntime, type EgressGrantScopeKind, type EmitInboxMessageData, type EmitInboxMessageRequest, type ExecutionAnchor, type ExecutionBinding, type ExecutionBindingConnection, type ExecutionContextCompiled, type ExecutionContextData, type ExecutionLease, FILE_ACCESS_ROUTE_SUBPATH, FILE_COMPLETE_ROUTE_SUBPATH, FILE_CONTENT_ROUTE_SUBPATH, FILE_STAT_ROUTE_SUBPATH, FILE_UPLOAD_SESSION_ROUTE_SUBPATH, FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH, FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH, FLOW_RUN_EXECUTION_EVENT_TYPES, FLOW_RUN_RESULT_ROUTE_SUBPATH, FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, type FileMetadataData, type FileRefData, type FileRuntimeLimits, type FileRuntimeScope, type FileRuntimeScopeKind, type FileUploadSessionData, type FlowActionGrantBody, type FlowExecutionContextFileRuntime, type FlowRunExecutionEventBody, type FlowRunExecutionEventData, type FlowRunExecutionEventType, type FlowRunInputFactBody, type FlowRunResultData, type FlowRunResultRequestBody, type FlowRuntimeCredentialBody, type FlowWaitResolvedEvent, type GenerationCallbackErrorCode, HANDLER_BUNDLES_ROUTE_SUBPATH, HANDSHAKE_CAPABILITY_MISSING, HANDSHAKE_CONTRACT_VERSION_MISMATCH, HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH, HANDSHAKE_REQUEST_INVALID, HANDSHAKE_SECRET_MISMATCH, HANDSHAKE_SECRET_UNCONFIGURED, HUMAN_INPUTS_ROUTE_SUBPATH, HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH, HUMAN_INPUT_CANCELLED_BY_RESET, HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH, HUMAN_INPUT_PROMPT_BODY_MAX_CODE_POINTS, HUMAN_INPUT_PROMPT_TITLE_MAX_CODE_POINTS, HUMAN_INPUT_REQUEST_ROUTE_SUBPATH, HUMAN_INPUT_RESOLVED_EVENT_PREFIX, type HandlerBundle, type HandlerBundleModule, type HandlerBundlesData, type HandlerBundlesParseResult, type HumanInputActor, type HumanInputOutput, type HumanInputRequestView, type HumanInputResolvedEvent, type HumanInputResponse, INBOX_MESSAGE_EMISSION_ROUTE_SUBPATH, INBOX_MESSAGE_EXECUTION_ERROR_REGISTRY, INTERNAL_DISCOVERY_INVOCATIONS_ROUTE_PREFIX, INTERNAL_EGRESS_GRANTS_ROUTE_PREFIX, INTERNAL_FILES_ROUTE_PREFIX, INTERNAL_FLOW_RUNS_ROUTE_PREFIX, INTERNAL_FLOW_VERSIONS_ROUTE_PREFIX, INTERNAL_INSTALLATIONS_ROUTE_PREFIX, INTERNAL_POLLING_TRIGGER_INSTANCES_ROUTE_PREFIX, INTERNAL_TOOL_INVOCATIONS_ROUTE_PREFIX, INTERNAL_WEBHOOK_TRIGGER_INSTANCES_ROUTE_PREFIX, type InboxMessageExecutionErrorCode, type IntegrationDiscoverySubject, type InternalFileAccessData, type InternalFileAccessIntent, POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH, POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH, POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH, POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH, type PackageInputDiscoveryDescriptor, type PackageInputDiscoveryKind, type PackagePollingTriggerRuntimeDescriptor, type PackageTriggerFileOutput, type PackageWebhookTriggerRuntimeDescriptor, type ParsedFlowRunResultBody, type PartiallyRenderedHumanInputDelivery, type PartiallyRenderedMapping, type PartiallyRenderedTemplatePart, type PartiallyRenderedValue, type PollingPublishBody, type PollingPublishEvent, type PollingRuntimeCredentialBody, type PollingTriggerContext, type PollingTriggerDispatchData, type PollingTriggerGrantBody, type PresignedFileUrlData, type PublishPollingTickEventResult, type PublishPollingTickEventsData, REGISTER_EVENT_WAIT_ROUTE_SUBPATH, RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS, RUN_DISPATCH_UNAVAILABLE, type RegisterFlowRunWaitBody, type RegisterFlowRunWaitData, type RenderedHumanInputPrompt, type RuntimeCredentialSession, type RuntimeCredentialSessionNetwork, type RuntimeCredentialSessionScopeKind, type RuntimeNetwork, type RuntimeNetworkModel, SERVER_EXECUTION_CONTRACT_VERSION, STEP_RESULT_ROUTE_SUBPATH, type ServerExecutionContractVersion, type ServerExecutionError, type ServerExecutionErrorEnvelope, type SingleToolGrantBody, type StepRecordBody, type StepRecordBodyParseResult, type StepRecordData, type StepRecordResult, TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH, TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH, TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, type ToolHandlerBundlesData, type TriggerConnectionInfo, type TriggerFileRuntimeDispatch, type TriggerHandlerBundlesData, type TriggerHandlerModule, WAIT_EXECUTION_SUPERSEDED, WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH, WEBHOOK_PROTOCOL_ADAPTER_MODULE, WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH, WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH, WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH, WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH, WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH, WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH, WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH, WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION, WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION, WORKFLOW_RESTART_INSTANCE_UNAVAILABLE, WORKFLOW_RESTART_REJECTED, WORKFLOW_RESTART_REQUEST_INVALID, WORKFLOW_RESTART_ROUTE, type WebhookDelivery, type WebhookDeliveryDispatchData, type WebhookProtocolAdapterBundleData, type WebhookProtocolAdapterModule, type WebhookPublishEvent, type WebhookPublishEventsBody, type WebhookPublishEventsData, type WebhookRearmBody, type WebhookRearmData, type WebhookRuntimeCredentialBody, type WebhookTriggerGrantBody, type WebhookTriggerVerificationMethod, type WebhookWatcherContext, type WfpUserRuntimeManifest, type WorkflowDispatchRestartRequest, type WorkflowDispatchRestartResponse, type WorkflowExecutionGeneration, type WorkflowRestartErrorCode, acquireExecutionLeasePath, completeEventWaitPath, deploymentHandshakeProbePayload, deploymentHandshakeResponseProofPayload, discoveryInvocationEgressGrantPath, discoveryInvocationRuntimeCredentialPath, egressGrantAuditPath, egressGrantConsumePath, executionContextPath, flowRunEgressGrantPath, flowRunExecutionEventsPath, flowRunResultPath, flowRunRuntimeCredentialPath, flowScriptProtocolAdapterModuleName, handlerBundlesPath, humanInputAcknowledgePath, humanInputExpirePath, humanInputRequestPath, humanInputResolvedEventType, humanInputsPath, inboxMessageEmissionPath, internalFileAccessPath, internalFileCompletePath, internalFileContentPath, internalFileStatPath, internalFileUploadSessionPath, internalFilesPath, isValidRequestDigest, parseAcquireExecutionLeaseData, parseAcquireExecutionLeaseRequest, parseCompleteFlowRunWaitBody, parseCompleteFlowRunWaitData, parseContextStateCleanupRequestBody, parseContextStateCleanupResponseData, parseContextStateScope, parseCreateHumanInputBody, parseDiscoveryGrantBody, parseDiscoveryRuntimeCredentialBody, parseEgressGrantAuditBody, parseEgressGrantConsumeBody, parseEgressGrantConsumeData, parseEgressGrantData, parseEmitInboxMessageData, parseEmitInboxMessageRequest, parseExecutionAnchor, parseExecutionContextData, parseExecutionLease, parseFileMetadataData, parseFileRefData, parseFileRuntimeLimits, parseFileUploadSessionData, parseFlowActionGrantBody, parseFlowRunExecutionEventBody, parseFlowRunExecutionEventData, parseFlowRunResultBody, parseFlowRunResultData, parseFlowRuntimeCredentialBody, parseFlowWaitResolvedEvent, parseHandlerBundle, parseHandlerBundlesData, parseHumanInputAcknowledgeData, parseHumanInputCreateData, parseHumanInputRequestViewData, parseHumanInputResolvedEvent, parseHumanInputResponse, parseHumanInputResponseForSpec, parseHumanInputSpec, parseInternalFileAccessData, parsePollingPublishBody, parsePollingRuntimeCredentialBody, parsePollingTriggerContext, parsePollingTriggerDispatchData, parsePollingTriggerGrantBody, parsePublishPollingTickEventsData, parseRegisterFlowRunWaitBody, parseRegisterFlowRunWaitData, parseRenderedHumanInputPrompt, parseRuntimeCredentialSessionCredential, parseRuntimeNetwork, parseServerExecutionErrorEnvelope, parseSingleToolGrantBody, parseSingleToolRuntimeCredentialBody, parseStepRecordBody, parseStepRecordData, parseToolHandlerBundlesData, parseTriggerFileRuntimeDispatch, parseTriggerHandlerBundlesData, parseWebhookDelivery, parseWebhookDeliveryDispatchData, parseWebhookPublishEventsBody, parseWebhookRearmBody, parseWebhookRuntimeCredentialBody, parseWebhookTriggerGrantBody, parseWebhookWatcherContext, parseWorkflowDispatchRestartRequest, parseWorkflowDispatchRestartResponse, pollingTriggerContextPath, pollingTriggerEgressGrantPath, pollingTriggerHandlerBundlesPath, pollingTriggerRuntimeCredentialPath, pollingTriggerTickEventsPath, registerEventWaitPath, requestHasMultipartFileParts, stepResultPath, toolHandlerBundlesPath, toolInvocationEgressGrantPath, toolInvocationRuntimeCredentialPath, webhookProtocolAdapterBundlePath, webhookTriggerContextPath, webhookTriggerDeliveryPath, webhookTriggerEgressGrantPath, webhookTriggerEventsPath, webhookTriggerHandlerBundlesPath, webhookTriggerRearmPath, webhookTriggerRuntimeCredentialPath, wfpUserRuntimeManifestPath };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var Ie="0.4.0";function u(e){return{ok:!0,value:e}}function r(e){return{ok:!1,reason:e}}function s(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var wt="/cleanup-state-scopes";function x(e){if(!s(e)||typeof e.kind!="string")return r("context state scope surface shape is invalid");switch(e.kind){case"webhook-trigger":return ye(e);case"polling-trigger":return Ee(e);case"flow-action":return ke(e);default:return r("context state scope kind is invalid")}}function Tt(e){if(!s(e))return r("cleanup request body must be a JSON object");let t=B(e,["scopes"]);if(t!==void 0)return r(`cleanup request does not accept the "${t}" field`);if(!Array.isArray(e.scopes))return r("cleanup request scopes must be an array");let n=[];for(let o of e.scopes){let i=x(o);if(!i.ok)return i;n.push(i.value)}return u({scopes:n})}function At(e){return!s(e)||typeof e.deleted!="number"||!Number.isSafeInteger(e.deleted)||e.deleted<0?r("cleanup response data surface shape is invalid"):u({deleted:e.deleted})}function ye(e){let t=B(e,["kind","workspaceId","triggerInstanceId"]);return t!==void 0?r(`webhook trigger scope does not accept "${t}"`):e.kind!=="webhook-trigger"||!_(e.workspaceId)||!_(e.triggerInstanceId)?r("webhook trigger state scope is invalid"):u({kind:"webhook-trigger",workspaceId:e.workspaceId,triggerInstanceId:e.triggerInstanceId})}function Ee(e){let t=B(e,["kind","workspaceId","pollingInstanceId"]);return t!==void 0?r(`polling trigger scope does not accept "${t}"`):e.kind!=="polling-trigger"||!_(e.workspaceId)||!_(e.pollingInstanceId)?r("polling trigger state scope is invalid"):u({kind:"polling-trigger",workspaceId:e.workspaceId,pollingInstanceId:e.pollingInstanceId})}function ke(e){let t=B(e,["kind","workspaceId","flowId","nodeId","connectionId"]);if(t!==void 0)return r(`flow action scope does not accept "${t}"`);let n=e.connectionId;return e.kind!=="flow-action"||!_(e.workspaceId)||!_(e.flowId)||!_(e.nodeId)||n!==null&&!_(n)?r("flow action state scope is invalid"):u({kind:"flow-action",workspaceId:e.workspaceId,flowId:e.flowId,nodeId:e.nodeId,connectionId:n})}function _(e){return typeof e=="string"&&e.length>0}function B(e,t){return Object.keys(e).find(n=>!t.includes(n))}import{parseFlowDefinition as Se}from"@ablehi/flow-contract";var Ot="/:flowRunId/execution-leases",Ct="/restart",Dt="WORKFLOW_RESTART_REQUEST_INVALID",vt="WORKFLOW_RESTART_INSTANCE_UNAVAILABLE",Ut="WORKFLOW_RESTART_REJECTED",Bt="RUN_DISPATCH_UNAVAILABLE",Ft="EXECUTION_LEASE_INVALID",Ht="EXECUTION_LEASE_SUPERSEDED",Lt="WAIT_EXECUTION_SUPERSEDED",Mt="HUMAN_INPUT_CANCELLED_BY_RESET";function $t(e){return`${g}/${encodeURIComponent(e)}/execution-leases`}var _e=/^generation:[A-Za-z0-9][A-Za-z0-9._:-]{0,239}$/;function Q(e){return!s(e)||!E(e,e.kind==="standalone"?["kind"]:["kind","productRunId"])?r("execution scope shape is invalid"):e.kind==="standalone"?u({kind:"standalone"}):e.kind==="automation_app"&&y(e.productRunId)?u({kind:"automation_app",productRunId:e.productRunId}):r("execution scope discriminator is invalid")}function Z(e){return s(e)?e.kind==="terminal"&&E(e,["kind"])?u({kind:"terminal"}):e.kind==="node"&&E(e,["kind","nodeId"])&&y(e.nodeId)?u({kind:"node",nodeId:e.nodeId}):r("execution anchor shape is invalid"):r("execution anchor must be an object")}function xe(e){if(!s(e)||!E(e,["productRunId","flowRunId","generationId","generationNumber","anchor","leaseId"])||!y(e.productRunId)||!y(e.flowRunId)||!y(e.generationId)||!he(e.generationNumber)||!y(e.leaseId))return r("execution lease shape is invalid");let t=Z(e.anchor);return t.ok?u({productRunId:e.productRunId,flowRunId:e.flowRunId,generationId:e.generationId,generationNumber:e.generationNumber,anchor:t.value,leaseId:e.leaseId}):r(t.reason)}function k(e){if(!s(e))return r("execution write scope must be an object");if(e.kind==="standalone"&&E(e,["kind"]))return u({kind:"standalone"});if(e.kind==="automation_app"&&E(e,["kind","lease"])){let t=xe(e.lease);return t.ok?u({kind:"automation_app",lease:t.value}):r(t.reason)}return r("execution write scope shape is invalid")}function Wt(e){if(!s(e)||!E(e,["anchor"]))return r("lease request shape is invalid");let t=Z(e.anchor);return t.ok?u({anchor:t.value}):r(t.reason)}function Gt(e){if(!s(e)||!E(e,["executionScope"]))return r("lease response shape is invalid");let t=k(e.executionScope);return t.ok?u({executionScope:t.value}):r(t.reason)}function Kt(e){return!s(e)||!E(e,["instanceId","flowRunId","commandId","generationId","from"])||!y(e.instanceId)||!y(e.flowRunId)||!y(e.commandId)||!y(e.generationId)||!s(e.from)||!E(e.from,["name","count","type"])||typeof e.from.name!="string"||!_e.test(e.from.name)||e.from.name==="generation:terminal"||e.from.count!==1||e.from.type!=="do"?r("restart request shape is invalid"):u(e)}function qt(e){return!s(e)||!E(e,["ok","data"])||e.ok!==!0||!s(e.data)||!E(e.data,["accepted","instanceId","commandId","generationId"])||e.data.accepted!==!0||!y(e.data.instanceId)||!y(e.data.commandId)||!y(e.data.generationId)?r("restart response shape is invalid"):u(e)}function E(e,t){let n=Object.keys(e).sort(),o=[...t].sort();return n.length===o.length&&n.every((i,a)=>i===o[a])}function y(e){return typeof e=="string"&&e.length>0}function he(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}var g="/internal/flow-runs",zt="/:flowRunId/execution-context";function Qt(e){return`${g}/${encodeURIComponent(e)}/execution-context`}function W(e){return!s(e)||!$(e.fileMaxBytes)||!$(e.fileReadMaxBytes)||!$(e.inlineMultipartBytesMax)?r("file runtime limits must carry three positive integer bounds"):u({fileMaxBytes:e.fileMaxBytes,fileReadMaxBytes:e.fileReadMaxBytes,inlineMultipartBytesMax:e.inlineMultipartBytesMax})}function Zt(e){if(!s(e))return r("execution context must be a JSON object");let t=ee(e,["flowRunId","workspaceId","input","executionScope","compiled","executionBindings","fileRuntime"]);if(t!==void 0)return r(`execution context does not accept the "${t}" field`);let n=e.compiled;if(typeof e.flowRunId!="string"||typeof e.workspaceId!="string"||!s(e.input)||!s(n)||ee(n,["irSchemaVersion","interpreterContractVersion","ir","compiledArtifactId"])!==void 0||typeof n.irSchemaVersion!="string"||typeof n.interpreterContractVersion!="string"||typeof n.compiledArtifactId!="string"||!Te(e.executionBindings))return r("execution context surface shape is invalid");let o=Se(n.ir);if(!o.ok)return r(o.reason);let i=Q(e.executionScope);if(!i.ok)return r(i.reason);let a=we(e.fileRuntime);return a.ok?u({...e,compiled:{...n,ir:o.value},executionScope:i.value,fileRuntime:a.value}):r(a.reason)}function we(e){if(e===null)return u(null);if(!s(e))return r("fileRuntime must be null or an object");let t=W(e.limits);return t.ok?u({limits:t.value}):r(t.reason)}function Te(e){return Array.isArray(e)?e.every(t=>{if(!s(t))return!1;let n=t.connection,o=x(t.stateScope);return typeof t.nodeId=="string"&&typeof t.toolRef=="string"&&s(t.toolDescriptor)&&s(t.integrationDescriptor)&&s(n)&&typeof n.installationId=="string"&&typeof n.connectionRef=="string"&&typeof n.connectionId=="string"&&typeof n.authProfileRef=="string"&&typeof n.authType=="string"&&o.ok}):!1}function $(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function ee(e,t){return Object.keys(e).find(n=>!t.includes(n))}import{parseAblehiErrorDigest as G}from"@ablehi/error-contract";var sn="/:flowRunId/steps/:nodeId/result",un="/:flowRunId/result",an="/:flowRunId/execution-events",cn="/:flowRunId/waits/:nodeId/register",dn="/:flowRunId/waits/:nodeId/complete";function pn(e,t){return`${g}/${encodeURIComponent(e)}/steps/${encodeURIComponent(t)}/result`}function ln(e){return`${g}/${encodeURIComponent(e)}/result`}function fn(e){return`${g}/${encodeURIComponent(e)}/execution-events`}function gn(e,t){return`${g}/${encodeURIComponent(e)}/waits/${encodeURIComponent(t)}/register`}function mn(e,t){return`${g}/${encodeURIComponent(e)}/waits/${encodeURIComponent(t)}/complete`}function Rn(e){if(!s(e))return{ok:!1,kind:"validation",reason:"step record body must be a JSON object"};let t=R(e,["executionScope","attempt","result","durationMs"]);if(t!==void 0)return{ok:!1,kind:"validation",reason:`step record does not accept the "${t}" field`};let n=k(e.executionScope);if(!n.ok)return{ok:!1,kind:"validation",reason:n.reason};let o=e.attempt;if(typeof o!="number"||!Number.isInteger(o)||o<=0)return{ok:!1,kind:"validation",reason:"attempt must be a positive integer"};let i=Ae(e.result);if(!i.ok)return i;let a={executionScope:n.value,attempt:o,result:i.value};if(e.durationMs!==void 0){let c=e.durationMs;if(typeof c!="number"||!Number.isFinite(c)||c<0)return{ok:!1,kind:"validation",reason:"durationMs must be a non-negative number"};a.durationMs=c}return{ok:!0,value:a}}function Ae(e){if(!s(e))return{ok:!1,kind:"step_result_invalid",reason:"result must be a JSON object"};let t=e.status;if(t==="succeeded"){let n=R(e,["status","output"]);return n!==void 0?{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`}:"output"in e?{ok:!0,value:{status:"succeeded",output:e.output}}:{ok:!1,kind:"step_result_invalid",reason:"a succeeded result must carry output"}}if(t==="failed"){let n=R(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=G(e.error);return o.ok?{ok:!0,value:{status:"failed",error:o.value}}:{ok:!1,kind:"step_result_invalid",reason:`a failed result must carry an AblehiErrorDigest: ${o.reason}`}}if(t==="skipped"){let n=R(e,["status","reason"]);return n!==void 0?{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`}:e.reason!=="run_if_false"?{ok:!1,kind:"step_result_invalid",reason:'a skipped result reason must be "run_if_false"'}:{ok:!0,value:{status:"skipped",reason:"run_if_false"}}}if(t==="timed_out"){let n=R(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=G(e.error);return o.ok?{ok:!0,value:{status:"timed_out",error:o.value}}:{ok:!1,kind:"step_result_invalid",reason:`a timed_out result must carry an AblehiErrorDigest: ${o.reason}`}}return{ok:!1,kind:"step_result_invalid",reason:'result status must be "succeeded", "failed", "skipped", or "timed_out"'}}function In(e){return!s(e)||typeof e.flowRunId!="string"||typeof e.nodeId!="string"||!Pe(e.recorded)?r("step record data surface shape is invalid"):u({flowRunId:e.flowRunId,nodeId:e.nodeId,recorded:e.recorded})}function Pe(e){return e==="succeeded"||e==="failed"||e==="skipped"||e==="timed_out"}function yn(e){if(!s(e))return r("result body must be a JSON object");let t=R(e,["executionScope","status","output","error"]);if(t!==void 0)return r(`result does not accept the "${t}" field`);let n=k(e.executionScope);if(!n.ok)return r(n.reason);let o=e.status;if(o!=="succeeded"&&o!=="failed")return r('result status must be "succeeded" or "failed"');let i={executionScope:n.value,status:o};if(e.output!==void 0){if(o!=="succeeded")return r("output is only allowed on a succeeded result");i.output=e.output}if(e.error!==void 0){if(o!=="failed")return r("error is only allowed on a failed result");let a=G(e.error);if(!a.ok)return r(`result error must be an AblehiErrorDigest: ${a.reason}`);i.error=a.value}return o==="failed"&&i.error===void 0?r("a failed result must carry an AblehiErrorDigest"):u(i)}function En(e){return s(e)?u(e):r("flow run result data must be a JSON object")}var be=["flow_run_started","step_started","step_retry_scheduled","wait_registered","wait_event_received","wait_event_timed_out","human_input_created","human_input_submitted","human_input_expired","flow_run_succeeded","flow_run_failed","flow_run_interrupted","flow_run_cancelled"];function kn(e){if(!s(e))return r("execution event data must be a JSON object");let t=R(e,["flowRunId","eventId","accepted"]);return t!==void 0?r(`execution event data does not accept the "${t}" field`):typeof e.flowRunId!="string"||e.flowRunId.length===0?r("flowRunId must be a non-empty string"):typeof e.eventId!="string"||e.eventId.length===0?r("eventId must be a non-empty string"):e.accepted!==!0?r("accepted must be true"):u({flowRunId:e.flowRunId,eventId:e.eventId,accepted:!0})}function _n(e){if(!s(e))return r("execution event body must be a JSON object");let t=R(e,["executionScope","eventId","eventType","nodeId","stepRunId","attempt","durationMs","occurredAt","errorId","payloadRef","inputFact"]);if(t!==void 0)return r(`execution event does not accept the "${t}" field`);let n=k(e.executionScope);if(!n.ok)return r(n.reason);let o=e.eventId;if(typeof o!="string"||o.length===0)return r("eventId must be a non-empty string");let i=e.eventType;if(!Ne(i))return r("eventType is not a known flow execution event type");let a=e.occurredAt;if(typeof a!="string"||a.length===0)return r("occurredAt must be a non-empty string");let c={executionScope:n.value,eventId:o,eventType:i,occurredAt:a};for(let d of["nodeId","stepRunId","errorId","payloadRef"]){let l=e[d];if(l!==void 0){if(typeof l!="string"||l.length===0)return r(`${d} must be a non-empty string`);c[d]=l}}for(let d of["attempt","durationMs"]){let l=e[d];if(l!==void 0){if(typeof l!="number"||!Number.isFinite(l)||!Number.isInteger(l)||l<0)return r(`${d} must be a non-negative integer`);c[d]=l}}if(e.inputFact!==void 0){if(i!=="step_started")return r("inputFact is only allowed on step_started events");if(c.attempt===void 0)return r("inputFact requires attempt");let d=Oe(e.inputFact);if(!d.ok)return d;c.inputFact=d.value}return u(c)}function Ne(e){return typeof e=="string"&&be.includes(e)}function Oe(e){if(!s(e))return r("inputFact must be a JSON object");let t=R(e,["digestAlgorithm","digest","domain"]);if(t!==void 0)return r(`inputFact does not accept the "${t}" field`);if(e.digestAlgorithm!=="sha256")return r('inputFact.digestAlgorithm must be "sha256"');let n=e.digest;if(typeof n!="string"||!/^[0-9a-f]{64}$/.test(n))return r("inputFact.digest must be a sha256 hex string");let o=e.domain;if(!s(o))return r("inputFact.domain must be a JSON object");let i=R(o,["irSchemaVersion","interpreterContractVersion","compiledArtifactId","nodeId","algorithmVersion"]);return i!==void 0?r(`inputFact.domain does not accept the "${i}" field`):typeof o.irSchemaVersion!="string"||o.irSchemaVersion.length===0||typeof o.interpreterContractVersion!="string"||o.interpreterContractVersion.length===0||typeof o.compiledArtifactId!="string"||o.compiledArtifactId.length===0||typeof o.nodeId!="string"||o.nodeId.length===0?r("inputFact.domain string fields must be non-empty strings"):o.algorithmVersion!=="flow_input_digest.v1"?r('inputFact.domain.algorithmVersion must be "flow_input_digest.v1"'):u({digestAlgorithm:"sha256",digest:n,domain:{irSchemaVersion:o.irSchemaVersion,interpreterContractVersion:o.interpreterContractVersion,compiledArtifactId:o.compiledArtifactId,nodeId:o.nodeId,algorithmVersion:"flow_input_digest.v1"}})}var Ce=/^[A-Za-z0-9_-]{1,100}$/;function xn(e){if(!s(e))return r("register body must be a JSON object");let t=R(e,["executionScope","eventType","correlationKey"]);if(t!==void 0)return r(`register wait does not accept the "${t}" field`);let n=k(e.executionScope);if(!n.ok)return r(n.reason);let o=te(e.eventType);if(!o.ok)return r(o.reason);let i=e.correlationKey;return typeof i!="string"||i.length===0?r("correlationKey must be a non-empty string"):u({executionScope:n.value,eventType:o.value,correlationKey:i})}function hn(e){if(!s(e))return r("complete body must be a JSON object");let t=R(e,["executionScope","waitExecutionId","outcome","eventId"]);if(t!==void 0)return r(`complete wait does not accept the "${t}" field`);let n=k(e.executionScope);if(!n.ok)return r(n.reason);let o=e.waitExecutionId;if(typeof o!="string"||o.length===0)return r("waitExecutionId must be a non-empty string");let i=e.outcome;if(i!=="received"&&i!=="timed_out")return r('outcome must be "received" or "timed_out"');let a={executionScope:n.value,waitExecutionId:o,outcome:i};if(e.eventId!==void 0){if(typeof e.eventId!="string"||e.eventId.length===0)return r("eventId must be a non-empty string");a.eventId=e.eventId}return u(a)}function Sn(e){if(!s(e)||R(e,["waitExecutionId","workflowEventType"])!==void 0||typeof e.waitExecutionId!="string"||e.waitExecutionId.length===0)return r("register wait data surface shape is invalid");let t=te(e.workflowEventType);return t.ok?u({waitExecutionId:e.waitExecutionId,workflowEventType:t.value}):r(t.reason)}function wn(e){return!s(e)||R(e,["completed"])!==void 0||e.completed!==!0?r("complete wait data surface shape is invalid"):u({completed:!0})}function Tn(e){return!s(e)||R(e,["waitExecutionId","eventId","payload"])!==void 0||typeof e.waitExecutionId!="string"||e.waitExecutionId.length===0||typeof e.eventId!="string"||e.eventId.length===0||!Object.hasOwn(e,"payload")?r("Wait resolved event surface shape is invalid"):u({waitExecutionId:e.waitExecutionId,eventId:e.eventId,payload:e.payload})}function te(e){return typeof e!="string"||e.length===0?r("eventType must be a non-empty string"):Ce.test(e)?u(e):r("eventType must match ^[A-Za-z0-9_-]{1,100}$")}function R(e,t){return Object.keys(e).find(n=>!t.includes(n))}var De="/internal/flow-versions",Pn="/:flowVersionId/handler-bundles",q="/internal/installations",bn="/:installationId/handler-bundles";function Nn(e,t){return`${De}/${encodeURIComponent(e)}/handler-bundles?compiledArtifactId=${encodeURIComponent(t)}`}function On(e){return`${q}/${encodeURIComponent(e.installationId)}/handler-bundles?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var ve=new Set(["managed_only","managed_plus_unmanaged_sdk"]);function F(e){if(!S(e))return K("runtimeNetwork must be a JSON object");let t=e.networkModel;return typeof t!="string"||!ve.has(t)?K("runtimeNetwork.networkModel is unknown"):!ne(e.apiHosts)||!ne(e.authHosts)||typeof e.httpsOnly!="boolean"?K("runtimeNetwork host/https fields are invalid"):{ok:!0,value:{networkModel:t,apiHosts:e.apiHosts,authHosts:e.authHosts,httpsOnly:e.httpsOnly}}}function Cn(e){if(!S(e)||typeof e.flowVersionId!="string"||typeof e.compiledArtifactId!="string"||!Array.isArray(e.bundles))return b("handler bundles data surface shape is invalid");let t=re(e.bundles);return t.ok?{ok:!0,value:{flowVersionId:e.flowVersionId,compiledArtifactId:e.compiledArtifactId,bundles:t.value}}:t}function Dn(e){if(!S(e)||typeof e.installationId!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.bundles))return b("tool handler bundles data surface shape is invalid");let t=re(e.bundles);return t.ok?{ok:!0,value:{installationId:e.installationId,artifactDigest:e.artifactDigest,bundles:t.value}}:t}function re(e){let t=[];for(let n of e){let o=Ue(n);if(!o.ok)return o;t.push(o.value)}return{ok:!0,value:t}}function Ue(e){if(!S(e)||typeof e.toolRef!="string"||e.kind!=="handler"&&e.kind!=="request")return b("handler bundle entry shape is invalid");if(e.kind==="request"){if(e.module!==void 0)return b("a request bundle must not carry a module");let o=F(e.runtimeNetwork);return o.ok?{ok:!0,value:{toolRef:e.toolRef,kind:"request",runtimeNetwork:o.value}}:o}let t=e.module;if(!S(t)||typeof t.entry!="string"||t.entry.length===0||!Be(t.files))return b("a handler bundle must carry a { entry, files } module");let n=F(e.runtimeNetwork);return n.ok?{ok:!0,value:{toolRef:e.toolRef,kind:"handler",module:{entry:t.entry,files:t.files},runtimeNetwork:n.value}}:n}function b(e){return{ok:!1,kind:"shape",reason:e}}function K(e){return{ok:!1,kind:"runtime_network",reason:e}}function S(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ne(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Be(e){return S(e)&&Object.values(e).every(t=>typeof t=="string")}var N="/internal/webhook-trigger-instances",Mn="/:triggerInstanceId/context",$n="/:triggerInstanceId/handler-bundles",Wn="/:triggerInstanceId/deliveries/:deliveryId",Gn="/:triggerInstanceId/events",Kn="/:triggerInstanceId/rearm",O=e=>`${N}/${encodeURIComponent(e)}`;function qn(e,t){return`${O(e)}/context?artifactDigest=${encodeURIComponent(t)}`}function Vn(e,t){return`${O(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function jn(e,t){return`${O(e)}/deliveries/${encodeURIComponent(t)}`}function Xn(e){return`${O(e)}/events`}function Jn(e){return`${O(e)}/rearm`}var Yn="/:installationId/webhook-protocol-adapter-bundle";function zn(e){return`${q}/${encodeURIComponent(e.installationId)}/webhook-protocol-adapter-bundle?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var Qn="modules/webhook/protocol-adapter.js";function Zn(e){return`modules/webhook/protocol-adapter-${e}.js`}function er(e){let t=s(e)?x(e.stateScope):r("webhook watcher context state scope is invalid");return!s(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!s(e.inputs)||e.connection!==null&&!Fe(e.connection)||!He(e.runtime)||!t.ok||t.value.kind!=="webhook-trigger"?r("webhook watcher context surface shape is invalid"):u(e)}function Fe(e){return s(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function He(e){if(!s(e)||e.type!=="webhook"||typeof e.trigger_ref!="string")return!1;let t=e.webhook;return s(t)&&typeof t.event_handler_module=="string"&&typeof t.enable_handler_module=="string"&&typeof t.disable_handler_module=="string"}function Le(e){if(!s(e)||typeof e.deliveryId!="string"||typeof e.receivedAt!="string"||!s(e.request))return r("webhook delivery surface shape is invalid");let t=e.request;return t.method!=="POST"||!s(t.headers)||typeof t.rawBody!="string"?r("webhook delivery request shape is invalid"):u(e)}function V(e){if(!s(e)||typeof e.token!="string"||typeof e.expiresAt!="string")return r("trigger file runtime dispatch shape is invalid");let t=W(e.limits);return t.ok?u({token:e.token,expiresAt:e.expiresAt,limits:t.value}):r(t.reason)}function tr(e){if(!s(e))return r("webhook delivery dispatch data is invalid");let t=Le(e.delivery);if(!t.ok)return r(t.reason);let n=e.fileRuntime;if(n===null)return u({delivery:t.value,fileRuntime:null});let o=V(n);return o.ok?u({delivery:t.value,fileRuntime:o.value}):r(o.reason)}function nr(e){if(!s(e)||typeof e.triggerRef!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.modules)||!e.modules.every(Me))return{ok:!1,kind:"shape",reason:"trigger handler bundles data surface shape is invalid"};let t=F(e.runtimeNetwork);return t.ok?{ok:!0,value:{triggerRef:e.triggerRef,artifactDigest:e.artifactDigest,modules:e.modules,runtimeNetwork:t.value}}:t}function Me(e){return s(e)&&typeof e.specifier=="string"&&e.specifier.length>0&&typeof e.source=="string"}function rr(e){if(!s(e))return r("publish events body must be a JSON object");let t=j(e,["deliveryId","events"]);if(t!==void 0)return r(`publish events does not accept the "${t}" field`);let n=e.deliveryId;if(typeof n!="string"||n.length===0)return r("deliveryId must be a non-empty string");let o=e.events;if(!Array.isArray(o))return r("events must be an array");let i=[];for(let a of o){let c=$e(a);if(!c.ok)return c;i.push(c.value)}return u({deliveryId:n,events:i})}function $e(e){if(!s(e))return r("each event must be a JSON object");let t=j(e,["eventId","occurredAt","dedupeKey","payload"]);if(t!==void 0)return r(`event does not accept the "${t}" field`);let n=e.eventId;if(typeof n!="string"||n.length===0)return r("eventId must be a non-empty string");let o=e.occurredAt;if(typeof o!="string"||o.length===0)return r("occurredAt must be a non-empty string");if(!s(e.payload))return r("event payload must be a JSON object");let i={eventId:n,occurredAt:o,payload:e.payload};if(e.dedupeKey!==void 0){if(typeof e.dedupeKey!="string"||e.dedupeKey.length===0)return r("dedupeKey must be a non-empty string");i.dedupeKey=e.dedupeKey}return u(i)}function or(e){if(!s(e))return r("rearm body must be a JSON object");let t=j(e,["expectedWatcherInstanceId"]);if(t!==void 0)return r(`rearm does not accept the "${t}" field`);let n=e.expectedWatcherInstanceId;return typeof n!="string"||n.length===0?r("expectedWatcherInstanceId must be a non-empty string"):u({expectedWatcherInstanceId:n})}function j(e,t){return Object.keys(e).find(n=>!t.includes(n))}var C="/internal/polling-trigger-instances",cr="/:pollingInstanceId/context",dr="/:pollingInstanceId/handler-bundles",pr="/:pollingInstanceId/ticks/:tickId/events",X=e=>`${C}/${encodeURIComponent(e)}`;function lr(e,t,n){return`${X(e)}/context?artifactDigest=${encodeURIComponent(t)}&tickId=${encodeURIComponent(n)}`}function fr(e,t){return`${X(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function gr(e,t){return`${X(e)}/ticks/${encodeURIComponent(t)}/events`}function We(e){let t=s(e)?x(e.stateScope):r("polling trigger context state scope is invalid");return!s(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!s(e.inputs)||e.connection!==null&&!Ge(e.connection)||!Ke(e.runtime)||!t.ok||t.value.kind!=="polling-trigger"||!Ve(e.tick)||!je(e.limits)?r("polling trigger context surface shape is invalid"):u(e)}function mr(e){if(!s(e))return r("polling trigger dispatch data is invalid");let t=We(e.context);if(!t.ok)return r(t.reason);let n=e.fileRuntime;if(n===null)return u({context:t.value,fileRuntime:null});let o=V(n);return o.ok?u({context:t.value,fileRuntime:o.value}):r(o.reason)}function Ge(e){return s(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function Ke(e){if(!s(e)||e.type!=="polling"||typeof e.trigger_id!="string"||typeof e.trigger_ref!="string"||!qe(e.file_outputs))return!1;let t=e.polling;if(!s(t)||typeof t.run_handler_module!="string")return!1;let n=t.schedule;if(!s(n)||n.type!=="interval"||typeof n.every_seconds!="number")return!1;let o=t.dedup;return s(o)&&(o.strategy==="cursor"||o.strategy==="hash"||o.strategy==="id_field")}function qe(e){return e===void 0?!0:Array.isArray(e)&&e.length>0&&e.every(t=>s(t)&&typeof t.field=="string"&&t.field.length>0)}function Ve(e){return s(e)&&typeof e.tickId=="string"&&typeof e.scheduledAt=="string"&&typeof e.attempt=="number"}function je(e){return s(e)&&typeof e.maxEventsPerTick=="number"}function Rr(e){if(!s(e))return r("publish body must be a JSON object");let t=oe(e,["events","nextCursor"]);if(t!==void 0)return r(`publish does not accept the "${t}" field`);let n=e.events;if(!Array.isArray(n))return r("events must be an array");let o=[];for(let a of n){let c=Xe(a);if(!c.ok)return c;o.push(c.value)}let i={events:o};if("nextCursor"in e){let a=e.nextCursor;if(a!==null&&typeof a!="string")return r("nextCursor must be a string, null, or omitted");i.nextCursor=a}return u(i)}function Xe(e){if(!s(e))return r("each event must be a JSON object");let t=oe(e,["eventId","occurredAt","dedupeKey","payload"]);if(t!==void 0)return r(`event does not accept the "${t}" field`);if(typeof e.eventId!="string"||e.eventId.length===0)return r("event eventId must be a non-empty string");if(!s(e.payload))return r("event payload must be a JSON object");let n={eventId:e.eventId,payload:e.payload};if(e.occurredAt!==void 0){if(typeof e.occurredAt!="string"||e.occurredAt.length===0)return r("event occurredAt must be a non-empty string");n.occurredAt=e.occurredAt}if(e.dedupeKey!==void 0){if(typeof e.dedupeKey!="string"||e.dedupeKey.length===0)return r("event dedupeKey must be a non-empty string");n.dedupeKey=e.dedupeKey}return u(n)}function Ir(e){return!s(e)||typeof e.tickId!="string"||typeof e.cursorUpdated!="boolean"||!Array.isArray(e.results)||!e.results.every(Je)?r("publish polling tick events data surface shape is invalid"):u(e)}function Je(e){return s(e)&&typeof e.eventId=="string"&&typeof e.dedupeKey=="string"&&typeof e.duplicate=="boolean"&&(e.flowRunId===null||typeof e.flowRunId=="string")}function oe(e,t){return Object.keys(e).find(n=>!t.includes(n))}var ie="/internal/egress-grants",J="/internal/tool-invocations",Y="/internal/discovery-invocations",hr="/:flowRunId/egress-grant",Sr="/:invocationId/egress-grant",wr="/:discoveryInvocationId/egress-grant",Tr="/:pollingInstanceId/egress-grant",Ar="/:triggerInstanceId/egress-grant",Pr="/:grantId/consume",br="/:grantId/audit",Nr=e=>`${g}/${encodeURIComponent(e)}/egress-grant`,Or=e=>`${J}/${encodeURIComponent(e)}/egress-grant`,Cr=e=>`${Y}/${encodeURIComponent(e)}/egress-grant`,Dr=e=>`${C}/${encodeURIComponent(e)}/egress-grant`,vr=e=>`${N}/${encodeURIComponent(e)}/egress-grant`,Ur=e=>`${ie}/${encodeURIComponent(e)}/consume`,Br=e=>`${ie}/${encodeURIComponent(e)}/audit`,Ye=["flow_action","single_tool","discovery","polling_trigger","webhook_trigger"],ze=/^[A-Za-z0-9][A-Za-z0-9:_+/=.-]{15,1023}$/;function w(e){return typeof e=="string"&&ze.test(e)}function Qe(e){if(!s(e)||e.body_type!=="multipart")return!1;let t=e.body;if(!s(t))return!1;let n=t.parts;return Array.isArray(n)?n.some(o=>s(o)?o.kind==="file"&&typeof o.file_id=="string"&&o.file_id.length>0:!1):!1}function p(e){return{ok:!1,kind:"shape",reason:e}}function T(){return{ok:!1,kind:"request_digest",reason:"request digest is missing or malformed"}}function D(e,t){if(!s(e))return{ok:!1,reason:"grant request body must be a JSON object"};for(let n of Object.keys(e))if(!t.includes(n))return{ok:!1,reason:`grant request does not accept the "${n}" field`};return{ok:!0,record:e}}function v(e){if(!s(e))return"request must be a JSON object"}function Fr(e){let t=D(e,["nodeId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.nodeId;if(typeof n!="string"||n.length===0)return p("nodeId is required");let o=v(t.record.request);if(o!==void 0)return p(o);let i=t.record.requestDigest;return w(i)?{ok:!0,value:{nodeId:n,requestDigest:i,requestHasMultipartFiles:Qe(t.record.request)}}:T()}function Hr(e){let t=D(e,["request","requestDigest"]);if(!t.ok)return p(t.reason);let n=v(t.record.request);if(n!==void 0)return p(n);let o=t.record.requestDigest;return w(o)?{ok:!0,value:{requestDigest:o}}:T()}function Lr(e){let t=D(e,["request","requestDigest"]);if(!t.ok)return p(t.reason);let n=v(t.record.request);if(n!==void 0)return p(n);let o=t.record.requestDigest;return w(o)?{ok:!0,value:{requestDigest:o}}:T()}function Mr(e){let t=D(e,["tickId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.tickId;if(typeof n!="string"||n.length===0)return p("tickId is required");let o=v(t.record.request);if(o!==void 0)return p(o);let i=t.record.requestDigest;return w(i)?{ok:!0,value:{tickId:n,requestDigest:i}}:T()}function $r(e){let t=D(e,["phase","lifecycle","deliveryId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.phase;if(n!=="lifecycle"&&n!=="handler")return p('phase must be "lifecycle" or "handler"');let o=t.record.lifecycle,i;if(o!==void 0){if(o!=="enable"&&o!=="disable"&&o!=="renew")return p('lifecycle must be "enable", "disable", or "renew"');i=o}if(n==="lifecycle"&&i===void 0)return p("lifecycle is required for the lifecycle phase");let a=t.record.deliveryId,c;if(a!==void 0){if(typeof a!="string"||a.length===0)return p("deliveryId must be a non-empty string");c=a}if(n==="handler"&&c===void 0)return p("deliveryId is required for the handler phase");let d=v(t.record.request);if(d!==void 0)return p(d);let l=t.record.requestDigest;return w(l)?{ok:!0,value:{phase:n,...i!==void 0?{lifecycle:i}:{},...c!==void 0?{deliveryId:c}:{},requestDigest:l}}:T()}function se(e){return Ye.includes(e)?e:void 0}var Ze=["scopeKind","scopeId","requestDigest"];function Wr(e){if(!s(e))return p("consume body must be a JSON object");for(let i of Object.keys(e))if(!Ze.includes(i))return p(`consume does not accept the "${i}" field`);let t=se(e.scopeKind);if(t===void 0)return p("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return p("scopeId is required");let o=e.requestDigest;return w(o)?{ok:!0,value:{scopeKind:t,scopeId:n,requestDigest:o}}:T()}var et=["scopeKind","scopeId","providerHost","status","durationMs","requestBytes","responseBytes","errorCode"];function H(e,t){return typeof e!="number"||!Number.isInteger(e)||e<0?{ok:!1,reason:`${t} must be a non-negative integer`}:{ok:!0,value:e}}function Gr(e){if(!s(e))return p("audit body must be a JSON object");for(let f of Object.keys(e))if(!et.includes(f))return p(`audit does not accept the "${f}" field`);let t=se(e.scopeKind);if(t===void 0)return p("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return p("scopeId is required");let o=e.providerHost;if(typeof o!="string"||o.length===0)return p("providerHost is required");let i=H(e.durationMs,"durationMs");if(!i.ok)return p(i.reason);let a;if(e.status!==void 0){let f=H(e.status,"status");if(!f.ok)return p(f.reason);a=f.value}let c;if(e.requestBytes!==void 0){let f=H(e.requestBytes,"requestBytes");if(!f.ok)return p(f.reason);c=f.value}let d;if(e.responseBytes!==void 0){let f=H(e.responseBytes,"responseBytes");if(!f.ok)return p(f.reason);d=f.value}let l;if(e.errorCode!==void 0){let f=e.errorCode;if(typeof f!="string"||f.length===0)return p("errorCode must be a non-empty string");l=f}return{ok:!0,value:{scopeKind:t,scopeId:n,providerHost:o,...a!==void 0?{status:a}:{},durationMs:i.value,...c!==void 0?{requestBytes:c}:{},...d!==void 0?{responseBytes:d}:{},...l!==void 0?{errorCode:l}:{}}}}function Kr(e){return!s(e)||!s(e.grant)?r("egress grant envelope must carry a grant object"):u(e.grant)}function qr(e){return!s(e)||e.consumed!==!0?r("egress grant consume data must carry consumed:true"):u({consumed:!0})}var Qr="/:flowRunId/runtime-credential",Zr="/:invocationId/runtime-credential",eo="/:discoveryInvocationId/runtime-credential",to="/:pollingInstanceId/runtime-credential",no="/:triggerInstanceId/runtime-credential",ro=e=>`${g}/${encodeURIComponent(e)}/runtime-credential`,oo=e=>`${J}/${encodeURIComponent(e)}/runtime-credential`,io=e=>`${Y}/${encodeURIComponent(e)}/runtime-credential`,so=e=>`${C}/${encodeURIComponent(e)}/runtime-credential`,uo=e=>`${N}/${encodeURIComponent(e)}/runtime-credential`,ao=["flow_action","tool_invoke","discovery","polling_trigger","webhook_trigger"];function U(e,t){if(!s(e))return{ok:!1,reason:"runtime credential request body must be a JSON object"};for(let n of Object.keys(e))if(!t.includes(n))return{ok:!1,reason:`runtime credential request does not accept the "${n}" field`};return{ok:!0,record:e}}function co(e){let t=U(e,["nodeId"]);if(!t.ok)return r(t.reason);let n=t.record.nodeId;return typeof n!="string"||n.length===0?r("nodeId is required"):u({nodeId:n})}function po(e){let t=U(e??{},[]);return t.ok?u(null):r(t.reason)}function lo(e){let t=U(e??{},[]);return t.ok?u(null):r(t.reason)}function fo(e){let t=U(e,["tickId"]);if(!t.ok)return r(t.reason);let n=t.record.tickId;return typeof n!="string"||n.length===0?r("tickId is required"):u({tickId:n})}function go(e){let t=U(e,["executionKind","deliveryId","lifecycleOperation"]);if(!t.ok)return r(t.reason);let n=t.record.executionKind;if(n!=="event_handler"&&n!=="lifecycle")return r('executionKind must be "event_handler" or "lifecycle"');let o,i=t.record.deliveryId;if(i!==void 0){if(typeof i!="string"||i.length===0)return r("deliveryId must be a non-empty string");o=i}let a,c=t.record.lifecycleOperation;if(c!==void 0){if(c!=="enable"&&c!=="disable"&&c!=="renew")return r('lifecycleOperation must be "enable", "disable", or "renew"');a=c}return n==="lifecycle"&&a===void 0?r("lifecycleOperation is required for the lifecycle execution kind"):u({executionKind:n,...o!==void 0?{deliveryId:o}:{},...a!==void 0?{lifecycleOperation:a}:{}})}function mo(e){return!s(e)||typeof e.sessionId!="string"||typeof e.connectionId!="string"||typeof e.authProfileRef!="string"||typeof e.authType!="string"||!s(e.credential)?r("runtime credential session must carry sessionId, connectionId, auth profile facts and a credential object"):u(e.credential)}function L(e){return!s(e)||typeof e.file_id!="string"||typeof e.name!="string"||typeof e.size_bytes!="number"||typeof e.created_at!="string"||typeof e.expires_at!="string"||e.mime_type!==void 0&&typeof e.mime_type!="string"||e.sha256!==void 0&&typeof e.sha256!="string"||e.source!==void 0&&typeof e.source!="string"?r("file ref data does not match the AIS file-ref shape"):u(e)}function z(e){return!s(e)||e.method!=="GET"&&e.method!=="PUT"||typeof e.url!="string"||typeof e.expires_at!="string"||!rt(e.headers)?r("presigned file URL data is invalid"):u(e)}function tt(e){if(!s(e))return r("file upload session data is invalid");let t=L(e.file);if(!t.ok)return r(t.reason);let n=z(e.upload);return n.ok?u({file:t.value,upload:n.value}):r(n.reason)}function nt(e){if(!s(e))return r("file metadata data is invalid");let t=L(e.file);return t.ok?u({file:t.value}):r(t.reason)}function rt(e){return s(e)?Object.values(e).every(t=>typeof t=="string"):!1}var A="/internal/files",_o="/upload-session",xo="/:fileId/complete",ho="/:fileId/access",So="/:fileId/stat",wo="/:fileId/content",To=()=>A,Ao=()=>`${A}/upload-session`,Po=e=>`${A}/${encodeURIComponent(e)}/complete`,bo=(e,t)=>`${A}/${encodeURIComponent(e)}/access?intent=${encodeURIComponent(t)}`,ue=e=>`?scope_kind=${encodeURIComponent(e.scopeKind)}&scope_id=${encodeURIComponent(e.scopeId)}`,No=(e,t)=>`${A}/${encodeURIComponent(e)}/stat${ue(t)}`,Oo=(e,t)=>`${A}/${encodeURIComponent(e)}/content${ue(t)}`;function Co(e){if(!s(e))return r("internal file access data is invalid");if(e.intent==="runtime_read"||e.intent==="provider_multipart"){let t=L(e.file);if(!t.ok)return r(t.reason);let n=z(e.access);return n.ok?u({file:t.value,access:n.value,intent:e.intent}):r(n.reason)}return r("internal file access intent is invalid")}import{isHumanInputSpec as ot}from"@ablehi/flow-contract";var Ho="/:flowRunId/human-inputs",Lo="/:flowRunId/human-inputs/:requestId",Mo="/:flowRunId/human-inputs/:requestId/expire",$o="/:flowRunId/human-inputs/:requestId/acknowledge",it=e=>`${g}/${encodeURIComponent(e)}/human-inputs`,pe=(e,t)=>`${it(e)}/${encodeURIComponent(t)}`,Wo=(e,t)=>`${pe(e,t)}/expire`,Go=(e,t)=>`${pe(e,t)}/acknowledge`,st="human_input_resolved";function Ko(e){return`${st}_${e}`}function qo(e){return!s(e)||Object.keys(e).length!==4||!Object.hasOwn(e,"requestId")||!Object.hasOwn(e,"flowRunId")||!Object.hasOwn(e,"nodeId")||!Object.hasOwn(e,"status")||typeof e.requestId!="string"||e.requestId.length===0||typeof e.flowRunId!="string"||e.flowRunId.length===0||typeof e.nodeId!="string"||e.nodeId.length===0||e.status!=="submitted"&&e.status!=="expired"?r("Human Input resolved event shape is invalid"):u({requestId:e.requestId,flowRunId:e.flowRunId,nodeId:e.nodeId,status:e.status})}var ae=160,ce=500;function ut(e){return s(e)?e.kind==="choice"?!M(e,["kind","choiceId","comment"])||typeof e.choiceId!="string"||e.choiceId.length===0||e.comment!==void 0&&typeof e.comment!="string"?r("Human Input choice response is invalid"):u({kind:"choice",choiceId:e.choiceId,...e.comment!==void 0?{comment:e.comment}:{}}):e.kind==="text"&&M(e,["kind","text"])&&typeof e.text=="string"?u({kind:"text",text:e.text}):e.kind==="form"&&M(e,["kind","values"])&&s(e.values)?u({kind:"form",values:e.values}):r("Human Input response is invalid"):r("Human Input response must be an object")}function Vo(e,t){let n=ut(e);if(!n.ok||n.value.kind!==t.kind)return r("Human Input response does not match its input spec");switch(t.kind){case"choice":{let o=n.value;return o.kind!=="choice"?r("Human Input choice response does not match its spec"):!t.choices.some(i=>i.id===o.choiceId)||o.comment!==void 0&&t.allowComment!==!0?r("Human Input choice response does not match its spec"):n}case"text":return n.value.kind!=="text"||t.required===!0&&n.value.text.trim().length===0?r("Human Input text response does not match its spec"):n;case"form":{if(n.value.kind!=="form")return r("Human Input form response does not match its spec");let o=new Map(t.fields.map(i=>[i.id,i]));if(Object.keys(n.value.values).some(i=>!o.has(i)))return r("Human Input form response contains an unknown field");for(let i of t.fields){let a=n.value.values[i.id];if(!Object.hasOwn(n.value.values,i.id)){if(i.required===!0)return r(`Human Input form response is missing required field '${i.id}'`);continue}if(a==null||!at(i,a))return r(`Human Input form response field '${i.id}' does not match its spec`)}return n}}}function at(e,t){switch(e.type){case"text":case"textarea":return typeof t=="string";case"number":return typeof t=="number"&&Number.isFinite(t);case"boolean":return typeof t=="boolean";case"select":return typeof t=="string"&&(e.options??[]).some(n=>n.id===t)}}function m(e){return{ok:!1,reason:e}}function h(e,t){return s(e)?{ok:!0,value:e}:m(`${t} must be an object`)}function M(e,t){return Object.keys(e).every(n=>t.includes(n))}function P(e,t){return typeof e!="string"||e.length===0?m(`${t} must be a non-empty string`):{ok:!0,value:e}}var ct=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/;function dt(e,t){return typeof e!="string"||!ct.test(e)||Number.isNaN(Date.parse(e))?m(`${t} must be an ISO-8601 timestamp`):{ok:!0,value:e}}function le(e){let t=h(e,"renderedPrompt");if(!t.ok)return t;if(!M(t.value,["title","body","format"]))return m("renderedPrompt contains an unknown field");let n=P(t.value.title,"renderedPrompt.title");if(!n.ok)return n;if(!/[^\p{White_Space}]/u.test(n.value))return m("renderedPrompt.title must contain non-whitespace text");if(!de(n.value,ae))return m(`renderedPrompt.title must contain at most ${ae} code points`);let o={title:n.value};if(t.value.body!==void 0){if(typeof t.value.body!="string")return m("renderedPrompt.body must be a string");if(!de(t.value.body,ce))return m(`renderedPrompt.body must contain at most ${ce} code points`);o.body=t.value.body}if(t.value.format!==void 0){if(t.value.format!=="plain"&&t.value.format!=="markdown")return m("renderedPrompt.format is invalid");o.format=t.value.format}return{ok:!0,value:o}}function de(e,t){let n=0,o=e[Symbol.iterator]();for(;!o.next().done;)if(n+=1,n>t)return!1;return!0}function jo(e){let t=le(e);return t.ok?u(t.value):r(t.reason)}function pt(e){try{return ot(e)?u(e):r("Human Input spec shape is invalid")}catch{return r("Human Input spec shape is invalid")}}function lt(e){let t=pt(e);return t.ok?t:m(t.reason)}function ft(e){if(e==null)return{ok:!0,value:void 0};let t=h(e,"partiallyRenderedDelivery");if(!t.ok)return t;let n=t.value.actions;if(n===void 0)return{ok:!0,value:{}};if(!Array.isArray(n))return m("partiallyRenderedDelivery.actions must be an array");let o=[];for(let i of n){let a=h(i,"delivery action");if(!a.ok)return a;let c=P(a.value.id,"delivery action id");if(!c.ok)return c;let d=fe(a.value.inputs,`delivery action '${c.value}' inputs`);if(!d.ok)return d;o.push({id:c.value,inputs:d.value})}return{ok:!0,value:{actions:o}}}function fe(e,t){let n=h(e,t);if(!n.ok)return n;let o={};for(let[i,a]of Object.entries(n.value)){let c=ge(a,`${t}.${i}`);if(!c.ok)return c;o[i]=c.value}return{ok:!0,value:o}}function ge(e,t){let n=h(e,t);if(!n.ok)return n;switch(n.value.kind){case"literal":return{ok:!0,value:{kind:"literal",value:n.value.value}};case"human_input_ref":{let i=P(n.value.path,`${t}.path`);return i.ok?{ok:!0,value:{kind:"human_input_ref",path:i.value}}:i}case"array":{if(!Array.isArray(n.value.items))return m(`${t}.items must be an array`);let i=[];for(let[a,c]of n.value.items.entries()){let d=ge(c,`${t}[${a}]`);if(!d.ok)return d;i.push(d.value)}return{ok:!0,value:{kind:"array",items:i}}}case"object":{let i=fe(n.value.entries,`${t}.entries`);return i.ok?{ok:!0,value:{kind:"object",entries:i.value}}:i}case"template":{if(!Array.isArray(n.value.parts))return m(`${t}.parts must be an array`);let i=[];for(let[a,c]of n.value.parts.entries()){let d=gt(c,`${t}.parts[${a}]`);if(!d.ok)return d;i.push(d.value)}return{ok:!0,value:{kind:"template",parts:i}}}default:return m(`${t}.kind is invalid`)}}function gt(e,t){let n=h(e,t);if(!n.ok)return n;let o=n.value.kind;if(o==="literal")return typeof n.value.value!="string"?m(`${t}.value must be a string`):{ok:!0,value:{kind:"literal",value:n.value.value}};if(o==="human_input_ref"){let i=P(n.value.path,`${t}.path`);return i.ok?{ok:!0,value:{kind:"human_input_ref",path:i.value}}:i}return m(`${t}.kind is invalid`)}function Xo(e){let t=h(e,"request body");if(!t.ok)return r(t.reason);let n=Object.keys(t.value).find(Re=>!["executionScope","nodeId","renderedPrompt","input","partiallyRenderedDelivery","timeout","expiresAt"].includes(Re));if(n!==void 0)return r(`human input body does not accept the "${n}" field`);let o=k(t.value.executionScope);if(!o.ok)return r(o.reason);let i=P(t.value.nodeId,"nodeId");if(!i.ok)return r(i.reason);let a=le(t.value.renderedPrompt);if(!a.ok)return r(a.reason);let c=lt(t.value.input);if(!c.ok)return r(c.reason);let d=P(t.value.timeout,"timeout");if(!d.ok)return r(d.reason);let l=dt(t.value.expiresAt,"expiresAt");if(!l.ok)return r(l.reason);let f=ft(t.value.partiallyRenderedDelivery);return f.ok?u({executionScope:o.value,nodeId:i.value,renderedPrompt:a.value,input:c.value,timeout:d.value,expiresAt:l.value,...f.value!==void 0?{partiallyRenderedDelivery:f.value}:{}}):r(f.reason)}function mt(e){return!s(e)||typeof e.id!="string"||e.id.length===0||typeof e.nodeId!="string"||typeof e.status!="string"||!(e.output===null||s(e.output))?r("human input request view must carry id, nodeId, status and output"):u(e)}function Jo(e){if(!s(e)||typeof e.created!="boolean")return r("human input create data must carry created:boolean");let t=mt(e.request);return t.ok?u({created:e.created,request:t.value}):t}function Yo(e){return!s(e)||e.acknowledged!==!0?r("human input acknowledge data must carry acknowledged:true"):u({acknowledged:!0})}var Qo="ablehi-wfp-user-runtime-manifest/v1",Zo="unknown";function ei(e){return e.endsWith(".js")?`${e.slice(0,-3)}.manifest.json`:`${e}.manifest.json`}var ni="/internal/deployment-handshake",Rt=["start","terminate","send-event","start-webhook-watcher","run-polling-tick","invoke-tool","invoke-discovery","invoke-trigger-handler","invoke-webhook-protocol-adapter","deployment-handshake"],ri=Rt,oi="HANDSHAKE_REQUEST_INVALID",ii="HANDSHAKE_SECRET_UNCONFIGURED",si="HANDSHAKE_SECRET_MISMATCH",ui="HANDSHAKE_CONTRACT_VERSION_MISMATCH",ai="HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH",ci="HANDSHAKE_CAPABILITY_MISSING";function di(e){return[e.nonce,e.timestamp,e.contractVersion,e.dispatchNamespace].map(n=>`${n.length}:${n}`).join(".")}function pi(e){return["response",e.nonce,e.contractVersion,e.dispatchNamespace,...e.capabilities].map(n=>`${n.length}:${n}`).join(".")}function gi(e){if(!s(e)||e.ok!==!1||!s(e.error))return r("Server execution error envelope is invalid");let t=Object.keys(e).find(i=>i!=="ok"&&i!=="error"&&i!=="guidance"),n=e.error,o=Object.keys(n).find(i=>i!=="code"&&i!=="message"&&i!=="retryable"&&i!=="issues"&&i!=="details");return t!==void 0||o!==void 0||typeof n.code!="string"||n.code.length===0||typeof n.message!="string"||typeof n.retryable!="boolean"||n.issues!==void 0&&!Array.isArray(n.issues)||n.details!==void 0&&!s(n.details)?r("Server execution error must carry code, message, and boolean retryable"):u(e)}import{lookupErrorRegistryEntry as It}from"@ablehi/error-contract";var ki="/:flowRunId/inbox-message-emissions/:nodeId";function _i(e,t){return`${g}/${encodeURIComponent(e)}/inbox-message-emissions/${encodeURIComponent(t)}`}function I(e){let t=It(e);if(t.code!==e)throw new Error(`Inbox message execution error code is not registered: ${e}`);return t.retryable}var xi=_t({INBOX_MESSAGE_IDEMPOTENCY_KEY_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_IDEMPOTENCY_KEY_INVALID")},INBOX_MESSAGE_PAYLOAD_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_PAYLOAD_INVALID")},INBOX_MESSAGE_PAYLOAD_TOO_LARGE:{httpStatus:413,retryable:I("INBOX_MESSAGE_PAYLOAD_TOO_LARGE")},INBOX_MESSAGE_RENDER_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_RENDER_INVALID")},INBOX_MESSAGE_CONTENT_TOO_LARGE:{httpStatus:413,retryable:I("INBOX_MESSAGE_CONTENT_TOO_LARGE")},INBOX_MESSAGE_ATTACHMENT_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_ATTACHMENT_INVALID")},INBOX_MESSAGE_ATTACHMENT_UNAVAILABLE:{httpStatus:409,retryable:I("INBOX_MESSAGE_ATTACHMENT_UNAVAILABLE")},FLOW_INBOX_MESSAGE_INVALID:{httpStatus:422,retryable:I("FLOW_INBOX_MESSAGE_INVALID")},EXECUTION_LEASE_INVALID:{httpStatus:409,retryable:I("EXECUTION_LEASE_INVALID")},EXECUTION_LEASE_SUPERSEDED:{httpStatus:409,retryable:I("EXECUTION_LEASE_SUPERSEDED")},AUTOMATION_APP_INSTALLATION_DISABLED:{httpStatus:409,retryable:I("AUTOMATION_APP_INSTALLATION_DISABLED")},INBOX_MESSAGE_EMISSION_WINDOW_CLOSED:{httpStatus:409,retryable:I("INBOX_MESSAGE_EMISSION_WINDOW_CLOSED")},INBOX_MESSAGE_EMISSION_CONFLICT:{httpStatus:409,retryable:I("INBOX_MESSAGE_EMISSION_CONFLICT")},INBOX_MESSAGE_EMISSION_UNAVAILABLE:{httpStatus:503,retryable:I("INBOX_MESSAGE_EMISSION_UNAVAILABLE")}});function hi(e){if(!s(e)||!me(e,["executionScope","idempotencyKey","payload"])||typeof e.idempotencyKey!="string"||!yt(e.payload))return r("Inbox message Emission request shape is invalid");let t=k(e.executionScope);return t.ok?u({executionScope:t.value,idempotencyKey:e.idempotencyKey,payload:e.payload}):r(t.reason)}function Si(e){return!s(e)||!me(e,["emissionId","outcome","occurredAt"])||typeof e.emissionId!="string"||e.emissionId.length===0||e.outcome!=="created"&&e.outcome!=="replayed"||typeof e.occurredAt!="string"||e.occurredAt.length===0?r("Inbox message Emission response shape is invalid"):u(e)}function me(e,t){let n=Object.keys(e).sort(),o=[...t].sort();return n.length===o.length&&n.every((i,a)=>i===o[a])}function yt(e){return s(e)&&Et(e)}function Et(e){let n=new WeakSet,o=[{value:e}],i=0;for(;o.length>0;){let a=o.pop();if(a.exiting){n.delete(a.value);continue}let c=a.value;if(c===null||typeof c=="string"||typeof c=="boolean"||typeof c=="number"&&Number.isFinite(c))continue;if(typeof c!="object"||n.has(c)||(i+=1,i>1e5))return!1;let d=Array.isArray(c)?c:s(c)&&kt(c)?Object.values(c):void 0;if(d===void 0)return!1;n.add(c),o.push({value:c,exiting:!0});for(let l=d.length-1;l>=0;l-=1)o.push({value:d[l]})}return!0}function kt(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function _t(e){for(let t of Object.values(e))Object.freeze(t);return Object.freeze(e)}export{dn as COMPLETE_EVENT_WAIT_ROUTE_SUBPATH,wt as CONTEXT_STATE_CLEANUP_ROUTE_PATH,Rt as DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES,ri as DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES,ni as DEPLOYMENT_HANDSHAKE_ROUTE,wr as DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,eo as DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,br as EGRESS_GRANT_AUDIT_ROUTE_SUBPATH,Pr as EGRESS_GRANT_CONSUME_ROUTE_SUBPATH,Ye as EGRESS_GRANT_SCOPE_KINDS,zt as EXECUTION_CONTEXT_ROUTE_SUBPATH,Ft as EXECUTION_LEASE_INVALID,Ot as EXECUTION_LEASE_ROUTE_SUBPATH,Ht as EXECUTION_LEASE_SUPERSEDED,ho as FILE_ACCESS_ROUTE_SUBPATH,xo as FILE_COMPLETE_ROUTE_SUBPATH,wo as FILE_CONTENT_ROUTE_SUBPATH,So as FILE_STAT_ROUTE_SUBPATH,_o as FILE_UPLOAD_SESSION_ROUTE_SUBPATH,hr as FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH,an as FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH,be as FLOW_RUN_EXECUTION_EVENT_TYPES,un as FLOW_RUN_RESULT_ROUTE_SUBPATH,Qr as FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Pn as HANDLER_BUNDLES_ROUTE_SUBPATH,ci as HANDSHAKE_CAPABILITY_MISSING,ui as HANDSHAKE_CONTRACT_VERSION_MISMATCH,ai as HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH,oi as HANDSHAKE_REQUEST_INVALID,si as HANDSHAKE_SECRET_MISMATCH,ii as HANDSHAKE_SECRET_UNCONFIGURED,Ho as HUMAN_INPUTS_ROUTE_SUBPATH,$o as HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH,Mt as HUMAN_INPUT_CANCELLED_BY_RESET,Mo as HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH,ce as HUMAN_INPUT_PROMPT_BODY_MAX_CODE_POINTS,ae as HUMAN_INPUT_PROMPT_TITLE_MAX_CODE_POINTS,Lo as HUMAN_INPUT_REQUEST_ROUTE_SUBPATH,st as HUMAN_INPUT_RESOLVED_EVENT_PREFIX,ki as INBOX_MESSAGE_EMISSION_ROUTE_SUBPATH,xi as INBOX_MESSAGE_EXECUTION_ERROR_REGISTRY,Y as INTERNAL_DISCOVERY_INVOCATIONS_ROUTE_PREFIX,ie as INTERNAL_EGRESS_GRANTS_ROUTE_PREFIX,A as INTERNAL_FILES_ROUTE_PREFIX,g as INTERNAL_FLOW_RUNS_ROUTE_PREFIX,De as INTERNAL_FLOW_VERSIONS_ROUTE_PREFIX,q as INTERNAL_INSTALLATIONS_ROUTE_PREFIX,C as INTERNAL_POLLING_TRIGGER_INSTANCES_ROUTE_PREFIX,J as INTERNAL_TOOL_INVOCATIONS_ROUTE_PREFIX,N as INTERNAL_WEBHOOK_TRIGGER_INSTANCES_ROUTE_PREFIX,cr as POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH,Tr as POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,dr as POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,to as POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,pr as POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH,cn as REGISTER_EVENT_WAIT_ROUTE_SUBPATH,ao as RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS,Bt as RUN_DISPATCH_UNAVAILABLE,Ie as SERVER_EXECUTION_CONTRACT_VERSION,sn as STEP_RESULT_ROUTE_SUBPATH,bn as TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH,Sr as TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,Zr as TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Lt as WAIT_EXECUTION_SUPERSEDED,Yn as WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH,Qn as WEBHOOK_PROTOCOL_ADAPTER_MODULE,Mn as WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH,Wn as WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH,Ar as WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,Gn as WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH,$n as WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,Kn as WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH,no as WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Qo as WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION,Zo as WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION,vt as WORKFLOW_RESTART_INSTANCE_UNAVAILABLE,Ut as WORKFLOW_RESTART_REJECTED,Dt as WORKFLOW_RESTART_REQUEST_INVALID,Ct as WORKFLOW_RESTART_ROUTE,$t as acquireExecutionLeasePath,mn as completeEventWaitPath,di as deploymentHandshakeProbePayload,pi as deploymentHandshakeResponseProofPayload,Cr as discoveryInvocationEgressGrantPath,io as discoveryInvocationRuntimeCredentialPath,Br as egressGrantAuditPath,Ur as egressGrantConsumePath,Qt as executionContextPath,Nr as flowRunEgressGrantPath,fn as flowRunExecutionEventsPath,ln as flowRunResultPath,ro as flowRunRuntimeCredentialPath,Zn as flowScriptProtocolAdapterModuleName,Nn as handlerBundlesPath,Go as humanInputAcknowledgePath,Wo as humanInputExpirePath,pe as humanInputRequestPath,Ko as humanInputResolvedEventType,it as humanInputsPath,_i as inboxMessageEmissionPath,bo as internalFileAccessPath,Po as internalFileCompletePath,Oo as internalFileContentPath,No as internalFileStatPath,Ao as internalFileUploadSessionPath,To as internalFilesPath,w as isValidRequestDigest,Gt as parseAcquireExecutionLeaseData,Wt as parseAcquireExecutionLeaseRequest,hn as parseCompleteFlowRunWaitBody,wn as parseCompleteFlowRunWaitData,Tt as parseContextStateCleanupRequestBody,At as parseContextStateCleanupResponseData,x as parseContextStateScope,Xo as parseCreateHumanInputBody,Lr as parseDiscoveryGrantBody,lo as parseDiscoveryRuntimeCredentialBody,Gr as parseEgressGrantAuditBody,Wr as parseEgressGrantConsumeBody,qr as parseEgressGrantConsumeData,Kr as parseEgressGrantData,Si as parseEmitInboxMessageData,hi as parseEmitInboxMessageRequest,Z as parseExecutionAnchor,Zt as parseExecutionContextData,xe as parseExecutionLease,k as parseExecutionWriteScope,nt as parseFileMetadataData,L as parseFileRefData,W as parseFileRuntimeLimits,tt as parseFileUploadSessionData,Fr as parseFlowActionGrantBody,Q as parseFlowExecutionScope,_n as parseFlowRunExecutionEventBody,kn as parseFlowRunExecutionEventData,yn as parseFlowRunResultBody,En as parseFlowRunResultData,co as parseFlowRuntimeCredentialBody,Tn as parseFlowWaitResolvedEvent,Ue as parseHandlerBundle,Cn as parseHandlerBundlesData,Yo as parseHumanInputAcknowledgeData,Jo as parseHumanInputCreateData,mt as parseHumanInputRequestViewData,qo as parseHumanInputResolvedEvent,ut as parseHumanInputResponse,Vo as parseHumanInputResponseForSpec,pt as parseHumanInputSpec,Co as parseInternalFileAccessData,Rr as parsePollingPublishBody,fo as parsePollingRuntimeCredentialBody,We as parsePollingTriggerContext,mr as parsePollingTriggerDispatchData,Mr as parsePollingTriggerGrantBody,Ir as parsePublishPollingTickEventsData,xn as parseRegisterFlowRunWaitBody,Sn as parseRegisterFlowRunWaitData,jo as parseRenderedHumanInputPrompt,mo as parseRuntimeCredentialSessionCredential,F as parseRuntimeNetwork,gi as parseServerExecutionErrorEnvelope,Hr as parseSingleToolGrantBody,po as parseSingleToolRuntimeCredentialBody,Rn as parseStepRecordBody,In as parseStepRecordData,Dn as parseToolHandlerBundlesData,V as parseTriggerFileRuntimeDispatch,nr as parseTriggerHandlerBundlesData,Le as parseWebhookDelivery,tr as parseWebhookDeliveryDispatchData,rr as parseWebhookPublishEventsBody,or as parseWebhookRearmBody,go as parseWebhookRuntimeCredentialBody,$r as parseWebhookTriggerGrantBody,er as parseWebhookWatcherContext,Kt as parseWorkflowDispatchRestartRequest,qt as parseWorkflowDispatchRestartResponse,lr as pollingTriggerContextPath,Dr as pollingTriggerEgressGrantPath,fr as pollingTriggerHandlerBundlesPath,so as pollingTriggerRuntimeCredentialPath,gr as pollingTriggerTickEventsPath,gn as registerEventWaitPath,Qe as requestHasMultipartFileParts,pn as stepResultPath,On as toolHandlerBundlesPath,Or as toolInvocationEgressGrantPath,oo as toolInvocationRuntimeCredentialPath,zn as webhookProtocolAdapterBundlePath,qn as webhookTriggerContextPath,jn as webhookTriggerDeliveryPath,vr as webhookTriggerEgressGrantPath,Xn as webhookTriggerEventsPath,Vn as webhookTriggerHandlerBundlesPath,Jn as webhookTriggerRearmPath,uo as webhookTriggerRuntimeCredentialPath,ei as wfpUserRuntimeManifestPath};
1
+ var Re="0.4.1";function u(e){return{ok:!0,value:e}}function r(e){return{ok:!1,reason:e}}function s(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var wt="/cleanup-state-scopes";function x(e){if(!s(e)||typeof e.kind!="string")return r("context state scope surface shape is invalid");switch(e.kind){case"webhook-trigger":return Ie(e);case"polling-trigger":return ye(e);case"flow-action":return Ee(e);default:return r("context state scope kind is invalid")}}function Tt(e){if(!s(e))return r("cleanup request body must be a JSON object");let t=L(e,["scopes"]);if(t!==void 0)return r(`cleanup request does not accept the "${t}" field`);if(!Array.isArray(e.scopes))return r("cleanup request scopes must be an array");let n=[];for(let o of e.scopes){let i=x(o);if(!i.ok)return i;n.push(i.value)}return u({scopes:n})}function St(e){return!s(e)||typeof e.deleted!="number"||!Number.isSafeInteger(e.deleted)||e.deleted<0?r("cleanup response data surface shape is invalid"):u({deleted:e.deleted})}function Ie(e){let t=L(e,["kind","workspaceId","triggerInstanceId"]);return t!==void 0?r(`webhook trigger scope does not accept "${t}"`):e.kind!=="webhook-trigger"||!_(e.workspaceId)||!_(e.triggerInstanceId)?r("webhook trigger state scope is invalid"):u({kind:"webhook-trigger",workspaceId:e.workspaceId,triggerInstanceId:e.triggerInstanceId})}function ye(e){let t=L(e,["kind","workspaceId","pollingInstanceId"]);return t!==void 0?r(`polling trigger scope does not accept "${t}"`):e.kind!=="polling-trigger"||!_(e.workspaceId)||!_(e.pollingInstanceId)?r("polling trigger state scope is invalid"):u({kind:"polling-trigger",workspaceId:e.workspaceId,pollingInstanceId:e.pollingInstanceId})}function Ee(e){let t=L(e,["kind","workspaceId","flowId","nodeId","connectionId"]);if(t!==void 0)return r(`flow action scope does not accept "${t}"`);let n=e.connectionId;return e.kind!=="flow-action"||!_(e.workspaceId)||!_(e.flowId)||!_(e.nodeId)||n!==null&&!_(n)?r("flow action state scope is invalid"):u({kind:"flow-action",workspaceId:e.workspaceId,flowId:e.flowId,nodeId:e.nodeId,connectionId:n})}function _(e){return typeof e=="string"&&e.length>0}function L(e,t){return Object.keys(e).find(n=>!t.includes(n))}import{parseFlowDefinition as ke}from"@ablehi/flow-contract";var g="/internal/flow-runs",Ot="/:flowRunId/execution-context";function Ct(e){return`${g}/${encodeURIComponent(e)}/execution-context`}function W(e){return!s(e)||!B(e.fileMaxBytes)||!B(e.fileReadMaxBytes)||!B(e.inlineMultipartBytesMax)?r("file runtime limits must carry three positive integer bounds"):u({fileMaxBytes:e.fileMaxBytes,fileReadMaxBytes:e.fileReadMaxBytes,inlineMultipartBytesMax:e.inlineMultipartBytesMax})}function vt(e){if(!s(e))return r("execution context must be a JSON object");let t=$(e,["flowRunId","workspaceId","input","executionGeneration","compiled","executionBindings","fileRuntime"]);if(t!==void 0)return r(`execution context does not accept the "${t}" field`);let n=e.compiled;if(typeof e.flowRunId!="string"||typeof e.workspaceId!="string"||!s(e.input)||!s(n)||$(n,["irSchemaVersion","interpreterContractVersion","ir","compiledArtifactId"])!==void 0||typeof n.irSchemaVersion!="string"||typeof n.interpreterContractVersion!="string"||typeof n.compiledArtifactId!="string"||!he(e.executionBindings))return r("execution context surface shape is invalid");let o=ke(n.ir);if(!o.ok)return r(o.reason);let i=_e(e.executionGeneration,e.flowRunId);if(!i.ok)return r(i.reason);let a=xe(e.fileRuntime);return a.ok?u({...e,compiled:{...n,ir:o.value},executionGeneration:i.value,fileRuntime:a.value}):r(a.reason)}function _e(e,t){return!s(e)||$(e,["id","flowRunId","number"])!==void 0||typeof e.id!="string"||e.id.length===0||typeof e.flowRunId!="string"||e.flowRunId!==t||!B(e.number)?r("executionGeneration surface shape is invalid"):u({id:e.id,flowRunId:e.flowRunId,number:e.number})}function xe(e){if(e===null)return u(null);if(!s(e))return r("fileRuntime must be null or an object");let t=W(e.limits);return t.ok?u({limits:t.value}):r(t.reason)}function he(e){return Array.isArray(e)?e.every(t=>{if(!s(t))return!1;let n=t.connection,o=x(t.stateScope);return typeof t.nodeId=="string"&&typeof t.toolRef=="string"&&s(t.toolDescriptor)&&s(t.integrationDescriptor)&&s(n)&&typeof n.installationId=="string"&&typeof n.connectionRef=="string"&&typeof n.connectionId=="string"&&typeof n.authProfileRef=="string"&&typeof n.authType=="string"&&o.ok}):!1}function B(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function $(e,t){return Object.keys(e).find(n=>!t.includes(n))}var Bt="/:flowRunId/execution-leases",Ft="/restart",Ht="WORKFLOW_RESTART_REQUEST_INVALID",Mt="WORKFLOW_RESTART_INSTANCE_UNAVAILABLE",Gt="WORKFLOW_RESTART_REJECTED",$t="RUN_DISPATCH_UNAVAILABLE",Wt="EXECUTION_LEASE_INVALID",Kt="EXECUTION_LEASE_SUPERSEDED",qt="WAIT_EXECUTION_SUPERSEDED",Vt="HUMAN_INPUT_CANCELLED_BY_RESET";function jt(e){return`${g}/${encodeURIComponent(e)}/execution-leases`}var we=/^generation:[A-Za-z0-9][A-Za-z0-9._:-]{0,239}$/;function Z(e){return s(e)?e.kind==="terminal"&&k(e,["kind"])?u({kind:"terminal"}):e.kind==="node"&&k(e,["kind","nodeId"])&&y(e.nodeId)?u({kind:"node",nodeId:e.nodeId}):r("execution anchor shape is invalid"):r("execution anchor must be an object")}function E(e){if(!s(e)||!k(e,["flowRunId","generationId","generationNumber","anchor","leaseId"])||!y(e.flowRunId)||!y(e.generationId)||!Te(e.generationNumber)||!y(e.leaseId))return r("execution lease shape is invalid");let t=Z(e.anchor);return t.ok?u({flowRunId:e.flowRunId,generationId:e.generationId,generationNumber:e.generationNumber,anchor:t.value,leaseId:e.leaseId}):r(t.reason)}function Xt(e){if(!s(e)||!k(e,["anchor"]))return r("lease request shape is invalid");let t=Z(e.anchor);return t.ok?u({anchor:t.value}):r(t.reason)}function Jt(e){if(!s(e)||!k(e,["lease"]))return r("lease response shape is invalid");let t=E(e.lease);return t.ok?u({lease:t.value}):r(t.reason)}function Yt(e){return!s(e)||!k(e,["instanceId","flowRunId","commandId","generationId","from"])||!y(e.instanceId)||!y(e.flowRunId)||!y(e.commandId)||!y(e.generationId)||!s(e.from)||!k(e.from,["name","count","type"])||typeof e.from.name!="string"||!we.test(e.from.name)||e.from.name==="generation:terminal"||e.from.count!==1||e.from.type!=="do"?r("restart request shape is invalid"):u(e)}function zt(e){return!s(e)||!k(e,["ok","data"])||e.ok!==!0||!s(e.data)||!k(e.data,["accepted","instanceId","commandId","generationId"])||e.data.accepted!==!0||!y(e.data.instanceId)||!y(e.data.commandId)||!y(e.data.generationId)?r("restart response shape is invalid"):u(e)}function k(e,t){let n=Object.keys(e).sort(),o=[...t].sort();return n.length===o.length&&n.every((i,a)=>i===o[a])}function y(e){return typeof e=="string"&&e.length>0}function Te(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}import{parseAblehiErrorDigest as K}from"@ablehi/error-contract";var rn="/:flowRunId/steps/:nodeId/result",on="/:flowRunId/result",sn="/:flowRunId/execution-events",un="/:flowRunId/waits/:nodeId/register",an="/:flowRunId/waits/:nodeId/complete";function cn(e,t){return`${g}/${encodeURIComponent(e)}/steps/${encodeURIComponent(t)}/result`}function dn(e){return`${g}/${encodeURIComponent(e)}/result`}function pn(e){return`${g}/${encodeURIComponent(e)}/execution-events`}function ln(e,t){return`${g}/${encodeURIComponent(e)}/waits/${encodeURIComponent(t)}/register`}function fn(e,t){return`${g}/${encodeURIComponent(e)}/waits/${encodeURIComponent(t)}/complete`}function gn(e){if(!s(e))return{ok:!1,kind:"validation",reason:"step record body must be a JSON object"};let t=R(e,["executionLease","attempt","result","durationMs"]);if(t!==void 0)return{ok:!1,kind:"validation",reason:`step record does not accept the "${t}" field`};let n=E(e.executionLease);if(!n.ok)return{ok:!1,kind:"validation",reason:n.reason};let o=e.attempt;if(typeof o!="number"||!Number.isInteger(o)||o<=0)return{ok:!1,kind:"validation",reason:"attempt must be a positive integer"};let i=Se(e.result);if(!i.ok)return i;let a={executionLease:n.value,attempt:o,result:i.value};if(e.durationMs!==void 0){let c=e.durationMs;if(typeof c!="number"||!Number.isFinite(c)||c<0)return{ok:!1,kind:"validation",reason:"durationMs must be a non-negative number"};a.durationMs=c}return{ok:!0,value:a}}function Se(e){if(!s(e))return{ok:!1,kind:"step_result_invalid",reason:"result must be a JSON object"};let t=e.status;if(t==="succeeded"){let n=R(e,["status","output"]);return n!==void 0?{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`}:"output"in e?{ok:!0,value:{status:"succeeded",output:e.output}}:{ok:!1,kind:"step_result_invalid",reason:"a succeeded result must carry output"}}if(t==="failed"){let n=R(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=K(e.error);return o.ok?{ok:!0,value:{status:"failed",error:o.value}}:{ok:!1,kind:"step_result_invalid",reason:`a failed result must carry an AblehiErrorDigest: ${o.reason}`}}if(t==="skipped"){let n=R(e,["status","reason"]);return n!==void 0?{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`}:e.reason!=="run_if_false"?{ok:!1,kind:"step_result_invalid",reason:'a skipped result reason must be "run_if_false"'}:{ok:!0,value:{status:"skipped",reason:"run_if_false"}}}if(t==="timed_out"){let n=R(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=K(e.error);return o.ok?{ok:!0,value:{status:"timed_out",error:o.value}}:{ok:!1,kind:"step_result_invalid",reason:`a timed_out result must carry an AblehiErrorDigest: ${o.reason}`}}return{ok:!1,kind:"step_result_invalid",reason:'result status must be "succeeded", "failed", "skipped", or "timed_out"'}}function mn(e){return!s(e)||typeof e.flowRunId!="string"||typeof e.nodeId!="string"||!Ae(e.recorded)?r("step record data surface shape is invalid"):u({flowRunId:e.flowRunId,nodeId:e.nodeId,recorded:e.recorded})}function Ae(e){return e==="succeeded"||e==="failed"||e==="skipped"||e==="timed_out"}function Rn(e){if(!s(e))return r("result body must be a JSON object");let t=R(e,["executionLease","status","output","error"]);if(t!==void 0)return r(`result does not accept the "${t}" field`);let n=E(e.executionLease);if(!n.ok)return r(n.reason);let o=e.status;if(o!=="succeeded"&&o!=="failed")return r('result status must be "succeeded" or "failed"');let i={executionLease:n.value,status:o};if(e.output!==void 0){if(o!=="succeeded")return r("output is only allowed on a succeeded result");i.output=e.output}if(e.error!==void 0){if(o!=="failed")return r("error is only allowed on a failed result");let a=K(e.error);if(!a.ok)return r(`result error must be an AblehiErrorDigest: ${a.reason}`);i.error=a.value}return o==="failed"&&i.error===void 0?r("a failed result must carry an AblehiErrorDigest"):u(i)}function In(e){return s(e)?u(e):r("flow run result data must be a JSON object")}var Pe=["flow_run_started","step_started","step_retry_scheduled","wait_registered","wait_event_received","wait_event_timed_out","human_input_created","human_input_submitted","human_input_expired","flow_run_succeeded","flow_run_failed","flow_run_interrupted","flow_run_cancelled"];function yn(e){if(!s(e))return r("execution event data must be a JSON object");let t=R(e,["flowRunId","eventId","accepted"]);return t!==void 0?r(`execution event data does not accept the "${t}" field`):typeof e.flowRunId!="string"||e.flowRunId.length===0?r("flowRunId must be a non-empty string"):typeof e.eventId!="string"||e.eventId.length===0?r("eventId must be a non-empty string"):e.accepted!==!0?r("accepted must be true"):u({flowRunId:e.flowRunId,eventId:e.eventId,accepted:!0})}function En(e){if(!s(e))return r("execution event body must be a JSON object");let t=R(e,["executionLease","eventId","eventType","nodeId","stepRunId","attempt","durationMs","occurredAt","errorId","payloadRef","inputFact"]);if(t!==void 0)return r(`execution event does not accept the "${t}" field`);let n=E(e.executionLease);if(!n.ok)return r(n.reason);let o=e.eventId;if(typeof o!="string"||o.length===0)return r("eventId must be a non-empty string");let i=e.eventType;if(!be(i))return r("eventType is not a known flow execution event type");let a=e.occurredAt;if(typeof a!="string"||a.length===0)return r("occurredAt must be a non-empty string");let c={executionLease:n.value,eventId:o,eventType:i,occurredAt:a};for(let d of["nodeId","stepRunId","errorId","payloadRef"]){let l=e[d];if(l!==void 0){if(typeof l!="string"||l.length===0)return r(`${d} must be a non-empty string`);c[d]=l}}for(let d of["attempt","durationMs"]){let l=e[d];if(l!==void 0){if(typeof l!="number"||!Number.isFinite(l)||!Number.isInteger(l)||l<0)return r(`${d} must be a non-negative integer`);c[d]=l}}if(e.inputFact!==void 0){if(i!=="step_started")return r("inputFact is only allowed on step_started events");if(c.attempt===void 0)return r("inputFact requires attempt");let d=Ne(e.inputFact);if(!d.ok)return d;c.inputFact=d.value}return u(c)}function be(e){return typeof e=="string"&&Pe.includes(e)}function Ne(e){if(!s(e))return r("inputFact must be a JSON object");let t=R(e,["digestAlgorithm","digest","domain"]);if(t!==void 0)return r(`inputFact does not accept the "${t}" field`);if(e.digestAlgorithm!=="sha256")return r('inputFact.digestAlgorithm must be "sha256"');let n=e.digest;if(typeof n!="string"||!/^[0-9a-f]{64}$/.test(n))return r("inputFact.digest must be a sha256 hex string");let o=e.domain;if(!s(o))return r("inputFact.domain must be a JSON object");let i=R(o,["irSchemaVersion","interpreterContractVersion","compiledArtifactId","nodeId","algorithmVersion"]);return i!==void 0?r(`inputFact.domain does not accept the "${i}" field`):typeof o.irSchemaVersion!="string"||o.irSchemaVersion.length===0||typeof o.interpreterContractVersion!="string"||o.interpreterContractVersion.length===0||typeof o.compiledArtifactId!="string"||o.compiledArtifactId.length===0||typeof o.nodeId!="string"||o.nodeId.length===0?r("inputFact.domain string fields must be non-empty strings"):o.algorithmVersion!=="flow_input_digest.v1"?r('inputFact.domain.algorithmVersion must be "flow_input_digest.v1"'):u({digestAlgorithm:"sha256",digest:n,domain:{irSchemaVersion:o.irSchemaVersion,interpreterContractVersion:o.interpreterContractVersion,compiledArtifactId:o.compiledArtifactId,nodeId:o.nodeId,algorithmVersion:"flow_input_digest.v1"}})}var Oe=/^[A-Za-z0-9_-]{1,100}$/;function kn(e){if(!s(e))return r("register body must be a JSON object");let t=R(e,["executionLease","eventType","correlationKey"]);if(t!==void 0)return r(`register wait does not accept the "${t}" field`);let n=E(e.executionLease);if(!n.ok)return r(n.reason);let o=ee(e.eventType);if(!o.ok)return r(o.reason);let i=e.correlationKey;return typeof i!="string"||i.length===0?r("correlationKey must be a non-empty string"):u({executionLease:n.value,eventType:o.value,correlationKey:i})}function _n(e){if(!s(e))return r("complete body must be a JSON object");let t=R(e,["executionLease","waitExecutionId","outcome","eventId"]);if(t!==void 0)return r(`complete wait does not accept the "${t}" field`);let n=E(e.executionLease);if(!n.ok)return r(n.reason);let o=e.waitExecutionId;if(typeof o!="string"||o.length===0)return r("waitExecutionId must be a non-empty string");let i=e.outcome;if(i!=="received"&&i!=="timed_out")return r('outcome must be "received" or "timed_out"');let a={executionLease:n.value,waitExecutionId:o,outcome:i};if(e.eventId!==void 0){if(typeof e.eventId!="string"||e.eventId.length===0)return r("eventId must be a non-empty string");a.eventId=e.eventId}return u(a)}function xn(e){if(!s(e)||R(e,["waitExecutionId","workflowEventType"])!==void 0||typeof e.waitExecutionId!="string"||e.waitExecutionId.length===0)return r("register wait data surface shape is invalid");let t=ee(e.workflowEventType);return t.ok?u({waitExecutionId:e.waitExecutionId,workflowEventType:t.value}):r(t.reason)}function hn(e){return!s(e)||R(e,["completed"])!==void 0||e.completed!==!0?r("complete wait data surface shape is invalid"):u({completed:!0})}function wn(e){return!s(e)||R(e,["waitExecutionId","eventId","payload"])!==void 0||typeof e.waitExecutionId!="string"||e.waitExecutionId.length===0||typeof e.eventId!="string"||e.eventId.length===0||!Object.hasOwn(e,"payload")?r("Wait resolved event surface shape is invalid"):u({waitExecutionId:e.waitExecutionId,eventId:e.eventId,payload:e.payload})}function ee(e){return typeof e!="string"||e.length===0?r("eventType must be a non-empty string"):Oe.test(e)?u(e):r("eventType must match ^[A-Za-z0-9_-]{1,100}$")}function R(e,t){return Object.keys(e).find(n=>!t.includes(n))}var Ce="/internal/flow-versions",Sn="/:flowVersionId/handler-bundles",V="/internal/installations",An="/:installationId/handler-bundles";function Pn(e,t){return`${Ce}/${encodeURIComponent(e)}/handler-bundles?compiledArtifactId=${encodeURIComponent(t)}`}function bn(e){return`${V}/${encodeURIComponent(e.installationId)}/handler-bundles?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var ve=new Set(["managed_only","managed_plus_unmanaged_sdk"]);function F(e){if(!w(e))return q("runtimeNetwork must be a JSON object");let t=e.networkModel;return typeof t!="string"||!ve.has(t)?q("runtimeNetwork.networkModel is unknown"):!te(e.apiHosts)||!te(e.authHosts)||typeof e.httpsOnly!="boolean"?q("runtimeNetwork host/https fields are invalid"):{ok:!0,value:{networkModel:t,apiHosts:e.apiHosts,authHosts:e.authHosts,httpsOnly:e.httpsOnly}}}function Nn(e){if(!w(e)||typeof e.flowVersionId!="string"||typeof e.compiledArtifactId!="string"||!Array.isArray(e.bundles))return b("handler bundles data surface shape is invalid");let t=ne(e.bundles);return t.ok?{ok:!0,value:{flowVersionId:e.flowVersionId,compiledArtifactId:e.compiledArtifactId,bundles:t.value}}:t}function On(e){if(!w(e)||typeof e.installationId!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.bundles))return b("tool handler bundles data surface shape is invalid");let t=ne(e.bundles);return t.ok?{ok:!0,value:{installationId:e.installationId,artifactDigest:e.artifactDigest,bundles:t.value}}:t}function ne(e){let t=[];for(let n of e){let o=De(n);if(!o.ok)return o;t.push(o.value)}return{ok:!0,value:t}}function De(e){if(!w(e)||typeof e.toolRef!="string"||e.kind!=="handler"&&e.kind!=="request")return b("handler bundle entry shape is invalid");if(e.kind==="request"){if(e.module!==void 0)return b("a request bundle must not carry a module");let o=F(e.runtimeNetwork);return o.ok?{ok:!0,value:{toolRef:e.toolRef,kind:"request",runtimeNetwork:o.value}}:o}let t=e.module;if(!w(t)||typeof t.entry!="string"||t.entry.length===0||!Ue(t.files))return b("a handler bundle must carry a { entry, files } module");let n=F(e.runtimeNetwork);return n.ok?{ok:!0,value:{toolRef:e.toolRef,kind:"handler",module:{entry:t.entry,files:t.files},runtimeNetwork:n.value}}:n}function b(e){return{ok:!1,kind:"shape",reason:e}}function q(e){return{ok:!1,kind:"runtime_network",reason:e}}function w(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function te(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Ue(e){return w(e)&&Object.values(e).every(t=>typeof t=="string")}var N="/internal/webhook-trigger-instances",Fn="/:triggerInstanceId/context",Hn="/:triggerInstanceId/handler-bundles",Mn="/:triggerInstanceId/deliveries/:deliveryId",Gn="/:triggerInstanceId/events",$n="/:triggerInstanceId/rearm",O=e=>`${N}/${encodeURIComponent(e)}`;function Wn(e,t){return`${O(e)}/context?artifactDigest=${encodeURIComponent(t)}`}function Kn(e,t){return`${O(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function qn(e,t){return`${O(e)}/deliveries/${encodeURIComponent(t)}`}function Vn(e){return`${O(e)}/events`}function jn(e){return`${O(e)}/rearm`}var Xn="/:installationId/webhook-protocol-adapter-bundle";function Jn(e){return`${V}/${encodeURIComponent(e.installationId)}/webhook-protocol-adapter-bundle?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var Yn="modules/webhook/protocol-adapter.js";function zn(e){return`modules/webhook/protocol-adapter-${e}.js`}function Qn(e){let t=s(e)?x(e.stateScope):r("webhook watcher context state scope is invalid");return!s(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!s(e.inputs)||e.connection!==null&&!Le(e.connection)||!Be(e.runtime)||!t.ok||t.value.kind!=="webhook-trigger"?r("webhook watcher context surface shape is invalid"):u(e)}function Le(e){return s(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function Be(e){if(!s(e)||e.type!=="webhook"||typeof e.trigger_ref!="string")return!1;let t=e.webhook;return s(t)&&typeof t.event_handler_module=="string"&&typeof t.enable_handler_module=="string"&&typeof t.disable_handler_module=="string"}function Fe(e){if(!s(e)||typeof e.deliveryId!="string"||typeof e.receivedAt!="string"||!s(e.request))return r("webhook delivery surface shape is invalid");let t=e.request;return t.method!=="POST"||!s(t.headers)||typeof t.rawBody!="string"?r("webhook delivery request shape is invalid"):u(e)}function j(e){if(!s(e)||typeof e.token!="string"||typeof e.expiresAt!="string")return r("trigger file runtime dispatch shape is invalid");let t=W(e.limits);return t.ok?u({token:e.token,expiresAt:e.expiresAt,limits:t.value}):r(t.reason)}function Zn(e){if(!s(e))return r("webhook delivery dispatch data is invalid");let t=Fe(e.delivery);if(!t.ok)return r(t.reason);let n=e.fileRuntime;if(n===null)return u({delivery:t.value,fileRuntime:null});let o=j(n);return o.ok?u({delivery:t.value,fileRuntime:o.value}):r(o.reason)}function er(e){if(!s(e)||typeof e.triggerRef!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.modules)||!e.modules.every(He))return{ok:!1,kind:"shape",reason:"trigger handler bundles data surface shape is invalid"};let t=F(e.runtimeNetwork);return t.ok?{ok:!0,value:{triggerRef:e.triggerRef,artifactDigest:e.artifactDigest,modules:e.modules,runtimeNetwork:t.value}}:t}function He(e){return s(e)&&typeof e.specifier=="string"&&e.specifier.length>0&&typeof e.source=="string"}function tr(e){if(!s(e))return r("publish events body must be a JSON object");let t=X(e,["deliveryId","events"]);if(t!==void 0)return r(`publish events does not accept the "${t}" field`);let n=e.deliveryId;if(typeof n!="string"||n.length===0)return r("deliveryId must be a non-empty string");let o=e.events;if(!Array.isArray(o))return r("events must be an array");let i=[];for(let a of o){let c=Me(a);if(!c.ok)return c;i.push(c.value)}return u({deliveryId:n,events:i})}function Me(e){if(!s(e))return r("each event must be a JSON object");let t=X(e,["eventId","occurredAt","dedupeKey","payload"]);if(t!==void 0)return r(`event does not accept the "${t}" field`);let n=e.eventId;if(typeof n!="string"||n.length===0)return r("eventId must be a non-empty string");let o=e.occurredAt;if(typeof o!="string"||o.length===0)return r("occurredAt must be a non-empty string");if(!s(e.payload))return r("event payload must be a JSON object");let i={eventId:n,occurredAt:o,payload:e.payload};if(e.dedupeKey!==void 0){if(typeof e.dedupeKey!="string"||e.dedupeKey.length===0)return r("dedupeKey must be a non-empty string");i.dedupeKey=e.dedupeKey}return u(i)}function nr(e){if(!s(e))return r("rearm body must be a JSON object");let t=X(e,["expectedWatcherInstanceId"]);if(t!==void 0)return r(`rearm does not accept the "${t}" field`);let n=e.expectedWatcherInstanceId;return typeof n!="string"||n.length===0?r("expectedWatcherInstanceId must be a non-empty string"):u({expectedWatcherInstanceId:n})}function X(e,t){return Object.keys(e).find(n=>!t.includes(n))}var C="/internal/polling-trigger-instances",ur="/:pollingInstanceId/context",ar="/:pollingInstanceId/handler-bundles",cr="/:pollingInstanceId/ticks/:tickId/events",J=e=>`${C}/${encodeURIComponent(e)}`;function dr(e,t,n){return`${J(e)}/context?artifactDigest=${encodeURIComponent(t)}&tickId=${encodeURIComponent(n)}`}function pr(e,t){return`${J(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function lr(e,t){return`${J(e)}/ticks/${encodeURIComponent(t)}/events`}function Ge(e){let t=s(e)?x(e.stateScope):r("polling trigger context state scope is invalid");return!s(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!s(e.inputs)||e.connection!==null&&!$e(e.connection)||!We(e.runtime)||!t.ok||t.value.kind!=="polling-trigger"||!qe(e.tick)||!Ve(e.limits)?r("polling trigger context surface shape is invalid"):u(e)}function fr(e){if(!s(e))return r("polling trigger dispatch data is invalid");let t=Ge(e.context);if(!t.ok)return r(t.reason);let n=e.fileRuntime;if(n===null)return u({context:t.value,fileRuntime:null});let o=j(n);return o.ok?u({context:t.value,fileRuntime:o.value}):r(o.reason)}function $e(e){return s(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function We(e){if(!s(e)||e.type!=="polling"||typeof e.trigger_id!="string"||typeof e.trigger_ref!="string"||!Ke(e.file_outputs))return!1;let t=e.polling;if(!s(t)||typeof t.run_handler_module!="string")return!1;let n=t.schedule;if(!s(n)||n.type!=="interval"||typeof n.every_seconds!="number")return!1;let o=t.dedup;return s(o)&&(o.strategy==="cursor"||o.strategy==="hash"||o.strategy==="id_field")}function Ke(e){return e===void 0?!0:Array.isArray(e)&&e.length>0&&e.every(t=>s(t)&&typeof t.field=="string"&&t.field.length>0)}function qe(e){return s(e)&&typeof e.tickId=="string"&&typeof e.scheduledAt=="string"&&typeof e.attempt=="number"}function Ve(e){return s(e)&&typeof e.maxEventsPerTick=="number"}function gr(e){if(!s(e))return r("publish body must be a JSON object");let t=re(e,["events","nextCursor"]);if(t!==void 0)return r(`publish does not accept the "${t}" field`);let n=e.events;if(!Array.isArray(n))return r("events must be an array");let o=[];for(let a of n){let c=je(a);if(!c.ok)return c;o.push(c.value)}let i={events:o};if("nextCursor"in e){let a=e.nextCursor;if(a!==null&&typeof a!="string")return r("nextCursor must be a string, null, or omitted");i.nextCursor=a}return u(i)}function je(e){if(!s(e))return r("each event must be a JSON object");let t=re(e,["eventId","occurredAt","dedupeKey","payload"]);if(t!==void 0)return r(`event does not accept the "${t}" field`);if(typeof e.eventId!="string"||e.eventId.length===0)return r("event eventId must be a non-empty string");if(!s(e.payload))return r("event payload must be a JSON object");let n={eventId:e.eventId,payload:e.payload};if(e.occurredAt!==void 0){if(typeof e.occurredAt!="string"||e.occurredAt.length===0)return r("event occurredAt must be a non-empty string");n.occurredAt=e.occurredAt}if(e.dedupeKey!==void 0){if(typeof e.dedupeKey!="string"||e.dedupeKey.length===0)return r("event dedupeKey must be a non-empty string");n.dedupeKey=e.dedupeKey}return u(n)}function mr(e){return!s(e)||typeof e.tickId!="string"||typeof e.cursorUpdated!="boolean"||!Array.isArray(e.results)||!e.results.every(Xe)?r("publish polling tick events data surface shape is invalid"):u(e)}function Xe(e){return s(e)&&typeof e.eventId=="string"&&typeof e.dedupeKey=="string"&&typeof e.duplicate=="boolean"&&(e.flowRunId===null||typeof e.flowRunId=="string")}function re(e,t){return Object.keys(e).find(n=>!t.includes(n))}var oe="/internal/egress-grants",Y="/internal/tool-invocations",z="/internal/discovery-invocations",_r="/:flowRunId/egress-grant",xr="/:invocationId/egress-grant",hr="/:discoveryInvocationId/egress-grant",wr="/:pollingInstanceId/egress-grant",Tr="/:triggerInstanceId/egress-grant",Sr="/:grantId/consume",Ar="/:grantId/audit",Pr=e=>`${g}/${encodeURIComponent(e)}/egress-grant`,br=e=>`${Y}/${encodeURIComponent(e)}/egress-grant`,Nr=e=>`${z}/${encodeURIComponent(e)}/egress-grant`,Or=e=>`${C}/${encodeURIComponent(e)}/egress-grant`,Cr=e=>`${N}/${encodeURIComponent(e)}/egress-grant`,vr=e=>`${oe}/${encodeURIComponent(e)}/consume`,Dr=e=>`${oe}/${encodeURIComponent(e)}/audit`,Je=["flow_action","single_tool","discovery","polling_trigger","webhook_trigger"],Ye=/^[A-Za-z0-9][A-Za-z0-9:_+/=.-]{15,1023}$/;function T(e){return typeof e=="string"&&Ye.test(e)}function ze(e){if(!s(e)||e.body_type!=="multipart")return!1;let t=e.body;if(!s(t))return!1;let n=t.parts;return Array.isArray(n)?n.some(o=>s(o)?o.kind==="file"&&typeof o.file_id=="string"&&o.file_id.length>0:!1):!1}function p(e){return{ok:!1,kind:"shape",reason:e}}function S(){return{ok:!1,kind:"request_digest",reason:"request digest is missing or malformed"}}function v(e,t){if(!s(e))return{ok:!1,reason:"grant request body must be a JSON object"};for(let n of Object.keys(e))if(!t.includes(n))return{ok:!1,reason:`grant request does not accept the "${n}" field`};return{ok:!0,record:e}}function D(e){if(!s(e))return"request must be a JSON object"}function Ur(e){let t=v(e,["nodeId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.nodeId;if(typeof n!="string"||n.length===0)return p("nodeId is required");let o=D(t.record.request);if(o!==void 0)return p(o);let i=t.record.requestDigest;return T(i)?{ok:!0,value:{nodeId:n,requestDigest:i,requestHasMultipartFiles:ze(t.record.request)}}:S()}function Lr(e){let t=v(e,["request","requestDigest"]);if(!t.ok)return p(t.reason);let n=D(t.record.request);if(n!==void 0)return p(n);let o=t.record.requestDigest;return T(o)?{ok:!0,value:{requestDigest:o}}:S()}function Br(e){let t=v(e,["request","requestDigest"]);if(!t.ok)return p(t.reason);let n=D(t.record.request);if(n!==void 0)return p(n);let o=t.record.requestDigest;return T(o)?{ok:!0,value:{requestDigest:o}}:S()}function Fr(e){let t=v(e,["tickId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.tickId;if(typeof n!="string"||n.length===0)return p("tickId is required");let o=D(t.record.request);if(o!==void 0)return p(o);let i=t.record.requestDigest;return T(i)?{ok:!0,value:{tickId:n,requestDigest:i}}:S()}function Hr(e){let t=v(e,["phase","lifecycle","deliveryId","request","requestDigest"]);if(!t.ok)return p(t.reason);let n=t.record.phase;if(n!=="lifecycle"&&n!=="handler")return p('phase must be "lifecycle" or "handler"');let o=t.record.lifecycle,i;if(o!==void 0){if(o!=="enable"&&o!=="disable"&&o!=="renew")return p('lifecycle must be "enable", "disable", or "renew"');i=o}if(n==="lifecycle"&&i===void 0)return p("lifecycle is required for the lifecycle phase");let a=t.record.deliveryId,c;if(a!==void 0){if(typeof a!="string"||a.length===0)return p("deliveryId must be a non-empty string");c=a}if(n==="handler"&&c===void 0)return p("deliveryId is required for the handler phase");let d=D(t.record.request);if(d!==void 0)return p(d);let l=t.record.requestDigest;return T(l)?{ok:!0,value:{phase:n,...i!==void 0?{lifecycle:i}:{},...c!==void 0?{deliveryId:c}:{},requestDigest:l}}:S()}function ie(e){return Je.includes(e)?e:void 0}var Qe=["scopeKind","scopeId","requestDigest"];function Mr(e){if(!s(e))return p("consume body must be a JSON object");for(let i of Object.keys(e))if(!Qe.includes(i))return p(`consume does not accept the "${i}" field`);let t=ie(e.scopeKind);if(t===void 0)return p("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return p("scopeId is required");let o=e.requestDigest;return T(o)?{ok:!0,value:{scopeKind:t,scopeId:n,requestDigest:o}}:S()}var Ze=["scopeKind","scopeId","providerHost","status","durationMs","requestBytes","responseBytes","errorCode"];function H(e,t){return typeof e!="number"||!Number.isInteger(e)||e<0?{ok:!1,reason:`${t} must be a non-negative integer`}:{ok:!0,value:e}}function Gr(e){if(!s(e))return p("audit body must be a JSON object");for(let f of Object.keys(e))if(!Ze.includes(f))return p(`audit does not accept the "${f}" field`);let t=ie(e.scopeKind);if(t===void 0)return p("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return p("scopeId is required");let o=e.providerHost;if(typeof o!="string"||o.length===0)return p("providerHost is required");let i=H(e.durationMs,"durationMs");if(!i.ok)return p(i.reason);let a;if(e.status!==void 0){let f=H(e.status,"status");if(!f.ok)return p(f.reason);a=f.value}let c;if(e.requestBytes!==void 0){let f=H(e.requestBytes,"requestBytes");if(!f.ok)return p(f.reason);c=f.value}let d;if(e.responseBytes!==void 0){let f=H(e.responseBytes,"responseBytes");if(!f.ok)return p(f.reason);d=f.value}let l;if(e.errorCode!==void 0){let f=e.errorCode;if(typeof f!="string"||f.length===0)return p("errorCode must be a non-empty string");l=f}return{ok:!0,value:{scopeKind:t,scopeId:n,providerHost:o,...a!==void 0?{status:a}:{},durationMs:i.value,...c!==void 0?{requestBytes:c}:{},...d!==void 0?{responseBytes:d}:{},...l!==void 0?{errorCode:l}:{}}}}function $r(e){return!s(e)||!s(e.grant)?r("egress grant envelope must carry a grant object"):u(e.grant)}function Wr(e){return!s(e)||e.consumed!==!0?r("egress grant consume data must carry consumed:true"):u({consumed:!0})}var Yr="/:flowRunId/runtime-credential",zr="/:invocationId/runtime-credential",Qr="/:discoveryInvocationId/runtime-credential",Zr="/:pollingInstanceId/runtime-credential",eo="/:triggerInstanceId/runtime-credential",to=e=>`${g}/${encodeURIComponent(e)}/runtime-credential`,no=e=>`${Y}/${encodeURIComponent(e)}/runtime-credential`,ro=e=>`${z}/${encodeURIComponent(e)}/runtime-credential`,oo=e=>`${C}/${encodeURIComponent(e)}/runtime-credential`,io=e=>`${N}/${encodeURIComponent(e)}/runtime-credential`,so=["flow_action","tool_invoke","discovery","polling_trigger","webhook_trigger"];function U(e,t){if(!s(e))return{ok:!1,reason:"runtime credential request body must be a JSON object"};for(let n of Object.keys(e))if(!t.includes(n))return{ok:!1,reason:`runtime credential request does not accept the "${n}" field`};return{ok:!0,record:e}}function uo(e){let t=U(e,["nodeId"]);if(!t.ok)return r(t.reason);let n=t.record.nodeId;return typeof n!="string"||n.length===0?r("nodeId is required"):u({nodeId:n})}function ao(e){let t=U(e??{},[]);return t.ok?u(null):r(t.reason)}function co(e){let t=U(e??{},[]);return t.ok?u(null):r(t.reason)}function po(e){let t=U(e,["tickId"]);if(!t.ok)return r(t.reason);let n=t.record.tickId;return typeof n!="string"||n.length===0?r("tickId is required"):u({tickId:n})}function lo(e){let t=U(e,["executionKind","deliveryId","lifecycleOperation"]);if(!t.ok)return r(t.reason);let n=t.record.executionKind;if(n!=="event_handler"&&n!=="lifecycle")return r('executionKind must be "event_handler" or "lifecycle"');let o,i=t.record.deliveryId;if(i!==void 0){if(typeof i!="string"||i.length===0)return r("deliveryId must be a non-empty string");o=i}let a,c=t.record.lifecycleOperation;if(c!==void 0){if(c!=="enable"&&c!=="disable"&&c!=="renew")return r('lifecycleOperation must be "enable", "disable", or "renew"');a=c}return n==="lifecycle"&&a===void 0?r("lifecycleOperation is required for the lifecycle execution kind"):u({executionKind:n,...o!==void 0?{deliveryId:o}:{},...a!==void 0?{lifecycleOperation:a}:{}})}function fo(e){return!s(e)||typeof e.sessionId!="string"||typeof e.connectionId!="string"||typeof e.authProfileRef!="string"||typeof e.authType!="string"||!s(e.credential)?r("runtime credential session must carry sessionId, connectionId, auth profile facts and a credential object"):u(e.credential)}function M(e){return!s(e)||typeof e.file_id!="string"||typeof e.name!="string"||typeof e.size_bytes!="number"||typeof e.created_at!="string"||typeof e.expires_at!="string"||e.mime_type!==void 0&&typeof e.mime_type!="string"||e.sha256!==void 0&&typeof e.sha256!="string"||e.source!==void 0&&typeof e.source!="string"?r("file ref data does not match the AIS file-ref shape"):u(e)}function Q(e){return!s(e)||e.method!=="GET"&&e.method!=="PUT"||typeof e.url!="string"||typeof e.expires_at!="string"||!nt(e.headers)?r("presigned file URL data is invalid"):u(e)}function et(e){if(!s(e))return r("file upload session data is invalid");let t=M(e.file);if(!t.ok)return r(t.reason);let n=Q(e.upload);return n.ok?u({file:t.value,upload:n.value}):r(n.reason)}function tt(e){if(!s(e))return r("file metadata data is invalid");let t=M(e.file);return t.ok?u({file:t.value}):r(t.reason)}function nt(e){return s(e)?Object.values(e).every(t=>typeof t=="string"):!1}var A="/internal/files",Eo="/upload-session",ko="/:fileId/complete",_o="/:fileId/access",xo="/:fileId/stat",ho="/:fileId/content",wo=()=>A,To=()=>`${A}/upload-session`,So=e=>`${A}/${encodeURIComponent(e)}/complete`,Ao=(e,t)=>`${A}/${encodeURIComponent(e)}/access?intent=${encodeURIComponent(t)}`,se=e=>`?scope_kind=${encodeURIComponent(e.scopeKind)}&scope_id=${encodeURIComponent(e.scopeId)}`,Po=(e,t)=>`${A}/${encodeURIComponent(e)}/stat${se(t)}`,bo=(e,t)=>`${A}/${encodeURIComponent(e)}/content${se(t)}`;function No(e){if(!s(e))return r("internal file access data is invalid");if(e.intent==="runtime_read"||e.intent==="provider_multipart"){let t=M(e.file);if(!t.ok)return r(t.reason);let n=Q(e.access);return n.ok?u({file:t.value,access:n.value,intent:e.intent}):r(n.reason)}return r("internal file access intent is invalid")}import{isHumanInputSpec as rt}from"@ablehi/flow-contract";var Lo="/:flowRunId/human-inputs",Bo="/:flowRunId/human-inputs/:requestId",Fo="/:flowRunId/human-inputs/:requestId/expire",Ho="/:flowRunId/human-inputs/:requestId/acknowledge",ot=e=>`${g}/${encodeURIComponent(e)}/human-inputs`,de=(e,t)=>`${ot(e)}/${encodeURIComponent(t)}`,Mo=(e,t)=>`${de(e,t)}/expire`,Go=(e,t)=>`${de(e,t)}/acknowledge`,it="human_input_resolved";function $o(e){return`${it}_${e}`}function Wo(e){return!s(e)||Object.keys(e).length!==4||!Object.hasOwn(e,"requestId")||!Object.hasOwn(e,"flowRunId")||!Object.hasOwn(e,"nodeId")||!Object.hasOwn(e,"status")||typeof e.requestId!="string"||e.requestId.length===0||typeof e.flowRunId!="string"||e.flowRunId.length===0||typeof e.nodeId!="string"||e.nodeId.length===0||e.status!=="submitted"&&e.status!=="expired"?r("Human Input resolved event shape is invalid"):u({requestId:e.requestId,flowRunId:e.flowRunId,nodeId:e.nodeId,status:e.status})}var ue=160,ae=500;function st(e){return s(e)?e.kind==="choice"?!G(e,["kind","choiceId","comment"])||typeof e.choiceId!="string"||e.choiceId.length===0||e.comment!==void 0&&typeof e.comment!="string"?r("Human Input choice response is invalid"):u({kind:"choice",choiceId:e.choiceId,...e.comment!==void 0?{comment:e.comment}:{}}):e.kind==="text"&&G(e,["kind","text"])&&typeof e.text=="string"?u({kind:"text",text:e.text}):e.kind==="form"&&G(e,["kind","values"])&&s(e.values)?u({kind:"form",values:e.values}):r("Human Input response is invalid"):r("Human Input response must be an object")}function Ko(e,t){let n=st(e);if(!n.ok||n.value.kind!==t.kind)return r("Human Input response does not match its input spec");switch(t.kind){case"choice":{let o=n.value;return o.kind!=="choice"?r("Human Input choice response does not match its spec"):!t.choices.some(i=>i.id===o.choiceId)||o.comment!==void 0&&t.allowComment!==!0?r("Human Input choice response does not match its spec"):n}case"text":return n.value.kind!=="text"||t.required===!0&&n.value.text.trim().length===0?r("Human Input text response does not match its spec"):n;case"form":{if(n.value.kind!=="form")return r("Human Input form response does not match its spec");let o=new Map(t.fields.map(i=>[i.id,i]));if(Object.keys(n.value.values).some(i=>!o.has(i)))return r("Human Input form response contains an unknown field");for(let i of t.fields){let a=n.value.values[i.id];if(!Object.hasOwn(n.value.values,i.id)){if(i.required===!0)return r(`Human Input form response is missing required field '${i.id}'`);continue}if(a==null||!ut(i,a))return r(`Human Input form response field '${i.id}' does not match its spec`)}return n}}}function ut(e,t){switch(e.type){case"text":case"textarea":return typeof t=="string";case"number":return typeof t=="number"&&Number.isFinite(t);case"boolean":return typeof t=="boolean";case"select":return typeof t=="string"&&(e.options??[]).some(n=>n.id===t)}}function m(e){return{ok:!1,reason:e}}function h(e,t){return s(e)?{ok:!0,value:e}:m(`${t} must be an object`)}function G(e,t){return Object.keys(e).every(n=>t.includes(n))}function P(e,t){return typeof e!="string"||e.length===0?m(`${t} must be a non-empty string`):{ok:!0,value:e}}var at=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/;function ct(e,t){return typeof e!="string"||!at.test(e)||Number.isNaN(Date.parse(e))?m(`${t} must be an ISO-8601 timestamp`):{ok:!0,value:e}}function pe(e){let t=h(e,"renderedPrompt");if(!t.ok)return t;if(!G(t.value,["title","body","format"]))return m("renderedPrompt contains an unknown field");let n=P(t.value.title,"renderedPrompt.title");if(!n.ok)return n;if(!/[^\p{White_Space}]/u.test(n.value))return m("renderedPrompt.title must contain non-whitespace text");if(!ce(n.value,ue))return m(`renderedPrompt.title must contain at most ${ue} code points`);let o={title:n.value};if(t.value.body!==void 0){if(typeof t.value.body!="string")return m("renderedPrompt.body must be a string");if(!ce(t.value.body,ae))return m(`renderedPrompt.body must contain at most ${ae} code points`);o.body=t.value.body}if(t.value.format!==void 0){if(t.value.format!=="plain"&&t.value.format!=="markdown")return m("renderedPrompt.format is invalid");o.format=t.value.format}return{ok:!0,value:o}}function ce(e,t){let n=0,o=e[Symbol.iterator]();for(;!o.next().done;)if(n+=1,n>t)return!1;return!0}function qo(e){let t=pe(e);return t.ok?u(t.value):r(t.reason)}function dt(e){try{return rt(e)?u(e):r("Human Input spec shape is invalid")}catch{return r("Human Input spec shape is invalid")}}function pt(e){let t=dt(e);return t.ok?t:m(t.reason)}function lt(e){if(e==null)return{ok:!0,value:void 0};let t=h(e,"partiallyRenderedDelivery");if(!t.ok)return t;let n=t.value.actions;if(n===void 0)return{ok:!0,value:{}};if(!Array.isArray(n))return m("partiallyRenderedDelivery.actions must be an array");let o=[];for(let i of n){let a=h(i,"delivery action");if(!a.ok)return a;let c=P(a.value.id,"delivery action id");if(!c.ok)return c;let d=le(a.value.inputs,`delivery action '${c.value}' inputs`);if(!d.ok)return d;o.push({id:c.value,inputs:d.value})}return{ok:!0,value:{actions:o}}}function le(e,t){let n=h(e,t);if(!n.ok)return n;let o={};for(let[i,a]of Object.entries(n.value)){let c=fe(a,`${t}.${i}`);if(!c.ok)return c;o[i]=c.value}return{ok:!0,value:o}}function fe(e,t){let n=h(e,t);if(!n.ok)return n;switch(n.value.kind){case"literal":return{ok:!0,value:{kind:"literal",value:n.value.value}};case"human_input_ref":{let i=P(n.value.path,`${t}.path`);return i.ok?{ok:!0,value:{kind:"human_input_ref",path:i.value}}:i}case"array":{if(!Array.isArray(n.value.items))return m(`${t}.items must be an array`);let i=[];for(let[a,c]of n.value.items.entries()){let d=fe(c,`${t}[${a}]`);if(!d.ok)return d;i.push(d.value)}return{ok:!0,value:{kind:"array",items:i}}}case"object":{let i=le(n.value.entries,`${t}.entries`);return i.ok?{ok:!0,value:{kind:"object",entries:i.value}}:i}case"template":{if(!Array.isArray(n.value.parts))return m(`${t}.parts must be an array`);let i=[];for(let[a,c]of n.value.parts.entries()){let d=ft(c,`${t}.parts[${a}]`);if(!d.ok)return d;i.push(d.value)}return{ok:!0,value:{kind:"template",parts:i}}}default:return m(`${t}.kind is invalid`)}}function ft(e,t){let n=h(e,t);if(!n.ok)return n;let o=n.value.kind;if(o==="literal")return typeof n.value.value!="string"?m(`${t}.value must be a string`):{ok:!0,value:{kind:"literal",value:n.value.value}};if(o==="human_input_ref"){let i=P(n.value.path,`${t}.path`);return i.ok?{ok:!0,value:{kind:"human_input_ref",path:i.value}}:i}return m(`${t}.kind is invalid`)}function Vo(e){let t=h(e,"request body");if(!t.ok)return r(t.reason);let n=Object.keys(t.value).find(me=>!["executionLease","nodeId","renderedPrompt","input","partiallyRenderedDelivery","timeout","expiresAt"].includes(me));if(n!==void 0)return r(`human input body does not accept the "${n}" field`);let o=E(t.value.executionLease);if(!o.ok)return r(o.reason);let i=P(t.value.nodeId,"nodeId");if(!i.ok)return r(i.reason);let a=pe(t.value.renderedPrompt);if(!a.ok)return r(a.reason);let c=pt(t.value.input);if(!c.ok)return r(c.reason);let d=P(t.value.timeout,"timeout");if(!d.ok)return r(d.reason);let l=ct(t.value.expiresAt,"expiresAt");if(!l.ok)return r(l.reason);let f=lt(t.value.partiallyRenderedDelivery);return f.ok?u({executionLease:o.value,nodeId:i.value,renderedPrompt:a.value,input:c.value,timeout:d.value,expiresAt:l.value,...f.value!==void 0?{partiallyRenderedDelivery:f.value}:{}}):r(f.reason)}function gt(e){return!s(e)||typeof e.id!="string"||e.id.length===0||typeof e.nodeId!="string"||typeof e.status!="string"||!(e.output===null||s(e.output))?r("human input request view must carry id, nodeId, status and output"):u(e)}function jo(e){if(!s(e)||typeof e.created!="boolean")return r("human input create data must carry created:boolean");let t=gt(e.request);return t.ok?u({created:e.created,request:t.value}):t}function Xo(e){return!s(e)||e.acknowledged!==!0?r("human input acknowledge data must carry acknowledged:true"):u({acknowledged:!0})}var Yo="ablehi-wfp-user-runtime-manifest/v1",zo="unknown";function Qo(e){return e.endsWith(".js")?`${e.slice(0,-3)}.manifest.json`:`${e}.manifest.json`}var ei="/internal/deployment-handshake",mt=["start","terminate","send-event","start-webhook-watcher","run-polling-tick","invoke-tool","invoke-discovery","invoke-trigger-handler","invoke-webhook-protocol-adapter","deployment-handshake"],ti=mt,ni="HANDSHAKE_REQUEST_INVALID",ri="HANDSHAKE_SECRET_UNCONFIGURED",oi="HANDSHAKE_SECRET_MISMATCH",ii="HANDSHAKE_CONTRACT_VERSION_MISMATCH",si="HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH",ui="HANDSHAKE_CAPABILITY_MISSING";function ai(e){return[e.nonce,e.timestamp,e.contractVersion,e.dispatchNamespace].map(n=>`${n.length}:${n}`).join(".")}function ci(e){return["response",e.nonce,e.contractVersion,e.dispatchNamespace,...e.capabilities].map(n=>`${n.length}:${n}`).join(".")}function li(e){if(!s(e)||e.ok!==!1||!s(e.error))return r("Server execution error envelope is invalid");let t=Object.keys(e).find(i=>i!=="ok"&&i!=="error"&&i!=="guidance"),n=e.error,o=Object.keys(n).find(i=>i!=="code"&&i!=="message"&&i!=="retryable"&&i!=="issues"&&i!=="details");return t!==void 0||o!==void 0||typeof n.code!="string"||n.code.length===0||typeof n.message!="string"||typeof n.retryable!="boolean"||n.issues!==void 0&&!Array.isArray(n.issues)||n.details!==void 0&&!s(n.details)?r("Server execution error must carry code, message, and boolean retryable"):u(e)}import{lookupErrorRegistryEntry as Rt}from"@ablehi/error-contract";var yi="/:flowRunId/inbox-message-emissions/:nodeId";function Ei(e,t){return`${g}/${encodeURIComponent(e)}/inbox-message-emissions/${encodeURIComponent(t)}`}function I(e){let t=Rt(e);if(t.code!==e)throw new Error(`Inbox message execution error code is not registered: ${e}`);return t.retryable}var ki=kt({INBOX_MESSAGE_IDEMPOTENCY_KEY_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_IDEMPOTENCY_KEY_INVALID")},INBOX_MESSAGE_PAYLOAD_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_PAYLOAD_INVALID")},INBOX_MESSAGE_PAYLOAD_TOO_LARGE:{httpStatus:413,retryable:I("INBOX_MESSAGE_PAYLOAD_TOO_LARGE")},INBOX_MESSAGE_RENDER_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_RENDER_INVALID")},INBOX_MESSAGE_CONTENT_TOO_LARGE:{httpStatus:413,retryable:I("INBOX_MESSAGE_CONTENT_TOO_LARGE")},INBOX_MESSAGE_ATTACHMENT_INVALID:{httpStatus:422,retryable:I("INBOX_MESSAGE_ATTACHMENT_INVALID")},INBOX_MESSAGE_ATTACHMENT_UNAVAILABLE:{httpStatus:409,retryable:I("INBOX_MESSAGE_ATTACHMENT_UNAVAILABLE")},FLOW_INBOX_MESSAGE_INVALID:{httpStatus:422,retryable:I("FLOW_INBOX_MESSAGE_INVALID")},EXECUTION_LEASE_INVALID:{httpStatus:409,retryable:I("EXECUTION_LEASE_INVALID")},EXECUTION_LEASE_SUPERSEDED:{httpStatus:409,retryable:I("EXECUTION_LEASE_SUPERSEDED")},INBOX_MESSAGE_EMISSION_WINDOW_CLOSED:{httpStatus:409,retryable:I("INBOX_MESSAGE_EMISSION_WINDOW_CLOSED")},INBOX_MESSAGE_EMISSION_CONFLICT:{httpStatus:409,retryable:I("INBOX_MESSAGE_EMISSION_CONFLICT")},INBOX_MESSAGE_EMISSION_UNAVAILABLE:{httpStatus:503,retryable:I("INBOX_MESSAGE_EMISSION_UNAVAILABLE")}});function _i(e){if(!s(e)||!ge(e,["executionLease","idempotencyKey","payload"])||typeof e.idempotencyKey!="string"||!It(e.payload))return r("Inbox message Emission request shape is invalid");let t=E(e.executionLease);return t.ok?u({executionLease:t.value,idempotencyKey:e.idempotencyKey,payload:e.payload}):r(t.reason)}function xi(e){return!s(e)||!ge(e,["emissionId","outcome","occurredAt"])||typeof e.emissionId!="string"||e.emissionId.length===0||e.outcome!=="created"&&e.outcome!=="replayed"||typeof e.occurredAt!="string"||e.occurredAt.length===0?r("Inbox message Emission response shape is invalid"):u(e)}function ge(e,t){let n=Object.keys(e).sort(),o=[...t].sort();return n.length===o.length&&n.every((i,a)=>i===o[a])}function It(e){return s(e)&&yt(e)}function yt(e){let n=new WeakSet,o=[{value:e}],i=0;for(;o.length>0;){let a=o.pop();if(a.exiting){n.delete(a.value);continue}let c=a.value;if(c===null||typeof c=="string"||typeof c=="boolean"||typeof c=="number"&&Number.isFinite(c))continue;if(typeof c!="object"||n.has(c)||(i+=1,i>1e5))return!1;let d=Array.isArray(c)?c:s(c)&&Et(c)?Object.values(c):void 0;if(d===void 0)return!1;n.add(c),o.push({value:c,exiting:!0});for(let l=d.length-1;l>=0;l-=1)o.push({value:d[l]})}return!0}function Et(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function kt(e){for(let t of Object.values(e))Object.freeze(t);return Object.freeze(e)}export{an as COMPLETE_EVENT_WAIT_ROUTE_SUBPATH,wt as CONTEXT_STATE_CLEANUP_ROUTE_PATH,mt as DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES,ti as DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES,ei as DEPLOYMENT_HANDSHAKE_ROUTE,hr as DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,Qr as DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Ar as EGRESS_GRANT_AUDIT_ROUTE_SUBPATH,Sr as EGRESS_GRANT_CONSUME_ROUTE_SUBPATH,Je as EGRESS_GRANT_SCOPE_KINDS,Ot as EXECUTION_CONTEXT_ROUTE_SUBPATH,Wt as EXECUTION_LEASE_INVALID,Bt as EXECUTION_LEASE_ROUTE_SUBPATH,Kt as EXECUTION_LEASE_SUPERSEDED,_o as FILE_ACCESS_ROUTE_SUBPATH,ko as FILE_COMPLETE_ROUTE_SUBPATH,ho as FILE_CONTENT_ROUTE_SUBPATH,xo as FILE_STAT_ROUTE_SUBPATH,Eo as FILE_UPLOAD_SESSION_ROUTE_SUBPATH,_r as FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH,sn as FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH,Pe as FLOW_RUN_EXECUTION_EVENT_TYPES,on as FLOW_RUN_RESULT_ROUTE_SUBPATH,Yr as FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Sn as HANDLER_BUNDLES_ROUTE_SUBPATH,ui as HANDSHAKE_CAPABILITY_MISSING,ii as HANDSHAKE_CONTRACT_VERSION_MISMATCH,si as HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH,ni as HANDSHAKE_REQUEST_INVALID,oi as HANDSHAKE_SECRET_MISMATCH,ri as HANDSHAKE_SECRET_UNCONFIGURED,Lo as HUMAN_INPUTS_ROUTE_SUBPATH,Ho as HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH,Vt as HUMAN_INPUT_CANCELLED_BY_RESET,Fo as HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH,ae as HUMAN_INPUT_PROMPT_BODY_MAX_CODE_POINTS,ue as HUMAN_INPUT_PROMPT_TITLE_MAX_CODE_POINTS,Bo as HUMAN_INPUT_REQUEST_ROUTE_SUBPATH,it as HUMAN_INPUT_RESOLVED_EVENT_PREFIX,yi as INBOX_MESSAGE_EMISSION_ROUTE_SUBPATH,ki as INBOX_MESSAGE_EXECUTION_ERROR_REGISTRY,z as INTERNAL_DISCOVERY_INVOCATIONS_ROUTE_PREFIX,oe as INTERNAL_EGRESS_GRANTS_ROUTE_PREFIX,A as INTERNAL_FILES_ROUTE_PREFIX,g as INTERNAL_FLOW_RUNS_ROUTE_PREFIX,Ce as INTERNAL_FLOW_VERSIONS_ROUTE_PREFIX,V as INTERNAL_INSTALLATIONS_ROUTE_PREFIX,C as INTERNAL_POLLING_TRIGGER_INSTANCES_ROUTE_PREFIX,Y as INTERNAL_TOOL_INVOCATIONS_ROUTE_PREFIX,N as INTERNAL_WEBHOOK_TRIGGER_INSTANCES_ROUTE_PREFIX,ur as POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH,wr as POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,ar as POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,Zr as POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,cr as POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH,un as REGISTER_EVENT_WAIT_ROUTE_SUBPATH,so as RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS,$t as RUN_DISPATCH_UNAVAILABLE,Re as SERVER_EXECUTION_CONTRACT_VERSION,rn as STEP_RESULT_ROUTE_SUBPATH,An as TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH,xr as TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,zr as TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,qt as WAIT_EXECUTION_SUPERSEDED,Xn as WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH,Yn as WEBHOOK_PROTOCOL_ADAPTER_MODULE,Fn as WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH,Mn as WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH,Tr as WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,Gn as WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH,Hn as WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,$n as WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH,eo as WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Yo as WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION,zo as WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION,Mt as WORKFLOW_RESTART_INSTANCE_UNAVAILABLE,Gt as WORKFLOW_RESTART_REJECTED,Ht as WORKFLOW_RESTART_REQUEST_INVALID,Ft as WORKFLOW_RESTART_ROUTE,jt as acquireExecutionLeasePath,fn as completeEventWaitPath,ai as deploymentHandshakeProbePayload,ci as deploymentHandshakeResponseProofPayload,Nr as discoveryInvocationEgressGrantPath,ro as discoveryInvocationRuntimeCredentialPath,Dr as egressGrantAuditPath,vr as egressGrantConsumePath,Ct as executionContextPath,Pr as flowRunEgressGrantPath,pn as flowRunExecutionEventsPath,dn as flowRunResultPath,to as flowRunRuntimeCredentialPath,zn as flowScriptProtocolAdapterModuleName,Pn as handlerBundlesPath,Go as humanInputAcknowledgePath,Mo as humanInputExpirePath,de as humanInputRequestPath,$o as humanInputResolvedEventType,ot as humanInputsPath,Ei as inboxMessageEmissionPath,Ao as internalFileAccessPath,So as internalFileCompletePath,bo as internalFileContentPath,Po as internalFileStatPath,To as internalFileUploadSessionPath,wo as internalFilesPath,T as isValidRequestDigest,Jt as parseAcquireExecutionLeaseData,Xt as parseAcquireExecutionLeaseRequest,_n as parseCompleteFlowRunWaitBody,hn as parseCompleteFlowRunWaitData,Tt as parseContextStateCleanupRequestBody,St as parseContextStateCleanupResponseData,x as parseContextStateScope,Vo as parseCreateHumanInputBody,Br as parseDiscoveryGrantBody,co as parseDiscoveryRuntimeCredentialBody,Gr as parseEgressGrantAuditBody,Mr as parseEgressGrantConsumeBody,Wr as parseEgressGrantConsumeData,$r as parseEgressGrantData,xi as parseEmitInboxMessageData,_i as parseEmitInboxMessageRequest,Z as parseExecutionAnchor,vt as parseExecutionContextData,E as parseExecutionLease,tt as parseFileMetadataData,M as parseFileRefData,W as parseFileRuntimeLimits,et as parseFileUploadSessionData,Ur as parseFlowActionGrantBody,En as parseFlowRunExecutionEventBody,yn as parseFlowRunExecutionEventData,Rn as parseFlowRunResultBody,In as parseFlowRunResultData,uo as parseFlowRuntimeCredentialBody,wn as parseFlowWaitResolvedEvent,De as parseHandlerBundle,Nn as parseHandlerBundlesData,Xo as parseHumanInputAcknowledgeData,jo as parseHumanInputCreateData,gt as parseHumanInputRequestViewData,Wo as parseHumanInputResolvedEvent,st as parseHumanInputResponse,Ko as parseHumanInputResponseForSpec,dt as parseHumanInputSpec,No as parseInternalFileAccessData,gr as parsePollingPublishBody,po as parsePollingRuntimeCredentialBody,Ge as parsePollingTriggerContext,fr as parsePollingTriggerDispatchData,Fr as parsePollingTriggerGrantBody,mr as parsePublishPollingTickEventsData,kn as parseRegisterFlowRunWaitBody,xn as parseRegisterFlowRunWaitData,qo as parseRenderedHumanInputPrompt,fo as parseRuntimeCredentialSessionCredential,F as parseRuntimeNetwork,li as parseServerExecutionErrorEnvelope,Lr as parseSingleToolGrantBody,ao as parseSingleToolRuntimeCredentialBody,gn as parseStepRecordBody,mn as parseStepRecordData,On as parseToolHandlerBundlesData,j as parseTriggerFileRuntimeDispatch,er as parseTriggerHandlerBundlesData,Fe as parseWebhookDelivery,Zn as parseWebhookDeliveryDispatchData,tr as parseWebhookPublishEventsBody,nr as parseWebhookRearmBody,lo as parseWebhookRuntimeCredentialBody,Hr as parseWebhookTriggerGrantBody,Qn as parseWebhookWatcherContext,Yt as parseWorkflowDispatchRestartRequest,zt as parseWorkflowDispatchRestartResponse,dr as pollingTriggerContextPath,Or as pollingTriggerEgressGrantPath,pr as pollingTriggerHandlerBundlesPath,oo as pollingTriggerRuntimeCredentialPath,lr as pollingTriggerTickEventsPath,ln as registerEventWaitPath,ze as requestHasMultipartFileParts,cn as stepResultPath,bn as toolHandlerBundlesPath,br as toolInvocationEgressGrantPath,no as toolInvocationRuntimeCredentialPath,Jn as webhookProtocolAdapterBundlePath,Wn as webhookTriggerContextPath,qn as webhookTriggerDeliveryPath,Cr as webhookTriggerEgressGrantPath,Vn as webhookTriggerEventsPath,Kn as webhookTriggerHandlerBundlesPath,jn as webhookTriggerRearmPath,io as webhookTriggerRuntimeCredentialPath,Qo as wfpUserRuntimeManifestPath};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ablehi/server-execution-contract",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Ablehi server to Cloudflare execution contract.",
5
5
  "license": "Apache-2.0",
6
6
  "publishConfig": {
@@ -24,8 +24,8 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@ablehi/error-contract": "0.0.2",
28
- "@ablehi/flow-contract": "0.3.0"
27
+ "@ablehi/error-contract": "0.0.3",
28
+ "@ablehi/flow-contract": "0.3.1"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@typescript-eslint/eslint-plugin": "^8.62.0",