@ablehi/error-contract 0.0.4 → 0.0.6
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/index.d.ts +7 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -140,6 +140,12 @@ type ErrorContractParseResult<T> = {
|
|
|
140
140
|
ok: false;
|
|
141
141
|
reason: string;
|
|
142
142
|
};
|
|
143
|
+
declare const REGISTERED_ERROR_CODE: unique symbol;
|
|
144
|
+
type RegisteredErrorCode = string & {
|
|
145
|
+
readonly [REGISTERED_ERROR_CODE]: true;
|
|
146
|
+
};
|
|
147
|
+
declare function isKnownErrorCode(value: unknown): value is RegisteredErrorCode;
|
|
148
|
+
declare function parseRegisteredErrorCode(value: unknown): ErrorContractParseResult<RegisteredErrorCode>;
|
|
143
149
|
declare function lookupErrorRegistryEntry(code: string): ErrorRegistryEntry;
|
|
144
150
|
declare function listErrorRegistryEntries(): ErrorRegistryEntry[];
|
|
145
151
|
declare function normalizeErrorDigest(input: ErrorNormalizationInput): AblehiErrorDigest;
|
|
@@ -148,4 +154,4 @@ declare function parseAblehiErrorDigest(value: unknown): ErrorContractParseResul
|
|
|
148
154
|
declare function projectPublicErrorView(digest: AblehiErrorDigest): PublicErrorView;
|
|
149
155
|
declare function projectAgentErrorView(digest: AblehiErrorDigest): AgentErrorView;
|
|
150
156
|
|
|
151
|
-
export { ABLEHI_ERROR_DIGEST_SCHEMA_VERSION, type AblehiErrorDigest, type AgentErrorView, type AgentRepairability, type ErrorAttemptRef, type ErrorCategory, type ErrorContractParseResult, type ErrorEvidence, type ErrorIssue, type ErrorNormalizationInput, type ErrorRegistryEntry, type ErrorScope, type ErrorSeverity, type ErrorSourceProject, type ErrorSourceRef, type ErrorSubjectRef, GENERIC_ERROR_CODE, type IntegrationErrorInput, type NativeErrorInput, type PublicDisplayTone, type PublicErrorActionHint, type PublicErrorView, type SafeProviderEvidence, type SentryDiagnosticDisposition, isAblehiErrorDigest, listErrorRegistryEntries, lookupErrorRegistryEntry, normalizeErrorDigest, parseAblehiErrorDigest, projectAgentErrorView, projectPublicErrorView };
|
|
157
|
+
export { ABLEHI_ERROR_DIGEST_SCHEMA_VERSION, type AblehiErrorDigest, type AgentErrorView, type AgentRepairability, type ErrorAttemptRef, type ErrorCategory, type ErrorContractParseResult, type ErrorEvidence, type ErrorIssue, type ErrorNormalizationInput, type ErrorRegistryEntry, type ErrorScope, type ErrorSeverity, type ErrorSourceProject, type ErrorSourceRef, type ErrorSubjectRef, GENERIC_ERROR_CODE, type IntegrationErrorInput, type NativeErrorInput, type PublicDisplayTone, type PublicErrorActionHint, type PublicErrorView, type RegisteredErrorCode, type SafeProviderEvidence, type SentryDiagnosticDisposition, isAblehiErrorDigest, isKnownErrorCode, listErrorRegistryEntries, lookupErrorRegistryEntry, normalizeErrorDigest, parseAblehiErrorDigest, parseRegisteredErrorCode, projectAgentErrorView, projectPublicErrorView };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var R="ablehi.error.digest.v1",T="INTERNAL_ERROR",O=new Set(["content-type","retry-after","x-request-id","request-id","x-correlation-id"]),h=new Set(["ablehi-server","ablehi-cf-execution-runtime","agentIntegrations"]),w=new Set(["api_request","flow_run","flow_step","integration_invocation","native_runtime"]),k=new Set(["validation","auth","permission","not_found","rate_limit","provider","network","runtime","internal","canceled"]),j=new Set(["info","warning","error"]),S=["workspaceId","flowId","flowVersionId","flowRunId","stepId","nodeId","integrationId","actionId","toolRef","connectionId","requestId","traceRef"],M=["workspaceId","flowId","flowVersionId","flowRunId","stepId","nodeId","integrationId","actionId","connectionId"],C=[o(T,{category:"internal",severity:"error",retryable:!1,displayTone:"error",titleKey:"errors.generic.title",bodyKey:"errors.generic.body",actionHints:[{type:"contact_support"}],repairability:"internal_only",issues:"always"}),o("VALIDATION_ERROR",{category:"validation",severity:"warning",retryable:!1,displayTone:"warning",titleKey:"errors.validation.title",bodyKey:"errors.validation.body",actionHints:[],repairability:"user_action",issues:"never"}),o("AUTH_INVALID",A("errors.auth.invalid.title","errors.auth.invalid.body")),o("AUTH_EXPIRED",A("errors.auth.expired.title","errors.auth.expired.body")),o("PERMISSION_DENIED",{category:"permission",severity:"warning",retryable:!1,displayTone:"warning",titleKey:"errors.permissionDenied.title",bodyKey:"errors.permissionDenied.body",actionHints:[],repairability:"user_action",issues:"never"}),o("NOT_FOUND",{category:"not_found",severity:"warning",retryable:!1,displayTone:"warning",titleKey:"errors.notFound.title",bodyKey:"errors.notFound.body",actionHints:[],repairability:"user_action",issues:"never"}),o("RATE_LIMITED",{category:"rate_limit",severity:"warning",retryable:!0,displayTone:"warning",titleKey:"errors.rateLimited.title",bodyKey:"errors.rateLimited.body",actionHints:[{type:"retry"}],repairability:"retryable",issues:"never"}),o("PROVIDER_ERROR",m("errors.provider.title","errors.provider.body")),o("NETWORK_UNREACHABLE",m("errors.network.title","errors.network.body")),o("HTTP_REQUEST_FAILED",m("errors.httpRequestFailed.title","errors.httpRequestFailed.body")),o("TOOL_NOT_FOUND",a("errors.toolNotFound.title","errors.toolNotFound.body")),o("FILE_NOT_FOUND",a("errors.fileNotFound.title","errors.fileNotFound.body")),o("FILE_RUNTIME_UNAVAILABLE",y("errors.fileRuntimeUnavailable.title","errors.fileRuntimeUnavailable.body")),o("FILE_TOO_LARGE",a("errors.fileTooLarge.title","errors.fileTooLarge.body")),o("FILE_STORE_QUOTA_EXCEEDED",a("errors.fileQuota.title","errors.fileQuota.body")),o("TOOL_RUNTIME_UNAVAILABLE",y("errors.toolRuntimeUnavailable.title","errors.toolRuntimeUnavailable.body")),o("TOOL_EXECUTION_FAILED",m("errors.toolExecutionFailed.title","errors.toolExecutionFailed.body")),o("HTTP_RUNTIME_UNAVAILABLE",y("errors.httpRuntimeUnavailable.title","errors.httpRuntimeUnavailable.body")),o("FLOW_RUN_CONNECTION_AUTH_MISMATCH",d("errors.connection.authMismatch.title","errors.connection.authMismatch.body")),o("CONNECTION_AUTH_PROFILE_UNSUPPORTED",d("errors.connection.profileUnsupported.title","errors.connection.profileUnsupported.body")),o("RUNTIME_CREDENTIAL_AUTH_MISMATCH",d("errors.connection.runtimeAuthMismatch.title","errors.connection.runtimeAuthMismatch.body")),o("EGRESS_GRANT_AUTH_MISMATCH",d("errors.connection.egressAuthMismatch.title","errors.connection.egressAuthMismatch.body")),o("RUNTIME_CREDENTIAL_REFRESH_FAILED",d("errors.connection.refreshFailed.title","errors.connection.refreshFailed.body")),o("CONNECTION_NOT_FOUND",d("errors.connection.notFound.title","errors.connection.notFound.body")),o("AMBIGUOUS_CONNECTION",d("errors.connection.ambiguous.title","errors.connection.ambiguous.body")),o("CREDENTIAL_UNAVAILABLE",d("errors.connection.credentialUnavailable.title","errors.connection.credentialUnavailable.body")),o("TRUSTED_SDK_CREDENTIAL_UNAVAILABLE",d("errors.connection.trustedCredentialUnavailable.title","errors.connection.trustedCredentialUnavailable.body")),o("TRUSTED_SDK_CREDENTIAL_FORBIDDEN",d("errors.connection.trustedCredentialForbidden.title","errors.connection.trustedCredentialForbidden.body")),o("TRUSTED_SDK_CREDENTIAL_RESOLUTION_FAILED",d("errors.connection.trustedCredentialResolutionFailed.title","errors.connection.trustedCredentialResolutionFailed.body")),o("REQUEST_MULTIPART_FILE_INVALID",a("errors.requestMultipartFileInvalid.title","errors.requestMultipartFileInvalid.body")),o("REQUEST_PATH_BINDING_INVALID",a("errors.requestPathBindingInvalid.title","errors.requestPathBindingInvalid.body")),o("REQUEST_PLAN_INVALID",a("errors.requestPlanInvalid.title","errors.requestPlanInvalid.body")),o("INTERPRETER_DATA_REF_UNRESOLVED",a("errors.interpreterDataRefUnresolved.title","errors.interpreterDataRefUnresolved.body")),o("FLOW_NODE_UNSUPPORTED",a("errors.flowNodeUnsupported.title","errors.flowNodeUnsupported.body")),o("FLOW_INTERPRETER_INVALID_IR",a("errors.flowInterpreterInvalidIr.title","errors.flowInterpreterInvalidIr.body")),o("FLOW_ACTION_OUTPUT_PROJECTION_FAILED",a("errors.flowActionOutputProjectionFailed.title","errors.flowActionOutputProjectionFailed.body")),o("ACTION_TRANSFORM_BINDING_MISMATCH",I("errors.generic.title","errors.generic.body")),o("ACTION_TRANSFORM_VALUE_INVALID",I("errors.generic.title","errors.generic.body")),o("ACTION_TRANSFORM_FAILED",I("errors.generic.title","errors.generic.body")),o("ACTION_TRANSFORM_UNAVAILABLE",y("errors.generic.title","errors.generic.body")),o("INBOX_MESSAGE_IDEMPOTENCY_KEY_INVALID",a("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),o("INBOX_MESSAGE_PAYLOAD_INVALID",a("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),o("INBOX_MESSAGE_PAYLOAD_TOO_LARGE",a("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),o("INBOX_MESSAGE_RENDER_INVALID",a("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),o("INBOX_MESSAGE_CONTENT_TOO_LARGE",a("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),o("INBOX_MESSAGE_ATTACHMENT_INVALID",a("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),o("INBOX_MESSAGE_ATTACHMENT_UNAVAILABLE",a("errors.inboxMessage.attachmentUnavailable.title","errors.inboxMessage.attachmentUnavailable.body")),o("FLOW_INBOX_MESSAGE_INVALID",a("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),o("EXECUTION_LEASE_INVALID",I("errors.executionLeaseInvalid.title","errors.executionLeaseInvalid.body")),o("EXECUTION_LEASE_SUPERSEDED",N("errors.executionLeaseSuperseded.title","errors.executionLeaseSuperseded.body")),o("INBOX_MESSAGE_EMISSION_WINDOW_CLOSED",N("errors.inboxMessage.deliveryClosed.title","errors.inboxMessage.deliveryClosed.body")),o("INBOX_MESSAGE_EMISSION_CONFLICT",a("errors.inboxMessage.conflict.title","errors.inboxMessage.conflict.body")),o("INBOX_MESSAGE_EMISSION_UNAVAILABLE",y("errors.inboxMessage.deliveryUnavailable.title","errors.inboxMessage.deliveryUnavailable.body")),o("INTERPRETER_SERVER_CALLBACK_FAILED",y("errors.serverCallbackFailed.title","errors.serverCallbackFailed.body")),o("INTERPRETER_CONTRACT_VERSION_UNSUPPORTED",{category:"internal",severity:"error",retryable:!1,displayTone:"error",titleKey:"errors.interpreterContractVersionUnsupported.title",bodyKey:"errors.interpreterContractVersionUnsupported.body",actionHints:[{type:"contact_support"}],repairability:"internal_only",issues:"always"}),o("CF_RUNTIME_UNKNOWN_FAILURE",y("errors.cfRuntimeUnknownFailure.title","errors.cfRuntimeUnknownFailure.body")),o("RUN_DISPATCH_UNAVAILABLE",y("errors.runDispatchUnavailable.title","errors.runDispatchUnavailable.body")),o("WFP_SCRIPT_NOT_READY",y("errors.wfpScriptNotReady.title","errors.wfpScriptNotReady.body")),o("FLOW_RUN_NOT_FOUND",a("errors.flowRunNotFound.title","errors.flowRunNotFound.body")),o("WORKSPACE_NOT_FOUND",a("errors.workspaceNotFound.title","errors.workspaceNotFound.body"))],_=new Map(C.map(e=>[e.code,e])),D=_.get(T);function L(e){return U(_.get(e)??D)}function fe(){return C.map(e=>U(e))}function pe(e){let r=_.get(e.code??"")??D,t=F(e.source),n=K(e.scope),s=B(e.subject),u=W("attempt"in e?e.attempt:void 0),b=oe(e.occurredAt),E=z(e.evidence),f={schemaVersion:R,errorId:ae({scope:n,subject:q(s),attempt:u?.number??"__none__",code:r.code}),code:r.code,category:r.category,severity:r.severity,retryable:r.retryable,source:t,scope:n,subject:s,occurredAt:b};return u!==void 0&&(f.attempt=u),E!==void 0&&(f.evidence=E),f}function ge(e){return x(e).ok}function x(e){if(!c(e))return i("digest must be a JSON object");let r=g(e,["schemaVersion","errorId","code","category","severity","retryable","source","scope","subject","attempt","occurredAt","evidence"]);if(r!==void 0)return i(`digest does not accept the "${r}" field`);if(e.schemaVersion!==R)return i("digest schemaVersion is invalid");if(typeof e.errorId!="string"||e.errorId.length===0)return i("digest errorId must be a non-empty string");let t=typeof e.code=="string"?_.get(e.code):void 0;if(t===void 0)return i("digest code is not registered");if(!ye(e.category))return i("digest category is invalid");if(!le(e.severity))return i("digest severity is invalid");if(typeof e.retryable!="boolean")return i("digest retryable must be boolean");if(e.category!==t.category||e.severity!==t.severity||e.retryable!==t.retryable)return i("digest machine semantics do not match its registered code");let n=H(e.source);if(!n.ok)return n;let s=V(e.scope);if(!s.ok)return s;let u=G(e.subject);if(!u.ok)return u;let b;if(e.attempt!==void 0){let p=X(e.attempt);if(!p.ok)return p;b=p.value}if(typeof e.occurredAt!="string"||!P(e.occurredAt))return i("digest occurredAt must be an ISO timestamp");let E;if(e.evidence!==void 0){let p=J(e.evidence);if(!p.ok)return p;E=p.value}let f={schemaVersion:R,errorId:e.errorId,code:t.code,category:e.category,severity:e.severity,retryable:e.retryable,source:n.value,scope:s.value,subject:u.value,occurredAt:e.occurredAt};return b!==void 0&&(f.attempt=b),E!==void 0&&(f.evidence=E),{ok:!0,value:f}}function Ee(e){let r=L(e.code),t=te(e);return{errorId:e.errorId,code:r.code,category:r.category,retryable:r.retryable,displayTone:r.displayTone,message:{titleKey:r.publicMessage.titleKey,bodyKey:r.publicMessage.bodyKey,...Object.keys(t).length===0?{}:{params:t}},actionHints:r.actionHints.map(n=>n.type==="reconnect"&&e.subject.connectionId!==void 0?{...n,connectionId:e.subject.connectionId}:{...n})}}function be(e){let r=L(e.code),t={errorId:e.errorId,code:r.code,category:r.category,retryable:r.retryable,repairability:r.repairability,scope:e.scope,subject:{...e.subject}};return e.evidence!==void 0&&(t.evidence=ne(e.evidence)),t}function o(e,r){return{code:e,category:r.category,severity:r.severity,retryable:r.retryable,displayTone:r.displayTone,publicMessage:{titleKey:r.titleKey,bodyKey:r.bodyKey},actionHints:r.actionHints,repairability:r.repairability,sentryDiagnostics:{logs:"always",issues:r.issues}}}function A(e,r){return{category:"auth",severity:"warning",retryable:!1,displayTone:"warning",titleKey:e,bodyKey:r,actionHints:[],repairability:"user_action",issues:"never"}}function d(e,r){return{category:"auth",severity:"warning",retryable:!1,displayTone:"warning",titleKey:e,bodyKey:r,actionHints:[{type:"reconnect"}],repairability:"connection_reauth",issues:"never"}}function a(e,r){return{category:"validation",severity:"warning",retryable:!1,displayTone:"warning",titleKey:e,bodyKey:r,actionHints:[{type:"edit_flow"}],repairability:"edit_flow",issues:"never"}}function m(e,r){return{category:"provider",severity:"warning",retryable:!0,displayTone:"warning",titleKey:e,bodyKey:r,actionHints:[{type:"retry"}],repairability:"retryable",issues:"never"}}function y(e,r){return{category:"runtime",severity:"error",retryable:!0,displayTone:"error",titleKey:e,bodyKey:r,actionHints:[{type:"retry"}],repairability:"retryable",issues:"always"}}function I(e,r){return{category:"runtime",severity:"error",retryable:!1,displayTone:"error",titleKey:e,bodyKey:r,actionHints:[{type:"contact_support"}],repairability:"internal_only",issues:"always"}}function N(e,r){return{category:"canceled",severity:"warning",retryable:!1,displayTone:"neutral",titleKey:e,bodyKey:r,actionHints:[],repairability:"none",issues:"never"}}function U(e){return{...e,publicMessage:{...e.publicMessage},actionHints:e.actionHints.map(r=>({...r})),sentryDiagnostics:{...e.sentryDiagnostics}}}function F(e){return{project:h.has(e.project)?e.project:"ablehi-server",component:l(e.component,"unknown")}}function H(e){if(!c(e))return i("digest source must be a JSON object");let r=g(e,["project","component"]);return r!==void 0?i(`digest source does not accept the "${r}" field`):de(e.project)?typeof e.component!="string"||e.component.length===0?i("digest source component must be a non-empty string"):{ok:!0,value:{project:e.project,component:e.component}}:i("digest source project is invalid")}function K(e){return w.has(e)?e:"native_runtime"}function V(e){return ue(e)?{ok:!0,value:e}:i("digest scope is invalid")}function B(e){let r={};for(let t of S){let n=e[t];typeof n=="string"&&n.length>0&&(r[t]=l(n,n))}return r}function q(e){let r={};for(let t of M){let n=e[t];n!==void 0&&(r[t]=n)}return r}function G(e){if(!c(e))return i("digest subject must be a JSON object");let r=g(e,S);if(r!==void 0)return i(`digest subject does not accept the "${r}" field`);let t={};for(let n of S){let s=e[n];if(s!==void 0){if(typeof s!="string"||s.length===0)return i(`digest subject ${n} must be a non-empty string`);t[n]=s}}return{ok:!0,value:t}}function W(e){if(!(e===void 0||typeof e.number!="number"||!Number.isInteger(e.number)||e.number<=0))return{number:e.number}}function X(e){if(!c(e))return i("digest attempt must be a JSON object");let r=g(e,["number"]);return r!==void 0?i(`digest attempt does not accept the "${r}" field`):typeof e.number!="number"||!Number.isInteger(e.number)||e.number<=0?i("digest attempt number must be a positive integer"):{ok:!0,value:{number:e.number}}}function z(e){if(!c(e))return;let r={},t=$(e.issues);t!==void 0&&(r.issues=t);let n=Q(e.provider);return n!==void 0&&(r.provider=n),e.truncated===!0&&(r.truncated=!0),Object.keys(r).length===0?void 0:r}function J(e){if(!c(e))return i("digest evidence must be a JSON object");let r=g(e,["issues","provider","truncated"]);if(r!==void 0)return i(`digest evidence does not accept the "${r}" field`);let t={};if(e.issues!==void 0){let n=Y(e.issues);if(!n.ok)return n;t.issues=n.value}if(e.provider!==void 0){let n=Z(e.provider);if(!n.ok)return n;t.provider=n.value}if(e.truncated!==void 0){if(e.truncated!==!0)return i("digest evidence truncated must be true when present");t.truncated=!0}return{ok:!0,value:t}}function $(e){if(!Array.isArray(e))return;let r=[];for(let t of e.slice(0,10)){if(!c(t)||typeof t.code!="string")continue;let n={code:l(t.code,"issue")};if(Array.isArray(t.path)&&(n.path=t.path.filter(s=>typeof s=="string"&&s.length>0).slice(0,8)),typeof t.messageKey=="string"&&t.messageKey.length>0&&(n.messageKey=l(t.messageKey,t.messageKey)),c(t.params)){let s=ie(t.params);s!==void 0&&(n.params=s)}r.push(n)}return r.length===0?void 0:r}function Y(e){if(!Array.isArray(e))return i("digest evidence issues must be an array");if(e.length>10)return i("digest evidence issues exceeds the item limit");let r=[];for(let t of e){if(!c(t))return i("digest evidence issue must be a JSON object");let n=g(t,["code","path","messageKey","params"]);if(n!==void 0)return i(`digest evidence issue does not accept the "${n}" field`);if(typeof t.code!="string"||t.code.length===0)return i("digest evidence issue code must be a non-empty string");let s={code:t.code};if(t.path!==void 0){if(!Array.isArray(t.path)||t.path.some(u=>typeof u!="string"||u.length===0))return i("digest evidence issue path must be a string array");s.path=[...t.path]}if(t.messageKey!==void 0){if(typeof t.messageKey!="string"||t.messageKey.length===0)return i("digest evidence issue messageKey must be a non-empty string");s.messageKey=t.messageKey}if(t.params!==void 0){if(!c(t.params)||!se(t.params))return i("digest evidence issue params must be scalar");s.params={...t.params}}r.push(s)}return{ok:!0,value:r}}function Q(e){if(!c(e))return;let r={};typeof e.httpStatus=="number"&&Number.isInteger(e.httpStatus)&&(r.httpStatus=e.httpStatus),typeof e.effectiveStatus=="string"&&e.effectiveStatus.length>0&&(r.effectiveStatus=l(e.effectiveStatus,e.effectiveStatus)),typeof e.providerCode=="string"&&e.providerCode.length>0&&(r.providerCode=l(e.providerCode,e.providerCode)),typeof e.requestId=="string"&&e.requestId.length>0&&(r.requestId=l(e.requestId,e.requestId));let t=ee(e.responseHeaders);return t!==void 0&&(r.responseHeaders=t),e.truncated===!0&&(r.truncated=!0),Object.keys(r).length===0?void 0:r}function Z(e){if(!c(e))return i("digest provider evidence must be a JSON object");let r=g(e,["httpStatus","effectiveStatus","providerCode","requestId","responseHeaders","truncated"]);if(r!==void 0)return i(`digest provider evidence does not accept the "${r}" field`);let t={};if(e.httpStatus!==void 0){if(typeof e.httpStatus!="number"||!Number.isInteger(e.httpStatus))return i("digest provider httpStatus must be an integer");t.httpStatus=e.httpStatus}if(e.effectiveStatus!==void 0){if(typeof e.effectiveStatus!="string"||e.effectiveStatus.length===0)return i("digest provider effectiveStatus must be a non-empty string");t.effectiveStatus=e.effectiveStatus}if(e.providerCode!==void 0){if(typeof e.providerCode!="string"||e.providerCode.length===0)return i("digest provider providerCode must be a non-empty string");t.providerCode=e.providerCode}if(e.requestId!==void 0){if(typeof e.requestId!="string"||e.requestId.length===0)return i("digest provider requestId must be a non-empty string");t.requestId=e.requestId}if(e.responseHeaders!==void 0){let n=re(e.responseHeaders);if(!n.ok)return n;t.responseHeaders=n.value}if(e.truncated!==void 0){if(e.truncated!==!0)return i("digest provider truncated must be true when present");t.truncated=!0}return{ok:!0,value:t}}function ee(e){if(!c(e))return;let r={};for(let[t,n]of Object.entries(e)){let s=t.toLowerCase();O.has(s)&&typeof n=="string"&&(r[s]=l(n,n))}return Object.keys(r).length===0?void 0:r}function re(e){if(!c(e))return i("digest provider responseHeaders must be a JSON object");let r={};for(let[t,n]of Object.entries(e)){if(!O.has(t))return i(`digest provider responseHeaders does not accept "${t}"`);if(typeof n!="string")return i("digest provider responseHeaders values must be strings");r[t]=n}return{ok:!0,value:r}}function te(e){let r={},t=e.evidence?.issues?.length??0;t>0&&(r.issueCount=t);let n=e.evidence?.provider?.responseHeaders?.["retry-after"];return n!==void 0&&n.length>0&&(r.retryAfter=n),r}function ne(e){return{...e.issues===void 0?{}:{issues:e.issues.map(r=>({...r,...r.path===void 0?{}:{path:[...r.path]},...r.params===void 0?{}:{params:{...r.params}}}))},...e.provider===void 0?{}:{provider:{...e.provider,...e.provider.responseHeaders===void 0?{}:{responseHeaders:{...e.provider.responseHeaders}}}},...e.truncated===!0?{truncated:!0}:{}}}function oe(e){return P(e)?e:"1970-01-01T00:00:00.000Z"}function P(e){let r=Date.parse(e);return Number.isFinite(r)&&new Date(r).toISOString()===e}function l(e,r){let t=e.trim(),n=t.length===0?r:t;return n.length<=200?n:n.slice(0,200)}function ie(e){let r={};for(let[t,n]of Object.entries(e))(n===null||typeof n=="string"||typeof n=="number"||typeof n=="boolean")&&(r[t]=n);return Object.keys(r).length===0?void 0:r}function se(e){return Object.values(e).every(r=>r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean")}function ae(e){return`err_${ce(v(e))}`}function v(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(t=>v(t)).join(",")}]`;let r=e;return`{${Object.keys(r).filter(t=>r[t]!==void 0).sort().map(t=>`${JSON.stringify(t)}:${v(r[t])}`).join(",")}}`}function ce(e){let r=0xcbf29ce484222325n,t=0x100000001b3n,n=0xffffffffffffffffn;for(let s=0;s<e.length;s+=1)r^=BigInt(e.charCodeAt(s)),r=r*t&n;return r.toString(36)}function i(e){return{ok:!1,reason:e}}function c(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function g(e,r){return Object.keys(e).find(t=>!r.includes(t))}function de(e){return typeof e=="string"&&h.has(e)}function ue(e){return typeof e=="string"&&w.has(e)}function ye(e){return typeof e=="string"&&k.has(e)}function le(e){return typeof e=="string"&&j.has(e)}export{R as ABLEHI_ERROR_DIGEST_SCHEMA_VERSION,T as GENERIC_ERROR_CODE,ge as isAblehiErrorDigest,fe as listErrorRegistryEntries,L as lookupErrorRegistryEntry,pe as normalizeErrorDigest,x as parseAblehiErrorDigest,be as projectAgentErrorView,Ee as projectPublicErrorView};
|
|
1
|
+
var g="ablehi.error.digest.v1",D="INTERNAL_ERROR",b=new Set(["content-type","retry-after","x-request-id","request-id","x-correlation-id"]),C=new Set(["ablehi-server","ablehi-cf-execution-runtime","agentIntegrations"]),U=new Set(["api_request","flow_run","flow_step","integration_invocation","native_runtime"]),V=new Set(["validation","auth","permission","not_found","rate_limit","provider","network","runtime","internal","canceled"]),M=new Set(["info","warning","error"]),B=["WFP_DISPATCH_FAILED","CAPABILITY_CALL_FAILED","CAPABILITY_TOKEN_EXPIRED","EGRESS_GRANT_EXPIRED","FILE_PRESIGN_FAILED","OBJECT_STORE_UPLOAD_FAILED","TOOL_INVOKE_DISPATCH_UNAVAILABLE","POLLING_TRIGGER_BUNDLE_UNAVAILABLE","POLLING_TRIGGER_DISPATCH_UNAVAILABLE","POLLING_WFP_DISPATCH_FAILED","WEBHOOK_ENDPOINT_TOKEN_UNAVAILABLE","WEBHOOK_PROTOCOL_ADAPTER_BUNDLE_UNAVAILABLE","WEBHOOK_SECRET_SLOT_UNAVAILABLE","WEBHOOK_TRIGGER_BUNDLE_UNAVAILABLE","WEBHOOK_TRIGGER_DISPATCH_UNAVAILABLE","WFP_SCRIPT_DEPLOY_FAILED","DISPATCH_EVENT_UNAVAILABLE"],h=["WFP_RESULT_INVALID","WFP_PAYLOAD_INVALID","CAPABILITY_TOKEN_INVALID","CAPABILITY_SCOPE_MISMATCH","CAPABILITY_CREDENTIAL_SELECTOR_FORBIDDEN","EGRESS_GRANT_MALFORMED","EGRESS_GRANT_SCOPE_MISMATCH","EGRESS_GRANT_SIGNATURE_INVALID","EGRESS_REQUEST_DIGEST_MISMATCH","EGRESS_GRANT_REUSE_FORBIDDEN","EGRESS_FILE_READ_FAILED","EGRESS_GRANT_UNAVAILABLE","EGRESS_NOT_CONFIGURED","FLOW_RUN_BINDING_DRIFT","HANDLER_BUNDLE_UNAVAILABLE","FILE_UPLOAD_NOT_COMPLETEABLE","FILE_UPLOAD_VERIFICATION_FAILED","TRUSTED_SDK_RUNTIME_METADATA_INVALID","OBJECT_STORE_NOT_CONFIGURED","TOOL_INVOKE_TIMEOUT","TOOL_BUNDLE_BINDING_DRIFT","DISCOVERY_RUNTIME_UNAVAILABLE","DISCOVERY_EXECUTION_FAILED","DISCOVERY_RESULT_INVALID","POLLING_TRIGGER_EXECUTION_FAILED","WFP_CONFIG_MISSING","WFP_DEPLOYMENT_INCONSISTENT","WFP_SCRIPT_BUILD_FAILED"],w=["API_KEY_GRANT_INVALID","CATALOG_ICON_FILE_MISSING","CATALOG_ICON_TOO_LARGE","CATALOG_ICON_UNSUPPORTED_MEDIA_TYPE","DISCOVERY_INPUT_INVALID","FLOW_BINDING_UNRESOLVED","FLOW_HUMAN_INPUT_DELIVERY_INVALID","FLOW_IR_INVALID","FLOW_RETRY_POLICY_INVALID","FLOW_RUN_CONNECTION_UNRESOLVED","FLOW_RUN_EVENT_INVALID","FLOW_RUN_INPUT_INVALID","FLOW_TRIGGER_STATE_INVALID","FLOW_TRIGGER_CONFIG_INVALID","FLOW_WAIT_TIMEOUT_BRANCH_UNSUPPORTED","HUMAN_INPUT_REQUEST_INVALID","HUMAN_INPUT_SUBMIT_INVALID","INVALID_PACKAGE_ARTIFACT","INVALID_PACKAGE_METADATA","PACKAGE_RUNTIME_INCOMPATIBLE","PACKAGE_INTEGRITY_MISMATCH","PACKAGE_SOURCE_INVALID","PACKAGE_SOURCE_TOO_LARGE","POLLING_EVENTS_LIMIT_EXCEEDED","POLLING_RESULT_INVALID","POLLING_TRIGGER_CONNECTION_UNRESOLVED","POLLING_TRIGGER_UNSUPPORTED","PROTOCOL_VERSION_UNSUPPORTED","REQUEST_INVALID","RUNTIME_CREDENTIAL_CONNECTION_INVALID","RUNTIME_CREDENTIAL_SCOPE_INVALID","RUNTIME_CREDENTIAL_UNSUPPORTED","STEP_RESULT_INVALID","WEBHOOK_RESULT_INVALID","WEBHOOK_TRIGGER_CONNECTION_UNRESOLVED","WEBHOOK_TRIGGER_UNSUPPORTED","AGENT_ASSET_VALIDATION_FAILED","AGENT_MESSAGE_DELTA_INVALID","AGENT_MODEL_INPUT_TARGET_PROTECTED","AGENT_PAGE_CONTEXT_INVALID","AGENT_PROMPT_VALIDATION_FAILED","FLOW_DRAFT_COMMAND_INVALID","FLOW_DRAFT_NOT_PUBLISHABLE","AGENT_FLOW_GOAL_INVALID","BASE_FLOW_CONTRACT_INVALID","ADAPTER_BUNDLE_INVALID","APP_RELEASE_BUNDLE_INVALID","APP_UPDATE_POLICY_INVALID","APP_PROMOTION_INVALID","PROFILE_POLICY_VIOLATION","APP_UPDATE_PATH_NOT_FOUND","PROFILE_MIGRATION_BLOCKED","APP_CONNECTION_REQUIREMENT_INVALID","APP_CONFIGURATION_FIELD_INVALID","APP_CONFIGURATION_CONNECTION_INVALID","AUTOMATION_APP_CURSOR_INVALID","RERUN_INPUT_REQUIRED","APP_ARTIFACT_INCOMPATIBLE","AUTH_TYPE_UNSUPPORTED","CONNECT_FLOW_UNSUPPORTED","CONNECT_INPUT_INVALID","CUSTOM_EXCHANGE_RESULT_INVALID","CUSTOM_EXCHANGE_PROFILE_OUTPUT_INVALID","CUSTOM_EXCHANGE_PROFILE_OUTPUT_MISSING","OAUTH_CALLBACK_DENIED","OAUTH_CALLBACK_INVALID","CALLBACK_PAYLOAD_TOO_LARGE"],H=["API_KEY_NOT_FOUND","CATALOG_INTEGRATION_NOT_FOUND","CATALOG_VERSION_NOT_FOUND","DISCOVERY_NOT_FOUND","FLOW_DRAFT_NOT_FOUND","FLOW_NOT_FOUND","FLOW_RUN_INPUT_FACT_NOT_FOUND","FLOW_RUN_PAYLOAD_NOT_FOUND","FLOW_VERSION_NOT_FOUND","HUMAN_INPUT_REQUEST_NOT_FOUND","HUMAN_INPUT_TOKEN_NOT_FOUND","INBOX_ENTRY_NOT_FOUND","INSTALLATION_NOT_FOUND","POLLING_TRIGGER_NOT_FOUND","TRIGGER_NOT_FOUND","WEBHOOK_TRIGGER_NOT_FOUND","WFP_SLOT_NOT_FOUND","AGENT_ASSET_NOT_FOUND","AGENT_FLOW_CREATION_TASK_NOT_FOUND","AGENT_PROMPT_REVISION_NOT_FOUND","AGENT_PROMPT_TARGET_NOT_FOUND","AGENT_SESSION_NOT_FOUND","FLOW_READINESS_REQUIREMENT_NOT_FOUND","FLOW_WORKING_DRAFT_NOT_FOUND","AUTOMATION_APP_NOT_FOUND","ADAPTED_ACTION_BINDING_NOT_FOUND","APP_INSTALLATION_NOT_FOUND","APP_PROFILE_NOT_FOUND","APP_RUN_NOT_FOUND","CALLBACK_SESSION_NOT_FOUND","CONNECT_SESSION_NOT_FOUND","CONNECTION_NOT_FOUND"],K=["API_KEY_GRANT_REQUIRED","EGRESS_HOST_FORBIDDEN","PUBLISHER_FORBIDDEN","URL_INSTALL_DISABLED","APP_ARTIFACT_ACCESS_DENIED"],k=["EGRESS_TOKEN_INVALID","UNAUTHORIZED"],W=["CATALOG_VERSION_EXISTS","DEFAULT_PROVIDER_APP_CONFIG_UNAVAILABLE","EGRESS_PROXY_RETIRED","FLOW_RUN_EVENT_CONFLICT","FLOW_RUN_PAYLOAD_UNAVAILABLE","FLOW_RUN_STATE_INVALID","FLOW_STATE_INVALID","HUMAN_INPUT_DELIVERY_BINDING_MISMATCH","HUMAN_INPUT_STATE_INVALID","INSTALLATION_IN_USE_BY_APPS","POLLING_TICK_CONFLICT","POLLING_TICK_STALE","POLLING_TRIGGER_STATE_INVALID","RUNTIME_CREDENTIAL_STATE_INVALID","RUNTIME_CREDENTIAL_UNAVAILABLE","TOOL_INVOKE_STATE_INVALID","WAIT_EXECUTION_SUPERSEDED","WEBHOOK_TRIGGER_STATE_INVALID","WFP_SLOT_LIMIT_EXCEEDED","AGENT_MODEL_INPUT_PREVIEW_UNAVAILABLE","AGENT_PROMPT_ACTIVE_REVISION_MISSING","AGENT_PROMPT_REVISION_NOT_DRAFT","FLOW_DRAFT_EDIT_LOCKED","FLOW_DRAFT_REVISION_CONFLICT","FLOW_EDIT_TURN_NOT_HELD","FLOW_PUBLISH_CONFIRMATION_REQUIRED","FLOW_READINESS_REQUIREMENT_CONFLICT","AGENT_FLOW_CREATION_TASK_CONFLICT","AUTOMATION_APP_SLUG_CONFLICT","BASE_FLOW_ALREADY_EXISTS","SOURCE_FLOW_ALREADY_BOUND","BASE_FLOW_NOT_READY","ADAPTED_ACTION_BINDING_STALE","ADAPTER_CONTRACT_MISMATCH","APP_VERSION_CONFLICT","APP_VERSION_NOT_PUBLISHED","APP_VERSION_BELOW_MINIMUM","APP_ALREADY_INSTALLED","APP_INTEGRATION_DEPENDENCY_NOT_FOUND","APP_SETUP_REQUIRED","APP_SETUP_VERSION_MISMATCH","APP_DISABLED","PROFILE_DISABLED","UPDATE_ACTION_REQUIRED","APP_UPDATE_PATH_AMBIGUOUS","APP_UPDATE_RESOLUTION_CONFLICT","APP_VERSION_DOWNGRADE_FORBIDDEN","APP_HISTORY_MOUNT_REQUIRED","RERUN_TARGET_UNAVAILABLE","CONNECTION_REF_CONFLICT","CONNECT_SESSION_NOT_AWAITING_INPUT","CONNECT_SESSION_NOT_AWAITING_CALLBACK","CONNECT_SESSION_EXPIRED","INSTALLATION_ALREADY_EXISTS","INSTALLATION_HAS_CONNECTIONS"],j=["APP_REQUIREMENTS_CHANGED","APP_MOUNT_STALE","PROFILE_REVISION_CONFLICT","INSTALLATION_REVISION_CONFLICT","PROFILE_STATE_CONFLICT","INSTALLATION_STATE_CONFLICT","APP_UPDATING","APP_DELETING","INSTALLATION_BUSY","APP_UPDATE_PLAN_STALE","APP_STREAM_CURSOR_FILTER_MISMATCH","APP_STREAM_CURSOR_EXPIRED"],x=["AGENT_ASSET_INDEX_FAILED","AGENT_FLOW_AUTHORING_WORKFLOW_FAILED","AGENT_RUNTIME_FAILED","AGENT_RUNTIME_UNCONFIGURED","APP_INTEGRATION_DEPENDENCY_UNAVAILABLE","APP_CONFIGURATION_VALUES_UNAVAILABLE","CLOUD_RELAY_UNAVAILABLE","CUSTOM_EXCHANGE_UNAVAILABLE","CUSTOM_EXCHANGE_FAILED","TOKEN_EXCHANGE_FAILED","TOKEN_EXCHANGE_UNAVAILABLE","PACKAGE_SOURCE_FETCH_FAILED"],Y=["INBOX_ENTRY_DETAIL_RESPONSE_TOO_LARGE","INSTALLATION_UNEXPECTED_ERROR","TOOL_CATALOG_UNAVAILABLE","CONNECT_SESSION_STORE_UNAVAILABLE","CONNECTION_STORE_UNAVAILABLE","CREDENTIAL_STORE_UNAVAILABLE","INTEGRATION_DESCRIPTOR_UNAVAILABLE","SECRET_CONFIG_UNAVAILABLE","PACKAGE_ARTIFACT_STORE_UNAVAILABLE","INSTALLATION_STORE_UNAVAILABLE","INSTALLATION_REPLACE_FAILED","INSTALLATION_UNINSTALL_FAILED","ONE_OFF_EXECUTION_FAILED"],f=["workspaceId","flowId","flowVersionId","flowRunId","stepId","nodeId","integrationId","actionId","toolRef","connectionId","requestId","traceRef"],X=["workspaceId","flowId","flowVersionId","flowRunId","stepId","nodeId","integrationId","actionId","connectionId"],P=[n(D,{category:"internal",severity:"error",retryable:!1,displayTone:"error",titleKey:"errors.generic.title",bodyKey:"errors.generic.body",actionHints:[{type:"contact_support"}],repairability:"internal_only",issues:"always"}),n("VALIDATION_ERROR",{category:"validation",severity:"warning",retryable:!1,displayTone:"warning",titleKey:"errors.validation.title",bodyKey:"errors.validation.body",actionHints:[],repairability:"user_action",issues:"never"}),n("AUTH_INVALID",L("errors.auth.invalid.title","errors.auth.invalid.body")),n("AUTH_EXPIRED",L("errors.auth.expired.title","errors.auth.expired.body")),n("PERMISSION_DENIED",{category:"permission",severity:"warning",retryable:!1,displayTone:"warning",titleKey:"errors.permissionDenied.title",bodyKey:"errors.permissionDenied.body",actionHints:[],repairability:"user_action",issues:"never"}),n("NOT_FOUND",{category:"not_found",severity:"warning",retryable:!1,displayTone:"warning",titleKey:"errors.notFound.title",bodyKey:"errors.notFound.body",actionHints:[],repairability:"user_action",issues:"never"}),n("RATE_LIMITED",{category:"rate_limit",severity:"warning",retryable:!0,displayTone:"warning",titleKey:"errors.rateLimited.title",bodyKey:"errors.rateLimited.body",actionHints:[{type:"retry"}],repairability:"retryable",issues:"never"}),n("PROVIDER_ERROR",l("errors.provider.title","errors.provider.body")),n("NETWORK_UNREACHABLE",l("errors.network.title","errors.network.body")),n("HTTP_REQUEST_FAILED",l("errors.httpRequestFailed.title","errors.httpRequestFailed.body")),n("TOOL_NOT_FOUND",s("errors.toolNotFound.title","errors.toolNotFound.body")),n("FILE_NOT_FOUND",s("errors.fileNotFound.title","errors.fileNotFound.body")),n("FILE_RUNTIME_UNAVAILABLE",_("errors.fileRuntimeUnavailable.title","errors.fileRuntimeUnavailable.body")),n("FILE_TOO_LARGE",s("errors.fileTooLarge.title","errors.fileTooLarge.body")),n("FILE_STORE_QUOTA_EXCEEDED",s("errors.fileQuota.title","errors.fileQuota.body")),n("TOOL_RUNTIME_UNAVAILABLE",_("errors.toolRuntimeUnavailable.title","errors.toolRuntimeUnavailable.body")),n("TOOL_EXECUTION_FAILED",l("errors.toolExecutionFailed.title","errors.toolExecutionFailed.body")),n("HTTP_RUNTIME_UNAVAILABLE",_("errors.httpRuntimeUnavailable.title","errors.httpRuntimeUnavailable.body")),n("FLOW_RUN_CONNECTION_AUTH_MISMATCH",I("errors.connection.authMismatch.title","errors.connection.authMismatch.body")),n("CONNECTION_AUTH_PROFILE_UNSUPPORTED",I("errors.connection.profileUnsupported.title","errors.connection.profileUnsupported.body")),n("RUNTIME_CREDENTIAL_AUTH_MISMATCH",I("errors.connection.runtimeAuthMismatch.title","errors.connection.runtimeAuthMismatch.body")),n("EGRESS_GRANT_AUTH_MISMATCH",I("errors.connection.egressAuthMismatch.title","errors.connection.egressAuthMismatch.body")),n("RUNTIME_CREDENTIAL_REFRESH_FAILED",I("errors.connection.refreshFailed.title","errors.connection.refreshFailed.body")),n("CONNECTION_UNAVAILABLE",I("errors.connection.unavailable.title","errors.connection.unavailable.body")),n("AMBIGUOUS_CONNECTION",I("errors.connection.ambiguous.title","errors.connection.ambiguous.body")),n("CREDENTIAL_UNAVAILABLE",I("errors.connection.credentialUnavailable.title","errors.connection.credentialUnavailable.body")),n("TRUSTED_SDK_CREDENTIAL_UNAVAILABLE",I("errors.connection.trustedCredentialUnavailable.title","errors.connection.trustedCredentialUnavailable.body")),n("TRUSTED_SDK_CREDENTIAL_FORBIDDEN",I("errors.connection.trustedCredentialForbidden.title","errors.connection.trustedCredentialForbidden.body")),n("TRUSTED_SDK_CREDENTIAL_RESOLUTION_FAILED",I("errors.connection.trustedCredentialResolutionFailed.title","errors.connection.trustedCredentialResolutionFailed.body")),n("REQUEST_MULTIPART_FILE_INVALID",s("errors.requestMultipartFileInvalid.title","errors.requestMultipartFileInvalid.body")),n("REQUEST_PATH_BINDING_INVALID",s("errors.requestPathBindingInvalid.title","errors.requestPathBindingInvalid.body")),n("REQUEST_PLAN_INVALID",s("errors.requestPlanInvalid.title","errors.requestPlanInvalid.body")),n("REQUEST_RAW_BODY_INVALID",s("errors.requestRawBodyInvalid.title","errors.requestRawBodyInvalid.body")),n("FLOW_WAIT_EVENT_TIMED_OUT",s("errors.flowWaitEventTimedOut.title","errors.flowWaitEventTimedOut.body")),n("TRUSTED_SDK_RUNTIME_UNSUPPORTED",s("errors.trustedSdkRuntimeUnsupported.title","errors.trustedSdkRuntimeUnsupported.body")),n("TRUSTED_SDK_OUTBOUND_BLOCKED",s("errors.trustedSdkOutboundBlocked.title","errors.trustedSdkOutboundBlocked.body")),n("INTERPRETER_DATA_REF_UNRESOLVED",s("errors.interpreterDataRefUnresolved.title","errors.interpreterDataRefUnresolved.body")),n("FLOW_NODE_UNSUPPORTED",s("errors.flowNodeUnsupported.title","errors.flowNodeUnsupported.body")),n("FLOW_INTERPRETER_INVALID_IR",s("errors.flowInterpreterInvalidIr.title","errors.flowInterpreterInvalidIr.body")),n("FLOW_ACTION_OUTPUT_PROJECTION_FAILED",s("errors.flowActionOutputProjectionFailed.title","errors.flowActionOutputProjectionFailed.body")),n("ACTION_TRANSFORM_BINDING_MISMATCH",c("errors.generic.title","errors.generic.body")),n("ACTION_TRANSFORM_VALUE_INVALID",c("errors.generic.title","errors.generic.body")),n("ACTION_TRANSFORM_FAILED",c("errors.generic.title","errors.generic.body")),n("ACTION_TRANSFORM_UNAVAILABLE",_("errors.generic.title","errors.generic.body")),...B.map(e=>n(e,_("errors.generic.title","errors.generic.body"))),...h.map(e=>n(e,c("errors.generic.title","errors.generic.body"))),...w.map(e=>n(e,s("errors.generic.title","errors.generic.body"))),...H.map(e=>n(e,z("errors.generic.title","errors.generic.body"))),...K.map(e=>n(e,J("errors.generic.title","errors.generic.body"))),...k.map(e=>n(e,L("errors.generic.title","errors.generic.body"))),...W.map(e=>n(e,c("errors.generic.title","errors.generic.body"))),...j.map(e=>n(e,_("errors.generic.title","errors.generic.body"))),...x.map(e=>n(e,_("errors.generic.title","errors.generic.body"))),...Y.map(e=>n(e,$("errors.generic.title","errors.generic.body"))),n("INBOX_MESSAGE_IDEMPOTENCY_KEY_INVALID",s("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),n("INBOX_MESSAGE_PAYLOAD_INVALID",s("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),n("INBOX_MESSAGE_PAYLOAD_TOO_LARGE",s("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),n("INBOX_MESSAGE_RENDER_INVALID",s("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),n("INBOX_MESSAGE_CONTENT_TOO_LARGE",s("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),n("INBOX_MESSAGE_ATTACHMENT_INVALID",s("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),n("INBOX_MESSAGE_ATTACHMENT_UNAVAILABLE",s("errors.inboxMessage.attachmentUnavailable.title","errors.inboxMessage.attachmentUnavailable.body")),n("FLOW_INBOX_MESSAGE_INVALID",s("errors.inboxMessage.invalid.title","errors.inboxMessage.invalid.body")),n("EXECUTION_LEASE_INVALID",c("errors.executionLeaseInvalid.title","errors.executionLeaseInvalid.body")),n("EXECUTION_LEASE_SUPERSEDED",S("errors.executionLeaseSuperseded.title","errors.executionLeaseSuperseded.body")),n("INBOX_MESSAGE_EMISSION_WINDOW_CLOSED",S("errors.inboxMessage.deliveryClosed.title","errors.inboxMessage.deliveryClosed.body")),n("INBOX_MESSAGE_EMISSION_CONFLICT",s("errors.inboxMessage.conflict.title","errors.inboxMessage.conflict.body")),n("INBOX_MESSAGE_EMISSION_UNAVAILABLE",_("errors.inboxMessage.deliveryUnavailable.title","errors.inboxMessage.deliveryUnavailable.body")),n("INTERPRETER_SERVER_CALLBACK_FAILED",_("errors.serverCallbackFailed.title","errors.serverCallbackFailed.body")),n("INTERPRETER_CONTRACT_VERSION_UNSUPPORTED",{category:"internal",severity:"error",retryable:!1,displayTone:"error",titleKey:"errors.interpreterContractVersionUnsupported.title",bodyKey:"errors.interpreterContractVersionUnsupported.body",actionHints:[{type:"contact_support"}],repairability:"internal_only",issues:"always"}),n("CF_RUNTIME_UNKNOWN_FAILURE",c("errors.cfRuntimeUnknownFailure.title","errors.cfRuntimeUnknownFailure.body")),n("FLOW_EXECUTION_BOOTSTRAP_TOO_LARGE",s("errors.generic.title","errors.generic.body")),n("EXECUTION_PAYLOAD_TOO_LARGE",s("errors.generic.title","errors.generic.body")),n("EXECUTION_PAYLOAD_INVALID",s("errors.generic.title","errors.generic.body")),n("EXECUTION_PAYLOAD_CONFLICT",c("errors.generic.title","errors.generic.body")),n("EXECUTION_PAYLOAD_NOT_FOUND",c("errors.generic.title","errors.generic.body")),n("EXECUTION_PAYLOAD_TRANSPORT_FAILED",_("errors.generic.title","errors.generic.body")),n("ACTION_INVOCATION_IN_PROGRESS",_("errors.generic.title","errors.generic.body")),n("ACTION_INVOCATION_CONFLICT",c("errors.generic.title","errors.generic.body")),n("ACTION_OUTCOME_UNKNOWN",c("errors.generic.title","errors.generic.body")),n("EXECUTION_RUNTIME_RELEASE_IN_PROGRESS",_("errors.generic.title","errors.generic.body")),n("EXECUTION_RUNTIME_RELEASE_INTERRUPTED",S("errors.generic.title","errors.generic.body")),n("EXECUTION_RUNTIME_PAIR_MISMATCH",c("errors.generic.title","errors.generic.body")),n("CONTEXT_STATE_NAMESPACE_TOO_LARGE",s("errors.generic.title","errors.generic.body")),n("CONTEXT_STATE_KEY_TOO_LARGE",s("errors.generic.title","errors.generic.body")),n("CONTEXT_STATE_VALUE_TOO_LARGE",s("errors.generic.title","errors.generic.body")),n("CONTEXT_STATE_TTL_INVALID",s("errors.generic.title","errors.generic.body")),n("CONTEXT_STATE_QUOTA_EXCEEDED",c("errors.generic.title","errors.generic.body")),n("RUN_DISPATCH_UNAVAILABLE",_("errors.runDispatchUnavailable.title","errors.runDispatchUnavailable.body")),n("WFP_SCRIPT_NOT_READY",_("errors.wfpScriptNotReady.title","errors.wfpScriptNotReady.body")),n("FLOW_RUN_NOT_FOUND",s("errors.flowRunNotFound.title","errors.flowRunNotFound.body")),n("WORKSPACE_NOT_FOUND",s("errors.workspaceNotFound.title","errors.workspaceNotFound.body"))],y=new Map(P.map(e=>[e.code,e])),m=y.get(D);function q(e){return typeof e=="string"&&y.has(e)}function be(e){return q(e)?{ok:!0,value:e}:i("error code is not registered")}function F(e){return v(y.get(e)??m)}function Ce(){return P.map(e=>v(e))}function Ue(e){let r=y.get(e.code??"")??m,t=Z(e.source),o=re(e.scope),E=ne(e.subject),d=se("attempt"in e?e.attempt:void 0),R=Re(e.occurredAt),u=_e(e.evidence),N={schemaVersion:g,errorId:Le({scope:o,subject:oe(E),attempt:d?.number??"__none__",code:r.code}),code:r.code,category:r.category,severity:r.severity,retryable:r.retryable,source:t,scope:o,subject:E,occurredAt:R};return d!==void 0&&(N.attempt=d),u!==void 0&&(N.evidence=u),N}function Pe(e){return Q(e).ok}function Q(e){if(!a(e))return i("digest must be a JSON object");let r=O(e,["schemaVersion","errorId","code","category","severity","retryable","source","scope","subject","attempt","occurredAt","evidence"]);if(r!==void 0)return i(`digest does not accept the "${r}" field`);if(e.schemaVersion!==g)return i("digest schemaVersion is invalid");if(typeof e.errorId!="string"||e.errorId.length===0)return i("digest errorId must be a non-empty string");let t=typeof e.code=="string"?y.get(e.code):void 0;if(t===void 0)return i("digest code is not registered");if(!pe(e.category))return i("digest category is invalid");if(!De(e.severity))return i("digest severity is invalid");if(typeof e.retryable!="boolean")return i("digest retryable must be boolean");if(e.category!==t.category||e.severity!==t.severity||e.retryable!==t.retryable)return i("digest machine semantics do not match its registered code");let o=ee(e.source);if(!o.ok)return o;let E=te(e.scope);if(!E.ok)return E;let d=ie(e.subject);if(!d.ok)return d;let R;if(e.attempt!==void 0){let T=Ee(e.attempt);if(!T.ok)return T;R=T.value}if(typeof e.occurredAt!="string"||!G(e.occurredAt))return i("digest occurredAt must be an ISO timestamp");let u;if(e.evidence!==void 0){let T=ae(e.evidence);if(!T.ok)return T;u=T.value}let N={schemaVersion:g,errorId:e.errorId,code:t.code,category:e.category,severity:e.severity,retryable:e.retryable,source:o.value,scope:E.value,subject:d.value,occurredAt:e.occurredAt};return R!==void 0&&(N.attempt=R),u!==void 0&&(N.evidence=u),{ok:!0,value:N}}function me(e){let r=F(e.code),t=Oe(e);return{errorId:e.errorId,code:r.code,category:r.category,retryable:r.retryable,displayTone:r.displayTone,message:{titleKey:r.publicMessage.titleKey,bodyKey:r.publicMessage.bodyKey,...Object.keys(t).length===0?{}:{params:t}},actionHints:r.actionHints.map(o=>o.type==="reconnect"&&e.subject.connectionId!==void 0?{...o,connectionId:e.subject.connectionId}:{...o})}}function Fe(e){let r=F(e.code),t={errorId:e.errorId,code:r.code,category:r.category,retryable:r.retryable,repairability:r.repairability,scope:e.scope,subject:{...e.subject}};return e.evidence!==void 0&&(t.evidence=ue(e.evidence)),t}function n(e,r){return{code:e,category:r.category,severity:r.severity,retryable:r.retryable,displayTone:r.displayTone,publicMessage:{titleKey:r.titleKey,bodyKey:r.bodyKey},actionHints:r.actionHints,repairability:r.repairability,sentryDiagnostics:{logs:"always",issues:r.issues}}}function L(e,r){return{category:"auth",severity:"warning",retryable:!1,displayTone:"warning",titleKey:e,bodyKey:r,actionHints:[],repairability:"user_action",issues:"never"}}function J(e,r){return{category:"permission",severity:"warning",retryable:!1,displayTone:"warning",titleKey:e,bodyKey:r,actionHints:[],repairability:"user_action",issues:"never"}}function z(e,r){return{category:"not_found",severity:"warning",retryable:!1,displayTone:"warning",titleKey:e,bodyKey:r,actionHints:[],repairability:"user_action",issues:"never"}}function $(e,r){return{category:"internal",severity:"error",retryable:!1,displayTone:"error",titleKey:e,bodyKey:r,actionHints:[{type:"contact_support"}],repairability:"internal_only",issues:"always"}}function I(e,r){return{category:"auth",severity:"warning",retryable:!1,displayTone:"warning",titleKey:e,bodyKey:r,actionHints:[{type:"reconnect"}],repairability:"connection_reauth",issues:"never"}}function s(e,r){return{category:"validation",severity:"warning",retryable:!1,displayTone:"warning",titleKey:e,bodyKey:r,actionHints:[{type:"edit_flow"}],repairability:"edit_flow",issues:"never"}}function l(e,r){return{category:"provider",severity:"warning",retryable:!0,displayTone:"warning",titleKey:e,bodyKey:r,actionHints:[{type:"retry"}],repairability:"retryable",issues:"never"}}function _(e,r){return{category:"runtime",severity:"error",retryable:!0,displayTone:"error",titleKey:e,bodyKey:r,actionHints:[{type:"retry"}],repairability:"retryable",issues:"always"}}function c(e,r){return{category:"runtime",severity:"error",retryable:!1,displayTone:"error",titleKey:e,bodyKey:r,actionHints:[{type:"contact_support"}],repairability:"internal_only",issues:"always"}}function S(e,r){return{category:"canceled",severity:"warning",retryable:!1,displayTone:"neutral",titleKey:e,bodyKey:r,actionHints:[],repairability:"none",issues:"never"}}function v(e){return{...e,publicMessage:{...e.publicMessage},actionHints:e.actionHints.map(r=>({...r})),sentryDiagnostics:{...e.sentryDiagnostics}}}function Z(e){return{project:C.has(e.project)?e.project:"ablehi-server",component:A(e.component,"unknown")}}function ee(e){if(!a(e))return i("digest source must be a JSON object");let r=O(e,["project","component"]);return r!==void 0?i(`digest source does not accept the "${r}" field`):ge(e.project)?typeof e.component!="string"||e.component.length===0?i("digest source component must be a non-empty string"):{ok:!0,value:{project:e.project,component:e.component}}:i("digest source project is invalid")}function re(e){return U.has(e)?e:"native_runtime"}function te(e){return fe(e)?{ok:!0,value:e}:i("digest scope is invalid")}function ne(e){let r={};for(let t of f){let o=e[t];typeof o=="string"&&o.length>0&&(r[t]=A(o,o))}return r}function oe(e){let r={};for(let t of X){let o=e[t];o!==void 0&&(r[t]=o)}return r}function ie(e){if(!a(e))return i("digest subject must be a JSON object");let r=O(e,f);if(r!==void 0)return i(`digest subject does not accept the "${r}" field`);let t={};for(let o of f){let E=e[o];if(E!==void 0){if(typeof E!="string"||E.length===0)return i(`digest subject ${o} must be a non-empty string`);t[o]=E}}return{ok:!0,value:t}}function se(e){if(!(e===void 0||typeof e.number!="number"||!Number.isInteger(e.number)||e.number<=0))return{number:e.number}}function Ee(e){if(!a(e))return i("digest attempt must be a JSON object");let r=O(e,["number"]);return r!==void 0?i(`digest attempt does not accept the "${r}" field`):typeof e.number!="number"||!Number.isInteger(e.number)||e.number<=0?i("digest attempt number must be a positive integer"):{ok:!0,value:{number:e.number}}}function _e(e){if(!a(e))return;let r={},t=ce(e.issues);t!==void 0&&(r.issues=t);let o=de(e.provider);return o!==void 0&&(r.provider=o),e.truncated===!0&&(r.truncated=!0),Object.keys(r).length===0?void 0:r}function ae(e){if(!a(e))return i("digest evidence must be a JSON object");let r=O(e,["issues","provider","truncated"]);if(r!==void 0)return i(`digest evidence does not accept the "${r}" field`);let t={};if(e.issues!==void 0){let o=Ie(e.issues);if(!o.ok)return o;t.issues=o.value}if(e.provider!==void 0){let o=Ae(e.provider);if(!o.ok)return o;t.provider=o.value}if(e.truncated!==void 0){if(e.truncated!==!0)return i("digest evidence truncated must be true when present");t.truncated=!0}return{ok:!0,value:t}}function ce(e){if(!Array.isArray(e))return;let r=[];for(let t of e.slice(0,10)){if(!a(t)||typeof t.code!="string")continue;let o={code:A(t.code,"issue")};if(Array.isArray(t.path)&&(o.path=t.path.filter(E=>typeof E=="string"&&E.length>0).slice(0,8)),typeof t.messageKey=="string"&&t.messageKey.length>0&&(o.messageKey=A(t.messageKey,t.messageKey)),a(t.params)){let E=ye(t.params);E!==void 0&&(o.params=E)}r.push(o)}return r.length===0?void 0:r}function Ie(e){if(!Array.isArray(e))return i("digest evidence issues must be an array");if(e.length>10)return i("digest evidence issues exceeds the item limit");let r=[];for(let t of e){if(!a(t))return i("digest evidence issue must be a JSON object");let o=O(t,["code","path","messageKey","params"]);if(o!==void 0)return i(`digest evidence issue does not accept the "${o}" field`);if(typeof t.code!="string"||t.code.length===0)return i("digest evidence issue code must be a non-empty string");let E={code:t.code};if(t.path!==void 0){if(!Array.isArray(t.path)||t.path.some(d=>typeof d!="string"||d.length===0))return i("digest evidence issue path must be a string array");E.path=[...t.path]}if(t.messageKey!==void 0){if(typeof t.messageKey!="string"||t.messageKey.length===0)return i("digest evidence issue messageKey must be a non-empty string");E.messageKey=t.messageKey}if(t.params!==void 0){if(!a(t.params)||!le(t.params))return i("digest evidence issue params must be scalar");E.params={...t.params}}r.push(E)}return{ok:!0,value:r}}function de(e){if(!a(e))return;let r={};typeof e.httpStatus=="number"&&Number.isInteger(e.httpStatus)&&(r.httpStatus=e.httpStatus),typeof e.effectiveStatus=="string"&&e.effectiveStatus.length>0&&(r.effectiveStatus=A(e.effectiveStatus,e.effectiveStatus)),typeof e.providerCode=="string"&&e.providerCode.length>0&&(r.providerCode=A(e.providerCode,e.providerCode)),typeof e.requestId=="string"&&e.requestId.length>0&&(r.requestId=A(e.requestId,e.requestId));let t=Ne(e.responseHeaders);return t!==void 0&&(r.responseHeaders=t),e.truncated===!0&&(r.truncated=!0),Object.keys(r).length===0?void 0:r}function Ae(e){if(!a(e))return i("digest provider evidence must be a JSON object");let r=O(e,["httpStatus","effectiveStatus","providerCode","requestId","responseHeaders","truncated"]);if(r!==void 0)return i(`digest provider evidence does not accept the "${r}" field`);let t={};if(e.httpStatus!==void 0){if(typeof e.httpStatus!="number"||!Number.isInteger(e.httpStatus))return i("digest provider httpStatus must be an integer");t.httpStatus=e.httpStatus}if(e.effectiveStatus!==void 0){if(typeof e.effectiveStatus!="string"||e.effectiveStatus.length===0)return i("digest provider effectiveStatus must be a non-empty string");t.effectiveStatus=e.effectiveStatus}if(e.providerCode!==void 0){if(typeof e.providerCode!="string"||e.providerCode.length===0)return i("digest provider providerCode must be a non-empty string");t.providerCode=e.providerCode}if(e.requestId!==void 0){if(typeof e.requestId!="string"||e.requestId.length===0)return i("digest provider requestId must be a non-empty string");t.requestId=e.requestId}if(e.responseHeaders!==void 0){let o=Te(e.responseHeaders);if(!o.ok)return o;t.responseHeaders=o.value}if(e.truncated!==void 0){if(e.truncated!==!0)return i("digest provider truncated must be true when present");t.truncated=!0}return{ok:!0,value:t}}function Ne(e){if(!a(e))return;let r={};for(let[t,o]of Object.entries(e)){let E=t.toLowerCase();b.has(E)&&typeof o=="string"&&(r[E]=A(o,o))}return Object.keys(r).length===0?void 0:r}function Te(e){if(!a(e))return i("digest provider responseHeaders must be a JSON object");let r={};for(let[t,o]of Object.entries(e)){if(!b.has(t))return i(`digest provider responseHeaders does not accept "${t}"`);if(typeof o!="string")return i("digest provider responseHeaders values must be strings");r[t]=o}return{ok:!0,value:r}}function Oe(e){let r={},t=e.evidence?.issues?.length??0;t>0&&(r.issueCount=t);let o=e.evidence?.provider?.responseHeaders?.["retry-after"];return o!==void 0&&o.length>0&&(r.retryAfter=o),r}function ue(e){return{...e.issues===void 0?{}:{issues:e.issues.map(r=>({...r,...r.path===void 0?{}:{path:[...r.path]},...r.params===void 0?{}:{params:{...r.params}}}))},...e.provider===void 0?{}:{provider:{...e.provider,...e.provider.responseHeaders===void 0?{}:{responseHeaders:{...e.provider.responseHeaders}}}},...e.truncated===!0?{truncated:!0}:{}}}function Re(e){return G(e)?e:"1970-01-01T00:00:00.000Z"}function G(e){let r=Date.parse(e);return Number.isFinite(r)&&new Date(r).toISOString()===e}function A(e,r){let t=e.trim(),o=t.length===0?r:t;return o.length<=200?o:o.slice(0,200)}function ye(e){let r={};for(let[t,o]of Object.entries(e))(o===null||typeof o=="string"||typeof o=="number"||typeof o=="boolean")&&(r[t]=o);return Object.keys(r).length===0?void 0:r}function le(e){return Object.values(e).every(r=>r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean")}function Le(e){return`err_${Se(p(e))}`}function p(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(t=>p(t)).join(",")}]`;let r=e;return`{${Object.keys(r).filter(t=>r[t]!==void 0).sort().map(t=>`${JSON.stringify(t)}:${p(r[t])}`).join(",")}}`}function Se(e){let r=0xcbf29ce484222325n,t=0x100000001b3n,o=0xffffffffffffffffn;for(let E=0;E<e.length;E+=1)r^=BigInt(e.charCodeAt(E)),r=r*t&o;return r.toString(36)}function i(e){return{ok:!1,reason:e}}function a(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function O(e,r){return Object.keys(e).find(t=>!r.includes(t))}function ge(e){return typeof e=="string"&&C.has(e)}function fe(e){return typeof e=="string"&&U.has(e)}function pe(e){return typeof e=="string"&&V.has(e)}function De(e){return typeof e=="string"&&M.has(e)}export{g as ABLEHI_ERROR_DIGEST_SCHEMA_VERSION,D as GENERIC_ERROR_CODE,Pe as isAblehiErrorDigest,q as isKnownErrorCode,Ce as listErrorRegistryEntries,F as lookupErrorRegistryEntry,Ue as normalizeErrorDigest,Q as parseAblehiErrorDigest,be as parseRegisteredErrorCode,Fe as projectAgentErrorView,me as projectPublicErrorView};
|