opencode-teammate 0.2.0-next.4 → 0.2.0-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/mate +28 -28
- package/dist/plugin.js +196 -343
- package/dist/shared/plugin-hr00ebgs.js +257 -0
- package/dist/utils/config/define.d.ts +9 -0
- package/dist/utils/config/define.js +25 -0
- package/package.json +6 -2
package/dist/bin/mate
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var
|
|
4
|
-
`){J();for(let U=0;U<G.length;U++)process.stdout.write(`${v}1A${Xw}`);let Q=G[B];if(Q)console.log(`\u2713 ${Q.label}`),Z(Q.value)}else if(N==="\x03"||N==="\x1B")J(),process.exit(0)})})}function F$(w,$){for(let G=0;G<w.length;G++)process.stdout.write(`${v}1A`);w.forEach((G,W)=>{process.stdout.write(Xw+LG);let B=W===$?"\u276F ":" ",Z=G.hint?` (${G.hint})`:"";console.log(`${B}${G.label}${Z}`)})}async function N$(w,$={}){return process.stdout.write(w+" "),new Promise((G)=>{let W="";process.stdin.setRawMode(!0),process.stdin.resume();let B=()=>{process.stdin.setRawMode(!1),process.stdin.pause(),console.log()};process.stdin.on("data",async(Z)=>{let J=Z.toString();if(J==="\r"||J===`
|
|
5
|
-
`)if(B(),$.schema){let Y=await $.schema["~standard"].validate(W);if(Y.issues){console.error(q.red("Invalid input:"));for(let N of Y.issues)console.error(q.dim(` \u2022 ${N.message}`));console.error(),N$(w,$).then(G);return}G(Y.value)}else if($.validate){let Y=$.validate(W);if(Y===!0)G(W);else console.error(`\u2717 ${typeof Y==="string"?Y:"Invalid input"}`),N$(w,$).then(G)}else G(W);else if(J==="\x03")B(),process.exit(0);else if(J==="\x7F"||J==="\b"){if(W.length>0)W=W.slice(0,-1),process.stdout.write("\b \b")}else if(J.length===1&&J>=" ")W+=J,process.stdout.write("*")})})}function zG(w){let $=typeof w==="string"?{text:w}:w||{},G=!1,W=0,B=null,Z=$.text||"",J=(N,Q)=>{process.stdout.write(`${Yw}${Nw}${N} ${Q}`)},Y={start(N){if(G)return;if(G=!0,N!==void 0)Z=N;process.stdout.write("\x1B[?25l"),B=setInterval(()=>{let Q=I$[W];J(Q,Z),W=(W+1)%I$.length},80)},stop(N){if(!G)return;if(G=!1,B)clearInterval(B),B=null;if(process.stdout.write(Yw+Nw),process.stdout.write("\x1B[?25h"),N)console.log(N)},succeed(N){this.stop(),console.log(`\u2705 ${N||Z}`)},fail(N){this.stop(),console.log(`\u274C ${N||Z}`)},warn(N){this.stop(),console.log(`\u26A0\uFE0F ${N||Z}`)},info(N){this.stop(),console.log(`\u2139\uFE0F ${N||Z}`)},update(N){if(Z=N,G)J(I$[W],Z)}};return process.on("exit",()=>Y.stop()),process.on("SIGINT",()=>{Y.stop(),process.exit(0)}),Y}var z,q,OG="\x1B",v,Xw,LG,EG,DG,I$,Yw="\x1B[2K",Nw="\x1B[G",M1,X$;var U$=L(()=>{z={black:30,red:31,green:32,yellow:33,blue:34,magenta:35,cyan:36,white:37,gray:90,brightRed:91,brightGreen:92,brightYellow:93,brightBlue:94,brightMagenta:95,brightCyan:96,brightWhite:97,bgRed:41,bgGreen:42,bgYellow:43,bgBlue:44,bgMagenta:45,bgCyan:46,bgWhite:47,bold:1,dim:2,italic:3,underline:4,strikethrough:9,reset:0};q={black:T(z.black),red:T(z.red),green:T(z.green),yellow:T(z.yellow),blue:T(z.blue),magenta:T(z.magenta),cyan:T(z.cyan),white:T(z.white),gray:T(z.gray),brightRed:T(z.brightRed),brightGreen:T(z.brightGreen),brightYellow:T(z.brightYellow),brightBlue:T(z.brightBlue),brightMagenta:T(z.brightMagenta),brightCyan:T(z.brightCyan),brightWhite:T(z.brightWhite),bgRed:T(z.bgRed),bgGreen:T(z.bgGreen),bgYellow:T(z.bgYellow),bgBlue:T(z.bgBlue),bgMagenta:T(z.bgMagenta),bgCyan:T(z.bgCyan),bgWhite:T(z.bgWhite),bold:T(z.bold),dim:T(z.dim),italic:T(z.italic),underline:T(z.underline),strikethrough:T(z.strikethrough),reset:T(z.reset),strip:QG},v=`${OG}[`,Xw=`${v}2K`,LG=`${v}G`,EG=`${v}?25l`,DG=`${v}?25h`;I$=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];M1={prompt:Object.assign(J$,{confirm:Y$,select:Qw,password:N$,text:(w,$)=>J$(w,$),multiselect:async(w,$)=>{let{options:G}=$,W=[];console.log(w);for(let B of G)if(await Y$(`Select ${B.label}?`,{default:!1}))W.push(B.value);return W}}),spinner:zG,colors:q},X$=Object.assign(J$,{confirm:Y$,select:Qw,password:N$,text:(w,$)=>J$(w,$),multiselect:async(w,$)=>{let{options:G}=$,W=[];console.log(w);for(let B of G)if(await Y$(`Select ${B.label}?`,{default:!1}))W.push(B.value);return W}})});function Ew(w,$){if(!w)return{};return w.reduce((G,W)=>{let B=$(W);return G[B]=(G[B]??0)+1,G},{})}function j$(w,$){return(w==null?void 0:w.length)>0?w[0]:$}function Q$(w){return(w==null?void 0:w.filter(($)=>!!$))??[]}function Dw(w){return new Promise(($)=>setTimeout($,w))}function zw(w){return(...$)=>{try{let G=w(...$);return HG(G)?G.then((W)=>[void 0,W],(W)=>[W,void 0]):[void 0,G]}catch(G){return[G,void 0]}}}function h$(){let w,$,G=new Promise((W,B)=>{w=W,$=B});return{resolve:w,reject:$,promise:G}}function s(...w){return(...$)=>{return w.slice(1).reduce((G,W)=>W(G),w[0](...$))}}function TG(){}function Tw(w,$){return new KG($).parse(w)}function A$(w,$){if(!w||!$)return w??$??{};let G=Object.getPrototypeOf(w),W=G?{...w}:Object.assign(Object.create(G),w);for(let B of Object.keys($))W[B]=Lw(w[B])&&Lw($[B])?A$(w[B],$[B]):$[B];return W}function d(w,$){if(!w)return[];let G=Object.entries(w);if(G.length===0)return[];return G.reduce((W,B)=>{return W.push($(B[0],B[1])),W},[])}function Mw(w,$=(G)=>G===void 0){if(!w)return{};return Object.keys(w).reduce((G,W)=>{if(!$(w[W]))G[W]=w[W];return G},{})}function RG(w){if(!w||w.length===0)return"";let $=w.toLowerCase();return $.substring(0,1).toUpperCase()+$.substring(1,$.length)}function y(w,...$){var G;if(g(w)){if($.length>0)return y(w.reduce((Z,J,Y)=>{var N;let Q=String($[Y]??""),U=Q.includes(`
|
|
6
|
-
`)&&((N=J.match(/[ \t]*(?=[^\n]*$)/))==null?void 0:N[0]);if(U)Q=Q.replace(/\n(?=[^\n]*?\S)/g,`
|
|
7
|
-
`+U);return Z+J+Q},""));w=w[0]}let W=$[0]??((G=w.match(/^[ \t]*(?=\S)/m))==null?void 0:G[0]);return(W?w.replace(new RegExp(`^${W}`,"gm"),""):w).replace(/^[ \t]*\n|\n[ \t]*$/g,"")}function fw(w){if(!w)return"";return w.split(/(?=[A-Z])|[\.\-\s_]/).map(($)=>$.trim()).filter(($)=>!!$).map(($)=>RG($.toLowerCase())).join(" ")}function f(w,$){if(!w)throw $ instanceof Error?$:Error($??"Assertion failed")}function _w(w){return typeof w==="boolean"}function SG(w){return Rw(w,"[object Date]")}function P(w){if(typeof w!=="object"||w===null)return!w||w===!0;if(SG(w))return Number.isNaN(w.getTime());let $=w.length;if(Ow($))return $===0;let G=w.size;if(Ow(G))return G===0;return Object.keys(w).length===0}function qG(w){return typeof w==="function"}function Kw(w){return w===null||w===void 0}function Ow(w){return typeof w==="number"&&!Number.isNaN(w)}function t(w){return Rw(w,"[object Object]")}function Lw(w){if(typeof w!=="object"||w===null)return!1;let $=Object.getPrototypeOf(w);return $===Object.prototype||$===null||Object.getPrototypeOf($)===null}function HG(w){return!!w&&qG(w.then)}function Vw(w){return typeof w==="string"}function Rw(w,$){return Object.prototype.toString.call(w)===$}var MG=class{constructor({units:w,short:$}){this.units=w,this.short=$}parse(w){var $;let G=w.match(/^(-?\d+(?:\.\d+)?) ?(\w+)?s?$/);if(!G)throw Error(`Invalid quantity, cannot parse: ${w}`);let W=G[2];W=(($=this.short)==null?void 0:$[W])||W;let B=Number.parseFloat(G[1]);if(Math.abs(B)>1&&W.endsWith("s"))W=W.substring(0,W.length-1);if(!this.units[W])throw Error(`Invalid unit: ${W}, makes sure it is one of: ${Object.keys(this.units).join(", ")}`);return B*this.units[W]}},fG,_G,KG,VG=class{constructor(w,$,G){this.semaphore=w,this.request=$,this.weight=G}release(){this.semaphore.release(this),this.release=TG}},O$=class{constructor(w){if(this.maxCapacity=w,this.queue=[],w<=0)throw Error("maxCapacity must be > 0");this.capacity=w}get queueLength(){return this.queue.length}async acquire({signal:w,weight:$=1}={}){if($<=0)throw Error("weight must be > 0");if($>this.maxCapacity)throw Error("weight must be \u2264 maxCapacity");let G=h$(),W=new VG(this,G,$);if(w){let B=()=>{let J=this.queue.indexOf(W);if(J>=0)this.queue.splice(J,1),G.reject(w.reason)};w.addEventListener("abort",B);let Z=()=>{w.removeEventListener("abort",B)};G.promise.then(Z,Z)}if(this.capacity<$)this.queue.push(W),await G.promise;else this.capacity-=$;return W}reject(w){this.acquire=()=>Promise.reject(w),this.queue.forEach(($)=>$.request.reject(w)),this.queue=[]}release(w){this.capacity+=w.weight;let $=this.queue[0];if($&&this.capacity>=$.weight)this.capacity-=$.weight,this.queue.shift(),$.request.resolve()}},g;var F=L(()=>{fG={week:604800000,day:86400000,hour:3600000,minute:60000,second:1000,millisecond:1},_G={w:"week",d:"day",h:"hour",m:"minute",s:"second",ms:"millisecond"},KG=class w extends MG{constructor($){super({units:{...w.units,...$==null?void 0:$.units},short:{...w.shortUnits,...$==null?void 0:$.short}})}static get units(){return fG}static get shortUnits(){return _G}};g=(()=>Array.isArray)()});async function*P$(w,$){let G=Tw($?.interval??"1s");while(!0){let W=await w();if(Array.isArray(W)){if(P(W)&&$?.exitOnEmpty)break;yield*W}else if(W===void 0&&$?.exitOnEmpty)break;else yield W;await Dw(G)}}async function m(w,$){for await(let G of P$(w,$))if(G)return G;throw Error("Timeout: waiting for condition")}var L$=L(()=>{F()});var qw=()=>{};var Hw=({onRequest:w,onSseError:$,onSseEvent:G,responseTransformer:W,responseValidator:B,sseDefaultRetryDelay:Z,sseMaxRetryAttempts:J,sseMaxRetryDelay:Y,sseSleepFn:N,url:Q,...U})=>{let O,R=N??((E)=>new Promise((K)=>setTimeout(K,E)));return{stream:async function*(){let E=Z??3000,K=0,x=U.signal??new AbortController().signal;while(!0){if(x.aborted)break;K++;let r=U.headers instanceof Headers?U.headers:new Headers(U.headers);if(O!==void 0)r.set("Last-Event-ID",O);try{let C={redirect:"follow",...U,body:U.serializedBody,headers:r,signal:x},A=new Request(Q,C);if(w)A=await w(Q,C);let _=await(U.fetch??globalThis.fetch)(A);if(!_.ok)throw Error(`SSE failed: ${_.status} ${_.statusText}`);if(!_.body)throw Error("No body in SSE response");let S=_.body.pipeThrough(new TextDecoderStream).getReader(),o="",$w=()=>{try{S.cancel()}catch{}};x.addEventListener("abort",$w);try{while(!0){let{done:JG,value:YG}=await S.read();if(JG)break;o+=YG,o=o.replace(/\r\n/g,`
|
|
3
|
+
var H1=Object.defineProperty;var P=(w,$)=>{for(var O in $)H1(w,O,{get:$[O],enumerable:!0,configurable:!0,set:(f)=>$[O]=()=>f})};var Y=(w,$)=>()=>(w&&($=w(w=0)),$);var Xw=(w,$,O)=>{if($!=null){if(typeof $!=="object"&&typeof $!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let f;if(O)f=$[Symbol.asyncDispose];if(f===void 0)f=$[Symbol.dispose];if(typeof f!=="function")throw TypeError("Object not disposable");w.push([O,f,$])}else if(O)w.push([O]);return $},Qw=(w,$,O)=>{let f=(G)=>$=O?new SuppressedError(G,$,"An error was suppressed during disposal"):(O=!0,G),B=(G)=>{while(G=w.pop())try{var E=G[1]&&G[1].call(G[2]);if(G[0])return Promise.resolve(E).then(B,(N)=>(f(N),B()))}catch(N){f(N)}if(O)throw $};return B()};var Dw=()=>{};var _w=({onRequest:w,onSseError:$,onSseEvent:O,responseTransformer:f,responseValidator:B,sseDefaultRetryDelay:G,sseMaxRetryAttempts:E,sseMaxRetryDelay:N,sseSleepFn:U,url:Z,...J})=>{let L,z=U??((X)=>new Promise((T)=>setTimeout(T,X)));return{stream:async function*(){let X=G??3000,T=0,b=J.signal??new AbortController().signal;while(!0){if(b.aborted)break;T++;let $$=J.headers instanceof Headers?J.headers:new Headers(J.headers);if(L!==void 0)$$.set("Last-Event-ID",L);try{let g={redirect:"follow",...J,body:J.serializedBody,headers:$$,signal:b},A=new Request(Z,g);if(w)A=await w(Z,g);let R=await(J.fetch??globalThis.fetch)(A);if(!R.ok)throw Error(`SSE failed: ${R.status} ${R.statusText}`);if(!R.body)throw Error("No body in SSE response");let K=R.body.pipeThrough(new TextDecoderStream).getReader(),w$="",Ww=()=>{try{K.cancel()}catch{}};b.addEventListener("abort",Ww);try{while(!0){let{done:z1,value:K1}=await K.read();if(z1)break;w$+=K1,w$=w$.replace(/\r\n/g,`
|
|
8
4
|
`).replace(/\r/g,`
|
|
9
|
-
`);let
|
|
5
|
+
`);let Jw=w$.split(`
|
|
10
6
|
|
|
11
|
-
`);
|
|
12
|
-
`),
|
|
13
|
-
`);try{k=JSON.parse(j),Ww=!0}catch{k=j}}if(Ww){if(B)await B(k);if(W)k=await W(k)}if(G?.({data:k,event:Gw,id:O,retry:E}),Z$.length)yield k}}}finally{x.removeEventListener("abort",$w),S.releaseLock()}break}catch(C){if($?.(C),J!==void 0&&K>=J)break;let A=Math.min(E*2**(K-1),Y??30000);await R(A)}}}()}};var FG=(w)=>{switch(w){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},IG=(w)=>{switch(w){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},jG=(w)=>{switch(w){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},E$=({allowReserved:w,explode:$,name:G,style:W,value:B})=>{if(!$){let Y=(w?B:B.map((N)=>encodeURIComponent(N))).join(IG(W));switch(W){case"label":return`.${Y}`;case"matrix":return`;${G}=${Y}`;case"simple":return Y;default:return`${G}=${Y}`}}let Z=FG(W),J=B.map((Y)=>{if(W==="label"||W==="simple")return w?Y:encodeURIComponent(Y);return u({allowReserved:w,name:G,value:Y})}).join(Z);return W==="label"||W==="matrix"?Z+J:J},u=({allowReserved:w,name:$,value:G})=>{if(G===void 0||G===null)return"";if(typeof G==="object")throw Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return`${$}=${w?G:encodeURIComponent(G)}`},D$=({allowReserved:w,explode:$,name:G,style:W,value:B,valueOnly:Z})=>{if(B instanceof Date)return Z?B.toISOString():`${G}=${B.toISOString()}`;if(W!=="deepObject"&&!$){let N=[];Object.entries(B).forEach(([U,O])=>{N=[...N,U,w?O:encodeURIComponent(O)]});let Q=N.join(",");switch(W){case"form":return`${G}=${Q}`;case"label":return`.${Q}`;case"matrix":return`;${G}=${Q}`;default:return Q}}let J=jG(W),Y=Object.entries(B).map(([N,Q])=>u({allowReserved:w,name:W==="deepObject"?`${G}[${N}]`:N,value:Q})).join(J);return W==="label"||W==="matrix"?J+Y:Y};function x$(w){let $=w.body!==void 0;if($&&w.bodySerializer){if("serializedBody"in w)return w.serializedBody!==void 0&&w.serializedBody!==""?w.serializedBody:null;return w.body!==""?w.body:null}if($)return w.body;return}var hG,AG=({path:w,url:$})=>{let G=$,W=$.match(hG);if(W)for(let B of W){let Z=!1,J=B.substring(1,B.length-1),Y="simple";if(J.endsWith("*"))Z=!0,J=J.substring(0,J.length-1);if(J.startsWith("."))J=J.substring(1),Y="label";else if(J.startsWith(";"))J=J.substring(1),Y="matrix";let N=w[J];if(N===void 0||N===null)continue;if(Array.isArray(N)){G=G.replace(B,E$({explode:Z,name:J,style:Y,value:N}));continue}if(typeof N==="object"){G=G.replace(B,D$({explode:Z,name:J,style:Y,value:N,valueOnly:!0}));continue}if(Y==="matrix"){G=G.replace(B,`;${u({name:J,value:N})}`);continue}let Q=encodeURIComponent(Y==="label"?`.${N}`:N);G=G.replace(B,Q)}return G},Fw=({baseUrl:w,path:$,query:G,querySerializer:W,url:B})=>{let Z=B.startsWith("/")?B:`/${B}`,J=(w??"")+Z;if($)J=AG({path:$,url:J});let Y=G?W(G):"";if(Y.startsWith("?"))Y=Y.substring(1);if(Y)J+=`?${Y}`;return J};var C$=L(()=>{hG=/\{[^{}]+\}/g});var Iw=async(w,$)=>{let G=typeof $==="function"?await $(w):$;if(!G)return;if(w.scheme==="bearer")return`Bearer ${G}`;if(w.scheme==="basic")return`Basic ${btoa(G)}`;return G};var k$;var b$=L(()=>{k$={bodySerializer:(w)=>JSON.stringify(w,($,G)=>typeof G==="bigint"?G.toString():G)}});class z${fns=[];clear(){this.fns=[]}eject(w){let $=this.getInterceptorIndex(w);if(this.fns[$])this.fns[$]=null}exists(w){let $=this.getInterceptorIndex(w);return Boolean(this.fns[$])}getInterceptorIndex(w){if(typeof w==="number")return this.fns[w]?w:-1;return this.fns.indexOf(w)}update(w,$){let G=this.getInterceptorIndex(w);if(this.fns[G])return this.fns[G]=$,w;return!1}use(w){return this.fns.push(w),this.fns.length-1}}var jw=({parameters:w={},...$}={})=>{return(W)=>{let B=[];if(W&&typeof W==="object")for(let Z in W){let J=W[Z];if(J===void 0||J===null)continue;let Y=w[Z]||$;if(Array.isArray(J)){let N=E$({allowReserved:Y.allowReserved,explode:!0,name:Z,style:"form",value:J,...Y.array});if(N)B.push(N)}else if(typeof J==="object"){let N=D$({allowReserved:Y.allowReserved,explode:!0,name:Z,style:"deepObject",value:J,...Y.object});if(N)B.push(N)}else{let N=u({allowReserved:Y.allowReserved,name:Z,value:J});if(N)B.push(N)}}return B.join("&")}},hw=(w)=>{if(!w)return"stream";let $=w.split(";")[0]?.trim();if(!$)return;if($.startsWith("application/json")||$.endsWith("+json"))return"json";if($==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some((G)=>$.startsWith(G)))return"blob";if($.startsWith("text/"))return"text";return},PG=(w,$)=>{if(!$)return!1;if(w.headers.has($)||w.query?.[$]||w.headers.get("Cookie")?.includes(`${$}=`))return!0;return!1},Aw=async({security:w,...$})=>{for(let G of w){if(PG($,G.name))continue;let W=await Iw(G,$.auth);if(!W)continue;let B=G.name??"Authorization";switch(G.in){case"query":if(!$.query)$.query={};$.query[B]=W;break;case"cookie":$.headers.append("Cookie",`${B}=${W}`);break;case"header":default:$.headers.set(B,W);break}}},g$=(w)=>Fw({baseUrl:w.baseUrl,path:w.path,query:w.query,querySerializer:typeof w.querySerializer==="function"?w.querySerializer:jw(w.querySerializer),url:w.url}),c$=(w,$)=>{let G={...w,...$};if(G.baseUrl?.endsWith("/"))G.baseUrl=G.baseUrl.substring(0,G.baseUrl.length-1);return G.headers=T$(w.headers,$.headers),G},xG=(w)=>{let $=[];return w.forEach((G,W)=>{$.push([W,G])}),$},T$=(...w)=>{let $=new Headers;for(let G of w){if(!G)continue;let W=G instanceof Headers?xG(G):Object.entries(G);for(let[B,Z]of W)if(Z===null)$.delete(B);else if(Array.isArray(Z))for(let J of Z)$.append(B,J);else if(Z!==void 0)$.set(B,typeof Z==="object"?JSON.stringify(Z):Z)}return $},Pw=()=>({error:new z$,request:new z$,response:new z$}),CG,kG,a=(w={})=>({...k$,headers:kG,parseAs:"auto",querySerializer:CG,...w});var v$=L(()=>{b$();C$();CG=jw({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),kG={"Content-Type":"application/json"}});var e=(w={})=>{let $=c$(a(),w),G=()=>({...$}),W=(Q)=>{return $=c$($,Q),G()},B=Pw(),Z=async(Q)=>{let U={...$,...Q,fetch:Q.fetch??$.fetch??globalThis.fetch,headers:T$($.headers,Q.headers),serializedBody:void 0};if(U.security)await Aw({...U,security:U.security});if(U.requestValidator)await U.requestValidator(U);if(U.body!==void 0&&U.bodySerializer)U.serializedBody=U.bodySerializer(U.body);if(U.body===void 0||U.serializedBody==="")U.headers.delete("Content-Type");let O=g$(U);return{opts:U,url:O}},J=async(Q)=>{let{opts:U,url:O}=await Z(Q),R={redirect:"follow",...U,body:x$(U)},M=new Request(O,R);for(let V of B.request.fns)if(V)M=await V(M,U);let I=U.fetch,E;try{E=await I(M)}catch(V){let _=V;for(let S of B.error.fns)if(S)_=await S(V,void 0,M,U);if(_=_||{},U.throwOnError)throw _;return U.responseStyle==="data"?void 0:{error:_,request:M,response:void 0}}for(let V of B.response.fns)if(V)E=await V(E,M,U);let K={request:M,response:E};if(E.ok){let V=(U.parseAs==="auto"?hw(E.headers.get("Content-Type")):U.parseAs)??"json";if(E.status===204||E.headers.get("Content-Length")==="0"){let S;switch(V){case"arrayBuffer":case"blob":case"text":S=await E[V]();break;case"formData":S=new FormData;break;case"stream":S=E.body;break;case"json":default:S={};break}return U.responseStyle==="data"?S:{data:S,...K}}let _;switch(V){case"arrayBuffer":case"blob":case"formData":case"text":_=await E[V]();break;case"json":{let S=await E.text();_=S?JSON.parse(S):{};break}case"stream":return U.responseStyle==="data"?E.body:{data:E.body,...K}}if(V==="json"){if(U.responseValidator)await U.responseValidator(_);if(U.responseTransformer)_=await U.responseTransformer(_)}return U.responseStyle==="data"?_:{data:_,...K}}let x=await E.text(),r;try{r=JSON.parse(x)}catch{}let C=r??x,A=C;for(let V of B.error.fns)if(V)A=await V(C,E,M,U);if(A=A||{},U.throwOnError)throw A;return U.responseStyle==="data"?void 0:{error:A,...K}},Y=(Q)=>(U)=>J({...U,method:Q}),N=(Q)=>async(U)=>{let{opts:O,url:R}=await Z(U);return Hw({...O,body:O.body,headers:O.headers,method:Q,onRequest:async(M,I)=>{let E=new Request(M,I);for(let K of B.request.fns)if(K)E=await K(E,O);return E},serializedBody:x$(O),url:R})};return{buildUrl:g$,connect:Y("CONNECT"),delete:Y("DELETE"),get:Y("GET"),getConfig:G,head:Y("HEAD"),interceptors:B,options:Y("OPTIONS"),patch:Y("PATCH"),post:Y("POST"),put:Y("PUT"),request:J,setConfig:W,sse:{connect:N("CONNECT"),delete:N("DELETE"),get:N("GET"),head:N("HEAD"),options:N("OPTIONS"),patch:N("PATCH"),post:N("POST"),put:N("PUT"),trace:N("TRACE")},trace:Y("TRACE")}};var d$=L(()=>{C$();v$()});var bG,gG,xw=(w,$)=>{if(!$)$=new Map;for(let G of w)if("in"in G){if(G.key)$.set(G.key,{in:G.in,map:G.map})}else if("key"in G)$.set(G.key,{map:G.map});else if(G.args)xw(G.args,$);return $},cG=(w)=>{for(let[$,G]of Object.entries(w))if(G&&typeof G==="object"&&!Object.keys(G).length)delete w[$]},X=(w,$)=>{let G={body:{},headers:{},path:{},query:{}},W=xw($),B;for(let[Z,J]of w.entries()){if($[Z])B=$[Z];if(!B)continue;if("in"in B)if(B.key){let Y=W.get(B.key),N=Y.map||B.key;if(Y.in)G[Y.in][N]=J}else G.body=J;else for(let[Y,N]of Object.entries(J??{})){let Q=W.get(Y);if(Q)if(Q.in){let U=Q.map||Y;G[Q.in][U]=N}else G[Q.map]=N;else{let U=gG.find(([O])=>Y.startsWith(O));if(U){let[O,R]=U;G[R][Y.slice(O.length)]=N}else if("allowExtra"in B&&B.allowExtra){for(let[O,R]of Object.entries(B.allowExtra))if(R){G[O][Y]=N;break}}}}}return cG(G),G};var Cw=L(()=>{bG={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},gG=Object.entries(bG)});var y$=L(()=>{b$();Cw();d$();v$()});var kw;var bw=L(()=>{y$();kw=e(a({baseUrl:"http://localhost:4096"}))});class D{client;constructor(w){this.client=w?.client??kw}}class gw{defaultKey="default";instances=new Map;get(w){let $=this.instances.get(w??this.defaultKey);if(!$)throw Error('No SDK client found. Create one with "new OpencodeClient()" to fix this error.');return $}set(w,$){this.instances.set($??this.defaultKey,w)}}var cw,vw,dw,yw,mw,uw,lw,pw,nw,iw,rw,ow,sw,tw,aw,ew,$0,w0,G0,W0,B0,Z0,J0,Y0,N0,X0,U0,Q0,O0,L0,M$;var E0=L(()=>{bw();y$();cw=class cw extends D{get(w){return(w?.client??this.client).get({url:"/global/config",...w})}update(w,$){let G=X([w],[{args:[{key:"config",map:"body"}]}]);return($?.client??this.client).patch({url:"/global/config",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}};vw=class vw extends D{health(w){return(w?.client??this.client).get({url:"/global/health",...w})}event(w){return(w?.client??this.client).sse.get({url:"/global/event",...w})}dispose(w){return(w?.client??this.client).post({url:"/global/dispose",...w})}_config;get config(){return this._config??=new cw({client:this.client})}};dw=class dw extends D{remove(w,$){let G=X([w],[{args:[{in:"path",key:"providerID"}]}]);return($?.client??this.client).delete({url:"/auth/{providerID}",...$,...G})}set(w,$){let G=X([w],[{args:[{in:"path",key:"providerID"},{key:"auth",map:"body"}]}]);return($?.client??this.client).put({url:"/auth/{providerID}",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}};yw=class yw extends D{list(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/project",...$,...G})}current(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/project/current",...$,...G})}update(w,$){let G=X([w],[{args:[{in:"path",key:"projectID"},{in:"query",key:"directory"},{in:"body",key:"name"},{in:"body",key:"icon"},{in:"body",key:"commands"}]}]);return($?.client??this.client).patch({url:"/project/{projectID}",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}};mw=class mw extends D{list(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/pty",...$,...G})}create(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"command"},{in:"body",key:"args"},{in:"body",key:"cwd"},{in:"body",key:"title"},{in:"body",key:"env"}]}]);return($?.client??this.client).post({url:"/pty",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}remove(w,$){let G=X([w],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/pty/{ptyID}",...$,...G})}get(w,$){let G=X([w],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/pty/{ptyID}",...$,...G})}update(w,$){let G=X([w],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"size"}]}]);return($?.client??this.client).put({url:"/pty/{ptyID}",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}connect(w,$){let G=X([w],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/pty/{ptyID}/connect",...$,...G})}};uw=class uw extends D{get(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/config",...$,...G})}update(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{key:"config",map:"body"}]}]);return($?.client??this.client).patch({url:"/config",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}providers(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/config/providers",...$,...G})}};lw=class lw extends D{ids(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/experimental/tool/ids",...$,...G})}list(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"provider"},{in:"query",key:"model"}]}]);return($?.client??this.client).get({url:"/experimental/tool",...$,...G})}};pw=class pw extends D{remove(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{key:"worktreeRemoveInput",map:"body"}]}]);return($?.client??this.client).delete({url:"/experimental/worktree",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}list(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/experimental/worktree",...$,...G})}create(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{key:"worktreeCreateInput",map:"body"}]}]);return($?.client??this.client).post({url:"/experimental/worktree",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}reset(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{key:"worktreeResetInput",map:"body"}]}]);return($?.client??this.client).post({url:"/experimental/worktree/reset",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}};nw=class nw extends D{list(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/experimental/resource",...$,...G})}};iw=class iw extends D{_resource;get resource(){return this._resource??=new nw({client:this.client})}};rw=class rw extends D{list(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"roots"},{in:"query",key:"start"},{in:"query",key:"search"},{in:"query",key:"limit"}]}]);return($?.client??this.client).get({url:"/session",...$,...G})}create(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"parentID"},{in:"body",key:"title"},{in:"body",key:"permission"}]}]);return($?.client??this.client).post({url:"/session",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}status(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/status",...$,...G})}delete(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/session/{sessionID}",...$,...G})}get(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}",...$,...G})}update(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"time"}]}]);return($?.client??this.client).patch({url:"/session/{sessionID}",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}children(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/children",...$,...G})}todo(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/todo",...$,...G})}init(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"modelID"},{in:"body",key:"providerID"},{in:"body",key:"messageID"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/init",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}fork(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/fork",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}abort(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/abort",...$,...G})}unshare(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/session/{sessionID}/share",...$,...G})}share(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/share",...$,...G})}diff(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"messageID"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/diff",...$,...G})}summarize(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"providerID"},{in:"body",key:"modelID"},{in:"body",key:"auto"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/summarize",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}messages(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"limit"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/message",...$,...G})}prompt(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"model"},{in:"body",key:"agent"},{in:"body",key:"noReply"},{in:"body",key:"tools"},{in:"body",key:"system"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/message",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}message(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/message/{messageID}",...$,...G})}promptAsync(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"model"},{in:"body",key:"agent"},{in:"body",key:"noReply"},{in:"body",key:"tools"},{in:"body",key:"system"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/prompt_async",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}command(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"arguments"},{in:"body",key:"command"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/command",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}shell(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"command"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/shell",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}revert(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"partID"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/revert",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}unrevert(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/unrevert",...$,...G})}};ow=class ow extends D{delete(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...$,...G})}update(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"},{key:"part",map:"body"}]}]);return($?.client??this.client).patch({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}};sw=class sw extends D{respond(w,$){let G=X([w],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"permissionID"},{in:"query",key:"directory"},{in:"body",key:"response"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/permissions/{permissionID}",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}reply(w,$){let G=X([w],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"body",key:"reply"},{in:"body",key:"message"}]}]);return($?.client??this.client).post({url:"/permission/{requestID}/reply",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}list(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/permission",...$,...G})}};tw=class tw extends D{list(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/question",...$,...G})}reply(w,$){let G=X([w],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"body",key:"answers"}]}]);return($?.client??this.client).post({url:"/question/{requestID}/reply",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}reject(w,$){let G=X([w],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/question/{requestID}/reject",...$,...G})}};aw=class aw extends D{authorize(w,$){let G=X([w],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"body",key:"method"}]}]);return($?.client??this.client).post({url:"/provider/{providerID}/oauth/authorize",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}callback(w,$){let G=X([w],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"body",key:"method"},{in:"body",key:"code"}]}]);return($?.client??this.client).post({url:"/provider/{providerID}/oauth/callback",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}};ew=class ew extends D{list(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/provider",...$,...G})}auth(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/provider/auth",...$,...G})}_oauth;get oauth(){return this._oauth??=new aw({client:this.client})}};$0=class $0 extends D{text(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"pattern"}]}]);return($?.client??this.client).get({url:"/find",...$,...G})}files(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"query"},{in:"query",key:"dirs"},{in:"query",key:"type"},{in:"query",key:"limit"}]}]);return($?.client??this.client).get({url:"/find/file",...$,...G})}symbols(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"query"}]}]);return($?.client??this.client).get({url:"/find/symbol",...$,...G})}};w0=class w0 extends D{list(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"path"}]}]);return($?.client??this.client).get({url:"/file",...$,...G})}read(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"path"}]}]);return($?.client??this.client).get({url:"/file/content",...$,...G})}status(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/file/status",...$,...G})}};G0=class G0 extends D{remove(w,$){let G=X([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/mcp/{name}/auth",...$,...G})}start(w,$){let G=X([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/auth",...$,...G})}callback(w,$){let G=X([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"body",key:"code"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/auth/callback",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}authenticate(w,$){let G=X([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/auth/authenticate",...$,...G})}};W0=class W0 extends D{status(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/mcp",...$,...G})}add(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"name"},{in:"body",key:"config"}]}]);return($?.client??this.client).post({url:"/mcp",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}connect(w,$){let G=X([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/connect",...$,...G})}disconnect(w,$){let G=X([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/disconnect",...$,...G})}_auth;get auth(){return this._auth??=new G0({client:this.client})}};B0=class B0 extends D{next(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/tui/control/next",...$,...G})}response(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{key:"body",map:"body"}]}]);return($?.client??this.client).post({url:"/tui/control/response",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}};Z0=class Z0 extends D{appendPrompt(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"text"}]}]);return($?.client??this.client).post({url:"/tui/append-prompt",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}openHelp(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-help",...$,...G})}openSessions(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-sessions",...$,...G})}openThemes(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-themes",...$,...G})}openModels(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-models",...$,...G})}submitPrompt(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/submit-prompt",...$,...G})}clearPrompt(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/clear-prompt",...$,...G})}executeCommand(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"command"}]}]);return($?.client??this.client).post({url:"/tui/execute-command",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}showToast(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"message"},{in:"body",key:"variant"},{in:"body",key:"duration"}]}]);return($?.client??this.client).post({url:"/tui/show-toast",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}publish(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{key:"body",map:"body"}]}]);return($?.client??this.client).post({url:"/tui/publish",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}selectSession(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"sessionID"}]}]);return($?.client??this.client).post({url:"/tui/select-session",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}_control;get control(){return this._control??=new B0({client:this.client})}};J0=class J0 extends D{dispose(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/instance/dispose",...$,...G})}};Y0=class Y0 extends D{get(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/path",...$,...G})}};N0=class N0 extends D{get(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/vcs",...$,...G})}};X0=class X0 extends D{list(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/command",...$,...G})}};U0=class U0 extends D{log(w,$){let G=X([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"service"},{in:"body",key:"level"},{in:"body",key:"message"},{in:"body",key:"extra"}]}]);return($?.client??this.client).post({url:"/log",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}agents(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/agent",...$,...G})}skills(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/skill",...$,...G})}};Q0=class Q0 extends D{status(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/lsp",...$,...G})}};O0=class O0 extends D{status(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/formatter",...$,...G})}};L0=class L0 extends D{subscribe(w,$){let G=X([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).sse.get({url:"/event",...$,...G})}};M$=class M$ extends D{static __registry=new gw;constructor(w){super(w);M$.__registry.set(this,w?.key)}_global;get global(){return this._global??=new vw({client:this.client})}_auth;get auth(){return this._auth??=new dw({client:this.client})}_project;get project(){return this._project??=new yw({client:this.client})}_pty;get pty(){return this._pty??=new mw({client:this.client})}_config;get config(){return this._config??=new uw({client:this.client})}_tool;get tool(){return this._tool??=new lw({client:this.client})}_worktree;get worktree(){return this._worktree??=new pw({client:this.client})}_experimental;get experimental(){return this._experimental??=new iw({client:this.client})}_session;get session(){return this._session??=new rw({client:this.client})}_part;get part(){return this._part??=new ow({client:this.client})}_permission;get permission(){return this._permission??=new sw({client:this.client})}_question;get question(){return this._question??=new tw({client:this.client})}_provider;get provider(){return this._provider??=new ew({client:this.client})}_find;get find(){return this._find??=new $0({client:this.client})}_file;get file(){return this._file??=new w0({client:this.client})}_mcp;get mcp(){return this._mcp??=new W0({client:this.client})}_tui;get tui(){return this._tui??=new Z0({client:this.client})}_instance;get instance(){return this._instance??=new J0({client:this.client})}_path;get path(){return this._path??=new Y0({client:this.client})}_vcs;get vcs(){return this._vcs??=new N0({client:this.client})}_command;get command(){return this._command??=new X0({client:this.client})}_app;get app(){return this._app??=new U0({client:this.client})}_lsp;get lsp(){return this._lsp??=new Q0({client:this.client})}_formatter;get formatter(){return this._formatter??=new O0({client:this.client})}_event;get event(){return this._event??=new L0({client:this.client})}}});function m$(w){if(!w?.fetch)w={...w,fetch:(W)=>{return W.timeout=!1,fetch(W)}};if(w?.directory){let W=/[^\x00-\x7F]/.test(w.directory)?encodeURIComponent(w.directory):w.directory;w.headers={...w.headers,"x-opencode-directory":W}}let $=e(w);return new M$({client:$})}var D0=L(()=>{d$();E0();qw()});async function T0(w){if(w.loopUpForDesktopServer){let $=await vG();if($){let G=m$(A$(w,$??{}));if((await G.global.health()).data?.healthy)return G;else console.warn("Desktop server is not healthy, re-launch Opencode app")}else console.warn("Desktop server is not registered, launch Opencode app")}return m$(w)}async function vG(){if(!await z0.exists())return;let $=await z0.json();return dG($)}function dG(w){return{baseUrl:`http://${w.hostname}:${w.port}`,headers:{Authorization:`Basic ${btoa(`${w.username}:${w.password}`)}`}}}var z0,N5;var M0=L(()=>{D0();F();z0=Bun.file(`${Bun.env.HOME}/Library/Application Support/ai.opencode.desktop/store.json`),N5={client:Bun.env.OPENCODE_CLIENT??"unknown",password:Bun.env.OPENCODE_SERVER_PASSWORD,username:Bun.env.OPENCODE_SERVER_USERNAME}});async function f0(w,$){let{data:G}=await w.project.current({directory:$??process.cwd()});if(G&&G.id!=="global")return G.worktree;let{data:W,error:B}=await w.project.list();return f(B===void 0,`Failed to list projects: ${B}`),f(W,"No projects found"),f(W.length>0,`No projects found: ${W.length}`),X$.select("Select a project",{options:W.map((Z)=>({label:Z.name??Z.worktree,value:Z.worktree,hint:Z.name?`${Z.worktree} - ${Z.id.slice(0,5)}`:Z.id.slice(0,5)}))})}function _0(w){return w.name??w.worktree}var u$=L(()=>{U$();F()});var $$,l$;var p$=L(()=>{$$=class $$ extends Error{output;constructor(w,$){let G=w.stdout.toString().trim()||void 0,B=(w.stderr.toString().trim()||void 0)??G??"Unknown shell error";super(B,{cause:$.cause});this.output=w}};l$=class l$ extends Error{exitCode;constructor(w){let $=w.exitCode;super(`Exited with code '${$}'`);this.exitCode=$}}});var H={};b(H,{use:()=>yG,create:()=>V0});function yG(w){if(w instanceof Bun.$.Shell)return V0(w);if(R0 in w)return w;throw Error("Invalid client input")}function V0(w){let $=w,W=Object.assign((B,...Z)=>{let J=0,Y=[...B],N=Z.flatMap((O,R)=>{if(!t(O))return[O];let M=d(Mw(O),(E,K)=>{if(_w(K))return`--${E}`;if(g(K))return`--${E}=${Q$(K).join(",")}`;return`--${E}='${String(K)}'`});if(P(M))return[""];let I=M.length-1;return Y.splice(R+1+J,0,...Array(I).fill(" ")),J+=I,M}),Q=Object.assign(Y,{raw:[...Y]}),U=$(Q,...N);return mG(U)},{[R0]:!0,cwd(B){return $=$.cwd(B),W},env(B){return $=$.env(B),W}});return W}function mG(w){return{json:async($)=>{let G=await w.quiet($?.quiet).nothrow(),[W,B]=await zw(()=>G.json())();if(B)return B;throw new $$(G,{cause:W})},text:async($)=>{let G=await w.quiet($?.quiet).nothrow(),W=G.stdout.toString().trim()||void 0;if(G.exitCode!==0)return[new $$(G,{cause:new l$(G)}),W];return[void 0,W]}}}var R0;var S0=L(()=>{F();p$();R0=Symbol("shell_client")});var w$=L(()=>{S0();p$()});var h={};b(h,{use:()=>uG,update:()=>_$,show:()=>nG,list:()=>n$,find:()=>K$,close:()=>pG,claim:()=>lG});async function uG(w,$,G){if("status"in $&&!G?.force)return $;return j$(await n$(w,{...G,ids:[$.id]}))}async function _$(w,$,G={}){let B=await H.use(w)`bd update ${$.id} ${G} --json`.json(),[Z]=B;return f(Z,`Issue '${$.id}' not found`),Z}async function lG(w,$,G={}){let B=await H.use(w)`bd update ${$.id} ${G} --claim --json`.json(),[Z]=B;return f(Z,`Issue '${$.id}' not found`),Z}async function pG(w,$,G={}){let B=await H.use(w)`bd close ${$.id} ${G} --json`.json(),[Z]=B;return f(Z,`Issue '${$.id}' not found`),Z}async function nG(w,$){return H.use(w)`bd show ${$.id}`.text()}var n$,K$;var V$=L(()=>{F();w$();n$=Object.assign(async(w,$={})=>{if(P($.ids))return[];return await H.use(w)`bd list ${$} --json`.json()},{ready:async(w,$={})=>{return await H.use(w)`bd ready ${$} --json`.json()}});((T5)=>{async function w($,G,W){return(await n$($,W)).find((Z)=>Z.external_ref===G)}T5.byExternalRef=w})(K$||={})});var l={};b(l,{use:()=>oG,stuck:()=>iG,state:()=>i$,done:()=>rG});async function iG(w,$,G){let W=await i$(w,$,"stuck");return await _$(w,{id:W.agent},{"add-label":q0(G.context),description:G.reason}),W}async function rG(w,$,G={}){let W=await i$(w,$,"done");return await _$(w,{id:W.agent},{"add-label":q0(G.context),description:""}),W}async function i$(w,$,G){return await H.use(w)`bd agent state gram-${$} ${G} --json`.json()}async function oG(w,$){let G=H.use(w),W="slug"in $?`gram-${$.slug}`:$.id;return await G`bd agent show ${W} --json`.json()}function q0(w){if(!w)return;let $=Q$(d(w,(G,W)=>W&&`${G}:${W}`));return P($)?void 0:$}var H0=L(()=>{F();w$();V$()});var p={};b(p,{update:()=>tG,find:()=>F0,create:()=>sG});async function sG(w,$){let G=H.use(w),W={title:$.title,description:$.description,"external-ref":$.file};return await G`bd create --type epic ${W} --json`.json()}async function tG(w,$,G){let W=H.use(w),B={title:G.title,description:G.description,"external-ref":G.file},Z=await W`bd update ${$.id} --type epic ${B} --json`.json(),[J]=Z;return f(J,`Issue '${$.id}' not found`),J}var F0;var I0=L(()=>{F();w$();V$();((_5)=>{function w($,G){return K$.byExternalRef($,G,{type:"epic"})}_5.byExternalRef=w})(F0||={})});var h0=L(()=>{w$()});var G$=L(()=>{H0();I0();V$();h0()});var n={};b(n,{watch:()=>x0,use:()=>eG,scan:()=>C0,MARKDOWN:()=>o$,Frontmatter:()=>aG});import*as P0 from"fs";import*as S$ from"path";import{z as A0}from"zod";function eG(w){if(w.watch)return x0(w);else return C0(w)}async function*x0(w){let $=new Map,G=[],W,B=P0.watch(w.target,async(Z,J)=>{if(Z==="change"&&J){if(!o$.match(J))return;if(w.ignore?.match(J))return;let Y=r$(w.target,J),N=Bun.hash(await Y.file.text());if($.get(J)===N)return;if($.set(J,N),G.push(r$(w.target,J)),W)W.resolve(J),W=void 0}});try{while(!0){let Z=G.shift();if(Z)yield Z;else W=h$(),await W.promise}}finally{B.close()}}async function*C0(w){for await(let $ of o$.scan({cwd:w.target})){if(w.ignore?.match($))continue;yield r$(w.target,$)}}function r$(w,$){let G=S$.join(w,$);return{filename:$,filepath:S$.parse(G),file:Bun.file(G)}}var o$,aG;var k0=L(()=>{F();o$=new Bun.Glob("**/*.md"),aG=A0.object({issue:A0.string().optional()})});var s$=L(()=>{k0()});function g0(w,$){let G=$?.delimiter??"---";if(!w.trimStart().startsWith(G))return{metadata:{},content:w};let W=w.split(`
|
|
14
|
-
`)
|
|
15
|
-
`),
|
|
16
|
-
`).
|
|
17
|
-
${
|
|
18
|
-
`
|
|
19
|
-
|
|
20
|
-
`)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
`}else if(
|
|
25
|
-
`;
|
|
26
|
-
|
|
27
|
-
`
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
7
|
+
`);w$=Jw.pop()??"";for(let q1 of Jw){let F1=q1.split(`
|
|
8
|
+
`),N$=[],Zw;for(let h of F1)if(h.startsWith("data:"))N$.push(h.replace(/^data:\s*/,""));else if(h.startsWith("event:"))Zw=h.replace(/^event:\s*/,"");else if(h.startsWith("id:"))L=h.replace(/^id:\s*/,"");else if(h.startsWith("retry:")){let Yw=Number.parseInt(h.replace(/^retry:\s*/,""),10);if(!Number.isNaN(Yw))X=Yw}let c,Lw=!1;if(N$.length){let h=N$.join(`
|
|
9
|
+
`);try{c=JSON.parse(h),Lw=!0}catch{c=h}}if(Lw){if(B)await B(c);if(f)c=await f(c)}if(O?.({data:c,event:Zw,id:L,retry:X}),N$.length)yield c}}}finally{b.removeEventListener("abort",Ww),K.releaseLock()}break}catch(g){if($?.(g),E!==void 0&&T>=E)break;let A=Math.min(X*2**(T-1),N??30000);await z(A)}}}()}};var I1=(w)=>{switch(w){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},h1=(w)=>{switch(w){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},j1=(w)=>{switch(w){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},U$=({allowReserved:w,explode:$,name:O,style:f,value:B})=>{if(!$){let N=(w?B:B.map((U)=>encodeURIComponent(U))).join(h1(f));switch(f){case"label":return`.${N}`;case"matrix":return`;${O}=${N}`;case"simple":return N;default:return`${O}=${N}`}}let G=I1(f),E=B.map((N)=>{if(f==="label"||f==="simple")return w?N:encodeURIComponent(N);return v({allowReserved:w,name:O,value:N})}).join(G);return f==="label"||f==="matrix"?G+E:E},v=({allowReserved:w,name:$,value:O})=>{if(O===void 0||O===null)return"";if(typeof O==="object")throw Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return`${$}=${w?O:encodeURIComponent(O)}`},W$=({allowReserved:w,explode:$,name:O,style:f,value:B,valueOnly:G})=>{if(B instanceof Date)return G?B.toISOString():`${O}=${B.toISOString()}`;if(f!=="deepObject"&&!$){let U=[];Object.entries(B).forEach(([J,L])=>{U=[...U,J,w?L:encodeURIComponent(L)]});let Z=U.join(",");switch(f){case"form":return`${O}=${Z}`;case"label":return`.${Z}`;case"matrix":return`;${O}=${Z}`;default:return Z}}let E=j1(f),N=Object.entries(B).map(([U,Z])=>v({allowReserved:w,name:f==="deepObject"?`${O}[${U}]`:U,value:Z})).join(E);return f==="label"||f==="matrix"?E+N:N};function j$(w){let $=w.body!==void 0;if($&&w.bodySerializer){if("serializedBody"in w)return w.serializedBody!==void 0&&w.serializedBody!==""?w.serializedBody:null;return w.body!==""?w.body:null}if($)return w.body;return}var A1,P1=({path:w,url:$})=>{let O=$,f=$.match(A1);if(f)for(let B of f){let G=!1,E=B.substring(1,B.length-1),N="simple";if(E.endsWith("*"))G=!0,E=E.substring(0,E.length-1);if(E.startsWith("."))E=E.substring(1),N="label";else if(E.startsWith(";"))E=E.substring(1),N="matrix";let U=w[E];if(U===void 0||U===null)continue;if(Array.isArray(U)){O=O.replace(B,U$({explode:G,name:E,style:N,value:U}));continue}if(typeof U==="object"){O=O.replace(B,W$({explode:G,name:E,style:N,value:U,valueOnly:!0}));continue}if(N==="matrix"){O=O.replace(B,`;${v({name:E,value:U})}`);continue}let Z=encodeURIComponent(N==="label"?`.${U}`:U);O=O.replace(B,Z)}return O},Sw=({baseUrl:w,path:$,query:O,querySerializer:f,url:B})=>{let G=B.startsWith("/")?B:`/${B}`,E=(w??"")+G;if($)E=P1({path:$,url:E});let N=O?f(O):"";if(N.startsWith("?"))N=N.substring(1);if(N)E+=`?${N}`;return E};var A$=Y(()=>{A1=/\{[^{}]+\}/g});var Tw=async(w,$)=>{let O=typeof $==="function"?await $(w):$;if(!O)return;if(w.scheme==="bearer")return`Bearer ${O}`;if(w.scheme==="basic")return`Basic ${btoa(O)}`;return O};var P$;var x$=Y(()=>{P$={bodySerializer:(w)=>JSON.stringify(w,($,O)=>typeof O==="bigint"?O.toString():O)}});class J${fns=[];clear(){this.fns=[]}eject(w){let $=this.getInterceptorIndex(w);if(this.fns[$])this.fns[$]=null}exists(w){let $=this.getInterceptorIndex(w);return Boolean(this.fns[$])}getInterceptorIndex(w){if(typeof w==="number")return this.fns[w]?w:-1;return this.fns.indexOf(w)}update(w,$){let O=this.getInterceptorIndex(w);if(this.fns[O])return this.fns[O]=$,w;return!1}use(w){return this.fns.push(w),this.fns.length-1}}var Mw=({parameters:w={},...$}={})=>{return(f)=>{let B=[];if(f&&typeof f==="object")for(let G in f){let E=f[G];if(E===void 0||E===null)continue;let N=w[G]||$;if(Array.isArray(E)){let U=U$({allowReserved:N.allowReserved,explode:!0,name:G,style:"form",value:E,...N.array});if(U)B.push(U)}else if(typeof E==="object"){let U=W$({allowReserved:N.allowReserved,explode:!0,name:G,style:"deepObject",value:E,...N.object});if(U)B.push(U)}else{let U=v({allowReserved:N.allowReserved,name:G,value:E});if(U)B.push(U)}}return B.join("&")}},Rw=(w)=>{if(!w)return"stream";let $=w.split(";")[0]?.trim();if(!$)return;if($.startsWith("application/json")||$.endsWith("+json"))return"json";if($==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some((O)=>$.startsWith(O)))return"blob";if($.startsWith("text/"))return"text";return},x1=(w,$)=>{if(!$)return!1;if(w.headers.has($)||w.query?.[$]||w.headers.get("Cookie")?.includes(`${$}=`))return!0;return!1},Vw=async({security:w,...$})=>{for(let O of w){if(x1($,O.name))continue;let f=await Tw(O,$.auth);if(!f)continue;let B=O.name??"Authorization";switch(O.in){case"query":if(!$.query)$.query={};$.query[B]=f;break;case"cookie":$.headers.append("Cookie",`${B}=${f}`);break;case"header":default:$.headers.set(B,f);break}}},C$=(w)=>Sw({baseUrl:w.baseUrl,path:w.path,query:w.query,querySerializer:typeof w.querySerializer==="function"?w.querySerializer:Mw(w.querySerializer),url:w.url}),k$=(w,$)=>{let O={...w,...$};if(O.baseUrl?.endsWith("/"))O.baseUrl=O.baseUrl.substring(0,O.baseUrl.length-1);return O.headers=Z$(w.headers,$.headers),O},C1=(w)=>{let $=[];return w.forEach((O,f)=>{$.push([f,O])}),$},Z$=(...w)=>{let $=new Headers;for(let O of w){if(!O)continue;let f=O instanceof Headers?C1(O):Object.entries(O);for(let[B,G]of f)if(G===null)$.delete(B);else if(Array.isArray(G))for(let E of G)$.append(B,E);else if(G!==void 0)$.set(B,typeof G==="object"?JSON.stringify(G):G)}return $},zw=()=>({error:new J$,request:new J$,response:new J$}),k1,b1,O$=(w={})=>({...P$,headers:b1,parseAs:"auto",querySerializer:k1,...w});var b$=Y(()=>{x$();A$();k1=Mw({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),b1={"Content-Type":"application/json"}});var f$=(w={})=>{let $=k$(O$(),w),O=()=>({...$}),f=(Z)=>{return $=k$($,Z),O()},B=zw(),G=async(Z)=>{let J={...$,...Z,fetch:Z.fetch??$.fetch??globalThis.fetch,headers:Z$($.headers,Z.headers),serializedBody:void 0};if(J.security)await Vw({...J,security:J.security});if(J.requestValidator)await J.requestValidator(J);if(J.body!==void 0&&J.bodySerializer)J.serializedBody=J.bodySerializer(J.body);if(J.body===void 0||J.serializedBody==="")J.headers.delete("Content-Type");let L=C$(J);return{opts:J,url:L}},E=async(Z)=>{let{opts:J,url:L}=await G(Z),z={redirect:"follow",...J,body:j$(J)},M=new Request(L,z);for(let V of B.request.fns)if(V)M=await V(M,J);let F=J.fetch,X;try{X=await F(M)}catch(V){let R=V;for(let K of B.error.fns)if(K)R=await K(V,void 0,M,J);if(R=R||{},J.throwOnError)throw R;return J.responseStyle==="data"?void 0:{error:R,request:M,response:void 0}}for(let V of B.response.fns)if(V)X=await V(X,M,J);let T={request:M,response:X};if(X.ok){let V=(J.parseAs==="auto"?Rw(X.headers.get("Content-Type")):J.parseAs)??"json";if(X.status===204||X.headers.get("Content-Length")==="0"){let K;switch(V){case"arrayBuffer":case"blob":case"text":K=await X[V]();break;case"formData":K=new FormData;break;case"stream":K=X.body;break;case"json":default:K={};break}return J.responseStyle==="data"?K:{data:K,...T}}let R;switch(V){case"arrayBuffer":case"blob":case"formData":case"text":R=await X[V]();break;case"json":{let K=await X.text();R=K?JSON.parse(K):{};break}case"stream":return J.responseStyle==="data"?X.body:{data:X.body,...T}}if(V==="json"){if(J.responseValidator)await J.responseValidator(R);if(J.responseTransformer)R=await J.responseTransformer(R)}return J.responseStyle==="data"?R:{data:R,...T}}let b=await X.text(),$$;try{$$=JSON.parse(b)}catch{}let g=$$??b,A=g;for(let V of B.error.fns)if(V)A=await V(g,X,M,J);if(A=A||{},J.throwOnError)throw A;return J.responseStyle==="data"?void 0:{error:A,...T}},N=(Z)=>(J)=>E({...J,method:Z}),U=(Z)=>async(J)=>{let{opts:L,url:z}=await G(J);return _w({...L,body:L.body,headers:L.headers,method:Z,onRequest:async(M,F)=>{let X=new Request(M,F);for(let T of B.request.fns)if(T)X=await T(X,L);return X},serializedBody:j$(L),url:z})};return{buildUrl:C$,connect:N("CONNECT"),delete:N("DELETE"),get:N("GET"),getConfig:O,head:N("HEAD"),interceptors:B,options:N("OPTIONS"),patch:N("PATCH"),post:N("POST"),put:N("PUT"),request:E,setConfig:f,sse:{connect:U("CONNECT"),delete:U("DELETE"),get:U("GET"),head:U("HEAD"),options:U("OPTIONS"),patch:U("PATCH"),post:U("POST"),put:U("PUT"),trace:U("TRACE")},trace:N("TRACE")}};var g$=Y(()=>{A$();b$()});var g1,c1,Kw=(w,$)=>{if(!$)$=new Map;for(let O of w)if("in"in O){if(O.key)$.set(O.key,{in:O.in,map:O.map})}else if("key"in O)$.set(O.key,{map:O.map});else if(O.args)Kw(O.args,$);return $},d1=(w)=>{for(let[$,O]of Object.entries(w))if(O&&typeof O==="object"&&!Object.keys(O).length)delete w[$]},W=(w,$)=>{let O={body:{},headers:{},path:{},query:{}},f=Kw($),B;for(let[G,E]of w.entries()){if($[G])B=$[G];if(!B)continue;if("in"in B)if(B.key){let N=f.get(B.key),U=N.map||B.key;if(N.in)O[N.in][U]=E}else O.body=E;else for(let[N,U]of Object.entries(E??{})){let Z=f.get(N);if(Z)if(Z.in){let J=Z.map||N;O[Z.in][J]=U}else O[Z.map]=U;else{let J=c1.find(([L])=>N.startsWith(L));if(J){let[L,z]=J;O[z][N.slice(L.length)]=U}else if("allowExtra"in B&&B.allowExtra){for(let[L,z]of Object.entries(B.allowExtra))if(z){O[L][N]=U;break}}}}}return d1(O),O};var qw=Y(()=>{g1={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},c1=Object.entries(g1)});var c$=Y(()=>{x$();qw();g$();b$()});var Fw;var Hw=Y(()=>{c$();Fw=f$(O$({baseUrl:"http://localhost:4096"}))});class Q{client;constructor(w){this.client=w?.client??Fw}}class Iw{defaultKey="default";instances=new Map;get(w){let $=this.instances.get(w??this.defaultKey);if(!$)throw Error('No SDK client found. Create one with "new OpencodeClient()" to fix this error.');return $}set(w,$){this.instances.set($??this.defaultKey,w)}}var hw,jw,Aw,Pw,xw,Cw,kw,bw,gw,cw,dw,vw,yw,mw,uw,lw,pw,nw,iw,rw,ow,sw,tw,aw,ew,$0,w0,O0,f0,B0,L$;var G0=Y(()=>{Hw();c$();hw=class hw extends Q{get(w){return(w?.client??this.client).get({url:"/global/config",...w})}update(w,$){let O=W([w],[{args:[{key:"config",map:"body"}]}]);return($?.client??this.client).patch({url:"/global/config",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}};jw=class jw extends Q{health(w){return(w?.client??this.client).get({url:"/global/health",...w})}event(w){return(w?.client??this.client).sse.get({url:"/global/event",...w})}dispose(w){return(w?.client??this.client).post({url:"/global/dispose",...w})}_config;get config(){return this._config??=new hw({client:this.client})}};Aw=class Aw extends Q{remove(w,$){let O=W([w],[{args:[{in:"path",key:"providerID"}]}]);return($?.client??this.client).delete({url:"/auth/{providerID}",...$,...O})}set(w,$){let O=W([w],[{args:[{in:"path",key:"providerID"},{key:"auth",map:"body"}]}]);return($?.client??this.client).put({url:"/auth/{providerID}",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}};Pw=class Pw extends Q{list(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/project",...$,...O})}current(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/project/current",...$,...O})}update(w,$){let O=W([w],[{args:[{in:"path",key:"projectID"},{in:"query",key:"directory"},{in:"body",key:"name"},{in:"body",key:"icon"},{in:"body",key:"commands"}]}]);return($?.client??this.client).patch({url:"/project/{projectID}",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}};xw=class xw extends Q{list(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/pty",...$,...O})}create(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"command"},{in:"body",key:"args"},{in:"body",key:"cwd"},{in:"body",key:"title"},{in:"body",key:"env"}]}]);return($?.client??this.client).post({url:"/pty",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}remove(w,$){let O=W([w],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/pty/{ptyID}",...$,...O})}get(w,$){let O=W([w],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/pty/{ptyID}",...$,...O})}update(w,$){let O=W([w],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"size"}]}]);return($?.client??this.client).put({url:"/pty/{ptyID}",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}connect(w,$){let O=W([w],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/pty/{ptyID}/connect",...$,...O})}};Cw=class Cw extends Q{get(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/config",...$,...O})}update(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{key:"config",map:"body"}]}]);return($?.client??this.client).patch({url:"/config",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}providers(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/config/providers",...$,...O})}};kw=class kw extends Q{ids(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/experimental/tool/ids",...$,...O})}list(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"provider"},{in:"query",key:"model"}]}]);return($?.client??this.client).get({url:"/experimental/tool",...$,...O})}};bw=class bw extends Q{remove(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{key:"worktreeRemoveInput",map:"body"}]}]);return($?.client??this.client).delete({url:"/experimental/worktree",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}list(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/experimental/worktree",...$,...O})}create(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{key:"worktreeCreateInput",map:"body"}]}]);return($?.client??this.client).post({url:"/experimental/worktree",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}reset(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{key:"worktreeResetInput",map:"body"}]}]);return($?.client??this.client).post({url:"/experimental/worktree/reset",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}};gw=class gw extends Q{list(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/experimental/resource",...$,...O})}};cw=class cw extends Q{_resource;get resource(){return this._resource??=new gw({client:this.client})}};dw=class dw extends Q{list(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"roots"},{in:"query",key:"start"},{in:"query",key:"search"},{in:"query",key:"limit"}]}]);return($?.client??this.client).get({url:"/session",...$,...O})}create(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"parentID"},{in:"body",key:"title"},{in:"body",key:"permission"}]}]);return($?.client??this.client).post({url:"/session",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}status(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/status",...$,...O})}delete(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/session/{sessionID}",...$,...O})}get(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}",...$,...O})}update(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"time"}]}]);return($?.client??this.client).patch({url:"/session/{sessionID}",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}children(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/children",...$,...O})}todo(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/todo",...$,...O})}init(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"modelID"},{in:"body",key:"providerID"},{in:"body",key:"messageID"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/init",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}fork(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/fork",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}abort(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/abort",...$,...O})}unshare(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/session/{sessionID}/share",...$,...O})}share(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/share",...$,...O})}diff(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"messageID"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/diff",...$,...O})}summarize(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"providerID"},{in:"body",key:"modelID"},{in:"body",key:"auto"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/summarize",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}messages(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"query",key:"limit"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/message",...$,...O})}prompt(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"model"},{in:"body",key:"agent"},{in:"body",key:"noReply"},{in:"body",key:"tools"},{in:"body",key:"system"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/message",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}message(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/message/{messageID}",...$,...O})}promptAsync(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"model"},{in:"body",key:"agent"},{in:"body",key:"noReply"},{in:"body",key:"tools"},{in:"body",key:"system"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/prompt_async",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}command(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"arguments"},{in:"body",key:"command"},{in:"body",key:"variant"},{in:"body",key:"parts"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/command",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}shell(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"agent"},{in:"body",key:"model"},{in:"body",key:"command"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/shell",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}revert(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"},{in:"body",key:"messageID"},{in:"body",key:"partID"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/revert",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}unrevert(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/unrevert",...$,...O})}};vw=class vw extends Q{delete(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...$,...O})}update(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"messageID"},{in:"path",key:"partID"},{in:"query",key:"directory"},{key:"part",map:"body"}]}]);return($?.client??this.client).patch({url:"/session/{sessionID}/message/{messageID}/part/{partID}",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}};yw=class yw extends Q{respond(w,$){let O=W([w],[{args:[{in:"path",key:"sessionID"},{in:"path",key:"permissionID"},{in:"query",key:"directory"},{in:"body",key:"response"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/permissions/{permissionID}",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}reply(w,$){let O=W([w],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"body",key:"reply"},{in:"body",key:"message"}]}]);return($?.client??this.client).post({url:"/permission/{requestID}/reply",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}list(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/permission",...$,...O})}};mw=class mw extends Q{list(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/question",...$,...O})}reply(w,$){let O=W([w],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"},{in:"body",key:"answers"}]}]);return($?.client??this.client).post({url:"/question/{requestID}/reply",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}reject(w,$){let O=W([w],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/question/{requestID}/reject",...$,...O})}};uw=class uw extends Q{authorize(w,$){let O=W([w],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"body",key:"method"}]}]);return($?.client??this.client).post({url:"/provider/{providerID}/oauth/authorize",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}callback(w,$){let O=W([w],[{args:[{in:"path",key:"providerID"},{in:"query",key:"directory"},{in:"body",key:"method"},{in:"body",key:"code"}]}]);return($?.client??this.client).post({url:"/provider/{providerID}/oauth/callback",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}};lw=class lw extends Q{list(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/provider",...$,...O})}auth(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/provider/auth",...$,...O})}_oauth;get oauth(){return this._oauth??=new uw({client:this.client})}};pw=class pw extends Q{text(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"pattern"}]}]);return($?.client??this.client).get({url:"/find",...$,...O})}files(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"query"},{in:"query",key:"dirs"},{in:"query",key:"type"},{in:"query",key:"limit"}]}]);return($?.client??this.client).get({url:"/find/file",...$,...O})}symbols(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"query"}]}]);return($?.client??this.client).get({url:"/find/symbol",...$,...O})}};nw=class nw extends Q{list(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"path"}]}]);return($?.client??this.client).get({url:"/file",...$,...O})}read(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"path"}]}]);return($?.client??this.client).get({url:"/file/content",...$,...O})}status(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/file/status",...$,...O})}};iw=class iw extends Q{remove(w,$){let O=W([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/mcp/{name}/auth",...$,...O})}start(w,$){let O=W([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/auth",...$,...O})}callback(w,$){let O=W([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"},{in:"body",key:"code"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/auth/callback",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}authenticate(w,$){let O=W([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/auth/authenticate",...$,...O})}};rw=class rw extends Q{status(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/mcp",...$,...O})}add(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"name"},{in:"body",key:"config"}]}]);return($?.client??this.client).post({url:"/mcp",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}connect(w,$){let O=W([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/connect",...$,...O})}disconnect(w,$){let O=W([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/disconnect",...$,...O})}_auth;get auth(){return this._auth??=new iw({client:this.client})}};ow=class ow extends Q{next(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/tui/control/next",...$,...O})}response(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{key:"body",map:"body"}]}]);return($?.client??this.client).post({url:"/tui/control/response",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}};sw=class sw extends Q{appendPrompt(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"text"}]}]);return($?.client??this.client).post({url:"/tui/append-prompt",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}openHelp(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-help",...$,...O})}openSessions(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-sessions",...$,...O})}openThemes(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-themes",...$,...O})}openModels(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-models",...$,...O})}submitPrompt(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/submit-prompt",...$,...O})}clearPrompt(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/clear-prompt",...$,...O})}executeCommand(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"command"}]}]);return($?.client??this.client).post({url:"/tui/execute-command",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}showToast(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"title"},{in:"body",key:"message"},{in:"body",key:"variant"},{in:"body",key:"duration"}]}]);return($?.client??this.client).post({url:"/tui/show-toast",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}publish(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{key:"body",map:"body"}]}]);return($?.client??this.client).post({url:"/tui/publish",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}selectSession(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"sessionID"}]}]);return($?.client??this.client).post({url:"/tui/select-session",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}_control;get control(){return this._control??=new ow({client:this.client})}};tw=class tw extends Q{dispose(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/instance/dispose",...$,...O})}};aw=class aw extends Q{get(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/path",...$,...O})}};ew=class ew extends Q{get(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/vcs",...$,...O})}};$0=class $0 extends Q{list(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/command",...$,...O})}};w0=class w0 extends Q{log(w,$){let O=W([w],[{args:[{in:"query",key:"directory"},{in:"body",key:"service"},{in:"body",key:"level"},{in:"body",key:"message"},{in:"body",key:"extra"}]}]);return($?.client??this.client).post({url:"/log",...$,...O,headers:{"Content-Type":"application/json",...$?.headers,...O.headers}})}agents(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/agent",...$,...O})}skills(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/skill",...$,...O})}};O0=class O0 extends Q{status(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/lsp",...$,...O})}};f0=class f0 extends Q{status(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/formatter",...$,...O})}};B0=class B0 extends Q{subscribe(w,$){let O=W([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).sse.get({url:"/event",...$,...O})}};L$=class L$ extends Q{static __registry=new Iw;constructor(w){super(w);L$.__registry.set(this,w?.key)}_global;get global(){return this._global??=new jw({client:this.client})}_auth;get auth(){return this._auth??=new Aw({client:this.client})}_project;get project(){return this._project??=new Pw({client:this.client})}_pty;get pty(){return this._pty??=new xw({client:this.client})}_config;get config(){return this._config??=new Cw({client:this.client})}_tool;get tool(){return this._tool??=new kw({client:this.client})}_worktree;get worktree(){return this._worktree??=new bw({client:this.client})}_experimental;get experimental(){return this._experimental??=new cw({client:this.client})}_session;get session(){return this._session??=new dw({client:this.client})}_part;get part(){return this._part??=new vw({client:this.client})}_permission;get permission(){return this._permission??=new yw({client:this.client})}_question;get question(){return this._question??=new mw({client:this.client})}_provider;get provider(){return this._provider??=new lw({client:this.client})}_find;get find(){return this._find??=new pw({client:this.client})}_file;get file(){return this._file??=new nw({client:this.client})}_mcp;get mcp(){return this._mcp??=new rw({client:this.client})}_tui;get tui(){return this._tui??=new sw({client:this.client})}_instance;get instance(){return this._instance??=new tw({client:this.client})}_path;get path(){return this._path??=new aw({client:this.client})}_vcs;get vcs(){return this._vcs??=new ew({client:this.client})}_command;get command(){return this._command??=new $0({client:this.client})}_app;get app(){return this._app??=new w0({client:this.client})}_lsp;get lsp(){return this._lsp??=new O0({client:this.client})}_formatter;get formatter(){return this._formatter??=new f0({client:this.client})}_event;get event(){return this._event??=new B0({client:this.client})}}});function E0(w){if(!w?.fetch)w={...w,fetch:(f)=>{return f.timeout=!1,fetch(f)}};if(w?.directory){let f=/[^\x00-\x7F]/.test(w.directory)?encodeURIComponent(w.directory):w.directory;w.headers={...w.headers,"x-opencode-directory":f}}let $=f$(w);return new L$({client:$})}var N0=Y(()=>{g$();G0();Dw()});async function U0(w){let $=await J0(w.db),O={...$[w.key],...w.state};return await Bun.write(w.db,JSON.stringify({...$,[w.key]:O})),O}async function W0(w){return(await J0(w.db))[w.key]}async function J0(w){let $=Bun.file(w);if(!await $.exists())return{};return await $.json()}var y={};P(y,{use:()=>m1,register:()=>y1});async function y1(w){if(Bun.env.OPENCODE_CLIENT)await U0({db:Z0,key:Bun.env.OPENCODE_CLIENT,state:{hostname:w.serverUrl.hostname,port:w.serverUrl.port,seenAt:new Date().toISOString(),password:Bun.env.OPENCODE_SERVER_PASSWORD,username:Bun.env.OPENCODE_SERVER_USERNAME}});return d$({url:String(w.serverUrl),password:Bun.env.OPENCODE_SERVER_PASSWORD,username:Bun.env.OPENCODE_SERVER_USERNAME,directory:w.directory})}async function m1(w){let $={desktop:async()=>{let f=await W0({db:Z0,key:"desktop"});if(!f)return;return d$({url:`http://${f.hostname??"127.0.0.1"}:${f.port}`,username:f.username,password:f.password,directory:w.project})},config:async()=>{let f=w?.opencode?.server;if(!f?.url)return;return d$({directory:w.project,...f})}},O=w?.opencode?.lookup??["desktop","config"];for(let f of O){let B=await $[f]?.();if(!B)continue;let G=await B.global.health();if(!G.data?.healthy){console.warn(`${f} server is not healthy: ${JSON.stringify(G.error)}`);continue}return console.debug(`Using ${f}: ${G.data.version}`),B}throw Error(`Opencode server not found using strategies: ${O.join(", ")}`)}function d$(w){return E0({directory:w.directory,baseUrl:w.url,headers:w.username&&w.password?{Authorization:`Basic ${btoa(`${w.username}:${w.password}`)}`}:void 0})}var Z0;var L0=Y(()=>{N0();Z0=`${Bun.env.HOME}/Library/Application Support/ai.opencode.desktop/store.json`});function X0(w){return Array.isArray(w)?w.slice():[w]}function Q0(w,$){if(!w)return{};return w.reduce((O,f)=>{let B=$(f);return O[B]=(O[B]??0)+1,O},{})}function v$(w,$){return(w==null?void 0:w.length)>0?w[0]:$}function Y$(w){return(w==null?void 0:w.filter(($)=>!!$))??[]}function D0(w){return new Promise(($)=>setTimeout($,w))}function _0(w){return(...$)=>{try{let O=w(...$);return a1(O)?O.then((f)=>[void 0,f],(f)=>[f,void 0]):[void 0,O]}catch(O){return[O,void 0]}}}function y$(){let w,$,O=new Promise((f,B)=>{w=f,$=B});return{resolve:w,reject:$,promise:O}}function B$(...w){return(...$)=>{return w.slice(1).reduce((O,f)=>f(O),w[0](...$))}}function u1(){}function S0(w,$){return new i1($).parse(w)}function m(w,$){if(!w)return[];let O=Object.entries(w);if(O.length===0)return[];return O.reduce((f,B)=>{return f.push($(B[0],B[1])),f},[])}function T0(w,$=(O)=>O===void 0){if(!w)return{};return Object.keys(w).reduce((O,f)=>{if(!$(w[f]))O[f]=w[f];return O},{})}function o1(w){if(!w||w.length===0)return"";let $=w.toLowerCase();return $.substring(0,1).toUpperCase()+$.substring(1,$.length)}function u(w,...$){var O;if(d(w)){if($.length>0)return u(w.reduce((G,E,N)=>{var U;let Z=String($[N]??""),J=Z.includes(`
|
|
10
|
+
`)&&((U=E.match(/[ \t]*(?=[^\n]*$)/))==null?void 0:U[0]);if(J)Z=Z.replace(/\n(?=[^\n]*?\S)/g,`
|
|
11
|
+
`+J);return G+E+Z},""));w=w[0]}let f=$[0]??((O=w.match(/^[ \t]*(?=\S)/m))==null?void 0:O[0]);return(f?w.replace(new RegExp(`^${f}`,"gm"),""):w).replace(/^[ \t]*\n|\n[ \t]*$/g,"")}function M0(w){if(!w)return"";return w.split(/(?=[A-Z])|[\.\-\s_]/).map(($)=>$.trim()).filter(($)=>!!$).map(($)=>o1($.toLowerCase())).join(" ")}function S(w,$){if(!w)throw $ instanceof Error?$:Error($??"Assertion failed")}function R0(w){return typeof w==="boolean"}function s1(w){return K0(w,"[object Date]")}function x(w){if(typeof w!=="object"||w===null)return!w||w===!0;if(s1(w))return Number.isNaN(w.getTime());let $=w.length;if(Y0($))return $===0;let O=w.size;if(Y0(O))return O===0;return Object.keys(w).length===0}function t1(w){return typeof w==="function"}function V0(w){return w===null||w===void 0}function Y0(w){return typeof w==="number"&&!Number.isNaN(w)}function G$(w){return K0(w,"[object Object]")}function a1(w){return!!w&&t1(w.then)}function z0(w){return typeof w==="string"}function K0(w,$){return Object.prototype.toString.call(w)===$}var l1=class{constructor({units:w,short:$}){this.units=w,this.short=$}parse(w){var $;let O=w.match(/^(-?\d+(?:\.\d+)?) ?(\w+)?s?$/);if(!O)throw Error(`Invalid quantity, cannot parse: ${w}`);let f=O[2];f=(($=this.short)==null?void 0:$[f])||f;let B=Number.parseFloat(O[1]);if(Math.abs(B)>1&&f.endsWith("s"))f=f.substring(0,f.length-1);if(!this.units[f])throw Error(`Invalid unit: ${f}, makes sure it is one of: ${Object.keys(this.units).join(", ")}`);return B*this.units[f]}},p1,n1,i1,r1=class{constructor(w,$,O){this.semaphore=w,this.request=$,this.weight=O}release(){this.semaphore.release(this),this.release=u1}},X$=class{constructor(w){if(this.maxCapacity=w,this.queue=[],w<=0)throw Error("maxCapacity must be > 0");this.capacity=w}get queueLength(){return this.queue.length}async acquire({signal:w,weight:$=1}={}){if($<=0)throw Error("weight must be > 0");if($>this.maxCapacity)throw Error("weight must be \u2264 maxCapacity");let O=y$(),f=new r1(this,O,$);if(w){let B=()=>{let E=this.queue.indexOf(f);if(E>=0)this.queue.splice(E,1),O.reject(w.reason)};w.addEventListener("abort",B);let G=()=>{w.removeEventListener("abort",B)};O.promise.then(G,G)}if(this.capacity<$)this.queue.push(f),await O.promise;else this.capacity-=$;return f}reject(w){this.acquire=()=>Promise.reject(w),this.queue.forEach(($)=>$.request.reject(w)),this.queue=[]}release(w){this.capacity+=w.weight;let $=this.queue[0];if($&&this.capacity>=$.weight)this.capacity-=$.weight,this.queue.shift(),$.request.resolve()}},d;var H=Y(()=>{p1={week:604800000,day:86400000,hour:3600000,minute:60000,second:1000,millisecond:1},n1={w:"week",d:"day",h:"hour",m:"minute",s:"second",ms:"millisecond"},i1=class w extends l1{constructor($){super({units:{...w.units,...$==null?void 0:$.units},short:{...w.shortUnits,...$==null?void 0:$.short}})}static get units(){return p1}static get shortUnits(){return n1}};d=(()=>Array.isArray)()});var Q$={};P(Q$,{use:()=>e1,getProjectLabel:()=>$O,getProjectHint:()=>wO});async function e1(w,$){let{data:O,error:f}=await w.project.current({directory:$??process.cwd()});S(O,`Cannot use project: ${JSON.stringify(f)}`);let B=O.id.slice(0,5);return{...O,label:O.name??O.worktree,hint:O.name?`${O.worktree} - ${B}`:B}}function $O(w){return w.name??w.worktree}function wO(w){let $=w.id.slice(0,5);return w.name?`${w.worktree} - ${$}`:$}var q0=Y(()=>{H()});var m$=Y(()=>{L0();q0()});import{loadConfig as OO}from"c12";async function l(w){let{config:$,_configFile:O}=await OO({name:"teammate",cwd:w.cwd,configFile:w.configFile,overrides:w.overries,packageJson:!1});return console.debug(`Config loaded from: ${O}`),$}var D$=()=>{};var H0={};P(H0,{default:()=>EO});import{defineCommand as fO,option as BO}from"@bunli/core";import{z as GO}from"zod";var EO;var I0=Y(()=>{m$();D$();EO=fO({name:"health",description:"Check opencode server health",options:{config:BO(GO.string().optional(),{description:"Teammate config file to use",short:"c"})},handler:async({flags:w})=>{let $=await l({configFile:w.config}),O=await y.use($),f=await Q$.use(O,$.project);console.log({project:f})}})});function _(w){return($)=>{if(!process.stdout.isTTY||process.env.NO_COLOR)return $;return`\x1B[${w}m${$}\x1B[0m`}}function NO(w){return w.replace(/\x1b\[[0-9;]*m/g,"")}async function P0(w){process.stdout.write(w);for await(let $ of console)return $;return""}async function _$(w,$={}){let O=$.default?` (${$.default})`:"",f=`${w}${O} `;while(!0){let G=(await P0(f)).trim()||$.default||"";if($.schema){let E=await $.schema["~standard"].validate(G);if(E.issues){console.error(q.red("Invalid input:"));for(let N of E.issues)console.error(q.dim(` \u2022 ${N.message}`));console.error();continue}return E.value}if($.validate){let E=$.validate(G);if(E===!0)return G;else if(typeof E==="string"){console.error(`\u2717 ${E}`);continue}else{console.error("\u2717 Invalid input");continue}}return G}}async function S$(w,$={}){let O=$.default===!0?"Y/n":$.default===!1?"y/N":"y/n",f=`${w} (${O}) `;while(!0){let G=(await P0(f)).trim().toLowerCase();if(!G&&$.default!==void 0)return $.default;if(G==="y"||G==="yes")return!0;if(G==="n"||G==="no")return!1;console.error("\u2717 Please answer with y/yes or n/no")}}async function x0(w,$){let{options:O,default:f}=$,B=f?O.findIndex((G)=>G.value===f):0;if(B===-1)B=0;return console.log(w),process.stdout.write(JO),l$(O,B),new Promise((G)=>{process.stdin.setRawMode(!0),process.stdin.resume();let E=()=>{process.stdin.setRawMode(!1),process.stdin.pause(),process.stdout.write(ZO)};process.stdin.on("data",(N)=>{let U=N.toString();if(U==="\x1B[A")B=Math.max(0,B-1),l$(O,B);else if(U==="\x1B[B")B=Math.min(O.length-1,B+1),l$(O,B);else if(U==="\r"||U===`
|
|
12
|
+
`){E();for(let J=0;J<O.length;J++)process.stdout.write(`${p}1A${A0}`);let Z=O[B];if(Z)console.log(`\u2713 ${Z.label}`),G(Z.value)}else if(U==="\x03"||U==="\x1B")E(),process.exit(0)})})}function l$(w,$){for(let O=0;O<w.length;O++)process.stdout.write(`${p}1A`);w.forEach((O,f)=>{process.stdout.write(A0+WO);let B=f===$?"\u276F ":" ",G=O.hint?` (${O.hint})`:"";console.log(`${B}${O.label}${G}`)})}async function T$(w,$={}){return process.stdout.write(w+" "),new Promise((O)=>{let f="";process.stdin.setRawMode(!0),process.stdin.resume();let B=()=>{process.stdin.setRawMode(!1),process.stdin.pause(),console.log()};process.stdin.on("data",async(G)=>{let E=G.toString();if(E==="\r"||E===`
|
|
13
|
+
`)if(B(),$.schema){let N=await $.schema["~standard"].validate(f);if(N.issues){console.error(q.red("Invalid input:"));for(let U of N.issues)console.error(q.dim(` \u2022 ${U.message}`));console.error(),T$(w,$).then(O);return}O(N.value)}else if($.validate){let N=$.validate(f);if(N===!0)O(f);else console.error(`\u2717 ${typeof N==="string"?N:"Invalid input"}`),T$(w,$).then(O)}else O(f);else if(E==="\x03")B(),process.exit(0);else if(E==="\x7F"||E==="\b"){if(f.length>0)f=f.slice(0,-1),process.stdout.write("\b \b")}else if(E.length===1&&E>=" ")f+=E,process.stdout.write("*")})})}function LO(w){let $=typeof w==="string"?{text:w}:w||{},O=!1,f=0,B=null,G=$.text||"",E=(U,Z)=>{process.stdout.write(`${h0}${j0}${U} ${Z}`)},N={start(U){if(O)return;if(O=!0,U!==void 0)G=U;process.stdout.write("\x1B[?25l"),B=setInterval(()=>{let Z=p$[f];E(Z,G),f=(f+1)%p$.length},80)},stop(U){if(!O)return;if(O=!1,B)clearInterval(B),B=null;if(process.stdout.write(h0+j0),process.stdout.write("\x1B[?25h"),U)console.log(U)},succeed(U){this.stop(),console.log(`\u2705 ${U||G}`)},fail(U){this.stop(),console.log(`\u274C ${U||G}`)},warn(U){this.stop(),console.log(`\u26A0\uFE0F ${U||G}`)},info(U){this.stop(),console.log(`\u2139\uFE0F ${U||G}`)},update(U){if(G=U,O)E(p$[f],G)}};return process.on("exit",()=>N.stop()),process.on("SIGINT",()=>{N.stop(),process.exit(0)}),N}var D,q,UO="\x1B",p,A0,WO,JO,ZO,p$,h0="\x1B[2K",j0="\x1B[G",gf,M$;var R$=Y(()=>{D={black:30,red:31,green:32,yellow:33,blue:34,magenta:35,cyan:36,white:37,gray:90,brightRed:91,brightGreen:92,brightYellow:93,brightBlue:94,brightMagenta:95,brightCyan:96,brightWhite:97,bgRed:41,bgGreen:42,bgYellow:43,bgBlue:44,bgMagenta:45,bgCyan:46,bgWhite:47,bold:1,dim:2,italic:3,underline:4,strikethrough:9,reset:0};q={black:_(D.black),red:_(D.red),green:_(D.green),yellow:_(D.yellow),blue:_(D.blue),magenta:_(D.magenta),cyan:_(D.cyan),white:_(D.white),gray:_(D.gray),brightRed:_(D.brightRed),brightGreen:_(D.brightGreen),brightYellow:_(D.brightYellow),brightBlue:_(D.brightBlue),brightMagenta:_(D.brightMagenta),brightCyan:_(D.brightCyan),brightWhite:_(D.brightWhite),bgRed:_(D.bgRed),bgGreen:_(D.bgGreen),bgYellow:_(D.bgYellow),bgBlue:_(D.bgBlue),bgMagenta:_(D.bgMagenta),bgCyan:_(D.bgCyan),bgWhite:_(D.bgWhite),bold:_(D.bold),dim:_(D.dim),italic:_(D.italic),underline:_(D.underline),strikethrough:_(D.strikethrough),reset:_(D.reset),strip:NO},p=`${UO}[`,A0=`${p}2K`,WO=`${p}G`,JO=`${p}?25l`,ZO=`${p}?25h`;p$=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];gf={prompt:Object.assign(_$,{confirm:S$,select:x0,password:T$,text:(w,$)=>_$(w,$),multiselect:async(w,$)=>{let{options:O}=$,f=[];console.log(w);for(let B of O)if(await S$(`Select ${B.label}?`,{default:!1}))f.push(B.value);return f}}),spinner:LO,colors:q},M$=Object.assign(_$,{confirm:S$,select:x0,password:T$,text:(w,$)=>_$(w,$),multiselect:async(w,$)=>{let{options:O}=$,f=[];console.log(w);for(let B of O)if(await S$(`Select ${B.label}?`,{default:!1}))f.push(B.value);return f}})});async function*n$(w,$){let O=S0($?.interval??"1s");while(!0){let f=await w();if(Array.isArray(f)){if(x(f)&&$?.exitOnEmpty)break;yield*f}else if(f===void 0&&$?.exitOnEmpty)break;else yield f;await D0(O)}}async function n(w,$){for await(let O of n$(w,$))if(O)return O;throw Error("Timeout: waiting for condition")}var V$=Y(()=>{H()});async function k0(w,$){let{data:O}=await w.project.current({directory:$??process.cwd()});if(O&&O.id!=="global")return O.worktree;let{data:f,error:B}=await w.project.list();return S(B===void 0,`Failed to list projects: ${B}`),S(f,"No projects found"),S(f.length>0,`No projects found: ${f.length}`),M$.select("Select a project",{options:f.map((G)=>({label:G.name??G.worktree,value:G.worktree,hint:G.name?`${G.worktree} - ${G.id.slice(0,5)}`:G.id.slice(0,5)}))})}function b0(w){return w.name??w.worktree}var i$=Y(()=>{R$();H()});var E$,r$;var o$=Y(()=>{E$=class E$ extends Error{output;constructor(w,$){let O=w.stdout.toString().trim()||void 0,B=(w.stderr.toString().trim()||void 0)??O??"Unknown shell error";super(B,{cause:$.cause});this.output=w}};r$=class r$ extends Error{exitCode;constructor(w){let $=w.exitCode;super(`Exited with code '${$}'`);this.exitCode=$}}});var I={};P(I,{use:()=>YO,create:()=>c0});function YO(w){if(w instanceof Bun.$.Shell)return c0(w);if(d0 in w)return w;throw Error("Invalid client input")}function c0(w){let $=w,f=Object.assign((B,...G)=>{let E=0,N=[...B],U=G.flatMap((L,z)=>{if(!G$(L))return[L];let M=m(T0(L),(X,T)=>{if(R0(T))return`--${X}`;if(d(T))return`--${X}=${Y$(T).join(",")}`;return`--${X}='${String(T)}'`});if(x(M))return[""];let F=M.length-1;return N.splice(z+1+E,0,...Array(F).fill(" ")),E+=F,M}),Z=Object.assign(N,{raw:[...N]}),J=$(Z,...U);return XO(J)},{[d0]:!0,cwd(B){return $=$.cwd(B),f},env(B){return $=$.env(B),f}});return f}function XO(w){return{json:async($)=>{let O=await w.quiet($?.quiet).nothrow(),[f,B]=await _0(()=>O.json())();if(B)return B;throw new E$(O,{cause:f})},text:async($)=>{let O=await w.quiet($?.quiet).nothrow(),f=O.stdout.toString().trim()||void 0;if(O.exitCode!==0)return[new E$(O,{cause:new r$(O)}),f];return[void 0,f]}}}var d0;var v0=Y(()=>{H();o$();d0=Symbol("shell_client")});var z$=Y(()=>{v0();o$()});var j={};P(j,{use:()=>QO,update:()=>i,show:()=>SO,list:()=>t$,find:()=>K$,create:()=>a$,close:()=>_O,claim:()=>DO});async function QO(w,$,O){if("status"in $&&!O?.force)return $;return v$(await t$(w,{...O,ids:[$.id]}))}async function i(w,$,O={}){let B=await I.use(w)`bd update ${$.id} ${O} --json`.json(),[G]=B;return S(G,`Issue '${$.id}' not found`),G}async function a$(w,$){return await I.use(w)`bd create ${$} --json`.json()}async function DO(w,$,O={}){let B=await I.use(w)`bd update ${$.id} ${O} --claim --json`.json(),[G]=B;return S(G,`Issue '${$.id}' not found`),G}async function _O(w,$,O={}){let B=await I.use(w)`bd close ${$.id} ${O} --json`.json(),[G]=B;return S(G,`Issue '${$.id}' not found`),G}async function SO(w,$){return I.use(w)`bd show ${$.id}`.text()}var t$,K$;var q$=Y(()=>{H();z$();t$=Object.assign(async(w,$={})=>{if(x($.ids))return[];return await I.use(w)`bd list ${$} --json`.json()},{ready:async(w,$={})=>{return await I.use(w)`bd ready ${$} --json`.json()}});((rf)=>{async function w($,O,f){return(await t$($,f)).find((G)=>G.external_ref===O)}rf.byExternalRef=w})(K$||={})});var r={};P(r,{use:()=>RO,stuck:()=>TO,state:()=>e$,done:()=>MO});async function TO(w,$,O){let f=await e$(w,$,"stuck");return await i(w,{id:f.agent},{"add-label":y0(O.context),description:O.reason}),f}async function MO(w,$,O={}){let f=await e$(w,$,"done");return await i(w,{id:f.agent},{"add-label":y0(O.context),description:""}),f}async function e$(w,$,O){return await I.use(w)`bd agent state gram-${$} ${O} --json`.json()}async function RO(w,$){let O=I.use(w),f="slug"in $?`gram-${$.slug}`:$.id;return await O`bd agent show ${f} --json`.json()}function y0(w){if(!w)return;let $=Y$(m(w,(O,f)=>f&&`${O}:${f}`));return x($)?void 0:$}var m0=Y(()=>{H();z$();q$()});var l0=Y(()=>{z$()});var F$=Y(()=>{m0();q$();l0()});var o={};P(o,{update:()=>KO,find:()=>n0,create:()=>zO,SpecificationInput:()=>VO,Specification:()=>p0});import{z as k}from"zod";async function zO(w,$){let O=await a$(w,{type:"epic",title:$.title,description:$.description,"external-ref":$.file});return ww(O)}async function KO(w,$,O){let f=await i(w,{id:$.issueId},{type:"epic",title:O.title,description:O.description,"external-ref":O.file});return ww(f)}function ww(w){return p0.parse({issueId:w.id,file:w.external_ref,title:w.title,description:w.description})}var p0,VO,n0;var i0=Y(()=>{q$();p0=k.object({issueId:k.string(),file:k.string(),title:k.string(),description:k.string().optional()}),VO=k.object({file:k.string(),title:k.string(),description:k.string().optional()});((tf)=>{async function w($,O){let f=await K$.byExternalRef($,O,{type:"epic"});return f&&ww(f)}tf.byFile=w})(n0||={})});var s={};P(s,{watch:()=>s0,use:()=>HO,scan:()=>t0,Frontmatter:()=>FO});import*as o0 from"fs";import*as H$ from"path";import{z as r0}from"zod";function HO(w){if(w.watch)return s0(w);else return t0(w)}async function*s0(w){let $=a0(w.targets),O=new Map,f=[],B,G=o0.watch(w.cwd,async(E,N)=>{if(E==="change"&&N){if(!$.match(N))return;let U=Ow(w.cwd,N),Z=Bun.hash(await U.file.text());if(O.get(N)===Z)return;if(O.set(N,Z),f.push(Ow(w.cwd,N)),B)B.resolve(N),B=void 0}});try{while(!0){let E=f.shift();if(E)yield E;else B=y$(),await B.promise}}finally{G.close()}}async function*t0(w){let{targets:$,isIgnored:O}=a0(w.targets);for(let f of $)for await(let B of f.scan({cwd:w.cwd})){if(O(B))continue;yield Ow(w.cwd,B)}}function a0(w){let $=[],O=[];for(let B of X0(w))if(B.startsWith("!"))O.push(new Bun.Glob(B));else $.push(new Bun.Glob(B));S(!x($),"At least one target is required");function f(B){return!qO.match(B)||O.every((G)=>!G.match(B))}return{targets:$,isIgnored:f,match:(B)=>!f(B)&&$.some((G)=>G.match(B))}}function Ow(w,$){let O=H$.join(w,$);return{filename:$,filepath:H$.parse(O),file:Bun.file(O)}}var qO,FO;var e0=Y(()=>{H();qO=new Bun.Glob("**/*.md"),FO=r0.object({issue:r0.string().optional()})});var fw=Y(()=>{i0();e0()});function w1(w,$){let O=$?.delimiter??"---";if(!w.trimStart().startsWith(O))return{metadata:{},content:w};let f=w.split(`
|
|
14
|
+
`),B=-1,G=-1;for(let J=0;J<f.length;J++)if(f[J]?.trim()===O){B=J;break}if(B===-1)return{metadata:{},content:w};for(let J=B+1;J<f.length;J++)if(f[J]?.trim()===O){G=J;break}if(G===-1)return{metadata:{},content:w};let N=f.slice(B+1,G).join(`
|
|
15
|
+
`),U=hO(N),Z=f.slice(G+1).join(`
|
|
16
|
+
`).replace(/^\n+/,"");return{metadata:U,content:Z}}function IO(w,$){let O=$?.delimiter??"---",f=Bw(w);return`${O}
|
|
17
|
+
${f}${O}
|
|
18
|
+
`}function O1(w,$,O){return`${IO($,O)}
|
|
19
|
+
${w}`}function hO(w){let $={},O=w.split(`
|
|
20
|
+
`),f=[{obj:$,indent:-1}];for(let B of O){if(!B.trim()||B.trim().startsWith("#"))continue;let G=B.length-(B.trimStart()?.length??0),E=B.trim();while(f.length>1){let L=f[f.length-1];if(!L||G>L.indent)break;f.pop()}let N=E.indexOf(":");if(N===-1)continue;let U=E.substring(0,N).trim(),Z=E.substring(N+1).trim(),J=f[f.length-1]?.obj;if(!J)continue;if(Z===""){let L={};J[U]=L,f.push({obj:L,indent:G})}else if(J)J[U]=jO(Z)}return $}function jO(w){if(w.startsWith('"')&&w.endsWith('"')||w.startsWith("'")&&w.endsWith("'"))return w.slice(1,-1);if(w==="true")return!0;if(w==="false")return!1;if(w==="null"||w==="~")return null;let $=Number(w);if(!Number.isNaN($)&&w!=="")return $;return w}function Bw(w,$=0){let O=" ".repeat($),f="";for(let[B,G]of Object.entries(w))if(V0(G))f+=`${O}${B}: null
|
|
21
|
+
`;else if(G$(G)&&!d(G))f+=`${O}${B}:
|
|
22
|
+
`,f+=Bw(G,$+1);else if(z0(G)){let E=G.includes(":")||G.includes("#")||G.includes(`
|
|
23
|
+
`);f+=`${O}${B}: ${E?`"${G}"`:G}
|
|
24
|
+
`}else if(d(G)){f+=`${O}${B}:
|
|
25
|
+
`;for(let E of G)if(G$(E)&&!d(E))f+=`${O}-
|
|
26
|
+
${Bw(E,$+2)}`;else f+=`${O} - ${E}
|
|
27
|
+
`}else f+=`${O}${B}: ${G}
|
|
28
|
+
`;return f}var f1=Y(()=>{H()});import*as I$ from"path";async function*B1(w){let $=Bun.$.cwd(w.project);for await(let O of w.source){let{file:f,filepath:B}=O,{metadata:G,content:E}=w1(await f.text()),N=I$.relative(w.project,I$.format(B)),U={file:N,title:M0(B.name),description:u`
|
|
29
|
+
Spec: ${N}
|
|
30
|
+
`},Z=s.Frontmatter.safeParse(G),J=Z.success&&Z.data.issue?{issueId:Z.data.issue}:await o.find.byFile($,U.file),L=J?await o.update($,J,U):await o.create($,U),z=Object.assign({},G,{issue:L.issueId});await Bun.write(f,O1(E,z)),yield{asset:O,spec:L}}}var G1=Y(()=>{H();fw();f1()});import*as Gw from"fs/promises";async function E1(w){let{client:$,directory:O}=w,f=await PO.acquire();try{let B=await $.project.current({directory:O});S(B.data,`Failed to initialize environment: ${B.error}`);let G=b0(B.data);if(!B.data.commands?.start){let N=await M$.confirm(`Opencode project ${G} does not have a start command. Do you want to continue?`,{default:!1});S(N,"Failed to initialize environment: user asked to stop")}let E=await $.worktree.create({directory:O,worktreeCreateInput:{name:w.name}});return S(E.data,`Failed to initialize worktree: ${JSON.stringify(E.error)}`),E.data}finally{f.release()}}async function N1(w){let{client:$,directory:O}=w,f=await $.worktree.remove({directory:O,worktreeRemoveInput:{directory:w.worktreeDirectory}});return S(f.data,`Failed to remove worktree: ${JSON.stringify(f.error)}`),console.log("Worktree removed"),f.data}async function U1(w){return(await Promise.all([Gw.exists(`${w.directory}/.opencode`),Gw.exists(`${w.directory}/.git`)])).every((O)=>O)}var PO;var W1=Y(()=>{R$();H();i$();PO=new X$(1)});var{$:CO}=globalThis.Bun;var h$;var J1=Y(()=>{V$();W1();h$=class h${client;directory;worktree;ready;constructor(w,$,O){this.client=w;this.directory=$;this.worktree=O;this.ready=n(()=>U1(O),{interval:"100ms"})}get $(){return CO.cwd(this.worktree.directory)}static async init(w){let $=await E1(w),O=new h$(w.client,w.directory,$);return await O.ready,O}async[Symbol.asyncDispose](){await N1({client:this.client,directory:this.directory,worktreeDirectory:this.worktree.directory}).catch((w)=>console.error(w))}}});async function Z1(w){let U=[];try{let $=gO(w.issue.id);$(`Start working on ${w.issue.id}...`);const O=Xw(U,await h$.init({client:w.client,directory:w.directory,name:w.issue.id}),1);$(`Environment ready: ${O.worktree.directory}`);let f=await j.claim(O.$,w.issue);$(`Issue claimed: ${f.id}`);let B=await w.client.session.create({directory:O.worktree.directory,title:`${f.id}: ${f.title}`});S(B.data,`Failed to start the session: ${JSON.stringify(B.error)}`);$(`Session: ${B.data.id}`);let G=await w.client.session.command({sessionID:B.data.id,directory:O.worktree.directory,command:"fake_work",arguments:`${f.id}`});S(G.data,`Failed to send the /work command: ${JSON.stringify(G.error)}`);let E=await r.use(O.$,B.data);while(E.agent_state!=="done"){if(E.agent_state==="stuck")$(`Agent is stuck: ${E.title}`),await n(async()=>{return E=await r.use(O.$,B.data),E.agent_state!=="stuck"},{interval:"1s"}),$(`Agent is ready to continue: ${E.agent_state}`);else{$(`Agent needs follow up, '${E.agent_state}'...`);let M=await w.client.session.prompt({sessionID:B.data.id,directory:O.worktree.directory,parts:[bO(E.agent_state)]});S(M.data,`Failed to follow up: ${JSON.stringify(M.error)}`)}E=await r.use(O.$,B.data)}$("Agent work is done");let N=await w.client.session.messages({sessionID:B.data.id,directory:O.worktree.directory});S(N.data,`Failed to fetch session messages: ${N.error}`);$(`Session messages: ${N.data.length}`);f=await j.close(O.$,w.issue,{reason:"Completed"});S(f,"Failed to close the issue");return f}catch(Z){var J=Z,L=1}finally{var z=Qw(U,J,L);z&&await z}}function bO(w){return{type:"text",text:u`
|
|
31
31
|
You are currently registered as '${w}'.
|
|
32
32
|
- If you are done with the task please notify via the i_am_done tool.
|
|
33
33
|
- If you are stuck and need human help, please notify via the i_am_stuck tool.
|
|
34
34
|
- If you need more time to work on the task, please continue working and update your status when needed.
|
|
35
|
-
`}}function
|
|
36
|
-
`)}}})});import{createCLI as
|
|
35
|
+
`}}function gO(w){return($)=>{console.log(`[work:${w}] ${$}`)}}var L1=Y(()=>{H();F$();J1();V$()});var Y1=()=>{};var X1=Y(()=>{H();F$();Y1()});var Ew=Y(()=>{G1();L1();X1()});var D1={};P(D1,{default:()=>vO});import{defineCommand as dO,option as t}from"@bunli/core";import{z as a}from"zod";var vO,yO;var _1=Y(()=>{R$();H();V$();m$();i$();F$();Ew();D$();vO=dO({name:"work",alias:["ralph"],description:"Starts RALPH loop on opened tasks",options:{concurrency:t(a.coerce.number().min(1).default(1),{description:"How many workers can be spawned at the same time",short:"c"}),task:t(a.string().optional(),{description:"Task (including subtasks) to work on. When not provided, workers can be spawned for any ready tasks.",short:"t"}),"wait-on-idle":t(a.boolean().default(!1),{description:"If no task is available, wait for one to become available."}),"max-dispatches":t(a.coerce.number().min(1).default(1/0),{description:"Limit the number of tasks that can be dispatched to workers.",short:"n"}),project:t(a.string().optional(),{description:"Project to work on. When not provided, workers can be spawned for any ready tasks.",short:"p"}),config:t(a.string().optional(),{description:"Teammate config file to use",short:"c"})},handler:async({flags:w,colors:$})=>{let O=await l({configFile:w.config,overries:{project:w.project}}),f=await y.use(O),B=await k0(f,O.project),G=Bun.$.cwd(B),E=new Set,{"wait-on-idle":N,"max-dispatches":U}=w,Z=n$(()=>j.list.ready(G,{parent:w.task}),{interval:"1 second",exitOnEmpty:!N}),J=new X$(w.concurrency);for await(let F of Z){let X=await J.acquire();if(E.add(F.id),Z1({client:f,directory:B,issue:F}).catch((T)=>console.error(T)).finally(()=>X.release()),E.size>=U)break}await n(async()=>J.queueLength===0&&J.maxCapacity===J.capacity,{interval:"1 second"});let L=await j.list(G,{all:!0,ids:Array.from(E.values())}),z=Q0(L,(F)=>F.status),M=m(z,(F,X)=>{return(yO[F]??$.reset)(`${X} ${F}`)});console.log($.gray(`Dispatched: ${$.italic(Array.from(E.values()).join(", "))}`)),console.log(`Tasks: ${M.join(", ")}`)}}),yO={open:B$(q.yellow,q.italic),in_progress:B$(q.yellow,q.italic),blocked:B$(q.red,q.bold,q.underline),deferred:q.red,closed:B$(q.green,q.bold)}});var S1={};P(S1,{default:()=>uO});import{defineCommand as mO,option as Nw}from"@bunli/core";import{z as Uw}from"zod";import*as e from"path";var uO;var T1=Y(()=>{D$();Ew();fw();uO=mO({name:"sync",description:"Syncs the specifications with beads epics",options:{target:Nw(Uw.string().transform((w)=>e.resolve(w)).optional(),{description:"Specification file or directory to sync"}),watch:Nw(Uw.boolean().default(!1),{description:"Watch target for changes",short:"w"}),config:Nw(Uw.string().optional(),{description:"Teammate config file to use",short:"c"})},handler:async({flags:w,colors:$,spinner:O})=>{let{specifications:f,project:B}=await l({configFile:w.config,overries:{specifications:w.target}}),G=B1({project:B,source:s.use({cwd:B,targets:f,watch:w.watch})});if(w.watch)O("Watching for changes...").start();for await(let E of G){let{asset:N,spec:U}=E,Z=e.relative(B,e.format(N.filepath));process.stdout.write(`\r\x1B[K${$.bold(Z)}: ${U.issueId}
|
|
36
|
+
`)}}})});import{createCLI as pO}from"@bunli/core";var M1={health:()=>Promise.resolve().then(() => (I0(),H0)),work:()=>Promise.resolve().then(() => (_1(),D1)),spec:{sync:()=>Promise.resolve().then(() => (T1(),S1))}};var R1="0.2.0-next.6";var V1=await pO({name:"mate",version:R1,commands:{directory:`${import.meta.dir}/commands`}});await V1.load(M1);await V1.run();
|