asteroid-odyssey 1.3.4 → 1.3.8
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.mts +421 -155
- package/dist/index.d.ts +421 -155
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var T=require('node-forge');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var T__namespace=/*#__PURE__*/_interopNamespace(T);var me=Object.defineProperty;var se=(e,r)=>{for(var t in r)me(e,t,{get:r[t],enumerable:true});};function D(e,r){try{let s=T__namespace.pki.publicKeyFromPem(r).encrypt(e,"RSAES-PKCS1-V1_5");return T__namespace.util.encode64(s)}catch(t){throw console.error("Encryption failed:",t),new Error("Failed to encrypt: "+(t instanceof Error?t.message:"unknown error"))}}var L={};se(L,{createAgentProfile:()=>M,deleteAgentProfile:()=>N,executeAgent:()=>De,executeAgentStructured:()=>B,getAgentProfile:()=>W,getAgentProfiles:()=>F,getBrowserSessionRecording:()=>H,getCredentialsPublicKey:()=>X,getExecutionResult:()=>V,getExecutionStatus:()=>$,getOpenApi:()=>qe,healthCheck:()=>ke,updateAgentProfile:()=>Q,uploadExecutionFiles:()=>K});var ie=(e,r,t)=>{typeof t=="string"||t instanceof Blob?e.append(r,t):t instanceof Date?e.append(r,t.toISOString()):e.append(r,JSON.stringify(t));};var U={bodySerializer:e=>{let r=new FormData;return Object.entries(e).forEach(([t,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>ie(r,t,i)):ie(r,t,s));}),r}},v={bodySerializer:e=>JSON.stringify(e,(r,t)=>typeof t=="bigint"?t.toString():t)};var ae=async(e,r)=>{let t=typeof r=="function"?await r(e):r;if(t)return e.scheme==="bearer"?`Bearer ${t}`:e.scheme==="basic"?`Basic ${btoa(t)}`:t};var Ee=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Re=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Se=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},z=({allowReserved:e,explode:r,name:t,style:s,value:i})=>{if(!r){let o=(e?i:i.map(p=>encodeURIComponent(p))).join(Re(s));switch(s){case "label":return `.${o}`;case "matrix":return `;${t}=${o}`;case "simple":return o;default:return `${t}=${o}`}}let a=Ee(s),n=i.map(o=>s==="label"||s==="simple"?e?o:encodeURIComponent(o):S({allowReserved:e,name:t,value:o})).join(a);return s==="label"||s==="matrix"?a+n:n},S=({allowReserved:e,name:r,value:t})=>{if(t==null)return "";if(typeof t=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${e?t:encodeURIComponent(t)}`},_=({allowReserved:e,explode:r,name:t,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${t}=${i.toISOString()}`;if(s!=="deepObject"&&!r){let p=[];Object.entries(i).forEach(([y,x])=>{p=[...p,y,e?x:encodeURIComponent(x)];});let u=p.join(",");switch(s){case "form":return `${t}=${u}`;case "label":return `.${u}`;case "matrix":return `;${t}=${u}`;default:return u}}let n=Se(s),o=Object.entries(i).map(([p,u])=>S({allowReserved:e,name:s==="deepObject"?`${t}[${p}]`:p,value:u})).join(n);return s==="label"||s==="matrix"?n+o:o};var Pe=/\{[^{}]+\}/g,be=({path:e,url:r})=>{let t=r,s=r.match(Pe);if(s)for(let i of s){let a=false,n=i.substring(1,i.length-1),o="simple";n.endsWith("*")&&(a=true,n=n.substring(0,n.length-1)),n.startsWith(".")?(n=n.substring(1),o="label"):n.startsWith(";")&&(n=n.substring(1),o="matrix");let p=e[n];if(p==null)continue;if(Array.isArray(p)){t=t.replace(i,z({explode:a,name:n,style:o,value:p}));continue}if(typeof p=="object"){t=t.replace(i,_({explode:a,name:n,style:o,value:p,valueOnly:true}));continue}if(o==="matrix"){t=t.replace(i,`;${S({name:n,value:p})}`);continue}let u=encodeURIComponent(o==="label"?`.${p}`:p);t=t.replace(i,u);}return t},pe=({allowReserved:e,array:r,object:t}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let n in i){let o=i[n];if(o!=null)if(Array.isArray(o)){let p=z({allowReserved:e,explode:true,name:n,style:"form",value:o,...r});p&&a.push(p);}else if(typeof o=="object"){let p=_({allowReserved:e,explode:true,name:n,style:"deepObject",value:o,...t});p&&a.push(p);}else {let p=S({allowReserved:e,name:n,value:o});p&&a.push(p);}}return a.join("&")},ce=e=>{if(!e)return "stream";let r=e.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(t=>r.startsWith(t)))return "blob";if(r.startsWith("text/"))return "text"}},Ce=(e,r)=>r?!!(e.headers.has(r)||e.query?.[r]||e.headers.get("Cookie")?.includes(`${r}=`)):false,le=async({security:e,...r})=>{for(let t of e){if(Ce(r,t.name))continue;let s=await ae(t,r.auth);if(!s)continue;let i=t.name??"Authorization";switch(t.in){case "query":r.query||(r.query={}),r.query[i]=s;break;case "cookie":r.headers.append("Cookie",`${i}=${s}`);break;case "header":default:r.headers.set(i,s);break}}},G=e=>Oe({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:pe(e.querySerializer),url:e.url}),Oe=({baseUrl:e,path:r,query:t,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,n=(e??"")+a;r&&(n=be({path:r,url:n}));let o=t?s(t):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(n+=`?${o}`),n},j=(e,r)=>{let t={...e,...r};return t.baseUrl?.endsWith("/")&&(t.baseUrl=t.baseUrl.substring(0,t.baseUrl.length-1)),t.headers=q(e.headers,r.headers),t},q=(...e)=>{let r=new Headers;for(let t of e){if(!t||typeof t!="object")continue;let s=t instanceof Headers?t.entries():Object.entries(t);for(let[i,a]of s)if(a===null)r.delete(i);else if(Array.isArray(a))for(let n of a)r.append(i,n);else a!==void 0&&r.set(i,typeof a=="object"?JSON.stringify(a):a);}return r},P=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let t=this.getInterceptorIndex(r);return !!this._fns[t]}eject(r){let t=this.getInterceptorIndex(r);this._fns[t]&&(this._fns[t]=null);}update(r,t){let s=this.getInterceptorIndex(r);return this._fns[s]?(this._fns[s]=t,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},ue=()=>({error:new P,request:new P,response:new P}),we=pe({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Te={"Content-Type":"application/json"},b=(e={})=>({...v,headers:Te,parseAs:"auto",querySerializer:we,...e});var I=(e={})=>{let r=j(b(),e),t=()=>({...r}),s=n=>(r=j(r,n),t()),i=ue(),a=async n=>{let o={...r,...n,fetch:n.fetch??r.fetch??globalThis.fetch,headers:q(r.headers,n.headers),serializedBody:void 0};o.security&&await le({...o,security:o.security}),o.requestValidator&&await o.requestValidator(o),o.body&&o.bodySerializer&&(o.serializedBody=o.bodySerializer(o.body)),(o.serializedBody===void 0||o.serializedBody==="")&&o.headers.delete("Content-Type");let p=G(o),u={redirect:"follow",...o,body:o.serializedBody},y=new Request(p,u);for(let l of i.request._fns)l&&(y=await l(y,o));let x=o.fetch,c=await x(y);for(let l of i.response._fns)l&&(c=await l(c,y,o));let A={request:y,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return o.responseStyle==="data"?{}:{data:{},...A};let l=(o.parseAs==="auto"?ce(c.headers.get("Content-Type")):o.parseAs)??"json",f;switch(l){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await c[l]();break;case "stream":return o.responseStyle==="data"?c.body:{data:c.body,...A}}return l==="json"&&(o.responseValidator&&await o.responseValidator(f),o.responseTransformer&&(f=await o.responseTransformer(f))),o.responseStyle==="data"?f:{data:f,...A}}let m=await c.text(),E;try{E=JSON.parse(m);}catch{}let R=E??m,g=R;for(let l of i.error._fns)l&&(g=await l(R,c,y,o));if(g=g||{},o.throwOnError)throw g;return o.responseStyle==="data"?void 0:{error:g,...A}};return {buildUrl:G,connect:n=>a({...n,method:"CONNECT"}),delete:n=>a({...n,method:"DELETE"}),get:n=>a({...n,method:"GET"}),getConfig:t,head:n=>a({...n,method:"HEAD"}),interceptors:i,options:n=>a({...n,method:"OPTIONS"}),patch:n=>a({...n,method:"PATCH"}),post:n=>a({...n,method:"POST"}),put:n=>a({...n,method:"PUT"}),request:a,setConfig:s,trace:n=>a({...n,method:"TRACE"})}};var d=I(b({baseUrl:"https://odyssey.asteroid.ai/api/v1"}));var qe=e=>(e?.client??d).get({url:"/openapi.yaml",...e}),K=e=>(e.client??d).post({...U,security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/files",...e,headers:{"Content-Type":null,...e.headers}}),ke=e=>(e?.client??d).get({url:"/health",...e}),De=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),B=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}/execute",...e,headers:{"Content-Type":"application/json",...e.headers}}),$=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/status",...e}),V=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/result",...e}),H=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/browser_session/recording",...e}),F=e=>(e?.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e}),M=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e,headers:{"Content-Type":"application/json",...e.headers}}),N=e=>(e.client??d).delete({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),W=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),Q=e=>(e.client??d).patch({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),X=e=>(e?.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/credentials/public_key",...e});var ne={};se(ne,{activitiesGet:()=>re,userMessagesAdd:()=>oe});var de={bodySerializer:e=>JSON.stringify(e,(r,t)=>typeof t=="bigint"?t.toString():t)};var ye=async(e,r)=>{let t=typeof r=="function"?await r(e):r;if(t)return e.scheme==="bearer"?`Bearer ${t}`:e.scheme==="basic"?`Basic ${btoa(t)}`:t};var Ue=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},ve=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},ze=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},J=({allowReserved:e,explode:r,name:t,style:s,value:i})=>{if(!r){let o=(e?i:i.map(p=>encodeURIComponent(p))).join(ve(s));switch(s){case "label":return `.${o}`;case "matrix":return `;${t}=${o}`;case "simple":return o;default:return `${t}=${o}`}}let a=Ue(s),n=i.map(o=>s==="label"||s==="simple"?e?o:encodeURIComponent(o):C({allowReserved:e,name:t,value:o})).join(a);return s==="label"||s==="matrix"?a+n:n},C=({allowReserved:e,name:r,value:t})=>{if(t==null)return "";if(typeof t=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${e?t:encodeURIComponent(t)}`},Y=({allowReserved:e,explode:r,name:t,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${t}=${i.toISOString()}`;if(s!=="deepObject"&&!r){let p=[];Object.entries(i).forEach(([y,x])=>{p=[...p,y,e?x:encodeURIComponent(x)];});let u=p.join(",");switch(s){case "form":return `${t}=${u}`;case "label":return `.${u}`;case "matrix":return `;${t}=${u}`;default:return u}}let n=ze(s),o=Object.entries(i).map(([p,u])=>C({allowReserved:e,name:s==="deepObject"?`${t}[${p}]`:p,value:u})).join(n);return s==="label"||s==="matrix"?n+o:o};var _e=/\{[^{}]+\}/g,Ge=({path:e,url:r})=>{let t=r,s=r.match(_e);if(s)for(let i of s){let a=false,n=i.substring(1,i.length-1),o="simple";n.endsWith("*")&&(a=true,n=n.substring(0,n.length-1)),n.startsWith(".")?(n=n.substring(1),o="label"):n.startsWith(";")&&(n=n.substring(1),o="matrix");let p=e[n];if(p==null)continue;if(Array.isArray(p)){t=t.replace(i,J({explode:a,name:n,style:o,value:p}));continue}if(typeof p=="object"){t=t.replace(i,Y({explode:a,name:n,style:o,value:p,valueOnly:true}));continue}if(o==="matrix"){t=t.replace(i,`;${C({name:n,value:p})}`);continue}let u=encodeURIComponent(o==="label"?`.${p}`:p);t=t.replace(i,u);}return t},fe=({allowReserved:e,array:r,object:t}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let n in i){let o=i[n];if(o!=null)if(Array.isArray(o)){let p=J({allowReserved:e,explode:true,name:n,style:"form",value:o,...r});p&&a.push(p);}else if(typeof o=="object"){let p=Y({allowReserved:e,explode:true,name:n,style:"deepObject",value:o,...t});p&&a.push(p);}else {let p=C({allowReserved:e,name:n,value:o});p&&a.push(p);}}return a.join("&")},ge=e=>{if(!e)return "stream";let r=e.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(t=>r.startsWith(t)))return "blob";if(r.startsWith("text/"))return "text"}},je=(e,r)=>r?!!(e.headers.has(r)||e.query?.[r]||e.headers.get("Cookie")?.includes(`${r}=`)):false,xe=async({security:e,...r})=>{for(let t of e){if(je(r,t.name))continue;let s=await ye(t,r.auth);if(!s)continue;let i=t.name??"Authorization";switch(t.in){case "query":r.query||(r.query={}),r.query[i]=s;break;case "cookie":r.headers.append("Cookie",`${i}=${s}`);break;case "header":default:r.headers.set(i,s);break}}},Z=e=>Ie({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:fe(e.querySerializer),url:e.url}),Ie=({baseUrl:e,path:r,query:t,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,n=(e??"")+a;r&&(n=Ge({path:r,url:n}));let o=t?s(t):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(n+=`?${o}`),n},ee=(e,r)=>{let t={...e,...r};return t.baseUrl?.endsWith("/")&&(t.baseUrl=t.baseUrl.substring(0,t.baseUrl.length-1)),t.headers=k(e.headers,r.headers),t},k=(...e)=>{let r=new Headers;for(let t of e){if(!t||typeof t!="object")continue;let s=t instanceof Headers?t.entries():Object.entries(t);for(let[i,a]of s)if(a===null)r.delete(i);else if(Array.isArray(a))for(let n of a)r.append(i,n);else a!==void 0&&r.set(i,typeof a=="object"?JSON.stringify(a):a);}return r},O=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let t=this.getInterceptorIndex(r);return !!this._fns[t]}eject(r){let t=this.getInterceptorIndex(r);this._fns[t]&&(this._fns[t]=null);}update(r,t){let s=this.getInterceptorIndex(r);return this._fns[s]?(this._fns[s]=t,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},Ae=()=>({error:new O,request:new O,response:new O}),Ke=fe({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Be={"Content-Type":"application/json"},w=(e={})=>({...de,headers:Be,parseAs:"auto",querySerializer:Ke,...e});var te=(e={})=>{let r=ee(w(),e),t=()=>({...r}),s=n=>(r=ee(r,n),t()),i=Ae(),a=async n=>{let o={...r,...n,fetch:n.fetch??r.fetch??globalThis.fetch,headers:k(r.headers,n.headers),serializedBody:void 0};o.security&&await xe({...o,security:o.security}),o.requestValidator&&await o.requestValidator(o),o.body&&o.bodySerializer&&(o.serializedBody=o.bodySerializer(o.body)),(o.serializedBody===void 0||o.serializedBody==="")&&o.headers.delete("Content-Type");let p=Z(o),u={redirect:"follow",...o,body:o.serializedBody},y=new Request(p,u);for(let l of i.request._fns)l&&(y=await l(y,o));let x=o.fetch,c=await x(y);for(let l of i.response._fns)l&&(c=await l(c,y,o));let A={request:y,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return o.responseStyle==="data"?{}:{data:{},...A};let l=(o.parseAs==="auto"?ge(c.headers.get("Content-Type")):o.parseAs)??"json",f;switch(l){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await c[l]();break;case "stream":return o.responseStyle==="data"?c.body:{data:c.body,...A}}return l==="json"&&(o.responseValidator&&await o.responseValidator(f),o.responseTransformer&&(f=await o.responseTransformer(f))),o.responseStyle==="data"?f:{data:f,...A}}let m=await c.text(),E;try{E=JSON.parse(m);}catch{}let R=E??m,g=R;for(let l of i.error._fns)l&&(g=await l(R,c,y,o));if(g=g||{},o.throwOnError)throw g;return o.responseStyle==="data"?void 0:{error:g,...A}};return {buildUrl:Z,connect:n=>a({...n,method:"CONNECT"}),delete:n=>a({...n,method:"DELETE"}),get:n=>a({...n,method:"GET"}),getConfig:t,head:n=>a({...n,method:"HEAD"}),interceptors:i,options:n=>a({...n,method:"OPTIONS"}),patch:n=>a({...n,method:"PATCH"}),post:n=>a({...n,method:"POST"}),put:n=>a({...n,method:"PUT"}),request:a,setConfig:s,trace:n=>a({...n,method:"TRACE"})}};var h=te(w());var re=e=>(e.client??h).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/activities",...e}),oe=e=>(e.client??h).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/user-messages",...e,headers:{"Content-Type":"application/json",...e.headers}});var $e={};var Ve={};var qt=(e,r)=>(d.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),h.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),d.setConfig({baseUrl:r?.v1?.baseUrl||"https://odyssey.asteroid.ai/api/v1"}),h.setConfig({baseUrl:r?.v2?.baseUrl||"https://odyssey.asteroid.ai/agents/v2"}),{agentsV1Client:d,agentsV2Client:h}),kt=async(e,r,t)=>{let s=await B({client:e.agentsV1Client,path:{id:r},body:t});if(s.error)throw new Error(s.error.error);return s.data.execution_id},He=async(e,r)=>{let t=await $({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);return t.data},Fe=async(e,r)=>{let t=await V({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);if(t.data.error)throw new Error(t.data.error);return t.data.execution_result||{}},Dt=async(e,r,t=1e3,s=36e5)=>{for(var i=Math.floor(s/t);i>0;){let a=await He(e,r),n=a.status;if(n==="completed")return await Fe(e,r);if(n==="failed"||n==="cancelled")throw new Error(`Execution ${r} ended with status: ${n}${a.reason?" - "+a.reason:""}`);await new Promise(o=>setTimeout(o,t)),i--;}throw new Error(`Execution ${r} timed out after ${s}ms`)},Ut=async(e,r)=>{let t=await H({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);return t.data},vt=async(e,r,t)=>{let s=await K({client:e.agentsV1Client,path:{id:r},body:{files:t}});if(s.error)throw new Error(s.error.error);return s.data},zt=async(e,r)=>{let t=await F({client:e.agentsV1Client,query:r?{organization_id:r}:void 0});if(t.error)throw new Error(t.error.error);return t.data},he=async e=>{let r=await X({client:e.agentsV1Client});if(r.error){let t=typeof r.error=="object"&&"error"in r.error?r.error.error:typeof r.error=="string"?r.error:JSON.stringify(r.error);throw new Error(t||"Unknown error")}if(!r.data)throw new Error("Public key not found");return r.data},_t=async(e,r)=>{let t={...r};if(r.credentials&&r.credentials.length>0){let i=await he(e);t.credentials=r.credentials.map(a=>({...a,data:D(a.data,i)}));}let s=await M({client:e.agentsV1Client,body:t});if(s.error)throw new Error(s.error.error);return s.data},Gt=async(e,r)=>{let t=await W({client:e.agentsV1Client,path:{profile_id:r}});if(t.error)throw new Error(t.error.error);return t.data},jt=async(e,r,t)=>{let s={...t};if(t.credentials_to_add&&t.credentials_to_add.length>0){let a=await he(e);s.credentials_to_add=t.credentials_to_add.map(n=>({...n,data:D(n.data,a)}));}let i=await Q({client:e.agentsV1Client,path:{profile_id:r},body:s});if(i.error)throw new Error(i.error.error);return i.data},It=async(e,r)=>{let t=await N({client:e.agentsV1Client,path:{profile_id:r}});if(t.error)throw new Error(t.error.error);return t.data},Kt=async(e,r,t)=>{let s=await re({client:e.agentsV2Client,path:{executionId:r},query:{limit:t,order:"desc"}});if(s.error)throw console.error(s.error),new Error(s.error.error);return s.data},Bt=async(e,r,t)=>{let s=await oe({client:e.agentsV2Client,path:{executionId:r},body:{message:t}});if(s.error)throw console.error(s.error),new Error(s.error.error)};
|
|
2
|
-
exports.AgentsV1SDK=
|
|
1
|
+
'use strict';var h=require('fs'),be=require('path'),D=require('node-forge');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var h__default=/*#__PURE__*/_interopDefault(h);var be__default=/*#__PURE__*/_interopDefault(be);var D__namespace=/*#__PURE__*/_interopNamespace(D);var Oe=Object.defineProperty;var ue=(e,t)=>{for(var r in t)Oe(e,r,{get:t[r],enumerable:true});};function k(e,t){try{let s=D__namespace.pki.publicKeyFromPem(t).encrypt(e,"RSAES-PKCS1-V1_5");return D__namespace.util.encode64(s)}catch(r){throw console.error("Encryption failed:",r),new Error("Failed to encrypt: "+(r instanceof Error?r.message:"unknown error"))}}var Y={};ue(Y,{createAgentProfile:()=>L,deleteAgentProfile:()=>W,executeAgent:()=>Fe,executeAgentStructured:()=>$,getAgentProfile:()=>X,getAgentProfiles:()=>M,getBrowserSessionRecording:()=>N,getCredentialsPublicKey:()=>J,getExecutionResult:()=>H,getExecutionStatus:()=>V,getOpenApi:()=>Ge,healthCheck:()=>je,updateAgentProfile:()=>Q,uploadExecutionFiles:()=>K});var de=(e,t,r)=>{typeof r=="string"||r instanceof Blob?e.append(t,r):r instanceof Date?e.append(t,r.toISOString()):e.append(t,JSON.stringify(r));};var z={bodySerializer:e=>{let t=new FormData;return Object.entries(e).forEach(([r,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>de(t,r,i)):de(t,r,s));}),t}},_={bodySerializer:e=>JSON.stringify(e,(t,r)=>typeof r=="bigint"?r.toString():r)};var ye=async(e,t)=>{let r=typeof t=="function"?await t(e):t;if(r)return e.scheme==="bearer"?`Bearer ${r}`:e.scheme==="basic"?`Basic ${btoa(r)}`:r};var we=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Te=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Ue=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},G=({allowReserved:e,explode:t,name:r,style:s,value:i})=>{if(!t){let n=(e?i:i.map(p=>encodeURIComponent(p))).join(Te(s));switch(s){case "label":return `.${n}`;case "matrix":return `;${r}=${n}`;case "simple":return n;default:return `${r}=${n}`}}let a=we(s),o=i.map(n=>s==="label"||s==="simple"?e?n:encodeURIComponent(n):b({allowReserved:e,name:r,value:n})).join(a);return s==="label"||s==="matrix"?a+o:o},b=({allowReserved:e,name:t,value:r})=>{if(r==null)return "";if(typeof r=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${e?r:encodeURIComponent(r)}`},j=({allowReserved:e,explode:t,name:r,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${r}=${i.toISOString()}`;if(s!=="deepObject"&&!t){let p=[];Object.entries(i).forEach(([d,m])=>{p=[...p,d,e?m:encodeURIComponent(m)];});let u=p.join(",");switch(s){case "form":return `${r}=${u}`;case "label":return `.${u}`;case "matrix":return `;${r}=${u}`;default:return u}}let o=Ue(s),n=Object.entries(i).map(([p,u])=>b({allowReserved:e,name:s==="deepObject"?`${r}[${p}]`:p,value:u})).join(o);return s==="label"||s==="matrix"?o+n:n};var De=/\{[^{}]+\}/g,qe=({path:e,url:t})=>{let r=t,s=t.match(De);if(s)for(let i of s){let a=false,o=i.substring(1,i.length-1),n="simple";o.endsWith("*")&&(a=true,o=o.substring(0,o.length-1)),o.startsWith(".")?(o=o.substring(1),n="label"):o.startsWith(";")&&(o=o.substring(1),n="matrix");let p=e[o];if(p==null)continue;if(Array.isArray(p)){r=r.replace(i,G({explode:a,name:o,style:n,value:p}));continue}if(typeof p=="object"){r=r.replace(i,j({explode:a,name:o,style:n,value:p,valueOnly:true}));continue}if(n==="matrix"){r=r.replace(i,`;${b({name:o,value:p})}`);continue}let u=encodeURIComponent(n==="label"?`.${p}`:p);r=r.replace(i,u);}return r},ge=({allowReserved:e,array:t,object:r}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let o in i){let n=i[o];if(n!=null)if(Array.isArray(n)){let p=G({allowReserved:e,explode:true,name:o,style:"form",value:n,...t});p&&a.push(p);}else if(typeof n=="object"){let p=j({allowReserved:e,explode:true,name:o,style:"deepObject",value:n,...r});p&&a.push(p);}else {let p=b({allowReserved:e,name:o,value:n});p&&a.push(p);}}return a.join("&")},fe=e=>{if(!e)return "stream";let t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return "json";if(t==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(r=>t.startsWith(r)))return "blob";if(t.startsWith("text/"))return "text"}},ve=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`)):false,xe=async({security:e,...t})=>{for(let r of e){if(ve(t,r.name))continue;let s=await ye(r,t.auth);if(!s)continue;let i=r.name??"Authorization";switch(r.in){case "query":t.query||(t.query={}),t.query[i]=s;break;case "cookie":t.headers.append("Cookie",`${i}=${s}`);break;case "header":default:t.headers.set(i,s);break}}},F=e=>ke({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:ge(e.querySerializer),url:e.url}),ke=({baseUrl:e,path:t,query:r,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,o=(e??"")+a;t&&(o=qe({path:t,url:o}));let n=r?s(r):"";return n.startsWith("?")&&(n=n.substring(1)),n&&(o+=`?${n}`),o},I=(e,t)=>{let r={...e,...t};return r.baseUrl?.endsWith("/")&&(r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1)),r.headers=q(e.headers,t.headers),r},q=(...e)=>{let t=new Headers;for(let r of e){if(!r||typeof r!="object")continue;let s=r instanceof Headers?r.entries():Object.entries(r);for(let[i,a]of s)if(a===null)t.delete(i);else if(Array.isArray(a))for(let o of a)t.append(i,o);else a!==void 0&&t.set(i,typeof a=="object"?JSON.stringify(a):a);}return t},P=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(t){return typeof t=="number"?this._fns[t]?t:-1:this._fns.indexOf(t)}exists(t){let r=this.getInterceptorIndex(t);return !!this._fns[r]}eject(t){let r=this.getInterceptorIndex(t);this._fns[r]&&(this._fns[r]=null);}update(t,r){let s=this.getInterceptorIndex(t);return this._fns[s]?(this._fns[s]=r,t):false}use(t){return this._fns=[...this._fns,t],this._fns.length-1}},Ae=()=>({error:new P,request:new P,response:new P}),ze=ge({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),_e={"Content-Type":"application/json"},O=(e={})=>({..._,headers:_e,parseAs:"auto",querySerializer:ze,...e});var B=(e={})=>{let t=I(O(),e),r=()=>({...t}),s=o=>(t=I(t,o),r()),i=Ae(),a=async o=>{let n={...t,...o,fetch:o.fetch??t.fetch??globalThis.fetch,headers:q(t.headers,o.headers),serializedBody:void 0};n.security&&await xe({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.serializedBody===void 0||n.serializedBody==="")&&n.headers.delete("Content-Type");let p=F(n),u={redirect:"follow",...n,body:n.serializedBody},d=new Request(p,u);for(let c of i.request._fns)c&&(d=await c(d,n));let m=n.fetch,l=await m(d);for(let c of i.response._fns)c&&(l=await c(l,d,n));let E={request:d,response:l};if(l.ok){if(l.status===204||l.headers.get("Content-Length")==="0")return n.responseStyle==="data"?{}:{data:{},...E};let c=(n.parseAs==="auto"?fe(l.headers.get("Content-Type")):n.parseAs)??"json",f;switch(c){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await l[c]();break;case "stream":return n.responseStyle==="data"?l.body:{data:l.body,...E}}return c==="json"&&(n.responseValidator&&await n.responseValidator(f),n.responseTransformer&&(f=await n.responseTransformer(f))),n.responseStyle==="data"?f:{data:f,...E}}let R=await l.text(),S;try{S=JSON.parse(R);}catch{}let C=S??R,x=C;for(let c of i.error._fns)c&&(x=await c(C,l,d,n));if(x=x||{},n.throwOnError)throw x;return n.responseStyle==="data"?void 0:{error:x,...E}};return {buildUrl:F,connect:o=>a({...o,method:"CONNECT"}),delete:o=>a({...o,method:"DELETE"}),get:o=>a({...o,method:"GET"}),getConfig:r,head:o=>a({...o,method:"HEAD"}),interceptors:i,options:o=>a({...o,method:"OPTIONS"}),patch:o=>a({...o,method:"PATCH"}),post:o=>a({...o,method:"POST"}),put:o=>a({...o,method:"PUT"}),request:a,setConfig:s,trace:o=>a({...o,method:"TRACE"})}};var y=B(O({baseUrl:"https://odyssey.asteroid.ai/api/v1"}));var Ge=e=>(e?.client??y).get({url:"/openapi.yaml",...e}),K=e=>(e.client??y).post({...z,security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/files",...e,headers:{"Content-Type":null,...e.headers}}),je=e=>(e?.client??y).get({url:"/health",...e}),Fe=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),$=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}/execute",...e,headers:{"Content-Type":"application/json",...e.headers}}),V=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/status",...e}),H=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/result",...e}),N=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/browser_session/recording",...e}),M=e=>(e?.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e}),L=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e,headers:{"Content-Type":"application/json",...e.headers}}),W=e=>(e.client??y).delete({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),X=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),Q=e=>(e.client??y).patch({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),J=e=>(e?.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/credentials/public_key",...e});var ce={};ue(ce,{agentList:()=>ie,executionActivitiesGet:()=>ae,executionContextFilesGet:()=>pe,executionContextFilesUpload:()=>We,executionUserMessagesAdd:()=>le});var me=(e,t,r)=>{typeof r=="string"||r instanceof Blob?e.append(t,r):r instanceof Date?e.append(t,r.toISOString()):e.append(t,JSON.stringify(r));};var Z={bodySerializer:e=>{let t=new FormData;return Object.entries(e).forEach(([r,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>me(t,r,i)):me(t,r,s));}),t}},ee={bodySerializer:e=>JSON.stringify(e,(t,r)=>typeof r=="bigint"?r.toString():r)};var Ee=async(e,t)=>{let r=typeof t=="function"?await t(e):t;if(r)return e.scheme==="bearer"?`Bearer ${r}`:e.scheme==="basic"?`Basic ${btoa(r)}`:r};var Ie=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Be=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Ke=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},te=({allowReserved:e,explode:t,name:r,style:s,value:i})=>{if(!t){let n=(e?i:i.map(p=>encodeURIComponent(p))).join(Be(s));switch(s){case "label":return `.${n}`;case "matrix":return `;${r}=${n}`;case "simple":return n;default:return `${r}=${n}`}}let a=Ie(s),o=i.map(n=>s==="label"||s==="simple"?e?n:encodeURIComponent(n):w({allowReserved:e,name:r,value:n})).join(a);return s==="label"||s==="matrix"?a+o:o},w=({allowReserved:e,name:t,value:r})=>{if(r==null)return "";if(typeof r=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${e?r:encodeURIComponent(r)}`},re=({allowReserved:e,explode:t,name:r,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${r}=${i.toISOString()}`;if(s!=="deepObject"&&!t){let p=[];Object.entries(i).forEach(([d,m])=>{p=[...p,d,e?m:encodeURIComponent(m)];});let u=p.join(",");switch(s){case "form":return `${r}=${u}`;case "label":return `.${u}`;case "matrix":return `;${r}=${u}`;default:return u}}let o=Ke(s),n=Object.entries(i).map(([p,u])=>w({allowReserved:e,name:s==="deepObject"?`${r}[${p}]`:p,value:u})).join(o);return s==="label"||s==="matrix"?o+n:n};var $e=/\{[^{}]+\}/g,Ve=({path:e,url:t})=>{let r=t,s=t.match($e);if(s)for(let i of s){let a=false,o=i.substring(1,i.length-1),n="simple";o.endsWith("*")&&(a=true,o=o.substring(0,o.length-1)),o.startsWith(".")?(o=o.substring(1),n="label"):o.startsWith(";")&&(o=o.substring(1),n="matrix");let p=e[o];if(p==null)continue;if(Array.isArray(p)){r=r.replace(i,te({explode:a,name:o,style:n,value:p}));continue}if(typeof p=="object"){r=r.replace(i,re({explode:a,name:o,style:n,value:p,valueOnly:true}));continue}if(n==="matrix"){r=r.replace(i,`;${w({name:o,value:p})}`);continue}let u=encodeURIComponent(n==="label"?`.${p}`:p);r=r.replace(i,u);}return r},he=({allowReserved:e,array:t,object:r}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let o in i){let n=i[o];if(n!=null)if(Array.isArray(n)){let p=te({allowReserved:e,explode:true,name:o,style:"form",value:n,...t});p&&a.push(p);}else if(typeof n=="object"){let p=re({allowReserved:e,explode:true,name:o,style:"deepObject",value:n,...r});p&&a.push(p);}else {let p=w({allowReserved:e,name:o,value:n});p&&a.push(p);}}return a.join("&")},Re=e=>{if(!e)return "stream";let t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return "json";if(t==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(r=>t.startsWith(r)))return "blob";if(t.startsWith("text/"))return "text"}},He=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`)):false,Se=async({security:e,...t})=>{for(let r of e){if(He(t,r.name))continue;let s=await Ee(r,t.auth);if(!s)continue;let i=r.name??"Authorization";switch(r.in){case "query":t.query||(t.query={}),t.query[i]=s;break;case "cookie":t.headers.append("Cookie",`${i}=${s}`);break;case "header":default:t.headers.set(i,s);break}}},ne=e=>Ne({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:he(e.querySerializer),url:e.url}),Ne=({baseUrl:e,path:t,query:r,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,o=(e??"")+a;t&&(o=Ve({path:t,url:o}));let n=r?s(r):"";return n.startsWith("?")&&(n=n.substring(1)),n&&(o+=`?${n}`),o},oe=(e,t)=>{let r={...e,...t};return r.baseUrl?.endsWith("/")&&(r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1)),r.headers=v(e.headers,t.headers),r},v=(...e)=>{let t=new Headers;for(let r of e){if(!r||typeof r!="object")continue;let s=r instanceof Headers?r.entries():Object.entries(r);for(let[i,a]of s)if(a===null)t.delete(i);else if(Array.isArray(a))for(let o of a)t.append(i,o);else a!==void 0&&t.set(i,typeof a=="object"?JSON.stringify(a):a);}return t},T=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(t){return typeof t=="number"?this._fns[t]?t:-1:this._fns.indexOf(t)}exists(t){let r=this.getInterceptorIndex(t);return !!this._fns[r]}eject(t){let r=this.getInterceptorIndex(t);this._fns[r]&&(this._fns[r]=null);}update(t,r){let s=this.getInterceptorIndex(t);return this._fns[s]?(this._fns[s]=r,t):false}use(t){return this._fns=[...this._fns,t],this._fns.length-1}},Ce=()=>({error:new T,request:new T,response:new T}),Me=he({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Le={"Content-Type":"application/json"},U=(e={})=>({...ee,headers:Le,parseAs:"auto",querySerializer:Me,...e});var se=(e={})=>{let t=oe(U(),e),r=()=>({...t}),s=o=>(t=oe(t,o),r()),i=Ce(),a=async o=>{let n={...t,...o,fetch:o.fetch??t.fetch??globalThis.fetch,headers:v(t.headers,o.headers),serializedBody:void 0};n.security&&await Se({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.serializedBody===void 0||n.serializedBody==="")&&n.headers.delete("Content-Type");let p=ne(n),u={redirect:"follow",...n,body:n.serializedBody},d=new Request(p,u);for(let c of i.request._fns)c&&(d=await c(d,n));let m=n.fetch,l=await m(d);for(let c of i.response._fns)c&&(l=await c(l,d,n));let E={request:d,response:l};if(l.ok){if(l.status===204||l.headers.get("Content-Length")==="0")return n.responseStyle==="data"?{}:{data:{},...E};let c=(n.parseAs==="auto"?Re(l.headers.get("Content-Type")):n.parseAs)??"json",f;switch(c){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await l[c]();break;case "stream":return n.responseStyle==="data"?l.body:{data:l.body,...E}}return c==="json"&&(n.responseValidator&&await n.responseValidator(f),n.responseTransformer&&(f=await n.responseTransformer(f))),n.responseStyle==="data"?f:{data:f,...E}}let R=await l.text(),S;try{S=JSON.parse(R);}catch{}let C=S??R,x=C;for(let c of i.error._fns)c&&(x=await c(C,l,d,n));if(x=x||{},n.throwOnError)throw x;return n.responseStyle==="data"?void 0:{error:x,...E}};return {buildUrl:ne,connect:o=>a({...o,method:"CONNECT"}),delete:o=>a({...o,method:"DELETE"}),get:o=>a({...o,method:"GET"}),getConfig:r,head:o=>a({...o,method:"HEAD"}),interceptors:i,options:o=>a({...o,method:"OPTIONS"}),patch:o=>a({...o,method:"PATCH"}),post:o=>a({...o,method:"POST"}),put:o=>a({...o,method:"PUT"}),request:a,setConfig:s,trace:o=>a({...o,method:"TRACE"})}};var A=se(U({baseUrl:"https://odyssey.asteroid.ai/agents/v2"}));var ie=e=>(e.client??A).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agents",...e}),ae=e=>(e.client??A).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/activities",...e}),pe=e=>(e.client??A).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/context-files",...e}),We=e=>(e.client??A).post({...Z,security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/context-files",...e,headers:{"Content-Type":null,...e.headers}}),le=e=>(e.client??A).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/user-messages",...e,headers:{"Content-Type":"application/json",...e.headers}});var Xe={};var Qe={};var Je=(e,t)=>{if(e.error){let r;throw typeof e.error=="object"&&e.error!==null&&"error"in e.error?r=e.error.error:typeof e.error=="string"?r=e.error:r=JSON.stringify(e.error),new Error(r||"Unknown error")}if(e.data===void 0)throw new Error(t||"No response data received");return e.data},g=async(e,t,r)=>{try{let s=await e();return Je(s,r)}catch(s){throw s instanceof Error?s.message.includes("No response data received")||s.message.startsWith("Failed to")?s:new Error(`Failed to ${t}: ${s.message}`):new Error(`Failed to ${t}: Unknown error`)}},Vt=(e,t)=>(y.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),A.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),y.setConfig({baseUrl:t?.v1?.baseUrl||"https://odyssey.asteroid.ai/api/v1"}),A.setConfig({baseUrl:t?.v2?.baseUrl||"https://odyssey.asteroid.ai/agents/v2"}),{agentsV1Client:y,agentsV2Client:A}),Ht=async(e,t,r)=>(await g(()=>$({client:e.agentsV1Client,path:{id:t},body:r}),"execute agent")).execution_id,Ye=async(e,t)=>g(()=>V({client:e.agentsV1Client,path:{id:t}}),"get execution status"),Ze=async(e,t)=>{let r=await g(()=>H({client:e.agentsV1Client,path:{id:t}}),"get execution result");if(r.error)throw new Error(r.error);return r.execution_result||{}},Nt=async(e,t,r=1e3,s=36e5)=>{for(var i=Math.floor(s/r);i>0;){let a=await Ye(e,t),o=a.status;if(o==="completed")return await Ze(e,t);if(o==="failed"||o==="cancelled")throw new Error(`Execution ${t} ended with status: ${o}${a.reason?" - "+a.reason:""}`);await new Promise(n=>setTimeout(n,r)),i--;}throw new Error(`Execution ${t} timed out after ${s}ms`)},Mt=async(e,t)=>g(()=>N({client:e.agentsV1Client,path:{id:t}}),"get browser session recording"),Lt=async(e,t,r)=>g(()=>K({client:e.agentsV1Client,path:{id:t},body:{files:r}}),"upload execution files"),Wt=async(e,t)=>g(()=>M({client:e.agentsV1Client,query:t?{organization_id:t}:void 0}),"get agent profiles"),Pe=async e=>g(()=>J({client:e.agentsV1Client}),"get credentials public key","Public key not found"),Xt=async(e,t)=>{let r={...t};if(t.credentials&&t.credentials.length>0){let s=await Pe(e);r.credentials=t.credentials.map(i=>({...i,data:k(i.data,s)}));}return g(()=>L({client:e.agentsV1Client,body:r}),"create agent profile")},Qt=async(e,t)=>g(()=>X({client:e.agentsV1Client,path:{profile_id:t}}),"get agent profile"),Jt=async(e,t,r)=>{let s={...r};if(r.credentials_to_add&&r.credentials_to_add.length>0){let i=await Pe(e);s.credentials_to_add=r.credentials_to_add.map(a=>({...a,data:k(a.data,i)}));}return g(()=>Q({client:e.agentsV1Client,path:{profile_id:t},body:s}),"update agent profile")},Yt=async(e,t)=>g(()=>W({client:e.agentsV1Client,path:{profile_id:t}}),"delete agent profile"),Zt=async(e,t,r)=>g(()=>ae({client:e.agentsV2Client,path:{executionId:t},query:{limit:r,order:"desc"}}),"get execution activities"),er=async(e,t,r)=>{await g(()=>le({client:e.agentsV2Client,path:{executionId:t},body:{message:r}}),"add message to execution");},tr=async(e,t)=>g(()=>pe({client:e.agentsV2Client,path:{executionId:t}}),"get execution files"),rr=async(e,t,r,s=true,i=30)=>{let a;h__default.default.existsSync(r)&&h__default.default.lstatSync(r).isDirectory()||r.endsWith("/")?a=be__default.default.join(r,t.fileName):a=r;let o=be__default.default.dirname(a);if(s&&!h__default.default.existsSync(o))h__default.default.mkdirSync(o,{recursive:true});else if(!s&&!h__default.default.existsSync(o))throw new Error(`Parent directory does not exist: ${o}`);try{let n=await fetch(t.signedUrl,{signal:AbortSignal.timeout(i*1e3)});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);let p=n.headers.get("content-length");if(p&&parseInt(p)!==t.fileSize)throw new Error(`Content length mismatch: expected ${t.fileSize}, got ${p}`);let u=await n.arrayBuffer(),d=Buffer.from(u);if(d.length!==t.fileSize)throw new Error(`Downloaded file size mismatch: expected ${t.fileSize}, got ${d.length}`);return h__default.default.writeFileSync(a,d),a}catch(n){throw n instanceof Error?new Error(`Failed to download file: ${n.message}`):new Error("Failed to download file: Unknown error")}},nr=async(e,t,r,s)=>(await g(()=>ie({client:e.agentsV2Client,query:{organizationId:t,page:r,pageSize:s}}),"get agents")).items;
|
|
2
|
+
exports.AgentsV1SDK=Y;exports.AgentsV1Types=Xe;exports.AgentsV2SDK=ce;exports.AgentsV2Types=Qe;exports.AsteroidClient=Vt;exports.addMessageToExecution=er;exports.createAgentProfile=Xt;exports.deleteAgentProfile=Yt;exports.downloadExecutionFile=rr;exports.executeAgent=Ht;exports.getAgentProfile=Qt;exports.getAgentProfiles=Wt;exports.getAgents=nr;exports.getBrowserSessionRecording=Mt;exports.getCredentialsPublicKey=Pe;exports.getExecutionFiles=tr;exports.getExecutionResult=Ze;exports.getExecutionStatus=Ye;exports.getLastNExecutionActivities=Zt;exports.updateAgentProfile=Jt;exports.uploadExecutionFiles=Lt;exports.waitForExecutionResult=Nt;
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import*as T from'node-forge';var me=Object.defineProperty;var se=(e,r)=>{for(var t in r)me(e,t,{get:r[t],enumerable:true});};function D(e,r){try{let s=T.pki.publicKeyFromPem(r).encrypt(e,"RSAES-PKCS1-V1_5");return T.util.encode64(s)}catch(t){throw console.error("Encryption failed:",t),new Error("Failed to encrypt: "+(t instanceof Error?t.message:"unknown error"))}}var L={};se(L,{createAgentProfile:()=>M,deleteAgentProfile:()=>N,executeAgent:()=>De,executeAgentStructured:()=>B,getAgentProfile:()=>W,getAgentProfiles:()=>F,getBrowserSessionRecording:()=>H,getCredentialsPublicKey:()=>X,getExecutionResult:()=>V,getExecutionStatus:()=>$,getOpenApi:()=>qe,healthCheck:()=>ke,updateAgentProfile:()=>Q,uploadExecutionFiles:()=>K});var ie=(e,r,t)=>{typeof t=="string"||t instanceof Blob?e.append(r,t):t instanceof Date?e.append(r,t.toISOString()):e.append(r,JSON.stringify(t));};var U={bodySerializer:e=>{let r=new FormData;return Object.entries(e).forEach(([t,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>ie(r,t,i)):ie(r,t,s));}),r}},v={bodySerializer:e=>JSON.stringify(e,(r,t)=>typeof t=="bigint"?t.toString():t)};var ae=async(e,r)=>{let t=typeof r=="function"?await r(e):r;if(t)return e.scheme==="bearer"?`Bearer ${t}`:e.scheme==="basic"?`Basic ${btoa(t)}`:t};var Ee=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Re=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Se=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},z=({allowReserved:e,explode:r,name:t,style:s,value:i})=>{if(!r){let o=(e?i:i.map(p=>encodeURIComponent(p))).join(Re(s));switch(s){case "label":return `.${o}`;case "matrix":return `;${t}=${o}`;case "simple":return o;default:return `${t}=${o}`}}let a=Ee(s),n=i.map(o=>s==="label"||s==="simple"?e?o:encodeURIComponent(o):S({allowReserved:e,name:t,value:o})).join(a);return s==="label"||s==="matrix"?a+n:n},S=({allowReserved:e,name:r,value:t})=>{if(t==null)return "";if(typeof t=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${e?t:encodeURIComponent(t)}`},_=({allowReserved:e,explode:r,name:t,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${t}=${i.toISOString()}`;if(s!=="deepObject"&&!r){let p=[];Object.entries(i).forEach(([y,x])=>{p=[...p,y,e?x:encodeURIComponent(x)];});let u=p.join(",");switch(s){case "form":return `${t}=${u}`;case "label":return `.${u}`;case "matrix":return `;${t}=${u}`;default:return u}}let n=Se(s),o=Object.entries(i).map(([p,u])=>S({allowReserved:e,name:s==="deepObject"?`${t}[${p}]`:p,value:u})).join(n);return s==="label"||s==="matrix"?n+o:o};var Pe=/\{[^{}]+\}/g,be=({path:e,url:r})=>{let t=r,s=r.match(Pe);if(s)for(let i of s){let a=false,n=i.substring(1,i.length-1),o="simple";n.endsWith("*")&&(a=true,n=n.substring(0,n.length-1)),n.startsWith(".")?(n=n.substring(1),o="label"):n.startsWith(";")&&(n=n.substring(1),o="matrix");let p=e[n];if(p==null)continue;if(Array.isArray(p)){t=t.replace(i,z({explode:a,name:n,style:o,value:p}));continue}if(typeof p=="object"){t=t.replace(i,_({explode:a,name:n,style:o,value:p,valueOnly:true}));continue}if(o==="matrix"){t=t.replace(i,`;${S({name:n,value:p})}`);continue}let u=encodeURIComponent(o==="label"?`.${p}`:p);t=t.replace(i,u);}return t},pe=({allowReserved:e,array:r,object:t}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let n in i){let o=i[n];if(o!=null)if(Array.isArray(o)){let p=z({allowReserved:e,explode:true,name:n,style:"form",value:o,...r});p&&a.push(p);}else if(typeof o=="object"){let p=_({allowReserved:e,explode:true,name:n,style:"deepObject",value:o,...t});p&&a.push(p);}else {let p=S({allowReserved:e,name:n,value:o});p&&a.push(p);}}return a.join("&")},ce=e=>{if(!e)return "stream";let r=e.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(t=>r.startsWith(t)))return "blob";if(r.startsWith("text/"))return "text"}},Ce=(e,r)=>r?!!(e.headers.has(r)||e.query?.[r]||e.headers.get("Cookie")?.includes(`${r}=`)):false,le=async({security:e,...r})=>{for(let t of e){if(Ce(r,t.name))continue;let s=await ae(t,r.auth);if(!s)continue;let i=t.name??"Authorization";switch(t.in){case "query":r.query||(r.query={}),r.query[i]=s;break;case "cookie":r.headers.append("Cookie",`${i}=${s}`);break;case "header":default:r.headers.set(i,s);break}}},G=e=>Oe({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:pe(e.querySerializer),url:e.url}),Oe=({baseUrl:e,path:r,query:t,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,n=(e??"")+a;r&&(n=be({path:r,url:n}));let o=t?s(t):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(n+=`?${o}`),n},j=(e,r)=>{let t={...e,...r};return t.baseUrl?.endsWith("/")&&(t.baseUrl=t.baseUrl.substring(0,t.baseUrl.length-1)),t.headers=q(e.headers,r.headers),t},q=(...e)=>{let r=new Headers;for(let t of e){if(!t||typeof t!="object")continue;let s=t instanceof Headers?t.entries():Object.entries(t);for(let[i,a]of s)if(a===null)r.delete(i);else if(Array.isArray(a))for(let n of a)r.append(i,n);else a!==void 0&&r.set(i,typeof a=="object"?JSON.stringify(a):a);}return r},P=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let t=this.getInterceptorIndex(r);return !!this._fns[t]}eject(r){let t=this.getInterceptorIndex(r);this._fns[t]&&(this._fns[t]=null);}update(r,t){let s=this.getInterceptorIndex(r);return this._fns[s]?(this._fns[s]=t,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},ue=()=>({error:new P,request:new P,response:new P}),we=pe({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Te={"Content-Type":"application/json"},b=(e={})=>({...v,headers:Te,parseAs:"auto",querySerializer:we,...e});var I=(e={})=>{let r=j(b(),e),t=()=>({...r}),s=n=>(r=j(r,n),t()),i=ue(),a=async n=>{let o={...r,...n,fetch:n.fetch??r.fetch??globalThis.fetch,headers:q(r.headers,n.headers),serializedBody:void 0};o.security&&await le({...o,security:o.security}),o.requestValidator&&await o.requestValidator(o),o.body&&o.bodySerializer&&(o.serializedBody=o.bodySerializer(o.body)),(o.serializedBody===void 0||o.serializedBody==="")&&o.headers.delete("Content-Type");let p=G(o),u={redirect:"follow",...o,body:o.serializedBody},y=new Request(p,u);for(let l of i.request._fns)l&&(y=await l(y,o));let x=o.fetch,c=await x(y);for(let l of i.response._fns)l&&(c=await l(c,y,o));let A={request:y,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return o.responseStyle==="data"?{}:{data:{},...A};let l=(o.parseAs==="auto"?ce(c.headers.get("Content-Type")):o.parseAs)??"json",f;switch(l){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await c[l]();break;case "stream":return o.responseStyle==="data"?c.body:{data:c.body,...A}}return l==="json"&&(o.responseValidator&&await o.responseValidator(f),o.responseTransformer&&(f=await o.responseTransformer(f))),o.responseStyle==="data"?f:{data:f,...A}}let m=await c.text(),E;try{E=JSON.parse(m);}catch{}let R=E??m,g=R;for(let l of i.error._fns)l&&(g=await l(R,c,y,o));if(g=g||{},o.throwOnError)throw g;return o.responseStyle==="data"?void 0:{error:g,...A}};return {buildUrl:G,connect:n=>a({...n,method:"CONNECT"}),delete:n=>a({...n,method:"DELETE"}),get:n=>a({...n,method:"GET"}),getConfig:t,head:n=>a({...n,method:"HEAD"}),interceptors:i,options:n=>a({...n,method:"OPTIONS"}),patch:n=>a({...n,method:"PATCH"}),post:n=>a({...n,method:"POST"}),put:n=>a({...n,method:"PUT"}),request:a,setConfig:s,trace:n=>a({...n,method:"TRACE"})}};var d=I(b({baseUrl:"https://odyssey.asteroid.ai/api/v1"}));var qe=e=>(e?.client??d).get({url:"/openapi.yaml",...e}),K=e=>(e.client??d).post({...U,security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/files",...e,headers:{"Content-Type":null,...e.headers}}),ke=e=>(e?.client??d).get({url:"/health",...e}),De=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),B=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}/execute",...e,headers:{"Content-Type":"application/json",...e.headers}}),$=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/status",...e}),V=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/result",...e}),H=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/browser_session/recording",...e}),F=e=>(e?.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e}),M=e=>(e.client??d).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e,headers:{"Content-Type":"application/json",...e.headers}}),N=e=>(e.client??d).delete({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),W=e=>(e.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),Q=e=>(e.client??d).patch({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),X=e=>(e?.client??d).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/credentials/public_key",...e});var ne={};se(ne,{activitiesGet:()=>re,userMessagesAdd:()=>oe});var de={bodySerializer:e=>JSON.stringify(e,(r,t)=>typeof t=="bigint"?t.toString():t)};var ye=async(e,r)=>{let t=typeof r=="function"?await r(e):r;if(t)return e.scheme==="bearer"?`Bearer ${t}`:e.scheme==="basic"?`Basic ${btoa(t)}`:t};var Ue=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},ve=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},ze=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},J=({allowReserved:e,explode:r,name:t,style:s,value:i})=>{if(!r){let o=(e?i:i.map(p=>encodeURIComponent(p))).join(ve(s));switch(s){case "label":return `.${o}`;case "matrix":return `;${t}=${o}`;case "simple":return o;default:return `${t}=${o}`}}let a=Ue(s),n=i.map(o=>s==="label"||s==="simple"?e?o:encodeURIComponent(o):C({allowReserved:e,name:t,value:o})).join(a);return s==="label"||s==="matrix"?a+n:n},C=({allowReserved:e,name:r,value:t})=>{if(t==null)return "";if(typeof t=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${r}=${e?t:encodeURIComponent(t)}`},Y=({allowReserved:e,explode:r,name:t,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${t}=${i.toISOString()}`;if(s!=="deepObject"&&!r){let p=[];Object.entries(i).forEach(([y,x])=>{p=[...p,y,e?x:encodeURIComponent(x)];});let u=p.join(",");switch(s){case "form":return `${t}=${u}`;case "label":return `.${u}`;case "matrix":return `;${t}=${u}`;default:return u}}let n=ze(s),o=Object.entries(i).map(([p,u])=>C({allowReserved:e,name:s==="deepObject"?`${t}[${p}]`:p,value:u})).join(n);return s==="label"||s==="matrix"?n+o:o};var _e=/\{[^{}]+\}/g,Ge=({path:e,url:r})=>{let t=r,s=r.match(_e);if(s)for(let i of s){let a=false,n=i.substring(1,i.length-1),o="simple";n.endsWith("*")&&(a=true,n=n.substring(0,n.length-1)),n.startsWith(".")?(n=n.substring(1),o="label"):n.startsWith(";")&&(n=n.substring(1),o="matrix");let p=e[n];if(p==null)continue;if(Array.isArray(p)){t=t.replace(i,J({explode:a,name:n,style:o,value:p}));continue}if(typeof p=="object"){t=t.replace(i,Y({explode:a,name:n,style:o,value:p,valueOnly:true}));continue}if(o==="matrix"){t=t.replace(i,`;${C({name:n,value:p})}`);continue}let u=encodeURIComponent(o==="label"?`.${p}`:p);t=t.replace(i,u);}return t},fe=({allowReserved:e,array:r,object:t}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let n in i){let o=i[n];if(o!=null)if(Array.isArray(o)){let p=J({allowReserved:e,explode:true,name:n,style:"form",value:o,...r});p&&a.push(p);}else if(typeof o=="object"){let p=Y({allowReserved:e,explode:true,name:n,style:"deepObject",value:o,...t});p&&a.push(p);}else {let p=C({allowReserved:e,name:n,value:o});p&&a.push(p);}}return a.join("&")},ge=e=>{if(!e)return "stream";let r=e.split(";")[0]?.trim();if(r){if(r.startsWith("application/json")||r.endsWith("+json"))return "json";if(r==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(t=>r.startsWith(t)))return "blob";if(r.startsWith("text/"))return "text"}},je=(e,r)=>r?!!(e.headers.has(r)||e.query?.[r]||e.headers.get("Cookie")?.includes(`${r}=`)):false,xe=async({security:e,...r})=>{for(let t of e){if(je(r,t.name))continue;let s=await ye(t,r.auth);if(!s)continue;let i=t.name??"Authorization";switch(t.in){case "query":r.query||(r.query={}),r.query[i]=s;break;case "cookie":r.headers.append("Cookie",`${i}=${s}`);break;case "header":default:r.headers.set(i,s);break}}},Z=e=>Ie({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:fe(e.querySerializer),url:e.url}),Ie=({baseUrl:e,path:r,query:t,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,n=(e??"")+a;r&&(n=Ge({path:r,url:n}));let o=t?s(t):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(n+=`?${o}`),n},ee=(e,r)=>{let t={...e,...r};return t.baseUrl?.endsWith("/")&&(t.baseUrl=t.baseUrl.substring(0,t.baseUrl.length-1)),t.headers=k(e.headers,r.headers),t},k=(...e)=>{let r=new Headers;for(let t of e){if(!t||typeof t!="object")continue;let s=t instanceof Headers?t.entries():Object.entries(t);for(let[i,a]of s)if(a===null)r.delete(i);else if(Array.isArray(a))for(let n of a)r.append(i,n);else a!==void 0&&r.set(i,typeof a=="object"?JSON.stringify(a):a);}return r},O=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(r){return typeof r=="number"?this._fns[r]?r:-1:this._fns.indexOf(r)}exists(r){let t=this.getInterceptorIndex(r);return !!this._fns[t]}eject(r){let t=this.getInterceptorIndex(r);this._fns[t]&&(this._fns[t]=null);}update(r,t){let s=this.getInterceptorIndex(r);return this._fns[s]?(this._fns[s]=t,r):false}use(r){return this._fns=[...this._fns,r],this._fns.length-1}},Ae=()=>({error:new O,request:new O,response:new O}),Ke=fe({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Be={"Content-Type":"application/json"},w=(e={})=>({...de,headers:Be,parseAs:"auto",querySerializer:Ke,...e});var te=(e={})=>{let r=ee(w(),e),t=()=>({...r}),s=n=>(r=ee(r,n),t()),i=Ae(),a=async n=>{let o={...r,...n,fetch:n.fetch??r.fetch??globalThis.fetch,headers:k(r.headers,n.headers),serializedBody:void 0};o.security&&await xe({...o,security:o.security}),o.requestValidator&&await o.requestValidator(o),o.body&&o.bodySerializer&&(o.serializedBody=o.bodySerializer(o.body)),(o.serializedBody===void 0||o.serializedBody==="")&&o.headers.delete("Content-Type");let p=Z(o),u={redirect:"follow",...o,body:o.serializedBody},y=new Request(p,u);for(let l of i.request._fns)l&&(y=await l(y,o));let x=o.fetch,c=await x(y);for(let l of i.response._fns)l&&(c=await l(c,y,o));let A={request:y,response:c};if(c.ok){if(c.status===204||c.headers.get("Content-Length")==="0")return o.responseStyle==="data"?{}:{data:{},...A};let l=(o.parseAs==="auto"?ge(c.headers.get("Content-Type")):o.parseAs)??"json",f;switch(l){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await c[l]();break;case "stream":return o.responseStyle==="data"?c.body:{data:c.body,...A}}return l==="json"&&(o.responseValidator&&await o.responseValidator(f),o.responseTransformer&&(f=await o.responseTransformer(f))),o.responseStyle==="data"?f:{data:f,...A}}let m=await c.text(),E;try{E=JSON.parse(m);}catch{}let R=E??m,g=R;for(let l of i.error._fns)l&&(g=await l(R,c,y,o));if(g=g||{},o.throwOnError)throw g;return o.responseStyle==="data"?void 0:{error:g,...A}};return {buildUrl:Z,connect:n=>a({...n,method:"CONNECT"}),delete:n=>a({...n,method:"DELETE"}),get:n=>a({...n,method:"GET"}),getConfig:t,head:n=>a({...n,method:"HEAD"}),interceptors:i,options:n=>a({...n,method:"OPTIONS"}),patch:n=>a({...n,method:"PATCH"}),post:n=>a({...n,method:"POST"}),put:n=>a({...n,method:"PUT"}),request:a,setConfig:s,trace:n=>a({...n,method:"TRACE"})}};var h=te(w());var re=e=>(e.client??h).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/activities",...e}),oe=e=>(e.client??h).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/user-messages",...e,headers:{"Content-Type":"application/json",...e.headers}});var $e={};var Ve={};var qt=(e,r)=>(d.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),h.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),d.setConfig({baseUrl:r?.v1?.baseUrl||"https://odyssey.asteroid.ai/api/v1"}),h.setConfig({baseUrl:r?.v2?.baseUrl||"https://odyssey.asteroid.ai/agents/v2"}),{agentsV1Client:d,agentsV2Client:h}),kt=async(e,r,t)=>{let s=await B({client:e.agentsV1Client,path:{id:r},body:t});if(s.error)throw new Error(s.error.error);return s.data.execution_id},He=async(e,r)=>{let t=await $({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);return t.data},Fe=async(e,r)=>{let t=await V({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);if(t.data.error)throw new Error(t.data.error);return t.data.execution_result||{}},Dt=async(e,r,t=1e3,s=36e5)=>{for(var i=Math.floor(s/t);i>0;){let a=await He(e,r),n=a.status;if(n==="completed")return await Fe(e,r);if(n==="failed"||n==="cancelled")throw new Error(`Execution ${r} ended with status: ${n}${a.reason?" - "+a.reason:""}`);await new Promise(o=>setTimeout(o,t)),i--;}throw new Error(`Execution ${r} timed out after ${s}ms`)},Ut=async(e,r)=>{let t=await H({client:e.agentsV1Client,path:{id:r}});if(t.error)throw new Error(t.error.error);return t.data},vt=async(e,r,t)=>{let s=await K({client:e.agentsV1Client,path:{id:r},body:{files:t}});if(s.error)throw new Error(s.error.error);return s.data},zt=async(e,r)=>{let t=await F({client:e.agentsV1Client,query:r?{organization_id:r}:void 0});if(t.error)throw new Error(t.error.error);return t.data},he=async e=>{let r=await X({client:e.agentsV1Client});if(r.error){let t=typeof r.error=="object"&&"error"in r.error?r.error.error:typeof r.error=="string"?r.error:JSON.stringify(r.error);throw new Error(t||"Unknown error")}if(!r.data)throw new Error("Public key not found");return r.data},_t=async(e,r)=>{let t={...r};if(r.credentials&&r.credentials.length>0){let i=await he(e);t.credentials=r.credentials.map(a=>({...a,data:D(a.data,i)}));}let s=await M({client:e.agentsV1Client,body:t});if(s.error)throw new Error(s.error.error);return s.data},Gt=async(e,r)=>{let t=await W({client:e.agentsV1Client,path:{profile_id:r}});if(t.error)throw new Error(t.error.error);return t.data},jt=async(e,r,t)=>{let s={...t};if(t.credentials_to_add&&t.credentials_to_add.length>0){let a=await he(e);s.credentials_to_add=t.credentials_to_add.map(n=>({...n,data:D(n.data,a)}));}let i=await Q({client:e.agentsV1Client,path:{profile_id:r},body:s});if(i.error)throw new Error(i.error.error);return i.data},It=async(e,r)=>{let t=await N({client:e.agentsV1Client,path:{profile_id:r}});if(t.error)throw new Error(t.error.error);return t.data},Kt=async(e,r,t)=>{let s=await re({client:e.agentsV2Client,path:{executionId:r},query:{limit:t,order:"desc"}});if(s.error)throw console.error(s.error),new Error(s.error.error);return s.data},Bt=async(e,r,t)=>{let s=await oe({client:e.agentsV2Client,path:{executionId:r},body:{message:t}});if(s.error)throw console.error(s.error),new Error(s.error.error)};
|
|
2
|
-
export{
|
|
1
|
+
import h from'fs';import be from'path';import*as D from'node-forge';var Oe=Object.defineProperty;var ue=(e,t)=>{for(var r in t)Oe(e,r,{get:t[r],enumerable:true});};function k(e,t){try{let s=D.pki.publicKeyFromPem(t).encrypt(e,"RSAES-PKCS1-V1_5");return D.util.encode64(s)}catch(r){throw console.error("Encryption failed:",r),new Error("Failed to encrypt: "+(r instanceof Error?r.message:"unknown error"))}}var Y={};ue(Y,{createAgentProfile:()=>L,deleteAgentProfile:()=>W,executeAgent:()=>Fe,executeAgentStructured:()=>$,getAgentProfile:()=>X,getAgentProfiles:()=>M,getBrowserSessionRecording:()=>N,getCredentialsPublicKey:()=>J,getExecutionResult:()=>H,getExecutionStatus:()=>V,getOpenApi:()=>Ge,healthCheck:()=>je,updateAgentProfile:()=>Q,uploadExecutionFiles:()=>K});var de=(e,t,r)=>{typeof r=="string"||r instanceof Blob?e.append(t,r):r instanceof Date?e.append(t,r.toISOString()):e.append(t,JSON.stringify(r));};var z={bodySerializer:e=>{let t=new FormData;return Object.entries(e).forEach(([r,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>de(t,r,i)):de(t,r,s));}),t}},_={bodySerializer:e=>JSON.stringify(e,(t,r)=>typeof r=="bigint"?r.toString():r)};var ye=async(e,t)=>{let r=typeof t=="function"?await t(e):t;if(r)return e.scheme==="bearer"?`Bearer ${r}`:e.scheme==="basic"?`Basic ${btoa(r)}`:r};var we=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Te=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Ue=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},G=({allowReserved:e,explode:t,name:r,style:s,value:i})=>{if(!t){let n=(e?i:i.map(p=>encodeURIComponent(p))).join(Te(s));switch(s){case "label":return `.${n}`;case "matrix":return `;${r}=${n}`;case "simple":return n;default:return `${r}=${n}`}}let a=we(s),o=i.map(n=>s==="label"||s==="simple"?e?n:encodeURIComponent(n):b({allowReserved:e,name:r,value:n})).join(a);return s==="label"||s==="matrix"?a+o:o},b=({allowReserved:e,name:t,value:r})=>{if(r==null)return "";if(typeof r=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${e?r:encodeURIComponent(r)}`},j=({allowReserved:e,explode:t,name:r,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${r}=${i.toISOString()}`;if(s!=="deepObject"&&!t){let p=[];Object.entries(i).forEach(([d,m])=>{p=[...p,d,e?m:encodeURIComponent(m)];});let u=p.join(",");switch(s){case "form":return `${r}=${u}`;case "label":return `.${u}`;case "matrix":return `;${r}=${u}`;default:return u}}let o=Ue(s),n=Object.entries(i).map(([p,u])=>b({allowReserved:e,name:s==="deepObject"?`${r}[${p}]`:p,value:u})).join(o);return s==="label"||s==="matrix"?o+n:n};var De=/\{[^{}]+\}/g,qe=({path:e,url:t})=>{let r=t,s=t.match(De);if(s)for(let i of s){let a=false,o=i.substring(1,i.length-1),n="simple";o.endsWith("*")&&(a=true,o=o.substring(0,o.length-1)),o.startsWith(".")?(o=o.substring(1),n="label"):o.startsWith(";")&&(o=o.substring(1),n="matrix");let p=e[o];if(p==null)continue;if(Array.isArray(p)){r=r.replace(i,G({explode:a,name:o,style:n,value:p}));continue}if(typeof p=="object"){r=r.replace(i,j({explode:a,name:o,style:n,value:p,valueOnly:true}));continue}if(n==="matrix"){r=r.replace(i,`;${b({name:o,value:p})}`);continue}let u=encodeURIComponent(n==="label"?`.${p}`:p);r=r.replace(i,u);}return r},ge=({allowReserved:e,array:t,object:r}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let o in i){let n=i[o];if(n!=null)if(Array.isArray(n)){let p=G({allowReserved:e,explode:true,name:o,style:"form",value:n,...t});p&&a.push(p);}else if(typeof n=="object"){let p=j({allowReserved:e,explode:true,name:o,style:"deepObject",value:n,...r});p&&a.push(p);}else {let p=b({allowReserved:e,name:o,value:n});p&&a.push(p);}}return a.join("&")},fe=e=>{if(!e)return "stream";let t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return "json";if(t==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(r=>t.startsWith(r)))return "blob";if(t.startsWith("text/"))return "text"}},ve=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`)):false,xe=async({security:e,...t})=>{for(let r of e){if(ve(t,r.name))continue;let s=await ye(r,t.auth);if(!s)continue;let i=r.name??"Authorization";switch(r.in){case "query":t.query||(t.query={}),t.query[i]=s;break;case "cookie":t.headers.append("Cookie",`${i}=${s}`);break;case "header":default:t.headers.set(i,s);break}}},F=e=>ke({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:ge(e.querySerializer),url:e.url}),ke=({baseUrl:e,path:t,query:r,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,o=(e??"")+a;t&&(o=qe({path:t,url:o}));let n=r?s(r):"";return n.startsWith("?")&&(n=n.substring(1)),n&&(o+=`?${n}`),o},I=(e,t)=>{let r={...e,...t};return r.baseUrl?.endsWith("/")&&(r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1)),r.headers=q(e.headers,t.headers),r},q=(...e)=>{let t=new Headers;for(let r of e){if(!r||typeof r!="object")continue;let s=r instanceof Headers?r.entries():Object.entries(r);for(let[i,a]of s)if(a===null)t.delete(i);else if(Array.isArray(a))for(let o of a)t.append(i,o);else a!==void 0&&t.set(i,typeof a=="object"?JSON.stringify(a):a);}return t},P=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(t){return typeof t=="number"?this._fns[t]?t:-1:this._fns.indexOf(t)}exists(t){let r=this.getInterceptorIndex(t);return !!this._fns[r]}eject(t){let r=this.getInterceptorIndex(t);this._fns[r]&&(this._fns[r]=null);}update(t,r){let s=this.getInterceptorIndex(t);return this._fns[s]?(this._fns[s]=r,t):false}use(t){return this._fns=[...this._fns,t],this._fns.length-1}},Ae=()=>({error:new P,request:new P,response:new P}),ze=ge({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),_e={"Content-Type":"application/json"},O=(e={})=>({..._,headers:_e,parseAs:"auto",querySerializer:ze,...e});var B=(e={})=>{let t=I(O(),e),r=()=>({...t}),s=o=>(t=I(t,o),r()),i=Ae(),a=async o=>{let n={...t,...o,fetch:o.fetch??t.fetch??globalThis.fetch,headers:q(t.headers,o.headers),serializedBody:void 0};n.security&&await xe({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.serializedBody===void 0||n.serializedBody==="")&&n.headers.delete("Content-Type");let p=F(n),u={redirect:"follow",...n,body:n.serializedBody},d=new Request(p,u);for(let c of i.request._fns)c&&(d=await c(d,n));let m=n.fetch,l=await m(d);for(let c of i.response._fns)c&&(l=await c(l,d,n));let E={request:d,response:l};if(l.ok){if(l.status===204||l.headers.get("Content-Length")==="0")return n.responseStyle==="data"?{}:{data:{},...E};let c=(n.parseAs==="auto"?fe(l.headers.get("Content-Type")):n.parseAs)??"json",f;switch(c){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await l[c]();break;case "stream":return n.responseStyle==="data"?l.body:{data:l.body,...E}}return c==="json"&&(n.responseValidator&&await n.responseValidator(f),n.responseTransformer&&(f=await n.responseTransformer(f))),n.responseStyle==="data"?f:{data:f,...E}}let R=await l.text(),S;try{S=JSON.parse(R);}catch{}let C=S??R,x=C;for(let c of i.error._fns)c&&(x=await c(C,l,d,n));if(x=x||{},n.throwOnError)throw x;return n.responseStyle==="data"?void 0:{error:x,...E}};return {buildUrl:F,connect:o=>a({...o,method:"CONNECT"}),delete:o=>a({...o,method:"DELETE"}),get:o=>a({...o,method:"GET"}),getConfig:r,head:o=>a({...o,method:"HEAD"}),interceptors:i,options:o=>a({...o,method:"OPTIONS"}),patch:o=>a({...o,method:"PATCH"}),post:o=>a({...o,method:"POST"}),put:o=>a({...o,method:"PUT"}),request:a,setConfig:s,trace:o=>a({...o,method:"TRACE"})}};var y=B(O({baseUrl:"https://odyssey.asteroid.ai/api/v1"}));var Ge=e=>(e?.client??y).get({url:"/openapi.yaml",...e}),K=e=>(e.client??y).post({...z,security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/files",...e,headers:{"Content-Type":null,...e.headers}}),je=e=>(e?.client??y).get({url:"/health",...e}),Fe=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),$=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent/{id}/execute",...e,headers:{"Content-Type":"application/json",...e.headers}}),V=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/status",...e}),H=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/result",...e}),N=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/execution/{id}/browser_session/recording",...e}),M=e=>(e?.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e}),L=e=>(e.client??y).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles",...e,headers:{"Content-Type":"application/json",...e.headers}}),W=e=>(e.client??y).delete({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),X=e=>(e.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e}),Q=e=>(e.client??y).patch({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agent-profiles/{profile_id}",...e,headers:{"Content-Type":"application/json",...e.headers}}),J=e=>(e?.client??y).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/credentials/public_key",...e});var ce={};ue(ce,{agentList:()=>ie,executionActivitiesGet:()=>ae,executionContextFilesGet:()=>pe,executionContextFilesUpload:()=>We,executionUserMessagesAdd:()=>le});var me=(e,t,r)=>{typeof r=="string"||r instanceof Blob?e.append(t,r):r instanceof Date?e.append(t,r.toISOString()):e.append(t,JSON.stringify(r));};var Z={bodySerializer:e=>{let t=new FormData;return Object.entries(e).forEach(([r,s])=>{s!=null&&(Array.isArray(s)?s.forEach(i=>me(t,r,i)):me(t,r,s));}),t}},ee={bodySerializer:e=>JSON.stringify(e,(t,r)=>typeof r=="bigint"?r.toString():r)};var Ee=async(e,t)=>{let r=typeof t=="function"?await t(e):t;if(r)return e.scheme==="bearer"?`Bearer ${r}`:e.scheme==="basic"?`Basic ${btoa(r)}`:r};var Ie=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Be=e=>{switch(e){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Ke=e=>{switch(e){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},te=({allowReserved:e,explode:t,name:r,style:s,value:i})=>{if(!t){let n=(e?i:i.map(p=>encodeURIComponent(p))).join(Be(s));switch(s){case "label":return `.${n}`;case "matrix":return `;${r}=${n}`;case "simple":return n;default:return `${r}=${n}`}}let a=Ie(s),o=i.map(n=>s==="label"||s==="simple"?e?n:encodeURIComponent(n):w({allowReserved:e,name:r,value:n})).join(a);return s==="label"||s==="matrix"?a+o:o},w=({allowReserved:e,name:t,value:r})=>{if(r==null)return "";if(typeof r=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${e?r:encodeURIComponent(r)}`},re=({allowReserved:e,explode:t,name:r,style:s,value:i,valueOnly:a})=>{if(i instanceof Date)return a?i.toISOString():`${r}=${i.toISOString()}`;if(s!=="deepObject"&&!t){let p=[];Object.entries(i).forEach(([d,m])=>{p=[...p,d,e?m:encodeURIComponent(m)];});let u=p.join(",");switch(s){case "form":return `${r}=${u}`;case "label":return `.${u}`;case "matrix":return `;${r}=${u}`;default:return u}}let o=Ke(s),n=Object.entries(i).map(([p,u])=>w({allowReserved:e,name:s==="deepObject"?`${r}[${p}]`:p,value:u})).join(o);return s==="label"||s==="matrix"?o+n:n};var $e=/\{[^{}]+\}/g,Ve=({path:e,url:t})=>{let r=t,s=t.match($e);if(s)for(let i of s){let a=false,o=i.substring(1,i.length-1),n="simple";o.endsWith("*")&&(a=true,o=o.substring(0,o.length-1)),o.startsWith(".")?(o=o.substring(1),n="label"):o.startsWith(";")&&(o=o.substring(1),n="matrix");let p=e[o];if(p==null)continue;if(Array.isArray(p)){r=r.replace(i,te({explode:a,name:o,style:n,value:p}));continue}if(typeof p=="object"){r=r.replace(i,re({explode:a,name:o,style:n,value:p,valueOnly:true}));continue}if(n==="matrix"){r=r.replace(i,`;${w({name:o,value:p})}`);continue}let u=encodeURIComponent(n==="label"?`.${p}`:p);r=r.replace(i,u);}return r},he=({allowReserved:e,array:t,object:r}={})=>i=>{let a=[];if(i&&typeof i=="object")for(let o in i){let n=i[o];if(n!=null)if(Array.isArray(n)){let p=te({allowReserved:e,explode:true,name:o,style:"form",value:n,...t});p&&a.push(p);}else if(typeof n=="object"){let p=re({allowReserved:e,explode:true,name:o,style:"deepObject",value:n,...r});p&&a.push(p);}else {let p=w({allowReserved:e,name:o,value:n});p&&a.push(p);}}return a.join("&")},Re=e=>{if(!e)return "stream";let t=e.split(";")[0]?.trim();if(t){if(t.startsWith("application/json")||t.endsWith("+json"))return "json";if(t==="multipart/form-data")return "formData";if(["application/","audio/","image/","video/"].some(r=>t.startsWith(r)))return "blob";if(t.startsWith("text/"))return "text"}},He=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`)):false,Se=async({security:e,...t})=>{for(let r of e){if(He(t,r.name))continue;let s=await Ee(r,t.auth);if(!s)continue;let i=r.name??"Authorization";switch(r.in){case "query":t.query||(t.query={}),t.query[i]=s;break;case "cookie":t.headers.append("Cookie",`${i}=${s}`);break;case "header":default:t.headers.set(i,s);break}}},ne=e=>Ne({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:he(e.querySerializer),url:e.url}),Ne=({baseUrl:e,path:t,query:r,querySerializer:s,url:i})=>{let a=i.startsWith("/")?i:`/${i}`,o=(e??"")+a;t&&(o=Ve({path:t,url:o}));let n=r?s(r):"";return n.startsWith("?")&&(n=n.substring(1)),n&&(o+=`?${n}`),o},oe=(e,t)=>{let r={...e,...t};return r.baseUrl?.endsWith("/")&&(r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1)),r.headers=v(e.headers,t.headers),r},v=(...e)=>{let t=new Headers;for(let r of e){if(!r||typeof r!="object")continue;let s=r instanceof Headers?r.entries():Object.entries(r);for(let[i,a]of s)if(a===null)t.delete(i);else if(Array.isArray(a))for(let o of a)t.append(i,o);else a!==void 0&&t.set(i,typeof a=="object"?JSON.stringify(a):a);}return t},T=class{_fns;constructor(){this._fns=[];}clear(){this._fns=[];}getInterceptorIndex(t){return typeof t=="number"?this._fns[t]?t:-1:this._fns.indexOf(t)}exists(t){let r=this.getInterceptorIndex(t);return !!this._fns[r]}eject(t){let r=this.getInterceptorIndex(t);this._fns[r]&&(this._fns[r]=null);}update(t,r){let s=this.getInterceptorIndex(t);return this._fns[s]?(this._fns[s]=r,t):false}use(t){return this._fns=[...this._fns,t],this._fns.length-1}},Ce=()=>({error:new T,request:new T,response:new T}),Me=he({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),Le={"Content-Type":"application/json"},U=(e={})=>({...ee,headers:Le,parseAs:"auto",querySerializer:Me,...e});var se=(e={})=>{let t=oe(U(),e),r=()=>({...t}),s=o=>(t=oe(t,o),r()),i=Ce(),a=async o=>{let n={...t,...o,fetch:o.fetch??t.fetch??globalThis.fetch,headers:v(t.headers,o.headers),serializedBody:void 0};n.security&&await Se({...n,security:n.security}),n.requestValidator&&await n.requestValidator(n),n.body&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),(n.serializedBody===void 0||n.serializedBody==="")&&n.headers.delete("Content-Type");let p=ne(n),u={redirect:"follow",...n,body:n.serializedBody},d=new Request(p,u);for(let c of i.request._fns)c&&(d=await c(d,n));let m=n.fetch,l=await m(d);for(let c of i.response._fns)c&&(l=await c(l,d,n));let E={request:d,response:l};if(l.ok){if(l.status===204||l.headers.get("Content-Length")==="0")return n.responseStyle==="data"?{}:{data:{},...E};let c=(n.parseAs==="auto"?Re(l.headers.get("Content-Type")):n.parseAs)??"json",f;switch(c){case "arrayBuffer":case "blob":case "formData":case "json":case "text":f=await l[c]();break;case "stream":return n.responseStyle==="data"?l.body:{data:l.body,...E}}return c==="json"&&(n.responseValidator&&await n.responseValidator(f),n.responseTransformer&&(f=await n.responseTransformer(f))),n.responseStyle==="data"?f:{data:f,...E}}let R=await l.text(),S;try{S=JSON.parse(R);}catch{}let C=S??R,x=C;for(let c of i.error._fns)c&&(x=await c(C,l,d,n));if(x=x||{},n.throwOnError)throw x;return n.responseStyle==="data"?void 0:{error:x,...E}};return {buildUrl:ne,connect:o=>a({...o,method:"CONNECT"}),delete:o=>a({...o,method:"DELETE"}),get:o=>a({...o,method:"GET"}),getConfig:r,head:o=>a({...o,method:"HEAD"}),interceptors:i,options:o=>a({...o,method:"OPTIONS"}),patch:o=>a({...o,method:"PATCH"}),post:o=>a({...o,method:"POST"}),put:o=>a({...o,method:"PUT"}),request:a,setConfig:s,trace:o=>a({...o,method:"TRACE"})}};var A=se(U({baseUrl:"https://odyssey.asteroid.ai/agents/v2"}));var ie=e=>(e.client??A).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/agents",...e}),ae=e=>(e.client??A).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/activities",...e}),pe=e=>(e.client??A).get({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/context-files",...e}),We=e=>(e.client??A).post({...Z,security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/context-files",...e,headers:{"Content-Type":null,...e.headers}}),le=e=>(e.client??A).post({security:[{name:"X-Asteroid-Agents-Api-Key",type:"apiKey"}],url:"/executions/{executionId}/user-messages",...e,headers:{"Content-Type":"application/json",...e.headers}});var Xe={};var Qe={};var Je=(e,t)=>{if(e.error){let r;throw typeof e.error=="object"&&e.error!==null&&"error"in e.error?r=e.error.error:typeof e.error=="string"?r=e.error:r=JSON.stringify(e.error),new Error(r||"Unknown error")}if(e.data===void 0)throw new Error(t||"No response data received");return e.data},g=async(e,t,r)=>{try{let s=await e();return Je(s,r)}catch(s){throw s instanceof Error?s.message.includes("No response data received")||s.message.startsWith("Failed to")?s:new Error(`Failed to ${t}: ${s.message}`):new Error(`Failed to ${t}: Unknown error`)}},Vt=(e,t)=>(y.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),A.setConfig({headers:{"X-Asteroid-Agents-Api-Key":e}}),y.setConfig({baseUrl:t?.v1?.baseUrl||"https://odyssey.asteroid.ai/api/v1"}),A.setConfig({baseUrl:t?.v2?.baseUrl||"https://odyssey.asteroid.ai/agents/v2"}),{agentsV1Client:y,agentsV2Client:A}),Ht=async(e,t,r)=>(await g(()=>$({client:e.agentsV1Client,path:{id:t},body:r}),"execute agent")).execution_id,Ye=async(e,t)=>g(()=>V({client:e.agentsV1Client,path:{id:t}}),"get execution status"),Ze=async(e,t)=>{let r=await g(()=>H({client:e.agentsV1Client,path:{id:t}}),"get execution result");if(r.error)throw new Error(r.error);return r.execution_result||{}},Nt=async(e,t,r=1e3,s=36e5)=>{for(var i=Math.floor(s/r);i>0;){let a=await Ye(e,t),o=a.status;if(o==="completed")return await Ze(e,t);if(o==="failed"||o==="cancelled")throw new Error(`Execution ${t} ended with status: ${o}${a.reason?" - "+a.reason:""}`);await new Promise(n=>setTimeout(n,r)),i--;}throw new Error(`Execution ${t} timed out after ${s}ms`)},Mt=async(e,t)=>g(()=>N({client:e.agentsV1Client,path:{id:t}}),"get browser session recording"),Lt=async(e,t,r)=>g(()=>K({client:e.agentsV1Client,path:{id:t},body:{files:r}}),"upload execution files"),Wt=async(e,t)=>g(()=>M({client:e.agentsV1Client,query:t?{organization_id:t}:void 0}),"get agent profiles"),Pe=async e=>g(()=>J({client:e.agentsV1Client}),"get credentials public key","Public key not found"),Xt=async(e,t)=>{let r={...t};if(t.credentials&&t.credentials.length>0){let s=await Pe(e);r.credentials=t.credentials.map(i=>({...i,data:k(i.data,s)}));}return g(()=>L({client:e.agentsV1Client,body:r}),"create agent profile")},Qt=async(e,t)=>g(()=>X({client:e.agentsV1Client,path:{profile_id:t}}),"get agent profile"),Jt=async(e,t,r)=>{let s={...r};if(r.credentials_to_add&&r.credentials_to_add.length>0){let i=await Pe(e);s.credentials_to_add=r.credentials_to_add.map(a=>({...a,data:k(a.data,i)}));}return g(()=>Q({client:e.agentsV1Client,path:{profile_id:t},body:s}),"update agent profile")},Yt=async(e,t)=>g(()=>W({client:e.agentsV1Client,path:{profile_id:t}}),"delete agent profile"),Zt=async(e,t,r)=>g(()=>ae({client:e.agentsV2Client,path:{executionId:t},query:{limit:r,order:"desc"}}),"get execution activities"),er=async(e,t,r)=>{await g(()=>le({client:e.agentsV2Client,path:{executionId:t},body:{message:r}}),"add message to execution");},tr=async(e,t)=>g(()=>pe({client:e.agentsV2Client,path:{executionId:t}}),"get execution files"),rr=async(e,t,r,s=true,i=30)=>{let a;h.existsSync(r)&&h.lstatSync(r).isDirectory()||r.endsWith("/")?a=be.join(r,t.fileName):a=r;let o=be.dirname(a);if(s&&!h.existsSync(o))h.mkdirSync(o,{recursive:true});else if(!s&&!h.existsSync(o))throw new Error(`Parent directory does not exist: ${o}`);try{let n=await fetch(t.signedUrl,{signal:AbortSignal.timeout(i*1e3)});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);let p=n.headers.get("content-length");if(p&&parseInt(p)!==t.fileSize)throw new Error(`Content length mismatch: expected ${t.fileSize}, got ${p}`);let u=await n.arrayBuffer(),d=Buffer.from(u);if(d.length!==t.fileSize)throw new Error(`Downloaded file size mismatch: expected ${t.fileSize}, got ${d.length}`);return h.writeFileSync(a,d),a}catch(n){throw n instanceof Error?new Error(`Failed to download file: ${n.message}`):new Error("Failed to download file: Unknown error")}},nr=async(e,t,r,s)=>(await g(()=>ie({client:e.agentsV2Client,query:{organizationId:t,page:r,pageSize:s}}),"get agents")).items;
|
|
2
|
+
export{Y as AgentsV1SDK,Xe as AgentsV1Types,ce as AgentsV2SDK,Qe as AgentsV2Types,Vt as AsteroidClient,er as addMessageToExecution,Xt as createAgentProfile,Yt as deleteAgentProfile,rr as downloadExecutionFile,Ht as executeAgent,Qt as getAgentProfile,Wt as getAgentProfiles,nr as getAgents,Mt as getBrowserSessionRecording,Pe as getCredentialsPublicKey,tr as getExecutionFiles,Ze as getExecutionResult,Ye as getExecutionStatus,Zt as getLastNExecutionActivities,Jt as updateAgentProfile,Lt as uploadExecutionFiles,Nt as waitForExecutionResult};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "asteroid-odyssey",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.8",
|
|
4
4
|
"description": "SDK for interacting with Asteroid Agents API",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
"@types/node": "^22.13.4",
|
|
29
29
|
"@types/node-forge": "^1.3.11",
|
|
30
30
|
"openapi-typescript-codegen": "^0.29.0",
|
|
31
|
-
"ts-node": "^10.9.2",
|
|
32
|
-
"typescript": "^5.7.3",
|
|
33
31
|
"prettier": "^3.6.2",
|
|
34
|
-
"
|
|
32
|
+
"ts-node": "^10.9.2",
|
|
33
|
+
"tsup": "^8.0.2",
|
|
34
|
+
"typescript": "^5.7.3"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@hey-api/openapi-ts": "^0.
|
|
37
|
+
"@hey-api/openapi-ts": "^0.82.0",
|
|
38
38
|
"node-forge": "^1.3.1"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|