@ablehi/server-execution-contract 0.1.10 → 0.3.0

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 { 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, EVENT_WAIT_ROUTE_SUBPATH, EXECUTION_CONTEXT_ROUTE_SUBPATH, EgressGrant, EgressGrantAuditBody, EgressGrantBodyParseResult, EgressGrantConsumeBody, EgressGrantCredentialMaterial, EgressGrantFileRuntime, EgressGrantScopeKind, ExecutionBinding, ExecutionBindingConnection, ExecutionContextCompiled, ExecutionContextData, 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, 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_EXPIRE_ROUTE_SUBPATH, HUMAN_INPUT_REQUEST_ROUTE_SUBPATH, HUMAN_INPUT_RESOLVED_EVENT_PREFIX, HandlerBundle, HandlerBundleModule, HandlerBundlesData, HandlerBundlesParseResult, HumanInputActor, HumanInputOutput, HumanInputRequestView, HumanInputResolvedEvent, HumanInputResponse, 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, 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, RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS, RegisterFlowRunWaitBody, RegisterFlowRunWaitData, RenderedFlowComposition, RenderedHumanInputPrompt, RuntimeCredentialSession, RuntimeCredentialSessionNetwork, RuntimeCredentialSessionScopeKind, RuntimeNetwork, RuntimeNetworkModel, SERVER_EXECUTION_CONTRACT_VERSION, STEP_RESULT_ROUTE_SUBPATH, ServerExecutionContractVersion, 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, 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, WebhookDelivery, WebhookDeliveryDispatchData, WebhookProtocolAdapterBundleData, WebhookProtocolAdapterModule, WebhookPublishEvent, WebhookPublishEventsBody, WebhookPublishEventsData, WebhookRearmBody, WebhookRearmData, WebhookRuntimeCredentialBody, WebhookTriggerGrantBody, WebhookTriggerVerificationMethod, WebhookWatcherContext, WfpUserRuntimeManifest, deploymentHandshakeProbePayload, deploymentHandshakeResponseProofPayload, discoveryInvocationEgressGrantPath, discoveryInvocationRuntimeCredentialPath, egressGrantAuditPath, egressGrantConsumePath, eventWaitPath, executionContextPath, flowRunEgressGrantPath, flowRunExecutionEventsPath, flowRunResultPath, flowRunRuntimeCredentialPath, flowScriptProtocolAdapterModuleName, handlerBundlesPath, humanInputAcknowledgePath, humanInputExpirePath, humanInputRequestPath, humanInputResolvedEventType, humanInputsPath, internalFileAccessPath, internalFileCompletePath, internalFileContentPath, internalFileStatPath, internalFileUploadSessionPath, internalFilesPath, isValidRequestDigest, parseCompleteFlowRunWaitBody, parseContextStateCleanupRequestBody, parseContextStateCleanupResponseData, parseContextStateScope, parseCreateHumanInputBody, parseDiscoveryGrantBody, parseDiscoveryRuntimeCredentialBody, parseEgressGrantAuditBody, parseEgressGrantConsumeBody, parseEgressGrantConsumeData, parseEgressGrantData, parseExecutionContextData, parseFileMetadataData, parseFileRefData, parseFileRuntimeLimits, parseFileUploadSessionData, parseFlowActionGrantBody, parseFlowRunExecutionEventBody, parseFlowRunExecutionEventData, parseFlowRunResultBody, parseFlowRunResultData, parseFlowRuntimeCredentialBody, parseHandlerBundle, parseHandlerBundlesData, parseHumanInputAcknowledgeData, parseHumanInputCreateData, parseHumanInputRequestViewData, parseInternalFileAccessData, parsePollingPublishBody, parsePollingRuntimeCredentialBody, parsePollingTriggerContext, parsePollingTriggerDispatchData, parsePollingTriggerGrantBody, parsePublishPollingTickEventsData, parseRegisterFlowRunWaitBody, parseRegisterFlowRunWaitData, parseRuntimeCredentialSessionCredential, parseRuntimeNetwork, parseSingleToolGrantBody, parseSingleToolRuntimeCredentialBody, parseStepRecordBody, parseStepRecordData, parseToolHandlerBundlesData, parseTriggerFileRuntimeDispatch, parseTriggerHandlerBundlesData, parseWebhookDelivery, parseWebhookDeliveryDispatchData, parseWebhookPublishEventsBody, parseWebhookRearmBody, parseWebhookRuntimeCredentialBody, parseWebhookTriggerGrantBody, parseWebhookWatcherContext, pollingTriggerContextPath, pollingTriggerEgressGrantPath, pollingTriggerHandlerBundlesPath, pollingTriggerRuntimeCredentialPath, pollingTriggerTickEventsPath, 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, 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';
2
2
  import '@ablehi/flow-contract';
3
3
  import '@ablehi/error-contract';
package/dist/edge.js CHANGED
@@ -1 +1 @@
1
- var re="0.2.11";function u(e){return{ok:!0,value:e}}function r(e){return{ok:!1,reason:e}}function i(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Ze="/cleanup-state-scopes";function k(e){if(!i(e)||typeof e.kind!="string")return r("context state scope surface shape is invalid");switch(e.kind){case"webhook-trigger":return oe(e);case"polling-trigger":return ie(e);case"flow-action":return se(e);default:return r("context state scope kind is invalid")}}function et(e){if(!i(e))return r("cleanup request body must be a JSON object");let t=N(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 s=k(o);if(!s.ok)return s;n.push(s.value)}return u({scopes:n})}function tt(e){return!i(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 oe(e){let t=N(e,["kind","workspaceId","triggerInstanceId"]);return t!==void 0?r(`webhook trigger scope does not accept "${t}"`):e.kind!=="webhook-trigger"||!R(e.workspaceId)||!R(e.triggerInstanceId)?r("webhook trigger state scope is invalid"):u({kind:"webhook-trigger",workspaceId:e.workspaceId,triggerInstanceId:e.triggerInstanceId})}function ie(e){let t=N(e,["kind","workspaceId","pollingInstanceId"]);return t!==void 0?r(`polling trigger scope does not accept "${t}"`):e.kind!=="polling-trigger"||!R(e.workspaceId)||!R(e.pollingInstanceId)?r("polling trigger state scope is invalid"):u({kind:"polling-trigger",workspaceId:e.workspaceId,pollingInstanceId:e.pollingInstanceId})}function se(e){let t=N(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"||!R(e.workspaceId)||!R(e.flowId)||!R(e.nodeId)||n!==null&&!R(n)?r("flow action state scope is invalid"):u({kind:"flow-action",workspaceId:e.workspaceId,flowId:e.flowId,nodeId:e.nodeId,connectionId:n})}function R(e){return typeof e=="string"&&e.length>0}function N(e,t){return Object.keys(e).find(n=>!t.includes(n))}var g="/internal/flow-runs",it="/:flowRunId/execution-context";function st(e){return`${g}/${encodeURIComponent(e)}/execution-context`}function F(e){return!i(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 ut(e){if(!i(e))return r("execution context must be a JSON object");let t=e.compiled;if(typeof e.flowRunId!="string"||typeof e.workspaceId!="string"||!i(e.input)||!i(t)||typeof t.irSchemaVersion!="string"||typeof t.interpreterContractVersion!="string"||typeof t.compiledArtifactId!="string"||!i(t.ir)||!Array.isArray(t.ir.nodes)||!ae(e.executionBindings))return r("execution context surface shape is invalid");let n=ue(e.fileRuntime);return n.ok?u({...e,fileRuntime:n.value}):r(n.reason)}function ue(e){if(e===null)return u(null);if(!i(e))return r("fileRuntime must be null or an object");let t=F(e.limits);return t.ok?u({limits:t.value}):r(t.reason)}function ae(e){return Array.isArray(e)?e.every(t=>{if(!i(t))return!1;let n=t.connection,o=k(t.stateScope);return typeof t.nodeId=="string"&&typeof t.toolRef=="string"&&i(t.toolDescriptor)&&i(t.integrationDescriptor)&&i(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}import{parseAblehiErrorDigest as H}from"@ablehi/error-contract";var pt="/:flowRunId/steps/:nodeId/result",ft="/:flowRunId/result",gt="/:flowRunId/execution-events",mt="/:flowRunId/event-waits/:nodeId";function Rt(e,t){return`${g}/${encodeURIComponent(e)}/steps/${encodeURIComponent(t)}/result`}function yt(e){return`${g}/${encodeURIComponent(e)}/result`}function kt(e){return`${g}/${encodeURIComponent(e)}/execution-events`}function It(e,t){return`${g}/${encodeURIComponent(e)}/event-waits/${encodeURIComponent(t)}`}function _t(e){if(!i(e))return{ok:!1,kind:"validation",reason:"step record body must be a JSON object"};let t=m(e,["attempt","result","durationMs"]);if(t!==void 0)return{ok:!1,kind:"validation",reason:`step record does not accept the "${t}" field`};let n=e.attempt;if(typeof n!="number"||!Number.isInteger(n)||n<=0)return{ok:!1,kind:"validation",reason:"attempt must be a positive integer"};let o=ce(e.result);if(!o.ok)return o;let s={attempt:n,result:o.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"};s.durationMs=c}return{ok:!0,value:s}}function ce(e){if(!i(e))return{ok:!1,kind:"step_result_invalid",reason:"result must be a JSON object"};let t=e.status;if(t==="succeeded"){let n=m(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=m(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=H(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=m(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=m(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=H(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 ht(e){return!i(e)||typeof e.flowRunId!="string"||typeof e.nodeId!="string"||!de(e.recorded)?r("step record data surface shape is invalid"):u({flowRunId:e.flowRunId,nodeId:e.nodeId,recorded:e.recorded})}function de(e){return e==="succeeded"||e==="failed"||e==="skipped"||e==="timed_out"}function Et(e){if(!i(e))return r("result body must be a JSON object");let t=m(e,["status","output","error","composition"]);if(t!==void 0)return r(`result does not accept the "${t}" field`);let n=e.status;if(n!=="succeeded"&&n!=="failed")return r('result status must be "succeeded" or "failed"');let o={status:n};if(e.output!==void 0){if(n!=="succeeded")return r("output is only allowed on a succeeded result");o.output=e.output}if(e.error!==void 0){if(n!=="failed")return r("error is only allowed on a failed result");let s=H(e.error);if(!s.ok)return r(`result error must be an AblehiErrorDigest: ${s.reason}`);o.error=s.value}if(n==="failed"&&o.error===void 0)return r("a failed result must carry an AblehiErrorDigest");if(e.composition!==void 0){if(n!=="succeeded")return r("composition is only allowed on a succeeded result");o.composition=e.composition}return u(o)}function xt(e){return i(e)?u(e):r("flow run result data must be a JSON object")}var le=["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 wt(e){if(!i(e))return r("execution event data must be a JSON object");let t=m(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 Tt(e){if(!i(e))return r("execution event body must be a JSON object");let t=m(e,["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.eventId;if(typeof n!="string"||n.length===0)return r("eventId must be a non-empty string");let o=e.eventType;if(!pe(o))return r("eventType is not a known flow execution event type");let s=e.occurredAt;if(typeof s!="string"||s.length===0)return r("occurredAt must be a non-empty string");let c={eventId:n,eventType:o,occurredAt:s};for(let a of["nodeId","stepRunId","errorId","payloadRef"]){let d=e[a];if(d!==void 0){if(typeof d!="string"||d.length===0)return r(`${a} must be a non-empty string`);c[a]=d}}for(let a of["attempt","durationMs"]){let d=e[a];if(d!==void 0){if(typeof d!="number"||!Number.isFinite(d)||!Number.isInteger(d)||d<0)return r(`${a} must be a non-negative integer`);c[a]=d}}if(e.inputFact!==void 0){if(o!=="step_started")return r("inputFact is only allowed on step_started events");if(c.attempt===void 0)return r("inputFact requires attempt");let a=fe(e.inputFact);if(!a.ok)return a;c.inputFact=a.value}return u(c)}function pe(e){return typeof e=="string"&&le.includes(e)}function fe(e){if(!i(e))return r("inputFact must be a JSON object");let t=m(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(!i(o))return r("inputFact.domain must be a JSON object");let s=m(o,["irSchemaVersion","interpreterContractVersion","compiledArtifactId","nodeId","algorithmVersion"]);return s!==void 0?r(`inputFact.domain does not accept the "${s}" 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 ge=/^[A-Za-z0-9_-]{1,100}$/;function Pt(e){if(!i(e))return r("register body must be a JSON object");let t=m(e,["eventType","correlationKey"]);if(t!==void 0)return r(`register wait does not accept the "${t}" field`);let n=j(e.eventType);if(!n.ok)return r(n.reason);let o=e.correlationKey;return typeof o!="string"||o.length===0?r("correlationKey must be a non-empty string"):u({eventType:n.value,correlationKey:o})}function vt(e){if(!i(e))return r("complete body must be a JSON object");let t=m(e,["eventType","correlationKey","outcome","eventId"]);if(t!==void 0)return r(`complete wait does not accept the "${t}" field`);let n=e.outcome;if(n!=="received"&&n!=="timed_out")return r('outcome must be "received" or "timed_out"');let o=j(e.eventType);if(!o.ok)return r(o.reason);let s=e.correlationKey;if(typeof s!="string"||s.length===0)return r("correlationKey must be a non-empty string");let c={eventType:o.value,correlationKey:s,outcome:n};if(e.eventId!==void 0){if(typeof e.eventId!="string"||e.eventId.length===0)return r("eventId must be a non-empty string");c.eventId=e.eventId}return u(c)}function St(e){return!i(e)||e.registered!==!0?r("register wait data surface shape is invalid"):u({registered:!0})}function j(e){return typeof e!="string"||e.length===0?r("eventType must be a non-empty string"):ge.test(e)?u(e):r("eventType must match ^[A-Za-z0-9_-]{1,100}$")}function m(e,t){return Object.keys(e).find(n=>!t.includes(n))}var me="/internal/flow-versions",Ct="/:flowVersionId/handler-bundles",G="/internal/installations",At="/:installationId/handler-bundles";function Nt(e,t){return`${me}/${encodeURIComponent(e)}/handler-bundles?compiledArtifactId=${encodeURIComponent(t)}`}function Ot(e){return`${G}/${encodeURIComponent(e.installationId)}/handler-bundles?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var Re=new Set(["managed_only","managed_plus_unmanaged_sdk"]);function O(e){if(!_(e))return $("runtimeNetwork must be a JSON object");let t=e.networkModel;return typeof t!="string"||!Re.has(t)?$("runtimeNetwork.networkModel is unknown"):!J(e.apiHosts)||!J(e.authHosts)||typeof e.httpsOnly!="boolean"?$("runtimeNetwork host/https fields are invalid"):{ok:!0,value:{networkModel:t,apiHosts:e.apiHosts,authHosts:e.authHosts,httpsOnly:e.httpsOnly}}}function Dt(e){if(!_(e)||typeof e.flowVersionId!="string"||typeof e.compiledArtifactId!="string"||!Array.isArray(e.bundles))return T("handler bundles data surface shape is invalid");let t=X(e.bundles);return t.ok?{ok:!0,value:{flowVersionId:e.flowVersionId,compiledArtifactId:e.compiledArtifactId,bundles:t.value}}:t}function Ut(e){if(!_(e)||typeof e.installationId!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.bundles))return T("tool handler bundles data surface shape is invalid");let t=X(e.bundles);return t.ok?{ok:!0,value:{installationId:e.installationId,artifactDigest:e.artifactDigest,bundles:t.value}}:t}function X(e){let t=[];for(let n of e){let o=ye(n);if(!o.ok)return o;t.push(o.value)}return{ok:!0,value:t}}function ye(e){if(!_(e)||typeof e.toolRef!="string"||e.kind!=="handler"&&e.kind!=="request")return T("handler bundle entry shape is invalid");if(e.kind==="request"){if(e.module!==void 0)return T("a request bundle must not carry a module");let o=O(e.runtimeNetwork);return o.ok?{ok:!0,value:{toolRef:e.toolRef,kind:"request",runtimeNetwork:o.value}}:o}let t=e.module;if(!_(t)||typeof t.entry!="string"||t.entry.length===0||!ke(t.files))return T("a handler bundle must carry a { entry, files } module");let n=O(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 T(e){return{ok:!1,kind:"shape",reason:e}}function $(e){return{ok:!1,kind:"runtime_network",reason:e}}function _(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function J(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function ke(e){return _(e)&&Object.values(e).every(t=>typeof t=="string")}var P="/internal/webhook-trigger-instances",Kt="/:triggerInstanceId/context",Lt="/:triggerInstanceId/handler-bundles",qt="/:triggerInstanceId/deliveries/:deliveryId",Wt="/:triggerInstanceId/events",Vt="/:triggerInstanceId/rearm",v=e=>`${P}/${encodeURIComponent(e)}`;function jt(e,t){return`${v(e)}/context?artifactDigest=${encodeURIComponent(t)}`}function Jt(e,t){return`${v(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function Xt(e,t){return`${v(e)}/deliveries/${encodeURIComponent(t)}`}function Yt(e){return`${v(e)}/events`}function zt(e){return`${v(e)}/rearm`}var Qt="/:installationId/webhook-protocol-adapter-bundle";function Zt(e){return`${G}/${encodeURIComponent(e.installationId)}/webhook-protocol-adapter-bundle?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var en="modules/webhook/protocol-adapter.js";function tn(e){return`modules/webhook/protocol-adapter-${e}.js`}function nn(e){let t=i(e)?k(e.stateScope):r("webhook watcher context state scope is invalid");return!i(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!i(e.inputs)||e.connection!==null&&!Ie(e.connection)||!_e(e.runtime)||!t.ok||t.value.kind!=="webhook-trigger"?r("webhook watcher context surface shape is invalid"):u(e)}function Ie(e){return i(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function _e(e){if(!i(e)||e.type!=="webhook"||typeof e.trigger_ref!="string")return!1;let t=e.webhook;return i(t)&&typeof t.event_handler_module=="string"&&typeof t.enable_handler_module=="string"&&typeof t.disable_handler_module=="string"}function he(e){if(!i(e)||typeof e.deliveryId!="string"||typeof e.receivedAt!="string"||!i(e.request))return r("webhook delivery surface shape is invalid");let t=e.request;return t.method!=="POST"||!i(t.headers)||typeof t.rawBody!="string"?r("webhook delivery request shape is invalid"):u(e)}function M(e){if(!i(e)||typeof e.token!="string"||typeof e.expiresAt!="string")return r("trigger file runtime dispatch shape is invalid");let t=F(e.limits);return t.ok?u({token:e.token,expiresAt:e.expiresAt,limits:t.value}):r(t.reason)}function rn(e){if(!i(e))return r("webhook delivery dispatch data is invalid");let t=he(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=M(n);return o.ok?u({delivery:t.value,fileRuntime:o.value}):r(o.reason)}function on(e){if(!i(e)||typeof e.triggerRef!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.modules)||!e.modules.every(Ee))return{ok:!1,kind:"shape",reason:"trigger handler bundles data surface shape is invalid"};let t=O(e.runtimeNetwork);return t.ok?{ok:!0,value:{triggerRef:e.triggerRef,artifactDigest:e.artifactDigest,modules:e.modules,runtimeNetwork:t.value}}:t}function Ee(e){return i(e)&&typeof e.specifier=="string"&&e.specifier.length>0&&typeof e.source=="string"}function sn(e){if(!i(e))return r("publish events body must be a JSON object");let t=K(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 s=[];for(let c of o){let a=xe(c);if(!a.ok)return a;s.push(a.value)}return u({deliveryId:n,events:s})}function xe(e){if(!i(e))return r("each event must be a JSON object");let t=K(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(!i(e.payload))return r("event payload must be a JSON object");let s={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");s.dedupeKey=e.dedupeKey}return u(s)}function un(e){if(!i(e))return r("rearm body must be a JSON object");let t=K(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 K(e,t){return Object.keys(e).find(n=>!t.includes(n))}var S="/internal/polling-trigger-instances",pn="/:pollingInstanceId/context",fn="/:pollingInstanceId/handler-bundles",gn="/:pollingInstanceId/ticks/:tickId/events",L=e=>`${S}/${encodeURIComponent(e)}`;function mn(e,t,n){return`${L(e)}/context?artifactDigest=${encodeURIComponent(t)}&tickId=${encodeURIComponent(n)}`}function Rn(e,t){return`${L(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function yn(e,t){return`${L(e)}/ticks/${encodeURIComponent(t)}/events`}function we(e){let t=i(e)?k(e.stateScope):r("polling trigger context state scope is invalid");return!i(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!i(e.inputs)||e.connection!==null&&!Te(e.connection)||!Pe(e.runtime)||!t.ok||t.value.kind!=="polling-trigger"||!Se(e.tick)||!be(e.limits)?r("polling trigger context surface shape is invalid"):u(e)}function kn(e){if(!i(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=M(n);return o.ok?u({context:t.value,fileRuntime:o.value}):r(o.reason)}function Te(e){return i(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function Pe(e){if(!i(e)||e.type!=="polling"||typeof e.trigger_id!="string"||typeof e.trigger_ref!="string"||!ve(e.file_outputs))return!1;let t=e.polling;if(!i(t)||typeof t.run_handler_module!="string")return!1;let n=t.schedule;if(!i(n)||n.type!=="interval"||typeof n.every_seconds!="number")return!1;let o=t.dedup;return i(o)&&(o.strategy==="cursor"||o.strategy==="hash"||o.strategy==="id_field")}function ve(e){return e===void 0?!0:Array.isArray(e)&&e.length>0&&e.every(t=>i(t)&&typeof t.field=="string"&&t.field.length>0)}function Se(e){return i(e)&&typeof e.tickId=="string"&&typeof e.scheduledAt=="string"&&typeof e.attempt=="number"}function be(e){return i(e)&&typeof e.maxEventsPerTick=="number"}function In(e){if(!i(e))return r("publish body must be a JSON object");let t=Y(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 c of n){let a=Ce(c);if(!a.ok)return a;o.push(a.value)}let s={events:o};if("nextCursor"in e){let c=e.nextCursor;if(c!==null&&typeof c!="string")return r("nextCursor must be a string, null, or omitted");s.nextCursor=c}return u(s)}function Ce(e){if(!i(e))return r("each event must be a JSON object");let t=Y(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(!i(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 _n(e){return!i(e)||typeof e.tickId!="string"||typeof e.cursorUpdated!="boolean"||!Array.isArray(e.results)||!e.results.every(Ae)?r("publish polling tick events data surface shape is invalid"):u(e)}function Ae(e){return i(e)&&typeof e.eventId=="string"&&typeof e.dedupeKey=="string"&&typeof e.duplicate=="boolean"&&(e.flowRunId===null||typeof e.flowRunId=="string")}function Y(e,t){return Object.keys(e).find(n=>!t.includes(n))}var z="/internal/egress-grants",q="/internal/tool-invocations",W="/internal/discovery-invocations",Pn="/:flowRunId/egress-grant",vn="/:invocationId/egress-grant",Sn="/:discoveryInvocationId/egress-grant",bn="/:pollingInstanceId/egress-grant",Cn="/:triggerInstanceId/egress-grant",An="/:grantId/consume",Nn="/:grantId/audit",On=e=>`${g}/${encodeURIComponent(e)}/egress-grant`,Dn=e=>`${q}/${encodeURIComponent(e)}/egress-grant`,Un=e=>`${W}/${encodeURIComponent(e)}/egress-grant`,Bn=e=>`${S}/${encodeURIComponent(e)}/egress-grant`,Fn=e=>`${P}/${encodeURIComponent(e)}/egress-grant`,Hn=e=>`${z}/${encodeURIComponent(e)}/consume`,$n=e=>`${z}/${encodeURIComponent(e)}/audit`,Ne=["flow_action","single_tool","discovery","polling_trigger","webhook_trigger"],Oe=/^[A-Za-z0-9][A-Za-z0-9:_+/=.-]{15,1023}$/;function h(e){return typeof e=="string"&&Oe.test(e)}function De(e){if(!i(e)||e.body_type!=="multipart")return!1;let t=e.body;if(!i(t))return!1;let n=t.parts;return Array.isArray(n)?n.some(o=>i(o)?o.kind==="file"&&typeof o.file_id=="string"&&o.file_id.length>0:!1):!1}function l(e){return{ok:!1,kind:"shape",reason:e}}function E(){return{ok:!1,kind:"request_digest",reason:"request digest is missing or malformed"}}function b(e,t){if(!i(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 C(e){if(!i(e))return"request must be a JSON object"}function Gn(e){let t=b(e,["nodeId","request","requestDigest"]);if(!t.ok)return l(t.reason);let n=t.record.nodeId;if(typeof n!="string"||n.length===0)return l("nodeId is required");let o=C(t.record.request);if(o!==void 0)return l(o);let s=t.record.requestDigest;return h(s)?{ok:!0,value:{nodeId:n,requestDigest:s,requestHasMultipartFiles:De(t.record.request)}}:E()}function Mn(e){let t=b(e,["request","requestDigest"]);if(!t.ok)return l(t.reason);let n=C(t.record.request);if(n!==void 0)return l(n);let o=t.record.requestDigest;return h(o)?{ok:!0,value:{requestDigest:o}}:E()}function Kn(e){let t=b(e,["request","requestDigest"]);if(!t.ok)return l(t.reason);let n=C(t.record.request);if(n!==void 0)return l(n);let o=t.record.requestDigest;return h(o)?{ok:!0,value:{requestDigest:o}}:E()}function Ln(e){let t=b(e,["tickId","request","requestDigest"]);if(!t.ok)return l(t.reason);let n=t.record.tickId;if(typeof n!="string"||n.length===0)return l("tickId is required");let o=C(t.record.request);if(o!==void 0)return l(o);let s=t.record.requestDigest;return h(s)?{ok:!0,value:{tickId:n,requestDigest:s}}:E()}function qn(e){let t=b(e,["phase","lifecycle","deliveryId","request","requestDigest"]);if(!t.ok)return l(t.reason);let n=t.record.phase;if(n!=="lifecycle"&&n!=="handler")return l('phase must be "lifecycle" or "handler"');let o=t.record.lifecycle,s;if(o!==void 0){if(o!=="enable"&&o!=="disable"&&o!=="renew")return l('lifecycle must be "enable", "disable", or "renew"');s=o}if(n==="lifecycle"&&s===void 0)return l("lifecycle is required for the lifecycle phase");let c=t.record.deliveryId,a;if(c!==void 0){if(typeof c!="string"||c.length===0)return l("deliveryId must be a non-empty string");a=c}if(n==="handler"&&a===void 0)return l("deliveryId is required for the handler phase");let d=C(t.record.request);if(d!==void 0)return l(d);let I=t.record.requestDigest;return h(I)?{ok:!0,value:{phase:n,...s!==void 0?{lifecycle:s}:{},...a!==void 0?{deliveryId:a}:{},requestDigest:I}}:E()}function Q(e){return Ne.includes(e)?e:void 0}var Ue=["scopeKind","scopeId","requestDigest"];function Wn(e){if(!i(e))return l("consume body must be a JSON object");for(let s of Object.keys(e))if(!Ue.includes(s))return l(`consume does not accept the "${s}" field`);let t=Q(e.scopeKind);if(t===void 0)return l("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return l("scopeId is required");let o=e.requestDigest;return h(o)?{ok:!0,value:{scopeKind:t,scopeId:n,requestDigest:o}}:E()}var Be=["scopeKind","scopeId","providerHost","status","durationMs","requestBytes","responseBytes","errorCode"];function D(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 Vn(e){if(!i(e))return l("audit body must be a JSON object");for(let p of Object.keys(e))if(!Be.includes(p))return l(`audit does not accept the "${p}" field`);let t=Q(e.scopeKind);if(t===void 0)return l("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return l("scopeId is required");let o=e.providerHost;if(typeof o!="string"||o.length===0)return l("providerHost is required");let s=D(e.durationMs,"durationMs");if(!s.ok)return l(s.reason);let c;if(e.status!==void 0){let p=D(e.status,"status");if(!p.ok)return l(p.reason);c=p.value}let a;if(e.requestBytes!==void 0){let p=D(e.requestBytes,"requestBytes");if(!p.ok)return l(p.reason);a=p.value}let d;if(e.responseBytes!==void 0){let p=D(e.responseBytes,"responseBytes");if(!p.ok)return l(p.reason);d=p.value}let I;if(e.errorCode!==void 0){let p=e.errorCode;if(typeof p!="string"||p.length===0)return l("errorCode must be a non-empty string");I=p}return{ok:!0,value:{scopeKind:t,scopeId:n,providerHost:o,...c!==void 0?{status:c}:{},durationMs:s.value,...a!==void 0?{requestBytes:a}:{},...d!==void 0?{responseBytes:d}:{},...I!==void 0?{errorCode:I}:{}}}}function jn(e){return!i(e)||!i(e.grant)?r("egress grant envelope must carry a grant object"):u(e.grant)}function Jn(e){return!i(e)||e.consumed!==!0?r("egress grant consume data must carry consumed:true"):u({consumed:!0})}var tr="/:flowRunId/runtime-credential",nr="/:invocationId/runtime-credential",rr="/:discoveryInvocationId/runtime-credential",or="/:pollingInstanceId/runtime-credential",ir="/:triggerInstanceId/runtime-credential",sr=e=>`${g}/${encodeURIComponent(e)}/runtime-credential`,ur=e=>`${q}/${encodeURIComponent(e)}/runtime-credential`,ar=e=>`${W}/${encodeURIComponent(e)}/runtime-credential`,cr=e=>`${S}/${encodeURIComponent(e)}/runtime-credential`,dr=e=>`${P}/${encodeURIComponent(e)}/runtime-credential`,lr=["flow_action","tool_invoke","discovery","polling_trigger","webhook_trigger"];function A(e,t){if(!i(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 pr(e){let t=A(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 fr(e){let t=A(e??{},[]);return t.ok?u(null):r(t.reason)}function gr(e){let t=A(e??{},[]);return t.ok?u(null):r(t.reason)}function mr(e){let t=A(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 Rr(e){let t=A(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,s=t.record.deliveryId;if(s!==void 0){if(typeof s!="string"||s.length===0)return r("deliveryId must be a non-empty string");o=s}let c,a=t.record.lifecycleOperation;if(a!==void 0){if(a!=="enable"&&a!=="disable"&&a!=="renew")return r('lifecycleOperation must be "enable", "disable", or "renew"');c=a}return n==="lifecycle"&&c===void 0?r("lifecycleOperation is required for the lifecycle execution kind"):u({executionKind:n,...o!==void 0?{deliveryId:o}:{},...c!==void 0?{lifecycleOperation:c}:{}})}function yr(e){return!i(e)||typeof e.sessionId!="string"||typeof e.connectionId!="string"||typeof e.authProfileRef!="string"||typeof e.authType!="string"||!i(e.credential)?r("runtime credential session must carry sessionId, connectionId, auth profile facts and a credential object"):u(e.credential)}function U(e){return!i(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 V(e){return!i(e)||e.method!=="GET"&&e.method!=="PUT"||typeof e.url!="string"||typeof e.expires_at!="string"||!$e(e.headers)?r("presigned file URL data is invalid"):u(e)}function Fe(e){if(!i(e))return r("file upload session data is invalid");let t=U(e.file);if(!t.ok)return r(t.reason);let n=V(e.upload);return n.ok?u({file:t.value,upload:n.value}):r(n.reason)}function He(e){if(!i(e))return r("file metadata data is invalid");let t=U(e.file);return t.ok?u({file:t.value}):r(t.reason)}function $e(e){return i(e)?Object.values(e).every(t=>typeof t=="string"):!1}var x="/internal/files",xr="/upload-session",wr="/:fileId/complete",Tr="/:fileId/access",Pr="/:fileId/stat",vr="/:fileId/content",Sr=()=>x,br=()=>`${x}/upload-session`,Cr=e=>`${x}/${encodeURIComponent(e)}/complete`,Ar=(e,t)=>`${x}/${encodeURIComponent(e)}/access?intent=${encodeURIComponent(t)}`,Z=e=>`?scope_kind=${encodeURIComponent(e.scopeKind)}&scope_id=${encodeURIComponent(e.scopeId)}`,Nr=(e,t)=>`${x}/${encodeURIComponent(e)}/stat${Z(t)}`,Or=(e,t)=>`${x}/${encodeURIComponent(e)}/content${Z(t)}`;function Dr(e){if(!i(e))return r("internal file access data is invalid");if(e.intent==="runtime_read"||e.intent==="provider_multipart"){let t=U(e.file);if(!t.ok)return r(t.reason);let n=V(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")}var Hr="/:flowRunId/human-inputs",$r="/:flowRunId/human-inputs/:requestId",Gr="/:flowRunId/human-inputs/:requestId/expire",Mr="/:flowRunId/human-inputs/:requestId/acknowledge",Ge=e=>`${g}/${encodeURIComponent(e)}/human-inputs`,ee=(e,t)=>`${Ge(e)}/${encodeURIComponent(t)}`,Kr=(e,t)=>`${ee(e,t)}/expire`,Lr=(e,t)=>`${ee(e,t)}/acknowledge`,Me="human_input_resolved";function qr(e){return`${Me}_${e}`}function f(e){return{ok:!1,reason:e}}function y(e,t){return i(e)?{ok:!0,value:e}:f(`${t} must be an object`)}function w(e,t){return typeof e!="string"||e.length===0?f(`${t} must be a non-empty string`):{ok:!0,value:e}}var Ke=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/;function Le(e,t){return typeof e!="string"||!Ke.test(e)||Number.isNaN(Date.parse(e))?f(`${t} must be an ISO-8601 timestamp`):{ok:!0,value:e}}function qe(e){let t=y(e,"renderedPrompt");if(!t.ok)return t;let n=w(t.value.title,"renderedPrompt.title");if(!n.ok)return n;let o={title:n.value};if(t.value.body!==void 0){if(typeof t.value.body!="string")return f("renderedPrompt.body must be a string");o.body=t.value.body}if(t.value.format!==void 0){if(t.value.format!=="plain"&&t.value.format!=="markdown")return f("renderedPrompt.format is invalid");o.format=t.value.format}return{ok:!0,value:o}}function We(e){let t=y(e,"input");if(!t.ok)return t;let n=t.value.kind;if(n==="choice"){if(!Array.isArray(t.value.choices))return f("input.choices must be an array")}else if(n!=="text")if(n==="form"){if(!Array.isArray(t.value.fields))return f("input.fields must be an array")}else return f("input.kind is invalid");return{ok:!0,value:t.value}}function Ve(e){if(e==null)return{ok:!0,value:void 0};let t=y(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 f("partiallyRenderedDelivery.actions must be an array");let o=[];for(let s of n){let c=y(s,"delivery action");if(!c.ok)return c;let a=w(c.value.id,"delivery action id");if(!a.ok)return a;let d=te(c.value.inputs,`delivery action '${a.value}' inputs`);if(!d.ok)return d;o.push({id:a.value,inputs:d.value})}return{ok:!0,value:{actions:o}}}function te(e,t){let n=y(e,t);if(!n.ok)return n;let o={};for(let[s,c]of Object.entries(n.value)){let a=ne(c,`${t}.${s}`);if(!a.ok)return a;o[s]=a.value}return{ok:!0,value:o}}function ne(e,t){let n=y(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 s=w(n.value.path,`${t}.path`);return s.ok?{ok:!0,value:{kind:"human_input_ref",path:s.value}}:s}case"array":{if(!Array.isArray(n.value.items))return f(`${t}.items must be an array`);let s=[];for(let[c,a]of n.value.items.entries()){let d=ne(a,`${t}[${c}]`);if(!d.ok)return d;s.push(d.value)}return{ok:!0,value:{kind:"array",items:s}}}case"object":{let s=te(n.value.entries,`${t}.entries`);return s.ok?{ok:!0,value:{kind:"object",entries:s.value}}:s}case"template":{if(!Array.isArray(n.value.parts))return f(`${t}.parts must be an array`);let s=[];for(let[c,a]of n.value.parts.entries()){let d=je(a,`${t}.parts[${c}]`);if(!d.ok)return d;s.push(d.value)}return{ok:!0,value:{kind:"template",parts:s}}}default:return f(`${t}.kind is invalid`)}}function je(e,t){let n=y(e,t);if(!n.ok)return n;let o=n.value.kind;if(o==="literal")return typeof n.value.value!="string"?f(`${t}.value must be a string`):{ok:!0,value:{kind:"literal",value:n.value.value}};if(o==="human_input_ref"){let s=w(n.value.path,`${t}.path`);return s.ok?{ok:!0,value:{kind:"human_input_ref",path:s.value}}:s}return f(`${t}.kind is invalid`)}function Wr(e){let t=y(e,"request body");if(!t.ok)return r(t.reason);let n=w(t.value.nodeId,"nodeId");if(!n.ok)return r(n.reason);let o=qe(t.value.renderedPrompt);if(!o.ok)return r(o.reason);let s=We(t.value.input);if(!s.ok)return r(s.reason);let c=w(t.value.timeout,"timeout");if(!c.ok)return r(c.reason);let a=Le(t.value.expiresAt,"expiresAt");if(!a.ok)return r(a.reason);let d=Ve(t.value.partiallyRenderedDelivery);return d.ok?u({nodeId:n.value,renderedPrompt:o.value,input:s.value,timeout:c.value,expiresAt:a.value,...d.value!==void 0?{partiallyRenderedDelivery:d.value}:{}}):r(d.reason)}function Je(e){return!i(e)||typeof e.id!="string"||e.id.length===0||typeof e.nodeId!="string"||typeof e.status!="string"||!(e.output===null||i(e.output))?r("human input request view must carry id, nodeId, status and output"):u(e)}function Vr(e){if(!i(e)||typeof e.created!="boolean")return r("human input create data must carry created:boolean");let t=Je(e.request);return t.ok?u({created:e.created,request:t.value}):t}function jr(e){return!i(e)||e.acknowledged!==!0?r("human input acknowledge data must carry acknowledged:true"):u({acknowledged:!0})}var Xr="ablehi-wfp-user-runtime-manifest/v1",Yr="unknown";function zr(e){return e.endsWith(".js")?`${e.slice(0,-3)}.manifest.json`:`${e}.manifest.json`}var Zr="/internal/deployment-handshake",Xe=["start","terminate","send-event","start-webhook-watcher","run-polling-tick","invoke-tool","invoke-discovery","invoke-trigger-handler","invoke-webhook-protocol-adapter","deployment-handshake"],eo=Xe,to="HANDSHAKE_REQUEST_INVALID",no="HANDSHAKE_SECRET_UNCONFIGURED",ro="HANDSHAKE_SECRET_MISMATCH",oo="HANDSHAKE_CONTRACT_VERSION_MISMATCH",io="HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH",so="HANDSHAKE_CAPABILITY_MISSING";function uo(e){return[e.nonce,e.timestamp,e.contractVersion,e.dispatchNamespace].map(n=>`${n.length}:${n}`).join(".")}function ao(e){return["response",e.nonce,e.contractVersion,e.dispatchNamespace,...e.capabilities].map(n=>`${n.length}:${n}`).join(".")}export{Ze as CONTEXT_STATE_CLEANUP_ROUTE_PATH,Xe as DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES,eo as DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES,Zr as DEPLOYMENT_HANDSHAKE_ROUTE,Sn as DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,rr as DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Nn as EGRESS_GRANT_AUDIT_ROUTE_SUBPATH,An as EGRESS_GRANT_CONSUME_ROUTE_SUBPATH,Ne as EGRESS_GRANT_SCOPE_KINDS,mt as EVENT_WAIT_ROUTE_SUBPATH,it as EXECUTION_CONTEXT_ROUTE_SUBPATH,Tr as FILE_ACCESS_ROUTE_SUBPATH,wr as FILE_COMPLETE_ROUTE_SUBPATH,vr as FILE_CONTENT_ROUTE_SUBPATH,Pr as FILE_STAT_ROUTE_SUBPATH,xr as FILE_UPLOAD_SESSION_ROUTE_SUBPATH,Pn as FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH,gt as FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH,le as FLOW_RUN_EXECUTION_EVENT_TYPES,ft as FLOW_RUN_RESULT_ROUTE_SUBPATH,tr as FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Ct as HANDLER_BUNDLES_ROUTE_SUBPATH,so as HANDSHAKE_CAPABILITY_MISSING,oo as HANDSHAKE_CONTRACT_VERSION_MISMATCH,io as HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH,to as HANDSHAKE_REQUEST_INVALID,ro as HANDSHAKE_SECRET_MISMATCH,no as HANDSHAKE_SECRET_UNCONFIGURED,Hr as HUMAN_INPUTS_ROUTE_SUBPATH,Mr as HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH,Gr as HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH,$r as HUMAN_INPUT_REQUEST_ROUTE_SUBPATH,Me as HUMAN_INPUT_RESOLVED_EVENT_PREFIX,W as INTERNAL_DISCOVERY_INVOCATIONS_ROUTE_PREFIX,z as INTERNAL_EGRESS_GRANTS_ROUTE_PREFIX,x as INTERNAL_FILES_ROUTE_PREFIX,g as INTERNAL_FLOW_RUNS_ROUTE_PREFIX,me as INTERNAL_FLOW_VERSIONS_ROUTE_PREFIX,G as INTERNAL_INSTALLATIONS_ROUTE_PREFIX,S as INTERNAL_POLLING_TRIGGER_INSTANCES_ROUTE_PREFIX,q as INTERNAL_TOOL_INVOCATIONS_ROUTE_PREFIX,P as INTERNAL_WEBHOOK_TRIGGER_INSTANCES_ROUTE_PREFIX,pn as POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH,bn as POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,fn as POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,or as POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,gn as POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH,lr as RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS,re as SERVER_EXECUTION_CONTRACT_VERSION,pt as STEP_RESULT_ROUTE_SUBPATH,At as TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH,vn as TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,nr as TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Qt as WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH,en as WEBHOOK_PROTOCOL_ADAPTER_MODULE,Kt as WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH,qt as WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH,Cn as WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,Wt as WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH,Lt as WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,Vt as WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH,ir as WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Xr as WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION,Yr as WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION,uo as deploymentHandshakeProbePayload,ao as deploymentHandshakeResponseProofPayload,Un as discoveryInvocationEgressGrantPath,ar as discoveryInvocationRuntimeCredentialPath,$n as egressGrantAuditPath,Hn as egressGrantConsumePath,It as eventWaitPath,st as executionContextPath,On as flowRunEgressGrantPath,kt as flowRunExecutionEventsPath,yt as flowRunResultPath,sr as flowRunRuntimeCredentialPath,tn as flowScriptProtocolAdapterModuleName,Nt as handlerBundlesPath,Lr as humanInputAcknowledgePath,Kr as humanInputExpirePath,ee as humanInputRequestPath,qr as humanInputResolvedEventType,Ge as humanInputsPath,Ar as internalFileAccessPath,Cr as internalFileCompletePath,Or as internalFileContentPath,Nr as internalFileStatPath,br as internalFileUploadSessionPath,Sr as internalFilesPath,h as isValidRequestDigest,vt as parseCompleteFlowRunWaitBody,et as parseContextStateCleanupRequestBody,tt as parseContextStateCleanupResponseData,k as parseContextStateScope,Wr as parseCreateHumanInputBody,Kn as parseDiscoveryGrantBody,gr as parseDiscoveryRuntimeCredentialBody,Vn as parseEgressGrantAuditBody,Wn as parseEgressGrantConsumeBody,Jn as parseEgressGrantConsumeData,jn as parseEgressGrantData,ut as parseExecutionContextData,He as parseFileMetadataData,U as parseFileRefData,F as parseFileRuntimeLimits,Fe as parseFileUploadSessionData,Gn as parseFlowActionGrantBody,Tt as parseFlowRunExecutionEventBody,wt as parseFlowRunExecutionEventData,Et as parseFlowRunResultBody,xt as parseFlowRunResultData,pr as parseFlowRuntimeCredentialBody,ye as parseHandlerBundle,Dt as parseHandlerBundlesData,jr as parseHumanInputAcknowledgeData,Vr as parseHumanInputCreateData,Je as parseHumanInputRequestViewData,Dr as parseInternalFileAccessData,In as parsePollingPublishBody,mr as parsePollingRuntimeCredentialBody,we as parsePollingTriggerContext,kn as parsePollingTriggerDispatchData,Ln as parsePollingTriggerGrantBody,_n as parsePublishPollingTickEventsData,Pt as parseRegisterFlowRunWaitBody,St as parseRegisterFlowRunWaitData,yr as parseRuntimeCredentialSessionCredential,O as parseRuntimeNetwork,Mn as parseSingleToolGrantBody,fr as parseSingleToolRuntimeCredentialBody,_t as parseStepRecordBody,ht as parseStepRecordData,Ut as parseToolHandlerBundlesData,M as parseTriggerFileRuntimeDispatch,on as parseTriggerHandlerBundlesData,he as parseWebhookDelivery,rn as parseWebhookDeliveryDispatchData,sn as parseWebhookPublishEventsBody,un as parseWebhookRearmBody,Rr as parseWebhookRuntimeCredentialBody,qn as parseWebhookTriggerGrantBody,nn as parseWebhookWatcherContext,mn as pollingTriggerContextPath,Bn as pollingTriggerEgressGrantPath,Rn as pollingTriggerHandlerBundlesPath,cr as pollingTriggerRuntimeCredentialPath,yn as pollingTriggerTickEventsPath,De as requestHasMultipartFileParts,Rt as stepResultPath,Ot as toolHandlerBundlesPath,Dn as toolInvocationEgressGrantPath,ur as toolInvocationRuntimeCredentialPath,Zt as webhookProtocolAdapterBundlePath,jt as webhookTriggerContextPath,Xt as webhookTriggerDeliveryPath,Fn as webhookTriggerEgressGrantPath,Yt as webhookTriggerEventsPath,Jt as webhookTriggerHandlerBundlesPath,zt as webhookTriggerRearmPath,dr as webhookTriggerRuntimeCredentialPath,zr as wfpUserRuntimeManifestPath};
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};
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { PublishedFlowDefinition, RuntimeHumanInputSpec } from '@ablehi/flow-contract';
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.2.11";
4
+ declare const SERVER_EXECUTION_CONTRACT_VERSION = "0.4.0";
5
5
  type ServerExecutionContractVersion = typeof SERVER_EXECUTION_CONTRACT_VERSION;
6
6
 
7
7
  type ContractParseResult<T> = {
@@ -38,6 +38,80 @@ declare function parseContextStateScope(value: unknown): ContractParseResult<Con
38
38
  declare function parseContextStateCleanupRequestBody(body: unknown): ContractParseResult<ContextStateCleanupRequestBody>;
39
39
  declare function parseContextStateCleanupResponseData(data: unknown): ContractParseResult<ContextStateCleanupResponseData>;
40
40
 
41
+ declare const EXECUTION_LEASE_ROUTE_SUBPATH = "/:flowRunId/execution-leases";
42
+ declare const WORKFLOW_RESTART_ROUTE = "/restart";
43
+ declare const WORKFLOW_RESTART_REQUEST_INVALID = "WORKFLOW_RESTART_REQUEST_INVALID";
44
+ declare const WORKFLOW_RESTART_INSTANCE_UNAVAILABLE = "WORKFLOW_RESTART_INSTANCE_UNAVAILABLE";
45
+ declare const WORKFLOW_RESTART_REJECTED = "WORKFLOW_RESTART_REJECTED";
46
+ declare const RUN_DISPATCH_UNAVAILABLE = "RUN_DISPATCH_UNAVAILABLE";
47
+ type WorkflowRestartErrorCode = typeof WORKFLOW_RESTART_REQUEST_INVALID | typeof WORKFLOW_RESTART_INSTANCE_UNAVAILABLE | typeof WORKFLOW_RESTART_REJECTED;
48
+ declare const EXECUTION_LEASE_INVALID = "EXECUTION_LEASE_INVALID";
49
+ declare const EXECUTION_LEASE_SUPERSEDED = "EXECUTION_LEASE_SUPERSEDED";
50
+ declare const WAIT_EXECUTION_SUPERSEDED = "WAIT_EXECUTION_SUPERSEDED";
51
+ declare const HUMAN_INPUT_CANCELLED_BY_RESET = "HUMAN_INPUT_CANCELLED_BY_RESET";
52
+ type GenerationCallbackErrorCode = typeof EXECUTION_LEASE_INVALID | typeof EXECUTION_LEASE_SUPERSEDED | typeof WAIT_EXECUTION_SUPERSEDED | typeof HUMAN_INPUT_CANCELLED_BY_RESET;
53
+ declare function acquireExecutionLeasePath(flowRunId: string): string;
54
+ type FlowExecutionScope = {
55
+ kind: "standalone";
56
+ } | {
57
+ kind: "automation_app";
58
+ productRunId: string;
59
+ };
60
+ type ExecutionAnchor = {
61
+ kind: "node";
62
+ nodeId: string;
63
+ } | {
64
+ kind: "terminal";
65
+ };
66
+ type ExecutionLease = {
67
+ productRunId: string;
68
+ flowRunId: string;
69
+ generationId: string;
70
+ generationNumber: number;
71
+ anchor: ExecutionAnchor;
72
+ leaseId: string;
73
+ };
74
+ type ExecutionWriteScope = {
75
+ kind: "standalone";
76
+ } | {
77
+ kind: "automation_app";
78
+ lease: ExecutionLease;
79
+ };
80
+ type AcquireExecutionLeaseRequest = {
81
+ anchor: ExecutionAnchor;
82
+ };
83
+ type AcquireExecutionLeaseData = {
84
+ executionScope: ExecutionWriteScope;
85
+ };
86
+ type WorkflowDispatchRestartRequest = {
87
+ instanceId: string;
88
+ flowRunId: string;
89
+ commandId: string;
90
+ generationId: string;
91
+ from: {
92
+ name: `generation:${string}`;
93
+ count: 1;
94
+ type: "do";
95
+ };
96
+ };
97
+ type WorkflowDispatchRestartResponse = {
98
+ ok: true;
99
+ data: {
100
+ accepted: true;
101
+ instanceId: string;
102
+ commandId: string;
103
+ generationId: string;
104
+ };
105
+ };
106
+ declare function parseFlowExecutionScope(value: unknown): ContractParseResult<FlowExecutionScope>;
107
+ declare function parseExecutionAnchor(value: unknown): ContractParseResult<ExecutionAnchor>;
108
+ declare function parseExecutionLease(value: unknown): ContractParseResult<ExecutionLease>;
109
+ declare function parseExecutionWriteScope(value: unknown): ContractParseResult<ExecutionWriteScope>;
110
+ declare function parseAcquireExecutionLeaseRequest(value: unknown): ContractParseResult<AcquireExecutionLeaseRequest>;
111
+ declare function parseAcquireExecutionLeaseData(value: unknown): ContractParseResult<AcquireExecutionLeaseData>;
112
+ declare function parseWorkflowDispatchRestartRequest(value: unknown): ContractParseResult<WorkflowDispatchRestartRequest>;
113
+ declare function parseWorkflowDispatchRestartResponse(value: unknown): ContractParseResult<WorkflowDispatchRestartResponse>;
114
+
41
115
  declare const INTERNAL_FLOW_RUNS_ROUTE_PREFIX = "/internal/flow-runs";
42
116
  declare const EXECUTION_CONTEXT_ROUTE_SUBPATH = "/:flowRunId/execution-context";
43
117
  declare function executionContextPath(flowRunId: string): string;
@@ -75,6 +149,7 @@ type ExecutionContextData<TToolDescriptor = Record<string, unknown>, TIntegratio
75
149
  flowRunId: string;
76
150
  workspaceId: string;
77
151
  input: Record<string, unknown>;
152
+ executionScope: FlowExecutionScope;
78
153
  compiled: ExecutionContextCompiled;
79
154
  executionBindings: Array<ExecutionBinding<TToolDescriptor, TIntegrationDescriptor>>;
80
155
  fileRuntime: FlowExecutionContextFileRuntime;
@@ -85,11 +160,13 @@ declare function parseExecutionContextData(data: unknown): ContractParseResult<E
85
160
  declare const STEP_RESULT_ROUTE_SUBPATH = "/:flowRunId/steps/:nodeId/result";
86
161
  declare const FLOW_RUN_RESULT_ROUTE_SUBPATH = "/:flowRunId/result";
87
162
  declare const FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH = "/:flowRunId/execution-events";
88
- declare const EVENT_WAIT_ROUTE_SUBPATH = "/:flowRunId/event-waits/:nodeId";
163
+ declare const REGISTER_EVENT_WAIT_ROUTE_SUBPATH = "/:flowRunId/waits/:nodeId/register";
164
+ declare const COMPLETE_EVENT_WAIT_ROUTE_SUBPATH = "/:flowRunId/waits/:nodeId/complete";
89
165
  declare function stepResultPath(flowRunId: string, nodeId: string): string;
90
166
  declare function flowRunResultPath(flowRunId: string): string;
91
167
  declare function flowRunExecutionEventsPath(flowRunId: string): string;
92
- declare function eventWaitPath(flowRunId: string, nodeId: string): string;
168
+ declare function registerEventWaitPath(flowRunId: string, nodeId: string): string;
169
+ declare function completeEventWaitPath(flowRunId: string, nodeId: string): string;
93
170
  type StepRecordResult = {
94
171
  status: "succeeded";
95
172
  output: unknown;
@@ -104,6 +181,7 @@ type StepRecordResult = {
104
181
  error: AblehiErrorDigest;
105
182
  };
106
183
  type StepRecordBody = {
184
+ executionScope: ExecutionWriteScope;
107
185
  attempt: number;
108
186
  result: StepRecordResult;
109
187
  durationMs?: number;
@@ -123,34 +201,20 @@ type StepRecordBodyParseResult = {
123
201
  };
124
202
  declare function parseStepRecordBody(body: unknown): StepRecordBodyParseResult;
125
203
  declare function parseStepRecordData(data: unknown): ContractParseResult<StepRecordData>;
126
- type RenderedFlowComposition = {
127
- title: string;
128
- detail: {
129
- format: "markdown";
130
- body: string;
131
- data?: unknown;
132
- };
133
- report?: {
134
- origin: "flow_node";
135
- title?: string;
136
- format: "markdown";
137
- body: string;
138
- data?: unknown;
139
- };
140
- };
141
204
  type FlowRunResultRequestBody = {
205
+ executionScope: ExecutionWriteScope;
142
206
  status: "succeeded";
143
207
  output?: unknown;
144
- composition?: RenderedFlowComposition;
145
208
  } | {
209
+ executionScope: ExecutionWriteScope;
146
210
  status: "failed";
147
211
  error: AblehiErrorDigest;
148
212
  };
149
213
  type ParsedFlowRunResultBody = {
214
+ executionScope: ExecutionWriteScope;
150
215
  status: "succeeded" | "failed";
151
216
  output?: unknown;
152
217
  error?: AblehiErrorDigest;
153
- composition?: unknown;
154
218
  };
155
219
  declare function parseFlowRunResultBody(body: unknown): ContractParseResult<ParsedFlowRunResultBody>;
156
220
  type FlowRunResultData = {
@@ -171,6 +235,7 @@ type FlowRunInputFactBody = {
171
235
  };
172
236
  };
173
237
  type FlowRunExecutionEventBody = {
238
+ executionScope: ExecutionWriteScope;
174
239
  eventId: string;
175
240
  eventType: FlowRunExecutionEventType;
176
241
  nodeId?: string;
@@ -190,24 +255,33 @@ type FlowRunExecutionEventData = {
190
255
  declare function parseFlowRunExecutionEventData(data: unknown): ContractParseResult<FlowRunExecutionEventData>;
191
256
  declare function parseFlowRunExecutionEventBody(body: unknown): ContractParseResult<FlowRunExecutionEventBody>;
192
257
  type RegisterFlowRunWaitBody = {
258
+ executionScope: ExecutionWriteScope;
193
259
  eventType: string;
194
260
  correlationKey: string;
195
261
  };
196
262
  type CompleteFlowRunWaitBody = {
197
- eventType: string;
198
- correlationKey: string;
263
+ executionScope: ExecutionWriteScope;
264
+ waitExecutionId: string;
199
265
  outcome: "received" | "timed_out";
200
266
  eventId?: string;
201
267
  };
202
268
  type RegisterFlowRunWaitData = {
203
- registered: true;
269
+ waitExecutionId: string;
270
+ workflowEventType: string;
204
271
  };
205
272
  type CompleteFlowRunWaitData = {
206
273
  completed: true;
207
274
  };
275
+ type FlowWaitResolvedEvent = {
276
+ waitExecutionId: string;
277
+ eventId: string;
278
+ payload: unknown;
279
+ };
208
280
  declare function parseRegisterFlowRunWaitBody(body: unknown): ContractParseResult<RegisterFlowRunWaitBody>;
209
281
  declare function parseCompleteFlowRunWaitBody(body: unknown): ContractParseResult<CompleteFlowRunWaitBody>;
210
282
  declare function parseRegisterFlowRunWaitData(data: unknown): ContractParseResult<RegisterFlowRunWaitData>;
283
+ declare function parseCompleteFlowRunWaitData(data: unknown): ContractParseResult<CompleteFlowRunWaitData>;
284
+ declare function parseFlowWaitResolvedEvent(data: unknown): ContractParseResult<FlowWaitResolvedEvent>;
211
285
 
212
286
  declare const INTERNAL_FLOW_VERSIONS_ROUTE_PREFIX = "/internal/flow-versions";
213
287
  declare const HANDLER_BUNDLES_ROUTE_SUBPATH = "/:flowVersionId/handler-bundles";
@@ -761,6 +835,9 @@ type HumanInputResolvedEvent = {
761
835
  nodeId: string;
762
836
  status: "submitted" | "expired";
763
837
  };
838
+ declare function parseHumanInputResolvedEvent(value: unknown): ContractParseResult<HumanInputResolvedEvent>;
839
+ declare const HUMAN_INPUT_PROMPT_TITLE_MAX_CODE_POINTS = 160;
840
+ declare const HUMAN_INPUT_PROMPT_BODY_MAX_CODE_POINTS = 500;
764
841
  type RenderedHumanInputPrompt = {
765
842
  title: string;
766
843
  body?: string;
@@ -797,6 +874,7 @@ type PartiallyRenderedHumanInputDelivery = {
797
874
  }>;
798
875
  };
799
876
  type CreateHumanInputRequestBody = {
877
+ executionScope: ExecutionWriteScope;
800
878
  nodeId: string;
801
879
  renderedPrompt: RenderedHumanInputPrompt;
802
880
  input: RuntimeHumanInputSpec;
@@ -815,6 +893,8 @@ type HumanInputResponse = {
815
893
  kind: "form";
816
894
  values: Record<string, unknown>;
817
895
  };
896
+ declare function parseHumanInputResponse(value: unknown): ContractParseResult<HumanInputResponse>;
897
+ declare function parseHumanInputResponseForSpec(value: unknown, spec: RuntimeHumanInputSpec): ContractParseResult<HumanInputResponse>;
818
898
  type HumanInputActor = {
819
899
  type: "user";
820
900
  userId: string;
@@ -850,7 +930,7 @@ type HumanInputRequestView = {
850
930
  workspaceId: string;
851
931
  flowRunId: string;
852
932
  nodeId: string;
853
- status: "pending" | "submitted" | "expired" | "cancelled";
933
+ status: "pending" | "submitted" | "expired" | "cancelled" | "cancelled_by_reset";
854
934
  inputKind: string;
855
935
  timeout: string;
856
936
  expiresAt: string;
@@ -858,6 +938,8 @@ type HumanInputRequestView = {
858
938
  updatedAt: string;
859
939
  output: HumanInputOutput | null;
860
940
  };
941
+ declare function parseRenderedHumanInputPrompt(value: unknown): ContractParseResult<RenderedHumanInputPrompt>;
942
+ declare function parseHumanInputSpec(value: unknown): ContractParseResult<RuntimeHumanInputSpec>;
861
943
  declare function parseCreateHumanInputBody(body: unknown): ContractParseResult<CreateHumanInputRequestBody>;
862
944
  declare function parseHumanInputRequestViewData(data: unknown): ContractParseResult<HumanInputRequestView>;
863
945
  declare function parseHumanInputCreateData(data: unknown): ContractParseResult<{
@@ -924,4 +1006,98 @@ declare function deploymentHandshakeResponseProofPayload(input: {
924
1006
  capabilities: string[];
925
1007
  }): string;
926
1008
 
927
- export { 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, EVENT_WAIT_ROUTE_SUBPATH, EXECUTION_CONTEXT_ROUTE_SUBPATH, type EgressGrant, type EgressGrantAuditBody, type EgressGrantBodyParseResult, type EgressGrantConsumeBody, type EgressGrantCredentialMaterial, type EgressGrantFileRuntime, type EgressGrantScopeKind, type ExecutionBinding, type ExecutionBindingConnection, type ExecutionContextCompiled, type ExecutionContextData, 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, 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_EXPIRE_ROUTE_SUBPATH, 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, 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 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, RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS, type RegisterFlowRunWaitBody, type RegisterFlowRunWaitData, type RenderedFlowComposition, type RenderedHumanInputPrompt, type RuntimeCredentialSession, type RuntimeCredentialSessionNetwork, type RuntimeCredentialSessionScopeKind, type RuntimeNetwork, type RuntimeNetworkModel, SERVER_EXECUTION_CONTRACT_VERSION, STEP_RESULT_ROUTE_SUBPATH, type ServerExecutionContractVersion, 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, 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, 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, deploymentHandshakeProbePayload, deploymentHandshakeResponseProofPayload, discoveryInvocationEgressGrantPath, discoveryInvocationRuntimeCredentialPath, egressGrantAuditPath, egressGrantConsumePath, eventWaitPath, executionContextPath, flowRunEgressGrantPath, flowRunExecutionEventsPath, flowRunResultPath, flowRunRuntimeCredentialPath, flowScriptProtocolAdapterModuleName, handlerBundlesPath, humanInputAcknowledgePath, humanInputExpirePath, humanInputRequestPath, humanInputResolvedEventType, humanInputsPath, internalFileAccessPath, internalFileCompletePath, internalFileContentPath, internalFileStatPath, internalFileUploadSessionPath, internalFilesPath, isValidRequestDigest, parseCompleteFlowRunWaitBody, parseContextStateCleanupRequestBody, parseContextStateCleanupResponseData, parseContextStateScope, parseCreateHumanInputBody, parseDiscoveryGrantBody, parseDiscoveryRuntimeCredentialBody, parseEgressGrantAuditBody, parseEgressGrantConsumeBody, parseEgressGrantConsumeData, parseEgressGrantData, parseExecutionContextData, parseFileMetadataData, parseFileRefData, parseFileRuntimeLimits, parseFileUploadSessionData, parseFlowActionGrantBody, parseFlowRunExecutionEventBody, parseFlowRunExecutionEventData, parseFlowRunResultBody, parseFlowRunResultData, parseFlowRuntimeCredentialBody, parseHandlerBundle, parseHandlerBundlesData, parseHumanInputAcknowledgeData, parseHumanInputCreateData, parseHumanInputRequestViewData, parseInternalFileAccessData, parsePollingPublishBody, parsePollingRuntimeCredentialBody, parsePollingTriggerContext, parsePollingTriggerDispatchData, parsePollingTriggerGrantBody, parsePublishPollingTickEventsData, parseRegisterFlowRunWaitBody, parseRegisterFlowRunWaitData, parseRuntimeCredentialSessionCredential, parseRuntimeNetwork, parseSingleToolGrantBody, parseSingleToolRuntimeCredentialBody, parseStepRecordBody, parseStepRecordData, parseToolHandlerBundlesData, parseTriggerFileRuntimeDispatch, parseTriggerHandlerBundlesData, parseWebhookDelivery, parseWebhookDeliveryDispatchData, parseWebhookPublishEventsBody, parseWebhookRearmBody, parseWebhookRuntimeCredentialBody, parseWebhookTriggerGrantBody, parseWebhookWatcherContext, pollingTriggerContextPath, pollingTriggerEgressGrantPath, pollingTriggerHandlerBundlesPath, pollingTriggerRuntimeCredentialPath, pollingTriggerTickEventsPath, requestHasMultipartFileParts, stepResultPath, toolHandlerBundlesPath, toolInvocationEgressGrantPath, toolInvocationRuntimeCredentialPath, webhookProtocolAdapterBundlePath, webhookTriggerContextPath, webhookTriggerDeliveryPath, webhookTriggerEgressGrantPath, webhookTriggerEventsPath, webhookTriggerHandlerBundlesPath, webhookTriggerRearmPath, webhookTriggerRuntimeCredentialPath, wfpUserRuntimeManifestPath };
1009
+ /** Machine-readable error returned by every v0.4.0 execution endpoint. */
1010
+ type ServerExecutionError = {
1011
+ code: string;
1012
+ message: string;
1013
+ retryable: boolean;
1014
+ issues?: unknown[];
1015
+ details?: Record<string, unknown>;
1016
+ };
1017
+ type ServerExecutionErrorEnvelope = {
1018
+ ok: false;
1019
+ error: ServerExecutionError;
1020
+ guidance?: unknown;
1021
+ };
1022
+ /**
1023
+ * Parses the common execution error core without inventing retryability from
1024
+ * HTTP status. Additional error fields are rejected so a consumer cannot
1025
+ * silently depend on a producer extension outside this contract.
1026
+ */
1027
+ declare function parseServerExecutionErrorEnvelope(value: unknown): ContractParseResult<ServerExecutionErrorEnvelope>;
1028
+
1029
+ declare const INBOX_MESSAGE_EMISSION_ROUTE_SUBPATH = "/:flowRunId/inbox-message-emissions/:nodeId";
1030
+ declare function inboxMessageEmissionPath(flowRunId: string, nodeId: string): string;
1031
+ type EmitInboxMessageRequest = {
1032
+ executionScope: ExecutionWriteScope;
1033
+ idempotencyKey: string;
1034
+ payload: JsonObject;
1035
+ };
1036
+ type EmitInboxMessageData = {
1037
+ emissionId: string;
1038
+ outcome: "created" | "replayed";
1039
+ occurredAt: string;
1040
+ };
1041
+ declare const INBOX_MESSAGE_EXECUTION_ERROR_REGISTRY: Readonly<{
1042
+ readonly INBOX_MESSAGE_IDEMPOTENCY_KEY_INVALID: {
1043
+ readonly httpStatus: 422;
1044
+ readonly retryable: boolean;
1045
+ };
1046
+ readonly INBOX_MESSAGE_PAYLOAD_INVALID: {
1047
+ readonly httpStatus: 422;
1048
+ readonly retryable: boolean;
1049
+ };
1050
+ readonly INBOX_MESSAGE_PAYLOAD_TOO_LARGE: {
1051
+ readonly httpStatus: 413;
1052
+ readonly retryable: boolean;
1053
+ };
1054
+ readonly INBOX_MESSAGE_RENDER_INVALID: {
1055
+ readonly httpStatus: 422;
1056
+ readonly retryable: boolean;
1057
+ };
1058
+ readonly INBOX_MESSAGE_CONTENT_TOO_LARGE: {
1059
+ readonly httpStatus: 413;
1060
+ readonly retryable: boolean;
1061
+ };
1062
+ readonly INBOX_MESSAGE_ATTACHMENT_INVALID: {
1063
+ readonly httpStatus: 422;
1064
+ readonly retryable: boolean;
1065
+ };
1066
+ readonly INBOX_MESSAGE_ATTACHMENT_UNAVAILABLE: {
1067
+ readonly httpStatus: 409;
1068
+ readonly retryable: boolean;
1069
+ };
1070
+ readonly FLOW_INBOX_MESSAGE_INVALID: {
1071
+ readonly httpStatus: 422;
1072
+ readonly retryable: boolean;
1073
+ };
1074
+ readonly EXECUTION_LEASE_INVALID: {
1075
+ readonly httpStatus: 409;
1076
+ readonly retryable: boolean;
1077
+ };
1078
+ readonly EXECUTION_LEASE_SUPERSEDED: {
1079
+ readonly httpStatus: 409;
1080
+ readonly retryable: boolean;
1081
+ };
1082
+ readonly AUTOMATION_APP_INSTALLATION_DISABLED: {
1083
+ readonly httpStatus: 409;
1084
+ readonly retryable: boolean;
1085
+ };
1086
+ readonly INBOX_MESSAGE_EMISSION_WINDOW_CLOSED: {
1087
+ readonly httpStatus: 409;
1088
+ readonly retryable: boolean;
1089
+ };
1090
+ readonly INBOX_MESSAGE_EMISSION_CONFLICT: {
1091
+ readonly httpStatus: 409;
1092
+ readonly retryable: boolean;
1093
+ };
1094
+ readonly INBOX_MESSAGE_EMISSION_UNAVAILABLE: {
1095
+ readonly httpStatus: 503;
1096
+ readonly retryable: boolean;
1097
+ };
1098
+ }>;
1099
+ type InboxMessageExecutionErrorCode = keyof typeof INBOX_MESSAGE_EXECUTION_ERROR_REGISTRY;
1100
+ declare function parseEmitInboxMessageRequest(value: unknown): ContractParseResult<EmitInboxMessageRequest>;
1101
+ declare function parseEmitInboxMessageData(value: unknown): ContractParseResult<EmitInboxMessageData>;
1102
+
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 };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var re="0.2.11";function u(e){return{ok:!0,value:e}}function r(e){return{ok:!1,reason:e}}function i(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Ze="/cleanup-state-scopes";function k(e){if(!i(e)||typeof e.kind!="string")return r("context state scope surface shape is invalid");switch(e.kind){case"webhook-trigger":return oe(e);case"polling-trigger":return ie(e);case"flow-action":return se(e);default:return r("context state scope kind is invalid")}}function et(e){if(!i(e))return r("cleanup request body must be a JSON object");let t=N(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 s=k(o);if(!s.ok)return s;n.push(s.value)}return u({scopes:n})}function tt(e){return!i(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 oe(e){let t=N(e,["kind","workspaceId","triggerInstanceId"]);return t!==void 0?r(`webhook trigger scope does not accept "${t}"`):e.kind!=="webhook-trigger"||!R(e.workspaceId)||!R(e.triggerInstanceId)?r("webhook trigger state scope is invalid"):u({kind:"webhook-trigger",workspaceId:e.workspaceId,triggerInstanceId:e.triggerInstanceId})}function ie(e){let t=N(e,["kind","workspaceId","pollingInstanceId"]);return t!==void 0?r(`polling trigger scope does not accept "${t}"`):e.kind!=="polling-trigger"||!R(e.workspaceId)||!R(e.pollingInstanceId)?r("polling trigger state scope is invalid"):u({kind:"polling-trigger",workspaceId:e.workspaceId,pollingInstanceId:e.pollingInstanceId})}function se(e){let t=N(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"||!R(e.workspaceId)||!R(e.flowId)||!R(e.nodeId)||n!==null&&!R(n)?r("flow action state scope is invalid"):u({kind:"flow-action",workspaceId:e.workspaceId,flowId:e.flowId,nodeId:e.nodeId,connectionId:n})}function R(e){return typeof e=="string"&&e.length>0}function N(e,t){return Object.keys(e).find(n=>!t.includes(n))}var g="/internal/flow-runs",it="/:flowRunId/execution-context";function st(e){return`${g}/${encodeURIComponent(e)}/execution-context`}function F(e){return!i(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 ut(e){if(!i(e))return r("execution context must be a JSON object");let t=e.compiled;if(typeof e.flowRunId!="string"||typeof e.workspaceId!="string"||!i(e.input)||!i(t)||typeof t.irSchemaVersion!="string"||typeof t.interpreterContractVersion!="string"||typeof t.compiledArtifactId!="string"||!i(t.ir)||!Array.isArray(t.ir.nodes)||!ae(e.executionBindings))return r("execution context surface shape is invalid");let n=ue(e.fileRuntime);return n.ok?u({...e,fileRuntime:n.value}):r(n.reason)}function ue(e){if(e===null)return u(null);if(!i(e))return r("fileRuntime must be null or an object");let t=F(e.limits);return t.ok?u({limits:t.value}):r(t.reason)}function ae(e){return Array.isArray(e)?e.every(t=>{if(!i(t))return!1;let n=t.connection,o=k(t.stateScope);return typeof t.nodeId=="string"&&typeof t.toolRef=="string"&&i(t.toolDescriptor)&&i(t.integrationDescriptor)&&i(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}import{parseAblehiErrorDigest as H}from"@ablehi/error-contract";var pt="/:flowRunId/steps/:nodeId/result",ft="/:flowRunId/result",gt="/:flowRunId/execution-events",mt="/:flowRunId/event-waits/:nodeId";function Rt(e,t){return`${g}/${encodeURIComponent(e)}/steps/${encodeURIComponent(t)}/result`}function yt(e){return`${g}/${encodeURIComponent(e)}/result`}function kt(e){return`${g}/${encodeURIComponent(e)}/execution-events`}function It(e,t){return`${g}/${encodeURIComponent(e)}/event-waits/${encodeURIComponent(t)}`}function _t(e){if(!i(e))return{ok:!1,kind:"validation",reason:"step record body must be a JSON object"};let t=m(e,["attempt","result","durationMs"]);if(t!==void 0)return{ok:!1,kind:"validation",reason:`step record does not accept the "${t}" field`};let n=e.attempt;if(typeof n!="number"||!Number.isInteger(n)||n<=0)return{ok:!1,kind:"validation",reason:"attempt must be a positive integer"};let o=ce(e.result);if(!o.ok)return o;let s={attempt:n,result:o.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"};s.durationMs=c}return{ok:!0,value:s}}function ce(e){if(!i(e))return{ok:!1,kind:"step_result_invalid",reason:"result must be a JSON object"};let t=e.status;if(t==="succeeded"){let n=m(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=m(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=H(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=m(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=m(e,["status","error"]);if(n!==void 0)return{ok:!1,kind:"validation",reason:`step record result does not accept the "${n}" field`};let o=H(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 ht(e){return!i(e)||typeof e.flowRunId!="string"||typeof e.nodeId!="string"||!de(e.recorded)?r("step record data surface shape is invalid"):u({flowRunId:e.flowRunId,nodeId:e.nodeId,recorded:e.recorded})}function de(e){return e==="succeeded"||e==="failed"||e==="skipped"||e==="timed_out"}function Et(e){if(!i(e))return r("result body must be a JSON object");let t=m(e,["status","output","error","composition"]);if(t!==void 0)return r(`result does not accept the "${t}" field`);let n=e.status;if(n!=="succeeded"&&n!=="failed")return r('result status must be "succeeded" or "failed"');let o={status:n};if(e.output!==void 0){if(n!=="succeeded")return r("output is only allowed on a succeeded result");o.output=e.output}if(e.error!==void 0){if(n!=="failed")return r("error is only allowed on a failed result");let s=H(e.error);if(!s.ok)return r(`result error must be an AblehiErrorDigest: ${s.reason}`);o.error=s.value}if(n==="failed"&&o.error===void 0)return r("a failed result must carry an AblehiErrorDigest");if(e.composition!==void 0){if(n!=="succeeded")return r("composition is only allowed on a succeeded result");o.composition=e.composition}return u(o)}function wt(e){return i(e)?u(e):r("flow run result data must be a JSON object")}var le=["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 xt(e){if(!i(e))return r("execution event data must be a JSON object");let t=m(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 Tt(e){if(!i(e))return r("execution event body must be a JSON object");let t=m(e,["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.eventId;if(typeof n!="string"||n.length===0)return r("eventId must be a non-empty string");let o=e.eventType;if(!pe(o))return r("eventType is not a known flow execution event type");let s=e.occurredAt;if(typeof s!="string"||s.length===0)return r("occurredAt must be a non-empty string");let c={eventId:n,eventType:o,occurredAt:s};for(let a of["nodeId","stepRunId","errorId","payloadRef"]){let d=e[a];if(d!==void 0){if(typeof d!="string"||d.length===0)return r(`${a} must be a non-empty string`);c[a]=d}}for(let a of["attempt","durationMs"]){let d=e[a];if(d!==void 0){if(typeof d!="number"||!Number.isFinite(d)||!Number.isInteger(d)||d<0)return r(`${a} must be a non-negative integer`);c[a]=d}}if(e.inputFact!==void 0){if(o!=="step_started")return r("inputFact is only allowed on step_started events");if(c.attempt===void 0)return r("inputFact requires attempt");let a=fe(e.inputFact);if(!a.ok)return a;c.inputFact=a.value}return u(c)}function pe(e){return typeof e=="string"&&le.includes(e)}function fe(e){if(!i(e))return r("inputFact must be a JSON object");let t=m(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(!i(o))return r("inputFact.domain must be a JSON object");let s=m(o,["irSchemaVersion","interpreterContractVersion","compiledArtifactId","nodeId","algorithmVersion"]);return s!==void 0?r(`inputFact.domain does not accept the "${s}" 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 ge=/^[A-Za-z0-9_-]{1,100}$/;function Pt(e){if(!i(e))return r("register body must be a JSON object");let t=m(e,["eventType","correlationKey"]);if(t!==void 0)return r(`register wait does not accept the "${t}" field`);let n=j(e.eventType);if(!n.ok)return r(n.reason);let o=e.correlationKey;return typeof o!="string"||o.length===0?r("correlationKey must be a non-empty string"):u({eventType:n.value,correlationKey:o})}function vt(e){if(!i(e))return r("complete body must be a JSON object");let t=m(e,["eventType","correlationKey","outcome","eventId"]);if(t!==void 0)return r(`complete wait does not accept the "${t}" field`);let n=e.outcome;if(n!=="received"&&n!=="timed_out")return r('outcome must be "received" or "timed_out"');let o=j(e.eventType);if(!o.ok)return r(o.reason);let s=e.correlationKey;if(typeof s!="string"||s.length===0)return r("correlationKey must be a non-empty string");let c={eventType:o.value,correlationKey:s,outcome:n};if(e.eventId!==void 0){if(typeof e.eventId!="string"||e.eventId.length===0)return r("eventId must be a non-empty string");c.eventId=e.eventId}return u(c)}function St(e){return!i(e)||e.registered!==!0?r("register wait data surface shape is invalid"):u({registered:!0})}function j(e){return typeof e!="string"||e.length===0?r("eventType must be a non-empty string"):ge.test(e)?u(e):r("eventType must match ^[A-Za-z0-9_-]{1,100}$")}function m(e,t){return Object.keys(e).find(n=>!t.includes(n))}var me="/internal/flow-versions",Ct="/:flowVersionId/handler-bundles",G="/internal/installations",At="/:installationId/handler-bundles";function Nt(e,t){return`${me}/${encodeURIComponent(e)}/handler-bundles?compiledArtifactId=${encodeURIComponent(t)}`}function Ot(e){return`${G}/${encodeURIComponent(e.installationId)}/handler-bundles?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var Re=new Set(["managed_only","managed_plus_unmanaged_sdk"]);function O(e){if(!_(e))return $("runtimeNetwork must be a JSON object");let t=e.networkModel;return typeof t!="string"||!Re.has(t)?$("runtimeNetwork.networkModel is unknown"):!J(e.apiHosts)||!J(e.authHosts)||typeof e.httpsOnly!="boolean"?$("runtimeNetwork host/https fields are invalid"):{ok:!0,value:{networkModel:t,apiHosts:e.apiHosts,authHosts:e.authHosts,httpsOnly:e.httpsOnly}}}function Dt(e){if(!_(e)||typeof e.flowVersionId!="string"||typeof e.compiledArtifactId!="string"||!Array.isArray(e.bundles))return T("handler bundles data surface shape is invalid");let t=X(e.bundles);return t.ok?{ok:!0,value:{flowVersionId:e.flowVersionId,compiledArtifactId:e.compiledArtifactId,bundles:t.value}}:t}function Ut(e){if(!_(e)||typeof e.installationId!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.bundles))return T("tool handler bundles data surface shape is invalid");let t=X(e.bundles);return t.ok?{ok:!0,value:{installationId:e.installationId,artifactDigest:e.artifactDigest,bundles:t.value}}:t}function X(e){let t=[];for(let n of e){let o=ye(n);if(!o.ok)return o;t.push(o.value)}return{ok:!0,value:t}}function ye(e){if(!_(e)||typeof e.toolRef!="string"||e.kind!=="handler"&&e.kind!=="request")return T("handler bundle entry shape is invalid");if(e.kind==="request"){if(e.module!==void 0)return T("a request bundle must not carry a module");let o=O(e.runtimeNetwork);return o.ok?{ok:!0,value:{toolRef:e.toolRef,kind:"request",runtimeNetwork:o.value}}:o}let t=e.module;if(!_(t)||typeof t.entry!="string"||t.entry.length===0||!ke(t.files))return T("a handler bundle must carry a { entry, files } module");let n=O(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 T(e){return{ok:!1,kind:"shape",reason:e}}function $(e){return{ok:!1,kind:"runtime_network",reason:e}}function _(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function J(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function ke(e){return _(e)&&Object.values(e).every(t=>typeof t=="string")}var P="/internal/webhook-trigger-instances",Kt="/:triggerInstanceId/context",Lt="/:triggerInstanceId/handler-bundles",qt="/:triggerInstanceId/deliveries/:deliveryId",Wt="/:triggerInstanceId/events",Vt="/:triggerInstanceId/rearm",v=e=>`${P}/${encodeURIComponent(e)}`;function jt(e,t){return`${v(e)}/context?artifactDigest=${encodeURIComponent(t)}`}function Jt(e,t){return`${v(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function Xt(e,t){return`${v(e)}/deliveries/${encodeURIComponent(t)}`}function Yt(e){return`${v(e)}/events`}function zt(e){return`${v(e)}/rearm`}var Qt="/:installationId/webhook-protocol-adapter-bundle";function Zt(e){return`${G}/${encodeURIComponent(e.installationId)}/webhook-protocol-adapter-bundle?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var en="modules/webhook/protocol-adapter.js";function tn(e){return`modules/webhook/protocol-adapter-${e}.js`}function nn(e){let t=i(e)?k(e.stateScope):r("webhook watcher context state scope is invalid");return!i(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!i(e.inputs)||e.connection!==null&&!Ie(e.connection)||!_e(e.runtime)||!t.ok||t.value.kind!=="webhook-trigger"?r("webhook watcher context surface shape is invalid"):u(e)}function Ie(e){return i(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function _e(e){if(!i(e)||e.type!=="webhook"||typeof e.trigger_ref!="string")return!1;let t=e.webhook;return i(t)&&typeof t.event_handler_module=="string"&&typeof t.enable_handler_module=="string"&&typeof t.disable_handler_module=="string"}function he(e){if(!i(e)||typeof e.deliveryId!="string"||typeof e.receivedAt!="string"||!i(e.request))return r("webhook delivery surface shape is invalid");let t=e.request;return t.method!=="POST"||!i(t.headers)||typeof t.rawBody!="string"?r("webhook delivery request shape is invalid"):u(e)}function M(e){if(!i(e)||typeof e.token!="string"||typeof e.expiresAt!="string")return r("trigger file runtime dispatch shape is invalid");let t=F(e.limits);return t.ok?u({token:e.token,expiresAt:e.expiresAt,limits:t.value}):r(t.reason)}function rn(e){if(!i(e))return r("webhook delivery dispatch data is invalid");let t=he(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=M(n);return o.ok?u({delivery:t.value,fileRuntime:o.value}):r(o.reason)}function on(e){if(!i(e)||typeof e.triggerRef!="string"||typeof e.artifactDigest!="string"||!Array.isArray(e.modules)||!e.modules.every(Ee))return{ok:!1,kind:"shape",reason:"trigger handler bundles data surface shape is invalid"};let t=O(e.runtimeNetwork);return t.ok?{ok:!0,value:{triggerRef:e.triggerRef,artifactDigest:e.artifactDigest,modules:e.modules,runtimeNetwork:t.value}}:t}function Ee(e){return i(e)&&typeof e.specifier=="string"&&e.specifier.length>0&&typeof e.source=="string"}function sn(e){if(!i(e))return r("publish events body must be a JSON object");let t=K(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 s=[];for(let c of o){let a=we(c);if(!a.ok)return a;s.push(a.value)}return u({deliveryId:n,events:s})}function we(e){if(!i(e))return r("each event must be a JSON object");let t=K(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(!i(e.payload))return r("event payload must be a JSON object");let s={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");s.dedupeKey=e.dedupeKey}return u(s)}function un(e){if(!i(e))return r("rearm body must be a JSON object");let t=K(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 K(e,t){return Object.keys(e).find(n=>!t.includes(n))}var S="/internal/polling-trigger-instances",pn="/:pollingInstanceId/context",fn="/:pollingInstanceId/handler-bundles",gn="/:pollingInstanceId/ticks/:tickId/events",L=e=>`${S}/${encodeURIComponent(e)}`;function mn(e,t,n){return`${L(e)}/context?artifactDigest=${encodeURIComponent(t)}&tickId=${encodeURIComponent(n)}`}function Rn(e,t){return`${L(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function yn(e,t){return`${L(e)}/ticks/${encodeURIComponent(t)}/events`}function xe(e){let t=i(e)?k(e.stateScope):r("polling trigger context state scope is invalid");return!i(e)||typeof e.artifactDigest!="string"||typeof e.triggerRef!="string"||typeof e.triggerName!="string"||typeof e.integrationRef!="string"||!i(e.inputs)||e.connection!==null&&!Te(e.connection)||!Pe(e.runtime)||!t.ok||t.value.kind!=="polling-trigger"||!Se(e.tick)||!be(e.limits)?r("polling trigger context surface shape is invalid"):u(e)}function kn(e){if(!i(e))return r("polling trigger dispatch data is invalid");let t=xe(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=M(n);return o.ok?u({context:t.value,fileRuntime:o.value}):r(o.reason)}function Te(e){return i(e)&&typeof e.connectionId=="string"&&typeof e.connectionRef=="string"&&typeof e.integrationRef=="string"&&typeof e.authProfileRef=="string"&&typeof e.authType=="string"}function Pe(e){if(!i(e)||e.type!=="polling"||typeof e.trigger_id!="string"||typeof e.trigger_ref!="string"||!ve(e.file_outputs))return!1;let t=e.polling;if(!i(t)||typeof t.run_handler_module!="string")return!1;let n=t.schedule;if(!i(n)||n.type!=="interval"||typeof n.every_seconds!="number")return!1;let o=t.dedup;return i(o)&&(o.strategy==="cursor"||o.strategy==="hash"||o.strategy==="id_field")}function ve(e){return e===void 0?!0:Array.isArray(e)&&e.length>0&&e.every(t=>i(t)&&typeof t.field=="string"&&t.field.length>0)}function Se(e){return i(e)&&typeof e.tickId=="string"&&typeof e.scheduledAt=="string"&&typeof e.attempt=="number"}function be(e){return i(e)&&typeof e.maxEventsPerTick=="number"}function In(e){if(!i(e))return r("publish body must be a JSON object");let t=Y(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 c of n){let a=Ce(c);if(!a.ok)return a;o.push(a.value)}let s={events:o};if("nextCursor"in e){let c=e.nextCursor;if(c!==null&&typeof c!="string")return r("nextCursor must be a string, null, or omitted");s.nextCursor=c}return u(s)}function Ce(e){if(!i(e))return r("each event must be a JSON object");let t=Y(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(!i(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 _n(e){return!i(e)||typeof e.tickId!="string"||typeof e.cursorUpdated!="boolean"||!Array.isArray(e.results)||!e.results.every(Ae)?r("publish polling tick events data surface shape is invalid"):u(e)}function Ae(e){return i(e)&&typeof e.eventId=="string"&&typeof e.dedupeKey=="string"&&typeof e.duplicate=="boolean"&&(e.flowRunId===null||typeof e.flowRunId=="string")}function Y(e,t){return Object.keys(e).find(n=>!t.includes(n))}var z="/internal/egress-grants",q="/internal/tool-invocations",W="/internal/discovery-invocations",Pn="/:flowRunId/egress-grant",vn="/:invocationId/egress-grant",Sn="/:discoveryInvocationId/egress-grant",bn="/:pollingInstanceId/egress-grant",Cn="/:triggerInstanceId/egress-grant",An="/:grantId/consume",Nn="/:grantId/audit",On=e=>`${g}/${encodeURIComponent(e)}/egress-grant`,Dn=e=>`${q}/${encodeURIComponent(e)}/egress-grant`,Un=e=>`${W}/${encodeURIComponent(e)}/egress-grant`,Bn=e=>`${S}/${encodeURIComponent(e)}/egress-grant`,Fn=e=>`${P}/${encodeURIComponent(e)}/egress-grant`,Hn=e=>`${z}/${encodeURIComponent(e)}/consume`,$n=e=>`${z}/${encodeURIComponent(e)}/audit`,Ne=["flow_action","single_tool","discovery","polling_trigger","webhook_trigger"],Oe=/^[A-Za-z0-9][A-Za-z0-9:_+/=.-]{15,1023}$/;function h(e){return typeof e=="string"&&Oe.test(e)}function De(e){if(!i(e)||e.body_type!=="multipart")return!1;let t=e.body;if(!i(t))return!1;let n=t.parts;return Array.isArray(n)?n.some(o=>i(o)?o.kind==="file"&&typeof o.file_id=="string"&&o.file_id.length>0:!1):!1}function l(e){return{ok:!1,kind:"shape",reason:e}}function E(){return{ok:!1,kind:"request_digest",reason:"request digest is missing or malformed"}}function b(e,t){if(!i(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 C(e){if(!i(e))return"request must be a JSON object"}function Gn(e){let t=b(e,["nodeId","request","requestDigest"]);if(!t.ok)return l(t.reason);let n=t.record.nodeId;if(typeof n!="string"||n.length===0)return l("nodeId is required");let o=C(t.record.request);if(o!==void 0)return l(o);let s=t.record.requestDigest;return h(s)?{ok:!0,value:{nodeId:n,requestDigest:s,requestHasMultipartFiles:De(t.record.request)}}:E()}function Mn(e){let t=b(e,["request","requestDigest"]);if(!t.ok)return l(t.reason);let n=C(t.record.request);if(n!==void 0)return l(n);let o=t.record.requestDigest;return h(o)?{ok:!0,value:{requestDigest:o}}:E()}function Kn(e){let t=b(e,["request","requestDigest"]);if(!t.ok)return l(t.reason);let n=C(t.record.request);if(n!==void 0)return l(n);let o=t.record.requestDigest;return h(o)?{ok:!0,value:{requestDigest:o}}:E()}function Ln(e){let t=b(e,["tickId","request","requestDigest"]);if(!t.ok)return l(t.reason);let n=t.record.tickId;if(typeof n!="string"||n.length===0)return l("tickId is required");let o=C(t.record.request);if(o!==void 0)return l(o);let s=t.record.requestDigest;return h(s)?{ok:!0,value:{tickId:n,requestDigest:s}}:E()}function qn(e){let t=b(e,["phase","lifecycle","deliveryId","request","requestDigest"]);if(!t.ok)return l(t.reason);let n=t.record.phase;if(n!=="lifecycle"&&n!=="handler")return l('phase must be "lifecycle" or "handler"');let o=t.record.lifecycle,s;if(o!==void 0){if(o!=="enable"&&o!=="disable"&&o!=="renew")return l('lifecycle must be "enable", "disable", or "renew"');s=o}if(n==="lifecycle"&&s===void 0)return l("lifecycle is required for the lifecycle phase");let c=t.record.deliveryId,a;if(c!==void 0){if(typeof c!="string"||c.length===0)return l("deliveryId must be a non-empty string");a=c}if(n==="handler"&&a===void 0)return l("deliveryId is required for the handler phase");let d=C(t.record.request);if(d!==void 0)return l(d);let I=t.record.requestDigest;return h(I)?{ok:!0,value:{phase:n,...s!==void 0?{lifecycle:s}:{},...a!==void 0?{deliveryId:a}:{},requestDigest:I}}:E()}function Q(e){return Ne.includes(e)?e:void 0}var Ue=["scopeKind","scopeId","requestDigest"];function Wn(e){if(!i(e))return l("consume body must be a JSON object");for(let s of Object.keys(e))if(!Ue.includes(s))return l(`consume does not accept the "${s}" field`);let t=Q(e.scopeKind);if(t===void 0)return l("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return l("scopeId is required");let o=e.requestDigest;return h(o)?{ok:!0,value:{scopeKind:t,scopeId:n,requestDigest:o}}:E()}var Be=["scopeKind","scopeId","providerHost","status","durationMs","requestBytes","responseBytes","errorCode"];function D(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 Vn(e){if(!i(e))return l("audit body must be a JSON object");for(let p of Object.keys(e))if(!Be.includes(p))return l(`audit does not accept the "${p}" field`);let t=Q(e.scopeKind);if(t===void 0)return l("scopeKind is invalid");let n=e.scopeId;if(typeof n!="string"||n.length===0)return l("scopeId is required");let o=e.providerHost;if(typeof o!="string"||o.length===0)return l("providerHost is required");let s=D(e.durationMs,"durationMs");if(!s.ok)return l(s.reason);let c;if(e.status!==void 0){let p=D(e.status,"status");if(!p.ok)return l(p.reason);c=p.value}let a;if(e.requestBytes!==void 0){let p=D(e.requestBytes,"requestBytes");if(!p.ok)return l(p.reason);a=p.value}let d;if(e.responseBytes!==void 0){let p=D(e.responseBytes,"responseBytes");if(!p.ok)return l(p.reason);d=p.value}let I;if(e.errorCode!==void 0){let p=e.errorCode;if(typeof p!="string"||p.length===0)return l("errorCode must be a non-empty string");I=p}return{ok:!0,value:{scopeKind:t,scopeId:n,providerHost:o,...c!==void 0?{status:c}:{},durationMs:s.value,...a!==void 0?{requestBytes:a}:{},...d!==void 0?{responseBytes:d}:{},...I!==void 0?{errorCode:I}:{}}}}function jn(e){return!i(e)||!i(e.grant)?r("egress grant envelope must carry a grant object"):u(e.grant)}function Jn(e){return!i(e)||e.consumed!==!0?r("egress grant consume data must carry consumed:true"):u({consumed:!0})}var tr="/:flowRunId/runtime-credential",nr="/:invocationId/runtime-credential",rr="/:discoveryInvocationId/runtime-credential",or="/:pollingInstanceId/runtime-credential",ir="/:triggerInstanceId/runtime-credential",sr=e=>`${g}/${encodeURIComponent(e)}/runtime-credential`,ur=e=>`${q}/${encodeURIComponent(e)}/runtime-credential`,ar=e=>`${W}/${encodeURIComponent(e)}/runtime-credential`,cr=e=>`${S}/${encodeURIComponent(e)}/runtime-credential`,dr=e=>`${P}/${encodeURIComponent(e)}/runtime-credential`,lr=["flow_action","tool_invoke","discovery","polling_trigger","webhook_trigger"];function A(e,t){if(!i(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 pr(e){let t=A(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 fr(e){let t=A(e??{},[]);return t.ok?u(null):r(t.reason)}function gr(e){let t=A(e??{},[]);return t.ok?u(null):r(t.reason)}function mr(e){let t=A(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 Rr(e){let t=A(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,s=t.record.deliveryId;if(s!==void 0){if(typeof s!="string"||s.length===0)return r("deliveryId must be a non-empty string");o=s}let c,a=t.record.lifecycleOperation;if(a!==void 0){if(a!=="enable"&&a!=="disable"&&a!=="renew")return r('lifecycleOperation must be "enable", "disable", or "renew"');c=a}return n==="lifecycle"&&c===void 0?r("lifecycleOperation is required for the lifecycle execution kind"):u({executionKind:n,...o!==void 0?{deliveryId:o}:{},...c!==void 0?{lifecycleOperation:c}:{}})}function yr(e){return!i(e)||typeof e.sessionId!="string"||typeof e.connectionId!="string"||typeof e.authProfileRef!="string"||typeof e.authType!="string"||!i(e.credential)?r("runtime credential session must carry sessionId, connectionId, auth profile facts and a credential object"):u(e.credential)}function U(e){return!i(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 V(e){return!i(e)||e.method!=="GET"&&e.method!=="PUT"||typeof e.url!="string"||typeof e.expires_at!="string"||!$e(e.headers)?r("presigned file URL data is invalid"):u(e)}function Fe(e){if(!i(e))return r("file upload session data is invalid");let t=U(e.file);if(!t.ok)return r(t.reason);let n=V(e.upload);return n.ok?u({file:t.value,upload:n.value}):r(n.reason)}function He(e){if(!i(e))return r("file metadata data is invalid");let t=U(e.file);return t.ok?u({file:t.value}):r(t.reason)}function $e(e){return i(e)?Object.values(e).every(t=>typeof t=="string"):!1}var w="/internal/files",wr="/upload-session",xr="/:fileId/complete",Tr="/:fileId/access",Pr="/:fileId/stat",vr="/:fileId/content",Sr=()=>w,br=()=>`${w}/upload-session`,Cr=e=>`${w}/${encodeURIComponent(e)}/complete`,Ar=(e,t)=>`${w}/${encodeURIComponent(e)}/access?intent=${encodeURIComponent(t)}`,Z=e=>`?scope_kind=${encodeURIComponent(e.scopeKind)}&scope_id=${encodeURIComponent(e.scopeId)}`,Nr=(e,t)=>`${w}/${encodeURIComponent(e)}/stat${Z(t)}`,Or=(e,t)=>`${w}/${encodeURIComponent(e)}/content${Z(t)}`;function Dr(e){if(!i(e))return r("internal file access data is invalid");if(e.intent==="runtime_read"||e.intent==="provider_multipart"){let t=U(e.file);if(!t.ok)return r(t.reason);let n=V(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")}var Hr="/:flowRunId/human-inputs",$r="/:flowRunId/human-inputs/:requestId",Gr="/:flowRunId/human-inputs/:requestId/expire",Mr="/:flowRunId/human-inputs/:requestId/acknowledge",Ge=e=>`${g}/${encodeURIComponent(e)}/human-inputs`,ee=(e,t)=>`${Ge(e)}/${encodeURIComponent(t)}`,Kr=(e,t)=>`${ee(e,t)}/expire`,Lr=(e,t)=>`${ee(e,t)}/acknowledge`,Me="human_input_resolved";function qr(e){return`${Me}_${e}`}function f(e){return{ok:!1,reason:e}}function y(e,t){return i(e)?{ok:!0,value:e}:f(`${t} must be an object`)}function x(e,t){return typeof e!="string"||e.length===0?f(`${t} must be a non-empty string`):{ok:!0,value:e}}var Ke=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/;function Le(e,t){return typeof e!="string"||!Ke.test(e)||Number.isNaN(Date.parse(e))?f(`${t} must be an ISO-8601 timestamp`):{ok:!0,value:e}}function qe(e){let t=y(e,"renderedPrompt");if(!t.ok)return t;let n=x(t.value.title,"renderedPrompt.title");if(!n.ok)return n;let o={title:n.value};if(t.value.body!==void 0){if(typeof t.value.body!="string")return f("renderedPrompt.body must be a string");o.body=t.value.body}if(t.value.format!==void 0){if(t.value.format!=="plain"&&t.value.format!=="markdown")return f("renderedPrompt.format is invalid");o.format=t.value.format}return{ok:!0,value:o}}function We(e){let t=y(e,"input");if(!t.ok)return t;let n=t.value.kind;if(n==="choice"){if(!Array.isArray(t.value.choices))return f("input.choices must be an array")}else if(n!=="text")if(n==="form"){if(!Array.isArray(t.value.fields))return f("input.fields must be an array")}else return f("input.kind is invalid");return{ok:!0,value:t.value}}function Ve(e){if(e==null)return{ok:!0,value:void 0};let t=y(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 f("partiallyRenderedDelivery.actions must be an array");let o=[];for(let s of n){let c=y(s,"delivery action");if(!c.ok)return c;let a=x(c.value.id,"delivery action id");if(!a.ok)return a;let d=te(c.value.inputs,`delivery action '${a.value}' inputs`);if(!d.ok)return d;o.push({id:a.value,inputs:d.value})}return{ok:!0,value:{actions:o}}}function te(e,t){let n=y(e,t);if(!n.ok)return n;let o={};for(let[s,c]of Object.entries(n.value)){let a=ne(c,`${t}.${s}`);if(!a.ok)return a;o[s]=a.value}return{ok:!0,value:o}}function ne(e,t){let n=y(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 s=x(n.value.path,`${t}.path`);return s.ok?{ok:!0,value:{kind:"human_input_ref",path:s.value}}:s}case"array":{if(!Array.isArray(n.value.items))return f(`${t}.items must be an array`);let s=[];for(let[c,a]of n.value.items.entries()){let d=ne(a,`${t}[${c}]`);if(!d.ok)return d;s.push(d.value)}return{ok:!0,value:{kind:"array",items:s}}}case"object":{let s=te(n.value.entries,`${t}.entries`);return s.ok?{ok:!0,value:{kind:"object",entries:s.value}}:s}case"template":{if(!Array.isArray(n.value.parts))return f(`${t}.parts must be an array`);let s=[];for(let[c,a]of n.value.parts.entries()){let d=je(a,`${t}.parts[${c}]`);if(!d.ok)return d;s.push(d.value)}return{ok:!0,value:{kind:"template",parts:s}}}default:return f(`${t}.kind is invalid`)}}function je(e,t){let n=y(e,t);if(!n.ok)return n;let o=n.value.kind;if(o==="literal")return typeof n.value.value!="string"?f(`${t}.value must be a string`):{ok:!0,value:{kind:"literal",value:n.value.value}};if(o==="human_input_ref"){let s=x(n.value.path,`${t}.path`);return s.ok?{ok:!0,value:{kind:"human_input_ref",path:s.value}}:s}return f(`${t}.kind is invalid`)}function Wr(e){let t=y(e,"request body");if(!t.ok)return r(t.reason);let n=x(t.value.nodeId,"nodeId");if(!n.ok)return r(n.reason);let o=qe(t.value.renderedPrompt);if(!o.ok)return r(o.reason);let s=We(t.value.input);if(!s.ok)return r(s.reason);let c=x(t.value.timeout,"timeout");if(!c.ok)return r(c.reason);let a=Le(t.value.expiresAt,"expiresAt");if(!a.ok)return r(a.reason);let d=Ve(t.value.partiallyRenderedDelivery);return d.ok?u({nodeId:n.value,renderedPrompt:o.value,input:s.value,timeout:c.value,expiresAt:a.value,...d.value!==void 0?{partiallyRenderedDelivery:d.value}:{}}):r(d.reason)}function Je(e){return!i(e)||typeof e.id!="string"||e.id.length===0||typeof e.nodeId!="string"||typeof e.status!="string"||!(e.output===null||i(e.output))?r("human input request view must carry id, nodeId, status and output"):u(e)}function Vr(e){if(!i(e)||typeof e.created!="boolean")return r("human input create data must carry created:boolean");let t=Je(e.request);return t.ok?u({created:e.created,request:t.value}):t}function jr(e){return!i(e)||e.acknowledged!==!0?r("human input acknowledge data must carry acknowledged:true"):u({acknowledged:!0})}var Xr="ablehi-wfp-user-runtime-manifest/v1",Yr="unknown";function zr(e){return e.endsWith(".js")?`${e.slice(0,-3)}.manifest.json`:`${e}.manifest.json`}var Zr="/internal/deployment-handshake",Xe=["start","terminate","send-event","start-webhook-watcher","run-polling-tick","invoke-tool","invoke-discovery","invoke-trigger-handler","invoke-webhook-protocol-adapter","deployment-handshake"],eo=Xe,to="HANDSHAKE_REQUEST_INVALID",no="HANDSHAKE_SECRET_UNCONFIGURED",ro="HANDSHAKE_SECRET_MISMATCH",oo="HANDSHAKE_CONTRACT_VERSION_MISMATCH",io="HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH",so="HANDSHAKE_CAPABILITY_MISSING";function uo(e){return[e.nonce,e.timestamp,e.contractVersion,e.dispatchNamespace].map(n=>`${n.length}:${n}`).join(".")}function ao(e){return["response",e.nonce,e.contractVersion,e.dispatchNamespace,...e.capabilities].map(n=>`${n.length}:${n}`).join(".")}export{Ze as CONTEXT_STATE_CLEANUP_ROUTE_PATH,Xe as DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES,eo as DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES,Zr as DEPLOYMENT_HANDSHAKE_ROUTE,Sn as DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,rr as DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Nn as EGRESS_GRANT_AUDIT_ROUTE_SUBPATH,An as EGRESS_GRANT_CONSUME_ROUTE_SUBPATH,Ne as EGRESS_GRANT_SCOPE_KINDS,mt as EVENT_WAIT_ROUTE_SUBPATH,it as EXECUTION_CONTEXT_ROUTE_SUBPATH,Tr as FILE_ACCESS_ROUTE_SUBPATH,xr as FILE_COMPLETE_ROUTE_SUBPATH,vr as FILE_CONTENT_ROUTE_SUBPATH,Pr as FILE_STAT_ROUTE_SUBPATH,wr as FILE_UPLOAD_SESSION_ROUTE_SUBPATH,Pn as FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH,gt as FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH,le as FLOW_RUN_EXECUTION_EVENT_TYPES,ft as FLOW_RUN_RESULT_ROUTE_SUBPATH,tr as FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Ct as HANDLER_BUNDLES_ROUTE_SUBPATH,so as HANDSHAKE_CAPABILITY_MISSING,oo as HANDSHAKE_CONTRACT_VERSION_MISMATCH,io as HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH,to as HANDSHAKE_REQUEST_INVALID,ro as HANDSHAKE_SECRET_MISMATCH,no as HANDSHAKE_SECRET_UNCONFIGURED,Hr as HUMAN_INPUTS_ROUTE_SUBPATH,Mr as HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH,Gr as HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH,$r as HUMAN_INPUT_REQUEST_ROUTE_SUBPATH,Me as HUMAN_INPUT_RESOLVED_EVENT_PREFIX,W as INTERNAL_DISCOVERY_INVOCATIONS_ROUTE_PREFIX,z as INTERNAL_EGRESS_GRANTS_ROUTE_PREFIX,w as INTERNAL_FILES_ROUTE_PREFIX,g as INTERNAL_FLOW_RUNS_ROUTE_PREFIX,me as INTERNAL_FLOW_VERSIONS_ROUTE_PREFIX,G as INTERNAL_INSTALLATIONS_ROUTE_PREFIX,S as INTERNAL_POLLING_TRIGGER_INSTANCES_ROUTE_PREFIX,q as INTERNAL_TOOL_INVOCATIONS_ROUTE_PREFIX,P as INTERNAL_WEBHOOK_TRIGGER_INSTANCES_ROUTE_PREFIX,pn as POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH,bn as POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,fn as POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,or as POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,gn as POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH,lr as RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS,re as SERVER_EXECUTION_CONTRACT_VERSION,pt as STEP_RESULT_ROUTE_SUBPATH,At as TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH,vn as TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,nr as TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Qt as WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH,en as WEBHOOK_PROTOCOL_ADAPTER_MODULE,Kt as WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH,qt as WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH,Cn as WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,Wt as WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH,Lt as WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,Vt as WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH,ir as WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Xr as WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION,Yr as WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION,uo as deploymentHandshakeProbePayload,ao as deploymentHandshakeResponseProofPayload,Un as discoveryInvocationEgressGrantPath,ar as discoveryInvocationRuntimeCredentialPath,$n as egressGrantAuditPath,Hn as egressGrantConsumePath,It as eventWaitPath,st as executionContextPath,On as flowRunEgressGrantPath,kt as flowRunExecutionEventsPath,yt as flowRunResultPath,sr as flowRunRuntimeCredentialPath,tn as flowScriptProtocolAdapterModuleName,Nt as handlerBundlesPath,Lr as humanInputAcknowledgePath,Kr as humanInputExpirePath,ee as humanInputRequestPath,qr as humanInputResolvedEventType,Ge as humanInputsPath,Ar as internalFileAccessPath,Cr as internalFileCompletePath,Or as internalFileContentPath,Nr as internalFileStatPath,br as internalFileUploadSessionPath,Sr as internalFilesPath,h as isValidRequestDigest,vt as parseCompleteFlowRunWaitBody,et as parseContextStateCleanupRequestBody,tt as parseContextStateCleanupResponseData,k as parseContextStateScope,Wr as parseCreateHumanInputBody,Kn as parseDiscoveryGrantBody,gr as parseDiscoveryRuntimeCredentialBody,Vn as parseEgressGrantAuditBody,Wn as parseEgressGrantConsumeBody,Jn as parseEgressGrantConsumeData,jn as parseEgressGrantData,ut as parseExecutionContextData,He as parseFileMetadataData,U as parseFileRefData,F as parseFileRuntimeLimits,Fe as parseFileUploadSessionData,Gn as parseFlowActionGrantBody,Tt as parseFlowRunExecutionEventBody,xt as parseFlowRunExecutionEventData,Et as parseFlowRunResultBody,wt as parseFlowRunResultData,pr as parseFlowRuntimeCredentialBody,ye as parseHandlerBundle,Dt as parseHandlerBundlesData,jr as parseHumanInputAcknowledgeData,Vr as parseHumanInputCreateData,Je as parseHumanInputRequestViewData,Dr as parseInternalFileAccessData,In as parsePollingPublishBody,mr as parsePollingRuntimeCredentialBody,xe as parsePollingTriggerContext,kn as parsePollingTriggerDispatchData,Ln as parsePollingTriggerGrantBody,_n as parsePublishPollingTickEventsData,Pt as parseRegisterFlowRunWaitBody,St as parseRegisterFlowRunWaitData,yr as parseRuntimeCredentialSessionCredential,O as parseRuntimeNetwork,Mn as parseSingleToolGrantBody,fr as parseSingleToolRuntimeCredentialBody,_t as parseStepRecordBody,ht as parseStepRecordData,Ut as parseToolHandlerBundlesData,M as parseTriggerFileRuntimeDispatch,on as parseTriggerHandlerBundlesData,he as parseWebhookDelivery,rn as parseWebhookDeliveryDispatchData,sn as parseWebhookPublishEventsBody,un as parseWebhookRearmBody,Rr as parseWebhookRuntimeCredentialBody,qn as parseWebhookTriggerGrantBody,nn as parseWebhookWatcherContext,mn as pollingTriggerContextPath,Bn as pollingTriggerEgressGrantPath,Rn as pollingTriggerHandlerBundlesPath,cr as pollingTriggerRuntimeCredentialPath,yn as pollingTriggerTickEventsPath,De as requestHasMultipartFileParts,Rt as stepResultPath,Ot as toolHandlerBundlesPath,Dn as toolInvocationEgressGrantPath,ur as toolInvocationRuntimeCredentialPath,Zt as webhookProtocolAdapterBundlePath,jt as webhookTriggerContextPath,Xt as webhookTriggerDeliveryPath,Fn as webhookTriggerEgressGrantPath,Yt as webhookTriggerEventsPath,Jt as webhookTriggerHandlerBundlesPath,zt as webhookTriggerRearmPath,dr as webhookTriggerRuntimeCredentialPath,zr as wfpUserRuntimeManifestPath};
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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ablehi/server-execution-contract",
3
- "version": "0.1.10",
3
+ "version": "0.3.0",
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/flow-contract": "0.1.1",
28
- "@ablehi/error-contract": "0.0.1"
27
+ "@ablehi/error-contract": "0.0.2",
28
+ "@ablehi/flow-contract": "0.3.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@typescript-eslint/eslint-plugin": "^8.62.0",