opencode-teammate 0.2.0-next.5 → 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 +27 -27
- package/dist/plugin.js +121 -62
- package/dist/utils/config/define.js +9 -1
- package/package.json +2 -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 X=0;X<G.length;X++)process.stdout.write(`${d}1A${Dw}`);let O=G[W];if(O)console.log(`\u2713 ${O.label}`),Z(O.value)}else if(Y==="\x03"||Y==="\x1B")J(),process.exit(0)})})}function F$(w,$){for(let G=0;G<w.length;G++)process.stdout.write(`${d}1A`);w.forEach((G,B)=>{process.stdout.write(Dw+V1);let W=B===$?"\u276F ":" ",Z=G.hint?` (${G.hint})`:"";console.log(`${W}${G.label}${Z}`)})}async function Y$(w,$={}){return process.stdout.write(w+" "),new Promise((G)=>{let B="";process.stdin.setRawMode(!0),process.stdin.resume();let W=()=>{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(W(),$.schema){let N=await $.schema["~standard"].validate(B);if(N.issues){console.error(q.red("Invalid input:"));for(let Y of N.issues)console.error(q.dim(` \u2022 ${Y.message}`));console.error(),Y$(w,$).then(G);return}G(N.value)}else if($.validate){let N=$.validate(B);if(N===!0)G(B);else console.error(`\u2717 ${typeof N==="string"?N:"Invalid input"}`),Y$(w,$).then(G)}else G(B);else if(J==="\x03")W(),process.exit(0);else if(J==="\x7F"||J==="\b"){if(B.length>0)B=B.slice(0,-1),process.stdout.write("\b \b")}else if(J.length===1&&J>=" ")B+=J,process.stdout.write("*")})})}function q1(w){let $=typeof w==="string"?{text:w}:w||{},G=!1,B=0,W=null,Z=$.text||"",J=(Y,O)=>{process.stdout.write(`${Lw}${Ew}${Y} ${O}`)},N={start(Y){if(G)return;if(G=!0,Y!==void 0)Z=Y;process.stdout.write("\x1B[?25l"),W=setInterval(()=>{let O=I$[B];J(O,Z),B=(B+1)%I$.length},80)},stop(Y){if(!G)return;if(G=!1,W)clearInterval(W),W=null;if(process.stdout.write(Lw+Ew),process.stdout.write("\x1B[?25h"),Y)console.log(Y)},succeed(Y){this.stop(),console.log(`\u2705 ${Y||Z}`)},fail(Y){this.stop(),console.log(`\u274C ${Y||Z}`)},warn(Y){this.stop(),console.log(`\u26A0\uFE0F ${Y||Z}`)},info(Y){this.stop(),console.log(`\u2139\uFE0F ${Y||Z}`)},update(Y){if(Z=Y,G)J(I$[B],Z)}};return process.on("exit",()=>N.stop()),process.on("SIGINT",()=>{N.stop(),process.exit(0)}),N}var T,q,R1="\x1B",d,Dw,V1,K1,S1,I$,Lw="\x1B[2K",Ew="\x1B[G",hG,U$;var X$=E(()=>{T={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:M(T.black),red:M(T.red),green:M(T.green),yellow:M(T.yellow),blue:M(T.blue),magenta:M(T.magenta),cyan:M(T.cyan),white:M(T.white),gray:M(T.gray),brightRed:M(T.brightRed),brightGreen:M(T.brightGreen),brightYellow:M(T.brightYellow),brightBlue:M(T.brightBlue),brightMagenta:M(T.brightMagenta),brightCyan:M(T.brightCyan),brightWhite:M(T.brightWhite),bgRed:M(T.bgRed),bgGreen:M(T.bgGreen),bgYellow:M(T.bgYellow),bgBlue:M(T.bgBlue),bgMagenta:M(T.bgMagenta),bgCyan:M(T.bgCyan),bgWhite:M(T.bgWhite),bold:M(T.bold),dim:M(T.dim),italic:M(T.italic),underline:M(T.underline),strikethrough:M(T.strikethrough),reset:M(T.reset),strip:z1},d=`${R1}[`,Dw=`${d}2K`,V1=`${d}G`,K1=`${d}?25l`,S1=`${d}?25h`;I$=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];hG={prompt:Object.assign(J$,{confirm:N$,select:Mw,password:Y$,text:(w,$)=>J$(w,$),multiselect:async(w,$)=>{let{options:G}=$,B=[];console.log(w);for(let W of G)if(await N$(`Select ${W.label}?`,{default:!1}))B.push(W.value);return B}}),spinner:q1,colors:q},U$=Object.assign(J$,{confirm:N$,select:Mw,password:Y$,text:(w,$)=>J$(w,$),multiselect:async(w,$)=>{let{options:G}=$,B=[];console.log(w);for(let W of G)if(await N$(`Select ${W.label}?`,{default:!1}))B.push(W.value);return B}})});function zw(w){return Array.isArray(w)?w.slice():[w]}function Rw(w,$){if(!w)return{};return w.reduce((G,B)=>{let W=$(B);return G[W]=(G[W]??0)+1,G},{})}function A$(w,$){return(w==null?void 0:w.length)>0?w[0]:$}function O$(w){return(w==null?void 0:w.filter(($)=>!!$))??[]}function Vw(w){return new Promise(($)=>setTimeout($,w))}function Kw(w){return(...$)=>{try{let G=w(...$);return k1(G)?G.then((B)=>[void 0,B],(B)=>[B,void 0]):[void 0,G]}catch(G){return[G,void 0]}}}function j$(){let w,$,G=new Promise((B,W)=>{w=B,$=W});return{resolve:w,reject:$,promise:G}}function $$(...w){return(...$)=>{return w.slice(1).reduce((G,B)=>B(G),w[0](...$))}}function H1(){}function Sw(w,$){return new j1($).parse(w)}function h$(w,$){if(!w||!$)return w??$??{};let G=Object.getPrototypeOf(w),B=G?{...w}:Object.assign(Object.create(G),w);for(let W of Object.keys($))B[W]=fw(w[W])&&fw($[W])?h$(w[W],$[W]):$[W];return B}function y(w,$){if(!w)return[];let G=Object.entries(w);if(G.length===0)return[];return G.reduce((B,W)=>{return B.push($(W[0],W[1])),B},[])}function qw(w,$=(G)=>G===void 0){if(!w)return{};return Object.keys(w).reduce((G,B)=>{if(!$(w[B]))G[B]=w[B];return G},{})}function P1(w){if(!w||w.length===0)return"";let $=w.toLowerCase();return $.substring(0,1).toUpperCase()+$.substring(1,$.length)}function m(w,...$){var G;if(v(w)){if($.length>0)return m(w.reduce((Z,J,N)=>{var Y;let O=String($[N]??""),X=O.includes(`
|
|
6
|
-
`)&&((Y=J.match(/[ \t]*(?=[^\n]*$)/))==null?void 0:Y[0]);if(X)O=O.replace(/\n(?=[^\n]*?\S)/g,`
|
|
7
|
-
`+X);return Z+J+O},""));w=w[0]}let B=$[0]??((G=w.match(/^[ \t]*(?=\S)/m))==null?void 0:G[0]);return(B?w.replace(new RegExp(`^${B}`,"gm"),""):w).replace(/^[ \t]*\n|\n[ \t]*$/g,"")}function Hw(w){if(!w)return"";return w.split(/(?=[A-Z])|[\.\-\s_]/).map(($)=>$.trim()).filter(($)=>!!$).map(($)=>P1($.toLowerCase())).join(" ")}function f(w,$){if(!w)throw $ instanceof Error?$:Error($??"Assertion failed")}function Fw(w){return typeof w==="boolean"}function x1(w){return jw(w,"[object Date]")}function P(w){if(typeof w!=="object"||w===null)return!w||w===!0;if(x1(w))return Number.isNaN(w.getTime());let $=w.length;if(_w($))return $===0;let G=w.size;if(_w(G))return G===0;return Object.keys(w).length===0}function C1(w){return typeof w==="function"}function Iw(w){return w===null||w===void 0}function _w(w){return typeof w==="number"&&!Number.isNaN(w)}function w$(w){return jw(w,"[object Object]")}function fw(w){if(typeof w!=="object"||w===null)return!1;let $=Object.getPrototypeOf(w);return $===Object.prototype||$===null||Object.getPrototypeOf($)===null}function k1(w){return!!w&&C1(w.then)}function Aw(w){return typeof w==="string"}function jw(w,$){return Object.prototype.toString.call(w)===$}var F1=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 B=G[2];B=(($=this.short)==null?void 0:$[B])||B;let W=Number.parseFloat(G[1]);if(Math.abs(W)>1&&B.endsWith("s"))B=B.substring(0,B.length-1);if(!this.units[B])throw Error(`Invalid unit: ${B}, makes sure it is one of: ${Object.keys(this.units).join(", ")}`);return W*this.units[B]}},I1,A1,j1,h1=class{constructor(w,$,G){this.semaphore=w,this.request=$,this.weight=G}release(){this.semaphore.release(this),this.release=H1}},Q$=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=j$(),B=new h1(this,G,$);if(w){let W=()=>{let J=this.queue.indexOf(B);if(J>=0)this.queue.splice(J,1),G.reject(w.reason)};w.addEventListener("abort",W);let Z=()=>{w.removeEventListener("abort",W)};G.promise.then(Z,Z)}if(this.capacity<$)this.queue.push(B),await G.promise;else this.capacity-=$;return B}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()}},v;var H=E(()=>{I1={week:604800000,day:86400000,hour:3600000,minute:60000,second:1000,millisecond:1},A1={w:"week",d:"day",h:"hour",m:"minute",s:"second",ms:"millisecond"},j1=class w extends F1{constructor($){super({units:{...w.units,...$==null?void 0:$.units},short:{...w.shortUnits,...$==null?void 0:$.short}})}static get units(){return I1}static get shortUnits(){return A1}};v=(()=>Array.isArray)()});async function*P$(w,$){let G=Sw($?.interval??"1s");while(!0){let B=await w();if(Array.isArray(B)){if(P(B)&&$?.exitOnEmpty)break;yield*B}else if(B===void 0&&$?.exitOnEmpty)break;else yield B;await Vw(G)}}async function u(w,$){for await(let G of P$(w,$))if(G)return G;throw Error("Timeout: waiting for condition")}var L$=E(()=>{H()});var Pw=()=>{};var xw=({onRequest:w,onSseError:$,onSseEvent:G,responseTransformer:B,responseValidator:W,sseDefaultRetryDelay:Z,sseMaxRetryAttempts:J,sseMaxRetryDelay:N,sseSleepFn:Y,url:O,...X})=>{let Q,K=Y??((L)=>new Promise((_)=>setTimeout(_,L)));return{stream:async function*(){let L=Z??3000,_=0,j=X.signal??new AbortController().signal;while(!0){if(j.aborted)break;_++;let a=X.headers instanceof Headers?X.headers:new Headers(X.headers);if(Q!==void 0)a.set("Last-Event-ID",Q);try{let k={redirect:"follow",...X,body:X.serializedBody,headers:a,signal:j},h=new Request(O,k);if(w)h=await w(O,k);let R=await(X.fetch??globalThis.fetch)(h);if(!R.ok)throw Error(`SSE failed: ${R.status} ${R.statusText}`);if(!R.body)throw Error("No body in SSE response");let S=R.body.pipeThrough(new TextDecoderStream).getReader(),e="",Jw=()=>{try{S.cancel()}catch{}};j.addEventListener("abort",Jw);try{while(!0){let{done:D1,value:T1}=await S.read();if(D1)break;e+=T1,e=e.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{b=JSON.parse(I),Uw=!0}catch{b=I}}if(Uw){if(W)await W(b);if(B)b=await B(b)}if(G?.({data:b,event:Yw,id:Q,retry:L}),Z$.length)yield b}}}finally{j.removeEventListener("abort",Jw),S.releaseLock()}break}catch(k){if($?.(k),J!==void 0&&_>=J)break;let h=Math.min(L*2**(_-1),N??30000);await K(h)}}}()}};var b1=(w)=>{switch(w){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},g1=(w)=>{switch(w){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},v1=(w)=>{switch(w){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},E$=({allowReserved:w,explode:$,name:G,style:B,value:W})=>{if(!$){let N=(w?W:W.map((Y)=>encodeURIComponent(Y))).join(g1(B));switch(B){case"label":return`.${N}`;case"matrix":return`;${G}=${N}`;case"simple":return N;default:return`${G}=${N}`}}let Z=b1(B),J=W.map((N)=>{if(B==="label"||B==="simple")return w?N:encodeURIComponent(N);return l({allowReserved:w,name:G,value:N})}).join(Z);return B==="label"||B==="matrix"?Z+J:J},l=({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:B,value:W,valueOnly:Z})=>{if(W instanceof Date)return Z?W.toISOString():`${G}=${W.toISOString()}`;if(B!=="deepObject"&&!$){let Y=[];Object.entries(W).forEach(([X,Q])=>{Y=[...Y,X,w?Q:encodeURIComponent(Q)]});let O=Y.join(",");switch(B){case"form":return`${G}=${O}`;case"label":return`.${O}`;case"matrix":return`;${G}=${O}`;default:return O}}let J=v1(B),N=Object.entries(W).map(([Y,O])=>l({allowReserved:w,name:B==="deepObject"?`${G}[${Y}]`:Y,value:O})).join(J);return B==="label"||B==="matrix"?J+N:N};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 c1,d1=({path:w,url:$})=>{let G=$,B=$.match(c1);if(B)for(let W of B){let Z=!1,J=W.substring(1,W.length-1),N="simple";if(J.endsWith("*"))Z=!0,J=J.substring(0,J.length-1);if(J.startsWith("."))J=J.substring(1),N="label";else if(J.startsWith(";"))J=J.substring(1),N="matrix";let Y=w[J];if(Y===void 0||Y===null)continue;if(Array.isArray(Y)){G=G.replace(W,E$({explode:Z,name:J,style:N,value:Y}));continue}if(typeof Y==="object"){G=G.replace(W,D$({explode:Z,name:J,style:N,value:Y,valueOnly:!0}));continue}if(N==="matrix"){G=G.replace(W,`;${l({name:J,value:Y})}`);continue}let O=encodeURIComponent(N==="label"?`.${Y}`:Y);G=G.replace(W,O)}return G},Cw=({baseUrl:w,path:$,query:G,querySerializer:B,url:W})=>{let Z=W.startsWith("/")?W:`/${W}`,J=(w??"")+Z;if($)J=d1({path:$,url:J});let N=G?B(G):"";if(N.startsWith("?"))N=N.substring(1);if(N)J+=`?${N}`;return J};var C$=E(()=>{c1=/\{[^{}]+\}/g});var kw=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$=E(()=>{k$={bodySerializer:(w)=>JSON.stringify(w,($,G)=>typeof G==="bigint"?G.toString():G)}});class T${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 bw=({parameters:w={},...$}={})=>{return(B)=>{let W=[];if(B&&typeof B==="object")for(let Z in B){let J=B[Z];if(J===void 0||J===null)continue;let N=w[Z]||$;if(Array.isArray(J)){let Y=E$({allowReserved:N.allowReserved,explode:!0,name:Z,style:"form",value:J,...N.array});if(Y)W.push(Y)}else if(typeof J==="object"){let Y=D$({allowReserved:N.allowReserved,explode:!0,name:Z,style:"deepObject",value:J,...N.object});if(Y)W.push(Y)}else{let Y=l({allowReserved:N.allowReserved,name:Z,value:J});if(Y)W.push(Y)}}return W.join("&")}},gw=(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},y1=(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 G of w){if(y1($,G.name))continue;let B=await kw(G,$.auth);if(!B)continue;let W=G.name??"Authorization";switch(G.in){case"query":if(!$.query)$.query={};$.query[W]=B;break;case"cookie":$.headers.append("Cookie",`${W}=${B}`);break;case"header":default:$.headers.set(W,B);break}}},g$=(w)=>Cw({baseUrl:w.baseUrl,path:w.path,query:w.query,querySerializer:typeof w.querySerializer==="function"?w.querySerializer:bw(w.querySerializer),url:w.url}),v$=(w,$)=>{let G={...w,...$};if(G.baseUrl?.endsWith("/"))G.baseUrl=G.baseUrl.substring(0,G.baseUrl.length-1);return G.headers=M$(w.headers,$.headers),G},m1=(w)=>{let $=[];return w.forEach((G,B)=>{$.push([B,G])}),$},M$=(...w)=>{let $=new Headers;for(let G of w){if(!G)continue;let B=G instanceof Headers?m1(G):Object.entries(G);for(let[W,Z]of B)if(Z===null)$.delete(W);else if(Array.isArray(Z))for(let J of Z)$.append(W,J);else if(Z!==void 0)$.set(W,typeof Z==="object"?JSON.stringify(Z):Z)}return $},cw=()=>({error:new T$,request:new T$,response:new T$}),u1,l1,G$=(w={})=>({...k$,headers:l1,parseAs:"auto",querySerializer:u1,...w});var c$=E(()=>{b$();C$();u1=bw({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),l1={"Content-Type":"application/json"}});var B$=(w={})=>{let $=v$(G$(),w),G=()=>({...$}),B=(O)=>{return $=v$($,O),G()},W=cw(),Z=async(O)=>{let X={...$,...O,fetch:O.fetch??$.fetch??globalThis.fetch,headers:M$($.headers,O.headers),serializedBody:void 0};if(X.security)await vw({...X,security:X.security});if(X.requestValidator)await X.requestValidator(X);if(X.body!==void 0&&X.bodySerializer)X.serializedBody=X.bodySerializer(X.body);if(X.body===void 0||X.serializedBody==="")X.headers.delete("Content-Type");let Q=g$(X);return{opts:X,url:Q}},J=async(O)=>{let{opts:X,url:Q}=await Z(O),K={redirect:"follow",...X,body:x$(X)},z=new Request(Q,K);for(let V of W.request.fns)if(V)z=await V(z,X);let x=X.fetch,L;try{L=await x(z)}catch(V){let R=V;for(let S of W.error.fns)if(S)R=await S(V,void 0,z,X);if(R=R||{},X.throwOnError)throw R;return X.responseStyle==="data"?void 0:{error:R,request:z,response:void 0}}for(let V of W.response.fns)if(V)L=await V(L,z,X);let _={request:z,response:L};if(L.ok){let V=(X.parseAs==="auto"?gw(L.headers.get("Content-Type")):X.parseAs)??"json";if(L.status===204||L.headers.get("Content-Length")==="0"){let S;switch(V){case"arrayBuffer":case"blob":case"text":S=await L[V]();break;case"formData":S=new FormData;break;case"stream":S=L.body;break;case"json":default:S={};break}return X.responseStyle==="data"?S:{data:S,..._}}let R;switch(V){case"arrayBuffer":case"blob":case"formData":case"text":R=await L[V]();break;case"json":{let S=await L.text();R=S?JSON.parse(S):{};break}case"stream":return X.responseStyle==="data"?L.body:{data:L.body,..._}}if(V==="json"){if(X.responseValidator)await X.responseValidator(R);if(X.responseTransformer)R=await X.responseTransformer(R)}return X.responseStyle==="data"?R:{data:R,..._}}let j=await L.text(),a;try{a=JSON.parse(j)}catch{}let k=a??j,h=k;for(let V of W.error.fns)if(V)h=await V(k,L,z,X);if(h=h||{},X.throwOnError)throw h;return X.responseStyle==="data"?void 0:{error:h,..._}},N=(O)=>(X)=>J({...X,method:O}),Y=(O)=>async(X)=>{let{opts:Q,url:K}=await Z(X);return xw({...Q,body:Q.body,headers:Q.headers,method:O,onRequest:async(z,x)=>{let L=new Request(z,x);for(let _ of W.request.fns)if(_)L=await _(L,Q);return L},serializedBody:x$(Q),url:K})};return{buildUrl:g$,connect:N("CONNECT"),delete:N("DELETE"),get:N("GET"),getConfig:G,head:N("HEAD"),interceptors:W,options:N("OPTIONS"),patch:N("PATCH"),post:N("POST"),put:N("PUT"),request:J,setConfig:B,sse:{connect:Y("CONNECT"),delete:Y("DELETE"),get:Y("GET"),head:Y("HEAD"),options:Y("OPTIONS"),patch:Y("PATCH"),post:Y("POST"),put:Y("PUT"),trace:Y("TRACE")},trace:N("TRACE")}};var d$=E(()=>{C$();c$()});var p1,n1,dw=(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)dw(G.args,$);return $},i1=(w)=>{for(let[$,G]of Object.entries(w))if(G&&typeof G==="object"&&!Object.keys(G).length)delete w[$]},U=(w,$)=>{let G={body:{},headers:{},path:{},query:{}},B=dw($),W;for(let[Z,J]of w.entries()){if($[Z])W=$[Z];if(!W)continue;if("in"in W)if(W.key){let N=B.get(W.key),Y=N.map||W.key;if(N.in)G[N.in][Y]=J}else G.body=J;else for(let[N,Y]of Object.entries(J??{})){let O=B.get(N);if(O)if(O.in){let X=O.map||N;G[O.in][X]=Y}else G[O.map]=Y;else{let X=n1.find(([Q])=>N.startsWith(Q));if(X){let[Q,K]=X;G[K][N.slice(Q.length)]=Y}else if("allowExtra"in W&&W.allowExtra){for(let[Q,K]of Object.entries(W.allowExtra))if(K){G[Q][N]=Y;break}}}}}return i1(G),G};var yw=E(()=>{p1={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},n1=Object.entries(p1)});var y$=E(()=>{b$();yw();d$();c$()});var mw;var uw=E(()=>{y$();mw=B$(G$({baseUrl:"http://localhost:4096"}))});class D{client;constructor(w){this.client=w?.client??mw}}class lw{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 pw,nw,iw,rw,ow,sw,tw,aw,ew,$0,w0,G0,B0,W0,Z0,J0,N0,Y0,U0,X0,O0,Q0,L0,E0,D0,T0,M0,_0,f0,z0,_$;var R0=E(()=>{uw();y$();pw=class pw extends D{get(w){return(w?.client??this.client).get({url:"/global/config",...w})}update(w,$){let G=U([w],[{args:[{key:"config",map:"body"}]}]);return($?.client??this.client).patch({url:"/global/config",...$,...G,headers:{"Content-Type":"application/json",...$?.headers,...G.headers}})}};nw=class nw 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 pw({client:this.client})}};iw=class iw extends D{remove(w,$){let G=U([w],[{args:[{in:"path",key:"providerID"}]}]);return($?.client??this.client).delete({url:"/auth/{providerID}",...$,...G})}set(w,$){let G=U([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}})}};rw=class rw extends D{list(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/project",...$,...G})}current(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/project/current",...$,...G})}update(w,$){let G=U([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}})}};ow=class ow extends D{list(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/pty",...$,...G})}create(w,$){let G=U([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=U([w],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/pty/{ptyID}",...$,...G})}get(w,$){let G=U([w],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/pty/{ptyID}",...$,...G})}update(w,$){let G=U([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=U([w],[{args:[{in:"path",key:"ptyID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/pty/{ptyID}/connect",...$,...G})}};sw=class sw extends D{get(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/config",...$,...G})}update(w,$){let G=U([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=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/config/providers",...$,...G})}};tw=class tw extends D{ids(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/experimental/tool/ids",...$,...G})}list(w,$){let G=U([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"provider"},{in:"query",key:"model"}]}]);return($?.client??this.client).get({url:"/experimental/tool",...$,...G})}};aw=class aw extends D{remove(w,$){let G=U([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=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/experimental/worktree",...$,...G})}create(w,$){let G=U([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=U([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}})}};ew=class ew extends D{list(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/experimental/resource",...$,...G})}};$0=class $0 extends D{_resource;get resource(){return this._resource??=new ew({client:this.client})}};w0=class w0 extends D{list(w,$){let G=U([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=U([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=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/status",...$,...G})}delete(w,$){let G=U([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/session/{sessionID}",...$,...G})}get(w,$){let G=U([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}",...$,...G})}update(w,$){let G=U([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=U([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/children",...$,...G})}todo(w,$){let G=U([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/session/{sessionID}/todo",...$,...G})}init(w,$){let G=U([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=U([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=U([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/abort",...$,...G})}unshare(w,$){let G=U([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/session/{sessionID}/share",...$,...G})}share(w,$){let G=U([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/share",...$,...G})}diff(w,$){let G=U([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=U([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=U([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=U([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=U([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=U([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=U([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=U([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=U([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=U([w],[{args:[{in:"path",key:"sessionID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/session/{sessionID}/unrevert",...$,...G})}};G0=class G0 extends D{delete(w,$){let G=U([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=U([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}})}};B0=class B0 extends D{respond(w,$){let G=U([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=U([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=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/permission",...$,...G})}};W0=class W0 extends D{list(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/question",...$,...G})}reply(w,$){let G=U([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=U([w],[{args:[{in:"path",key:"requestID"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/question/{requestID}/reject",...$,...G})}};Z0=class Z0 extends D{authorize(w,$){let G=U([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=U([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}})}};J0=class J0 extends D{list(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/provider",...$,...G})}auth(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/provider/auth",...$,...G})}_oauth;get oauth(){return this._oauth??=new Z0({client:this.client})}};N0=class N0 extends D{text(w,$){let G=U([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"pattern"}]}]);return($?.client??this.client).get({url:"/find",...$,...G})}files(w,$){let G=U([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=U([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"query"}]}]);return($?.client??this.client).get({url:"/find/symbol",...$,...G})}};Y0=class Y0 extends D{list(w,$){let G=U([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"path"}]}]);return($?.client??this.client).get({url:"/file",...$,...G})}read(w,$){let G=U([w],[{args:[{in:"query",key:"directory"},{in:"query",key:"path"}]}]);return($?.client??this.client).get({url:"/file/content",...$,...G})}status(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/file/status",...$,...G})}};U0=class U0 extends D{remove(w,$){let G=U([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).delete({url:"/mcp/{name}/auth",...$,...G})}start(w,$){let G=U([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/auth",...$,...G})}callback(w,$){let G=U([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=U([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/auth/authenticate",...$,...G})}};X0=class X0 extends D{status(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/mcp",...$,...G})}add(w,$){let G=U([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=U([w],[{args:[{in:"path",key:"name"},{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/mcp/{name}/connect",...$,...G})}disconnect(w,$){let G=U([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 U0({client:this.client})}};O0=class O0 extends D{next(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/tui/control/next",...$,...G})}response(w,$){let G=U([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}})}};Q0=class Q0 extends D{appendPrompt(w,$){let G=U([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=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-help",...$,...G})}openSessions(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-sessions",...$,...G})}openThemes(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-themes",...$,...G})}openModels(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/open-models",...$,...G})}submitPrompt(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/submit-prompt",...$,...G})}clearPrompt(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/tui/clear-prompt",...$,...G})}executeCommand(w,$){let G=U([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=U([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=U([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=U([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 O0({client:this.client})}};L0=class L0 extends D{dispose(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).post({url:"/instance/dispose",...$,...G})}};E0=class E0 extends D{get(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/path",...$,...G})}};D0=class D0 extends D{get(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/vcs",...$,...G})}};T0=class T0 extends D{list(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/command",...$,...G})}};M0=class M0 extends D{log(w,$){let G=U([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=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/agent",...$,...G})}skills(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/skill",...$,...G})}};_0=class _0 extends D{status(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/lsp",...$,...G})}};f0=class f0 extends D{status(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).get({url:"/formatter",...$,...G})}};z0=class z0 extends D{subscribe(w,$){let G=U([w],[{args:[{in:"query",key:"directory"}]}]);return($?.client??this.client).sse.get({url:"/event",...$,...G})}};_$=class _$ extends D{static __registry=new lw;constructor(w){super(w);_$.__registry.set(this,w?.key)}_global;get global(){return this._global??=new nw({client:this.client})}_auth;get auth(){return this._auth??=new iw({client:this.client})}_project;get project(){return this._project??=new rw({client:this.client})}_pty;get pty(){return this._pty??=new ow({client:this.client})}_config;get config(){return this._config??=new sw({client:this.client})}_tool;get tool(){return this._tool??=new tw({client:this.client})}_worktree;get worktree(){return this._worktree??=new aw({client:this.client})}_experimental;get experimental(){return this._experimental??=new $0({client:this.client})}_session;get session(){return this._session??=new w0({client:this.client})}_part;get part(){return this._part??=new G0({client:this.client})}_permission;get permission(){return this._permission??=new B0({client:this.client})}_question;get question(){return this._question??=new W0({client:this.client})}_provider;get provider(){return this._provider??=new J0({client:this.client})}_find;get find(){return this._find??=new N0({client:this.client})}_file;get file(){return this._file??=new Y0({client:this.client})}_mcp;get mcp(){return this._mcp??=new X0({client:this.client})}_tui;get tui(){return this._tui??=new Q0({client:this.client})}_instance;get instance(){return this._instance??=new L0({client:this.client})}_path;get path(){return this._path??=new E0({client:this.client})}_vcs;get vcs(){return this._vcs??=new D0({client:this.client})}_command;get command(){return this._command??=new T0({client:this.client})}_app;get app(){return this._app??=new M0({client:this.client})}_lsp;get lsp(){return this._lsp??=new _0({client:this.client})}_formatter;get formatter(){return this._formatter??=new f0({client:this.client})}_event;get event(){return this._event??=new z0({client:this.client})}}});function m$(w){if(!w?.fetch)w={...w,fetch:(B)=>{return B.timeout=!1,fetch(B)}};if(w?.directory){let B=/[^\x00-\x7F]/.test(w.directory)?encodeURIComponent(w.directory):w.directory;w.headers={...w.headers,"x-opencode-directory":B}}let $=B$(w);return new _$({client:$})}var V0=E(()=>{d$();R0();Pw()});async function S0(w){if(w.loopUpForDesktopServer){let $=await r1();if($){let G=m$(h$(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 r1(){if(!await K0.exists())return;let $=await K0.json();return o1($)}function o1(w){return{baseUrl:`http://${w.hostname}:${w.port}`,headers:{Authorization:`Basic ${btoa(`${w.username}:${w.password}`)}`}}}var K0,R5;var q0=E(()=>{V0();H();K0=Bun.file(`${Bun.env.HOME}/Library/Application Support/ai.opencode.desktop/store.json`),R5={client:Bun.env.OPENCODE_CLIENT??"unknown",password:Bun.env.OPENCODE_SERVER_PASSWORD,username:Bun.env.OPENCODE_SERVER_USERNAME}});async function H0(w,$){let{data:G}=await w.project.current({directory:$??process.cwd()});if(G&&G.id!=="global")return G.worktree;let{data:B,error:W}=await w.project.list();return f(W===void 0,`Failed to list projects: ${W}`),f(B,"No projects found"),f(B.length>0,`No projects found: ${B.length}`),U$.select("Select a project",{options:B.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 F0(w){return w.name??w.worktree}var u$=E(()=>{X$();H()});var W$,l$;var p$=E(()=>{W$=class W$ extends Error{output;constructor(w,$){let G=w.stdout.toString().trim()||void 0,W=(w.stderr.toString().trim()||void 0)??G??"Unknown shell error";super(W,{cause:$.cause});this.output=w}};l$=class l$ extends Error{exitCode;constructor(w){let $=w.exitCode;super(`Exited with code '${$}'`);this.exitCode=$}}});var F={};g(F,{use:()=>s1,create:()=>A0});function s1(w){if(w instanceof Bun.$.Shell)return A0(w);if(j0 in w)return w;throw Error("Invalid client input")}function A0(w){let $=w,B=Object.assign((W,...Z)=>{let J=0,N=[...W],Y=Z.flatMap((Q,K)=>{if(!w$(Q))return[Q];let z=y(qw(Q),(L,_)=>{if(Fw(_))return`--${L}`;if(v(_))return`--${L}=${O$(_).join(",")}`;return`--${L}='${String(_)}'`});if(P(z))return[""];let x=z.length-1;return N.splice(K+1+J,0,...Array(x).fill(" ")),J+=x,z}),O=Object.assign(N,{raw:[...N]}),X=$(O,...Y);return t1(X)},{[j0]:!0,cwd(W){return $=$.cwd(W),B},env(W){return $=$.env(W),B}});return B}function t1(w){return{json:async($)=>{let G=await w.quiet($?.quiet).nothrow(),[B,W]=await Kw(()=>G.json())();if(W)return W;throw new W$(G,{cause:B})},text:async($)=>{let G=await w.quiet($?.quiet).nothrow(),B=G.stdout.toString().trim()||void 0;if(G.exitCode!==0)return[new W$(G,{cause:new l$(G)}),B];return[void 0,B]}}}var j0;var h0=E(()=>{H();p$();j0=Symbol("shell_client")});var f$=E(()=>{h0();p$()});var A={};g(A,{use:()=>a1,update:()=>p,show:()=>wG,list:()=>i$,find:()=>z$,create:()=>r$,close:()=>$G,claim:()=>e1});async function a1(w,$,G){if("status"in $&&!G?.force)return $;return A$(await i$(w,{...G,ids:[$.id]}))}async function p(w,$,G={}){let W=await F.use(w)`bd update ${$.id} ${G} --json`.json(),[Z]=W;return f(Z,`Issue '${$.id}' not found`),Z}async function r$(w,$){return await F.use(w)`bd create ${$} --json`.json()}async function e1(w,$,G={}){let W=await F.use(w)`bd update ${$.id} ${G} --claim --json`.json(),[Z]=W;return f(Z,`Issue '${$.id}' not found`),Z}async function $G(w,$,G={}){let W=await F.use(w)`bd close ${$.id} ${G} --json`.json(),[Z]=W;return f(Z,`Issue '${$.id}' not found`),Z}async function wG(w,$){return F.use(w)`bd show ${$.id}`.text()}var i$,z$;var R$=E(()=>{H();f$();i$=Object.assign(async(w,$={})=>{if(P($.ids))return[];return await F.use(w)`bd list ${$} --json`.json()},{ready:async(w,$={})=>{return await F.use(w)`bd ready ${$} --json`.json()}});((j5)=>{async function w($,G,B){return(await i$($,B)).find((Z)=>Z.external_ref===G)}j5.byExternalRef=w})(z$||={})});var n={};g(n,{use:()=>WG,stuck:()=>GG,state:()=>o$,done:()=>BG});async function GG(w,$,G){let B=await o$(w,$,"stuck");return await p(w,{id:B.agent},{"add-label":P0(G.context),description:G.reason}),B}async function BG(w,$,G={}){let B=await o$(w,$,"done");return await p(w,{id:B.agent},{"add-label":P0(G.context),description:""}),B}async function o$(w,$,G){return await F.use(w)`bd agent state gram-${$} ${G} --json`.json()}async function WG(w,$){let G=F.use(w),B="slug"in $?`gram-${$.slug}`:$.id;return await G`bd agent show ${B} --json`.json()}function P0(w){if(!w)return;let $=O$(y(w,(G,B)=>B&&`${G}:${B}`));return P($)?void 0:$}var x0=E(()=>{H();f$();R$()});var k0=E(()=>{f$()});var V$=E(()=>{x0();R$();k0()});var i={};g(i,{update:()=>NG,find:()=>g0,create:()=>JG,SpecificationInput:()=>ZG,Specification:()=>b0});import{z as C}from"zod";async function JG(w,$){let G=await r$(w,{type:"epic",title:$.title,description:$.description,"external-ref":$.file});return t$(G)}async function NG(w,$,G){let B=await p(w,{id:$.issueId},{type:"epic",title:G.title,description:G.description,"external-ref":G.file});return t$(B)}function t$(w){return b0.parse({issueId:w.id,file:w.external_ref,title:w.title,description:w.description})}var b0,ZG,g0;var v0=E(()=>{R$();b0=C.object({issueId:C.string(),file:C.string(),title:C.string(),description:C.string().optional()}),ZG=C.object({file:C.string(),title:C.string(),description:C.string().optional()});((x5)=>{async function w($,G){let B=await z$.byExternalRef($,G,{type:"epic"});return B&&t$(B)}x5.byFile=w})(g0||={})});var r={};g(r,{watch:()=>y0,use:()=>XG,scan:()=>m0,Frontmatter:()=>UG});import*as d0 from"fs";import*as K$ from"path";import{z as c0}from"zod";function XG(w){if(w.watch)return y0(w);else return m0(w)}async function*y0(w){let $=u0(w.targets),G=new Map,B=[],W,Z=d0.watch(w.cwd,async(J,N)=>{if(J==="change"&&N){if(!$.match(N))return;let Y=a$(w.cwd,N),O=Bun.hash(await Y.file.text());if(G.get(N)===O)return;if(G.set(N,O),B.push(a$(w.cwd,N)),W)W.resolve(N),W=void 0}});try{while(!0){let J=B.shift();if(J)yield J;else W=j$(),await W.promise}}finally{Z.close()}}async function*m0(w){let{targets:$,isIgnored:G}=u0(w.targets);for(let B of $)for await(let W of B.scan({cwd:w.cwd})){if(G(W))continue;yield a$(w.cwd,W)}}function u0(w){let $=[],G=[];for(let W of zw(w))if(W.startsWith("!"))G.push(new Bun.Glob(W));else $.push(new Bun.Glob(W));f(!P($),"At least one target is required");function B(W){return!YG.match(W)||G.every((Z)=>!Z.match(W))}return{targets:$,isIgnored:B,match:(W)=>!B(W)&&$.some((Z)=>Z.match(W))}}function a$(w,$){let G=K$.join(w,$);return{filename:$,filepath:K$.parse(G),file:Bun.file(G)}}var YG,UG;var l0=E(()=>{H();YG=new Bun.Glob("**/*.md"),UG=c0.object({issue:c0.string().optional()})});var e$=E(()=>{v0();l0()});function n0(w,$){let G=$?.delimiter??"---";if(!w.trimStart().startsWith(G))return{metadata:{},content:w};let B=w.split(`
|
|
14
|
-
`)
|
|
15
|
-
`),Y=
|
|
16
|
-
`).
|
|
17
|
-
${B}${G}
|
|
18
|
-
`}
|
|
19
|
-
|
|
20
|
-
`)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
`}else if(
|
|
25
|
-
`;
|
|
26
|
-
|
|
27
|
-
`
|
|
28
|
-
|
|
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
29
|
Spec: ${N}
|
|
30
|
-
`},
|
|
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();
|
package/dist/plugin.js
CHANGED
|
@@ -39,6 +39,13 @@ async function install(destination) {
|
|
|
39
39
|
}));
|
|
40
40
|
return assets;
|
|
41
41
|
}
|
|
42
|
+
|
|
43
|
+
// src/adapters/opencode/client/index.ts
|
|
44
|
+
var exports_client = {};
|
|
45
|
+
__export(exports_client, {
|
|
46
|
+
use: () => use,
|
|
47
|
+
register: () => register
|
|
48
|
+
});
|
|
42
49
|
// node_modules/@opencode-ai/sdk/dist/v2/gen/core/serverSentEvents.gen.js
|
|
43
50
|
var createSseClient = ({ onRequest, onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url, ...options }) => {
|
|
44
51
|
let lastEventId;
|
|
@@ -2599,51 +2606,103 @@ function createOpencodeClient(config) {
|
|
|
2599
2606
|
return new OpencodeClient({ client: client2 });
|
|
2600
2607
|
}
|
|
2601
2608
|
|
|
2602
|
-
// src/
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
};
|
|
2609
|
+
// src/adapters/opencode/client/store.ts
|
|
2610
|
+
async function persist(options) {
|
|
2611
|
+
const stored = await read(options.db);
|
|
2612
|
+
const updated = {
|
|
2613
|
+
...stored[options.key],
|
|
2614
|
+
...options.state
|
|
2615
|
+
};
|
|
2616
|
+
await Bun.write(options.db, JSON.stringify({
|
|
2617
|
+
...stored,
|
|
2618
|
+
[options.key]: updated
|
|
2619
|
+
}));
|
|
2620
|
+
return updated;
|
|
2621
|
+
}
|
|
2622
|
+
async function get(options) {
|
|
2623
|
+
const stored = await read(options.db);
|
|
2624
|
+
return stored[options.key];
|
|
2625
|
+
}
|
|
2626
|
+
async function read(store) {
|
|
2627
|
+
const file = Bun.file(store);
|
|
2628
|
+
const exists = await file.exists();
|
|
2629
|
+
if (!exists)
|
|
2630
|
+
return {};
|
|
2631
|
+
const data = await file.json();
|
|
2632
|
+
return data;
|
|
2633
|
+
}
|
|
2634
|
+
|
|
2635
|
+
// src/adapters/opencode/client/index.ts
|
|
2636
|
+
var DB = `${Bun.env.HOME}/Library/Application Support/ai.opencode.desktop/store.json`;
|
|
2609
2637
|
async function register(options) {
|
|
2610
|
-
if (
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
}
|
|
2623
|
-
return
|
|
2638
|
+
if (Bun.env.OPENCODE_CLIENT) {
|
|
2639
|
+
await persist({
|
|
2640
|
+
db: DB,
|
|
2641
|
+
key: Bun.env.OPENCODE_CLIENT,
|
|
2642
|
+
state: {
|
|
2643
|
+
hostname: options.serverUrl.hostname,
|
|
2644
|
+
port: options.serverUrl.port,
|
|
2645
|
+
seenAt: new Date().toISOString(),
|
|
2646
|
+
password: Bun.env.OPENCODE_SERVER_PASSWORD,
|
|
2647
|
+
username: Bun.env.OPENCODE_SERVER_USERNAME
|
|
2648
|
+
}
|
|
2649
|
+
});
|
|
2650
|
+
}
|
|
2651
|
+
return createClient2({
|
|
2652
|
+
url: String(options.serverUrl),
|
|
2653
|
+
password: Bun.env.OPENCODE_SERVER_PASSWORD,
|
|
2654
|
+
username: Bun.env.OPENCODE_SERVER_USERNAME,
|
|
2624
2655
|
directory: options.directory
|
|
2625
2656
|
});
|
|
2626
2657
|
}
|
|
2627
|
-
function
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2658
|
+
async function use(config) {
|
|
2659
|
+
const LOOKUP_STRATEGIES = {
|
|
2660
|
+
desktop: async () => {
|
|
2661
|
+
const state = await get({
|
|
2662
|
+
db: DB,
|
|
2663
|
+
key: "desktop"
|
|
2664
|
+
});
|
|
2665
|
+
if (!state)
|
|
2666
|
+
return;
|
|
2667
|
+
return createClient2({
|
|
2668
|
+
url: `http://${state.hostname ?? "127.0.0.1"}:${state.port}`,
|
|
2669
|
+
username: state.username,
|
|
2670
|
+
password: state.password,
|
|
2671
|
+
directory: config.project
|
|
2672
|
+
});
|
|
2673
|
+
},
|
|
2674
|
+
config: async () => {
|
|
2675
|
+
const server = config?.opencode?.server;
|
|
2676
|
+
if (!server?.url)
|
|
2677
|
+
return;
|
|
2678
|
+
return createClient2({
|
|
2679
|
+
directory: config.project,
|
|
2680
|
+
...server
|
|
2681
|
+
});
|
|
2632
2682
|
}
|
|
2633
2683
|
};
|
|
2684
|
+
const lookups = config?.opencode?.lookup ?? ["desktop", "config"];
|
|
2685
|
+
for (const strategy of lookups) {
|
|
2686
|
+
const client2 = await LOOKUP_STRATEGIES[strategy]?.();
|
|
2687
|
+
if (!client2)
|
|
2688
|
+
continue;
|
|
2689
|
+
const health = await client2.global.health();
|
|
2690
|
+
if (!health.data?.healthy) {
|
|
2691
|
+
continue;
|
|
2692
|
+
}
|
|
2693
|
+
return client2;
|
|
2694
|
+
}
|
|
2695
|
+
throw new Error(`Opencode server not found using strategies: ${lookups.join(", ")}`);
|
|
2634
2696
|
}
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
port: port ? parseInt(port, 10) : undefined
|
|
2644
|
-
};
|
|
2697
|
+
function createClient2(options) {
|
|
2698
|
+
return createOpencodeClient({
|
|
2699
|
+
directory: options.directory,
|
|
2700
|
+
baseUrl: options.url,
|
|
2701
|
+
headers: options.username && options.password ? {
|
|
2702
|
+
Authorization: `Basic ${btoa(`${options.username}:${options.password}`)}`
|
|
2703
|
+
} : undefined
|
|
2704
|
+
});
|
|
2645
2705
|
}
|
|
2646
|
-
|
|
2647
2706
|
// src/utils/chain.ts
|
|
2648
2707
|
async function chain(options, ...fns) {
|
|
2649
2708
|
const { stopOnFatal = true } = options;
|
|
@@ -2688,7 +2747,7 @@ import { z } from "zod";
|
|
|
2688
2747
|
// src/adapters/beads/issues.ts
|
|
2689
2748
|
var exports_issues = {};
|
|
2690
2749
|
__export(exports_issues, {
|
|
2691
|
-
use: () =>
|
|
2750
|
+
use: () => use3,
|
|
2692
2751
|
update: () => update,
|
|
2693
2752
|
show: () => show,
|
|
2694
2753
|
list: () => list,
|
|
@@ -2699,9 +2758,9 @@ __export(exports_issues, {
|
|
|
2699
2758
|
});
|
|
2700
2759
|
|
|
2701
2760
|
// src/utils/shell/client.ts
|
|
2702
|
-
var
|
|
2703
|
-
__export(
|
|
2704
|
-
use: () =>
|
|
2761
|
+
var exports_client2 = {};
|
|
2762
|
+
__export(exports_client2, {
|
|
2763
|
+
use: () => use2,
|
|
2705
2764
|
create: () => create
|
|
2706
2765
|
});
|
|
2707
2766
|
|
|
@@ -2727,7 +2786,7 @@ class InvalidExitCodeError extends Error {
|
|
|
2727
2786
|
}
|
|
2728
2787
|
|
|
2729
2788
|
// src/utils/shell/client.ts
|
|
2730
|
-
function
|
|
2789
|
+
function use2(input) {
|
|
2731
2790
|
if (input instanceof Bun.$.Shell)
|
|
2732
2791
|
return create(input);
|
|
2733
2792
|
if (SHELL_CLIENT in input)
|
|
@@ -2798,17 +2857,17 @@ function createPromise(shell) {
|
|
|
2798
2857
|
var list = Object.assign(async (client2, options = {}) => {
|
|
2799
2858
|
if (isEmpty(options.ids))
|
|
2800
2859
|
return [];
|
|
2801
|
-
const $2 =
|
|
2860
|
+
const $2 = exports_client2.use(client2);
|
|
2802
2861
|
const issues = await $2`bd list ${options} --json`.json();
|
|
2803
2862
|
return issues;
|
|
2804
2863
|
}, {
|
|
2805
2864
|
ready: async (client2, options = {}) => {
|
|
2806
|
-
const $2 =
|
|
2865
|
+
const $2 = exports_client2.use(client2);
|
|
2807
2866
|
const issues = await $2`bd ready ${options} --json`.json();
|
|
2808
2867
|
return issues;
|
|
2809
2868
|
}
|
|
2810
2869
|
});
|
|
2811
|
-
async function
|
|
2870
|
+
async function use3(client2, input, options) {
|
|
2812
2871
|
if ("status" in input && !options?.force)
|
|
2813
2872
|
return input;
|
|
2814
2873
|
return first(await list(client2, {
|
|
@@ -2817,33 +2876,33 @@ async function use2(client2, input, options) {
|
|
|
2817
2876
|
}));
|
|
2818
2877
|
}
|
|
2819
2878
|
async function update(client2, input, options = {}) {
|
|
2820
|
-
const $2 =
|
|
2879
|
+
const $2 = exports_client2.use(client2);
|
|
2821
2880
|
const issues = await $2`bd update ${input.id} ${options} --json`.json();
|
|
2822
2881
|
const [issue] = issues;
|
|
2823
2882
|
assert(issue, `Issue '${input.id}' not found`);
|
|
2824
2883
|
return issue;
|
|
2825
2884
|
}
|
|
2826
2885
|
async function create2(client2, options) {
|
|
2827
|
-
const $2 =
|
|
2886
|
+
const $2 = exports_client2.use(client2);
|
|
2828
2887
|
const issue = await $2`bd create ${options} --json`.json();
|
|
2829
2888
|
return issue;
|
|
2830
2889
|
}
|
|
2831
2890
|
async function claim(client2, input, options = {}) {
|
|
2832
|
-
const $2 =
|
|
2891
|
+
const $2 = exports_client2.use(client2);
|
|
2833
2892
|
const issues = await $2`bd update ${input.id} ${options} --claim --json`.json();
|
|
2834
2893
|
const [issue] = issues;
|
|
2835
2894
|
assert(issue, `Issue '${input.id}' not found`);
|
|
2836
2895
|
return issue;
|
|
2837
2896
|
}
|
|
2838
2897
|
async function close(client2, input, options = {}) {
|
|
2839
|
-
const $2 =
|
|
2898
|
+
const $2 = exports_client2.use(client2);
|
|
2840
2899
|
const issues = await $2`bd close ${input.id} ${options} --json`.json();
|
|
2841
2900
|
const [issue] = issues;
|
|
2842
2901
|
assert(issue, `Issue '${input.id}' not found`);
|
|
2843
2902
|
return issue;
|
|
2844
2903
|
}
|
|
2845
2904
|
async function show(client2, input) {
|
|
2846
|
-
const $2 =
|
|
2905
|
+
const $2 = exports_client2.use(client2);
|
|
2847
2906
|
return $2`bd show ${input.id}`.text();
|
|
2848
2907
|
}
|
|
2849
2908
|
var find;
|
|
@@ -2892,7 +2951,7 @@ var Frontmatter = z2.object({
|
|
|
2892
2951
|
// src/adapters/beads/agents.ts
|
|
2893
2952
|
var exports_agents = {};
|
|
2894
2953
|
__export(exports_agents, {
|
|
2895
|
-
use: () =>
|
|
2954
|
+
use: () => use4,
|
|
2896
2955
|
stuck: () => stuck,
|
|
2897
2956
|
state: () => state,
|
|
2898
2957
|
done: () => done
|
|
@@ -2914,33 +2973,33 @@ async function done(client2, slug, options = {}) {
|
|
|
2914
2973
|
return agent;
|
|
2915
2974
|
}
|
|
2916
2975
|
async function state(client2, slug, state2) {
|
|
2917
|
-
const $2 =
|
|
2976
|
+
const $2 = exports_client2.use(client2);
|
|
2918
2977
|
const agent = await $2`bd agent state gram-${slug} ${state2} --json`.json();
|
|
2919
2978
|
return agent;
|
|
2920
2979
|
}
|
|
2921
|
-
async function
|
|
2922
|
-
const $2 =
|
|
2980
|
+
async function use4(client2, input) {
|
|
2981
|
+
const $2 = exports_client2.use(client2);
|
|
2923
2982
|
const id = "slug" in input ? `gram-${input.slug}` : input.id;
|
|
2924
2983
|
const agent = await $2`bd agent show ${id} --json`.json();
|
|
2925
2984
|
return agent;
|
|
2926
2985
|
}
|
|
2927
|
-
function createContextLabels(
|
|
2928
|
-
if (!
|
|
2986
|
+
function createContextLabels(context) {
|
|
2987
|
+
if (!context)
|
|
2929
2988
|
return;
|
|
2930
|
-
const labels = sift(listify(
|
|
2989
|
+
const labels = sift(listify(context, (key, value) => value && `${key}:${value}`));
|
|
2931
2990
|
return isEmpty(labels) ? undefined : labels;
|
|
2932
2991
|
}
|
|
2933
2992
|
// src/adapters/beads/config.ts
|
|
2934
2993
|
var exports_config = {};
|
|
2935
2994
|
__export(exports_config, {
|
|
2936
2995
|
issuePrefix: () => issuePrefix,
|
|
2937
|
-
get: () =>
|
|
2996
|
+
get: () => get2
|
|
2938
2997
|
});
|
|
2939
2998
|
async function issuePrefix(client2) {
|
|
2940
|
-
return
|
|
2999
|
+
return get2(client2, { key: "issue_prefix" });
|
|
2941
3000
|
}
|
|
2942
|
-
async function
|
|
2943
|
-
const $2 =
|
|
3001
|
+
async function get2(client2, input) {
|
|
3002
|
+
const $2 = exports_client2.use(client2);
|
|
2944
3003
|
return await $2`bd config get ${input.key} --json`.json();
|
|
2945
3004
|
}
|
|
2946
3005
|
// node_modules/@bunli/utils/dist/index.js
|
|
@@ -3404,7 +3463,7 @@ var createIAmDone = (client2) => tool({
|
|
|
3404
3463
|
// src/plugin.ts
|
|
3405
3464
|
var TeammatePlugin = async (options) => {
|
|
3406
3465
|
const { directory } = options;
|
|
3407
|
-
const client2 = await register(options);
|
|
3466
|
+
const client2 = await exports_client.register(options);
|
|
3408
3467
|
await install(directory);
|
|
3409
3468
|
return {
|
|
3410
3469
|
"command.execute.before": async (input, output) => {
|
|
@@ -7,7 +7,15 @@ import {
|
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
var Config = z.object({
|
|
9
9
|
specifications: z.union([z.string(), z.string().array()]).default(["specs/**/*.md", "!specs/thoughts/*"]).describe("Glob pattern for specification files").transform((value) => castArrayIfExists(value)),
|
|
10
|
-
project: z.string().
|
|
10
|
+
project: z.string().default(process.cwd()).describe("Project directory"),
|
|
11
|
+
opencode: z.object({
|
|
12
|
+
lookup: z.enum(["desktop", "config"]).describe("Defines how we should resolve the opencode server").array().default(["desktop", "config"]),
|
|
13
|
+
server: z.object({
|
|
14
|
+
url: z.string().optional(),
|
|
15
|
+
username: z.string().optional(),
|
|
16
|
+
password: z.string().optional()
|
|
17
|
+
}).optional()
|
|
18
|
+
}).optional()
|
|
11
19
|
});
|
|
12
20
|
function defineConfig(config) {
|
|
13
21
|
return Config.parse(config);
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-teammate",
|
|
3
|
-
"version": "0.2.0-next.
|
|
3
|
+
"version": "0.2.0-next.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Hugo Fqt",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/hugo082/opencode-teammate.git",
|
|
10
|
-
"sha": "
|
|
10
|
+
"sha": "00262b1"
|
|
11
11
|
},
|
|
12
12
|
"bin": {
|
|
13
13
|
"mate": "./dist/bin/mate"
|