@ablehi/server-execution-contract 0.1.8 → 0.1.9
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 +1 -1
- package/dist/edge.js +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +1 -1
- package/package.json +11 -11
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, 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 { 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';
|
|
2
2
|
import '@ablehi/flow-contract';
|
|
3
3
|
import '@ablehi/error-contract';
|
package/dist/edge.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var re="0.2.10";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 Qe="/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 Ze(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 et(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",ot="/:flowRunId/execution-context";function it(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 st(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 lt="/:flowRunId/steps/:nodeId/result",pt="/:flowRunId/result",ft="/:flowRunId/execution-events",gt="/:flowRunId/event-waits/:nodeId";function mt(e,t){return`${g}/${encodeURIComponent(e)}/steps/${encodeURIComponent(t)}/result`}function Rt(e){return`${g}/${encodeURIComponent(e)}/result`}function yt(e){return`${g}/${encodeURIComponent(e)}/execution-events`}function kt(e,t){return`${g}/${encodeURIComponent(e)}/event-waits/${encodeURIComponent(t)}`}function It(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 _t(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 ht(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 Et(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 wt(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 Tt(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 Pt(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 vt(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",bt="/:flowVersionId/handler-bundles",G="/internal/installations",Ct="/:installationId/handler-bundles";function At(e,t){return`${me}/${encodeURIComponent(e)}/handler-bundles?compiledArtifactId=${encodeURIComponent(t)}`}function Nt(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 D(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 Ot(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=D(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=D(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",Mt="/:triggerInstanceId/context",Kt="/:triggerInstanceId/handler-bundles",Lt="/:triggerInstanceId/deliveries/:deliveryId",qt="/:triggerInstanceId/events",Wt="/:triggerInstanceId/rearm",v=e=>`${P}/${encodeURIComponent(e)}`;function Vt(e,t){return`${v(e)}/context?artifactDigest=${encodeURIComponent(t)}`}function jt(e,t){return`${v(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function Jt(e,t){return`${v(e)}/deliveries/${encodeURIComponent(t)}`}function Xt(e){return`${v(e)}/events`}function Yt(e){return`${v(e)}/rearm`}var zt="/:installationId/webhook-protocol-adapter-bundle";function Qt(e){return`${G}/${encodeURIComponent(e.installationId)}/webhook-protocol-adapter-bundle?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var Zt="modules/webhook/protocol-adapter.js";function en(e){return`modules/webhook/protocol-adapter-${e}.js`}function tn(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 nn(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 rn(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=D(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 on(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 sn(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",ln="/:pollingInstanceId/context",pn="/:pollingInstanceId/handler-bundles",fn="/:pollingInstanceId/ticks/:tickId/events",L=e=>`${S}/${encodeURIComponent(e)}`;function gn(e,t,n){return`${L(e)}/context?artifactDigest=${encodeURIComponent(t)}&tickId=${encodeURIComponent(n)}`}function mn(e,t){return`${L(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function Rn(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"||!ve(e.tick)||!Se(e.limits)?r("polling trigger context surface shape is invalid"):u(e)}function yn(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")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 i(e)&&typeof e.tickId=="string"&&typeof e.scheduledAt=="string"&&typeof e.attempt=="number"}function Se(e){return i(e)&&typeof e.maxEventsPerTick=="number"}function kn(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=be(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 be(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 In(e){return!i(e)||typeof e.tickId!="string"||typeof e.cursorUpdated!="boolean"||!Array.isArray(e.results)||!e.results.every(Ce)?r("publish polling tick events data surface shape is invalid"):u(e)}function Ce(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",Tn="/:flowRunId/egress-grant",Pn="/:invocationId/egress-grant",vn="/:discoveryInvocationId/egress-grant",Sn="/:pollingInstanceId/egress-grant",bn="/:triggerInstanceId/egress-grant",Cn="/:grantId/consume",An="/:grantId/audit",Nn=e=>`${g}/${encodeURIComponent(e)}/egress-grant`,Dn=e=>`${q}/${encodeURIComponent(e)}/egress-grant`,On=e=>`${W}/${encodeURIComponent(e)}/egress-grant`,Un=e=>`${S}/${encodeURIComponent(e)}/egress-grant`,Bn=e=>`${P}/${encodeURIComponent(e)}/egress-grant`,Fn=e=>`${z}/${encodeURIComponent(e)}/consume`,Hn=e=>`${z}/${encodeURIComponent(e)}/audit`,Ae=["flow_action","single_tool","discovery","polling_trigger","webhook_trigger"],Ne=/^[A-Za-z0-9][A-Za-z0-9:_+/=.-]{15,1023}$/;function h(e){return typeof e=="string"&&Ne.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 $n(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 Gn(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 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,["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 Ln(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 Ae.includes(e)?e:void 0}var Oe=["scopeKind","scopeId","requestDigest"];function qn(e){if(!i(e))return l("consume body must be a JSON object");for(let s of Object.keys(e))if(!Oe.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 Ue=["scopeKind","scopeId","providerHost","status","durationMs","requestBytes","responseBytes","errorCode"];function O(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 Wn(e){if(!i(e))return l("audit body must be a JSON object");for(let p of Object.keys(e))if(!Ue.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=O(e.durationMs,"durationMs");if(!s.ok)return l(s.reason);let c;if(e.status!==void 0){let p=O(e.status,"status");if(!p.ok)return l(p.reason);c=p.value}let a;if(e.requestBytes!==void 0){let p=O(e.requestBytes,"requestBytes");if(!p.ok)return l(p.reason);a=p.value}let d;if(e.responseBytes!==void 0){let p=O(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 Vn(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 er="/:flowRunId/runtime-credential",tr="/:invocationId/runtime-credential",nr="/:discoveryInvocationId/runtime-credential",rr="/:pollingInstanceId/runtime-credential",or="/:triggerInstanceId/runtime-credential",ir=e=>`${g}/${encodeURIComponent(e)}/runtime-credential`,sr=e=>`${q}/${encodeURIComponent(e)}/runtime-credential`,ur=e=>`${W}/${encodeURIComponent(e)}/runtime-credential`,ar=e=>`${S}/${encodeURIComponent(e)}/runtime-credential`,cr=e=>`${P}/${encodeURIComponent(e)}/runtime-credential`,dr=["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 lr(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 pr(e){let t=A(e??{},[]);return t.ok?u(null):r(t.reason)}function fr(e){let t=A(e??{},[]);return t.ok?u(null):r(t.reason)}function gr(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 mr(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 Rr(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"||!He(e.headers)?r("presigned file URL data is invalid"):u(e)}function Be(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 Fe(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 He(e){return i(e)?Object.values(e).every(t=>typeof t=="string"):!1}var x="/internal/files",Er="/upload-session",xr="/:fileId/complete",wr="/:fileId/access",Tr="/:fileId/stat",Pr="/:fileId/content",vr=()=>x,Sr=()=>`${x}/upload-session`,br=e=>`${x}/${encodeURIComponent(e)}/complete`,Cr=(e,t)=>`${x}/${encodeURIComponent(e)}/access?intent=${encodeURIComponent(t)}`,Z=e=>`?scope_kind=${encodeURIComponent(e.scopeKind)}&scope_id=${encodeURIComponent(e.scopeId)}`,Ar=(e,t)=>`${x}/${encodeURIComponent(e)}/stat${Z(t)}`,Nr=(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 Fr="/:flowRunId/human-inputs",Hr="/:flowRunId/human-inputs/:requestId",$r="/:flowRunId/human-inputs/:requestId/expire",Gr="/:flowRunId/human-inputs/:requestId/acknowledge",$e=e=>`${g}/${encodeURIComponent(e)}/human-inputs`,ee=(e,t)=>`${$e(e)}/${encodeURIComponent(t)}`,Mr=(e,t)=>`${ee(e,t)}/expire`,Kr=(e,t)=>`${ee(e,t)}/acknowledge`,Ge="human_input_resolved";function Lr(e){return`${Ge}_${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 Me=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/;function Ke(e,t){return typeof e!="string"||!Me.test(e)||Number.isNaN(Date.parse(e))?f(`${t} must be an ISO-8601 timestamp`):{ok:!0,value:e}}function Le(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 qe(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 We(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=Ve(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 Ve(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 qr(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=Le(t.value.renderedPrompt);if(!o.ok)return r(o.reason);let s=qe(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=Ke(t.value.expiresAt,"expiresAt");if(!a.ok)return r(a.reason);let d=We(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 Wr(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 Vr(e){return!i(e)||e.acknowledged!==!0?r("human input acknowledge data must carry acknowledged:true"):u({acknowledged:!0})}var Jr="ablehi-wfp-user-runtime-manifest/v1",Xr="unknown";function Yr(e){return e.endsWith(".js")?`${e.slice(0,-3)}.manifest.json`:`${e}.manifest.json`}var Qr="/internal/deployment-handshake",Je=["start","terminate","send-event","start-webhook-watcher","run-polling-tick","invoke-tool","invoke-discovery","invoke-trigger-handler","invoke-webhook-protocol-adapter","deployment-handshake"],Zr=Je,eo="HANDSHAKE_REQUEST_INVALID",to="HANDSHAKE_SECRET_UNCONFIGURED",no="HANDSHAKE_SECRET_MISMATCH",ro="HANDSHAKE_CONTRACT_VERSION_MISMATCH",oo="HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH",io="HANDSHAKE_CAPABILITY_MISSING";function so(e){return[e.nonce,e.timestamp,e.contractVersion,e.dispatchNamespace].map(n=>`${n.length}:${n}`).join(".")}function uo(e){return["response",e.nonce,e.contractVersion,e.dispatchNamespace,...e.capabilities].map(n=>`${n.length}:${n}`).join(".")}export{Qe as CONTEXT_STATE_CLEANUP_ROUTE_PATH,Je as DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES,Zr as DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES,Qr as DEPLOYMENT_HANDSHAKE_ROUTE,vn as DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,nr as DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,An as EGRESS_GRANT_AUDIT_ROUTE_SUBPATH,Cn as EGRESS_GRANT_CONSUME_ROUTE_SUBPATH,Ae as EGRESS_GRANT_SCOPE_KINDS,gt as EVENT_WAIT_ROUTE_SUBPATH,ot as EXECUTION_CONTEXT_ROUTE_SUBPATH,wr as FILE_ACCESS_ROUTE_SUBPATH,xr as FILE_COMPLETE_ROUTE_SUBPATH,Pr as FILE_CONTENT_ROUTE_SUBPATH,Tr as FILE_STAT_ROUTE_SUBPATH,Er as FILE_UPLOAD_SESSION_ROUTE_SUBPATH,Tn as FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH,ft as FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH,le as FLOW_RUN_EXECUTION_EVENT_TYPES,pt as FLOW_RUN_RESULT_ROUTE_SUBPATH,er as FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,bt as HANDLER_BUNDLES_ROUTE_SUBPATH,io as HANDSHAKE_CAPABILITY_MISSING,ro as HANDSHAKE_CONTRACT_VERSION_MISMATCH,oo as HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH,eo as HANDSHAKE_REQUEST_INVALID,no as HANDSHAKE_SECRET_MISMATCH,to as HANDSHAKE_SECRET_UNCONFIGURED,Fr as HUMAN_INPUTS_ROUTE_SUBPATH,Gr as HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH,$r as HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH,Hr as HUMAN_INPUT_REQUEST_ROUTE_SUBPATH,Ge 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,ln as POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH,Sn as POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,pn as POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,rr as POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,fn as POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH,dr as RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS,re as SERVER_EXECUTION_CONTRACT_VERSION,lt as STEP_RESULT_ROUTE_SUBPATH,Ct as TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH,Pn as TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,tr as TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,zt as WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH,Zt as WEBHOOK_PROTOCOL_ADAPTER_MODULE,Mt as WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH,Lt as WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH,bn as WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,qt as WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH,Kt as WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,Wt as WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH,or as WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Jr as WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION,Xr as WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION,so as deploymentHandshakeProbePayload,uo as deploymentHandshakeResponseProofPayload,On as discoveryInvocationEgressGrantPath,ur as discoveryInvocationRuntimeCredentialPath,Hn as egressGrantAuditPath,Fn as egressGrantConsumePath,kt as eventWaitPath,it as executionContextPath,Nn as flowRunEgressGrantPath,yt as flowRunExecutionEventsPath,Rt as flowRunResultPath,ir as flowRunRuntimeCredentialPath,en as flowScriptProtocolAdapterModuleName,At as handlerBundlesPath,Kr as humanInputAcknowledgePath,Mr as humanInputExpirePath,ee as humanInputRequestPath,Lr as humanInputResolvedEventType,$e as humanInputsPath,Cr as internalFileAccessPath,br as internalFileCompletePath,Nr as internalFileContentPath,Ar as internalFileStatPath,Sr as internalFileUploadSessionPath,vr as internalFilesPath,h as isValidRequestDigest,Pt as parseCompleteFlowRunWaitBody,Ze as parseContextStateCleanupRequestBody,et as parseContextStateCleanupResponseData,k as parseContextStateScope,qr as parseCreateHumanInputBody,Mn as parseDiscoveryGrantBody,fr as parseDiscoveryRuntimeCredentialBody,Wn as parseEgressGrantAuditBody,qn as parseEgressGrantConsumeBody,jn as parseEgressGrantConsumeData,Vn as parseEgressGrantData,st as parseExecutionContextData,Fe as parseFileMetadataData,U as parseFileRefData,F as parseFileRuntimeLimits,Be as parseFileUploadSessionData,$n as parseFlowActionGrantBody,wt as parseFlowRunExecutionEventBody,xt as parseFlowRunExecutionEventData,ht as parseFlowRunResultBody,Et as parseFlowRunResultData,lr as parseFlowRuntimeCredentialBody,ye as parseHandlerBundle,Dt as parseHandlerBundlesData,Vr as parseHumanInputAcknowledgeData,Wr as parseHumanInputCreateData,je as parseHumanInputRequestViewData,Dr as parseInternalFileAccessData,kn as parsePollingPublishBody,gr as parsePollingRuntimeCredentialBody,we as parsePollingTriggerContext,yn as parsePollingTriggerDispatchData,Kn as parsePollingTriggerGrantBody,In as parsePublishPollingTickEventsData,Tt as parseRegisterFlowRunWaitBody,vt as parseRegisterFlowRunWaitData,Rr as parseRuntimeCredentialSessionCredential,D as parseRuntimeNetwork,Gn as parseSingleToolGrantBody,pr as parseSingleToolRuntimeCredentialBody,It as parseStepRecordBody,_t as parseStepRecordData,Ot as parseToolHandlerBundlesData,M as parseTriggerFileRuntimeDispatch,rn as parseTriggerHandlerBundlesData,he as parseWebhookDelivery,nn as parseWebhookDeliveryDispatchData,on as parseWebhookPublishEventsBody,sn as parseWebhookRearmBody,mr as parseWebhookRuntimeCredentialBody,Ln as parseWebhookTriggerGrantBody,tn as parseWebhookWatcherContext,gn as pollingTriggerContextPath,Un as pollingTriggerEgressGrantPath,mn as pollingTriggerHandlerBundlesPath,ar as pollingTriggerRuntimeCredentialPath,Rn as pollingTriggerTickEventsPath,De as requestHasMultipartFileParts,mt as stepResultPath,Nt as toolHandlerBundlesPath,Dn as toolInvocationEgressGrantPath,sr as toolInvocationRuntimeCredentialPath,Qt as webhookProtocolAdapterBundlePath,Vt as webhookTriggerContextPath,Jt as webhookTriggerDeliveryPath,Bn as webhookTriggerEgressGrantPath,Xt as webhookTriggerEventsPath,jt as webhookTriggerHandlerBundlesPath,Yt as webhookTriggerRearmPath,cr as webhookTriggerRuntimeCredentialPath,Yr as wfpUserRuntimeManifestPath};
|
|
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};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PublishedFlowDefinition, RuntimeHumanInputSpec } from '@ablehi/flow-contract';
|
|
2
2
|
import { AblehiErrorDigest } from '@ablehi/error-contract';
|
|
3
3
|
|
|
4
|
-
declare const SERVER_EXECUTION_CONTRACT_VERSION = "0.2.
|
|
4
|
+
declare const SERVER_EXECUTION_CONTRACT_VERSION = "0.2.11";
|
|
5
5
|
type ServerExecutionContractVersion = typeof SERVER_EXECUTION_CONTRACT_VERSION;
|
|
6
6
|
|
|
7
7
|
type ContractParseResult<T> = {
|
|
@@ -404,6 +404,7 @@ type PackagePollingTriggerRuntimeDescriptor = {
|
|
|
404
404
|
trigger_id: string;
|
|
405
405
|
trigger_ref: string;
|
|
406
406
|
type: "polling";
|
|
407
|
+
file_outputs?: PackageTriggerFileOutput[];
|
|
407
408
|
polling: {
|
|
408
409
|
schedule: {
|
|
409
410
|
type: "interval";
|
|
@@ -417,6 +418,9 @@ type PackagePollingTriggerRuntimeDescriptor = {
|
|
|
417
418
|
run_handler_module: string;
|
|
418
419
|
};
|
|
419
420
|
};
|
|
421
|
+
type PackageTriggerFileOutput = {
|
|
422
|
+
field: string;
|
|
423
|
+
};
|
|
420
424
|
type PollingTriggerContext = {
|
|
421
425
|
artifactDigest: string;
|
|
422
426
|
triggerRef: string;
|
|
@@ -920,4 +924,4 @@ declare function deploymentHandshakeResponseProofPayload(input: {
|
|
|
920
924
|
capabilities: string[];
|
|
921
925
|
}): string;
|
|
922
926
|
|
|
923
|
-
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 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 };
|
|
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 };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var re="0.2.10";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 Qe="/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 Ze(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 et(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",ot="/:flowRunId/execution-context";function it(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 st(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 lt="/:flowRunId/steps/:nodeId/result",pt="/:flowRunId/result",ft="/:flowRunId/execution-events",gt="/:flowRunId/event-waits/:nodeId";function mt(e,t){return`${g}/${encodeURIComponent(e)}/steps/${encodeURIComponent(t)}/result`}function Rt(e){return`${g}/${encodeURIComponent(e)}/result`}function yt(e){return`${g}/${encodeURIComponent(e)}/execution-events`}function kt(e,t){return`${g}/${encodeURIComponent(e)}/event-waits/${encodeURIComponent(t)}`}function It(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 _t(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 ht(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 Et(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 xt(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 Tt(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 Pt(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 vt(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",bt="/:flowVersionId/handler-bundles",G="/internal/installations",Ct="/:installationId/handler-bundles";function At(e,t){return`${me}/${encodeURIComponent(e)}/handler-bundles?compiledArtifactId=${encodeURIComponent(t)}`}function Nt(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 D(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 Ot(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=D(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=D(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",Mt="/:triggerInstanceId/context",Kt="/:triggerInstanceId/handler-bundles",Lt="/:triggerInstanceId/deliveries/:deliveryId",qt="/:triggerInstanceId/events",Wt="/:triggerInstanceId/rearm",v=e=>`${P}/${encodeURIComponent(e)}`;function Vt(e,t){return`${v(e)}/context?artifactDigest=${encodeURIComponent(t)}`}function jt(e,t){return`${v(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function Jt(e,t){return`${v(e)}/deliveries/${encodeURIComponent(t)}`}function Xt(e){return`${v(e)}/events`}function Yt(e){return`${v(e)}/rearm`}var zt="/:installationId/webhook-protocol-adapter-bundle";function Qt(e){return`${G}/${encodeURIComponent(e.installationId)}/webhook-protocol-adapter-bundle?workspaceId=${encodeURIComponent(e.workspaceId)}&artifactDigest=${encodeURIComponent(e.artifactDigest)}`}var Zt="modules/webhook/protocol-adapter.js";function en(e){return`modules/webhook/protocol-adapter-${e}.js`}function tn(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 nn(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 rn(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=D(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 on(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 sn(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",ln="/:pollingInstanceId/context",pn="/:pollingInstanceId/handler-bundles",fn="/:pollingInstanceId/ticks/:tickId/events",L=e=>`${S}/${encodeURIComponent(e)}`;function gn(e,t,n){return`${L(e)}/context?artifactDigest=${encodeURIComponent(t)}&tickId=${encodeURIComponent(n)}`}function mn(e,t){return`${L(e)}/handler-bundles?artifactDigest=${encodeURIComponent(t)}`}function Rn(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"||!ve(e.tick)||!Se(e.limits)?r("polling trigger context surface shape is invalid"):u(e)}function yn(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")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 i(e)&&typeof e.tickId=="string"&&typeof e.scheduledAt=="string"&&typeof e.attempt=="number"}function Se(e){return i(e)&&typeof e.maxEventsPerTick=="number"}function kn(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=be(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 be(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 In(e){return!i(e)||typeof e.tickId!="string"||typeof e.cursorUpdated!="boolean"||!Array.isArray(e.results)||!e.results.every(Ce)?r("publish polling tick events data surface shape is invalid"):u(e)}function Ce(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",Tn="/:flowRunId/egress-grant",Pn="/:invocationId/egress-grant",vn="/:discoveryInvocationId/egress-grant",Sn="/:pollingInstanceId/egress-grant",bn="/:triggerInstanceId/egress-grant",Cn="/:grantId/consume",An="/:grantId/audit",Nn=e=>`${g}/${encodeURIComponent(e)}/egress-grant`,Dn=e=>`${q}/${encodeURIComponent(e)}/egress-grant`,On=e=>`${W}/${encodeURIComponent(e)}/egress-grant`,Un=e=>`${S}/${encodeURIComponent(e)}/egress-grant`,Bn=e=>`${P}/${encodeURIComponent(e)}/egress-grant`,Fn=e=>`${z}/${encodeURIComponent(e)}/consume`,Hn=e=>`${z}/${encodeURIComponent(e)}/audit`,Ae=["flow_action","single_tool","discovery","polling_trigger","webhook_trigger"],Ne=/^[A-Za-z0-9][A-Za-z0-9:_+/=.-]{15,1023}$/;function h(e){return typeof e=="string"&&Ne.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 $n(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 Gn(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 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,["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 Ln(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 Ae.includes(e)?e:void 0}var Oe=["scopeKind","scopeId","requestDigest"];function qn(e){if(!i(e))return l("consume body must be a JSON object");for(let s of Object.keys(e))if(!Oe.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 Ue=["scopeKind","scopeId","providerHost","status","durationMs","requestBytes","responseBytes","errorCode"];function O(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 Wn(e){if(!i(e))return l("audit body must be a JSON object");for(let p of Object.keys(e))if(!Ue.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=O(e.durationMs,"durationMs");if(!s.ok)return l(s.reason);let c;if(e.status!==void 0){let p=O(e.status,"status");if(!p.ok)return l(p.reason);c=p.value}let a;if(e.requestBytes!==void 0){let p=O(e.requestBytes,"requestBytes");if(!p.ok)return l(p.reason);a=p.value}let d;if(e.responseBytes!==void 0){let p=O(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 Vn(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 er="/:flowRunId/runtime-credential",tr="/:invocationId/runtime-credential",nr="/:discoveryInvocationId/runtime-credential",rr="/:pollingInstanceId/runtime-credential",or="/:triggerInstanceId/runtime-credential",ir=e=>`${g}/${encodeURIComponent(e)}/runtime-credential`,sr=e=>`${q}/${encodeURIComponent(e)}/runtime-credential`,ur=e=>`${W}/${encodeURIComponent(e)}/runtime-credential`,ar=e=>`${S}/${encodeURIComponent(e)}/runtime-credential`,cr=e=>`${P}/${encodeURIComponent(e)}/runtime-credential`,dr=["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 lr(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 pr(e){let t=A(e??{},[]);return t.ok?u(null):r(t.reason)}function fr(e){let t=A(e??{},[]);return t.ok?u(null):r(t.reason)}function gr(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 mr(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 Rr(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"||!He(e.headers)?r("presigned file URL data is invalid"):u(e)}function Be(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 Fe(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 He(e){return i(e)?Object.values(e).every(t=>typeof t=="string"):!1}var w="/internal/files",Er="/upload-session",wr="/:fileId/complete",xr="/:fileId/access",Tr="/:fileId/stat",Pr="/:fileId/content",vr=()=>w,Sr=()=>`${w}/upload-session`,br=e=>`${w}/${encodeURIComponent(e)}/complete`,Cr=(e,t)=>`${w}/${encodeURIComponent(e)}/access?intent=${encodeURIComponent(t)}`,Z=e=>`?scope_kind=${encodeURIComponent(e.scopeKind)}&scope_id=${encodeURIComponent(e.scopeId)}`,Ar=(e,t)=>`${w}/${encodeURIComponent(e)}/stat${Z(t)}`,Nr=(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 Fr="/:flowRunId/human-inputs",Hr="/:flowRunId/human-inputs/:requestId",$r="/:flowRunId/human-inputs/:requestId/expire",Gr="/:flowRunId/human-inputs/:requestId/acknowledge",$e=e=>`${g}/${encodeURIComponent(e)}/human-inputs`,ee=(e,t)=>`${$e(e)}/${encodeURIComponent(t)}`,Mr=(e,t)=>`${ee(e,t)}/expire`,Kr=(e,t)=>`${ee(e,t)}/acknowledge`,Ge="human_input_resolved";function Lr(e){return`${Ge}_${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 Me=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/;function Ke(e,t){return typeof e!="string"||!Me.test(e)||Number.isNaN(Date.parse(e))?f(`${t} must be an ISO-8601 timestamp`):{ok:!0,value:e}}function Le(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 qe(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 We(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=Ve(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 Ve(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 qr(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=Le(t.value.renderedPrompt);if(!o.ok)return r(o.reason);let s=qe(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=Ke(t.value.expiresAt,"expiresAt");if(!a.ok)return r(a.reason);let d=We(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 Wr(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 Vr(e){return!i(e)||e.acknowledged!==!0?r("human input acknowledge data must carry acknowledged:true"):u({acknowledged:!0})}var Jr="ablehi-wfp-user-runtime-manifest/v1",Xr="unknown";function Yr(e){return e.endsWith(".js")?`${e.slice(0,-3)}.manifest.json`:`${e}.manifest.json`}var Qr="/internal/deployment-handshake",Je=["start","terminate","send-event","start-webhook-watcher","run-polling-tick","invoke-tool","invoke-discovery","invoke-trigger-handler","invoke-webhook-protocol-adapter","deployment-handshake"],Zr=Je,eo="HANDSHAKE_REQUEST_INVALID",to="HANDSHAKE_SECRET_UNCONFIGURED",no="HANDSHAKE_SECRET_MISMATCH",ro="HANDSHAKE_CONTRACT_VERSION_MISMATCH",oo="HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH",io="HANDSHAKE_CAPABILITY_MISSING";function so(e){return[e.nonce,e.timestamp,e.contractVersion,e.dispatchNamespace].map(n=>`${n.length}:${n}`).join(".")}function uo(e){return["response",e.nonce,e.contractVersion,e.dispatchNamespace,...e.capabilities].map(n=>`${n.length}:${n}`).join(".")}export{Qe as CONTEXT_STATE_CLEANUP_ROUTE_PATH,Je as DEPLOYMENT_HANDSHAKE_DISPATCHER_CAPABILITIES,Zr as DEPLOYMENT_HANDSHAKE_REQUIRED_CAPABILITIES,Qr as DEPLOYMENT_HANDSHAKE_ROUTE,vn as DISCOVERY_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,nr as DISCOVERY_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,An as EGRESS_GRANT_AUDIT_ROUTE_SUBPATH,Cn as EGRESS_GRANT_CONSUME_ROUTE_SUBPATH,Ae as EGRESS_GRANT_SCOPE_KINDS,gt as EVENT_WAIT_ROUTE_SUBPATH,ot as EXECUTION_CONTEXT_ROUTE_SUBPATH,xr as FILE_ACCESS_ROUTE_SUBPATH,wr as FILE_COMPLETE_ROUTE_SUBPATH,Pr as FILE_CONTENT_ROUTE_SUBPATH,Tr as FILE_STAT_ROUTE_SUBPATH,Er as FILE_UPLOAD_SESSION_ROUTE_SUBPATH,Tn as FLOW_RUN_EGRESS_GRANT_ROUTE_SUBPATH,ft as FLOW_RUN_EXECUTION_EVENTS_ROUTE_SUBPATH,le as FLOW_RUN_EXECUTION_EVENT_TYPES,pt as FLOW_RUN_RESULT_ROUTE_SUBPATH,er as FLOW_RUN_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,bt as HANDLER_BUNDLES_ROUTE_SUBPATH,io as HANDSHAKE_CAPABILITY_MISSING,ro as HANDSHAKE_CONTRACT_VERSION_MISMATCH,oo as HANDSHAKE_DISPATCH_NAMESPACE_MISMATCH,eo as HANDSHAKE_REQUEST_INVALID,no as HANDSHAKE_SECRET_MISMATCH,to as HANDSHAKE_SECRET_UNCONFIGURED,Fr as HUMAN_INPUTS_ROUTE_SUBPATH,Gr as HUMAN_INPUT_ACKNOWLEDGE_ROUTE_SUBPATH,$r as HUMAN_INPUT_EXPIRE_ROUTE_SUBPATH,Hr as HUMAN_INPUT_REQUEST_ROUTE_SUBPATH,Ge 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,ln as POLLING_TRIGGER_CONTEXT_ROUTE_SUBPATH,Sn as POLLING_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,pn as POLLING_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,rr as POLLING_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,fn as POLLING_TRIGGER_TICK_EVENTS_ROUTE_SUBPATH,dr as RUNTIME_CREDENTIAL_SESSION_SCOPE_KINDS,re as SERVER_EXECUTION_CONTRACT_VERSION,lt as STEP_RESULT_ROUTE_SUBPATH,Ct as TOOL_HANDLER_BUNDLES_ROUTE_SUBPATH,Pn as TOOL_INVOCATION_EGRESS_GRANT_ROUTE_SUBPATH,tr as TOOL_INVOCATION_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,zt as WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_ROUTE_SUBPATH,Zt as WEBHOOK_PROTOCOL_ADAPTER_MODULE,Mt as WEBHOOK_TRIGGER_CONTEXT_ROUTE_SUBPATH,Lt as WEBHOOK_TRIGGER_DELIVERY_ROUTE_SUBPATH,bn as WEBHOOK_TRIGGER_EGRESS_GRANT_ROUTE_SUBPATH,qt as WEBHOOK_TRIGGER_EVENTS_ROUTE_SUBPATH,Kt as WEBHOOK_TRIGGER_HANDLER_BUNDLES_ROUTE_SUBPATH,Wt as WEBHOOK_TRIGGER_REARM_ROUTE_SUBPATH,or as WEBHOOK_TRIGGER_RUNTIME_CREDENTIAL_ROUTE_SUBPATH,Jr as WFP_USER_RUNTIME_MANIFEST_FORMAT_VERSION,Xr as WFP_USER_RUNTIME_UNKNOWN_SOURCE_REVISION,so as deploymentHandshakeProbePayload,uo as deploymentHandshakeResponseProofPayload,On as discoveryInvocationEgressGrantPath,ur as discoveryInvocationRuntimeCredentialPath,Hn as egressGrantAuditPath,Fn as egressGrantConsumePath,kt as eventWaitPath,it as executionContextPath,Nn as flowRunEgressGrantPath,yt as flowRunExecutionEventsPath,Rt as flowRunResultPath,ir as flowRunRuntimeCredentialPath,en as flowScriptProtocolAdapterModuleName,At as handlerBundlesPath,Kr as humanInputAcknowledgePath,Mr as humanInputExpirePath,ee as humanInputRequestPath,Lr as humanInputResolvedEventType,$e as humanInputsPath,Cr as internalFileAccessPath,br as internalFileCompletePath,Nr as internalFileContentPath,Ar as internalFileStatPath,Sr as internalFileUploadSessionPath,vr as internalFilesPath,h as isValidRequestDigest,Pt as parseCompleteFlowRunWaitBody,Ze as parseContextStateCleanupRequestBody,et as parseContextStateCleanupResponseData,k as parseContextStateScope,qr as parseCreateHumanInputBody,Mn as parseDiscoveryGrantBody,fr as parseDiscoveryRuntimeCredentialBody,Wn as parseEgressGrantAuditBody,qn as parseEgressGrantConsumeBody,jn as parseEgressGrantConsumeData,Vn as parseEgressGrantData,st as parseExecutionContextData,Fe as parseFileMetadataData,U as parseFileRefData,F as parseFileRuntimeLimits,Be as parseFileUploadSessionData,$n as parseFlowActionGrantBody,xt as parseFlowRunExecutionEventBody,wt as parseFlowRunExecutionEventData,ht as parseFlowRunResultBody,Et as parseFlowRunResultData,lr as parseFlowRuntimeCredentialBody,ye as parseHandlerBundle,Dt as parseHandlerBundlesData,Vr as parseHumanInputAcknowledgeData,Wr as parseHumanInputCreateData,je as parseHumanInputRequestViewData,Dr as parseInternalFileAccessData,kn as parsePollingPublishBody,gr as parsePollingRuntimeCredentialBody,xe as parsePollingTriggerContext,yn as parsePollingTriggerDispatchData,Kn as parsePollingTriggerGrantBody,In as parsePublishPollingTickEventsData,Tt as parseRegisterFlowRunWaitBody,vt as parseRegisterFlowRunWaitData,Rr as parseRuntimeCredentialSessionCredential,D as parseRuntimeNetwork,Gn as parseSingleToolGrantBody,pr as parseSingleToolRuntimeCredentialBody,It as parseStepRecordBody,_t as parseStepRecordData,Ot as parseToolHandlerBundlesData,M as parseTriggerFileRuntimeDispatch,rn as parseTriggerHandlerBundlesData,he as parseWebhookDelivery,nn as parseWebhookDeliveryDispatchData,on as parseWebhookPublishEventsBody,sn as parseWebhookRearmBody,mr as parseWebhookRuntimeCredentialBody,Ln as parseWebhookTriggerGrantBody,tn as parseWebhookWatcherContext,gn as pollingTriggerContextPath,Un as pollingTriggerEgressGrantPath,mn as pollingTriggerHandlerBundlesPath,ar as pollingTriggerRuntimeCredentialPath,Rn as pollingTriggerTickEventsPath,De as requestHasMultipartFileParts,mt as stepResultPath,Nt as toolHandlerBundlesPath,Dn as toolInvocationEgressGrantPath,sr as toolInvocationRuntimeCredentialPath,Qt as webhookProtocolAdapterBundlePath,Vt as webhookTriggerContextPath,Jt as webhookTriggerDeliveryPath,Bn as webhookTriggerEgressGrantPath,Xt as webhookTriggerEventsPath,jt as webhookTriggerHandlerBundlesPath,Yt as webhookTriggerRearmPath,cr as webhookTriggerRuntimeCredentialPath,Yr as wfpUserRuntimeManifestPath};
|
|
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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ablehi/server-execution-contract",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "Ablehi server to Cloudflare execution contract.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -23,9 +23,16 @@
|
|
|
23
23
|
"files": [
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsup",
|
|
28
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
29
|
+
"test": "vitest run --passWithNoTests",
|
|
30
|
+
"lint": "eslint src --ext .ts",
|
|
31
|
+
"check": "pnpm build && pnpm typecheck && pnpm lint && pnpm test"
|
|
32
|
+
},
|
|
26
33
|
"dependencies": {
|
|
27
|
-
"@ablehi/error-contract": "
|
|
28
|
-
"@ablehi/flow-contract": "
|
|
34
|
+
"@ablehi/error-contract": "workspace:*",
|
|
35
|
+
"@ablehi/flow-contract": "workspace:*"
|
|
29
36
|
},
|
|
30
37
|
"devDependencies": {
|
|
31
38
|
"@typescript-eslint/eslint-plugin": "^8.62.0",
|
|
@@ -34,12 +41,5 @@
|
|
|
34
41
|
"tsup": "^8.5.1",
|
|
35
42
|
"typescript": "^6.0.3",
|
|
36
43
|
"vitest": "^4.1.9"
|
|
37
|
-
},
|
|
38
|
-
"scripts": {
|
|
39
|
-
"build": "tsup",
|
|
40
|
-
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
41
|
-
"test": "vitest run --passWithNoTests",
|
|
42
|
-
"lint": "eslint src --ext .ts",
|
|
43
|
-
"check": "pnpm build && pnpm typecheck && pnpm lint && pnpm test"
|
|
44
44
|
}
|
|
45
|
-
}
|
|
45
|
+
}
|