UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines 1.67 kB
const SANDBOX_URL_SCHEME=`eve-sandbox:`,PATH_QUERY_KEY=`path`,SIZE_QUERY_KEY=`size`,TYPE_QUERY_KEY=`type`;function isValidSize(e){return Number.isFinite(e)&&Number.isInteger(e)&&e>=0}function encodeSandboxRef(e){if(typeof e.path!=`string`||e.path.length===0)throw RangeError(`SandboxRef.path must be a non-empty string.`);if(!isValidSize(e.size))throw RangeError(`SandboxRef.size must be a non-negative integer. Received: ${String(e.size)}.`);if(typeof e.mediaType!=`string`||e.mediaType.length===0)throw RangeError(`SandboxRef.mediaType must be a non-empty string.`);let t=new URL(SANDBOX_URL_SCHEME);return t.searchParams.set(PATH_QUERY_KEY,e.path),t.searchParams.set(SIZE_QUERY_KEY,String(e.size)),t.searchParams.set(TYPE_QUERY_KEY,e.mediaType),t}function decodeSandboxRef(e){let t=e instanceof URL?e:new URL(e);if(t.protocol!==`eve-sandbox:`)throw Error(`SandboxRef URL must use scheme "${SANDBOX_URL_SCHEME}". Got: "${t.protocol}".`);let n=t.searchParams.get(PATH_QUERY_KEY);if(n===null||n===``)throw Error(`SandboxRef URL is missing the required "path" query param.`);let r=t.searchParams.get(SIZE_QUERY_KEY);if(r===null||r===``)throw Error(`SandboxRef URL is missing the required "size" query param.`);let i=Number(r);if(!isValidSize(i))throw Error(`SandboxRef URL "size" must be a non-negative integer. Got: ${JSON.stringify(r)}.`);let a=t.searchParams.get(TYPE_QUERY_KEY);if(a===null||a===``)throw Error(`SandboxRef URL is missing the required "type" query param.`);return{mediaType:a,path:n,size:i}}function isSandboxRefUrl(e){return e instanceof URL&&e.protocol===`eve-sandbox:`}export{SANDBOX_URL_SCHEME,decodeSandboxRef,encodeSandboxRef,isSandboxRefUrl};