@kortix/sdk 0.13.9 → 0.13.11

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.
Files changed (40) hide show
  1. package/README.md +48 -32
  2. package/dist/browser/stores/sync-store.d.ts.map +1 -1
  3. package/dist/browser/stores/sync-store.js +67 -14
  4. package/dist/browser/stores/sync-store.js.map +1 -1
  5. package/dist/core/client/kortix.d.ts +1 -0
  6. package/dist/core/client/kortix.d.ts.map +1 -1
  7. package/dist/core/rest/projects-client/projects.d.ts +6 -0
  8. package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
  9. package/dist/core/rest/projects-client/projects.js.map +1 -1
  10. package/dist/core/rest/projects-client/shared.d.ts +4 -0
  11. package/dist/core/rest/projects-client/shared.d.ts.map +1 -1
  12. package/dist/core/rest/projects-client/shared.js.map +1 -1
  13. package/dist/core/turns/errors.d.ts +11 -2
  14. package/dist/core/turns/errors.d.ts.map +1 -1
  15. package/dist/core/turns/errors.js +186 -64
  16. package/dist/core/turns/errors.js.map +1 -1
  17. package/dist/index.d.ts +20 -5
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +20 -5
  20. package/dist/index.js.map +1 -1
  21. package/dist/kortix.esm.min.js +32 -32
  22. package/dist/kortix.global.js +32 -32
  23. package/dist/react/provider-refresh.d.ts.map +1 -1
  24. package/dist/react/provider-refresh.js +14 -0
  25. package/dist/react/provider-refresh.js.map +1 -1
  26. package/dist/react/query-keys.d.ts +67 -0
  27. package/dist/react/query-keys.d.ts.map +1 -1
  28. package/dist/react/query-keys.js +67 -0
  29. package/dist/react/query-keys.js.map +1 -1
  30. package/dist/react/use-project-name.d.ts +20 -0
  31. package/dist/react/use-project-name.d.ts.map +1 -1
  32. package/dist/react/use-project-name.js +30 -0
  33. package/dist/react/use-project-name.js.map +1 -1
  34. package/dist/react/use-session-working.d.ts.map +1 -1
  35. package/dist/react/use-session-working.js +7 -3
  36. package/dist/react/use-session-working.js.map +1 -1
  37. package/dist/react/use-session.d.ts.map +1 -1
  38. package/dist/react/use-session.js +4 -2
  39. package/dist/react/use-session.js.map +1 -1
  40. package/package.json +2 -2
@@ -1,31 +1,31 @@
1
- var Zp={backendUrl:"",getToken:async()=>null},Yt=null,ot=null;function yy(t){ot=t}function hy(){return ot}function Zt(t,e){e?.global!==!1&&(Yt=t)}function $(){return ot?.()??Yt??Zp}function en(){return Yt!==null||ot?.()!==void 0}var js=({onRequest:t,onSseError:e,onSseEvent:n,responseTransformer:r,responseValidator:s,sseDefaultRetryDelay:o,sseMaxRetryAttempts:u,sseMaxRetryDelay:p,sseSleepFn:d,url:f,...m})=>{let h,x=d??(I=>new Promise(E=>setTimeout(E,I)));return{stream:async function*(){let I=o??3e3,E=0,l=m.signal??new AbortController().signal;for(;!l.aborted;){E++;let b=m.headers instanceof Headers?m.headers:new Headers(m.headers);h!==void 0&&b.set("Last-Event-ID",h);try{let c={redirect:"follow",...m,body:m.serializedBody,headers:b,signal:l},S=new Request(f,c);t&&(S=await t(f,c));let R=await(m.fetch??globalThis.fetch)(S);if(!R.ok)throw new Error(`SSE failed: ${R.status} ${R.statusText}`);if(!R.body)throw new Error("No body in SSE response");let j=R.body.pipeThrough(new TextDecoderStream).getReader(),D="",q=()=>{try{j.cancel()}catch{}};l.addEventListener("abort",q);try{for(;;){let{done:X,value:W}=await j.read();if(X)break;D+=W,D=D.replace(/\r\n/g,`
1
+ var sd={backendUrl:"",getToken:async()=>null},tn=null,at=null;function My(e){at=e}function qy(){return at}function nn(e,t){t?.global!==!1&&(tn=e)}function $(){return at?.()??tn??sd}function rn(){return tn!==null||at?.()!==void 0}var Ds=({onRequest:e,onSseError:t,onSseEvent:n,responseTransformer:r,responseValidator:s,sseDefaultRetryDelay:o,sseMaxRetryAttempts:l,sseMaxRetryDelay:p,sseSleepFn:d,url:f,...m})=>{let h,x=d??(I=>new Promise(E=>setTimeout(E,I)));return{stream:async function*(){let I=o??3e3,E=0,u=m.signal??new AbortController().signal;for(;!u.aborted;){E++;let b=m.headers instanceof Headers?m.headers:new Headers(m.headers);h!==void 0&&b.set("Last-Event-ID",h);try{let c={redirect:"follow",...m,body:m.serializedBody,headers:b,signal:u},S=new Request(f,c);e&&(S=await e(f,c));let R=await(m.fetch??globalThis.fetch)(S);if(!R.ok)throw new Error(`SSE failed: ${R.status} ${R.statusText}`);if(!R.body)throw new Error("No body in SSE response");let j=R.body.pipeThrough(new TextDecoderStream).getReader(),D="",q=()=>{try{j.cancel()}catch{}};u.addEventListener("abort",q);try{for(;;){let{done:X,value:W}=await j.read();if(X)break;D+=W,D=D.replace(/\r\n/g,`
2
2
  `).replace(/\r/g,`
3
3
  `);let y=D.split(`
4
4
 
5
5
  `);D=y.pop()??"";for(let T of y){let z=T.split(`
6
6
  `),U=[],F;for(let N of z)if(N.startsWith("data:"))U.push(N.replace(/^data:\s*/,""));else if(N.startsWith("event:"))F=N.replace(/^event:\s*/,"");else if(N.startsWith("id:"))h=N.replace(/^id:\s*/,"");else if(N.startsWith("retry:")){let Q=Number.parseInt(N.replace(/^retry:\s*/,""),10);Number.isNaN(Q)||(I=Q)}let L,J=!1;if(U.length){let N=U.join(`
7
- `);try{L=JSON.parse(N),J=!0}catch{L=N}}J&&(s&&await s(L),r&&(L=await r(L))),n?.({data:L,event:F,id:h,retry:I}),U.length&&(yield L)}}}finally{l.removeEventListener("abort",q),j.releaseLock()}break}catch(c){if(e?.(c),u!==void 0&&E>=u)break;let S=Math.min(I*2**(E-1),p??3e4);await x(S)}}}()}};var ed=t=>{switch(t){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},td=t=>{switch(t){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},nd=t=>{switch(t){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},at=({allowReserved:t,explode:e,name:n,style:r,value:s})=>{if(!e){let p=(t?s:s.map(d=>encodeURIComponent(d))).join(td(r));switch(r){case"label":return`.${p}`;case"matrix":return`;${n}=${p}`;case"simple":return p;default:return`${n}=${p}`}}let o=ed(r),u=s.map(p=>r==="label"||r==="simple"?t?p:encodeURIComponent(p):Se({allowReserved:t,name:n,value:p})).join(o);return r==="label"||r==="matrix"?o+u:u},Se=({allowReserved:t,name:e,value:n})=>{if(n==null)return"";if(typeof n=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${t?n:encodeURIComponent(n)}`},ct=({allowReserved:t,explode:e,name:n,style:r,value:s,valueOnly:o})=>{if(s instanceof Date)return o?s.toISOString():`${n}=${s.toISOString()}`;if(r!=="deepObject"&&!e){let d=[];Object.entries(s).forEach(([m,h])=>{d=[...d,m,t?h:encodeURIComponent(h)]});let f=d.join(",");switch(r){case"form":return`${n}=${f}`;case"label":return`.${f}`;case"matrix":return`;${n}=${f}`;default:return f}}let u=nd(r),p=Object.entries(s).map(([d,f])=>Se({allowReserved:t,name:r==="deepObject"?`${n}[${d}]`:d,value:f})).join(u);return r==="label"||r==="matrix"?u+p:p};var rd=/\{[^{}]+\}/g,sd=({path:t,url:e})=>{let n=e,r=e.match(rd);if(r)for(let s of r){let o=!1,u=s.substring(1,s.length-1),p="simple";u.endsWith("*")&&(o=!0,u=u.substring(0,u.length-1)),u.startsWith(".")?(u=u.substring(1),p="label"):u.startsWith(";")&&(u=u.substring(1),p="matrix");let d=t[u];if(d==null)continue;if(Array.isArray(d)){n=n.replace(s,at({explode:o,name:u,style:p,value:d}));continue}if(typeof d=="object"){n=n.replace(s,ct({explode:o,name:u,style:p,value:d,valueOnly:!0}));continue}if(p==="matrix"){n=n.replace(s,`;${Se({name:u,value:d})}`);continue}let f=encodeURIComponent(p==="label"?`.${d}`:d);n=n.replace(s,f)}return n},$s=({baseUrl:t,path:e,query:n,querySerializer:r,url:s})=>{let o=s.startsWith("/")?s:`/${s}`,u=(t??"")+o;e&&(u=sd({path:e,url:u}));let p=n?r(n):"";return p.startsWith("?")&&(p=p.substring(1)),p&&(u+=`?${p}`),u};function tn(t){let e=t.body!==void 0;if(e&&t.bodySerializer)return"serializedBody"in t?t.serializedBody!==void 0&&t.serializedBody!==""?t.serializedBody:null:t.body!==""?t.body:null;if(e)return t.body}var Ms=async(t,e)=>{let n=typeof e=="function"?await e(t):e;if(n)return t.scheme==="bearer"?`Bearer ${n}`:t.scheme==="basic"?`Basic ${btoa(n)}`:n};var nn={bodySerializer:t=>JSON.stringify(t,(e,n)=>typeof n=="bigint"?n.toString():n)};var qs=({parameters:t={},...e}={})=>r=>{let s=[];if(r&&typeof r=="object")for(let o in r){let u=r[o];if(u==null)continue;let p=t[o]||e;if(Array.isArray(u)){let d=at({allowReserved:p.allowReserved,explode:!0,name:o,style:"form",value:u,...p.array});d&&s.push(d)}else if(typeof u=="object"){let d=ct({allowReserved:p.allowReserved,explode:!0,name:o,style:"deepObject",value:u,...p.object});d&&s.push(d)}else{let d=Se({allowReserved:p.allowReserved,name:o,value:u});d&&s.push(d)}}return s.join("&")},Ds=t=>{if(!t)return"stream";let e=t.split(";")[0]?.trim();if(e){if(e.startsWith("application/json")||e.endsWith("+json"))return"json";if(e==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some(n=>e.startsWith(n)))return"blob";if(e.startsWith("text/"))return"text"}},id=(t,e)=>e?!!(t.headers.has(e)||t.query?.[e]||t.headers.get("Cookie")?.includes(`${e}=`)):!1,Os=async({security:t,...e})=>{for(let n of t){if(id(e,n.name))continue;let r=await Ms(n,e.auth);if(!r)continue;let s=n.name??"Authorization";switch(n.in){case"query":e.query||(e.query={}),e.query[s]=r;break;case"cookie":e.headers.append("Cookie",`${s}=${r}`);break;default:e.headers.set(s,r);break}}},rn=t=>$s({baseUrl:t.baseUrl,path:t.path,query:t.query,querySerializer:typeof t.querySerializer=="function"?t.querySerializer:qs(t.querySerializer),url:t.url}),sn=(t,e)=>{let n={...t,...e};return n.baseUrl?.endsWith("/")&&(n.baseUrl=n.baseUrl.substring(0,n.baseUrl.length-1)),n.headers=lt(t.headers,e.headers),n},od=t=>{let e=[];return t.forEach((n,r)=>{e.push([r,n])}),e},lt=(...t)=>{let e=new Headers;for(let n of t){if(!n)continue;let r=n instanceof Headers?od(n):Object.entries(n);for(let[s,o]of r)if(o===null)e.delete(s);else if(Array.isArray(o))for(let u of o)e.append(s,u);else o!==void 0&&e.set(s,typeof o=="object"?JSON.stringify(o):o)}return e},Oe=class{fns=[];clear(){this.fns=[]}eject(e){let n=this.getInterceptorIndex(e);this.fns[n]&&(this.fns[n]=null)}exists(e){let n=this.getInterceptorIndex(e);return!!this.fns[n]}getInterceptorIndex(e){return typeof e=="number"?this.fns[e]?e:-1:this.fns.indexOf(e)}update(e,n){let r=this.getInterceptorIndex(e);return this.fns[r]?(this.fns[r]=n,e):!1}use(e){return this.fns.push(e),this.fns.length-1}},Us=()=>({error:new Oe,request:new Oe,response:new Oe}),ad=qs({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),cd={"Content-Type":"application/json"},Ue=(t={})=>({...nn,headers:cd,parseAs:"auto",querySerializer:ad,...t});var Fe=(t={})=>{let e=sn(Ue(),t),n=()=>({...e}),r=f=>(e=sn(e,f),n()),s=Us(),o=async f=>{let m={...e,...f,fetch:f.fetch??e.fetch??globalThis.fetch,headers:lt(e.headers,f.headers),serializedBody:void 0};m.security&&await Os({...m,security:m.security}),m.requestValidator&&await m.requestValidator(m),m.body!==void 0&&m.bodySerializer&&(m.serializedBody=m.bodySerializer(m.body)),(m.body===void 0||m.serializedBody==="")&&m.headers.delete("Content-Type");let h=rn(m);return{opts:m,url:h}},u=async f=>{let{opts:m,url:h}=await o(f),x={redirect:"follow",...m,body:tn(m)},P=new Request(h,x);for(let w of s.request.fns)w&&(P=await w(P,m));let A=m.fetch,I;try{I=await A(P)}catch(w){let R=w;for(let j of s.error.fns)j&&(R=await j(w,void 0,P,m));if(R=R||{},m.throwOnError)throw R;return m.responseStyle==="data"?void 0:{error:R,request:P,response:void 0}}for(let w of s.response.fns)w&&(I=await w(I,P,m));let E={request:P,response:I};if(I.ok){let w=(m.parseAs==="auto"?Ds(I.headers.get("Content-Type")):m.parseAs)??"json";if(I.status===204||I.headers.get("Content-Length")==="0"){let j;switch(w){case"arrayBuffer":case"blob":case"text":j=await I[w]();break;case"formData":j=new FormData;break;case"stream":j=I.body;break;default:j={};break}return m.responseStyle==="data"?j:{data:j,...E}}let R;switch(w){case"arrayBuffer":case"blob":case"formData":case"text":R=await I[w]();break;case"json":{let j=await I.text();R=j?JSON.parse(j):{};break}case"stream":return m.responseStyle==="data"?I.body:{data:I.body,...E}}return w==="json"&&(m.responseValidator&&await m.responseValidator(R),m.responseTransformer&&(R=await m.responseTransformer(R))),m.responseStyle==="data"?R:{data:R,...E}}let l=await I.text(),b;try{b=JSON.parse(l)}catch{}let c=b??l,S=c;for(let w of s.error.fns)w&&(S=await w(c,I,P,m));if(S=S||{},m.throwOnError)throw S;return m.responseStyle==="data"?void 0:{error:S,...E}},p=f=>m=>u({...m,method:f}),d=f=>async m=>{let{opts:h,url:x}=await o(m);return js({...h,body:h.body,headers:h.headers,method:f,onRequest:async(P,A)=>{let I=new Request(P,A);for(let E of s.request.fns)E&&(I=await E(I,h));return I},serializedBody:tn(h),url:x})};return{buildUrl:rn,connect:p("CONNECT"),delete:p("DELETE"),get:p("GET"),getConfig:n,head:p("HEAD"),interceptors:s,options:p("OPTIONS"),patch:p("PATCH"),post:p("POST"),put:p("PUT"),request:u,setConfig:r,sse:{connect:d("CONNECT"),delete:d("DELETE"),get:d("GET"),head:d("HEAD"),options:d("OPTIONS"),patch:d("PATCH"),post:d("POST"),put:d("PUT"),trace:d("TRACE")},trace:p("TRACE")}};var ld={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},ud=Object.entries(ld),Fs=(t,e)=>{e||(e=new Map);for(let n of t)"in"in n?n.key&&e.set(n.key,{in:n.in,map:n.map}):"key"in n?e.set(n.key,{map:n.map}):n.args&&Fs(n.args,e);return e},pd=t=>{for(let[e,n]of Object.entries(t))n&&typeof n=="object"&&!Object.keys(n).length&&delete t[e]},g=(t,e)=>{let n={body:{},headers:{},path:{},query:{}},r=Fs(e),s;for(let[o,u]of t.entries())if(e[o]&&(s=e[o]),!!s)if("in"in s)if(s.key){let p=r.get(s.key),d=p.map||s.key;p.in&&(n[p.in][d]=u)}else n.body=u;else for(let[p,d]of Object.entries(u??{})){let f=r.get(p);if(f)if(f.in){let m=f.map||p;n[f.in][m]=d}else n[f.map]=d;else{let m=ud.find(([h])=>p.startsWith(h));if(m){let[h,x]=m;n[x][p.slice(h.length)]=d}else if("allowExtra"in s&&s.allowExtra){for(let[h,x]of Object.entries(s.allowExtra))if(x){n[h][p]=d;break}}}}return pd(n),n};var Ls=Fe(Ue({baseUrl:"http://localhost:4096"}));var _=class{client;constructor(e){this.client=e?.client??Ls}},on=class{defaultKey="default";instances=new Map;get(e){let n=this.instances.get(e??this.defaultKey);if(!n)throw new Error('No SDK client found. Create one with "new OpencodeClient()" to fix this error.');return n}set(e,n){this.instances.set(n??this.defaultKey,e)}},an=class extends _{remove(e,n){let r=g([e],[{args:[{in:"path",key:"providerID"}]}]);return(n?.client??this.client).delete({url:"/auth/{providerID}",...n,...r})}set(e,n){let r=g([e],[{args:[{in:"path",key:"providerID"},{key:"auth",map:"body"}]}]);return(n?.client??this.client).put({url:"/auth/{providerID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},cn=class extends _{log(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"service"},{in:"body",key:"level"},{in:"body",key:"message"},{in:"body",key:"extra"}]}]);return(n?.client??this.client).post({url:"/log",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}agents(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/agent",...n,...r})}skills(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/skill",...n,...r})}},ln=class extends _{moveSession(e,n){let r=g([e],[{args:[{in:"body",key:"sessionID"},{in:"body",key:"destination"},{in:"body",key:"moveChanges"}]}]);return(n?.client??this.client).post({url:"/experimental/control-plane/move-session",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},un=class extends _{get(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/capabilities",...n,...r})}},pn=class extends _{get(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/console",...n,...r})}listOrgs(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/console/orgs",...n,...r})}switchOrg(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"accountID"},{in:"body",key:"orgID"}]}]);return(n?.client??this.client).post({url:"/experimental/console/switch",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},dn=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{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(n?.client??this.client).get({url:"/experimental/session",...n,...r})}background(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/experimental/session/{sessionID}/background",...n,...r})}},gn=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/resource",...n,...r})}},mn=class extends _{generateName(e,n){let r=g([e],[{args:[{in:"path",key:"projectID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"context"}]}]);return(n?.client??this.client).post({url:"/experimental/project/{projectID}/copy/generate-name",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},fn=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/workspace/adapter",...n,...r})}},yn=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/workspace",...n,...r})}create(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"id"},{in:"body",key:"type"},{in:"body",key:"branch"},{in:"body",key:"extra"}]}]);return(n?.client??this.client).post({url:"/experimental/workspace",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}syncList(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/experimental/workspace/sync-list",...n,...r})}status(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/workspace/status",...n,...r})}remove(e,n){let r=g([e],[{args:[{in:"path",key:"id"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/experimental/workspace/{id}",...n,...r})}warp(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"id"},{in:"body",key:"sessionID"},{in:"body",key:"copyChanges"}]}]);return(n?.client??this.client).post({url:"/experimental/workspace/warp",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}_adapter;get adapter(){return this._adapter??=new fn({client:this.client})}},hn=class extends _{_controlPlane;get controlPlane(){return this._controlPlane??=new ln({client:this.client})}_capabilities;get capabilities(){return this._capabilities??=new un({client:this.client})}_console;get console(){return this._console??=new pn({client:this.client})}_session;get session(){return this._session??=new dn({client:this.client})}_resource;get resource(){return this._resource??=new gn({client:this.client})}_projectCopy;get projectCopy(){return this._projectCopy??=new mn({client:this.client})}_workspace;get workspace(){return this._workspace??=new yn({client:this.client})}},bn=class extends _{get(e){return(e?.client??this.client).get({url:"/global/config",...e})}update(e,n){let r=g([e],[{args:[{key:"config",map:"body"}]}]);return(n?.client??this.client).patch({url:"/global/config",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},xn=class extends _{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})}upgrade(e,n){let r=g([e],[{args:[{in:"body",key:"target"}]}]);return(n?.client??this.client).post({url:"/global/upgrade",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}_config;get config(){return this._config??=new bn({client:this.client})}},_n=class extends _{subscribe(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).sse.get({url:"/event",...n,...r})}},Pn=class extends _{get(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/config",...n,...r})}update(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"config",map:"body"}]}]);return(n?.client??this.client).patch({url:"/config",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}providers(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/config/providers",...n,...r})}},kn=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"provider"},{in:"query",key:"model"}]}]);return(n?.client??this.client).get({url:"/experimental/tool",...n,...r})}ids(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/tool/ids",...n,...r})}},wn=class extends _{remove(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"worktreeRemoveInput",map:"body"}]}]);return(n?.client??this.client).delete({url:"/experimental/worktree",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/worktree",...n,...r})}create(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"worktreeCreateInput",map:"body"}]}]);return(n?.client??this.client).post({url:"/experimental/worktree",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}reset(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"worktreeResetInput",map:"body"}]}]);return(n?.client??this.client).post({url:"/experimental/worktree/reset",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Sn=class extends _{text(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"pattern"}]}]);return(n?.client??this.client).get({url:"/find",...n,...r})}files(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"query"},{in:"query",key:"dirs"},{in:"query",key:"type"},{in:"query",key:"limit"}]}]);return(n?.client??this.client).get({url:"/find/file",...n,...r})}symbols(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"query"}]}]);return(n?.client??this.client).get({url:"/find/symbol",...n,...r})}},vn=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"path"}]}]);return(n?.client??this.client).get({url:"/file",...n,...r})}read(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"path"}]}]);return(n?.client??this.client).get({url:"/file/content",...n,...r})}status(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/file/status",...n,...r})}},Cn=class extends _{dispose(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/instance/dispose",...n,...r})}},An=class extends _{get(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/path",...n,...r})}},Rn=class extends _{raw(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/vcs/diff/raw",...n,...r})}},Tn=class extends _{get(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/vcs",...n,...r})}status(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/vcs/status",...n,...r})}diff(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"mode"},{in:"query",key:"context"}]}]);return(n?.client??this.client).get({url:"/vcs/diff",...n,...r})}apply(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"patch"}]}]);return(n?.client??this.client).post({url:"/vcs/apply",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}_diff;get diff2(){return this._diff??=new Rn({client:this.client})}},In=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/command",...n,...r})}},En=class extends _{status(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/lsp",...n,...r})}},jn=class extends _{status(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/formatter",...n,...r})}},$n=class extends _{remove(e,n){let r=g([e],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/mcp/{name}/auth",...n,...r})}start(e,n){let r=g([e],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/mcp/{name}/auth",...n,...r})}callback(e,n){let r=g([e],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"code"}]}]);return(n?.client??this.client).post({url:"/mcp/{name}/auth/callback",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}authenticate(e,n){let r=g([e],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/mcp/{name}/auth/authenticate",...n,...r})}},Mn=class extends _{status(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/mcp",...n,...r})}add(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"name"},{in:"body",key:"config"}]}]);return(n?.client??this.client).post({url:"/mcp",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}connect(e,n){let r=g([e],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/mcp/{name}/connect",...n,...r})}disconnect(e,n){let r=g([e],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/mcp/{name}/disconnect",...n,...r})}_auth;get auth(){return this._auth??=new $n({client:this.client})}},qn=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/project",...n,...r})}current(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/project/current",...n,...r})}initGit(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/project/git/init",...n,...r})}update(e,n){let r=g([e],[{args:[{in:"path",key:"projectID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"name"},{in:"body",key:"icon"},{in:"body",key:"commands"}]}]);return(n?.client??this.client).patch({url:"/project/{projectID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}directories(e,n){let r=g([e],[{args:[{in:"path",key:"projectID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/project/{projectID}/directories",...n,...r})}},Dn=class extends _{shells(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/pty/shells",...n,...r})}list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/pty",...n,...r})}create(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"command"},{in:"body",key:"args"},{in:"body",key:"cwd"},{in:"body",key:"title"},{in:"body",key:"env"}]}]);return(n?.client??this.client).post({url:"/pty",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}remove(e,n){let r=g([e],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/pty/{ptyID}",...n,...r})}get(e,n){let r=g([e],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/pty/{ptyID}",...n,...r})}update(e,n){let r=g([e],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"title"},{in:"body",key:"size"}]}]);return(n?.client??this.client).put({url:"/pty/{ptyID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}connectToken(e,n){let r=g([e],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/pty/{ptyID}/connect-token",...n,...r})}connect(e,n){let r=g([e],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"cursor"},{in:"query",key:"ticket"}]}]);return(n?.client??this.client).get({url:"/pty/{ptyID}/connect",...n,...r})}},On=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/question",...n,...r})}reply(e,n){let r=g([e],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"answers"}]}]);return(n?.client??this.client).post({url:"/question/{requestID}/reply",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}reject(e,n){let r=g([e],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/question/{requestID}/reject",...n,...r})}},Un=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/permission",...n,...r})}reply(e,n){let r=g([e],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"reply"},{in:"body",key:"message"}]}]);return(n?.client??this.client).post({url:"/permission/{requestID}/reply",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}respond(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"permissionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"response"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/permissions/{permissionID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Fn=class extends _{authorize(e,n){let r=g([e],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"method"},{in:"body",key:"inputs"}]}]);return(n?.client??this.client).post({url:"/provider/{providerID}/oauth/authorize",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}callback(e,n){let r=g([e],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"method"},{in:"body",key:"code"}]}]);return(n?.client??this.client).post({url:"/provider/{providerID}/oauth/callback",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Ln=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/provider",...n,...r})}auth(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/provider/auth",...n,...r})}_oauth;get oauth(){return this._oauth??=new Fn({client:this.client})}},Gn=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"scope"},{in:"query",key:"path"},{in:"query",key:"roots"},{in:"query",key:"start"},{in:"query",key:"search"},{in:"query",key:"limit"}]}]);return(n?.client??this.client).get({url:"/session",...n,...r})}create(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"parentID"},{in:"body",key:"title"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"metadata"},{in:"body",key:"permission"},{in:"body",key:"workspaceID"}]}]);return(n?.client??this.client).post({url:"/session",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}status(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/session/status",...n,...r})}delete(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/session/{sessionID}",...n,...r})}get(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}",...n,...r})}update(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"title"},{in:"body",key:"metadata"},{in:"body",key:"permission"},{in:"body",key:"time"}]}]);return(n?.client??this.client).patch({url:"/session/{sessionID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}children(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}/children",...n,...r})}todo(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}/todo",...n,...r})}diff(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"messageID"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}/diff",...n,...r})}messages(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"limit"},{in:"query",key:"before"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}/message",...n,...r})}prompt(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{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(n?.client??this.client).post({url:"/session/{sessionID}/message",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}deleteMessage(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/session/{sessionID}/message/{messageID}",...n,...r})}message(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}/message/{messageID}",...n,...r})}fork(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"messageID"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/fork",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}abort(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/abort",...n,...r})}init(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"modelID"},{in:"body",key:"providerID"},{in:"body",key:"messageID"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/init",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}unshare(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/session/{sessionID}/share",...n,...r})}share(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/share",...n,...r})}summarize(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"providerID"},{in:"body",key:"modelID"},{in:"body",key:"auto"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/summarize",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}promptAsync(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{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(n?.client??this.client).post({url:"/session/{sessionID}/prompt_async",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}command(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{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(n?.client??this.client).post({url:"/session/{sessionID}/command",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}shell(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"messageID"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"command"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/shell",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}revert(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"messageID"},{in:"body",key:"partID"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/revert",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}unrevert(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/unrevert",...n,...r})}},Bn=class extends _{delete(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...n,...r})}update(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"part",map:"body"}]}]);return(n?.client??this.client).patch({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Nn=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"body",map:"body"}]}]);return(n?.client??this.client).post({url:"/sync/history",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Kn=class extends _{start(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/sync/start",...n,...r})}replay(e,n){let r=g([e],[{args:[{in:"query",key:"query_directory",map:"directory"},{in:"query",key:"workspace"},{in:"body",key:"body_directory",map:"directory"},{in:"body",key:"events"}]}]);return(n?.client??this.client).post({url:"/sync/replay",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}steal(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/sync/steal",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}_history;get history(){return this._history??=new Nn({client:this.client})}},Hn=class extends _{next(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/tui/control/next",...n,...r})}response(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"body",map:"body"}]}]);return(n?.client??this.client).post({url:"/tui/control/response",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Wn=class extends _{appendPrompt(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"text"}]}]);return(n?.client??this.client).post({url:"/tui/append-prompt",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}openHelp(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/open-help",...n,...r})}openSessions(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/open-sessions",...n,...r})}openThemes(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/open-themes",...n,...r})}openModels(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/open-models",...n,...r})}submitPrompt(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/submit-prompt",...n,...r})}clearPrompt(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/clear-prompt",...n,...r})}executeCommand(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"command"}]}]);return(n?.client??this.client).post({url:"/tui/execute-command",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}showToast(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"title"},{in:"body",key:"message"},{in:"body",key:"variant"},{in:"body",key:"duration"}]}]);return(n?.client??this.client).post({url:"/tui/show-toast",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}publish(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"body",map:"body"}]}]);return(n?.client??this.client).post({url:"/tui/publish",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}selectSession(e,n){let r=g([e],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/tui/select-session",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}_control;get control(){return this._control??=new Hn({client:this.client})}},zn=class extends _{get(e){return(e?.client??this.client).get({url:"/api/health",...e})}},Vn=class extends _{get(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/location",...n,...r})}},Jn=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/agent",...n,...r})}},Xn=class extends _{stage(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"body",key:"messageID"},{in:"body",key:"files"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/revert/stage",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}clear(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/revert/clear",...n,...r})}commit(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/revert/commit",...n,...r})}},Qn=class extends _{list(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/permission",...n,...r})}create(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"body",key:"id"},{in:"body",key:"action"},{in:"body",key:"resources"},{in:"body",key:"save"},{in:"body",key:"metadata"},{in:"body",key:"source"},{in:"body",key:"agent"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/permission",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}get(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"requestID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/permission/{requestID}",...n,...r})}reply(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"requestID"},{in:"body",key:"reply"},{in:"body",key:"message"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/permission/{requestID}/reply",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Yn=class extends _{list(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/question",...n,...r})}reply(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"requestID"},{key:"questionV2Reply",map:"body"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/question/{requestID}/reply",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}reject(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"requestID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/question/{requestID}/reject",...n,...r})}},Zn=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"workspace"},{in:"query",key:"limit"},{in:"query",key:"order"},{in:"query",key:"search"},{in:"query",key:"directory"},{in:"query",key:"project"},{in:"query",key:"subpath"},{in:"query",key:"cursor"}]}]);return(n?.client??this.client).get({url:"/api/session",...n,...r})}create(e,n){let r=g([e],[{args:[{in:"body",key:"id"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"location"}]}]);return(n?.client??this.client).post({url:"/api/session",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}active(e){return(e?.client??this.client).get({url:"/api/session/active",...e})}get(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}",...n,...r})}switchAgent(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"body",key:"agent"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/agent",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}switchModel(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"body",key:"model"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/model",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}prompt(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"body",key:"id"},{in:"body",key:"prompt"},{in:"body",key:"delivery"},{in:"body",key:"resume"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/prompt",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}compact(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/compact",...n,...r})}wait(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/wait",...n,...r})}context(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/context",...n,...r})}history(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"limit"},{in:"query",key:"after"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/history",...n,...r})}events(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"after"}]}]);return(n?.client??this.client).sse.get({url:"/api/session/{sessionID}/event",...n,...r})}interrupt(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/interrupt",...n,...r})}message(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/message/{messageID}",...n,...r})}messages(e,n){let r=g([e],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"limit"},{in:"query",key:"order"},{in:"query",key:"cursor"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/message",...n,...r})}_revert;get revert(){return this._revert??=new Xn({client:this.client})}_permission;get permission(){return this._permission??=new Qn({client:this.client})}_question;get question(){return this._question??=new Yn({client:this.client})}},er=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/model",...n,...r})}},tr=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/provider",...n,...r})}get(e,n){let r=g([e],[{args:[{in:"path",key:"providerID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/provider/{providerID}",...n,...r})}},nr=class extends _{key(e,n){let r=g([e],[{args:[{in:"path",key:"integrationID"},{in:"query",key:"location"},{in:"body",key:"key"},{in:"body",key:"label"}]}]);return(n?.client??this.client).post({url:"/api/integration/{integrationID}/connect/key",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}oauth(e,n){let r=g([e],[{args:[{in:"path",key:"integrationID"},{in:"query",key:"location"},{in:"body",key:"methodID"},{in:"body",key:"inputs"},{in:"body",key:"label"}]}]);return(n?.client??this.client).post({url:"/api/integration/{integrationID}/connect/oauth",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},rr=class extends _{cancel(e,n){let r=g([e],[{args:[{in:"path",key:"attemptID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).delete({url:"/api/integration/attempt/{attemptID}",...n,...r})}status(e,n){let r=g([e],[{args:[{in:"path",key:"attemptID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/integration/attempt/{attemptID}",...n,...r})}complete(e,n){let r=g([e],[{args:[{in:"path",key:"attemptID"},{in:"query",key:"location"},{in:"body",key:"code"}]}]);return(n?.client??this.client).post({url:"/api/integration/attempt/{attemptID}/complete",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},sr=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/integration",...n,...r})}get(e,n){let r=g([e],[{args:[{in:"path",key:"integrationID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/integration/{integrationID}",...n,...r})}_connect;get connect(){return this._connect??=new nr({client:this.client})}_attempt;get attempt(){return this._attempt??=new rr({client:this.client})}},ir=class extends _{remove(e,n){let r=g([e],[{args:[{in:"path",key:"credentialID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).delete({url:"/api/credential/{credentialID}",...n,...r})}update(e,n){let r=g([e],[{args:[{in:"path",key:"credentialID"},{in:"query",key:"location"},{in:"body",key:"label"}]}]);return(n?.client??this.client).patch({url:"/api/credential/{credentialID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},or=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/permission/request",...n,...r})}},ar=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"projectID"}]}]);return(n?.client??this.client).get({url:"/api/permission/saved",...n,...r})}remove(e,n){let r=g([e],[{args:[{in:"path",key:"id"}]}]);return(n?.client??this.client).delete({url:"/api/permission/saved/{id}",...n,...r})}},cr=class extends _{_request;get request(){return this._request??=new or({client:this.client})}_saved;get saved(){return this._saved??=new ar({client:this.client})}},lr=class extends _{read(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/fs/read/*",...n,...r})}list(e,n){let r=g([e],[{args:[{in:"query",key:"location"},{in:"query",key:"path"}]}]);return(n?.client??this.client).get({url:"/api/fs/list",...n,...r})}find(e,n){let r=g([e],[{args:[{in:"query",key:"location"},{in:"query",key:"query"},{in:"query",key:"type"},{in:"query",key:"limit"}]}]);return(n?.client??this.client).get({url:"/api/fs/find",...n,...r})}},ur=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/command",...n,...r})}},pr=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/skill",...n,...r})}},dr=class extends _{subscribe(e){return(e?.client??this.client).sse.get({url:"/api/event",...e})}},gr=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/pty",...n,...r})}create(e,n){let r=g([e],[{args:[{in:"query",key:"location"},{in:"body",key:"command"},{in:"body",key:"args"},{in:"body",key:"cwd"},{in:"body",key:"title"},{in:"body",key:"env"}]}]);return(n?.client??this.client).post({url:"/api/pty",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}remove(e,n){let r=g([e],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).delete({url:"/api/pty/{ptyID}",...n,...r})}get(e,n){let r=g([e],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/pty/{ptyID}",...n,...r})}update(e,n){let r=g([e],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"location"},{in:"body",key:"title"},{in:"body",key:"size"}]}]);return(n?.client??this.client).put({url:"/api/pty/{ptyID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}connectToken(e,n){let r=g([e],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).post({url:"/api/pty/{ptyID}/connect-token",...n,...r})}connect(e,n){let r=g([e],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"location[directory]"},{in:"query",key:"location[workspace]"},{in:"query",key:"cursor"},{in:"query",key:"ticket"}]}]);return(n?.client??this.client).get({url:"/api/pty/{ptyID}/connect",...n,...r})}},mr=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/question/request",...n,...r})}},fr=class extends _{_request;get request(){return this._request??=new mr({client:this.client})}},yr=class extends _{list(e,n){let r=g([e],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/reference",...n,...r})}},hr=class extends _{remove(e,n){let r=g([e],[{args:[{in:"path",key:"projectID"},{in:"query",key:"location"},{in:"body",key:"directory"},{in:"body",key:"force"}]}]);return(n?.client??this.client).delete({url:"/experimental/project/{projectID}/copy",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}create(e,n){let r=g([e],[{args:[{in:"path",key:"projectID"},{in:"query",key:"location"},{in:"body",key:"strategy"},{in:"body",key:"directory"},{in:"body",key:"name"}]}]);return(n?.client??this.client).post({url:"/experimental/project/{projectID}/copy",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}refresh(e,n){let r=g([e],[{args:[{in:"path",key:"projectID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).post({url:"/experimental/project/{projectID}/copy/refresh",...n,...r})}},br=class extends _{_health;get health(){return this._health??=new zn({client:this.client})}_location;get location(){return this._location??=new Vn({client:this.client})}_agent;get agent(){return this._agent??=new Jn({client:this.client})}_session;get session(){return this._session??=new Zn({client:this.client})}_model;get model(){return this._model??=new er({client:this.client})}_provider;get provider(){return this._provider??=new tr({client:this.client})}_integration;get integration(){return this._integration??=new sr({client:this.client})}_credential;get credential(){return this._credential??=new ir({client:this.client})}_permission;get permission(){return this._permission??=new cr({client:this.client})}_fs;get fs(){return this._fs??=new lr({client:this.client})}_command;get command(){return this._command??=new ur({client:this.client})}_skill;get skill(){return this._skill??=new pr({client:this.client})}_event;get event(){return this._event??=new dr({client:this.client})}_pty;get pty(){return this._pty??=new gr({client:this.client})}_question;get question(){return this._question??=new fr({client:this.client})}_reference;get reference(){return this._reference??=new yr({client:this.client})}_projectCopy;get projectCopy(){return this._projectCopy??=new hr({client:this.client})}},ut=class t extends _{static __registry=new on;constructor(e){super(e),t.__registry.set(this,e?.key)}_auth;get auth(){return this._auth??=new an({client:this.client})}_app;get app(){return this._app??=new cn({client:this.client})}_experimental;get experimental(){return this._experimental??=new hn({client:this.client})}_global;get global(){return this._global??=new xn({client:this.client})}_event;get event(){return this._event??=new _n({client:this.client})}_config;get config(){return this._config??=new Pn({client:this.client})}_tool;get tool(){return this._tool??=new kn({client:this.client})}_worktree;get worktree(){return this._worktree??=new wn({client:this.client})}_find;get find(){return this._find??=new Sn({client:this.client})}_file;get file(){return this._file??=new vn({client:this.client})}_instance;get instance(){return this._instance??=new Cn({client:this.client})}_path;get path(){return this._path??=new An({client:this.client})}_vcs;get vcs(){return this._vcs??=new Tn({client:this.client})}_command;get command(){return this._command??=new In({client:this.client})}_lsp;get lsp(){return this._lsp??=new En({client:this.client})}_formatter;get formatter(){return this._formatter??=new jn({client:this.client})}_mcp;get mcp(){return this._mcp??=new Mn({client:this.client})}_project;get project(){return this._project??=new qn({client:this.client})}_pty;get pty(){return this._pty??=new Dn({client:this.client})}_question;get question(){return this._question??=new On({client:this.client})}_permission;get permission(){return this._permission??=new Un({client:this.client})}_provider;get provider(){return this._provider??=new Ln({client:this.client})}_session;get session(){return this._session??=new Gn({client:this.client})}_part;get part(){return this._part??=new Bn({client:this.client})}_sync;get sync(){return this._sync??=new Kn({client:this.client})}_tui;get tui(){return this._tui??=new Wn({client:this.client})}_v2;get v2(){return this._v2??=new br({client:this.client})}};function Bs(t,e,n,r){if(!r?.throwOnError||t instanceof Error)return t;if(typeof t=="object"&&t!==null&&Object.keys(t).length>0){let o=t,u=typeof o.data?.message=="string"&&o.data.message||typeof o.message=="string"&&o.message||typeof o.name=="string"&&o.name||Gs(n,e);return new Error(u,{cause:{body:t,status:e?.status}})}if(typeof t=="string"&&t.length>0)return new Error(t,{cause:{body:t,status:e?.status}});let s=e?"(empty response body)":"network error (no response)";return new Error(`opencode server ${Gs(n,e)}: ${s}`,{cause:{body:t,status:e?.status}})}function Gs(t,e){let n=t?.method??"?",r=t?.url??"?",s=e?.status,o=e?.statusText;return`${n} ${r}${s?" \u2192 "+s:""}${o?" "+o:""}`}function dd(t,e,n){if(t)return e&&(t===e||n&&t===n(e))?e:t}function gd(t,e){if(t.method!=="GET"&&t.method!=="HEAD")return t;let n=new URL(t.url),r=!1;for(let[o,u]of[["x-opencode-directory","directory"],["x-opencode-workspace","workspace"]]){let p=dd(t.headers.get(o),u==="directory"?e.directory:e.workspace,u==="directory"?encodeURIComponent:void 0);if(p){for(let d of n.pathname.startsWith("/api/")?[u,`location[${u}]`]:[u])n.searchParams.has(d)||n.searchParams.set(d,p);r=!0}}if(!r)return t;let s=new Request(n,t);return s.headers.delete("x-opencode-directory"),s.headers.delete("x-opencode-workspace"),s}function xr(t){t?.fetch||(t={...t,fetch:r=>(r.timeout=!1,fetch(r))}),t?.directory&&(t.headers={...t.headers,"x-opencode-directory":encodeURIComponent(t.directory)}),t?.experimental_workspaceID&&(t.headers={...t.headers,"x-opencode-workspace":t.experimental_workspaceID});let e=Fe(t);return e.interceptors.request.use(n=>gd(n,{directory:t?.directory,workspace:t?.experimental_workspaceID})),e.interceptors.response.use(n=>{if(n.headers.get("content-type")==="text/html")throw new Error("Request is not supported by this version of OpenCode Server (Server responded with text/html)");return n}),e.interceptors.error.use(Bs),new ut({client:e})}var md=new Set(["api","cli","mobile","web"]);function pt(t){let e=t?.trim().toLowerCase();return e&&md.has(e)?e:null}function fd(t){return new Promise(e=>setTimeout(e,t))}async function Ns(t,e,n){let r=Math.max(1,e?.attempts??1),s=e?.baseDelayMs??0,o=e?.invalidateBetweenAttempts??!1,u=null;for(let p=0;p<r;p++)if(p>0&&(o&&n?.(),s>0&&await fd(s)),u=await t(),u)return u;return u}var yd=12e4;function hd(t){return(t instanceof Request?t.url:String(t)).includes("/global/event")}function _r(t,e,n=yd){let r=t instanceof Request?t.signal:e?.signal;if(hd(t))return r??void 0;let s=AbortSignal.timeout(n);return r?typeof AbortSignal.any=="function"?AbortSignal.any([r,s]):r:s}function Pr(t,e,n,r){let s=new Headers(t instanceof Request?t.headers:void 0);e?.headers&&new Headers(e.headers).forEach((u,p)=>{s.set(p,u)}),n&&!s.has("Authorization")&&s.set("Authorization",`Bearer ${n}`);let o=pt(r);return o&&!s.has("X-Kortix-Client")&&s.set("X-Kortix-Client",o),s}function Ks(){return new Response(JSON.stringify({error:"Not authenticated"}),{status:401,headers:{"Content-Type":"application/json"}})}async function kr(){return $().getToken()}async function oe(t){return Ns(()=>$().getToken(),t,dt)}function dt(){}function ih(t){}function oh(t){}async function Le(){return kr()}async function Hs(t){return oe(t)}function Ws(t,e,n,r){let s=$().fetch??fetch;if(t instanceof Request){let o=new Request(t,{headers:n,...r?{signal:r}:{}});return s(o)}return s(t,{...e,headers:n,...r?{signal:r}:{}})}async function M(t,e,n){let{retryOnAuthError:r=!0,timeoutMs:s}=n??{},o=await Hs();if(!o)return Ks();let u=$().clientSource,p=Pr(t,e,o,u),d=s===void 0?_r(t,e):_r(t,e,s),f=await Ws(t,e,p,d);if(f.status===401&&r&&o){dt();let m=await Hs({attempts:2,baseDelayMs:200});if(m&&m!==o){let h=Pr(t,e,m,u);return Ws(t,e,h,d)}}return f}var ve={url:null,sandboxId:null,dbSandboxId:null,version:0},bd=new Set;function zs(t,e=null,n=null){if(!(ve.url===t&&ve.sandboxId===e&&ve.dbSandboxId===n)){ve={url:t,sandboxId:e,dbSandboxId:n,version:ve.version+1};for(let r of bd)r()}}function Vs(){return ve.url}function xd(t){let e=t.length;for(;e>0&&t.charCodeAt(e-1)===47;)e--;return t.slice(0,e)}function Ge(){return xd($().backendUrl||"http://localhost:8008/v1")}function Js(){let t=$().sandboxId;return t?`${Ge()}/p/${t}/8000`:""}function _d(t){return`${Ge()}/p/${t}/8000`}function gt(t){return _d(t)}var C=class extends Error{status;code;details;data;detail;response;url;endpoint;timeout;constructor(e,n={}){super(e),this.name="ApiError";let{name:r,stack:s,...o}=n;Object.assign(this,o),r&&(this.name=r),s&&(this.stack=s);let u=typeof e=="string"?e:e==null?"":String(e);Object.defineProperty(this,"message",{value:u,enumerable:!0,writable:!0,configurable:!0}),Object.setPrototypeOf(this,new.target.prototype)}},Ce=class extends C{constructor(e="Not authenticated"){super(e,{code:"NO_SESSION"}),this.name="AuthError"}},fe=class t extends Error{status;detail;constructor(e,n,r){super(r||n.message||`Billing Error: ${e}`),this.name="BillingError",this.status=e,this.detail=n,Object.setPrototypeOf(this,t.prototype)}},Ae=class t extends Error{status;detail;constructor(e=431,n,r){let s="Request headers are too large",o="Try uploading files one at a time, or reduce the number of files in a single request.";super(r||n?.message||s),this.name="RequestTooLargeError",this.status=e,this.detail={message:n?.message||s,suggestion:n?.suggestion||o},Object.setPrototypeOf(this,t.prototype)}},wr="feature_disabled";function Xs(t){if(!(t instanceof C)||t.status!==403||t.code!==wr)return null;let e=t.details??t.data;return e&&typeof e=="object"?e:{}}function Qs(t){let e=Xs(t);return e?(typeof e.feature=="string"&&!t.feature&&(t.feature=e.feature),!0):!1}function Ys(t){let e=Xs(t);if(!e)return null;let n=t.feature;return typeof n=="string"?n:typeof e.feature=="string"?e.feature:null}function Re(t){let e=t.response?.status||t.status;if(e!==402)return t;let n=t.response?.data||t.data||t.detail||{},r=n?.detail||n;return new fe(e,{message:r?.message||t.message||"Billing error",...r})}function Zs(t){return t instanceof fe}function ei(t){if(!(t instanceof fe))return null;let e=t.detail?.message?.toLowerCase()||"";return e.includes("credit")||e.includes("balance")||e.includes("insufficient")?{alertTitle:"You ran out of credits",alertSubtitle:"Upgrade your plan to get more credits and continue using the AI assistant."}:{alertTitle:"Billing check failed",alertSubtitle:t.detail?.message||"Please upgrade to continue."}}var Pd="X-Kortix-Impersonate",vr="kortix.impersonation",ye=null,mt=!1,Sr=new Set;function Cr(){try{return typeof sessionStorage>"u"?null:sessionStorage}catch{return null}}function kd(t,e=Date.now()){if(!t||!t.grantId||!t.accountId)return!1;let n=Date.parse(t.expiresAt);return Number.isFinite(n)&&n>e}function wd(t){if(!t)return null;try{let e=JSON.parse(t);return typeof e?.grantId!="string"||typeof e?.accountId!="string"?null:{grantId:e.grantId,accountId:e.accountId,accountName:typeof e.accountName=="string"?e.accountName:null,expiresAt:typeof e.expiresAt=="string"?e.expiresAt:""}}catch{return null}}function ti(){for(let t of Sr)try{t()}catch{}}function Sd(){return mt||(mt=!0,ye=wd(Cr()?.getItem(vr)??null)),ye&&!kd(ye)?(ni(),null):ye}function dh(t){if(mt=!0,!t){ni();return}ye=t;try{Cr()?.setItem(vr,JSON.stringify(t))}catch{}ti()}function ni(){mt=!0;let t=ye!==null;ye=null;try{Cr()?.removeItem(vr)}catch{}t&&ti()}function gh(t){return Sr.add(t),()=>{Sr.delete(t)}}var vd=/(^|\/)admin\/(api|analytics)(\/|$)/;function Cd(t){let e=t;if(/^https?:\/\//.test(t))try{e=new URL(t).pathname}catch{e=t}return!vd.test(e)}function Ar(t){if(t!==void 0&&!Cd(t))return{};let e=Sd();return e?{[Pd]:e.grantId}:{}}var ne=()=>$().backendUrl||"",Ad="feature_not_supported",Rd="model_not_servable",Td="provision_in_flight",si="request_deadline",Id=/^Request exceeded the \d+s server processing deadline$/,Ed=(t,e,n)=>t!==503?!1:(typeof e=="object"&&e!==null&&"code"in e?e.code:void 0)===si||Id.test(n),jd=t=>new Promise(e=>setTimeout(e,t)),$d=new Set([502,503,504]),Md=t=>$d.has(t),qd=t=>{let e=(t??"GET").toUpperCase();return e==="GET"||e==="HEAD"},Dd=2,ri=t=>t?.name==="AbortError"||t?.name==="AbortSignal"||t instanceof Error&&t.message.includes("aborted"),ft=!1;function _h(t){ft=t}function Ph(){return ft}async function he(t,e={}){let{showErrors:n=!0,errorContext:r,timeout:s=3e4,...o}=e,u=new AbortController,p=null,d=!1,f=!1;try{p=setTimeout(()=>{!d&&!u.signal.aborted&&(d=!0,f=!0,u.abort())},s);let m=await oe(),h=o.body instanceof FormData,x={};h||(x["Content-Type"]="application/json"),Object.assign(x,o.headers);let P=pt($().clientSource),A=Object.keys(x).some(S=>S.toLowerCase()==="x-kortix-client");if(P&&!A&&(x["X-Kortix-Client"]=P),ft&&(x["x-kortix-admin-bypass"]="1"),Object.assign(x,Ar(t)),m)x.Authorization=`Bearer ${m}`;else return{error:new Ce,success:!1};let I=qd(o.method),E=I?Dd+1:1,l;for(let S=0;S<E;S++){S>0&&await jd(250*2**(S-1));let w=S===0?u:new AbortController;S>0&&(p=setTimeout(()=>{f=!0,w.abort()},s));try{l=await($().fetch??fetch)(t,{...o,headers:x,signal:w.signal,credentials:o.credentials??"omit"})}catch(j){if(p&&(clearTimeout(p),p=null),ri(j)||S===E-1)throw j;continue}if(p&&(clearTimeout(p),p=null),!(I&&Md(l.status)&&S<E-1))break;try{await l.arrayBuffer()}catch{}}if(!l.ok){let S=`HTTP ${l.status}: ${l.statusText}`,w=null;try{w=await l.json(),typeof w.message=="string"?S=w.message:w.error&&typeof w.error=="string"?S=w.error:typeof w.detail=="string"?S=w.detail:typeof w.detail?.message=="string"?S=w.detail.message:typeof w.reason=="string"&&(S=w.reason)}catch{}let R=Ed(l.status,w,S),j=new C(S,{status:l.status,response:l,details:w||void 0,data:w,detail:w?.detail,code:R?si:w?.code||w?.error_code||w?.detail?.error_code||l.status.toString()});if(l.status===402&&(j=Re(j)),l.status===403&&w?.code==="account_mfa_required"&&typeof window<"u"&&typeof window.dispatchEvent=="function")try{window.dispatchEvent(new CustomEvent("kortix:mfa-required"))}catch{}l.status===431&&(j=new Ae(431,{message:"Request is too large to process",suggestion:"Try uploading files one at a time, or reduce the number of files attached to your message."}));let D=l.status===501&&w?.code===Ad,q=l.status===409&&w?.code===Rd,X=l.status===409&&w?.code===Td;return n&&!D&&!q&&!X&&!R&&$().onError?.(j,r),{error:j,success:!1}}let b,c=l.headers.get("content-type");return c?.includes("application/json")?b=await l.json():c?.includes("text/")?b=await l.text():b=await l.blob(),{data:b,success:!0}}catch(m){p&&(clearTimeout(p),p=null);let h=ri(m);h&&(d=!0);let x;if(h){if(!f)return{error:new C("Request aborted",{name:"AbortError",code:"ABORTED"}),success:!1};let P=t.replace(ne(),"")||t;x=new C(`Request timed out after ${Math.round(s/1e3)}s: ${P}`,{code:"TIMEOUT",url:t,endpoint:P,timeout:s})}else m instanceof Error?(x=new C(m.message,{name:m.name||"ApiError",stack:m.stack}),n&&$().onError?.(x,r)):(x=new C(String(m)),n&&$().onError?.(x,r));return{error:x,success:!1}}}var kh={async execute(t,e){try{let{data:n,error:r}=await t();if(r){let s=new C(r.message||"Database error",{code:r.code,details:r});return $().onError?.(s,e),{error:s,success:!1}}return{data:n,success:!0}}catch(n){let r=n instanceof Error?new C(n.message,{name:n.name||"ApiError",stack:n.stack}):new C(String(n));return $().onError?.(r,e),{error:r,success:!1}}}};async function Od(t,e,n={}){let{timeout:r=3e4,fetch:s=fetch}=n,o=await oe(),u={Accept:"text/event-stream","Content-Type":"application/json"},p=pt($().clientSource);p&&(u["X-Kortix-Client"]=p),ft&&(u["x-kortix-admin-bypass"]="1"),Object.assign(u,Ar(t)),o&&(u.Authorization=`Bearer ${o}`);let d=new AbortController,f=setTimeout(()=>d.abort(),r);try{return await s(`${ne()}${t}`,{method:"POST",headers:u,body:JSON.stringify(e),signal:d.signal,credentials:"omit"})}finally{clearTimeout(f)}}var i={get:(t,e)=>he(`${ne()}${t}`,{...e,method:"GET"}),post:(t,e,n)=>he(`${ne()}${t}`,{...n,method:"POST",body:e?JSON.stringify(e):void 0}),put:(t,e,n)=>he(`${ne()}${t}`,{...n,method:"PUT",body:e?JSON.stringify(e):void 0}),patch:(t,e,n)=>he(`${ne()}${t}`,{...n,method:"PATCH",body:e?JSON.stringify(e):void 0}),delete:(t,e)=>he(`${ne()}${t}`,{...e,method:"DELETE"}),upload:(t,e,n)=>{let{headers:r,...s}=n||{},o={...r};return delete o["Content-Type"],he(`${ne()}${t}`,{...s,method:"POST",body:e,headers:o})},uploadPut:(t,e,n)=>{let{headers:r,...s}=n||{},o={...r};return delete o["Content-Type"],he(`${ne()}${t}`,{...s,method:"PUT",body:e,headers:o})},postStream:Od};var yt=new Map,Rr=new Map;function Tr(t){let e=t.length;for(;e>0&&t.charCodeAt(e-1)===47;)e--;return t.slice(0,e)}function ii(t){return yt.get(Tr(t))??null}function oi(t){return yt.has(Tr(t))}async function ht(t){let e=Tr(t),n=yt.get(e);if(n!==void 0)return n;let r=Rr.get(e);if(r)return r;let s=(async()=>{try{let o=await i.get("/p/config",{showErrors:!1,errorContext:{operation:"load preview config",silent:!0}});if(!o.success)return null;let u=typeof o.data?.preview_url_template=="string"?o.data.preview_url_template:null;return yt.set(e,u),u}catch{return null}finally{Rr.delete(e)}})();return Rr.set(e,s),s}function ai(t){let{apiBaseUrl:e}=t;return oi(e)||ht(e).catch(()=>{}),{sandboxId:t.sandboxId,backendPort:t.backendPort,apiBaseUrl:e,previewUrlTemplate:ii(e)}}function re(){let t=Vs();return t||($().billingEnabled??!1?"":Js())}async function Ir(t,e){return(await t.json().catch(()=>({})))?.error||t.statusText||e}function Er(t){if(!t)throw new Error("[opencode-sdk] Server URL not ready \u2014 sandbox is still loading");return t}async function ci(t){let e=Er(t),n=await M(`${e}/env`);if(!n.ok)throw new Error(await Ir(n,"Failed to load secrets"));return(await n.json()).secrets??{}}async function li(t,e,n){let r=Er(t),s=await M(`${r}/env/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:n})});if(!s.ok)throw new Error(await Ir(s,"Failed to save secret"))}async function ui(t,e){let n=Er(t),r=await M(`${n}/env/${encodeURIComponent(e)}`,{method:"DELETE"});if(!r.ok)throw new Error(await Ir(r,"Failed to delete secret"))}var Ud={list:ci,set:li,delete:ui};async function Fd(t,e,n){let r=t;for(;r.endsWith("/");)r=r.slice(0,-1);let s=await M(`${r}/kortix/triggers${e}`,{...n,headers:{"Content-Type":"application/json",...n?.headers}}),o=await s.json();if(!s.ok)throw new Error(o?.error||o?.message||`Request failed with ${s.status}`);return o}function ae(t){let e=t.length;for(;e>0&&t.charCodeAt(e-1)===47;)e--;return e===t.length?t:t.slice(0,e)}async function bt(t,e){let n=await t.json().catch(()=>({}));return n?.error||n?.message||t.statusText||e}function Be(t){if(!t)throw new Error("[kortix-pty] Server URL not ready \u2014 sandbox is still loading");return ae(t)}async function pi(t){let e=Be(t),n=await M(`${e}/kortix/pty`);if(!n.ok)throw new Error(await bt(n,"Failed to list terminals"));return n.json()}async function di(t,e){let n=Be(t),r=await M(`${n}/kortix/pty`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e??{})});if(!r.ok)throw new Error(await bt(r,"Failed to create terminal"));return r.json()}async function gi(t,e,n){let r=Be(t),s=await M(`${r}/kortix/pty/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!s.ok)throw new Error(await bt(s,"Failed to update terminal"));return s.json()}async function mi(t,e){let n=Be(t),r=await M(`${n}/kortix/pty/${encodeURIComponent(e)}`,{method:"DELETE"});if(!r.ok)throw new Error(await bt(r,"Failed to remove terminal"))}async function fi(t,e,n){let r=Be(e),o=`${(()=>{try{let f=new URL(r);return f.protocol==="https:"?f.protocol="wss:":f.protocol==="http:"&&(f.protocol="ws:"),typeof window<"u"&&window.location.protocol==="https:"&&f.protocol==="ws:"&&(f.protocol="wss:"),ae(f.toString())}catch{return r.replace("https://","wss://").replace("http://","ws://")}})()}/kortix/pty/${encodeURIComponent(t)}/connect`,u=new URLSearchParams,p=await Le();p&&u.set("token",p),n?.wake&&u.set("wake","1");let d=u.toString();return d?`${o}${o.includes("?")?"&":"?"}${d}`:o}var Ld={list:pi,create:di,update:gi,remove:mi,webSocketUrl:fi};async function v(t,e,n,r){let s=t;for(;s.endsWith("/");)s=s.slice(0,-1);let o=await M(`${s}${e}`,{...n,headers:{"Content-Type":"application/json",...n?.headers}},r),u=await o.text(),p={};try{p=u?JSON.parse(u):{}}catch{p={}}if(!o.ok)throw new Error(p?.error||p?.message||p?.details||u.slice(0,200)||`Request failed with ${o.status}`);return p}async function Kh(t,e={}){let n=new URLSearchParams;e.projectId&&n.set("project_id",e.projectId),e.status&&n.set("status",e.status);let r=n.toString()?`?${n}`:"";return v(t,`/kortix/tasks${r}`)}async function Hh(t,e){return v(t,`/kortix/tasks/${encodeURIComponent(e)}`)}async function Wh(t,e){return v(t,`/kortix/tasks/${encodeURIComponent(e)}/events`)}async function zh(t,e){return v(t,`/kortix/tasks/${encodeURIComponent(e)}/status`)}async function Vh(t,e){return v(t,"/kortix/tasks",{method:"POST",body:JSON.stringify(e)})}async function Jh(t,e,n){return v(t,`/kortix/tasks/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(n)})}async function Xh(t,e){return v(t,`/kortix/tasks/${encodeURIComponent(e)}/start`,{method:"POST"})}async function Qh(t,e){return v(t,`/kortix/tasks/${encodeURIComponent(e)}/approve`,{method:"POST"})}async function Yh(t,e){return v(t,`/kortix/tasks/${encodeURIComponent(e)}`,{method:"DELETE"})}async function Zh(t,e){let n=e?`?project_id=${encodeURIComponent(e)}`:"";return v(t,`/kortix/tickets${n}`)}async function eb(t,e){return v(t,`/kortix/tickets/${encodeURIComponent(e)}`)}async function tb(t,e){return v(t,`/kortix/tickets/${encodeURIComponent(e)}/events`)}async function nb(t,e){return v(t,"/kortix/tickets",{method:"POST",body:JSON.stringify(e)})}async function rb(t,e,n){return v(t,`/kortix/tickets/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(n)})}async function sb(t,e,n){return v(t,`/kortix/tickets/${encodeURIComponent(e)}/status`,{method:"POST",body:JSON.stringify(n)})}async function ib(t,e,n){return v(t,`/kortix/tickets/${encodeURIComponent(e)}/assign`,{method:"POST",body:JSON.stringify(n)})}async function ob(t,e,n){return v(t,`/kortix/tickets/${encodeURIComponent(e)}/unassign`,{method:"POST",body:JSON.stringify(n)})}async function ab(t,e,n){return v(t,`/kortix/tickets/${encodeURIComponent(e)}/comments`,{method:"POST",body:JSON.stringify(n)})}async function cb(t,e){return v(t,`/kortix/tickets/${encodeURIComponent(e)}`,{method:"DELETE"})}async function lb(t,e){return v(t,`/kortix/projects/${encodeURIComponent(e)}/columns`)}async function ub(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/columns`,{method:"PUT",body:JSON.stringify({columns:n})})}async function pb(t,e){return v(t,`/kortix/projects/${encodeURIComponent(e)}/fields`)}async function db(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/fields`,{method:"PUT",body:JSON.stringify({fields:n})})}async function gb(t,e){return v(t,`/kortix/projects/${encodeURIComponent(e)}/templates`)}async function mb(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/templates`,{method:"PUT",body:JSON.stringify({templates:n})})}async function fb(t,e){return v(t,`/kortix/projects/${encodeURIComponent(e)}/pm-session`,{method:"POST"})}async function yb(t,e){return v(t,`/kortix/projects/${encodeURIComponent(e)}/agents`)}async function hb(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/agents`,{method:"POST",body:JSON.stringify(n)})}async function bb(t,e,n,r){return v(t,`/kortix/projects/${encodeURIComponent(e)}/agents/${encodeURIComponent(n)}`,{method:"PATCH",body:JSON.stringify(r)})}async function xb(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/agents/${encodeURIComponent(n)}`,{method:"DELETE"})}async function _b(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/agents/${encodeURIComponent(n)}/persona`)}async function Pb(t,e,n=200){return v(t,`/kortix/projects/${encodeURIComponent(e)}/activity?limit=${n}`)}async function kb(t){return v(t,"/kortix/projects")}async function wb(t,e){return v(t,`/kortix/projects/${encodeURIComponent(e)}`)}async function Sb(t,e){return v(t,`/kortix/projects/by-session/${encodeURIComponent(e)}`)}async function vb(t,e){return v(t,`/kortix/projects/${encodeURIComponent(e)}/sessions`)}async function Cb(t,e){return v(t,`/kortix/projects/${encodeURIComponent(e)}`,{method:"DELETE"})}async function Ab(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(n)})}async function Rb(t,e,n="all"){return v(t,`/kortix/projects/${encodeURIComponent(e)}/milestones?status=${n}`)}async function Tb(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/milestones/${encodeURIComponent(n)}`)}async function Ib(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/milestones/${encodeURIComponent(n)}/events`)}async function Eb(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/milestones`,{method:"POST",body:JSON.stringify(n)})}async function jb(t,e,n,r){return v(t,`/kortix/projects/${encodeURIComponent(e)}/milestones/${encodeURIComponent(n)}`,{method:"PATCH",body:JSON.stringify(r)})}async function $b(t,e,n,r){return v(t,`/kortix/projects/${encodeURIComponent(e)}/milestones/${encodeURIComponent(n)}/close`,{method:"POST",body:JSON.stringify(r)})}async function Mb(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/milestones/${encodeURIComponent(n)}/reopen`,{method:"POST"})}async function qb(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/milestones/${encodeURIComponent(n)}`,{method:"DELETE"})}async function Db(t,e){return v(t,`/kortix/projects/${encodeURIComponent(e)}/credentials`)}async function Ob(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/credentials/${encodeURIComponent(n)}/events`)}async function Ub(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/credentials`,{method:"POST",body:JSON.stringify(n)})}async function Fb(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/credentials/${encodeURIComponent(n)}`)}async function Lb(t,e,n){return v(t,`/kortix/projects/${encodeURIComponent(e)}/credentials/${encodeURIComponent(n)}`,{method:"DELETE"})}var Gd=1e4,Bd={retryOnAuthError:!1};function Te(t,e,n){return v(t,e,{signal:AbortSignal.timeout(Gd),...n},Bd)}async function Gb(t,e=!1){return(await Te(t,`/kortix/services${e?"?all=true":""}`)).services??[]}async function Bb(t){return(await Te(t,"/kortix/services/templates")).templates??[]}async function Nb(t,e){return(await Te(t,`/kortix/services/${encodeURIComponent(e)}/logs`)).logs??[]}async function Kb(t,e,n){let r=n==="delete",s=r?`/kortix/services/${encodeURIComponent(e)}`:`/kortix/services/${encodeURIComponent(e)}/${n}`;return Te(t,s,{method:r?"DELETE":"POST"})}async function Hb(t,e){return Te(t,`/kortix/services/reconcile${e?"?reload=true":""}`,{method:"POST"})}async function Wb(t,e){return Te(t,"/kortix/services/register",{method:"POST",body:JSON.stringify(e)})}var xt=new Map,Ne=class extends Error{constructor(e="[opencode-sdk] Server URL not ready \u2014 sandbox is still loading"){super(e),this.name="RuntimeNotReadyError"}};function be(){let t=re();if(!t)throw new Ne;return ce(t)}function ce(t){if(!t)throw new Error("[opencode-sdk] getClientForUrl called without a url");let e=xt.get(t);if(e)return e;if(!en())throw new Error("[opencode-sdk] No auth token provider configured \u2014 call configureKortix()/createKortix() before talking to a sandbox runtime.");let n=xr({baseUrl:t,fetch:M});return xt.set(t,n),n}function Zb(t){xt.delete(t)}function ex(){xt.clear()}var _t=new Map;function tx(t){if(!t)throw new Error("[opencode-sdk] getPublicClientForUrl called without a url");let e=_t.get(t);if(e)return e;let n=xr({baseUrl:t,fetch});return _t.set(t,n),n}function nx(t){_t.delete(t)}function rx(){_t.clear()}async function Nd(t){let e=await t.text().catch(()=>"");try{let n=JSON.parse(e);return n?.error||n?.message||e||t.statusText||`HTTP ${t.status}`}catch{return e||t.statusText||`HTTP ${t.status}`}}async function sx(t){let e=re();if(!e)throw new C("[opencode-sdk] Server URL not ready \u2014 sandbox is still loading",{code:"RUNTIME_UNAVAILABLE"});let n=t==="full"?"/kortix/refresh":"/global/dispose",r=await M(`${e}${n}`,{method:"POST"}),s=r.headers.get("content-type")??"",o=/^application\/([\w.+-]+\+)?json\b/i.test(s.trim());if(!r.ok)throw new C(`System reload failed (${r.status}): ${await Nd(r)}`,{status:r.status,response:r,code:"RUNTIME_UNAVAILABLE"});if(!o)throw new C(`System reload endpoint is unavailable on this sandbox (${n})`,{status:r.status,response:r,code:"RUNTIME_UNAVAILABLE"});let u;try{u=await r.json()}catch(d){throw new C(`System reload returned malformed JSON from ${n}: ${d instanceof Error?d.message:String(d)}`,{status:r.status,response:r,code:"RUNTIME_UNAVAILABLE"})}let p=u===!0||typeof u=="object"&&u!==null&&u.ok===!0;return{success:p,mode:t,steps:p?[t==="full"?"refreshed workspace and restarted runtime":"reloaded config in place"]:[],errors:p?[]:[`the sandbox did not confirm the reload (${n})`]}}function hi(t){if(t.error){let e=t.error,n=e?.data?.message||e?.message||(typeof e?.error=="string"?e.error:null)||"SDK request failed";throw new C(n,{status:e?.response?.status??e?.status,response:e?.response,details:e})}return t.data}async function Ee(t){let e=await t.text().catch(()=>""),n=null;try{n=JSON.parse(e)}catch{}return n?.error||e||t.statusText||`HTTP ${t.status}`}function V(t){let e=(t??re()).trim();if(!e)throw new Ne;return e}async function kt(t,e){let n=await M(`${V(e)}${t}`);if(!n.ok)throw new C(await Ee(n),{status:n.status,response:n});return n.json()}var $r=["/workspace","/tmp","/home","/opt"],Kd=$r.filter(t=>t!=="/workspace");function bi(t){return $r.some(e=>t===e||t.startsWith(`${e}/`))}function Pt(t){return bi(t)?t:`/workspace/${t.replace(/^\/+/,"")}`}function je(t){let e=t||"";if(e==="/workspace"||e==="/workspace/")return"";if(e.startsWith("/workspace/"))e=e.slice(11);else if(Kd.some(n=>e===n||e.startsWith(`${n}/`)))return e;for(;e.startsWith("/");)e=e.slice(1);return e}var xi=je;async function wt(t,e){let n=V(e),r=je(t)||".";return(await kt(`/file?path=${encodeURIComponent(r)}`,n)).map(o=>({...o,path:o.absolute||`/workspace/${o.path}`}))}async function He(t,e){let n=V(e),r=je(t),s=await M(`${n}/file/content?path=${encodeURIComponent(r)}`);if(!s.ok)throw new C(await Ee(s),{status:s.status,response:s});return s.json()}async function Hd(t,e,n){let r=V(n),s=je(t),o=await M(`${r}/file/raw?path=${encodeURIComponent(s)}`);if(!o.ok)throw new C(await Ee(o),{status:o.status,response:o});if((o.headers.get("content-type")||"").includes("text/html"))throw new C("File could not be loaded (raw byte route unavailable)",{status:o.status,response:o,code:"INVALID_CONTENT_TYPE"});let u=await o.blob();return e&&(!u.type||u.type==="application/octet-stream")?new Blob([u],{type:e}):u}async function We(t,e){let n=V(e);try{return await Hd(t,void 0,n)}catch{}let r=await He(t,n);if(r.encoding==="base64"&&r.content){let s=Uint8Array.from(atob(r.content),o=>o.charCodeAt(0));return new Blob([s],{type:r.mimeType||"application/octet-stream"})}return new Blob([r.content??""],{type:r.mimeType||"text/plain;charset=utf-8"})}async function St(t){return kt("/file/status",V(t))}async function vt(t,e,n){let r=V(n),s=new URLSearchParams({query:t});return e?.type&&s.set("type",e.type),e?.limit&&s.set("limit",String(e.limit)),kt(`/find/file?${s.toString()}`,r)}async function Ct(t,e){let n=V(e);return(await kt(`/find?pattern=${encodeURIComponent(t)}`,n)).map(s=>({path:typeof s.path=="string"?s.path:s.path?.text??"",lines:typeof s.lines=="string"?s.lines:s.lines?.text??"",line_number:s.line_number,absolute_offset:s.absolute_offset,submatches:(s.submatches??[]).map(o=>({start:o.start,end:o.end}))}))}var Ke=[400,1200],Wd=t=>t===408||t===429||t===502||t===503||t===504,yi=t=>new Promise(e=>setTimeout(e,t));function zd(t){let e=t?.name;return e==="TimeoutError"||e==="AbortError"}var jr=3e4,Vd=15*6e4,Jd=256;function _i(t){if(typeof t!="number"||!Number.isFinite(t)||t<=0)return jr;let e=jr+t/Jd;return Math.min(Vd,Math.max(jr,Math.round(e)))}async function Xd(t){let e=await t.text().catch(()=>""),n=null;try{n=e?JSON.parse(e):null}catch{}let r=n?.error||n?.message||n?.data?.message;return typeof r=="string"&&r.trim()?r.trim():(t.headers.get("content-type")||"").includes("text/html")||/<html[\s>]/i.test(e)?t.status===502||/bad gateway/i.test(e)?"Bad gateway while reaching the sandbox upload service. Please retry.":t.statusText||`HTTP ${t.status}`:e.replace(/\s+/g," ").trim().slice(0,500)||t.statusText||`HTTP ${t.status}`}async function Pi(t,e){let n;for(let s=0;s<=Ke.length;s++){let o;try{o=await e(t())}catch(p){if(n=p,zd(p)||s===Ke.length)break;await yi(Ke[s]);continue}if(o.ok)return o.json();let u=await Xd(o);if(n=new C(`Upload failed (${o.status}): ${u}`,{status:o.status,response:o}),!Wd(o.status)||s===Ke.length)throw n;await yi(Ke[s])}if(n instanceof C)throw n;let r=n instanceof Error?n.message:String(n||"request failed");throw new C(`Upload failed: ${r}`)}async function ze(t,e,n,r){let s=V(r),o=_i(t.size),u=n||(t instanceof File?t.name:"")||"";return Pi(()=>{let p=new FormData,d=(e??"").trim();return d&&p.append("path",d.startsWith("/")?d:`/${d}`),u&&p.append("filename",u),u?p.append("file",t,u):p.append("file",t),p},p=>M(`${s}/file/upload`,{method:"POST",body:p},{timeoutMs:o}))}function Qd(t,e,n){let r=V(n),s=_i(e.size);return Pi(()=>{let o=new FormData;return o.append(t,e,t.split("/").pop()||"file"),o},o=>M(`${r}/file/upload`,{method:"POST",body:o},{timeoutMs:s}))}async function At(t,e){let n=V(e),r=t.trim(),o=(r.startsWith("/")?r:`/${r}`).split("/"),u=o.pop()||"untitled",p=o.join("/")||"/workspace",d=await Ve(`${p}/${u}`,new Blob([],{type:"application/octet-stream"}),n);return[{path:d.path,size:d.bytes}]}async function Rt(t,e,n){let r=V(n);return Qd(e,await We(t,r),r)}function Yd(t){let e=t.length;for(;e>0&&t.charCodeAt(e-1)===47;)e--;return t.slice(0,e)}function Zd(t){let e=t.lastIndexOf("/");return e<=0?"/":t.slice(0,e)}function eg(t){return t.slice(t.lastIndexOf("/")+1)}function tg(){let t=typeof crypto<"u"?crypto:void 0;if(t?.randomUUID)return t.randomUUID();if(t?.getRandomValues){let e=new Uint8Array(8);return t.getRandomValues(e),[...e].map(n=>n.toString(16).padStart(2,"0")).join("")}return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}async function Ve(t,e,n){let r=V(n),s=Pt(Yd(t.trim())),o=eg(s);if(!o)throw new C(`writeFile needs a file path, got "${t}"`,{code:"INVALID_PATH"});let u=Zd(s);await Je(u,r).catch(()=>{});let p=tg(),d=await ze(e,u,`.${o}.kortix-write-${p}`,r),f=d[0]?.path;if(!f)throw new C(`Upload returned no file for ${s}`,{code:"UPLOAD_NO_RESULT"});let m=Pt(f),h=`${s}.kortix-write-backup-${p}`,x=!1;try{await xe(s,h,r),x=!0}catch{}try{await xe(m,s,r)}catch(A){throw x&&await xe(h,s,r).catch(()=>{}),await Ie(m,r).catch(()=>{}),A}x&&await Ie(h,r).catch(()=>{});let P=d[0]?.size;return{path:s,bytes:typeof P=="number"?P:e.size}}async function Ie(t,e){let n=await M(`${V(e)}/file`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});if(!n.ok)throw new C(`Delete failed (${n.status}): ${await Ee(n)}`,{status:n.status,response:n});return n.json()}async function Je(t,e){let n=await M(`${V(e)}/file/mkdir`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});if(!n.ok)throw new C(`Mkdir failed (${n.status}): ${await Ee(n)}`,{status:n.status,response:n});return n.json()}async function xe(t,e,n){let r=await M(`${V(n)}/file/rename`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({from:t,to:e})});if(!r.ok)throw new C(`Rename failed (${r.status}): ${await Ee(r)}`,{status:r.status,response:r});return r.json()}async function ki(){return hi(await be().project.current())}async function Mr(){return hi(await be().global.health())}async function wi(){try{return(await Mr()).healthy===!0}catch{return!1}}var ng={list:wt,read:He,readBlob:We,status:St,findFiles:vt,findText:Ct,upload:ze,write:Ve,create:At,copy:Rt,remove:Ie,mkdir:Je,rename:xe,currentProject:ki,health:Mr,isReachable:wi,toDaemonPath:je,toSandboxAbsolutePath:Pt,toWorkspaceRelative:xi};function a(t,e="Project request failed"){if(!t.success||t.data===void 0)throw t.error??new Error(e);return t.data}function qr(t){return t.replace(/\/v1\/?$/,"")}async function $e(t,e){if(!t.backendUrl||!t.accessToken)return null;let n=qr(t.backendUrl);try{let r=await fetch(`${n}${e}`,{headers:{Authorization:`Bearer ${t.accessToken}`,"Content-Type":"application/json"},signal:AbortSignal.timeout(t.timeoutMs??8e3)});return r.ok?await r.json():null}catch{return null}}async function Si(){return a(await i.get("/accounts"))}async function vi(t){return a(await i.post("/accounts",t))}async function Ci(t){return a(await i.get(`/accounts/${t}`))}async function Ai(t,e){return a(await i.patch(`/accounts/${t}`,{name:e}))}async function Ri(t){return a(await i.get(`/accounts/${t}/branding`))}async function Ti(t,e){return a(await i.put(`/accounts/${t}/branding`,e))}async function Ii(t,e,n,r){let s=new FormData;return s.append("file",n,r??(n instanceof File?n.name:e)),a(await i.upload(`/accounts/${t}/branding/assets/${e}`,s))}async function Ei(t,e){return a(await i.delete(`/accounts/${t}/branding/assets/${e}`))}async function ji(t){return a(await i.delete(`/accounts/${t}/branding`))}async function $i(t){return a(await i.get(`/accounts/${t}/members`))}async function Mi(t,e){return a(await i.post(`/accounts/${t}/members`,e,{showErrors:!1}))}async function qi(t){return a(await i.get(`/accounts/${t}/invites`))}async function Di(t,e){return a(await i.delete(`/accounts/${t}/invites/${e}`))}async function Oi(t,e){return a(await i.post(`/accounts/${t}/invites/${e}/resend`,{}))}async function Ui(t){return a(await i.get(`/account-invites/${t}`,{showErrors:!1}))}async function Fi(t){return a(await i.post(`/account-invites/${t}/accept`,{}))}async function Li(t){return a(await i.post(`/account-invites/${t}/decline`,{}))}async function Gi(t,e){return a(await i.delete(`/accounts/${t}/members/${e}`))}async function Bi(t,e,n){return a(await i.patch(`/accounts/${t}/members/${e}`,{role:n}))}async function Ni(t){return a(await i.post(`/accounts/${t}/leave`,{}))}async function hx(t){return $e(t,"/v1/accounts")}async function Ki(){let t=await i.get("/accounts/me",{showErrors:!1});return!t.success||!t.data?{valid:!1,error:t.error}:{valid:!0,identity:t.data}}var Px=["agent_tunnel","marketplace","connectors_api_discover","agentmail_email","teams","llm_gateway","review_center","meta_agent","apps","monitors","warm_sessions","secrets_egress","pi_worker"];async function Me(){return a(await i.get("/projects"))}async function Wi(t){let e=t?`?account_id=${encodeURIComponent(t)}`:"";return a(await i.get(`/projects${e}`))}async function Dr(t,e){return a(await i.get(`/projects/${t}`,e))}async function zi(t,e,n="write"){return a(await i.post(`/projects/${t}/git/collaborators`,{github_username:e,permission:n}))}async function Vi(t,e){return a(await i.post(`/projects/${t}/manifest/validate`,{raw:e}),"Failed to validate manifest")}async function Ji(t){return a(await i.post(`/projects/${t}/git-token`,{}),"Failed to mint git token")}function kx(t){let e=t.metadata?.git;return e?.provider==="github"&&e?.managed===!0}async function Or(t,e){let n=a(await i.get(`/projects/${t}/detail`,{showErrors:!1,...e}));return{...n,config:{...n.config,default_agent:n.config.default_agent??n.config.open_code_default_agent??null}}}async function Ur(t,e){return a(await i.get(`/projects/${t}/llm-catalog`,{showErrors:!1,...e}))}async function Fr(t,e){return a(await i.get(`/projects/${t}/model-picker`,{showErrors:!1,...e}))}async function wx(t,e){return a(await i.get(`/projects/${t}/llm-catalog/providers`,{showErrors:!1,...e}))}async function Xi(t){return a(await i.post("/projects",t))}async function Qi(t){return a(await i.post("/projects/create-repo",t))}async function Yi(t,e={}){return a(await i.post("/projects/provision",{seed_starter:!0,...t},{timeout:12e4,...e}))}var Hi=200;function sg(t){let e=t.split(`
8
- `).filter(r=>r.startsWith("data:")).map(r=>r.slice(5).replace(/^ /,""));if(e.length===0)return null;let n=e.join(`
9
- `);try{return JSON.parse(n)}catch(r){let s=n.length>Hi?`${n.slice(0,Hi)}\u2026`:n;throw new Error(`provisionProjectStream: received an unparseable SSE frame (${s})`,{cause:r})}}async function Sx(t,e,n={}){let r=await i.postStream("/projects/provision-stream",{seed_starter:!0,...t},n);if(!r.ok){let d=await r.json().catch(()=>null);throw new C(d?.error||`Provision failed: HTTP ${r.status}`,{status:r.status,code:d?.code})}let s=r.body?.getReader();if(!s)throw new Error("Provision stream is unavailable on this runtime (no response body)");let o=new TextDecoder,u="",p=null;try{for(;;){let{done:d,value:f}=await s.read();if(d)break;u+=o.decode(f,{stream:!0});let m=u.indexOf(`
7
+ `);try{L=JSON.parse(N),J=!0}catch{L=N}}J&&(s&&await s(L),r&&(L=await r(L))),n?.({data:L,event:F,id:h,retry:I}),U.length&&(yield L)}}}finally{u.removeEventListener("abort",q),j.releaseLock()}break}catch(c){if(t?.(c),l!==void 0&&E>=l)break;let S=Math.min(I*2**(E-1),p??3e4);await x(S)}}}()}};var id=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},od=e=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},ad=e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},ct=({allowReserved:e,explode:t,name:n,style:r,value:s})=>{if(!t){let p=(e?s:s.map(d=>encodeURIComponent(d))).join(od(r));switch(r){case"label":return`.${p}`;case"matrix":return`;${n}=${p}`;case"simple":return p;default:return`${n}=${p}`}}let o=id(r),l=s.map(p=>r==="label"||r==="simple"?e?p:encodeURIComponent(p):Se({allowReserved:e,name:n,value:p})).join(o);return r==="label"||r==="matrix"?o+l:l},Se=({allowReserved:e,name:t,value:n})=>{if(n==null)return"";if(typeof n=="object")throw new Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?n:encodeURIComponent(n)}`},lt=({allowReserved:e,explode:t,name:n,style:r,value:s,valueOnly:o})=>{if(s instanceof Date)return o?s.toISOString():`${n}=${s.toISOString()}`;if(r!=="deepObject"&&!t){let d=[];Object.entries(s).forEach(([m,h])=>{d=[...d,m,e?h:encodeURIComponent(h)]});let f=d.join(",");switch(r){case"form":return`${n}=${f}`;case"label":return`.${f}`;case"matrix":return`;${n}=${f}`;default:return f}}let l=ad(r),p=Object.entries(s).map(([d,f])=>Se({allowReserved:e,name:r==="deepObject"?`${n}[${d}]`:d,value:f})).join(l);return r==="label"||r==="matrix"?l+p:p};var cd=/\{[^{}]+\}/g,ld=({path:e,url:t})=>{let n=t,r=t.match(cd);if(r)for(let s of r){let o=!1,l=s.substring(1,s.length-1),p="simple";l.endsWith("*")&&(o=!0,l=l.substring(0,l.length-1)),l.startsWith(".")?(l=l.substring(1),p="label"):l.startsWith(";")&&(l=l.substring(1),p="matrix");let d=e[l];if(d==null)continue;if(Array.isArray(d)){n=n.replace(s,ct({explode:o,name:l,style:p,value:d}));continue}if(typeof d=="object"){n=n.replace(s,lt({explode:o,name:l,style:p,value:d,valueOnly:!0}));continue}if(p==="matrix"){n=n.replace(s,`;${Se({name:l,value:d})}`);continue}let f=encodeURIComponent(p==="label"?`.${d}`:d);n=n.replace(s,f)}return n},Os=({baseUrl:e,path:t,query:n,querySerializer:r,url:s})=>{let o=s.startsWith("/")?s:`/${s}`,l=(e??"")+o;t&&(l=ld({path:t,url:l}));let p=n?r(n):"";return p.startsWith("?")&&(p=p.substring(1)),p&&(l+=`?${p}`),l};function sn(e){let t=e.body!==void 0;if(t&&e.bodySerializer)return"serializedBody"in e?e.serializedBody!==void 0&&e.serializedBody!==""?e.serializedBody:null:e.body!==""?e.body:null;if(t)return e.body}var Us=async(e,t)=>{let n=typeof t=="function"?await t(e):t;if(n)return e.scheme==="bearer"?`Bearer ${n}`:e.scheme==="basic"?`Basic ${btoa(n)}`:n};var on={bodySerializer:e=>JSON.stringify(e,(t,n)=>typeof n=="bigint"?n.toString():n)};var Fs=({parameters:e={},...t}={})=>r=>{let s=[];if(r&&typeof r=="object")for(let o in r){let l=r[o];if(l==null)continue;let p=e[o]||t;if(Array.isArray(l)){let d=ct({allowReserved:p.allowReserved,explode:!0,name:o,style:"form",value:l,...p.array});d&&s.push(d)}else if(typeof l=="object"){let d=lt({allowReserved:p.allowReserved,explode:!0,name:o,style:"deepObject",value:l,...p.object});d&&s.push(d)}else{let d=Se({allowReserved:p.allowReserved,name:o,value:l});d&&s.push(d)}}return s.join("&")},Ls=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(n=>t.startsWith(n)))return"blob";if(t.startsWith("text/"))return"text"}},ud=(e,t)=>t?!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`)):!1,Gs=async({security:e,...t})=>{for(let n of e){if(ud(t,n.name))continue;let r=await Us(n,t.auth);if(!r)continue;let s=n.name??"Authorization";switch(n.in){case"query":t.query||(t.query={}),t.query[s]=r;break;case"cookie":t.headers.append("Cookie",`${s}=${r}`);break;default:t.headers.set(s,r);break}}},an=e=>Os({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer=="function"?e.querySerializer:Fs(e.querySerializer),url:e.url}),cn=(e,t)=>{let n={...e,...t};return n.baseUrl?.endsWith("/")&&(n.baseUrl=n.baseUrl.substring(0,n.baseUrl.length-1)),n.headers=ut(e.headers,t.headers),n},pd=e=>{let t=[];return e.forEach((n,r)=>{t.push([r,n])}),t},ut=(...e)=>{let t=new Headers;for(let n of e){if(!n)continue;let r=n instanceof Headers?pd(n):Object.entries(n);for(let[s,o]of r)if(o===null)t.delete(s);else if(Array.isArray(o))for(let l of o)t.append(s,l);else o!==void 0&&t.set(s,typeof o=="object"?JSON.stringify(o):o)}return t},Fe=class{fns=[];clear(){this.fns=[]}eject(t){let n=this.getInterceptorIndex(t);this.fns[n]&&(this.fns[n]=null)}exists(t){let n=this.getInterceptorIndex(t);return!!this.fns[n]}getInterceptorIndex(t){return typeof t=="number"?this.fns[t]?t:-1:this.fns.indexOf(t)}update(t,n){let r=this.getInterceptorIndex(t);return this.fns[r]?(this.fns[r]=n,t):!1}use(t){return this.fns.push(t),this.fns.length-1}},Bs=()=>({error:new Fe,request:new Fe,response:new Fe}),dd=Fs({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),gd={"Content-Type":"application/json"},Le=(e={})=>({...on,headers:gd,parseAs:"auto",querySerializer:dd,...e});var Ge=(e={})=>{let t=cn(Le(),e),n=()=>({...t}),r=f=>(t=cn(t,f),n()),s=Bs(),o=async f=>{let m={...t,...f,fetch:f.fetch??t.fetch??globalThis.fetch,headers:ut(t.headers,f.headers),serializedBody:void 0};m.security&&await Gs({...m,security:m.security}),m.requestValidator&&await m.requestValidator(m),m.body!==void 0&&m.bodySerializer&&(m.serializedBody=m.bodySerializer(m.body)),(m.body===void 0||m.serializedBody==="")&&m.headers.delete("Content-Type");let h=an(m);return{opts:m,url:h}},l=async f=>{let{opts:m,url:h}=await o(f),x={redirect:"follow",...m,body:sn(m)},P=new Request(h,x);for(let w of s.request.fns)w&&(P=await w(P,m));let C=m.fetch,I;try{I=await C(P)}catch(w){let R=w;for(let j of s.error.fns)j&&(R=await j(w,void 0,P,m));if(R=R||{},m.throwOnError)throw R;return m.responseStyle==="data"?void 0:{error:R,request:P,response:void 0}}for(let w of s.response.fns)w&&(I=await w(I,P,m));let E={request:P,response:I};if(I.ok){let w=(m.parseAs==="auto"?Ls(I.headers.get("Content-Type")):m.parseAs)??"json";if(I.status===204||I.headers.get("Content-Length")==="0"){let j;switch(w){case"arrayBuffer":case"blob":case"text":j=await I[w]();break;case"formData":j=new FormData;break;case"stream":j=I.body;break;default:j={};break}return m.responseStyle==="data"?j:{data:j,...E}}let R;switch(w){case"arrayBuffer":case"blob":case"formData":case"text":R=await I[w]();break;case"json":{let j=await I.text();R=j?JSON.parse(j):{};break}case"stream":return m.responseStyle==="data"?I.body:{data:I.body,...E}}return w==="json"&&(m.responseValidator&&await m.responseValidator(R),m.responseTransformer&&(R=await m.responseTransformer(R))),m.responseStyle==="data"?R:{data:R,...E}}let u=await I.text(),b;try{b=JSON.parse(u)}catch{}let c=b??u,S=c;for(let w of s.error.fns)w&&(S=await w(c,I,P,m));if(S=S||{},m.throwOnError)throw S;return m.responseStyle==="data"?void 0:{error:S,...E}},p=f=>m=>l({...m,method:f}),d=f=>async m=>{let{opts:h,url:x}=await o(m);return Ds({...h,body:h.body,headers:h.headers,method:f,onRequest:async(P,C)=>{let I=new Request(P,C);for(let E of s.request.fns)E&&(I=await E(I,h));return I},serializedBody:sn(h),url:x})};return{buildUrl:an,connect:p("CONNECT"),delete:p("DELETE"),get:p("GET"),getConfig:n,head:p("HEAD"),interceptors:s,options:p("OPTIONS"),patch:p("PATCH"),post:p("POST"),put:p("PUT"),request:l,setConfig:r,sse:{connect:d("CONNECT"),delete:d("DELETE"),get:d("GET"),head:d("HEAD"),options:d("OPTIONS"),patch:d("PATCH"),post:d("POST"),put:d("PUT"),trace:d("TRACE")},trace:p("TRACE")}};var md={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},fd=Object.entries(md),Ns=(e,t)=>{t||(t=new Map);for(let n of e)"in"in n?n.key&&t.set(n.key,{in:n.in,map:n.map}):"key"in n?t.set(n.key,{map:n.map}):n.args&&Ns(n.args,t);return t},yd=e=>{for(let[t,n]of Object.entries(e))n&&typeof n=="object"&&!Object.keys(n).length&&delete e[t]},g=(e,t)=>{let n={body:{},headers:{},path:{},query:{}},r=Ns(t),s;for(let[o,l]of e.entries())if(t[o]&&(s=t[o]),!!s)if("in"in s)if(s.key){let p=r.get(s.key),d=p.map||s.key;p.in&&(n[p.in][d]=l)}else n.body=l;else for(let[p,d]of Object.entries(l??{})){let f=r.get(p);if(f)if(f.in){let m=f.map||p;n[f.in][m]=d}else n[f.map]=d;else{let m=fd.find(([h])=>p.startsWith(h));if(m){let[h,x]=m;n[x][p.slice(h.length)]=d}else if("allowExtra"in s&&s.allowExtra){for(let[h,x]of Object.entries(s.allowExtra))if(x){n[h][p]=d;break}}}}return yd(n),n};var Ks=Ge(Le({baseUrl:"http://localhost:4096"}));var _=class{client;constructor(t){this.client=t?.client??Ks}},ln=class{defaultKey="default";instances=new Map;get(t){let n=this.instances.get(t??this.defaultKey);if(!n)throw new Error('No SDK client found. Create one with "new OpencodeClient()" to fix this error.');return n}set(t,n){this.instances.set(n??this.defaultKey,t)}},un=class extends _{remove(t,n){let r=g([t],[{args:[{in:"path",key:"providerID"}]}]);return(n?.client??this.client).delete({url:"/auth/{providerID}",...n,...r})}set(t,n){let r=g([t],[{args:[{in:"path",key:"providerID"},{key:"auth",map:"body"}]}]);return(n?.client??this.client).put({url:"/auth/{providerID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},pn=class extends _{log(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"service"},{in:"body",key:"level"},{in:"body",key:"message"},{in:"body",key:"extra"}]}]);return(n?.client??this.client).post({url:"/log",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}agents(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/agent",...n,...r})}skills(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/skill",...n,...r})}},dn=class extends _{moveSession(t,n){let r=g([t],[{args:[{in:"body",key:"sessionID"},{in:"body",key:"destination"},{in:"body",key:"moveChanges"}]}]);return(n?.client??this.client).post({url:"/experimental/control-plane/move-session",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},gn=class extends _{get(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/capabilities",...n,...r})}},mn=class extends _{get(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/console",...n,...r})}listOrgs(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/console/orgs",...n,...r})}switchOrg(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"accountID"},{in:"body",key:"orgID"}]}]);return(n?.client??this.client).post({url:"/experimental/console/switch",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},fn=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{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(n?.client??this.client).get({url:"/experimental/session",...n,...r})}background(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/experimental/session/{sessionID}/background",...n,...r})}},yn=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/resource",...n,...r})}},hn=class extends _{generateName(t,n){let r=g([t],[{args:[{in:"path",key:"projectID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"context"}]}]);return(n?.client??this.client).post({url:"/experimental/project/{projectID}/copy/generate-name",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},bn=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/workspace/adapter",...n,...r})}},xn=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/workspace",...n,...r})}create(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"id"},{in:"body",key:"type"},{in:"body",key:"branch"},{in:"body",key:"extra"}]}]);return(n?.client??this.client).post({url:"/experimental/workspace",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}syncList(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/experimental/workspace/sync-list",...n,...r})}status(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/workspace/status",...n,...r})}remove(t,n){let r=g([t],[{args:[{in:"path",key:"id"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/experimental/workspace/{id}",...n,...r})}warp(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"id"},{in:"body",key:"sessionID"},{in:"body",key:"copyChanges"}]}]);return(n?.client??this.client).post({url:"/experimental/workspace/warp",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}_adapter;get adapter(){return this._adapter??=new bn({client:this.client})}},_n=class extends _{_controlPlane;get controlPlane(){return this._controlPlane??=new dn({client:this.client})}_capabilities;get capabilities(){return this._capabilities??=new gn({client:this.client})}_console;get console(){return this._console??=new mn({client:this.client})}_session;get session(){return this._session??=new fn({client:this.client})}_resource;get resource(){return this._resource??=new yn({client:this.client})}_projectCopy;get projectCopy(){return this._projectCopy??=new hn({client:this.client})}_workspace;get workspace(){return this._workspace??=new xn({client:this.client})}},Pn=class extends _{get(t){return(t?.client??this.client).get({url:"/global/config",...t})}update(t,n){let r=g([t],[{args:[{key:"config",map:"body"}]}]);return(n?.client??this.client).patch({url:"/global/config",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},kn=class extends _{health(t){return(t?.client??this.client).get({url:"/global/health",...t})}event(t){return(t?.client??this.client).sse.get({url:"/global/event",...t})}dispose(t){return(t?.client??this.client).post({url:"/global/dispose",...t})}upgrade(t,n){let r=g([t],[{args:[{in:"body",key:"target"}]}]);return(n?.client??this.client).post({url:"/global/upgrade",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}_config;get config(){return this._config??=new Pn({client:this.client})}},wn=class extends _{subscribe(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).sse.get({url:"/event",...n,...r})}},Sn=class extends _{get(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/config",...n,...r})}update(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"config",map:"body"}]}]);return(n?.client??this.client).patch({url:"/config",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}providers(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/config/providers",...n,...r})}},vn=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"provider"},{in:"query",key:"model"}]}]);return(n?.client??this.client).get({url:"/experimental/tool",...n,...r})}ids(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/tool/ids",...n,...r})}},An=class extends _{remove(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"worktreeRemoveInput",map:"body"}]}]);return(n?.client??this.client).delete({url:"/experimental/worktree",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/experimental/worktree",...n,...r})}create(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"worktreeCreateInput",map:"body"}]}]);return(n?.client??this.client).post({url:"/experimental/worktree",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}reset(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"worktreeResetInput",map:"body"}]}]);return(n?.client??this.client).post({url:"/experimental/worktree/reset",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Cn=class extends _{text(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"pattern"}]}]);return(n?.client??this.client).get({url:"/find",...n,...r})}files(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"query"},{in:"query",key:"dirs"},{in:"query",key:"type"},{in:"query",key:"limit"}]}]);return(n?.client??this.client).get({url:"/find/file",...n,...r})}symbols(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"query"}]}]);return(n?.client??this.client).get({url:"/find/symbol",...n,...r})}},Rn=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"path"}]}]);return(n?.client??this.client).get({url:"/file",...n,...r})}read(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"path"}]}]);return(n?.client??this.client).get({url:"/file/content",...n,...r})}status(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/file/status",...n,...r})}},Tn=class extends _{dispose(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/instance/dispose",...n,...r})}},In=class extends _{get(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/path",...n,...r})}},En=class extends _{raw(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/vcs/diff/raw",...n,...r})}},jn=class extends _{get(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/vcs",...n,...r})}status(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/vcs/status",...n,...r})}diff(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"mode"},{in:"query",key:"context"}]}]);return(n?.client??this.client).get({url:"/vcs/diff",...n,...r})}apply(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"patch"}]}]);return(n?.client??this.client).post({url:"/vcs/apply",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}_diff;get diff2(){return this._diff??=new En({client:this.client})}},$n=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/command",...n,...r})}},Mn=class extends _{status(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/lsp",...n,...r})}},qn=class extends _{status(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/formatter",...n,...r})}},Dn=class extends _{remove(t,n){let r=g([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/mcp/{name}/auth",...n,...r})}start(t,n){let r=g([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/mcp/{name}/auth",...n,...r})}callback(t,n){let r=g([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"code"}]}]);return(n?.client??this.client).post({url:"/mcp/{name}/auth/callback",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}authenticate(t,n){let r=g([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/mcp/{name}/auth/authenticate",...n,...r})}},On=class extends _{status(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/mcp",...n,...r})}add(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"name"},{in:"body",key:"config"}]}]);return(n?.client??this.client).post({url:"/mcp",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}connect(t,n){let r=g([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/mcp/{name}/connect",...n,...r})}disconnect(t,n){let r=g([t],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/mcp/{name}/disconnect",...n,...r})}_auth;get auth(){return this._auth??=new Dn({client:this.client})}},Un=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/project",...n,...r})}current(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/project/current",...n,...r})}initGit(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/project/git/init",...n,...r})}update(t,n){let r=g([t],[{args:[{in:"path",key:"projectID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"name"},{in:"body",key:"icon"},{in:"body",key:"commands"}]}]);return(n?.client??this.client).patch({url:"/project/{projectID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}directories(t,n){let r=g([t],[{args:[{in:"path",key:"projectID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/project/{projectID}/directories",...n,...r})}},Fn=class extends _{shells(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/pty/shells",...n,...r})}list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/pty",...n,...r})}create(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"command"},{in:"body",key:"args"},{in:"body",key:"cwd"},{in:"body",key:"title"},{in:"body",key:"env"}]}]);return(n?.client??this.client).post({url:"/pty",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}remove(t,n){let r=g([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/pty/{ptyID}",...n,...r})}get(t,n){let r=g([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/pty/{ptyID}",...n,...r})}update(t,n){let r=g([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"title"},{in:"body",key:"size"}]}]);return(n?.client??this.client).put({url:"/pty/{ptyID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}connectToken(t,n){let r=g([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/pty/{ptyID}/connect-token",...n,...r})}connect(t,n){let r=g([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"cursor"},{in:"query",key:"ticket"}]}]);return(n?.client??this.client).get({url:"/pty/{ptyID}/connect",...n,...r})}},Ln=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/question",...n,...r})}reply(t,n){let r=g([t],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"answers"}]}]);return(n?.client??this.client).post({url:"/question/{requestID}/reply",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}reject(t,n){let r=g([t],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/question/{requestID}/reject",...n,...r})}},Gn=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/permission",...n,...r})}reply(t,n){let r=g([t],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"reply"},{in:"body",key:"message"}]}]);return(n?.client??this.client).post({url:"/permission/{requestID}/reply",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}respond(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"permissionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"response"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/permissions/{permissionID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Bn=class extends _{authorize(t,n){let r=g([t],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"method"},{in:"body",key:"inputs"}]}]);return(n?.client??this.client).post({url:"/provider/{providerID}/oauth/authorize",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}callback(t,n){let r=g([t],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"method"},{in:"body",key:"code"}]}]);return(n?.client??this.client).post({url:"/provider/{providerID}/oauth/callback",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Nn=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/provider",...n,...r})}auth(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/provider/auth",...n,...r})}_oauth;get oauth(){return this._oauth??=new Bn({client:this.client})}},Kn=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"scope"},{in:"query",key:"path"},{in:"query",key:"roots"},{in:"query",key:"start"},{in:"query",key:"search"},{in:"query",key:"limit"}]}]);return(n?.client??this.client).get({url:"/session",...n,...r})}create(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"parentID"},{in:"body",key:"title"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"metadata"},{in:"body",key:"permission"},{in:"body",key:"workspaceID"}]}]);return(n?.client??this.client).post({url:"/session",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}status(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/session/status",...n,...r})}delete(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/session/{sessionID}",...n,...r})}get(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}",...n,...r})}update(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"title"},{in:"body",key:"metadata"},{in:"body",key:"permission"},{in:"body",key:"time"}]}]);return(n?.client??this.client).patch({url:"/session/{sessionID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}children(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}/children",...n,...r})}todo(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}/todo",...n,...r})}diff(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"messageID"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}/diff",...n,...r})}messages(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"query",key:"limit"},{in:"query",key:"before"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}/message",...n,...r})}prompt(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{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(n?.client??this.client).post({url:"/session/{sessionID}/message",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}deleteMessage(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/session/{sessionID}/message/{messageID}",...n,...r})}message(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/session/{sessionID}/message/{messageID}",...n,...r})}fork(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"messageID"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/fork",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}abort(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/abort",...n,...r})}init(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"modelID"},{in:"body",key:"providerID"},{in:"body",key:"messageID"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/init",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}unshare(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/session/{sessionID}/share",...n,...r})}share(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/share",...n,...r})}summarize(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"providerID"},{in:"body",key:"modelID"},{in:"body",key:"auto"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/summarize",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}promptAsync(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{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(n?.client??this.client).post({url:"/session/{sessionID}/prompt_async",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}command(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{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(n?.client??this.client).post({url:"/session/{sessionID}/command",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}shell(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"messageID"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"command"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/shell",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}revert(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"messageID"},{in:"body",key:"partID"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/revert",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}unrevert(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/session/{sessionID}/unrevert",...n,...r})}},Hn=class extends _{delete(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).delete({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...n,...r})}update(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"part",map:"body"}]}]);return(n?.client??this.client).patch({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Wn=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"body",map:"body"}]}]);return(n?.client??this.client).post({url:"/sync/history",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},zn=class extends _{start(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/sync/start",...n,...r})}replay(t,n){let r=g([t],[{args:[{in:"query",key:"query_directory",map:"directory"},{in:"query",key:"workspace"},{in:"body",key:"body_directory",map:"directory"},{in:"body",key:"events"}]}]);return(n?.client??this.client).post({url:"/sync/replay",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}steal(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/sync/steal",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}_history;get history(){return this._history??=new Wn({client:this.client})}},Vn=class extends _{next(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).get({url:"/tui/control/next",...n,...r})}response(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"body",map:"body"}]}]);return(n?.client??this.client).post({url:"/tui/control/response",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},Jn=class extends _{appendPrompt(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"text"}]}]);return(n?.client??this.client).post({url:"/tui/append-prompt",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}openHelp(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/open-help",...n,...r})}openSessions(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/open-sessions",...n,...r})}openThemes(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/open-themes",...n,...r})}openModels(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/open-models",...n,...r})}submitPrompt(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/submit-prompt",...n,...r})}clearPrompt(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"}]}]);return(n?.client??this.client).post({url:"/tui/clear-prompt",...n,...r})}executeCommand(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"command"}]}]);return(n?.client??this.client).post({url:"/tui/execute-command",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}showToast(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"title"},{in:"body",key:"message"},{in:"body",key:"variant"},{in:"body",key:"duration"}]}]);return(n?.client??this.client).post({url:"/tui/show-toast",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}publish(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{key:"body",map:"body"}]}]);return(n?.client??this.client).post({url:"/tui/publish",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}selectSession(t,n){let r=g([t],[{args:[{in:"query",key:"directory"},{in:"query",key:"workspace"},{in:"body",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/tui/select-session",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}_control;get control(){return this._control??=new Vn({client:this.client})}},Xn=class extends _{get(t){return(t?.client??this.client).get({url:"/api/health",...t})}},Qn=class extends _{get(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/location",...n,...r})}},Yn=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/agent",...n,...r})}},Zn=class extends _{stage(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"body",key:"messageID"},{in:"body",key:"files"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/revert/stage",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}clear(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/revert/clear",...n,...r})}commit(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/revert/commit",...n,...r})}},er=class extends _{list(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/permission",...n,...r})}create(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"body",key:"id"},{in:"body",key:"action"},{in:"body",key:"resources"},{in:"body",key:"save"},{in:"body",key:"metadata"},{in:"body",key:"source"},{in:"body",key:"agent"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/permission",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}get(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"requestID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/permission/{requestID}",...n,...r})}reply(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"requestID"},{in:"body",key:"reply"},{in:"body",key:"message"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/permission/{requestID}/reply",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},tr=class extends _{list(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/question",...n,...r})}reply(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"requestID"},{key:"questionV2Reply",map:"body"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/question/{requestID}/reply",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}reject(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"requestID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/question/{requestID}/reject",...n,...r})}},nr=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"workspace"},{in:"query",key:"limit"},{in:"query",key:"order"},{in:"query",key:"search"},{in:"query",key:"directory"},{in:"query",key:"project"},{in:"query",key:"subpath"},{in:"query",key:"cursor"}]}]);return(n?.client??this.client).get({url:"/api/session",...n,...r})}create(t,n){let r=g([t],[{args:[{in:"body",key:"id"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"location"}]}]);return(n?.client??this.client).post({url:"/api/session",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}active(t){return(t?.client??this.client).get({url:"/api/session/active",...t})}get(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}",...n,...r})}switchAgent(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"body",key:"agent"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/agent",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}switchModel(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"body",key:"model"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/model",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}prompt(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"body",key:"id"},{in:"body",key:"prompt"},{in:"body",key:"delivery"},{in:"body",key:"resume"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/prompt",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}compact(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/compact",...n,...r})}wait(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/wait",...n,...r})}context(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/context",...n,...r})}history(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"limit"},{in:"query",key:"after"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/history",...n,...r})}events(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"after"}]}]);return(n?.client??this.client).sse.get({url:"/api/session/{sessionID}/event",...n,...r})}interrupt(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"}]}]);return(n?.client??this.client).post({url:"/api/session/{sessionID}/interrupt",...n,...r})}message(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/message/{messageID}",...n,...r})}messages(t,n){let r=g([t],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"limit"},{in:"query",key:"order"},{in:"query",key:"cursor"}]}]);return(n?.client??this.client).get({url:"/api/session/{sessionID}/message",...n,...r})}_revert;get revert(){return this._revert??=new Zn({client:this.client})}_permission;get permission(){return this._permission??=new er({client:this.client})}_question;get question(){return this._question??=new tr({client:this.client})}},rr=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/model",...n,...r})}},sr=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/provider",...n,...r})}get(t,n){let r=g([t],[{args:[{in:"path",key:"providerID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/provider/{providerID}",...n,...r})}},ir=class extends _{key(t,n){let r=g([t],[{args:[{in:"path",key:"integrationID"},{in:"query",key:"location"},{in:"body",key:"key"},{in:"body",key:"label"}]}]);return(n?.client??this.client).post({url:"/api/integration/{integrationID}/connect/key",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}oauth(t,n){let r=g([t],[{args:[{in:"path",key:"integrationID"},{in:"query",key:"location"},{in:"body",key:"methodID"},{in:"body",key:"inputs"},{in:"body",key:"label"}]}]);return(n?.client??this.client).post({url:"/api/integration/{integrationID}/connect/oauth",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},or=class extends _{cancel(t,n){let r=g([t],[{args:[{in:"path",key:"attemptID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).delete({url:"/api/integration/attempt/{attemptID}",...n,...r})}status(t,n){let r=g([t],[{args:[{in:"path",key:"attemptID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/integration/attempt/{attemptID}",...n,...r})}complete(t,n){let r=g([t],[{args:[{in:"path",key:"attemptID"},{in:"query",key:"location"},{in:"body",key:"code"}]}]);return(n?.client??this.client).post({url:"/api/integration/attempt/{attemptID}/complete",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},ar=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/integration",...n,...r})}get(t,n){let r=g([t],[{args:[{in:"path",key:"integrationID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/integration/{integrationID}",...n,...r})}_connect;get connect(){return this._connect??=new ir({client:this.client})}_attempt;get attempt(){return this._attempt??=new or({client:this.client})}},cr=class extends _{remove(t,n){let r=g([t],[{args:[{in:"path",key:"credentialID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).delete({url:"/api/credential/{credentialID}",...n,...r})}update(t,n){let r=g([t],[{args:[{in:"path",key:"credentialID"},{in:"query",key:"location"},{in:"body",key:"label"}]}]);return(n?.client??this.client).patch({url:"/api/credential/{credentialID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}},lr=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/permission/request",...n,...r})}},ur=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"projectID"}]}]);return(n?.client??this.client).get({url:"/api/permission/saved",...n,...r})}remove(t,n){let r=g([t],[{args:[{in:"path",key:"id"}]}]);return(n?.client??this.client).delete({url:"/api/permission/saved/{id}",...n,...r})}},pr=class extends _{_request;get request(){return this._request??=new lr({client:this.client})}_saved;get saved(){return this._saved??=new ur({client:this.client})}},dr=class extends _{read(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/fs/read/*",...n,...r})}list(t,n){let r=g([t],[{args:[{in:"query",key:"location"},{in:"query",key:"path"}]}]);return(n?.client??this.client).get({url:"/api/fs/list",...n,...r})}find(t,n){let r=g([t],[{args:[{in:"query",key:"location"},{in:"query",key:"query"},{in:"query",key:"type"},{in:"query",key:"limit"}]}]);return(n?.client??this.client).get({url:"/api/fs/find",...n,...r})}},gr=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/command",...n,...r})}},mr=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/skill",...n,...r})}},fr=class extends _{subscribe(t){return(t?.client??this.client).sse.get({url:"/api/event",...t})}},yr=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/pty",...n,...r})}create(t,n){let r=g([t],[{args:[{in:"query",key:"location"},{in:"body",key:"command"},{in:"body",key:"args"},{in:"body",key:"cwd"},{in:"body",key:"title"},{in:"body",key:"env"}]}]);return(n?.client??this.client).post({url:"/api/pty",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}remove(t,n){let r=g([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).delete({url:"/api/pty/{ptyID}",...n,...r})}get(t,n){let r=g([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/pty/{ptyID}",...n,...r})}update(t,n){let r=g([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"location"},{in:"body",key:"title"},{in:"body",key:"size"}]}]);return(n?.client??this.client).put({url:"/api/pty/{ptyID}",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}connectToken(t,n){let r=g([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).post({url:"/api/pty/{ptyID}/connect-token",...n,...r})}connect(t,n){let r=g([t],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"location[directory]"},{in:"query",key:"location[workspace]"},{in:"query",key:"cursor"},{in:"query",key:"ticket"}]}]);return(n?.client??this.client).get({url:"/api/pty/{ptyID}/connect",...n,...r})}},hr=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/question/request",...n,...r})}},br=class extends _{_request;get request(){return this._request??=new hr({client:this.client})}},xr=class extends _{list(t,n){let r=g([t],[{args:[{in:"query",key:"location"}]}]);return(n?.client??this.client).get({url:"/api/reference",...n,...r})}},_r=class extends _{remove(t,n){let r=g([t],[{args:[{in:"path",key:"projectID"},{in:"query",key:"location"},{in:"body",key:"directory"},{in:"body",key:"force"}]}]);return(n?.client??this.client).delete({url:"/experimental/project/{projectID}/copy",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}create(t,n){let r=g([t],[{args:[{in:"path",key:"projectID"},{in:"query",key:"location"},{in:"body",key:"strategy"},{in:"body",key:"directory"},{in:"body",key:"name"}]}]);return(n?.client??this.client).post({url:"/experimental/project/{projectID}/copy",...n,...r,headers:{"Content-Type":"application/json",...n?.headers,...r.headers}})}refresh(t,n){let r=g([t],[{args:[{in:"path",key:"projectID"},{in:"query",key:"location"}]}]);return(n?.client??this.client).post({url:"/experimental/project/{projectID}/copy/refresh",...n,...r})}},Pr=class extends _{_health;get health(){return this._health??=new Xn({client:this.client})}_location;get location(){return this._location??=new Qn({client:this.client})}_agent;get agent(){return this._agent??=new Yn({client:this.client})}_session;get session(){return this._session??=new nr({client:this.client})}_model;get model(){return this._model??=new rr({client:this.client})}_provider;get provider(){return this._provider??=new sr({client:this.client})}_integration;get integration(){return this._integration??=new ar({client:this.client})}_credential;get credential(){return this._credential??=new cr({client:this.client})}_permission;get permission(){return this._permission??=new pr({client:this.client})}_fs;get fs(){return this._fs??=new dr({client:this.client})}_command;get command(){return this._command??=new gr({client:this.client})}_skill;get skill(){return this._skill??=new mr({client:this.client})}_event;get event(){return this._event??=new fr({client:this.client})}_pty;get pty(){return this._pty??=new yr({client:this.client})}_question;get question(){return this._question??=new br({client:this.client})}_reference;get reference(){return this._reference??=new xr({client:this.client})}_projectCopy;get projectCopy(){return this._projectCopy??=new _r({client:this.client})}},pt=class e extends _{static __registry=new ln;constructor(t){super(t),e.__registry.set(this,t?.key)}_auth;get auth(){return this._auth??=new un({client:this.client})}_app;get app(){return this._app??=new pn({client:this.client})}_experimental;get experimental(){return this._experimental??=new _n({client:this.client})}_global;get global(){return this._global??=new kn({client:this.client})}_event;get event(){return this._event??=new wn({client:this.client})}_config;get config(){return this._config??=new Sn({client:this.client})}_tool;get tool(){return this._tool??=new vn({client:this.client})}_worktree;get worktree(){return this._worktree??=new An({client:this.client})}_find;get find(){return this._find??=new Cn({client:this.client})}_file;get file(){return this._file??=new Rn({client:this.client})}_instance;get instance(){return this._instance??=new Tn({client:this.client})}_path;get path(){return this._path??=new In({client:this.client})}_vcs;get vcs(){return this._vcs??=new jn({client:this.client})}_command;get command(){return this._command??=new $n({client:this.client})}_lsp;get lsp(){return this._lsp??=new Mn({client:this.client})}_formatter;get formatter(){return this._formatter??=new qn({client:this.client})}_mcp;get mcp(){return this._mcp??=new On({client:this.client})}_project;get project(){return this._project??=new Un({client:this.client})}_pty;get pty(){return this._pty??=new Fn({client:this.client})}_question;get question(){return this._question??=new Ln({client:this.client})}_permission;get permission(){return this._permission??=new Gn({client:this.client})}_provider;get provider(){return this._provider??=new Nn({client:this.client})}_session;get session(){return this._session??=new Kn({client:this.client})}_part;get part(){return this._part??=new Hn({client:this.client})}_sync;get sync(){return this._sync??=new zn({client:this.client})}_tui;get tui(){return this._tui??=new Jn({client:this.client})}_v2;get v2(){return this._v2??=new Pr({client:this.client})}};function Ws(e,t,n,r){if(!r?.throwOnError||e instanceof Error)return e;if(typeof e=="object"&&e!==null&&Object.keys(e).length>0){let o=e,l=typeof o.data?.message=="string"&&o.data.message||typeof o.message=="string"&&o.message||typeof o.name=="string"&&o.name||Hs(n,t);return new Error(l,{cause:{body:e,status:t?.status}})}if(typeof e=="string"&&e.length>0)return new Error(e,{cause:{body:e,status:t?.status}});let s=t?"(empty response body)":"network error (no response)";return new Error(`opencode server ${Hs(n,t)}: ${s}`,{cause:{body:e,status:t?.status}})}function Hs(e,t){let n=e?.method??"?",r=e?.url??"?",s=t?.status,o=t?.statusText;return`${n} ${r}${s?" \u2192 "+s:""}${o?" "+o:""}`}function hd(e,t,n){if(e)return t&&(e===t||n&&e===n(t))?t:e}function bd(e,t){if(e.method!=="GET"&&e.method!=="HEAD")return e;let n=new URL(e.url),r=!1;for(let[o,l]of[["x-opencode-directory","directory"],["x-opencode-workspace","workspace"]]){let p=hd(e.headers.get(o),l==="directory"?t.directory:t.workspace,l==="directory"?encodeURIComponent:void 0);if(p){for(let d of n.pathname.startsWith("/api/")?[l,`location[${l}]`]:[l])n.searchParams.has(d)||n.searchParams.set(d,p);r=!0}}if(!r)return e;let s=new Request(n,e);return s.headers.delete("x-opencode-directory"),s.headers.delete("x-opencode-workspace"),s}function kr(e){e?.fetch||(e={...e,fetch:r=>(r.timeout=!1,fetch(r))}),e?.directory&&(e.headers={...e.headers,"x-opencode-directory":encodeURIComponent(e.directory)}),e?.experimental_workspaceID&&(e.headers={...e.headers,"x-opencode-workspace":e.experimental_workspaceID});let t=Ge(e);return t.interceptors.request.use(n=>bd(n,{directory:e?.directory,workspace:e?.experimental_workspaceID})),t.interceptors.response.use(n=>{if(n.headers.get("content-type")==="text/html")throw new Error("Request is not supported by this version of OpenCode Server (Server responded with text/html)");return n}),t.interceptors.error.use(Ws),new pt({client:t})}var xd=new Set(["api","cli","mobile","web"]);function dt(e){let t=e?.trim().toLowerCase();return t&&xd.has(t)?t:null}function _d(e){return new Promise(t=>setTimeout(t,e))}async function zs(e,t,n){let r=Math.max(1,t?.attempts??1),s=t?.baseDelayMs??0,o=t?.invalidateBetweenAttempts??!1,l=null;for(let p=0;p<r;p++)if(p>0&&(o&&n?.(),s>0&&await _d(s)),l=await e(),l)return l;return l}var Pd=12e4;function kd(e){return(e instanceof Request?e.url:String(e)).includes("/global/event")}function wr(e,t,n=Pd){let r=e instanceof Request?e.signal:t?.signal;if(kd(e))return r??void 0;let s=AbortSignal.timeout(n);return r?typeof AbortSignal.any=="function"?AbortSignal.any([r,s]):r:s}function Sr(e,t,n,r){let s=new Headers(e instanceof Request?e.headers:void 0);t?.headers&&new Headers(t.headers).forEach((l,p)=>{s.set(p,l)}),n&&!s.has("Authorization")&&s.set("Authorization",`Bearer ${n}`);let o=dt(r);return o&&!s.has("X-Kortix-Client")&&s.set("X-Kortix-Client",o),s}function Vs(){return new Response(JSON.stringify({error:"Not authenticated"}),{status:401,headers:{"Content-Type":"application/json"}})}async function vr(){return $().getToken()}async function ae(e){return zs(()=>$().getToken(),e,gt)}function gt(){}function wh(e){}function Sh(e){}async function Be(){return vr()}async function Js(e){return ae(e)}function Xs(e,t,n,r){let s=$().fetch??fetch;if(e instanceof Request){let o=new Request(e,{headers:n,...r?{signal:r}:{}});return s(o)}return s(e,{...t,headers:n,...r?{signal:r}:{}})}async function M(e,t,n){let{retryOnAuthError:r=!0,timeoutMs:s}=n??{},o=await Js();if(!o)return Vs();let l=$().clientSource,p=Sr(e,t,o,l),d=s===void 0?wr(e,t):wr(e,t,s),f=await Xs(e,t,p,d);if(f.status===401&&r&&o){gt();let m=await Js({attempts:2,baseDelayMs:200});if(m&&m!==o){let h=Sr(e,t,m,l);return Xs(e,t,h,d)}}return f}var ve={url:null,sandboxId:null,dbSandboxId:null,version:0},wd=new Set;function Qs(e,t=null,n=null){if(!(ve.url===e&&ve.sandboxId===t&&ve.dbSandboxId===n)){ve={url:e,sandboxId:t,dbSandboxId:n,version:ve.version+1};for(let r of wd)r()}}function Ys(){return ve.url}function Sd(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return e.slice(0,t)}function Ne(){return Sd($().backendUrl||"http://localhost:8008/v1")}function Zs(){let e=$().sandboxId;return e?`${Ne()}/p/${e}/8000`:""}function vd(e){return`${Ne()}/p/${e}/8000`}function mt(e){return vd(e)}var A=class extends Error{status;code;details;data;detail;response;url;endpoint;timeout;constructor(t,n={}){super(t),this.name="ApiError";let{name:r,stack:s,...o}=n;Object.assign(this,o),r&&(this.name=r),s&&(this.stack=s);let l=typeof t=="string"?t:t==null?"":String(t);Object.defineProperty(this,"message",{value:l,enumerable:!0,writable:!0,configurable:!0}),Object.setPrototypeOf(this,new.target.prototype)}},Ae=class extends A{constructor(t="Not authenticated"){super(t,{code:"NO_SESSION"}),this.name="AuthError"}},fe=class e extends Error{status;detail;constructor(t,n,r){super(r||n.message||`Billing Error: ${t}`),this.name="BillingError",this.status=t,this.detail=n,Object.setPrototypeOf(this,e.prototype)}},Ce=class e extends Error{status;detail;constructor(t=431,n,r){let s="Request headers are too large",o="Try uploading files one at a time, or reduce the number of files in a single request.";super(r||n?.message||s),this.name="RequestTooLargeError",this.status=t,this.detail={message:n?.message||s,suggestion:n?.suggestion||o},Object.setPrototypeOf(this,e.prototype)}},Ar="feature_disabled";function ei(e){if(!(e instanceof A)||e.status!==403||e.code!==Ar)return null;let t=e.details??e.data;return t&&typeof t=="object"?t:{}}function ti(e){let t=ei(e);return t?(typeof t.feature=="string"&&!e.feature&&(e.feature=t.feature),!0):!1}function ni(e){let t=ei(e);if(!t)return null;let n=e.feature;return typeof n=="string"?n:typeof t.feature=="string"?t.feature:null}function Re(e){let t=e.response?.status||e.status;if(t!==402)return e;let n=e.response?.data||e.data||e.detail||{},r=n?.detail||n;return new fe(t,{message:r?.message||e.message||"Billing error",...r})}function ri(e){return e instanceof fe}function si(e){if(!(e instanceof fe))return null;let t=e.detail?.message?.toLowerCase()||"";return t.includes("credit")||t.includes("balance")||t.includes("insufficient")?{alertTitle:"You ran out of credits",alertSubtitle:"Upgrade your plan to get more credits and continue using the AI assistant."}:{alertTitle:"Billing check failed",alertSubtitle:e.detail?.message||"Please upgrade to continue."}}var Ad="X-Kortix-Impersonate",Rr="kortix.impersonation",ye=null,ft=!1,Cr=new Set;function Tr(){try{return typeof sessionStorage>"u"?null:sessionStorage}catch{return null}}function Cd(e,t=Date.now()){if(!e||!e.grantId||!e.accountId)return!1;let n=Date.parse(e.expiresAt);return Number.isFinite(n)&&n>t}function Rd(e){if(!e)return null;try{let t=JSON.parse(e);return typeof t?.grantId!="string"||typeof t?.accountId!="string"?null:{grantId:t.grantId,accountId:t.accountId,accountName:typeof t.accountName=="string"?t.accountName:null,expiresAt:typeof t.expiresAt=="string"?t.expiresAt:""}}catch{return null}}function ii(){for(let e of Cr)try{e()}catch{}}function Td(){return ft||(ft=!0,ye=Rd(Tr()?.getItem(Rr)??null)),ye&&!Cd(ye)?(oi(),null):ye}function Ih(e){if(ft=!0,!e){oi();return}ye=e;try{Tr()?.setItem(Rr,JSON.stringify(e))}catch{}ii()}function oi(){ft=!0;let e=ye!==null;ye=null;try{Tr()?.removeItem(Rr)}catch{}e&&ii()}function Eh(e){return Cr.add(e),()=>{Cr.delete(e)}}var Id=/(^|\/)admin\/(api|analytics)(\/|$)/;function Ed(e){let t=e;if(/^https?:\/\//.test(e))try{t=new URL(e).pathname}catch{t=e}return!Id.test(t)}function Ir(e){if(e!==void 0&&!Ed(e))return{};let t=Td();return t?{[Ad]:t.grantId}:{}}var ne=()=>$().backendUrl||"",jd="feature_not_supported",$d="model_not_servable",Md="provision_in_flight",ci="request_deadline",qd=/^Request exceeded the \d+s server processing deadline$/,Dd=(e,t,n)=>e!==503?!1:(typeof t=="object"&&t!==null&&"code"in t?t.code:void 0)===ci||qd.test(n),Od=e=>new Promise(t=>setTimeout(t,e)),Ud=new Set([502,503,504]),Fd=e=>Ud.has(e),Ld=e=>{let t=(e??"GET").toUpperCase();return t==="GET"||t==="HEAD"},Gd=2,ai=e=>e?.name==="AbortError"||e?.name==="AbortSignal"||e instanceof Error&&e.message.includes("aborted"),yt=!1;function Uh(e){yt=e}function Fh(){return yt}async function he(e,t={}){let{showErrors:n=!0,errorContext:r,timeout:s=3e4,...o}=t,l=new AbortController,p=null,d=!1,f=!1;try{p=setTimeout(()=>{!d&&!l.signal.aborted&&(d=!0,f=!0,l.abort())},s);let m=await ae(),h=o.body instanceof FormData,x={};h||(x["Content-Type"]="application/json"),Object.assign(x,o.headers);let P=dt($().clientSource),C=Object.keys(x).some(S=>S.toLowerCase()==="x-kortix-client");if(P&&!C&&(x["X-Kortix-Client"]=P),yt&&(x["x-kortix-admin-bypass"]="1"),Object.assign(x,Ir(e)),m)x.Authorization=`Bearer ${m}`;else return{error:new Ae,success:!1};let I=Ld(o.method),E=I?Gd+1:1,u;for(let S=0;S<E;S++){S>0&&await Od(250*2**(S-1));let w=S===0?l:new AbortController;S>0&&(p=setTimeout(()=>{f=!0,w.abort()},s));try{u=await($().fetch??fetch)(e,{...o,headers:x,signal:w.signal,credentials:o.credentials??"omit"})}catch(j){if(p&&(clearTimeout(p),p=null),ai(j)||S===E-1)throw j;continue}if(p&&(clearTimeout(p),p=null),!(I&&Fd(u.status)&&S<E-1))break;try{await u.arrayBuffer()}catch{}}if(!u.ok){let S=`HTTP ${u.status}: ${u.statusText}`,w=null;try{w=await u.json(),typeof w.message=="string"?S=w.message:w.error&&typeof w.error=="string"?S=w.error:typeof w.detail=="string"?S=w.detail:typeof w.detail?.message=="string"?S=w.detail.message:typeof w.reason=="string"&&(S=w.reason)}catch{}let R=Dd(u.status,w,S),j=new A(S,{status:u.status,response:u,details:w||void 0,data:w,detail:w?.detail,code:R?ci:w?.code||w?.error_code||w?.detail?.error_code||u.status.toString()});if(u.status===402&&(j=Re(j)),u.status===403&&w?.code==="account_mfa_required"&&typeof window<"u"&&typeof window.dispatchEvent=="function")try{window.dispatchEvent(new CustomEvent("kortix:mfa-required"))}catch{}u.status===431&&(j=new Ce(431,{message:"Request is too large to process",suggestion:"Try uploading files one at a time, or reduce the number of files attached to your message."}));let D=u.status===501&&w?.code===jd,q=u.status===409&&w?.code===$d,X=u.status===409&&w?.code===Md;return n&&!D&&!q&&!X&&!R&&$().onError?.(j,r),{error:j,success:!1}}let b,c=u.headers.get("content-type");return c?.includes("application/json")?b=await u.json():c?.includes("text/")?b=await u.text():b=await u.blob(),{data:b,success:!0}}catch(m){p&&(clearTimeout(p),p=null);let h=ai(m);h&&(d=!0);let x;if(h){if(!f)return{error:new A("Request aborted",{name:"AbortError",code:"ABORTED"}),success:!1};let P=e.replace(ne(),"")||e;x=new A(`Request timed out after ${Math.round(s/1e3)}s: ${P}`,{code:"TIMEOUT",url:e,endpoint:P,timeout:s})}else m instanceof Error?(x=new A(m.message,{name:m.name||"ApiError",stack:m.stack}),n&&$().onError?.(x,r)):(x=new A(String(m)),n&&$().onError?.(x,r));return{error:x,success:!1}}}var Lh={async execute(e,t){try{let{data:n,error:r}=await e();if(r){let s=new A(r.message||"Database error",{code:r.code,details:r});return $().onError?.(s,t),{error:s,success:!1}}return{data:n,success:!0}}catch(n){let r=n instanceof Error?new A(n.message,{name:n.name||"ApiError",stack:n.stack}):new A(String(n));return $().onError?.(r,t),{error:r,success:!1}}}};async function Bd(e,t,n={}){let{timeout:r=3e4,fetch:s=fetch}=n,o=await ae(),l={Accept:"text/event-stream","Content-Type":"application/json"},p=dt($().clientSource);p&&(l["X-Kortix-Client"]=p),yt&&(l["x-kortix-admin-bypass"]="1"),Object.assign(l,Ir(e)),o&&(l.Authorization=`Bearer ${o}`);let d=new AbortController,f=setTimeout(()=>d.abort(),r);try{return await s(`${ne()}${e}`,{method:"POST",headers:l,body:JSON.stringify(t),signal:d.signal,credentials:"omit"})}finally{clearTimeout(f)}}var i={get:(e,t)=>he(`${ne()}${e}`,{...t,method:"GET"}),post:(e,t,n)=>he(`${ne()}${e}`,{...n,method:"POST",body:t?JSON.stringify(t):void 0}),put:(e,t,n)=>he(`${ne()}${e}`,{...n,method:"PUT",body:t?JSON.stringify(t):void 0}),patch:(e,t,n)=>he(`${ne()}${e}`,{...n,method:"PATCH",body:t?JSON.stringify(t):void 0}),delete:(e,t)=>he(`${ne()}${e}`,{...t,method:"DELETE"}),upload:(e,t,n)=>{let{headers:r,...s}=n||{},o={...r};return delete o["Content-Type"],he(`${ne()}${e}`,{...s,method:"POST",body:t,headers:o})},uploadPut:(e,t,n)=>{let{headers:r,...s}=n||{},o={...r};return delete o["Content-Type"],he(`${ne()}${e}`,{...s,method:"PUT",body:t,headers:o})},postStream:Bd};var ht=new Map,Er=new Map;function jr(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return e.slice(0,t)}function li(e){return ht.get(jr(e))??null}function ui(e){return ht.has(jr(e))}async function bt(e){let t=jr(e),n=ht.get(t);if(n!==void 0)return n;let r=Er.get(t);if(r)return r;let s=(async()=>{try{let o=await i.get("/p/config",{showErrors:!1,errorContext:{operation:"load preview config",silent:!0}});if(!o.success)return null;let l=typeof o.data?.preview_url_template=="string"?o.data.preview_url_template:null;return ht.set(t,l),l}catch{return null}finally{Er.delete(t)}})();return Er.set(t,s),s}function pi(e){let{apiBaseUrl:t}=e;return ui(t)||bt(t).catch(()=>{}),{sandboxId:e.sandboxId,backendPort:e.backendPort,apiBaseUrl:t,previewUrlTemplate:li(t)}}function re(){let e=Ys();return e||($().billingEnabled??!1?"":Zs())}async function $r(e,t){return(await e.json().catch(()=>({})))?.error||e.statusText||t}function Mr(e){if(!e)throw new Error("[opencode-sdk] Server URL not ready \u2014 sandbox is still loading");return e}async function di(e){let t=Mr(e),n=await M(`${t}/env`);if(!n.ok)throw new Error(await $r(n,"Failed to load secrets"));return(await n.json()).secrets??{}}async function gi(e,t,n){let r=Mr(e),s=await M(`${r}/env/${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:n})});if(!s.ok)throw new Error(await $r(s,"Failed to save secret"))}async function mi(e,t){let n=Mr(e),r=await M(`${n}/env/${encodeURIComponent(t)}`,{method:"DELETE"});if(!r.ok)throw new Error(await $r(r,"Failed to delete secret"))}var Nd={list:di,set:gi,delete:mi};async function Kd(e,t,n){let r=e;for(;r.endsWith("/");)r=r.slice(0,-1);let s=await M(`${r}/kortix/triggers${t}`,{...n,headers:{"Content-Type":"application/json",...n?.headers}}),o=await s.json();if(!s.ok)throw new Error(o?.error||o?.message||`Request failed with ${s.status}`);return o}function ce(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return t===e.length?e:e.slice(0,t)}async function xt(e,t){let n=await e.json().catch(()=>({}));return n?.error||n?.message||e.statusText||t}function Ke(e){if(!e)throw new Error("[kortix-pty] Server URL not ready \u2014 sandbox is still loading");return ce(e)}async function fi(e){let t=Ke(e),n=await M(`${t}/kortix/pty`);if(!n.ok)throw new Error(await xt(n,"Failed to list terminals"));return n.json()}async function yi(e,t){let n=Ke(e),r=await M(`${n}/kortix/pty`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t??{})});if(!r.ok)throw new Error(await xt(r,"Failed to create terminal"));return r.json()}async function hi(e,t,n){let r=Ke(e),s=await M(`${r}/kortix/pty/${encodeURIComponent(t)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!s.ok)throw new Error(await xt(s,"Failed to update terminal"));return s.json()}async function bi(e,t){let n=Ke(e),r=await M(`${n}/kortix/pty/${encodeURIComponent(t)}`,{method:"DELETE"});if(!r.ok)throw new Error(await xt(r,"Failed to remove terminal"))}async function xi(e,t,n){let r=Ke(t),o=`${(()=>{try{let f=new URL(r);return f.protocol==="https:"?f.protocol="wss:":f.protocol==="http:"&&(f.protocol="ws:"),typeof window<"u"&&window.location.protocol==="https:"&&f.protocol==="ws:"&&(f.protocol="wss:"),ce(f.toString())}catch{return r.replace("https://","wss://").replace("http://","ws://")}})()}/kortix/pty/${encodeURIComponent(e)}/connect`,l=new URLSearchParams,p=await Be();p&&l.set("token",p),n?.wake&&l.set("wake","1");let d=l.toString();return d?`${o}${o.includes("?")?"&":"?"}${d}`:o}var Hd={list:fi,create:yi,update:hi,remove:bi,webSocketUrl:xi};async function v(e,t,n,r){let s=e;for(;s.endsWith("/");)s=s.slice(0,-1);let o=await M(`${s}${t}`,{...n,headers:{"Content-Type":"application/json",...n?.headers}},r),l=await o.text(),p={};try{p=l?JSON.parse(l):{}}catch{p={}}if(!o.ok)throw new Error(p?.error||p?.message||p?.details||l.slice(0,200)||`Request failed with ${o.status}`);return p}async function cb(e,t={}){let n=new URLSearchParams;t.projectId&&n.set("project_id",t.projectId),t.status&&n.set("status",t.status);let r=n.toString()?`?${n}`:"";return v(e,`/kortix/tasks${r}`)}async function lb(e,t){return v(e,`/kortix/tasks/${encodeURIComponent(t)}`)}async function ub(e,t){return v(e,`/kortix/tasks/${encodeURIComponent(t)}/events`)}async function pb(e,t){return v(e,`/kortix/tasks/${encodeURIComponent(t)}/status`)}async function db(e,t){return v(e,"/kortix/tasks",{method:"POST",body:JSON.stringify(t)})}async function gb(e,t,n){return v(e,`/kortix/tasks/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify(n)})}async function mb(e,t){return v(e,`/kortix/tasks/${encodeURIComponent(t)}/start`,{method:"POST"})}async function fb(e,t){return v(e,`/kortix/tasks/${encodeURIComponent(t)}/approve`,{method:"POST"})}async function yb(e,t){return v(e,`/kortix/tasks/${encodeURIComponent(t)}`,{method:"DELETE"})}async function hb(e,t){let n=t?`?project_id=${encodeURIComponent(t)}`:"";return v(e,`/kortix/tickets${n}`)}async function bb(e,t){return v(e,`/kortix/tickets/${encodeURIComponent(t)}`)}async function xb(e,t){return v(e,`/kortix/tickets/${encodeURIComponent(t)}/events`)}async function _b(e,t){return v(e,"/kortix/tickets",{method:"POST",body:JSON.stringify(t)})}async function Pb(e,t,n){return v(e,`/kortix/tickets/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify(n)})}async function kb(e,t,n){return v(e,`/kortix/tickets/${encodeURIComponent(t)}/status`,{method:"POST",body:JSON.stringify(n)})}async function wb(e,t,n){return v(e,`/kortix/tickets/${encodeURIComponent(t)}/assign`,{method:"POST",body:JSON.stringify(n)})}async function Sb(e,t,n){return v(e,`/kortix/tickets/${encodeURIComponent(t)}/unassign`,{method:"POST",body:JSON.stringify(n)})}async function vb(e,t,n){return v(e,`/kortix/tickets/${encodeURIComponent(t)}/comments`,{method:"POST",body:JSON.stringify(n)})}async function Ab(e,t){return v(e,`/kortix/tickets/${encodeURIComponent(t)}`,{method:"DELETE"})}async function Cb(e,t){return v(e,`/kortix/projects/${encodeURIComponent(t)}/columns`)}async function Rb(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/columns`,{method:"PUT",body:JSON.stringify({columns:n})})}async function Tb(e,t){return v(e,`/kortix/projects/${encodeURIComponent(t)}/fields`)}async function Ib(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/fields`,{method:"PUT",body:JSON.stringify({fields:n})})}async function Eb(e,t){return v(e,`/kortix/projects/${encodeURIComponent(t)}/templates`)}async function jb(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/templates`,{method:"PUT",body:JSON.stringify({templates:n})})}async function $b(e,t){return v(e,`/kortix/projects/${encodeURIComponent(t)}/pm-session`,{method:"POST"})}async function Mb(e,t){return v(e,`/kortix/projects/${encodeURIComponent(t)}/agents`)}async function qb(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/agents`,{method:"POST",body:JSON.stringify(n)})}async function Db(e,t,n,r){return v(e,`/kortix/projects/${encodeURIComponent(t)}/agents/${encodeURIComponent(n)}`,{method:"PATCH",body:JSON.stringify(r)})}async function Ob(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/agents/${encodeURIComponent(n)}`,{method:"DELETE"})}async function Ub(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/agents/${encodeURIComponent(n)}/persona`)}async function Fb(e,t,n=200){return v(e,`/kortix/projects/${encodeURIComponent(t)}/activity?limit=${n}`)}async function Lb(e){return v(e,"/kortix/projects")}async function Gb(e,t){return v(e,`/kortix/projects/${encodeURIComponent(t)}`)}async function Bb(e,t){return v(e,`/kortix/projects/by-session/${encodeURIComponent(t)}`)}async function Nb(e,t){return v(e,`/kortix/projects/${encodeURIComponent(t)}/sessions`)}async function Kb(e,t){return v(e,`/kortix/projects/${encodeURIComponent(t)}`,{method:"DELETE"})}async function Hb(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify(n)})}async function Wb(e,t,n="all"){return v(e,`/kortix/projects/${encodeURIComponent(t)}/milestones?status=${n}`)}async function zb(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/milestones/${encodeURIComponent(n)}`)}async function Vb(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/milestones/${encodeURIComponent(n)}/events`)}async function Jb(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/milestones`,{method:"POST",body:JSON.stringify(n)})}async function Xb(e,t,n,r){return v(e,`/kortix/projects/${encodeURIComponent(t)}/milestones/${encodeURIComponent(n)}`,{method:"PATCH",body:JSON.stringify(r)})}async function Qb(e,t,n,r){return v(e,`/kortix/projects/${encodeURIComponent(t)}/milestones/${encodeURIComponent(n)}/close`,{method:"POST",body:JSON.stringify(r)})}async function Yb(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/milestones/${encodeURIComponent(n)}/reopen`,{method:"POST"})}async function Zb(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/milestones/${encodeURIComponent(n)}`,{method:"DELETE"})}async function ex(e,t){return v(e,`/kortix/projects/${encodeURIComponent(t)}/credentials`)}async function tx(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/credentials/${encodeURIComponent(n)}/events`)}async function nx(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/credentials`,{method:"POST",body:JSON.stringify(n)})}async function rx(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/credentials/${encodeURIComponent(n)}`)}async function sx(e,t,n){return v(e,`/kortix/projects/${encodeURIComponent(t)}/credentials/${encodeURIComponent(n)}`,{method:"DELETE"})}var Wd=1e4,zd={retryOnAuthError:!1};function Te(e,t,n){return v(e,t,{signal:AbortSignal.timeout(Wd),...n},zd)}async function ix(e,t=!1){return(await Te(e,`/kortix/services${t?"?all=true":""}`)).services??[]}async function ox(e){return(await Te(e,"/kortix/services/templates")).templates??[]}async function ax(e,t){return(await Te(e,`/kortix/services/${encodeURIComponent(t)}/logs`)).logs??[]}async function cx(e,t,n){let r=n==="delete",s=r?`/kortix/services/${encodeURIComponent(t)}`:`/kortix/services/${encodeURIComponent(t)}/${n}`;return Te(e,s,{method:r?"DELETE":"POST"})}async function lx(e,t){return Te(e,`/kortix/services/reconcile${t?"?reload=true":""}`,{method:"POST"})}async function ux(e,t){return Te(e,"/kortix/services/register",{method:"POST",body:JSON.stringify(t)})}var _t=new Map,He=class extends Error{constructor(t="[opencode-sdk] Server URL not ready \u2014 sandbox is still loading"){super(t),this.name="RuntimeNotReadyError"}};function be(){let e=re();if(!e)throw new He;return le(e)}function le(e){if(!e)throw new Error("[opencode-sdk] getClientForUrl called without a url");let t=_t.get(e);if(t)return t;if(!rn())throw new Error("[opencode-sdk] No auth token provider configured \u2014 call configureKortix()/createKortix() before talking to a sandbox runtime.");let n=kr({baseUrl:e,fetch:M});return _t.set(e,n),n}function hx(e){_t.delete(e)}function bx(){_t.clear()}var Pt=new Map;function xx(e){if(!e)throw new Error("[opencode-sdk] getPublicClientForUrl called without a url");let t=Pt.get(e);if(t)return t;let n=kr({baseUrl:e,fetch});return Pt.set(e,n),n}function _x(e){Pt.delete(e)}function Px(){Pt.clear()}async function Vd(e){let t=await e.text().catch(()=>"");try{let n=JSON.parse(t);return n?.error||n?.message||t||e.statusText||`HTTP ${e.status}`}catch{return t||e.statusText||`HTTP ${e.status}`}}async function kx(e){let t=re();if(!t)throw new A("[opencode-sdk] Server URL not ready \u2014 sandbox is still loading",{code:"RUNTIME_UNAVAILABLE"});let n=e==="full"?"/kortix/refresh":"/global/dispose",r=await M(`${t}${n}`,{method:"POST"}),s=r.headers.get("content-type")??"",o=/^application\/([\w.+-]+\+)?json\b/i.test(s.trim());if(!r.ok)throw new A(`System reload failed (${r.status}): ${await Vd(r)}`,{status:r.status,response:r,code:"RUNTIME_UNAVAILABLE"});if(!o)throw new A(`System reload endpoint is unavailable on this sandbox (${n})`,{status:r.status,response:r,code:"RUNTIME_UNAVAILABLE"});let l;try{l=await r.json()}catch(d){throw new A(`System reload returned malformed JSON from ${n}: ${d instanceof Error?d.message:String(d)}`,{status:r.status,response:r,code:"RUNTIME_UNAVAILABLE"})}let p=l===!0||typeof l=="object"&&l!==null&&l.ok===!0;return{success:p,mode:e,steps:p?[e==="full"?"refreshed workspace and restarted runtime":"reloaded config in place"]:[],errors:p?[]:[`the sandbox did not confirm the reload (${n})`]}}function Pi(e){if(e.error){let t=e.error,n=t?.data?.message||t?.message||(typeof t?.error=="string"?t.error:null)||"SDK request failed";throw new A(n,{status:t?.response?.status??t?.status,response:t?.response,details:t})}return e.data}async function Ee(e){let t=await e.text().catch(()=>""),n=null;try{n=JSON.parse(t)}catch{}return n?.error||t||e.statusText||`HTTP ${e.status}`}function V(e){let t=(e??re()).trim();if(!t)throw new He;return t}async function wt(e,t){let n=await M(`${V(t)}${e}`);if(!n.ok)throw new A(await Ee(n),{status:n.status,response:n});return n.json()}var Dr=["/workspace","/tmp","/home","/opt"],Jd=Dr.filter(e=>e!=="/workspace");function ki(e){return Dr.some(t=>e===t||e.startsWith(`${t}/`))}function kt(e){return ki(e)?e:`/workspace/${e.replace(/^\/+/,"")}`}function je(e){let t=e||"";if(t==="/workspace"||t==="/workspace/")return"";if(t.startsWith("/workspace/"))t=t.slice(11);else if(Jd.some(n=>t===n||t.startsWith(`${n}/`)))return t;for(;t.startsWith("/");)t=t.slice(1);return t}var wi=je;async function St(e,t){let n=V(t),r=je(e)||".";return(await wt(`/file?path=${encodeURIComponent(r)}`,n)).map(o=>({...o,path:o.absolute||`/workspace/${o.path}`}))}async function ze(e,t){let n=V(t),r=je(e),s=await M(`${n}/file/content?path=${encodeURIComponent(r)}`);if(!s.ok)throw new A(await Ee(s),{status:s.status,response:s});return s.json()}async function Xd(e,t,n){let r=V(n),s=je(e),o=await M(`${r}/file/raw?path=${encodeURIComponent(s)}`);if(!o.ok)throw new A(await Ee(o),{status:o.status,response:o});if((o.headers.get("content-type")||"").includes("text/html"))throw new A("File could not be loaded (raw byte route unavailable)",{status:o.status,response:o,code:"INVALID_CONTENT_TYPE"});let l=await o.blob();return t&&(!l.type||l.type==="application/octet-stream")?new Blob([l],{type:t}):l}async function Ve(e,t){let n=V(t);try{return await Xd(e,void 0,n)}catch{}let r=await ze(e,n);if(r.encoding==="base64"&&r.content){let s=Uint8Array.from(atob(r.content),o=>o.charCodeAt(0));return new Blob([s],{type:r.mimeType||"application/octet-stream"})}return new Blob([r.content??""],{type:r.mimeType||"text/plain;charset=utf-8"})}async function vt(e){return wt("/file/status",V(e))}async function At(e,t,n){let r=V(n),s=new URLSearchParams({query:e});return t?.type&&s.set("type",t.type),t?.limit&&s.set("limit",String(t.limit)),wt(`/find/file?${s.toString()}`,r)}async function Ct(e,t){let n=V(t);return(await wt(`/find?pattern=${encodeURIComponent(e)}`,n)).map(s=>({path:typeof s.path=="string"?s.path:s.path?.text??"",lines:typeof s.lines=="string"?s.lines:s.lines?.text??"",line_number:s.line_number,absolute_offset:s.absolute_offset,submatches:(s.submatches??[]).map(o=>({start:o.start,end:o.end}))}))}var We=[400,1200],Qd=e=>e===408||e===429||e===502||e===503||e===504,_i=e=>new Promise(t=>setTimeout(t,e));function Yd(e){let t=e?.name;return t==="TimeoutError"||t==="AbortError"}var qr=3e4,Zd=15*6e4,eg=256;function Or(e){if(typeof e!="number"||!Number.isFinite(e)||e<=0)return qr;let t=qr+e/eg;return Math.min(Zd,Math.max(qr,Math.round(t)))}async function tg(e){let t=await e.text().catch(()=>""),n=null;try{n=t?JSON.parse(t):null}catch{}let r=n?.error||n?.message||n?.data?.message;return typeof r=="string"&&r.trim()?r.trim():(e.headers.get("content-type")||"").includes("text/html")||/<html[\s>]/i.test(t)?e.status===502||/bad gateway/i.test(t)?"Bad gateway while reaching the sandbox upload service. Please retry.":e.statusText||`HTTP ${e.status}`:t.replace(/\s+/g," ").trim().slice(0,500)||e.statusText||`HTTP ${e.status}`}async function Si(e,t){let n;for(let s=0;s<=We.length;s++){let o;try{o=await t(e())}catch(p){if(n=p,Yd(p)||s===We.length)break;await _i(We[s]);continue}if(o.ok)return o.json();let l=await tg(o);if(n=new A(`Upload failed (${o.status}): ${l}`,{status:o.status,response:o}),!Qd(o.status)||s===We.length)throw n;await _i(We[s])}if(n instanceof A)throw n;let r=n instanceof Error?n.message:String(n||"request failed");throw new A(`Upload failed: ${r}`)}async function Je(e,t,n,r){let s=V(r),o=Or(e.size),l=n||(e instanceof File?e.name:"")||"";return Si(()=>{let p=new FormData,d=(t??"").trim();return d&&p.append("path",d.startsWith("/")?d:`/${d}`),l&&p.append("filename",l),l?p.append("file",e,l):p.append("file",e),p},p=>M(`${s}/file/upload`,{method:"POST",body:p},{timeoutMs:o}))}function ng(e,t,n){let r=V(n),s=Or(t.size);return Si(()=>{let o=new FormData;return o.append(e,t,e.split("/").pop()||"file"),o},o=>M(`${r}/file/upload`,{method:"POST",body:o},{timeoutMs:s}))}async function Rt(e,t){let n=V(t),r=e.trim(),o=(r.startsWith("/")?r:`/${r}`).split("/"),l=o.pop()||"untitled",p=o.join("/")||"/workspace",d=await Xe(`${p}/${l}`,new Blob([],{type:"application/octet-stream"}),n);return[{path:d.path,size:d.bytes}]}async function Tt(e,t,n){let r=V(n);return ng(t,await Ve(e,r),r)}function rg(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return e.slice(0,t)}function sg(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}function ig(e){return e.slice(e.lastIndexOf("/")+1)}function og(){let e=typeof crypto<"u"?crypto:void 0;if(e?.randomUUID)return e.randomUUID();if(e?.getRandomValues){let t=new Uint8Array(8);return e.getRandomValues(t),[...t].map(n=>n.toString(16).padStart(2,"0")).join("")}return`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}async function Xe(e,t,n){let r=V(n),s=kt(rg(e.trim())),o=ig(s);if(!o)throw new A(`writeFile needs a file path, got "${e}"`,{code:"INVALID_PATH"});let l=sg(s);await Qe(l,r).catch(()=>{});let p=og(),d=await Je(t,l,`.${o}.kortix-write-${p}`,r),f=d[0]?.path;if(!f)throw new A(`Upload returned no file for ${s}`,{code:"UPLOAD_NO_RESULT"});let m=kt(f),h=`${s}.kortix-write-backup-${p}`,x=!1;try{await xe(s,h,r),x=!0}catch{}try{await xe(m,s,r)}catch(C){throw x&&await xe(h,s,r).catch(()=>{}),await Ie(m,r).catch(()=>{}),C}x&&await Ie(h,r).catch(()=>{});let P=d[0]?.size;return{path:s,bytes:typeof P=="number"?P:t.size}}async function Ie(e,t){let n=await M(`${V(t)}/file`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})});if(!n.ok)throw new A(`Delete failed (${n.status}): ${await Ee(n)}`,{status:n.status,response:n});return n.json()}async function Qe(e,t){let n=await M(`${V(t)}/file/mkdir`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})});if(!n.ok)throw new A(`Mkdir failed (${n.status}): ${await Ee(n)}`,{status:n.status,response:n});return n.json()}async function xe(e,t,n){let r=await M(`${V(n)}/file/rename`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({from:e,to:t})});if(!r.ok)throw new A(`Rename failed (${r.status}): ${await Ee(r)}`,{status:r.status,response:r});return r.json()}async function vi(){return Pi(await be().project.current())}async function Ur(){return Pi(await be().global.health())}async function Ai(){try{return(await Ur()).healthy===!0}catch{return!1}}var ag={list:St,read:ze,readBlob:Ve,status:vt,findFiles:At,findText:Ct,upload:Je,write:Xe,create:Rt,copy:Tt,remove:Ie,mkdir:Qe,rename:xe,currentProject:vi,health:Ur,isReachable:Ai,toDaemonPath:je,toSandboxAbsolutePath:kt,toWorkspaceRelative:wi};function a(e,t="Project request failed"){if(!e.success||e.data===void 0)throw e.error??new Error(t);return e.data}function Fr(e){return e.replace(/\/v1\/?$/,"")}async function $e(e,t){if(!e.backendUrl||!e.accessToken)return null;let n=Fr(e.backendUrl);try{let r=await fetch(`${n}${t}`,{headers:{Authorization:`Bearer ${e.accessToken}`,"Content-Type":"application/json"},signal:AbortSignal.timeout(e.timeoutMs??8e3)});return r.ok?await r.json():null}catch{return null}}async function Ci(){return a(await i.get("/accounts"))}async function Ri(e){return a(await i.post("/accounts",e))}async function Ti(e){return a(await i.get(`/accounts/${e}`))}async function Ii(e,t){return a(await i.patch(`/accounts/${e}`,{name:t}))}async function Ei(e){return a(await i.get(`/accounts/${e}/branding`))}async function ji(e,t){return a(await i.put(`/accounts/${e}/branding`,t))}async function $i(e,t,n,r){let s=new FormData;return s.append("file",n,r??(n instanceof File?n.name:t)),a(await i.upload(`/accounts/${e}/branding/assets/${t}`,s))}async function Mi(e,t){return a(await i.delete(`/accounts/${e}/branding/assets/${t}`))}async function qi(e){return a(await i.delete(`/accounts/${e}/branding`))}async function Di(e){return a(await i.get(`/accounts/${e}/members`))}async function Oi(e,t){return a(await i.post(`/accounts/${e}/members`,t,{showErrors:!1}))}async function Ui(e){return a(await i.get(`/accounts/${e}/invites`))}async function Fi(e,t){return a(await i.delete(`/accounts/${e}/invites/${t}`))}async function Li(e,t){return a(await i.post(`/accounts/${e}/invites/${t}/resend`,{}))}async function Gi(e){return a(await i.get(`/account-invites/${e}`,{showErrors:!1}))}async function Bi(e){return a(await i.post(`/account-invites/${e}/accept`,{}))}async function Ni(e){return a(await i.post(`/account-invites/${e}/decline`,{}))}async function Ki(e,t){return a(await i.delete(`/accounts/${e}/members/${t}`))}async function Hi(e,t,n){return a(await i.patch(`/accounts/${e}/members/${t}`,{role:n}))}async function Wi(e){return a(await i.post(`/accounts/${e}/leave`,{}))}async function qx(e){return $e(e,"/v1/accounts")}async function zi(){let e=await i.get("/accounts/me",{showErrors:!1});return!e.success||!e.data?{valid:!1,error:e.error}:{valid:!0,identity:e.data}}var Fx=["agent_tunnel","marketplace","connectors_api_discover","agentmail_email","teams","llm_gateway","review_center","meta_agent","apps","monitors","warm_sessions","secrets_egress","pi_worker"];async function Me(){return a(await i.get("/projects"))}async function Ji(e){let t=e?`?account_id=${encodeURIComponent(e)}`:"";return a(await i.get(`/projects${t}`))}async function Lr(e,t){return a(await i.get(`/projects/${e}`,t))}async function Xi(e,t,n="write"){return a(await i.post(`/projects/${e}/git/collaborators`,{github_username:t,permission:n}))}async function Qi(e,t){return a(await i.post(`/projects/${e}/manifest/validate`,{raw:t}),"Failed to validate manifest")}async function Yi(e){return a(await i.post(`/projects/${e}/git-token`,{}),"Failed to mint git token")}function Lx(e){let t=e.metadata?.git;return t?.provider==="github"&&t?.managed===!0}async function Gr(e,t){let n=a(await i.get(`/projects/${e}/detail`,{showErrors:!1,...t}));return{...n,config:{...n.config,default_agent:n.config.default_agent??n.config.open_code_default_agent??null}}}async function Br(e,t){return a(await i.get(`/projects/${e}/llm-catalog`,{showErrors:!1,...t}))}async function Nr(e,t){return a(await i.get(`/projects/${e}/model-picker`,{showErrors:!1,...t}))}async function Gx(e,t){return a(await i.get(`/projects/${e}/llm-catalog/providers`,{showErrors:!1,...t}))}async function Zi(e){return a(await i.post("/projects",e))}async function eo(e){return a(await i.post("/projects/create-repo",e))}async function to(e,t={}){return a(await i.post("/projects/provision",{seed_starter:!0,...e},{timeout:12e4,...t}))}var Vi=200;function lg(e){let t=e.split(`
8
+ `).filter(r=>r.startsWith("data:")).map(r=>r.slice(5).replace(/^ /,""));if(t.length===0)return null;let n=t.join(`
9
+ `);try{return JSON.parse(n)}catch(r){let s=n.length>Vi?`${n.slice(0,Vi)}\u2026`:n;throw new Error(`provisionProjectStream: received an unparseable SSE frame (${s})`,{cause:r})}}async function Bx(e,t,n={}){let r=await i.postStream("/projects/provision-stream",{seed_starter:!0,...e},n);if(!r.ok){let d=await r.json().catch(()=>null);throw new A(d?.error||`Provision failed: HTTP ${r.status}`,{status:r.status,code:d?.code})}let s=r.body?.getReader();if(!s)throw new Error("Provision stream is unavailable on this runtime (no response body)");let o=new TextDecoder,l="",p=null;try{for(;;){let{done:d,value:f}=await s.read();if(d)break;l+=o.decode(f,{stream:!0});let m=l.indexOf(`
10
10
 
11
- `);for(;m!==-1;){let h=u.slice(0,m);u=u.slice(m+2),m=u.indexOf(`
11
+ `);for(;m!==-1;){let h=l.slice(0,m);l=l.slice(m+2),m=l.indexOf(`
12
12
 
13
- `);let x=sg(h);if(x){if(e(x),x.type==="error")throw new C(x.error,{status:x.status,code:x.code});x.type==="done"&&(p=x.project)}}}}finally{s.cancel().catch(()=>{})}if(!p)throw new Error("Provision stream ended without a result");return p}async function vx(){try{return a(await i.get("/projects/managed-git/status",{showErrors:!1}))}catch{return{configured:!1,provider:"github"}}}async function Lr(t,e){return a(await i.patch(`/projects/${t}`,e))}async function Zi(t,e,n){return a(await i.patch(`/projects/${t}/features`,{feature:e,enabled:n}))}async function eo(t,e,n){return a(await i.patch(`/projects/${t}/experimental`,{feature:e,enabled:n}))}async function to(t,e){return a(await i.patch(`/projects/${t}/sandbox-provider`,{provider:e}))}async function Cx(t,e){return a(await i.get(`/projects/${t}/sandbox-provider/transition`,{showErrors:!1,...e}))}async function Ax(t,e){return a(await i.patch(`/projects/${t}/warm-pool`,e))}async function no(t,e){return a(await i.patch(`/projects/${t}/onboarding`,{completed:e}))}async function Rx(t,e){return a(await i.patch(`/projects/${t}/onboarding`,{profile:e}))}async function Gr(t){return a(await i.delete(`/projects/${t}`))}async function Tx(t,e){return $e(t,`/v1/projects?account_id=${encodeURIComponent(e)}`)}async function Ix(t,e){if(!t.backendUrl||!t.accessToken)return{ok:!1,limitReached:!1};let n=qr(t.backendUrl);try{let r=await fetch(`${n}/v1/projects/provision`,{method:"POST",headers:{Authorization:`Bearer ${t.accessToken}`,"Content-Type":"application/json"},body:JSON.stringify({seed_starter:!0,...e}),signal:AbortSignal.timeout(t.timeoutMs??9e4)});if(r.ok){let s=await r.json().catch(()=>null);return s?.project_id?{ok:!0,project:s}:{ok:!1,limitReached:!1}}return r.status===403?{ok:!1,limitReached:(await r.json().catch(()=>null))?.code==="project_limit_reached"}:{ok:!1,limitReached:!1}}catch{return{ok:!1,limitReached:!1}}}async function ro(t){return a(await i.post("/projects/link-repository",t,{showErrors:!1}))}async function so(t){return a(await i.get(`/projects/github/installation?account_id=${encodeURIComponent(t)}`,{showErrors:!1}))}async function io(t){return a(await i.get(`/projects/github/installations?account_id=${encodeURIComponent(t)}`,{showErrors:!1}))}async function oo(t){return a(await i.post("/projects/github/installations/linkable",t,{showErrors:!1}))}async function ao(t,e,n){let r=new URLSearchParams({account_id:t});e&&r.set("installation_id",e);let s=n?.search?.trim();return s&&r.set("search",s),n?.limit!==void 0&&r.set("limit",String(n.limit)),a(await i.get(`/projects/github/repositories?${r.toString()}`,{showErrors:!1}))}async function co(t,e,n){let r=new URLSearchParams({account_id:t,installation_id:e,repo_full_name:n});return a(await i.get(`/projects/github/repository-branches?${r.toString()}`,{showErrors:!1}))}async function lo(t){return a(await i.post("/projects/github/installation",t,{showErrors:!1}))}async function uo(t){return a(await i.post("/projects/github/installations/link",t,{showErrors:!1}))}async function po(t,e){let n=new URLSearchParams({account_id:t});return e&&n.set("installation_id",e),a(await i.delete(`/projects/github/installation?${n.toString()}`))}async function Ox(t,e){return a(await i.post(`/projects/${t}/access-requests`,{message:e?.trim()||void 0},{showErrors:!1}))}async function go(t,e){return a(await i.get(`/projects/${t}/access-requests`,e))}async function mo(t,e,n="member"){return a(await i.post(`/projects/${t}/access-requests/${e}/approve`,{role:n}))}async function fo(t,e){return a(await i.post(`/projects/${t}/access-requests/${e}/reject`,{}))}async function yo(t){return a(await i.get(`/projects/${t}/access`))}async function ho(t,e,n){return a(await i.put(`/projects/${t}/access/${e}`,{role:n}))}async function bo(t,e){return a(await i.delete(`/projects/${t}/access/${e}`))}function Ux(t){return"status"in t&&t.status==="invited"}async function xo(t,e,n,r){return a(await i.post(`/projects/${t}/access/invite`,{email:e,role:n,...r!==void 0?{expires_at:r}:{}}))}async function _o(t){return a(await i.get(`/projects/${t}/access/pending-invites`))}async function Po(t,e){return a(await i.delete(`/projects/${t}/access/pending-invites/${e}`))}async function ko(t,e){return a(await i.post(`/projects/${t}/access/pending-invites/${e}/resend`))}async function wo(t){return a(await i.get(`/projects/${t}/group-grants`))}async function So(t,e,n,r){return a(await i.post(`/projects/${t}/group-grants`,r===void 0?{group_id:e,role:n}:{group_id:e,role:n,expires_at:r}))}async function vo(t,e,n,r){return a(await i.patch(`/projects/${t}/group-grants/${e}`,r===void 0?{role:n}:{role:n,expires_at:r}))}async function Co(t,e){return a(await i.delete(`/projects/${t}/group-grants/${e}`))}async function Ao(t){return a(await i.get(`/projects/${t}/resource-grants`))}async function Ro(t,e){return a(await i.post(`/projects/${t}/resource-grants`,{resource_type:e.resourceType,resource_id:e.resourceId,principal_type:e.principalType,principal_id:e.principalId,...e.expiresAt!==void 0?{expires_at:e.expiresAt}:{}}))}async function To(t,e){return a(await i.delete(`/projects/${t}/resource-grants/${e}`))}async function Io(t,e){return a(await i.get(`/projects/${t}/approvals`,{showErrors:e?.showErrors}))}async function Eo(t,e){return a(await i.get(`/projects/${t}/approvals/needs-input`,{showErrors:e?.showErrors}))}async function jo(t,e,n){return a(await i.post(`/projects/${t}/approvals/${e}`,{decision:n}))}async function $o(t){return a(await i.get(`/projects/${t}/secrets`,{showErrors:!1}))}async function Mo(t,e){return a(await i.post(`/projects/${t}/secrets`,e))}async function qo(t,e,n,r={}){return a(await i.put(`/projects/${t}/secrets/${encodeURIComponent(e)}/strategy`,{strategy:n,...r}))}async function Do(t,e,n){return a(await i.post(`/projects/${t}/secrets/${encodeURIComponent(e)}/broker`,n))}async function Oo(t,e,n){return a(await i.post(`/projects/${t}/oauth/${e}/start`,{sharing:n?.sharing}))}async function Uo(t,e,n){return a(await i.post(`/projects/${t}/oauth/${e}/poll`,{flow_id:n}))}async function Fo(t,e){return a(await i.delete(`/projects/${t}/oauth/${encodeURIComponent(e)}`))}async function Lo(t,e){return a(await i.put(`/projects/${t}/git-credential`,e))}async function Go(t,e){return a(await i.delete(`/projects/${t}/secrets/${encodeURIComponent(e)}`))}async function Bo(t,e,n){return a(await i.put(`/projects/${t}/secrets/${encodeURIComponent(e)}/personal`,n))}async function No(t,e){return a(await i.delete(`/projects/${t}/secrets/${encodeURIComponent(e)}/personal`))}function Br(t,e){return t?`/connectors/projects/${encodeURIComponent(t)}/${e}`:`/connectors/${e}`}async function Nr(t){return a(await i.get(Br(t,"catalog"))).connectors??[]}async function Tt(t){let e=[];for(let n of await Nr(t))for(let r of n.actions)e.push({tool:`${n.slug}.${r.path}`,connector:n.slug,action:r.path,risk:r.risk,description:r.description||r.name,inputSchema:r.inputSchema});return e}async function Ko(t,e="",n={}){let r=e.trim().toLowerCase(),s=r.split(/\s+/).filter(Boolean),o=[],u=[];for(let p of await Tt(t)){let d=`${p.tool} ${p.description}`.toLowerCase();!r||d.includes(r)?o.push(p):s.every(f=>d.includes(f))&&u.push(p)}return[...o,...u].slice(0,n.limit??20)}async function Ho(t,e){return(await Tt(t)).find(n=>n.tool===e)??null}function ig(t){let e=t.indexOf("."),n=e<0?"":t.slice(0,e).trim(),r=e<0?"":t.slice(e+1).trim();if(!n||!r)throw new Error("tool must use the connector.action format");return{connector:n,action:r}}async function Wo(t,e,n={}){let{connector:r,action:s}=ig(e);return a(await i.post(Br(t,"call"),{connector:r,action:s,args:n}))}function og(t,e){if(t&&typeof t=="object"){let n=t;for(let r of["reason","error","message","detail"])if(typeof n[r]=="string"&&n[r])return n[r]}return`HTTP ${e}`}function ag(t){let e=t.length;for(;e>0&&t.charCodeAt(e-1)===47;)e-=1;return e===t.length?t:t.slice(0,e)}async function zo(t,e,n){let r=n.filename.trim(),s=n.contentType.trim();if(!r)throw new Error("filename is required");if(!s)throw new Error("contentType is required");let o={"Content-Type":s,"X-Kortix-Attachment-Filename":encodeURIComponent(r),"X-Kortix-Attachment-Disposition":n.contentDisposition??"attachment"};n.contentId?.trim()&&(o["X-Kortix-Attachment-Content-Id"]=encodeURIComponent(n.contentId.trim()));let u=ag($().backendUrl),p=Br(t,"attachments"),d=await M(`${u}${p}`,{method:"POST",headers:o,body:e},{timeoutMs:6e4}),f=await d.text(),m=null;if(f)try{m=JSON.parse(f)}catch{m=f}if(!d.ok)throw new C(og(m,d.status),{status:d.status,code:String(m&&typeof m=="object"?m.code??d.status:d.status),details:m,response:d,endpoint:p});return m}async function Vo(t){return a(await i.get(`/projects/${t}/connections`))}async function Jo(t){return a(await i.get(`/projects/${t}/connections/all`))}async function Xo(t,e){return a(await i.post(`/projects/${t}/connections`,e))}async function Qo(t,e){return a(await i.post(`/projects/${t}/connections/me`,e))}async function Yo(t,e,n){return a(await i.put(`/projects/${t}/connections/${e}/credential`,n))}function se(t,e,n){return`/projects/${t}/connections/${e}/oauth2/${n}`}async function Vx(t,e){return a(await i.post(`/projects/${t}/connectors/${encodeURIComponent(e)}/oauth2/connection`,{}))}async function Jx(t,e,n){return a(await i.put(se(t,e,"application"),n))}async function Xx(t,e){return a(await i.get(se(t,e,"application")))}async function Qx(t,e,n){return a(await i.post(se(t,e,"discover"),n))}async function Yx(t,e,n={}){return a(await i.post(se(t,e,"discover-resource"),n))}async function Zx(t,e,n){return a(await i.post(se(t,e,"register"),n))}async function e_(t,e,n){return a(await i.post(se(t,e,"authorize"),n))}async function t_(t,e,n){return a(await i.post(se(t,e,"device"),n))}async function n_(t,e,n){return a(await i.post(se(t,e,`device/${encodeURIComponent(n)}`),{}))}async function r_(t,e){return a(await i.get(se(t,e,"status")))}async function Zo(t,e){return a(await i.put(`/projects/${t}/connections/${e}/revoke`,{}))}async function ea(t,e){return a(await i.put(`/projects/${t}/connections/${e}/activate`,{}))}async function ta(t,e){return a(await i.put(`/projects/${t}/connections/${e}/default`,{}))}async function na(t,e,n={}){return a(await i.post(`/projects/${t}/connections/${e}/connect`,n))}async function ra(t,e){return a(await i.post(`/projects/${t}/connections/${e}/connect/finalize`,{}))}async function sa(t){return a(await i.get(`/connectors/projects/${t}/connectors`,{showErrors:!1}))}async function ia(t){return a(await i.post(`/connectors/projects/${t}/connectors/sync`,{}))}async function oa(t,e,n){return a(await i.put(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}/credential-mode`,{mode:n}))}async function aa(t,e,n){return a(await i.put(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}/authorization-strategy`,{authorization_strategy:n}))}async function ca(t,e,n){return a(await i.put(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}/sensitive`,{sensitive:n}))}async function la(t,e){return a(await i.get(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}/policies`))}async function ua(t,e,n){return a(await i.put(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}/policies`,{policies:n}))}async function s_(t,e){throw new Error("Connection-specific policies were removed. Use getConnectorPolicies(projectId, slug).")}async function i_(t,e,n){throw new Error("Connection-specific policies were removed. Use setConnectorPolicies(projectId, slug, policies).")}async function pa(t,e){return a(await i.get(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}/config`))}async function da(t,e,n){return a(await i.put(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}/name`,{name:n}))}async function cg(t,e){return a(await i.post(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}/connect`,{}))}var ga=cg;async function o_(t,e){return a(await i.get(`/connectors/projects/${t}/sessions/${encodeURIComponent(e)}/connect-requests`)).connectors??[]}async function ma(t,e){return a(await i.post(`/connectors/projects/${t}/connectors`,e))}async function fa(t,e){return a(await i.post(`/connectors/projects/${t}/connectors/auth-discovery`,e))}async function ya(t,e){return a(await i.delete(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}`))}async function ha(t,e,n){let r=typeof e=="string"||e===void 0?{...e?{q:e}:{},...n?{cursor:n}:{}}:e,s=new URLSearchParams;r.q&&s.set("q",r.q),r.category&&s.set("category",r.category),r.cursor&&s.set("cursor",r.cursor),r.limit&&s.set("limit",String(r.limit));let o=s.toString();return a(await i.get(`/connectors/projects/${t}/pipedream/apps${o?`?${o}`:""}`))}async function ba(t,e){let n=new URLSearchParams;e?.perCategory&&n.set("perCategory",String(e.perCategory)),e?.maxCategories&&n.set("maxCategories",String(e.maxCategories));let r=n.toString();return a(await i.get(`/connectors/projects/${t}/pipedream/sections${r?`?${r}`:""}`))}async function a_(t,e={}){let n=new URLSearchParams;e.q&&n.set("q",e.q),e.category&&n.set("category",e.category),e.cursor&&n.set("cursor",e.cursor),e.limit&&n.set("limit",String(e.limit));let r=n.toString(),s=a(await i.get(`/connectors/projects/${t}/connect/toolkits${r?`?${r}`:""}`));if("toolkits"in s)return s;let o=s.cursor?.trim()||void 0;return{provider:"composio",toolkits:s.items,nextCursor:o,hasMore:!!o}}async function Kr(t,e,n){let r=new URLSearchParams;e&&r.set("q",e),n&&r.set("cursor",n);let s=r.toString();return a(await i.get(`/connectors/projects/${t}/discover/connectors${s?`?${s}`:""}`))}async function Hr(t,e){let n=new URLSearchParams({id:e});return a(await i.get(`/connectors/projects/${t}/discover/connectors/detail?${n.toString()}`))}var c_=Kr,l_=Hr;async function xa(){return a(await i.get("/connectors/connect-status"))}async function _a(t,e,n){let r=typeof n=="string"?{value:n}:n;return a(await i.put(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}/credential`,r))}async function u_(t,e,n){return a(await i.put(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}/secret-binding`,{secret_identifier:n}))}async function lg(t,e){return a(await i.post(`/connectors/projects/${t}/connectors/${encodeURIComponent(e)}/connect/finalize`,{}))}var Pa=lg;async function ka(t){return a(await i.get(`/connectors/projects/${t}/policies`))}async function wa(t,e,n){return a(await i.put(`/connectors/projects/${t}/policies`,{policies:e,defaultMode:n}))}async function Sa(t){return a(await i.get(`/projects/${t}/sandboxes`))}async function va(t){return a(await i.get(`/projects/${t}/snapshots`))}async function Wr(t){return a(await i.get(`/projects/${t}/sandbox-health`,{showErrors:!1,timeout:15e3}))}async function Ca(t,e){return a(await i.post(`/projects/${t}/snapshots/rebuild`,e?{slug:e}:{}))}async function Aa(t){return a(await i.post(`/projects/${t}/snapshots/fix-with-agent`,{}))}async function Ra(t,e){return a(await i.post(`/projects/${t}/sandbox-templates`,e))}async function Ta(t,e,n){return a(await i.patch(`/projects/${t}/sandbox-templates/${e}`,n))}async function Ia(t,e){return a(await i.delete(`/projects/${t}/sandbox-templates/${e}`))}async function Ea(t,e){return a(await i.post(`/projects/${t}/sandbox-templates/${e}/build`,{}))}async function ja(t){return a(await i.get(`/projects/${t}/sandboxes`))}async function $a(t,e){let n=new URLSearchParams;e?.ref&&n.set("ref",e.ref),e?.path&&n.set("path",e.path);let r=n.toString()?`?${n.toString()}`:"";return a(await i.get(`/projects/${t}/files${r}`,{showErrors:!1}))}async function Ma(t,e,n){let r=new URLSearchParams({q:e});return n?.content&&r.set("content","1"),n?.ref&&r.set("ref",n.ref),n?.limit&&r.set("limit",String(n.limit)),a(await i.get(`/projects/${t}/files/search?${r.toString()}`))}async function qa(t,e,n){let r=new URLSearchParams({path:e});return n&&r.set("ref",n),a(await i.get(`/projects/${t}/files/content?${r.toString()}`,{showErrors:!1}))}async function Da(t,e,n){let r=new URLSearchParams;e&&r.set("ref",e),n&&r.set("path",n);let s=r.toString()?`?${r.toString()}`:"",o=await oe(),u=`${$().backendUrl||""}/projects/${t}/files/archive${s}`,p=await fetch(u,{method:"GET",headers:o?{Authorization:`Bearer ${o}`}:{}});if(!p.ok){let d=await p.text().catch(()=>"");throw new Error(d||`Failed to download (HTTP ${p.status})`)}return await p.blob()}async function Oa(t){return a(await i.get(`/projects/${t}/branches`))}async function Ua(t,e){let n=new URLSearchParams;e?.ref&&n.set("ref",e.ref),e?.path&&n.set("path",e.path),e?.limit!=null&&n.set("limit",String(e.limit)),e?.skip!=null&&n.set("skip",String(e.skip));let r=n.toString()?`?${n.toString()}`:"";return a(await i.get(`/projects/${t}/commits${r}`))}async function Fa(t,e){return a(await i.get(`/projects/${t}/commits/${encodeURIComponent(e)}`))}async function La(t,e,n){let r=new URLSearchParams;n?.path&&r.set("path",n.path);let s=r.toString()?`?${r.toString()}`:"";return a(await i.get(`/projects/${t}/commits/${encodeURIComponent(e)}/diff${s}`))}async function Ga(t,e,n){let r=new URLSearchParams({path:e});return n?.ref&&r.set("ref",n.ref),n?.limit!=null&&r.set("limit",String(n.limit)),n?.skip!=null&&r.set("skip",String(n.skip)),a(await i.get(`/projects/${t}/files/history?${r.toString()}`))}async function Ba(t,e){let n=new URLSearchParams({from:e.from,into:e.into});return a(await i.get(`/projects/${t}/version-diff?${n.toString()}`))}async function Na(t,e){let n=e?`?status=${e}`:"";return a(await i.get(`/projects/${t}/change-requests${n}`,{showErrors:!1,timeout:15e3}))}async function Ka(t,e){return a(await i.get(`/projects/${t}/change-requests/${e}`))}async function Ha(t,e){return a(await i.get(`/projects/${t}/change-requests/${e}/diff`))}async function Wa(t,e){return a(await i.get(`/projects/${t}/change-requests/${e}/merge-preview`))}async function za(t,e){return a(await i.post(`/projects/${t}/change-requests`,e))}async function Va(t,e,n){return a(await i.post(`/projects/${t}/change-requests/${e}/merge`,n??{},{showErrors:!1}))}async function Ja(t,e){return a(await i.post(`/projects/${t}/change-requests/${e}/close`,{}))}async function Xa(t,e){return a(await i.post(`/projects/${t}/change-requests/${e}/reopen`,{}))}async function Qa(t,e,n){return a(await i.post(`/projects/${t}/change-requests/${e}/request-changes`,{feedback:n}))}async function Ya(t,e,n){return a(await i.post(`/projects/${t}/sessions/${e}/commit-push`,n??{}))}var zr=new Set;function It(t){t&&zr.add(t)}function Za(t){return!!t&&zr.has(t)}function T_(t){t&&zr.delete(t)}async function Xe(t,e){let n=new URLSearchParams;e?.scope&&e.scope!=="visible"&&n.set("scope",e.scope);let r=n.size>0?`?${n}`:"";return a(await i.get(`/projects/${t}/sessions${r}`))}async function ec(t,e,n){return a(await i.put(`/projects/${t}/sessions/${e}/sharing`,n))}async function tc(t,e){return a(await i.get(`/projects/${t}/sessions/${e}/previews`))}async function nc(t,e){return a(await i.get(`/projects/${t}/sessions/${e}/public-shares`,{showErrors:!1}))}async function rc(t,e,n){return a(await i.post(`/projects/${t}/sessions/${e}/public-shares`,n))}async function sc(t,e,n){return a(await i.delete(`/projects/${t}/sessions/${e}/public-shares/${n}`))}async function Qe(t,e){let n=a(await i.post(`/projects/${t}/sessions`,e??{}));return e?.initial_prompt||It(n?.session_id),n}async function ic(t,e){let n=e?.excludeSessionId?{exclude_session_id:e.excludeSessionId}:{},r=a(await i.post(`/projects/${t}/sessions/warm`,n,{showErrors:!1}));return r.reused||It(r.session.session_id),r}async function oc(t,e){let n=a(await i.post(`/projects/${t}/sessions/warm/claim`,e,{showErrors:!1}));return It(n.session_id),n}async function Vr(t,e,n){return a(await i.get(`/projects/${t}/sessions/${e}`,{showErrors:n?.showErrors}))}async function ac(t,e,n,r){let s=new URLSearchParams;n&&s.set("limit",String(n)),r?.cursor&&s.set("cursor",r.cursor),r?.includeEvents!=null&&s.set("include_events",String(r.includeEvents));let o=s.toString();return a(await i.get(`/projects/${t}/sessions/${e}/audit${o?`?${o}`:""}`,{showErrors:r?.showErrors}))}async function cc(t,e,n){let r=new URLSearchParams;n?.limit!=null&&r.set("limit",String(n.limit)),n?.chars!=null&&r.set("chars",String(n.chars));let s=r.toString();return a(await i.get(`/projects/${t}/sessions/${e}/transcript${s?`?${s}`:""}`))}async function lc(t,e,n){let r=new URLSearchParams({shape:"sync"});return n?.limit!=null&&r.set("limit",String(n.limit)),a(await i.get(`/projects/${t}/sessions/${e}/transcript?${r.toString()}`,{showErrors:!1}))}async function uc(t,e){return a(await i.get(`/projects/${t}/sessions/${e}/turn`))}async function M_(t,e,n){let r=new URLSearchParams;n?.transcript!=null&&r.set("transcript",String(n.transcript));let s=r.toString();return a(await i.get(`/projects/${t}/sessions/${e}/snapshot${s?`?${s}`:""}`,{signal:n?.signal,showErrors:!1}))}async function pc(t,e,n){return a(await i.post(`/projects/${t}/sessions/${e}/prompts`,{client_message_id:n.clientMessageId,message_id:n.messageId,parts:n.parts,...n.overrides?{overrides:n.overrides}:{},...n.remintOnDelivery?{remint_on_delivery:!0}:{},...typeof n.clientSentAtMs=="number"?{client_sent_at_ms:Math.trunc(n.clientSentAtMs)}:{}}))}async function dc(t,e){return a(await i.get(`/projects/${t}/sessions/${e}/prompts`))}async function gc(t,e,n){return a(await i.delete(`/projects/${t}/sessions/${e}/prompts/${n}`)).removed}async function mc(t,e,n){return a(await i.post(`/projects/${t}/sessions/${e}/prompts/${n}/retry`,{}))}async function fc(t,e,n){return a(await i.post(`/projects/${t}/sessions/${e}/prompts/hold`,{held:n}))}async function yc(t,e,n){return a(await i.patch(`/projects/${t}/sessions/${e}`,n))}async function hc(t,e){return a(await i.delete(`/projects/${t}/sessions/${e}`))}async function Et(t,e){return a(await i.post(`/projects/${t}/sessions/${e}/restart`,{}))}async function jt(t,e){return a(await i.post(`/projects/${t}/sessions/${e}/stop`,{}))}async function bc(t,e){return a(await i.get(`/projects/${t}/sessions/${encodeURIComponent(e)}/config`,{showErrors:!1}))}function ug(t){let e=t.split(`
14
- `).filter(n=>n.startsWith("data:")).map(n=>n.slice(5).replace(/^ /,""));if(e.length===0)return null;try{return JSON.parse(e.join(`
15
- `))}catch(n){throw new Error("reloadProjectSessionConfigStream received an invalid SSE frame",{cause:n})}}async function xc(t,e,n={}){return a(await i.post(`/projects/${t}/sessions/${encodeURIComponent(e)}/reload`,n,{showErrors:!1}))}async function _c(t,e,n,r,s={}){let o=await i.postStream(`/projects/${t}/sessions/${encodeURIComponent(e)}/reload-stream`,n,s);if(!o.ok){let m=await o.json().catch(()=>null);throw new C(m?.error||`Reload failed: HTTP ${o.status}`,{status:o.status,code:m?.code,data:m})}let u=o.body?.getReader();if(!u)throw new Error("Reload stream is unavailable on this runtime (no response body)");let p=new TextDecoder,d="",f=null;try{for(;;){let{done:m,value:h}=await u.read();if(m)break;d+=p.decode(h,{stream:!0});let x=d.indexOf(`
13
+ `);let x=lg(h);if(x){if(t(x),x.type==="error")throw new A(x.error,{status:x.status,code:x.code});x.type==="done"&&(p=x.project)}}}}finally{s.cancel().catch(()=>{})}if(!p)throw new Error("Provision stream ended without a result");return p}async function Nx(){try{return a(await i.get("/projects/managed-git/status",{showErrors:!1}))}catch{return{configured:!1,provider:"github"}}}async function Kr(e,t){return a(await i.patch(`/projects/${e}`,t))}async function no(e,t,n){return a(await i.patch(`/projects/${e}/features`,{feature:t,enabled:n}))}async function ro(e,t,n){return a(await i.patch(`/projects/${e}/experimental`,{feature:t,enabled:n}))}async function so(e,t){return a(await i.patch(`/projects/${e}/sandbox-provider`,{provider:t}))}async function Kx(e,t){return a(await i.get(`/projects/${e}/sandbox-provider/transition`,{showErrors:!1,...t}))}async function Hx(e,t){return a(await i.patch(`/projects/${e}/warm-pool`,t))}async function io(e,t){return a(await i.patch(`/projects/${e}/onboarding`,{completed:t}))}async function Wx(e,t){return a(await i.patch(`/projects/${e}/onboarding`,{profile:t}))}async function Hr(e){return a(await i.delete(`/projects/${e}`))}async function zx(e,t){return $e(e,`/v1/projects?account_id=${encodeURIComponent(t)}`)}async function Vx(e,t){if(!e.backendUrl||!e.accessToken)return{ok:!1,limitReached:!1};let n=Fr(e.backendUrl);try{let r=await fetch(`${n}/v1/projects/provision`,{method:"POST",headers:{Authorization:`Bearer ${e.accessToken}`,"Content-Type":"application/json"},body:JSON.stringify({seed_starter:!0,...t}),signal:AbortSignal.timeout(e.timeoutMs??9e4)});if(r.ok){let s=await r.json().catch(()=>null);return s?.project_id?{ok:!0,project:s}:{ok:!1,limitReached:!1}}return r.status===403?{ok:!1,limitReached:(await r.json().catch(()=>null))?.code==="project_limit_reached"}:{ok:!1,limitReached:!1}}catch{return{ok:!1,limitReached:!1}}}async function oo(e){return a(await i.post("/projects/link-repository",e,{showErrors:!1}))}async function ao(e){return a(await i.get(`/projects/github/installation?account_id=${encodeURIComponent(e)}`,{showErrors:!1}))}async function co(e){return a(await i.get(`/projects/github/installations?account_id=${encodeURIComponent(e)}`,{showErrors:!1}))}async function lo(e){return a(await i.post("/projects/github/installations/linkable",e,{showErrors:!1}))}async function uo(e,t,n){let r=new URLSearchParams({account_id:e});t&&r.set("installation_id",t);let s=n?.search?.trim();return s&&r.set("search",s),n?.limit!==void 0&&r.set("limit",String(n.limit)),a(await i.get(`/projects/github/repositories?${r.toString()}`,{showErrors:!1}))}async function po(e,t,n){let r=new URLSearchParams({account_id:e,installation_id:t,repo_full_name:n});return a(await i.get(`/projects/github/repository-branches?${r.toString()}`,{showErrors:!1}))}async function go(e){return a(await i.post("/projects/github/installation",e,{showErrors:!1}))}async function mo(e){return a(await i.post("/projects/github/installations/link",e,{showErrors:!1}))}async function fo(e,t){let n=new URLSearchParams({account_id:e});return t&&n.set("installation_id",t),a(await i.delete(`/projects/github/installation?${n.toString()}`))}async function t_(e,t){return a(await i.post(`/projects/${e}/access-requests`,{message:t?.trim()||void 0},{showErrors:!1}))}async function yo(e,t){return a(await i.get(`/projects/${e}/access-requests`,t))}async function ho(e,t,n="member"){return a(await i.post(`/projects/${e}/access-requests/${t}/approve`,{role:n}))}async function bo(e,t){return a(await i.post(`/projects/${e}/access-requests/${t}/reject`,{}))}async function xo(e){return a(await i.get(`/projects/${e}/access`))}async function _o(e,t,n){return a(await i.put(`/projects/${e}/access/${t}`,{role:n}))}async function Po(e,t){return a(await i.delete(`/projects/${e}/access/${t}`))}function n_(e){return"status"in e&&e.status==="invited"}async function ko(e,t,n,r){return a(await i.post(`/projects/${e}/access/invite`,{email:t,role:n,...r!==void 0?{expires_at:r}:{}}))}async function wo(e){return a(await i.get(`/projects/${e}/access/pending-invites`))}async function So(e,t){return a(await i.delete(`/projects/${e}/access/pending-invites/${t}`))}async function vo(e,t){return a(await i.post(`/projects/${e}/access/pending-invites/${t}/resend`))}async function Ao(e){return a(await i.get(`/projects/${e}/group-grants`))}async function Co(e,t,n,r){return a(await i.post(`/projects/${e}/group-grants`,r===void 0?{group_id:t,role:n}:{group_id:t,role:n,expires_at:r}))}async function Ro(e,t,n,r){return a(await i.patch(`/projects/${e}/group-grants/${t}`,r===void 0?{role:n}:{role:n,expires_at:r}))}async function To(e,t){return a(await i.delete(`/projects/${e}/group-grants/${t}`))}async function Io(e){return a(await i.get(`/projects/${e}/resource-grants`))}async function Eo(e,t){return a(await i.post(`/projects/${e}/resource-grants`,{resource_type:t.resourceType,resource_id:t.resourceId,principal_type:t.principalType,principal_id:t.principalId,...t.expiresAt!==void 0?{expires_at:t.expiresAt}:{}}))}async function jo(e,t){return a(await i.delete(`/projects/${e}/resource-grants/${t}`))}async function $o(e,t){return a(await i.get(`/projects/${e}/approvals`,{showErrors:t?.showErrors}))}async function Mo(e,t){return a(await i.get(`/projects/${e}/approvals/needs-input`,{showErrors:t?.showErrors}))}async function qo(e,t,n){return a(await i.post(`/projects/${e}/approvals/${t}`,{decision:n}))}async function Do(e){return a(await i.get(`/projects/${e}/secrets`,{showErrors:!1}))}async function Oo(e,t){return a(await i.post(`/projects/${e}/secrets`,t))}async function Uo(e,t,n,r={}){return a(await i.put(`/projects/${e}/secrets/${encodeURIComponent(t)}/strategy`,{strategy:n,...r}))}async function Fo(e,t,n){return a(await i.post(`/projects/${e}/secrets/${encodeURIComponent(t)}/broker`,n))}async function Lo(e,t,n){return a(await i.post(`/projects/${e}/oauth/${t}/start`,{sharing:n?.sharing}))}async function Go(e,t,n){return a(await i.post(`/projects/${e}/oauth/${t}/poll`,{flow_id:n}))}async function Bo(e,t){return a(await i.delete(`/projects/${e}/oauth/${encodeURIComponent(t)}`))}async function No(e,t){return a(await i.put(`/projects/${e}/git-credential`,t))}async function Ko(e,t){return a(await i.delete(`/projects/${e}/secrets/${encodeURIComponent(t)}`))}async function Ho(e,t,n){return a(await i.put(`/projects/${e}/secrets/${encodeURIComponent(t)}/personal`,n))}async function Wo(e,t){return a(await i.delete(`/projects/${e}/secrets/${encodeURIComponent(t)}/personal`))}function Wr(e,t){return e?`/connectors/projects/${encodeURIComponent(e)}/${t}`:`/connectors/${t}`}async function zr(e){return a(await i.get(Wr(e,"catalog"))).connectors??[]}async function It(e){let t=[];for(let n of await zr(e))for(let r of n.actions)t.push({tool:`${n.slug}.${r.path}`,connector:n.slug,action:r.path,risk:r.risk,description:r.description||r.name,inputSchema:r.inputSchema});return t}async function zo(e,t="",n={}){let r=t.trim().toLowerCase(),s=r.split(/\s+/).filter(Boolean),o=[],l=[];for(let p of await It(e)){let d=`${p.tool} ${p.description}`.toLowerCase();!r||d.includes(r)?o.push(p):s.every(f=>d.includes(f))&&l.push(p)}return[...o,...l].slice(0,n.limit??20)}async function Vo(e,t){return(await It(e)).find(n=>n.tool===t)??null}function ug(e){let t=e.indexOf("."),n=t<0?"":e.slice(0,t).trim(),r=t<0?"":e.slice(t+1).trim();if(!n||!r)throw new Error("tool must use the connector.action format");return{connector:n,action:r}}async function Jo(e,t,n={}){let{connector:r,action:s}=ug(t);return a(await i.post(Wr(e,"call"),{connector:r,action:s,args:n}))}function pg(e,t){if(e&&typeof e=="object"){let n=e;for(let r of["reason","error","message","detail"])if(typeof n[r]=="string"&&n[r])return n[r]}return`HTTP ${t}`}function dg(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t-=1;return t===e.length?e:e.slice(0,t)}async function Xo(e,t,n){let r=n.filename.trim(),s=n.contentType.trim();if(!r)throw new Error("filename is required");if(!s)throw new Error("contentType is required");let o={"Content-Type":s,"X-Kortix-Attachment-Filename":encodeURIComponent(r),"X-Kortix-Attachment-Disposition":n.contentDisposition??"attachment"};n.contentId?.trim()&&(o["X-Kortix-Attachment-Content-Id"]=encodeURIComponent(n.contentId.trim()));let l=dg($().backendUrl),p=Wr(e,"attachments"),d=await M(`${l}${p}`,{method:"POST",headers:o,body:t},{timeoutMs:6e4}),f=await d.text(),m=null;if(f)try{m=JSON.parse(f)}catch{m=f}if(!d.ok)throw new A(pg(m,d.status),{status:d.status,code:String(m&&typeof m=="object"?m.code??d.status:d.status),details:m,response:d,endpoint:p});return m}async function Qo(e){return a(await i.get(`/projects/${e}/connections`))}async function Yo(e){return a(await i.get(`/projects/${e}/connections/all`))}async function Zo(e,t){return a(await i.post(`/projects/${e}/connections`,t))}async function ea(e,t){return a(await i.post(`/projects/${e}/connections/me`,t))}async function ta(e,t,n){return a(await i.put(`/projects/${e}/connections/${t}/credential`,n))}function se(e,t,n){return`/projects/${e}/connections/${t}/oauth2/${n}`}async function d_(e,t){return a(await i.post(`/projects/${e}/connectors/${encodeURIComponent(t)}/oauth2/connection`,{}))}async function g_(e,t,n){return a(await i.put(se(e,t,"application"),n))}async function m_(e,t){return a(await i.get(se(e,t,"application")))}async function f_(e,t,n){return a(await i.post(se(e,t,"discover"),n))}async function y_(e,t,n={}){return a(await i.post(se(e,t,"discover-resource"),n))}async function h_(e,t,n){return a(await i.post(se(e,t,"register"),n))}async function b_(e,t,n){return a(await i.post(se(e,t,"authorize"),n))}async function x_(e,t,n){return a(await i.post(se(e,t,"device"),n))}async function __(e,t,n){return a(await i.post(se(e,t,`device/${encodeURIComponent(n)}`),{}))}async function P_(e,t){return a(await i.get(se(e,t,"status")))}async function na(e,t){return a(await i.put(`/projects/${e}/connections/${t}/revoke`,{}))}async function ra(e,t){return a(await i.put(`/projects/${e}/connections/${t}/activate`,{}))}async function sa(e,t){return a(await i.put(`/projects/${e}/connections/${t}/default`,{}))}async function ia(e,t,n={}){return a(await i.post(`/projects/${e}/connections/${t}/connect`,n))}async function oa(e,t){return a(await i.post(`/projects/${e}/connections/${t}/connect/finalize`,{}))}async function aa(e){return a(await i.get(`/connectors/projects/${e}/connectors`,{showErrors:!1}))}async function ca(e){return a(await i.post(`/connectors/projects/${e}/connectors/sync`,{}))}async function la(e,t,n){return a(await i.put(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}/credential-mode`,{mode:n}))}async function ua(e,t,n){return a(await i.put(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}/authorization-strategy`,{authorization_strategy:n}))}async function pa(e,t,n){return a(await i.put(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}/sensitive`,{sensitive:n}))}async function da(e,t){return a(await i.get(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}/policies`))}async function ga(e,t,n){return a(await i.put(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}/policies`,{policies:n}))}async function k_(e,t){throw new Error("Connection-specific policies were removed. Use getConnectorPolicies(projectId, slug).")}async function w_(e,t,n){throw new Error("Connection-specific policies were removed. Use setConnectorPolicies(projectId, slug, policies).")}async function ma(e,t){return a(await i.get(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}/config`))}async function fa(e,t,n){return a(await i.put(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}/name`,{name:n}))}async function gg(e,t){return a(await i.post(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}/connect`,{}))}var ya=gg;async function S_(e,t){return a(await i.get(`/connectors/projects/${e}/sessions/${encodeURIComponent(t)}/connect-requests`)).connectors??[]}async function ha(e,t){return a(await i.post(`/connectors/projects/${e}/connectors`,t))}async function ba(e,t){return a(await i.post(`/connectors/projects/${e}/connectors/auth-discovery`,t))}async function xa(e,t){return a(await i.delete(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}`))}async function _a(e,t,n){let r=typeof t=="string"||t===void 0?{...t?{q:t}:{},...n?{cursor:n}:{}}:t,s=new URLSearchParams;r.q&&s.set("q",r.q),r.category&&s.set("category",r.category),r.cursor&&s.set("cursor",r.cursor),r.limit&&s.set("limit",String(r.limit));let o=s.toString();return a(await i.get(`/connectors/projects/${e}/pipedream/apps${o?`?${o}`:""}`))}async function Pa(e,t){let n=new URLSearchParams;t?.perCategory&&n.set("perCategory",String(t.perCategory)),t?.maxCategories&&n.set("maxCategories",String(t.maxCategories));let r=n.toString();return a(await i.get(`/connectors/projects/${e}/pipedream/sections${r?`?${r}`:""}`))}async function v_(e,t={}){let n=new URLSearchParams;t.q&&n.set("q",t.q),t.category&&n.set("category",t.category),t.cursor&&n.set("cursor",t.cursor),t.limit&&n.set("limit",String(t.limit));let r=n.toString(),s=a(await i.get(`/connectors/projects/${e}/connect/toolkits${r?`?${r}`:""}`));if("toolkits"in s)return s;let o=s.cursor?.trim()||void 0;return{provider:"composio",toolkits:s.items,nextCursor:o,hasMore:!!o}}async function Vr(e,t,n){let r=new URLSearchParams;t&&r.set("q",t),n&&r.set("cursor",n);let s=r.toString();return a(await i.get(`/connectors/projects/${e}/discover/connectors${s?`?${s}`:""}`))}async function Jr(e,t){let n=new URLSearchParams({id:t});return a(await i.get(`/connectors/projects/${e}/discover/connectors/detail?${n.toString()}`))}var A_=Vr,C_=Jr;async function ka(){return a(await i.get("/connectors/connect-status"))}async function wa(e,t,n){let r=typeof n=="string"?{value:n}:n;return a(await i.put(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}/credential`,r))}async function R_(e,t,n){return a(await i.put(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}/secret-binding`,{secret_identifier:n}))}async function mg(e,t){return a(await i.post(`/connectors/projects/${e}/connectors/${encodeURIComponent(t)}/connect/finalize`,{}))}var Sa=mg;async function va(e){return a(await i.get(`/connectors/projects/${e}/policies`))}async function Aa(e,t,n){return a(await i.put(`/connectors/projects/${e}/policies`,{policies:t,defaultMode:n}))}async function Ca(e){return a(await i.get(`/projects/${e}/sandboxes`))}async function Ra(e){return a(await i.get(`/projects/${e}/snapshots`))}async function Xr(e){return a(await i.get(`/projects/${e}/sandbox-health`,{showErrors:!1,timeout:15e3}))}async function Ta(e,t){return a(await i.post(`/projects/${e}/snapshots/rebuild`,t?{slug:t}:{}))}async function Ia(e){return a(await i.post(`/projects/${e}/snapshots/fix-with-agent`,{}))}async function Ea(e,t){return a(await i.post(`/projects/${e}/sandbox-templates`,t))}async function ja(e,t,n){return a(await i.patch(`/projects/${e}/sandbox-templates/${t}`,n))}async function $a(e,t){return a(await i.delete(`/projects/${e}/sandbox-templates/${t}`))}async function Ma(e,t){return a(await i.post(`/projects/${e}/sandbox-templates/${t}/build`,{}))}async function qa(e){return a(await i.get(`/projects/${e}/sandboxes`))}async function Da(e,t){let n=new URLSearchParams;t?.ref&&n.set("ref",t.ref),t?.path&&n.set("path",t.path);let r=n.toString()?`?${n.toString()}`:"";return a(await i.get(`/projects/${e}/files${r}`,{showErrors:!1}))}async function Oa(e,t,n){let r=new URLSearchParams({q:t});return n?.content&&r.set("content","1"),n?.ref&&r.set("ref",n.ref),n?.limit&&r.set("limit",String(n.limit)),a(await i.get(`/projects/${e}/files/search?${r.toString()}`))}async function Ua(e,t,n){let r=new URLSearchParams({path:t});return n&&r.set("ref",n),a(await i.get(`/projects/${e}/files/content?${r.toString()}`,{showErrors:!1}))}async function Fa(e,t,n){let r=new URLSearchParams;t&&r.set("ref",t),n&&r.set("path",n);let s=r.toString()?`?${r.toString()}`:"",o=await ae(),l=`${$().backendUrl||""}/projects/${e}/files/archive${s}`,p=await fetch(l,{method:"GET",headers:o?{Authorization:`Bearer ${o}`}:{}});if(!p.ok){let d=await p.text().catch(()=>"");throw new Error(d||`Failed to download (HTTP ${p.status})`)}return await p.blob()}async function La(e){return a(await i.get(`/projects/${e}/branches`))}async function Ga(e,t){let n=new URLSearchParams;t?.ref&&n.set("ref",t.ref),t?.path&&n.set("path",t.path),t?.limit!=null&&n.set("limit",String(t.limit)),t?.skip!=null&&n.set("skip",String(t.skip));let r=n.toString()?`?${n.toString()}`:"";return a(await i.get(`/projects/${e}/commits${r}`))}async function Ba(e,t){return a(await i.get(`/projects/${e}/commits/${encodeURIComponent(t)}`))}async function Na(e,t,n){let r=new URLSearchParams;n?.path&&r.set("path",n.path);let s=r.toString()?`?${r.toString()}`:"";return a(await i.get(`/projects/${e}/commits/${encodeURIComponent(t)}/diff${s}`))}async function Ka(e,t,n){let r=new URLSearchParams({path:t});return n?.ref&&r.set("ref",n.ref),n?.limit!=null&&r.set("limit",String(n.limit)),n?.skip!=null&&r.set("skip",String(n.skip)),a(await i.get(`/projects/${e}/files/history?${r.toString()}`))}async function Ha(e,t){let n=new URLSearchParams({from:t.from,into:t.into});return a(await i.get(`/projects/${e}/version-diff?${n.toString()}`))}async function Wa(e,t){let n=t?`?status=${t}`:"";return a(await i.get(`/projects/${e}/change-requests${n}`,{showErrors:!1,timeout:15e3}))}async function za(e,t){return a(await i.get(`/projects/${e}/change-requests/${t}`))}async function Va(e,t){return a(await i.get(`/projects/${e}/change-requests/${t}/diff`))}async function Ja(e,t){return a(await i.get(`/projects/${e}/change-requests/${t}/merge-preview`))}async function Xa(e,t){return a(await i.post(`/projects/${e}/change-requests`,t))}async function Qa(e,t,n){return a(await i.post(`/projects/${e}/change-requests/${t}/merge`,n??{},{showErrors:!1}))}async function Ya(e,t){return a(await i.post(`/projects/${e}/change-requests/${t}/close`,{}))}async function Za(e,t){return a(await i.post(`/projects/${e}/change-requests/${t}/reopen`,{}))}async function ec(e,t,n){return a(await i.post(`/projects/${e}/change-requests/${t}/request-changes`,{feedback:n}))}async function tc(e,t,n){return a(await i.post(`/projects/${e}/sessions/${t}/commit-push`,n??{}))}var Qr=new Set;function Et(e){e&&Qr.add(e)}function nc(e){return!!e&&Qr.has(e)}function z_(e){e&&Qr.delete(e)}async function Ye(e,t){let n=new URLSearchParams;t?.scope&&t.scope!=="visible"&&n.set("scope",t.scope);let r=n.size>0?`?${n}`:"";return a(await i.get(`/projects/${e}/sessions${r}`))}async function rc(e,t,n){return a(await i.put(`/projects/${e}/sessions/${t}/sharing`,n))}async function sc(e,t){return a(await i.get(`/projects/${e}/sessions/${t}/previews`))}async function ic(e,t){return a(await i.get(`/projects/${e}/sessions/${t}/public-shares`,{showErrors:!1}))}async function oc(e,t,n){return a(await i.post(`/projects/${e}/sessions/${t}/public-shares`,n))}async function ac(e,t,n){return a(await i.delete(`/projects/${e}/sessions/${t}/public-shares/${n}`))}async function Ze(e,t){let n=a(await i.post(`/projects/${e}/sessions`,t??{}));return t?.initial_prompt||Et(n?.session_id),n}async function cc(e,t){let n=t?.excludeSessionId?{exclude_session_id:t.excludeSessionId}:{},r=a(await i.post(`/projects/${e}/sessions/warm`,n,{showErrors:!1}));return r.reused||Et(r.session.session_id),r}async function lc(e,t){let n=a(await i.post(`/projects/${e}/sessions/warm/claim`,t,{showErrors:!1}));return Et(n.session_id),n}async function Yr(e,t,n){return a(await i.get(`/projects/${e}/sessions/${t}`,{showErrors:n?.showErrors}))}async function uc(e,t,n,r){let s=new URLSearchParams;n&&s.set("limit",String(n)),r?.cursor&&s.set("cursor",r.cursor),r?.includeEvents!=null&&s.set("include_events",String(r.includeEvents));let o=s.toString();return a(await i.get(`/projects/${e}/sessions/${t}/audit${o?`?${o}`:""}`,{showErrors:r?.showErrors}))}async function pc(e,t,n){let r=new URLSearchParams;n?.limit!=null&&r.set("limit",String(n.limit)),n?.chars!=null&&r.set("chars",String(n.chars));let s=r.toString();return a(await i.get(`/projects/${e}/sessions/${t}/transcript${s?`?${s}`:""}`))}async function dc(e,t,n){let r=new URLSearchParams({shape:"sync"});return n?.limit!=null&&r.set("limit",String(n.limit)),a(await i.get(`/projects/${e}/sessions/${t}/transcript?${r.toString()}`,{showErrors:!1}))}async function gc(e,t){return a(await i.get(`/projects/${e}/sessions/${t}/turn`))}async function Y_(e,t,n){let r=new URLSearchParams;n?.transcript!=null&&r.set("transcript",String(n.transcript));let s=r.toString();return a(await i.get(`/projects/${e}/sessions/${t}/snapshot${s?`?${s}`:""}`,{signal:n?.signal,showErrors:!1}))}async function mc(e,t,n){return a(await i.post(`/projects/${e}/sessions/${t}/prompts`,{client_message_id:n.clientMessageId,message_id:n.messageId,parts:n.parts,...n.overrides?{overrides:n.overrides}:{},...n.remintOnDelivery?{remint_on_delivery:!0}:{},...typeof n.clientSentAtMs=="number"?{client_sent_at_ms:Math.trunc(n.clientSentAtMs)}:{}}))}async function fc(e,t){return a(await i.get(`/projects/${e}/sessions/${t}/prompts`))}async function yc(e,t,n){return a(await i.delete(`/projects/${e}/sessions/${t}/prompts/${n}`)).removed}async function hc(e,t,n){return a(await i.post(`/projects/${e}/sessions/${t}/prompts/${n}/retry`,{}))}async function bc(e,t,n){return a(await i.post(`/projects/${e}/sessions/${t}/prompts/hold`,{held:n}))}async function xc(e,t,n){return a(await i.patch(`/projects/${e}/sessions/${t}`,n))}async function _c(e,t){return a(await i.delete(`/projects/${e}/sessions/${t}`))}async function jt(e,t){return a(await i.post(`/projects/${e}/sessions/${t}/restart`,{}))}async function $t(e,t){return a(await i.post(`/projects/${e}/sessions/${t}/stop`,{}))}async function Pc(e,t){return a(await i.get(`/projects/${e}/sessions/${encodeURIComponent(t)}/config`,{showErrors:!1}))}function fg(e){let t=e.split(`
14
+ `).filter(n=>n.startsWith("data:")).map(n=>n.slice(5).replace(/^ /,""));if(t.length===0)return null;try{return JSON.parse(t.join(`
15
+ `))}catch(n){throw new Error("reloadProjectSessionConfigStream received an invalid SSE frame",{cause:n})}}async function kc(e,t,n={}){return a(await i.post(`/projects/${e}/sessions/${encodeURIComponent(t)}/reload`,n,{showErrors:!1}))}async function wc(e,t,n,r,s={}){let o=await i.postStream(`/projects/${e}/sessions/${encodeURIComponent(t)}/reload-stream`,n,s);if(!o.ok){let m=await o.json().catch(()=>null);throw new A(m?.error||`Reload failed: HTTP ${o.status}`,{status:o.status,code:m?.code,data:m})}let l=o.body?.getReader();if(!l)throw new Error("Reload stream is unavailable on this runtime (no response body)");let p=new TextDecoder,d="",f=null;try{for(;;){let{done:m,value:h}=await l.read();if(m)break;d+=p.decode(h,{stream:!0});let x=d.indexOf(`
16
16
 
17
17
  `);for(;x!==-1;){let P=d.slice(0,x);d=d.slice(x+2),x=d.indexOf(`
18
18
 
19
- `);let A=ug(P);if(A){if(r(A),A.type==="error")throw new C(A.error,{status:A.status,code:A.code,data:{reason:A.reason}});A.type==="done"&&(f=A.result)}}}}finally{u.cancel().catch(()=>{})}if(!f)throw new Error("Reload stream ended without a result");return f}async function Pc(t,e){return a(await i.get(`/projects/${t}/sessions/${encodeURIComponent(e)}/scope`))}async function kc(t,e,n){return a(await i.put(`/projects/${t}/sessions/${encodeURIComponent(e)}/scope`,n))}async function wc(t,e,n){return a(await i.put(`/projects/${t}/sessions/${encodeURIComponent(e)}/model`,{opencode_model:n}))}async function Sc(t){return a(await i.get(`/projects/${t}/triggers`))}async function vc(t,e){return a(await i.post(`/projects/${t}/triggers`,e))}async function Cc(t,e,n){return a(await i.patch(`/projects/${t}/triggers/${e}`,n))}async function Ac(t,e){return a(await i.delete(`/projects/${t}/triggers/${e}`))}async function Rc(t,e){return a(await i.patch(`/projects/${t}/triggers/activation`,{paused:e}))}async function Tc(t,e){return a(await i.post(`/projects/${t}/triggers/${e}/fire`,{}))}var le=new Map;function Jr(t,e){return`${t}::${e}`}function Ic(t,e){le.delete(t),le.set(t,e)}function Ec(t,e){let n=Jr(t,e),r=le.get(n);return r&&Ic(n,r),r}function jc(t,e,n){let r=Jr(t,e);if(!le.has(r)&&le.size>=512){let s=le.keys().next().value;s!==void 0&&le.delete(s)}Ic(r,n)}function $c(t,e){le.delete(Jr(t,e))}function K_(t){if(t.status!=="running"||!t.sandbox_id||!t.sandbox_provider||!t.sandbox_url||!t.opencode_session_id)return null;let e=t.sandbox_url.match(/\/p\/([^/]+)\//)?.[1];return e?{stage:"ready",agent_name:t.agent_name??"default",retriable:!0,sandbox:{sandbox_id:t.sandbox_id,session_id:t.session_id,project_id:t.project_id,account_id:t.account_id,provider:t.sandbox_provider,external_id:e,base_url:t.sandbox_url,status:"active",config:{},metadata:t.metadata,last_used_at:t.updated_at,created_at:t.created_at,updated_at:t.updated_at},opencode_session_id:t.opencode_session_id,runtime_url:t.sandbox_url}:null}var Xr=class extends Error{status;code;terminal;constructor(e,n){super(e),this.name="SessionStartError",this.status=n.status,this.code=n.code,this.terminal=n.terminal}};function H_(t){return t instanceof Error&&t.name==="SessionStartError"}function pg(t){let e=t,n=e?.status,r=e?.code??e?.details?.code??e?.details?.error,s=e?.message||"Unable to start this session";return n&&n>=400&&n<500&&n!==408&&n!==429?new Xr(s,{status:n,code:r,terminal:!0}):null}async function qe(t,e,n){let r=n&&n>0?`?wait_ms=${Math.floor(n)}`:"",s=await i.post(`/projects/${t}/sessions/${e}/start${r}`,{},{showErrors:!1});if(!s.success||!s.data){let p=pg(s.error);if(p&&!(p.status===404&&Za(e)))throw p;return null}let o=s.data,u=o.sandbox?.external_id;return o.stage==="ready"&&u&&o.opencode_session_id&&jc(t,e,{opencodeSessionId:o.opencode_session_id,runtimeUrl:gt(u),sandboxId:u}),o}function W_(t,e){return["session-start",t,e]}async function Mc(t){return a(await i.get(`/projects/${t}/model-defaults`))}async function qc(t,e){return a(await i.put(`/projects/${t}/model-defaults`,e))}async function Dc(t,e){let n=new URLSearchParams({scope:e.scope,...e.agentName?{agentName:e.agentName}:{}}).toString();return a(await i.delete(`/projects/${t}/model-defaults?${n}`))}async function Z_(t,e){return a(await i.put(`/projects/${t}/model-enablement`,{modelOverrides:e}))}async function Uc(t,e,n){let r=gg(n);return a(await i.put(`/projects/${t}/agents/${encodeURIComponent(e)}/scope`,r))}function Oc(t){let e=[];for(let n of t){let r=n.trim();r&&!e.includes(r)&&e.push(r)}return e}function dg(t,e){if(t.length!==e.length)return!1;let n=new Set(e);return t.every(r=>n.has(r))}function gg(t){let e=t.connectors_required?Oc(t.connectors_required):void 0,n=t.connectors_personal?Oc(t.connectors_personal):void 0;if(e&&n&&!dg(e,n))throw new Error("connectors_personal must match connectors_required when both fields are present");let r={...t};return delete r.connectors_personal,(e!==void 0||n!==void 0)&&(r.connectors_required=e??n),r}async function oP(t,e){let n=a(await i.get(`/projects/${t}/agents/${encodeURIComponent(e)}/config`));return{...n,block:n.block?Qr(n.block):null}}async function aP(t,e,n){let r=Qr(n),s=a(await i.put(`/projects/${t}/agents/${encodeURIComponent(e)}/config`,r));return{...s,block:s.block?Qr(s.block):null}}function Fc(t){let e=[];for(let n of t){let r=n.trim();r&&!e.includes(r)&&e.push(r)}return e}function mg(t,e){if(t.length!==e.length)return!1;let n=new Set(e);return t.every(r=>n.has(r))}function Qr(t){let e=t.connectors_required?Fc(t.connectors_required):void 0,n=t.connectors_personal?Fc(t.connectors_personal):void 0;if(e&&n&&!mg(e,n))throw new Error("connectors_personal must match connectors_required when both fields are present");let r={...t};return delete r.connectors_personal,(e!==void 0||n!==void 0)&&(r.connectors_required=e??n),r}async function cP(t,e,n){return a(await i.post(`/projects/${t}/secrets/${encodeURIComponent(e)}/grant`,{agent:n}))}async function Lc(t,e){return a(await i.put(`/projects/${t}/default-agent`,{agent:e}))}function Yr(){return{credits:{total:0,daily:0,monthly:0,extra:0,can_run:!1,daily_refresh:null},subscription:{tier_key:"none",tier_display_name:"No Plan",status:"no_subscription",billing_period:null,provider:"stripe",subscription_id:null,current_period_end:null,cancel_at_period_end:!1,is_cancelled:!1,cancellation_effective_date:null,has_scheduled_change:!1,scheduled_change:null,commitment:{has_commitment:!1,can_cancel:!0,commitment_type:null,months_remaining:null,commitment_end_date:null},can_purchase_credits:!1},models:[],limits:{concurrent_runs:{running_count:0,limit:0,can_start:!1,tier_name:"none"},ai_worker_count:{current_count:0,limit:0,can_create:!1,tier_name:"none"},custom_mcp_count:{current_count:0,limit:0,can_create:!1,tier_name:"none"}},tier:{name:"none",display_name:"No Plan",monthly_credits:0,can_purchase_credits:!1}}}function fg(t){let e=t.trim().toLowerCase();return e===""||e==="free"||e==="none"?"free":e==="enterprise"?"enterprise":"team"}function dP(t){let e=t?.plan;if(e)return{family:e.family,label:e.label,sublabel:e.sublabel??null,isGrandfathered:e.is_grandfathered===!0};let n=t??Yr(),r=(n.subscription?.tier_key||n.tier?.name||"none").toString(),s=(n.tier?.display_name||"").trim()||r;return{family:fg(r),label:s,sublabel:null,isGrandfathered:!1}}async function Gc(t){let e=new URLSearchParams;t?.skipCache&&e.set("skip_cache","true"),t?.accountId&&e.set("account_id",t.accountId);let n=e.toString(),r=n?`?${n}`:"",s=await i.get(`/billing/account-state${r}`,{showErrors:!1}),o=s.error?.status===404&&/billing is not enabled/i.test(s.error.message||"");if(s.error&&s.error.status!==401&&!o)throw s.error;return s.error?Yr():s.data}async function Bc(t){let e=new URLSearchParams;t?.skipCache&&e.set("skip_cache","true"),t?.accountId&&e.set("account_id",t.accountId);let n=e.toString(),r=n?`?${n}`:"",s=await i.get(`/billing/account-state/minimal${r}`,{showErrors:!1}),o=s.error?.status===404&&/billing is not enabled/i.test(s.error.message||"");if(s.error&&s.error.status!==401&&!o)throw s.error;return s.error?Yr():s.data}async function Nc(t){let e=new URLSearchParams;t?.accountId&&e.set("account_id",t.accountId),t?.limit!=null&&e.set("limit",String(t.limit)),t?.offset!=null&&e.set("offset",String(t.offset)),t?.typeFilter&&e.set("type_filter",Array.isArray(t.typeFilter)?t.typeFilter.join(","):t.typeFilter);let n=e.toString();return a(await i.get(`/billing/transactions${n?`?${n}`:""}`))}async function Kc(t){let e=new URLSearchParams;t?.accountId&&e.set("account_id",t.accountId),t?.days!=null&&e.set("days",String(t.days));let n=e.toString();return a(await i.get(`/billing/transactions/summary${n?`?${n}`:""}`))}async function Hc(){return a(await i.get("/billing/credit-breakdown"))}async function Wc(t){let e=t!=null?`?days=${t}`:"";return a(await i.get(`/billing/usage-history${e}`))}async function zc(){return a(await i.get("/billing/tier-configurations"))}async function gP(t){let e=t.accountId?`?account_id=${encodeURIComponent(t.accountId)}`:"";return $e(t,`/v1/billing/account-state${e}`)}async function Vc(t){return a(await i.post("/billing/create-checkout-session",{account_id:t.accountId,tier_key:t.tierKey,success_url:t.successUrl,cancel_url:t.cancelUrl,commitment_type:t.commitmentType,locale:t.locale,server_type:t.serverType,location:t.location}),"Failed to create checkout session")}async function Jc(t,e){return a(await i.post("/billing/confirm-checkout-session",{account_id:e,session_id:t}),"Failed to confirm checkout session")}async function Xc(t,e){return a(await i.post("/billing/create-portal-session",{account_id:e,return_url:t}),"Failed to create portal session")}async function Qc(t,e){return a(await i.post("/billing/cancel-subscription",{account_id:e,feedback:t}),"Failed to cancel subscription")}async function Yc(t){return a(await i.post("/billing/reactivate-subscription",{account_id:t}),"Failed to reactivate subscription")}async function Zc(t,e,n){return a(await i.post("/billing/schedule-downgrade",{account_id:n,target_tier_key:t,commitment_type:e}),"Failed to schedule downgrade")}async function el(t){return a(await i.post("/billing/cancel-scheduled-change",{account_id:t}),"Failed to cancel scheduled change")}async function tl(t,e){let n=new URLSearchParams({new_price_id:t});return e&&n.set("account_id",e),a(await i.get(`/billing/proration-preview?${n.toString()}`),"Failed to load proration preview")}async function nl(t){return a(await i.post("/billing/purchase-credits",{amount:t.amount,account_id:t.accountId,success_url:t.successUrl,cancel_url:t.cancelUrl}),"Failed to purchase credits")}async function rl(t){let e=t?`?account_id=${encodeURIComponent(t)}`:"";return a(await i.get(`/billing/auto-topup/settings${e}`),"Failed to load auto-topup settings")}async function sl(t){return a(await i.post("/billing/auto-topup/configure",{account_id:t.accountId,enabled:t.enabled,threshold:t.threshold,amount:t.amount},{showErrors:!1}),"Failed to configure auto-topup")}async function mP(t){let e=t?`?account_id=${encodeURIComponent(t)}`:"";return a(await i.get(`/billing/auto-topup/setup-status${e}`,{timeout:8e3,showErrors:!1}),"Failed to load auto-topup setup status")}async function fP(t){return a(await i.post("/billing/create-per-seat-checkout",{account_id:t.accountId,success_url:t.successUrl,cancel_url:t.cancelUrl,locale:t.locale}),"Failed to create per-seat checkout")}async function yP(t){return a(await i.post("/billing/claim-per-seat",{account_id:t}),"Failed to switch to per-seat billing")}async function hP(t){return a(await i.post("/billing/sync-subscription",{account_id:t}),"Failed to sync subscription")}async function il(t={}){let e=new URLSearchParams;t.start&&e.set("start",t.start),t.end&&e.set("end",t.end),(t.groupBy==="model"||t.groupBy==="provider"||t.groupBy==="day")&&e.set("group_by",t.groupBy),t.accountId&&e.set("account_id",t.accountId);let n=e.toString();return a(await i.get(`/usage${n?`?${n}`:""}`))}function Zr(t,e){e.accountId&&t.set("account_id",e.accountId),e.projectId&&t.set("project_id",e.projectId)}function $t(t,e){e.from&&t.set("from",e.from),e.to&&t.set("to",e.to)}function Mt(t){return t.size>0?`?${t}`:""}async function al(t={}){let e=new URLSearchParams;return Zr(e,t),t.ownerId&&e.set("owner_id",t.ownerId),$t(e,t),t.sort&&e.set("sort",t.sort),t.limit!=null&&e.set("limit",String(t.limit)),t.offset!=null&&e.set("offset",String(t.offset)),a(await i.get(`/usage/session-costs${Mt(e)}`))}async function es(t,e={}){let n=new URLSearchParams;return Zr(n,e),a(await i.get(`/usage/session-costs/${encodeURIComponent(t)}${Mt(n)}`))}async function wP(t={}){let e=new URLSearchParams;return t.accountId&&e.set("account_id",t.accountId),$t(e,t),t.sort&&e.set("sort",t.sort),t.limit!=null&&e.set("limit",String(t.limit)),t.offset!=null&&e.set("offset",String(t.offset)),a(await i.get(`/usage/cost-by-project${Mt(e)}`))}async function SP(t={}){let e=new URLSearchParams;return Zr(e,t),t.sessionId&&e.set("session_id",t.sessionId),$t(e,t),a(await i.get(`/usage/cost-summary${Mt(e)}`))}function ol(t,e={}){let n=new URLSearchParams;if(e.accountId&&n.set("account_id",e.accountId),t==="sessions"){let s=e;s.projectId&&n.set("project_id",s.projectId),s.ownerId&&n.set("owner_id",s.ownerId)}$t(n,e),e.sort&&n.set("sort",e.sort),n.set("format","csv");let r=t==="projects"?"/usage/cost-by-project":"/usage/session-costs";return`${$().backendUrl||""}${r}?${n}`}async function vP(t,e={}){let n=ol(t==="projects"?"projects":"sessions",e),r=await oe(),s=await fetch(n,{method:"GET",headers:r?{Authorization:`Bearer ${r}`}:{}});if(!s.ok){let d=await s.text().catch(()=>"");throw new Error(d||`Failed to export CSV (HTTP ${s.status})`)}let o=s.headers.get("x-kortix-row-cap"),u=o!=null?Number(o):NaN;return{blob:await s.blob(),rowCap:Number.isFinite(u)?u:null}}async function cl(t,e){return a(await i.post(`/channels/${t}/identity/bind`,{token:e}),"Failed to connect your account")}function TP(t){return cl("slack",t)}function IP(t){return cl("teams",t)}async function ll(t){let e=await i.get(`/projects/${encodeURIComponent(t)}/channels/slack/installation`,{showErrors:!1});return e.success?e.data??null:null}async function ul(t,e){return a(await i.post(`/projects/${encodeURIComponent(t)}/channels/slack/connect`,e,{showErrors:!1}),"Failed to connect")}var yg={oauth_available:!1,install_url:null};async function pl(t){let e=await i.get(`/projects/${encodeURIComponent(t)}/channels/slack/mode`,{showErrors:!1});return!e.success||!e.data?yg:e.data}async function dl(t){return a(await i.get(`/webhooks/slack/${encodeURIComponent(t)}/manifest`,{showErrors:!1}),"Failed to load Slack manifest")}async function gl(t){let e=await i.delete(`/projects/${encodeURIComponent(t)}/channels/slack/installation`,{showErrors:!1});if(!e.success)throw new Error(e.error?.message??"Failed to disconnect")}async function ml(t,e){return a(await i.get(`/projects/${encodeURIComponent(t)}/channels/slack/file?url=${encodeURIComponent(e)}`,{showErrors:!1}),"Failed to download Slack file")}async function fl(t,e){return a(await i.post(`/projects/${encodeURIComponent(t)}/channels/slack/file/upload`,{channel:e.channel,filename:e.filename,content_base64:e.contentBase64,comment:e.comment,thread_ts:e.threadTs},{showErrors:!1}),"Failed to upload Slack file")}function ts(t){let e=t.connectionId??t.connection_id??null,n=t.connectorSlug??t.connector_slug??t.connectionSlug??t.connection_slug??"kortix_email";return{...t,connectionId:e,connectorSlug:n}}var hg={provider:"agentmail",managed_available:!1};async function yl(t,e){let n=e?`?connector_slug=${encodeURIComponent(e)}`:"",r=await i.get(`/projects/${encodeURIComponent(t)}/channels/email/installation${n}`,{showErrors:!1});return r.success&&r.data?ts(r.data):null}async function hl(t){let e=await i.get(`/projects/${encodeURIComponent(t)}/channels/email/mode`,{showErrors:!1});return!e.success||!e.data?hg:e.data}async function bl(t,e){let n=a(await i.post(`/projects/${encodeURIComponent(t)}/channels/email/connect`,e,{showErrors:!1}),"Failed to connect email");return ts(n)}async function xl(t,e){let n=e?`?connector_slug=${encodeURIComponent(e)}`:"",r=await i.delete(`/projects/${encodeURIComponent(t)}/channels/email/installation${n}`,{showErrors:!1});if(!r.success)throw new Error(r.error?.message??"Failed to disconnect email")}async function _l(t,e,n){let r=a(await i.patch(`/projects/${encodeURIComponent(t)}/channels/email/installation`,{connector_slug:e??"kortix_email",sender_policy:n},{showErrors:!1}),"Failed to update email policy");return ts(r)}async function EP(t){return a(await i.get(`/projects/${encodeURIComponent(t)}/channels/bindings`,{showErrors:!1}),"Failed to load channel bindings")}async function jP(t,e,n){return a(await i.patch(`/projects/${encodeURIComponent(t)}/channels/bindings/${encodeURIComponent(e)}`,n,{showErrors:!1}),"Failed to update channel binding")}async function Pl(t){return a(await i.get(`/projects/${t}/gateway/routing-policy`),"Gateway routing policy request failed")}async function kl(t,e){return a(await i.put(`/projects/${t}/gateway/routing-policy`,e),"Gateway routing policy request failed")}async function wl(t){return a(await i.delete(`/projects/${t}/gateway/routing-policy`),"Gateway routing policy request failed")}async function Sl(t,e){return a(await i.post(`/projects/${t}/gateway/routing-policy/preview`,e),"Gateway route preview failed")}async function vl(t,e){let n=new URLSearchParams;e?.limit&&n.set("limit",String(e.limit)),e?.offset&&n.set("offset",String(e.offset)),e?.ok!==void 0&&n.set("ok",String(e.ok));let r=n.toString();return a(await i.get(`/projects/${t}/gateway/logs${r?`?${r}`:""}`),"Gateway request failed")}async function Cl(t,e){return a(await i.get(`/projects/${t}/gateway/logs/${e}`),"Gateway request failed")}async function Al(t,e){return a(await i.get(`/projects/${t}/gateway/overview${e?`?days=${e}`:""}`),"Gateway request failed")}async function Rl(t,e){return a(await i.get(`/projects/${t}/gateway/series${e?`?days=${e}`:""}`),"Gateway request failed")}async function Tl(t,e){return a(await i.get(`/projects/${t}/gateway/breakdown${e?`?days=${e}`:""}`),"Gateway request failed")}async function Il(t,e){return a(await i.get(`/projects/${t}/gateway/sessions${e?`?days=${e}`:""}`),"Gateway request failed")}async function El(t,e){return a(await i.get(`/projects/${t}/gateway/errors${e?`?days=${e}`:""}`),"Gateway request failed")}async function jl(t){return a(await i.get(`/projects/${t}/gateway/budgets`),"Gateway request failed")}async function $l(t,e){return a(await i.put(`/projects/${t}/gateway/budgets`,e),"Gateway request failed")}async function Ml(t,e){return a(await i.delete(`/projects/${t}/gateway/budgets/${e}`),"Gateway request failed")}async function ql(t){return a(await i.get(`/projects/${t}/gateway/keys`),"Gateway request failed")}async function Dl(t,e){return a(await i.post(`/projects/${t}/gateway/keys`,{name:e}),"Gateway request failed")}async function Ol(t,e){return a(await i.delete(`/projects/${t}/gateway/keys/${e}`),"Gateway request failed")}async function Ul(t,e,n,r,s){return a(await i.post(`/projects/${t}/gateway/playground`,{prompt:e,models:n,...r?{system:r}:{},...s&&Object.keys(s).length?{generationConfig:s}:{}}),"Gateway request failed")}async function DP(t,e){return a(await i.post(`/projects/${t}/gateway/providers/${encodeURIComponent(e)}/verify`,{}),"Gateway provider verification failed")}async function LP(){return a(await i.get("/referrals/code"),"GET_CODE_FAILED")}async function GP(){return a(await i.post("/referrals/code/refresh",{}),"REFRESH_CODE_FAILED")}async function BP(t){return a(await i.post("/referrals/validate",{referral_code:t}),"VALIDATE_CODE_FAILED")}async function NP(){return a(await i.get("/referrals/stats"),"GET_STATS_FAILED")}async function KP(t={}){let e=new URLSearchParams({limit:String(t.limit??50),offset:String(t.offset??0)});return a(await i.get(`/referrals/list?${e}`),"GET_REFERRALS_FAILED")}async function HP(t){return a(await i.post("/referrals/email",{emails:t}),"SEND_EMAILS_FAILED")}function k(t){if(!t.success||t.data===void 0)throw t.error||new Error("Unexpected empty response");return t.data}function O(t){return i.get(t,{showErrors:!1})}async function Fl(t){return k(await O(`/accounts/${t}/iam/groups`)).groups}async function Ll(t,e){return k(await O(`/accounts/${t}/iam/groups/${e}`))}async function Gl(t,e){return k(await i.post(`/accounts/${t}/iam/groups`,e,{showErrors:!1}))}async function Bl(t,e,n){return k(await i.patch(`/accounts/${t}/iam/groups/${e}`,n))}async function Nl(t,e){return k(await i.delete(`/accounts/${t}/iam/groups/${e}`))}async function Kl(t,e){return k(await O(`/accounts/${t}/iam/groups/${e}/members`)).members}async function Hl(t,e,n){return k(await i.post(`/accounts/${t}/iam/groups/${e}/members`,{userIds:n}))}async function VP(t,e){return k(await O(`/accounts/${t}/iam/groups/${e}/project-grants`)).grants}async function Wl(t,e,n){return k(await i.delete(`/accounts/${t}/iam/groups/${e}/members/${n}`))}async function JP(t,e){return k(await O(`/accounts/${t}/iam/members/${e}/groups`)).groups}async function XP(t,e){let n=k(await O(`/accounts/${t}/iam/members/${e}/project-access`));return{projects:n.projects,account_wide_policies:n.account_wide_policies??[]}}async function QP(t,e={}){let n=new URLSearchParams;e.resourceType&&n.set("resourceType",e.resourceType),e.principalType&&n.set("principalType",e.principalType),e.principalId&&n.set("principalId",e.principalId),e.projectId&&n.set("projectId",e.projectId);let r=n.toString();return k(await O(`/accounts/${t}/iam/resource-grants${r?`?${r}`:""}`)).grants}async function YP(t,e={}){let n=new URLSearchParams;e.principalType&&n.set("principalType",e.principalType),e.principalId&&n.set("principalId",e.principalId),e.scopeType&&n.set("scopeType",e.scopeType),e.scopeId!==void 0&&n.set("scopeId",e.scopeId===null?"null":e.scopeId);let r=n.toString();return k(await O(`/accounts/${t}/iam/policies${r?`?${r}`:""}`)).policies}async function ZP(t,e){return k(await i.post(`/accounts/${t}/iam/policies`,e,{showErrors:!1}))}async function ek(t,e,n){return k(await i.patch(`/accounts/${t}/iam/policies/${e}`,n,{showErrors:!1}))}async function tk(t,e){return k(await i.delete(`/accounts/${t}/iam/policies/${e}`))}async function nk(t,e){return k(await i.post(`/accounts/${t}/iam/policies:bulk-delete`,{policy_ids:e},{showErrors:!1}))}async function rk(t,e){return k(await i.post(`/accounts/${t}/iam/policies:bulk-import`,{policies:e},{showErrors:!1}))}async function zl(t){return k(await O(`/accounts/${t}/iam/roles`)).roles}async function Vl(t){return k(await O(`/accounts/${t}/iam/agent-identities`)).agents}async function Jl(t,e){return k(await O(`/accounts/${t}/iam/roles/${e}/permissions`))}async function sk(t){return k(await O(`/accounts/${t}/iam/actions`)).actions}async function Xl(t,e){return k(await O(`/accounts/${t}/iam/roles/${e}/usage`))}async function Ql(t,e){return k(await i.post(`/accounts/${t}/iam/roles`,e,{showErrors:!1}))}async function Yl(t,e,n){return k(await i.patch(`/accounts/${t}/iam/roles/${e}`,n,{showErrors:!1}))}async function Zl(t,e,n){return k(await i.put(`/accounts/${t}/iam/roles/${e}/permissions`,{actions:n},{showErrors:!1}))}async function eu(t,e){return k(await i.delete(`/accounts/${t}/iam/roles/${e}`,{showErrors:!1}))}async function ik(t,e,n){return k(await i.patch(`/accounts/${t}/iam/members/${e}/super-admin`,{isSuperAdmin:n}))}async function ok(t){return k(await O(`/accounts/${t}/iam/scim/tokens`)).tokens}async function ak(t,e){return k(await i.post(`/accounts/${t}/iam/scim/tokens`,e,{showErrors:!1}))}async function ck(t,e){return k(await i.delete(`/accounts/${t}/iam/scim/tokens/${e}`))}async function lk(t){return k(await O(`/accounts/${t}/iam/mfa-required`))}async function uk(t){return k(await O(`/accounts/${t}/iam/mfa-required/preview`))}async function pk(t,e){return k(await i.patch(`/accounts/${t}/iam/mfa-required`,{enabled:e},{showErrors:!1}))}async function dk(t){return k(await O(`/accounts/${t}/iam/sso/provider`)).provider}async function gk(t,e){return k(await i.put(`/accounts/${t}/iam/sso/provider`,e,{showErrors:!1})).provider}async function mk(t,e){return k(await i.post(`/accounts/${t}/iam/sso/provider/from-metadata`,e,{showErrors:!1})).provider}async function fk(t){return k(await i.delete(`/accounts/${t}/iam/sso/provider`))}async function yk(t){return k(await O(`/accounts/${t}/iam/sso/mappings`)).mappings}async function hk(t,e){return k(await i.post(`/accounts/${t}/iam/sso/mappings`,e,{showErrors:!1}))}async function bk(t,e){return k(await i.delete(`/accounts/${t}/iam/sso/mappings/${e}`))}async function xk(t){return k(await O(`/accounts/${t}/iam/session-policy`))}async function _k(t,e){return k(await i.patch(`/accounts/${t}/iam/session-policy`,e,{showErrors:!1}))}async function Pk(t){return k(await O(`/accounts/${t}/iam/sessions`)).sessions}async function kk(t,e){return k(await i.post(`/accounts/${t}/iam/sessions/${e}/revoke`,{},{showErrors:!1}))}async function wk(t){return k(await O(`/accounts/${t}/iam/pat-policy`))}async function Sk(t,e){return k(await i.patch(`/accounts/${t}/iam/pat-policy`,e,{showErrors:!1}))}async function vk(t){return k(await O(`/accounts/${t}/iam/service-accounts`)).service_accounts}async function Ck(t,e){return k(await i.post(`/accounts/${t}/iam/service-accounts`,e,{showErrors:!1}))}async function Ak(t,e){return k(await i.post(`/accounts/${t}/iam/service-accounts/${e}/disable`,{},{showErrors:!1}))}async function Rk(t,e){return k(await i.delete(`/accounts/${t}/iam/service-accounts/${e}`))}async function Tk(t){return k(await O(`/accounts/${t}/audit/webhooks`)).webhooks}async function Ik(t,e){return k(await i.post(`/accounts/${t}/audit/webhooks`,e,{showErrors:!1}))}async function Ek(t,e,n){return k(await i.patch(`/accounts/${t}/audit/webhooks/${e}`,n))}async function jk(t,e){return k(await i.delete(`/accounts/${t}/audit/webhooks/${e}`))}async function $k(t,e={}){let n=new URLSearchParams;e.action&&n.set("action",e.action),e.actor&&n.set("actor",e.actor),e.project_id&&n.set("project_id",e.project_id),e.session_id&&n.set("session_id",e.session_id),e.actor_type&&n.set("actor_type",e.actor_type),e.source&&n.set("source",e.source),e.phase&&n.set("phase",e.phase),e.outcome&&n.set("outcome",e.outcome),e.request_id&&n.set("request_id",e.request_id),e.correlation_id&&n.set("correlation_id",e.correlation_id),e.resource_type&&n.set("resource_type",e.resource_type),e.since&&n.set("since",e.since),e.until&&n.set("until",e.until),e.q&&n.set("q",e.q),e.cursor&&n.set("cursor",e.cursor),e.limit&&n.set("limit",String(e.limit));let r=n.toString();return k(await O(`/accounts/${t}/audit${r?`?${r}`:""}`))}async function tu(t,e,n){let r=new URLSearchParams;return r.set("action",n.action),n.resourceType&&r.set("resourceType",n.resourceType),n.resourceId&&r.set("resourceId",n.resourceId),k(await O(`/accounts/${t}/iam/members/${e}/effective?${r.toString()}`))}async function nu(t,e,n){return n.length===0?[]:k(await i.post(`/accounts/${t}/iam/members/${e}/effective:batch`,{probes:n})).results}async function Mk(t){return k(await O(`/accounts/${t}/iam/enterprise-demo`)).enabled}async function qk(t,e){return k(await i.put(`/accounts/${t}/iam/enterprise-demo`,{enabled:e})).enabled}async function ru(t){return a(await i.get(`/accounts/${t}/iam/oauth-clients`,{showErrors:!1}))}async function su(t,e){return a(await i.get(`/accounts/${t}/iam/oauth-clients/${e}`,{showErrors:!1}))}async function iu(t,e){return a(await i.post(`/accounts/${t}/iam/oauth-clients`,e,{showErrors:!1}))}async function ou(t,e,n){return a(await i.patch(`/accounts/${t}/iam/oauth-clients/${e}`,n,{showErrors:!1}))}async function au(t,e){return a(await i.post(`/accounts/${t}/iam/oauth-clients/${e}/rotate-secret`,{},{showErrors:!1}))}async function cu(t,e){return a(await i.delete(`/accounts/${t}/iam/oauth-clients/${e}`,{showErrors:!1}))}function lu(t){return i.get(t,{showErrors:!1})}function bg(t){let e=new URLSearchParams;t?.principalType&&e.set("principal_type",t.principalType),t?.principalId&&e.set("principal_id",t.principalId),t?.scopeType&&e.set("scope_type",t.scopeType),t?.scopeId&&e.set("scope_id",t.scopeId),t?.objectType&&e.set("object_type",t.objectType),t?.objectId&&e.set("object_id",t.objectId),t?.roleId&&e.set("role_id",t.roleId),t?.includeExpired&&e.set("include_expired","true");let n=e.toString();return n?`?${n}`:""}async function uu(t,e){return a(await lu(`/accounts/${t}/iam/assignments${bg(e)}`)).assignments}async function pu(t,e){let n={principal_type:e.principal.type,principal_id:e.principal.id,scope_type:e.scope.type,scope_id:e.scope.type==="project"?e.scope.id:null};return e.roleId?n.role_id=e.roleId:n.role_key=e.roleKey,e.object&&(n.object_type=e.object.type,n.object_id=e.object.id),e.expiresAt!==void 0&&(n.expires_at=e.expiresAt),a(await i.post(`/accounts/${t}/iam/assignments`,n))}async function du(t,e){return a(await i.delete(`/accounts/${t}/iam/assignments/${e}`)).assignment}async function gu(t,e){let n=e?.scopeType?`?scope_type=${e.scopeType}`:"";return a(await lu(`/accounts/${t}/iam/permissions${n}`)).permissions}async function Hk(){let t=await i.get("/account/deletion-status",{showErrors:!1});return t.error?.status===404?null:a(t,"Failed to load account deletion status")}async function Wk(t="User requested deletion"){return a(await i.post("/account/request-deletion",{reason:t},{showErrors:!1}),"Failed to request account deletion")}async function zk(){return a(await i.post("/account/cancel-deletion",void 0,{showErrors:!1}),"Failed to cancel account deletion")}async function Vk(){return a(await i.delete("/account/delete-immediately",{showErrors:!1}),"Failed to delete account immediately")}async function Jk(){return(await i.get("/user-roles",{showErrors:!1})).data??{isAdmin:!1,role:null}}function Zk(){return i.get("/admin/api/provider-distribution").then(t=>a(t))}function ew(t=300){return i.get(`/admin/api/sandboxes?limit=${t}`).then(e=>a(e))}function tw(t){return i.put("/admin/api/provider-distribution",t).then(e=>a(e))}function nw(t){return i.get(`/admin/api/provider-analytics?days=${t}`).then(e=>a(e))}function rw(t,e){return i.post(`/admin/api/sandboxes/${encodeURIComponent(t)}/migrate`,{targetProvider:e}).then(n=>a(n))}function sw(){return i.get("/admin/api/provider-fallback").then(t=>a(t))}function iw(t){return i.put("/admin/api/provider-fallback",{enabled:t}).then(e=>a(e))}async function lw(t){return a(await i.get(`/google/auth-url?return_url=${encodeURIComponent(t)}`),"Failed to get Google auth URL")}async function uw(t,e){return a(await i.post("/presentation-tools/convert-and-upload-to-slides",{presentation_path:t,sandbox_url:e},{timeout:18e4}),"Failed to upload to Google Slides")}async function mu(t,e){let n=new URLSearchParams;e?.segment&&n.set("segment",e.segment),e?.kind&&n.set("kind",e.kind);let r=n.toString();return a(await i.get(`/projects/${t}/review/items${r?`?${r}`:""}`,{showErrors:!1}))}async function fu(t,e){return a(await i.get(`/projects/${t}/review/items/${e}`))}async function yu(t,e){return a(await i.post(`/projects/${t}/review/items`,e))}async function hu(t,e,n){return a(await i.post(`/projects/${t}/review/items/${e}/act`,n))}async function bu(t,e){return a(await i.post(`/projects/${t}/review/bulk`,e))}async function xu(t){return a(await i.get(`/p/share?sandbox_id=${encodeURIComponent(t)}`),"Failed to load public links").shares??[]}async function _u(t){return a(await i.post("/p/share",{sandbox_id:t.sandboxId,port:t.port,ttl:t.ttl,label:t.label}),"Failed to generate public URL")}async function Pu(t,e){let n=await i.delete(`/p/share/${encodeURIComponent(e)}?sandbox_id=${encodeURIComponent(t)}`);if(!n.success)throw new Error(n.error?.message??"Failed to revoke public link")}var ns=class extends Error{constructor(n,r){super(n);this.status=r;this.name="PublicSessionShareError"}status};function ku(t,e=""){return`${Ge()}/public/session-shares/${encodeURIComponent(t)}${e}`}async function wu(t){let e=await fetch(t,{method:"GET",headers:{Accept:"application/json"}}),n=await e.text().catch(()=>""),r=null;try{r=n?JSON.parse(n):null}catch{}if(!e.ok){let s=(r&&typeof r=="object"&&"error"in r&&typeof r.error=="string"?r.error:null)||e.statusText||`HTTP ${e.status}`;throw new ns(s,e.status)}return r}async function xw(t){return wu(ku(t))}async function _w(t){return wu(ku(t,"/messages"))}async function Su(t,e){let n=new URLSearchParams;t&&n.set("account_id",t),e?.mine&&n.set("mine","true");let r=n.size>0?`?${n.toString()}`:"";return a(await i.get(`/accounts/tokens${r}`))}async function vu(t){let{accountId:e,expiresAt:n,projectId:r,name:s}=t;return a(await i.post("/accounts/tokens",{name:s,...e?{account_id:e}:{},...n?{expires_at:n}:{},...r?{project_id:r}:{}}))}async function Cu(t,e){let n=e?`?account_id=${encodeURIComponent(e)}`:"";return a(await i.delete(`/accounts/tokens/${t}${n}`))}async function Au(t){return a(await i.get(`/projects/${t}/cli-token`))}async function Ru(t,e){return a(await i.post(`/projects/${t}/cli-token`,e??{}))}async function Tu(t,e){return a(await i.delete(`/projects/${t}/cli-token/${e}`))}async function Iu(t,e){let n=new URLSearchParams;e?.action&&n.set("action",e.action),e?.actor&&n.set("actor",e.actor),e?.actorType&&n.set("actor_type",e.actorType),e?.projectId&&n.set("project_id",e.projectId),e?.sessionId&&n.set("session_id",e.sessionId),e?.source&&n.set("source",e.source),e?.phase&&n.set("phase",e.phase),e?.outcome&&n.set("outcome",e.outcome),e?.resourceType&&n.set("resource_type",e.resourceType),e?.requestId&&n.set("request_id",e.requestId),e?.correlationId&&n.set("correlation_id",e.correlationId),e?.since&&n.set("since",e.since),e?.until&&n.set("until",e.until),e?.q&&n.set("q",e.q),e?.cursor&&n.set("cursor",e.cursor),e?.limit!=null&&n.set("limit",String(e.limit));let r=n.toString();return a(await i.get(`/accounts/${t}/audit${r?`?${r}`:""}`))}async function Eu(t,e){let n=new URLSearchParams;e?.action&&n.set("action",e.action),e?.actor&&n.set("actor",e.actor),e?.actorType&&n.set("actor_type",e.actorType),e?.sessionId&&n.set("session_id",e.sessionId),e?.source&&n.set("source",e.source),e?.phase&&n.set("phase",e.phase),e?.outcome&&n.set("outcome",e.outcome),e?.resourceType&&n.set("resource_type",e.resourceType),e?.requestId&&n.set("request_id",e.requestId),e?.correlationId&&n.set("correlation_id",e.correlationId),e?.since&&n.set("since",e.since),e?.until&&n.set("until",e.until),e?.q&&n.set("q",e.q),e?.cursor&&n.set("cursor",e.cursor),e?.limit!=null&&n.set("limit",String(e.limit));let r=n.toString();return a(await i.get(`/projects/${t}/audit${r?`?${r}`:""}`))}async function ju(t,e){let n=new URLSearchParams;e?.format&&n.set("format",e.format),e?.action&&n.set("action",e.action),e?.actor&&n.set("actor",e.actor),e?.actorType&&n.set("actor_type",e.actorType),e?.projectId&&n.set("project_id",e.projectId),e?.sessionId&&n.set("session_id",e.sessionId),e?.source&&n.set("source",e.source),e?.phase&&n.set("phase",e.phase),e?.outcome&&n.set("outcome",e.outcome),e?.resourceType&&n.set("resource_type",e.resourceType),e?.requestId&&n.set("request_id",e.requestId),e?.correlationId&&n.set("correlation_id",e.correlationId),e?.since&&n.set("since",e.since),e?.until&&n.set("until",e.until),e?.q&&n.set("q",e.q),e?.cursor&&n.set("cursor",e.cursor),e?.limit!=null&&n.set("limit",String(e.limit));let r=n.toString();return a(await i.get(`/accounts/${t}/audit/export${r?`?${r}`:""}`))}async function $u(t){return a(await i.get(`/accounts/${t}/audit/webhooks`))}async function Mu(t,e){return a(await i.post(`/accounts/${t}/audit/webhooks`,e))}async function qu(t,e,n){return a(await i.patch(`/accounts/${t}/audit/webhooks/${e}`,n))}async function Du(t,e){return a(await i.delete(`/accounts/${t}/audit/webhooks/${e}`))}async function Ou(t,e){return a(await i.post(`/projects/${t}/secret-requests`,{names:e.names,labels:e.labels,descriptions:e.descriptions,scope:e.scope,expires_in_minutes:e.expiresInMinutes}),"Failed to mint secret-entry link")}async function Uu(t,e){return a(await i.post(`/projects/${t}/connect-requests`,{slug:e.slug,expires_in_minutes:e.expiresInMinutes}),"Failed to mint connect link")}async function Iw(t){return a(await i.get(`/approval-links/${t}`),"Failed to load approval")}async function Fu(t){let e=new URLSearchParams;t?.query&&e.set("query",t.query),t?.type&&e.set("type",t.type),t?.source&&e.set("source",t.source),t?.limit!==void 0&&e.set("limit",String(t.limit)),t?.offset!==void 0&&e.set("offset",String(t.offset));let n=e.toString()?`?${e.toString()}`:"";return a(await i.get(`/marketplace/items${n}`))}async function Lu(){return a(await i.get("/marketplace/marketplaces"))}async function Gu(){return a(await i.get("/marketplace/marketplaces/featured"))}async function Bu(t){return a(await i.get(`/marketplace/items/${encodeURIComponent(t)}`),"Item not found")}async function Nu(t,e){return a(await i.get(`/marketplace/items/${encodeURIComponent(t)}/file?path=${encodeURIComponent(e)}`),"File not found")}async function Ku(){return a(await i.get("/marketplace/sources"))}async function Hu(t){return a(await i.post("/marketplace/sources",t),"Failed to add marketplace source")}async function Wu(t){return a(await i.delete(`/marketplace/sources/${encodeURIComponent(t)}`),"Failed to remove marketplace source")}async function Mw(t,e){return a(await i.post(`/projects/${encodeURIComponent(t)}/marketplace/install-session`,{id:e}),"Failed to start marketplace install session")}async function Uw(t){return a(await i.get(`/templates/${encodeURIComponent(t)}`))}async function Fw(t,e){return a(await i.post(`/templates/${encodeURIComponent(t)}/install`,e))}async function zu(t){return a(await i.get(`/projects/${t}/apps`),"Failed to list Apps").apps}async function Vu(t,e){return a(await i.post(`/projects/${t}/apps`,e),"Failed to create App")}async function Ju(t,e){return a(await i.get(`/projects/${t}/apps/${e}`),"Failed to load App")}async function Xu(t,e,n){return a(await i.patch(`/projects/${t}/apps/${e}`,n),"Failed to update App")}async function Qu(t,e){return a(await i.delete(`/projects/${t}/apps/${e}`),"Failed to delete App")}async function Yu(t,e){return a(await i.get(`/projects/${t}/apps/${e}/access`),"Failed to load App access policy")}async function Zu(t,e,n){return a(await i.patch(`/projects/${t}/apps/${e}/access`,n),"Failed to update App access policy")}async function ep(t,e){return a(await i.post(`/projects/${t}/apps/${e}/access-session`,{}),"Failed to create App access session")}async function rs(t,e){return a(await i.post(`/projects/${t}/apps/artifacts`,e),"Failed to register App artifact")}async function ss(t,e,n){return a(await i.post(`/projects/${t}/apps/artifacts/${e}/finalize`,n),"Failed to finalize App artifact")}async function xg(t){return t instanceof Uint8Array?t:new Uint8Array(await t.arrayBuffer())}async function _g(t){let e=Uint8Array.from(t),n=await globalThis.crypto.subtle.digest("SHA-256",e.buffer);return Array.from(new Uint8Array(n),r=>r.toString(16).padStart(2,"0")).join("")}async function tp(t,e,n={}){let r=await xg(e),s=n.mediaType??"application/gzip",o=await rs(t,{kind:"archive",media_type:s});if(!o.upload)throw new Error("App artifact registration did not return an upload URL");if(r.byteLength>o.upload.max_bytes)throw new Error(`App artifact exceeds ${o.upload.max_bytes} bytes`);n.onProgress?.(0,r.byteLength);let u=await fetch(o.upload.url,{method:"PUT",body:new Blob([Uint8Array.from(r).buffer],{type:s}),signal:n.signal,headers:{"content-type":s,"x-upsert":"false"}});if(!u.ok){let p=await u.text().catch(()=>"");throw new Error(`App artifact upload failed with HTTP ${u.status}${p?`: ${p}`:""}`)}return n.onProgress?.(r.byteLength,r.byteLength),ss(t,o.artifact.artifact_id,{sha256:await _g(r),size_bytes:r.byteLength})}async function np(t,e,n){return a(await i.post(`/projects/${t}/apps/${e}/deployments`,n),"Failed to create App deployment")}async function rp(t,e){return a(await i.get(`/projects/${t}/apps/${e}/deployments`),"Failed to list App deployments").deployments}async function sp(t,e,n){return a(await i.get(`/projects/${t}/apps/${e}/deployments/${n}`),"Failed to load App deployment")}async function ip(t,e,n,r={}){let s=new URLSearchParams;r.after!==void 0&&s.set("after",String(r.after)),r.limit!==void 0&&s.set("limit",String(r.limit));let o=s.size?`?${s.toString()}`:"";return a(await i.get(`/projects/${t}/apps/${e}/deployments/${n}/logs${o}`),"Failed to load App logs")}async function op(t,e){return a(await i.post(`/projects/${t}/apps/${e}/start`,{}),"Failed to start App")}async function ap(t,e){return a(await i.post(`/projects/${t}/apps/${e}/stop`,{}),"Failed to stop App")}async function cp(t,e,n){return a(await i.post(`/projects/${t}/apps/${e}/rollback`,{deployment_id:n}),"Failed to roll back App")}var Ye=class extends Error{constructor(n,r,s){super(r);this.code=n;this.status=s;this.name="HeadlessAuthError"}code;status};function Pg(t){let e=ae(t?.backendUrl??$().backendUrl??"");if(!e)throw new Ye("not_configured","backendUrl is not configured (configureKortix / createKortix first)",0);return e.endsWith("/v1")?e:`${e}/v1`}async function ee(t,e,n){let r=n?.fetch??$().fetch??((d,f)=>fetch(d,f)),s={accept:"application/json"};e.body!==void 0&&(s["content-type"]="application/json"),e.bearer&&(s.authorization=`Bearer ${e.bearer}`);let o=await r(`${Pg(n)}${t}`,{method:e.method??(e.body!==void 0?"POST":"GET"),headers:s,...e.body!==void 0?{body:JSON.stringify(e.body)}:{},...n?.signal?{signal:n.signal}:{}}),u=await o.text().catch(()=>""),p=null;try{p=u?JSON.parse(u):null}catch{p=u}if(!o.ok){let d=p&&typeof p=="object"?p:{};throw new Ye(typeof d.error=="string"?d.error:"auth_error",typeof d.error_description=="string"&&d.error_description?d.error_description:typeof d.error=="string"?d.error:o.statusText||`HTTP ${o.status}`,o.status)}return p}function is(t,e){return ee("/auth/signup",{body:t},e)}function os(t,e){return ee("/auth/sign-in/password",{body:t},e)}function as(t,e){return ee("/auth/sign-in/magic-link",{body:t},e)}function cs(t,e){return ee("/auth/verify-otp",{body:t},e)}function ls(t,e){return ee("/auth/sign-in/oauth",{body:t},e)}function us(t,e){return ee("/auth/oauth/exchange",{body:t},e)}function Ze(t,e){return ee("/auth/refresh",{body:t},e)}function ps(t,e){return ee("/auth/password/reset",{body:t},e)}function ds(t,e,n){return ee("/auth/password/update",{body:t,bearer:e},n)}function gs(t,e){return ee("/auth/user",{bearer:t},e)}function ms(t,e={},n){return ee("/auth/sign-out",{body:e,bearer:t},n)}function fs(t={}){let e=t.refreshSkewSeconds??60,n=t.now??(()=>Date.now()),r=null,s=null,o=!t.storage,u=null,p=x=>(x.expires_at??0)*1e3,d=x=>p(x)-e*1e3<=n();async function f(){t.storage&&(r?await t.storage.set(JSON.stringify({session:r,user:s})):await t.storage.remove()),t.onChange?.(r)}async function m(){if(o)return r;o=!0;let x=await t.storage.get();if(x)try{let P=JSON.parse(x);P.session?.access_token&&P.session?.refresh_token&&(r=P.session,s=P.user??null)}catch{r=null}return r}async function h(){if(await m(),!r)return null;if(!u){let x=r.refresh_token;u=Ze({refresh_token:x},t.request).then(async P=>(r=P.session,P.user&&(s=P.user),await f(),r)).catch(async P=>{let A=P&&typeof P=="object"&&"status"in P?P.status:0;if(A>=400&&A<500)return r=null,s=null,await f(),null;throw P}).finally(()=>{u=null})}return u}return{current:()=>r,user:()=>s,load:m,async set(x,P){await m(),r=x,P!==void 0&&(s=P),x||(s=null),await f()},async getToken(){return await m(),r?d(r)?(await h().catch(()=>r))?.access_token??null:r.access_token:null},refresh:h,async clear(){r=null,s=null,o=!0,await f()}}}var wg=["control_plane","provider_ingress","daemon","upstream_port"];function lp(t){return typeof t=="string"&&wg.includes(t)?t:null}function Xw(t){return t?t.runtimeReady!==void 0?t.runtimeReady===!0:t.opencode!==void 0?t.opencode==="ok"||t.opencode===!0:t.status!=="starting"&&t.status!=="down"&&t.status!=="error":!1}async function up(t,e){let n=(t===void 0?re():t)||null;if(!n)return{status:0,ok:!1,health:null,body:"",hop:null,upstreamStatus:null};let r=await M(`${n}/kortix/health`,{method:"GET",...e},{retryOnAuthError:!1}),s=await r.text().catch(()=>""),o=null;try{o=s?JSON.parse(s):null}catch{o=null}let u=o,p=lp(r.headers.get("X-Kortix-Proxy-Hop"))??lp(o?.hop),d=Number(r.headers.get("X-Kortix-Upstream-Status")),f=o?.upstream_status,m=Number.isFinite(d)&&d>0?d:typeof f=="number"?f:null;return{status:r.status,ok:r.ok,health:u,body:s,hop:p,upstreamStatus:m}}var ue={DESKTOP:"6080",DESKTOP_HTTPS:"6081",PRESENTATION_VIEWER:"3210",STATIC_FILE_SERVER:"3211",KORTIX_MASTER:"8000",BROWSER_STREAM:"9223",BROWSER_VIEWER:"9224",SSH:"22"};var pp=/https?:\/\/(?:localhost|127\.0\.0\.1):\d{1,5}[^\s)"'<>]*/g,dp=/^https?:\/\/p(\d+)-([^.]+)\.localhost(?::(\d+))?(\/.*)?$/,gp=/^https?:\/\/(?:dev|staging|prod|preview)-p(\d+)-([a-z0-9-]+)\.[^/]+?(?::(\d+))?(\/.*)?$/i,mp=new Set([22,4096,parseInt(ue.KORTIX_MASTER,10)]);function Sg(t){return dp.test(t)}function qt(t){if(!t)return"/";let e=t,n=e.indexOf("](");n!==-1&&(e=e.slice(0,n));let r=e.toLowerCase().indexOf("%5d(");return r!==-1&&(e=e.slice(0,r)),e?e.startsWith("/")?e:`/${e}`:"/"}function vg(t){let e=t.indexOf("](");return e===-1?t:t.slice(0,e)}var Cg=new Set(["'",'"',"`","<","(","["]),Ag=new Set([">","'",'"',"`",")","]",",",";",".","!","?"]);function Rg(t){let e=0,n=t.length;for(;e<n&&(t[e]===" "||t[e]===" ");)e++;for(;n>e&&(t[n-1]===" "||t[n-1]===" ");)n--;for(;e<n&&Cg.has(t[e]);)e++;for(;n>e&&Ag.has(t[n-1]);)n--;return t.slice(e,n)}function Tg(t){return t.match(/https?:\/\/(?:localhost|127\.0\.0\.1):\d{1,5}[^\s"'<>)]*/i)?.[0]??null}var Ig=/^\/proxy\/(\d{1,5})(\/.*)?$/,Eg=/^\/(connectors|settings|dashboard|projects|agents|skills|tools|commands|support|changelog|files|p|browser|desktop|terminal|sessions|services|workspace|channels|scheduled-tasks|marketplace|templates|tunnel|admin|auth)(\/|$|\?)/;function jg(t){if(!t)return!1;try{let e=new URL(t);return e.hostname!=="localhost"&&e.hostname!=="127.0.0.1"?!1:Eg.test(e.pathname)}catch{return!1}}function Dt(t){if(!t)return null;let e=Rg(vg(t.trim())),n=xp(e);if(n){let r=qt(n.path||"/");return{originalUrl:`http://localhost:${n.port}${r}`,port:n.port,path:r}}try{let r=new URL(e);if(r.protocol!=="http:"&&r.protocol!=="https:"||r.hostname!=="localhost"&&r.hostname!=="127.0.0.1"||!r.port)return null;let s=parseInt(r.port,10);if(!Number.isInteger(s)||s<1||s>65535)return null;let o=`${r.pathname||"/"}${r.search}${r.hash}`,u=parseInt(ue.KORTIX_MASTER,10);if(s===u){let d=r.pathname.match(Ig);if(d){let f=parseInt(d[1],10);if(f>=1&&f<=65535)return s=f,o=qt(`${d[2]||"/"}${r.search}${r.hash}`),{originalUrl:`http://localhost:${s}${o}`,port:s,path:o}}}let p=qt(o);return{originalUrl:`${r.protocol}//${r.hostname}:${s}${p}`,port:s,path:p}}catch{let r=Tg(t);return r&&r!==t?Dt(r):null}}function $g(t){let e=[],n=/```[\s\S]*?```/g,r;for(;(r=n.exec(t))!==null;)e.push([r.index,r.index+r[0].length]);let s=/`[^`\n]+`/g;for(;(r=s.exec(t))!==null;){let o=r.index,u=o+r[0].length;e.some(([d,f])=>o>=d&&u<=f)||e.push([o,u])}return e}function Mg(t,e){return e.some(([n,r])=>t>=n&&t<r)}function qg(t){let e=[],n=new Set,r=$g(t);pp.lastIndex=0;let s;for(;(s=pp.exec(t))!==null;){let o=Dt(s[0]);if(!o)continue;let{originalUrl:u,port:p,path:d}=o;p<1||p>65535||mp.has(p)||n.has(u)||(n.add(u),e.push({originalUrl:u,port:p,path:d,startIndex:s.index,endIndex:s.index+u.length,inCodeBlock:Mg(s.index,r)}))}return e}function eS(t){return qg(t).length>0}function Dg(t){try{let{hostname:e}=new URL(t);return e==="localhost"||e==="127.0.0.1"}catch{return!1}}function fp(t){return t.trim().toLowerCase().split("_").join("-")}function yp(t){let e=t.length;for(;e>0&&t.charCodeAt(e-1)===47;)e--;return t.slice(0,e)}function Og(t,e,n){let r=n.previewUrlTemplate;if(!r||!r.includes("{port}")||!r.includes("{sandbox}"))return null;let s=r.split("{port}").join(String(t)).split("{sandbox}").join(fp(n.sandboxId));return`${yp(s)}${e}`}function Ug(t){return t.sandboxId.trim().length>0}function _e(t,e,n){let r=qt(e);if(!Ug(n))return Bg(t,r);let s=Og(t,r,n);return s||(Dg(n.apiBaseUrl)?`http://p${t}-${fp(n.sandboxId)}.localhost:${n.backendPort}${r}`:`${yp(n.apiBaseUrl)}/p/${n.sandboxId}/${t}${r}`)}function tS(t,e){if(!t)return;let r=t.replace(/^\/workspace\//,"").replace(/^\/+/,"").split("/").filter(Boolean).map(s=>encodeURIComponent(s)).join("/");return _e(3211,`/open?path=/workspace/${r}`,e)}function Fg(t){return`/open?path=/${(t.startsWith("/workspace")?t:`/workspace/${t.replace(/^\/+/,"")}`).split("/").filter(Boolean).map(r=>encodeURIComponent(r)).join("/")}`}function nS(t){return`http://localhost:3211${Fg(t)}`}function Lg(){return"/health"}function rS(t){return _e(3211,Lg(),t)}function sS(t,e){return _e(t,"/",e)}function Gg(t){let e=Dt(t);return!(!e||mp.has(e.port)||jg(t))}function hp(t,e){if(!t)return t;let n=Dt(t);return n?Gg(n.originalUrl)?_e(n.port,n.path,e):n.originalUrl:t}function Bg(t,e="/"){return`http://localhost:${t}${e}`}var bp=/^https?:\/\/[^/]+\/v1\/p\/([^/]+)\/(\d+)(\/.*)?$/;function xp(t){let e=t.match(dp);if(e)return{port:parseInt(e[1],10),sandboxId:e[2],backendPort:e[3]?parseInt(e[3],10):80,path:e[4]||"/"};let n=t.match(gp);if(n){let s=443;try{let o=new URL(t);s=o.port?parseInt(o.port,10):o.protocol==="https:"?443:80}catch{return null}return{port:parseInt(n[1],10),sandboxId:n[2],backendPort:s,path:n[4]||"/"}}let r=t.match(bp);if(r)try{let s=new URL(t);return{port:parseInt(r[2],10),sandboxId:r[1],backendPort:parseInt(s.port,10)||(s.protocol==="https:"?443:80),path:r[3]||"/"}}catch{return null}return null}function iS(t){try{let e=xp(t);return e?`http://localhost:${e.port}${e.path}`:null}catch{return null}}function oS(t){return Sg(t)||gp.test(t)||bp.test(t)}function aS(t){try{let{hostname:e,port:n}=new URL(t);return(e==="localhost"||e==="127.0.0.1")&&n!==""}catch{return!1}}var et="/web-proxy/";function cS(t,e){try{let n=new URL(t);if(n.protocol!=="http:"&&n.protocol!=="https:")return null;let r=n.protocol.replace(":",""),s=`${et}${r}/${n.host}${n.pathname}${n.search}${n.hash}`,o=parseInt(ue.KORTIX_MASTER,10);return`${_e(o,"/",e).replace(/\/$/,"")}${s}`}catch{return null}}function lS(t){try{let e=new URL(t),n=e.pathname.indexOf(et);if(n===-1)return null;let s=e.pathname.slice(n+et.length).match(/^(https?)\/([\w.\-]+(?::\d+)?)(\/.*)?$/);if(!s)return null;let o=s[1],u=s[2],p=s[3]||"/";return`${o}://${u}${p}${e.search}${e.hash}`}catch{return null}}function uS(t){try{return new URL(t).pathname.includes(et)}catch{return t.includes(et)}}function pS(t){if(!t)return!1;let e=t.trim();return!!(/^https?:\/\/(?!localhost|127\.0\.0\.1)/i.test(e)||/^[a-z0-9][\w.-]*\.[a-z]{2,}/i.test(e))}function dS(t){let e=t.trim();return e?/^https?:\/\//i.test(e)?e:/^[a-z0-9][\w.-]*\.[a-z]{2,}/i.test(e)?`https://${e}`:null:null}var _p="frontend";function Ot(t,e,n){(t==="error"?console.error:t==="warn"?console.warn:t==="debug"?console.debug:console.log)(`[${_p}] ${e}`,...n?[n]:[]);try{be().app.log({service:_p,level:t,message:e,extra:n})}catch{}}var pe={debug:(t,e)=>Ot("debug",t,e),info:(t,e)=>Ot("info",t,e),warn:(t,e)=>Ot("warn",t,e),error:(t,e)=>Ot("error",t,e)};function Ng(t){return{type:"heartbeat-gap",gapMs:t}}function Kg(t){switch(t.type){case"message.updated":return{type:"message.updated",sessionID:t.properties.sessionID,message:t.properties.info};case"message.removed":return{type:"message.removed",sessionID:t.properties.sessionID,messageID:t.properties.messageID};case"message.part.updated":return{type:"message.part.updated",sessionID:t.properties.sessionID,part:t.properties.part};case"message.part.removed":return{type:"message.part.removed",sessionID:t.properties.sessionID,messageID:t.properties.messageID,partID:t.properties.partID};case"session.status":return{type:"session.status",sessionID:t.properties.sessionID,status:t.properties.status};case"session.idle":return{type:"session.idle",sessionID:t.properties.sessionID};case"session.error":return{type:"session.error",sessionID:t.properties.sessionID,error:t.properties.error};case"question.asked":return{type:"question.asked",sessionID:t.properties.sessionID,requestID:t.properties.id,questions:t.properties.questions,tool:t.properties.tool};case"question.replied":return{type:"question.answered",sessionID:t.properties.sessionID,requestID:t.properties.requestID,outcome:"replied",answers:t.properties.answers};case"question.rejected":return{type:"question.answered",sessionID:t.properties.sessionID,requestID:t.properties.requestID,outcome:"rejected"};case"permission.asked":return{type:"permission.asked",sessionID:t.properties.sessionID,requestID:t.properties.id,permission:t.properties.permission,patterns:t.properties.patterns,tool:t.properties.tool};case"permission.replied":return{type:"permission.replied",sessionID:t.properties.sessionID,requestID:t.properties.requestID,reply:t.properties.reply};case"todo.updated":return{type:"todo.updated",sessionID:t.properties.sessionID,todos:t.properties.todos};case"server.connected":return{type:"connection",status:"connected"};default:return null}}var Hg={now:()=>Date.now(),setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t)},Wg=16,zg=8,Vg=6e4,Jg=5e3,Xg=250,Qg=1e3,Yg=3e4,Zg=5,em=3e3,tm=3e4,nm=2e4,rm=2e3,sm=8;function im(t){if(t.type==="session.status")return`session.status:${t.properties.sessionID}`;if(t.type==="lsp.updated")return"lsp.updated"}function Pp(t){if(t.aborted)return{promise:Promise.resolve(),cleanup:()=>{}};let e=()=>{};return{promise:new Promise(r=>{e=()=>r(),t.addEventListener("abort",e,{once:!0})}),cleanup:()=>t.removeEventListener("abort",e)}}var Ut=new WeakMap;function om(t,e,n){let r=e.timers??Hg,s=e.connectTimeoutMs??nm,o=e.heartbeatTimeoutMs??Vg,u=e.maxConsecutiveHardFailures??sm,p=new AbortController;function d(E,...l){for(let b of n){let c=E(b);if(c)try{c(...l)}catch(S){console.warn("[opencode-events] subscriber handler threw, skipping",S)}}}let f=r.now(),m=[],h,x=0,P=new Map,A=()=>{if(h&&r.clearTimeout(h),h=void 0,m.length===0)return;let E=m;m=[],P.clear(),x=r.now(),f=r.now();for(let l of E)l&&d(b=>b.onEvent,l.event)},I=()=>{if(h)return;let E=r.now()-x;h=r.setTimeout(A,Math.max(0,Wg-E))};return(async()=>{let E=0,l=0;for(;!p.signal.aborted;){let b=!1,c=!1,S,w,R=null,j=r.now(),D=new AbortController,q=Pp(p.signal);q.promise.then(()=>D.abort());try{let U=await new Promise((Q,K)=>{let H=!1;w=r.setTimeout(()=>{H||(H=!0,pe.warn("SSE connect timed out, forcing reconnect",{connectTimeoutMs:s}),D.abort(),K(new Error(`SSE connect timed out after ${s}ms`)))},s),t.global.event({signal:D.signal,sseDefaultRetryDelay:em,sseMaxRetryDelay:tm,sseMaxRetryAttempts:1}).then(Z=>{H||(H=!0,r.clearTimeout(w),Q(Z))},Z=>{H||(H=!0,r.clearTimeout(w),K(Z))})}),{stream:F}=U;f=r.now();let L=()=>{r.clearTimeout(S),S=r.setTimeout(()=>{pe.warn("SSE heartbeat timeout, forcing reconnect"),D.abort()},o)};L();let J=r.now(),N=F[Symbol.asyncIterator]();for(;!D.signal.aborted;){let Q=N.next().then(ie=>({kind:"next",result:ie}),ie=>({kind:"error",error:ie})),K=Pp(D.signal),H=await Promise.race([Q,K.promise.then(()=>({kind:"aborted"}))]);if(K.cleanup(),H.kind==="aborted")break;if(H.kind==="error")throw H.error;if(H.result.done)break;b=!0,L();let Z=H.result.value,we=Z&&typeof Z=="object"&&"payload"in Z?Z.payload:Z;if(!we?.type)continue;let Qt=im(we);if(Qt){let ie=P.get(Qt);ie!==void 0&&(m[ie]=void 0),P.set(Qt,m.length)}m.push({type:we.type,event:we}),I(),!(r.now()-J<zg)&&(J=r.now(),await new Promise(ie=>r.setTimeout(ie,0)))}c=b}catch(U){if(p.signal.aborted)break;R=U;let F=String(U),L=F.includes("401")||F.includes("403")||F.includes("Unauthorized")||F.includes("Token refresh failed");if(pe.error("SSE event stream error",{error:F,retryCount:E,isAuthError:L}),L)try{dt(),await kr(),pe.info("SSE: refreshed auth token after auth error")}catch(J){pe.error("SSE: failed to refresh auth token",{error:String(J)})}}finally{r.clearTimeout(S),r.clearTimeout(w),D.abort(),q.cleanup(),A()}if(p.signal.aborted)break;let X=r.now()-j,W=R?.cause?.status;if(l=!b&&(typeof W=="number"&&W>=400||X<rm)?l+1:0,l>=u){pe.error("SSE event stream parked \u2014 giving up after consecutive hard failures",{consecutiveFailures:l,lastError:String(R)}),d(U=>U.onParked,{consecutiveFailures:l,lastError:R});break}let T=r.now()-f;T>Jg&&d(U=>U.onGapRehydrate,T),c?E=0:(E++,E>1&&pe.warn("SSE event stream reconnecting",{retryCount:E}));let z=c?Xg:Math.min(Qg*2**Math.min(E-1,Zg),Yg);await new Promise(U=>{let F=r.setTimeout(U,z),L=()=>{r.clearTimeout(F),U()};p.signal.addEventListener("abort",L,{once:!0})})}})(),{subscribers:n,teardown:()=>{p.abort(),h&&r.clearTimeout(h)}}}function ys(t){let{client:e,onEvent:n,onGapRehydrate:r,onParked:s,signal:o}=t,u={onEvent:n,onGapRehydrate:r,onParked:s},p=Ut.get(e);p?p.subscribers.add(u):(p=om(e,t,new Set([u])),Ut.set(e,p));let d=p,f=!1,m=()=>{f||(f=!0,o&&o.removeEventListener("abort",h),d.subscribers.delete(u),d.subscribers.size===0&&(d.teardown(),Ut.get(e)===d&&Ut.delete(e)))},h=()=>m();return o&&(o.aborted?m():o.addEventListener("abort",h,{once:!0})),{close:m}}function am(){return be()}var Ft=new Map,Lt=class extends Error{constructor(e){super(`Session runtime not ready \u2014 call \`await session.ensureReady()\` (it drives \`start()\` to completion and resolves this session's own sandbox runtime) before calling \`${e}\`.`),this.name="SessionNotReadyError"}};function cm(t,e){Zt(t,e);function n(l){try{return new URL(l)}catch{if(typeof window<"u"&&window.location?.origin)try{return new URL(l,window.location.origin)}catch{return null}throw new C(`Kortix SDK: backendUrl must be an absolute URL outside the browser (got ${JSON.stringify(l)}). Relative paths like "/api/kortix" only resolve against a page origin \u2014 configure an absolute backendUrl for server-side hosts.`,{code:"INVALID_BACKEND_URL"})}}function r(l){let b=$().backendUrl??t.backendUrl,c=80,S=n(b);return S&&(c=S.port?Number(S.port):S.protocol==="https:"?443:80),ai({sandboxId:l,apiBaseUrl:b,backendPort:c})}let s={signUp:is,signInWithPassword:os,sendMagicLink:as,verifyOtp:cs,signInWithProvider:ls,exchangeCode:us,refresh:Ze,resetPassword:ps,updatePassword:ds,user:gs,signOut:ms,session:fs},o={list:Si,get:Ci,create:vi,updateName:Ai,branding:{get:Ri,update:Ti,uploadAsset:Ii,removeAsset:Ei,reset:ji},leave:Ni,members:$i,invite:Mi,removeMember:Gi,updateMemberRole:Bi,invites:qi,cancelInvite:Di,resendInvite:Oi,tokens:{list:Su,create:vu,revoke:Cu},audit:{log:Iu,export:ju,webhooks:{list:$u,create:Mu,update:qu,remove:Du}}},u={assignments:{list:uu,create:pu,revoke:du},permissions:{list:gu,forRole:Jl},roles:{list:zl,create:Ql,update:Yl,setPermissions:Zl,remove:eu,usage:Xl},groups:{list:Fl,get:Ll,create:Gl,update:Bl,remove:Nl,members:{list:Kl,add:Hl,remove:Wl}},agentIdentities:Vl,oauthClients:{list:ru,get:su,create:iu,update:ou,rotateSecret:au,remove:cu},can:tu,canBatch:nu},p={accountState:Gc,accountStateMinimal:Bc,transactions:Nc,transactionsSummary:Kc,creditBreakdown:Hc,usageHistory:Wc,usageRollup:il,sessionCosts:{list:al,get:es},tierConfigurations:zc,checkout:{createSession:l=>Vc(l),confirmSession:(l,b)=>Jc(l,b)},subscription:{createPortalSession:(l,b)=>Xc(l,b),cancel:(l,b)=>Qc(l,b),reactivate:l=>Yc(l),scheduleDowngrade:(l,b,c)=>Zc(l,b,c),cancelScheduledChange:l=>el(l),prorationPreview:(l,b)=>tl(l,b)},credits:{purchase:l=>nl(l),autoTopupSettings:l=>rl(l),configureAutoTopup:l=>sl(l)}},d={describe:Ui,accept:Fi,decline:Li},f={list:Me,listForAccount:Wi,get:Dr,detail:Or,create:Xi,createRepo:Qi,provision:Yi,update:Lr,archive:Gr,llmCatalog:Ur,modelPicker:Fr,sandboxHealth:Wr,sandboxTemplates:Sa,sessions:Xe,createSession:Qe},m={linkRepository:ro,getInstallation:so,listInstallations:io,listLinkableInstallations:oo,listRepositories:ao,listRepositoryBranches:co,linkInstallation:uo,saveInstallation:lo,deleteInstallation:po},h={list:xu,create:_u,revoke:Pu},x=xa,P={items:l=>Fu(l),item:l=>Bu(l),itemFile:(l,b)=>Nu(l,b),marketplaces:()=>Lu(),featured:()=>Gu(),sources:{list:()=>Ku(),add:l=>Hu(l),remove:l=>Wu(l)}};function A(l){return{catalog:()=>Nr(l),tools:()=>Tt(l),search:(...b)=>Ko(l,...b),describe:(...b)=>Ho(l,...b),call:(...b)=>Wo(l,...b),uploadAttachment:(...b)=>zo(l,...b)}}function I(l){let b={list:()=>Vo(l),listAll:()=>Jo(l),reconcile:(...c)=>Xo(l,...c),reconcileMember:(...c)=>Qo(l,...c),updateCredential:(...c)=>Yo(l,...c),revoke:(...c)=>Zo(l,...c),activate:(...c)=>ea(l,...c),setDefault:(...c)=>ta(l,...c),pipedreamConnect:(...c)=>na(l,...c),pipedreamFinalize:(...c)=>ra(l,...c)};return{get:c=>Dr(l,c),detail:()=>Or(l),audit:c=>Eu(l,c),update:c=>Lr(l,c),archive:()=>Gr(l),llmCatalog:()=>Ur(l),modelPicker:()=>Fr(l),sandboxHealth:()=>Wr(l),onboardingComplete:(...c)=>no(l,...c),apps:{list:()=>zu(l),create:c=>Vu(l,c),get:c=>Ju(l,c),update:(...c)=>Xu(l,...c),access:{get:(...c)=>Yu(l,...c),update:(...c)=>Zu(l,...c),session:(...c)=>ep(l,...c)},remove:c=>Qu(l,c),artifacts:{register:c=>rs(l,c),uploadArchive:(...c)=>tp(l,...c),finalize:(...c)=>ss(l,...c)},deployments:{create:(...c)=>np(l,...c),list:c=>rp(l,c),get:(...c)=>sp(l,...c),logs:(...c)=>ip(l,...c)},start:c=>op(l,c),stop:c=>ap(l,c),rollback:(...c)=>cp(l,...c)},tokens:{list:()=>Au(l),create:c=>Ru(l,c),revoke:c=>Tu(l,c)},setupLinks:{requestSecret:c=>Ou(l,c),requestConnector:c=>Uu(l,c)},validateManifest:c=>Vi(l,c),gitToken:()=>Ji(l),secrets:{list:()=>$o(l),upsert:c=>Mo(l,c),setStrategy:(...c)=>qo(l,...c),broker:(...c)=>Do(l,...c),remove:c=>Go(l,c),setPersonal:(...c)=>Bo(l,...c),removePersonal:c=>No(l,c),setGitCredential:c=>Lo(l,c),startProviderOAuth:(...c)=>Oo(l,...c),pollProviderOAuth:(...c)=>Uo(l,...c),removeProviderOAuth:c=>Fo(l,c)},access:{list:()=>yo(l),invite:(...c)=>xo(l,...c),update:(...c)=>ho(l,...c),revoke:c=>bo(l,c),pendingInvites:()=>_o(l),resendInvite:(...c)=>ko(l,...c),revokeInvite:(...c)=>Po(l,...c),requests:()=>go(l),approveRequest:(...c)=>mo(l,...c),rejectRequest:(...c)=>fo(l,...c),groupGrants:()=>wo(l),attachGroupGrant:(...c)=>So(l,...c),updateGroupGrant:(...c)=>vo(l,...c),detachGroupGrant:c=>Co(l,c),resourceGrants:{list:()=>Ao(l),create:c=>Ro(l,c),remove:c=>To(l,c)}},connectors:{...A(l),list:()=>sa(l),config:(...c)=>pa(l,...c),create:(...c)=>ma(l,...c),remove:(...c)=>ya(l,...c),sync:()=>ia(l),auth:{discover:(...c)=>fa(l,...c)},setName:(...c)=>da(l,...c),setCredentialMode:(...c)=>oa(l,...c),setAuthorizationStrategy:(...c)=>aa(l,...c),setCredential:(...c)=>_a(l,...c),setSensitive:(...c)=>ca(l,...c),connections:b,policies:{get:(...c)=>la(l,...c),set:(...c)=>ua(l,...c)},pipedream:{listApps:(...c)=>ha(l,...c),listSections:(...c)=>ba(l,...c),connect:(...c)=>ga(l,...c),finalize:(...c)=>Pa(l,...c)},discover:{list:(...c)=>Kr(l,...c),detail:(...c)=>Hr(l,...c)}},policies:{list:()=>ka(l),set:(...c)=>wa(l,...c)},triggers:{list:()=>Sc(l),create:(...c)=>vc(l,...c),update:(...c)=>Cc(l,...c),remove:(...c)=>Ac(l,...c),fire:(...c)=>Tc(l,...c),setActivation:(...c)=>Rc(l,...c)},files:{list:c=>$a(l,c),read:(c,S)=>qa(l,c,S),search:(...c)=>Ma(l,...c),archive:(...c)=>Da(l,...c),history:(...c)=>Ga(l,...c)},git:{commits:()=>Ua(l),commit:c=>Fa(l,c),commitDiff:c=>La(l,c),branches:()=>Oa(l),versionDiff:(...c)=>Ba(l,...c),inviteCollaborator:(...c)=>zi(l,...c)},changeRequests:{list:()=>Na(l),get:c=>Ka(l,c),diff:c=>Ha(l,c),mergePreview:c=>Wa(l,c),open:(...c)=>za(l,...c),merge:(...c)=>Va(l,...c),close:(...c)=>Ja(l,...c),reopen:(...c)=>Xa(l,...c),requestChanges:(...c)=>Qa(l,...c)},sessions:{list:c=>Xe(l,c),create:c=>Qe(l,c),ensureWarm:()=>ic(l),claimWarm:c=>oc(l,c)},review:{list:c=>mu(l,c),get:c=>fu(l,c),submit:c=>yu(l,c),act:(...c)=>hu(l,...c),bulkAct:c=>bu(l,c)},approvals:{list:c=>Io(l,c),resolve:(...c)=>jo(l,...c),sessionsNeedingInput:c=>Eo(l,c)},gateway:{logs:c=>vl(l,c),log:c=>Cl(l,c),overview:c=>Al(l,c),series:c=>Rl(l,c),breakdown:c=>Tl(l,c),sessions:c=>Il(l,c),errors:c=>El(l,c),budgets:()=>jl(l),setBudget:c=>$l(l,c),deleteBudget:c=>Ml(l,c),keys:()=>ql(l),createKey:c=>Dl(l,c),revokeKey:c=>Ol(l,c),routing:{get:()=>Pl(l),set:c=>kl(l,c),reset:()=>wl(l),preview:c=>Sl(l,c)},playground:(c,S,w)=>Ul(l,c,S,w)},channels:{slack:{installation:()=>ll(l),connect:c=>ul(l,c),mode:()=>pl(l),manifest:()=>dl(l),disconnect:()=>gl(l),getFile:c=>ml(l,c),uploadFile:c=>fl(l,c)},email:{installation:c=>yl(l,c),mode:()=>hl(l),connect:c=>bl(l,c),disconnect:c=>xl(l,c),updatePolicy:(...c)=>_l(l,...c)}},updateFeatureFlag:(...c)=>Zi(l,...c),updateExperimentalFeature:(...c)=>eo(l,...c),modelDefaults:{get:()=>Mc(l),set:c=>qc(l,c),clear:c=>Dc(l,c)},setDefaultAgent:c=>Lc(l,c),sandbox:{list:()=>ja(l),snapshots:()=>va(l),rebuildSnapshot:c=>Ca(l,c),fixWithAgent:()=>Aa(l),createTemplate:c=>Ra(l,c),updateTemplate:(...c)=>Ta(l,...c),removeTemplate:c=>Ia(l,c),buildTemplate:c=>Ea(l,c),setProvider:c=>to(l,c)},setAgentScope:(...c)=>Uc(l,...c),session:c=>E(l,c)}}function E(l,b){let c=null,S,w,R=null;async function j(){R||(R=Vr(l,b,{showErrors:!1}).then(y=>{let T=typeof y.metadata?.opencode_model=="string"?y.metadata.opencode_model.trim():"",z=T.indexOf("/"),U=z>0&&z<T.length-1?{providerID:T.slice(0,z),modelID:T.slice(z+1)}:void 0,F=y.agent_name?.trim()||void 0;return{model:U,agent:F}}));try{return await R}catch(y){throw R=null,y}}function D(){if(c)return c;let y=Ec(l,b);return y&&(c=y),c}async function q(y){let T=D();if(T)return T;let z=y?.readyTimeoutMs??18e4,U=ht($().backendUrl??t.backendUrl).catch(()=>null),F=`${l}
20
- ${b}`,L=Ft.get(F);if(L)return c=await L,await U,c;let J=(async()=>{let N=Date.now()+z,Q=()=>Math.max(0,N-Date.now()),K=await qe(l,b,Math.min(3e4,Q()));for(;Date.now()<N&&(K==null||(K.stage==="provisioning"||K.stage==="starting")&&K.retriable);)await new Promise(we=>setTimeout(we,Math.min(1e3,Q()))),K=await qe(l,b,Math.min(3e4,Q()));if(!K||K.stage!=="ready"||!K.sandbox||!K.opencode_session_id)throw new C(`Session runtime not ready (stage: ${K?.stage??"unknown"})`,{code:"RUNTIME_UNAVAILABLE"});let H=K.sandbox.external_id;if(!H)throw new C("Session sandbox has no external_id \u2014 cannot resolve its runtime URL",{code:"RUNTIME_UNAVAILABLE"});let Z=gt(H);return zs(Z,H),{opencodeSessionId:K.opencode_session_id,runtimeUrl:Z,sandboxId:H}})();Ft.set(F,J);try{return c=await J,await U,c}finally{Ft.get(F)===J&&Ft.delete(F)}}function X(y){let T=D();if(!T)throw new Lt(y);return T}function W(){c=null,$c(l,b)}return{get:y=>Vr(l,b,y),cost:()=>es(b,{projectId:l}),update:y=>yc(l,b,y),delete:()=>(W(),hc(l,b)),start:(...y)=>qe(l,b,...y),restart:()=>(W(),Et(l,b)),stop:()=>(W(),jt(l,b)),configState:()=>bc(l,b),reloadConfig:y=>(W(),xc(l,b,y)),reloadConfigStream:(...y)=>(W(),_c(l,b,...y)),setSharing:y=>ec(l,b,y),previews:()=>tc(l,b),commit:y=>Ya(l,b,y),publicShares:{list:()=>nc(l,b),create:(...y)=>rc(l,b,...y),revoke:(...y)=>sc(l,b,...y)},audit:(y,T)=>ac(l,b,y,T),transcript:y=>cc(l,b,y),transcriptSync:y=>lc(l,b,y),turn:()=>uc(l,b),prompts:{create:y=>pc(l,b,y),list:()=>dc(l,b),remove:y=>gc(l,b,y),retry:y=>mc(l,b,y),hold:y=>fc(l,b,y)},ensureReady:q,health:y=>up(D()?.runtimeUrl??null,y),previewUrl:(y,T="/")=>_e(y,T,r(X("previewUrl").sandboxId)),proxyUrl:y=>hp(y,r(X("proxyUrl").sandboxId)),setModel:y=>{S=y},changeModel:async y=>{let T=await wc(l,b,y);return R=null,T},scope:()=>Pc(l,b),rescope:y=>kc(l,b,y),setAgent:y=>{w=y},send:async(y,T)=>{let{opencodeSessionId:z,runtimeUrl:U}=await q(),F=T?.model??S,L=T?.agent??w,J=F&&L?{}:await j(),N=F??J.model,Q=L??J.agent;return ce(U).session.prompt({sessionID:z,parts:[{type:"text",text:y}],...N?{model:N}:{},...Q?{agent:Q}:{}})},abort:async()=>{let{opencodeSessionId:y,runtimeUrl:T}=await q();return ce(T).session.abort({sessionID:y})},rewind:async y=>{let{opencodeSessionId:T,runtimeUrl:z}=await q();return ce(z).session.revert({sessionID:T,messageID:y})},restoreRewind:async()=>{let{opencodeSessionId:y,runtimeUrl:T}=await q();return ce(T).session.unrevert({sessionID:y})},stream:async y=>{let{runtimeUrl:T}=await q();return ys({client:ce(T),onEvent:y.onEvent,onGapRehydrate:y.onGapRehydrate,signal:y.signal})},get runtime(){return ce(X("runtime").runtimeUrl)},files:{list:async y=>wt(y,(await q()).runtimeUrl),read:async y=>He(y,(await q()).runtimeUrl),readBlob:async y=>We(y,(await q()).runtimeUrl),status:async()=>St((await q()).runtimeUrl),findFiles:async(y,T)=>vt(y,T,(await q()).runtimeUrl),findText:async y=>Ct(y,(await q()).runtimeUrl),upload:async(y,T,z)=>ze(y,T,z,(await q()).runtimeUrl),write:async(y,T)=>Ve(y,T,(await q()).runtimeUrl),create:async y=>At(y,(await q()).runtimeUrl),copy:async(y,T)=>Rt(y,T,(await q()).runtimeUrl),remove:async y=>Ie(y,(await q()).runtimeUrl),mkdir:async y=>Je(y,(await q()).runtimeUrl),rename:async(y,T)=>xe(y,T,(await q()).runtimeUrl)}}}return{config:t,auth:s,accounts:o,iam:u,accountInvites:d,projects:f,connectors:A(),project:I,session:E,github:m,billing:p,sandboxShares:h,connectStatus:x,marketplace:P,validateToken:Ki,runtime:am}}function lm(){let t=typeof crypto<"u"?crypto:void 0;if(t?.randomUUID)return t.randomUUID();let e=new Uint8Array(16);if(t?.getRandomValues)t.getRandomValues(e);else for(let r=0;r<16;r++)e[r]=Math.floor(Math.random()*256);e[6]=e[6]&15|64,e[8]=e[8]&63|128;let n=[...e].map(r=>r.toString(16).padStart(2,"0"));return`${n[0]}${n[1]}${n[2]}${n[3]}-${n[4]}${n[5]}-${n[6]}${n[7]}-${n[8]}${n[9]}-${n.slice(10).join("")}`}var kp={thinking:!1,toolDetails:!0,assistantMetadata:!0};function um(t){return t&&t.charAt(0).toUpperCase()+t.slice(1)}function pm(t){let e=t/1e3;if(e<60)return`${e.toFixed(1)}s`;let n=Math.floor(e/60),r=e%60;return`${n}m ${r.toFixed(0)}s`}function dm(t,e){if(t.type==="text"&&!t.synthetic)return`${t.text??""}
19
+ `);let C=fg(P);if(C){if(r(C),C.type==="error")throw new A(C.error,{status:C.status,code:C.code,data:{reason:C.reason}});C.type==="done"&&(f=C.result)}}}}finally{l.cancel().catch(()=>{})}if(!f)throw new Error("Reload stream ended without a result");return f}async function Sc(e,t){return a(await i.get(`/projects/${e}/sessions/${encodeURIComponent(t)}/scope`))}async function vc(e,t,n){return a(await i.put(`/projects/${e}/sessions/${encodeURIComponent(t)}/scope`,n))}async function Ac(e,t,n){return a(await i.put(`/projects/${e}/sessions/${encodeURIComponent(t)}/model`,{opencode_model:n}))}async function Cc(e){return a(await i.get(`/projects/${e}/triggers`))}async function Rc(e,t){return a(await i.post(`/projects/${e}/triggers`,t))}async function Tc(e,t,n){return a(await i.patch(`/projects/${e}/triggers/${t}`,n))}async function Ic(e,t){return a(await i.delete(`/projects/${e}/triggers/${t}`))}async function Ec(e,t){return a(await i.patch(`/projects/${e}/triggers/activation`,{paused:t}))}async function jc(e,t){return a(await i.post(`/projects/${e}/triggers/${t}/fire`,{}))}var ue=new Map;function Zr(e,t){return`${e}::${t}`}function $c(e,t){ue.delete(e),ue.set(e,t)}function Mc(e,t){let n=Zr(e,t),r=ue.get(n);return r&&$c(n,r),r}function qc(e,t,n){let r=Zr(e,t);if(!ue.has(r)&&ue.size>=512){let s=ue.keys().next().value;s!==void 0&&ue.delete(s)}$c(r,n)}function Dc(e,t){ue.delete(Zr(e,t))}function cP(e){if(e.status!=="running"||!e.sandbox_id||!e.sandbox_provider||!e.sandbox_url||!e.opencode_session_id)return null;let t=e.sandbox_url.match(/\/p\/([^/]+)\//)?.[1];return t?{stage:"ready",agent_name:e.agent_name??"default",retriable:!0,sandbox:{sandbox_id:e.sandbox_id,session_id:e.session_id,project_id:e.project_id,account_id:e.account_id,provider:e.sandbox_provider,external_id:t,base_url:e.sandbox_url,status:"active",config:{},metadata:e.metadata,last_used_at:e.updated_at,created_at:e.created_at,updated_at:e.updated_at},opencode_session_id:e.opencode_session_id,runtime_url:e.sandbox_url}:null}var es=class extends Error{status;code;terminal;constructor(t,n){super(t),this.name="SessionStartError",this.status=n.status,this.code=n.code,this.terminal=n.terminal}};function lP(e){return e instanceof Error&&e.name==="SessionStartError"}function yg(e){let t=e,n=t?.status,r=t?.code??t?.details?.code??t?.details?.error,s=t?.message||"Unable to start this session";return n&&n>=400&&n<500&&n!==408&&n!==429?new es(s,{status:n,code:r,terminal:!0}):null}async function qe(e,t,n){let r=n&&n>0?`?wait_ms=${Math.floor(n)}`:"",s=await i.post(`/projects/${e}/sessions/${t}/start${r}`,{},{showErrors:!1});if(!s.success||!s.data){let p=yg(s.error);if(p&&!(p.status===404&&nc(t)))throw p;return null}let o=s.data,l=o.sandbox?.external_id;return o.stage==="ready"&&l&&o.opencode_session_id&&qc(e,t,{opencodeSessionId:o.opencode_session_id,runtimeUrl:mt(l),sandboxId:l}),o}function uP(e,t){return["session-start",e,t]}async function Oc(e){return a(await i.get(`/projects/${e}/model-defaults`))}async function Uc(e,t){return a(await i.put(`/projects/${e}/model-defaults`,t))}async function Fc(e,t){let n=new URLSearchParams({scope:t.scope,...t.agentName?{agentName:t.agentName}:{}}).toString();return a(await i.delete(`/projects/${e}/model-defaults?${n}`))}async function hP(e,t){return a(await i.put(`/projects/${e}/model-enablement`,{modelOverrides:t}))}async function Gc(e,t,n){let r=bg(n);return a(await i.put(`/projects/${e}/agents/${encodeURIComponent(t)}/scope`,r))}function Lc(e){let t=[];for(let n of e){let r=n.trim();r&&!t.includes(r)&&t.push(r)}return t}function hg(e,t){if(e.length!==t.length)return!1;let n=new Set(t);return e.every(r=>n.has(r))}function bg(e){let t=e.connectors_required?Lc(e.connectors_required):void 0,n=e.connectors_personal?Lc(e.connectors_personal):void 0;if(t&&n&&!hg(t,n))throw new Error("connectors_personal must match connectors_required when both fields are present");let r={...e};return delete r.connectors_personal,(t!==void 0||n!==void 0)&&(r.connectors_required=t??n),r}async function SP(e,t){let n=a(await i.get(`/projects/${e}/agents/${encodeURIComponent(t)}/config`));return{...n,block:n.block?ts(n.block):null}}async function vP(e,t,n){let r=ts(n),s=a(await i.put(`/projects/${e}/agents/${encodeURIComponent(t)}/config`,r));return{...s,block:s.block?ts(s.block):null}}function Bc(e){let t=[];for(let n of e){let r=n.trim();r&&!t.includes(r)&&t.push(r)}return t}function xg(e,t){if(e.length!==t.length)return!1;let n=new Set(t);return e.every(r=>n.has(r))}function ts(e){let t=e.connectors_required?Bc(e.connectors_required):void 0,n=e.connectors_personal?Bc(e.connectors_personal):void 0;if(t&&n&&!xg(t,n))throw new Error("connectors_personal must match connectors_required when both fields are present");let r={...e};return delete r.connectors_personal,(t!==void 0||n!==void 0)&&(r.connectors_required=t??n),r}async function AP(e,t,n){return a(await i.post(`/projects/${e}/secrets/${encodeURIComponent(t)}/grant`,{agent:n}))}async function Nc(e,t){return a(await i.put(`/projects/${e}/default-agent`,{agent:t}))}function ns(){return{credits:{total:0,daily:0,monthly:0,extra:0,can_run:!1,daily_refresh:null},subscription:{tier_key:"none",tier_display_name:"No Plan",status:"no_subscription",billing_period:null,provider:"stripe",subscription_id:null,current_period_end:null,cancel_at_period_end:!1,is_cancelled:!1,cancellation_effective_date:null,has_scheduled_change:!1,scheduled_change:null,commitment:{has_commitment:!1,can_cancel:!0,commitment_type:null,months_remaining:null,commitment_end_date:null},can_purchase_credits:!1},models:[],limits:{concurrent_runs:{running_count:0,limit:0,can_start:!1,tier_name:"none"},ai_worker_count:{current_count:0,limit:0,can_create:!1,tier_name:"none"},custom_mcp_count:{current_count:0,limit:0,can_create:!1,tier_name:"none"}},tier:{name:"none",display_name:"No Plan",monthly_credits:0,can_purchase_credits:!1}}}function _g(e){let t=e.trim().toLowerCase();return t===""||t==="free"||t==="none"?"free":t==="enterprise"?"enterprise":"team"}function IP(e){let t=e?.plan;if(t)return{family:t.family,label:t.label,sublabel:t.sublabel??null,isGrandfathered:t.is_grandfathered===!0};let n=e??ns(),r=(n.subscription?.tier_key||n.tier?.name||"none").toString(),s=(n.tier?.display_name||"").trim()||r;return{family:_g(r),label:s,sublabel:null,isGrandfathered:!1}}async function Kc(e){let t=new URLSearchParams;e?.skipCache&&t.set("skip_cache","true"),e?.accountId&&t.set("account_id",e.accountId);let n=t.toString(),r=n?`?${n}`:"",s=await i.get(`/billing/account-state${r}`,{showErrors:!1}),o=s.error?.status===404&&/billing is not enabled/i.test(s.error.message||"");if(s.error&&s.error.status!==401&&!o)throw s.error;return s.error?ns():s.data}async function Hc(e){let t=new URLSearchParams;e?.skipCache&&t.set("skip_cache","true"),e?.accountId&&t.set("account_id",e.accountId);let n=t.toString(),r=n?`?${n}`:"",s=await i.get(`/billing/account-state/minimal${r}`,{showErrors:!1}),o=s.error?.status===404&&/billing is not enabled/i.test(s.error.message||"");if(s.error&&s.error.status!==401&&!o)throw s.error;return s.error?ns():s.data}async function Wc(e){let t=new URLSearchParams;e?.accountId&&t.set("account_id",e.accountId),e?.limit!=null&&t.set("limit",String(e.limit)),e?.offset!=null&&t.set("offset",String(e.offset)),e?.typeFilter&&t.set("type_filter",Array.isArray(e.typeFilter)?e.typeFilter.join(","):e.typeFilter);let n=t.toString();return a(await i.get(`/billing/transactions${n?`?${n}`:""}`))}async function zc(e){let t=new URLSearchParams;e?.accountId&&t.set("account_id",e.accountId),e?.days!=null&&t.set("days",String(e.days));let n=t.toString();return a(await i.get(`/billing/transactions/summary${n?`?${n}`:""}`))}async function Vc(){return a(await i.get("/billing/credit-breakdown"))}async function Jc(e){let t=e!=null?`?days=${e}`:"";return a(await i.get(`/billing/usage-history${t}`))}async function Xc(){return a(await i.get("/billing/tier-configurations"))}async function EP(e){let t=e.accountId?`?account_id=${encodeURIComponent(e.accountId)}`:"";return $e(e,`/v1/billing/account-state${t}`)}async function Qc(e){return a(await i.post("/billing/create-checkout-session",{account_id:e.accountId,tier_key:e.tierKey,success_url:e.successUrl,cancel_url:e.cancelUrl,commitment_type:e.commitmentType,locale:e.locale,server_type:e.serverType,location:e.location}),"Failed to create checkout session")}async function Yc(e,t){return a(await i.post("/billing/confirm-checkout-session",{account_id:t,session_id:e}),"Failed to confirm checkout session")}async function Zc(e,t){return a(await i.post("/billing/create-portal-session",{account_id:t,return_url:e}),"Failed to create portal session")}async function el(e,t){return a(await i.post("/billing/cancel-subscription",{account_id:t,feedback:e}),"Failed to cancel subscription")}async function tl(e){return a(await i.post("/billing/reactivate-subscription",{account_id:e}),"Failed to reactivate subscription")}async function nl(e,t,n){return a(await i.post("/billing/schedule-downgrade",{account_id:n,target_tier_key:e,commitment_type:t}),"Failed to schedule downgrade")}async function rl(e){return a(await i.post("/billing/cancel-scheduled-change",{account_id:e}),"Failed to cancel scheduled change")}async function sl(e,t){let n=new URLSearchParams({new_price_id:e});return t&&n.set("account_id",t),a(await i.get(`/billing/proration-preview?${n.toString()}`),"Failed to load proration preview")}async function il(e){return a(await i.post("/billing/purchase-credits",{amount:e.amount,account_id:e.accountId,success_url:e.successUrl,cancel_url:e.cancelUrl}),"Failed to purchase credits")}async function ol(e){let t=e?`?account_id=${encodeURIComponent(e)}`:"";return a(await i.get(`/billing/auto-topup/settings${t}`),"Failed to load auto-topup settings")}async function al(e){return a(await i.post("/billing/auto-topup/configure",{account_id:e.accountId,enabled:e.enabled,threshold:e.threshold,amount:e.amount},{showErrors:!1}),"Failed to configure auto-topup")}async function jP(e){let t=e?`?account_id=${encodeURIComponent(e)}`:"";return a(await i.get(`/billing/auto-topup/setup-status${t}`,{timeout:8e3,showErrors:!1}),"Failed to load auto-topup setup status")}async function $P(e){return a(await i.post("/billing/create-per-seat-checkout",{account_id:e.accountId,success_url:e.successUrl,cancel_url:e.cancelUrl,locale:e.locale}),"Failed to create per-seat checkout")}async function MP(e){return a(await i.post("/billing/claim-per-seat",{account_id:e}),"Failed to switch to per-seat billing")}async function qP(e){return a(await i.post("/billing/sync-subscription",{account_id:e}),"Failed to sync subscription")}async function cl(e={}){let t=new URLSearchParams;e.start&&t.set("start",e.start),e.end&&t.set("end",e.end),(e.groupBy==="model"||e.groupBy==="provider"||e.groupBy==="day")&&t.set("group_by",e.groupBy),e.accountId&&t.set("account_id",e.accountId);let n=t.toString();return a(await i.get(`/usage${n?`?${n}`:""}`))}function rs(e,t){t.accountId&&e.set("account_id",t.accountId),t.projectId&&e.set("project_id",t.projectId)}function Mt(e,t){t.from&&e.set("from",t.from),t.to&&e.set("to",t.to)}function qt(e){return e.size>0?`?${e}`:""}async function ul(e={}){let t=new URLSearchParams;return rs(t,e),e.ownerId&&t.set("owner_id",e.ownerId),Mt(t,e),e.sort&&t.set("sort",e.sort),e.limit!=null&&t.set("limit",String(e.limit)),e.offset!=null&&t.set("offset",String(e.offset)),a(await i.get(`/usage/session-costs${qt(t)}`))}async function ss(e,t={}){let n=new URLSearchParams;return rs(n,t),a(await i.get(`/usage/session-costs/${encodeURIComponent(e)}${qt(n)}`))}async function GP(e={}){let t=new URLSearchParams;return e.accountId&&t.set("account_id",e.accountId),Mt(t,e),e.sort&&t.set("sort",e.sort),e.limit!=null&&t.set("limit",String(e.limit)),e.offset!=null&&t.set("offset",String(e.offset)),a(await i.get(`/usage/cost-by-project${qt(t)}`))}async function BP(e={}){let t=new URLSearchParams;return rs(t,e),e.sessionId&&t.set("session_id",e.sessionId),Mt(t,e),a(await i.get(`/usage/cost-summary${qt(t)}`))}function ll(e,t={}){let n=new URLSearchParams;if(t.accountId&&n.set("account_id",t.accountId),e==="sessions"){let s=t;s.projectId&&n.set("project_id",s.projectId),s.ownerId&&n.set("owner_id",s.ownerId)}Mt(n,t),t.sort&&n.set("sort",t.sort),n.set("format","csv");let r=e==="projects"?"/usage/cost-by-project":"/usage/session-costs";return`${$().backendUrl||""}${r}?${n}`}async function NP(e,t={}){let n=ll(e==="projects"?"projects":"sessions",t),r=await ae(),s=await fetch(n,{method:"GET",headers:r?{Authorization:`Bearer ${r}`}:{}});if(!s.ok){let d=await s.text().catch(()=>"");throw new Error(d||`Failed to export CSV (HTTP ${s.status})`)}let o=s.headers.get("x-kortix-row-cap"),l=o!=null?Number(o):NaN;return{blob:await s.blob(),rowCap:Number.isFinite(l)?l:null}}async function pl(e,t){return a(await i.post(`/channels/${e}/identity/bind`,{token:t}),"Failed to connect your account")}function zP(e){return pl("slack",e)}function VP(e){return pl("teams",e)}async function dl(e){let t=await i.get(`/projects/${encodeURIComponent(e)}/channels/slack/installation`,{showErrors:!1});return t.success?t.data??null:null}async function gl(e,t){return a(await i.post(`/projects/${encodeURIComponent(e)}/channels/slack/connect`,t,{showErrors:!1}),"Failed to connect")}var Pg={oauth_available:!1,install_url:null};async function ml(e){let t=await i.get(`/projects/${encodeURIComponent(e)}/channels/slack/mode`,{showErrors:!1});return!t.success||!t.data?Pg:t.data}async function fl(e){return a(await i.get(`/webhooks/slack/${encodeURIComponent(e)}/manifest`,{showErrors:!1}),"Failed to load Slack manifest")}async function yl(e){let t=await i.delete(`/projects/${encodeURIComponent(e)}/channels/slack/installation`,{showErrors:!1});if(!t.success)throw new Error(t.error?.message??"Failed to disconnect")}async function hl(e,t){return a(await i.get(`/projects/${encodeURIComponent(e)}/channels/slack/file?url=${encodeURIComponent(t)}`,{showErrors:!1}),"Failed to download Slack file")}async function bl(e,t){return a(await i.post(`/projects/${encodeURIComponent(e)}/channels/slack/file/upload`,{channel:t.channel,filename:t.filename,content_base64:t.contentBase64,comment:t.comment,thread_ts:t.threadTs},{showErrors:!1}),"Failed to upload Slack file")}function is(e){let t=e.connectionId??e.connection_id??null,n=e.connectorSlug??e.connector_slug??e.connectionSlug??e.connection_slug??"kortix_email";return{...e,connectionId:t,connectorSlug:n}}var kg={provider:"agentmail",managed_available:!1};async function xl(e,t){let n=t?`?connector_slug=${encodeURIComponent(t)}`:"",r=await i.get(`/projects/${encodeURIComponent(e)}/channels/email/installation${n}`,{showErrors:!1});return r.success&&r.data?is(r.data):null}async function _l(e){let t=await i.get(`/projects/${encodeURIComponent(e)}/channels/email/mode`,{showErrors:!1});return!t.success||!t.data?kg:t.data}async function Pl(e,t){let n=a(await i.post(`/projects/${encodeURIComponent(e)}/channels/email/connect`,t,{showErrors:!1}),"Failed to connect email");return is(n)}async function kl(e,t){let n=t?`?connector_slug=${encodeURIComponent(t)}`:"",r=await i.delete(`/projects/${encodeURIComponent(e)}/channels/email/installation${n}`,{showErrors:!1});if(!r.success)throw new Error(r.error?.message??"Failed to disconnect email")}async function wl(e,t,n){let r=a(await i.patch(`/projects/${encodeURIComponent(e)}/channels/email/installation`,{connector_slug:t??"kortix_email",sender_policy:n},{showErrors:!1}),"Failed to update email policy");return is(r)}async function JP(e){return a(await i.get(`/projects/${encodeURIComponent(e)}/channels/bindings`,{showErrors:!1}),"Failed to load channel bindings")}async function XP(e,t,n){return a(await i.patch(`/projects/${encodeURIComponent(e)}/channels/bindings/${encodeURIComponent(t)}`,n,{showErrors:!1}),"Failed to update channel binding")}async function Sl(e){return a(await i.get(`/projects/${e}/gateway/routing-policy`),"Gateway routing policy request failed")}async function vl(e,t){return a(await i.put(`/projects/${e}/gateway/routing-policy`,t),"Gateway routing policy request failed")}async function Al(e){return a(await i.delete(`/projects/${e}/gateway/routing-policy`),"Gateway routing policy request failed")}async function Cl(e,t){return a(await i.post(`/projects/${e}/gateway/routing-policy/preview`,t),"Gateway route preview failed")}async function Rl(e,t){let n=new URLSearchParams;t?.limit&&n.set("limit",String(t.limit)),t?.offset&&n.set("offset",String(t.offset)),t?.ok!==void 0&&n.set("ok",String(t.ok));let r=n.toString();return a(await i.get(`/projects/${e}/gateway/logs${r?`?${r}`:""}`),"Gateway request failed")}async function Tl(e,t){return a(await i.get(`/projects/${e}/gateway/logs/${t}`),"Gateway request failed")}async function Il(e,t){return a(await i.get(`/projects/${e}/gateway/overview${t?`?days=${t}`:""}`),"Gateway request failed")}async function El(e,t){return a(await i.get(`/projects/${e}/gateway/series${t?`?days=${t}`:""}`),"Gateway request failed")}async function jl(e,t){return a(await i.get(`/projects/${e}/gateway/breakdown${t?`?days=${t}`:""}`),"Gateway request failed")}async function $l(e,t){return a(await i.get(`/projects/${e}/gateway/sessions${t?`?days=${t}`:""}`),"Gateway request failed")}async function Ml(e,t){return a(await i.get(`/projects/${e}/gateway/errors${t?`?days=${t}`:""}`),"Gateway request failed")}async function ql(e){return a(await i.get(`/projects/${e}/gateway/budgets`),"Gateway request failed")}async function Dl(e,t){return a(await i.put(`/projects/${e}/gateway/budgets`,t),"Gateway request failed")}async function Ol(e,t){return a(await i.delete(`/projects/${e}/gateway/budgets/${t}`),"Gateway request failed")}async function Ul(e){return a(await i.get(`/projects/${e}/gateway/keys`),"Gateway request failed")}async function Fl(e,t){return a(await i.post(`/projects/${e}/gateway/keys`,{name:t}),"Gateway request failed")}async function Ll(e,t){return a(await i.delete(`/projects/${e}/gateway/keys/${t}`),"Gateway request failed")}async function Gl(e,t,n,r,s){return a(await i.post(`/projects/${e}/gateway/playground`,{prompt:t,models:n,...r?{system:r}:{},...s&&Object.keys(s).length?{generationConfig:s}:{}}),"Gateway request failed")}async function ek(e,t){return a(await i.post(`/projects/${e}/gateway/providers/${encodeURIComponent(t)}/verify`,{}),"Gateway provider verification failed")}async function sk(){return a(await i.get("/referrals/code"),"GET_CODE_FAILED")}async function ik(){return a(await i.post("/referrals/code/refresh",{}),"REFRESH_CODE_FAILED")}async function ok(e){return a(await i.post("/referrals/validate",{referral_code:e}),"VALIDATE_CODE_FAILED")}async function ak(){return a(await i.get("/referrals/stats"),"GET_STATS_FAILED")}async function ck(e={}){let t=new URLSearchParams({limit:String(e.limit??50),offset:String(e.offset??0)});return a(await i.get(`/referrals/list?${t}`),"GET_REFERRALS_FAILED")}async function lk(e){return a(await i.post("/referrals/email",{emails:e}),"SEND_EMAILS_FAILED")}function k(e){if(!e.success||e.data===void 0)throw e.error||new Error("Unexpected empty response");return e.data}function O(e){return i.get(e,{showErrors:!1})}async function Bl(e){return k(await O(`/accounts/${e}/iam/groups`)).groups}async function Nl(e,t){return k(await O(`/accounts/${e}/iam/groups/${t}`))}async function Kl(e,t){return k(await i.post(`/accounts/${e}/iam/groups`,t,{showErrors:!1}))}async function Hl(e,t,n){return k(await i.patch(`/accounts/${e}/iam/groups/${t}`,n))}async function Wl(e,t){return k(await i.delete(`/accounts/${e}/iam/groups/${t}`))}async function zl(e,t){return k(await O(`/accounts/${e}/iam/groups/${t}/members`)).members}async function Vl(e,t,n){return k(await i.post(`/accounts/${e}/iam/groups/${t}/members`,{userIds:n}))}async function dk(e,t){return k(await O(`/accounts/${e}/iam/groups/${t}/project-grants`)).grants}async function Jl(e,t,n){return k(await i.delete(`/accounts/${e}/iam/groups/${t}/members/${n}`))}async function gk(e,t){return k(await O(`/accounts/${e}/iam/members/${t}/groups`)).groups}async function mk(e,t){let n=k(await O(`/accounts/${e}/iam/members/${t}/project-access`));return{projects:n.projects,account_wide_policies:n.account_wide_policies??[]}}async function fk(e,t={}){let n=new URLSearchParams;t.resourceType&&n.set("resourceType",t.resourceType),t.principalType&&n.set("principalType",t.principalType),t.principalId&&n.set("principalId",t.principalId),t.projectId&&n.set("projectId",t.projectId);let r=n.toString();return k(await O(`/accounts/${e}/iam/resource-grants${r?`?${r}`:""}`)).grants}async function yk(e,t={}){let n=new URLSearchParams;t.principalType&&n.set("principalType",t.principalType),t.principalId&&n.set("principalId",t.principalId),t.scopeType&&n.set("scopeType",t.scopeType),t.scopeId!==void 0&&n.set("scopeId",t.scopeId===null?"null":t.scopeId);let r=n.toString();return k(await O(`/accounts/${e}/iam/policies${r?`?${r}`:""}`)).policies}async function hk(e,t){return k(await i.post(`/accounts/${e}/iam/policies`,t,{showErrors:!1}))}async function bk(e,t,n){return k(await i.patch(`/accounts/${e}/iam/policies/${t}`,n,{showErrors:!1}))}async function xk(e,t){return k(await i.delete(`/accounts/${e}/iam/policies/${t}`))}async function _k(e,t){return k(await i.post(`/accounts/${e}/iam/policies:bulk-delete`,{policy_ids:t},{showErrors:!1}))}async function Pk(e,t){return k(await i.post(`/accounts/${e}/iam/policies:bulk-import`,{policies:t},{showErrors:!1}))}async function Xl(e){return k(await O(`/accounts/${e}/iam/roles`)).roles}async function Ql(e){return k(await O(`/accounts/${e}/iam/agent-identities`)).agents}async function Yl(e,t){return k(await O(`/accounts/${e}/iam/roles/${t}/permissions`))}async function kk(e){return k(await O(`/accounts/${e}/iam/actions`)).actions}async function Zl(e,t){return k(await O(`/accounts/${e}/iam/roles/${t}/usage`))}async function eu(e,t){return k(await i.post(`/accounts/${e}/iam/roles`,t,{showErrors:!1}))}async function tu(e,t,n){return k(await i.patch(`/accounts/${e}/iam/roles/${t}`,n,{showErrors:!1}))}async function nu(e,t,n){return k(await i.put(`/accounts/${e}/iam/roles/${t}/permissions`,{actions:n},{showErrors:!1}))}async function ru(e,t){return k(await i.delete(`/accounts/${e}/iam/roles/${t}`,{showErrors:!1}))}async function wk(e,t,n){return k(await i.patch(`/accounts/${e}/iam/members/${t}/super-admin`,{isSuperAdmin:n}))}async function Sk(e){return k(await O(`/accounts/${e}/iam/scim/tokens`)).tokens}async function vk(e,t){return k(await i.post(`/accounts/${e}/iam/scim/tokens`,t,{showErrors:!1}))}async function Ak(e,t){return k(await i.delete(`/accounts/${e}/iam/scim/tokens/${t}`))}async function Ck(e){return k(await O(`/accounts/${e}/iam/mfa-required`))}async function Rk(e){return k(await O(`/accounts/${e}/iam/mfa-required/preview`))}async function Tk(e,t){return k(await i.patch(`/accounts/${e}/iam/mfa-required`,{enabled:t},{showErrors:!1}))}async function Ik(e){return k(await O(`/accounts/${e}/iam/sso/provider`)).provider}async function Ek(e,t){return k(await i.put(`/accounts/${e}/iam/sso/provider`,t,{showErrors:!1})).provider}async function jk(e,t){return k(await i.post(`/accounts/${e}/iam/sso/provider/from-metadata`,t,{showErrors:!1})).provider}async function $k(e){return k(await i.delete(`/accounts/${e}/iam/sso/provider`))}async function Mk(e){return k(await O(`/accounts/${e}/iam/sso/mappings`)).mappings}async function qk(e,t){return k(await i.post(`/accounts/${e}/iam/sso/mappings`,t,{showErrors:!1}))}async function Dk(e,t){return k(await i.delete(`/accounts/${e}/iam/sso/mappings/${t}`))}async function Ok(e){return k(await O(`/accounts/${e}/iam/session-policy`))}async function Uk(e,t){return k(await i.patch(`/accounts/${e}/iam/session-policy`,t,{showErrors:!1}))}async function Fk(e){return k(await O(`/accounts/${e}/iam/sessions`)).sessions}async function Lk(e,t){return k(await i.post(`/accounts/${e}/iam/sessions/${t}/revoke`,{},{showErrors:!1}))}async function Gk(e){return k(await O(`/accounts/${e}/iam/pat-policy`))}async function Bk(e,t){return k(await i.patch(`/accounts/${e}/iam/pat-policy`,t,{showErrors:!1}))}async function Nk(e){return k(await O(`/accounts/${e}/iam/service-accounts`)).service_accounts}async function Kk(e,t){return k(await i.post(`/accounts/${e}/iam/service-accounts`,t,{showErrors:!1}))}async function Hk(e,t){return k(await i.post(`/accounts/${e}/iam/service-accounts/${t}/disable`,{},{showErrors:!1}))}async function Wk(e,t){return k(await i.delete(`/accounts/${e}/iam/service-accounts/${t}`))}async function zk(e){return k(await O(`/accounts/${e}/audit/webhooks`)).webhooks}async function Vk(e,t){return k(await i.post(`/accounts/${e}/audit/webhooks`,t,{showErrors:!1}))}async function Jk(e,t,n){return k(await i.patch(`/accounts/${e}/audit/webhooks/${t}`,n))}async function Xk(e,t){return k(await i.delete(`/accounts/${e}/audit/webhooks/${t}`))}async function Qk(e,t={}){let n=new URLSearchParams;t.action&&n.set("action",t.action),t.actor&&n.set("actor",t.actor),t.project_id&&n.set("project_id",t.project_id),t.session_id&&n.set("session_id",t.session_id),t.actor_type&&n.set("actor_type",t.actor_type),t.source&&n.set("source",t.source),t.phase&&n.set("phase",t.phase),t.outcome&&n.set("outcome",t.outcome),t.request_id&&n.set("request_id",t.request_id),t.correlation_id&&n.set("correlation_id",t.correlation_id),t.resource_type&&n.set("resource_type",t.resource_type),t.since&&n.set("since",t.since),t.until&&n.set("until",t.until),t.q&&n.set("q",t.q),t.cursor&&n.set("cursor",t.cursor),t.limit&&n.set("limit",String(t.limit));let r=n.toString();return k(await O(`/accounts/${e}/audit${r?`?${r}`:""}`))}async function su(e,t,n){let r=new URLSearchParams;return r.set("action",n.action),n.resourceType&&r.set("resourceType",n.resourceType),n.resourceId&&r.set("resourceId",n.resourceId),k(await O(`/accounts/${e}/iam/members/${t}/effective?${r.toString()}`))}async function iu(e,t,n){return n.length===0?[]:k(await i.post(`/accounts/${e}/iam/members/${t}/effective:batch`,{probes:n})).results}async function Yk(e){return k(await O(`/accounts/${e}/iam/enterprise-demo`)).enabled}async function Zk(e,t){return k(await i.put(`/accounts/${e}/iam/enterprise-demo`,{enabled:t})).enabled}async function ou(e){return a(await i.get(`/accounts/${e}/iam/oauth-clients`,{showErrors:!1}))}async function au(e,t){return a(await i.get(`/accounts/${e}/iam/oauth-clients/${t}`,{showErrors:!1}))}async function cu(e,t){return a(await i.post(`/accounts/${e}/iam/oauth-clients`,t,{showErrors:!1}))}async function lu(e,t,n){return a(await i.patch(`/accounts/${e}/iam/oauth-clients/${t}`,n,{showErrors:!1}))}async function uu(e,t){return a(await i.post(`/accounts/${e}/iam/oauth-clients/${t}/rotate-secret`,{},{showErrors:!1}))}async function pu(e,t){return a(await i.delete(`/accounts/${e}/iam/oauth-clients/${t}`,{showErrors:!1}))}function du(e){return i.get(e,{showErrors:!1})}function wg(e){let t=new URLSearchParams;e?.principalType&&t.set("principal_type",e.principalType),e?.principalId&&t.set("principal_id",e.principalId),e?.scopeType&&t.set("scope_type",e.scopeType),e?.scopeId&&t.set("scope_id",e.scopeId),e?.objectType&&t.set("object_type",e.objectType),e?.objectId&&t.set("object_id",e.objectId),e?.roleId&&t.set("role_id",e.roleId),e?.includeExpired&&t.set("include_expired","true");let n=t.toString();return n?`?${n}`:""}async function gu(e,t){return a(await du(`/accounts/${e}/iam/assignments${wg(t)}`)).assignments}async function mu(e,t){let n={principal_type:t.principal.type,principal_id:t.principal.id,scope_type:t.scope.type,scope_id:t.scope.type==="project"?t.scope.id:null};return t.roleId?n.role_id=t.roleId:n.role_key=t.roleKey,t.object&&(n.object_type=t.object.type,n.object_id=t.object.id),t.expiresAt!==void 0&&(n.expires_at=t.expiresAt),a(await i.post(`/accounts/${e}/iam/assignments`,n))}async function fu(e,t){return a(await i.delete(`/accounts/${e}/iam/assignments/${t}`)).assignment}async function yu(e,t){let n=t?.scopeType?`?scope_type=${t.scopeType}`:"";return a(await du(`/accounts/${e}/iam/permissions${n}`)).permissions}async function lw(){let e=await i.get("/account/deletion-status",{showErrors:!1});return e.error?.status===404?null:a(e,"Failed to load account deletion status")}async function uw(e="User requested deletion"){return a(await i.post("/account/request-deletion",{reason:e},{showErrors:!1}),"Failed to request account deletion")}async function pw(){return a(await i.post("/account/cancel-deletion",void 0,{showErrors:!1}),"Failed to cancel account deletion")}async function dw(){return a(await i.delete("/account/delete-immediately",{showErrors:!1}),"Failed to delete account immediately")}async function gw(){return(await i.get("/user-roles",{showErrors:!1})).data??{isAdmin:!1,role:null}}function hw(){return i.get("/admin/api/provider-distribution").then(e=>a(e))}function bw(e=300){return i.get(`/admin/api/sandboxes?limit=${e}`).then(t=>a(t))}function xw(e){return i.put("/admin/api/provider-distribution",e).then(t=>a(t))}function _w(e){return i.get(`/admin/api/provider-analytics?days=${e}`).then(t=>a(t))}function Pw(e,t){return i.post(`/admin/api/sandboxes/${encodeURIComponent(e)}/migrate`,{targetProvider:t}).then(n=>a(n))}function kw(){return i.get("/admin/api/provider-fallback").then(e=>a(e))}function ww(e){return i.put("/admin/api/provider-fallback",{enabled:e}).then(t=>a(t))}async function Cw(e){return a(await i.get(`/google/auth-url?return_url=${encodeURIComponent(e)}`),"Failed to get Google auth URL")}async function Rw(e,t){return a(await i.post("/presentation-tools/convert-and-upload-to-slides",{presentation_path:e,sandbox_url:t},{timeout:18e4}),"Failed to upload to Google Slides")}async function hu(e,t){let n=new URLSearchParams;t?.segment&&n.set("segment",t.segment),t?.kind&&n.set("kind",t.kind);let r=n.toString();return a(await i.get(`/projects/${e}/review/items${r?`?${r}`:""}`,{showErrors:!1}))}async function bu(e,t){return a(await i.get(`/projects/${e}/review/items/${t}`))}async function xu(e,t){return a(await i.post(`/projects/${e}/review/items`,t))}async function _u(e,t,n){return a(await i.post(`/projects/${e}/review/items/${t}/act`,n))}async function Pu(e,t){return a(await i.post(`/projects/${e}/review/bulk`,t))}async function ku(e){return a(await i.get(`/p/share?sandbox_id=${encodeURIComponent(e)}`),"Failed to load public links").shares??[]}async function wu(e){return a(await i.post("/p/share",{sandbox_id:e.sandboxId,port:e.port,ttl:e.ttl,label:e.label}),"Failed to generate public URL")}async function Su(e,t){let n=await i.delete(`/p/share/${encodeURIComponent(t)}?sandbox_id=${encodeURIComponent(e)}`);if(!n.success)throw new Error(n.error?.message??"Failed to revoke public link")}var os=class extends Error{constructor(n,r){super(n);this.status=r;this.name="PublicSessionShareError"}status};function vu(e,t=""){return`${Ne()}/public/session-shares/${encodeURIComponent(e)}${t}`}async function Au(e){let t=await fetch(e,{method:"GET",headers:{Accept:"application/json"}}),n=await t.text().catch(()=>""),r=null;try{r=n?JSON.parse(n):null}catch{}if(!t.ok){let s=(r&&typeof r=="object"&&"error"in r&&typeof r.error=="string"?r.error:null)||t.statusText||`HTTP ${t.status}`;throw new os(s,t.status)}return r}async function Ow(e){return Au(vu(e))}async function Uw(e){return Au(vu(e,"/messages"))}async function Cu(e,t){let n=new URLSearchParams;e&&n.set("account_id",e),t?.mine&&n.set("mine","true");let r=n.size>0?`?${n.toString()}`:"";return a(await i.get(`/accounts/tokens${r}`))}async function Ru(e){let{accountId:t,expiresAt:n,projectId:r,name:s}=e;return a(await i.post("/accounts/tokens",{name:s,...t?{account_id:t}:{},...n?{expires_at:n}:{},...r?{project_id:r}:{}}))}async function Tu(e,t){let n=t?`?account_id=${encodeURIComponent(t)}`:"";return a(await i.delete(`/accounts/tokens/${e}${n}`))}async function Iu(e){return a(await i.get(`/projects/${e}/cli-token`))}async function Eu(e,t){return a(await i.post(`/projects/${e}/cli-token`,t??{}))}async function ju(e,t){return a(await i.delete(`/projects/${e}/cli-token/${t}`))}async function $u(e,t){let n=new URLSearchParams;t?.action&&n.set("action",t.action),t?.actor&&n.set("actor",t.actor),t?.actorType&&n.set("actor_type",t.actorType),t?.projectId&&n.set("project_id",t.projectId),t?.sessionId&&n.set("session_id",t.sessionId),t?.source&&n.set("source",t.source),t?.phase&&n.set("phase",t.phase),t?.outcome&&n.set("outcome",t.outcome),t?.resourceType&&n.set("resource_type",t.resourceType),t?.requestId&&n.set("request_id",t.requestId),t?.correlationId&&n.set("correlation_id",t.correlationId),t?.since&&n.set("since",t.since),t?.until&&n.set("until",t.until),t?.q&&n.set("q",t.q),t?.cursor&&n.set("cursor",t.cursor),t?.limit!=null&&n.set("limit",String(t.limit));let r=n.toString();return a(await i.get(`/accounts/${e}/audit${r?`?${r}`:""}`))}async function Mu(e,t){let n=new URLSearchParams;t?.action&&n.set("action",t.action),t?.actor&&n.set("actor",t.actor),t?.actorType&&n.set("actor_type",t.actorType),t?.sessionId&&n.set("session_id",t.sessionId),t?.source&&n.set("source",t.source),t?.phase&&n.set("phase",t.phase),t?.outcome&&n.set("outcome",t.outcome),t?.resourceType&&n.set("resource_type",t.resourceType),t?.requestId&&n.set("request_id",t.requestId),t?.correlationId&&n.set("correlation_id",t.correlationId),t?.since&&n.set("since",t.since),t?.until&&n.set("until",t.until),t?.q&&n.set("q",t.q),t?.cursor&&n.set("cursor",t.cursor),t?.limit!=null&&n.set("limit",String(t.limit));let r=n.toString();return a(await i.get(`/projects/${e}/audit${r?`?${r}`:""}`))}async function qu(e,t){let n=new URLSearchParams;t?.format&&n.set("format",t.format),t?.action&&n.set("action",t.action),t?.actor&&n.set("actor",t.actor),t?.actorType&&n.set("actor_type",t.actorType),t?.projectId&&n.set("project_id",t.projectId),t?.sessionId&&n.set("session_id",t.sessionId),t?.source&&n.set("source",t.source),t?.phase&&n.set("phase",t.phase),t?.outcome&&n.set("outcome",t.outcome),t?.resourceType&&n.set("resource_type",t.resourceType),t?.requestId&&n.set("request_id",t.requestId),t?.correlationId&&n.set("correlation_id",t.correlationId),t?.since&&n.set("since",t.since),t?.until&&n.set("until",t.until),t?.q&&n.set("q",t.q),t?.cursor&&n.set("cursor",t.cursor),t?.limit!=null&&n.set("limit",String(t.limit));let r=n.toString();return a(await i.get(`/accounts/${e}/audit/export${r?`?${r}`:""}`))}async function Du(e){return a(await i.get(`/accounts/${e}/audit/webhooks`))}async function Ou(e,t){return a(await i.post(`/accounts/${e}/audit/webhooks`,t))}async function Uu(e,t,n){return a(await i.patch(`/accounts/${e}/audit/webhooks/${t}`,n))}async function Fu(e,t){return a(await i.delete(`/accounts/${e}/audit/webhooks/${t}`))}async function Lu(e,t){return a(await i.post(`/projects/${e}/secret-requests`,{names:t.names,labels:t.labels,descriptions:t.descriptions,scope:t.scope,expires_in_minutes:t.expiresInMinutes}),"Failed to mint secret-entry link")}async function Gu(e,t){return a(await i.post(`/projects/${e}/connect-requests`,{slug:t.slug,expires_in_minutes:t.expiresInMinutes}),"Failed to mint connect link")}async function Vw(e){return a(await i.get(`/approval-links/${e}`),"Failed to load approval")}async function Bu(e){let t=new URLSearchParams;e?.query&&t.set("query",e.query),e?.type&&t.set("type",e.type),e?.source&&t.set("source",e.source),e?.limit!==void 0&&t.set("limit",String(e.limit)),e?.offset!==void 0&&t.set("offset",String(e.offset));let n=t.toString()?`?${t.toString()}`:"";return a(await i.get(`/marketplace/items${n}`))}async function Nu(){return a(await i.get("/marketplace/marketplaces"))}async function Ku(){return a(await i.get("/marketplace/marketplaces/featured"))}async function Hu(e){return a(await i.get(`/marketplace/items/${encodeURIComponent(e)}`),"Item not found")}async function Wu(e,t){return a(await i.get(`/marketplace/items/${encodeURIComponent(e)}/file?path=${encodeURIComponent(t)}`),"File not found")}async function zu(){return a(await i.get("/marketplace/sources"))}async function Vu(e){return a(await i.post("/marketplace/sources",e),"Failed to add marketplace source")}async function Ju(e){return a(await i.delete(`/marketplace/sources/${encodeURIComponent(e)}`),"Failed to remove marketplace source")}async function Yw(e,t){return a(await i.post(`/projects/${encodeURIComponent(e)}/marketplace/install-session`,{id:t}),"Failed to start marketplace install session")}async function nS(e){return a(await i.get(`/templates/${encodeURIComponent(e)}`))}async function rS(e,t){return a(await i.post(`/templates/${encodeURIComponent(e)}/install`,t))}async function Xu(e){return a(await i.get(`/projects/${e}/apps`),"Failed to list Apps").apps}async function Qu(e,t){return a(await i.post(`/projects/${e}/apps`,t),"Failed to create App")}async function Yu(e,t){return a(await i.get(`/projects/${e}/apps/${t}`),"Failed to load App")}async function Zu(e,t,n){return a(await i.patch(`/projects/${e}/apps/${t}`,n),"Failed to update App")}async function ep(e,t){return a(await i.delete(`/projects/${e}/apps/${t}`),"Failed to delete App")}async function tp(e,t){return a(await i.get(`/projects/${e}/apps/${t}/access`),"Failed to load App access policy")}async function np(e,t,n){return a(await i.patch(`/projects/${e}/apps/${t}/access`,n),"Failed to update App access policy")}async function rp(e,t){return a(await i.post(`/projects/${e}/apps/${t}/access-session`,{}),"Failed to create App access session")}async function as(e,t){return a(await i.post(`/projects/${e}/apps/artifacts`,t),"Failed to register App artifact")}async function cs(e,t,n){return a(await i.post(`/projects/${e}/apps/artifacts/${t}/finalize`,n),"Failed to finalize App artifact")}async function Sg(e){return e instanceof Uint8Array?e:new Uint8Array(await e.arrayBuffer())}async function vg(e){let t=Uint8Array.from(e),n=await globalThis.crypto.subtle.digest("SHA-256",t.buffer);return Array.from(new Uint8Array(n),r=>r.toString(16).padStart(2,"0")).join("")}async function sp(e,t,n={}){let r=await Sg(t),s=n.mediaType??"application/gzip",o=await as(e,{kind:"archive",media_type:s});if(!o.upload)throw new Error("App artifact registration did not return an upload URL");if(r.byteLength>o.upload.max_bytes)throw new Error(`App artifact exceeds ${o.upload.max_bytes} bytes`);n.onProgress?.(0,r.byteLength);let l=await fetch(o.upload.url,{method:"PUT",body:new Blob([Uint8Array.from(r).buffer],{type:s}),signal:n.signal,headers:{"content-type":s,"x-upsert":"false"}});if(!l.ok){let p=await l.text().catch(()=>"");throw new Error(`App artifact upload failed with HTTP ${l.status}${p?`: ${p}`:""}`)}return n.onProgress?.(r.byteLength,r.byteLength),cs(e,o.artifact.artifact_id,{sha256:await vg(r),size_bytes:r.byteLength})}async function ip(e,t,n){return a(await i.post(`/projects/${e}/apps/${t}/deployments`,n),"Failed to create App deployment")}async function op(e,t){return a(await i.get(`/projects/${e}/apps/${t}/deployments`),"Failed to list App deployments").deployments}async function ap(e,t,n){return a(await i.get(`/projects/${e}/apps/${t}/deployments/${n}`),"Failed to load App deployment")}async function cp(e,t,n,r={}){let s=new URLSearchParams;r.after!==void 0&&s.set("after",String(r.after)),r.limit!==void 0&&s.set("limit",String(r.limit));let o=s.size?`?${s.toString()}`:"";return a(await i.get(`/projects/${e}/apps/${t}/deployments/${n}/logs${o}`),"Failed to load App logs")}async function lp(e,t){return a(await i.post(`/projects/${e}/apps/${t}/start`,{}),"Failed to start App")}async function up(e,t){return a(await i.post(`/projects/${e}/apps/${t}/stop`,{}),"Failed to stop App")}async function pp(e,t,n){return a(await i.post(`/projects/${e}/apps/${t}/rollback`,{deployment_id:n}),"Failed to roll back App")}var et=class extends Error{constructor(n,r,s){super(r);this.code=n;this.status=s;this.name="HeadlessAuthError"}code;status};function Ag(e){let t=ce(e?.backendUrl??$().backendUrl??"");if(!t)throw new et("not_configured","backendUrl is not configured (configureKortix / createKortix first)",0);return t.endsWith("/v1")?t:`${t}/v1`}async function ee(e,t,n){let r=n?.fetch??$().fetch??((d,f)=>fetch(d,f)),s={accept:"application/json"};t.body!==void 0&&(s["content-type"]="application/json"),t.bearer&&(s.authorization=`Bearer ${t.bearer}`);let o=await r(`${Ag(n)}${e}`,{method:t.method??(t.body!==void 0?"POST":"GET"),headers:s,...t.body!==void 0?{body:JSON.stringify(t.body)}:{},...n?.signal?{signal:n.signal}:{}}),l=await o.text().catch(()=>""),p=null;try{p=l?JSON.parse(l):null}catch{p=l}if(!o.ok){let d=p&&typeof p=="object"?p:{};throw new et(typeof d.error=="string"?d.error:"auth_error",typeof d.error_description=="string"&&d.error_description?d.error_description:typeof d.error=="string"?d.error:o.statusText||`HTTP ${o.status}`,o.status)}return p}function ls(e,t){return ee("/auth/signup",{body:e},t)}function us(e,t){return ee("/auth/sign-in/password",{body:e},t)}function ps(e,t){return ee("/auth/sign-in/magic-link",{body:e},t)}function ds(e,t){return ee("/auth/verify-otp",{body:e},t)}function gs(e,t){return ee("/auth/sign-in/oauth",{body:e},t)}function ms(e,t){return ee("/auth/oauth/exchange",{body:e},t)}function tt(e,t){return ee("/auth/refresh",{body:e},t)}function fs(e,t){return ee("/auth/password/reset",{body:e},t)}function ys(e,t,n){return ee("/auth/password/update",{body:e,bearer:t},n)}function hs(e,t){return ee("/auth/user",{bearer:e},t)}function bs(e,t={},n){return ee("/auth/sign-out",{body:t,bearer:e},n)}function xs(e={}){let t=e.refreshSkewSeconds??60,n=e.now??(()=>Date.now()),r=null,s=null,o=!e.storage,l=null,p=x=>(x.expires_at??0)*1e3,d=x=>p(x)-t*1e3<=n();async function f(){e.storage&&(r?await e.storage.set(JSON.stringify({session:r,user:s})):await e.storage.remove()),e.onChange?.(r)}async function m(){if(o)return r;o=!0;let x=await e.storage.get();if(x)try{let P=JSON.parse(x);P.session?.access_token&&P.session?.refresh_token&&(r=P.session,s=P.user??null)}catch{r=null}return r}async function h(){if(await m(),!r)return null;if(!l){let x=r.refresh_token;l=tt({refresh_token:x},e.request).then(async P=>(r=P.session,P.user&&(s=P.user),await f(),r)).catch(async P=>{let C=P&&typeof P=="object"&&"status"in P?P.status:0;if(C>=400&&C<500)return r=null,s=null,await f(),null;throw P}).finally(()=>{l=null})}return l}return{current:()=>r,user:()=>s,load:m,async set(x,P){await m(),r=x,P!==void 0&&(s=P),x||(s=null),await f()},async getToken(){return await m(),r?d(r)?(await h().catch(()=>r))?.access_token??null:r.access_token:null},refresh:h,async clear(){r=null,s=null,o=!0,await f()}}}var Rg=["control_plane","provider_ingress","daemon","upstream_port"];function dp(e){return typeof e=="string"&&Rg.includes(e)?e:null}function mS(e){return e?e.runtimeReady!==void 0?e.runtimeReady===!0:e.opencode!==void 0?e.opencode==="ok"||e.opencode===!0:e.status!=="starting"&&e.status!=="down"&&e.status!=="error":!1}async function gp(e,t){let n=(e===void 0?re():e)||null;if(!n)return{status:0,ok:!1,health:null,body:"",hop:null,upstreamStatus:null};let r=await M(`${n}/kortix/health`,{method:"GET",...t},{retryOnAuthError:!1}),s=await r.text().catch(()=>""),o=null;try{o=s?JSON.parse(s):null}catch{o=null}let l=o,p=dp(r.headers.get("X-Kortix-Proxy-Hop"))??dp(o?.hop),d=Number(r.headers.get("X-Kortix-Upstream-Status")),f=o?.upstream_status,m=Number.isFinite(d)&&d>0?d:typeof f=="number"?f:null;return{status:r.status,ok:r.ok,health:l,body:s,hop:p,upstreamStatus:m}}var pe={DESKTOP:"6080",DESKTOP_HTTPS:"6081",PRESENTATION_VIEWER:"3210",STATIC_FILE_SERVER:"3211",KORTIX_MASTER:"8000",BROWSER_STREAM:"9223",BROWSER_VIEWER:"9224",SSH:"22"};var mp=/https?:\/\/(?:localhost|127\.0\.0\.1):\d{1,5}[^\s)"'<>]*/g,fp=/^https?:\/\/p(\d+)-([^.]+)\.localhost(?::(\d+))?(\/.*)?$/,yp=/^https?:\/\/(?:dev|staging|prod|preview)-p(\d+)-([a-z0-9-]+)\.[^/]+?(?::(\d+))?(\/.*)?$/i,hp=new Set([22,4096,parseInt(pe.KORTIX_MASTER,10)]);function Tg(e){return fp.test(e)}function Dt(e){if(!e)return"/";let t=e,n=t.indexOf("](");n!==-1&&(t=t.slice(0,n));let r=t.toLowerCase().indexOf("%5d(");return r!==-1&&(t=t.slice(0,r)),t?t.startsWith("/")?t:`/${t}`:"/"}function Ig(e){let t=e.indexOf("](");return t===-1?e:e.slice(0,t)}var Eg=new Set(["'",'"',"`","<","(","["]),jg=new Set([">","'",'"',"`",")","]",",",";",".","!","?"]);function $g(e){let t=0,n=e.length;for(;t<n&&(e[t]===" "||e[t]===" ");)t++;for(;n>t&&(e[n-1]===" "||e[n-1]===" ");)n--;for(;t<n&&Eg.has(e[t]);)t++;for(;n>t&&jg.has(e[n-1]);)n--;return e.slice(t,n)}function Mg(e){return e.match(/https?:\/\/(?:localhost|127\.0\.0\.1):\d{1,5}[^\s"'<>)]*/i)?.[0]??null}var qg=/^\/proxy\/(\d{1,5})(\/.*)?$/,Dg=/^\/(connectors|settings|dashboard|projects|agents|skills|tools|commands|support|changelog|files|p|browser|desktop|terminal|sessions|services|workspace|channels|scheduled-tasks|marketplace|templates|tunnel|admin|auth)(\/|$|\?)/;function Og(e){if(!e)return!1;try{let t=new URL(e);return t.hostname!=="localhost"&&t.hostname!=="127.0.0.1"?!1:Dg.test(t.pathname)}catch{return!1}}function Ot(e){if(!e)return null;let t=$g(Ig(e.trim())),n=kp(t);if(n){let r=Dt(n.path||"/");return{originalUrl:`http://localhost:${n.port}${r}`,port:n.port,path:r}}try{let r=new URL(t);if(r.protocol!=="http:"&&r.protocol!=="https:"||r.hostname!=="localhost"&&r.hostname!=="127.0.0.1"||!r.port)return null;let s=parseInt(r.port,10);if(!Number.isInteger(s)||s<1||s>65535)return null;let o=`${r.pathname||"/"}${r.search}${r.hash}`,l=parseInt(pe.KORTIX_MASTER,10);if(s===l){let d=r.pathname.match(qg);if(d){let f=parseInt(d[1],10);if(f>=1&&f<=65535)return s=f,o=Dt(`${d[2]||"/"}${r.search}${r.hash}`),{originalUrl:`http://localhost:${s}${o}`,port:s,path:o}}}let p=Dt(o);return{originalUrl:`${r.protocol}//${r.hostname}:${s}${p}`,port:s,path:p}}catch{let r=Mg(e);return r&&r!==e?Ot(r):null}}function Ug(e){let t=[],n=/```[\s\S]*?```/g,r;for(;(r=n.exec(e))!==null;)t.push([r.index,r.index+r[0].length]);let s=/`[^`\n]+`/g;for(;(r=s.exec(e))!==null;){let o=r.index,l=o+r[0].length;t.some(([d,f])=>o>=d&&l<=f)||t.push([o,l])}return t}function Fg(e,t){return t.some(([n,r])=>e>=n&&e<r)}function Lg(e){let t=[],n=new Set,r=Ug(e);mp.lastIndex=0;let s;for(;(s=mp.exec(e))!==null;){let o=Ot(s[0]);if(!o)continue;let{originalUrl:l,port:p,path:d}=o;p<1||p>65535||hp.has(p)||n.has(l)||(n.add(l),t.push({originalUrl:l,port:p,path:d,startIndex:s.index,endIndex:s.index+l.length,inCodeBlock:Fg(s.index,r)}))}return t}function bS(e){return Lg(e).length>0}function Gg(e){try{let{hostname:t}=new URL(e);return t==="localhost"||t==="127.0.0.1"}catch{return!1}}function bp(e){return e.trim().toLowerCase().split("_").join("-")}function xp(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return e.slice(0,t)}function Bg(e,t,n){let r=n.previewUrlTemplate;if(!r||!r.includes("{port}")||!r.includes("{sandbox}"))return null;let s=r.split("{port}").join(String(e)).split("{sandbox}").join(bp(n.sandboxId));return`${xp(s)}${t}`}function Ng(e){return e.sandboxId.trim().length>0}function _e(e,t,n){let r=Dt(t);if(!Ng(n))return zg(e,r);let s=Bg(e,r,n);return s||(Gg(n.apiBaseUrl)?`http://p${e}-${bp(n.sandboxId)}.localhost:${n.backendPort}${r}`:`${xp(n.apiBaseUrl)}/p/${n.sandboxId}/${e}${r}`)}function xS(e,t){if(!e)return;let r=e.replace(/^\/workspace\//,"").replace(/^\/+/,"").split("/").filter(Boolean).map(s=>encodeURIComponent(s)).join("/");return _e(3211,`/open?path=/workspace/${r}`,t)}function Kg(e){return`/open?path=/${(e.startsWith("/workspace")?e:`/workspace/${e.replace(/^\/+/,"")}`).split("/").filter(Boolean).map(r=>encodeURIComponent(r)).join("/")}`}function _S(e){return`http://localhost:3211${Kg(e)}`}function Hg(){return"/health"}function PS(e){return _e(3211,Hg(),e)}function kS(e,t){return _e(e,"/",t)}function Wg(e){let t=Ot(e);return!(!t||hp.has(t.port)||Og(e))}function _p(e,t){if(!e)return e;let n=Ot(e);return n?Wg(n.originalUrl)?_e(n.port,n.path,t):n.originalUrl:e}function zg(e,t="/"){return`http://localhost:${e}${t}`}var Pp=/^https?:\/\/[^/]+\/v1\/p\/([^/]+)\/(\d+)(\/.*)?$/;function kp(e){let t=e.match(fp);if(t)return{port:parseInt(t[1],10),sandboxId:t[2],backendPort:t[3]?parseInt(t[3],10):80,path:t[4]||"/"};let n=e.match(yp);if(n){let s=443;try{let o=new URL(e);s=o.port?parseInt(o.port,10):o.protocol==="https:"?443:80}catch{return null}return{port:parseInt(n[1],10),sandboxId:n[2],backendPort:s,path:n[4]||"/"}}let r=e.match(Pp);if(r)try{let s=new URL(e);return{port:parseInt(r[2],10),sandboxId:r[1],backendPort:parseInt(s.port,10)||(s.protocol==="https:"?443:80),path:r[3]||"/"}}catch{return null}return null}function wS(e){try{let t=kp(e);return t?`http://localhost:${t.port}${t.path}`:null}catch{return null}}function SS(e){return Tg(e)||yp.test(e)||Pp.test(e)}function vS(e){try{let{hostname:t,port:n}=new URL(e);return(t==="localhost"||t==="127.0.0.1")&&n!==""}catch{return!1}}var nt="/web-proxy/";function AS(e,t){try{let n=new URL(e);if(n.protocol!=="http:"&&n.protocol!=="https:")return null;let r=n.protocol.replace(":",""),s=`${nt}${r}/${n.host}${n.pathname}${n.search}${n.hash}`,o=parseInt(pe.KORTIX_MASTER,10);return`${_e(o,"/",t).replace(/\/$/,"")}${s}`}catch{return null}}function CS(e){try{let t=new URL(e),n=t.pathname.indexOf(nt);if(n===-1)return null;let s=t.pathname.slice(n+nt.length).match(/^(https?)\/([\w.\-]+(?::\d+)?)(\/.*)?$/);if(!s)return null;let o=s[1],l=s[2],p=s[3]||"/";return`${o}://${l}${p}${t.search}${t.hash}`}catch{return null}}function RS(e){try{return new URL(e).pathname.includes(nt)}catch{return e.includes(nt)}}function TS(e){if(!e)return!1;let t=e.trim();return!!(/^https?:\/\/(?!localhost|127\.0\.0\.1)/i.test(t)||/^[a-z0-9][\w.-]*\.[a-z]{2,}/i.test(t))}function IS(e){let t=e.trim();return t?/^https?:\/\//i.test(t)?t:/^[a-z0-9][\w.-]*\.[a-z]{2,}/i.test(t)?`https://${t}`:null:null}var wp="frontend";function Ut(e,t,n){(e==="error"?console.error:e==="warn"?console.warn:e==="debug"?console.debug:console.log)(`[${wp}] ${t}`,...n?[n]:[]);try{be().app.log({service:wp,level:e,message:t,extra:n})}catch{}}var de={debug:(e,t)=>Ut("debug",e,t),info:(e,t)=>Ut("info",e,t),warn:(e,t)=>Ut("warn",e,t),error:(e,t)=>Ut("error",e,t)};function Vg(e){return{type:"heartbeat-gap",gapMs:e}}function Jg(e){switch(e.type){case"message.updated":return{type:"message.updated",sessionID:e.properties.sessionID,message:e.properties.info};case"message.removed":return{type:"message.removed",sessionID:e.properties.sessionID,messageID:e.properties.messageID};case"message.part.updated":return{type:"message.part.updated",sessionID:e.properties.sessionID,part:e.properties.part};case"message.part.removed":return{type:"message.part.removed",sessionID:e.properties.sessionID,messageID:e.properties.messageID,partID:e.properties.partID};case"session.status":return{type:"session.status",sessionID:e.properties.sessionID,status:e.properties.status};case"session.idle":return{type:"session.idle",sessionID:e.properties.sessionID};case"session.error":return{type:"session.error",sessionID:e.properties.sessionID,error:e.properties.error};case"question.asked":return{type:"question.asked",sessionID:e.properties.sessionID,requestID:e.properties.id,questions:e.properties.questions,tool:e.properties.tool};case"question.replied":return{type:"question.answered",sessionID:e.properties.sessionID,requestID:e.properties.requestID,outcome:"replied",answers:e.properties.answers};case"question.rejected":return{type:"question.answered",sessionID:e.properties.sessionID,requestID:e.properties.requestID,outcome:"rejected"};case"permission.asked":return{type:"permission.asked",sessionID:e.properties.sessionID,requestID:e.properties.id,permission:e.properties.permission,patterns:e.properties.patterns,tool:e.properties.tool};case"permission.replied":return{type:"permission.replied",sessionID:e.properties.sessionID,requestID:e.properties.requestID,reply:e.properties.reply};case"todo.updated":return{type:"todo.updated",sessionID:e.properties.sessionID,todos:e.properties.todos};case"server.connected":return{type:"connection",status:"connected"};default:return null}}var Xg={now:()=>Date.now(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e)},Qg=16,Yg=8,Zg=6e4,em=5e3,tm=250,nm=1e3,rm=3e4,sm=5,im=3e3,om=3e4,am=2e4,cm=2e3,lm=8;function um(e){if(e.type==="session.status")return`session.status:${e.properties.sessionID}`;if(e.type==="lsp.updated")return"lsp.updated"}function Sp(e){if(e.aborted)return{promise:Promise.resolve(),cleanup:()=>{}};let t=()=>{};return{promise:new Promise(r=>{t=()=>r(),e.addEventListener("abort",t,{once:!0})}),cleanup:()=>e.removeEventListener("abort",t)}}var Ft=new WeakMap;function pm(e,t,n){let r=t.timers??Xg,s=t.connectTimeoutMs??am,o=t.heartbeatTimeoutMs??Zg,l=t.maxConsecutiveHardFailures??lm,p=new AbortController;function d(E,...u){for(let b of n){let c=E(b);if(c)try{c(...u)}catch(S){console.warn("[opencode-events] subscriber handler threw, skipping",S)}}}let f=r.now(),m=[],h,x=0,P=new Map,C=()=>{if(h&&r.clearTimeout(h),h=void 0,m.length===0)return;let E=m;m=[],P.clear(),x=r.now(),f=r.now();for(let u of E)u&&d(b=>b.onEvent,u.event)},I=()=>{if(h)return;let E=r.now()-x;h=r.setTimeout(C,Math.max(0,Qg-E))};return(async()=>{let E=0,u=0;for(;!p.signal.aborted;){let b=!1,c=!1,S,w,R=null,j=r.now(),D=new AbortController,q=Sp(p.signal);q.promise.then(()=>D.abort());try{let U=await new Promise((Q,K)=>{let H=!1;w=r.setTimeout(()=>{H||(H=!0,de.warn("SSE connect timed out, forcing reconnect",{connectTimeoutMs:s}),D.abort(),K(new Error(`SSE connect timed out after ${s}ms`)))},s),e.global.event({signal:D.signal,sseDefaultRetryDelay:im,sseMaxRetryDelay:om,sseMaxRetryAttempts:1}).then(Z=>{H||(H=!0,r.clearTimeout(w),Q(Z))},Z=>{H||(H=!0,r.clearTimeout(w),K(Z))})}),{stream:F}=U;f=r.now();let L=()=>{r.clearTimeout(S),S=r.setTimeout(()=>{de.warn("SSE heartbeat timeout, forcing reconnect"),D.abort()},o)};L();let J=r.now(),N=F[Symbol.asyncIterator]();for(;!D.signal.aborted;){let Q=N.next().then(oe=>({kind:"next",result:oe}),oe=>({kind:"error",error:oe})),K=Sp(D.signal),H=await Promise.race([Q,K.promise.then(()=>({kind:"aborted"}))]);if(K.cleanup(),H.kind==="aborted")break;if(H.kind==="error")throw H.error;if(H.result.done)break;b=!0,L();let Z=H.result.value,we=Z&&typeof Z=="object"&&"payload"in Z?Z.payload:Z;if(!we?.type)continue;let en=um(we);if(en){let oe=P.get(en);oe!==void 0&&(m[oe]=void 0),P.set(en,m.length)}m.push({type:we.type,event:we}),I(),!(r.now()-J<Yg)&&(J=r.now(),await new Promise(oe=>r.setTimeout(oe,0)))}c=b}catch(U){if(p.signal.aborted)break;R=U;let F=String(U),L=F.includes("401")||F.includes("403")||F.includes("Unauthorized")||F.includes("Token refresh failed");if(de.error("SSE event stream error",{error:F,retryCount:E,isAuthError:L}),L)try{gt(),await vr(),de.info("SSE: refreshed auth token after auth error")}catch(J){de.error("SSE: failed to refresh auth token",{error:String(J)})}}finally{r.clearTimeout(S),r.clearTimeout(w),D.abort(),q.cleanup(),C()}if(p.signal.aborted)break;let X=r.now()-j,W=R?.cause?.status;if(u=!b&&(typeof W=="number"&&W>=400||X<cm)?u+1:0,u>=l){de.error("SSE event stream parked \u2014 giving up after consecutive hard failures",{consecutiveFailures:u,lastError:String(R)}),d(U=>U.onParked,{consecutiveFailures:u,lastError:R});break}let T=r.now()-f;T>em&&d(U=>U.onGapRehydrate,T),c?E=0:(E++,E>1&&de.warn("SSE event stream reconnecting",{retryCount:E}));let z=c?tm:Math.min(nm*2**Math.min(E-1,sm),rm);await new Promise(U=>{let F=r.setTimeout(U,z),L=()=>{r.clearTimeout(F),U()};p.signal.addEventListener("abort",L,{once:!0})})}})(),{subscribers:n,teardown:()=>{p.abort(),h&&r.clearTimeout(h)}}}function _s(e){let{client:t,onEvent:n,onGapRehydrate:r,onParked:s,signal:o}=e,l={onEvent:n,onGapRehydrate:r,onParked:s},p=Ft.get(t);p?p.subscribers.add(l):(p=pm(t,e,new Set([l])),Ft.set(t,p));let d=p,f=!1,m=()=>{f||(f=!0,o&&o.removeEventListener("abort",h),d.subscribers.delete(l),d.subscribers.size===0&&(d.teardown(),Ft.get(t)===d&&Ft.delete(t)))},h=()=>m();return o&&(o.aborted?m():o.addEventListener("abort",h,{once:!0})),{close:m}}function dm(){return be()}var Lt=new Map,Gt=class extends Error{constructor(t){super(`Session runtime not ready \u2014 call \`await session.ensureReady()\` (it drives \`start()\` to completion and resolves this session's own sandbox runtime) before calling \`${t}\`.`),this.name="SessionNotReadyError"}};function gm(e,t){nn(e,t);function n(u){try{return new URL(u)}catch{if(typeof window<"u"&&window.location?.origin)try{return new URL(u,window.location.origin)}catch{return null}throw new A(`Kortix SDK: backendUrl must be an absolute URL outside the browser (got ${JSON.stringify(u)}). Relative paths like "/api/kortix" only resolve against a page origin \u2014 configure an absolute backendUrl for server-side hosts.`,{code:"INVALID_BACKEND_URL"})}}function r(u){let b=$().backendUrl??e.backendUrl,c=80,S=n(b);return S&&(c=S.port?Number(S.port):S.protocol==="https:"?443:80),pi({sandboxId:u,apiBaseUrl:b,backendPort:c})}let s={signUp:ls,signInWithPassword:us,sendMagicLink:ps,verifyOtp:ds,signInWithProvider:gs,exchangeCode:ms,refresh:tt,resetPassword:fs,updatePassword:ys,user:hs,signOut:bs,session:xs},o={list:Ci,get:Ti,create:Ri,updateName:Ii,branding:{get:Ei,update:ji,uploadAsset:$i,removeAsset:Mi,reset:qi},leave:Wi,members:Di,invite:Oi,removeMember:Ki,updateMemberRole:Hi,invites:Ui,cancelInvite:Fi,resendInvite:Li,tokens:{list:Cu,create:Ru,revoke:Tu},audit:{log:$u,export:qu,webhooks:{list:Du,create:Ou,update:Uu,remove:Fu}}},l={assignments:{list:gu,create:mu,revoke:fu},permissions:{list:yu,forRole:Yl},roles:{list:Xl,create:eu,update:tu,setPermissions:nu,remove:ru,usage:Zl},groups:{list:Bl,get:Nl,create:Kl,update:Hl,remove:Wl,members:{list:zl,add:Vl,remove:Jl}},agentIdentities:Ql,oauthClients:{list:ou,get:au,create:cu,update:lu,rotateSecret:uu,remove:pu},can:su,canBatch:iu},p={accountState:Kc,accountStateMinimal:Hc,transactions:Wc,transactionsSummary:zc,creditBreakdown:Vc,usageHistory:Jc,usageRollup:cl,sessionCosts:{list:ul,get:ss},tierConfigurations:Xc,checkout:{createSession:u=>Qc(u),confirmSession:(u,b)=>Yc(u,b)},subscription:{createPortalSession:(u,b)=>Zc(u,b),cancel:(u,b)=>el(u,b),reactivate:u=>tl(u),scheduleDowngrade:(u,b,c)=>nl(u,b,c),cancelScheduledChange:u=>rl(u),prorationPreview:(u,b)=>sl(u,b)},credits:{purchase:u=>il(u),autoTopupSettings:u=>ol(u),configureAutoTopup:u=>al(u)}},d={describe:Gi,accept:Bi,decline:Ni},f={list:Me,listForAccount:Ji,get:Lr,detail:Gr,create:Zi,createRepo:eo,provision:to,update:Kr,archive:Hr,llmCatalog:Br,modelPicker:Nr,sandboxHealth:Xr,sandboxTemplates:Ca,sessions:Ye,createSession:Ze},m={linkRepository:oo,getInstallation:ao,listInstallations:co,listLinkableInstallations:lo,listRepositories:uo,listRepositoryBranches:po,linkInstallation:mo,saveInstallation:go,deleteInstallation:fo},h={list:ku,create:wu,revoke:Su},x=ka,P={items:u=>Bu(u),item:u=>Hu(u),itemFile:(u,b)=>Wu(u,b),marketplaces:()=>Nu(),featured:()=>Ku(),sources:{list:()=>zu(),add:u=>Vu(u),remove:u=>Ju(u)}};function C(u){return{catalog:()=>zr(u),tools:()=>It(u),search:(...b)=>zo(u,...b),describe:(...b)=>Vo(u,...b),call:(...b)=>Jo(u,...b),uploadAttachment:(...b)=>Xo(u,...b)}}function I(u){let b={list:()=>Qo(u),listAll:()=>Yo(u),reconcile:(...c)=>Zo(u,...c),reconcileMember:(...c)=>ea(u,...c),updateCredential:(...c)=>ta(u,...c),revoke:(...c)=>na(u,...c),activate:(...c)=>ra(u,...c),setDefault:(...c)=>sa(u,...c),pipedreamConnect:(...c)=>ia(u,...c),pipedreamFinalize:(...c)=>oa(u,...c)};return{get:c=>Lr(u,c),detail:()=>Gr(u),audit:c=>Mu(u,c),update:c=>Kr(u,c),archive:()=>Hr(u),llmCatalog:()=>Br(u),modelPicker:()=>Nr(u),sandboxHealth:()=>Xr(u),onboardingComplete:(...c)=>io(u,...c),apps:{list:()=>Xu(u),create:c=>Qu(u,c),get:c=>Yu(u,c),update:(...c)=>Zu(u,...c),access:{get:(...c)=>tp(u,...c),update:(...c)=>np(u,...c),session:(...c)=>rp(u,...c)},remove:c=>ep(u,c),artifacts:{register:c=>as(u,c),uploadArchive:(...c)=>sp(u,...c),finalize:(...c)=>cs(u,...c)},deployments:{create:(...c)=>ip(u,...c),list:c=>op(u,c),get:(...c)=>ap(u,...c),logs:(...c)=>cp(u,...c)},start:c=>lp(u,c),stop:c=>up(u,c),rollback:(...c)=>pp(u,...c)},tokens:{list:()=>Iu(u),create:c=>Eu(u,c),revoke:c=>ju(u,c)},setupLinks:{requestSecret:c=>Lu(u,c),requestConnector:c=>Gu(u,c)},validateManifest:c=>Qi(u,c),gitToken:()=>Yi(u),secrets:{list:()=>Do(u),upsert:c=>Oo(u,c),setStrategy:(...c)=>Uo(u,...c),broker:(...c)=>Fo(u,...c),remove:c=>Ko(u,c),setPersonal:(...c)=>Ho(u,...c),removePersonal:c=>Wo(u,c),setGitCredential:c=>No(u,c),startProviderOAuth:(...c)=>Lo(u,...c),pollProviderOAuth:(...c)=>Go(u,...c),removeProviderOAuth:c=>Bo(u,c)},access:{list:()=>xo(u),invite:(...c)=>ko(u,...c),update:(...c)=>_o(u,...c),revoke:c=>Po(u,c),pendingInvites:()=>wo(u),resendInvite:(...c)=>vo(u,...c),revokeInvite:(...c)=>So(u,...c),requests:()=>yo(u),approveRequest:(...c)=>ho(u,...c),rejectRequest:(...c)=>bo(u,...c),groupGrants:()=>Ao(u),attachGroupGrant:(...c)=>Co(u,...c),updateGroupGrant:(...c)=>Ro(u,...c),detachGroupGrant:c=>To(u,c),resourceGrants:{list:()=>Io(u),create:c=>Eo(u,c),remove:c=>jo(u,c)}},connectors:{...C(u),list:()=>aa(u),config:(...c)=>ma(u,...c),create:(...c)=>ha(u,...c),remove:(...c)=>xa(u,...c),sync:()=>ca(u),auth:{discover:(...c)=>ba(u,...c)},setName:(...c)=>fa(u,...c),setCredentialMode:(...c)=>la(u,...c),setAuthorizationStrategy:(...c)=>ua(u,...c),setCredential:(...c)=>wa(u,...c),setSensitive:(...c)=>pa(u,...c),connections:b,policies:{get:(...c)=>da(u,...c),set:(...c)=>ga(u,...c)},pipedream:{listApps:(...c)=>_a(u,...c),listSections:(...c)=>Pa(u,...c),connect:(...c)=>ya(u,...c),finalize:(...c)=>Sa(u,...c)},discover:{list:(...c)=>Vr(u,...c),detail:(...c)=>Jr(u,...c)}},policies:{list:()=>va(u),set:(...c)=>Aa(u,...c)},triggers:{list:()=>Cc(u),create:(...c)=>Rc(u,...c),update:(...c)=>Tc(u,...c),remove:(...c)=>Ic(u,...c),fire:(...c)=>jc(u,...c),setActivation:(...c)=>Ec(u,...c)},files:{list:c=>Da(u,c),read:(c,S)=>Ua(u,c,S),search:(...c)=>Oa(u,...c),archive:(...c)=>Fa(u,...c),history:(...c)=>Ka(u,...c)},git:{commits:()=>Ga(u),commit:c=>Ba(u,c),commitDiff:c=>Na(u,c),branches:()=>La(u),versionDiff:(...c)=>Ha(u,...c),inviteCollaborator:(...c)=>Xi(u,...c)},changeRequests:{list:()=>Wa(u),get:c=>za(u,c),diff:c=>Va(u,c),mergePreview:c=>Ja(u,c),open:(...c)=>Xa(u,...c),merge:(...c)=>Qa(u,...c),close:(...c)=>Ya(u,...c),reopen:(...c)=>Za(u,...c),requestChanges:(...c)=>ec(u,...c)},sessions:{list:c=>Ye(u,c),create:c=>Ze(u,c),ensureWarm:()=>cc(u),claimWarm:c=>lc(u,c)},review:{list:c=>hu(u,c),get:c=>bu(u,c),submit:c=>xu(u,c),act:(...c)=>_u(u,...c),bulkAct:c=>Pu(u,c)},approvals:{list:c=>$o(u,c),resolve:(...c)=>qo(u,...c),sessionsNeedingInput:c=>Mo(u,c)},gateway:{logs:c=>Rl(u,c),log:c=>Tl(u,c),overview:c=>Il(u,c),series:c=>El(u,c),breakdown:c=>jl(u,c),sessions:c=>$l(u,c),errors:c=>Ml(u,c),budgets:()=>ql(u),setBudget:c=>Dl(u,c),deleteBudget:c=>Ol(u,c),keys:()=>Ul(u),createKey:c=>Fl(u,c),revokeKey:c=>Ll(u,c),routing:{get:()=>Sl(u),set:c=>vl(u,c),reset:()=>Al(u),preview:c=>Cl(u,c)},playground:(c,S,w)=>Gl(u,c,S,w)},channels:{slack:{installation:()=>dl(u),connect:c=>gl(u,c),mode:()=>ml(u),manifest:()=>fl(u),disconnect:()=>yl(u),getFile:c=>hl(u,c),uploadFile:c=>bl(u,c)},email:{installation:c=>xl(u,c),mode:()=>_l(u),connect:c=>Pl(u,c),disconnect:c=>kl(u,c),updatePolicy:(...c)=>wl(u,...c)}},updateFeatureFlag:(...c)=>no(u,...c),updateExperimentalFeature:(...c)=>ro(u,...c),modelDefaults:{get:()=>Oc(u),set:c=>Uc(u,c),clear:c=>Fc(u,c)},setDefaultAgent:c=>Nc(u,c),sandbox:{list:()=>qa(u),snapshots:()=>Ra(u),rebuildSnapshot:c=>Ta(u,c),fixWithAgent:()=>Ia(u),createTemplate:c=>Ea(u,c),updateTemplate:(...c)=>ja(u,...c),removeTemplate:c=>$a(u,c),buildTemplate:c=>Ma(u,c),setProvider:c=>so(u,c)},setAgentScope:(...c)=>Gc(u,...c),session:c=>E(u,c)}}function E(u,b){let c=null,S,w,R=null;async function j(){R||(R=Yr(u,b,{showErrors:!1}).then(y=>{let T=typeof y.metadata?.opencode_model=="string"?y.metadata.opencode_model.trim():"",z=T.indexOf("/"),U=z>0&&z<T.length-1?{providerID:T.slice(0,z),modelID:T.slice(z+1)}:void 0,F=y.agent_name?.trim()||void 0;return{model:U,agent:F}}));try{return await R}catch(y){throw R=null,y}}function D(){if(c)return c;let y=Mc(u,b);return y&&(c=y),c}async function q(y){let T=D();if(T)return T;let z=y?.readyTimeoutMs??18e4,U=bt($().backendUrl??e.backendUrl).catch(()=>null),F=`${u}
20
+ ${b}`,L=Lt.get(F);if(L)return c=await L,await U,c;let J=(async()=>{let N=Date.now()+z,Q=()=>Math.max(0,N-Date.now()),K=await qe(u,b,Math.min(3e4,Q()));for(;Date.now()<N&&(K==null||(K.stage==="provisioning"||K.stage==="starting")&&K.retriable);)await new Promise(we=>setTimeout(we,Math.min(1e3,Q()))),K=await qe(u,b,Math.min(3e4,Q()));if(!K||K.stage!=="ready"||!K.sandbox||!K.opencode_session_id)throw new A(`Session runtime not ready (stage: ${K?.stage??"unknown"})`,{code:"RUNTIME_UNAVAILABLE"});let H=K.sandbox.external_id;if(!H)throw new A("Session sandbox has no external_id \u2014 cannot resolve its runtime URL",{code:"RUNTIME_UNAVAILABLE"});let Z=mt(H);return Qs(Z,H),{opencodeSessionId:K.opencode_session_id,runtimeUrl:Z,sandboxId:H}})();Lt.set(F,J);try{return c=await J,await U,c}finally{Lt.get(F)===J&&Lt.delete(F)}}function X(y){let T=D();if(!T)throw new Gt(y);return T}function W(){c=null,Dc(u,b)}return{get:y=>Yr(u,b,y),cost:()=>ss(b,{projectId:u}),update:y=>xc(u,b,y),delete:()=>(W(),_c(u,b)),start:(...y)=>qe(u,b,...y),restart:()=>(W(),jt(u,b)),stop:()=>(W(),$t(u,b)),configState:()=>Pc(u,b),reloadConfig:y=>(W(),kc(u,b,y)),reloadConfigStream:(...y)=>(W(),wc(u,b,...y)),setSharing:y=>rc(u,b,y),previews:()=>sc(u,b),commit:y=>tc(u,b,y),publicShares:{list:()=>ic(u,b),create:(...y)=>oc(u,b,...y),revoke:(...y)=>ac(u,b,...y)},audit:(y,T)=>uc(u,b,y,T),transcript:y=>pc(u,b,y),transcriptSync:y=>dc(u,b,y),turn:()=>gc(u,b),prompts:{create:y=>mc(u,b,y),list:()=>fc(u,b),remove:y=>yc(u,b,y),retry:y=>hc(u,b,y),hold:y=>bc(u,b,y)},ensureReady:q,health:y=>gp(D()?.runtimeUrl??null,y),previewUrl:(y,T="/")=>_e(y,T,r(X("previewUrl").sandboxId)),proxyUrl:y=>_p(y,r(X("proxyUrl").sandboxId)),setModel:y=>{S=y},changeModel:async y=>{let T=await Ac(u,b,y);return R=null,T},scope:()=>Sc(u,b),rescope:y=>vc(u,b,y),setAgent:y=>{w=y},send:async(y,T)=>{let{opencodeSessionId:z,runtimeUrl:U}=await q(),F=T?.model??S,L=T?.agent??w,J=F&&L?{}:await j(),N=F??J.model,Q=L??J.agent;return le(U).session.prompt({sessionID:z,parts:[{type:"text",text:y}],...N?{model:N}:{},...Q?{agent:Q}:{}})},abort:async()=>{let{opencodeSessionId:y,runtimeUrl:T}=await q();return le(T).session.abort({sessionID:y})},rewind:async y=>{let{opencodeSessionId:T,runtimeUrl:z}=await q();return le(z).session.revert({sessionID:T,messageID:y})},restoreRewind:async()=>{let{opencodeSessionId:y,runtimeUrl:T}=await q();return le(T).session.unrevert({sessionID:y})},stream:async y=>{let{runtimeUrl:T}=await q();return _s({client:le(T),onEvent:y.onEvent,onGapRehydrate:y.onGapRehydrate,signal:y.signal})},get runtime(){return le(X("runtime").runtimeUrl)},files:{list:async y=>St(y,(await q()).runtimeUrl),read:async y=>ze(y,(await q()).runtimeUrl),readBlob:async y=>Ve(y,(await q()).runtimeUrl),status:async()=>vt((await q()).runtimeUrl),findFiles:async(y,T)=>At(y,T,(await q()).runtimeUrl),findText:async y=>Ct(y,(await q()).runtimeUrl),upload:async(y,T,z)=>Je(y,T,z,(await q()).runtimeUrl),write:async(y,T)=>Xe(y,T,(await q()).runtimeUrl),create:async y=>Rt(y,(await q()).runtimeUrl),copy:async(y,T)=>Tt(y,T,(await q()).runtimeUrl),remove:async y=>Ie(y,(await q()).runtimeUrl),mkdir:async y=>Qe(y,(await q()).runtimeUrl),rename:async(y,T)=>xe(y,T,(await q()).runtimeUrl)}}}return{config:e,auth:s,accounts:o,iam:l,accountInvites:d,projects:f,connectors:C(),project:I,session:E,github:m,billing:p,sandboxShares:h,connectStatus:x,marketplace:P,validateToken:zi,runtime:dm}}function mm(){let e=typeof crypto<"u"?crypto:void 0;if(e?.randomUUID)return e.randomUUID();let t=new Uint8Array(16);if(e?.getRandomValues)e.getRandomValues(t);else for(let r=0;r<16;r++)t[r]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=[...t].map(r=>r.toString(16).padStart(2,"0"));return`${n[0]}${n[1]}${n[2]}${n[3]}-${n[4]}${n[5]}-${n[6]}${n[7]}-${n[8]}${n[9]}-${n.slice(10).join("")}`}function fm(){return{pending:[],failed:[],inFlightId:null,inFlightIds:[]}}function De(e){return e.inFlightIds?.length?e.inFlightIds:e.inFlightId?[e.inFlightId]:[]}function ym(e,t){return{...e,pending:[...e.pending,{...t,attempts:0}]}}function hm(e){if(De(e).length>0)return{state:e};let t=e.pending[0];if(!t)return{state:e};let n={...t,attempts:t.attempts+1};return{state:{...e,pending:[n,...e.pending.slice(1)],inFlightId:n.id,inFlightIds:[n.id]},claimed:n}}function bm(e){let t=De(e);return t.length===0?e:{...e,pending:e.pending.filter(n=>!t.includes(n.id)),inFlightId:null,inFlightIds:[]}}function xm(e,t){let n=De(e);if(n.length===0)return e;let r=e.pending.filter(s=>n.includes(s.id));return r.length===0?{...e,inFlightId:null,inFlightIds:[]}:{pending:e.pending.filter(s=>!n.includes(s.id)),failed:[...e.failed,...r.map(s=>({...s,lastError:t}))],inFlightId:null,inFlightIds:[]}}function _m(e,t){let n=e.failed.find(o=>o.id===t);if(!n)return e;let{lastError:r,...s}=n;return{...e,pending:[...e.pending,s],failed:e.failed.filter(o=>o.id!==t)}}function Pm(e,t){return De(e).includes(t)?e:e.pending.some(n=>n.id===t)?{...e,pending:e.pending.filter(n=>n.id!==t)}:e.failed.some(n=>n.id===t)?{...e,failed:e.failed.filter(n=>n.id!==t)}:e}function km(e,t,n){return De(e).includes(t)||!e.pending.some(r=>r.id===t)?e:{...e,pending:e.pending.map(r=>r.id===t?{...r,text:n}:r)}}function wm(e,t,n){let r=De(e);if(r.includes(t))return e;let s=e.pending.findIndex(f=>f.id===t);if(s===-1)return e;let o=r.length,l=Math.min(Math.max(n,o),e.pending.length-1);if(l===s)return e;let p=[...e.pending],[d]=p.splice(s,1);return p.splice(l,0,d),{...e,pending:p}}var vp={thinking:!1,toolDetails:!0,assistantMetadata:!0};function Sm(e){return e&&e.charAt(0).toUpperCase()+e.slice(1)}function vm(e){let t=e/1e3;if(t<60)return`${t.toFixed(1)}s`;let n=Math.floor(t/60),r=t%60;return`${n}m ${r.toFixed(0)}s`}function Am(e,t){if(e.type==="text"&&!e.synthetic)return`${e.text??""}
21
21
 
22
- `;if(t.type==="reasoning")return e.thinking?`> _Thinking:_
22
+ `;if(e.type==="reasoning")return t.thinking?`> _Thinking:_
23
23
  >
24
- > ${(t.text??"").replace(/\n/g,`
24
+ > ${(e.text??"").replace(/\n/g,`
25
25
  > `)}
26
26
 
27
- `:"";if(t.type==="tool"){let n=`**Tool: ${t.tool??"unknown"}**
28
- `;if(e.toolDetails&&t.state?.input)try{let r=typeof t.state.input=="string"?t.state.input:JSON.stringify(t.state.input,null,2);n+=`
27
+ `:"";if(e.type==="tool"){let n=`**Tool: ${e.tool??"unknown"}**
28
+ `;if(t.toolDetails&&e.state?.input)try{let r=typeof e.state.input=="string"?e.state.input:JSON.stringify(e.state.input,null,2);n+=`
29
29
  <details>
30
30
  <summary>Input</summary>
31
31
 
@@ -34,7 +34,7 @@ ${r}
34
34
  \`\`\`
35
35
 
36
36
  </details>
37
- `}catch{}if(e.toolDetails&&t.state?.status==="completed"&&t.state.output){let r=t.state.output,s=r.length>2e3?r.slice(0,2e3)+`
37
+ `}catch{}if(t.toolDetails&&e.state?.status==="completed"&&e.state.output){let r=e.state.output,s=r.length>2e3?r.slice(0,2e3)+`
38
38
  ... (truncated)`:r;n+=`
39
39
  <details>
40
40
  <summary>Output</summary>
@@ -44,36 +44,36 @@ ${s}
44
44
  \`\`\`
45
45
 
46
46
  </details>
47
- `}return e.toolDetails&&t.state?.status==="error"&&t.state.error&&(n+=`
47
+ `}return t.toolDetails&&e.state?.status==="error"&&e.state.error&&(n+=`
48
48
  **Error:**
49
49
  \`\`\`
50
- ${t.state.error}
50
+ ${e.state.error}
51
51
  \`\`\`
52
52
  `),n+=`
53
- `,n}return""}function gm(t,e){if(!e)return`## Assistant
53
+ `,n}return""}function Cm(e,t){if(!t)return`## Assistant
54
54
 
55
- `;let n=t.agent?um(t.agent):"Assistant",r=t.modelID||"",s="";t.time?.completed&&t.time?.created&&(s=pm(t.time.completed-t.time.created));let o=[r,s].filter(Boolean).join(" \xB7 ");return o?`## ${n} (${o})
55
+ `;let n=e.agent?Sm(e.agent):"Assistant",r=e.modelID||"",s="";e.time?.completed&&e.time?.created&&(s=vm(e.time.completed-e.time.created));let o=[r,s].filter(Boolean).join(" \xB7 ");return o?`## ${n} (${o})
56
56
 
57
57
  `:`## ${n}
58
58
 
59
- `}function mm(t,e,n){let r="";t.role==="user"?r+=`## User
59
+ `}function Rm(e,t,n){let r="";e.role==="user"?r+=`## User
60
60
 
61
- `:r+=gm(t,n.assistantMetadata);for(let s of e)r+=dm(s,n);return r}function fm(t,e,n=kp){let r=`# ${t.title||"Untitled Session"}
61
+ `:r+=Cm(e,n.assistantMetadata);for(let s of t)r+=Am(s,n);return r}function Tm(e,t,n=vp){let r=`# ${e.title||"Untitled Session"}
62
62
 
63
- `;r+=`**Session ID:** \`${t.id}\`
64
- `,r+=`**Created:** ${new Date(t.time.created).toLocaleString()}
65
- `,r+=`**Updated:** ${new Date(t.time.updated).toLocaleString()}
63
+ `;r+=`**Session ID:** \`${e.id}\`
64
+ `,r+=`**Created:** ${new Date(e.time.created).toLocaleString()}
65
+ `,r+=`**Updated:** ${new Date(e.time.updated).toLocaleString()}
66
66
 
67
67
  `,r+=`---
68
68
 
69
- `;for(let s of e)r+=mm(s.info,s.parts,n),r+=`---
69
+ `;for(let s of t)r+=Rm(s.info,s.parts,n),r+=`---
70
70
 
71
- `;return r}function ym(t,e){return`session-${t}.md`}function te(t){if(!t)return"An error occurred";if(typeof t=="string"){let e=t.startsWith("Error: ")?t.slice(7):t;try{let n=JSON.parse(e);if(typeof n=="string"){e=n;try{let r=JSON.parse(e);return tt(r)||e}catch{return e}}return tt(n)||e}catch{return hm(e)??e}}return typeof t=="object"?tt(t)||"An error occurred":String(t)}function Sp(t){let e=t.indexOf("{"),n=t.lastIndexOf("}");if(!(e===-1||n===-1||n<=e))return t.slice(e,n+1)}function hm(t){let e=Sp(t);if(e)try{return tt(JSON.parse(e))}catch{return}}function tt(t){if(typeof t!="object"||t===null||Array.isArray(t))return;let e=t;if(typeof e.message=="string"&&e.message)return e.message;if(typeof e.error=="string"&&e.error)return e.error;let n=e.data;if(typeof n?.message=="string")return n.message;let r=e.error;if(typeof r?.message=="string")return r.message}function bm(t){if(!Array.isArray(t))return;let e=[];for(let n of t){if(!n||typeof n!="object"||Array.isArray(n))continue;let r=n;!Number.isInteger(r.attempt)||r.attempt<1||typeof r.provider!="string"||!r.provider||typeof r.route_model!="string"||!r.route_model||typeof r.resolved_model!="string"||!r.resolved_model||typeof r.stage!="string"||!r.stage||typeof r.code!="string"&&!(typeof r.code=="number"&&Number.isFinite(r.code))||typeof r.message!="string"||!r.message||r.status!==void 0&&(!Number.isInteger(r.status)||r.status<100||r.status>599)||e.push({attempt:r.attempt,provider:r.provider,routeModel:r.route_model,resolvedModel:r.resolved_model,stage:r.stage,...typeof r.status=="number"?{status:r.status}:{},code:r.code,message:r.message})}return e.length>0?e:void 0}function hs(t){if(!(typeof t!="string"||!t))try{return JSON.parse(t)}catch{return}}function wp(t){let e=typeof t.provider=="string"&&t.provider?t.provider:void 0,n=typeof t.code=="string"&&t.code?t.code:void 0,r=typeof t.suggestion=="string"&&t.suggestion?t.suggestion:void 0,s=typeof t.upstream_status=="number"?t.upstream_status:void 0,o=typeof t.request_id=="string"&&t.request_id?t.request_id:void 0,u=bm(t.attempt_failures);return!e&&!n&&!r&&s===void 0&&!o&&!u?void 0:{message:typeof t.message=="string"&&t.message||tt(t)||"",provider:e,code:n,suggestion:r,upstreamStatus:s,requestId:o,attemptFailures:u}}function de(t){if(t==null)return;if(typeof t=="string"){let u=t.startsWith("Error: ")?t.slice(7):t,p=hs(u)??hs(Sp(u));return p!==void 0?de(p):void 0}if(typeof t!="object")return;let e=t,n=wp(e);if(n)return n;let r=e.error;if(r&&typeof r=="object"&&!Array.isArray(r)){let u=wp(r);if(u)return u}let s=e.data;if(s&&typeof s.responseBody=="string"){let u=hs(s.responseBody);if(u!==void 0){let p=de(u);if(p)return p}}let o=e.cause;if(o&&typeof o=="object"){let u=o.body;if(u!==void 0){let p=de(u);if(p)return p}}}var xm={bash:{label:"Shell",category:"shell"},pty_spawn:{label:"Spawn Terminal",category:"shell"},pty_read:{label:"Terminal Output",category:"shell"},pty_write:{label:"Terminal Input",category:"shell"},pty_input:{label:"Terminal Input",category:"shell"},pty_kill:{label:"Kill Process",category:"shell"},read:{label:"Read File",category:"files"},list:{label:"List Directory",category:"files"},ls:{label:"List Directory",category:"files"},write:{label:"Write File",category:"edit"},edit:{label:"Edit File",category:"edit"},multiedit:{label:"Edit File",category:"edit"},morph_edit:{label:"Edit File",category:"edit"},apply_patch:{label:"Apply Patch",category:"edit"},patch:{label:"Apply Patch",category:"edit"},grep:{label:"Search Code",category:"search"},glob:{label:"Find Files",category:"search"},image_search:{label:"Image Search",category:"search"},session_search:{label:"Search Sessions",category:"search"},webfetch:{label:"Fetch Page",category:"web"},scrape_webpage:{label:"Scrape Page",category:"web"},websearch:{label:"Web Search",category:"web"},web_search:{label:"Web Search",category:"web"},image_gen:{label:"Generate Image",category:"web"},video_gen:{label:"Generate Video",category:"web"},task:{label:"Delegate to Agent",category:"task"},todowrite:{label:"Plan Tasks",category:"task"},todoread:{label:"Read Plan",category:"task"},question:{label:"Ask Question",category:"task"},presentation_gen:{label:"Presentation",category:"task"},show:{label:"Show Output",category:"task"},show_user:{label:"Show Output",category:"task"},prune:{label:"Prune Context",category:"other"},distill:{label:"Distill Context",category:"other"},compress:{label:"Compress Context",category:"other"},context_info:{label:"Context Info",category:"other"}},_m=[{prefix:"pty_",category:"shell"},{prefix:"agent_",category:"task"},{prefix:"session_",category:"task"},{prefix:"task_",category:"task"},{prefix:"trigger_",category:"task"},{prefix:"project_",category:"task"}];function Pm(t){return t.replace(/^oc[-_]/,"")}function Gt(t){return Pm(t).replace(/-/g,"_")}function bs(t){return Gt(t).split(/[_\s]+/).filter(Boolean).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function xs(t){let e=Gt(t),n=xm[e];if(n)return n;for(let{prefix:r,category:s}of _m)if(e.startsWith(r))return{label:bs(t),category:s};return{label:bs(t),category:"other"}}var km=256*1024;function wm(t){switch(t.status){case"pending":return"pending";case"running":return"running";case"completed":return"done";case"error":return"error";default:return t}}function Sm(t){if(t===void 0)return{};if(t.length>km)return{outputText:t};try{return{outputParsed:JSON.parse(t),outputText:t}}catch{return{outputText:t}}}function vm(t){if(typeof t!="object"||t===null||Array.isArray(t))return;let e=t,n=e.success===!1,r=e.error,s=typeof r=="string"&&r.length>0||typeof r=="object"&&r!==null;if(!(!n&&!s))return s?te(r):typeof e.message=="string"&&e.message?e.message:"Tool reported failure"}function Cm(t,e){let n="title"in e?e.title:void 0,r=e.status==="completed"?e.output:void 0,{outputParsed:s,outputText:o}=Sm(r),u=wm(e),p=e.status==="error"?e.error:void 0;if(u==="done"){let d=vm(s);d&&(u="error",p=d)}return{name:t,title:n||xs(t).label,status:u,input:e.input,output:r,outputParsed:s,outputText:o,error:p}}function Am(t){return{kind:"text",id:t.id,text:t.text,synthetic:!!t.synthetic}}function Rm(t){return{kind:"reasoning",id:t.id,text:t.text}}function Tm(t){return{kind:"tool",id:t.id,tool:Cm(t.tool,t.state)}}function Im(t){let e=t.mime;return{kind:"file",id:t.id,filename:t.filename,mime:e,url:t.url,isImage:e.startsWith("image/"),isPdf:e==="application/pdf"}}function Em(t){return{kind:"subtask",id:t.id,description:t.description,agent:t.agent,prompt:t.prompt,model:t.model}}function jm(t){return{kind:"patch",id:t.id,hash:t.hash,files:t.files,fileCount:t.files.length}}function $m(t){return{kind:"snapshot",id:t.id,snapshot:t.snapshot}}function Mm(t){return{kind:"agent",id:t.id,name:t.name}}function qm(t){return{kind:"retry",id:t.id,attempt:t.attempt,message:te(t.error),createdAt:t.time.created}}function Dm(t){return{kind:"compaction",id:t.id,auto:t.auto,overflow:!!t.overflow,tailStartId:t.tail_start_id}}function Om(t){return{kind:"step",id:t.id,phase:"start",snapshot:t.snapshot}}function Um(t){return{kind:"step",id:t.id,phase:"finish",snapshot:t.snapshot,reason:t.reason,cost:t.cost,tokens:t.tokens}}function vp(t){switch(t.type){case"text":return Am(t);case"reasoning":return Rm(t);case"tool":return Tm(t);case"file":return Im(t);case"subtask":return Em(t);case"patch":return jm(t);case"snapshot":return $m(t);case"agent":return Mm(t);case"retry":return qm(t);case"compaction":return Dm(t);case"step-start":return Om(t);case"step-finish":return Um(t);default:return{kind:"unknown",raw:t}}}function Fm(t){if(!t)return;let e=typeof t=="object"&&"name"in t&&typeof t.name=="string"?t.name:"Error",n=de(t);return{name:e,message:n?.message||te(t),provider:n?.provider,code:n?.code,suggestion:n?.suggestion,upstreamStatus:n?.upstreamStatus,requestId:n?.requestId,attemptFailures:n?.attemptFailures}}function Lm(t){switch(t.kind){case"text":case"reasoning":return t.text.trim().length>0;case"step":return!1;default:return!0}}function Gm(t){let e=t.parts.map(vp),n=t.info.role==="assistant"?t.info.error:void 0,r=Fm(n),s=!r&&!e.some(Lm);return{parts:e,error:r,isEmpty:s}}function Pe(t){return t.type==="text"}function _s(t){return t.type==="reasoning"}function ge(t){return t.type==="tool"}function Bm(t){return t.type==="file"}function BS(t){return t.type==="agent"}function NS(t){return t.type==="compaction"}function KS(t){return t.type==="snapshot"}function HS(t){return t.type==="patch"}function WS(t){if(Pe(t)||_s(t))return t.text}function Nm(t){if(!Bm(t))return!1;let e=t.mime;return e.startsWith("image/")||e==="application/pdf"}function zS(t){let e=[],n=[];for(let r of t)Nm(r)?e.push(r):n.push(r);return{attachments:e,stickyParts:n}}function VS(t,e){let n=[];return t?.tool&&n.push(t.tool),e?.tool&&n.push(e.tool),n}function JS(t,e,n){return n.some(r=>r.messageID===e&&r.callID===t.callID)}var Km=new Set(["todoread","context_info"]);function Hm(t){return!Km.has(t.tool)}function XS(t){let e=t.tool||"";if(e==="task"||e==="agent_spawn"||e==="agent-spawn"||e==="agent_message"||e==="agent-message"||e==="agent_task"||e==="agent-task"||e==="agent_task_update"||e==="agent-task-update"||e==="agent_task_message"||e==="agent-task-message"||e==="agent_task_start"||e==="agent-task-start"||e==="task_create"||e==="task-create"||e==="task_start"||e==="task-start"||e==="task_update"||e==="task-update"||e==="task_message"||e==="task-message"){let r=t.state?.metadata?.sessionId;if(typeof r=="string"&&r)return r;let s=t.state?.title;if(s){let u=s.match(/\bses_[a-zA-Z0-9]+/);if(u)return u[0]}let o=t.state?.output;if(o){let u=o.match(/\bses_[a-zA-Z0-9]+/);if(u)return u[0]}return}let n=t.tool?.replace(/-/g,"_")||"";if(n==="session_spawn"||n==="session_start_background"){let r=t.state?.output;if(r){let s=r.match(/\*?\*?Session:?\*?\*?\s*(ses_[a-zA-Z0-9]+)/);if(s)return s[1]}return}}function QS(t){if(t)for(let e=t.length-1;e>=0;e--){let n=t[e]?.info;if(n?.role==="assistant"&&n.error)return te(n.error)}}function YS(t){let e=[];for(let n of t)if(n.info.role==="assistant")for(let r of n.parts)ge(r)&&Hm(r)&&e.push(r);return e}function ZS(t,e={}){switch(t){case"read":return{icon:"glasses",title:"Read",subtitle:Wm(e.filePath)};case"list":return{icon:"list",title:"List",subtitle:zm(e.path)};case"glob":return{icon:"search",title:"Glob",subtitle:e.pattern};case"grep":return{icon:"search",title:"Grep",subtitle:e.pattern};case"webfetch":return{icon:"globe",title:"Web Fetch",subtitle:e.url};case"websearch":case"web-search":case"web_search":return{icon:"search",title:"Web Search",subtitle:e.query};case"scrape-webpage":return{icon:"globe",title:"Scrape",subtitle:e.urls?.split?.(",")[0]};case"image-search":return{icon:"image",title:"Image Search",subtitle:e.query};case"image-gen":return{icon:"image",title:"Image Gen",subtitle:e.prompt?.slice?.(0,40)};case"video-gen":return{icon:"cpu",title:"Video Gen",subtitle:e.prompt?.slice?.(0,40)};case"presentation-gen":{let n=e.action||"";return{icon:"presentation",title:{create_slide:"Create Slide",list_slides:"List Slides",preview:"Preview",export_pdf:"Export PDF",export_pptx:"Export PPTX"}[n]||"Presentation",subtitle:e.slide_title||e.presentation_name}}case"show":case"show-user":return{icon:"globe",title:"Output",subtitle:e.title||e.description};case"task":return{icon:"square-kanban",title:`Agent (${e.subagent_type||"task"})`,subtitle:Vm(e)};case"session_spawn":case"session_start_background":case"session-spawn":case"session-start-background":case"oc-session_spawn":case"oc-session-spawn":case"oc-session_start_background":case"oc-session-start-background":return{icon:"square-kanban",title:`Worker (${e.agent||"KortixWorker"})`,subtitle:e.description||e.prompt?.slice(0,60)};case"bash":return{icon:"terminal",title:"Shell",subtitle:e.description};case"edit":case"morph_edit":return{icon:"file-pen",title:"Edit",subtitle:Cp(e.filePath)};case"write":return{icon:"file-pen",title:"Write",subtitle:Cp(e.filePath)};case"apply_patch":return{icon:"file-pen",title:"Patch",subtitle:e.files?.length?`${e.files.length} file${e.files.length>1?"s":""}`:void 0};case"todowrite":return{icon:"check-square",title:"Todos"};case"todoread":return{icon:"check-square",title:"Todos (read)"};case"question":return{icon:"message-circle",title:"Questions"};case"prune":return{icon:"scissors",title:"DCP Prune",subtitle:e.reason};case"distill":return{icon:"scissors",title:"DCP Distill"};case"compress":return{icon:"scissors",title:"DCP Compress",subtitle:e.topic};case"context_info":return{icon:"scissors",title:"Context Info"};case"session_read":case"session-read":case"oc-session_read":case"oc-session-read":return{icon:"glasses",title:`Session Read (${e.mode||"summary"})`,subtitle:e.session_id?.slice(-12)};case"session_search":case"session-search":case"oc-session_search":case"oc-session-search":return{icon:"search",title:"Session Search",subtitle:e.query};case"session_message":case"session-message":case"oc-session_message":case"oc-session-message":return{icon:"message-circle",title:"Message \u2192 Session",subtitle:e.session_id?.slice(-12)};case"session_lineage":case"session-lineage":case"oc-session_lineage":case"oc-session-lineage":return{icon:"list-tree",title:"Session Lineage",subtitle:e.session_id?.slice(-12)};case"session_list_background":case"session-list-background":case"session_list_spawned":case"session-list-spawned":case"oc-session_list_background":case"oc-session-list-background":case"oc-session_list_spawned":case"oc-session-list-spawned":return{icon:"layers",title:"Background Sessions",subtitle:e.project||"all"};case"session_stats":case"session-stats":case"oc-session_stats":case"oc-session-stats":return{icon:"layers",title:"Session Stats",subtitle:e.session_id?.slice(-12)||"current"};case"session_list":case"session-list":case"oc-session_list":case"oc-session-list":return{icon:"list",title:"Session List",subtitle:e.search};case"session_get":case"session-get":case"oc-session_get":case"oc-session-get":return{icon:"book-open",title:"Session Get",subtitle:e.session_id?.slice(-12)};case"session_context":case"session-context":case"oc-session_context":case"oc-session-context":return{icon:"book-open",title:"Session Context",subtitle:e.session_id?.slice(-12)};case"project_delete":case"project-delete":case"oc-project_delete":case"oc-project-delete":return{icon:"trash-2",title:"Workspace Delete Disabled",subtitle:e.project};case"project_list":case"project-list":case"oc-project_list":case"oc-project-list":return{icon:"folder",title:"Projects"};case"project_get":case"project-get":case"oc-project_get":case"oc-project-get":case"project_update":case"project-update":case"oc-project_update":case"oc-project-update":return{icon:"folder",title:"Project",subtitle:e.name||e.project};case"project_select":case"project-select":case"oc-project_select":case"oc-project-select":return{icon:"folder",title:"Project Select",subtitle:e.project};case"project_create":case"project-create":case"oc-project_create":case"oc-project-create":return{icon:"folder-plus",title:"Project Create",subtitle:e.name};case"triggers":case"trigger_create":case"trigger-create":case"oc-trigger_create":case"oc-trigger-create":return{icon:"clock",title:"Create Trigger",subtitle:e.name};case"trigger_list":case"trigger-list":case"oc-trigger_list":case"oc-trigger-list":return{icon:"clock",title:"List Triggers"};case"trigger_get":case"trigger-get":case"oc-trigger_get":case"oc-trigger-get":return{icon:"clock",title:"Trigger Details",subtitle:e.name||e.id};case"trigger_delete":case"trigger-delete":case"oc-trigger_delete":case"oc-trigger-delete":return{icon:"clock",title:"Delete Trigger",subtitle:e.name||e.id};case"trigger_update":case"trigger-update":case"oc-trigger_update":case"oc-trigger-update":return{icon:"clock",title:"Update Trigger",subtitle:e.name||e.id};case"trigger_test":case"trigger-test":case"oc-trigger_test":case"oc-trigger-test":return{icon:"clock",title:"Test Trigger",subtitle:e.name||e.id};case"trigger_pause":case"trigger-pause":case"oc-trigger_pause":case"oc-trigger-pause":return{icon:"clock",title:"Pause Trigger",subtitle:e.name||e.id};case"trigger_resume":case"trigger-resume":case"oc-trigger_resume":case"oc-trigger-resume":return{icon:"clock",title:"Resume Trigger",subtitle:e.name||e.id};case"agent_spawn":case"agent-spawn":return{icon:"cpu",title:`Agent (${e.agent_type||"worker"})`,subtitle:e.description};case"agent_message":case"agent-message":return{icon:"message-circle",title:"Agent Message",subtitle:e.agent_id};case"agent_stop":case"agent-stop":return{icon:"ban",title:"Agent Stop",subtitle:e.agent_id};case"agent_status":case"agent-status":return{icon:"layers",title:"Agent Status"};case"agent_task":case"agent-task":case"oc-agent_task":case"oc-agent-task":return{icon:"check-square",title:"Create Task",subtitle:e.title};case"agent_task_update":case"agent-task-update":case"oc-agent_task_update":case"oc-agent-task-update":return{icon:"check-square",title:"Update Task",subtitle:e.task_id};case"agent_task_list":case"agent-task-list":case"oc-agent_task_list":case"oc-agent-task-list":return{icon:"check-square",title:"List Tasks"};case"agent_task_get":case"agent-task-get":case"oc-agent_task_get":case"oc-agent-task-get":return{icon:"check-square",title:"Task Details",subtitle:e.task_id};case"task_create":case"task-create":return{icon:"plus",title:"Create Task",subtitle:e.title};case"task_list":case"task-list":return{icon:"list",title:"Tasks",subtitle:e.status||"all"};case"task_update":case"task-update":return{icon:"refresh-cw",title:"Update Task",subtitle:e.id};case"task_done":case"task-done":return{icon:"check-circle",title:"Task Done",subtitle:e.id};case"task_delete":case"task-delete":return{icon:"trash-2",title:"Delete Task",subtitle:e.id};case"pty_spawn":return{icon:"terminal",title:"Spawn",subtitle:e.title||e.command};case"pty_read":return{icon:"terminal",title:"Terminal Output",subtitle:e.id};case"pty_write":case"pty_input":return{icon:"terminal",title:"Terminal Input",subtitle:e.id};case"pty_kill":return{icon:"terminal",title:"Kill Process",subtitle:e.id};default:return{icon:"cpu",title:t}}}function Wm(t){if(!t)return;let e=t.split("/");return e[e.length-1]||t}function Cp(t){if(!t)return;let e=t.split("/"),n=e[e.length-1]||t;if(e.length<=1)return n;let r=e[e.length-2];return r?`${n} /${r}`:n}function zm(t){if(!t)return;let e=t.lastIndexOf("/");if(!(e<0))return t.slice(0,e)||"/"}function ev(t,e){if(!e)return t;if(t.startsWith(e)){let n=t.slice(e.length);return n.startsWith("/")?n.slice(1):n}return t}function nt(t,e=120){if(typeof t!="string")return"";let n=t.split(`
72
- `).map(r=>r.trim()).find(Boolean);return n?n.length>e?`${n.slice(0,e).trim()}\u2026`:n:""}function Vm(t){let e=nt(t.description);if(e)return e;let n=nt(t.title,80);if(n)return n;let r=nt(t.message);if(r)return r;let s=nt(t.prompt);if(s)return s;let o=nt(t.agent_id,40);return o?`Agent ${o}`:"Worker task"}function tv(t,e){return!t||!e?[]:(t[e]??[]).filter(r=>r.severity===1).slice(0,3)}function nv(t,e){return t.find(n=>n.tool?.callID===e)}function rv(t,e){return t.find(n=>n.tool?.callID===e)}var Jm=/\x1B\[[\d;]*[A-Za-z]|\x1B\][^\x07]{0,512}\x07|\x1B[()#][A-Z0-9]|\x1B\[?[\d;]*[hl]|\x1B[>=<]|\x1B\[[?]?\d*[A-Z]|\x1B\[\d*[JKHG]|\x1B\[\d*;\d*[Hf]|\x1b\[[0-9;]*m/g;function sv(t){return t?t.replace(Jm,""):""}var Xm=/^msg_[0-9a-f]{12}/;function Ap(t){return Xm.test(t)?0:1}function Rp(t,e){return t<e?-1:t>e?1:0}function Qm(t,e){let n=Ap(t.info.id),r=Ap(e.info.id);if(n!==r)return n-r;if(n===0)return Rp(t.info.id,e.info.id);let s=typeof t.info.time?.created=="number"?t.info.time.created:null,o=typeof e.info.time?.created=="number"?e.info.time.created:null;return s===null&&o===null?0:s===null?1:o===null?-1:s!==o?s<o?-1:1:Rp(t.info.id,e.info.id)}function av(t){let e=[...t].sort(Qm),n=[],r=new Map;for(let o of e)if(o.info.role==="user"){if(r.has(o.info.id))continue;let u={userMessage:o,assistantMessages:[]};n.push(u),r.set(o.info.id,u)}let s=null;for(let o of e){if(o.info.role==="user"){s=r.get(o.info.id)??null;continue}if(o.info.role!=="assistant")continue;let u=o.info,p=u.tokens;if(!u.error&&o.parts.length===0&&p?.input===0&&p.output===0&&p.reasoning===0)continue;if(u.parentID){let f=r.get(u.parentID);if(f){f.assistantMessages.push(o);continue}}if(s){s.assistantMessages.push(o);continue}if(n.length>0){n[0].assistantMessages.unshift(o);continue}let d={userMessage:o,assistantMessages:[]};n.push(d)}return n}function cv(t){let e=[];for(let n of t.assistantMessages)for(let r of n.parts)e.push({part:r,message:n});return e}function lv(t){for(let e=t.length-1;e>=0;e--){let n=t[e].part;if(Pe(n)&&n.text?.trim())return n}}function uv(t){return t.some(({part:e})=>e.type==="tool"||e.type==="compaction"||e.type==="snapshot"||e.type==="patch")}function pv(t,e,n){if(n)return[];let r=[];for(let s of t.assistantMessages)for(let o of s.parts){if(!ge(o))continue;let u=o,p=u.state?.metadata?.answers;u.tool==="question"&&(p?.length??0)>0&&r.push({part:o,message:s})}return r}function dv(t){let e=new Map;for(let n of t){if(!n.parentID)continue;let r=e.get(n.parentID);r?r.push(n.id):e.set(n.parentID,[n.id])}return e}function gv(t){let e=t-6e4;return(n,r)=>{let s=n.time.updated??n.time.created,o=r.time.updated??r.time.created,u=s>e,p=o>e;return u&&p?n.id<r.id?-1:n.id>r.id?1:0:u&&!p?-1:!u&&p?1:o-s}}function Ym(t,e){let n=t.get(e);if(!n||n.length===0)return[];let r=[];for(let s of n)r.push(s),r.push(...Ym(t,s));return r}function Zm(t){if(!t||typeof t!="object")return!1;let e=t.data;return!!e&&typeof e=="object"&&e.isRetryable===!0}function fv(t){if(!t?.length)return!1;for(let e=t.length-1;e>=0;e--){let n=t[e].info;if(n.role==="assistant")return!n.time?.completed&&Zm(n.error)}return!1}function ef(t){let e=t.userMessage.parts;if(e.length===0||!e.every(o=>Pe(o)&&o.synthetic)||t.assistantMessages.length!==1)return!1;let r=t.assistantMessages[0].parts;if(r.length!==1)return!1;let s=r[0];return ge(s)&&s.tool==="bash"}function bv(t){if(ef(t))return t.assistantMessages[0].parts[0]}function kv(t,e){for(let n=e.length-1;n>=0;n--)if(e[n].info.role==="user")return e[n].info.id===t;return!1}function wv(t,e){return!e||!t?!1:t.type!=="idle"}function Sv(t,e){return!t&&!!e}function vv(t){for(let e of t.assistantMessages){let n=e.info;if(n.error)return te(n.error)}}function Cv(t){for(let e of t.assistantMessages){let n=e.info;if(n.error)return de(n.error)}}function Tp(t){if(t){if(ge(t))switch(t.tool){case"task":case"session_spawn":case"session_start_background":case"session-spawn":case"session-start-background":return"Handing off to an agent...";case"agent_spawn":case"agent-spawn":case"agent_task":case"agent-task":return"Handing off to an agent...";case"agent_task_update":case"agent-task-update":case"task_update":case"task-update":return"Updating progress...";case"agent_message":case"agent-message":case"agent_task_message":case"agent-task-message":case"task_message":case"task-message":return"Checking in with an agent...";case"task_create":case"task-create":case"task_start":case"task-start":return"Starting a new task...";case"task_list":case"task-list":return"Reviewing the task list...";case"task_done":case"task-done":return"Updating progress...";case"todowrite":case"todoread":return"Planning...";case"read":return"Reading files...";case"list":case"grep":case"glob":return"Searching files...";case"webfetch":case"scrape-webpage":return"Reading a web page...";case"websearch":case"web-search":case"web_search":return"Searching the web...";case"image-search":return"Searching for images...";case"image-gen":return"Creating an image...";case"video-gen":return"Creating a video...";case"presentation-gen":return"Creating a presentation...";case"show":case"show-user":return"Sharing the result...";case"edit":case"write":case"morph_edit":return"Making changes...";case"bash":return"Working on the computer...";case"apply_patch":return"Making changes...";case"prune":return"Tidying up memory...";case"distill":return"Tidying up memory...";case"compress":return"Tidying up memory...";case"context_info":return"Refreshing memory...";default:return"Working on it..."}if(_s(t)){let e=t.text?.trimStart();if(e){let n=e.match(/^\*\*(.+?)\*\*/);if(n)return`Thinking about ${n[1].trim()}...`}return"Thinking..."}if(Pe(t))return"Gathering thoughts..."}}function Av(t,e){for(let n=t.length-1;n>=0;n--){let r=t[n].part,s=ge(r)?r:void 0;if(s&&(s.tool==="task"||s.tool==="agent_task"||s.tool==="agent-task"||s.tool==="task_create"||s.tool==="task-create"||s.tool==="task_start"||s.tool==="task-start")&&s.state.status==="running"&&e&&e.length>0){for(let u=e.length-1;u>=0;u--){let p=e[u];if(p.info.role==="assistant")for(let d=p.parts.length-1;d>=0;d--){let f=Tp(p.parts[d]);if(f)return f}}return"Handing off to an agent..."}let o=Tp(r);if(o)return o}return"Figuring out what\u2019s next..."}function Rv(t){if(!Number.isFinite(t)||t<1e3)return"";let e=Math.floor(t/1e3);if(e<60)return`${e}s`;let n=Math.floor(e/60),r=e%60;return r>0?`${n}m ${r}s`:`${n}m`}var Ip=1.2;function Ep(t,e){if(!t)return 0;let n=t.input??0,r=(t.output??0)+(t.reasoning??0),s=t.cache?.read??0,o=t.cache?.write??0,u=Math.max(0,n-s-o),d=[...e.tiers??[],...e.contextOver200k?[e.contextOver200k]:[]].filter(m=>n>m.contextThreshold).sort((m,h)=>h.contextThreshold-m.contextThreshold)[0]??e,f=u/1e6*d.inputPer1M;return f+=r/1e6*d.outputPer1M,s>0&&(f+=s/1e6*(d.cacheReadPer1M??d.inputPer1M)),o>0&&(f+=o/1e6*(d.cacheWritePer1M??d.inputPer1M)),f}function jp(t,e,n,r){let s=t.cost||0;if(s>0)return s;if(!r||!e||!n)return 0;let o=r(e,n);return o?Ep(t.tokens,o):0}function $p(t){if(t.role!=="assistant")return{};let e=t;return{providerID:e.providerID,modelID:e.modelID}}function Tv(t,e){let n=0,r=0,s=0,o=0,u=0,p=0,d=!1;for(let{part:f,message:m}of t)if(f.type==="step-finish"){d=!0;let h=f,{providerID:x,modelID:P}=$p(m.info);n+=jp(h,x,P,e),r+=h.tokens?.input||0,s+=h.tokens?.output||0,o+=h.tokens?.reasoning||0,u+=h.tokens?.cache?.read||0,p+=h.tokens?.cache?.write||0}if(!d)for(let{message:f}of t){if(f.info.role!=="assistant")continue;let m=f.info,h=Mp(m,e);if(h<=0)continue;d=!0,n+=h;let x=m.tokens;x&&(r+=x.input??0,s+=x.output??0,o+=x.reasoning??0,u+=x.cache?.read??0,p+=x.cache?.write??0)}if(d)return{cost:n*Ip,tokens:{input:r,output:s,reasoning:o,cacheRead:u,cacheWrite:p}}}function Mp(t,e){if(!e||!t.providerID||!t.modelID||!t.tokens)return 0;let n=e(t.providerID,t.modelID);return n?Ep({input:t.tokens.input,output:t.tokens.output,reasoning:t.tokens.reasoning,cache:t.tokens.cache},n):0}function Iv(t,e){let n=0;for(let r of t){if(r.info?.role!=="assistant")continue;let s=r.info,{providerID:o,modelID:u}=$p(s),p=0,d=!1;for(let f of r.parts)f.type==="step-finish"&&(d=!0,p+=jp(f,o,u,e));d||(p+=Mp(s,e)),n+=p}return n*Ip}function Ev(t){return t===0?"$0.00":t<.001?`$${t.toFixed(4)}`:t<.01?`$${t.toFixed(3)}`:`$${t.toFixed(2)}`}function jv(t){return t<1e3?String(t):t<1e4?`${(t/1e3).toFixed(1)}k`:`${Math.round(t/1e3)}k`}function $v(t){if(!t||t.type!=="retry")return;let e=t,n=te(e.message);return{attempt:e.attempt,message:n.length>60?`${n.slice(0,60)}...`:n,next:e.next,details:de(e.message)}}function Mv(t){if(!(!t||t.type!=="retry"))return te(t.message)}function qv(t){return(t.info.summary?.diffs?.length??0)>0}var tf=4e3;function rt(t,e=tf){return t.length>e?`${t.slice(0,e)}
73
- \u2026`:t}function qp(t){if(t!==void 0)try{return rt(JSON.stringify(t,null,2))}catch{return}}function G(...t){for(let e of t)if(typeof e=="string"&&e.length>0)return e}function De(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:void 0}function nf(t){let e=G(t.input?.query)??"";if(t.status==="error")return{kind:"web-search",query:e,error:t.error??"Search failed"};let n=De(t.outputParsed);if(!n)return{kind:"web-search",query:e};let s=(Array.isArray(n.results)?n.results:Array.isArray(n.images)?n.images:[]).slice(0,50).map(o=>{let u=De(o)??{};return{title:G(u.title)??"",url:G(u.url,u.link)??"",snippet:G(u.snippet,u.description,u.source)}});return{kind:"web-search",query:G(n.query)??e,results:s.length>0?s:void 0,answer:G(n.answer)}}var rf=/<exit_code>\s*(-?\d+)\s*<\/exit_code>/;function Op(t){let e=t.match(rf);return e?Number(e[1]):void 0}function sf(t,e,n){let r="",s=0;for(;;){let o=t.indexOf(e,s);if(o===-1)return r+t.slice(s);let u=t.indexOf(n,o+e.length);if(u===-1)return r+t.slice(s);r+=t.slice(s,o),s=u+n.length}}var of=["<system_info>","</system_info>","<exit_code>","</exit_code>","<stderr_note>","</stderr_note>"];function af(t){let e=-1;for(let n of of){let r=t.indexOf(n);r!==-1&&(e===-1||r<e)&&(e=r)}return e===-1?t:t.slice(0,e)}var cf=/\x1B\[[\d;]*[A-Za-z]|\x1B\][^\x07]{0,512}\x07|\x1B[()#][A-Z0-9]|\x1B\[?[\d;]*[hl]|\x1B[>=<]|\x1B\[[?]?\d*[A-Z]|\x1B\[\d*[JKHG]|\x1B\[\d*;\d*[Hf]|\x1b\[[0-9;]*m/g;function lf(t){return t.replace(cf,"")}function uf(t){let e=G(t.input?.command)??"",n=t.output??"",r=Op(n),o=lf(af(sf(n,"<bash_metadata>","</bash_metadata>"))).trim()||(t.status==="error"?t.error:void 0);return{kind:"shell",command:e,stdout:o||void 0,exitCode:r}}function ks(t){return G(t.input?.filePath,t.input?.file_path,t.input?.path)??""}function pf(t){let e=t.status==="error"?t.error:t.output&&rt(t.output)||void 0;return{kind:"file-read",path:ks(t),preview:e}}function df(t){let e=G(t.input?.content),n=t.status==="error"?t.error:rt(e??t.output??"")||void 0;return{kind:"file-write",path:ks(t),preview:n}}var gf=256*1024;function mf(t,e){if(t.length+e.length>gf)return;let n=t.split(`
74
- `),r=e.split(`
75
- `),s=0;for(;s<n.length&&s<r.length&&n[s]===r[s];)s++;let o=n.length,u=r.length;for(;o>s&&u>s&&n[o-1]===r[u-1];)o--,u--;let p=[];for(let d=0;d<s;d++)p.push({type:"unchanged",text:n[d]});for(let d=s;d<o;d++)p.push({type:"removed",text:n[d]});for(let d=s;d<u;d++)p.push({type:"added",text:r[d]});for(let d=o;d<n.length;d++)p.push({type:"unchanged",text:n[d]});return p}function ff(t){let e=G(t.input?.oldString),n=G(t.input?.newString),r=e!==void 0&&n!==void 0?mf(e,n):void 0;return{kind:"file-edit",path:ks(t),diff:r}}var Up=/^Found\s+(\d+)\s+match/i,yf=/^(\/[^:]+?):\s*/,Dp=/Line\s+(\d+):/g;function hf(t){let e=t.trim(),n=e.match(Up),r=n?e.slice(n[0].length).trim():e;if(!r)return[];let s=[];for(let o of r.split(/\n\n+/)){let u=o.trim();if(!u)continue;let p=u.match(yf);if(!p)continue;let d=p[1],f=u.slice(p[0].length),m=[],h;for(Dp.lastIndex=0;(h=Dp.exec(f))!==null;)m.push({line:Number(h[1]),contentStart:h.index+h[0].length,headerStart:h.index});for(let x=0;x<m.length;x++){let P=x+1<m.length?m[x+1].headerStart:f.length,A=f.slice(m[x].contentStart,P).trim();s.push({path:d,line:m[x].line,content:A.endsWith(";")?A.slice(0,-1):A})}}return s}function bf(t){return t.trim().split(`
76
- `).map(e=>e.trim()).filter(e=>e.startsWith("/")||e.startsWith("./")||e.startsWith("~")).map(e=>({path:e}))}function xf(t){let e=G(t.input?.pattern,t.input?.query)??"";if(t.status==="error"||!t.output)return{kind:"search",pattern:e};let n=Up.test(t.output.trim())?hf(t.output):bf(t.output);return{kind:"search",pattern:e,matches:n.length>0?n.slice(0,200):void 0}}function _f(t){let e=G(t.input?.description,t.input?.title,t.input?.prompt)??t.title,n=G(t.input?.subagent_type,t.input?.agent);return{kind:"task",description:e,agent:n}}function Ps(t){let e=De(t)??{};return{content:G(e.content)??"",status:G(e.status)??"pending",priority:G(e.priority)}}function Pf(t){let e=t.input?.todos;if(Array.isArray(e))return{kind:"todo",items:e.map(Ps)};if(Array.isArray(t.outputParsed))return{kind:"todo",items:t.outputParsed.map(Ps)};let n=De(t.outputParsed);return n&&Array.isArray(n.todos)?{kind:"todo",items:n.todos.map(Ps)}:{kind:"todo",items:[]}}function kf(t){return{kind:"question",questions:(Array.isArray(t.input?.questions)?t.input.questions:[]).map(r=>{let s=De(r)??{},u=(Array.isArray(s.options)?s.options:[]).flatMap(p=>{let d=De(p),f=d&&G(d.label);return f?[{label:f,description:d?G(d.description):void 0}]:[]});return{question:G(s.question)??"",header:G(s.header),options:u}})}}function wf(t){let n=t.input&&Object.keys(t.input).length>0?qp(t.input):void 0,r;return t.outputParsed!==void 0?r=typeof t.outputParsed=="string"?rt(t.outputParsed):qp(t.outputParsed):t.outputText!==void 0?r=rt(t.outputText):r=t.error,{kind:"generic",label:t.title,inputPretty:n,outputPretty:r}}function Sf(t){switch(Gt(t.name)){case"web_search":case"websearch":case"image_search":return nf(t);case"bash":return uf(t);case"read":return pf(t);case"write":return df(t);case"edit":case"morph_edit":return ff(t);case"grep":case"glob":return xf(t);case"task":return _f(t);case"todowrite":return Pf(t);case"question":case"ask":return kf(t);default:return wf(t)}}var vf=new Set(["AbortError","MessageAbortedError"]),Cf=["operation was aborted","aborted by user","interrupted by user","cancelled by user","canceled by user","request was cancelled","request was canceled","aborterror"],Af=["unreachable","upstream","econnreset","econnrefused","socket hang up","network","fetch failed","timed out","timeout","gateway","502","503","504"];function Fp(t){let e=t.toLowerCase();return Af.some(n=>e.includes(n))?!1:Cf.some(n=>e.includes(n))}function Rf(t){let e=t.data,n=e&&typeof e=="object"?e.message:void 0;return typeof n=="string"?n:typeof t.message=="string"?t.message:void 0}function Lp(t){if(typeof t=="string")return Fp(t);if(!t||typeof t!="object")return!1;let e=t,n=e.name;if(typeof n=="string"&&vf.has(n))return!0;let r=Rf(e);return typeof r=="string"?Fp(r):!1}var Tf=["user","runtime-disposed","orphan-finalized","wake"],Fv=["orphan-finalized","wake"];function Lv(t){if(!t||typeof t!="object")return;let e=t.data;if(!e||typeof e!="object")return;let n=e.reason;if(!(typeof n!="string"||!n))return Tf.includes(n)?n:void 0}function Bt(t){try{return typeof process<"u"?process.env?.[t]:void 0}catch{return}}function If(t,e){if(t==null)return e;let n=t.trim().toLowerCase();return["1","true","yes","y","on"].includes(n)?!0:["0","false","no","n","off"].includes(n)?!1:e}function Hv(t){if(t==null)return;let e=t.trim().toLowerCase();if(["1","true","yes","y","on"].includes(e))return!0;if(["0","false","no","n","off"].includes(e))return!1}function ws(t,e,n){return t!==void 0?t:If(Bt(e),n)}var Wv={get disableMobileAdvertising(){return ws($().featureFlags?.disableMobileAdvertising,"NEXT_PUBLIC_DISABLE_MOBILE_ADVERTISING",!1)},get enableDinoGame(){return ws($().featureFlags?.enableDinoGame,"NEXT_PUBLIC_ENABLE_DINO_GAME",!1)},get enableProjects(){return ws($().featureFlags?.enableProjects,"NEXT_PUBLIC_ENABLE_PROJECTS",!1)},get enableAutoModel(){return!1}};var Nt="kortix-active-instance",Ef=["/dashboard","/agents","/p","/workspace","/settings","/browser","/desktop","/services","/sessions","/terminal","/files","/scheduled-tasks","/commands","/tools","/configuration","/changelog","/legacy","/credits-explained"];function jf(t){return Ef.some(e=>t===e||t.startsWith(`${e}/`))}function st(t){let e=t.match(/^\/instances\/([^/]+)(?:\/(.*))?$/);if(!e)return null;let n=decodeURIComponent(e[1]),r=e[2]??"";return{instanceId:n,innerPath:r?`/${r}`:""}}function Vv(t){let e=st(t);return!!e&&e.innerPath===""}function Jv(t){let e=st(t);return!e||!e.innerPath?t:e.innerPath}function $f(t,e){if(!t)return e;if(e.startsWith("/")||(e=`/${e}`),e.startsWith("/instances/")){let n=st(e);return n?`/instances/${encodeURIComponent(t)}${n.innerPath}`:e}return jf(e)?`/instances/${encodeURIComponent(t)}${e}`:e}function Mf(t){return t?st(t)?.instanceId??null:null}function Xv(){return typeof window>"u"?null:Mf(window.location.pathname)||qf()}function qf(){if(typeof document>"u")return null;let t=document.cookie.match(new RegExp(`(?:^|; )${Nt}=([^;]+)`));return t?decodeURIComponent(t[1]):null}function Qv(t){if(typeof document>"u")return;let e=n=>{document.cookie=n};if(typeof window<"u"&&window.location.pathname.startsWith("/projects")){e(`${Nt}=; Max-Age=0; Path=/; SameSite=Lax`);return}if(!t){e(`${Nt}=; Max-Age=0; Path=/; SameSite=Lax`);return}e(`${Nt}=${encodeURIComponent(t)}; Path=/; SameSite=Lax`)}function Yv(t,e){return e?$f(e,t):t}function Zv(t){let e=st(t);return e?e.innerPath||"/dashboard":t}function Ss(t){if(t instanceof Error)return t.message;if(typeof t=="string")return t;if(t&&typeof t=="object")try{return JSON.stringify(t)}catch{return String(t)}return String(t??"")}function Df(t){let e=Ss(t).trim();if(!e)return null;let n=[e,e.replace(/^Failed to perform action:\s*/i,"").trim()],r=e.indexOf("{");r>=0&&n.push(e.slice(r));for(let s of n)if(s)try{return JSON.parse(s)}catch{}return null}function Gp(t){let e=Df(t);if(!e||typeof e!="object")return null;let n=e;return n.name==="ConfigInvalidError"?n:null}function tC(t){return Gp(t)!==null}var Of=[/sandbox not ready/i,/sandbox is not (?:ready|running)/i,/opencode (?:session )?(?:is )?not ready/i,/\bsandbox_not_ready\b/,/\bsandbox_lifecycle_unavailable\b/];function Ht(t){let e=Ss(t);return e?Of.some(n=>n.test(e)):!1}var Kt=class extends Error{constructor(e){let n=e?.trim();super(n&&Ht(n)?n:n?`sandbox not ready: ${n}`:"sandbox not ready"),this.name="SandboxNotReadyError"}};function Uf(t){let e=Gp(t);if(e){let s=(e.data?.path??"OpenCode config").replace(/^\/workspace\//,""),o=e.data?.issues?.[0]?.message,u=e.data?.issues?.[0]?.path?.join("."),p=u?.startsWith("permission")?"Remove the invalid permission frontmatter entry or replace it with valid OpenCode permission config.":"Fix the invalid config entry, then restart this session.";return{title:"OpenCode config is invalid",message:`${s} is preventing OpenCode from loading. ${p}`,detail:o?`${u?`${u}: `:""}${o}`:void 0}}let n=Ss(t);return Ht(n)?{title:"Session is waking up",message:"This session slept to save compute. Your conversation is safe \u2014 sending a message wakes it back up."}:{title:"OpenCode failed to load",message:n||"The sandbox is running, but OpenCode returned an error."}}function Y(){let t=Bt("BACKEND_URL")||$().backendUrl;return t||"http://localhost:8008/v1"}function it(t){if(typeof t=="string"){let e=t.trim();return e.length>0?e:void 0}if(Array.isArray(t)){for(let e of t){let n=it(e);if(n)return n}return}if(t&&typeof t=="object"){let e=t;return it(e.sandboxId??e.id??e.slug??Object.values(e)[0])}}var Bp=["http://localhost:8008/v1","http://127.0.0.1:8008/v1"];function Np(t){let e=t.length;for(;e>0&&t.charCodeAt(e-1)===47;)e--;return`${t.slice(0,e)}/platform/local-bridge/status`}function Ff(t){return t==="running"||t==="active"?"active":t==="queued"||t==="branching"||t==="provisioning"?"provisioning":t==="failed"||t==="error"?"error":t==="stopped"||t==="completed"||t==="archived"?"stopped":t||"unknown"}function vs(t,e,n){let r=n?.external_id||e.sandbox_url?.match(/\/p\/([^/]+)\//)?.[1]||e.sandbox_id;return{sandbox_id:n?.sandbox_id||e.sandbox_id||e.session_id,external_id:r,name:e.name||`${t.name} session`,provider:n?.provider||e.sandbox_provider||"daytona",base_url:n?.base_url||e.sandbox_url||(n?.external_id?`${Y()}/p/${n.external_id}/${ue.KORTIX_MASTER}`:""),status:Ff(n?.status||e.status),metadata:{...e.metadata??{},project_id:t.project_id,session_id:e.session_id,project_name:t.name,runtime_status:n?.status,error:e.error},created_at:n?.created_at||e.created_at,updated_at:n?.updated_at||e.updated_at}}async function Cs(){let t=await Me(),e=[];for(let n of t){let r=await Xe(n.project_id).catch(()=>[]);for(let s of r)e.push({project:n,session:s,runtime:null,sandbox:vs(n,s,null)})}return e.sort((n,r)=>{let s={active:0,provisioning:1,stopped:2,error:3},o=(s[n.sandbox.status]??99)-(s[r.sandbox.status]??99);return o!==0?o:Date.parse(r.sandbox.updated_at)-Date.parse(n.sandbox.updated_at)})}async function ke(t){let e=await Cs();return t?e.find(n=>n.sandbox.sandbox_id===t||n.sandbox.external_id===t||n.session.session_id===t||n.runtime?.external_id===t)??null:e[0]??null}async function Wt(t,e={}){let n={"Content-Type":"application/json",...e.headers},r=e.signal??AbortSignal.timeout(3e4),s=await M(`${Y()}${t}`,{...e,headers:n,signal:r}),o=await s.text().catch(()=>{}),u;if(o)try{u=JSON.parse(o)}catch{}if(!s.ok){let p=u?.error||u?.message||u?.detail||o||`Platform API error ${s.status}`,d=new C(p,{status:s.status,code:u?.code||u?.error_code||String(s.status),details:u??(o?{rawText:o}:void 0),response:s,endpoint:t});throw s.status===402&&(d=Re(Object.assign(d,{response:s,status:s.status,data:u}))),d}return u}function Kp(t){if(!t.external_id){if(t.base_url)return t.base_url;throw new Error(`Cannot build sandbox URL: missing external_id for ${t.provider} sandbox "${t.sandbox_id}"`)}return`${Y()}/p/${t.external_id}/${ue.KORTIX_MASTER}`}function dC(t,e){return t.external_id?`${Y()}/p/${t.external_id}/${e}`:null}async function bC(){let t=await i.get("/setup/sandbox-providers");if(t.error)throw t.error;return t.data}async function Lf(t){let e=await ke();if(e)return{sandbox:e.sandbox,created:!1};let r=(await Me())[0];if(!r)throw new Error("Create a project before starting a sandbox");let s=await Qe(r.project_id,{...t?.provider?{provider:t.provider}:{}}),o=(await qe(r.project_id,s.session_id))?.sandbox??null;return{sandbox:vs(r,s,o),created:!0}}async function xC(){return(await ke().catch(()=>null))?.sandbox??null}async function _C(t){return{sandbox:(await Lf(t)).sandbox}}async function PC(t){let e=it(t);return e?(await ke(e).catch(()=>null))?.sandbox??null:null}async function kC(t,e){throw await ke(t)?new Error("Renaming project-session sandboxes is not exposed by the current API"):new Error("Project session sandbox not found")}async function wC(t){let e=it(t);return(await Cs().catch(()=>[])).map(r=>r.sandbox).filter(r=>!e||r.sandbox_id===e||r.external_id===e)}async function SC(){if(typeof window>"u")return null;let t=Y(),e=Array.from(new Set([t,...Bp]));for(let n of e)try{let r=await fetch(Np(n),{method:"GET",signal:AbortSignal.timeout(1500),headers:{Accept:"application/json"}});if(!r.ok)continue;let s=await r.json();if(!s.success||s.status!=="ready"||!s.data?.sandbox_id)continue;return s.data}catch{continue}return null}async function vC(t){if(!t)throw new Error("No sandbox selected for workload restart");let e=await ke(t);if(!e)throw new Error("Project session sandbox not found");await Et(e.project.project_id,e.session.session_id)}async function CC(t){if(!t)throw new Error("No sandbox selected to stop");let e=await ke(t);if(!e)throw new Error("Project session sandbox not found");await jt(e.project.project_id,e.session.session_id)}async function AC(t){throw new Error("Cancellation is not exposed for project-session sandboxes")}async function RC(t){throw new Error("Reactivation is not exposed for project-session sandboxes")}async function As(t,e,n){let r=Kp(t),s=await M(`${ae(r)}${e}`,{signal:AbortSignal.timeout(8e3),headers:{"Content-Type":"application/json"},...n});if(!s.ok){let o=await s.text().catch(()=>"");throw new Error(o||`Request failed (${s.status})`)}return await s.json()}async function $C(t,e){return As(t,`/kortix/projects/${encodeURIComponent(e)}/members`,{method:"GET"})}async function MC(t,e,n,r="member"){await As(t,`/kortix/projects/${encodeURIComponent(e)}/members`,{method:"POST",body:JSON.stringify({user_id:n,role:r})})}async function qC(t,e,n){await As(t,`/kortix/projects/${encodeURIComponent(e)}/members/${encodeURIComponent(n)}`,{method:"DELETE"})}async function UC(t){let e=await Wt(`/platform/invites/${encodeURIComponent(t)}`,{method:"GET"});if(!e.success||!e.data)throw new Error(e.error||"Invite not found");return e.data}async function FC(t){let e=await Wt(`/platform/invites/${encodeURIComponent(t)}/accept`,{method:"POST"});if(!e.success||!e.data)throw new Error(e.error||"Failed to accept invite");return e.data}async function LC(t){let e=await Wt(`/platform/invites/${encodeURIComponent(t)}/decline`,{method:"POST"});if(!e.success)throw new Error(e.error||"Failed to decline invite")}async function BC(t){throw new Error("Backups are not exposed for project-session sandboxes")}async function NC(t,e){throw new Error("Backups are not exposed for project-session sandboxes")}async function KC(t,e){throw new Error("Backups are not exposed for project-session sandboxes")}async function HC(t,e){throw new Error("Backups are not exposed for project-session sandboxes")}async function zC(t){throw new Error("SSH setup is not exposed for project-session sandboxes")}async function VC(t){throw new Error("SSH connection details are not exposed for project-session sandboxes")}var Gf=["pulling","patching","stopping","removing","recreating","restarting","verifying","starting","health_check"];function QC(t){return Gf.includes(t)}async function YC(t){return{phase:"idle",progress:0,message:"Sandbox image updates are managed by project-session provisioning.",targetVersion:null,previousVersion:null,currentVersion:t?.version??null,error:null,startedAt:null,updatedAt:null}}async function ZC(t){let e=t?`?channel=${t}`:"",n=await fetch(`${Y()}/platform/sandbox/version/latest${e}`,{headers:{Accept:"application/json"}});if(!n.ok)throw new Error(`Version check failed: ${n.status}`);let r=await n.json();try{let s=await Bf(t||"stable");r.changelog=s.find(o=>o.version===r.version)??s[0]??null}catch{r.changelog=null}return r}async function Bf(t){let e=t?`?channel=${t}`:"",n=await fetch(`${Y()}/platform/sandbox/version/changelog${e}`,{headers:{Accept:"application/json"}});if(!n.ok)throw new Error(`Changelog fetch failed: ${n.status}`);return(await n.json()).changelog}async function eA(){let t=await fetch(`${Y()}/platform/sandbox/version/all`,{headers:{Accept:"application/json"}});if(!t.ok)throw new Error(`All versions fetch failed: ${t.status}`);return t.json()}async function tA(t,e){throw new Error("Sandbox image updates are managed by project-session provisioning")}async function nA(t){}async function rA(t){}async function aA(t){return{serverTypes:[],location:t||"hel1"}}async function cA(t){throw new Error("Retired instance provisioning is unavailable. Create a project session with daytona, platinum, or e2b.")}async function lA(t){let e=await i.delete(`/platform/sandbox?sandbox_id=${t}`);if(e.error)throw e.error;return e.data}async function uA(t,e){await i.post("/platform/sandbox/mark-error",{sandbox_id:t,error_message:e},{showErrors:!1,timeout:1e4})}async function pA(){let t=await i.post("/platform/sandbox/claim-computer",{},{timeout:6e4});if(t.error)throw t.error;return t.data}async function dA(t){let e=await i.get(`/platform/sandbox/${t}/status`,{showErrors:!1,timeout:1e4});return e.success?e.data??null:null}function gA(t,e){return`${Y()}/platform/sandbox/${t}/provision-stream?token=${encodeURIComponent(e)}`}var me=class extends Error{constructor(n,r,s){super(n);this.status=r;this.body=s;this.name="HostBoundaryError"}status;body};function zt(t){let e=t;for(;e.endsWith("/");)e=e.slice(0,-1);return/\/v1$/.test(e)?e:`${e}/v1`}function Rs(t,e){let n=new Headers(t.headers);return n.set("Accept","application/json"),e&&n.set("Content-Type","application/json"),t.accessToken&&n.set("Authorization",`Bearer ${t.accessToken}`),n}async function Vt(t){let e=await t.text().catch(()=>"");if(!e)return null;try{return JSON.parse(e)}catch{return e}}function Jt(t,e){if(e&&typeof e=="object"){let n=e;for(let r of["error_description","error","message"])if(typeof n[r]=="string"&&n[r])return n[r]}return typeof e=="string"&&e?e:t.statusText||`HTTP ${t.status}`}async function B(t,e,n){let r=n?.body!==void 0,s=await fetch(`${zt(e.backendUrl)}${t}`,{method:n?.method??"GET",headers:Rs(e,r),...r?{body:JSON.stringify(n.body)}:{},...e.signal?{signal:e.signal}:{},...e.cache?{cache:e.cache}:{},...e.next?{next:e.next}:{}}),o=await Vt(s);if(!s.ok)throw new me(Jt(s,o),s.status,o);return o}function Nf(t){let e=new URLSearchParams;t?.query&&e.set("query",t.query),t?.type&&e.set("type",t.type),t?.source&&e.set("source",t.source),t?.limit!==void 0&&e.set("limit",String(t.limit)),t?.offset!==void 0&&e.set("offset",String(t.offset));let n=e.toString();return n?`?${n}`:""}function fA(t,e){return B(`/marketplace/items${Nf(e)}`,t)}function yA(t){return B("/marketplace/marketplaces",t)}function hA(t,e){return B(`/marketplace/items/${encodeURIComponent(t)}`,e)}function bA(t,e,n){return B(`/marketplace/items/${encodeURIComponent(t)}/file?path=${encodeURIComponent(e)}`,n)}function xA(t,e){return B("/access/check-email",e,{method:"POST",body:{email:t}})}function _A(t,e){return B("/access/request-access",e,{method:"POST",body:t})}function PA(t){return B("/auth/logout",t,{method:"POST",body:{}})}function kA(t,e){return B(`/oauth/authorize/consent/${encodeURIComponent(t)}`,e)}function wA(t,e){return B("/oauth/authorize/consent",e,{method:"POST",body:{request_id:t.requestId,approved:t.approved}})}function SA(t,e){return B(`/setup-links/connectors/${encodeURIComponent(t)}`,e)}function vA(t,e){return B(`/setup-links/connectors/${encodeURIComponent(t)}/start`,e,{method:"POST",body:{}})}function CA(t,e){return B(`/setup-links/connectors/${encodeURIComponent(t)}/finalize`,e,{method:"POST",body:{}})}function AA(t,e){return B(`/setup-links/secret/${encodeURIComponent(t)}`,e)}function RA(t,e,n){return B(`/setup-links/secret/${encodeURIComponent(t)}`,n,{method:"POST",body:{values:e}})}function TA(t,e){return B(`/p/public-share/${encodeURIComponent(t)}`,e)}function IA(t,e,n){return B(`/projects/${encodeURIComponent(t)}/sessions/${encodeURIComponent(e)}/start`,n,{method:"POST",body:{}})}function EA(t){return B("/system/maintenance",t)}function jA(t,e){return B("/system/maintenance",e,{method:"PUT",body:t})}function $A(t){return B("/user-roles",t)}function MA(t,e){return B("/system/demo-request",e,{method:"POST",body:t})}async function qA(t,e,n){let r=new URLSearchParams({format:e.format});e.action&&r.set("action",e.action),e.actor&&r.set("actor",e.actor),e.project_id&&r.set("project_id",e.project_id),e.session_id&&r.set("session_id",e.session_id),e.actor_type&&r.set("actor_type",e.actor_type),e.source&&r.set("source",e.source),e.phase&&r.set("phase",e.phase),e.outcome&&r.set("outcome",e.outcome),e.request_id&&r.set("request_id",e.request_id),e.correlation_id&&r.set("correlation_id",e.correlation_id),e.resource_type&&r.set("resource_type",e.resource_type),e.since&&r.set("since",e.since),e.until&&r.set("until",e.until),e.q&&r.set("q",e.q),e.cursor&&r.set("cursor",e.cursor),e.limit!=null&&r.set("limit",String(e.limit));let s=await fetch(`${zt(n.backendUrl)}/accounts/${encodeURIComponent(t)}/audit/export?${r}`,{headers:Rs(n,!1),...n.signal?{signal:n.signal}:{}});if(!s.ok){let o=await Vt(s);throw new me(Jt(s,o),s.status,o)}return{blob:await s.blob(),filename:s.headers.get("content-disposition")?.match(/filename="([^"]+)"/)?.[1]??null,capped:s.headers.get("x-audit-capped")==="true",rowCount:s.headers.get("x-audit-row-count"),complete:s.headers.get("x-audit-complete")!=="false",nextCursor:s.headers.get("x-audit-next-cursor")||null}}async function DA(t,e){let n=await fetch(`${zt(e.backendUrl)}/admin/stress-test/run`,{method:"POST",headers:Rs(e,!0),body:JSON.stringify(t),...e.signal?{signal:e.signal}:{}});if(!n.ok){let r=await Vt(n);throw new me(Jt(n,r),n.status,r)}if(!n.body)throw new me("No response body",n.status,null);return n.body}var Kf=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Hf(t,e){return Kf.test(e)?new URL(`templates/public/${e.toLowerCase()}`,`${zt(t)}/`):null}async function OA(t,e,n){let r=Hf(t,e);if(!r)throw new me("Invalid shareId parameter",400,null);let s=await fetch(r,{signal:n}),o=await Vt(s);if(!s.ok)throw new me(Jt(s,o),s.status,o);return o}async function LA(){let t=await i.get("/platform/github-app/status",{showErrors:!1});if(t.error)throw t.error;if(!t.data)throw new Error("GitHub App status request failed");return t.data}async function GA(t={}){let e=await i.post("/platform/github-app/manifest-start",t,{showErrors:!1});if(e.error)throw e.error;if(!e.data)throw new Error("GitHub App manifest-start request failed");return e.data}async function BA(t){let e=await i.post("/platform/github-app/app",{app_id:t.appId,private_key:t.privateKey,installation_id:t.installationId,slug:t.slug,client_id:t.clientId,client_secret:t.clientSecret},{showErrors:!1});if(e.error)throw e.error;if(!e.data)throw new Error("GitHub App configuration request failed");return e.data}async function NA(t){let e=await i.post("/platform/github-app/pat",t,{showErrors:!1});if(e.error)throw e.error;if(!e.data)throw new Error("GitHub token configuration request failed");return e.data}async function KA(){let t=await i.delete("/platform/github-app",{showErrors:!1});if(t.error)throw t.error;if(!t.data)throw new Error("GitHub App disconnect request failed");return t.data}var Wf="/kortix/part/";function zf(t){return typeof t=="string"&&t.startsWith(Wf)}async function VA(t){if(!zf(t))throw new Error(`not an attachment part reference: ${t}`);let e=re();if(!e)throw new Error("runtime url not bound");let n=await M(`${e}${t}`);if(!n.ok)throw new Error(`attachment part fetch failed: ${n.status}`);return n.blob()}function Hp(t){try{let e=new URL(t);if(/^\/proxy\/\d+(?:\/|$)/.test(e.pathname))return`${e.origin}/v1/p/auth`;let n=e.pathname.indexOf("/p/");return n!==-1?`${e.origin}${e.pathname.slice(0,n)}/p/auth`:`${e.origin}/v1/p/auth`}catch{return null}}function Vf(t,e){try{let n=new URL(t),r=n.pathname;if(!(/^\/v1\/p\/[^/]+\/\d+(?:\/|$)/.test(r)||/^\/proxy\/\d+(?:\/|$)/.test(r)))return!1;let o=new Set;if(e)try{o.add(new URL(e).origin)}catch{}return typeof window<"u"&&o.add(window.location.origin),o.size===0||o.has(n.origin)}catch{return!1}}function Wp(t,e){return Vf(t,e)?(e?Hp(e):null)??Hp(t):null}function zp(t){try{let{hostname:e}=new URL(t);return/^p\d+-[^.]+\./.test(e)||/^(?:dev|staging|prod|preview)-p\d+-[a-z0-9-]+\./i.test(e)}catch{return!1}}function Vp(t,e){try{let n=new URL(t);return n.searchParams.set("token",e),n.toString()}catch{return t}}async function Jf(t,e={}){let n=Wp(t,e.serverUrl);if(!n)return!1;let r=await Le();if(!r)return!1;try{return(await fetch(n,{method:"POST",credentials:"include",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json"}})).ok}catch{return!1}}async function ZA(t,e={}){if(zp(t)){let n=await Le();return n?Vp(t,n):t}return await Jf(t,e),t}var tR=3e3;function Xf(t){return!Number.isFinite(t)||t<100||t>599?"unknown":t===502||t===503||t===504?"unreachable":t===401||t===403?"unknown":"reachable"}async function nR(t,e){if(!t||e?.signal?.aborted)return"unknown";let n=new AbortController,r=()=>n.abort();e?.signal?.addEventListener("abort",r);let s=setTimeout(r,e?.timeoutMs??3e3);try{let o=await fetch(t,{method:"HEAD",credentials:"include",cache:"no-store",signal:n.signal});return Xf(o.status)}catch{return"unknown"}finally{clearTimeout(s),e?.signal?.removeEventListener("abort",r)}}function Ts(t){let e=t;for(;e.endsWith("/");)e=e.slice(0,-1);return e}function sR(t,e){return`${Ts(t)}/presentation-templates/${encodeURIComponent(e)}/pdf#toolbar=0&navpanes=0&scrollbar=0&view=FitH`}function iR(t,e){return`${Ts(t)}/presentation-templates/${encodeURIComponent(e)}/image.png`}function Qf(t,e){return`${Ts(t)}/presentation/convert-to-${e}`}async function oR(t,e,n,r){let s=Qf(e,t),o=r?.pollIntervalMs??2500,u=r?.timeoutMs??4*6e4,p=Date.now(),d=!1;for(;;){let f=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({presentation_path:n,download:!0}),...r?.signal?{signal:r.signal}:{}}),m=f.headers.get("content-type")||"";if(f.ok&&(m.includes("pdf")||m.includes("presentation")||m.includes("octet-stream"))){let A=await f.blob();if(A.size===0)throw new Error("Downloaded file is empty");return A}if(f.status===202){if(d||(d=!0,r?.onGenerating?.()),Date.now()-p>u)throw new Error(`Timed out waiting for the ${t.toUpperCase()} to generate`);await new Promise((A,I)=>{let E=setTimeout(A,o);r?.signal?.addEventListener("abort",()=>{clearTimeout(E),I(r.signal?.reason??new DOMException("Aborted","AbortError"))},{once:!0})});continue}let x=await f.text().catch(()=>""),P=f.statusText;try{let A=JSON.parse(x);P=String(A.error||A.detail||A.message||P)}catch{x&&(P=x)}throw new Error(`Failed to download ${t.toUpperCase()}: ${P} (HTTP ${f.status})`)}}function cR(t){return t.activityFresh||t.runtimeReady?"live":t.unreachable||t.stalled?"unreachable":t.sandbox==="stopped"||t.sandbox==="archived"||t.sandbox==="provisioning"||t.sandbox==="queued"||t.sandbox==="branching"?"waking":t.sandbox==="completed"?"unknown":t.sandbox==="failed"?"unreachable":t.sandbox==="running"?"connecting":"unknown"}function lR(t){return t==="unreachable"}var pR=6e4,dR=45e3,gR=45e3,mR=1e4,fR=3e3,yR=15e3;function hR(t,e){return e?e.serverAtMs!=null&&t.serverAtMs!=null?t.serverAtMs>=e.serverAtMs:t.atMs>=e.atMs:!0}function bR(t){let e=0;for(let n of t)(n.state==="queued"||n.state==="delivering"||n.state==="waiting"&&n.reason!=="held")&&(e+=1);return e}function Is(t){if(!t)return null;let e=Date.parse(t);return Number.isNaN(e)?null:e}function xR(t){let{optimistic:e,abort:n,inbox:r,server:s,stream:o,activity:u,nowMs:p}=t,d=!!e&&p-e.atMs<6e4,f=e?e.turnId===void 0?e.messageId:e.turnId:null,m=d?e.acceptedAtMs??Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY,h=d?e.atMs:Number.NEGATIVE_INFINITY,P=!!n&&p-n.atMs<15e3?n.settledAtMs??Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY,A=!!s&&p-s.atMs<=45e3,I=!!o&&p-o.atMs<=45e3,E=!!r&&p-r.atMs<=1e4,l=o&&o.type==="idle"&&o.origin!=="local"?o:null,c=!!u&&p-u.atMs<=45e3&&(!l||u.atMs>l.atMs),S=y=>{if(!l)return!1;let T=Is(y.started_at);return!(T===null||T>=l.atMs)};if(c)return{state:"working",source:"stream",turnId:null,since:u.atMs,serverOpenTurnToken:s?.turns[0]?.turn_token??null};let R=s?.turns[0]?.turn_token??null,j=A?s.turns.find(y=>!S(y)):void 0,D=!!o&&!(o.type==="idle"&&o.origin==="local");if(j&&s.atMs>=P&&(!D||s.atMs>=o.atMs))return{state:"working",source:"server",turnId:j.message_id,since:Is(j.started_at)??s.atMs,serverOpenTurnToken:R};if(E&&r.pending>0)return{state:"working",source:"server",turnId:d?f:null,since:r.atMs,serverOpenTurnToken:R};let q=A&&!j&&s.atMs>=m,X=I&&o.atMs>=h;if(q&&(!o||s.atMs>=o.atMs))return{state:"idle",source:"server",turnId:null,since:Is(s.lastEnded?.ended_at)??s.atMs,serverOpenTurnToken:R};if(X)return{state:o.type==="idle"?"idle":"working",source:"stream",turnId:null,since:o.atMs,serverOpenTurnToken:R};if(d)return{state:"working",source:"optimistic",turnId:f,since:e.atMs,serverOpenTurnToken:R};let W=s&&o?s.atMs>=o.atMs?{source:"server",atMs:s.atMs}:{source:"stream",atMs:o.atMs}:s?{source:"server",atMs:s.atMs}:o?{source:"stream",atMs:o.atMs}:{source:"server",atMs:p};return{state:"idle",source:W.source,turnId:null,since:W.atMs,serverOpenTurnToken:R}}function _R(t){let{optimistic:e,abort:n,inbox:r,server:s,stream:o,activity:u,nowMs:p}=t,d=[null,e?e.atMs+6e4:null,n?n.atMs+15e3:null,r?r.atMs+1e4:null,s?s.atMs+45e3:null,o?o.atMs+45e3:null,u?u.atMs+45e3:null],f=null;for(let m of d)m===null||m<=p||(f===null||m<f)&&(f=m);return f}var kR=6e4;function wR(t){return t.serverCompactingAtMs!==null?!0:t.optimisticAtMs===null?!1:t.nowMs-t.optimisticAtMs<6e4}function SR(t){if(t.serverCompactingAtMs!==null||t.optimisticAtMs===null)return null;let e=t.optimisticAtMs+6e4;return e>t.nowMs?e:null}var Yf=9e4;function vR(t){return t.serverCompactingAtMs===null?null:t.serverCompactingAtMs+Yf}var AR=75e3,RR=2,TR=2e4;function Jp(){return{status:"idle",dispatch:"none",fingerprint:null,lastProgressAtMs:null,lastDispatchAtMs:null,attempts:[],msSinceProgress:0,settled:!1}}function IR(t){return t.filter(e=>e!=null).join("|")}function Zf(t,e){return t.length===0?"retry-start":t.filter(r=>r.step==="restart").length<e?"restart":null}function ER(t,e,n={}){let r=n.noProgressMs??75e3,s=n.maxRestarts??2,o=n.cooldownMs??2e4;if(e.runtimeReachable)return{...Jp(),settled:!0};if(!e.waking)return{...t,dispatch:"none",fingerprint:null,lastProgressAtMs:null,msSinceProgress:0};if(t.settled)return{...Jp(),settled:!0};let u=t.lastProgressAtMs,p=u===null,d=e.progress!==t.fingerprint,f=u===null||d?e.nowMs:u,m=Math.max(0,e.nowMs-f),h={...t,dispatch:"none",fingerprint:e.progress,lastProgressAtMs:f,msSinceProgress:m,status:t.attempts.length>0?"escalating":"waking"};if(t.status==="exhausted")return{...h,status:"exhausted"};let x=!p&&!d&&m>=r;if(!e.serverGaveUp&&!x||t.lastDispatchAtMs!==null&&e.nowMs-t.lastDispatchAtMs<o)return h;let P=Zf(t.attempts,s);return P?{...h,status:"escalating",dispatch:P,attempts:[...t.attempts,{step:P,atMs:e.nowMs}],lastDispatchAtMs:e.nowMs,lastProgressAtMs:e.nowMs,msSinceProgress:0}:{...h,status:"exhausted"}}var ey={"retry-start":"retrying",restart:"restarting"};function jR(t){if(t.status!=="escalating")return null;let e=t.attempts[t.attempts.length-1];return e?`Still waking \u2014 ${ey[e.step]} the runtime (attempt ${t.attempts.length+1})`:null}function ty(t){return t===1?"once":t===2?"twice":`${t} times`}function $R(t){if(t.status!=="exhausted")return null;let e=t.attempts.filter(s=>s.step==="restart").length,n=t.attempts.some(s=>s.step==="retry-start");if(!n&&e===0)return null;let r=[];return n&&r.push("re-issuing the wake"),e>0&&r.push(`restarting the session ${ty(e)}`),`Tried: ${r.join(", then ")}.`}var ny=1e3,ry=15e3,Xp=100,sy=50,iy=10;function Qp(t){let e=t.fetch??globalThis.fetch,n=t.baseUrl.replace(/\/$/,"");return async({limit:r,before:s},o)=>{let u=new URLSearchParams({limit:String(r)});s&&u.set("before",s);let p=await t.getToken?.(),d=await e(`${n}/session/${encodeURIComponent(t.sessionId)}/message?${u}`,{headers:p?{Authorization:`Bearer ${p}`}:void 0,...o?{signal:o}:{}});if(!d.ok)throw d.status===503?new Kt(`session ${d.status}`):new Error(`Session synchronization failed: ${d.status}`);return{messages:await d.json(),nextCursor:d.headers.get("x-next-cursor")||void 0}}}function oy(t){return cy(Qp(t))}function ay(t){return new Es({...t,loadPage:Qp(t)})}async function cy(t){let e=[],n=new Set,r;do{let u=await t({limit:Xp,...r?{before:r}:{}});if(e.push(u.messages),r=u.nextCursor,r&&n.has(r))throw new Error(`Session history cursor repeated: ${r}`);r&&n.add(r)}while(r);let s=[],o=new Set;for(let u=e.length-1;u>=0;u--)for(let p of e[u])o.has(p.info.id)||(o.add(p.info.id),s.push(p));return s}var ly={now:Date.now,setInterval:(t,e)=>setInterval(t,e),clearInterval:t=>clearInterval(t),setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t)},Es=class{options;scheduler;livenessIntervalMs;verifyIntervalMs;lastTailReadAt;retryAttempt=0;tailRetryTimer;snapshot={freshness:"idle",hasOlder:!1,isLoadingOlder:!1};nextCursor;knownUserMessageIds=new Set;olderHistoryStarted=!1;tailRequest;olderRequest;livenessTimer;lastActivityAt;listeners=new Set;destroyed=!1;abortController=new AbortController;constructor(e){this.options=e,this.scheduler=e.scheduler??ly,this.livenessIntervalMs=e.livenessIntervalMs??1e4,this.verifyIntervalMs=e.verifyIntervalMs??3e4,this.lastActivityAt=this.scheduler.now(),this.lastTailReadAt=this.scheduler.now()}getSnapshot=()=>this.snapshot;subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e));start(){return this.snapshot.freshness==="fresh"?Promise.resolve():this.reconcile("initial")}reconcile(e="manual"){return this.destroyed?Promise.resolve():this.tailRequest?this.tailRequest:(this.update({freshness:this.snapshot.freshness==="idle"||this.snapshot.freshness==="loading"?"loading":"stale"}),this.tailRequest=this.loadTail(e).finally(()=>{this.tailRequest=void 0}),this.tailRequest)}loadOlder=()=>{if(this.destroyed||!this.nextCursor)return Promise.resolve();if(this.olderRequest)return this.olderRequest;let e=this.nextCursor;return this.update({isLoadingOlder:!0}),this.olderRequest=this.loadCompleteOlderTurn(e).then(n=>{this.destroyed||(this.rememberUserMessages(n.messages),this.options.hydrate(n.messages),this.olderHistoryStarted=!0,this.setCursor(n.nextCursor))}).finally(()=>{this.olderRequest=void 0,this.update({isLoadingOlder:!1})}),this.olderRequest};noteActivity(){this.lastActivityAt=this.scheduler.now(),this.snapshot.freshness!=="fresh"&&this.update({freshness:"fresh"})}setBusy(e){if(!e){let n=this.livenessTimer!==void 0;this.stopLivenessTimer(),n&&!this.destroyed&&this.reconcile("turn-end");return}this.livenessTimer===void 0&&(this.lastActivityAt=this.scheduler.now(),this.livenessTimer=this.scheduler.setInterval(()=>{this.checkLiveness()},this.livenessIntervalMs))}destroy(){this.destroyed=!0,this.stopLivenessTimer(),this.tailRetryTimer!==void 0&&(this.cancelTimer(this.tailRetryTimer),this.tailRetryTimer=void 0),this.abortController.abort(),this.listeners.clear()}async loadTail(e){this.lastTailReadAt=this.scheduler.now();try{let n=await this.loadPage("tail",e);if(this.destroyed)return;this.rememberUserMessages(n.messages),this.options.hydrate(n.messages),this.olderHistoryStarted||this.setCursor(n.nextCursor),this.update({freshness:"fresh"}),this.options.markLoaded(),this.retryAttempt=0}catch(n){if(this.destroyed||Lp(n)||this.abortController.signal.aborted)return;this.update({freshness:Ht(n)?"loading":"error"}),this.scheduleTailRetry(e)}}scheduleTailRetry(e){if(this.destroyed||this.tailRetryTimer!==void 0)return;let n=Math.min(ny*2**this.retryAttempt,ry);this.retryAttempt+=1,this.tailRetryTimer=this.startTimer(()=>{this.tailRetryTimer=void 0,!this.destroyed&&this.reconcile(e)},n)}async loadPage(e,n,r){let s=this.scheduler.now();try{let o=await this.options.loadPage({limit:e==="tail"?sy:Xp,...r?{before:r}:{}},this.abortController.signal);return this.options.onTelemetry?.({operation:e,reason:n,durationMs:this.scheduler.now()-s,messageCount:o.messages.length,succeeded:!0}),o}catch(o){throw this.options.onTelemetry?.({operation:e,reason:n,durationMs:this.scheduler.now()-s,messageCount:0,succeeded:!1}),o}}async loadCompleteOlderTurn(e){let n=await this.loadPage("older","manual",e);return this.loadCompleteTurn(n,"older","manual",e,r=>{this.rememberUserMessages(r.messages),this.options.hydrate(r.messages),this.setCursor(r.nextCursor)})}async loadCompleteTurn(e,n,r,s,o){let u=[...e.messages],p=new Set(this.knownUserMessageIds),d=new Set(s?[s]:[]),f=e.nextCursor,m=0;for(let h of e.messages)h.info.role==="user"&&p.add(h.info.id);for(;f&&m<iy&&u.some(h=>h.info.role==="assistant"&&!!h.info.parentID&&!p.has(h.info.parentID));){if(d.has(f))throw new Error(`Session history cursor repeated: ${f}`);d.add(f);let h;try{h=await this.loadPage(n,r,f)}catch(x){throw o?.({messages:[...u],nextCursor:f}),x}if(this.destroyed)return{messages:u,nextCursor:f};m+=1,u.unshift(...h.messages);for(let x of h.messages)x.info.role==="user"&&p.add(x.info.id);f=h.nextCursor,o?.({messages:[...u],nextCursor:f})}return{messages:u,nextCursor:f}}rememberUserMessages(e){for(let n of e)n.info.role==="user"&&this.knownUserMessageIds.add(n.info.id)}async checkLiveness(){if(this.destroyed)return;let e=this.scheduler.now(),n=e-this.lastActivityAt>this.livenessIntervalMs,r=e-this.lastTailReadAt>=this.verifyIntervalMs;!n&&!r||(await this.raceDeadline(this.reconcile("poll"),this.livenessIntervalMs),this.lastActivityAt=this.scheduler.now())}raceDeadline(e,n){return new Promise(r=>{let s,o=!1,u=()=>{o||(o=!0,this.cancelTimer(s),r())};s=this.startTimer(u,n),e.then(u,u)})}setCursor(e){this.nextCursor=e,this.update({hasOlder:!!e})}stopLivenessTimer(){this.livenessTimer!==void 0&&(this.scheduler.clearInterval(this.livenessTimer),this.livenessTimer=void 0)}startTimer(e,n){return this.scheduler.setTimeout?this.scheduler.setTimeout(e,n):setTimeout(e,n)}cancelTimer(e){e!==void 0&&(this.scheduler.clearTimeout?this.scheduler.clearTimeout(e):clearTimeout(e))}update(e){let n={...this.snapshot,...e};if(!(n.freshness===this.snapshot.freshness&&n.hasOlder===this.snapshot.hasOlder&&n.isLoadingOlder===this.snapshot.isLoadingOlder)){this.snapshot=n;for(let r of this.listeners)r()}}};function uy(t){let e=t;for(;e.endsWith("/");)e=e.slice(0,-1);return`${e}/tunnel/permission-requests/stream`}function py(t){let{url:e,token:n,method:r="GET",body:s,onEvent:o,onOpen:u,onError:p,signal:d}=t,f=new Map,m=null,h=!1;function x(l,b){o?.(l,b);let c=f.get(l);if(c)for(let S of c)try{S(b)}catch{}}async function P(){if(h)return;m=new AbortController;let l=d?AbortSignal.any([m.signal,d]):m.signal;try{let b={Accept:"text/event-stream",Authorization:`Bearer ${n}`};r!=="GET"&&s!==void 0&&(b["Content-Type"]="application/json");let c=await fetch(e,{method:r,headers:b,body:r!=="GET"&&s!==void 0?JSON.stringify(s):void 0,signal:l,credentials:"include"});if(!c.ok)throw new Error(`SSE connection failed: ${c.status} ${c.statusText}`);if(!c.body)throw new Error("SSE response has no body");u?.();let S=c.body.getReader(),w=new TextDecoder,R="",j="message",D="";for(;!h;){let{done:q,value:X}=await S.read();if(q)break;R+=w.decode(X,{stream:!0});let W=R.split(`
71
+ `;return r}function Im(e,t){return`session-${e}.md`}var Ps="An error occurred";var Em=["message","error","detail","error_description","msg","errors","data"];function Rp(e){let t=e.trim();for(let n=0;n<4;n++){let r=t.replace(/^(?:\d{3}\s+)?(?:[A-Za-z_$][\w$]*)?Error:\s*/,"").trim();if(r===t)break;t=r}return t}function Oe(e){if(!(typeof e!="string"||!e))try{return JSON.parse(e)}catch{return}}function jm(e){let t=e.match(/"(?:message|detail|error_description|msg)"\s*:\s*"((?:[^"\\]|\\.)*)"/);if(!t)return;let n=Oe(`"${t[1]}"`);return typeof n=="string"&&n.trim()?n.trim():void 0}function $m(e){if(!/^\s*<(?:!doctype|html|head|body)\b/i.test(e))return;let t=e.match(/<title[^>]*>([^<]*)<\/title>/i)?.[1]?.trim();if(t)return t;let n=e.replace(/<script[\s\S]*?<\/script>|<style[\s\S]*?<\/style>/gi," ").replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim();return n?n.slice(0,200):void 0}function Mm(e){let t=e.replace(/[_-]+/g," ").trim();return t&&t.charAt(0).toUpperCase()+t.slice(1)}function Ap(e,t,n){if(typeof e=="string")return Bt(e,t,n);if(e&&typeof e=="object")return Nt(e,t,n)}function Bt(e,t,n=new WeakSet){let r=Rp(e);if(!r)return;if(t>=4)return r;let s=Oe(r);if(s!==void 0)return typeof s=="string"?Bt(s,t+1,n):s&&typeof s=="object"?Nt(s,t+1,n):String(s);let o=Tp(r);if(o){let l=Oe(o);if(l&&typeof l=="object"){let p=Nt(l,t+1,n);if(p)return p}}if(r.includes("{")){let l=jm(r);if(l)return Bt(l,t+1,n)??l}return $m(r)??r}function Nt(e,t,n=new WeakSet){if(t>=4||n.has(e))return;if(n.add(e),Array.isArray(e)){for(let l of e){let p=Ap(l,t,n);if(p)return p}return}let r=e;for(let l of Em){let p=Ap(r[l],t,n);if(p)return p}let s=r.type??r.code;if(typeof s=="string"&&s.trim())return Mm(s);let o=r.status??r.statusCode??r.upstream_status;if(typeof o=="number"&&Number.isFinite(o))return`Request failed with status ${o}`}function te(e){return e?typeof e=="string"?Bt(e,0)??Ps:typeof e=="object"?Nt(e,0)??Ps:String(e):Ps}function Tp(e){let t=e.indexOf("{"),n=e.lastIndexOf("}");if(!(t===-1||n===-1||n<=t))return e.slice(t,n+1)}function qm(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e;if(typeof t.message=="string"&&t.message)return t.message;if(typeof t.error=="string"&&t.error)return t.error;let n=t.data;if(typeof n?.message=="string")return n.message;let r=t.error;if(typeof r?.message=="string")return r.message}function Dm(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(!n||typeof n!="object"||Array.isArray(n))continue;let r=n;!Number.isInteger(r.attempt)||r.attempt<1||typeof r.provider!="string"||!r.provider||typeof r.route_model!="string"||!r.route_model||typeof r.resolved_model!="string"||!r.resolved_model||typeof r.stage!="string"||!r.stage||typeof r.code!="string"&&!(typeof r.code=="number"&&Number.isFinite(r.code))||typeof r.message!="string"||!r.message||r.status!==void 0&&(!Number.isInteger(r.status)||r.status<100||r.status>599)||t.push({attempt:r.attempt,provider:r.provider,routeModel:r.route_model,resolvedModel:r.resolved_model,stage:r.stage,...typeof r.status=="number"?{status:r.status}:{},code:r.code,message:r.message})}return t.length>0?t:void 0}function Cp(e){let t=typeof e.provider=="string"&&e.provider?e.provider:void 0,n=typeof e.code=="string"&&e.code?e.code:void 0,r=typeof e.suggestion=="string"&&e.suggestion?e.suggestion:void 0,s=typeof e.upstream_status=="number"?e.upstream_status:void 0,o=typeof e.request_id=="string"&&e.request_id?e.request_id:void 0,l=Dm(e.attempt_failures);return!t&&!n&&!r&&s===void 0&&!o&&!l?void 0:{message:typeof e.message=="string"&&e.message||qm(e)||"",provider:t,code:n,suggestion:r,upstreamStatus:s,requestId:o,attemptFailures:l}}function ie(e){if(e==null)return;if(typeof e=="string"){let l=Rp(e),p=Oe(l)??Oe(Tp(l));return p!==void 0?ie(p):void 0}if(typeof e!="object")return;let t=e,n=Cp(t);if(n)return n;let r=t.error;if(r&&typeof r=="object"&&!Array.isArray(r)){let l=Cp(r);if(l)return l}let s=t.data;if(s&&typeof s.responseBody=="string"){let l=Oe(s.responseBody);if(l!==void 0){let p=ie(l);if(p)return p}}if(s&&typeof s.message=="string"){let l=ie(s.message);if(l)return l}let o=t.cause;if(o&&typeof o=="object"){let l=o.body;if(l!==void 0){let p=ie(l);if(p)return p}}}var Om={bash:{label:"Shell",category:"shell"},pty_spawn:{label:"Spawn Terminal",category:"shell"},pty_read:{label:"Terminal Output",category:"shell"},pty_write:{label:"Terminal Input",category:"shell"},pty_input:{label:"Terminal Input",category:"shell"},pty_kill:{label:"Kill Process",category:"shell"},read:{label:"Read File",category:"files"},list:{label:"List Directory",category:"files"},ls:{label:"List Directory",category:"files"},write:{label:"Write File",category:"edit"},edit:{label:"Edit File",category:"edit"},multiedit:{label:"Edit File",category:"edit"},morph_edit:{label:"Edit File",category:"edit"},apply_patch:{label:"Apply Patch",category:"edit"},patch:{label:"Apply Patch",category:"edit"},grep:{label:"Search Code",category:"search"},glob:{label:"Find Files",category:"search"},image_search:{label:"Image Search",category:"search"},session_search:{label:"Search Sessions",category:"search"},webfetch:{label:"Fetch Page",category:"web"},scrape_webpage:{label:"Scrape Page",category:"web"},websearch:{label:"Web Search",category:"web"},web_search:{label:"Web Search",category:"web"},image_gen:{label:"Generate Image",category:"web"},video_gen:{label:"Generate Video",category:"web"},task:{label:"Delegate to Agent",category:"task"},todowrite:{label:"Plan Tasks",category:"task"},todoread:{label:"Read Plan",category:"task"},question:{label:"Ask Question",category:"task"},presentation_gen:{label:"Presentation",category:"task"},show:{label:"Show Output",category:"task"},show_user:{label:"Show Output",category:"task"},prune:{label:"Prune Context",category:"other"},distill:{label:"Distill Context",category:"other"},compress:{label:"Compress Context",category:"other"},context_info:{label:"Context Info",category:"other"}},Um=[{prefix:"pty_",category:"shell"},{prefix:"agent_",category:"task"},{prefix:"session_",category:"task"},{prefix:"task_",category:"task"},{prefix:"trigger_",category:"task"},{prefix:"project_",category:"task"}];function Fm(e){return e.replace(/^oc[-_]/,"")}function Kt(e){return Fm(e).replace(/-/g,"_")}function ks(e){return Kt(e).split(/[_\s]+/).filter(Boolean).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function ws(e){let t=Kt(e),n=Om[t];if(n)return n;for(let{prefix:r,category:s}of Um)if(t.startsWith(r))return{label:ks(e),category:s};return{label:ks(e),category:"other"}}var Lm=256*1024;function Gm(e){switch(e.status){case"pending":return"pending";case"running":return"running";case"completed":return"done";case"error":return"error";default:return e}}function Bm(e){if(e===void 0)return{};if(e.length>Lm)return{outputText:e};try{return{outputParsed:JSON.parse(e),outputText:e}}catch{return{outputText:e}}}function Nm(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e,n=t.success===!1,r=t.error,s=typeof r=="string"&&r.length>0||typeof r=="object"&&r!==null;if(!(!n&&!s))return s?te(r):typeof t.message=="string"&&t.message?t.message:"Tool reported failure"}function Km(e,t){let n="title"in t?t.title:void 0,r=t.status==="completed"?t.output:void 0,{outputParsed:s,outputText:o}=Bm(r),l=Gm(t),p=t.status==="error"?t.error:void 0;if(l==="done"){let d=Nm(s);d&&(l="error",p=d)}return{name:e,title:n||ws(e).label,status:l,input:t.input,output:r,outputParsed:s,outputText:o,error:p}}function Hm(e){return{kind:"text",id:e.id,text:e.text,synthetic:!!e.synthetic}}function Wm(e){return{kind:"reasoning",id:e.id,text:e.text}}function zm(e){return{kind:"tool",id:e.id,tool:Km(e.tool,e.state)}}function Vm(e){let t=e.mime;return{kind:"file",id:e.id,filename:e.filename,mime:t,url:e.url,isImage:t.startsWith("image/"),isPdf:t==="application/pdf"}}function Jm(e){return{kind:"subtask",id:e.id,description:e.description,agent:e.agent,prompt:e.prompt,model:e.model}}function Xm(e){return{kind:"patch",id:e.id,hash:e.hash,files:e.files,fileCount:e.files.length}}function Qm(e){return{kind:"snapshot",id:e.id,snapshot:e.snapshot}}function Ym(e){return{kind:"agent",id:e.id,name:e.name}}function Zm(e){return{kind:"retry",id:e.id,attempt:e.attempt,message:te(e.error),createdAt:e.time.created}}function ef(e){return{kind:"compaction",id:e.id,auto:e.auto,overflow:!!e.overflow,tailStartId:e.tail_start_id}}function tf(e){return{kind:"step",id:e.id,phase:"start",snapshot:e.snapshot}}function nf(e){return{kind:"step",id:e.id,phase:"finish",snapshot:e.snapshot,reason:e.reason,cost:e.cost,tokens:e.tokens}}function Ip(e){switch(e.type){case"text":return Hm(e);case"reasoning":return Wm(e);case"tool":return zm(e);case"file":return Vm(e);case"subtask":return Jm(e);case"patch":return Xm(e);case"snapshot":return Qm(e);case"agent":return Ym(e);case"retry":return Zm(e);case"compaction":return ef(e);case"step-start":return tf(e);case"step-finish":return nf(e);default:return{kind:"unknown",raw:e}}}function rf(e){if(!e)return;let t=typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:"Error",n=ie(e);return{name:t,message:n?.message||te(e),provider:n?.provider,code:n?.code,suggestion:n?.suggestion,upstreamStatus:n?.upstreamStatus,requestId:n?.requestId,attemptFailures:n?.attemptFailures}}function sf(e){switch(e.kind){case"text":case"reasoning":return e.text.trim().length>0;case"step":return!1;default:return!0}}function of(e){let t=e.parts.map(Ip),n=e.info.role==="assistant"?e.info.error:void 0,r=rf(n),s=!r&&!t.some(sf);return{parts:t,error:r,isEmpty:s}}function Pe(e){return e.type==="text"}function Ss(e){return e.type==="reasoning"}function ge(e){return e.type==="tool"}function af(e){return e.type==="file"}function av(e){return e.type==="agent"}function cv(e){return e.type==="compaction"}function lv(e){return e.type==="snapshot"}function uv(e){return e.type==="patch"}function pv(e){if(Pe(e)||Ss(e))return e.text}function cf(e){if(!af(e))return!1;let t=e.mime;return t.startsWith("image/")||t==="application/pdf"}function dv(e){let t=[],n=[];for(let r of e)cf(r)?t.push(r):n.push(r);return{attachments:t,stickyParts:n}}function gv(e,t){let n=[];return e?.tool&&n.push(e.tool),t?.tool&&n.push(t.tool),n}function mv(e,t,n){return n.some(r=>r.messageID===t&&r.callID===e.callID)}var lf=new Set(["todoread","context_info"]);function uf(e){return!lf.has(e.tool)}function fv(e){let t=e.tool||"";if(t==="task"||t==="agent_spawn"||t==="agent-spawn"||t==="agent_message"||t==="agent-message"||t==="agent_task"||t==="agent-task"||t==="agent_task_update"||t==="agent-task-update"||t==="agent_task_message"||t==="agent-task-message"||t==="agent_task_start"||t==="agent-task-start"||t==="task_create"||t==="task-create"||t==="task_start"||t==="task-start"||t==="task_update"||t==="task-update"||t==="task_message"||t==="task-message"){let r=e.state?.metadata?.sessionId;if(typeof r=="string"&&r)return r;let s=e.state?.title;if(s){let l=s.match(/\bses_[a-zA-Z0-9]+/);if(l)return l[0]}let o=e.state?.output;if(o){let l=o.match(/\bses_[a-zA-Z0-9]+/);if(l)return l[0]}return}let n=e.tool?.replace(/-/g,"_")||"";if(n==="session_spawn"||n==="session_start_background"){let r=e.state?.output;if(r){let s=r.match(/\*?\*?Session:?\*?\*?\s*(ses_[a-zA-Z0-9]+)/);if(s)return s[1]}return}}function yv(e){if(e)for(let t=e.length-1;t>=0;t--){let n=e[t]?.info;if(n?.role==="assistant"&&n.error)return te(n.error)}}function hv(e){let t=[];for(let n of e)if(n.info.role==="assistant")for(let r of n.parts)ge(r)&&uf(r)&&t.push(r);return t}function bv(e,t={}){switch(e){case"read":return{icon:"glasses",title:"Read",subtitle:pf(t.filePath)};case"list":return{icon:"list",title:"List",subtitle:df(t.path)};case"glob":return{icon:"search",title:"Glob",subtitle:t.pattern};case"grep":return{icon:"search",title:"Grep",subtitle:t.pattern};case"webfetch":return{icon:"globe",title:"Web Fetch",subtitle:t.url};case"websearch":case"web-search":case"web_search":return{icon:"search",title:"Web Search",subtitle:t.query};case"scrape-webpage":return{icon:"globe",title:"Scrape",subtitle:t.urls?.split?.(",")[0]};case"image-search":return{icon:"image",title:"Image Search",subtitle:t.query};case"image-gen":return{icon:"image",title:"Image Gen",subtitle:t.prompt?.slice?.(0,40)};case"video-gen":return{icon:"cpu",title:"Video Gen",subtitle:t.prompt?.slice?.(0,40)};case"presentation-gen":{let n=t.action||"";return{icon:"presentation",title:{create_slide:"Create Slide",list_slides:"List Slides",preview:"Preview",export_pdf:"Export PDF",export_pptx:"Export PPTX"}[n]||"Presentation",subtitle:t.slide_title||t.presentation_name}}case"show":case"show-user":return{icon:"globe",title:"Output",subtitle:t.title||t.description};case"task":return{icon:"square-kanban",title:`Agent (${t.subagent_type||"task"})`,subtitle:gf(t)};case"session_spawn":case"session_start_background":case"session-spawn":case"session-start-background":case"oc-session_spawn":case"oc-session-spawn":case"oc-session_start_background":case"oc-session-start-background":return{icon:"square-kanban",title:`Worker (${t.agent||"KortixWorker"})`,subtitle:t.description||t.prompt?.slice(0,60)};case"bash":return{icon:"terminal",title:"Shell",subtitle:t.description};case"edit":case"morph_edit":return{icon:"file-pen",title:"Edit",subtitle:Ep(t.filePath)};case"write":return{icon:"file-pen",title:"Write",subtitle:Ep(t.filePath)};case"apply_patch":return{icon:"file-pen",title:"Patch",subtitle:t.files?.length?`${t.files.length} file${t.files.length>1?"s":""}`:void 0};case"todowrite":return{icon:"check-square",title:"Todos"};case"todoread":return{icon:"check-square",title:"Todos (read)"};case"question":return{icon:"message-circle",title:"Questions"};case"prune":return{icon:"scissors",title:"DCP Prune",subtitle:t.reason};case"distill":return{icon:"scissors",title:"DCP Distill"};case"compress":return{icon:"scissors",title:"DCP Compress",subtitle:t.topic};case"context_info":return{icon:"scissors",title:"Context Info"};case"session_read":case"session-read":case"oc-session_read":case"oc-session-read":return{icon:"glasses",title:`Session Read (${t.mode||"summary"})`,subtitle:t.session_id?.slice(-12)};case"session_search":case"session-search":case"oc-session_search":case"oc-session-search":return{icon:"search",title:"Session Search",subtitle:t.query};case"session_message":case"session-message":case"oc-session_message":case"oc-session-message":return{icon:"message-circle",title:"Message \u2192 Session",subtitle:t.session_id?.slice(-12)};case"session_lineage":case"session-lineage":case"oc-session_lineage":case"oc-session-lineage":return{icon:"list-tree",title:"Session Lineage",subtitle:t.session_id?.slice(-12)};case"session_list_background":case"session-list-background":case"session_list_spawned":case"session-list-spawned":case"oc-session_list_background":case"oc-session-list-background":case"oc-session_list_spawned":case"oc-session-list-spawned":return{icon:"layers",title:"Background Sessions",subtitle:t.project||"all"};case"session_stats":case"session-stats":case"oc-session_stats":case"oc-session-stats":return{icon:"layers",title:"Session Stats",subtitle:t.session_id?.slice(-12)||"current"};case"session_list":case"session-list":case"oc-session_list":case"oc-session-list":return{icon:"list",title:"Session List",subtitle:t.search};case"session_get":case"session-get":case"oc-session_get":case"oc-session-get":return{icon:"book-open",title:"Session Get",subtitle:t.session_id?.slice(-12)};case"session_context":case"session-context":case"oc-session_context":case"oc-session-context":return{icon:"book-open",title:"Session Context",subtitle:t.session_id?.slice(-12)};case"project_delete":case"project-delete":case"oc-project_delete":case"oc-project-delete":return{icon:"trash-2",title:"Workspace Delete Disabled",subtitle:t.project};case"project_list":case"project-list":case"oc-project_list":case"oc-project-list":return{icon:"folder",title:"Projects"};case"project_get":case"project-get":case"oc-project_get":case"oc-project-get":case"project_update":case"project-update":case"oc-project_update":case"oc-project-update":return{icon:"folder",title:"Project",subtitle:t.name||t.project};case"project_select":case"project-select":case"oc-project_select":case"oc-project-select":return{icon:"folder",title:"Project Select",subtitle:t.project};case"project_create":case"project-create":case"oc-project_create":case"oc-project-create":return{icon:"folder-plus",title:"Project Create",subtitle:t.name};case"triggers":case"trigger_create":case"trigger-create":case"oc-trigger_create":case"oc-trigger-create":return{icon:"clock",title:"Create Trigger",subtitle:t.name};case"trigger_list":case"trigger-list":case"oc-trigger_list":case"oc-trigger-list":return{icon:"clock",title:"List Triggers"};case"trigger_get":case"trigger-get":case"oc-trigger_get":case"oc-trigger-get":return{icon:"clock",title:"Trigger Details",subtitle:t.name||t.id};case"trigger_delete":case"trigger-delete":case"oc-trigger_delete":case"oc-trigger-delete":return{icon:"clock",title:"Delete Trigger",subtitle:t.name||t.id};case"trigger_update":case"trigger-update":case"oc-trigger_update":case"oc-trigger-update":return{icon:"clock",title:"Update Trigger",subtitle:t.name||t.id};case"trigger_test":case"trigger-test":case"oc-trigger_test":case"oc-trigger-test":return{icon:"clock",title:"Test Trigger",subtitle:t.name||t.id};case"trigger_pause":case"trigger-pause":case"oc-trigger_pause":case"oc-trigger-pause":return{icon:"clock",title:"Pause Trigger",subtitle:t.name||t.id};case"trigger_resume":case"trigger-resume":case"oc-trigger_resume":case"oc-trigger-resume":return{icon:"clock",title:"Resume Trigger",subtitle:t.name||t.id};case"agent_spawn":case"agent-spawn":return{icon:"cpu",title:`Agent (${t.agent_type||"worker"})`,subtitle:t.description};case"agent_message":case"agent-message":return{icon:"message-circle",title:"Agent Message",subtitle:t.agent_id};case"agent_stop":case"agent-stop":return{icon:"ban",title:"Agent Stop",subtitle:t.agent_id};case"agent_status":case"agent-status":return{icon:"layers",title:"Agent Status"};case"agent_task":case"agent-task":case"oc-agent_task":case"oc-agent-task":return{icon:"check-square",title:"Create Task",subtitle:t.title};case"agent_task_update":case"agent-task-update":case"oc-agent_task_update":case"oc-agent-task-update":return{icon:"check-square",title:"Update Task",subtitle:t.task_id};case"agent_task_list":case"agent-task-list":case"oc-agent_task_list":case"oc-agent-task-list":return{icon:"check-square",title:"List Tasks"};case"agent_task_get":case"agent-task-get":case"oc-agent_task_get":case"oc-agent-task-get":return{icon:"check-square",title:"Task Details",subtitle:t.task_id};case"task_create":case"task-create":return{icon:"plus",title:"Create Task",subtitle:t.title};case"task_list":case"task-list":return{icon:"list",title:"Tasks",subtitle:t.status||"all"};case"task_update":case"task-update":return{icon:"refresh-cw",title:"Update Task",subtitle:t.id};case"task_done":case"task-done":return{icon:"check-circle",title:"Task Done",subtitle:t.id};case"task_delete":case"task-delete":return{icon:"trash-2",title:"Delete Task",subtitle:t.id};case"pty_spawn":return{icon:"terminal",title:"Spawn",subtitle:t.title||t.command};case"pty_read":return{icon:"terminal",title:"Terminal Output",subtitle:t.id};case"pty_write":case"pty_input":return{icon:"terminal",title:"Terminal Input",subtitle:t.id};case"pty_kill":return{icon:"terminal",title:"Kill Process",subtitle:t.id};default:return{icon:"cpu",title:e}}}function pf(e){if(!e)return;let t=e.split("/");return t[t.length-1]||e}function Ep(e){if(!e)return;let t=e.split("/"),n=t[t.length-1]||e;if(t.length<=1)return n;let r=t[t.length-2];return r?`${n} /${r}`:n}function df(e){if(!e)return;let t=e.lastIndexOf("/");if(!(t<0))return e.slice(0,t)||"/"}function xv(e,t){if(!t)return e;if(e.startsWith(t)){let n=e.slice(t.length);return n.startsWith("/")?n.slice(1):n}return e}function rt(e,t=120){if(typeof e!="string")return"";let n=e.split(`
72
+ `).map(r=>r.trim()).find(Boolean);return n?n.length>t?`${n.slice(0,t).trim()}\u2026`:n:""}function gf(e){let t=rt(e.description);if(t)return t;let n=rt(e.title,80);if(n)return n;let r=rt(e.message);if(r)return r;let s=rt(e.prompt);if(s)return s;let o=rt(e.agent_id,40);return o?`Agent ${o}`:"Worker task"}function _v(e,t){return!e||!t?[]:(e[t]??[]).filter(r=>r.severity===1).slice(0,3)}function Pv(e,t){return e.find(n=>n.tool?.callID===t)}function kv(e,t){return e.find(n=>n.tool?.callID===t)}var mf=/\x1B\[[\d;]*[A-Za-z]|\x1B\][^\x07]{0,512}\x07|\x1B[()#][A-Z0-9]|\x1B\[?[\d;]*[hl]|\x1B[>=<]|\x1B\[[?]?\d*[A-Z]|\x1B\[\d*[JKHG]|\x1B\[\d*;\d*[Hf]|\x1b\[[0-9;]*m/g;function wv(e){return e?e.replace(mf,""):""}var ff=/^msg_[0-9a-f]{12}/;function jp(e){return ff.test(e)?0:1}function $p(e,t){return e<t?-1:e>t?1:0}function yf(e,t){let n=jp(e.info.id),r=jp(t.info.id);if(n!==r)return n-r;if(n===0)return $p(e.info.id,t.info.id);let s=typeof e.info.time?.created=="number"?e.info.time.created:null,o=typeof t.info.time?.created=="number"?t.info.time.created:null;return s===null&&o===null?0:s===null?1:o===null?-1:s!==o?s<o?-1:1:$p(e.info.id,t.info.id)}function Av(e){let t=[...e].sort(yf),n=[],r=new Map;for(let o of t)if(o.info.role==="user"){if(r.has(o.info.id))continue;let l={userMessage:o,assistantMessages:[]};n.push(l),r.set(o.info.id,l)}let s=null;for(let o of t){if(o.info.role==="user"){s=r.get(o.info.id)??null;continue}if(o.info.role!=="assistant")continue;let l=o.info,p=l.tokens;if(!l.error&&o.parts.length===0&&p?.input===0&&p.output===0&&p.reasoning===0)continue;if(l.parentID){let f=r.get(l.parentID);if(f){f.assistantMessages.push(o);continue}}if(s){s.assistantMessages.push(o);continue}if(n.length>0){n[0].assistantMessages.unshift(o);continue}let d={userMessage:o,assistantMessages:[]};n.push(d)}return n}function Cv(e){let t=[];for(let n of e.assistantMessages)for(let r of n.parts)t.push({part:r,message:n});return t}function Rv(e){for(let t=e.length-1;t>=0;t--){let n=e[t].part;if(Pe(n)&&n.text?.trim())return n}}function Tv(e){return e.some(({part:t})=>t.type==="tool"||t.type==="compaction"||t.type==="snapshot"||t.type==="patch")}function Iv(e,t,n){if(n)return[];let r=[];for(let s of e.assistantMessages)for(let o of s.parts){if(!ge(o))continue;let l=o,p=l.state?.metadata?.answers;l.tool==="question"&&(p?.length??0)>0&&r.push({part:o,message:s})}return r}function Ev(e){let t=new Map;for(let n of e){if(!n.parentID)continue;let r=t.get(n.parentID);r?r.push(n.id):t.set(n.parentID,[n.id])}return t}function jv(e){let t=e-6e4;return(n,r)=>{let s=n.time.updated??n.time.created,o=r.time.updated??r.time.created,l=s>t,p=o>t;return l&&p?n.id<r.id?-1:n.id>r.id?1:0:l&&!p?-1:!l&&p?1:o-s}}function hf(e,t){let n=e.get(t);if(!n||n.length===0)return[];let r=[];for(let s of n)r.push(s),r.push(...hf(e,s));return r}function bf(e){if(!e||typeof e!="object")return!1;let t=e.data;return!!t&&typeof t=="object"&&t.isRetryable===!0}function Mv(e){if(!e?.length)return!1;for(let t=e.length-1;t>=0;t--){let n=e[t].info;if(n.role==="assistant")return!n.time?.completed&&bf(n.error)}return!1}function xf(e){let t=e.userMessage.parts;if(t.length===0||!t.every(o=>Pe(o)&&o.synthetic)||e.assistantMessages.length!==1)return!1;let r=e.assistantMessages[0].parts;if(r.length!==1)return!1;let s=r[0];return ge(s)&&s.tool==="bash"}function Ov(e){if(xf(e))return e.assistantMessages[0].parts[0]}function Gv(e,t){for(let n=t.length-1;n>=0;n--)if(t[n].info.role==="user")return t[n].info.id===e;return!1}function Bv(e,t){return!t||!e?!1:e.type!=="idle"}function Nv(e,t){return!e&&!!t}function Kv(e){for(let t of e.assistantMessages){let n=t.info;if(n.error)return te(n.error)}}function Hv(e){for(let t of e.assistantMessages){let n=t.info;if(n.error)return ie(n.error)}}function Mp(e){if(e){if(ge(e))switch(e.tool){case"task":case"session_spawn":case"session_start_background":case"session-spawn":case"session-start-background":return"Handing off to an agent...";case"agent_spawn":case"agent-spawn":case"agent_task":case"agent-task":return"Handing off to an agent...";case"agent_task_update":case"agent-task-update":case"task_update":case"task-update":return"Updating progress...";case"agent_message":case"agent-message":case"agent_task_message":case"agent-task-message":case"task_message":case"task-message":return"Checking in with an agent...";case"task_create":case"task-create":case"task_start":case"task-start":return"Starting a new task...";case"task_list":case"task-list":return"Reviewing the task list...";case"task_done":case"task-done":return"Updating progress...";case"todowrite":case"todoread":return"Planning...";case"read":return"Reading files...";case"list":case"grep":case"glob":return"Searching files...";case"webfetch":case"scrape-webpage":return"Reading a web page...";case"websearch":case"web-search":case"web_search":return"Searching the web...";case"image-search":return"Searching for images...";case"image-gen":return"Creating an image...";case"video-gen":return"Creating a video...";case"presentation-gen":return"Creating a presentation...";case"show":case"show-user":return"Sharing the result...";case"edit":case"write":case"morph_edit":return"Making changes...";case"bash":return"Working on the computer...";case"apply_patch":return"Making changes...";case"prune":return"Tidying up memory...";case"distill":return"Tidying up memory...";case"compress":return"Tidying up memory...";case"context_info":return"Refreshing memory...";default:return"Working on it..."}if(Ss(e)){let t=e.text?.trimStart();if(t){let n=t.match(/^\*\*(.+?)\*\*/);if(n)return`Thinking about ${n[1].trim()}...`}return"Thinking..."}if(Pe(e))return"Gathering thoughts..."}}function Wv(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n].part,s=ge(r)?r:void 0;if(s&&(s.tool==="task"||s.tool==="agent_task"||s.tool==="agent-task"||s.tool==="task_create"||s.tool==="task-create"||s.tool==="task_start"||s.tool==="task-start")&&s.state.status==="running"&&t&&t.length>0){for(let l=t.length-1;l>=0;l--){let p=t[l];if(p.info.role==="assistant")for(let d=p.parts.length-1;d>=0;d--){let f=Mp(p.parts[d]);if(f)return f}}return"Handing off to an agent..."}let o=Mp(r);if(o)return o}return"Figuring out what\u2019s next..."}function zv(e){if(!Number.isFinite(e)||e<1e3)return"";let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return r>0?`${n}m ${r}s`:`${n}m`}var qp=1.2;function Dp(e,t){if(!e)return 0;let n=e.input??0,r=(e.output??0)+(e.reasoning??0),s=e.cache?.read??0,o=e.cache?.write??0,l=Math.max(0,n-s-o),d=[...t.tiers??[],...t.contextOver200k?[t.contextOver200k]:[]].filter(m=>n>m.contextThreshold).sort((m,h)=>h.contextThreshold-m.contextThreshold)[0]??t,f=l/1e6*d.inputPer1M;return f+=r/1e6*d.outputPer1M,s>0&&(f+=s/1e6*(d.cacheReadPer1M??d.inputPer1M)),o>0&&(f+=o/1e6*(d.cacheWritePer1M??d.inputPer1M)),f}function Op(e,t,n,r){let s=e.cost||0;if(s>0)return s;if(!r||!t||!n)return 0;let o=r(t,n);return o?Dp(e.tokens,o):0}function Up(e){if(e.role!=="assistant")return{};let t=e;return{providerID:t.providerID,modelID:t.modelID}}function Vv(e,t){let n=0,r=0,s=0,o=0,l=0,p=0,d=!1;for(let{part:f,message:m}of e)if(f.type==="step-finish"){d=!0;let h=f,{providerID:x,modelID:P}=Up(m.info);n+=Op(h,x,P,t),r+=h.tokens?.input||0,s+=h.tokens?.output||0,o+=h.tokens?.reasoning||0,l+=h.tokens?.cache?.read||0,p+=h.tokens?.cache?.write||0}if(!d)for(let{message:f}of e){if(f.info.role!=="assistant")continue;let m=f.info,h=Fp(m,t);if(h<=0)continue;d=!0,n+=h;let x=m.tokens;x&&(r+=x.input??0,s+=x.output??0,o+=x.reasoning??0,l+=x.cache?.read??0,p+=x.cache?.write??0)}if(d)return{cost:n*qp,tokens:{input:r,output:s,reasoning:o,cacheRead:l,cacheWrite:p}}}function Fp(e,t){if(!t||!e.providerID||!e.modelID||!e.tokens)return 0;let n=t(e.providerID,e.modelID);return n?Dp({input:e.tokens.input,output:e.tokens.output,reasoning:e.tokens.reasoning,cache:e.tokens.cache},n):0}function Jv(e,t){let n=0;for(let r of e){if(r.info?.role!=="assistant")continue;let s=r.info,{providerID:o,modelID:l}=Up(s),p=0,d=!1;for(let f of r.parts)f.type==="step-finish"&&(d=!0,p+=Op(f,o,l,t));d||(p+=Fp(s,t)),n+=p}return n*qp}function Xv(e){return e===0?"$0.00":e<.001?`$${e.toFixed(4)}`:e<.01?`$${e.toFixed(3)}`:`$${e.toFixed(2)}`}function Qv(e){return e<1e3?String(e):e<1e4?`${(e/1e3).toFixed(1)}k`:`${Math.round(e/1e3)}k`}function Yv(e){if(!e||e.type!=="retry")return;let t=e,n=te(t.message);return{attempt:t.attempt,message:n.length>60?`${n.slice(0,60)}...`:n,next:t.next,details:ie(t.message)}}function Zv(e){if(!(!e||e.type!=="retry"))return te(e.message)}function eA(e){return(e.info.summary?.diffs?.length??0)>0}var _f=4e3;function st(e,t=_f){return e.length>t?`${e.slice(0,t)}
73
+ \u2026`:e}function Lp(e){if(e!==void 0)try{return st(JSON.stringify(e,null,2))}catch{return}}function G(...e){for(let t of e)if(typeof t=="string"&&t.length>0)return t}function Ue(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function Pf(e){let t=G(e.input?.query)??"";if(e.status==="error")return{kind:"web-search",query:t,error:e.error??"Search failed"};let n=Ue(e.outputParsed);if(!n)return{kind:"web-search",query:t};let s=(Array.isArray(n.results)?n.results:Array.isArray(n.images)?n.images:[]).slice(0,50).map(o=>{let l=Ue(o)??{};return{title:G(l.title)??"",url:G(l.url,l.link)??"",snippet:G(l.snippet,l.description,l.source)}});return{kind:"web-search",query:G(n.query)??t,results:s.length>0?s:void 0,answer:G(n.answer)}}var kf=/<exit_code>\s*(-?\d+)\s*<\/exit_code>/;function Bp(e){let t=e.match(kf);return t?Number(t[1]):void 0}function wf(e,t,n){let r="",s=0;for(;;){let o=e.indexOf(t,s);if(o===-1)return r+e.slice(s);let l=e.indexOf(n,o+t.length);if(l===-1)return r+e.slice(s);r+=e.slice(s,o),s=l+n.length}}var Sf=["<system_info>","</system_info>","<exit_code>","</exit_code>","<stderr_note>","</stderr_note>"];function vf(e){let t=-1;for(let n of Sf){let r=e.indexOf(n);r!==-1&&(t===-1||r<t)&&(t=r)}return t===-1?e:e.slice(0,t)}var Af=/\x1B\[[\d;]*[A-Za-z]|\x1B\][^\x07]{0,512}\x07|\x1B[()#][A-Z0-9]|\x1B\[?[\d;]*[hl]|\x1B[>=<]|\x1B\[[?]?\d*[A-Z]|\x1B\[\d*[JKHG]|\x1B\[\d*;\d*[Hf]|\x1b\[[0-9;]*m/g;function Cf(e){return e.replace(Af,"")}function Rf(e){let t=G(e.input?.command)??"",n=e.output??"",r=Bp(n),o=Cf(vf(wf(n,"<bash_metadata>","</bash_metadata>"))).trim()||(e.status==="error"?e.error:void 0);return{kind:"shell",command:t,stdout:o||void 0,exitCode:r}}function As(e){return G(e.input?.filePath,e.input?.file_path,e.input?.path)??""}function Tf(e){let t=e.status==="error"?e.error:e.output&&st(e.output)||void 0;return{kind:"file-read",path:As(e),preview:t}}function If(e){let t=G(e.input?.content),n=e.status==="error"?e.error:st(t??e.output??"")||void 0;return{kind:"file-write",path:As(e),preview:n}}var Ef=256*1024;function jf(e,t){if(e.length+t.length>Ef)return;let n=e.split(`
74
+ `),r=t.split(`
75
+ `),s=0;for(;s<n.length&&s<r.length&&n[s]===r[s];)s++;let o=n.length,l=r.length;for(;o>s&&l>s&&n[o-1]===r[l-1];)o--,l--;let p=[];for(let d=0;d<s;d++)p.push({type:"unchanged",text:n[d]});for(let d=s;d<o;d++)p.push({type:"removed",text:n[d]});for(let d=s;d<l;d++)p.push({type:"added",text:r[d]});for(let d=o;d<n.length;d++)p.push({type:"unchanged",text:n[d]});return p}function $f(e){let t=G(e.input?.oldString),n=G(e.input?.newString),r=t!==void 0&&n!==void 0?jf(t,n):void 0;return{kind:"file-edit",path:As(e),diff:r}}var Np=/^Found\s+(\d+)\s+match/i,Mf=/^(\/[^:]+?):\s*/,Gp=/Line\s+(\d+):/g;function qf(e){let t=e.trim(),n=t.match(Np),r=n?t.slice(n[0].length).trim():t;if(!r)return[];let s=[];for(let o of r.split(/\n\n+/)){let l=o.trim();if(!l)continue;let p=l.match(Mf);if(!p)continue;let d=p[1],f=l.slice(p[0].length),m=[],h;for(Gp.lastIndex=0;(h=Gp.exec(f))!==null;)m.push({line:Number(h[1]),contentStart:h.index+h[0].length,headerStart:h.index});for(let x=0;x<m.length;x++){let P=x+1<m.length?m[x+1].headerStart:f.length,C=f.slice(m[x].contentStart,P).trim();s.push({path:d,line:m[x].line,content:C.endsWith(";")?C.slice(0,-1):C})}}return s}function Df(e){return e.trim().split(`
76
+ `).map(t=>t.trim()).filter(t=>t.startsWith("/")||t.startsWith("./")||t.startsWith("~")).map(t=>({path:t}))}function Of(e){let t=G(e.input?.pattern,e.input?.query)??"";if(e.status==="error"||!e.output)return{kind:"search",pattern:t};let n=Np.test(e.output.trim())?qf(e.output):Df(e.output);return{kind:"search",pattern:t,matches:n.length>0?n.slice(0,200):void 0}}function Uf(e){let t=G(e.input?.description,e.input?.title,e.input?.prompt)??e.title,n=G(e.input?.subagent_type,e.input?.agent);return{kind:"task",description:t,agent:n}}function vs(e){let t=Ue(e)??{};return{content:G(t.content)??"",status:G(t.status)??"pending",priority:G(t.priority)}}function Ff(e){let t=e.input?.todos;if(Array.isArray(t))return{kind:"todo",items:t.map(vs)};if(Array.isArray(e.outputParsed))return{kind:"todo",items:e.outputParsed.map(vs)};let n=Ue(e.outputParsed);return n&&Array.isArray(n.todos)?{kind:"todo",items:n.todos.map(vs)}:{kind:"todo",items:[]}}function Lf(e){return{kind:"question",questions:(Array.isArray(e.input?.questions)?e.input.questions:[]).map(r=>{let s=Ue(r)??{},l=(Array.isArray(s.options)?s.options:[]).flatMap(p=>{let d=Ue(p),f=d&&G(d.label);return f?[{label:f,description:d?G(d.description):void 0}]:[]});return{question:G(s.question)??"",header:G(s.header),options:l}})}}function Gf(e){let n=e.input&&Object.keys(e.input).length>0?Lp(e.input):void 0,r;return e.outputParsed!==void 0?r=typeof e.outputParsed=="string"?st(e.outputParsed):Lp(e.outputParsed):e.outputText!==void 0?r=st(e.outputText):r=e.error,{kind:"generic",label:e.title,inputPretty:n,outputPretty:r}}function Bf(e){switch(Kt(e.name)){case"web_search":case"websearch":case"image_search":return Pf(e);case"bash":return Rf(e);case"read":return Tf(e);case"write":return If(e);case"edit":case"morph_edit":return $f(e);case"grep":case"glob":return Of(e);case"task":return Uf(e);case"todowrite":return Ff(e);case"question":case"ask":return Lf(e);default:return Gf(e)}}var Nf=new Set(["AbortError","MessageAbortedError"]),Kf=["operation was aborted","aborted by user","interrupted by user","cancelled by user","canceled by user","request was cancelled","request was canceled","aborterror"],Hf=["unreachable","upstream","econnreset","econnrefused","socket hang up","network","fetch failed","timed out","timeout","gateway","502","503","504"];function Kp(e){let t=e.toLowerCase();return Hf.some(n=>t.includes(n))?!1:Kf.some(n=>t.includes(n))}function Wf(e){let t=e.data,n=t&&typeof t=="object"?t.message:void 0;return typeof n=="string"?n:typeof e.message=="string"?e.message:void 0}function Hp(e){if(typeof e=="string")return Kp(e);if(!e||typeof e!="object")return!1;let t=e,n=t.name;if(typeof n=="string"&&Nf.has(n))return!0;let r=Wf(t);return typeof r=="string"?Kp(r):!1}var zf=["user","runtime-disposed","orphan-finalized","wake"],sA=["orphan-finalized","wake"];function iA(e){if(!e||typeof e!="object")return;let t=e.data;if(!t||typeof t!="object")return;let n=t.reason;if(!(typeof n!="string"||!n))return zf.includes(n)?n:void 0}function Ht(e){try{return typeof process<"u"?process.env?.[e]:void 0}catch{return}}function Vf(e,t){if(e==null)return t;let n=e.trim().toLowerCase();return["1","true","yes","y","on"].includes(n)?!0:["0","false","no","n","off"].includes(n)?!1:t}function uA(e){if(e==null)return;let t=e.trim().toLowerCase();if(["1","true","yes","y","on"].includes(t))return!0;if(["0","false","no","n","off"].includes(t))return!1}function Cs(e,t,n){return e!==void 0?e:Vf(Ht(t),n)}var pA={get disableMobileAdvertising(){return Cs($().featureFlags?.disableMobileAdvertising,"NEXT_PUBLIC_DISABLE_MOBILE_ADVERTISING",!1)},get enableDinoGame(){return Cs($().featureFlags?.enableDinoGame,"NEXT_PUBLIC_ENABLE_DINO_GAME",!1)},get enableProjects(){return Cs($().featureFlags?.enableProjects,"NEXT_PUBLIC_ENABLE_PROJECTS",!1)},get enableAutoModel(){return!1}};var Wt="kortix-active-instance",Jf=["/dashboard","/agents","/p","/workspace","/settings","/browser","/desktop","/services","/sessions","/terminal","/files","/scheduled-tasks","/commands","/tools","/configuration","/changelog","/legacy","/credits-explained"];function Xf(e){return Jf.some(t=>e===t||e.startsWith(`${t}/`))}function it(e){let t=e.match(/^\/instances\/([^/]+)(?:\/(.*))?$/);if(!t)return null;let n=decodeURIComponent(t[1]),r=t[2]??"";return{instanceId:n,innerPath:r?`/${r}`:""}}function gA(e){let t=it(e);return!!t&&t.innerPath===""}function mA(e){let t=it(e);return!t||!t.innerPath?e:t.innerPath}function Qf(e,t){if(!e)return t;if(t.startsWith("/")||(t=`/${t}`),t.startsWith("/instances/")){let n=it(t);return n?`/instances/${encodeURIComponent(e)}${n.innerPath}`:t}return Xf(t)?`/instances/${encodeURIComponent(e)}${t}`:t}function Yf(e){return e?it(e)?.instanceId??null:null}function fA(){return typeof window>"u"?null:Yf(window.location.pathname)||Zf()}function Zf(){if(typeof document>"u")return null;let e=document.cookie.match(new RegExp(`(?:^|; )${Wt}=([^;]+)`));return e?decodeURIComponent(e[1]):null}function yA(e){if(typeof document>"u")return;let t=n=>{document.cookie=n};if(typeof window<"u"&&window.location.pathname.startsWith("/projects")){t(`${Wt}=; Max-Age=0; Path=/; SameSite=Lax`);return}if(!e){t(`${Wt}=; Max-Age=0; Path=/; SameSite=Lax`);return}t(`${Wt}=${encodeURIComponent(e)}; Path=/; SameSite=Lax`)}function hA(e,t){return t?Qf(t,e):e}function bA(e){let t=it(e);return t?t.innerPath||"/dashboard":e}function Rs(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;if(e&&typeof e=="object")try{return JSON.stringify(e)}catch{return String(e)}return String(e??"")}function ey(e){let t=Rs(e).trim();if(!t)return null;let n=[t,t.replace(/^Failed to perform action:\s*/i,"").trim()],r=t.indexOf("{");r>=0&&n.push(t.slice(r));for(let s of n)if(s)try{return JSON.parse(s)}catch{}return null}function Wp(e){let t=ey(e);if(!t||typeof t!="object")return null;let n=t;return n.name==="ConfigInvalidError"?n:null}function _A(e){return Wp(e)!==null}var ty=[/sandbox not ready/i,/sandbox is not (?:ready|running)/i,/opencode (?:session )?(?:is )?not ready/i,/\bsandbox_not_ready\b/,/\bsandbox_lifecycle_unavailable\b/];function Vt(e){let t=Rs(e);return t?ty.some(n=>n.test(t)):!1}var zt=class extends Error{constructor(t){let n=t?.trim();super(n&&Vt(n)?n:n?`sandbox not ready: ${n}`:"sandbox not ready"),this.name="SandboxNotReadyError"}};function ny(e){let t=Wp(e);if(t){let s=(t.data?.path??"OpenCode config").replace(/^\/workspace\//,""),o=t.data?.issues?.[0]?.message,l=t.data?.issues?.[0]?.path?.join("."),p=l?.startsWith("permission")?"Remove the invalid permission frontmatter entry or replace it with valid OpenCode permission config.":"Fix the invalid config entry, then restart this session.";return{title:"OpenCode config is invalid",message:`${s} is preventing OpenCode from loading. ${p}`,detail:o?`${l?`${l}: `:""}${o}`:void 0}}let n=Rs(e);return Vt(n)?{title:"Session is waking up",message:"This session slept to save compute. Your conversation is safe \u2014 sending a message wakes it back up."}:{title:"OpenCode failed to load",message:n||"The sandbox is running, but OpenCode returned an error."}}function Y(){let e=Ht("BACKEND_URL")||$().backendUrl;return e||"http://localhost:8008/v1"}function ot(e){if(typeof e=="string"){let t=e.trim();return t.length>0?t:void 0}if(Array.isArray(e)){for(let t of e){let n=ot(t);if(n)return n}return}if(e&&typeof e=="object"){let t=e;return ot(t.sandboxId??t.id??t.slug??Object.values(t)[0])}}var zp=["http://localhost:8008/v1","http://127.0.0.1:8008/v1"];function Vp(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return`${e.slice(0,t)}/platform/local-bridge/status`}function ry(e){return e==="running"||e==="active"?"active":e==="queued"||e==="branching"||e==="provisioning"?"provisioning":e==="failed"||e==="error"?"error":e==="stopped"||e==="completed"||e==="archived"?"stopped":e||"unknown"}function Ts(e,t,n){let r=n?.external_id||t.sandbox_url?.match(/\/p\/([^/]+)\//)?.[1]||t.sandbox_id;return{sandbox_id:n?.sandbox_id||t.sandbox_id||t.session_id,external_id:r,name:t.name||`${e.name} session`,provider:n?.provider||t.sandbox_provider||"daytona",base_url:n?.base_url||t.sandbox_url||(n?.external_id?`${Y()}/p/${n.external_id}/${pe.KORTIX_MASTER}`:""),status:ry(n?.status||t.status),metadata:{...t.metadata??{},project_id:e.project_id,session_id:t.session_id,project_name:e.name,runtime_status:n?.status,error:t.error},created_at:n?.created_at||t.created_at,updated_at:n?.updated_at||t.updated_at}}async function Is(){let e=await Me(),t=[];for(let n of e){let r=await Ye(n.project_id).catch(()=>[]);for(let s of r)t.push({project:n,session:s,runtime:null,sandbox:Ts(n,s,null)})}return t.sort((n,r)=>{let s={active:0,provisioning:1,stopped:2,error:3},o=(s[n.sandbox.status]??99)-(s[r.sandbox.status]??99);return o!==0?o:Date.parse(r.sandbox.updated_at)-Date.parse(n.sandbox.updated_at)})}async function ke(e){let t=await Is();return e?t.find(n=>n.sandbox.sandbox_id===e||n.sandbox.external_id===e||n.session.session_id===e||n.runtime?.external_id===e)??null:t[0]??null}async function Jt(e,t={}){let n={"Content-Type":"application/json",...t.headers},r=t.signal??AbortSignal.timeout(3e4),s=await M(`${Y()}${e}`,{...t,headers:n,signal:r}),o=await s.text().catch(()=>{}),l;if(o)try{l=JSON.parse(o)}catch{}if(!s.ok){let p=l?.error||l?.message||l?.detail||o||`Platform API error ${s.status}`,d=new A(p,{status:s.status,code:l?.code||l?.error_code||String(s.status),details:l??(o?{rawText:o}:void 0),response:s,endpoint:e});throw s.status===402&&(d=Re(Object.assign(d,{response:s,status:s.status,data:l}))),d}return l}function Jp(e){if(!e.external_id){if(e.base_url)return e.base_url;throw new Error(`Cannot build sandbox URL: missing external_id for ${e.provider} sandbox "${e.sandbox_id}"`)}return`${Y()}/p/${e.external_id}/${pe.KORTIX_MASTER}`}function EA(e,t){return e.external_id?`${Y()}/p/${e.external_id}/${t}`:null}async function OA(){let e=await i.get("/setup/sandbox-providers");if(e.error)throw e.error;return e.data}async function sy(e){let t=await ke();if(t)return{sandbox:t.sandbox,created:!1};let r=(await Me())[0];if(!r)throw new Error("Create a project before starting a sandbox");let s=await Ze(r.project_id,{...e?.provider?{provider:e.provider}:{}}),o=(await qe(r.project_id,s.session_id))?.sandbox??null;return{sandbox:Ts(r,s,o),created:!0}}async function UA(){return(await ke().catch(()=>null))?.sandbox??null}async function FA(e){return{sandbox:(await sy(e)).sandbox}}async function LA(e){let t=ot(e);return t?(await ke(t).catch(()=>null))?.sandbox??null:null}async function GA(e,t){throw await ke(e)?new Error("Renaming project-session sandboxes is not exposed by the current API"):new Error("Project session sandbox not found")}async function BA(e){let t=ot(e);return(await Is().catch(()=>[])).map(r=>r.sandbox).filter(r=>!t||r.sandbox_id===t||r.external_id===t)}async function NA(){if(typeof window>"u")return null;let e=Y(),t=Array.from(new Set([e,...zp]));for(let n of t)try{let r=await fetch(Vp(n),{method:"GET",signal:AbortSignal.timeout(1500),headers:{Accept:"application/json"}});if(!r.ok)continue;let s=await r.json();if(!s.success||s.status!=="ready"||!s.data?.sandbox_id)continue;return s.data}catch{continue}return null}async function KA(e){if(!e)throw new Error("No sandbox selected for workload restart");let t=await ke(e);if(!t)throw new Error("Project session sandbox not found");await jt(t.project.project_id,t.session.session_id)}async function HA(e){if(!e)throw new Error("No sandbox selected to stop");let t=await ke(e);if(!t)throw new Error("Project session sandbox not found");await $t(t.project.project_id,t.session.session_id)}async function WA(e){throw new Error("Cancellation is not exposed for project-session sandboxes")}async function zA(e){throw new Error("Reactivation is not exposed for project-session sandboxes")}async function Es(e,t,n){let r=Jp(e),s=await M(`${ce(r)}${t}`,{signal:AbortSignal.timeout(8e3),headers:{"Content-Type":"application/json"},...n});if(!s.ok){let o=await s.text().catch(()=>"");throw new Error(o||`Request failed (${s.status})`)}return await s.json()}async function YA(e,t){return Es(e,`/kortix/projects/${encodeURIComponent(t)}/members`,{method:"GET"})}async function ZA(e,t,n,r="member"){await Es(e,`/kortix/projects/${encodeURIComponent(t)}/members`,{method:"POST",body:JSON.stringify({user_id:n,role:r})})}async function eC(e,t,n){await Es(e,`/kortix/projects/${encodeURIComponent(t)}/members/${encodeURIComponent(n)}`,{method:"DELETE"})}async function rC(e){let t=await Jt(`/platform/invites/${encodeURIComponent(e)}`,{method:"GET"});if(!t.success||!t.data)throw new Error(t.error||"Invite not found");return t.data}async function sC(e){let t=await Jt(`/platform/invites/${encodeURIComponent(e)}/accept`,{method:"POST"});if(!t.success||!t.data)throw new Error(t.error||"Failed to accept invite");return t.data}async function iC(e){let t=await Jt(`/platform/invites/${encodeURIComponent(e)}/decline`,{method:"POST"});if(!t.success)throw new Error(t.error||"Failed to decline invite")}async function aC(e){throw new Error("Backups are not exposed for project-session sandboxes")}async function cC(e,t){throw new Error("Backups are not exposed for project-session sandboxes")}async function lC(e,t){throw new Error("Backups are not exposed for project-session sandboxes")}async function uC(e,t){throw new Error("Backups are not exposed for project-session sandboxes")}async function dC(e){throw new Error("SSH setup is not exposed for project-session sandboxes")}async function gC(e){throw new Error("SSH connection details are not exposed for project-session sandboxes")}var iy=["pulling","patching","stopping","removing","recreating","restarting","verifying","starting","health_check"];function yC(e){return iy.includes(e)}async function hC(e){return{phase:"idle",progress:0,message:"Sandbox image updates are managed by project-session provisioning.",targetVersion:null,previousVersion:null,currentVersion:e?.version??null,error:null,startedAt:null,updatedAt:null}}async function bC(e){let t=e?`?channel=${e}`:"",n=await fetch(`${Y()}/platform/sandbox/version/latest${t}`,{headers:{Accept:"application/json"}});if(!n.ok)throw new Error(`Version check failed: ${n.status}`);let r=await n.json();try{let s=await oy(e||"stable");r.changelog=s.find(o=>o.version===r.version)??s[0]??null}catch{r.changelog=null}return r}async function oy(e){let t=e?`?channel=${e}`:"",n=await fetch(`${Y()}/platform/sandbox/version/changelog${t}`,{headers:{Accept:"application/json"}});if(!n.ok)throw new Error(`Changelog fetch failed: ${n.status}`);return(await n.json()).changelog}async function xC(){let e=await fetch(`${Y()}/platform/sandbox/version/all`,{headers:{Accept:"application/json"}});if(!e.ok)throw new Error(`All versions fetch failed: ${e.status}`);return e.json()}async function _C(e,t){throw new Error("Sandbox image updates are managed by project-session provisioning")}async function PC(e){}async function kC(e){}async function AC(e){return{serverTypes:[],location:e||"hel1"}}async function CC(e){throw new Error("Retired instance provisioning is unavailable. Create a project session with daytona, platinum, or e2b.")}async function RC(e){let t=await i.delete(`/platform/sandbox?sandbox_id=${e}`);if(t.error)throw t.error;return t.data}async function TC(e,t){await i.post("/platform/sandbox/mark-error",{sandbox_id:e,error_message:t},{showErrors:!1,timeout:1e4})}async function IC(){let e=await i.post("/platform/sandbox/claim-computer",{},{timeout:6e4});if(e.error)throw e.error;return e.data}async function EC(e){let t=await i.get(`/platform/sandbox/${e}/status`,{showErrors:!1,timeout:1e4});return t.success?t.data??null:null}function jC(e,t){return`${Y()}/platform/sandbox/${e}/provision-stream?token=${encodeURIComponent(t)}`}var me=class extends Error{constructor(n,r,s){super(n);this.status=r;this.body=s;this.name="HostBoundaryError"}status;body};function Xt(e){let t=e;for(;t.endsWith("/");)t=t.slice(0,-1);return/\/v1$/.test(t)?t:`${t}/v1`}function js(e,t){let n=new Headers(e.headers);return n.set("Accept","application/json"),t&&n.set("Content-Type","application/json"),e.accessToken&&n.set("Authorization",`Bearer ${e.accessToken}`),n}async function Qt(e){let t=await e.text().catch(()=>"");if(!t)return null;try{return JSON.parse(t)}catch{return t}}function Yt(e,t){if(t&&typeof t=="object"){let n=t;for(let r of["error_description","error","message"])if(typeof n[r]=="string"&&n[r])return n[r]}return typeof t=="string"&&t?t:e.statusText||`HTTP ${e.status}`}async function B(e,t,n){let r=n?.body!==void 0,s=await fetch(`${Xt(t.backendUrl)}${e}`,{method:n?.method??"GET",headers:js(t,r),...r?{body:JSON.stringify(n.body)}:{},...t.signal?{signal:t.signal}:{},...t.cache?{cache:t.cache}:{},...t.next?{next:t.next}:{}}),o=await Qt(s);if(!s.ok)throw new me(Yt(s,o),s.status,o);return o}function ay(e){let t=new URLSearchParams;e?.query&&t.set("query",e.query),e?.type&&t.set("type",e.type),e?.source&&t.set("source",e.source),e?.limit!==void 0&&t.set("limit",String(e.limit)),e?.offset!==void 0&&t.set("offset",String(e.offset));let n=t.toString();return n?`?${n}`:""}function MC(e,t){return B(`/marketplace/items${ay(t)}`,e)}function qC(e){return B("/marketplace/marketplaces",e)}function DC(e,t){return B(`/marketplace/items/${encodeURIComponent(e)}`,t)}function OC(e,t,n){return B(`/marketplace/items/${encodeURIComponent(e)}/file?path=${encodeURIComponent(t)}`,n)}function UC(e,t){return B("/access/check-email",t,{method:"POST",body:{email:e}})}function FC(e,t){return B("/access/request-access",t,{method:"POST",body:e})}function LC(e){return B("/auth/logout",e,{method:"POST",body:{}})}function GC(e,t){return B(`/oauth/authorize/consent/${encodeURIComponent(e)}`,t)}function BC(e,t){return B("/oauth/authorize/consent",t,{method:"POST",body:{request_id:e.requestId,approved:e.approved}})}function NC(e,t){return B(`/setup-links/connectors/${encodeURIComponent(e)}`,t)}function KC(e,t){return B(`/setup-links/connectors/${encodeURIComponent(e)}/start`,t,{method:"POST",body:{}})}function HC(e,t){return B(`/setup-links/connectors/${encodeURIComponent(e)}/finalize`,t,{method:"POST",body:{}})}function WC(e,t){return B(`/setup-links/secret/${encodeURIComponent(e)}`,t)}function zC(e,t,n){return B(`/setup-links/secret/${encodeURIComponent(e)}`,n,{method:"POST",body:{values:t}})}function VC(e,t){return B(`/p/public-share/${encodeURIComponent(e)}`,t)}function JC(e,t,n){return B(`/projects/${encodeURIComponent(e)}/sessions/${encodeURIComponent(t)}/start`,n,{method:"POST",body:{}})}function XC(e){return B("/system/maintenance",e)}function QC(e,t){return B("/system/maintenance",t,{method:"PUT",body:e})}function YC(e){return B("/user-roles",e)}function ZC(e,t){return B("/system/demo-request",t,{method:"POST",body:e})}async function eR(e,t,n){let r=new URLSearchParams({format:t.format});t.action&&r.set("action",t.action),t.actor&&r.set("actor",t.actor),t.project_id&&r.set("project_id",t.project_id),t.session_id&&r.set("session_id",t.session_id),t.actor_type&&r.set("actor_type",t.actor_type),t.source&&r.set("source",t.source),t.phase&&r.set("phase",t.phase),t.outcome&&r.set("outcome",t.outcome),t.request_id&&r.set("request_id",t.request_id),t.correlation_id&&r.set("correlation_id",t.correlation_id),t.resource_type&&r.set("resource_type",t.resource_type),t.since&&r.set("since",t.since),t.until&&r.set("until",t.until),t.q&&r.set("q",t.q),t.cursor&&r.set("cursor",t.cursor),t.limit!=null&&r.set("limit",String(t.limit));let s=await fetch(`${Xt(n.backendUrl)}/accounts/${encodeURIComponent(e)}/audit/export?${r}`,{headers:js(n,!1),...n.signal?{signal:n.signal}:{}});if(!s.ok){let o=await Qt(s);throw new me(Yt(s,o),s.status,o)}return{blob:await s.blob(),filename:s.headers.get("content-disposition")?.match(/filename="([^"]+)"/)?.[1]??null,capped:s.headers.get("x-audit-capped")==="true",rowCount:s.headers.get("x-audit-row-count"),complete:s.headers.get("x-audit-complete")!=="false",nextCursor:s.headers.get("x-audit-next-cursor")||null}}async function tR(e,t){let n=await fetch(`${Xt(t.backendUrl)}/admin/stress-test/run`,{method:"POST",headers:js(t,!0),body:JSON.stringify(e),...t.signal?{signal:t.signal}:{}});if(!n.ok){let r=await Qt(n);throw new me(Yt(n,r),n.status,r)}if(!n.body)throw new me("No response body",n.status,null);return n.body}var cy=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function ly(e,t){return cy.test(t)?new URL(`templates/public/${t.toLowerCase()}`,`${Xt(e)}/`):null}async function nR(e,t,n){let r=ly(e,t);if(!r)throw new me("Invalid shareId parameter",400,null);let s=await fetch(r,{signal:n}),o=await Qt(s);if(!s.ok)throw new me(Yt(s,o),s.status,o);return o}async function iR(){let e=await i.get("/platform/github-app/status",{showErrors:!1});if(e.error)throw e.error;if(!e.data)throw new Error("GitHub App status request failed");return e.data}async function oR(e={}){let t=await i.post("/platform/github-app/manifest-start",e,{showErrors:!1});if(t.error)throw t.error;if(!t.data)throw new Error("GitHub App manifest-start request failed");return t.data}async function aR(e){let t=await i.post("/platform/github-app/app",{app_id:e.appId,private_key:e.privateKey,installation_id:e.installationId,slug:e.slug,client_id:e.clientId,client_secret:e.clientSecret},{showErrors:!1});if(t.error)throw t.error;if(!t.data)throw new Error("GitHub App configuration request failed");return t.data}async function cR(e){let t=await i.post("/platform/github-app/pat",e,{showErrors:!1});if(t.error)throw t.error;if(!t.data)throw new Error("GitHub token configuration request failed");return t.data}async function lR(){let e=await i.delete("/platform/github-app",{showErrors:!1});if(e.error)throw e.error;if(!e.data)throw new Error("GitHub App disconnect request failed");return e.data}var uy="/kortix/part/";function py(e){return typeof e=="string"&&e.startsWith(uy)}async function gR(e){if(!py(e))throw new Error(`not an attachment part reference: ${e}`);let t=re();if(!t)throw new Error("runtime url not bound");let n=await M(`${t}${e}`);if(!n.ok)throw new Error(`attachment part fetch failed: ${n.status}`);return n.blob()}function Xp(e){try{let t=new URL(e);if(/^\/proxy\/\d+(?:\/|$)/.test(t.pathname))return`${t.origin}/v1/p/auth`;let n=t.pathname.indexOf("/p/");return n!==-1?`${t.origin}${t.pathname.slice(0,n)}/p/auth`:`${t.origin}/v1/p/auth`}catch{return null}}function dy(e,t){try{let n=new URL(e),r=n.pathname;if(!(/^\/v1\/p\/[^/]+\/\d+(?:\/|$)/.test(r)||/^\/proxy\/\d+(?:\/|$)/.test(r)))return!1;let o=new Set;if(t)try{o.add(new URL(t).origin)}catch{}return typeof window<"u"&&o.add(window.location.origin),o.size===0||o.has(n.origin)}catch{return!1}}function Qp(e,t){return dy(e,t)?(t?Xp(t):null)??Xp(e):null}function Yp(e){try{let{hostname:t}=new URL(e);return/^p\d+-[^.]+\./.test(t)||/^(?:dev|staging|prod|preview)-p\d+-[a-z0-9-]+\./i.test(t)}catch{return!1}}function Zp(e,t){try{let n=new URL(e);return n.searchParams.set("token",t),n.toString()}catch{return e}}async function gy(e,t={}){let n=Qp(e,t.serverUrl);if(!n)return!1;let r=await Be();if(!r)return!1;try{return(await fetch(n,{method:"POST",credentials:"include",headers:{Authorization:`Bearer ${r}`,"Content-Type":"application/json"}})).ok}catch{return!1}}async function bR(e,t={}){if(Yp(e)){let n=await Be();return n?Zp(e,n):e}return await gy(e,t),e}var _R=3e3;function my(e){return!Number.isFinite(e)||e<100||e>599?"unknown":e===502||e===503||e===504?"unreachable":e===401||e===403?"unknown":"reachable"}async function PR(e,t){if(!e||t?.signal?.aborted)return"unknown";let n=new AbortController,r=()=>n.abort();t?.signal?.addEventListener("abort",r);let s=setTimeout(r,t?.timeoutMs??3e3);try{let o=await fetch(e,{method:"HEAD",credentials:"include",cache:"no-store",signal:n.signal});return my(o.status)}catch{return"unknown"}finally{clearTimeout(s),t?.signal?.removeEventListener("abort",r)}}function $s(e){let t=e;for(;t.endsWith("/");)t=t.slice(0,-1);return t}function wR(e,t){return`${$s(e)}/presentation-templates/${encodeURIComponent(t)}/pdf#toolbar=0&navpanes=0&scrollbar=0&view=FitH`}function SR(e,t){return`${$s(e)}/presentation-templates/${encodeURIComponent(t)}/image.png`}function fy(e,t){return`${$s(e)}/presentation/convert-to-${t}`}async function vR(e,t,n,r){let s=fy(t,e),o=r?.pollIntervalMs??2500,l=r?.timeoutMs??4*6e4,p=Date.now(),d=!1;for(;;){let f=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({presentation_path:n,download:!0}),...r?.signal?{signal:r.signal}:{}}),m=f.headers.get("content-type")||"";if(f.ok&&(m.includes("pdf")||m.includes("presentation")||m.includes("octet-stream"))){let C=await f.blob();if(C.size===0)throw new Error("Downloaded file is empty");return C}if(f.status===202){if(d||(d=!0,r?.onGenerating?.()),Date.now()-p>l)throw new Error(`Timed out waiting for the ${e.toUpperCase()} to generate`);await new Promise((C,I)=>{let E=setTimeout(C,o);r?.signal?.addEventListener("abort",()=>{clearTimeout(E),I(r.signal?.reason??new DOMException("Aborted","AbortError"))},{once:!0})});continue}let x=await f.text().catch(()=>""),P=f.statusText;try{let C=JSON.parse(x);P=String(C.error||C.detail||C.message||P)}catch{x&&(P=x)}throw new Error(`Failed to download ${e.toUpperCase()}: ${P} (HTTP ${f.status})`)}}function CR(e){return e.activityFresh||e.runtimeReady?"live":e.unreachable||e.stalled?"unreachable":e.sandbox==="stopped"||e.sandbox==="archived"||e.sandbox==="provisioning"||e.sandbox==="queued"||e.sandbox==="branching"?"waking":e.sandbox==="completed"?"unknown":e.sandbox==="failed"?"unreachable":e.sandbox==="running"?"connecting":"unknown"}function RR(e){return e==="unreachable"}var IR=6e4,ER=45e3,jR=45e3,$R=1e4,MR=3e3,qR=15e3;function DR(e,t){return t?t.serverAtMs!=null&&e.serverAtMs!=null?e.serverAtMs>=t.serverAtMs:e.atMs>=t.atMs:!0}function OR(e){let t=0;for(let n of e)(n.state==="queued"||n.state==="delivering"||n.state==="waiting"&&n.reason!=="held")&&(t+=1);return t}function Ms(e){if(!e)return null;let t=Date.parse(e);return Number.isNaN(t)?null:t}function UR(e){let{optimistic:t,abort:n,inbox:r,server:s,stream:o,activity:l,nowMs:p}=e,d=!!t&&p-t.atMs<6e4,f=t?t.turnId===void 0?t.messageId:t.turnId:null,m=d?t.acceptedAtMs??Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY,h=d?t.atMs:Number.NEGATIVE_INFINITY,P=!!n&&p-n.atMs<15e3?n.settledAtMs??Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY,C=!!s&&p-s.atMs<=45e3,I=!!o&&p-o.atMs<=45e3,E=!!r&&p-r.atMs<=1e4,u=o&&o.type==="idle"&&o.origin!=="local"?o:null,c=!!l&&p-l.atMs<=45e3&&(!u||l.atMs>u.atMs),S=y=>{if(!u)return!1;let T=Ms(y.started_at);return!(T===null||T>=u.atMs)};if(c)return{state:"working",source:"stream",turnId:null,since:l.atMs,serverOpenTurnToken:s?.turns[0]?.turn_token??null};let R=s?.turns[0]?.turn_token??null,j=C?s.turns.find(y=>!S(y)):void 0,D=!!o&&!(o.type==="idle"&&o.origin==="local");if(j&&s.atMs>=P&&(!D||s.atMs>=o.atMs))return{state:"working",source:"server",turnId:j.message_id,since:Ms(j.started_at)??s.atMs,serverOpenTurnToken:R};if(E&&r.pending>0)return{state:"working",source:"server",turnId:d?f:null,since:r.atMs,serverOpenTurnToken:R};let q=C&&!j&&s.atMs>=m,X=I&&o.atMs>=h;if(q&&(!o||s.atMs>=o.atMs))return{state:"idle",source:"server",turnId:null,since:Ms(s.lastEnded?.ended_at)??s.atMs,serverOpenTurnToken:R};if(X)return{state:o.type==="idle"?"idle":"working",source:"stream",turnId:null,since:o.atMs,serverOpenTurnToken:R};if(d)return{state:"working",source:"optimistic",turnId:f,since:t.atMs,serverOpenTurnToken:R};let W=s&&o?s.atMs>=o.atMs?{source:"server",atMs:s.atMs}:{source:"stream",atMs:o.atMs}:s?{source:"server",atMs:s.atMs}:o?{source:"stream",atMs:o.atMs}:{source:"server",atMs:p};return{state:"idle",source:W.source,turnId:null,since:W.atMs,serverOpenTurnToken:R}}function FR(e){let{optimistic:t,abort:n,inbox:r,server:s,stream:o,activity:l,nowMs:p}=e,d=[null,t?t.atMs+6e4:null,n?n.atMs+15e3:null,r?r.atMs+1e4:null,s?s.atMs+45e3:null,o?o.atMs+45e3:null,l?l.atMs+45e3:null],f=null;for(let m of d)m===null||m<=p||(f===null||m<f)&&(f=m);return f}var GR=6e4;function BR(e){return e.serverCompactingAtMs!==null?!0:e.optimisticAtMs===null?!1:e.nowMs-e.optimisticAtMs<6e4}function NR(e){if(e.serverCompactingAtMs!==null||e.optimisticAtMs===null)return null;let t=e.optimisticAtMs+6e4;return t>e.nowMs?t:null}var yy=9e4;function KR(e){return e.serverCompactingAtMs===null?null:e.serverCompactingAtMs+yy}var WR=75e3,zR=2,VR=2e4;function ed(){return{status:"idle",dispatch:"none",fingerprint:null,lastProgressAtMs:null,lastDispatchAtMs:null,attempts:[],msSinceProgress:0,settled:!1}}function JR(e){return e.filter(t=>t!=null).join("|")}function hy(e,t){return e.length===0?"retry-start":e.filter(r=>r.step==="restart").length<t?"restart":null}function XR(e,t,n={}){let r=n.noProgressMs??75e3,s=n.maxRestarts??2,o=n.cooldownMs??2e4;if(t.runtimeReachable)return{...ed(),settled:!0};if(!t.waking)return{...e,dispatch:"none",fingerprint:null,lastProgressAtMs:null,msSinceProgress:0};if(e.settled)return{...ed(),settled:!0};let l=e.lastProgressAtMs,p=l===null,d=t.progress!==e.fingerprint,f=l===null||d?t.nowMs:l,m=Math.max(0,t.nowMs-f),h={...e,dispatch:"none",fingerprint:t.progress,lastProgressAtMs:f,msSinceProgress:m,status:e.attempts.length>0?"escalating":"waking"};if(e.status==="exhausted")return{...h,status:"exhausted"};let x=!p&&!d&&m>=r;if(!t.serverGaveUp&&!x||e.lastDispatchAtMs!==null&&t.nowMs-e.lastDispatchAtMs<o)return h;let P=hy(e.attempts,s);return P?{...h,status:"escalating",dispatch:P,attempts:[...e.attempts,{step:P,atMs:t.nowMs}],lastDispatchAtMs:t.nowMs,lastProgressAtMs:t.nowMs,msSinceProgress:0}:{...h,status:"exhausted"}}var by={"retry-start":"retrying",restart:"restarting"};function QR(e){if(e.status!=="escalating")return null;let t=e.attempts[e.attempts.length-1];return t?`Still waking \u2014 ${by[t.step]} the runtime (attempt ${e.attempts.length+1})`:null}function xy(e){return e===1?"once":e===2?"twice":`${e} times`}function YR(e){if(e.status!=="exhausted")return null;let t=e.attempts.filter(s=>s.step==="restart").length,n=e.attempts.some(s=>s.step==="retry-start");if(!n&&t===0)return null;let r=[];return n&&r.push("re-issuing the wake"),t>0&&r.push(`restarting the session ${xy(t)}`),`Tried: ${r.join(", then ")}.`}var _y=1e3,Py=15e3,td=100,ky=50,wy=10;function nd(e){let t=e.fetch??globalThis.fetch,n=e.baseUrl.replace(/\/$/,"");return async({limit:r,before:s},o)=>{let l=new URLSearchParams({limit:String(r)});s&&l.set("before",s);let p=await e.getToken?.(),d=await t(`${n}/session/${encodeURIComponent(e.sessionId)}/message?${l}`,{headers:p?{Authorization:`Bearer ${p}`}:void 0,...o?{signal:o}:{}});if(!d.ok)throw d.status===503?new zt(`session ${d.status}`):new Error(`Session synchronization failed: ${d.status}`);return{messages:await d.json(),nextCursor:d.headers.get("x-next-cursor")||void 0}}}function Sy(e){return Ay(nd(e))}function vy(e){return new qs({...e,loadPage:nd(e)})}async function Ay(e){let t=[],n=new Set,r;do{let l=await e({limit:td,...r?{before:r}:{}});if(t.push(l.messages),r=l.nextCursor,r&&n.has(r))throw new Error(`Session history cursor repeated: ${r}`);r&&n.add(r)}while(r);let s=[],o=new Set;for(let l=t.length-1;l>=0;l--)for(let p of t[l])o.has(p.info.id)||(o.add(p.info.id),s.push(p));return s}var Cy={now:Date.now,setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e)},qs=class{options;scheduler;livenessIntervalMs;verifyIntervalMs;lastTailReadAt;retryAttempt=0;tailRetryTimer;snapshot={freshness:"idle",hasOlder:!1,isLoadingOlder:!1};nextCursor;knownUserMessageIds=new Set;olderHistoryStarted=!1;tailRequest;olderRequest;livenessTimer;lastActivityAt;listeners=new Set;destroyed=!1;abortController=new AbortController;constructor(t){this.options=t,this.scheduler=t.scheduler??Cy,this.livenessIntervalMs=t.livenessIntervalMs??1e4,this.verifyIntervalMs=t.verifyIntervalMs??3e4,this.lastActivityAt=this.scheduler.now(),this.lastTailReadAt=this.scheduler.now()}getSnapshot=()=>this.snapshot;subscribe=t=>(this.listeners.add(t),()=>this.listeners.delete(t));start(){return this.snapshot.freshness==="fresh"?Promise.resolve():this.reconcile("initial")}reconcile(t="manual"){return this.destroyed?Promise.resolve():this.tailRequest?this.tailRequest:(this.update({freshness:this.snapshot.freshness==="idle"||this.snapshot.freshness==="loading"?"loading":"stale"}),this.tailRequest=this.loadTail(t).finally(()=>{this.tailRequest=void 0}),this.tailRequest)}loadOlder=()=>{if(this.destroyed||!this.nextCursor)return Promise.resolve();if(this.olderRequest)return this.olderRequest;let t=this.nextCursor;return this.update({isLoadingOlder:!0}),this.olderRequest=this.loadCompleteOlderTurn(t).then(n=>{this.destroyed||(this.rememberUserMessages(n.messages),this.options.hydrate(n.messages),this.olderHistoryStarted=!0,this.setCursor(n.nextCursor))}).finally(()=>{this.olderRequest=void 0,this.update({isLoadingOlder:!1})}),this.olderRequest};noteActivity(){this.lastActivityAt=this.scheduler.now(),this.snapshot.freshness!=="fresh"&&this.update({freshness:"fresh"})}setBusy(t){if(!t){let n=this.livenessTimer!==void 0;this.stopLivenessTimer(),n&&!this.destroyed&&this.reconcile("turn-end");return}this.livenessTimer===void 0&&(this.lastActivityAt=this.scheduler.now(),this.livenessTimer=this.scheduler.setInterval(()=>{this.checkLiveness()},this.livenessIntervalMs))}destroy(){this.destroyed=!0,this.stopLivenessTimer(),this.tailRetryTimer!==void 0&&(this.cancelTimer(this.tailRetryTimer),this.tailRetryTimer=void 0),this.abortController.abort(),this.listeners.clear()}async loadTail(t){this.lastTailReadAt=this.scheduler.now();try{let n=await this.loadPage("tail",t);if(this.destroyed)return;this.rememberUserMessages(n.messages),this.options.hydrate(n.messages),this.olderHistoryStarted||this.setCursor(n.nextCursor),this.update({freshness:"fresh"}),this.options.markLoaded(),this.retryAttempt=0}catch(n){if(this.destroyed||Hp(n)||this.abortController.signal.aborted)return;this.update({freshness:Vt(n)?"loading":"error"}),this.scheduleTailRetry(t)}}scheduleTailRetry(t){if(this.destroyed||this.tailRetryTimer!==void 0)return;let n=Math.min(_y*2**this.retryAttempt,Py);this.retryAttempt+=1,this.tailRetryTimer=this.startTimer(()=>{this.tailRetryTimer=void 0,!this.destroyed&&this.reconcile(t)},n)}async loadPage(t,n,r){let s=this.scheduler.now();try{let o=await this.options.loadPage({limit:t==="tail"?ky:td,...r?{before:r}:{}},this.abortController.signal);return this.options.onTelemetry?.({operation:t,reason:n,durationMs:this.scheduler.now()-s,messageCount:o.messages.length,succeeded:!0}),o}catch(o){throw this.options.onTelemetry?.({operation:t,reason:n,durationMs:this.scheduler.now()-s,messageCount:0,succeeded:!1}),o}}async loadCompleteOlderTurn(t){let n=await this.loadPage("older","manual",t);return this.loadCompleteTurn(n,"older","manual",t,r=>{this.rememberUserMessages(r.messages),this.options.hydrate(r.messages),this.setCursor(r.nextCursor)})}async loadCompleteTurn(t,n,r,s,o){let l=[...t.messages],p=new Set(this.knownUserMessageIds),d=new Set(s?[s]:[]),f=t.nextCursor,m=0;for(let h of t.messages)h.info.role==="user"&&p.add(h.info.id);for(;f&&m<wy&&l.some(h=>h.info.role==="assistant"&&!!h.info.parentID&&!p.has(h.info.parentID));){if(d.has(f))throw new Error(`Session history cursor repeated: ${f}`);d.add(f);let h;try{h=await this.loadPage(n,r,f)}catch(x){throw o?.({messages:[...l],nextCursor:f}),x}if(this.destroyed)return{messages:l,nextCursor:f};m+=1,l.unshift(...h.messages);for(let x of h.messages)x.info.role==="user"&&p.add(x.info.id);f=h.nextCursor,o?.({messages:[...l],nextCursor:f})}return{messages:l,nextCursor:f}}rememberUserMessages(t){for(let n of t)n.info.role==="user"&&this.knownUserMessageIds.add(n.info.id)}async checkLiveness(){if(this.destroyed)return;let t=this.scheduler.now(),n=t-this.lastActivityAt>this.livenessIntervalMs,r=t-this.lastTailReadAt>=this.verifyIntervalMs;!n&&!r||(await this.raceDeadline(this.reconcile("poll"),this.livenessIntervalMs),this.lastActivityAt=this.scheduler.now())}raceDeadline(t,n){return new Promise(r=>{let s,o=!1,l=()=>{o||(o=!0,this.cancelTimer(s),r())};s=this.startTimer(l,n),t.then(l,l)})}setCursor(t){this.nextCursor=t,this.update({hasOlder:!!t})}stopLivenessTimer(){this.livenessTimer!==void 0&&(this.scheduler.clearInterval(this.livenessTimer),this.livenessTimer=void 0)}startTimer(t,n){return this.scheduler.setTimeout?this.scheduler.setTimeout(t,n):setTimeout(t,n)}cancelTimer(t){t!==void 0&&(this.scheduler.clearTimeout?this.scheduler.clearTimeout(t):clearTimeout(t))}update(t){let n={...this.snapshot,...t};if(!(n.freshness===this.snapshot.freshness&&n.hasOlder===this.snapshot.hasOlder&&n.isLoadingOlder===this.snapshot.isLoadingOlder)){this.snapshot=n;for(let r of this.listeners)r()}}};function Ry(e){let t=e;for(;t.endsWith("/");)t=t.slice(0,-1);return`${t}/tunnel/permission-requests/stream`}function Ty(e){let{url:t,token:n,method:r="GET",body:s,onEvent:o,onOpen:l,onError:p,signal:d}=e,f=new Map,m=null,h=!1;function x(u,b){o?.(u,b);let c=f.get(u);if(c)for(let S of c)try{S(b)}catch{}}async function P(){if(h)return;m=new AbortController;let u=d?AbortSignal.any([m.signal,d]):m.signal;try{let b={Accept:"text/event-stream",Authorization:`Bearer ${n}`};r!=="GET"&&s!==void 0&&(b["Content-Type"]="application/json");let c=await fetch(t,{method:r,headers:b,body:r!=="GET"&&s!==void 0?JSON.stringify(s):void 0,signal:u,credentials:"include"});if(!c.ok)throw new Error(`SSE connection failed: ${c.status} ${c.statusText}`);if(!c.body)throw new Error("SSE response has no body");l?.();let S=c.body.getReader(),w=new TextDecoder,R="",j="message",D="";for(;!h;){let{done:q,value:X}=await S.read();if(q)break;R+=w.decode(X,{stream:!0});let W=R.split(`
77
77
  `);R=W.pop()||"";for(let y of W)y===""?D&&(x(j,D.trimEnd()),j="message",D=""):y.startsWith("event: ")?j=y.slice(7).trim():y.startsWith("data: ")?D+=(D?`
78
78
  `:"")+y.slice(6):y.startsWith("data:")&&(D+=(D?`
79
- `:"")+y.slice(5))}}catch(b){if(h||b instanceof DOMException&&b.name==="AbortError")return;p?.(b instanceof Error?b:new Error(String(b)))}}function A(){h=!0,m?.abort(),m=null,f.clear()}function I(l,b){let c=f.get(l)??new Set;c.add(b),f.set(l,c)}function E(l,b){f.get(l)?.delete(b)}return{connect:P,close:A,addEventListener:I,removeEventListener:E}}function UR(t,e){return py({...e,url:uy(t)})}var dy="/_kortix/viewer";var Xt=new Map;function gy(){Xt.clear()}async function my(t,e){let n;try{n=await e(t,{credentials:"same-origin",headers:{accept:"application/json"}})}catch{return null}if(n.status===401||n.status===404||!n.ok)return null;let r=await n.json().catch(()=>null);return r&&typeof r.user_id=="string"?r:null}async function Yp(t={}){let e=t.path??dy,n=t.fetch??((o,u)=>fetch(o,u)),r=Xt.get(e);if(r&&!r.inflight&&r.expiresAt>Date.now())return r.session;if(r?.inflight)return r.inflight;let s=my(e,n).then(o=>{let u=o?.expires_at?Date.parse(o.expires_at):Number.NaN,p=Number.isFinite(u)?u-6e4:Date.now()+6e4;return Xt.set(e,{session:o,expiresAt:p}),o});return Xt.set(e,{session:r?.session??null,expiresAt:0,inflight:s}),s}function fy(t={}){return async()=>(await Yp(t))?.access_token??null}export{Tf as ABORT_REASONS,Fv as ABORT_REASONS_NOT_YET_EMITTED,Nt as ACTIVE_INSTANCE_COOKIE,Wf as ATTACHMENT_PART_REF_PREFIX,C as ApiError,Ce as AuthError,fe as BillingError,Ip as COST_MARKUP,kp as DEFAULT_TRANSCRIPT_OPTIONS,Gf as DESTRUCTIVE_PHASES,wr as FEATURE_DISABLED_CODE,Px as FEATURE_FLAG_KEYS,Ad as FEATURE_NOT_SUPPORTED_CODE,Ye as HeadlessAuthError,me as HostBoundaryError,Pd as IMPERSONATION_HEADER,mR as INBOX_OBSERVATION_MAX_MS,Ef as INSTANCE_SCOPED_ROUTES,Rd as MODEL_NOT_SERVABLE_CODE,yR as OPTIMISTIC_ABORT_MAX_MS,kR as OPTIMISTIC_COMPACTION_MAX_MS,pR as OPTIMISTIC_RECEIPT_MAX_MS,tR as PREVIEW_PROBE_TIMEOUT_MS,Td as PROVISION_IN_FLIGHT_CODE,ns as PublicSessionShareError,Ae as RequestTooLargeError,Ne as RuntimeNotReadyError,$r as SANDBOX_FS_ROOTS,ue as SANDBOX_PORTS,Yf as SERVER_COMPACTION_REVALIDATE_MS,dR as SERVER_OBSERVATION_MAX_MS,gR as STREAM_OBSERVATION_MAX_MS,Kt as SandboxNotReadyError,Lt as SessionNotReadyError,Xr as SessionStartError,fR as TURN_END_LEDGER_LAG_MS,TR as WAKE_ESCALATION_COOLDOWN_MS,RR as WAKE_MAX_RESTARTS,AR as WAKE_NO_PROGRESS_MS,hy as __getConfigResolver,yy as __setConfigResolver,Lv as abortErrorReason,Fi as acceptAccountInvite,FC as acceptInvite,hu as actReviewItem,ea as activateConnection,Hl as addGroupMembers,Hu as addMarketplaceSource,ER as advanceWakeEscalation,Ym as allDescendantIds,Vp as appendPreviewToken,mo as approveProjectAccessRequest,Qh as approveTask,Gr as archiveProject,ib as assignTicket,So as attachGroupToProject,gs as authUser,M as authenticatedFetch,ZA as authorizePreviewUrl,i as backendApi,TP as bindSlackIdentity,IP as bindTeamsIdentity,Do as brokerProjectSecretRequest,$f as buildInstancePath,iR as buildPresentationTemplateImageUrl,sR as buildPresentationTemplatePdfUrl,Wp as buildPreviewAuthEndpoint,Hf as buildPublicTemplateUrl,Qf as buildRuntimePresentationConversionUrl,Ea as buildSandboxTemplate,rS as buildStaticFileHealthPreviewUrl,nS as buildStaticFileLocalUrl,tS as buildStaticFilePreviewUrl,Fg as buildStaticFileServicePath,uy as buildTunnelEventStreamUrl,cS as buildWebProxyUrl,bu as bulkActReviewItems,nk as bulkDeletePolicies,rk as bulkImportPolicies,Wo as callConnector,zk as cancelAccountDeletion,Di as cancelAccountInvite,AC as cancelSandbox,rA as cancelSandboxUpdate,el as cancelScheduledChange,Qc as cancelSubscription,xA as checkAccessEmail,dv as childMapByParent,pA as claimComputer,yP as claimPerSeatBilling,oc as claimWarmProjectSession,vp as classifyPart,Xf as classifyPreviewProbeStatus,Gm as classifyTurn,ni as clearImpersonationSession,gy as clearKortixAppViewerCache,Dc as clearModelDefault,T_ as clearSessionFresh,Ja as closeChangeRequest,$b as closeMilestone,cv as collectTurnParts,ab as commentTicket,Ya as commitSessionChanges,SR as compactionExpiryAtMs,Qm as compareMessagesForDisplay,Tp as computeStatusFromPart,sl as configureAutoTopup,Zt as configureKortix,Jc as confirmCheckoutSession,bl as connectEmail,ul as connectSlack,lR as connectionIsFaulted,cg as connectorConnect,lg as connectorFinalize,uw as convertPresentationToGoogleSlides,oR as convertRuntimePresentation,Rt as copyFile,ol as costExportUrl,bR as countLiveInboxPrompts,vi as createAccount,Mu as createAccountAuditWebhook,vu as createAccountToken,Vu as createApp,ep as createAppAccessSession,np as createAppDeployment,pu as createAssignment,Ik as createAuditWebhook,NC as createBackup,Vc as createCheckoutSession,ma as createConnector,At as createFile,Dl as createGatewayKey,Gl as createGroup,ay as createHttpSessionSyncController,cA as createInstance,cm as createKortix,di as createKortixPty,fs as createKortixSession,Mw as createMarketplaceInstallSession,Eb as createMilestone,iu as createOAuthClient,fP as createPerSeatCheckout,ZP as createPolicy,Xc as createPortalSession,Xi as createProject,hb as createProjectAgent,Ru as createProjectCliToken,Qi as createProjectRepo,Ro as createProjectResourceGrant,Qe as createProjectSession,vc as createProjectTrigger,Ql as createRole,py as createSSEStream,_C as createSandbox,_u as createSandboxShare,Ra as createSandboxTemplate,ak as createScimToken,Ck as createServiceAccountApi,pc as createSessionPrompt,rc as createSessionPublicShare,hk as createSsoGroupMapping,Vh as createTask,nb as createTicket,UR as createTunnelEventStream,Li as declineAccountInvite,LC as declineInvite,Vk as deleteAccountImmediately,Qu as deleteApp,jk as deleteAuditWebhook,HC as deleteBackup,ya as deleteConnector,Lb as deleteCredential,ui as deleteEnv,Ie as deleteFile,Ml as deleteGatewayBudget,po as deleteGitHubInstallation,Nl as deleteGroup,lA as deleteInstance,Cb as deleteKortixProject,qb as deleteMilestone,cu as deleteOAuthClient,No as deletePersonalProjectSecret,tk as deletePolicy,xb as deleteProjectAgent,Fo as deleteProjectProviderOAuth,To as deleteProjectResourceGrant,Go as deleteProjectSecret,hc as deleteProjectSession,Ac as deleteProjectTrigger,eu as deleteRole,Ia as deleteSandboxTemplate,Rk as deleteServiceAccountApi,gc as deleteSessionPrompt,bk as deleteSsoGroupMapping,fk as deleteSsoProvider,Yh as deleteTask,cb as deleteTicket,Ui as describeAccountInvite,Ho as describeConnectorTool,Co as detachGroupFromProject,qg as detectLocalhostUrls,Ak as disableServiceAccountApi,xl as disconnectEmail,KA as disconnectGitHubApp,gl as disconnectSlack,Qx as discoverConnectionOAuth2,Yx as discoverConnectionOAuth2Resource,fa as discoverConnectorAuth,SC as discoverLocalSandbox,qA as downloadAccountAudit,Zb as dropClientForUrl,nx as dropPublicClientForUrl,fb as ensurePmSession,Jf as ensurePreviewSessionCookie,Vx as ensureProjectConnectorConnection,Lf as ensureSandbox,ic as ensureWarmProjectSession,Ud as env,us as exchangeCode,ju as exportAccountAudit,de as extractGatewayErrorDetails,st as extractInstanceRoute,Ys as featureDisabledKey,Wv as featureFlags,gP as fetchAccountStateWithToken,hx as fetchAccountsWithToken,VA as fetchAttachmentPart,vP as fetchCostExportCsv,Yp as fetchKortixAppViewer,Da as fetchProjectArchive,Tx as fetchProjectsForAccountWithToken,ng as files,ss as finalizeAppArtifact,CA as finalizeConnectorSetupLink,vt as findFiles,lv as findLastTextPart,Ct as findText,Tc as fireProjectTrigger,Aa as fixSandboxWithAgent,ei as formatBillingErrorForUI,Ev as formatCost,Rv as formatDuration,Uf as formatOpenCodeRuntimeError,Uf as formatRuntimeError,jv as formatTokens,fm as formatTranscript,lm as generateSessionId,Ci as getAccount,Ri as getAccountBranding,Hk as getAccountDeletionStatus,Gc as getAccountState,Bc as getAccountStateMinimal,qf as getActiveInstanceIdFromCookie,nw as getAdminProviderAnalytics,Zk as getAdminProviderDistribution,sw as getAdminProviderFallback,Jk as getAdminRole,Vm as getAgentCardLabel,oP as getAgentConfig,_b as getAgentPersona,eA as getAllVersions,pv as getAnsweredQuestionParts,Ju as getApp,Yu as getAppAccess,sp as getAppDeployment,ip as getAppDeploymentLogs,Iw as getApprovalLink,Le as getAuthToken,Hs as getAuthTokenWithRetry,rl as getAutoTopupSettings,mP as getAutoTopupSetupStatus,Hc as getBillingCreditBreakdown,zc as getBillingTierConfigurations,Kc as getBillingTransactionsSummary,Wc as getBillingUsageHistory,Ka as getChangeRequest,Ha as getChangeRequestDiff,Wa as getChangeRequestMergePreview,QS as getChildSessionError,XS as getChildSessionId,YS as getChildSessionToolParts,be as getClient,ce as getClientForUrl,xa as getConnectStatus,Xx as getConnectionOAuth2Application,r_ as getConnectionOAuth2Status,s_ as getConnectionPolicies,Nr as getConnectorCatalog,pa as getConnectorConfig,la as getConnectorPolicies,SA as getConnectorSetupLink,SP as getCostSummary,Mf as getCurrentInstanceIdFromPathname,Xv as getCurrentInstanceIdFromWindow,ki as getCurrentProject,Yr as getDefaultAccountState,tv as getDiagnostics,zm as getDirectory,Hr as getDiscoverConnector,l_ as getDiscoverIntegration,yl as getEmailInstallation,hl as getEmailMode,Mk as getEnterpriseDemo,St as getFileStatus,Cp as getFileWithDir,Wm as getFilename,Bf as getFullChangelog,Tl as getGatewayBreakdown,jl as getGatewayBudgets,El as getGatewayErrors,ql as getGatewayKeys,Cl as getGatewayLog,Al as getGatewayOverview,Pl as getGatewayRoutingPolicy,Rl as getGatewaySeries,Il as getGatewaySessions,LA as getGitHubAppStatus,so as getGitHubInstallation,lw as getGoogleAuthUrl,Ll as getGroup,VS as getHiddenToolParts,Sd as getImpersonationSession,UC as getInvite,aA as getJustavpsServerTypes,wb as getKortixProject,Sb as getKortixProjectBySession,fi as getKortixPtyWebSocketUrl,ZC as getLatestSandboxVersion,EA as getMaintenanceConfig,vx as getManagedGitStatus,Bu as getMarketplaceCatalogItem,Nu as getMarketplaceCatalogItemFile,lk as getMfaRequired,Tb as getMilestone,Mc as getModelDefaults,su as getOAuthClient,kA as getOAuthConsentRequest,Gp as getOpenCodeConfigInvalidError,WS as getPartText,wk as getPatPolicy,nv as getPermissionForTool,Dr as getProject,Pb as getProjectActivity,Fa as getProjectCommit,La as getProjectCommitDiff,Or as getProjectDetail,Ga as getProjectFileHistory,Ji as getProjectGitToken,Ur as getProjectLlmCatalog,wx as getProjectLlmCatalogProviders,Fr as getProjectModelPicker,Wr as getProjectSandboxHealth,Cx as getProjectSandboxProviderTransition,Vr as getProjectSession,bc as getProjectSessionConfigState,Pc as getProjectSessionScope,tl as getProrationPreview,bC as getProviders,sS as getProxyBaseUrl,tx as getPublicClientForUrl,hA as getPublicMarketplaceItem,bA as getPublicMarketplaceItemFile,xw as getPublicSessionShare,_w as getPublicSessionShareMessages,TA as getPublicShareByToken,OA as getPublicTemplate,rv as getQuestionForTool,LP as getReferralCode,NP as getReferralStats,$v as getRetryInfo,Mv as getRetryMessage,fu as getReviewItem,Jl as getRolePermissions,Xl as getRoleUsage,VC as getSSHConnection,xC as getSandbox,PC as getSandboxById,dC as getSandboxPortUrl,dA as getSandboxProvisionStatus,gA as getSandboxProvisionStreamUrl,YC as getSandboxUpdateStatus,Kp as getSandboxUrl,AA as getSecretSetupLink,Mr as getServerHealth,Nb as getServiceLogs,ac as getSessionAudit,Iv as getSessionCost,es as getSessionCostRecord,up as getSessionHealth,M_ as getSessionOpenBundle,xk as getSessionPolicy,tc as getSessionPreviewCandidates,cc as getSessionTranscript,lc as getSessionTranscriptSync,uc as getSessionTurn,bv as getShellModePart,ml as getSlackChannelFile,ll as getSlackInstallation,dl as getSlackManifest,pl as getSlackMode,dk as getSsoProvider,Lg as getStaticFileHealthPath,kr as getSupabaseAccessToken,oe as getSupabaseAccessTokenWithRetry,Hh as getTask,zh as getTaskStatus,Uw as getTemplate,eb as getTicket,ZS as getToolInfo,ym as getTranscriptFilename,Tv as getTurnCost,vv as getTurnError,Cv as getTurnErrorDetails,Av as getTurnStatus,il as getUsageRollup,$A as getUserRolesWithToken,Ba as getVersionDiff,wv as getWorkingState,MC as grantSandboxProjectAccess,cP as grantSecretToAgent,av as groupMessagesIntoTurns,qv as hasDiffs,eS as hasLocalhostUrls,Ug as hasPreviewTarget,fv as hasRetryingAssistantTurn,Ng as heartbeatGapEvent,fc as holdSessionPrompts,bs as humanizeToolName,Ar as impersonationHeaders,mk as importSsoProviderFromMetadata,hR as inboxObservationSupersedes,Jp as initialWakeEscalationState,Fw as installTemplate,dt as invalidateTokenCache,Mi as inviteAccountMember,xo as inviteProjectMember,zi as inviteRepoCollaborator,Lp as isAbortError,Ph as isAdminBypassEnabled,BS as isAgentPart,jg as isAppRouteUrl,Nm as isAttachment,zf as isAttachmentPartRef,Zs as isBillingError,NS as isCompactionPart,en as isConfigured,QC as isDestructivePhase,pS as isExternalUrl,Qs as isFeatureDisabledError,Bm as isFilePart,kd as isImpersonationSessionLive,Vv as isInstanceDetailPath,jf as isInstanceScopedAppPath,aS as isInternalLocalhostUrl,Ux as isInviteSent,kv as isLastUserMessage,kx as isManagedGithubProject,tC as isOpenCodeConfigInvalidError,HS as isPatchPart,oS as isPreviewUrl,Gg as isProxiableLocalhostUrl,_s as isReasoningPart,Zm as isRetryableTurnError,Xw as isRuntimeReady,Ht as isSandboxNotReadyError,wi as isServerReachable,Za as isSessionFresh,H_ as isSessionStartError,ef as isShellMode,KS as isSnapshotPart,zp as isSubdomainPreviewUrl,Pe as isTextPart,ge as isToolPart,JS as isToolPartHidden,bi as isUnderSandboxRoot,uS as isWebProxyUrl,fy as kortixAppViewerToken,Ld as kortixPty,Ni as leaveAccount,uo as linkGitHubInstallation,ro as linkRepository,Iu as listAccountAudit,$u as listAccountAuditWebhooks,qi as listAccountInvites,$i as listAccountMembers,QP as listAccountResourceGrants,Pk as listAccountSessions,Su as listAccountTokens,Si as listAccounts,sk as listActions,ew as listAdminSandboxes,Vl as listAgentIdentities,Jo as listAllConnections,rp as listAppDeployments,zu as listApps,uu as listAssignments,$k as listAuditEvents,Tk as listAuditWebhooks,BC as listBackups,Nc as listBillingTransactions,Na as listChangeRequests,EP as listChannelBindings,lb as listColumns,a_ as listConnectToolkits,Vo as listConnections,Tt as listConnectorTools,sa as listConnectors,wP as listCostByProject,Ob as listCredentialEvents,Db as listCredentials,Kr as listDiscoverConnectors,c_ as listDiscoverIntegrations,ci as listEnv,Gu as listFeaturedMarketplaces,pb as listFields,wt as listFiles,vl as listGatewayLogs,io as listGitHubInstallations,ao as listGitHubRepositories,co as listGitHubRepositoryBranches,Kl as listGroupMembers,VP as listGroupProjectGrants,Fl as listGroups,vb as listKortixProjectSessions,kb as listKortixProjects,pi as listKortixPty,oo as listLinkableGitHubInstallations,Fu as listMarketplaceCatalogItems,Ku as listMarketplaceSources,Lu as listMarketplaces,JP as listMemberGroups,XP as listMemberProjectAccess,Ib as listMilestoneEvents,Rb as listMilestones,ru as listOAuthClients,Io as listPendingApprovals,_o as listPendingProjectInvites,gu as listPermissions,ha as listPipedreamApps,ba as listPipedreamSections,YP as listPolicies,yo as listProjectAccess,go as listProjectAccessRequests,yb as listProjectAgents,Eu as listProjectAudit,Oa as listProjectBranches,Au as listProjectCliTokens,Ua as listProjectCommits,$a as listProjectFiles,wo as listProjectGroupGrants,ka as listProjectPolicies,Ao as listProjectResourceGrants,Sa as listProjectSandboxTemplates,ja as listProjectSandboxes,$o as listProjectSecrets,Xe as listProjectSessions,va as listProjectSnapshots,Sc as listProjectTriggers,Me as listProjects,Wi as listProjectsForAccount,fA as listPublicMarketplaceItems,yA as listPublicMarketplaces,KP as listReferrals,mu as listReviewItems,zl as listRoles,$C as listSandboxProjectMembers,xu as listSandboxShares,wC as listSandboxes,ok as listScimTokens,vk as listServiceAccountsApi,Bb as listServiceTemplates,Gb as listServices,o_ as listSessionConnectRequests,al as listSessionCosts,dc as listSessionPrompts,nc as listSessionPublicShares,Eo as listSessionsNeedingInput,yk as listSsoGroupMappings,Wh as listTaskEvents,Kh as listTasks,gb as listTemplates,tb as listTicketEvents,Zh as listTickets,oy as loadHttpSessionHistory,uA as markInstanceError,It as markSessionFresh,Va as mergeChangeRequest,rw as migrateAdminSandboxProvider,Je as mkdir,Kg as narrowChatEvent,Zv as normalizeAppPathname,dS as normalizeExternalInput,Gt as normalizeToolName,za as openChangeRequest,ys as openEventStream,DA as openStressTestStream,Re as parseBillingError,Hv as parseFlagOverride,Dt as parseLocalhostUrl,Df as parseOpenCodeErrorPayload,lp as parseProxyHop,xp as parseSubdomainUrl,lS as parseWebProxyUrl,Ab as patchKortixProject,ga as pipedreamConnect,na as pipedreamConnectConnection,Pa as pipedreamFinalize,ra as pipedreamFinalizeConnection,$ as platformConfig,n_ as pollConnectionOAuth2DeviceAuthorization,Uo as pollProjectProviderOAuth,Sl as previewGatewayRoute,uk as previewMfaRequired,tu as probeEffectivePermission,nu as probeEffectivePermissions,nR as probePreviewPort,wR as projectCompacting,cR as projectSessionConnection,K_ as projectSessionStartSeed,xR as projectWorking,Yi as provisionProject,Sx as provisionProjectStream,Ix as provisionProjectWithToken,hp as proxyLocalhostUrl,iS as proxyUrlToInternal,nl as purchaseCredits,Jx as putConnectionOAuth2Application,RC as reactivateSandbox,Yc as reactivateSubscription,We as readBlob,He as readFile,qa as readProjectFile,Ca as rebuildProjectSnapshot,Xo as reconcileConnection,Qo as reconcileMemberConnection,Hb as reconcileServices,PA as recordPlatformLogout,GP as refreshReferralCode,Ze as refreshSession,rs as registerAppArtifact,Zx as registerConnectionOAuth2Client,Wb as registerService,fo as rejectProjectAccessRequest,ev as relativizePath,xc as reloadProjectSessionConfig,_c as reloadProjectSessionConfigStream,Du as removeAccountAuditWebhook,Ei as removeAccountBrandingAsset,Gi as removeAccountMember,Wl as removeGroupMember,mi as removeKortixPty,Wu as removeMarketplaceSource,xe as renameFile,kC as renameSandbox,Xa as reopenChangeRequest,Mb as reopenMilestone,ub as replaceColumns,db as replaceFields,mb as replaceTemplates,Wk as requestAccountDeletion,Qa as requestChangesOnChangeRequest,Ox as requestProjectAccess,Uu as requestProjectConnector,Ou as requestProjectSecret,Oi as resendAccountInvite,ko as resendPendingProjectInvite,ji as resetAccountBranding,ex as resetClient,wl as resetGatewayRoutingPolicy,ps as resetPassword,rx as resetPublicClient,nA as resetSandboxUpdateStatus,jo as resolveApproval,dP as resolvedPlan,Et as restartProjectSession,vC as restartSandbox,KC as restoreBackup,mc as retrySessionPrompt,Fb as revealCredential,kk as revokeAccountSession,Cu as revokeAccountToken,du as revokeAssignment,Zo as revokeConnection,Ol as revokeGatewayKey,Po as revokePendingProjectInvite,bo as revokeProjectAccess,Tu as revokeProjectCliToken,qC as revokeSandboxProjectAccess,Pu as revokeSandboxShare,ck as revokeScimToken,sc as revokeSessionPublicShare,_e as rewriteLocalhostUrl,cp as rollbackApp,au as rotateOAuthClientSecret,Ul as runGatewayPlayground,lo as saveGitHubInstallation,Zc as scheduleDowngrade,Ko as searchConnectorTools,Ma as searchProjectFiles,as as sendMagicLink,HP as sendReferralEmails,vR as serverCompactionRevalidateAtMs,Kb as serviceAction,W_ as sessionStartKey,Qv as setActiveInstanceCookie,_h as setAdminBypass,tw as setAdminProviderDistribution,iw as setAdminProviderFallback,Uc as setAgentScope,oh as setBootstrapAuthToken,ih as setCachedAuthToken,i_ as setConnectionPolicies,aa as setConnectorAuthorizationStrategy,_a as setConnectorCredential,oa as setConnectorCredentialMode,da as setConnectorName,ua as setConnectorPolicies,u_ as setConnectorSecretBinding,ca as setConnectorSensitive,ta as setDefaultConnection,qk as setEnterpriseDemo,li as setEnv,$l as setGatewayBudget,kl as setGatewayRoutingPolicy,BA as setGitHubAppFromExisting,NA as setGitHubAppPat,dh as setImpersonationSession,jA as setMaintenanceConfig,ik as setMemberSuperAdmin,pk as setMfaRequired,qc as setModelDefault,Bo as setPersonalProjectSecret,Z_ as setProjectModelEnablement,no as setProjectOnboardingComplete,Rx as setProjectOnboardingProfile,wa as setProjectPolicies,qo as setProjectSecretStrategy,wc as setProjectSessionModel,kc as setProjectSessionScope,ec as setProjectSessionSharing,Rc as setProjectTriggersActivation,zC as setupSSH,Op as shellExitCode,Cd as shouldAttachImpersonation,Sv as shouldHideResponsePart,Hm as shouldShowToolPart,os as signInWithPassword,ls as signInWithProvider,ms as signOut,is as signUp,gv as sortSessions,zS as splitUserParts,op as startApp,e_ as startConnectionOAuth2Authorization,t_ as startConnectionOAuth2DeviceAuthorization,vA as startConnectorSetupLink,GA as startGitHubAppManifest,Oo as startProjectProviderOAuth,qe as startProjectSession,IA as startSessionWithToken,Xh as startTask,ap as stopApp,jt as stopProjectSession,CC as stopSandbox,sv as stripAnsi,Jv as stripInstancePrefix,ae as stripTrailingSlashes,_A as submitAccessRequest,MA as submitDemoRequest,wA as submitOAuthConsent,yu as submitReviewItem,RA as submitSecretSetupLink,gh as subscribeToImpersonation,kh as supabaseClient,ia as syncConnectors,hP as syncSubscription,sx as systemReload,je as toDaemonPath,Yv as toInstanceAwarePath,Bg as toInternalUrl,Pt as toSandboxAbsolutePath,xi as toWorkspaceRelative,xs as toolInfo,Sf as toolViewModel,tA as triggerSandboxUpdate,Fd as triggersRequest,uv as turnHasSteps,ob as unassignTicket,te as unwrapError,qu as updateAccountAuditWebhook,Ti as updateAccountBranding,Bi as updateAccountMemberRole,Ai as updateAccountName,aP as updateAgentConfig,Xu as updateApp,Zu as updateAppAccess,Ek as updateAuditWebhook,jP as updateChannelBinding,Yo as updateConnectionCredential,_l as updateEmailPolicy,eo as updateExperimentalFeature,Zi as updateFeatureFlag,Bl as updateGroup,gi as updateKortixPty,jb as updateMilestone,ou as updateOAuthClient,ds as updatePassword,Sk as updatePatPolicy,ek as updatePolicy,Lr as updateProject,ho as updateProjectAccess,bb as updateProjectAgent,Lc as updateProjectDefaultAgent,vo as updateProjectGroupGrant,to as updateProjectSandboxProvider,yc as updateProjectSession,Cc as updateProjectTrigger,Yl as updateRole,Zl as updateRolePermissions,Ta as updateSandboxTemplate,_k as updateSessionPolicy,Jh as updateTask,Ax as updateTemplateWarmPool,rb as updateTicket,sb as updateTicketStatus,Ii as uploadAccountBrandingAsset,tp as uploadAppArtifactArchive,zo as uploadConnectorAttachment,ze as uploadFile,fl as uploadSlackChannelFile,Ub as upsertCredential,Lo as upsertProjectGitCredential,Mo as upsertProjectSecret,gk as upsertSsoProvider,Vi as validateProjectManifest,BP as validateReferralCode,Ki as validateToken,DP as verifyGatewayProvider,cs as verifyOtp,$R as wakeEscalationAttemptSummary,jR as wakeEscalationNote,IR as wakeProgressFingerprint,_R as workingExpiryAtMs,Ve as writeFile};
79
+ `:"")+y.slice(5))}}catch(b){if(h||b instanceof DOMException&&b.name==="AbortError")return;p?.(b instanceof Error?b:new Error(String(b)))}}function C(){h=!0,m?.abort(),m=null,f.clear()}function I(u,b){let c=f.get(u)??new Set;c.add(b),f.set(u,c)}function E(u,b){f.get(u)?.delete(b)}return{connect:P,close:C,addEventListener:I,removeEventListener:E}}function rT(e,t){return Ty({...t,url:Ry(e)})}var Iy="/_kortix/viewer";var Zt=new Map;function Ey(){Zt.clear()}async function jy(e,t){let n;try{n=await t(e,{credentials:"same-origin",headers:{accept:"application/json"}})}catch{return null}if(n.status===401||n.status===404||!n.ok)return null;let r=await n.json().catch(()=>null);return r&&typeof r.user_id=="string"?r:null}async function rd(e={}){let t=e.path??Iy,n=e.fetch??((o,l)=>fetch(o,l)),r=Zt.get(t);if(r&&!r.inflight&&r.expiresAt>Date.now())return r.session;if(r?.inflight)return r.inflight;let s=jy(t,n).then(o=>{let l=o?.expires_at?Date.parse(o.expires_at):Number.NaN,p=Number.isFinite(l)?l-6e4:Date.now()+6e4;return Zt.set(t,{session:o,expiresAt:p}),o});return Zt.set(t,{session:r?.session??null,expiresAt:0,inflight:s}),s}function $y(e={}){return async()=>(await rd(e))?.access_token??null}export{zf as ABORT_REASONS,sA as ABORT_REASONS_NOT_YET_EMITTED,Wt as ACTIVE_INSTANCE_COOKIE,uy as ATTACHMENT_PART_REF_PREFIX,A as ApiError,Ae as AuthError,fe as BillingError,qp as COST_MARKUP,vp as DEFAULT_TRANSCRIPT_OPTIONS,iy as DESTRUCTIVE_PHASES,Ar as FEATURE_DISABLED_CODE,Fx as FEATURE_FLAG_KEYS,jd as FEATURE_NOT_SUPPORTED_CODE,et as HeadlessAuthError,me as HostBoundaryError,Ad as IMPERSONATION_HEADER,$R as INBOX_OBSERVATION_MAX_MS,Jf as INSTANCE_SCOPED_ROUTES,$d as MODEL_NOT_SERVABLE_CODE,qR as OPTIMISTIC_ABORT_MAX_MS,GR as OPTIMISTIC_COMPACTION_MAX_MS,IR as OPTIMISTIC_RECEIPT_MAX_MS,_R as PREVIEW_PROBE_TIMEOUT_MS,Md as PROVISION_IN_FLIGHT_CODE,os as PublicSessionShareError,Ce as RequestTooLargeError,He as RuntimeNotReadyError,Dr as SANDBOX_FS_ROOTS,pe as SANDBOX_PORTS,yy as SERVER_COMPACTION_REVALIDATE_MS,ER as SERVER_OBSERVATION_MAX_MS,jR as STREAM_OBSERVATION_MAX_MS,zt as SandboxNotReadyError,Gt as SessionNotReadyError,es as SessionStartError,MR as TURN_END_LEDGER_LAG_MS,VR as WAKE_ESCALATION_COOLDOWN_MS,zR as WAKE_MAX_RESTARTS,WR as WAKE_NO_PROGRESS_MS,qy as __getConfigResolver,My as __setConfigResolver,iA as abortErrorReason,Bi as acceptAccountInvite,sC as acceptInvite,_u as actReviewItem,ra as activateConnection,Vl as addGroupMembers,Vu as addMarketplaceSource,XR as advanceWakeEscalation,hf as allDescendantIds,Zp as appendPreviewToken,ho as approveProjectAccessRequest,fb as approveTask,Hr as archiveProject,wb as assignTicket,Co as attachGroupToProject,hs as authUser,M as authenticatedFetch,bR as authorizePreviewUrl,i as backendApi,zP as bindSlackIdentity,VP as bindTeamsIdentity,Fo as brokerProjectSecretRequest,Qf as buildInstancePath,SR as buildPresentationTemplateImageUrl,wR as buildPresentationTemplatePdfUrl,Qp as buildPreviewAuthEndpoint,ly as buildPublicTemplateUrl,fy as buildRuntimePresentationConversionUrl,Ma as buildSandboxTemplate,PS as buildStaticFileHealthPreviewUrl,_S as buildStaticFileLocalUrl,xS as buildStaticFilePreviewUrl,Kg as buildStaticFileServicePath,Ry as buildTunnelEventStreamUrl,AS as buildWebProxyUrl,Pu as bulkActReviewItems,_k as bulkDeletePolicies,Pk as bulkImportPolicies,Jo as callConnector,pw as cancelAccountDeletion,Fi as cancelAccountInvite,WA as cancelSandbox,kC as cancelSandboxUpdate,rl as cancelScheduledChange,el as cancelSubscription,UC as checkAccessEmail,Ev as childMapByParent,IC as claimComputer,hm as claimNext,MP as claimPerSeatBilling,lc as claimWarmProjectSession,Ip as classifyPart,my as classifyPreviewProbeStatus,of as classifyTurn,oi as clearImpersonationSession,Ey as clearKortixAppViewerCache,Fc as clearModelDefault,z_ as clearSessionFresh,Ya as closeChangeRequest,Qb as closeMilestone,Cv as collectTurnParts,vb as commentTicket,tc as commitSessionChanges,NR as compactionExpiryAtMs,yf as compareMessagesForDisplay,bm as completeInFlight,Mp as computeStatusFromPart,al as configureAutoTopup,nn as configureKortix,Yc as confirmCheckoutSession,Pl as connectEmail,gl as connectSlack,RR as connectionIsFaulted,gg as connectorConnect,mg as connectorFinalize,Rw as convertPresentationToGoogleSlides,vR as convertRuntimePresentation,Tt as copyFile,ll as costExportUrl,OR as countLiveInboxPrompts,Ri as createAccount,Ou as createAccountAuditWebhook,Ru as createAccountToken,Qu as createApp,rp as createAppAccessSession,ip as createAppDeployment,mu as createAssignment,Vk as createAuditWebhook,cC as createBackup,Qc as createCheckoutSession,ha as createConnector,Rt as createFile,Fl as createGatewayKey,Kl as createGroup,vy as createHttpSessionSyncController,CC as createInstance,gm as createKortix,yi as createKortixPty,xs as createKortixSession,Yw as createMarketplaceInstallSession,Jb as createMilestone,cu as createOAuthClient,$P as createPerSeatCheckout,hk as createPolicy,Zc as createPortalSession,Zi as createProject,qb as createProjectAgent,Eu as createProjectCliToken,eo as createProjectRepo,Eo as createProjectResourceGrant,Ze as createProjectSession,Rc as createProjectTrigger,eu as createRole,Ty as createSSEStream,FA as createSandbox,wu as createSandboxShare,Ea as createSandboxTemplate,vk as createScimToken,Kk as createServiceAccountApi,mc as createSessionPrompt,oc as createSessionPublicShare,fm as createSessionQueue,qk as createSsoGroupMapping,db as createTask,_b as createTicket,rT as createTunnelEventStream,Ni as declineAccountInvite,iC as declineInvite,dw as deleteAccountImmediately,ep as deleteApp,Xk as deleteAuditWebhook,uC as deleteBackup,xa as deleteConnector,sx as deleteCredential,mi as deleteEnv,Ie as deleteFile,Ol as deleteGatewayBudget,fo as deleteGitHubInstallation,Wl as deleteGroup,RC as deleteInstance,Kb as deleteKortixProject,Zb as deleteMilestone,pu as deleteOAuthClient,Wo as deletePersonalProjectSecret,xk as deletePolicy,Ob as deleteProjectAgent,Bo as deleteProjectProviderOAuth,jo as deleteProjectResourceGrant,Ko as deleteProjectSecret,_c as deleteProjectSession,Ic as deleteProjectTrigger,ru as deleteRole,$a as deleteSandboxTemplate,Wk as deleteServiceAccountApi,yc as deleteSessionPrompt,Dk as deleteSsoGroupMapping,$k as deleteSsoProvider,yb as deleteTask,Ab as deleteTicket,Gi as describeAccountInvite,Vo as describeConnectorTool,To as detachGroupFromProject,Lg as detectLocalhostUrls,Hk as disableServiceAccountApi,kl as disconnectEmail,lR as disconnectGitHubApp,yl as disconnectSlack,f_ as discoverConnectionOAuth2,y_ as discoverConnectionOAuth2Resource,ba as discoverConnectorAuth,NA as discoverLocalSandbox,eR as downloadAccountAudit,hx as dropClientForUrl,_x as dropPublicClientForUrl,km as editQueued,ym as enqueue,$b as ensurePmSession,gy as ensurePreviewSessionCookie,d_ as ensureProjectConnectorConnection,sy as ensureSandbox,cc as ensureWarmProjectSession,Nd as env,ms as exchangeCode,qu as exportAccountAudit,ie as extractGatewayErrorDetails,it as extractInstanceRoute,xm as failInFlight,ni as featureDisabledKey,pA as featureFlags,EP as fetchAccountStateWithToken,qx as fetchAccountsWithToken,gR as fetchAttachmentPart,NP as fetchCostExportCsv,rd as fetchKortixAppViewer,Fa as fetchProjectArchive,zx as fetchProjectsForAccountWithToken,ag as files,cs as finalizeAppArtifact,HC as finalizeConnectorSetupLink,At as findFiles,Rv as findLastTextPart,Ct as findText,jc as fireProjectTrigger,Ia as fixSandboxWithAgent,si as formatBillingErrorForUI,Xv as formatCost,zv as formatDuration,ny as formatOpenCodeRuntimeError,ny as formatRuntimeError,Qv as formatTokens,Tm as formatTranscript,mm as generateSessionId,Ti as getAccount,Ei as getAccountBranding,lw as getAccountDeletionStatus,Kc as getAccountState,Hc as getAccountStateMinimal,Zf as getActiveInstanceIdFromCookie,_w as getAdminProviderAnalytics,hw as getAdminProviderDistribution,kw as getAdminProviderFallback,gw as getAdminRole,gf as getAgentCardLabel,SP as getAgentConfig,Ub as getAgentPersona,xC as getAllVersions,Iv as getAnsweredQuestionParts,Yu as getApp,tp as getAppAccess,ap as getAppDeployment,cp as getAppDeploymentLogs,Vw as getApprovalLink,Be as getAuthToken,Js as getAuthTokenWithRetry,ol as getAutoTopupSettings,jP as getAutoTopupSetupStatus,Vc as getBillingCreditBreakdown,Xc as getBillingTierConfigurations,zc as getBillingTransactionsSummary,Jc as getBillingUsageHistory,za as getChangeRequest,Va as getChangeRequestDiff,Ja as getChangeRequestMergePreview,yv as getChildSessionError,fv as getChildSessionId,hv as getChildSessionToolParts,be as getClient,le as getClientForUrl,ka as getConnectStatus,m_ as getConnectionOAuth2Application,P_ as getConnectionOAuth2Status,k_ as getConnectionPolicies,zr as getConnectorCatalog,ma as getConnectorConfig,da as getConnectorPolicies,NC as getConnectorSetupLink,BP as getCostSummary,Yf as getCurrentInstanceIdFromPathname,fA as getCurrentInstanceIdFromWindow,vi as getCurrentProject,ns as getDefaultAccountState,_v as getDiagnostics,df as getDirectory,Jr as getDiscoverConnector,C_ as getDiscoverIntegration,xl as getEmailInstallation,_l as getEmailMode,Yk as getEnterpriseDemo,vt as getFileStatus,Ep as getFileWithDir,pf as getFilename,oy as getFullChangelog,jl as getGatewayBreakdown,ql as getGatewayBudgets,Ml as getGatewayErrors,Ul as getGatewayKeys,Tl as getGatewayLog,Il as getGatewayOverview,Sl as getGatewayRoutingPolicy,El as getGatewaySeries,$l as getGatewaySessions,iR as getGitHubAppStatus,ao as getGitHubInstallation,Cw as getGoogleAuthUrl,Nl as getGroup,gv as getHiddenToolParts,Td as getImpersonationSession,rC as getInvite,AC as getJustavpsServerTypes,Gb as getKortixProject,Bb as getKortixProjectBySession,xi as getKortixPtyWebSocketUrl,bC as getLatestSandboxVersion,XC as getMaintenanceConfig,Nx as getManagedGitStatus,Hu as getMarketplaceCatalogItem,Wu as getMarketplaceCatalogItemFile,Ck as getMfaRequired,zb as getMilestone,Oc as getModelDefaults,au as getOAuthClient,GC as getOAuthConsentRequest,Wp as getOpenCodeConfigInvalidError,pv as getPartText,Gk as getPatPolicy,Pv as getPermissionForTool,Lr as getProject,Fb as getProjectActivity,Ba as getProjectCommit,Na as getProjectCommitDiff,Gr as getProjectDetail,Ka as getProjectFileHistory,Yi as getProjectGitToken,Br as getProjectLlmCatalog,Gx as getProjectLlmCatalogProviders,Nr as getProjectModelPicker,Xr as getProjectSandboxHealth,Kx as getProjectSandboxProviderTransition,Yr as getProjectSession,Pc as getProjectSessionConfigState,Sc as getProjectSessionScope,sl as getProrationPreview,OA as getProviders,kS as getProxyBaseUrl,xx as getPublicClientForUrl,DC as getPublicMarketplaceItem,OC as getPublicMarketplaceItemFile,Ow as getPublicSessionShare,Uw as getPublicSessionShareMessages,VC as getPublicShareByToken,nR as getPublicTemplate,kv as getQuestionForTool,sk as getReferralCode,ak as getReferralStats,Yv as getRetryInfo,Zv as getRetryMessage,bu as getReviewItem,Yl as getRolePermissions,Zl as getRoleUsage,gC as getSSHConnection,UA as getSandbox,LA as getSandboxById,EA as getSandboxPortUrl,EC as getSandboxProvisionStatus,jC as getSandboxProvisionStreamUrl,hC as getSandboxUpdateStatus,Jp as getSandboxUrl,WC as getSecretSetupLink,Ur as getServerHealth,ax as getServiceLogs,uc as getSessionAudit,Jv as getSessionCost,ss as getSessionCostRecord,gp as getSessionHealth,Y_ as getSessionOpenBundle,Ok as getSessionPolicy,sc as getSessionPreviewCandidates,pc as getSessionTranscript,dc as getSessionTranscriptSync,gc as getSessionTurn,Ov as getShellModePart,hl as getSlackChannelFile,dl as getSlackInstallation,fl as getSlackManifest,ml as getSlackMode,Ik as getSsoProvider,Hg as getStaticFileHealthPath,vr as getSupabaseAccessToken,ae as getSupabaseAccessTokenWithRetry,lb as getTask,pb as getTaskStatus,nS as getTemplate,bb as getTicket,bv as getToolInfo,Im as getTranscriptFilename,Vv as getTurnCost,Kv as getTurnError,Hv as getTurnErrorDetails,Wv as getTurnStatus,cl as getUsageRollup,YC as getUserRolesWithToken,Ha as getVersionDiff,Bv as getWorkingState,ZA as grantSandboxProjectAccess,AP as grantSecretToAgent,Av as groupMessagesIntoTurns,eA as hasDiffs,bS as hasLocalhostUrls,Ng as hasPreviewTarget,Mv as hasRetryingAssistantTurn,Vg as heartbeatGapEvent,bc as holdSessionPrompts,ks as humanizeToolName,Ir as impersonationHeaders,jk as importSsoProviderFromMetadata,DR as inboxObservationSupersedes,ed as initialWakeEscalationState,rS as installTemplate,gt as invalidateTokenCache,Oi as inviteAccountMember,ko as inviteProjectMember,Xi as inviteRepoCollaborator,Hp as isAbortError,Fh as isAdminBypassEnabled,av as isAgentPart,Og as isAppRouteUrl,cf as isAttachment,py as isAttachmentPartRef,ri as isBillingError,cv as isCompactionPart,rn as isConfigured,yC as isDestructivePhase,TS as isExternalUrl,ti as isFeatureDisabledError,af as isFilePart,Cd as isImpersonationSessionLive,gA as isInstanceDetailPath,Xf as isInstanceScopedAppPath,vS as isInternalLocalhostUrl,n_ as isInviteSent,Gv as isLastUserMessage,Lx as isManagedGithubProject,_A as isOpenCodeConfigInvalidError,uv as isPatchPart,SS as isPreviewUrl,Wg as isProxiableLocalhostUrl,Ss as isReasoningPart,bf as isRetryableTurnError,mS as isRuntimeReady,Vt as isSandboxNotReadyError,Ai as isServerReachable,nc as isSessionFresh,lP as isSessionStartError,xf as isShellMode,lv as isSnapshotPart,Yp as isSubdomainPreviewUrl,Pe as isTextPart,ge as isToolPart,mv as isToolPartHidden,ki as isUnderSandboxRoot,RS as isWebProxyUrl,$y as kortixAppViewerToken,Hd as kortixPty,Wi as leaveAccount,mo as linkGitHubInstallation,oo as linkRepository,$u as listAccountAudit,Du as listAccountAuditWebhooks,Ui as listAccountInvites,Di as listAccountMembers,fk as listAccountResourceGrants,Fk as listAccountSessions,Cu as listAccountTokens,Ci as listAccounts,kk as listActions,bw as listAdminSandboxes,Ql as listAgentIdentities,Yo as listAllConnections,op as listAppDeployments,Xu as listApps,gu as listAssignments,Qk as listAuditEvents,zk as listAuditWebhooks,aC as listBackups,Wc as listBillingTransactions,Wa as listChangeRequests,JP as listChannelBindings,Cb as listColumns,v_ as listConnectToolkits,Qo as listConnections,It as listConnectorTools,aa as listConnectors,GP as listCostByProject,tx as listCredentialEvents,ex as listCredentials,Vr as listDiscoverConnectors,A_ as listDiscoverIntegrations,di as listEnv,Ku as listFeaturedMarketplaces,Tb as listFields,St as listFiles,Rl as listGatewayLogs,co as listGitHubInstallations,uo as listGitHubRepositories,po as listGitHubRepositoryBranches,zl as listGroupMembers,dk as listGroupProjectGrants,Bl as listGroups,Nb as listKortixProjectSessions,Lb as listKortixProjects,fi as listKortixPty,lo as listLinkableGitHubInstallations,Bu as listMarketplaceCatalogItems,zu as listMarketplaceSources,Nu as listMarketplaces,gk as listMemberGroups,mk as listMemberProjectAccess,Vb as listMilestoneEvents,Wb as listMilestones,ou as listOAuthClients,$o as listPendingApprovals,wo as listPendingProjectInvites,yu as listPermissions,_a as listPipedreamApps,Pa as listPipedreamSections,yk as listPolicies,xo as listProjectAccess,yo as listProjectAccessRequests,Mb as listProjectAgents,Mu as listProjectAudit,La as listProjectBranches,Iu as listProjectCliTokens,Ga as listProjectCommits,Da as listProjectFiles,Ao as listProjectGroupGrants,va as listProjectPolicies,Io as listProjectResourceGrants,Ca as listProjectSandboxTemplates,qa as listProjectSandboxes,Do as listProjectSecrets,Ye as listProjectSessions,Ra as listProjectSnapshots,Cc as listProjectTriggers,Me as listProjects,Ji as listProjectsForAccount,MC as listPublicMarketplaceItems,qC as listPublicMarketplaces,ck as listReferrals,hu as listReviewItems,Xl as listRoles,YA as listSandboxProjectMembers,ku as listSandboxShares,BA as listSandboxes,Sk as listScimTokens,Nk as listServiceAccountsApi,ox as listServiceTemplates,ix as listServices,S_ as listSessionConnectRequests,ul as listSessionCosts,fc as listSessionPrompts,ic as listSessionPublicShares,Mo as listSessionsNeedingInput,Mk as listSsoGroupMappings,ub as listTaskEvents,cb as listTasks,Eb as listTemplates,xb as listTicketEvents,hb as listTickets,Sy as loadHttpSessionHistory,TC as markInstanceError,Et as markSessionFresh,Qa as mergeChangeRequest,Pw as migrateAdminSandboxProvider,Qe as mkdir,Jg as narrowChatEvent,bA as normalizeAppPathname,IS as normalizeExternalInput,Kt as normalizeToolName,Xa as openChangeRequest,_s as openEventStream,tR as openStressTestStream,Re as parseBillingError,uA as parseFlagOverride,Ot as parseLocalhostUrl,ey as parseOpenCodeErrorPayload,dp as parseProxyHop,kp as parseSubdomainUrl,CS as parseWebProxyUrl,Hb as patchKortixProject,ya as pipedreamConnect,ia as pipedreamConnectConnection,Sa as pipedreamFinalize,oa as pipedreamFinalizeConnection,$ as platformConfig,__ as pollConnectionOAuth2DeviceAuthorization,Go as pollProjectProviderOAuth,Cl as previewGatewayRoute,Rk as previewMfaRequired,su as probeEffectivePermission,iu as probeEffectivePermissions,PR as probePreviewPort,BR as projectCompacting,CR as projectSessionConnection,cP as projectSessionStartSeed,UR as projectWorking,to as provisionProject,Bx as provisionProjectStream,Vx as provisionProjectWithToken,_p as proxyLocalhostUrl,wS as proxyUrlToInternal,il as purchaseCredits,g_ as putConnectionOAuth2Application,zA as reactivateSandbox,tl as reactivateSubscription,Ve as readBlob,ze as readFile,Ua as readProjectFile,Ta as rebuildProjectSnapshot,Zo as reconcileConnection,ea as reconcileMemberConnection,lx as reconcileServices,LC as recordPlatformLogout,ik as refreshReferralCode,tt as refreshSession,as as registerAppArtifact,h_ as registerConnectionOAuth2Client,ux as registerService,bo as rejectProjectAccessRequest,xv as relativizePath,kc as reloadProjectSessionConfig,wc as reloadProjectSessionConfigStream,Fu as removeAccountAuditWebhook,Mi as removeAccountBrandingAsset,Ki as removeAccountMember,Jl as removeGroupMember,bi as removeKortixPty,Ju as removeMarketplaceSource,Pm as removeQueued,xe as renameFile,GA as renameSandbox,Za as reopenChangeRequest,Yb as reopenMilestone,wm as reorderQueued,Rb as replaceColumns,Ib as replaceFields,jb as replaceTemplates,uw as requestAccountDeletion,ec as requestChangesOnChangeRequest,t_ as requestProjectAccess,Gu as requestProjectConnector,Lu as requestProjectSecret,Li as resendAccountInvite,vo as resendPendingProjectInvite,qi as resetAccountBranding,bx as resetClient,Al as resetGatewayRoutingPolicy,fs as resetPassword,Px as resetPublicClient,PC as resetSandboxUpdateStatus,qo as resolveApproval,IP as resolvedPlan,jt as restartProjectSession,KA as restartSandbox,lC as restoreBackup,_m as retryFailed,hc as retrySessionPrompt,rx as revealCredential,Lk as revokeAccountSession,Tu as revokeAccountToken,fu as revokeAssignment,na as revokeConnection,Ll as revokeGatewayKey,So as revokePendingProjectInvite,Po as revokeProjectAccess,ju as revokeProjectCliToken,eC as revokeSandboxProjectAccess,Su as revokeSandboxShare,Ak as revokeScimToken,ac as revokeSessionPublicShare,_e as rewriteLocalhostUrl,pp as rollbackApp,uu as rotateOAuthClientSecret,Gl as runGatewayPlayground,go as saveGitHubInstallation,nl as scheduleDowngrade,zo as searchConnectorTools,Oa as searchProjectFiles,ps as sendMagicLink,lk as sendReferralEmails,KR as serverCompactionRevalidateAtMs,cx as serviceAction,uP as sessionStartKey,yA as setActiveInstanceCookie,Uh as setAdminBypass,xw as setAdminProviderDistribution,ww as setAdminProviderFallback,Gc as setAgentScope,Sh as setBootstrapAuthToken,wh as setCachedAuthToken,w_ as setConnectionPolicies,ua as setConnectorAuthorizationStrategy,wa as setConnectorCredential,la as setConnectorCredentialMode,fa as setConnectorName,ga as setConnectorPolicies,R_ as setConnectorSecretBinding,pa as setConnectorSensitive,sa as setDefaultConnection,Zk as setEnterpriseDemo,gi as setEnv,Dl as setGatewayBudget,vl as setGatewayRoutingPolicy,aR as setGitHubAppFromExisting,cR as setGitHubAppPat,Ih as setImpersonationSession,QC as setMaintenanceConfig,wk as setMemberSuperAdmin,Tk as setMfaRequired,Uc as setModelDefault,Ho as setPersonalProjectSecret,hP as setProjectModelEnablement,io as setProjectOnboardingComplete,Wx as setProjectOnboardingProfile,Aa as setProjectPolicies,Uo as setProjectSecretStrategy,Ac as setProjectSessionModel,vc as setProjectSessionScope,rc as setProjectSessionSharing,Ec as setProjectTriggersActivation,dC as setupSSH,Bp as shellExitCode,Ed as shouldAttachImpersonation,Nv as shouldHideResponsePart,uf as shouldShowToolPart,us as signInWithPassword,gs as signInWithProvider,bs as signOut,ls as signUp,jv as sortSessions,dv as splitUserParts,lp as startApp,b_ as startConnectionOAuth2Authorization,x_ as startConnectionOAuth2DeviceAuthorization,KC as startConnectorSetupLink,oR as startGitHubAppManifest,Lo as startProjectProviderOAuth,qe as startProjectSession,JC as startSessionWithToken,mb as startTask,up as stopApp,$t as stopProjectSession,HA as stopSandbox,wv as stripAnsi,mA as stripInstancePrefix,ce as stripTrailingSlashes,FC as submitAccessRequest,ZC as submitDemoRequest,BC as submitOAuthConsent,xu as submitReviewItem,zC as submitSecretSetupLink,Eh as subscribeToImpersonation,Lh as supabaseClient,ca as syncConnectors,qP as syncSubscription,kx as systemReload,je as toDaemonPath,hA as toInstanceAwarePath,zg as toInternalUrl,kt as toSandboxAbsolutePath,wi as toWorkspaceRelative,ws as toolInfo,Bf as toolViewModel,_C as triggerSandboxUpdate,Kd as triggersRequest,Tv as turnHasSteps,Sb as unassignTicket,te as unwrapError,Uu as updateAccountAuditWebhook,ji as updateAccountBranding,Hi as updateAccountMemberRole,Ii as updateAccountName,vP as updateAgentConfig,Zu as updateApp,np as updateAppAccess,Jk as updateAuditWebhook,XP as updateChannelBinding,ta as updateConnectionCredential,wl as updateEmailPolicy,ro as updateExperimentalFeature,no as updateFeatureFlag,Hl as updateGroup,hi as updateKortixPty,Xb as updateMilestone,lu as updateOAuthClient,ys as updatePassword,Bk as updatePatPolicy,bk as updatePolicy,Kr as updateProject,_o as updateProjectAccess,Db as updateProjectAgent,Nc as updateProjectDefaultAgent,Ro as updateProjectGroupGrant,so as updateProjectSandboxProvider,xc as updateProjectSession,Tc as updateProjectTrigger,tu as updateRole,nu as updateRolePermissions,ja as updateSandboxTemplate,Uk as updateSessionPolicy,gb as updateTask,Hx as updateTemplateWarmPool,Pb as updateTicket,kb as updateTicketStatus,$i as uploadAccountBrandingAsset,sp as uploadAppArtifactArchive,Xo as uploadConnectorAttachment,Je as uploadFile,bl as uploadSlackChannelFile,Or as uploadTimeoutMsForBytes,nx as upsertCredential,No as upsertProjectGitCredential,Oo as upsertProjectSecret,Ek as upsertSsoProvider,Qi as validateProjectManifest,ok as validateReferralCode,zi as validateToken,ek as verifyGatewayProvider,ds as verifyOtp,YR as wakeEscalationAttemptSummary,QR as wakeEscalationNote,JR as wakeProgressFingerprint,FR as workingExpiryAtMs,Xe as writeFile};