@dahawa/hawa-code 2.6.6 → 2.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/cli.js +489 -489
  2. package/hands.js +3 -3
  3. package/package.json +1 -1
package/hands.js CHANGED
@@ -622,7 +622,7 @@ data: ${JSON.stringify(z)}
622
622
  `);a=Q.pop()||"";for(let z of Q){let Y=z.trim();if(!(!Y||Y==="data: [DONE]"))if(Y.startsWith("data: ")){let G=Y.slice(6);try{let W=JSON.parse(G);w(W)}catch(W){this.logger&&this.logger.error({err:W,line:Y},"Failed to parse Gemini SSE chunk")}}else try{let G=JSON.parse(Y);w(G)}catch{}}};(async()=>{try{for(;;){let{value:Q,done:z}=await s.read();if(z)break;a+=n.decode(Q,{stream:!0}),O()}I()}catch(Q){o.error(Q)}})()}})}convertGeminiResponseToAnthropic(t){this.logger&&this.logger.debug({response:t},"Original Gemini response");try{if(!t.candidates||!t.candidates[0])throw new Error("No candidates found in Gemini response");let r=t.candidates[0],n=[];r.content&&r.content.parts&&r.content.parts.forEach(o=>{if(o.text&&n.push({type:"text",text:o.text}),o.functionCall){let s=`toolu_${KB()}`,a=o.functionCall.thoughtSignature||o.functionCall.thought_signature||null;n.push({type:"tool_use",id:s,name:o.functionCall.name,input:o.functionCall.args||{},thought_signature:a})}}),r.groundingMetadata&&(this.logger&&this.logger.debug({groundingMetadata:r.groundingMetadata},"Processing grounding metadata"),r.groundingMetadata.webSearchQueries&&n.push({type:"text",text:`
623
623
 
624
624
  [Search queries used: ${r.groundingMetadata.webSearchQueries.join(", ")}]`}));let i={id:`msg_${Math.random().toString(36).slice(2)}`,type:"message",role:"assistant",model:t.modelVersion||"gemini",content:n,stop_reason:r.finishReason?r.finishReason==="STOP"&&n.some(o=>o.type==="tool_use")?"tool_use":this.mapGeminiFinishReason(r.finishReason):"end_turn",stop_sequence:null,usage:{input_tokens:t.usageMetadata?.promptTokenCount||0,output_tokens:t.usageMetadata?.candidatesTokenCount||0}};return this.logger&&this.logger.debug({result:i},"Conversion complete, final Anthropic response"),i}catch{throw w8r(`Provider error: ${JSON.stringify(t)}`,500,"provider_error")}}mapGeminiFinishReason(t){switch(t){case"STOP":return"end_turn";case"MAX_TOKENS":return"max_tokens";case"SAFETY":case"RECITATION":return"stop_sequence";default:return"end_turn"}}},nbe=new rbe;var Vmt=U(zmt(),1);or();Ns();function Gg(e){return e?typeof e.entries=="function"?Object.fromEntries(e.entries()):{...e}:{}}function jmt(e){let t=String(e?.["x-thinking-level"]??"medium").toLowerCase();return["off","low","medium","high"].includes(t)?t:"medium"}function $tn(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t}}function qtn(e,t){if(t==="off"){delete e.reasoning;return}e.reasoning={effort:t,summary:"auto"}}function Gtn(e,t="chat"){let r={request:{},response:{},openai:{request:{},response:{}}};return r.request.model=e.request.body.model,r.request.messages=e.request.body.messages,r.request.system=e.request.body.system,r.response.content=e.response.body.content,r.response.usage=e.response.body?.usage,t==="responses"?(r.openai.request.model=e.openai.request.body.model,r.openai.request.input=e.openai.request.body.input,r.openai.response.output=e.openai.response.body?.output,r.openai.response.usage=e.openai.response.body?.usage):(r.openai.request.model=e.openai.request.body.model,r.openai.request.messages=e.openai.request.body.messages,r.openai.response.choices=e.openai.response.body.choices,r.openai.response.usage=e.openai.response.body?.usage),r}function U5(e,t,r){Nz(t,e),Bz(t,Gtn(e,r),r)}function L2(e){let t=[],r=e.getReader(),n,i=new Promise(l=>n=l),o=!1,s=()=>{o||(o=!0,n(Buffer.concat(t).toString("utf8")))};return{stream:new ReadableStream({async pull(l){try{let{done:c,value:u}=await r.read();if(c){l.close(),s();return}t.push(u),l.enqueue(u)}catch(c){l.error(c),s()}},cancel(l){r.cancel(l).catch(()=>{}),s()}}),done:i}}function H5(e){let t=new Headers(e);return t.delete("content-encoding"),t.delete("content-length"),t.delete("transfer-encoding"),t}function NIe(e,t,r,n,i){let o;try{o={type:"error",error:{type:"api_error",message:JSON.parse(i).error?.message??`${e}: ${n}`,code:`${t}_${r}_ERROR`}}}catch{o={type:"error",error:{type:"api_error",message:`${e}: ${n}`,code:`${t}_${r}_ERROR`}}}return new Response(JSON.stringify(o),{status:r,statusText:n,headers:{"Content-Type":"application/json"}})}var Ymt=["/v1/messages"];function BIe(e){let t;try{typeof e=="string"?t=new Mv(e):e instanceof Mv?t=e:t=new Mv(e.url)}catch{return""}let r=t.pathname;for(let n of Ymt){let i=r.indexOf(n);if(i!==-1)return t.origin+r.slice(0,i)}return t.origin}function qZ(e,t){let r=typeof e=="string"?e:e instanceof Mv?e.toString():e.url,n;try{n=new Mv(r).pathname}catch{return!1}return Ymt.some(i=>n.includes(i))&&(t.method==="POST"||t.method==="post")}function ztn(e){return async(t,r)=>{if(!qZ(t,r))return e(t,r);let n=JSON.parse(r.body),i=await GK.transformRequestOut(n),o=BIe(t)+"/chat/completions",s=Gg(r.headers),a=s.authorization??s.Authorization??"";$tn(i,jmt(s));let l=await e(o,{method:"POST",headers:{"Content-Type":"application/json",Authorization:a},body:JSON.stringify(i),signal:r.signal});if(!l.ok){let _=await l.text();return J(`OpenAI Chat Completions API error: ${l.status}`,{url:o,errorResponse:_}),NIe("OpenAI Chat Completions API error","OPENROUTER",l.status,l.statusText,_)}let c=n.stream===!0,u=s["x-agent-id"],d={request:{url:o,method:r.method,headers:s,body:n},response:{status:l.status,statusText:l.statusText,headers:Gg(l.headers)},openai:{request:{body:i},response:{}}};if(!c){let _=await l.text(),y=new Response(_,{status:l.status,statusText:l.statusText,headers:H5(l.headers)}),S=await GK.transformResponseIn(y,n),I=await S.text();try{U5({...d,openai:{...d.openai,response:{body:JSON.parse(_)}},response:{...d.response,body:JSON.parse(I)}},u)}catch(w){J("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Chat \u975E\u6D41\u5F0F):",w)}return new Response(I,{status:S.status,statusText:S.statusText,headers:S.headers})}let g=L2(l.body),m=new Response(g.stream,{status:l.status,statusText:l.statusText,headers:H5(l.headers)}),A=await GK.transformResponseIn(m,n),h=L2(A.body);return Promise.all([g.done,h.done]).then(async([_,y])=>{try{U5({...d,openai:{...d.openai,response:{body:await bot(_)}},response:{...d.response,body:await BU(y)}},u)}catch(S){J("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Chat \u6D41\u5F0F):"+S?.stack)}}).catch(_=>J("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Chat):"+_)),new Response(h.stream,{status:A.status,statusText:A.statusText,headers:A.headers})}}function jtn(e){return async(t,r)=>{if(!qZ(t,r))return e(t,r);let n=JSON.parse(r.body),i=await zK.transformRequestOut(n),o=Gg(r.headers);qtn(i,jmt(o));let s=JSON.stringify(i),l=BIe(t)+"/responses",c=o.authorization??o.Authorization??"";if(!c)return new Response(JSON.stringify({type:"error",error:{type:"api_error",message:"Missing Authorization header",code:"RESPONSES_AUTH_MISSING"}}),{status:401,headers:{"Content-Type":"application/json"}});let u=await e(l,{method:"POST",headers:{"Content-Type":"application/json",Authorization:c,"x-api-key":c.replace(/^Bearer\s+/i,"").trim()},body:s,signal:r.signal});if(!u.ok){let S=await u.text();return J(`OpenAI Responses API error: ${u.status} ${u.statusText}`,{url:l,status:u.status,errorResponse:S}),NIe("OpenAI Responses API error","RESPONSES",u.status,u.statusText,S)}let d=n.stream===!0,g=o["x-agent-id"],m={request:{url:l,method:r.method,headers:o,body:n},response:{status:u.status,statusText:u.statusText,headers:Gg(u.headers)},openai:{request:{body:i},response:{}}};if(!d){let S=await u.text(),I=new Response(S,{status:u.status,statusText:u.statusText,headers:H5(u.headers)}),w=await zK.transformResponseIn(I,n),O=await w.text();try{U5({...m,openai:{...m.openai,response:{body:JSON.parse(S)}},response:{...m.response,body:JSON.parse(O)}},g,"responses")}catch(Q){J("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u975E\u6D41\u5F0F):",Q)}return new Response(O,{status:w.status,statusText:w.statusText,headers:w.headers})}let A=L2(u.body),h=new Response(A.stream,{status:u.status,statusText:u.statusText,headers:H5(u.headers)}),_=await zK.transformResponseIn(h,n),y=L2(_.body);return Promise.all([A.done,y.done]).then(async([S,I])=>{try{U5({...m,openai:{...m.openai,response:{body:await yot(S)}},response:{...m.response,body:await BU(I)}},g,"responses")}catch(w){J("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Responses \u6D41\u5F0F):"+w?.stack)}}).catch(S=>J("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Responses):"+S)),new Response(y.stream,{status:_.status,statusText:_.statusText,headers:_.headers})}}function Ytn(e){return async(t,r)=>{if(!qZ(t,r))return e(t,r);let n=JSON.parse(r.body),i=Gg(r.headers),o=await nbe.transformRequestOut(n),s=JSON.stringify(o),a=BIe(t)+`/models/${n.model}:streamGenerateContent?alt=sse`,l=i.authorization??i.Authorization??"",c;try{c=await e(a,{method:"POST",headers:{"Content-Type":"application/json","x-goog-api-key":String(l).replace(/^Bearer\s+/i,"").trim()},body:s,signal:r.signal})}catch(y){throw J("gemini request error:",y),y}if(!c.ok){let y=await c.text();return J(`Gemini API error response: ${c.status} ${c.statusText}`,{url:a,status:c.status,errorResponse:y}),NIe("Gemini API error","Gemini",c.status,c.statusText,y)}let u=n.stream===!0,d=i["x-agent-id"],g={request:{url:a,method:r.method,headers:Gg(r.headers),body:n},response:{status:c.status,statusText:c.statusText,headers:Gg(c.headers)},openai:{request:{body:o},response:{}}},m=L2(c.body),A=new Response(m.stream,{status:c.status,statusText:c.statusText,headers:H5(c.headers)}),h=await nbe.transformResponseIn(A),_=L2(h.body);return Promise.all([m.done,_.done]).then(async([y,S])=>{try{let I=u?Cot(y):JSON.parse(y),w=u?await BU(S):JSON.parse(S);U5({...g,openai:{...g.openai,response:{body:I}},response:{...g.response,body:w}},d)}catch(I){J("\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF(Gemini):"+I?.stack)}}).catch(y=>J("\u65E5\u5FD7\u805A\u5408\u9519\u8BEF(Gemini):"+y)),new Response(_.stream,{status:h.status,statusText:h.statusText,headers:h.headers})}}function Vtn(e){return async(t,r)=>{if(!qZ(t,r))return e(t,r);let n=r.body;if(r.body)try{let d=JSON.parse(r.body);n=JSON.stringify(d)}catch{}let i=Gg(r.headers);["1","true"].includes(String(process.env.HAWA_CODE_X_API_KEY_DISABLED??"").toLowerCase())&&(delete i["x-api-key"],delete i["X-API-Key"]),["1","true"].includes(String(process.env.HAWA_CODE_AUTH_DISABLED??"").toLowerCase())&&(delete i.authorization,delete i.Authorization),delete i["content-length"];let a=await e(t,{method:r.method,headers:i,body:n,signal:r.signal});if(!a.ok){let d=await a.text();J(`API error response: ${a.status} ${a.statusText}`,{url:typeof t=="string"?t:t instanceof Mv?t.toString():t.url,status:a.status,errorResponse:d});let g;try{let m=JSON.parse(d);g={type:"error",error:{type:"api_error",message:m.error?.message||m.message||`API error: ${a.statusText}`,code:m.error?.code||m.code||`API_${a.status}_ERROR`}},m.error?.details&&(g.error.details=m.error.details)}catch{g={type:"error",error:{type:"api_error",message:`API error: ${a.statusText}`,code:`API_${a.status}_ERROR`}}}return new Response(JSON.stringify(g),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"application/json"}})}let l=a.clone(),c=!(Object.hasOwn(JSON.parse(n),"stream")&&!JSON.parse(n).stream),u={request:{url:typeof t=="string"?t:t instanceof Mv?t.toString():t.url,method:r.method,headers:Gg(r.headers),body:JSON.parse(n)},response:{status:a.status,statusText:a.statusText,headers:Gg(a.headers)}};return(async()=>{if(c){let m=await a.text();u.response.body=await BU(m)}else u.response.body=await a.json();let g=Gg(r.headers)["x-agent-id"];Nz(g,u),Bz(g,{request:u.request.body.messages,response:u.response.body.content,usage:u.response.body?.usage})})().catch(d=>J(`\u65E5\u5FD7\u89E3\u6790\u9519\u8BEF:
625
- Stack trace: `+d.stack)),new Response(l.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}var $Z=null,RIe=!1;function Wtn(){$Z=null,RIe=!1}Tr.on("proxy:changed",Wtn);function Ktn(){if(RIe)return $Z;if(RIe=!0,ct().proxy!==!0)return null;let e=process.env.HTTPS_PROXY||process.env.HTTP_PROXY||process.env.https_proxy||process.env.http_proxy;return e&&($Z=new Vmt.ProxyAgent({uri:e}),rr(`[proxy] using proxy: ${e}`)),$Z}function Jtn(){let e=Ktn();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function GZ(e){let t=e||process.env.API_TYPE,r=Jtn();switch(t){case"openai":return ztn(r);case"openai-responses":return jtn(r);case"gemini":return Ytn(r);default:return Vtn(r)}}_h();var trn=U(et(),1);function Wmt(e,t){let r=[],n=Math.max(1,Math.floor(t)),i="",o=0;for(let s of e){let a=Ztn(s);i&&o+a>n?(r.push(i),i=s,o=a):(i+=s,o+=a)}return i&&r.push(i),r}function Ztn(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||Xtn(t)?0:ern(t)?2:1}function Xtn(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function ern(e){return e>=4352&&(e<=4447||e===9001||e===9002||e>=11904&&e<=42191&&e!==12351||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=127744&&e<=128591||e>=129280&&e<=129535||e>=131072&&e<=262141)}function S_(e){if(e<6e4)return`${(e/1e3).toFixed(1)}s`;let t=Math.floor(e/36e5),r=Math.floor(e%36e5/6e4),n=(e%6e4/1e3).toFixed(1);return t>0?`${t}h ${r}m ${n}s`:r>0?`${r}m ${n}s`:`${n}s`}function mS(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}Pe();Ns();var mc={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,currentContextTokens:0};function zZ(e,t){mc.totalCost+=e,mc.totalAPIDuration+=t}function jZ(e,t){mc.inputTokens+=e,mc.outputTokens+=t,Tr.emit("token:change",{inputTokens:mc.inputTokens,outputTokens:mc.outputTokens})}function YZ(e,t){mc.cacheCreationTokens+=e,mc.cacheReadTokens+=t}function OIe(){return{inputTokens:mc.inputTokens,outputTokens:mc.outputTokens,cacheCreationTokens:mc.cacheCreationTokens,cacheReadTokens:mc.cacheReadTokens}}function Kmt(){return mc.totalCost}function Jmt(){return Date.now()-mc.startTime}function Zmt(){return mc.totalAPIDuration}function Xmt(e){mc.currentContextTokens=e}function egt(){return mc.currentContextTokens}Pe();Le();Le();var kIe="2.6.6";globalThis.MACRO={VERSION:kIe,PACKAGE_URL:`@dahawa/${Zi}`,README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};var VZ=process.env.HAWA_CODE_USER_AGENT||`${Zi}/${kIe} (${process.env.USER_TYPE})`;import{randomUUID as ME}from"crypto";Ns();Pe();er();br();Pe();Le();import{existsSync as w_,readdirSync as Dsn,statSync as Rsn}from"fs";import{join as ES,relative as Nsn}from"path";import{homedir as zht}from"os";import{platform as Bsn}from"process";import{readFile as _S}from"fs/promises";br();Tm();or();import{join as srn,sep as arn}from"path";function vm(){if(!Fu())return!1;try{let e=ct();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function Zf(){return(srn(Re(),".hcode","team-memory")+arn).normalize("NFC")}function T_(e){let t=e.normalize("NFC"),r=Zf();return t.startsWith(r)}Tm();var jht=U(K5(),1);Hi();var JIe=(e,t,r)=>{let n=e instanceof RegExp?_ht(e,r):e,i=t instanceof RegExp?_ht(t,r):t,o=n!==null&&i!=null&&_on(n,i,r);return o&&{start:o[0],end:o[1],pre:r.slice(0,o[0]),body:r.slice(o[0]+n.length,o[1]),post:r.slice(o[1]+i.length)}},_ht=(e,t)=>{let r=t.match(e);return r?r[0]:null},_on=(e,t,r)=>{let n,i,o,s,a,l=r.indexOf(e),c=r.indexOf(t,l+1),u=l;if(l>=0&&c>0){if(e===t)return[l,c];for(n=[],o=r.length;u>=0&&!a;){if(u===l)n.push(u),l=r.indexOf(e,u+1);else if(n.length===1){let d=n.pop();d!==void 0&&(a=[d,c])}else i=n.pop(),i!==void 0&&i<o&&(o=i,s=c),c=r.indexOf(t,u+1);u=l<c&&l>=0?l:c}n.length&&s!==void 0&&(a=[o,s])}return a};var yht="\0SLASH"+Math.random()+"\0",bht="\0OPEN"+Math.random()+"\0",eTe="\0CLOSE"+Math.random()+"\0",Cht="\0COMMA"+Math.random()+"\0",Sht="\0PERIOD"+Math.random()+"\0",yon=new RegExp(yht,"g"),bon=new RegExp(bht,"g"),Con=new RegExp(eTe,"g"),Son=new RegExp(Cht,"g"),Ion=new RegExp(Sht,"g"),Ton=/\\\\/g,von=/\\{/g,xon=/\\}/g,won=/\\,/g,Don=/\\\./g,Ron=1e5,Non=4e6;function ZIe(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function Bon(e){return e.replace(Ton,yht).replace(von,bht).replace(xon,eTe).replace(won,Cht).replace(Don,Sht)}function Oon(e){return e.replace(yon,"\\").replace(bon,"{").replace(Con,"}").replace(Son,",").replace(Ion,".")}function Iht(e){if(!e)return[""];let t=[],r=JIe("{","}",e);if(!r)return e.split(",");let{pre:n,body:i,post:o}=r,s=n.split(",");s[s.length-1]+="{"+i+"}";let a=Iht(o);return o.length&&(s[s.length-1]+=a.shift(),s.push.apply(s,a)),t.push.apply(t,s),t}function Tht(e,t={}){if(!e)return[];let{max:r=Ron,maxLength:n=Non}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),XIe(Bon(e),r,n,!0).map(Oon)}function kon(e){return"{"+e+"}"}function Mon(e){return/^-?0\d/.test(e)}function Qon(e,t){return e<=t}function Pon(e,t){return e>=t}function J5(e,t,r,n,i,o){let s=[],a=0;for(let l=0;l<e.length;l++)for(let c=0;c<r.length;c++){if(s.length>=n)return s;let u=e[l]+t+r[c];if(!(o&&!u)){if(a+u.length>i)return s;s.push(u),a+=u.length}}return s}function Lon(e,t,r,n){let i=e.split(/\.\./),o=[];if(i[0]===void 0||i[1]===void 0)return o;let s=ZIe(i[0]),a=ZIe(i[1]),l=Math.max(i[0].length,i[1].length),c=i.length===3&&i[2]!==void 0?Math.max(Math.abs(ZIe(i[2])),1):1,u=Qon;a<s&&(c*=-1,u=Pon);let g=i.some(Mon),m=0;for(let A=s;u(A,a)&&o.length<r;A+=c){let h;if(t)h=String.fromCharCode(A),h==="\\"&&(h="");else if(h=String(A),g){let _=l-h.length;if(_>0){let y=new Array(_+1).join("0");A<0?h="-"+y+h.slice(1):h=y+h}}if(m+h.length>n)break;o.push(h),m+=h.length}return o}function XIe(e,t,r,n){let i=[""],o=!1,s=!0;for(;;){let a=JIe("{","}",e);if(!a)return J5(i,e,[""],t,r,o);let l=a.pre;if(/\$$/.test(l)){if(i=J5(i,l+"{"+a.body+"}",[""],t,r,o&&!a.post.length),s=!1,!a.post.length)break;e=a.post;continue}let c=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(a.body),u=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(a.body),d=c||u,g=a.body.indexOf(",")>=0;if(!d&&!g){if(a.post.match(/,(?!,).*\}/)){e=a.pre+"{"+a.body+eTe+a.post,n=!0;continue}return J5(i,l+"{"+a.body+"}"+a.post,[""],t,r,o)}s&&(o=n&&!d,s=!1);let m;if(d)m=Lon(a.body,u,t,r);else{let A=Iht(a.body);if(A.length===1&&A[0]!==void 0&&(A=XIe(A[0],t,r,!1).map(kon),A.length===1)){if(i=J5(i,l+A[0],[""],t,r,o&&!a.post.length),!a.post.length)break;e=a.post;continue}let h=o&&!a.post.length&&!l;for(let y=0;h&&y<i.length;y++)i[y]&&(h=!1);m=[];let _=0;e:for(let y=0;y<A.length;y++){let S=XIe(A[y],t,r,!1);for(let I=0;I<S.length;I++){let w=S[I];if(!(h&&!w)){if(m.length>=t||_+w.length>r)break e;m.push(w),_+=w.length}}}}if(i=J5(i,l,m,t,r,o&&!a.post.length),!a.post.length)break;e=a.post}return i}var Z5=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")};var Fon={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},X5=e=>e.replace(/[[\]\\-]/g,"\\$&"),Uon=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),vht=e=>e.join(""),xht=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let n=[],i=[],o=r+1,s=!1,a=!1,l=!1,c=!1,u=r,d="";e:for(;o<e.length;){let h=e.charAt(o);if((h==="!"||h==="^")&&o===r+1){c=!0,o++;continue}if(h==="]"&&s&&!l){u=o+1;break}if(s=!0,h==="\\"&&!l){l=!0,o++;continue}if(h==="["&&!l){for(let[_,[y,S,I]]of Object.entries(Fon))if(e.startsWith(_,o)){if(d)return["$.",!1,e.length-r,!0];o+=_.length,I?i.push(y):n.push(y),a=a||S;continue e}}if(l=!1,d){h>d?n.push(X5(d)+"-"+X5(h)):h===d&&n.push(X5(h)),d="",o++;continue}if(e.startsWith("-]",o+1)){n.push(X5(h+"-")),o+=2;continue}if(e.startsWith("-",o+1)){d=h,o+=2;continue}n.push(X5(h)),o++}if(u<o)return["",!1,0,!1];if(!n.length&&!i.length)return["$.",!1,e.length-r,!0];if(i.length===0&&n.length===1&&/^\\?.$/.test(n[0])&&!c){let h=n[0].length===2?n[0].slice(-1):n[0];return[Uon(h),!1,u-r,!1]}let g="["+(c?"^":"")+vht(n)+"]",m="["+(c?"":"^")+vht(i)+"]";return[n.length&&i.length?"("+g+"|"+m+")":n.length?g:m,a,u-r,!0]};var hS=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!0}={})=>r?t?e.replace(/\[([^/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):t?e.replace(/\[([^/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");var $d,Hon=new Set(["!","?","+","*","@"]),tTe=e=>Hon.has(e),wht=e=>tTe(e.type),$on=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),qon=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),Gon=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),Dht=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),zon="(?!(?:^|/)\\.\\.?(?:$|/))",aX="(?!\\.)",jon=new Set(["[","."]),Yon=new Set(["..","."]),Von=new Set("().*{}+?[]^$\\!"),Won=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),rTe="[^/]",Rht=rTe+"*?",Nht=rTe+"+?",Kon=0,qv=class{type;#e;#t;#n=!1;#r=[];#o;#i;#l;#s=!1;#a;#d;#p=!1;id=++Kon;get depth(){return(this.#o?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#e.id,parent:this.#o?.id,depth:this.depth,partsLength:this.#r.length,parts:this.#r}}constructor(t,r,n={}){this.type=t,t&&(this.#t=!0),this.#o=r,this.#e=this.#o?this.#o.#e:this,this.#a=this.#e===this?n:this.#e.#a,this.#l=this.#e===this?[]:this.#e.#l,t==="!"&&!this.#e.#s&&this.#l.push(this),this.#i=this.#o?this.#o.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let t of this.#r)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#d!==void 0?this.#d:this.type?this.#d=this.type+"("+this.#r.map(t=>String(t)).join("|")+")":this.#d=this.#r.map(t=>String(t)).join("")}#f(){if(this!==this.#e)throw new Error("should only call on root");if(this.#s)return this;this.toString(),this.#s=!0;let t;for(;t=this.#l.pop();){if(t.type!=="!")continue;let r=t,n=r.#o;for(;n;){for(let i=r.#i+1;!n.type&&i<n.#r.length;i++)for(let o of t.#r){if(typeof o=="string")throw new Error("string part in extglob AST??");o.copyIn(n.#r[i])}r=n,n=r.#o}}return this}push(...t){for(let r of t)if(r!==""){if(typeof r!="string"&&!(r instanceof $d&&r.#o===this))throw new Error("invalid part: "+r);this.#r.push(r)}}toJSON(){let t=this.type===null?this.#r.slice().map(r=>typeof r=="string"?r:r.toJSON()):[this.type,...this.#r.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#s&&this.#o?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#o?.isStart())return!1;if(this.#i===0)return!0;let t=this.#o;for(let r=0;r<this.#i;r++){let n=t.#r[r];if(!(n instanceof $d&&n.type==="!"))return!1}return!0}isEnd(){if(this.#e===this||this.#o?.type==="!")return!0;if(!this.#o?.isEnd())return!1;if(!this.type)return this.#o?.isEnd();let t=this.#o?this.#o.#r.length:0;return this.#i===t-1}copyIn(t){typeof t=="string"?this.push(t):this.push(t.clone(this))}clone(t){let r=new $d(this.type,t);for(let n of this.#r)r.copyIn(n);return r}static#c(t,r,n,i,o){let s=i.maxExtglobRecursion??2,a=!1,l=!1,c=-1,u=!1;if(r.type===null){let h=n,_="";for(;h<t.length;){let y=t.charAt(h++);if(a||y==="\\"){a=!a,_+=y;continue}if(l){h===c+1?(y==="^"||y==="!")&&(u=!0):y==="]"&&!(h===c+2&&u)&&(l=!1),_+=y;continue}else if(y==="["){l=!0,c=h,u=!1,_+=y;continue}if(!i.noext&&tTe(y)&&t.charAt(h)==="("&&o<=s){r.push(_),_="";let I=new $d(y,r);h=$d.#c(t,I,h,i,o+1),r.push(I);continue}_+=y}return r.push(_),h}let d=n+1,g=new $d(null,r),m=[],A="";for(;d<t.length;){let h=t.charAt(d++);if(a||h==="\\"){a=!a,A+=h;continue}if(l){d===c+1?(h==="^"||h==="!")&&(u=!0):h==="]"&&!(d===c+2&&u)&&(l=!1),A+=h;continue}else if(h==="["){l=!0,c=d,u=!1,A+=h;continue}if(!i.noext&&tTe(h)&&t.charAt(d)==="("&&(o<=s||r&&r.#E(h))){let y=r&&r.#E(h)?0:1;g.push(A),A="";let S=new $d(h,g);g.push(S),d=$d.#c(t,S,d,i,o+y);continue}if(h==="|"){g.push(A),A="",m.push(g),g=new $d(null,r);continue}if(h===")")return A===""&&r.#r.length===0&&(r.#p=!0),g.push(A),A="",r.push(...m,g),d;A+=h}return r.type=null,r.#t=void 0,r.#r=[t.substring(n-1)],d}#g(t){return this.#h(t,qon)}#h(t,r=$on){if(!t||typeof t!="object"||t.type!==null||t.#r.length!==1||this.type===null)return!1;let n=t.#r[0];return!n||typeof n!="object"||n.type===null?!1:this.#E(n.type,r)}#E(t,r=Gon){return!!r.get(this.type)?.includes(t)}#A(t,r){let n=t.#r[0],i=new $d(null,n,this.options);i.#r.push(""),n.push(i),this.#v(t,r)}#v(t,r){let n=t.#r[0];this.#r.splice(r,1,...n.#r);for(let i of n.#r)typeof i=="object"&&(i.#o=this);this.#d=void 0}#y(t){return!!Dht.get(this.type)?.has(t)}#S(t){if(!t||typeof t!="object"||t.type!==null||t.#r.length!==1||this.type===null||this.#r.length!==1)return!1;let r=t.#r[0];return!r||typeof r!="object"||r.type===null?!1:this.#y(r.type)}#I(t){let r=Dht.get(this.type),n=t.#r[0],i=r?.get(n.type);if(!i)return!1;this.#r=n.#r;for(let o of this.#r)typeof o=="object"&&(o.#o=this);this.type=i,this.#d=void 0,this.#p=!1}static fromGlob(t,r={}){let n=new $d(null,void 0,r);return $d.#c(t,n,0,r,0),n}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let t=this.toString(),[r,n,i,o]=this.toRegExpSource();if(!(i||this.#t||this.#a.nocase&&!this.#a.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return n;let a=(this.#a.nocase?"i":"")+(o?"u":"");return Object.assign(new RegExp(`^${r}$`,a),{_src:r,_glob:t})}get options(){return this.#a}toRegExpSource(t){let r=t??!!this.#a.dot;if(this.#e===this&&(this.#_(),this.#f()),!wht(this)){let l=this.isStart()&&this.isEnd()&&!this.#r.some(m=>typeof m!="string"),c=this.#r.map(m=>{let[A,h,_,y]=typeof m=="string"?$d.#C(m,this.#t,l):m.toRegExpSource(t);return this.#t=this.#t||_,this.#n=this.#n||y,A}).join(""),u="";if(this.isStart()&&typeof this.#r[0]=="string"&&!(this.#r.length===1&&Yon.has(this.#r[0]))){let A=jon,h=r&&A.has(c.charAt(0))||c.startsWith("\\.")&&A.has(c.charAt(2))||c.startsWith("\\.\\.")&&A.has(c.charAt(4)),_=!r&&!t&&A.has(c.charAt(0));u=h?zon:_?aX:""}let d="";return this.isEnd()&&this.#e.#s&&this.#o?.type==="!"&&(d="(?:$|\\/)"),[u+c+d,hS(c),this.#t=!!this.#t,this.#n]}let n=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",o=this.#b(r);if(this.isStart()&&this.isEnd()&&!o&&this.type!=="!"){let l=this.toString(),c=this;return c.#r=[l],c.type=null,c.#t=void 0,[l,hS(this.toString()),!1,!1]}let s=!n||t||r||!aX?"":this.#b(!0);s===o&&(s=""),s&&(o=`(?:${o})(?:${s})*?`);let a="";if(this.type==="!"&&this.#p)a=(this.isStart()&&!r?aX:"")+Nht;else{let l=this.type==="!"?"))"+(this.isStart()&&!r&&!t?aX:"")+Rht+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&s?")":this.type==="*"&&s?")?":`)${this.type}`;a=i+o+l}return[a,hS(o),this.#t=!!this.#t,this.#n]}#_(){if(wht(this)){let t=0,r=!1;do{r=!0;for(let n=0;n<this.#r.length;n++){let i=this.#r[n];typeof i=="object"&&(i.#_(),this.#h(i)?(r=!1,this.#v(i,n)):this.#g(i)?(r=!1,this.#A(i,n)):this.#S(i)&&(r=!1,this.#I(i)))}}while(!r&&++t<10)}else for(let t of this.#r)typeof t=="object"&&t.#_();this.#d=void 0}#b(t){return this.#r.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[n,i,o,s]=r.toRegExpSource(t);return this.#n=this.#n||s,n}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#C(t,r,n=!1){let i=!1,o="",s=!1,a=!1;for(let l=0;l<t.length;l++){let c=t.charAt(l);if(i){i=!1,o+=(Von.has(c)?"\\":"")+c;continue}if(c==="*"){if(a)continue;a=!0,o+=n&&/^[*]+$/.test(t)?Nht:Rht,r=!0;continue}else a=!1;if(c==="\\"){l===t.length-1?o+="\\\\":i=!0;continue}if(c==="["){let[u,d,g,m]=xht(t,l);if(g){o+=u,s=s||d,l+=g-1,r=r||m;continue}}if(c==="?"){o+=rTe,r=!0;continue}o+=Won(c)}return[o,hS(t),!!r,s]}};$d=qv;var nTe=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!1}={})=>r?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");var Ac=(e,t,r={})=>(Z5(t),!r.nocomment&&t.charAt(0)==="#"?!1:new V2(t,r).match(e)),Jon=/^\*+([^+@!?*[(]*)$/,Zon=e=>t=>!t.startsWith(".")&&t.endsWith(e),Xon=e=>t=>t.endsWith(e),esn=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),tsn=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),rsn=/^\*+\.\*+$/,nsn=e=>!e.startsWith(".")&&e.includes("."),isn=e=>e!=="."&&e!==".."&&e.includes("."),osn=/^\.\*+$/,ssn=e=>e!=="."&&e!==".."&&e.startsWith("."),asn=/^\*+$/,lsn=e=>e.length!==0&&!e.startsWith("."),csn=e=>e.length!==0&&e!=="."&&e!=="..",usn=/^\?+([^+@!?*[(]*)?$/,dsn=([e,t=""])=>{let r=kht([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},fsn=([e,t=""])=>{let r=Mht([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},psn=([e,t=""])=>{let r=Mht([e]);return t?n=>r(n)&&n.endsWith(t):r},msn=([e,t=""])=>{let r=kht([e]);return t?n=>r(n)&&n.endsWith(t):r},kht=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},Mht=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},Qht=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",Bht={win32:{sep:"\\"},posix:{sep:"/"}},gsn=Qht==="win32"?Bht.win32.sep:Bht.posix.sep;Ac.sep=gsn;var Jc=Symbol("globstar **");Ac.GLOBSTAR=Jc;var Asn="[^/]",hsn=Asn+"*?",Esn="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",_sn="(?:(?!(?:\\/|^)\\.).)*?",ysn=(e,t={})=>r=>Ac(r,e,t);Ac.filter=ysn;var xm=(e,t={})=>Object.assign({},e,t),bsn=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return Ac;let t=Ac;return Object.assign((n,i,o={})=>t(n,i,xm(e,o)),{Minimatch:class extends t.Minimatch{constructor(i,o={}){super(i,xm(e,o))}static defaults(i){return t.defaults(xm(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,o,s={}){super(i,o,xm(e,s))}static fromGlob(i,o={}){return t.AST.fromGlob(i,xm(e,o))}},unescape:(n,i={})=>t.unescape(n,xm(e,i)),escape:(n,i={})=>t.escape(n,xm(e,i)),filter:(n,i={})=>t.filter(n,xm(e,i)),defaults:n=>t.defaults(xm(e,n)),makeRe:(n,i={})=>t.makeRe(n,xm(e,i)),braceExpand:(n,i={})=>t.braceExpand(n,xm(e,i)),match:(n,i,o={})=>t.match(n,i,xm(e,o)),sep:t.sep,GLOBSTAR:Jc})};Ac.defaults=bsn;var Pht=(e,t={})=>(Z5(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:Tht(e,{max:t.braceExpandMax}));Ac.braceExpand=Pht;var Csn=(e,t={})=>new V2(e,t).makeRe();Ac.makeRe=Csn;var Ssn=(e,t,r={})=>{let n=new V2(t,r);return e=e.filter(i=>n.match(i)),n.options.nonull&&!e.length&&e.push(t),e};Ac.match=Ssn;var Oht=/[?*]|[+@!]\(.*?\)|\[|\]/,Isn=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),V2=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,r={}){Z5(t),r=r||{},this.options=r,this.maxGlobstarRecursion=r.maxGlobstarRecursion??200,this.pattern=t,this.platform=r.platform||Qht,this.isWindows=this.platform==="win32";let n="allowWindowsEscape";this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r[n]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let r of t)if(typeof r!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,r=this.options;if(!r.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...o)=>console.error(...o)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(o=>this.slashSplit(o));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let i=this.globParts.map((o,s,a)=>{if(this.isWindows&&this.windowsNoMagicRoot){let l=o[0]===""&&o[1]===""&&(o[2]==="?"||!Oht.test(o[2]))&&!Oht.test(o[3]),c=/^[a-z]:/i.test(o[0]);if(l)return[...o.slice(0,4),...o.slice(4).map(u=>this.parse(u))];if(c)return[o[0],...o.slice(1).map(u=>this.parse(u))]}return o.map(l=>this.parse(l))});if(this.debug(this.pattern,i),this.set=i.filter(o=>o.indexOf(!1)===-1),this.isWindows)for(let o=0;o<this.set.length;o++){let s=this.set[o];s[0]===""&&s[1]===""&&this.globParts[o][2]==="?"&&typeof s[3]=="string"&&/^[a-z]:$/i.test(s[3])&&(s[2]="?")}this.debug(this.pattern,this.set)}preprocess(t){if(this.options.noglobstar)for(let n of t)for(let i=0;i<n.length;i++)n[i]==="**"&&(n[i]="*");let{optimizationLevel:r=1}=this.options;return r>=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):r>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(r=>{let n=-1;for(;(n=r.indexOf("**",n+1))!==-1;){let i=n;for(;r[i+1]==="**";)i++;i!==n&&r.splice(n,i-n)}return r})}levelOneOptimize(t){return t.map(r=>(r=r.reduce((n,i)=>{let o=n[n.length-1];return i==="**"&&o==="**"?n:i===".."&&o&&o!==".."&&o!=="."&&o!=="**"?(n.pop(),n):(n.push(i),n)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let i=1;i<t.length-1;i++){let o=t[i];i===1&&o===""&&t[0]===""||(o==="."||o==="")&&(r=!0,t.splice(i,1),i--)}t[0]==="."&&t.length===2&&(t[1]==="."||t[1]==="")&&(r=!0,t.pop())}let n=0;for(;(n=t.indexOf("..",n+1))!==-1;){let i=t[n-1];i&&i!=="."&&i!==".."&&i!=="**"&&!(this.isWindows&&/^[a-z]:$/i.test(i))&&(r=!0,t.splice(n-1,2),n-=2)}}while(r);return t.length===0?[""]:t}firstPhasePreProcess(t){let r=!1;do{r=!1;for(let n of t){let i=-1;for(;(i=n.indexOf("**",i+1))!==-1;){let s=i;for(;n[s+1]==="**";)s++;s>i&&n.splice(i+1,s-i);let a=n[i+1],l=n[i+2],c=n[i+3];if(a!==".."||!l||l==="."||l===".."||!c||c==="."||c==="..")continue;r=!0,n.splice(i,1);let u=n.slice(0);u[i]="**",t.push(u),i--}if(!this.preserveMultipleSlashes){for(let s=1;s<n.length-1;s++){let a=n[s];s===1&&a===""&&n[0]===""||(a==="."||a==="")&&(r=!0,n.splice(s,1),s--)}n[0]==="."&&n.length===2&&(n[1]==="."||n[1]==="")&&(r=!0,n.pop())}let o=0;for(;(o=n.indexOf("..",o+1))!==-1;){let s=n[o-1];if(s&&s!=="."&&s!==".."&&s!=="**"){r=!0;let l=o===1&&n[o+1]==="**"?["."]:[];n.splice(o-1,2,...l),n.length===0&&n.push(""),o-=2}}}}while(r);return t}secondPhasePreProcess(t){for(let r=0;r<t.length-1;r++)for(let n=r+1;n<t.length;n++){let i=this.partsMatch(t[r],t[n],!this.preserveMultipleSlashes);if(i){t[r]=[],t[n]=i;break}}return t.filter(r=>r.length)}partsMatch(t,r,n=!1){let i=0,o=0,s=[],a="";for(;i<t.length&&o<r.length;)if(t[i]===r[o])s.push(a==="b"?r[o]:t[i]),i++,o++;else if(n&&t[i]==="**"&&r[o]===t[i+1])s.push(t[i]),i++;else if(n&&r[o]==="**"&&t[i]===r[o+1])s.push(r[o]),o++;else if(t[i]==="*"&&r[o]&&(this.options.dot||!r[o].startsWith("."))&&r[o]!=="**"){if(a==="b")return!1;a="a",s.push(t[i]),i++,o++}else if(r[o]==="*"&&t[i]&&(this.options.dot||!t[i].startsWith("."))&&t[i]!=="**"){if(a==="a")return!1;a="b",s.push(r[o]),i++,o++}else return!1;return t.length===r.length&&s}parseNegate(){if(this.nonegate)return;let t=this.pattern,r=!1,n=0;for(let i=0;i<t.length&&t.charAt(i)==="!";i++)r=!r,n++;n&&(this.pattern=t.slice(n)),this.negate=r}matchOne(t,r,n=!1){let i=0,o=0;if(this.isWindows){let a=typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0]),l=!a&&t[0]===""&&t[1]===""&&t[2]==="?"&&/^[a-z]:$/i.test(t[3]),c=typeof r[0]=="string"&&/^[a-z]:$/i.test(r[0]),u=!c&&r[0]===""&&r[1]===""&&r[2]==="?"&&typeof r[3]=="string"&&/^[a-z]:$/i.test(r[3]),d=l?3:a?0:void 0,g=u?3:c?0:void 0;if(typeof d=="number"&&typeof g=="number"){let[m,A]=[t[d],r[g]];m.toLowerCase()===A.toLowerCase()&&(r[g]=m,o=g,i=d)}}let{optimizationLevel:s=1}=this.options;return s>=2&&(t=this.levelTwoFileOptimize(t)),r.includes(Jc)?this.#e(t,r,n,i,o):this.#n(t,r,n,i,o)}#e(t,r,n,i,o){let s=r.indexOf(Jc,o),a=r.lastIndexOf(Jc),[l,c,u]=n?[r.slice(o,s),r.slice(s+1),[]]:[r.slice(o,s),r.slice(s+1,a),r.slice(a+1)];if(l.length){let S=t.slice(i,i+l.length);if(!this.#n(S,l,n,0,0))return!1;i+=l.length,o+=l.length}let d=0;if(u.length){if(u.length+i>t.length)return!1;let S=t.length-u.length;if(this.#n(t,u,n,S,0))d=u.length;else{if(t[t.length-1]!==""||i+u.length===t.length||(S--,!this.#n(t,u,n,S,0)))return!1;d=u.length+1}}if(!c.length){let S=!!d;for(let I=i;I<t.length-d;I++){let w=String(t[I]);if(S=!0,w==="."||w===".."||!this.options.dot&&w.startsWith("."))return!1}return n||S}let g=[[[],0]],m=g[0],A=0,h=[0];for(let S of c)S===Jc?(h.push(A),m=[[],0],g.push(m)):(m[0].push(S),A++);let _=g.length-1,y=t.length-d;for(let S of g)S[1]=y-(h[_--]+S[0].length);return!!this.#t(t,g,i,0,n,0,!!d)}#t(t,r,n,i,o,s,a){let l=r[i];if(!l){for(let d=n;d<t.length;d++){a=!0;let g=t[d];if(g==="."||g===".."||!this.options.dot&&g.startsWith("."))return!1}return a}let[c,u]=l;for(;n<=u;){if(this.#n(t.slice(0,n+c.length),c,o,n,0)&&s<this.maxGlobstarRecursion){let m=this.#t(t,r,n+c.length,i+1,o,s+1,a);if(m!==!1)return m}let g=t[n];if(g==="."||g===".."||!this.options.dot&&g.startsWith("."))return!1;n++}return o||null}#n(t,r,n,i,o){let s,a,l,c;for(s=i,a=o,c=t.length,l=r.length;s<c&&a<l;s++,a++){this.debug("matchOne loop");let u=r[a],d=t[s];if(this.debug(r,u,d),u===!1||u===Jc)return!1;let g;if(typeof u=="string"?(g=d===u,this.debug("string match",u,d,g)):(g=u.test(d),this.debug("pattern match",u,d,g)),!g)return!1}if(s===c&&a===l)return!0;if(s===c)return n;if(a===l)return s===c-1&&t[s]==="";throw new Error("wtf?")}braceExpand(){return Pht(this.pattern,this.options)}parse(t){Z5(t);let r=this.options;if(t==="**")return Jc;if(t==="")return"";let n,i=null;(n=t.match(asn))?i=r.dot?csn:lsn:(n=t.match(Jon))?i=(r.nocase?r.dot?tsn:esn:r.dot?Xon:Zon)(n[1]):(n=t.match(usn))?i=(r.nocase?r.dot?fsn:dsn:r.dot?psn:msn)(n):(n=t.match(rsn))?i=r.dot?isn:nsn:(n=t.match(osn))&&(i=ssn);let o=qv.fromGlob(t,this.options).toMMPattern();return i&&typeof o=="object"&&Reflect.defineProperty(o,"test",{value:i}),o}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let r=this.options,n=r.noglobstar?hsn:r.dot?Esn:_sn,i=new Set(r.nocase?["i"]:[]),o=t.map(l=>{let c=l.map(d=>{if(d instanceof RegExp)for(let g of d.flags.split(""))i.add(g);return typeof d=="string"?Isn(d):d===Jc?Jc:d._src});c.forEach((d,g)=>{let m=c[g+1],A=c[g-1];d!==Jc||A===Jc||(A===void 0?m!==void 0&&m!==Jc?c[g+1]="(?:\\/|"+n+"\\/)?"+m:c[g]=n:m===void 0?c[g-1]=A+"(?:\\/|\\/"+n+")?":m!==Jc&&(c[g-1]=A+"(?:\\/|\\/"+n+"\\/)"+m,c[g+1]=Jc))});let u=c.filter(d=>d!==Jc);if(this.partial&&u.length>=1){let d=[];for(let g=1;g<=u.length;g++)d.push(u.slice(0,g).join("/"));return"(?:"+d.join("|")+")"}return u.join("/")}).join("|"),[s,a]=t.length>1?["(?:",")"]:["",""];o="^"+s+o+a+"$",this.partial&&(o="^(?:\\/|"+s+o.slice(1,-1)+a+")$"),this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;let n=this.options;this.isWindows&&(t=t.split("\\").join("/"));let i=this.slashSplit(t);this.debug(this.pattern,"split",i);let o=this.set;this.debug(this.pattern,"set",o);let s=i[i.length-1];if(!s)for(let a=i.length-2;!s&&a>=0;a--)s=i[a];for(let a of o){let l=i;if(n.matchBase&&a.length===1&&(l=[s]),this.matchOne(l,a,r))return n.flipNegate?!0:!this.negate}return n.flipNegate?!1:this.negate}static defaults(t){return Ac.defaults(t).Minimatch}};Ac.AST=qv;Ac.Minimatch=V2;Ac.escape=nTe;Ac.unescape=hS;var Uht=U(K5(),1);br();Le();Pe();Nu();import{readFile as Lht}from"fs/promises";import{existsSync as iTe,readdirSync as Tsn,statSync as vsn}from"fs";import{join as oTe,relative as Hht}from"path";import{homedir as xsn}from"os";function Fht(e){try{let t=(0,Uht.default)(e),r=t.data.paths,n=[];return typeof r=="string"?n=r.split(",").map(i=>i.trim()).filter(Boolean):Array.isArray(r)&&(n=r.filter(i=>typeof i=="string")),{paths:n,content:t.content.trim()}}catch(t){return Te(t),{paths:[],content:e.trim()}}}function wsn(e,t){return t.length===0?!0:t.some(r=>{try{return Ac(e,r,{matchBase:!0,dot:!0})}catch(n){return Te(n),!1}})}function sTe(e){let t=[];try{if(!iTe(e))return t;let r=Tsn(e);for(let n of r){let i=oTe(e,n),o=vsn(i);o.isDirectory()?t.push(...sTe(i)):o.isFile()&&n.endsWith(".md")&&t.push(i)}}catch(r){Te(r)}return t}async function lX(){let e=[];try{let t=oTe(xsn(),rn,"rules");if(iTe(t)){let r=sTe(t);for(let n of r)try{let i=await Lht(n,"utf-8"),{paths:o,content:s}=Fht(i);o.length>0&&e.push({filePath:n,content:s,paths:o,isProjectRule:!1})}catch(i){Te(i)}}}catch(t){Te(t)}try{let t=oTe(Re(),rn,"rules");if(iTe(t)){let r=sTe(t);for(let n of r)try{let i=await Lht(n,"utf-8"),{paths:o,content:s}=Fht(i);o.length>0&&e.push({filePath:Hht(Re(),n),content:s,paths:o,isProjectRule:!0})}catch(i){Te(i)}}}catch(t){Te(t)}return e}function $ht(e,t){e=wV(e);let r=wV(Re()),n=e.startsWith(r)?Hht(r,e):e;return t.filter(i=>wsn(n,i.paths))}function qht(e){return e.length===0?"":e.map(r=>{let n=r.isProjectRule?"project instructions, checked into the codebase":"user's private global instructions for all projects";return`Contents of ${r.filePath} (${n}):
625
+ Stack trace: `+d.stack)),new Response(l.body,{status:a.status,statusText:a.statusText,headers:a.headers})}}var $Z=null,RIe=!1;function Wtn(){$Z=null,RIe=!1}Tr.on("proxy:changed",Wtn);function Ktn(){if(RIe)return $Z;if(RIe=!0,ct().proxy!==!0)return null;let e=process.env.HTTPS_PROXY||process.env.HTTP_PROXY||process.env.https_proxy||process.env.http_proxy;return e&&($Z=new Vmt.ProxyAgent({uri:e}),rr(`[proxy] using proxy: ${e}`)),$Z}function Jtn(){let e=Ktn();return e?((t,r={})=>global.fetch(t,{...r,dispatcher:e})):global.fetch}function GZ(e){let t=e||process.env.API_TYPE,r=Jtn();switch(t){case"openai":return ztn(r);case"openai-responses":return jtn(r);case"gemini":return Ytn(r);default:return Vtn(r)}}_h();var trn=U(et(),1);function Wmt(e,t){let r=[],n=Math.max(1,Math.floor(t)),i="",o=0;for(let s of e){let a=Ztn(s);i&&o+a>n?(r.push(i),i=s,o=a):(i+=s,o+=a)}return i&&r.push(i),r}function Ztn(e){if(e===" ")return 4;let t=e.codePointAt(0);return t===void 0||t===0||t<32||t>=127&&t<160||Xtn(t)?0:ern(t)?2:1}function Xtn(e){return e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071}function ern(e){return e>=4352&&(e<=4447||e===9001||e===9002||e>=11904&&e<=42191&&e!==12351||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=127744&&e<=128591||e>=129280&&e<=129535||e>=131072&&e<=262141)}function S_(e){if(e<6e4)return`${(e/1e3).toFixed(1)}s`;let t=Math.floor(e/36e5),r=Math.floor(e%36e5/6e4),n=(e%6e4/1e3).toFixed(1);return t>0?`${t}h ${r}m ${n}s`:r>0?`${r}m ${n}s`:`${n}s`}function mS(e){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(e).toLowerCase()}Pe();Ns();var mc={totalCost:0,totalAPIDuration:0,startTime:Date.now(),inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,currentContextTokens:0};function zZ(e,t){mc.totalCost+=e,mc.totalAPIDuration+=t}function jZ(e,t){mc.inputTokens+=e,mc.outputTokens+=t,Tr.emit("token:change",{inputTokens:mc.inputTokens,outputTokens:mc.outputTokens})}function YZ(e,t){mc.cacheCreationTokens+=e,mc.cacheReadTokens+=t}function OIe(){return{inputTokens:mc.inputTokens,outputTokens:mc.outputTokens,cacheCreationTokens:mc.cacheCreationTokens,cacheReadTokens:mc.cacheReadTokens}}function Kmt(){return mc.totalCost}function Jmt(){return Date.now()-mc.startTime}function Zmt(){return mc.totalAPIDuration}function Xmt(e){mc.currentContextTokens=e}function egt(){return mc.currentContextTokens}Pe();Le();Le();var kIe="2.6.7";globalThis.MACRO={VERSION:kIe,PACKAGE_URL:`@dahawa/${Zi}`,README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};var VZ=process.env.HAWA_CODE_USER_AGENT||`${Zi}/${kIe} (${process.env.USER_TYPE})`;import{randomUUID as ME}from"crypto";Ns();Pe();er();br();Pe();Le();import{existsSync as w_,readdirSync as Dsn,statSync as Rsn}from"fs";import{join as ES,relative as Nsn}from"path";import{homedir as zht}from"os";import{platform as Bsn}from"process";import{readFile as _S}from"fs/promises";br();Tm();or();import{join as srn,sep as arn}from"path";function vm(){if(!Fu())return!1;try{let e=ct();if(e.autoMemory?.teamMemoryEnabled!==void 0)return e.autoMemory.teamMemoryEnabled}catch{}return!1}function Zf(){return(srn(Re(),".hcode","team-memory")+arn).normalize("NFC")}function T_(e){let t=e.normalize("NFC"),r=Zf();return t.startsWith(r)}Tm();var jht=U(K5(),1);Hi();var JIe=(e,t,r)=>{let n=e instanceof RegExp?_ht(e,r):e,i=t instanceof RegExp?_ht(t,r):t,o=n!==null&&i!=null&&_on(n,i,r);return o&&{start:o[0],end:o[1],pre:r.slice(0,o[0]),body:r.slice(o[0]+n.length,o[1]),post:r.slice(o[1]+i.length)}},_ht=(e,t)=>{let r=t.match(e);return r?r[0]:null},_on=(e,t,r)=>{let n,i,o,s,a,l=r.indexOf(e),c=r.indexOf(t,l+1),u=l;if(l>=0&&c>0){if(e===t)return[l,c];for(n=[],o=r.length;u>=0&&!a;){if(u===l)n.push(u),l=r.indexOf(e,u+1);else if(n.length===1){let d=n.pop();d!==void 0&&(a=[d,c])}else i=n.pop(),i!==void 0&&i<o&&(o=i,s=c),c=r.indexOf(t,u+1);u=l<c&&l>=0?l:c}n.length&&s!==void 0&&(a=[o,s])}return a};var yht="\0SLASH"+Math.random()+"\0",bht="\0OPEN"+Math.random()+"\0",eTe="\0CLOSE"+Math.random()+"\0",Cht="\0COMMA"+Math.random()+"\0",Sht="\0PERIOD"+Math.random()+"\0",yon=new RegExp(yht,"g"),bon=new RegExp(bht,"g"),Con=new RegExp(eTe,"g"),Son=new RegExp(Cht,"g"),Ion=new RegExp(Sht,"g"),Ton=/\\\\/g,von=/\\{/g,xon=/\\}/g,won=/\\,/g,Don=/\\\./g,Ron=1e5,Non=4e6;function ZIe(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function Bon(e){return e.replace(Ton,yht).replace(von,bht).replace(xon,eTe).replace(won,Cht).replace(Don,Sht)}function Oon(e){return e.replace(yon,"\\").replace(bon,"{").replace(Con,"}").replace(Son,",").replace(Ion,".")}function Iht(e){if(!e)return[""];let t=[],r=JIe("{","}",e);if(!r)return e.split(",");let{pre:n,body:i,post:o}=r,s=n.split(",");s[s.length-1]+="{"+i+"}";let a=Iht(o);return o.length&&(s[s.length-1]+=a.shift(),s.push.apply(s,a)),t.push.apply(t,s),t}function Tht(e,t={}){if(!e)return[];let{max:r=Ron,maxLength:n=Non}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),XIe(Bon(e),r,n,!0).map(Oon)}function kon(e){return"{"+e+"}"}function Mon(e){return/^-?0\d/.test(e)}function Qon(e,t){return e<=t}function Pon(e,t){return e>=t}function J5(e,t,r,n,i,o){let s=[],a=0;for(let l=0;l<e.length;l++)for(let c=0;c<r.length;c++){if(s.length>=n)return s;let u=e[l]+t+r[c];if(!(o&&!u)){if(a+u.length>i)return s;s.push(u),a+=u.length}}return s}function Lon(e,t,r,n){let i=e.split(/\.\./),o=[];if(i[0]===void 0||i[1]===void 0)return o;let s=ZIe(i[0]),a=ZIe(i[1]),l=Math.max(i[0].length,i[1].length),c=i.length===3&&i[2]!==void 0?Math.max(Math.abs(ZIe(i[2])),1):1,u=Qon;a<s&&(c*=-1,u=Pon);let g=i.some(Mon),m=0;for(let A=s;u(A,a)&&o.length<r;A+=c){let h;if(t)h=String.fromCharCode(A),h==="\\"&&(h="");else if(h=String(A),g){let _=l-h.length;if(_>0){let y=new Array(_+1).join("0");A<0?h="-"+y+h.slice(1):h=y+h}}if(m+h.length>n)break;o.push(h),m+=h.length}return o}function XIe(e,t,r,n){let i=[""],o=!1,s=!0;for(;;){let a=JIe("{","}",e);if(!a)return J5(i,e,[""],t,r,o);let l=a.pre;if(/\$$/.test(l)){if(i=J5(i,l+"{"+a.body+"}",[""],t,r,o&&!a.post.length),s=!1,!a.post.length)break;e=a.post;continue}let c=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(a.body),u=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(a.body),d=c||u,g=a.body.indexOf(",")>=0;if(!d&&!g){if(a.post.match(/,(?!,).*\}/)){e=a.pre+"{"+a.body+eTe+a.post,n=!0;continue}return J5(i,l+"{"+a.body+"}"+a.post,[""],t,r,o)}s&&(o=n&&!d,s=!1);let m;if(d)m=Lon(a.body,u,t,r);else{let A=Iht(a.body);if(A.length===1&&A[0]!==void 0&&(A=XIe(A[0],t,r,!1).map(kon),A.length===1)){if(i=J5(i,l+A[0],[""],t,r,o&&!a.post.length),!a.post.length)break;e=a.post;continue}let h=o&&!a.post.length&&!l;for(let y=0;h&&y<i.length;y++)i[y]&&(h=!1);m=[];let _=0;e:for(let y=0;y<A.length;y++){let S=XIe(A[y],t,r,!1);for(let I=0;I<S.length;I++){let w=S[I];if(!(h&&!w)){if(m.length>=t||_+w.length>r)break e;m.push(w),_+=w.length}}}}if(i=J5(i,l,m,t,r,o&&!a.post.length),!a.post.length)break;e=a.post}return i}var Z5=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")};var Fon={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},X5=e=>e.replace(/[[\]\\-]/g,"\\$&"),Uon=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),vht=e=>e.join(""),xht=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let n=[],i=[],o=r+1,s=!1,a=!1,l=!1,c=!1,u=r,d="";e:for(;o<e.length;){let h=e.charAt(o);if((h==="!"||h==="^")&&o===r+1){c=!0,o++;continue}if(h==="]"&&s&&!l){u=o+1;break}if(s=!0,h==="\\"&&!l){l=!0,o++;continue}if(h==="["&&!l){for(let[_,[y,S,I]]of Object.entries(Fon))if(e.startsWith(_,o)){if(d)return["$.",!1,e.length-r,!0];o+=_.length,I?i.push(y):n.push(y),a=a||S;continue e}}if(l=!1,d){h>d?n.push(X5(d)+"-"+X5(h)):h===d&&n.push(X5(h)),d="",o++;continue}if(e.startsWith("-]",o+1)){n.push(X5(h+"-")),o+=2;continue}if(e.startsWith("-",o+1)){d=h,o+=2;continue}n.push(X5(h)),o++}if(u<o)return["",!1,0,!1];if(!n.length&&!i.length)return["$.",!1,e.length-r,!0];if(i.length===0&&n.length===1&&/^\\?.$/.test(n[0])&&!c){let h=n[0].length===2?n[0].slice(-1):n[0];return[Uon(h),!1,u-r,!1]}let g="["+(c?"^":"")+vht(n)+"]",m="["+(c?"":"^")+vht(i)+"]";return[n.length&&i.length?"("+g+"|"+m+")":n.length?g:m,a,u-r,!0]};var hS=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!0}={})=>r?t?e.replace(/\[([^/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):t?e.replace(/\[([^/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1");var $d,Hon=new Set(["!","?","+","*","@"]),tTe=e=>Hon.has(e),wht=e=>tTe(e.type),$on=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),qon=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),Gon=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),Dht=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),zon="(?!(?:^|/)\\.\\.?(?:$|/))",aX="(?!\\.)",jon=new Set(["[","."]),Yon=new Set(["..","."]),Von=new Set("().*{}+?[]^$\\!"),Won=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),rTe="[^/]",Rht=rTe+"*?",Nht=rTe+"+?",Kon=0,qv=class{type;#e;#t;#n=!1;#r=[];#o;#i;#l;#s=!1;#a;#d;#p=!1;id=++Kon;get depth(){return(this.#o?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#e.id,parent:this.#o?.id,depth:this.depth,partsLength:this.#r.length,parts:this.#r}}constructor(t,r,n={}){this.type=t,t&&(this.#t=!0),this.#o=r,this.#e=this.#o?this.#o.#e:this,this.#a=this.#e===this?n:this.#e.#a,this.#l=this.#e===this?[]:this.#e.#l,t==="!"&&!this.#e.#s&&this.#l.push(this),this.#i=this.#o?this.#o.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let t of this.#r)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#d!==void 0?this.#d:this.type?this.#d=this.type+"("+this.#r.map(t=>String(t)).join("|")+")":this.#d=this.#r.map(t=>String(t)).join("")}#f(){if(this!==this.#e)throw new Error("should only call on root");if(this.#s)return this;this.toString(),this.#s=!0;let t;for(;t=this.#l.pop();){if(t.type!=="!")continue;let r=t,n=r.#o;for(;n;){for(let i=r.#i+1;!n.type&&i<n.#r.length;i++)for(let o of t.#r){if(typeof o=="string")throw new Error("string part in extglob AST??");o.copyIn(n.#r[i])}r=n,n=r.#o}}return this}push(...t){for(let r of t)if(r!==""){if(typeof r!="string"&&!(r instanceof $d&&r.#o===this))throw new Error("invalid part: "+r);this.#r.push(r)}}toJSON(){let t=this.type===null?this.#r.slice().map(r=>typeof r=="string"?r:r.toJSON()):[this.type,...this.#r.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#s&&this.#o?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#o?.isStart())return!1;if(this.#i===0)return!0;let t=this.#o;for(let r=0;r<this.#i;r++){let n=t.#r[r];if(!(n instanceof $d&&n.type==="!"))return!1}return!0}isEnd(){if(this.#e===this||this.#o?.type==="!")return!0;if(!this.#o?.isEnd())return!1;if(!this.type)return this.#o?.isEnd();let t=this.#o?this.#o.#r.length:0;return this.#i===t-1}copyIn(t){typeof t=="string"?this.push(t):this.push(t.clone(this))}clone(t){let r=new $d(this.type,t);for(let n of this.#r)r.copyIn(n);return r}static#c(t,r,n,i,o){let s=i.maxExtglobRecursion??2,a=!1,l=!1,c=-1,u=!1;if(r.type===null){let h=n,_="";for(;h<t.length;){let y=t.charAt(h++);if(a||y==="\\"){a=!a,_+=y;continue}if(l){h===c+1?(y==="^"||y==="!")&&(u=!0):y==="]"&&!(h===c+2&&u)&&(l=!1),_+=y;continue}else if(y==="["){l=!0,c=h,u=!1,_+=y;continue}if(!i.noext&&tTe(y)&&t.charAt(h)==="("&&o<=s){r.push(_),_="";let I=new $d(y,r);h=$d.#c(t,I,h,i,o+1),r.push(I);continue}_+=y}return r.push(_),h}let d=n+1,g=new $d(null,r),m=[],A="";for(;d<t.length;){let h=t.charAt(d++);if(a||h==="\\"){a=!a,A+=h;continue}if(l){d===c+1?(h==="^"||h==="!")&&(u=!0):h==="]"&&!(d===c+2&&u)&&(l=!1),A+=h;continue}else if(h==="["){l=!0,c=d,u=!1,A+=h;continue}if(!i.noext&&tTe(h)&&t.charAt(d)==="("&&(o<=s||r&&r.#E(h))){let y=r&&r.#E(h)?0:1;g.push(A),A="";let S=new $d(h,g);g.push(S),d=$d.#c(t,S,d,i,o+y);continue}if(h==="|"){g.push(A),A="",m.push(g),g=new $d(null,r);continue}if(h===")")return A===""&&r.#r.length===0&&(r.#p=!0),g.push(A),A="",r.push(...m,g),d;A+=h}return r.type=null,r.#t=void 0,r.#r=[t.substring(n-1)],d}#g(t){return this.#h(t,qon)}#h(t,r=$on){if(!t||typeof t!="object"||t.type!==null||t.#r.length!==1||this.type===null)return!1;let n=t.#r[0];return!n||typeof n!="object"||n.type===null?!1:this.#E(n.type,r)}#E(t,r=Gon){return!!r.get(this.type)?.includes(t)}#A(t,r){let n=t.#r[0],i=new $d(null,n,this.options);i.#r.push(""),n.push(i),this.#v(t,r)}#v(t,r){let n=t.#r[0];this.#r.splice(r,1,...n.#r);for(let i of n.#r)typeof i=="object"&&(i.#o=this);this.#d=void 0}#y(t){return!!Dht.get(this.type)?.has(t)}#S(t){if(!t||typeof t!="object"||t.type!==null||t.#r.length!==1||this.type===null||this.#r.length!==1)return!1;let r=t.#r[0];return!r||typeof r!="object"||r.type===null?!1:this.#y(r.type)}#I(t){let r=Dht.get(this.type),n=t.#r[0],i=r?.get(n.type);if(!i)return!1;this.#r=n.#r;for(let o of this.#r)typeof o=="object"&&(o.#o=this);this.type=i,this.#d=void 0,this.#p=!1}static fromGlob(t,r={}){let n=new $d(null,void 0,r);return $d.#c(t,n,0,r,0),n}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let t=this.toString(),[r,n,i,o]=this.toRegExpSource();if(!(i||this.#t||this.#a.nocase&&!this.#a.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return n;let a=(this.#a.nocase?"i":"")+(o?"u":"");return Object.assign(new RegExp(`^${r}$`,a),{_src:r,_glob:t})}get options(){return this.#a}toRegExpSource(t){let r=t??!!this.#a.dot;if(this.#e===this&&(this.#_(),this.#f()),!wht(this)){let l=this.isStart()&&this.isEnd()&&!this.#r.some(m=>typeof m!="string"),c=this.#r.map(m=>{let[A,h,_,y]=typeof m=="string"?$d.#C(m,this.#t,l):m.toRegExpSource(t);return this.#t=this.#t||_,this.#n=this.#n||y,A}).join(""),u="";if(this.isStart()&&typeof this.#r[0]=="string"&&!(this.#r.length===1&&Yon.has(this.#r[0]))){let A=jon,h=r&&A.has(c.charAt(0))||c.startsWith("\\.")&&A.has(c.charAt(2))||c.startsWith("\\.\\.")&&A.has(c.charAt(4)),_=!r&&!t&&A.has(c.charAt(0));u=h?zon:_?aX:""}let d="";return this.isEnd()&&this.#e.#s&&this.#o?.type==="!"&&(d="(?:$|\\/)"),[u+c+d,hS(c),this.#t=!!this.#t,this.#n]}let n=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",o=this.#b(r);if(this.isStart()&&this.isEnd()&&!o&&this.type!=="!"){let l=this.toString(),c=this;return c.#r=[l],c.type=null,c.#t=void 0,[l,hS(this.toString()),!1,!1]}let s=!n||t||r||!aX?"":this.#b(!0);s===o&&(s=""),s&&(o=`(?:${o})(?:${s})*?`);let a="";if(this.type==="!"&&this.#p)a=(this.isStart()&&!r?aX:"")+Nht;else{let l=this.type==="!"?"))"+(this.isStart()&&!r&&!t?aX:"")+Rht+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&s?")":this.type==="*"&&s?")?":`)${this.type}`;a=i+o+l}return[a,hS(o),this.#t=!!this.#t,this.#n]}#_(){if(wht(this)){let t=0,r=!1;do{r=!0;for(let n=0;n<this.#r.length;n++){let i=this.#r[n];typeof i=="object"&&(i.#_(),this.#h(i)?(r=!1,this.#v(i,n)):this.#g(i)?(r=!1,this.#A(i,n)):this.#S(i)&&(r=!1,this.#I(i)))}}while(!r&&++t<10)}else for(let t of this.#r)typeof t=="object"&&t.#_();this.#d=void 0}#b(t){return this.#r.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[n,i,o,s]=r.toRegExpSource(t);return this.#n=this.#n||s,n}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#C(t,r,n=!1){let i=!1,o="",s=!1,a=!1;for(let l=0;l<t.length;l++){let c=t.charAt(l);if(i){i=!1,o+=(Von.has(c)?"\\":"")+c;continue}if(c==="*"){if(a)continue;a=!0,o+=n&&/^[*]+$/.test(t)?Nht:Rht,r=!0;continue}else a=!1;if(c==="\\"){l===t.length-1?o+="\\\\":i=!0;continue}if(c==="["){let[u,d,g,m]=xht(t,l);if(g){o+=u,s=s||d,l+=g-1,r=r||m;continue}}if(c==="?"){o+=rTe,r=!0;continue}o+=Won(c)}return[o,hS(t),!!r,s]}};$d=qv;var nTe=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!1}={})=>r?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");var Ac=(e,t,r={})=>(Z5(t),!r.nocomment&&t.charAt(0)==="#"?!1:new V2(t,r).match(e)),Jon=/^\*+([^+@!?*[(]*)$/,Zon=e=>t=>!t.startsWith(".")&&t.endsWith(e),Xon=e=>t=>t.endsWith(e),esn=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),tsn=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),rsn=/^\*+\.\*+$/,nsn=e=>!e.startsWith(".")&&e.includes("."),isn=e=>e!=="."&&e!==".."&&e.includes("."),osn=/^\.\*+$/,ssn=e=>e!=="."&&e!==".."&&e.startsWith("."),asn=/^\*+$/,lsn=e=>e.length!==0&&!e.startsWith("."),csn=e=>e.length!==0&&e!=="."&&e!=="..",usn=/^\?+([^+@!?*[(]*)?$/,dsn=([e,t=""])=>{let r=kht([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},fsn=([e,t=""])=>{let r=Mht([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},psn=([e,t=""])=>{let r=Mht([e]);return t?n=>r(n)&&n.endsWith(t):r},msn=([e,t=""])=>{let r=kht([e]);return t?n=>r(n)&&n.endsWith(t):r},kht=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},Mht=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},Qht=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",Bht={win32:{sep:"\\"},posix:{sep:"/"}},gsn=Qht==="win32"?Bht.win32.sep:Bht.posix.sep;Ac.sep=gsn;var Jc=Symbol("globstar **");Ac.GLOBSTAR=Jc;var Asn="[^/]",hsn=Asn+"*?",Esn="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",_sn="(?:(?!(?:\\/|^)\\.).)*?",ysn=(e,t={})=>r=>Ac(r,e,t);Ac.filter=ysn;var xm=(e,t={})=>Object.assign({},e,t),bsn=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return Ac;let t=Ac;return Object.assign((n,i,o={})=>t(n,i,xm(e,o)),{Minimatch:class extends t.Minimatch{constructor(i,o={}){super(i,xm(e,o))}static defaults(i){return t.defaults(xm(e,i)).Minimatch}},AST:class extends t.AST{constructor(i,o,s={}){super(i,o,xm(e,s))}static fromGlob(i,o={}){return t.AST.fromGlob(i,xm(e,o))}},unescape:(n,i={})=>t.unescape(n,xm(e,i)),escape:(n,i={})=>t.escape(n,xm(e,i)),filter:(n,i={})=>t.filter(n,xm(e,i)),defaults:n=>t.defaults(xm(e,n)),makeRe:(n,i={})=>t.makeRe(n,xm(e,i)),braceExpand:(n,i={})=>t.braceExpand(n,xm(e,i)),match:(n,i,o={})=>t.match(n,i,xm(e,o)),sep:t.sep,GLOBSTAR:Jc})};Ac.defaults=bsn;var Pht=(e,t={})=>(Z5(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:Tht(e,{max:t.braceExpandMax}));Ac.braceExpand=Pht;var Csn=(e,t={})=>new V2(e,t).makeRe();Ac.makeRe=Csn;var Ssn=(e,t,r={})=>{let n=new V2(t,r);return e=e.filter(i=>n.match(i)),n.options.nonull&&!e.length&&e.push(t),e};Ac.match=Ssn;var Oht=/[?*]|[+@!]\(.*?\)|\[|\]/,Isn=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),V2=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,r={}){Z5(t),r=r||{},this.options=r,this.maxGlobstarRecursion=r.maxGlobstarRecursion??200,this.pattern=t,this.platform=r.platform||Qht,this.isWindows=this.platform==="win32";let n="allowWindowsEscape";this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r[n]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let r of t)if(typeof r!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,r=this.options;if(!r.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...o)=>console.error(...o)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(o=>this.slashSplit(o));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let i=this.globParts.map((o,s,a)=>{if(this.isWindows&&this.windowsNoMagicRoot){let l=o[0]===""&&o[1]===""&&(o[2]==="?"||!Oht.test(o[2]))&&!Oht.test(o[3]),c=/^[a-z]:/i.test(o[0]);if(l)return[...o.slice(0,4),...o.slice(4).map(u=>this.parse(u))];if(c)return[o[0],...o.slice(1).map(u=>this.parse(u))]}return o.map(l=>this.parse(l))});if(this.debug(this.pattern,i),this.set=i.filter(o=>o.indexOf(!1)===-1),this.isWindows)for(let o=0;o<this.set.length;o++){let s=this.set[o];s[0]===""&&s[1]===""&&this.globParts[o][2]==="?"&&typeof s[3]=="string"&&/^[a-z]:$/i.test(s[3])&&(s[2]="?")}this.debug(this.pattern,this.set)}preprocess(t){if(this.options.noglobstar)for(let n of t)for(let i=0;i<n.length;i++)n[i]==="**"&&(n[i]="*");let{optimizationLevel:r=1}=this.options;return r>=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):r>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(r=>{let n=-1;for(;(n=r.indexOf("**",n+1))!==-1;){let i=n;for(;r[i+1]==="**";)i++;i!==n&&r.splice(n,i-n)}return r})}levelOneOptimize(t){return t.map(r=>(r=r.reduce((n,i)=>{let o=n[n.length-1];return i==="**"&&o==="**"?n:i===".."&&o&&o!==".."&&o!=="."&&o!=="**"?(n.pop(),n):(n.push(i),n)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let i=1;i<t.length-1;i++){let o=t[i];i===1&&o===""&&t[0]===""||(o==="."||o==="")&&(r=!0,t.splice(i,1),i--)}t[0]==="."&&t.length===2&&(t[1]==="."||t[1]==="")&&(r=!0,t.pop())}let n=0;for(;(n=t.indexOf("..",n+1))!==-1;){let i=t[n-1];i&&i!=="."&&i!==".."&&i!=="**"&&!(this.isWindows&&/^[a-z]:$/i.test(i))&&(r=!0,t.splice(n-1,2),n-=2)}}while(r);return t.length===0?[""]:t}firstPhasePreProcess(t){let r=!1;do{r=!1;for(let n of t){let i=-1;for(;(i=n.indexOf("**",i+1))!==-1;){let s=i;for(;n[s+1]==="**";)s++;s>i&&n.splice(i+1,s-i);let a=n[i+1],l=n[i+2],c=n[i+3];if(a!==".."||!l||l==="."||l===".."||!c||c==="."||c==="..")continue;r=!0,n.splice(i,1);let u=n.slice(0);u[i]="**",t.push(u),i--}if(!this.preserveMultipleSlashes){for(let s=1;s<n.length-1;s++){let a=n[s];s===1&&a===""&&n[0]===""||(a==="."||a==="")&&(r=!0,n.splice(s,1),s--)}n[0]==="."&&n.length===2&&(n[1]==="."||n[1]==="")&&(r=!0,n.pop())}let o=0;for(;(o=n.indexOf("..",o+1))!==-1;){let s=n[o-1];if(s&&s!=="."&&s!==".."&&s!=="**"){r=!0;let l=o===1&&n[o+1]==="**"?["."]:[];n.splice(o-1,2,...l),n.length===0&&n.push(""),o-=2}}}}while(r);return t}secondPhasePreProcess(t){for(let r=0;r<t.length-1;r++)for(let n=r+1;n<t.length;n++){let i=this.partsMatch(t[r],t[n],!this.preserveMultipleSlashes);if(i){t[r]=[],t[n]=i;break}}return t.filter(r=>r.length)}partsMatch(t,r,n=!1){let i=0,o=0,s=[],a="";for(;i<t.length&&o<r.length;)if(t[i]===r[o])s.push(a==="b"?r[o]:t[i]),i++,o++;else if(n&&t[i]==="**"&&r[o]===t[i+1])s.push(t[i]),i++;else if(n&&r[o]==="**"&&t[i]===r[o+1])s.push(r[o]),o++;else if(t[i]==="*"&&r[o]&&(this.options.dot||!r[o].startsWith("."))&&r[o]!=="**"){if(a==="b")return!1;a="a",s.push(t[i]),i++,o++}else if(r[o]==="*"&&t[i]&&(this.options.dot||!t[i].startsWith("."))&&t[i]!=="**"){if(a==="a")return!1;a="b",s.push(r[o]),i++,o++}else return!1;return t.length===r.length&&s}parseNegate(){if(this.nonegate)return;let t=this.pattern,r=!1,n=0;for(let i=0;i<t.length&&t.charAt(i)==="!";i++)r=!r,n++;n&&(this.pattern=t.slice(n)),this.negate=r}matchOne(t,r,n=!1){let i=0,o=0;if(this.isWindows){let a=typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0]),l=!a&&t[0]===""&&t[1]===""&&t[2]==="?"&&/^[a-z]:$/i.test(t[3]),c=typeof r[0]=="string"&&/^[a-z]:$/i.test(r[0]),u=!c&&r[0]===""&&r[1]===""&&r[2]==="?"&&typeof r[3]=="string"&&/^[a-z]:$/i.test(r[3]),d=l?3:a?0:void 0,g=u?3:c?0:void 0;if(typeof d=="number"&&typeof g=="number"){let[m,A]=[t[d],r[g]];m.toLowerCase()===A.toLowerCase()&&(r[g]=m,o=g,i=d)}}let{optimizationLevel:s=1}=this.options;return s>=2&&(t=this.levelTwoFileOptimize(t)),r.includes(Jc)?this.#e(t,r,n,i,o):this.#n(t,r,n,i,o)}#e(t,r,n,i,o){let s=r.indexOf(Jc,o),a=r.lastIndexOf(Jc),[l,c,u]=n?[r.slice(o,s),r.slice(s+1),[]]:[r.slice(o,s),r.slice(s+1,a),r.slice(a+1)];if(l.length){let S=t.slice(i,i+l.length);if(!this.#n(S,l,n,0,0))return!1;i+=l.length,o+=l.length}let d=0;if(u.length){if(u.length+i>t.length)return!1;let S=t.length-u.length;if(this.#n(t,u,n,S,0))d=u.length;else{if(t[t.length-1]!==""||i+u.length===t.length||(S--,!this.#n(t,u,n,S,0)))return!1;d=u.length+1}}if(!c.length){let S=!!d;for(let I=i;I<t.length-d;I++){let w=String(t[I]);if(S=!0,w==="."||w===".."||!this.options.dot&&w.startsWith("."))return!1}return n||S}let g=[[[],0]],m=g[0],A=0,h=[0];for(let S of c)S===Jc?(h.push(A),m=[[],0],g.push(m)):(m[0].push(S),A++);let _=g.length-1,y=t.length-d;for(let S of g)S[1]=y-(h[_--]+S[0].length);return!!this.#t(t,g,i,0,n,0,!!d)}#t(t,r,n,i,o,s,a){let l=r[i];if(!l){for(let d=n;d<t.length;d++){a=!0;let g=t[d];if(g==="."||g===".."||!this.options.dot&&g.startsWith("."))return!1}return a}let[c,u]=l;for(;n<=u;){if(this.#n(t.slice(0,n+c.length),c,o,n,0)&&s<this.maxGlobstarRecursion){let m=this.#t(t,r,n+c.length,i+1,o,s+1,a);if(m!==!1)return m}let g=t[n];if(g==="."||g===".."||!this.options.dot&&g.startsWith("."))return!1;n++}return o||null}#n(t,r,n,i,o){let s,a,l,c;for(s=i,a=o,c=t.length,l=r.length;s<c&&a<l;s++,a++){this.debug("matchOne loop");let u=r[a],d=t[s];if(this.debug(r,u,d),u===!1||u===Jc)return!1;let g;if(typeof u=="string"?(g=d===u,this.debug("string match",u,d,g)):(g=u.test(d),this.debug("pattern match",u,d,g)),!g)return!1}if(s===c&&a===l)return!0;if(s===c)return n;if(a===l)return s===c-1&&t[s]==="";throw new Error("wtf?")}braceExpand(){return Pht(this.pattern,this.options)}parse(t){Z5(t);let r=this.options;if(t==="**")return Jc;if(t==="")return"";let n,i=null;(n=t.match(asn))?i=r.dot?csn:lsn:(n=t.match(Jon))?i=(r.nocase?r.dot?tsn:esn:r.dot?Xon:Zon)(n[1]):(n=t.match(usn))?i=(r.nocase?r.dot?fsn:dsn:r.dot?psn:msn)(n):(n=t.match(rsn))?i=r.dot?isn:nsn:(n=t.match(osn))&&(i=ssn);let o=qv.fromGlob(t,this.options).toMMPattern();return i&&typeof o=="object"&&Reflect.defineProperty(o,"test",{value:i}),o}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let r=this.options,n=r.noglobstar?hsn:r.dot?Esn:_sn,i=new Set(r.nocase?["i"]:[]),o=t.map(l=>{let c=l.map(d=>{if(d instanceof RegExp)for(let g of d.flags.split(""))i.add(g);return typeof d=="string"?Isn(d):d===Jc?Jc:d._src});c.forEach((d,g)=>{let m=c[g+1],A=c[g-1];d!==Jc||A===Jc||(A===void 0?m!==void 0&&m!==Jc?c[g+1]="(?:\\/|"+n+"\\/)?"+m:c[g]=n:m===void 0?c[g-1]=A+"(?:\\/|\\/"+n+")?":m!==Jc&&(c[g-1]=A+"(?:\\/|\\/"+n+"\\/)"+m,c[g+1]=Jc))});let u=c.filter(d=>d!==Jc);if(this.partial&&u.length>=1){let d=[];for(let g=1;g<=u.length;g++)d.push(u.slice(0,g).join("/"));return"(?:"+d.join("|")+")"}return u.join("/")}).join("|"),[s,a]=t.length>1?["(?:",")"]:["",""];o="^"+s+o+a+"$",this.partial&&(o="^(?:\\/|"+s+o.slice(1,-1)+a+")$"),this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...i].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;let n=this.options;this.isWindows&&(t=t.split("\\").join("/"));let i=this.slashSplit(t);this.debug(this.pattern,"split",i);let o=this.set;this.debug(this.pattern,"set",o);let s=i[i.length-1];if(!s)for(let a=i.length-2;!s&&a>=0;a--)s=i[a];for(let a of o){let l=i;if(n.matchBase&&a.length===1&&(l=[s]),this.matchOne(l,a,r))return n.flipNegate?!0:!this.negate}return n.flipNegate?!1:this.negate}static defaults(t){return Ac.defaults(t).Minimatch}};Ac.AST=qv;Ac.Minimatch=V2;Ac.escape=nTe;Ac.unescape=hS;var Uht=U(K5(),1);br();Le();Pe();Nu();import{readFile as Lht}from"fs/promises";import{existsSync as iTe,readdirSync as Tsn,statSync as vsn}from"fs";import{join as oTe,relative as Hht}from"path";import{homedir as xsn}from"os";function Fht(e){try{let t=(0,Uht.default)(e),r=t.data.paths,n=[];return typeof r=="string"?n=r.split(",").map(i=>i.trim()).filter(Boolean):Array.isArray(r)&&(n=r.filter(i=>typeof i=="string")),{paths:n,content:t.content.trim()}}catch(t){return Te(t),{paths:[],content:e.trim()}}}function wsn(e,t){return t.length===0?!0:t.some(r=>{try{return Ac(e,r,{matchBase:!0,dot:!0})}catch(n){return Te(n),!1}})}function sTe(e){let t=[];try{if(!iTe(e))return t;let r=Tsn(e);for(let n of r){let i=oTe(e,n),o=vsn(i);o.isDirectory()?t.push(...sTe(i)):o.isFile()&&n.endsWith(".md")&&t.push(i)}}catch(r){Te(r)}return t}async function lX(){let e=[];try{let t=oTe(xsn(),rn,"rules");if(iTe(t)){let r=sTe(t);for(let n of r)try{let i=await Lht(n,"utf-8"),{paths:o,content:s}=Fht(i);o.length>0&&e.push({filePath:n,content:s,paths:o,isProjectRule:!1})}catch(i){Te(i)}}}catch(t){Te(t)}try{let t=oTe(Re(),rn,"rules");if(iTe(t)){let r=sTe(t);for(let n of r)try{let i=await Lht(n,"utf-8"),{paths:o,content:s}=Fht(i);o.length>0&&e.push({filePath:Hht(Re(),n),content:s,paths:o,isProjectRule:!0})}catch(i){Te(i)}}}catch(t){Te(t)}return e}function $ht(e,t){e=wV(e);let r=wV(Re()),n=e.startsWith(r)?Hht(r,e):e;return t.filter(i=>wsn(n,i.paths))}function qht(e){return e.length===0?"":e.map(r=>{let n=r.isProjectRule?"project instructions, checked into the codebase":"user's private global instructions for all projects";return`Contents of ${r.filePath} (${n}):
626
626
 
627
627
  ${r.content}`}).join(`
628
628
 
@@ -995,7 +995,7 @@ You are powered by the model ${e}.`}async function mx(){return e9()?`gitStatus:
995
995
  <context name="${c}">${u}</context>`;let s=i.map(c=>{let u=c.prompt({},t),d=JSON.stringify("inputJSONSchema"in c&&c.inputJSONSchema?c.inputJSONSchema:m0(c.inputSchema));return{name:c.name,description:`${u}
996
996
 
997
997
  Schema:
998
- ${d}`}}),{messages:a}=t,l=ndn(o);return idn(o,l,s,a)}},zyt=odn;Yg();var TO=U(et(),1);Pe();Pe();var ru=U(ge(),1);import{existsSync as sdn,readdirSync as adn,statSync as ldn}from"fs";import{join as cdn}from"path";function udn(){let e=Xi.plan();if(!sdn(e))return[];try{return adn(e).filter(r=>r.endsWith(".md")).map(r=>{let n=cdn(e,r),i=ldn(n);return{name:r,path:n,modified:i.mtime}}).sort((r,n)=>n.modified.getTime()-r.modified.getTime())}catch{return[]}}var jyt=({onSelect:e})=>{let[t,r]=(0,TO.useState)([]),[n,i]=(0,TO.useState)(0),[o,s]=(0,TO.useState)(!1);(0,TO.useEffect)(()=>{let c=udn();r(c),s(!0)},[]);let a=[{label:"New plan",value:"__NEW_PLAN__",isNew:!0},...t.map(c=>({label:c.name,value:c.path,isNew:!1,modified:c.modified}))];ur((c,u)=>{if(u.upArrow)i(d=>d>0?d-1:a.length-1);else if(u.downArrow)i(d=>d<a.length-1?d+1:0);else if(u.return){let d=a[n];d&&e(d.value)}else u.escape&&e("__CANCELLED__")});let l=Oe();return o?(0,ru.jsxs)(R,{flexDirection:"column",marginY:1,children:[(0,ru.jsx)(R,{marginBottom:1,children:(0,ru.jsx)(v,{bold:!0,color:l.claude,children:"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"})}),(0,ru.jsx)(R,{marginBottom:1,children:(0,ru.jsx)(v,{bold:!0,color:l.claude,children:" Select a plan to continue, or create a new one"})}),a.map((c,u)=>{let d=u===n;return(0,ru.jsxs)(R,{flexDirection:"row",marginLeft:2,children:[(0,ru.jsx)(v,{color:d?l.claude:l.text,children:d?"\u276F":" "}),(0,ru.jsx)(v,{color:d?l.claude:l.text,children:" "}),(0,ru.jsx)(v,{color:d?l.claude:l.text,bold:c.isNew,children:c.isNew?c.label:c.label.replace(".md","")}),!c.isNew&&c.modified&&(0,ru.jsxs)(v,{dimColor:!0,children:[" ","(",Kge(c.modified),")"]})]},c.isNew?"new":c.value)}),(0,ru.jsx)(R,{marginTop:1,marginLeft:2,children:(0,ru.jsx)(v,{dimColor:!0,children:"\u2191/\u2193 to select \xB7 Enter to confirm \xB7 Esc to cancel"})})]}):(0,ru.jsx)(R,{flexDirection:"column",marginY:1,children:(0,ru.jsx)(v,{children:"Loading plan history..."})})};var Vyt=U(ge(),1),ddn={type:"local-jsx",name:"plan",description:()=>"Enable plan mode",isEnabled:!0,isHidden:!1,disableCancel:!0,async call(e){return vi.isPlanMode()?(e("Already in plan mode."),null):(0,Vyt.jsx)(jyt,{onSelect:t=>{if(t==="__CANCELLED__"){e("Cancelled.");return}t&&t!=="__NEW_PLAN__"?vi.setCurrentPlanFilePath(t):vi.generatePlanFilePath(),vi.setMode("plan",!0,!1),e("Enabled plan mode")}})},userFacingName(){return"plan"}},Yyt=ddn;Yg();var fdn={type:"local",name:"auto",description:()=>"Enable auto mode",isEnabled:!0,isHidden:!1,async call(){return vi.isAutoMode()?"Already in auto mode.":(vi.setMode("auto",!0),"Enabled auto mode")},userFacingName(){return"auto"}},Wyt=fdn;br();import{resolve as pdn}from"path";var mdn={type:"local",name:"cd",description:()=>"Move this session to a new working directory",isEnabled:!0,isHidden:!1,argNames:["path"],async call(e){let t=e.trim();if(t==="")throw new Error("Missing directory path. Usage: /cd <path>");let r=Re(),n=pdn(r,t);ua(n);let i=Re();return i===r?`Already in ${i}.`:`Changed directory to ${i}/`},userFacingName(){return"cd"}},Kyt=mdn;var xSt=U(et(),1);var Wh=U(et(),1);var jdn=U(et(),1);var P9=U(et(),1),qdn=U(ebt(),1);var tbt={info:"blue",success:"green",error:"red",warning:"yellow"},wdn={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:tbt[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:tbt[e]}),content:()=>({flexShrink:1,flexGrow:1,minWidth:0,flexDirection:"column",gap:1}),title:()=>({bold:!0}),message:()=>({})},config({variant:e}){let t;return e==="info"&&(t=Jt.info),e==="success"&&(t=Jt.tick),e==="error"&&(t=Jt.cross),e==="warning"&&(t=Jt.warning),{icon:t}}},rbt=wdn;var Ddn={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},nbt=Ddn;var Rdn={styles:{input:({isFocused:e})=>({dimColor:!e})}},ibt=Rdn;var Ndn={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},obt=Ndn;var Bdn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},sbt=Bdn;var Odn={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:Jt.square,remainingCharacter:Jt.squareLightShade})},abt=Odn;var kdn={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},lbt=kdn;var Mdn={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},cbt=Mdn;var Qdn={success:"green",error:"red",warning:"yellow",info:"blue"},Pdn={success:Jt.tick,error:Jt.cross,warning:Jt.warning,info:Jt.info},Ldn={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:Qdn[e]}),message:()=>({})},config:({variant:e})=>({icon:Pdn[e]})},ubt=Ldn;var Fdn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:Jt.line})},dbt=Fdn;var Udn={styles:{value:()=>({})}},fbt=Udn;var Hdn={styles:{value:()=>({})}},pbt=Hdn;var $dn={styles:{value:()=>({})}},mbt=$dn;var Gdn={components:{Alert:rbt,Badge:nbt,ConfirmInput:ibt,MultiSelect:obt,OrderedList:sbt,ProgressBar:abt,Select:lbt,Spinner:cbt,StatusMessage:ubt,UnorderedList:dbt,TextInput:fbt,EmailInput:pbt,PasswordInput:mbt}},zdn=(0,P9.createContext)(Gdn);var Ao=e=>(0,P9.useContext)(zdn).components[e];var Ydn=U(et(),1);var P_=U(et(),1);var xO=U(et(),1);var gbt=U(et(),1);var L9=Jt.line;var fee=(0,gbt.createContext)({marker:L9});function Abt({children:e}){let{marker:t}=(0,xO.useContext)(fee),{styles:r}=Ao("UnorderedList");return xO.default.createElement(R,{...r.listItem()},xO.default.createElement(v,{...r.marker()},t),xO.default.createElement(R,{...r.content()},e))}var hbt=U(et(),1),Gve=(0,hbt.createContext)({depth:0});function Vdn({children:e}){let{depth:t}=(0,P_.useContext)(Gve),{styles:r,config:n}=Ao("UnorderedList"),i=(0,P_.useMemo)(()=>({depth:t+1}),[t]),o=(0,P_.useMemo)(()=>{let{marker:s}=n();return typeof s=="string"?{marker:s}:Array.isArray(s)?{marker:s[t]??s.at(-1)??L9}:{marker:L9}},[n,t]);return P_.default.createElement(Gve.Provider,{value:i},P_.default.createElement(fee.Provider,{value:o},P_.default.createElement(R,{...r.list()},e)))}Vdn.Item=Abt;var Kdn=U(et(),1);var Wdn=U(et(),1);var F9=U(et(),1);var wO=class extends Map{first;constructor(t){let r=[],n,i,o=0;for(let s of t){let a={...s,previous:i,next:void 0,index:o};i&&(i.next=a),n||=a,r.push([s.value,a]),o++,i=a}super(r),this.first=n}};var Ebt=U(et(),1);var DO=U(et(),1);var U9=U(et(),1);function _bt({isFocused:e,isSelected:t,children:r}){let{styles:n}=Ao("Select");return U9.default.createElement(R,{...n.option({isFocused:e})},e&&U9.default.createElement(v,{...n.focusIndicator()},Jt.pointer),U9.default.createElement(v,{...n.label({isFocused:e,isSelected:t})},r),t&&U9.default.createElement(v,{...n.selectedIndicator()},Jt.tick))}var Om=U(et(),1);import{isDeepStrictEqual as Jdn}from"node:util";var Zdn=(e,t)=>{switch(t.type){case"focus-next-option":{if(!e.focusedValue)return e;let r=e.optionMap.get(e.focusedValue);if(!r)return e;let n=r.next;if(!n)return e;if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};let o=Math.min(e.optionMap.size,e.visibleToIndex+1),s=o-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:s,visibleToIndex:o}}case"focus-previous-option":{if(!e.focusedValue)return e;let r=e.optionMap.get(e.focusedValue);if(!r)return e;let n=r.previous;if(!n)return e;if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};let o=Math.max(0,e.visibleFromIndex-1),s=o+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:o,visibleToIndex:s}}case"select-focused-option":return{...e,previousValue:e.value,value:e.focusedValue};case"reset":return t.state}},ybt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=typeof e=="number"?Math.min(e,r.length):r.length,i=new wO(r);return{optionMap:i,visibleOptionCount:n,focusedValue:i.first?.value,visibleFromIndex:0,visibleToIndex:n,previousValue:t,value:t}},bbt=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n})=>{let[i,o]=(0,Om.useReducer)(Zdn,{visibleOptionCount:e,defaultValue:r,options:t},ybt),[s,a]=(0,Om.useState)(t);t!==s&&!Jdn(t,s)&&(o({type:"reset",state:ybt({visibleOptionCount:e,defaultValue:r,options:t})}),a(t));let l=(0,Om.useCallback)(()=>{o({type:"focus-next-option"})},[]),c=(0,Om.useCallback)(()=>{o({type:"focus-previous-option"})},[]),u=(0,Om.useCallback)(()=>{o({type:"select-focused-option"})},[]),d=(0,Om.useMemo)(()=>t.map((g,m)=>({...g,index:m})).slice(i.visibleFromIndex,i.visibleToIndex),[t,i.visibleFromIndex,i.visibleToIndex]);return(0,Om.useEffect)(()=>{i.value&&i.previousValue!==i.value&&n?.(i.value)},[i.previousValue,i.value,t,n]),{focusedValue:i.focusedValue,visibleFromIndex:i.visibleFromIndex,visibleToIndex:i.visibleToIndex,value:i.value,visibleOptions:d,focusNextOption:l,focusPreviousOption:c,selectFocusedOption:u}};var Cbt=({isDisabled:e=!1,state:t})=>{ur((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};function RO({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:i,onChange:o}){let s=bbt({visibleOptionCount:t,options:n,defaultValue:i,onChange:o});Cbt({isDisabled:e,state:s});let{styles:a}=Ao("Select");return DO.default.createElement(R,{...a.container()},s.visibleOptions.map(l=>{let c=l.label;if(r&&l.label.includes(r)){let u=l.label.indexOf(r);c=DO.default.createElement(DO.default.Fragment,null,l.label.slice(0,u),DO.default.createElement(v,{...a.highlightedText()},r),l.label.slice(u+r.length))}return DO.default.createElement(_bt,{key:l.value,isFocused:!e&&s.focusedValue===l.value,isSelected:s.value===l.value},c)}))}var Xdn=U(et(),1);var Sbt=U(et(),1);var tfn=U(et(),1);var pee=U(et(),1);var efn=U(et(),1);var Oki=cr.inverse(" ");var Zg=U(et(),1);var NO=U(et(),1);var Ibt=U(et(),1);var mee=(0,Ibt.createContext)({marker:Jt.line});function gee({children:e}){let{marker:t}=(0,NO.useContext)(mee),{styles:r}=Ao("OrderedList");return NO.default.createElement(R,{...r.listItem()},NO.default.createElement(v,{...r.marker()},t),NO.default.createElement(R,{...r.content()},e))}var Tbt=U(et(),1),zve=(0,Tbt.createContext)({marker:""});function Xg({children:e}){let{marker:t}=(0,Zg.useContext)(zve),{styles:r}=Ao("OrderedList"),n=0;for(let o of Zg.default.Children.toArray(e))!(0,Zg.isValidElement)(o)||o.type!==gee||n++;let i=String(n).length;return Zg.default.createElement(R,{...r.list()},Zg.default.Children.map(e,(o,s)=>{if(!(0,Zg.isValidElement)(o)||o.type!==gee)return o;let a=`${String(s+1).padStart(i)}.`,l=`${t}${a}`;return Zg.default.createElement(zve.Provider,{value:{marker:l}},Zg.default.createElement(mee.Provider,{value:{marker:l}},o))}))}Xg.Item=gee;var nfn=U(et(),1);var jve=U(et(),1);var rfn=U(et(),1);var lMi=cr.inverse(" ");var ifn=U(et(),1);var ofn=U(et(),1);var afn=U(et(),1);var Aee=U(et(),1);var sfn=U(et(),1);var BMi=cr.inverse(" ");var MO=U(et(),1);var Yve=U(et(),1);r9();Ns();Hi();nx();or();var hee=U(ge(),1),lfn=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function xS(){let e=lfn,{frame:t}=MR({interval:120});return(0,hee.jsx)(R,{flexWrap:"nowrap",height:1,width:2,children:(0,hee.jsx)(v,{color:Oe().claude,children:e[t%e.length]})})}var yee=U(et(),1);var gx=null,L_=null,_ee=new Set,Eee=null;function Wve(e){let{columns:t,rows:r}=e;return t&&r?{columns:t,rows:r}:(Eee||(Eee=Lpe()),{columns:t||Eee.columns||80,rows:r||Eee.rows||24})}function Vve(){if(!L_)return;let e=Wve(L_);gx&&e.columns===gx.columns&&e.rows===gx.rows||(gx=e,_ee.forEach(t=>t(gx)))}function cfn(e,t){return L_!==e&&(L_&&L_.off("resize",Vve),L_=e,gx=Wve(e),e.on("resize",Vve)),_ee.add(t),()=>{_ee.delete(t),_ee.size===0&&L_&&(L_.off("resize",Vve),L_=null,gx=null)}}function Kve(){let{stdout:e}=Qb(),[t,r]=(0,yee.useState)(()=>Wve(e));return(0,yee.useEffect)(()=>cfn(e,r),[e]),t}function bee(){return Kve()}Le();Rf();Pe();gh();Pe();var bPi=U(pSt(),1);import{homedir as W9}from"os";import{join as kO}from"path";import{existsSync as K9,mkdirSync as gSt,appendFileSync as mSt,readFileSync as ASt,constants as sgn,writeFileSync as agn,unlinkSync as hSt,statSync as lgn}from"fs";import{platform as ESt}from"process";import{accessSync as cgn}from"fs";var ogn="2.6.6",V9={VERSION:ogn,PACKAGE_URL:"@dahawa/hawa-code",README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};Le();var hx=kO(K0,".update.lock"),ugn=300*1e3;function _St(){try{if(K9(K0)||gSt(K0,{recursive:!0}),K9(hx)){let e=lgn(hx);if(Date.now()-e.mtimeMs<ugn)return!1;try{hSt(hx)}catch(r){return Te(`Failed to remove stale lock file: ${r}`),!1}}return agn(hx,`${process.pid}`,"utf8"),!0}catch(e){return Te(`Failed to acquire lock: ${e}`),!1}}function ySt(){try{K9(hx)&&ASt(hx,"utf8")===`${process.pid}`&&hSt(hx)}catch(e){Te(`Failed to release lock: ${e}`)}}async function hxe(){try{let e=await oi("npm -g config get prefix");if(e.code!==0)return Te("Failed to check npm permissions"),{hasPermissions:!1,npmPrefix:null};let t=e.stdout.trim(),r=!1;try{cgn(t,sgn.W_OK),r=!0}catch{r=!1}return r?{hasPermissions:!0,npmPrefix:t}:(Te("Insufficient permissions for global npm install."),{hasPermissions:!1,npmPrefix:t})}catch(e){return Te(`Failed to verify npm global install permissions: ${e}`),{hasPermissions:!1,npmPrefix:null}}}async function bSt(e){if(!_St())throw Bt("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:V9.VERSION,prefix:e}),new Error("Another process is currently setting up npm prefix");try{K9(e)||gSt(e,{recursive:!0});let t=await oi(`npm -g config set prefix ${e}`);if(t.code!==0)throw new Error(`Failed to set npm prefix: ${t.stderr}`);let r=`
998
+ ${d}`}}),{messages:a}=t,l=ndn(o);return idn(o,l,s,a)}},zyt=odn;Yg();var TO=U(et(),1);Pe();Pe();var ru=U(ge(),1);import{existsSync as sdn,readdirSync as adn,statSync as ldn}from"fs";import{join as cdn}from"path";function udn(){let e=Xi.plan();if(!sdn(e))return[];try{return adn(e).filter(r=>r.endsWith(".md")).map(r=>{let n=cdn(e,r),i=ldn(n);return{name:r,path:n,modified:i.mtime}}).sort((r,n)=>n.modified.getTime()-r.modified.getTime())}catch{return[]}}var jyt=({onSelect:e})=>{let[t,r]=(0,TO.useState)([]),[n,i]=(0,TO.useState)(0),[o,s]=(0,TO.useState)(!1);(0,TO.useEffect)(()=>{let c=udn();r(c),s(!0)},[]);let a=[{label:"New plan",value:"__NEW_PLAN__",isNew:!0},...t.map(c=>({label:c.name,value:c.path,isNew:!1,modified:c.modified}))];ur((c,u)=>{if(u.upArrow)i(d=>d>0?d-1:a.length-1);else if(u.downArrow)i(d=>d<a.length-1?d+1:0);else if(u.return){let d=a[n];d&&e(d.value)}else u.escape&&e("__CANCELLED__")});let l=Oe();return o?(0,ru.jsxs)(R,{flexDirection:"column",marginY:1,children:[(0,ru.jsx)(R,{marginBottom:1,children:(0,ru.jsx)(v,{bold:!0,color:l.claude,children:"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"})}),(0,ru.jsx)(R,{marginBottom:1,children:(0,ru.jsx)(v,{bold:!0,color:l.claude,children:" Select a plan to continue, or create a new one"})}),a.map((c,u)=>{let d=u===n;return(0,ru.jsxs)(R,{flexDirection:"row",marginLeft:2,children:[(0,ru.jsx)(v,{color:d?l.claude:l.text,children:d?"\u276F":" "}),(0,ru.jsx)(v,{color:d?l.claude:l.text,children:" "}),(0,ru.jsx)(v,{color:d?l.claude:l.text,bold:c.isNew,children:c.isNew?c.label:c.label.replace(".md","")}),!c.isNew&&c.modified&&(0,ru.jsxs)(v,{dimColor:!0,children:[" ","(",Kge(c.modified),")"]})]},c.isNew?"new":c.value)}),(0,ru.jsx)(R,{marginTop:1,marginLeft:2,children:(0,ru.jsx)(v,{dimColor:!0,children:"\u2191/\u2193 to select \xB7 Enter to confirm \xB7 Esc to cancel"})})]}):(0,ru.jsx)(R,{flexDirection:"column",marginY:1,children:(0,ru.jsx)(v,{children:"Loading plan history..."})})};var Vyt=U(ge(),1),ddn={type:"local-jsx",name:"plan",description:()=>"Enable plan mode",isEnabled:!0,isHidden:!1,disableCancel:!0,async call(e){return vi.isPlanMode()?(e("Already in plan mode."),null):(0,Vyt.jsx)(jyt,{onSelect:t=>{if(t==="__CANCELLED__"){e("Cancelled.");return}t&&t!=="__NEW_PLAN__"?vi.setCurrentPlanFilePath(t):vi.generatePlanFilePath(),vi.setMode("plan",!0,!1),e("Enabled plan mode")}})},userFacingName(){return"plan"}},Yyt=ddn;Yg();var fdn={type:"local",name:"auto",description:()=>"Enable auto mode",isEnabled:!0,isHidden:!1,async call(){return vi.isAutoMode()?"Already in auto mode.":(vi.setMode("auto",!0),"Enabled auto mode")},userFacingName(){return"auto"}},Wyt=fdn;br();import{resolve as pdn}from"path";var mdn={type:"local",name:"cd",description:()=>"Move this session to a new working directory",isEnabled:!0,isHidden:!1,argNames:["path"],async call(e){let t=e.trim();if(t==="")throw new Error("Missing directory path. Usage: /cd <path>");let r=Re(),n=pdn(r,t);ua(n);let i=Re();return i===r?`Already in ${i}.`:`Changed directory to ${i}/`},userFacingName(){return"cd"}},Kyt=mdn;var xSt=U(et(),1);var Wh=U(et(),1);var jdn=U(et(),1);var P9=U(et(),1),qdn=U(ebt(),1);var tbt={info:"blue",success:"green",error:"red",warning:"yellow"},wdn={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:tbt[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:tbt[e]}),content:()=>({flexShrink:1,flexGrow:1,minWidth:0,flexDirection:"column",gap:1}),title:()=>({bold:!0}),message:()=>({})},config({variant:e}){let t;return e==="info"&&(t=Jt.info),e==="success"&&(t=Jt.tick),e==="error"&&(t=Jt.cross),e==="warning"&&(t=Jt.warning),{icon:t}}},rbt=wdn;var Ddn={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},nbt=Ddn;var Rdn={styles:{input:({isFocused:e})=>({dimColor:!e})}},ibt=Rdn;var Ndn={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},obt=Ndn;var Bdn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},sbt=Bdn;var Odn={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:Jt.square,remainingCharacter:Jt.squareLightShade})},abt=Odn;var kdn={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},lbt=kdn;var Mdn={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},cbt=Mdn;var Qdn={success:"green",error:"red",warning:"yellow",info:"blue"},Pdn={success:Jt.tick,error:Jt.cross,warning:Jt.warning,info:Jt.info},Ldn={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:Qdn[e]}),message:()=>({})},config:({variant:e})=>({icon:Pdn[e]})},ubt=Ldn;var Fdn={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:Jt.line})},dbt=Fdn;var Udn={styles:{value:()=>({})}},fbt=Udn;var Hdn={styles:{value:()=>({})}},pbt=Hdn;var $dn={styles:{value:()=>({})}},mbt=$dn;var Gdn={components:{Alert:rbt,Badge:nbt,ConfirmInput:ibt,MultiSelect:obt,OrderedList:sbt,ProgressBar:abt,Select:lbt,Spinner:cbt,StatusMessage:ubt,UnorderedList:dbt,TextInput:fbt,EmailInput:pbt,PasswordInput:mbt}},zdn=(0,P9.createContext)(Gdn);var Ao=e=>(0,P9.useContext)(zdn).components[e];var Ydn=U(et(),1);var P_=U(et(),1);var xO=U(et(),1);var gbt=U(et(),1);var L9=Jt.line;var fee=(0,gbt.createContext)({marker:L9});function Abt({children:e}){let{marker:t}=(0,xO.useContext)(fee),{styles:r}=Ao("UnorderedList");return xO.default.createElement(R,{...r.listItem()},xO.default.createElement(v,{...r.marker()},t),xO.default.createElement(R,{...r.content()},e))}var hbt=U(et(),1),Gve=(0,hbt.createContext)({depth:0});function Vdn({children:e}){let{depth:t}=(0,P_.useContext)(Gve),{styles:r,config:n}=Ao("UnorderedList"),i=(0,P_.useMemo)(()=>({depth:t+1}),[t]),o=(0,P_.useMemo)(()=>{let{marker:s}=n();return typeof s=="string"?{marker:s}:Array.isArray(s)?{marker:s[t]??s.at(-1)??L9}:{marker:L9}},[n,t]);return P_.default.createElement(Gve.Provider,{value:i},P_.default.createElement(fee.Provider,{value:o},P_.default.createElement(R,{...r.list()},e)))}Vdn.Item=Abt;var Kdn=U(et(),1);var Wdn=U(et(),1);var F9=U(et(),1);var wO=class extends Map{first;constructor(t){let r=[],n,i,o=0;for(let s of t){let a={...s,previous:i,next:void 0,index:o};i&&(i.next=a),n||=a,r.push([s.value,a]),o++,i=a}super(r),this.first=n}};var Ebt=U(et(),1);var DO=U(et(),1);var U9=U(et(),1);function _bt({isFocused:e,isSelected:t,children:r}){let{styles:n}=Ao("Select");return U9.default.createElement(R,{...n.option({isFocused:e})},e&&U9.default.createElement(v,{...n.focusIndicator()},Jt.pointer),U9.default.createElement(v,{...n.label({isFocused:e,isSelected:t})},r),t&&U9.default.createElement(v,{...n.selectedIndicator()},Jt.tick))}var Om=U(et(),1);import{isDeepStrictEqual as Jdn}from"node:util";var Zdn=(e,t)=>{switch(t.type){case"focus-next-option":{if(!e.focusedValue)return e;let r=e.optionMap.get(e.focusedValue);if(!r)return e;let n=r.next;if(!n)return e;if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};let o=Math.min(e.optionMap.size,e.visibleToIndex+1),s=o-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:s,visibleToIndex:o}}case"focus-previous-option":{if(!e.focusedValue)return e;let r=e.optionMap.get(e.focusedValue);if(!r)return e;let n=r.previous;if(!n)return e;if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};let o=Math.max(0,e.visibleFromIndex-1),s=o+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:o,visibleToIndex:s}}case"select-focused-option":return{...e,previousValue:e.value,value:e.focusedValue};case"reset":return t.state}},ybt=({visibleOptionCount:e,defaultValue:t,options:r})=>{let n=typeof e=="number"?Math.min(e,r.length):r.length,i=new wO(r);return{optionMap:i,visibleOptionCount:n,focusedValue:i.first?.value,visibleFromIndex:0,visibleToIndex:n,previousValue:t,value:t}},bbt=({visibleOptionCount:e=5,options:t,defaultValue:r,onChange:n})=>{let[i,o]=(0,Om.useReducer)(Zdn,{visibleOptionCount:e,defaultValue:r,options:t},ybt),[s,a]=(0,Om.useState)(t);t!==s&&!Jdn(t,s)&&(o({type:"reset",state:ybt({visibleOptionCount:e,defaultValue:r,options:t})}),a(t));let l=(0,Om.useCallback)(()=>{o({type:"focus-next-option"})},[]),c=(0,Om.useCallback)(()=>{o({type:"focus-previous-option"})},[]),u=(0,Om.useCallback)(()=>{o({type:"select-focused-option"})},[]),d=(0,Om.useMemo)(()=>t.map((g,m)=>({...g,index:m})).slice(i.visibleFromIndex,i.visibleToIndex),[t,i.visibleFromIndex,i.visibleToIndex]);return(0,Om.useEffect)(()=>{i.value&&i.previousValue!==i.value&&n?.(i.value)},[i.previousValue,i.value,t,n]),{focusedValue:i.focusedValue,visibleFromIndex:i.visibleFromIndex,visibleToIndex:i.visibleToIndex,value:i.value,visibleOptions:d,focusNextOption:l,focusPreviousOption:c,selectFocusedOption:u}};var Cbt=({isDisabled:e=!1,state:t})=>{ur((r,n)=>{n.downArrow&&t.focusNextOption(),n.upArrow&&t.focusPreviousOption(),n.return&&t.selectFocusedOption()},{isActive:!e})};function RO({isDisabled:e=!1,visibleOptionCount:t=5,highlightText:r,options:n,defaultValue:i,onChange:o}){let s=bbt({visibleOptionCount:t,options:n,defaultValue:i,onChange:o});Cbt({isDisabled:e,state:s});let{styles:a}=Ao("Select");return DO.default.createElement(R,{...a.container()},s.visibleOptions.map(l=>{let c=l.label;if(r&&l.label.includes(r)){let u=l.label.indexOf(r);c=DO.default.createElement(DO.default.Fragment,null,l.label.slice(0,u),DO.default.createElement(v,{...a.highlightedText()},r),l.label.slice(u+r.length))}return DO.default.createElement(_bt,{key:l.value,isFocused:!e&&s.focusedValue===l.value,isSelected:s.value===l.value},c)}))}var Xdn=U(et(),1);var Sbt=U(et(),1);var tfn=U(et(),1);var pee=U(et(),1);var efn=U(et(),1);var Oki=cr.inverse(" ");var Zg=U(et(),1);var NO=U(et(),1);var Ibt=U(et(),1);var mee=(0,Ibt.createContext)({marker:Jt.line});function gee({children:e}){let{marker:t}=(0,NO.useContext)(mee),{styles:r}=Ao("OrderedList");return NO.default.createElement(R,{...r.listItem()},NO.default.createElement(v,{...r.marker()},t),NO.default.createElement(R,{...r.content()},e))}var Tbt=U(et(),1),zve=(0,Tbt.createContext)({marker:""});function Xg({children:e}){let{marker:t}=(0,Zg.useContext)(zve),{styles:r}=Ao("OrderedList"),n=0;for(let o of Zg.default.Children.toArray(e))!(0,Zg.isValidElement)(o)||o.type!==gee||n++;let i=String(n).length;return Zg.default.createElement(R,{...r.list()},Zg.default.Children.map(e,(o,s)=>{if(!(0,Zg.isValidElement)(o)||o.type!==gee)return o;let a=`${String(s+1).padStart(i)}.`,l=`${t}${a}`;return Zg.default.createElement(zve.Provider,{value:{marker:l}},Zg.default.createElement(mee.Provider,{value:{marker:l}},o))}))}Xg.Item=gee;var nfn=U(et(),1);var jve=U(et(),1);var rfn=U(et(),1);var lMi=cr.inverse(" ");var ifn=U(et(),1);var ofn=U(et(),1);var afn=U(et(),1);var Aee=U(et(),1);var sfn=U(et(),1);var BMi=cr.inverse(" ");var MO=U(et(),1);var Yve=U(et(),1);r9();Ns();Hi();nx();or();var hee=U(ge(),1),lfn=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function xS(){let e=lfn,{frame:t}=MR({interval:120});return(0,hee.jsx)(R,{flexWrap:"nowrap",height:1,width:2,children:(0,hee.jsx)(v,{color:Oe().claude,children:e[t%e.length]})})}var yee=U(et(),1);var gx=null,L_=null,_ee=new Set,Eee=null;function Wve(e){let{columns:t,rows:r}=e;return t&&r?{columns:t,rows:r}:(Eee||(Eee=Lpe()),{columns:t||Eee.columns||80,rows:r||Eee.rows||24})}function Vve(){if(!L_)return;let e=Wve(L_);gx&&e.columns===gx.columns&&e.rows===gx.rows||(gx=e,_ee.forEach(t=>t(gx)))}function cfn(e,t){return L_!==e&&(L_&&L_.off("resize",Vve),L_=e,gx=Wve(e),e.on("resize",Vve)),_ee.add(t),()=>{_ee.delete(t),_ee.size===0&&L_&&(L_.off("resize",Vve),L_=null,gx=null)}}function Kve(){let{stdout:e}=Qb(),[t,r]=(0,yee.useState)(()=>Wve(e));return(0,yee.useEffect)(()=>cfn(e,r),[e]),t}function bee(){return Kve()}Le();Rf();Pe();gh();Pe();var bPi=U(pSt(),1);import{homedir as W9}from"os";import{join as kO}from"path";import{existsSync as K9,mkdirSync as gSt,appendFileSync as mSt,readFileSync as ASt,constants as sgn,writeFileSync as agn,unlinkSync as hSt,statSync as lgn}from"fs";import{platform as ESt}from"process";import{accessSync as cgn}from"fs";var ogn="2.6.7",V9={VERSION:ogn,PACKAGE_URL:"@dahawa/hawa-code",README_URL:"https://github.com/italking/hawa-code",ISSUES_EXPLAINER:"report the issue at https://github.com/italking/hawa-code/issues"};Le();var hx=kO(K0,".update.lock"),ugn=300*1e3;function _St(){try{if(K9(K0)||gSt(K0,{recursive:!0}),K9(hx)){let e=lgn(hx);if(Date.now()-e.mtimeMs<ugn)return!1;try{hSt(hx)}catch(r){return Te(`Failed to remove stale lock file: ${r}`),!1}}return agn(hx,`${process.pid}`,"utf8"),!0}catch(e){return Te(`Failed to acquire lock: ${e}`),!1}}function ySt(){try{K9(hx)&&ASt(hx,"utf8")===`${process.pid}`&&hSt(hx)}catch(e){Te(`Failed to release lock: ${e}`)}}async function hxe(){try{let e=await oi("npm -g config get prefix");if(e.code!==0)return Te("Failed to check npm permissions"),{hasPermissions:!1,npmPrefix:null};let t=e.stdout.trim(),r=!1;try{cgn(t,sgn.W_OK),r=!0}catch{r=!1}return r?{hasPermissions:!0,npmPrefix:t}:(Te("Insufficient permissions for global npm install."),{hasPermissions:!1,npmPrefix:t})}catch(e){return Te(`Failed to verify npm global install permissions: ${e}`),{hasPermissions:!1,npmPrefix:null}}}async function bSt(e){if(!_St())throw Bt("tengu_auto_updater_prefix_lock_contention",{pid:String(process.pid),currentVersion:V9.VERSION,prefix:e}),new Error("Another process is currently setting up npm prefix");try{K9(e)||gSt(e,{recursive:!0});let t=await oi(`npm -g config set prefix ${e}`);if(t.code!==0)throw new Error(`Failed to set npm prefix: ${t.stderr}`);let r=`
999
999
  # npm global path
1000
1000
  export PATH="${e}/bin:$PATH"
1001
1001
  `;if(ESt==="win32"){let n=await oi(`setx PATH "${process.env.PATH};${e}"`);if(n.code!==0)throw new Error(`Failed to update PATH on Windows: ${n.stderr}`)}else{let n=[kO(W9(),".bashrc"),kO(W9(),".bash_profile"),kO(W9(),".zshrc"),kO(W9(),".config","fish","config.fish")];for(let i of n)if(K9(i))try{if(!ASt(i,"utf8").includes(e)){if(i.includes("fish")){let s=`
@@ -1383,7 +1383,7 @@ ${o}
1383
1383
  - For shell tasks, sends SIGTERM first, then SIGKILL if needed
1384
1384
  - For agent tasks, marks the task as failed and triggers completion handlers`;R_();LT();hB();var N3=U(ge(),1),q2n=Be(()=>k.strictObject({task_id:k.string().describe("The ID of the background task to stop")})),B3={name:sUt,async description(){return aUt},async prompt(){return lUt},isReadOnly(){return!1},isConcurrencySafe(){return!1},get inputSchema(){return q2n()},userFacingName(){return"Stop Task"},async isEnabled(){return!0},needsPermissions(){return!1},async validateInput({task_id:e}){return!e||e.trim().length===0?{result:!1,message:"task_id is required and cannot be empty"}:{result:!0}},renderToolUseMessage({task_id:e}){return`Stop task: ${e}`},renderToolUseRejectedMessage(){return(0,N3.jsx)(v,{color:"red",children:"\xA0\xA0\u23BF \xA0 Task stop operation was rejected"})},renderToolResultMessage(e){let{stopped:t,task_id:r,message:n}=e;return t?(0,N3.jsxs)(v,{color:"green",children:["\xA0\xA0\u23BF \xA0",n]}):(0,N3.jsxs)(v,{color:"red",children:["\xA0\xA0\u23BF \xA0",n]})},renderResultForAssistant({stopped:e,task_id:t,message:r,task_type:n}){return`Task ${t} (${n}) stop operation: ${r}`},async*call(e,{abortController:t}){let{task_id:r}=e;if(t.signal.aborted){let n={message:"Operation cancelled",task_id:r,stopped:!1,task_type:"unknown"};yield{type:"result",resultForAssistant:this.renderResultForAssistant(n),data:n};return}try{let n=r.startsWith("a"),i=r.startsWith("s");if(n){let o=Xc.stopTask(r),s={message:o.reason,task_id:r,stopped:o.success,task_type:"agent"};yield{type:"result",resultForAssistant:this.renderResultForAssistant(s),data:s}}else if(i){let o=r.startsWith("sp")?im.stop(r):_l.stop(r),s={message:o?`Successfully stopped shell task: ${r}`:`Failed to stop shell task: ${r}`,task_id:r,stopped:o,task_type:"shell"};yield{type:"result",resultForAssistant:this.renderResultForAssistant(s),data:s}}else{let o={message:`Unknown task type for ID: ${r}. Task IDs should start with 'a' (agent) or 's' (shell).`,task_id:r,stopped:!1,task_type:"unknown"};yield{type:"result",resultForAssistant:this.renderResultForAssistant(o),data:o}}}catch(n){let o={message:`Error stopping task: ${n instanceof Error?n.message:String(n)}`,task_id:r,stopped:!1,task_type:"unknown"};yield{type:"result",resultForAssistant:this.renderResultForAssistant(o),data:o}}}};Hr();er();br();Le();var cUt="Cwd",uUt="Returns the current working directory used by the hands MCP server. Useful when the hands process and Hawa Code are running in different directories.",dUt=`- Returns the current working directory (CWD) of the hands MCP server process.
1385
1385
  - The working directory of the hands process should be checked first, because the hands process and Hawa Code may not be in the same working directory.
1386
- - Use this tool when you need to confirm the base directory for relative paths in file or shell operations.`;Le();var fie=U(ge(),1),G2n=Be(()=>k.strictObject({})),Tke={name:cUt,async description(){return uUt},userFacingName(){return"Cwd"},get inputSchema(){return G2n()},async isEnabled(){return!0},isReadOnly(){return!0},needsPermissions(){return!1},async prompt(){return dUt},renderToolUseMessage(){return"Get current working directory"},renderToolResultMessage(e){return(0,fie.jsx)(R,{width:"100%",children:(0,fie.jsxs)(v,{children:["\xA0\xA0\u23BF \xA0",e.cwd]})})},async*call(){let e={cwd:Re()};yield{type:"result",resultForAssistant:this.renderResultForAssistant(e),data:e}},renderResultForAssistant(e){return`Current working directory: ${e.cwd}`}};var fUt=`${Nt}/hands`,O3="hawa/handsData",pUt=[WL()?Gm:Vi,s1,a1,d1,f1,c1,fE,D3,R3,B3,Tke],mUt=[Gm,Vi,s1,a1,d1,f1,c1,fE,D3,R3,B3,Tke];var pie=null;function z2n(e,t){pie={name:e,client:t},nM.cache.clear?.(),iM.cache.clear?.(),nn.clear()}function j2n(){nM.cache.clear?.(),iM.cache.clear?.(),nn.clear()}function gUt(e){let t=cc(),r=wF(),n=di();if(t.mcpServers?.[e])return{...t.mcpServers[e],scope:"project"};if(r?.[e])return{...r[e],scope:"mcprc"};if(n.mcpServers?.[e])return{...n.mcpServers[e],scope:"global"}}async function AUt(e,t,r=!1,n=null){if(t.type==="sse"||t.type==="http"||t.type==="streamable-http"){let i=new YO(t.url,t.headers,e);return await i.connectD(r,n),i}else{let i=t,o=new HO({command:i.command,args:i.args,env:{...process.env,...i.env},stderr:"pipe"}),s=new Fh({name:`${Nt}`,version:"0.1.0"},{capabilities:{}}),a=t.timeout??2e4,l=s.connect(o),c=new Promise((u,d)=>{let g=setTimeout(()=>{d(new Error(`Connection to MCP server "${e}" timed out after ${a}ms`))},a);l.then(()=>clearTimeout(g),()=>clearTimeout(g))});return await Promise.race([l,c]),t.type==="stdio"&&o.stderr?.on("data",u=>{let d=u.toString().trim();d&&ic(e,`Server stderr: ${d}`)}),s}}function vke(e){let t=cc();return t.approvedMcprcServers?.includes(e)?"approved":t.rejectedMcprcServers?.includes(e)?"rejected":"pending"}var Y2n=async(e,t=!1,r=null)=>{vke(e)==="rejected"&&$tt(e);let i=gUt(e);if(!i)return{name:e,type:"failed"};try{let o=await AUt(e,i,t,r),s=await nM(),a={name:e,client:o,type:"connected"},l=s.findIndex(c=>c.name===e);return l!==-1?s[l]=a:s.push(a),iM.cache.clear?.(),a}catch(o){return ic(e,`Reconnect failed: ${o instanceof Error?o.message:String(o)}`),{name:e,type:"failed"}}},V2n=()=>(j2n(),nM()),nM=Be(async()=>{if(process.env.CI)return[];let e=di().mcpServers??{},t=wF(),r=cc().mcpServers??{},n=mz(t,(u,d)=>vke(d)==="approved"),i=mz(t,(u,d)=>vke(d)==="rejected"),o=Object.keys(i).map(u=>({name:u,type:"disabled"})),s={};for(let u of zd.getMcpServers()){let{name:d,pluginId:g,...m}=u;s[d]=m}let a={...s,...Xwt,...e,...n,...r},l=await Promise.all(Object.entries(a).map(async([u,d])=>{try{let g=await AUt(u,d);return Bt("tengu_mcp_server_connection_succeeded",{}),{name:u,client:g,type:"connected"}}catch(g){return g instanceof ou?(ic(u,"MCP server unauthorized, returning oauth status"),{name:u,type:"oauth"}):(Bt("tengu_mcp_server_connection_failed",{}),ic(u,`Connection failed: ${g instanceof Error?g.message:String(g)}`),{name:u,type:"failed"})}})),c=pie?[{name:pie.name,client:pie.client,type:"connected"}]:[];return[...l,...c,...o]});async function hUt(e,t,r){let n=await nM();return(await Promise.allSettled(n.map(async o=>{if(o.type!=="connected")return null;try{return(await o.client.getServerCapabilities())?.[r]?{client:o,result:await o.client.request(e,t)}:null}catch(s){return o.type==="connected"&&ic(o.name,`Failed to request '${e.method}': ${s instanceof Error?s.message:String(s)}`),null}}))).filter(o=>o.status==="fulfilled").map(o=>o.value).filter(o=>o!==null)}function mie(e){return e.replaceAll(".","-")}async function gie(e){return(await iM()).filter(n=>n.name.startsWith(`mcp_${e}_`))}function W2n(e){try{return e.client.getServerVersion?.()?.name===fUt}catch{return!1}}var K2n=new Map(mUt.map(e=>[e.name,e]));function J2n(e,t,r){return{...Hxe,name:"mcp_"+mie(e.name)+"_"+mie(t.name),async description(){return t.description??""},userFacingName(n){return"\u2601 "+r.userFacingName(n)},async prompt(){return t.description??""},isMcp(){return!0},async isEnabled(){return!0},isReadOnly(){return r.isReadOnly()},needsPermissions(n){return r.needsPermissions(n)},renderToolUseMessage(n,i){return r.renderToolUseMessage(n,{verbose:i.verbose})},renderToolResultMessage(n,i){if(n&&typeof n=="object"&&n.__handsValidationError===!0){let o=n.message??"Invalid tool input";return $1t(o)}return r.renderToolResultMessage(n,i)},inputSchema:Cc(t.inputSchema),inputJSONSchema:t.inputSchema,async*call(n){let{data:i,resultForAssistant:o}=await eOn({client:e,tool:t.name,args:n});yield{type:"result",data:i,resultForAssistant:o}}}}function Z2n(e,t){let r=t.annotations?.readOnlyHint===!0;return{...Hxe,name:"mcp_"+mie(e.name)+"_"+mie(t.name),async description(){return t.description??""},async prompt(){return t.description??""},isMcp(){return!0},isReadOnly(){return r},inputSchema:Cc(t.inputSchema),inputJSONSchema:t.inputSchema,async*call(n){let i=await X2n({client:e,tool:t.name,args:n});yield{type:"result",data:{},resultForAssistant:i}},userFacingName(){return`${e.name.length>10?`...${e.name.slice(-10)}`:e.name}:${t.name}`}}}var iM=Be(async()=>{let t=(await hUt({method:"tools/list"},pP,"tools")).flatMap(({client:r,result:{tools:n}})=>{let i=W2n(r);return n.map(o=>{if(i){let s=K2n.get(o.name);if(s)return J2n(r,o,s)}return Z2n(r,o)})});return qO.batchUpdateMcpTools(t),t});async function X2n({client:{client:e,name:t},tool:r,args:n}){let i=await e.callTool({name:r,arguments:n},Cf);return(await Jwt(i,r,t)).content}async function eOn({client:{client:e},tool:t,args:r}){let n=await e.callTool({name:t,arguments:r},Cf),i=n?._meta?.[O3],o=Array.isArray(n?.content)?n.content.filter(l=>l?.type==="text"&&typeof l.text=="string").map(l=>l.text).join(""):"",s=typeof i?.resultForAssistant=="string"?i.resultForAssistant:o;if(i?.validationError===!0){let l=i.message??s;return{data:{__handsValidationError:!0,message:l},resultForAssistant:l}}return{data:i&&"data"in i?i.data:s,resultForAssistant:s}}var EUt=Be(async()=>(await hUt({method:"prompts/list"},fP,"prompts")).flatMap(({client:t,result:r})=>r.prompts?.map(n=>{let i=Object.values(n.arguments??{}).map(o=>o.name);return{type:"prompt",name:"mcp__"+t.name+"__"+n.name,description:()=>n.description??"",isEnabled:!0,isHidden:!1,progressMessage:"running",userFacingName(){return`${t.name}:${n.name} (MCP)`},argNames:i,async getPromptForCommand(o){let s=o.split(" ");return await tOn({name:n.name,client:t},qge(i,s))}}})));nn.add(EUt);nn.getMCPCommands=EUt;nn.getMcpServer=gUt;nn.getClients=nM;nn.reloadClients=V2n;nn.reconnect=Y2n;nn.registerIDEClient=z2n;async function tOn({name:e,client:t},r){try{return(await t.client.getPrompt({name:e,arguments:r})).messages.map(i=>({role:i.role,content:[i.content.type==="text"?{type:"text",text:i.content.text}:i.content.type==="image"?{type:"image",source:{data:String(i.content.data),media_type:i.content.mimeType,type:"base64"}}:{type:"text",text:""}]}))}catch(n){throw ic(t.name,`Error running command '${e}': ${n instanceof Error?n.message:String(n)}`),n}}var yn=U(ge(),1);function _Ut({serverName:e,serverConfig:t,onBack:r,onViewTools:n,onServerDisable:i,onServerReconnect:o,context:s}){let[a,l]=(0,p1.useState)(0),[c,u]=(0,p1.useState)("connected"),[d,g]=(0,p1.useState)([]),[m,A]=(0,p1.useState)(null),[h,_]=(0,p1.useState)(!1),y=Oe();(0,p1.useEffect)(()=>{u(e.status),gie(e.name).then(Y=>{g(Y)})},[e]),ur((Y,G)=>{if(G.return){c==="connected"?a===0?n():a===1?S():a===2&&I():a===0?S():a===1&&I();return}if(G.upArrow){let W=c==="connected"?2:1;l(q=>Math.max(0,q-1));return}if(G.downArrow){let W=c==="connected"?2:1;l(q=>Math.min(W,q+1));return}});let S=async()=>{_(!0);try{await o(e.name,c,Y=>{A(Y)})}finally{_(!1)}},I=()=>{i(e.name)},O=(Y=>{switch(Y){case"connected":return{icon:Jt.tick,color:y.success};case"failed":return{icon:Jt.cross,color:y.error};case"disabled":case"oauth":return{icon:Jt.circle,color:y.secondaryText};default:return{icon:Jt.circle,color:y.secondaryText}}})(c),z=c==="connected"?[{label:"View tools",action:"View available tools"},{label:"Reconnect",action:"Reconnect to server"},{label:"Disable",action:"Disable this server"}]:c==="failed"?[{label:"Reconnect",action:"Reconnect to server"},{label:"Disable",action:"Disable this server"}]:c==="oauth"?[{label:"Reconnect(oauth)",action:"Reconnect to server"},{label:"Disable",action:"Disable this server"}]:[{label:"Reconnect",action:"Reconnect to server"}];return(0,yn.jsxs)(R,{flexDirection:"column",height:"100%",children:[(0,yn.jsxs)(R,{flexDirection:"column",borderStyle:"single",borderColor:"white",children:[(0,yn.jsx)(R,{padding:1,children:(0,yn.jsxs)(v,{bold:!0,color:y.claude,children:[e.name," MCP Server"]})}),(0,yn.jsxs)(R,{flexDirection:"column",flexGrow:1,overflow:"hidden",paddingX:1,children:[(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{children:"Status: "}),(0,yn.jsxs)(v,{color:O.color,children:[O.icon," ",c]})]}),t?.command&&(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{children:"Command: "}),(0,yn.jsx)(v,{color:y.text,children:t.command})]}),t?.args&&(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{children:"Args: "}),(0,yn.jsx)(v,{color:y.text,children:Array.isArray(t.args)?t.args.join(" "):t.args})]}),t?.url&&(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{children:"URL: "}),(0,yn.jsx)(v,{color:y.text,children:t.url})]}),t&&(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{children:"Config location: "}),(0,yn.jsx)(v,{color:y.secondaryText,children:t.configPath||"Unknown"})]}),c==="connected"&&(0,yn.jsxs)(yn.Fragment,{children:[(0,yn.jsx)(R,{children:(0,yn.jsx)(v,{children:"Capabilities: tools"})}),(0,yn.jsx)(R,{children:(0,yn.jsxs)(v,{children:["Tools: ",d.length," tools"]})})]})]}),(0,yn.jsx)(R,{flexDirection:"column",paddingX:1,marginBottom:1,children:h?(0,yn.jsxs)(R,{flexDirection:"row",children:[(0,yn.jsx)(xS,{}),(0,yn.jsx)(v,{color:y.claude,children:"Reconnecting..."})]}):z.map((Y,G)=>{let W=G===a;return(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{color:W?y.claude:y.text,children:W?Jt.pointer:" "}),(0,yn.jsxs)(v,{color:W?y.claude:y.text,bold:W,children:[G+1,". ",Y.label]})]},G)})}),(0,yn.jsx)(R,{padding:1,children:(0,yn.jsx)(v,{color:y.secondaryText,children:"Use \u2191\u2193 to navigate, Enter to select, Esc to go back"})})]}),c==="oauth"&&m&&(0,yn.jsxs)(R,{flexDirection:"column",paddingX:1,children:[(0,yn.jsx)(v,{children:"Open in browser:"}),(0,yn.jsx)(v,{wrap:"wrap",color:y.link,children:m})]})]})}var ly=U(et(),1);var Ps=U(ge(),1);function yUt({serverName:e,onBack:t,onToolSelect:r}){let[n,i]=(0,ly.useState)(0),[o,s]=(0,ly.useState)([]),[a,l]=(0,ly.useState)({}),[c,u]=(0,ly.useState)(0),d=Oe(),g=15;(0,ly.useEffect)(()=>{if(o.length>0){let _={};for(let y=0;y<o.length;y++)_[y]=o[y].isReadOnly?.()?"read-only":"read-write";l(_)}},[o]),(0,ly.useEffect)(()=>{e&&(async()=>{try{let y=await gie(e.name);s(y)}catch{s([])}})()},[e]),ur((_,y)=>{if(y.return){if(o.length>0){let S=o[n];r(S)}return}if(y.upArrow){let S=Math.max(0,n-1);i(S),S<c&&u(S);return}if(y.downArrow){let S=Math.min(o.length-1,n+1);i(S),S>=c+g&&u(S-g+1);return}}),(0,ly.useEffect)(()=>{u(0),i(0)},[o]);let m=_=>{let y=_.name.match(/^mcp_[^_]+_(.+)$/);return y?y[1]:_.name},A=o.slice(c,c+g),h=o.length>g;return(0,Ps.jsxs)(R,{flexDirection:"column",height:"100%",borderStyle:"single",borderColor:"white",children:[(0,Ps.jsx)(R,{padding:1,children:(0,Ps.jsxs)(v,{bold:!0,color:d.claude,children:["Tools for ",e.name," (",o.length," tools)"]})}),(0,Ps.jsx)(R,{flexDirection:"column",flexGrow:1,overflow:"hidden",paddingX:1,children:o.length===0?(0,Ps.jsx)(v,{color:d.secondaryText,children:"No tools available for this server"}):(0,Ps.jsxs)(Ps.Fragment,{children:[h&&c>0&&(0,Ps.jsx)(R,{children:(0,Ps.jsx)(v,{color:d.secondaryText,children:"\u2191 More tools above"})}),(0,Ps.jsx)(R,{flexDirection:"column",flexGrow:1,children:A.map((_,y)=>{let S=c+y,I=S===n,w=m(_),O=a[S]||"read-write";return(0,Ps.jsxs)(R,{children:[(0,Ps.jsx)(v,{color:I?d.claude:d.text,children:I?Jt.pointer:" "}),(0,Ps.jsxs)(v,{color:d.secondaryText,children:[S+1,"."]}),(0,Ps.jsx)(v,{color:I?d.claude:d.text,bold:I,children:w}),(0,Ps.jsx)(v,{children:" "}),(0,Ps.jsx)(v,{color:d.secondaryText,children:O})]},_.name)})}),h&&c+g<o.length&&(0,Ps.jsx)(R,{children:(0,Ps.jsx)(v,{color:d.secondaryText,children:"\u2193 More tools below"})})]})}),(0,Ps.jsx)(R,{padding:1,children:(0,Ps.jsx)(v,{color:d.secondaryText,children:"Use \u2191\u2193 to navigate, Enter to select, Esc to go back"})})]})}var mE=U(et(),1);var oA=U(ge(),1);function bUt({tool:e,serverName:t,onBack:r}){let[n,i]=(0,mE.useState)(""),[o,s]=(0,mE.useState)(!0),[a,l]=(0,mE.useState)(0),[c,u]=(0,mE.useState)(20),d=(0,mE.useRef)(null),g=Oe(),{stdout:m}=Qb();(0,mE.useEffect)(()=>{(async()=>{if(e?.description)try{let G=await e.description();i(G||"")}catch{i("")}else i("");s(!1)})()},[e]),(0,mE.useEffect)(()=>{m?.rows&&u(Math.max(10,m.rows-8))},[m]);let A=Y=>{let G=Y.name.match(/^mcp__[^_]+__(.+)$/);return G?G[1]:Y.name},h=()=>o?"loading...":n&&n.toLowerCase().includes("read")&&n.toLowerCase().includes("only")?"read-only":"read-write",_=A(e),y=h(),I=(()=>{let Y=[];return n&&(Y.push("Description:"),Y.push(...n.split(`
1386
+ - Use this tool when you need to confirm the base directory for relative paths in file or shell operations.`;Le();var fie=U(ge(),1),G2n=Be(()=>k.strictObject({})),Tke={name:cUt,async description(){return uUt},userFacingName(){return"Cwd"},get inputSchema(){return G2n()},async isEnabled(){return!0},isReadOnly(){return!0},needsPermissions(){return!1},async prompt(){return dUt},renderToolUseMessage(){return"Get current working directory"},renderToolResultMessage(e){return(0,fie.jsx)(R,{width:"100%",children:(0,fie.jsxs)(v,{children:["\xA0\xA0\u23BF \xA0",e.cwd]})})},async*call(){let e={cwd:Re()};yield{type:"result",resultForAssistant:this.renderResultForAssistant(e),data:e}},renderResultForAssistant(e){return`Current working directory: ${e.cwd}`}};var fUt=`${Nt}/hands`,O3="hawa/handsData",pUt=[WL()?Gm:Vi,s1,a1,d1,f1,c1,fE,D3,R3,B3,Tke],mUt=[Gm,Vi,s1,a1,d1,f1,c1,fE,D3,R3,B3,Tke];var pie=null;function z2n(e,t){pie={name:e,client:t},nM.cache.clear?.(),iM.cache.clear?.(),nn.clear()}function j2n(){nM.cache.clear?.(),iM.cache.clear?.(),nn.clear()}function gUt(e){let t=cc(),r=wF(),n=di();if(t.mcpServers?.[e])return{...t.mcpServers[e],scope:"project"};if(r?.[e])return{...r[e],scope:"mcprc"};if(n.mcpServers?.[e])return{...n.mcpServers[e],scope:"global"}}async function AUt(e,t,r=!1,n=null){if(t.type==="sse"||t.type==="http"||t.type==="streamable-http"){let i=new YO(t.url,t.headers,e),o=t.timeout??2e4,s=i.connectD(r,n),a=new Promise((l,c)=>{let u=setTimeout(()=>{c(new Error(`Connection to MCP server "${e}" timed out after ${o}ms`))},o);s.then(()=>clearTimeout(u),()=>clearTimeout(u))});return await Promise.race([s,a]),i}else{let i=t,o=new HO({command:i.command,args:i.args,env:{...process.env,...i.env},stderr:"pipe"}),s=new Fh({name:`${Nt}`,version:"0.1.0"},{capabilities:{}}),a=t.timeout??2e4,l=s.connect(o),c=new Promise((u,d)=>{let g=setTimeout(()=>{d(new Error(`Connection to MCP server "${e}" timed out after ${a}ms`))},a);l.then(()=>clearTimeout(g),()=>clearTimeout(g))});return await Promise.race([l,c]),t.type==="stdio"&&o.stderr?.on("data",u=>{let d=u.toString().trim();d&&ic(e,`Server stderr: ${d}`)}),s}}function vke(e){let t=cc();return t.approvedMcprcServers?.includes(e)?"approved":t.rejectedMcprcServers?.includes(e)?"rejected":"pending"}var Y2n=async(e,t=!1,r=null)=>{vke(e)==="rejected"&&$tt(e);let i=gUt(e);if(!i)return{name:e,type:"failed"};try{let o=await AUt(e,i,t,r),s=await nM(),a={name:e,client:o,type:"connected"},l=s.findIndex(c=>c.name===e);return l!==-1?s[l]=a:s.push(a),iM.cache.clear?.(),a}catch(o){return ic(e,`Reconnect failed: ${o instanceof Error?o.message:String(o)}`),{name:e,type:"failed"}}},V2n=()=>(j2n(),nM()),nM=Be(async()=>{if(process.env.CI)return[];let e=di().mcpServers??{},t=wF(),r=cc().mcpServers??{},n=mz(t,(u,d)=>vke(d)==="approved"),i=mz(t,(u,d)=>vke(d)==="rejected"),o=Object.keys(i).map(u=>({name:u,type:"disabled"})),s={};for(let u of zd.getMcpServers()){let{name:d,pluginId:g,...m}=u;s[d]=m}let a={...s,...Xwt,...e,...n,...r},l=await Promise.all(Object.entries(a).map(async([u,d])=>{try{let g=await AUt(u,d);return Bt("tengu_mcp_server_connection_succeeded",{}),{name:u,client:g,type:"connected"}}catch(g){return g instanceof ou?(ic(u,"MCP server unauthorized, returning oauth status"),{name:u,type:"oauth"}):(Bt("tengu_mcp_server_connection_failed",{}),ic(u,`Connection failed: ${g instanceof Error?g.message:String(g)}`),{name:u,type:"failed"})}})),c=pie?[{name:pie.name,client:pie.client,type:"connected"}]:[];return[...l,...c,...o]});async function hUt(e,t,r){let n=await nM();return(await Promise.allSettled(n.map(async o=>{if(o.type!=="connected")return null;try{return(await o.client.getServerCapabilities())?.[r]?{client:o,result:await o.client.request(e,t)}:null}catch(s){return o.type==="connected"&&ic(o.name,`Failed to request '${e.method}': ${s instanceof Error?s.message:String(s)}`),null}}))).filter(o=>o.status==="fulfilled").map(o=>o.value).filter(o=>o!==null)}function mie(e){return e.replaceAll(".","-")}async function gie(e){return(await iM()).filter(n=>n.name.startsWith(`mcp_${e}_`))}function W2n(e){try{return e.client.getServerVersion?.()?.name===fUt}catch{return!1}}var K2n=new Map(mUt.map(e=>[e.name,e]));function J2n(e,t,r){return{...Hxe,name:"mcp_"+mie(e.name)+"_"+mie(t.name),async description(){return t.description??""},userFacingName(n){return"\u2601 "+r.userFacingName(n)},async prompt(){return t.description??""},isMcp(){return!0},async isEnabled(){return!0},isReadOnly(){return r.isReadOnly()},needsPermissions(n){return r.needsPermissions(n)},renderToolUseMessage(n,i){return r.renderToolUseMessage(n,{verbose:i.verbose})},renderToolResultMessage(n,i){if(n&&typeof n=="object"&&n.__handsValidationError===!0){let o=n.message??"Invalid tool input";return $1t(o)}return r.renderToolResultMessage(n,i)},inputSchema:Cc(t.inputSchema),inputJSONSchema:t.inputSchema,async*call(n){let{data:i,resultForAssistant:o}=await eOn({client:e,tool:t.name,args:n});yield{type:"result",data:i,resultForAssistant:o}}}}function Z2n(e,t){let r=t.annotations?.readOnlyHint===!0;return{...Hxe,name:"mcp_"+mie(e.name)+"_"+mie(t.name),async description(){return t.description??""},async prompt(){return t.description??""},isMcp(){return!0},isReadOnly(){return r},inputSchema:Cc(t.inputSchema),inputJSONSchema:t.inputSchema,async*call(n){let i=await X2n({client:e,tool:t.name,args:n});yield{type:"result",data:{},resultForAssistant:i}},userFacingName(){return`${e.name.length>10?`...${e.name.slice(-10)}`:e.name}:${t.name}`}}}var iM=Be(async()=>{let t=(await hUt({method:"tools/list"},pP,"tools")).flatMap(({client:r,result:{tools:n}})=>{let i=W2n(r);return n.map(o=>{if(i){let s=K2n.get(o.name);if(s)return J2n(r,o,s)}return Z2n(r,o)})});return qO.batchUpdateMcpTools(t),t});async function X2n({client:{client:e,name:t},tool:r,args:n}){let i=await e.callTool({name:r,arguments:n},Cf);return(await Jwt(i,r,t)).content}async function eOn({client:{client:e},tool:t,args:r}){let n=await e.callTool({name:t,arguments:r},Cf),i=n?._meta?.[O3],o=Array.isArray(n?.content)?n.content.filter(l=>l?.type==="text"&&typeof l.text=="string").map(l=>l.text).join(""):"",s=typeof i?.resultForAssistant=="string"?i.resultForAssistant:o;if(i?.validationError===!0){let l=i.message??s;return{data:{__handsValidationError:!0,message:l},resultForAssistant:l}}return{data:i&&"data"in i?i.data:s,resultForAssistant:s}}var EUt=Be(async()=>(await hUt({method:"prompts/list"},fP,"prompts")).flatMap(({client:t,result:r})=>r.prompts?.map(n=>{let i=Object.values(n.arguments??{}).map(o=>o.name);return{type:"prompt",name:"mcp__"+t.name+"__"+n.name,description:()=>n.description??"",isEnabled:!0,isHidden:!1,progressMessage:"running",userFacingName(){return`${t.name}:${n.name} (MCP)`},argNames:i,async getPromptForCommand(o){let s=o.split(" ");return await tOn({name:n.name,client:t},qge(i,s))}}})));nn.add(EUt);nn.getMCPCommands=EUt;nn.getMcpServer=gUt;nn.getClients=nM;nn.reloadClients=V2n;nn.reconnect=Y2n;nn.registerIDEClient=z2n;async function tOn({name:e,client:t},r){try{return(await t.client.getPrompt({name:e,arguments:r})).messages.map(i=>({role:i.role,content:[i.content.type==="text"?{type:"text",text:i.content.text}:i.content.type==="image"?{type:"image",source:{data:String(i.content.data),media_type:i.content.mimeType,type:"base64"}}:{type:"text",text:""}]}))}catch(n){throw ic(t.name,`Error running command '${e}': ${n instanceof Error?n.message:String(n)}`),n}}var yn=U(ge(),1);function _Ut({serverName:e,serverConfig:t,onBack:r,onViewTools:n,onServerDisable:i,onServerReconnect:o,context:s}){let[a,l]=(0,p1.useState)(0),[c,u]=(0,p1.useState)("connected"),[d,g]=(0,p1.useState)([]),[m,A]=(0,p1.useState)(null),[h,_]=(0,p1.useState)(!1),y=Oe();(0,p1.useEffect)(()=>{u(e.status),gie(e.name).then(Y=>{g(Y)})},[e]),ur((Y,G)=>{if(G.return){c==="connected"?a===0?n():a===1?S():a===2&&I():a===0?S():a===1&&I();return}if(G.upArrow){let W=c==="connected"?2:1;l(q=>Math.max(0,q-1));return}if(G.downArrow){let W=c==="connected"?2:1;l(q=>Math.min(W,q+1));return}});let S=async()=>{_(!0);try{await o(e.name,c,Y=>{A(Y)})}finally{_(!1)}},I=()=>{i(e.name)},O=(Y=>{switch(Y){case"connected":return{icon:Jt.tick,color:y.success};case"failed":return{icon:Jt.cross,color:y.error};case"disabled":case"oauth":return{icon:Jt.circle,color:y.secondaryText};default:return{icon:Jt.circle,color:y.secondaryText}}})(c),z=c==="connected"?[{label:"View tools",action:"View available tools"},{label:"Reconnect",action:"Reconnect to server"},{label:"Disable",action:"Disable this server"}]:c==="failed"?[{label:"Reconnect",action:"Reconnect to server"},{label:"Disable",action:"Disable this server"}]:c==="oauth"?[{label:"Reconnect(oauth)",action:"Reconnect to server"},{label:"Disable",action:"Disable this server"}]:[{label:"Reconnect",action:"Reconnect to server"}];return(0,yn.jsxs)(R,{flexDirection:"column",height:"100%",children:[(0,yn.jsxs)(R,{flexDirection:"column",borderStyle:"single",borderColor:"white",children:[(0,yn.jsx)(R,{padding:1,children:(0,yn.jsxs)(v,{bold:!0,color:y.claude,children:[e.name," MCP Server"]})}),(0,yn.jsxs)(R,{flexDirection:"column",flexGrow:1,overflow:"hidden",paddingX:1,children:[(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{children:"Status: "}),(0,yn.jsxs)(v,{color:O.color,children:[O.icon," ",c]})]}),t?.command&&(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{children:"Command: "}),(0,yn.jsx)(v,{color:y.text,children:t.command})]}),t?.args&&(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{children:"Args: "}),(0,yn.jsx)(v,{color:y.text,children:Array.isArray(t.args)?t.args.join(" "):t.args})]}),t?.url&&(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{children:"URL: "}),(0,yn.jsx)(v,{color:y.text,children:t.url})]}),t&&(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{children:"Config location: "}),(0,yn.jsx)(v,{color:y.secondaryText,children:t.configPath||"Unknown"})]}),c==="connected"&&(0,yn.jsxs)(yn.Fragment,{children:[(0,yn.jsx)(R,{children:(0,yn.jsx)(v,{children:"Capabilities: tools"})}),(0,yn.jsx)(R,{children:(0,yn.jsxs)(v,{children:["Tools: ",d.length," tools"]})})]})]}),(0,yn.jsx)(R,{flexDirection:"column",paddingX:1,marginBottom:1,children:h?(0,yn.jsxs)(R,{flexDirection:"row",children:[(0,yn.jsx)(xS,{}),(0,yn.jsx)(v,{color:y.claude,children:"Reconnecting..."})]}):z.map((Y,G)=>{let W=G===a;return(0,yn.jsxs)(R,{children:[(0,yn.jsx)(v,{color:W?y.claude:y.text,children:W?Jt.pointer:" "}),(0,yn.jsxs)(v,{color:W?y.claude:y.text,bold:W,children:[G+1,". ",Y.label]})]},G)})}),(0,yn.jsx)(R,{padding:1,children:(0,yn.jsx)(v,{color:y.secondaryText,children:"Use \u2191\u2193 to navigate, Enter to select, Esc to go back"})})]}),c==="oauth"&&m&&(0,yn.jsxs)(R,{flexDirection:"column",paddingX:1,children:[(0,yn.jsx)(v,{children:"Open in browser:"}),(0,yn.jsx)(v,{wrap:"wrap",color:y.link,children:m})]})]})}var ly=U(et(),1);var Ps=U(ge(),1);function yUt({serverName:e,onBack:t,onToolSelect:r}){let[n,i]=(0,ly.useState)(0),[o,s]=(0,ly.useState)([]),[a,l]=(0,ly.useState)({}),[c,u]=(0,ly.useState)(0),d=Oe(),g=15;(0,ly.useEffect)(()=>{if(o.length>0){let _={};for(let y=0;y<o.length;y++)_[y]=o[y].isReadOnly?.()?"read-only":"read-write";l(_)}},[o]),(0,ly.useEffect)(()=>{e&&(async()=>{try{let y=await gie(e.name);s(y)}catch{s([])}})()},[e]),ur((_,y)=>{if(y.return){if(o.length>0){let S=o[n];r(S)}return}if(y.upArrow){let S=Math.max(0,n-1);i(S),S<c&&u(S);return}if(y.downArrow){let S=Math.min(o.length-1,n+1);i(S),S>=c+g&&u(S-g+1);return}}),(0,ly.useEffect)(()=>{u(0),i(0)},[o]);let m=_=>{let y=_.name.match(/^mcp_[^_]+_(.+)$/);return y?y[1]:_.name},A=o.slice(c,c+g),h=o.length>g;return(0,Ps.jsxs)(R,{flexDirection:"column",height:"100%",borderStyle:"single",borderColor:"white",children:[(0,Ps.jsx)(R,{padding:1,children:(0,Ps.jsxs)(v,{bold:!0,color:d.claude,children:["Tools for ",e.name," (",o.length," tools)"]})}),(0,Ps.jsx)(R,{flexDirection:"column",flexGrow:1,overflow:"hidden",paddingX:1,children:o.length===0?(0,Ps.jsx)(v,{color:d.secondaryText,children:"No tools available for this server"}):(0,Ps.jsxs)(Ps.Fragment,{children:[h&&c>0&&(0,Ps.jsx)(R,{children:(0,Ps.jsx)(v,{color:d.secondaryText,children:"\u2191 More tools above"})}),(0,Ps.jsx)(R,{flexDirection:"column",flexGrow:1,children:A.map((_,y)=>{let S=c+y,I=S===n,w=m(_),O=a[S]||"read-write";return(0,Ps.jsxs)(R,{children:[(0,Ps.jsx)(v,{color:I?d.claude:d.text,children:I?Jt.pointer:" "}),(0,Ps.jsxs)(v,{color:d.secondaryText,children:[S+1,"."]}),(0,Ps.jsx)(v,{color:I?d.claude:d.text,bold:I,children:w}),(0,Ps.jsx)(v,{children:" "}),(0,Ps.jsx)(v,{color:d.secondaryText,children:O})]},_.name)})}),h&&c+g<o.length&&(0,Ps.jsx)(R,{children:(0,Ps.jsx)(v,{color:d.secondaryText,children:"\u2193 More tools below"})})]})}),(0,Ps.jsx)(R,{padding:1,children:(0,Ps.jsx)(v,{color:d.secondaryText,children:"Use \u2191\u2193 to navigate, Enter to select, Esc to go back"})})]})}var mE=U(et(),1);var oA=U(ge(),1);function bUt({tool:e,serverName:t,onBack:r}){let[n,i]=(0,mE.useState)(""),[o,s]=(0,mE.useState)(!0),[a,l]=(0,mE.useState)(0),[c,u]=(0,mE.useState)(20),d=(0,mE.useRef)(null),g=Oe(),{stdout:m}=Qb();(0,mE.useEffect)(()=>{(async()=>{if(e?.description)try{let G=await e.description();i(G||"")}catch{i("")}else i("");s(!1)})()},[e]),(0,mE.useEffect)(()=>{m?.rows&&u(Math.max(10,m.rows-8))},[m]);let A=Y=>{let G=Y.name.match(/^mcp__[^_]+__(.+)$/);return G?G[1]:Y.name},h=()=>o?"loading...":n&&n.toLowerCase().includes("read")&&n.toLowerCase().includes("only")?"read-only":"read-write",_=A(e),y=h(),I=(()=>{let Y=[];return n&&(Y.push("Description:"),Y.push(...n.split(`
1387
1387
  `).map(G=>G.trim())),Y.push("")),e.inputSchema&&(Y.push("Parameters:"),e.inputSchema.properties?Y.push(...(e.inputSchema+"").split(`
1388
1388
  `).map(G=>G.trim())):Y.push("No parameters required")),Y})(),w=c-6;ur((Y,G)=>{if(G.escape){r();return}if(G.upArrow){l(W=>Math.max(0,W-1));return}if(G.downArrow){let W=I.length/w,q=a+1;q>W&&q--,l(q);return}});let O=I.slice(a*w,(a+1)*w),Q=a>0,z=(a+1)*w<I.length;return(0,oA.jsxs)(R,{flexDirection:"column",borderStyle:"single",borderColor:"white",height:c,children:[(0,oA.jsx)(R,{paddingX:1,children:(0,oA.jsxs)(v,{bold:!0,color:g.claude,children:[_," (",t.name,") [",y,"]"]})}),o&&(0,oA.jsx)(R,{paddingX:1,children:(0,oA.jsx)(v,{color:g.secondaryText,children:"Loading tool details..."})}),(0,oA.jsx)(R,{flexDirection:"column",paddingX:1,flexGrow:1,height:c-3,ref:d,children:O.map((Y,G)=>(0,oA.jsx)(v,{color:g.text,children:Y},G))}),(0,oA.jsx)(R,{paddingX:1,children:(0,oA.jsxs)(v,{color:g.secondaryText,wrap:"truncate",children:[Q&&"\u2191"," ",z&&"\u2193"," to scroll (Esc back)"]})})]})}Ns();var sA=U(ge(),1);function CUt({onClose:e,context:t}){let[r,n]=(0,jx.useState)("list"),[i,o]=(0,jx.useState)(""),[s,a]=(0,jx.useState)(null),[l,c]=(0,jx.useState)([]),u=Oe(),d=25;Gd(()=>{e(-1)}),(0,jx.useEffect)(()=>{(async()=>{let S=await nn.getClients();c(S.filter(I=>I.name!=="___ide_").map(I=>({name:I.name,status:I.type})))})()},[]);let g=S=>{qtt(S),nn.reloadClients().then(I=>{c(I.filter(w=>w.name!=="___ide_").map(w=>({name:w.name,status:w.type}))),n("list"),Tr.emit("repl:reloadtools")})},m=async(S,I,w)=>{if((I==="oauth"?await nn.reconnect(S,!0,w):await nn.reconnect(S)).type==="connected"){let Q=await nn.getClients();c(Q.filter(z=>z.name!=="___ide_").map(z=>({name:z.name,status:z.type}))),n("list"),Tr.emit("repl:reloadtools")}},A=S=>{o(S),n("details")},h=S=>{o(S),n("tools")},_=S=>{a(S),n("tool-details")};ur((S,I)=>{I.escape&&(r==="list"?e(-1):y())});let y=()=>{r==="details"?n("list"):r==="tools"?n("details"):r==="tool-details"&&n("tools")};return r==="list"?(0,sA.jsx)(R,{flexDirection:"column",height:d,children:(0,sA.jsx)(ZSt,{servers:l,onServerSelect:A,onViewTools:h,onClose:()=>e(-1)})}):r==="details"?(0,sA.jsx)(R,{flexDirection:"column",height:d,children:(0,sA.jsx)(_Ut,{serverName:i,serverConfig:nn.getMcpServer(i),onBack:y,onServerDisable:g,onServerReconnect:m,onViewTools:()=>h(i),context:t})}):r==="tools"?(0,sA.jsx)(R,{flexDirection:"column",height:d,children:(0,sA.jsx)(yUt,{serverName:i,onBack:y,onToolSelect:_})}):r==="tool-details"?(0,sA.jsx)(R,{flexDirection:"column",height:d,children:(0,sA.jsx)(bUt,{tool:s,serverName:i,onBack:y})}):(0,sA.jsxs)(v,{children:["Unknown view: ",r]})}var IUt=U(ge(),1),rOn={type:"local-jsx",name:"mcp",description:()=>"Manage MCP servers",isEnabled:!0,isHidden:!1,disableCancel:!0,async call(e,t){return(0,IUt.jsx)(CUt,{onClose:e,context:t})},userFacingName(){return"mcp"}},SUt=rOn;var Kx=U(et(),1);br();import{existsSync as nOn,readFileSync as iOn}from"fs";import{homedir as oOn}from"os";import{join as TUt}from"path";Pe();var Yx=TUt(oOn(),".hcode",".codemode.json"),Vx=TUt(Re(),".codemode.json");function oM(e){if(!nOn(e))return null;try{let t=iOn(e,"utf-8"),r=xd(t);return r&&typeof r=="object"&&!Array.isArray(r)?"mcpServers"in r&&r.mcpServers&&typeof r.mcpServers=="object"&&!Array.isArray(r.mcpServers)?r.mcpServers:r:(J(`Invalid codemode config format at ${e}: expected object`),null)}catch(t){return J(`Failed to read codemode config ${e}:`,t),null}}function vUt(){return oM(Yx)??{}}function xUt(){return oM(Vx)??{}}function gE(){return{...vUt(),...xUt()}}n9();Pp();er();function kl(e){return e.replace(/[^a-zA-Z0-9_$]/g,"_").replace(/^[0-9]/,"_$&")}var RUt=4,xke=Number(process.env.HAWA_CODE_CODE_MODE_MAX_TOKENS),NUt=Number.isFinite(xke)&&xke>=6e3?Math.trunc(xke):2e4,wUt=NUt*RUt,sOn="--- TRUNCATED ---";function wke(e){let t=typeof e=="string"?e:JSON.stringify(e,null,2)??"undefined";if(t.length<=wUt)return t;let r=t.slice(0,wUt),n=Math.ceil(t.length/RUt);return`${r}
1389
1389
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dahawa/hawa-code",
3
- "version": "2.6.6",
3
+ "version": "2.6.7",
4
4
  "bin": {
5
5
  "hcode": "hawa.js"
6
6
  },