@easbot/sdk 0.1.7 → 0.1.13
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/LICENSE +21 -0
- package/dist/index.cjs +6 -6
- package/dist/index.d.cts +563 -265
- package/dist/index.d.ts +563 -265
- package/dist/index.mjs +6 -6
- package/package.json +20 -24
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {spawn}from'child_process';var
|
|
1
|
+
import {spawn}from'child_process';var Ve=Object.defineProperty;var Je=(s,t,e)=>t in s?Ve(s,t,{enumerable:true,configurable:true,writable:true,value:e}):s[t]=e;var y=(s,t,e)=>Je(s,typeof t!="symbol"?t+"":t,e);var Ce=({onRequest:s,onSseError:t,onSseEvent:e,responseTransformer:r,responseValidator:o,sseDefaultRetryDelay:u,sseMaxRetryAttempts:l,sseMaxRetryDelay:i,sseSleepFn:p,url:m,...c})=>{let a,x=p??(T=>new Promise(g=>setTimeout(g,T)));return {stream:async function*(){let T=u??3e3,g=0,k=c.signal??new AbortController().signal;for(;!k.aborted;){g++;let A=c.headers instanceof Headers?c.headers:new Headers(c.headers);a!==void 0&&A.set("Last-Event-ID",a);try{let w={redirect:"follow",...c,body:c.serializedBody,headers:A,signal:k},O=new Request(m,w);s&&(O=await s(m,w));let h=await(c.fetch??globalThis.fetch)(O);if(!h.ok)throw new Error(`SSE failed: ${h.status} ${h.statusText}`);if(!h.body)throw new Error("No body in SSE response");let R=h.body.pipeThrough(new TextDecoderStream).getReader(),b="",Oe=()=>{try{R.cancel();}catch{}};k.addEventListener("abort",Oe);try{for(;;){let{done:We,value:Qe}=await R.read();if(We)break;b+=Qe,b=b.replace(/\r\n/g,`
|
|
2
2
|
`).replace(/\r/g,`
|
|
3
|
-
`);let
|
|
3
|
+
`);let De=b.split(`
|
|
4
4
|
|
|
5
|
-
`);b=
|
|
6
|
-
`),
|
|
7
|
-
`);try{D=JSON.parse(v),Oe=!0;}catch{D=v;}}Oe&&(o&&await o(D),r&&(D=await r(D))),e?.({data:D,event:we,id:a,retry:T}),j.length&&(yield D);}}}finally{k.removeEventListener("abort",ve),f.releaseLock();}break}catch(w){if(t?.(w),l!==void 0&&g>=l)break;let O=Math.min(T*2**(g-1),i??3e4);await E(O);}}}()}};var He=s=>{switch(s){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Ve=s=>{switch(s){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Ke=s=>{switch(s){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},F=({allowReserved:s,explode:t,name:e,style:r,value:o})=>{if(!t){let i=(s?o:o.map(p=>encodeURIComponent(p))).join(Ve(r));switch(r){case "label":return `.${i}`;case "matrix":return `;${e}=${i}`;case "simple":return i;default:return `${e}=${i}`}}let u=He(r),l=o.map(i=>r==="label"||r==="simple"?s?i:encodeURIComponent(i):C({allowReserved:s,name:e,value:i})).join(u);return r==="label"||r==="matrix"?u+l:l},C=({allowReserved:s,name:t,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${s?e:encodeURIComponent(e)}`},U=({allowReserved:s,explode:t,name:e,style:r,value:o,valueOnly:u})=>{if(o instanceof Date)return u?o.toISOString():`${e}=${o.toISOString()}`;if(r!=="deepObject"&&!t){let p=[];Object.entries(o).forEach(([c,a])=>{p=[...p,c,s?a:encodeURIComponent(a)];});let m=p.join(",");switch(r){case "form":return `${e}=${m}`;case "label":return `.${m}`;case "matrix":return `;${e}=${m}`;default:return m}}let l=Ke(r),i=Object.entries(o).map(([p,m])=>C({allowReserved:s,name:r==="deepObject"?`${e}[${p}]`:p,value:m})).join(l);return r==="label"||r==="matrix"?l+i:i};var Je=/\{[^{}]+\}/g,Xe=({path:s,url:t})=>{let e=t,r=t.match(Je);if(r)for(let o of r){let u=false,l=o.substring(1,o.length-1),i="simple";l.endsWith("*")&&(u=true,l=l.substring(0,l.length-1)),l.startsWith(".")?(l=l.substring(1),i="label"):l.startsWith(";")&&(l=l.substring(1),i="matrix");let p=s[l];if(p==null)continue;if(Array.isArray(p)){e=e.replace(o,F({explode:u,name:l,style:i,value:p}));continue}if(typeof p=="object"){e=e.replace(o,U({explode:u,name:l,style:i,value:p,valueOnly:true}));continue}if(i==="matrix"){e=e.replace(o,`;${C({name:l,value:p})}`);continue}let m=encodeURIComponent(i==="label"?`.${p}`:p);e=e.replace(o,m);}return e},Ce=({baseUrl:s,path:t,query:e,querySerializer:r,url:o})=>{let u=o.startsWith("/")?o:`/${o}`,l=(s??"")+u;t&&(l=Xe({path:t,url:l}));let i=e?r(e):"";return i.startsWith("?")&&(i=i.substring(1)),i&&(l+=`?${i}`),l};function N(s){let t=s.body!==void 0;if(t&&s.bodySerializer)return "serializedBody"in s?s.serializedBody!==void 0&&s.serializedBody!==""?s.serializedBody:null:s.body!==""?s.body:null;if(t)return s.body}var Ie=async(s,t)=>{let e=typeof t=="function"?await t(s):t;if(e)return s.scheme==="bearer"?`Bearer ${e}`:s.scheme==="basic"?`Basic ${btoa(e)}`:e};var W={bodySerializer:s=>JSON.stringify(s,(t,e)=>typeof e=="bigint"?e.toString():e)};var Ae=({parameters:s={},...t}={})=>r=>{let o=[];if(r&&typeof r=="object")for(let u in r){let l=r[u];if(l==null)continue;let i=s[u]||t;if(Array.isArray(l)){let p=F({allowReserved:i.allowReserved,explode:true,name:u,style:"form",value:l,...i.array});p&&o.push(p);}else if(typeof l=="object"){let p=U({allowReserved:i.allowReserved,explode:true,name:u,style:"deepObject",value:l,...i.object});p&&o.push(p);}else {let p=C({allowReserved:i.allowReserved,name:u,value:l});p&&o.push(p);}}return o.join("&")},qe=s=>{if(!s)return "stream";let t=s.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(e=>t.startsWith(e)))return "blob";if(t.startsWith("text/"))return "text"}},Ye=(s,t)=>t?!!(s.headers.has(t)||s.query?.[t]||s.headers.get("Cookie")?.includes(`${t}=`)):false,_e=async({security:s,...t})=>{for(let e of s){if(Ye(t,e.name))continue;let r=await Ie(e,t.auth);if(!r)continue;let o=e.name??"Authorization";switch(e.in){case "query":t.query||(t.query={}),t.query[o]=r;break;case "cookie":t.headers.append("Cookie",`${o}=${r}`);break;default:t.headers.set(o,r);break}}},Q=s=>Ce({baseUrl:s.baseUrl,path:s.path,query:s.query,querySerializer:typeof s.querySerializer=="function"?s.querySerializer:Ae(s.querySerializer),url:s.url}),$=(s,t)=>{let e={...s,...t};return e.baseUrl?.endsWith("/")&&(e.baseUrl=e.baseUrl.substring(0,e.baseUrl.length-1)),e.headers=L(s.headers,t.headers),e},Ze=s=>{let t=[];return s.forEach((e,r)=>{t.push([r,e]);}),t},L=(...s)=>{let t=new Headers;for(let e of s){if(!e)continue;let r=e instanceof Headers?Ze(e):Object.entries(e);for(let[o,u]of r)if(u===null)t.delete(o);else if(Array.isArray(u))for(let l of u)t.append(o,l);else u!==void 0&&t.set(o,typeof u=="object"?JSON.stringify(u):u);}return t},A=class{constructor(){y(this,"fns",[]);}clear(){this.fns=[];}eject(t){let e=this.getInterceptorIndex(t);this.fns[e]&&(this.fns[e]=null);}exists(t){let e=this.getInterceptorIndex(t);return !!this.fns[e]}getInterceptorIndex(t){return typeof t=="number"?this.fns[t]?t:-1:this.fns.indexOf(t)}update(t,e){let r=this.getInterceptorIndex(t);return this.fns[r]?(this.fns[r]=e,t):false}use(t){return this.fns.push(t),this.fns.length-1}},Me=()=>({error:new A,request:new A,response:new A}),er=Ae({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),rr={"Content-Type":"application/json"},q=(s={})=>({...W,headers:rr,parseAs:"auto",querySerializer:er,...s});var _=(s={})=>{let t=$(q(),s),e=()=>({...t}),r=c=>(t=$(t,c),e()),o=Me(),u=async c=>{let a={...t,...c,fetch:c.fetch??t.fetch??globalThis.fetch,headers:L(t.headers,c.headers),serializedBody:void 0};a.security&&await _e({...a,security:a.security}),a.requestValidator&&await a.requestValidator(a),a.body!==void 0&&a.bodySerializer&&(a.serializedBody=a.bodySerializer(a.body)),(a.body===void 0||a.serializedBody==="")&&a.headers.delete("Content-Type");let E=Q(a);return {opts:a,url:E}},l=async c=>{let{opts:a,url:E}=await u(c),M={redirect:"follow",...a,body:N(a)},S=new Request(E,M);for(let h of o.request.fns)h&&(S=await h(S,a));let T=a.fetch,g;try{g=await T(S);}catch(h){let f=h;for(let b of o.error.fns)b&&(f=await b(h,void 0,S,a));if(f=f||{},a.throwOnError)throw f;return a.responseStyle==="data"?void 0:{error:f,request:S,response:void 0}}for(let h of o.response.fns)h&&(g=await h(g,S,a));let k={request:S,response:g};if(g.ok){let h=(a.parseAs==="auto"?qe(g.headers.get("Content-Type")):a.parseAs)??"json";if(g.status===204||g.headers.get("Content-Length")==="0"){let b;switch(h){case "arrayBuffer":case "blob":case "text":b=await g[h]();break;case "formData":b=new FormData;break;case "stream":b=g.body;break;default:b={};break}return a.responseStyle==="data"?b:{data:b,...k}}let f;switch(h){case "arrayBuffer":case "blob":case "formData":case "text":f=await g[h]();break;case "json":{let b=await g.text();f=b?JSON.parse(b):{};break}case "stream":return a.responseStyle==="data"?g.body:{data:g.body,...k}}return h==="json"&&(a.responseValidator&&await a.responseValidator(f),a.responseTransformer&&(f=await a.responseTransformer(f))),a.responseStyle==="data"?f:{data:f,...k}}let I=await g.text(),w;try{w=JSON.parse(I);}catch{}let O=w??I,P=O;for(let h of o.error.fns)h&&(P=await h(O,g,S,a));if(P=P||{},a.throwOnError)throw P;return a.responseStyle==="data"?void 0:{error:P,...k}},i=c=>a=>l({...a,method:c}),p=c=>async a=>{let{opts:E,url:M}=await u(a);return Pe({...E,body:E.body,headers:E.headers,method:c,onRequest:async(S,T)=>{let g=new Request(S,T);for(let k of o.request.fns)k&&(g=await k(g,E));return g},serializedBody:N(E),url:M})};return {buildUrl:c=>Q({...t,...c}),connect:i("CONNECT"),delete:i("DELETE"),get:i("GET"),getConfig:e,head:i("HEAD"),interceptors:o,options:i("OPTIONS"),patch:i("PATCH"),post:i("POST"),put:i("PUT"),request:l,setConfig:r,sse:{connect:p("CONNECT"),delete:p("DELETE"),get:p("GET"),head:p("HEAD"),options:p("OPTIONS"),patch:p("PATCH"),post:p("POST"),put:p("PUT"),trace:p("TRACE")},trace:i("TRACE")}};var tr={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},sr=Object.entries(tr),je=(s,t)=>{t||(t=new Map);for(let e of s)"in"in e?e.key&&t.set(e.key,{in:e.in,map:e.map}):"key"in e?t.set(e.key,{map:e.map}):e.args&&je(e.args,t);return t},nr=s=>{for(let[t,e]of Object.entries(s))e&&typeof e=="object"&&!Array.isArray(e)&&!Object.keys(e).length&&delete s[t];},n=(s,t)=>{let e={body:{},headers:{},path:{},query:{}},r=je(t),o;for(let[u,l]of s.entries())if(t[u]&&(o=t[u]),!!o)if("in"in o)if(o.key){let i=r.get(o.key),p=i.map||o.key;i.in&&(e[i.in][p]=l);}else e.body=l;else for(let[i,p]of Object.entries(l??{})){let m=r.get(i);if(m)if(m.in){let c=m.map||i;e[m.in][c]=p;}else e[m.map]=p;else {let c=sr.find(([a])=>i.startsWith(a));if(c){let[a,E]=c;e[E][i.slice(a.length)]=p;}else if("allowExtra"in o&&o.allowExtra){for(let[a,E]of Object.entries(o.allowExtra))if(E){e[a][i]=p;break}}}}return nr(e),e};var Fe=_(q({baseUrl:"http://localhost:4096"}));var d=class{constructor(t){y(this,"client");this.client=t?.client??Fe;}},H=class{constructor(){y(this,"defaultKey","default");y(this,"instances",new Map);}get(t){let e=this.instances.get(t??this.defaultKey);if(!e)throw new Error('No SDK client found. Create one with "new EasbotClient()" to fix this error.');return e}set(t,e){this.instances.set(e??this.defaultKey,t);}},V=class extends d{get(t){return (t?.client??this.client).get({url:"/global/config",...t})}update(t,e){let r=n([t],[{args:[{key:"config",map:"body"}]}]);return (e?.client??this.client).patch({url:"/global/config",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},K=class extends d{constructor(){super(...arguments);y(this,"_config");}health(e){return (e?.client??this.client).get({url:"/global/health",...e})}event(e){return (e?.client??this.client).sse.get({url:"/global/event",...e})}dispose(e){return (e?.client??this.client).post({url:"/global/dispose",...e})}get config(){return this._config??(this._config=new V({client:this.client}))}},J=class extends d{remove(t,e){let r=n([t],[{args:[{in:"path",key:"providerID"}]}]);return (e?.client??this.client).delete({url:"/auth/{providerID}",...e,...r})}set(t,e){let r=n([t],[{args:[{in:"path",key:"providerID"},{key:"auth",map:"body"}]}]);return (e?.client??this.client).put({url:"/auth/{providerID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},X=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/project",...e,...r})}current(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/project/current",...e,...r})}update(t,e){let r=n([t],[{args:[{in:"path",key:"projectID"},{in:"query",key:"directory"},{in:"body",key:"name"},{in:"body",key:"icon"},{in:"body",key:"commands"}]}]);return (e?.client??this.client).patch({url:"/project/{projectID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},Y=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/pty",...e,...r})}create(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"body",key:"command"},{in:"body",key:"args"},{in:"body",key:"cwd"},{in:"body",key:"title"},{in:"body",key:"env"}]}]);return (e?.client??this.client).post({url:"/pty",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}remove(t,e){let r=n([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).delete({url:"/pty/{ptyID}",...e,...r})}get(t,e){let r=n([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/pty/{ptyID}",...e,...r})}update(t,e){let r=n([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"size"}]}]);return (e?.client??this.client).put({url:"/pty/{ptyID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}connect(t,e){let r=n([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/pty/{ptyID}/connect",...e,...r})}},Z=class extends d{get(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/config",...e,...r})}update(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{key:"config",map:"body"}]}]);return (e?.client??this.client).patch({url:"/config",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}providers(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/config/providers",...e,...r})}},ee=class extends d{default(t){return (t?.client??this.client).get({url:"/model/default",...t})}parse(t,e){let r=n([t],[{args:[{in:"query",key:"model"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/model/parse",...e,...r})}},re=class extends d{ids(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/experimental/tool/ids",...e,...r})}list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"provider"},{in:"query",key:"model"}]}]);return (e?.client??this.client).get({url:"/experimental/tool",...e,...r})}},te=class extends d{remove(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{key:"worktreeRemoveInput",map:"body"}]}]);return (e?.client??this.client).delete({url:"/experimental/worktree",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/experimental/worktree",...e,...r})}create(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{key:"worktreeCreateInput",map:"body"}]}]);return (e?.client??this.client).post({url:"/experimental/worktree",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}reset(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{key:"worktreeResetInput",map:"body"}]}]);return (e?.client??this.client).post({url:"/experimental/worktree/reset",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},se=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/experimental/resource",...e,...r})}},ne=class extends d{constructor(){super(...arguments);y(this,"_resource");}get resource(){return this._resource??(this._resource=new se({client:this.client}))}},oe=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"roots"},{in:"query",key:"start"},{in:"query",key:"search"},{in:"query",key:"limit"}]}]);return (e?.client??this.client).get({url:"/session",...e,...r})}create(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"body",key:"parentID"},{in:"body",key:"title"},{in:"body",key:"permission"}]}]);return (e?.client??this.client).post({url:"/session",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}status(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/session/status",...e,...r})}delete(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).delete({url:"/session/{sessionID}",...e,...r})}get(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}",...e,...r})}update(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"time"}]}]);return (e?.client??this.client).patch({url:"/session/{sessionID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}children(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}/children",...e,...r})}todo(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}/todo",...e,...r})}init(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"modelID"},{in:"body",key:"providerID"},{in:"body",key:"messageID"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/init",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}fork(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/fork",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}abort(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/abort",...e,...r})}unshare(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).delete({url:"/session/{sessionID}/share",...e,...r})}share(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/share",...e,...r})}diff(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"messageID"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}/diff",...e,...r})}summarize(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"providerID"},{in:"body",key:"modelID"},{in:"body",key:"auto"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/summarize",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}messages(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"limit"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}/message",...e,...r})}prompt(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"model"},{in:"body",key:"agent"},{in:"body",key:"noReply"},{in:"body",key:"tools"},{in:"body",key:"system"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/message",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}message(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}/message/{messageID}",...e,...r})}promptAsync(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"model"},{in:"body",key:"agent"},{in:"body",key:"noReply"},{in:"body",key:"tools"},{in:"body",key:"system"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/prompt_async",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}command(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"arguments"},{in:"body",key:"command"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/command",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}shell(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"command"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/shell",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}revert(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"partID"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/revert",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}unrevert(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/unrevert",...e,...r})}},ie=class extends d{delete(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).delete({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...e,...r})}update(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"},{key:"part",map:"body"}]}]);return (e?.client??this.client).patch({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},z=class extends d{respond(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"permissionID"},{in:"query",key:"directory"},{in:"body",key:"response"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/permissions/{permissionID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}reply(t,e){let r=n([t],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"body",key:"reply"},{in:"body",key:"message"}]}]);return (e?.client??this.client).post({url:"/permission/{requestID}/reply",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/permission",...e,...r})}},ae=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/question",...e,...r})}reply(t,e){let r=n([t],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"body",key:"answers"}]}]);return (e?.client??this.client).post({url:"/question/{requestID}/reply",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}reject(t,e){let r=n([t],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/question/{requestID}/reject",...e,...r})}},pe=class extends d{authorize(t,e){let r=n([t],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"body",key:"method"}]}]);return (e?.client??this.client).post({url:"/provider/{providerID}/oauth/authorize",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}callback(t,e){let r=n([t],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"body",key:"method"},{in:"body",key:"code"}]}]);return (e?.client??this.client).post({url:"/provider/{providerID}/oauth/callback",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},le=class extends d{constructor(){super(...arguments);y(this,"_oauth");}list(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).get({url:"/provider",...r,...o})}auth(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).get({url:"/provider/auth",...r,...o})}get oauth(){return this._oauth??(this._oauth=new pe({client:this.client}))}},ye=class extends d{text(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"pattern"}]}]);return (e?.client??this.client).get({url:"/find",...e,...r})}files(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"query"},{in:"query",key:"dirs"},{in:"query",key:"type"},{in:"query",key:"limit"}]}]);return (e?.client??this.client).get({url:"/find/file",...e,...r})}symbols(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"query"}]}]);return (e?.client??this.client).get({url:"/find/symbol",...e,...r})}},ue=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"path"}]}]);return (e?.client??this.client).get({url:"/file",...e,...r})}read(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"path"}]}]);return (e?.client??this.client).get({url:"/file/content",...e,...r})}status(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/file/status",...e,...r})}},de=class extends d{remove(t,e){let r=n([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).delete({url:"/mcp/{name}/auth",...e,...r})}start(t,e){let r=n([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/mcp/{name}/auth",...e,...r})}callback(t,e){let r=n([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"body",key:"code"}]}]);return (e?.client??this.client).post({url:"/mcp/{name}/auth/callback",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}authenticate(t,e){let r=n([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/mcp/{name}/auth/authenticate",...e,...r})}},ce=class extends d{constructor(){super(...arguments);y(this,"_auth");}status(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).get({url:"/mcp",...r,...o})}add(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{in:"body",key:"name"},{in:"body",key:"config"}]}]);return (r?.client??this.client).post({url:"/mcp",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}connect(e,r){let o=n([e],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/mcp/{name}/connect",...r,...o})}disconnect(e,r){let o=n([e],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/mcp/{name}/disconnect",...r,...o})}get auth(){return this._auth??(this._auth=new de({client:this.client}))}},ge=class extends d{next(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/tui/control/next",...e,...r})}response(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{key:"body",map:"body"}]}]);return (e?.client??this.client).post({url:"/tui/control/response",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},me=class extends d{constructor(){super(...arguments);y(this,"_control");}appendPrompt(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{in:"body",key:"text"}]}]);return (r?.client??this.client).post({url:"/tui/append-prompt",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}openHelp(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/open-help",...r,...o})}openSessions(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/open-sessions",...r,...o})}openThemes(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/open-themes",...r,...o})}openModels(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/open-models",...r,...o})}submitPrompt(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/submit-prompt",...r,...o})}clearPrompt(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/clear-prompt",...r,...o})}executeCommand(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{in:"body",key:"command"}]}]);return (r?.client??this.client).post({url:"/tui/execute-command",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}showToast(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"message"},{in:"body",key:"variant"},{in:"body",key:"duration"}]}]);return (r?.client??this.client).post({url:"/tui/show-toast",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}publish(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{key:"body",map:"body"}]}]);return (r?.client??this.client).post({url:"/tui/publish",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}selectSession(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{in:"body",key:"sessionID"}]}]);return (r?.client??this.client).post({url:"/tui/select-session",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}get control(){return this._control??(this._control=new ge({client:this.client}))}},he=class extends d{dispose(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/instance/dispose",...e,...r})}},be=class extends d{get(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/path",...e,...r})}},fe=class extends d{get(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/vcs",...e,...r})}},Re=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/command",...e,...r})}},xe=class extends d{log(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"body",key:"service"},{in:"body",key:"level"},{in:"body",key:"message"},{in:"body",key:"extra"}]}]);return (e?.client??this.client).post({url:"/log",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}agents(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/agent",...e,...r})}skills(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/skill",...e,...r})}},Ee=class extends d{status(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/lsp",...e,...r})}},ke=class extends d{status(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/formatter",...e,...r})}},Se=class extends d{subscribe(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).sse.get({url:"/event",...e,...r})}},B=class B extends d{constructor(e){super(e);y(this,"_global");y(this,"_auth");y(this,"_project");y(this,"_pty");y(this,"_config");y(this,"_model");y(this,"_tool");y(this,"_worktree");y(this,"_experimental");y(this,"_session");y(this,"_part");y(this,"_permission");y(this,"_question");y(this,"_provider");y(this,"_find");y(this,"_file");y(this,"_mcp");y(this,"_tui");y(this,"_instance");y(this,"_path");y(this,"_vcs");y(this,"_command");y(this,"_app");y(this,"_lsp");y(this,"_formatter");y(this,"_event");B.__registry.set(this,e?.key);}get global(){return this._global??(this._global=new K({client:this.client}))}get auth(){return this._auth??(this._auth=new J({client:this.client}))}get project(){return this._project??(this._project=new X({client:this.client}))}get pty(){return this._pty??(this._pty=new Y({client:this.client}))}get config(){return this._config??(this._config=new Z({client:this.client}))}get model(){return this._model??(this._model=new ee({client:this.client}))}get tool(){return this._tool??(this._tool=new re({client:this.client}))}get worktree(){return this._worktree??(this._worktree=new te({client:this.client}))}get experimental(){return this._experimental??(this._experimental=new ne({client:this.client}))}get session(){return this._session??(this._session=new oe({client:this.client}))}get part(){return this._part??(this._part=new ie({client:this.client}))}get permission(){return this._permission??(this._permission=new z({client:this.client}))}get question(){return this._question??(this._question=new ae({client:this.client}))}get provider(){return this._provider??(this._provider=new le({client:this.client}))}get find(){return this._find??(this._find=new ye({client:this.client}))}get file(){return this._file??(this._file=new ue({client:this.client}))}get mcp(){return this._mcp??(this._mcp=new ce({client:this.client}))}get tui(){return this._tui??(this._tui=new me({client:this.client}))}get instance(){return this._instance??(this._instance=new he({client:this.client}))}get path(){return this._path??(this._path=new be({client:this.client}))}get vcs(){return this._vcs??(this._vcs=new fe({client:this.client}))}get command(){return this._command??(this._command=new Re({client:this.client}))}get app(){return this._app??(this._app=new xe({client:this.client}))}get lsp(){return this._lsp??(this._lsp=new Ee({client:this.client}))}get formatter(){return this._formatter??(this._formatter=new ke({client:this.client}))}get event(){return this._event??(this._event=new Se({client:this.client}))}};y(B,"__registry",new H);var G=B;function Ue(s){if(s?.fetch||(s={...s,fetch:r=>(r.timeout=false,fetch(r))}),s?.directory){let r=/[^\x00-\x7F]/.test(s.directory)?encodeURIComponent(s.directory):s.directory;s.headers={...s.headers,"x-easbot-directory|":r};}let t=_(s);return new G({client:t})}async function ze(s){s=Object.assign({hostname:"127.0.0.1",port:4096,timeout:5e3},s??{});let t=["serve",`--hostname=${s.hostname}`,`--port=${s.port}`];s.config?.logLevel&&t.push(`--log-level=${s.config.logLevel}`);let e=spawn("easbot",t,{signal:s.signal,env:{...process.env,EASBOT_CONFIG_CONTENT:JSON.stringify(s.config??{})}});return {url:await new Promise((o,u)=>{let l=setTimeout(()=>{u(new Error(`Timeout waiting for server to start after ${s.timeout}ms`));},s.timeout),i="";e.stdout?.on("data",p=>{i+=p.toString();let m=i.split(`
|
|
5
|
+
`);b=De.pop()??"";for(let $e of De){let He=$e.split(`
|
|
6
|
+
`),F=[],Pe;for(let S of He)if(S.startsWith("data:"))F.push(S.replace(/^data:\s*/,""));else if(S.startsWith("event:"))Pe=S.replace(/^event:\s*/,"");else if(S.startsWith("id:"))a=S.replace(/^id:\s*/,"");else if(S.startsWith("retry:")){let Ae=Number.parseInt(S.replace(/^retry:\s*/,""),10);Number.isNaN(Ae)||(T=Ae);}let D,Ie=!1;if(F.length){let S=F.join(`
|
|
7
|
+
`);try{D=JSON.parse(S),Ie=!0;}catch{D=S;}}Ie&&(o&&await o(D),r&&(D=await r(D))),e?.({data:D,event:Pe,id:a,retry:T}),F.length&&(yield D);}}}finally{k.removeEventListener("abort",Oe),R.releaseLock();}break}catch(w){if(t?.(w),l!==void 0&&g>=l)break;let O=Math.min(T*2**(g-1),i??3e4);await x(O);}}}()}};var Ke=s=>{switch(s){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},Xe=s=>{switch(s){case "form":return ",";case "pipeDelimited":return "|";case "spaceDelimited":return "%20";default:return ","}},Ye=s=>{switch(s){case "label":return ".";case "matrix":return ";";case "simple":return ",";default:return "&"}},U=({allowReserved:s,explode:t,name:e,style:r,value:o})=>{if(!t){let i=(s?o:o.map(p=>encodeURIComponent(p))).join(Xe(r));switch(r){case "label":return `.${i}`;case "matrix":return `;${e}=${i}`;case "simple":return i;default:return `${e}=${i}`}}let u=Ke(r),l=o.map(i=>r==="label"||r==="simple"?s?i:encodeURIComponent(i):I({allowReserved:s,name:e,value:i})).join(u);return r==="label"||r==="matrix"?u+l:l},I=({allowReserved:s,name:t,value:e})=>{if(e==null)return "";if(typeof e=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return `${t}=${s?e:encodeURIComponent(e)}`},L=({allowReserved:s,explode:t,name:e,style:r,value:o,valueOnly:u})=>{if(o instanceof Date)return u?o.toISOString():`${e}=${o.toISOString()}`;if(r!=="deepObject"&&!t){let p=[];Object.entries(o).forEach(([c,a])=>{p=[...p,c,s?a:encodeURIComponent(a)];});let m=p.join(",");switch(r){case "form":return `${e}=${m}`;case "label":return `.${m}`;case "matrix":return `;${e}=${m}`;default:return m}}let l=Ye(r),i=Object.entries(o).map(([p,m])=>I({allowReserved:s,name:r==="deepObject"?`${e}[${p}]`:p,value:m})).join(l);return r==="label"||r==="matrix"?l+i:i};var Ze=/\{[^{}]+\}/g,er=({path:s,url:t})=>{let e=t,r=t.match(Ze);if(r)for(let o of r){let u=false,l=o.substring(1,o.length-1),i="simple";l.endsWith("*")&&(u=true,l=l.substring(0,l.length-1)),l.startsWith(".")?(l=l.substring(1),i="label"):l.startsWith(";")&&(l=l.substring(1),i="matrix");let p=s[l];if(p==null)continue;if(Array.isArray(p)){e=e.replace(o,U({explode:u,name:l,style:i,value:p}));continue}if(typeof p=="object"){e=e.replace(o,L({explode:u,name:l,style:i,value:p,valueOnly:true}));continue}if(i==="matrix"){e=e.replace(o,`;${I({name:l,value:p})}`);continue}let m=encodeURIComponent(i==="label"?`.${p}`:p);e=e.replace(o,m);}return e},qe=({baseUrl:s,path:t,query:e,querySerializer:r,url:o})=>{let u=o.startsWith("/")?o:`/${o}`,l=(s??"")+u;t&&(l=er({path:t,url:l}));let i=e?r(e):"";return i.startsWith("?")&&(i=i.substring(1)),i&&(l+=`?${i}`),l};function N(s){let t=s.body!==void 0;if(t&&s.bodySerializer)return "serializedBody"in s?s.serializedBody!==void 0&&s.serializedBody!==""?s.serializedBody:null:s.body!==""?s.body:null;if(t)return s.body}var Me=async(s,t)=>{let e=typeof t=="function"?await t(s):t;if(e)return s.scheme==="bearer"?`Bearer ${e}`:s.scheme==="basic"?`Basic ${btoa(e)}`:e};var W={bodySerializer:s=>JSON.stringify(s,(t,e)=>typeof e=="bigint"?e.toString():e)};var je=({parameters:s={},...t}={})=>r=>{let o=[];if(r&&typeof r=="object")for(let u in r){let l=r[u];if(l==null)continue;let i=s[u]||t;if(Array.isArray(l)){let p=U({allowReserved:i.allowReserved,explode:true,name:u,style:"form",value:l,...i.array});p&&o.push(p);}else if(typeof l=="object"){let p=L({allowReserved:i.allowReserved,explode:true,name:u,style:"deepObject",value:l,...i.object});p&&o.push(p);}else {let p=I({allowReserved:i.allowReserved,name:u,value:l});p&&o.push(p);}}return o.join("&")},Fe=s=>{if(!s)return "stream";let t=s.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(e=>t.startsWith(e)))return "blob";if(t.startsWith("text/"))return "text"}},rr=(s,t)=>t?!!(s.headers.has(t)||s.query?.[t]||s.headers.get("Cookie")?.includes(`${t}=`)):false,Ue=async({security:s,...t})=>{for(let e of s){if(rr(t,e.name))continue;let r=await Me(e,t.auth);if(!r)continue;let o=e.name??"Authorization";switch(e.in){case "query":t.query||(t.query={}),t.query[o]=r;break;case "cookie":t.headers.append("Cookie",`${o}=${r}`);break;default:t.headers.set(o,r);break}}},Q=s=>qe({baseUrl:s.baseUrl,path:s.path,query:s.query,querySerializer:typeof s.querySerializer=="function"?s.querySerializer:je(s.querySerializer),url:s.url}),$=(s,t)=>{let e={...s,...t};return e.baseUrl?.endsWith("/")&&(e.baseUrl=e.baseUrl.substring(0,e.baseUrl.length-1)),e.headers=_(s.headers,t.headers),e},tr=s=>{let t=[];return s.forEach((e,r)=>{t.push([r,e]);}),t},_=(...s)=>{let t=new Headers;for(let e of s){if(!e)continue;let r=e instanceof Headers?tr(e):Object.entries(e);for(let[o,u]of r)if(u===null)t.delete(o);else if(Array.isArray(u))for(let l of u)t.append(o,l);else u!==void 0&&t.set(o,typeof u=="object"?JSON.stringify(u):u);}return t},C=class{constructor(){y(this,"fns",[]);}clear(){this.fns=[];}eject(t){let e=this.getInterceptorIndex(t);this.fns[e]&&(this.fns[e]=null);}exists(t){let e=this.getInterceptorIndex(t);return !!this.fns[e]}getInterceptorIndex(t){return typeof t=="number"?this.fns[t]?t:-1:this.fns.indexOf(t)}update(t,e){let r=this.getInterceptorIndex(t);return this.fns[r]?(this.fns[r]=e,t):false}use(t){return this.fns.push(t),this.fns.length-1}},Le=()=>({error:new C,request:new C,response:new C}),sr=je({allowReserved:false,array:{explode:true,style:"form"},object:{explode:true,style:"deepObject"}}),nr={"Content-Type":"application/json"},q=(s={})=>({...W,headers:nr,parseAs:"auto",querySerializer:sr,...s});var M=(s={})=>{let t=$(q(),s),e=()=>({...t}),r=c=>(t=$(t,c),e()),o=Le(),u=async c=>{let a={...t,...c,fetch:c.fetch??t.fetch??globalThis.fetch,headers:_(t.headers,c.headers),serializedBody:void 0};a.security&&await Ue({...a,security:a.security}),a.requestValidator&&await a.requestValidator(a),a.body!==void 0&&a.bodySerializer&&(a.serializedBody=a.bodySerializer(a.body)),(a.body===void 0||a.serializedBody==="")&&a.headers.delete("Content-Type");let x=Q(a);return {opts:a,url:x}},l=async c=>{let{opts:a,url:x}=await u(c),j={redirect:"follow",...a,body:N(a)},v=new Request(x,j);for(let h of o.request.fns)h&&(v=await h(v,a));let T=a.fetch,g;try{g=await T(v);}catch(h){let R=h;for(let b of o.error.fns)b&&(R=await b(h,void 0,v,a));if(R=R||{},a.throwOnError)throw R;return a.responseStyle==="data"?void 0:{error:R,request:v,response:void 0}}for(let h of o.response.fns)h&&(g=await h(g,v,a));let k={request:v,response:g};if(g.ok){let h=(a.parseAs==="auto"?Fe(g.headers.get("Content-Type")):a.parseAs)??"json";if(g.status===204||g.headers.get("Content-Length")==="0"){let b;switch(h){case "arrayBuffer":case "blob":case "text":b=await g[h]();break;case "formData":b=new FormData;break;case "stream":b=g.body;break;default:b={};break}return a.responseStyle==="data"?b:{data:b,...k}}let R;switch(h){case "arrayBuffer":case "blob":case "formData":case "text":R=await g[h]();break;case "json":{let b=await g.text();R=b?JSON.parse(b):{};break}case "stream":return a.responseStyle==="data"?g.body:{data:g.body,...k}}return h==="json"&&(a.responseValidator&&await a.responseValidator(R),a.responseTransformer&&(R=await a.responseTransformer(R))),a.responseStyle==="data"?R:{data:R,...k}}let A=await g.text(),w;try{w=JSON.parse(A);}catch{}let O=w??A,P=O;for(let h of o.error.fns)h&&(P=await h(O,g,v,a));if(P=P||{},a.throwOnError)throw P;return a.responseStyle==="data"?void 0:{error:P,...k}},i=c=>a=>l({...a,method:c}),p=c=>async a=>{let{opts:x,url:j}=await u(a);return Ce({...x,body:x.body,headers:x.headers,method:c,onRequest:async(v,T)=>{let g=new Request(v,T);for(let k of o.request.fns)k&&(g=await k(g,x));return g},serializedBody:N(x),url:j})};return {buildUrl:c=>Q({...t,...c}),connect:i("CONNECT"),delete:i("DELETE"),get:i("GET"),getConfig:e,head:i("HEAD"),interceptors:o,options:i("OPTIONS"),patch:i("PATCH"),post:i("POST"),put:i("PUT"),request:l,setConfig:r,sse:{connect:p("CONNECT"),delete:p("DELETE"),get:p("GET"),head:p("HEAD"),options:p("OPTIONS"),patch:p("PATCH"),post:p("POST"),put:p("PUT"),trace:p("TRACE")},trace:i("TRACE")}};var or={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},ir=Object.entries(or),_e=(s,t)=>{t||(t=new Map);for(let e of s)"in"in e?e.key&&t.set(e.key,{in:e.in,map:e.map}):"key"in e?t.set(e.key,{map:e.map}):e.args&&_e(e.args,t);return t},ar=s=>{for(let[t,e]of Object.entries(s))e&&typeof e=="object"&&!Array.isArray(e)&&!Object.keys(e).length&&delete s[t];},n=(s,t)=>{let e={body:{},headers:{},path:{},query:{}},r=_e(t),o;for(let[u,l]of s.entries())if(t[u]&&(o=t[u]),!!o)if("in"in o)if(o.key){let i=r.get(o.key),p=i.map||o.key;i.in&&(e[i.in][p]=l);}else e.body=l;else for(let[i,p]of Object.entries(l??{})){let m=r.get(i);if(m)if(m.in){let c=m.map||i;e[m.in][c]=p;}else e[m.map]=p;else {let c=ir.find(([a])=>i.startsWith(a));if(c){let[a,x]=c;e[x][i.slice(a.length)]=p;}else if("allowExtra"in o&&o.allowExtra){for(let[a,x]of Object.entries(o.allowExtra))if(x){e[a][i]=p;break}}}}return ar(e),e};var ze=M(q({baseUrl:"http://localhost:4096"}));var d=class{constructor(t){y(this,"client");this.client=t?.client??ze;}},H=class{constructor(){y(this,"defaultKey","default");y(this,"instances",new Map);}get(t){let e=this.instances.get(t??this.defaultKey);if(!e)throw new Error('No SDK client found. Create one with "new EasbotClient()" to fix this error.');return e}set(t,e){this.instances.set(e??this.defaultKey,t);}},V=class extends d{get(t){return (t?.client??this.client).get({url:"/global/config",...t})}update(t,e){let r=n([t],[{args:[{key:"config",map:"body"}]}]);return (e?.client??this.client).patch({url:"/global/config",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},J=class extends d{constructor(){super(...arguments);y(this,"_config");}health(e){return (e?.client??this.client).get({url:"/global/health",...e})}event(e){return (e?.client??this.client).sse.get({url:"/global/event",...e})}dispose(e){return (e?.client??this.client).post({url:"/global/dispose",...e})}get config(){return this._config??(this._config=new V({client:this.client}))}},K=class extends d{event(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).sse.get({url:"/session/{sessionID}/event",...e,...r})}list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"roots"},{in:"query",key:"start"},{in:"query",key:"search"},{in:"query",key:"limit"}]}]);return (e?.client??this.client).get({url:"/session",...e,...r})}create(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"body",key:"parentID"},{in:"body",key:"title"},{in:"body",key:"permission"}]}]);return (e?.client??this.client).post({url:"/session",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}status(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/session/status",...e,...r})}delete(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).delete({url:"/session/{sessionID}",...e,...r})}get(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}",...e,...r})}update(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"time"}]}]);return (e?.client??this.client).patch({url:"/session/{sessionID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}children(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}/children",...e,...r})}todo(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}/todo",...e,...r})}init(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"modelID"},{in:"body",key:"providerID"},{in:"body",key:"messageID"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/init",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}fork(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/fork",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}abort(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/abort",...e,...r})}unshare(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).delete({url:"/session/{sessionID}/share",...e,...r})}share(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/share",...e,...r})}diff(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"messageID"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}/diff",...e,...r})}summarize(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"providerID"},{in:"body",key:"modelID"},{in:"body",key:"auto"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/summarize",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}messages(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"limit"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}/message",...e,...r})}prompt(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"model"},{in:"body",key:"agent"},{in:"body",key:"noReply"},{in:"body",key:"tools"},{in:"body",key:"format"},{in:"body",key:"system"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/message",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}deleteMessage(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).delete({url:"/session/{sessionID}/message/{messageID}",...e,...r})}message(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/session/{sessionID}/message/{messageID}",...e,...r})}promptAsync(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"model"},{in:"body",key:"agent"},{in:"body",key:"noReply"},{in:"body",key:"tools"},{in:"body",key:"system"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/prompt_async",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}command(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"arguments"},{in:"body",key:"command"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/command",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}shell(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"command"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/shell",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}revert(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"partID"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/revert",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}unrevert(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/unrevert",...e,...r})}},X=class extends d{event(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).sse.get({url:"/session/{sessionID}/message/{messageID}/event",...e,...r})}},Y=class extends d{remove(t,e){let r=n([t],[{args:[{in:"path",key:"providerID"}]}]);return (e?.client??this.client).delete({url:"/auth/{providerID}",...e,...r})}set(t,e){let r=n([t],[{args:[{in:"path",key:"providerID"},{key:"auth",map:"body"}]}]);return (e?.client??this.client).put({url:"/auth/{providerID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},Z=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/project",...e,...r})}current(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/project/current",...e,...r})}initGit(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return (e?.client??this.client).post({url:"/project/git/init",...e,...r})}update(t,e){let r=n([t],[{args:[{in:"path",key:"projectID"},{in:"query",key:"directory"},{in:"body",key:"name"},{in:"body",key:"icon"},{in:"body",key:"commands"}]}]);return (e?.client??this.client).patch({url:"/project/{projectID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},ee=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/pty",...e,...r})}create(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"body",key:"command"},{in:"body",key:"args"},{in:"body",key:"cwd"},{in:"body",key:"title"},{in:"body",key:"env"}]}]);return (e?.client??this.client).post({url:"/pty",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}remove(t,e){let r=n([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).delete({url:"/pty/{ptyID}",...e,...r})}get(t,e){let r=n([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/pty/{ptyID}",...e,...r})}update(t,e){let r=n([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"size"}]}]);return (e?.client??this.client).put({url:"/pty/{ptyID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}connect(t,e){let r=n([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/pty/{ptyID}/connect",...e,...r})}},re=class extends d{get(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/config",...e,...r})}update(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{key:"config",map:"body"}]}]);return (e?.client??this.client).patch({url:"/config",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}providers(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/config/providers",...e,...r})}},te=class extends d{default(t){return (t?.client??this.client).get({url:"/model/default",...t})}parse(t,e){let r=n([t],[{args:[{in:"query",key:"model"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/model/parse",...e,...r})}},se=class extends d{ids(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/experimental/tool/ids",...e,...r})}list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"provider"},{in:"query",key:"model"}]}]);return (e?.client??this.client).get({url:"/experimental/tool",...e,...r})}},ne=class extends d{remove(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{key:"worktreeRemoveInput",map:"body"}]}]);return (e?.client??this.client).delete({url:"/experimental/worktree",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/experimental/worktree",...e,...r})}create(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{key:"worktreeCreateInput",map:"body"}]}]);return (e?.client??this.client).post({url:"/experimental/worktree",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}reset(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{key:"worktreeResetInput",map:"body"}]}]);return (e?.client??this.client).post({url:"/experimental/worktree/reset",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},oe=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"roots"},{in:"query",key:"start"},{in:"query",key:"cursor"},{in:"query",key:"search"},{in:"query",key:"limit"},{in:"query",key:"archived"}]}]);return (e?.client??this.client).get({url:"/experimental/session",...e,...r})}},ie=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/experimental/resource",...e,...r})}},ae=class extends d{constructor(){super(...arguments);y(this,"_session");y(this,"_resource");}get session(){return this._session??(this._session=new oe({client:this.client}))}get resource(){return this._resource??(this._resource=new ie({client:this.client}))}},pe=class extends d{delete(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).delete({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...e,...r})}update(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"},{key:"part",map:"body"}]}]);return (e?.client??this.client).patch({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},z=class extends d{respond(t,e){let r=n([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"permissionID"},{in:"query",key:"directory"},{in:"body",key:"response"}]}]);return (e?.client??this.client).post({url:"/session/{sessionID}/permissions/{permissionID}",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}reply(t,e){let r=n([t],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"body",key:"reply"},{in:"body",key:"message"}]}]);return (e?.client??this.client).post({url:"/permission/{requestID}/reply",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/permission",...e,...r})}},le=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/question",...e,...r})}reply(t,e){let r=n([t],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"body",key:"answers"}]}]);return (e?.client??this.client).post({url:"/question/{requestID}/reply",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}reject(t,e){let r=n([t],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/question/{requestID}/reject",...e,...r})}},ye=class extends d{authorize(t,e){let r=n([t],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"body",key:"method"}]}]);return (e?.client??this.client).post({url:"/provider/{providerID}/oauth/authorize",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}callback(t,e){let r=n([t],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"body",key:"method"},{in:"body",key:"code"}]}]);return (e?.client??this.client).post({url:"/provider/{providerID}/oauth/callback",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},ue=class extends d{constructor(){super(...arguments);y(this,"_oauth");}list(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).get({url:"/provider",...r,...o})}auth(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).get({url:"/provider/auth",...r,...o})}get oauth(){return this._oauth??(this._oauth=new ye({client:this.client}))}},de=class extends d{text(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"pattern"}]}]);return (e?.client??this.client).get({url:"/find",...e,...r})}files(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"query"},{in:"query",key:"dirs"},{in:"query",key:"type"},{in:"query",key:"limit"}]}]);return (e?.client??this.client).get({url:"/find/file",...e,...r})}symbols(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"query"}]}]);return (e?.client??this.client).get({url:"/find/symbol",...e,...r})}},ce=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"path"}]}]);return (e?.client??this.client).get({url:"/file",...e,...r})}read(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"path"}]}]);return (e?.client??this.client).get({url:"/file/content",...e,...r})}status(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/file/status",...e,...r})}},ge=class extends d{remove(t,e){let r=n([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).delete({url:"/mcp/{name}/auth",...e,...r})}start(t,e){let r=n([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/mcp/{name}/auth",...e,...r})}callback(t,e){let r=n([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"body",key:"code"}]}]);return (e?.client??this.client).post({url:"/mcp/{name}/auth/callback",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}authenticate(t,e){let r=n([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/mcp/{name}/auth/authenticate",...e,...r})}},me=class extends d{constructor(){super(...arguments);y(this,"_auth");}status(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).get({url:"/mcp",...r,...o})}add(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{in:"body",key:"name"},{in:"body",key:"config"}]}]);return (r?.client??this.client).post({url:"/mcp",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}connect(e,r){let o=n([e],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/mcp/{name}/connect",...r,...o})}disconnect(e,r){let o=n([e],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/mcp/{name}/disconnect",...r,...o})}get auth(){return this._auth??(this._auth=new ge({client:this.client}))}},he=class extends d{next(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/tui/control/next",...e,...r})}response(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{key:"body",map:"body"}]}]);return (e?.client??this.client).post({url:"/tui/control/response",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},be=class extends d{constructor(){super(...arguments);y(this,"_control");}appendPrompt(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{in:"body",key:"text"}]}]);return (r?.client??this.client).post({url:"/tui/append-prompt",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}openHelp(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/open-help",...r,...o})}openSessions(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/open-sessions",...r,...o})}openThemes(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/open-themes",...r,...o})}openModels(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/open-models",...r,...o})}submitPrompt(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/submit-prompt",...r,...o})}clearPrompt(e,r){let o=n([e],[{args:[{in:"query",key:"directory"}]}]);return (r?.client??this.client).post({url:"/tui/clear-prompt",...r,...o})}executeCommand(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{in:"body",key:"command"}]}]);return (r?.client??this.client).post({url:"/tui/execute-command",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}showToast(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"message"},{in:"body",key:"variant"},{in:"body",key:"duration"}]}]);return (r?.client??this.client).post({url:"/tui/show-toast",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}publish(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{key:"body",map:"body"}]}]);return (r?.client??this.client).post({url:"/tui/publish",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}selectSession(e,r){let o=n([e],[{args:[{in:"query",key:"directory"},{in:"body",key:"sessionID"}]}]);return (r?.client??this.client).post({url:"/tui/select-session",...r,...o,headers:{"Content-Type":"application/json",...r?.headers,...o.headers}})}get control(){return this._control??(this._control=new he({client:this.client}))}},Re=class extends d{dispose(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).post({url:"/instance/dispose",...e,...r})}},Ee=class extends d{get(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/path",...e,...r})}},fe=class extends d{get(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/vcs",...e,...r})}},xe=class extends d{list(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/command",...e,...r})}},ke=class extends d{log(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"body",key:"service"},{in:"body",key:"level"},{in:"body",key:"message"},{in:"body",key:"extra"}]}]);return (e?.client??this.client).post({url:"/log",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}agents(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/agent",...e,...r})}skills(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/skill",...e,...r})}},ve=class extends d{create(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{in:"body",key:"name"},{in:"body",key:"mode"},{in:"body",key:"permission"},{in:"body",key:"description"},{in:"body",key:"prompt"},{in:"body",key:"model"},{in:"body",key:"temperature"},{in:"body",key:"topP"},{in:"body",key:"color"},{in:"body",key:"hidden"},{in:"body",key:"variant"},{in:"body",key:"steps"},{in:"body",key:"options"}]}]);return (e?.client??this.client).post({url:"/agent",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}get(t,e){let r=n([t],[{args:[{in:"path",key:"agentID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/agent/{agentID}",...e,...r})}event(t,e){let r=n([t],[{args:[{in:"path",key:"agentID"},{in:"query",key:"directory"}]}]);return (e?.client??this.client).sse.get({url:"/agent/{agentID}/event",...e,...r})}default(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/agent/default",...e,...r})}},Se=class extends d{status(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/lsp",...e,...r})}},Te=class extends d{status(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).get({url:"/formatter",...e,...r})}},we=class extends d{subscribe(t,e){let r=n([t],[{args:[{in:"query",key:"directory"}]}]);return (e?.client??this.client).sse.get({url:"/event",...e,...r})}publish(t,e){let r=n([t],[{args:[{in:"query",key:"directory"},{key:"event",map:"body"}]}]);return (e?.client??this.client).post({url:"/event",...e,...r,headers:{"Content-Type":"application/json",...e?.headers,...r.headers}})}},B=class B extends d{constructor(e){super(e);y(this,"_global");y(this,"_session");y(this,"_message");y(this,"_auth");y(this,"_project");y(this,"_pty");y(this,"_config");y(this,"_model");y(this,"_tool");y(this,"_worktree");y(this,"_experimental");y(this,"_part");y(this,"_permission");y(this,"_question");y(this,"_provider");y(this,"_find");y(this,"_file");y(this,"_mcp");y(this,"_tui");y(this,"_instance");y(this,"_path");y(this,"_vcs");y(this,"_command");y(this,"_app");y(this,"_agent");y(this,"_lsp");y(this,"_formatter");y(this,"_event");B.__registry.set(this,e?.key);}get global(){return this._global??(this._global=new J({client:this.client}))}get session(){return this._session??(this._session=new K({client:this.client}))}get message(){return this._message??(this._message=new X({client:this.client}))}get auth(){return this._auth??(this._auth=new Y({client:this.client}))}get project(){return this._project??(this._project=new Z({client:this.client}))}get pty(){return this._pty??(this._pty=new ee({client:this.client}))}get config(){return this._config??(this._config=new re({client:this.client}))}get model(){return this._model??(this._model=new te({client:this.client}))}get tool(){return this._tool??(this._tool=new se({client:this.client}))}get worktree(){return this._worktree??(this._worktree=new ne({client:this.client}))}get experimental(){return this._experimental??(this._experimental=new ae({client:this.client}))}get part(){return this._part??(this._part=new pe({client:this.client}))}get permission(){return this._permission??(this._permission=new z({client:this.client}))}get question(){return this._question??(this._question=new le({client:this.client}))}get provider(){return this._provider??(this._provider=new ue({client:this.client}))}get find(){return this._find??(this._find=new de({client:this.client}))}get file(){return this._file??(this._file=new ce({client:this.client}))}get mcp(){return this._mcp??(this._mcp=new me({client:this.client}))}get tui(){return this._tui??(this._tui=new be({client:this.client}))}get instance(){return this._instance??(this._instance=new Re({client:this.client}))}get path(){return this._path??(this._path=new Ee({client:this.client}))}get vcs(){return this._vcs??(this._vcs=new fe({client:this.client}))}get command(){return this._command??(this._command=new xe({client:this.client}))}get app(){return this._app??(this._app=new ke({client:this.client}))}get agent(){return this._agent??(this._agent=new ve({client:this.client}))}get lsp(){return this._lsp??(this._lsp=new Se({client:this.client}))}get formatter(){return this._formatter??(this._formatter=new Te({client:this.client}))}get event(){return this._event??(this._event=new we({client:this.client}))}};y(B,"__registry",new H);var G=B;function Ge(s){if(s?.fetch||(s={...s,fetch:r=>(r.timeout=false,fetch(r))}),s?.directory){let r=/[^\x00-\x7F]/.test(s.directory)?encodeURIComponent(s.directory):s.directory;s.headers={...s.headers,"x-easbot-directory|":r};}let t=M(s);return new G({client:t})}async function Ne(s){s=Object.assign({hostname:"127.0.0.1",port:4096,timeout:5e3},s??{});let t=["serve",`--hostname=${s.hostname}`,`--port=${s.port}`];s.config?.logLevel&&t.push(`--log-level=${s.config.logLevel}`);let e=spawn("easbot",t,{signal:s.signal,env:{...process.env,EASBOT_CONFIG_CONTENT:JSON.stringify(s.config??{})}});return {url:await new Promise((o,u)=>{let l=setTimeout(()=>{u(new Error(`Timeout waiting for server to start after ${s.timeout}ms`));},s.timeout),i="";e.stdout?.on("data",p=>{i+=p.toString();let m=i.split(`
|
|
8
8
|
`);for(let c of m)if(c.startsWith("easbot server listening")){let a=c.match(/on\s+(https?:\/\/[^\s]+)/);if(!a)throw new Error(`Failed to parse server url from output: ${c}`);clearTimeout(l),o(a[1]);return}}),e.stderr?.on("data",p=>{i+=p.toString();}),e.on("exit",p=>{clearTimeout(l);let m=`Server exited with code ${p}`;i.trim()&&(m+=`
|
|
9
|
-
Server output: ${i}`),u(new Error(m));}),e.on("error",p=>{clearTimeout(l),u(p);}),s.signal&&s.signal.addEventListener("abort",()=>{clearTimeout(l),u(new Error("Aborted"));});}),close(){e.kill();}}}function
|
|
9
|
+
Server output: ${i}`),u(new Error(m));}),e.on("error",p=>{clearTimeout(l),u(p);}),s.signal&&s.signal.addEventListener("abort",()=>{clearTimeout(l),u(new Error("Aborted"));});}),close(){e.kill();}}}function yt(s){let t=[];s?.project&&t.push(`--project=${s.project}`),s?.model&&t.push(`--model=${s.model}`),s?.session&&t.push(`--session=${s.session}`),s?.agent&&t.push(`--agent=${s.agent}`);let e=spawn("easbot",t,{signal:s?.signal,stdio:"inherit",env:{...process.env,EASBOT_CONFIG_CONTENT:JSON.stringify(s?.config??{})}});return {close(){e.kill();}}}async function mt(s){let t=await Ne({...s});return {client:Ge({baseUrl:t.url}),server:t}}export{G as EasbotClient,z as Permission,Ge as createEasbotClient,Ne as createEasbotServer,mt as createEascode,yt as createEascodeTui};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@easbot/sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "Easbot SDK for client applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -14,23 +14,6 @@
|
|
|
14
14
|
},
|
|
15
15
|
"./package.json": "./package.json"
|
|
16
16
|
},
|
|
17
|
-
"scripts": {
|
|
18
|
-
"dev": "tsup --watch --env.NODE_ENV development",
|
|
19
|
-
"build": "node scripts/build.mjs",
|
|
20
|
-
"test": "vitest",
|
|
21
|
-
"test:run": "vitest run",
|
|
22
|
-
"lint": "biome check .",
|
|
23
|
-
"lint:fix": "biome check --write .",
|
|
24
|
-
"lint:report": "biome check --reporter=summary .",
|
|
25
|
-
"format": "biome format .",
|
|
26
|
-
"format:fix": "biome format --write .",
|
|
27
|
-
"type-check": "tsc --noEmit",
|
|
28
|
-
"clean": "npx rimraf dist node_modules",
|
|
29
|
-
"prepare": "echo norun",
|
|
30
|
-
"prepublishOnly": "pnpm build",
|
|
31
|
-
"publish:npm": "bash scripts/publish.sh",
|
|
32
|
-
"publish:npm:win": "powershell -ExecutionPolicy Bypass -File scripts/publish.ps1"
|
|
33
|
-
},
|
|
34
17
|
"keywords": [
|
|
35
18
|
"easbot",
|
|
36
19
|
"sdk",
|
|
@@ -58,19 +41,32 @@
|
|
|
58
41
|
"events": "^3.3.0"
|
|
59
42
|
},
|
|
60
43
|
"devDependencies": {
|
|
61
|
-
"@
|
|
62
|
-
"@types/
|
|
63
|
-
"@types/commander": "^2.12.5",
|
|
44
|
+
"@biomejs/biome": "^2.4.8",
|
|
45
|
+
"@types/node": "^22.17.0",
|
|
64
46
|
"@hey-api/openapi-ts": "^0.94.4",
|
|
65
47
|
"tsup": "^8.5.1",
|
|
66
|
-
"@biomejs/biome": "^2.4.8",
|
|
67
48
|
"typescript": "^6.0.2",
|
|
68
49
|
"vitest": "^4.1.1"
|
|
69
50
|
},
|
|
70
51
|
"engines": {
|
|
71
|
-
"node": ">=
|
|
52
|
+
"node": ">=22.17.0"
|
|
72
53
|
},
|
|
73
54
|
"publishConfig": {
|
|
74
55
|
"access": "public"
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"dev": "tsup --watch --env.NODE_ENV development",
|
|
59
|
+
"build": "node scripts/build.mjs",
|
|
60
|
+
"test": "vitest",
|
|
61
|
+
"test:run": "vitest run",
|
|
62
|
+
"lint": "biome check .",
|
|
63
|
+
"lint:fix": "biome check --write .",
|
|
64
|
+
"lint:report": "biome check --reporter=summary .",
|
|
65
|
+
"format": "biome format .",
|
|
66
|
+
"format:fix": "biome format --write .",
|
|
67
|
+
"type-check": "tsc --noEmit",
|
|
68
|
+
"clean": "npx rimraf dist node_modules",
|
|
69
|
+
"publish:npm": "bash scripts/publish.sh",
|
|
70
|
+
"publish:npm:win": "powershell -ExecutionPolicy Bypass -File scripts/publish.ps1"
|
|
75
71
|
}
|
|
76
|
-
}
|
|
72
|
+
}
|