hablas-ai 1.3.20 → 1.3.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ Expecting one of '${s.join("', '")}'`);return this._lifeCycleHooks[e]?this._life
20
20
  `),this.outputHelp({error:!0}));let s=t||{},r=s.exitCode||1,i=s.code||"commander.error";this._exit(r,i,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in pe.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||["default","config","env"].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,pe.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new Ay(this.options),t=s=>this.getOptionValue(s)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(s));this.options.filter(s=>s.implied!==void 0&&t(s.attributeName())&&e.valueFromOption(this.getOptionValue(s.attributeName()),s)).forEach(s=>{Object.keys(s.implied).filter(r=>!t(r)).forEach(r=>{this.setOptionValueWithSource(r,s.implied[r],"implied")})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:"commander.missingArgument"})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,t){let s=o=>{let a=o.attributeName(),l=this.getOptionValue(a),u=this.options.find(f=>f.negate&&a===f.attributeName()),d=this.options.find(f=>!f.negate&&a===f.attributeName());return u&&(u.presetArg===void 0&&l===!1||u.presetArg!==void 0&&l===u.presetArg)?u:d||o},r=o=>{let a=s(o),l=a.attributeName();return this.getOptionValueSource(l)==="env"?`environment variable '${a.envVar}'`:`option '${a.flags}'`},i=`error: ${r(e)} cannot be used with ${r(t)}`;this.error(i,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let t="";if(e.startsWith("--")&&this._showSuggestionAfterError){let r=[],i=this;do{let o=i.createHelp().visibleOptions(i).filter(a=>a.long).map(a=>a.long);r=r.concat(o),i=i.parent}while(i&&!i._enablePositionalOptions);t=fc(e,r)}let s=`error: unknown option '${e}'${t}`;this.error(s,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,s=t===1?"":"s",i=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${t} argument${s} but got ${e.length}.`;this.error(i,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],t="";if(this._showSuggestionAfterError){let r=[];this.createHelp().visibleCommands(this).forEach(i=>{r.push(i.name()),i.alias()&&r.push(i.alias())}),t=fc(e,r)}let s=`error: unknown command '${e}'${t}`;this.error(s,{code:"commander.unknownCommand"})}version(e,t,s){if(e===void 0)return this._version;this._version=e,t=t||"-V, --version",s=s||"output the version number";let r=this.createOption(t,s);return this._versionOptionName=r.attributeName(),this._registerOption(r),this.on("option:"+r.name(),()=>{this._outputConfiguration.writeOut(`${e}
21
21
  `),this._exit(0,"commander.version",e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw new Error("Command alias can't be the same as its name");let s=this.parent?._findCommand(e);if(s){let r=[s.name()].concat(s.aliases()).join("|");throw new Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${r}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(t=>this.alias(t)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let t=this.registeredArguments.map(s=>Sy(s));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?t:[]).join(" ")}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}nameFromFilename(e){return this._name=St.basename(e,St.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp();return t.helpWidth===void 0&&(t.helpWidth=e&&e.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),t.formatHelp(this,t)}_getHelpContext(e){e=e||{};let t={error:!!e.error},s;return t.error?s=r=>this._outputConfiguration.writeErr(r):s=r=>this._outputConfiguration.writeOut(r),t.write=e.write||s,t.command=this,t}outputHelp(e){let t;typeof e=="function"&&(t=e,e=void 0);let s=this._getHelpContext(e);this._getCommandAndAncestors().reverse().forEach(i=>i.emit("beforeAllHelp",s)),this.emit("beforeHelp",s);let r=this.helpInformation(s);if(t&&(r=t(r),typeof r!="string"&&!Buffer.isBuffer(r)))throw new Error("outputHelp callback must return a string or a Buffer");s.write(r),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",s),this._getCommandAndAncestors().forEach(i=>i.emit("afterAllHelp",s))}helpOption(e,t){return typeof e=="boolean"?(e?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(e=e??"-h, --help",t=t??"display help for command",this._helpOption=this.createOption(e,t),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this}help(e){this.outputHelp(e);let t=pe.exitCode||0;t===0&&e&&typeof e!="function"&&e.error&&(t=1),this._exit(t,"commander.help","(outputHelp)")}addHelpText(e,t){let s=["beforeAll","before","after","afterAll"];if(!s.includes(e))throw new Error(`Unexpected value for position to addHelpText.
22
22
  Expecting one of '${s.join("', '")}'`);let r=`${e}Help`;return this.on(r,i=>{let o;typeof t=="function"?o=t({error:i.error,command:i.command}):o=t,o&&i.write(`${o}
23
- `)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(r=>t.is(r))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function pc(n){return n.map(e=>{if(!e.startsWith("--inspect"))return e;let t,s="127.0.0.1",r="9229",i;return(i=e.match(/^(--inspect(-brk)?)$/))!==null?t=i[1]:(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(t=i[1],/^\d+$/.test(i[3])?r=i[3]:s=i[3]):(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],s=i[3],r=i[4]),t&&r!=="0"?`${t}=${s}:${parseInt(r)+1}`:e})}hc.Command=bi});var vc=N(qe=>{var{Argument:gc}=Is(),{Command:vi}=mc(),{CommanderError:ky,InvalidArgumentError:yc}=Un(),{Help:$y}=ui(),{Option:bc}=hi();qe.program=new vi;qe.createCommand=n=>new vi(n);qe.createOption=(n,e)=>new bc(n,e);qe.createArgument=(n,e)=>new gc(n,e);qe.Command=vi;qe.Option=bc;qe.Argument=gc;qe.Help=$y;qe.CommanderError=ky;qe.InvalidArgumentError=yc;qe.InvalidOptionArgumentError=yc});var Sc={};Le(Sc,{DEFAULT_CONFIG:()=>qn,NVIDIA_PROVIDER:()=>Ft});var qn,Ft,Kn=L(()=>{"use strict";qn={model:"stepfun-ai/step-3.7-flash",ollamaHost:"http://localhost:11434",provider:"ollama",apiUrl:"",apiKey:"",contextBudget:2e5,streamingEnabled:!0,autoConfirmSafe:!0,autoMode:!1,workingDirectory:".",historySize:1e4,timeout:12e4,maxRetries:3,tools:{runCommand:{allowedCommands:[],blocklist:[],timeout:12e4}},ui:{theme:"dark",showTokenCount:!0,diffPreview:!0,compactMode:!1,dashboard:!1},cache:{enabled:!0,maxEntries:100,ttlMs:3e5},logging:{level:"info",file:!0},plugins:{enabled:!0,directory:"~/.hablas/plugins",marketplace:"https://registry.hablas.dev/plugins"},agents:{enabled:!0,orchestration:"auto",maxConcurrent:3},context:{astParsing:!0,projectGraph:!0,longTermMemory:!0,fileWatcher:!0},workspace:{frameworkDetection:!0,gitAwareness:!0,envParsing:!0,autoPush:!1},security:{scanOnCommit:!1,secretDetection:!0,dependencyAudit:!0},analytics:{enabled:!0,trackUsage:!0,weeklyReports:!1},collaboration:{enabled:!1,teamConfigPath:".hablas/team.json",sharedMemory:!1},team:{enabled:!1,user:"",key:""},api:{enabled:!1,port:8080,host:"0.0.0.0",apiKey:""},license:{tier:"free",key:""}},Ft={name:"NVIDIA",apiUrl:"https://integrate.api.nvidia.com/v1",defaultModel:"stepfun-ai/step-3.7-flash",models:["stepfun-ai/step-3.7-flash","nvidia/llama-3.1-nemotron-70b-instruct","nvidia/nemotron-4-340b-instruct","meta/llama-3.1-405b-instruct","meta/llama-3.1-70b-instruct","meta/llama-3.1-8b-instruct","mistralai/mixtral-8x22b-instruct-v0.1","mistralai/mistral-large-latest","google/gemma-2-27b-it","microsoft/phi-3-medium-128k-instruct","deepseek-ai/deepseek-coder-33b-instruct","nvidia/llama-3.1-nemotron-51b-instruct","qwen/qwen2.5-coder-32b-instruct"]}});var Ds,_c=L(()=>{"use strict";Ds=class{baseUrl;model;constructor(e){this.baseUrl=e.ollamaHost,this.model=e.model}setModel(e){this.model=e}getModel(){return this.model}async checkConnection(){try{return(await fetch(`${this.baseUrl}/api/tags`,{signal:AbortSignal.timeout(5e3)})).ok}catch{return!1}}async listModels(){try{let e=await fetch(`${this.baseUrl}/api/tags`,{signal:AbortSignal.timeout(5e3)});return e.ok?((await e.json()).models||[]).map(s=>s.name):[]}catch{return[]}}async chatWithTools(e,t,s){let r={model:this.model,messages:e,stream:!1};t.length>0&&(r.tools=t);let i={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)};s&&(i.signal=s);let o=await fetch(`${this.baseUrl}/api/chat`,i);if(!o.ok){let l=await o.text().catch(()=>"");throw new Error(`Ollama error: ${o.status} ${o.statusText} \u2014 ${l}`)}return await o.json()}async*streamChat(e,t){let s=await fetch(`${this.baseUrl}/api/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:this.model,messages:e,stream:!0}),signal:t});if(!s.ok)throw new Error(`Ollama error: ${s.status} ${s.statusText}`);let r=s.body?.getReader();if(!r)throw new Error("No response body");let i=new TextDecoder,o="";for(;;){let{done:a,value:l}=await r.read();if(a)break;o+=i.decode(l,{stream:!0});let u=o.split(`
23
+ `)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(r=>t.is(r))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function pc(n){return n.map(e=>{if(!e.startsWith("--inspect"))return e;let t,s="127.0.0.1",r="9229",i;return(i=e.match(/^(--inspect(-brk)?)$/))!==null?t=i[1]:(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(t=i[1],/^\d+$/.test(i[3])?r=i[3]:s=i[3]):(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],s=i[3],r=i[4]),t&&r!=="0"?`${t}=${s}:${parseInt(r)+1}`:e})}hc.Command=bi});var vc=N(Ke=>{var{Argument:gc}=Is(),{Command:vi}=mc(),{CommanderError:ky,InvalidArgumentError:yc}=Un(),{Help:$y}=ui(),{Option:bc}=hi();Ke.program=new vi;Ke.createCommand=n=>new vi(n);Ke.createOption=(n,e)=>new bc(n,e);Ke.createArgument=(n,e)=>new gc(n,e);Ke.Command=vi;Ke.Option=bc;Ke.Argument=gc;Ke.Help=$y;Ke.CommanderError=ky;Ke.InvalidArgumentError=yc;Ke.InvalidOptionArgumentError=yc});var Sc={};Le(Sc,{DEFAULT_CONFIG:()=>qn,NVIDIA_PROVIDER:()=>Ft});var qn,Ft,Kn=L(()=>{"use strict";qn={model:"stepfun-ai/step-3.7-flash",ollamaHost:"http://localhost:11434",provider:"ollama",apiUrl:"",apiKey:"",contextBudget:2e5,streamingEnabled:!0,autoConfirmSafe:!0,autoMode:!1,workingDirectory:".",historySize:1e4,timeout:12e4,maxRetries:3,tools:{runCommand:{allowedCommands:[],blocklist:[],timeout:12e4}},ui:{theme:"dark",showTokenCount:!0,diffPreview:!0,compactMode:!1,dashboard:!1},cache:{enabled:!0,maxEntries:100,ttlMs:3e5},logging:{level:"info",file:!0},plugins:{enabled:!0,directory:"~/.hablas/plugins",marketplace:"https://registry.hablas.dev/plugins"},agents:{enabled:!0,orchestration:"auto",maxConcurrent:3},context:{astParsing:!0,projectGraph:!0,longTermMemory:!0,fileWatcher:!0},workspace:{frameworkDetection:!0,gitAwareness:!0,envParsing:!0,autoPush:!1},security:{scanOnCommit:!1,secretDetection:!0,dependencyAudit:!0},analytics:{enabled:!0,trackUsage:!0,weeklyReports:!1},collaboration:{enabled:!1,teamConfigPath:".hablas/team.json",sharedMemory:!1},team:{enabled:!1,user:"",key:""},api:{enabled:!1,port:8080,host:"0.0.0.0",apiKey:""},license:{tier:"free",key:""}},Ft={name:"NVIDIA",apiUrl:"https://integrate.api.nvidia.com/v1",defaultModel:"stepfun-ai/step-3.7-flash",models:["stepfun-ai/step-3.7-flash","nvidia/llama-3.1-nemotron-70b-instruct","nvidia/nemotron-4-340b-instruct","meta/llama-3.1-405b-instruct","meta/llama-3.1-70b-instruct","meta/llama-3.1-8b-instruct","mistralai/mixtral-8x22b-instruct-v0.1","mistralai/mistral-large-latest","google/gemma-2-27b-it","microsoft/phi-3-medium-128k-instruct","deepseek-ai/deepseek-coder-33b-instruct","nvidia/llama-3.1-nemotron-51b-instruct","qwen/qwen2.5-coder-32b-instruct"]}});var Ds,_c=L(()=>{"use strict";Ds=class{baseUrl;model;constructor(e){this.baseUrl=e.ollamaHost,this.model=e.model}setModel(e){this.model=e}getModel(){return this.model}async checkConnection(){try{return(await fetch(`${this.baseUrl}/api/tags`,{signal:AbortSignal.timeout(5e3)})).ok}catch{return!1}}async listModels(){try{let e=await fetch(`${this.baseUrl}/api/tags`,{signal:AbortSignal.timeout(5e3)});return e.ok?((await e.json()).models||[]).map(s=>s.name):[]}catch{return[]}}async chatWithTools(e,t,s){let r={model:this.model,messages:e,stream:!1};t.length>0&&(r.tools=t);let i={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)};s&&(i.signal=s);let o=await fetch(`${this.baseUrl}/api/chat`,i);if(!o.ok){let l=await o.text().catch(()=>"");throw new Error(`Ollama error: ${o.status} ${o.statusText} \u2014 ${l}`)}return await o.json()}async*streamChat(e,t){let s=await fetch(`${this.baseUrl}/api/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:this.model,messages:e,stream:!0}),signal:t});if(!s.ok)throw new Error(`Ollama error: ${s.status} ${s.statusText}`);let r=s.body?.getReader();if(!r)throw new Error("No response body");let i=new TextDecoder,o="";for(;;){let{done:a,value:l}=await r.read();if(a)break;o+=i.decode(l,{stream:!0});let u=o.split(`
24
24
  `);o=u.pop()||"";for(let d of u)if(d.trim())try{let f=JSON.parse(d);f.message?.content&&(yield f.message.content)}catch{}}}}});function $c(n){return n.map(e=>{if(e.role==="assistant"&&e.tool_calls&&e.tool_calls.length>0){let t=e.tool_calls.filter(s=>s?.function?.name);if(t.length>0)return{role:"assistant",content:e.content||null,tool_calls:t.map((s,r)=>({id:`call_${r}`,type:"function",function:{name:s.function?.name||"",arguments:JSON.stringify(s.function?.arguments||{})}}))}}return e.role==="tool"?{role:"tool",content:e.content,tool_call_id:"call_0"}:{role:e.role,content:e.content}})}function Ty(n){return n.map(e=>({type:"function",function:e.function}))}function Ry(n){return n.filter(e=>e?.function?.name).map(e=>{let t={};try{t=JSON.parse(e.function?.arguments||"{}")}catch{t={_raw:e.function?.arguments}}return{function:{name:e.function?.name||"",arguments:t}}})}function Cc(n){return new Promise(e=>setTimeout(e,n))}function Ec(n,e){return!(n.name==="AbortError"||e&&e>=400&&e<500&&e!==429)}var Ac,Cy,Ls,kc,Ey,Gt,wi=L(()=>{"use strict";Ac=12e4,Cy=6e4,Ls=3,kc=1e3,Ey=20;Gt=class{apiUrl;apiKey;model;constructor(e){this.apiUrl=e.apiUrl||"https://api.openai.com/v1",this.apiKey=e.apiKey,this.model=e.model}setModel(e){this.model=e}getModel(){return this.model}setApiUrl(e){this.apiUrl=e}getApiUrl(){return this.apiUrl}setApiKey(e){this.apiKey=e}async checkConnection(){try{let e=this.apiUrl.replace(/\/+$/,"")+"/models";return(await fetch(e,{headers:this.getHeaders(),signal:AbortSignal.timeout(15e3)})).ok}catch{return!1}}async listModels(){try{let e=[],t=!0,s,r=0;for(;t&&r<Ey;){let i=this.apiUrl.replace(/\/+$/,"")+"/models",o=new URLSearchParams;s&&o.set("after",s),o.set("limit","1000");let a=o.toString();a&&(i+="?"+a);let l=await fetch(i,{headers:this.getHeaders(),signal:AbortSignal.timeout(Cy)});if(!l.ok)break;let u=await l.json();if(Array.isArray(u))e.push(...u.map(d=>d.id||d.name||d).filter(Boolean)),t=!1;else if(u.data&&Array.isArray(u.data)){let d=u.data.map(f=>f.id||f.name).filter(Boolean);e.push(...d),u.has_more&&d.length>0?(s=d[d.length-1],r++):t=!1}else u.models&&Array.isArray(u.models)&&e.push(...u.models.map(d=>d.name||d.id).filter(Boolean)),t=!1}return e.sort((i,o)=>i.localeCompare(o))}catch{return[]}}async chatWithTools(e,t,s){let r=this.apiUrl.replace(/\/+$/,"")+"/chat/completions",i={model:this.model,messages:$c(e)};t.length>0&&(i.tools=Ty(t),i.tool_choice="auto");let o=null;for(let a=0;a<=Ls;a++)try{let l=new AbortController,u=setTimeout(()=>l.abort(),Ac),d={method:"POST",headers:{"Content-Type":"application/json",...this.getHeaders()},body:JSON.stringify(i),signal:s||l.signal};try{let f=await fetch(r,d);if(clearTimeout(u),!f.ok){let g=await f.text().catch(()=>"");if(!Ec(null,f.status))throw new Error(`API error: ${f.status} ${f.statusText} \u2014 ${g}`);if(o=new Error(`API error: ${f.status} ${f.statusText} \u2014 ${g}`),a<Ls){let S=kc*Math.pow(2,a);await Cc(S);continue}throw o}let m=(await f.json()).choices?.[0];if(!m)throw new Error("API returned empty response");let p=m.message.tool_calls?Ry(m.message.tool_calls):void 0;return{message:{role:m.message.role||"assistant",content:m.message.content||"",tool_calls:p},done:!0,done_reason:m.finish_reason}}catch(f){if(clearTimeout(u),f.name==="AbortError"&&s?.aborted)throw f;if(Ec(f)&&(o=f,a<Ls)){let h=kc*Math.pow(2,a);await Cc(h);continue}throw f}}catch(l){if(l.name==="AbortError")throw l;if(o=l,a>=Ls)throw o}throw o||new Error("Request failed after retries")}async*streamChat(e,t){let s=this.apiUrl.replace(/\/+$/,"")+"/chat/completions",r=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json",...this.getHeaders()},body:JSON.stringify({model:this.model,messages:$c(e),stream:!0}),signal:t||AbortSignal.timeout(Ac)});if(!r.ok)throw new Error(`API error: ${r.status} ${r.statusText}`);let i=r.body?.getReader();if(!i)throw new Error("No response body");let o=new TextDecoder,a="";for(;;){let{done:l,value:u}=await i.read();if(l)break;a+=o.decode(u,{stream:!0});let d=a.split(`
25
25
  `);a=d.pop()||"";for(let f of d){let h=f.trim();if(!(!h||h==="data: [DONE]")&&h.startsWith("data: "))try{let p=JSON.parse(h.slice(6)).choices?.[0]?.delta?.content;p&&(yield p)}catch{}}}}getHeaders(){let e={};return this.apiKey&&(e.Authorization=`Bearer ${this.apiKey}`),e}}});function Pe(n){if(n.provider==="nvidia"){let e={...n,provider:"custom",apiUrl:Ft.apiUrl};return new Gt(e)}return n.provider==="custom"&&n.apiUrl?new Gt(n):new Ds(n)}function Fs(n){if(n.provider==="nvidia")return"NVIDIA NIM";if(n.provider==="custom")try{return`Custom (${new URL(n.apiUrl).hostname})`}catch{return"Custom API"}return"Ollama (local)"}var Wn=L(()=>{"use strict";Kn();_c();wi()});var Tc=L(()=>{"use strict"});function Vt(){let n={providers:[],activeProvider:null,activeModel:null};try{if(_t.existsSync(Si)){let e=_t.readFileSync(Si,"utf-8"),t=JSON.parse(e);return{...n,...t}}}catch{}return n}function Ai(n){_t.existsSync(xi)||_t.mkdirSync(xi,{recursive:!0}),_t.writeFileSync(Si,JSON.stringify(n,null,2),"utf-8")}function Qe(n){let e=Vt();e.providers=e.providers.filter(t=>t.name!==n.name),e.providers.push(n),Ai(e)}function Oc(n){let e=Vt(),t=e.providers.length;return e.providers=e.providers.filter(s=>s.name!==n),e.providers.length<t?(e.activeProvider===n&&(e.activeProvider=null,e.activeModel=null),Ai(e),!0):!1}function Pc(n){return Vt().providers.find(t=>t.name.toLowerCase()===n.toLowerCase())}function Ns(){return Vt().providers}function Mc(n,e){let t=Vt(),s=t.providers.find(r=>r.name===n);s&&(t.activeProvider=n,t.activeModel=e||s.defaultModel,Ai(t))}function Ic(n,e){if(n.length===0)return" No saved providers. Use /addmodel to add one.";let t=[];t.push(" Saved Providers:"),t.push("");for(let s of n){let r=s.name===e,i=r?" \u25CF active":"",o=s.apiKey?"***"+s.apiKey.slice(-4):"no key";t.push(` ${r?"\u25B8":"\xB7"} ${s.name}${i}`),t.push(` URL: ${s.apiUrl}`),t.push(` Key: ${o}`),t.push(` Model: ${s.defaultModel}`),t.push(` Added: ${new Date(s.addedAt).toLocaleDateString()}`),t.push("")}return t.join(`
26
26
  `)}var _t,_i,Rc,xi,Si,ki=L(()=>{"use strict";_t=O(require("fs")),_i=O(require("path")),Rc=O(require("os"));Tc();xi=_i.join(Rc.homedir(),".hablas"),Si=_i.join(xi,"models.json")});function Bs(){try{if(At.existsSync(js))return JSON.parse(At.readFileSync(js,"utf-8"))}catch{}return{}}function Lc(n){let e=Hs.dirname(js);At.existsSync(e)||At.mkdirSync(e,{recursive:!0}),At.writeFileSync(js,JSON.stringify(n,null,2),"utf-8")}function Fc(n,e){let t=Bs();t[n]=e,Lc(t)}function Nc(n){let e=Bs();return e[n]?(delete e[n],Lc(e),!0):!1}function jc(n){let e=Bs(),t=n.trim();for(let[s,r]of Object.entries(e))if(t===s||t.startsWith(s+" "))return t.replace(s,r);return n}function Hc(){let n=Bs(),e=Object.entries(n);return e.length===0?` No aliases defined.
@@ -155,23 +155,23 @@ export function hello() {
155
155
  3. Wait for tool results before using dependent tools.
156
156
  4. Use exact file paths relative to the working directory.
157
157
  5. Do NOT wrap tool tags in <tool_call > tags \u2014 use them directly.
158
- `.trim()}var lu=L(()=>{"use strict"});function Vy(){let n=[Jn.resolve(__dirname,"..","..","package.json"),Jn.resolve(__dirname,"..","package.json"),Jn.resolve(process.cwd(),"package.json"),Jn.resolve(__dirname,"..","..","..","package.json")];for(let e of n)try{if(Js.existsSync(e)){let t=JSON.parse(Js.readFileSync(e,"utf-8"));if(t.version)return t.version}}catch{}return"0.0.0"}function he(n,e){return du||!gn?n:`${e}${n}\x1B[0m`}function zy(n){let e=Ne();if(!n)return c.border("\u2500".repeat(e));let t=n.replace(/\x1b\[[0-9;]*m/g,""),s=Math.max(0,e-t.length-2),r=Math.floor(s/2),i=s-r;return c.border("\u2500".repeat(r))+" "+n+" "+c.border("\u2500".repeat(i))}function Yy(n,e=2){let t=Ne()-e;if(t<=0)return" ".repeat(e)+n;let s=n.split(" "),r=[],i="";for(let o of s)(i+" "+o).trim().length>t&&i?(r.push(i.trim()),i=o):i+=(i?" ":"")+o;return i&&r.push(i.trim()),r.map(o=>" ".repeat(e)+o).join(`
158
+ `.trim()}var lu=L(()=>{"use strict"});function Vy(){let n=[Jn.resolve(__dirname,"..","..","package.json"),Jn.resolve(__dirname,"..","package.json"),Jn.resolve(process.cwd(),"package.json"),Jn.resolve(__dirname,"..","..","..","package.json")];for(let e of n)try{if(Js.existsSync(e)){let t=JSON.parse(Js.readFileSync(e,"utf-8"));if(t.version)return t.version}}catch{}return"0.0.0"}function he(n,e){return du||!gn?n:`${e}${n}\x1B[0m`}function zy(n){let e=je();if(!n)return c.border("\u2500".repeat(e));let t=n.replace(/\x1b\[[0-9;]*m/g,""),s=Math.max(0,e-t.length-2),r=Math.floor(s/2),i=s-r;return c.border("\u2500".repeat(r))+" "+n+" "+c.border("\u2500".repeat(i))}function Yy(n,e=2){let t=je()-e;if(t<=0)return" ".repeat(e)+n;let s=n.split(" "),r=[],i="";for(let o of s)(i+" "+o).trim().length>t&&i?(r.push(i.trim()),i=o):i+=(i?" ":"")+o;return i&&r.push(i.trim()),r.map(o=>" ".repeat(e)+o).join(`
159
159
  `)}function Jy(n){let e=Math.max(...n.map(([t])=>t.length));return n.map(([t,s])=>` ${c.muted(t.padEnd(e))} ${s}`).join(`
160
- `)}function Xy(n){if(du||!gn)return n;let e=["\x1B[38;5;111m","\x1B[38;5;111m","\x1B[38;5;141m","\x1B[38;5;141m","\x1B[38;5;117m","\x1B[38;5;117m"],t="";for(let s=0;s<n.length;s++){let r=Math.floor(s/n.length*e.length);t+=e[r]+n[s]}return t+"\x1B[0m"}function pu(n,e){let t=Ne(),s=e?e.replace(no.homedir(),"~"):"",r=c.border("\u2554"+"\u2550".repeat(t-2)+"\u2557"),i=c.border("\u2560"+"\u2550".repeat(t-2)+"\u2563"),o=c.border("\u255A"+"\u2550".repeat(t-2)+"\u255D"),a="H A B L A S A I",l="EXECUTIVE SYSTEM COORDINATOR",u="developed by abdulmoin hablas",d=Math.max(0,Math.floor((t-2-a.length)/2)),f=c.border("\u2551")+" ".repeat(d)+c.strong(a)+" ".repeat(t-2-a.length-d)+c.border("\u2551"),h=Math.max(0,Math.floor((t-2-l.length)/2)),m=c.border("\u2551")+" ".repeat(h)+c.secondary(l)+" ".repeat(t-2-l.length-h)+c.border("\u2551"),p=Math.max(0,Math.floor((t-2-u.length)/2)),g=c.border("\u2551")+" ".repeat(p)+c.muted(u)+" ".repeat(t-2-u.length-p)+c.border("\u2551"),S=c.muted(`SYSTEM VERSION: v${uu}`),w=c.warning(`CORE MODEL: ${n}`);return["",r,f,m,u?g:"",i,` ${c.muted("\u25B8")} ${S}`,` ${c.muted("\u25B8")} ${w}`,s?` ${c.muted("\u25B8")} ${c.muted(`WORKSPACE: ${s}`)}`:"",` ${c.chrome("\u251C"+"\u2500".repeat(t-2)+"\u2524")}`,` ${c.muted(" \u203A")} ${c.secondary("Type naturally to get started")}`,` ${c.muted(" \u203A")} ${c.secondary("/help for commands \xB7 Ctrl+C to cancel \xB7 Ctrl+C\xD72 to exit")}`,o,""].filter(Boolean).join(`
161
- `)}function hu(){let n=Ne();return[` ${c.border("\u2554"+"\u2550".repeat(n-4)+"\u2557")}`,` ${c.border("\u2551")} ${c.leader("\u2605 Hablas")} ${c.muted("Leader")} ${c.border("\u2551")} ${c.product("\u25C6 Emma")} ${c.muted("Product")} ${c.border("\u2551")} ${c.architect("\u25C6 Bob")} ${c.muted("Architect")} ${c.border("\u2551")} ${c.engineer("\u25C6 Alex")} ${c.muted("Engineer")} ${c.border("\u2551")} ${c.analyst("\u25C6 David")} ${c.muted("Analyst")} ${c.border("\u2551")}`,` ${c.border("\u255A"+"\u2550".repeat(n-4)+"\u255D")}`].join(`
160
+ `)}function Xy(n){if(du||!gn)return n;let e=["\x1B[38;5;111m","\x1B[38;5;111m","\x1B[38;5;141m","\x1B[38;5;141m","\x1B[38;5;117m","\x1B[38;5;117m"],t="";for(let s=0;s<n.length;s++){let r=Math.floor(s/n.length*e.length);t+=e[r]+n[s]}return t+"\x1B[0m"}function pu(n,e){let t=je(),s=e?e.replace(no.homedir(),"~"):"",r=c.border("\u2554"+"\u2550".repeat(t-2)+"\u2557"),i=c.border("\u2560"+"\u2550".repeat(t-2)+"\u2563"),o=c.border("\u255A"+"\u2550".repeat(t-2)+"\u255D"),a="H A B L A S A I",l="EXECUTIVE SYSTEM COORDINATOR",u="developed by abdulmoin hablas",d=Math.max(0,Math.floor((t-2-a.length)/2)),f=c.border("\u2551")+" ".repeat(d)+c.strong(a)+" ".repeat(t-2-a.length-d)+c.border("\u2551"),h=Math.max(0,Math.floor((t-2-l.length)/2)),m=c.border("\u2551")+" ".repeat(h)+c.secondary(l)+" ".repeat(t-2-l.length-h)+c.border("\u2551"),p=Math.max(0,Math.floor((t-2-u.length)/2)),g=c.border("\u2551")+" ".repeat(p)+c.muted(u)+" ".repeat(t-2-u.length-p)+c.border("\u2551"),S=c.muted(`SYSTEM VERSION: v${uu}`),x=c.warning(`CORE MODEL: ${n}`);return["",r,f,m,u?g:"",i,` ${c.muted("\u25B8")} ${S}`,` ${c.muted("\u25B8")} ${x}`,s?` ${c.muted("\u25B8")} ${c.muted(`WORKSPACE: ${s}`)}`:"",` ${c.chrome("\u251C"+"\u2500".repeat(t-2)+"\u2524")}`,` ${c.muted(" \u203A")} ${c.secondary("Type naturally to get started")}`,` ${c.muted(" \u203A")} ${c.secondary("/help for commands \xB7 Ctrl+C to cancel \xB7 Ctrl+C\xD72 to exit")}`,o,""].filter(Boolean).join(`
161
+ `)}function hu(){let n=je();return[` ${c.border("\u2554"+"\u2550".repeat(n-4)+"\u2557")}`,` ${c.border("\u2551")} ${c.leader("\u2605 Hablas")} ${c.muted("Leader")} ${c.border("\u2551")} ${c.product("\u25C6 Emma")} ${c.muted("Product")} ${c.border("\u2551")} ${c.architect("\u25C6 Bob")} ${c.muted("Architect")} ${c.border("\u2551")} ${c.engineer("\u25C6 Alex")} ${c.muted("Engineer")} ${c.border("\u2551")} ${c.analyst("\u25C6 David")} ${c.muted("Analyst")} ${c.border("\u2551")}`,` ${c.border("\u255A"+"\u2550".repeat(n-4)+"\u255D")}`].join(`
162
162
  `)}function Jt(n,e){return`
163
163
  ${(n==="Hablas"?c.leader:n==="Bob"?c.architect:n==="Alex"?c.engineer:n==="David"?c.analyst:n==="Emma"?c.product:c.primary)("\u25C6")} ${c.strong(n)} ${c.muted(`[${e.toUpperCase()}]`)}`}function mu(n,e,t,s){let r=n==="Hablas"?c.leader:n==="Bob"?c.architect:n==="Alex"?c.engineer:n==="David"?c.analyst:n==="Emma"?c.product:c.primary,i=e==="Hablas"?c.leader:e==="Bob"?c.architect:e==="Alex"?c.engineer:e==="David"?c.analyst:e==="Emma"?c.product:c.primary,o=[];if(o.push(""),o.push(` ${r("\u2605")} ${r(n)} ${c.muted("\u2192")} ${c.strong("Delegating to")} ${i(`@${e}`)} ${c.muted(`(${t})`)}`),s){let a=s.length>80?s.slice(0,80)+"...":s;o.push(` ${c.muted(" \u2517")} ${c.secondary(a)}`)}return o.push(""),o.join(`
164
- `)}function gu(){let n=Ne(),t=[` ${c.accent("\u2726")} ${c.strong("Welcome to hablas")}`,"",` ${c.muted("Try:")} ${c.highlight('"read package.json and list deps"')}`,` ${c.muted("Or:")} ${c.highlight('"create a new component for user auth"')}`,"",` ${c.primary("/tree")} ${c.muted("\u2014 see project structure")}`,` ${c.primary("/model")} ${c.muted("\u2014 switch AI model")}`,` ${c.primary("/models")} ${c.muted("\u2014 browse all available models")}`,` ${c.primary("/team")} ${c.muted("\u2014 see your agent team")}`,` ${c.primary("/about")} ${c.muted("\u2014 developer info")}`,"",` ${c.muted("All file changes are backed up automatically.")}`].map(s=>{let r=s.replace(/\x1b\[[0-9;]*m/g,""),i=Math.max(0,n-8-r.length);return` ${c.border("\u2502")} ${s}${" ".repeat(i)} ${c.border("\u2502")}`});return["",` ${c.border("\u250C"+"\u2500".repeat(n-6)+"\u2510")}`,...t,` ${c.border("\u2514"+"\u2500".repeat(n-6)+"\u2518")}`,""].join(`
165
- `)}function yu(){let n=Ne();return["",c.chrome("\u256D"+"\u2500".repeat(n-2)+"\u256E"),` ${c.strong("Abdulmoin Hablas")} ${c.muted("\u2014 Full-Stack Developer")}`,c.chrome("\u251C"+"\u2500".repeat(n-2)+"\u2524"),"",` ${c.accent("\u25C6")} ${c.primary("Portfolio")} ${c.muted("https://portfolio-monopoly63s-projects.vercel.app/")}`,` ${c.accent("\u25C6")} ${c.primary("GitHub")} ${c.muted("https://github.com/Monopoly63?tab=repositories")}`,` ${c.accent("\u25C6")} ${c.primary("Telegram")} ${c.muted("https://t.me/Hablas_Trade")}`,` ${c.accent("\u25C6")} ${c.primary("WhatsApp")} ${c.muted("https://wa.me/13232128875")}`,` ${c.accent("\u25C6")} ${c.primary("Instagram")} ${c.muted("https://www.instagram.com/li0vy_")}`,"",c.chrome("\u251C"+"\u2500".repeat(n-2)+"\u2524"),` ${c.strong("Projects")}`,"",` ${c.muted("\u25B8")} AI Search Engine ${c.muted("\u2192")} ${c.highlight("https://ai-search-engine-ashy.vercel.app/")}`,` ${c.muted("\u25B8")} Trade Tracker ${c.muted("\u2192")} ${c.highlight("https://trade-tracker-monopoly63s-projects.vercel.app/")}`,` ${c.muted("\u25B8")} Tree Algo Lab ${c.muted("\u2192")} ${c.highlight("https://tree-algorithms-lab.vercel.app/")}`,"",c.chrome("\u2570"+"\u2500".repeat(n-2)+"\u256F"),""].join(`
164
+ `)}function gu(){let n=je(),t=[` ${c.accent("\u2726")} ${c.strong("Welcome to hablas")}`,"",` ${c.muted("Try:")} ${c.highlight('"read package.json and list deps"')}`,` ${c.muted("Or:")} ${c.highlight('"create a new component for user auth"')}`,"",` ${c.primary("/tree")} ${c.muted("\u2014 see project structure")}`,` ${c.primary("/model")} ${c.muted("\u2014 switch AI model")}`,` ${c.primary("/models")} ${c.muted("\u2014 browse all available models")}`,` ${c.primary("/team")} ${c.muted("\u2014 see your agent team")}`,` ${c.primary("/about")} ${c.muted("\u2014 developer info")}`,"",` ${c.muted("All file changes are backed up automatically.")}`].map(s=>{let r=s.replace(/\x1b\[[0-9;]*m/g,""),i=Math.max(0,n-8-r.length);return` ${c.border("\u2502")} ${s}${" ".repeat(i)} ${c.border("\u2502")}`});return["",` ${c.border("\u250C"+"\u2500".repeat(n-6)+"\u2510")}`,...t,` ${c.border("\u2514"+"\u2500".repeat(n-6)+"\u2518")}`,""].join(`
165
+ `)}function yu(){let n=je();return["",c.chrome("\u256D"+"\u2500".repeat(n-2)+"\u256E"),` ${c.strong("Abdulmoin Hablas")} ${c.muted("\u2014 Full-Stack Developer")}`,c.chrome("\u251C"+"\u2500".repeat(n-2)+"\u2524"),"",` ${c.accent("\u25C6")} ${c.primary("Portfolio")} ${c.muted("https://portfolio-monopoly63s-projects.vercel.app/")}`,` ${c.accent("\u25C6")} ${c.primary("GitHub")} ${c.muted("https://github.com/Monopoly63?tab=repositories")}`,` ${c.accent("\u25C6")} ${c.primary("Telegram")} ${c.muted("https://t.me/Hablas_Trade")}`,` ${c.accent("\u25C6")} ${c.primary("WhatsApp")} ${c.muted("https://wa.me/13232128875")}`,` ${c.accent("\u25C6")} ${c.primary("Instagram")} ${c.muted("https://www.instagram.com/li0vy_")}`,"",c.chrome("\u251C"+"\u2500".repeat(n-2)+"\u2524"),` ${c.strong("Projects")}`,"",` ${c.muted("\u25B8")} AI Search Engine ${c.muted("\u2192")} ${c.highlight("https://ai-search-engine-ashy.vercel.app/")}`,` ${c.muted("\u25B8")} Trade Tracker ${c.muted("\u2192")} ${c.highlight("https://trade-tracker-monopoly63s-projects.vercel.app/")}`,` ${c.muted("\u25B8")} Tree Algo Lab ${c.muted("\u2192")} ${c.highlight("https://tree-algorithms-lab.vercel.app/")}`,"",c.chrome("\u2570"+"\u2500".repeat(n-2)+"\u256F"),""].join(`
166
166
  `)}function bu(){return["",` ${Xy("\u25C6 hablas")} ${c.success(`v${uu}`)}`,"",` ${c.muted("Runtime")} ${c.secondary(`Node.js ${process.version}`)}`,` ${c.muted("Platform")} ${c.secondary(`${process.platform} ${process.arch}`)}`,` ${c.muted("Author")} ${c.secondary("Abdulmoin Hablas")}`,` ${c.muted("License")} ${c.secondary("MIT")}`,""].join(`
167
- `)}function cu(n,e){let t=Math.min(Ne()-8,60),s=e?` ${c.accent(e)} `:"",r=`${c.error("\u25CF")} ${c.warning("\u25CF")} ${c.success("\u25CF")}`,i=` ${c.chrome("\u250C"+"\u2500".repeat(4))} ${r} ${c.chrome("\u2500".repeat(Math.max(0,t-10-(e?e.length+2:0))))}${s}`,o=String(n.length).length,a=n.map((u,d)=>{let f=c.lineNum(String(d+1).padStart(o)+" \u2502 "),h=c.codeBlock(u);return` ${c.chrome("\u2502")} ${f}${h}`}),l=` ${c.chrome("\u2514"+"\u2500".repeat(t))}`;return[i,...a,l]}function Xt(n){let e=n.split(`
167
+ `)}function cu(n,e){let t=Math.min(je()-8,60),s=e?` ${c.accent(e)} `:"",r=`${c.error("\u25CF")} ${c.warning("\u25CF")} ${c.success("\u25CF")}`,i=` ${c.chrome("\u250C"+"\u2500".repeat(4))} ${r} ${c.chrome("\u2500".repeat(Math.max(0,t-10-(e?e.length+2:0))))}${s}`,o=String(n.length).length,a=n.map((u,d)=>{let f=c.lineNum(String(d+1).padStart(o)+" \u2502 "),h=c.codeBlock(u);return` ${c.chrome("\u2502")} ${f}${h}`}),l=` ${c.chrome("\u2514"+"\u2500".repeat(t))}`;return[i,...a,l]}function Xt(n){let e=n.split(`
168
168
  `),t=[],s=!1,r="",i=[];for(let o of e){if(o.trimStart().startsWith("```")){s?(t.push(...cu(i,r)),s=!1,i=[]):(s=!0,r=o.trimStart().slice(3).trim(),i=[]);continue}if(s){i.push(o);continue}if(/^#{1,3}\s/.test(o)){let l=o.replace(/^#+\s/,"");t.push(""),t.push(` ${c.strong(c.primary(l))}`);continue}if(/^[-*]\s/.test(o.trim())){let l=o.trim().slice(2),u=eo(l);t.push(` ${c.accent("\u25B8")} ${u}`);continue}if(/^\d+\.\s/.test(o.trim())){let l=o.trim().match(/^(\d+)\.\s(.+)/);if(l){t.push(` ${c.muted(l[1]+".")} ${eo(l[2])}`);continue}}if(!o.trim()){t.push("");continue}let a=Yy(eo(o),2);t.push(...a.split(`
169
169
  `))}return s&&i.length>0&&t.push(...cu(i,r)),`
170
170
  `+t.join(`
171
171
  `)+`
172
- `}function eo(n){let e=n.replace(/`([^`]+)`/g,(t,s)=>c.highlight(s));return e=e.replace(/\*\*([^*]+)\*\*/g,(t,s)=>c.strong(c.primary(s))),e=e.replace(/\*([^*]+)\*/g,(t,s)=>`\x1B[3m${s}\x1B[23m`),e}function vu(n,e){let t=Ne(),s=` [TOOL: ${n.replace(/_/g," ").toUpperCase()}] `,r=` ${c.border("\u250C\u2500\u2500")}${c.accent(s)}${c.border("\u2500".repeat(Math.max(0,t-s.length-6)))}`,i=` ${c.border("\u2502")} ${c.secondary(e)}`,o=i.replace(/\x1b\[[0-9;]*m/g,""),a=Math.max(0,t-8-o.length);return`
172
+ `}function eo(n){let e=n.replace(/`([^`]+)`/g,(t,s)=>c.highlight(s));return e=e.replace(/\*\*([^*]+)\*\*/g,(t,s)=>c.strong(c.primary(s))),e=e.replace(/\*([^*]+)\*/g,(t,s)=>`\x1B[3m${s}\x1B[23m`),e}function vu(n,e){let t=je(),s=` [TOOL: ${n.replace(/_/g," ").toUpperCase()}] `,r=` ${c.border("\u250C\u2500\u2500")}${c.accent(s)}${c.border("\u2500".repeat(Math.max(0,t-s.length-6)))}`,i=` ${c.border("\u2502")} ${c.secondary(e)}`,o=i.replace(/\x1b\[[0-9;]*m/g,""),a=Math.max(0,t-8-o.length);return`
173
173
  ${r}
174
- ${i}${" ".repeat(a)} ${c.border("\u2502")}`}function wu(n,e,t){let s=Ne(),r=c.muted(`${t}ms`),i="";if(n){let u=e.split(`
174
+ ${i}${" ".repeat(a)} ${c.border("\u2502")}`}function wu(n,e,t){let s=je(),r=c.muted(`${t}ms`),i="";if(n){let u=e.split(`
175
175
  `).filter(Boolean),d=u.length;if(d>5){let f=u[0].slice(0,s-30).trim();i=` ${c.border("\u2502")} ${c.success("\u2713")} ${c.muted(`${d} lines`)} ${c.secondary(f+"\u2026")} ${r}`}else{let f=u.join(" \xB7 ").slice(0,s-24);i=` ${c.border("\u2502")} ${c.success("\u2713")} ${c.muted(f)} ${r}`}}else{let u=e.split(`
176
176
  `)[0].slice(0,s-24);i=` ${c.border("\u2502")} ${c.error("\u2717")} ${c.error(u)} ${r}`}let o=i.replace(/\x1b\[[0-9;]*m/g,""),a=Math.max(0,s-8-o.length),l=` ${c.border("\u2514"+"\u2500".repeat(s-6)+"\u2518")}`;return`${i}${" ".repeat(a)} ${c.border("\u2502")}
177
177
  ${l}
@@ -179,15 +179,15 @@ ${l}
179
179
  `),t=[];for(let s of e)s.startsWith("+++")||s.startsWith("---")?t.push(` ${c.muted(s)}`):s.startsWith("+")?t.push(` ${c.added(s)}`):s.startsWith("-")?t.push(` ${c.removed(s)}`):s.startsWith("@@")?t.push(` ${c.hunk(s)}`):s.trim()&&t.push(` ${c.muted(s)}`);return t.join(`
180
180
  `)}function xu(n){let e=new Date().toLocaleTimeString("en",{hour:"2-digit",minute:"2-digit"}),t=`${c.accent("\u25C6")} ${c.strong(c.primary(`Turn #${n}`))} ${c.muted(`\xB7 ${e} \xB7`)}`;return`
181
181
  `+zy(t)+`
182
- `}function _e(n){return` ${c.error("\u2717")} ${n}`}function je(n,e){return` ${c.error("\u2717")} ${n}
183
- ${c.warning("\u2192")} ${c.muted(e)}`}function Y(n){return` ${c.success("\u2713")} ${n}`}function fe(n){return` ${c.muted(n)}`}function j(n){return` ${c.warning("\u26A0")} ${n}`}function Qy(n,e){let s=Math.round(Math.min(n,e)/Math.max(e,1)*16),r=e>0?n/e:0;return(r>.85?c.error:r>.6?c.warning:c.success)("\u2588".repeat(s))+c.muted("\u2591".repeat(16-s))}function Su(n){let e=Ne(),t=n.connected?c.success("\u25CF connected"):c.error("\u25CB offline"),s=Qy(n.cacheTokens,n.budgetTokens),r=[["model",c.highlight(n.model)],["mindset",c.accent(n.mindset||"coder")],["host",c.muted(n.host)],["directory",c.muted(n.directory.replace(no.homedir(),"~"))],["context",`${s} ${c.muted(`${n.cacheFiles} files \xB7 ${n.cacheTokens}/${n.budgetTokens} tokens`)}`],["turns",c.muted(String(n.turnCount))],["status",t]];return`
182
+ `}function _e(n){return` ${c.error("\u2717")} ${n}`}function He(n,e){return` ${c.error("\u2717")} ${n}
183
+ ${c.warning("\u2192")} ${c.muted(e)}`}function Y(n){return` ${c.success("\u2713")} ${n}`}function fe(n){return` ${c.muted(n)}`}function j(n){return` ${c.warning("\u26A0")} ${n}`}function Qy(n,e){let s=Math.round(Math.min(n,e)/Math.max(e,1)*16),r=e>0?n/e:0;return(r>.85?c.error:r>.6?c.warning:c.success)("\u2588".repeat(s))+c.muted("\u2591".repeat(16-s))}function Su(n){let e=je(),t=n.connected?c.success("\u25CF connected"):c.error("\u25CB offline"),s=Qy(n.cacheTokens,n.budgetTokens),r=[["model",c.highlight(n.model)],["mindset",c.accent(n.mindset||"coder")],["host",c.muted(n.host)],["directory",c.muted(n.directory.replace(no.homedir(),"~"))],["context",`${s} ${c.muted(`${n.cacheFiles} files \xB7 ${n.cacheTokens}/${n.budgetTokens} tokens`)}`],["turns",c.muted(String(n.turnCount))],["status",t]];return`
184
184
  `+c.chrome("\u256D"+"\u2500".repeat(e-2)+"\u256E")+`
185
185
  ${c.accent("\u2726")} ${c.strong("Status")}
186
186
 
187
187
  `+Jy(r)+`
188
188
 
189
189
  `+c.chrome("\u2570"+"\u2500".repeat(e-2)+"\u256F")+`
190
- `}function _u(){let n=Ne(),e=Math.max(...to.map(r=>r.cmd.length+(r.arg?r.arg.length+1:0))),t=to.map(({cmd:r,arg:i,desc:o})=>{let a=r.length+(i?i.length+1:0),l=" ".repeat(e-a+3);return` ${c.primary(r)}${i?" "+c.muted(i):""}${l}${c.secondary(o)}`}),s=["",` ${c.accent("\u2726")} ${c.strong("Tips")}`,"",` ${c.muted("\u25B8")} Use ${c.highlight("#filename")} to reference files inline`,` ${c.muted("\u25B8")} Press ${c.highlight("Ctrl+C")} once to cancel current operation`,` ${c.muted("\u25B8")} Press ${c.highlight("Ctrl+C\xD72")} quickly to exit CLI`,` ${c.muted("\u25B8")} Use ${c.highlight("--auto")} flag to skip tool confirmations`,` ${c.muted("\u25B8")} All file edits are backed up to ${c.muted("~/.hablas/backup/")}`,` ${c.muted("\u25B8")} Serious engineering work is routed internally to the specialist team when needed`];return`
190
+ `}function _u(){let n=je(),e=Math.max(...to.map(r=>r.cmd.length+(r.arg?r.arg.length+1:0))),t=to.map(({cmd:r,arg:i,desc:o})=>{let a=r.length+(i?i.length+1:0),l=" ".repeat(e-a+3);return` ${c.primary(r)}${i?" "+c.muted(i):""}${l}${c.secondary(o)}`}),s=["",` ${c.accent("\u2726")} ${c.strong("Tips")}`,"",` ${c.muted("\u25B8")} Use ${c.highlight("#filename")} to reference files inline`,` ${c.muted("\u25B8")} Press ${c.highlight("Ctrl+C")} once to cancel current operation`,` ${c.muted("\u25B8")} Press ${c.highlight("Ctrl+C\xD72")} quickly to exit CLI`,` ${c.muted("\u25B8")} Use ${c.highlight("--auto")} flag to skip tool confirmations`,` ${c.muted("\u25B8")} All file edits are backed up to ${c.muted("~/.hablas/backup/")}`,` ${c.muted("\u25B8")} Serious engineering work is routed internally to the specialist team when needed`];return`
191
191
  `+c.chrome("\u256D"+"\u2500".repeat(n-2)+"\u256E")+`
192
192
  ${c.accent("\u2726")} ${c.strong("Commands")}
193
193
 
@@ -198,10 +198,10 @@ ${l}
198
198
 
199
199
  `+c.chrome("\u2570"+"\u2500".repeat(n-2)+"\u256F")+`
200
200
  `}function ro(n){let e=Math.floor(n.duration/6e4),t=Math.floor(n.duration%6e4/1e3),s=e>0?`${e}m ${t}s`:`${t}s`;return["",c.chrome("\u256D"+"\u2500".repeat(40)+"\u256E"),` ${c.accent("\u2726")} ${c.strong("Session Summary")}`,"",` ${c.muted("Turns")} ${c.secondary(String(n.turns))}`,` ${c.muted("Duration")} ${c.secondary(s)}`,` ${c.muted("Tool calls")} ${c.secondary(String(n.toolCalls))}`,"",c.chrome("\u2570"+"\u2500".repeat(40)+"\u256F"),"",` ${c.muted("Goodbye \u2014 hablas by Abdulmoin Hablas")}`,""].join(`
201
- `)}function Au(n,e){let t=Ne(),s=[];s.push(""),s.push(` ${c.chrome("\u256D"+"\u2500".repeat(t-4)+"\u256E")}`),s.push(` ${c.chrome("\u2502")} ${c.leader("\u2605")} ${c.strong("Hablas")} ${c.muted("\u2014 Execution Plan")}${" ".repeat(Math.max(0,t-35))}${c.chrome("\u2502")}`);let r=20,i=Math.round(e.percent/100*r),o=r-i,a=c.success("\u2588".repeat(i))+c.muted("\u2591".repeat(o));s.push(` ${c.chrome("\u2502")} ${a} ${c.muted(`${e.percent}%`)} ${c.muted(`(${e.done}/${e.total} tasks)`)}`),s.push(` ${c.chrome("\u251C"+"\u2500".repeat(t-4)+"\u2524")}`);for(let l=0;l<n.tasks.length;l++){let u=n.tasks[l],d=eb[u.status](Zy[u.status]),h=(u.assignee==="hablas"?c.leader:u.assignee==="bob"?c.architect:u.assignee==="alex"?c.engineer:u.assignee==="david"?c.analyst:u.assignee==="emma"?c.product:c.muted)(`@${u.assigneeName}`),m="";u.dependent_task_ids.length>0&&(m=c.muted(` \u2190 [${u.dependent_task_ids.join(", ")}]`));let p=c.secondary(u.description);s.push(` ${c.chrome("\u2502")} ${d} ${c.muted(`${u.task_id}.`)} ${h} ${c.muted("\u2192")} ${p}${m}`)}return s.push(` ${c.chrome("\u251C"+"\u2500".repeat(t-4)+"\u2524")}`),s.push(` ${c.chrome("\u2502")} ${c.muted("Strategy:")} ${c.highlight(n.strategy)} ${c.muted("\xB7")} ${c.muted(`${n.tasks.length} tasks`)}`),s.push(` ${c.chrome("\u2570"+"\u2500".repeat(t-4)+"\u256F")}`),s.push(""),s.join(`
202
- `)}function ku(n){let e=Ne(),t=[];t.push(""),t.push(` ${c.chrome("\u256D"+"\u2500".repeat(e-4)+"\u256E")}`),t.push(` ${c.chrome("\u2502")} ${c.warning("?")} ${c.strong("Clarification Needed")}`),t.push(` ${c.chrome("\u251C"+"\u2500".repeat(e-4)+"\u2524")}`),t.push(` ${c.chrome("\u2502")} ${c.secondary(n.question)}`),t.push(` ${c.chrome("\u2502")}`);for(let s of n.choices)t.push(` ${c.chrome("\u2502")} ${c.accent(s.label+")")} ${c.secondary(s.value)}`);return n.context&&(t.push(` ${c.chrome("\u2502")}`),t.push(` ${c.chrome("\u2502")} ${c.muted(`Context: "${n.context.slice(0,60)}${n.context.length>60?"...":""}"`)}`)),t.push(` ${c.chrome("\u2570"+"\u2500".repeat(e-4)+"\u256F")}`),t.push(""),t.join(`
203
- `)}var no,Js,Jn,uu,gn,du,fu,Ne,c,Ke,to,Zy,eb,io,yn=L(()=>{"use strict";no=O(require("os")),Js=O(require("fs")),Jn=O(require("path"));uu=Vy(),gn=process.stdout.isTTY===!0,du=process.env.NO_COLOR!==void 0||process.env.TERM==="dumb",fu=process.stdout.columns||80;gn&&process.stdout.on("resize",()=>{fu=process.stdout.columns||80});Ne=()=>Math.min(fu-4,100);c={primary:n=>he(n,"\x1B[38;5;253m"),secondary:n=>he(n,"\x1B[38;5;247m"),muted:n=>he(n,"\x1B[38;5;242m"),strong:n=>he(n,"\x1B[1;38;5;255m"),accent:n=>he(n,"\x1B[38;5;145m"),highlight:n=>he(n,"\x1B[38;5;231m"),success:n=>he(n,"\x1B[38;5;108m"),error:n=>he(n,"\x1B[38;5;167m"),warning:n=>he(n,"\x1B[38;5;179m"),info:n=>he(n,"\x1B[38;5;110m"),codeBlock:n=>he(n,"\x1B[38;5;188m"),lineNum:n=>he(n,"\x1B[38;5;239m"),border:n=>he(n,"\x1B[38;5;237m"),chrome:n=>he(n,"\x1B[38;5;235m"),added:n=>he(n,"\x1B[38;5;108m"),removed:n=>he(n,"\x1B[38;5;167m"),hunk:n=>he(n,"\x1B[38;5;145m"),leader:n=>he(n,"\x1B[38;5;179m"),architect:n=>he(n,"\x1B[38;5;250m"),engineer:n=>he(n,"\x1B[38;5;145m"),analyst:n=>he(n,"\x1B[38;5;108m"),product:n=>he(n,"\x1B[38;5;180m")};Ke=class{frames=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];interval=null;frameIndex=0;message;startTime=0;constructor(e="Thinking"){this.message=e}start(){if(this.startTime=Date.now(),!gn){process.stderr.write(` ${this.message}...
204
- `);return}this.interval=setInterval(()=>{let e=((Date.now()-this.startTime)/1e3).toFixed(1),t=c.accent(this.frames[this.frameIndex]);process.stdout.write(`\r ${t} ${c.muted(this.message)} ${c.muted(e+"s")}`),this.frameIndex=(this.frameIndex+1)%this.frames.length},80)}setPhase(e){this.message=e}updateMessage(e){this.message=e}stop(e){this.interval&&(clearInterval(this.interval),this.interval=null);let t=Date.now()-this.startTime;if(gn&&process.stdout.write("\r"+" ".repeat(80)+"\r"),e&&gn){let s=c.muted(`${t}ms`);console.log(` ${c.muted("\xB7")} ${c.secondary(e)} ${s}`)}}};to=[{cmd:"/help",desc:"Show this help"},{cmd:"/about",desc:"Developer info & links"},{cmd:"/version",desc:"Version & runtime info"},{cmd:"/team",desc:"Show agent team roster"},{cmd:"/model",arg:"<name>",desc:"Switch model"},{cmd:"/models",arg:"[search|page]",desc:"Browse all models"},{cmd:"/tree",desc:"Project file tree"},{cmd:"/status",desc:"Agent status & context"},{cmd:"/history",arg:"[n]",desc:"Show last n turns"},{cmd:"/undo",arg:"[path]",desc:"Restore last backup"},{cmd:"/clear",desc:"Clear session & context"},{cmd:"/config",desc:"Show current config"},{cmd:"/quit",desc:"Exit hablas"}];Zy={pending:"\u25CB",running:"\u25C9",done:"\u2713",failed:"\u2717",skipped:"\u2013"},eb={pending:c.muted,running:c.accent,done:c.success,failed:c.error,skipped:c.muted};io=to.map(n=>n.cmd).concat(["/exit","/addmodel","/listmodels","/removemodel","/usemodel","/provider","/task","/memory","/mindset","/mindsets","/alias","/doctor","/plugins","/team","/agents","/delegate"])});function oo(n){let e=et.join(n,"package.json");if(He.existsSync(e))try{let t=JSON.parse(He.readFileSync(e,"utf-8")),s={...t.dependencies,...t.devDependencies};if(s.vitest)return"vitest";if(s.jest||s["@jest/core"])return"jest";if(s.mocha)return"mocha"}catch{}if(He.existsSync(et.join(n,"pytest.ini"))||He.existsSync(et.join(n,"pyproject.toml"))||He.existsSync(et.join(n,"setup.py")))try{let t=He.existsSync(et.join(n,"requirements.txt"))?He.readFileSync(et.join(n,"requirements.txt"),"utf-8"):"",s=He.existsSync(et.join(n,"pyproject.toml"))?He.readFileSync(et.join(n,"pyproject.toml"),"utf-8"):"";if(t.includes("pytest")||s.includes("pytest"))return"pytest"}catch{}return He.existsSync(et.join(n,"go.mod"))?"go":He.existsSync(et.join(n,"Cargo.toml"))?"cargo":"unknown"}function tb(n,e){switch(n){case"vitest":return e?`npx vitest run ${e}`:"npx vitest run";case"jest":return e?`npx jest ${e} --no-coverage`:"npx jest --no-coverage";case"mocha":return e?`npx mocha ${e}`:"npx mocha";case"pytest":return e?`python -m pytest ${e} -v`:"python -m pytest -v";case"go":return e?`go test ./${e}`:"go test ./...";case"cargo":return"cargo test";default:return"npm test"}}function Cu(n,e){let t=oo(n),s=tb(t,e),r=Date.now(),i="",o="",a=!1;try{i=(0,$u.execSync)(s,{cwd:n,encoding:"utf-8",timeout:12e4,maxBuffer:5*1024*1024,stdio:["pipe","pipe","pipe"]}),a=!0}catch(m){i=m.stdout||"",o=m.stderr||m.message||"",a=!1}let l=Date.now()-r,{totalTests:u,passedTests:d,failedTests:f,failedTestNames:h}=nb(i+`
201
+ `)}function Au(n,e){let t=je(),s=[];s.push(""),s.push(` ${c.chrome("\u256D"+"\u2500".repeat(t-4)+"\u256E")}`),s.push(` ${c.chrome("\u2502")} ${c.leader("\u2605")} ${c.strong("Hablas")} ${c.muted("\u2014 Execution Plan")}${" ".repeat(Math.max(0,t-35))}${c.chrome("\u2502")}`);let r=20,i=Math.round(e.percent/100*r),o=r-i,a=c.success("\u2588".repeat(i))+c.muted("\u2591".repeat(o));s.push(` ${c.chrome("\u2502")} ${a} ${c.muted(`${e.percent}%`)} ${c.muted(`(${e.done}/${e.total} tasks)`)}`),s.push(` ${c.chrome("\u251C"+"\u2500".repeat(t-4)+"\u2524")}`);for(let l=0;l<n.tasks.length;l++){let u=n.tasks[l],d=eb[u.status](Zy[u.status]),h=(u.assignee==="hablas"?c.leader:u.assignee==="bob"?c.architect:u.assignee==="alex"?c.engineer:u.assignee==="david"?c.analyst:u.assignee==="emma"?c.product:c.muted)(`@${u.assigneeName}`),m="";u.dependent_task_ids.length>0&&(m=c.muted(` \u2190 [${u.dependent_task_ids.join(", ")}]`));let p=c.secondary(u.description);s.push(` ${c.chrome("\u2502")} ${d} ${c.muted(`${u.task_id}.`)} ${h} ${c.muted("\u2192")} ${p}${m}`)}return s.push(` ${c.chrome("\u251C"+"\u2500".repeat(t-4)+"\u2524")}`),s.push(` ${c.chrome("\u2502")} ${c.muted("Strategy:")} ${c.highlight(n.strategy)} ${c.muted("\xB7")} ${c.muted(`${n.tasks.length} tasks`)}`),s.push(` ${c.chrome("\u2570"+"\u2500".repeat(t-4)+"\u256F")}`),s.push(""),s.join(`
202
+ `)}function ku(n){let e=je(),t=[];t.push(""),t.push(` ${c.chrome("\u256D"+"\u2500".repeat(e-4)+"\u256E")}`),t.push(` ${c.chrome("\u2502")} ${c.warning("?")} ${c.strong("Clarification Needed")}`),t.push(` ${c.chrome("\u251C"+"\u2500".repeat(e-4)+"\u2524")}`),t.push(` ${c.chrome("\u2502")} ${c.secondary(n.question)}`),t.push(` ${c.chrome("\u2502")}`);for(let s of n.choices)t.push(` ${c.chrome("\u2502")} ${c.accent(s.label+")")} ${c.secondary(s.value)}`);return n.context&&(t.push(` ${c.chrome("\u2502")}`),t.push(` ${c.chrome("\u2502")} ${c.muted(`Context: "${n.context.slice(0,60)}${n.context.length>60?"...":""}"`)}`)),t.push(` ${c.chrome("\u2570"+"\u2500".repeat(e-4)+"\u256F")}`),t.push(""),t.join(`
203
+ `)}var no,Js,Jn,uu,gn,du,fu,je,c,Ne,to,Zy,eb,io,yn=L(()=>{"use strict";no=O(require("os")),Js=O(require("fs")),Jn=O(require("path"));uu=Vy(),gn=process.stdout.isTTY===!0,du=process.env.NO_COLOR!==void 0||process.env.TERM==="dumb",fu=process.stdout.columns||80;gn&&process.stdout.on("resize",()=>{fu=process.stdout.columns||80});je=()=>Math.min(fu-4,100);c={primary:n=>he(n,"\x1B[38;5;253m"),secondary:n=>he(n,"\x1B[38;5;247m"),muted:n=>he(n,"\x1B[38;5;242m"),strong:n=>he(n,"\x1B[1;38;5;255m"),accent:n=>he(n,"\x1B[38;5;145m"),highlight:n=>he(n,"\x1B[38;5;231m"),success:n=>he(n,"\x1B[38;5;108m"),error:n=>he(n,"\x1B[38;5;167m"),warning:n=>he(n,"\x1B[38;5;179m"),info:n=>he(n,"\x1B[38;5;110m"),codeBlock:n=>he(n,"\x1B[38;5;188m"),lineNum:n=>he(n,"\x1B[38;5;239m"),border:n=>he(n,"\x1B[38;5;237m"),chrome:n=>he(n,"\x1B[38;5;235m"),added:n=>he(n,"\x1B[38;5;108m"),removed:n=>he(n,"\x1B[38;5;167m"),hunk:n=>he(n,"\x1B[38;5;145m"),leader:n=>he(n,"\x1B[38;5;179m"),architect:n=>he(n,"\x1B[38;5;250m"),engineer:n=>he(n,"\x1B[38;5;145m"),analyst:n=>he(n,"\x1B[38;5;108m"),product:n=>he(n,"\x1B[38;5;180m")};Ne=class{frames=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];interval=null;frameIndex=0;message;startTime=0;constructor(e="Thinking"){this.message=e}start(){if(this.startTime=Date.now(),!gn){process.stderr.write(` ${this.message}...
204
+ `);return}this.interval=setInterval(()=>{let e=((Date.now()-this.startTime)/1e3).toFixed(1),t=c.accent(this.frames[this.frameIndex]);process.stdout.write(`\r ${t} ${c.muted(this.message)} ${c.muted(e+"s")}`),this.frameIndex=(this.frameIndex+1)%this.frames.length},80)}setPhase(e){this.message=e}updateMessage(e){this.message=e}stop(e){this.interval&&(clearInterval(this.interval),this.interval=null);let t=Date.now()-this.startTime;if(gn&&process.stdout.write("\r"+" ".repeat(80)+"\r"),e&&gn){let s=c.muted(`${t}ms`);console.log(` ${c.muted("\xB7")} ${c.secondary(e)} ${s}`)}}};to=[{cmd:"/help",desc:"Show this help"},{cmd:"/about",desc:"Developer info & links"},{cmd:"/version",desc:"Version & runtime info"},{cmd:"/team",desc:"Show agent team roster"},{cmd:"/model",arg:"<name>",desc:"Switch model"},{cmd:"/models",arg:"[search|page]",desc:"Browse all models"},{cmd:"/tree",desc:"Project file tree"},{cmd:"/status",desc:"Agent status & context"},{cmd:"/history",arg:"[n]",desc:"Show last n turns"},{cmd:"/undo",arg:"[path]",desc:"Restore last backup"},{cmd:"/clear",desc:"Clear session & context"},{cmd:"/config",desc:"Show current config"},{cmd:"/quit",desc:"Exit hablas"}];Zy={pending:"\u25CB",running:"\u25C9",done:"\u2713",failed:"\u2717",skipped:"\u2013"},eb={pending:c.muted,running:c.accent,done:c.success,failed:c.error,skipped:c.muted};io=to.map(n=>n.cmd).concat(["/exit","/addmodel","/listmodels","/removemodel","/usemodel","/provider","/task","/memory","/mindset","/mindsets","/alias","/doctor","/plugins","/team","/agents","/delegate"])});function oo(n){let e=et.join(n,"package.json");if(Be.existsSync(e))try{let t=JSON.parse(Be.readFileSync(e,"utf-8")),s={...t.dependencies,...t.devDependencies};if(s.vitest)return"vitest";if(s.jest||s["@jest/core"])return"jest";if(s.mocha)return"mocha"}catch{}if(Be.existsSync(et.join(n,"pytest.ini"))||Be.existsSync(et.join(n,"pyproject.toml"))||Be.existsSync(et.join(n,"setup.py")))try{let t=Be.existsSync(et.join(n,"requirements.txt"))?Be.readFileSync(et.join(n,"requirements.txt"),"utf-8"):"",s=Be.existsSync(et.join(n,"pyproject.toml"))?Be.readFileSync(et.join(n,"pyproject.toml"),"utf-8"):"";if(t.includes("pytest")||s.includes("pytest"))return"pytest"}catch{}return Be.existsSync(et.join(n,"go.mod"))?"go":Be.existsSync(et.join(n,"Cargo.toml"))?"cargo":"unknown"}function tb(n,e){switch(n){case"vitest":return e?`npx vitest run ${e}`:"npx vitest run";case"jest":return e?`npx jest ${e} --no-coverage`:"npx jest --no-coverage";case"mocha":return e?`npx mocha ${e}`:"npx mocha";case"pytest":return e?`python -m pytest ${e} -v`:"python -m pytest -v";case"go":return e?`go test ./${e}`:"go test ./...";case"cargo":return"cargo test";default:return"npm test"}}function Cu(n,e){let t=oo(n),s=tb(t,e),r=Date.now(),i="",o="",a=!1;try{i=(0,$u.execSync)(s,{cwd:n,encoding:"utf-8",timeout:12e4,maxBuffer:5*1024*1024,stdio:["pipe","pipe","pipe"]}),a=!0}catch(m){i=m.stdout||"",o=m.stderr||m.message||"",a=!1}let l=Date.now()-r,{totalTests:u,passedTests:d,failedTests:f,failedTestNames:h}=nb(i+`
205
205
  `+o,t);return{framework:t,command:s,passed:a,output:i.slice(0,5e3),errorOutput:o.slice(0,3e3),totalTests:u,passedTests:d,failedTests:f,duration:l,failedTestNames:h}}function nb(n,e){let t=0,s=0,r=0,i=[],o=n.split(`
206
206
  `);switch(e){case"jest":case"vitest":{for(let a of o){let l=a.match(/Tests:\s+(\d+)\s+passed.*?(\d+)\s+total/);if(l&&(s=parseInt(l[1]),t=parseInt(l[2]),r=t-s),a.match(/✕|FAIL|✗|×/)){let d=a.replace(/.*(?:✕|FAIL|✗|×)\s*/,"").trim();d&&i.push(d)}}break}case"pytest":{for(let a of o){let l=a.match(/(\d+)\s+passed.*?(\d+)\s+failed/);l&&(s=parseInt(l[1]),r=parseInt(l[2]),t=s+r);let u=a.match(/(\d+)\s+passed/);u&&t===0&&(s=parseInt(u[1]),t=s),a.includes("FAILED")&&i.push(a.trim())}break}case"go":{for(let a of o)a.includes("--- PASS")&&s++,a.includes("--- FAIL")&&(r++,i.push(a.replace("--- FAIL:","").trim()));t=s+r;break}default:{for(let a of o)/\bpass(ed|ing)?\b/i.test(a)&&/\d/.test(a)&&s++,/\bfail(ed|ing|ure)?\b/i.test(a)&&/\d/.test(a)&&r++;t=s+r}}return{totalTests:t,passedTests:s,failedTests:r,failedTestNames:i}}function Eu(n){let e=[],t=n.passed?"\u2713 PASSED":"\u2717 FAILED",s=(n.duration/1e3).toFixed(1);if(e.push(` ${n.passed?"\u2713":"\u2717"} ${t} (${n.framework}) \u2014 ${s}s`),e.push(` Command: ${n.command}`),n.totalTests>0&&e.push(` Tests: ${n.passedTests} passed, ${n.failedTests} failed, ${n.totalTests} total`),n.failedTestNames.length>0){e.push(""),e.push(" Failed tests:");for(let r of n.failedTestNames.slice(0,10))e.push(` \u2717 ${r}`)}return e.join(`
207
207
  `)}function Tu(n){return`The following tests are failing. Analyze the error output and fix the code.
@@ -224,17 +224,17 @@ Instructions:
224
224
  1. Read the failing test files to understand what's expected
225
225
  2. Read the source files being tested
226
226
  3. Fix the source code (not the tests) to make them pass
227
- 4. After fixing, explain what was wrong and what you changed`}var $u,He,et,Ru=L(()=>{"use strict";$u=require("child_process"),He=O(require("fs")),et=O(require("path"))});function Qs(n){let e=Buffer.from(n).toString("base64url").slice(0,16);return Me.join(sb,e)}async function Pu(n,e,t){let s=Qs(n);ke.existsSync(s)||ke.mkdirSync(s,{recursive:!0});let r=`cp_${Date.now()}`,i=[];for(let f of t){let h=Me.resolve(n,f);if(ke.existsSync(h))try{let m=await Ct.readFile(h,"utf-8");i.push({path:f,content:m})}catch{}}try{let f=(0,Xs.execSync)("git ls-files -m",{cwd:n,encoding:"utf-8",timeout:5e3}).split(`
227
+ 4. After fixing, explain what was wrong and what you changed`}var $u,Be,et,Ru=L(()=>{"use strict";$u=require("child_process"),Be=O(require("fs")),et=O(require("path"))});function Qs(n){let e=Buffer.from(n).toString("base64url").slice(0,16);return Me.join(sb,e)}async function Pu(n,e,t){let s=Qs(n);ke.existsSync(s)||ke.mkdirSync(s,{recursive:!0});let r=`cp_${Date.now()}`,i=[];for(let f of t){let h=Me.resolve(n,f);if(ke.existsSync(h))try{let m=await Ct.readFile(h,"utf-8");i.push({path:f,content:m})}catch{}}try{let f=(0,Xs.execSync)("git ls-files -m",{cwd:n,encoding:"utf-8",timeout:5e3}).split(`
228
228
  `).filter(Boolean);for(let h of f)if(!i.find(m=>m.path===h))try{let m=await Ct.readFile(Me.resolve(n,h),"utf-8");i.push({path:h,content:m})}catch{}}catch{}let o,a;try{o=(0,Xs.execSync)("git branch --show-current",{cwd:n,encoding:"utf-8",timeout:5e3}).trim(),a=(0,Xs.execSync)("git rev-parse --short HEAD",{cwd:n,encoding:"utf-8",timeout:5e3}).trim()}catch{}let l={id:r,label:e,timestamp:Date.now(),files:i,gitBranch:o,gitHash:a,projectPath:n},u=Me.join(s,`${r}.json`);await Ct.writeFile(u,JSON.stringify(l,null,2),"utf-8");let d=ke.readdirSync(s).filter(f=>f.endsWith(".json")).sort();if(d.length>20)for(let f of d.slice(0,d.length-20))try{ke.unlinkSync(Me.join(s,f))}catch{}return{id:r,label:e,timestamp:l.timestamp,fileCount:i.length,projectPath:n}}function Mu(n){let e=Qs(n);if(!ke.existsSync(e))return[];let t=ke.readdirSync(e).filter(r=>r.endsWith(".json")).sort().reverse(),s=[];for(let r of t)try{let i=JSON.parse(ke.readFileSync(Me.join(e,r),"utf-8"));s.push({id:i.id,label:i.label,timestamp:i.timestamp,fileCount:i.files.length,projectPath:i.projectPath})}catch{}return s}async function Iu(n,e){let t=Qs(n),s=Me.join(t,`${e}.json`);if(!ke.existsSync(s))return{success:!1,filesRestored:0,error:`Checkpoint ${e} not found`};try{let r=JSON.parse(await Ct.readFile(s,"utf-8")),i=0;for(let o of r.files)try{let a=Me.resolve(n,o.path);await Ct.mkdir(Me.dirname(a),{recursive:!0}),await Ct.writeFile(a,o.content,"utf-8"),i++}catch{}return{success:!0,filesRestored:i}}catch(r){return{success:!1,filesRestored:0,error:r.message}}}function Du(n,e){let t=Qs(n),s=Me.join(t,`${e}.json`);try{if(ke.existsSync(s))return ke.unlinkSync(s),!0}catch{}return!1}function Lu(n){if(n.length===0)return" No checkpoints saved";let e=[];for(let t of n){let s=new Date(t.timestamp).toLocaleString();e.push(` ${t.id} "${t.label}" (${t.fileCount} files, ${s})`)}return e.join(`
229
- `)}var ke,Ct,Me,Ou,Xs,sb,Fu=L(()=>{"use strict";ke=O(require("fs")),Ct=O(require("fs/promises")),Me=O(require("path")),Ou=O(require("os")),Xs=require("child_process"),sb=Me.join(Ou.homedir(),".hablas","checkpoints")});function Et(){}function rb(n,e,t,s,r){for(var i=[],o;e;)i.push(e),o=e.previousComponent,delete e.previousComponent,e=o;i.reverse();for(var a=0,l=i.length,u=0,d=0;a<l;a++){var f=i[a];if(f.removed){if(f.value=n.join(s.slice(d,d+f.count)),d+=f.count,a&&i[a-1].added){var m=i[a-1];i[a-1]=i[a],i[a]=m}}else{if(!f.added&&r){var h=t.slice(u,u+f.count);h=h.map(function(g,S){var w=s[d+S];return w.length>g.length?w:g}),f.value=n.join(h)}else f.value=n.join(t.slice(u,u+f.count));u+=f.count,f.added||(d+=f.count)}}var p=i[l-1];return l>1&&typeof p.value=="string"&&(p.added||p.removed)&&n.equals("",p.value)&&(i[l-2].value+=p.value,i.pop()),i}function ib(n,e,t){return fo.diff(n,e,t)}function Zs(n){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Zs=function(e){return typeof e}:Zs=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Zs(n)}function ao(n){return lb(n)||cb(n)||ub(n)||db()}function lb(n){if(Array.isArray(n))return lo(n)}function cb(n){if(typeof Symbol<"u"&&Symbol.iterator in Object(n))return Array.from(n)}function ub(n,e){if(n){if(typeof n=="string")return lo(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);if(t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set")return Array.from(n);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return lo(n,e)}}function lo(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,s=new Array(e);t<e;t++)s[t]=n[t];return s}function db(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
229
+ `)}var ke,Ct,Me,Ou,Xs,sb,Fu=L(()=>{"use strict";ke=O(require("fs")),Ct=O(require("fs/promises")),Me=O(require("path")),Ou=O(require("os")),Xs=require("child_process"),sb=Me.join(Ou.homedir(),".hablas","checkpoints")});function Et(){}function rb(n,e,t,s,r){for(var i=[],o;e;)i.push(e),o=e.previousComponent,delete e.previousComponent,e=o;i.reverse();for(var a=0,l=i.length,u=0,d=0;a<l;a++){var f=i[a];if(f.removed){if(f.value=n.join(s.slice(d,d+f.count)),d+=f.count,a&&i[a-1].added){var m=i[a-1];i[a-1]=i[a],i[a]=m}}else{if(!f.added&&r){var h=t.slice(u,u+f.count);h=h.map(function(g,S){var x=s[d+S];return x.length>g.length?x:g}),f.value=n.join(h)}else f.value=n.join(t.slice(u,u+f.count));u+=f.count,f.added||(d+=f.count)}}var p=i[l-1];return l>1&&typeof p.value=="string"&&(p.added||p.removed)&&n.equals("",p.value)&&(i[l-2].value+=p.value,i.pop()),i}function ib(n,e,t){return fo.diff(n,e,t)}function Zs(n){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Zs=function(e){return typeof e}:Zs=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Zs(n)}function ao(n){return lb(n)||cb(n)||ub(n)||db()}function lb(n){if(Array.isArray(n))return lo(n)}function cb(n){if(typeof Symbol<"u"&&Symbol.iterator in Object(n))return Array.from(n)}function ub(n,e){if(n){if(typeof n=="string")return lo(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);if(t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set")return Array.from(n);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return lo(n,e)}}function lo(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,s=new Array(e);t<e;t++)s[t]=n[t];return s}function db(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
230
230
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function co(n,e,t,s,r){e=e||[],t=t||[],s&&(n=s(r,n));var i;for(i=0;i<e.length;i+=1)if(e[i]===n)return t[i];var o;if(fb.call(n)==="[object Array]"){for(e.push(n),o=new Array(n.length),t.push(o),i=0;i<n.length;i+=1)o[i]=co(n[i],e,t,s,r);return e.pop(),t.pop(),o}if(n&&n.toJSON&&(n=n.toJSON()),Zs(n)==="object"&&n!==null){e.push(n),o={},t.push(o);var a=[],l;for(l in n)n.hasOwnProperty(l)&&a.push(l);for(a.sort(),i=0;i<a.length;i+=1)l=a[i],o[l]=co(n[l],e,t,s,l);e.pop(),t.pop()}else o=n;return o}function pb(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=n.split(/\r\n|[\n\v\f\r\x85]/),s=n.match(/\r\n|[\n\v\f\r\x85]/g)||[],r=[],i=0;function o(){var u={};for(r.push(u);i<t.length;){var d=t[i];if(/^(\-\-\-|\+\+\+|@@)\s/.test(d))break;var f=/^(?:Index:|diff(?: -r \w+)+)\s+/.exec(d);f&&(u.index=d.substring(f[0].length).trim()),i++}for(a(u),a(u),u.hunks=[];i<t.length;){var h=t[i];if(/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(h))break;if(/^@@/.test(h))u.hunks.push(l());else{if(h&&e.strict)throw new Error("Unknown line "+(i+1)+" "+JSON.stringify(h));i++}}}function a(u){var d=/^(---|\+\+\+)\s+/.exec(t[i]);if(d){var f=d[1]==="---"?"old":"new",h=t[i].substring(3).trim().split(" ",2),m=h[0].replace(/\\\\/g,"\\");m.startsWith('"')&&m.endsWith('"')&&(m=m.substr(1,m.length-2)),u[f+"FileName"]=m,u[f+"Header"]=(h[1]||"").trim(),i++}}function l(){var u=i,d=t[i++],f=d.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/),h={oldStart:+f[1],oldLines:typeof f[2]>"u"?1:+f[2],newStart:+f[3],newLines:typeof f[4]>"u"?1:+f[4],lines:[],linedelimiters:[]};h.oldLines===0&&(h.oldStart+=1),h.newLines===0&&(h.newStart+=1);for(var m=0,p=0;i<t.length&&!(t[i].indexOf("--- ")===0&&i+2<t.length&&t[i+1].indexOf("+++ ")===0&&t[i+2].indexOf("@@")===0);i++){var g=t[i].length==0&&i!=t.length-1?" ":t[i][0];if(g==="+"||g==="-"||g===" "||g==="\\")h.lines.push(t[i]),h.linedelimiters.push(s[i]||`
231
- `),g==="+"?m++:g==="-"?p++:g===" "&&(m++,p++);else break}if(!m&&h.newLines===1&&(h.newLines=0),!p&&h.oldLines===1&&(h.oldLines=0),e.strict){if(m!==h.newLines)throw new Error("Added line count did not match for hunk at line "+(u+1));if(p!==h.oldLines)throw new Error("Removed line count did not match for hunk at line "+(u+1))}return h}for(;i<t.length;)o();return r}function hb(n,e,t){var s=!0,r=!1,i=!1,o=1;return function a(){if(s&&!i){if(r?o++:s=!1,n+o<=t)return o;i=!0}if(!r)return i||(s=!0),e<=n-o?-o++:(r=!0,a())}}function Bu(n,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof e=="string"&&(e=pb(e)),Array.isArray(e)){if(e.length>1)throw new Error("applyPatch only works with a single input.");e=e[0]}var s=n.split(/\r\n|[\n\v\f\r\x85]/),r=n.match(/\r\n|[\n\v\f\r\x85]/g)||[],i=e.hunks,o=t.compareLine||function(E,A,V,U){return A===U},a=0,l=t.fuzzFactor||0,u=0,d=0,f,h;function m(E,A){for(var V=0;V<E.lines.length;V++){var U=E.lines[V],Z=U.length>0?U[0]:" ",te=U.length>0?U.substr(1):U;if(Z===" "||Z==="-"){if(!o(A+1,s[A],Z,te)&&(a++,a>l))return!1;A++}}return!0}for(var p=0;p<i.length;p++){for(var g=i[p],S=s.length-g.oldLines,w=0,$=d+g.oldStart-1,k=hb($,u,S);w!==void 0;w=k())if(m(g,$+w)){g.offset=d+=w;break}if(w===void 0)return!1;u=g.offset+g.oldStart+g.oldLines}for(var y=0,v=0;v<i.length;v++){var b=i[v],x=b.oldStart+b.offset+y-1;y+=b.newLines-b.oldLines;for(var _=0;_<b.lines.length;_++){var T=b.lines[_],P=T.length>0?T[0]:" ",C=T.length>0?T.substr(1):T,F=b.linedelimiters&&b.linedelimiters[_]||`
232
- `;if(P===" ")x++;else if(P==="-")s.splice(x,1),r.splice(x,1);else if(P==="+")s.splice(x,0,C),r.splice(x,0,F),x++;else if(P==="\\"){var H=b.lines[_-1]?b.lines[_-1][0]:null;H==="+"?f=!0:H==="-"&&(h=!0)}}}if(f)for(;!s[s.length-1];)s.pop(),r.pop();else h&&(s.push(""),r.push(`
233
- `));for(var W=0;W<s.length-1;W++)s[W]=s[W]+r[W];return s.join("")}function mb(n,e,t,s,r,i,o){o||(o={}),typeof o.context>"u"&&(o.context=4);var a=ib(t,s,o);if(!a)return;a.push({value:"",lines:[]});function l(w){return w.map(function($){return" "+$})}for(var u=[],d=0,f=0,h=[],m=1,p=1,g=function($){var k=a[$],y=k.lines||k.value.replace(/\n$/,"").split(`
234
- `);if(k.lines=y,k.added||k.removed){var v;if(!d){var b=a[$-1];d=m,f=p,b&&(h=o.context>0?l(b.lines.slice(-o.context)):[],d-=h.length,f-=h.length)}(v=h).push.apply(v,ao(y.map(function(W){return(k.added?"+":"-")+W}))),k.added?p+=y.length:m+=y.length}else{if(d)if(y.length<=o.context*2&&$<a.length-2){var x;(x=h).push.apply(x,ao(l(y)))}else{var _,T=Math.min(y.length,o.context);(_=h).push.apply(_,ao(l(y.slice(0,T))));var P={oldStart:d,oldLines:m-d+T,newStart:f,newLines:p-f+T,lines:h};if($>=a.length-2&&y.length<=o.context){var C=/\n$/.test(t),F=/\n$/.test(s),H=y.length==0&&h.length>P.oldLines;!C&&H&&t.length>0&&h.splice(P.oldLines,0,"\"),(!C&&!H||!F)&&h.push("\")}u.push(P),d=0,f=0,h=[]}m+=y.length,p+=y.length}},S=0;S<a.length;S++)g(S);return{oldFileName:n,newFileName:e,oldHeader:r,newHeader:i,hunks:u}}function Uu(n){if(Array.isArray(n))return n.map(Uu).join(`
231
+ `),g==="+"?m++:g==="-"?p++:g===" "&&(m++,p++);else break}if(!m&&h.newLines===1&&(h.newLines=0),!p&&h.oldLines===1&&(h.oldLines=0),e.strict){if(m!==h.newLines)throw new Error("Added line count did not match for hunk at line "+(u+1));if(p!==h.oldLines)throw new Error("Removed line count did not match for hunk at line "+(u+1))}return h}for(;i<t.length;)o();return r}function hb(n,e,t){var s=!0,r=!1,i=!1,o=1;return function a(){if(s&&!i){if(r?o++:s=!1,n+o<=t)return o;i=!0}if(!r)return i||(s=!0),e<=n-o?-o++:(r=!0,a())}}function Bu(n,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof e=="string"&&(e=pb(e)),Array.isArray(e)){if(e.length>1)throw new Error("applyPatch only works with a single input.");e=e[0]}var s=n.split(/\r\n|[\n\v\f\r\x85]/),r=n.match(/\r\n|[\n\v\f\r\x85]/g)||[],i=e.hunks,o=t.compareLine||function(E,A,V,U){return A===U},a=0,l=t.fuzzFactor||0,u=0,d=0,f,h;function m(E,A){for(var V=0;V<E.lines.length;V++){var U=E.lines[V],Z=U.length>0?U[0]:" ",te=U.length>0?U.substr(1):U;if(Z===" "||Z==="-"){if(!o(A+1,s[A],Z,te)&&(a++,a>l))return!1;A++}}return!0}for(var p=0;p<i.length;p++){for(var g=i[p],S=s.length-g.oldLines,x=0,$=d+g.oldStart-1,k=hb($,u,S);x!==void 0;x=k())if(m(g,$+x)){g.offset=d+=x;break}if(x===void 0)return!1;u=g.offset+g.oldStart+g.oldLines}for(var y=0,b=0;b<i.length;b++){var v=i[b],w=v.oldStart+v.offset+y-1;y+=v.newLines-v.oldLines;for(var _=0;_<v.lines.length;_++){var T=v.lines[_],P=T.length>0?T[0]:" ",C=T.length>0?T.substr(1):T,F=v.linedelimiters&&v.linedelimiters[_]||`
232
+ `;if(P===" ")w++;else if(P==="-")s.splice(w,1),r.splice(w,1);else if(P==="+")s.splice(w,0,C),r.splice(w,0,F),w++;else if(P==="\\"){var H=v.lines[_-1]?v.lines[_-1][0]:null;H==="+"?f=!0:H==="-"&&(h=!0)}}}if(f)for(;!s[s.length-1];)s.pop(),r.pop();else h&&(s.push(""),r.push(`
233
+ `));for(var W=0;W<s.length-1;W++)s[W]=s[W]+r[W];return s.join("")}function mb(n,e,t,s,r,i,o){o||(o={}),typeof o.context>"u"&&(o.context=4);var a=ib(t,s,o);if(!a)return;a.push({value:"",lines:[]});function l(x){return x.map(function($){return" "+$})}for(var u=[],d=0,f=0,h=[],m=1,p=1,g=function($){var k=a[$],y=k.lines||k.value.replace(/\n$/,"").split(`
234
+ `);if(k.lines=y,k.added||k.removed){var b;if(!d){var v=a[$-1];d=m,f=p,v&&(h=o.context>0?l(v.lines.slice(-o.context)):[],d-=h.length,f-=h.length)}(b=h).push.apply(b,ao(y.map(function(W){return(k.added?"+":"-")+W}))),k.added?p+=y.length:m+=y.length}else{if(d)if(y.length<=o.context*2&&$<a.length-2){var w;(w=h).push.apply(w,ao(l(y)))}else{var _,T=Math.min(y.length,o.context);(_=h).push.apply(_,ao(l(y.slice(0,T))));var P={oldStart:d,oldLines:m-d+T,newStart:f,newLines:p-f+T,lines:h};if($>=a.length-2&&y.length<=o.context){var C=/\n$/.test(t),F=/\n$/.test(s),H=y.length==0&&h.length>P.oldLines;!C&&H&&t.length>0&&h.splice(P.oldLines,0,"\"),(!C&&!H||!F)&&h.push("\")}u.push(P),d=0,f=0,h=[]}m+=y.length,p+=y.length}},S=0;S<a.length;S++)g(S);return{oldFileName:n,newFileName:e,oldHeader:r,newHeader:i,hunks:u}}function Uu(n){if(Array.isArray(n))return n.map(Uu).join(`
235
235
  `);var e=[];n.oldFileName==n.newFileName&&e.push("Index: "+n.oldFileName),e.push("==================================================================="),e.push("--- "+n.oldFileName+(typeof n.oldHeader>"u"?"":" "+n.oldHeader)),e.push("+++ "+n.newFileName+(typeof n.newHeader>"u"?"":" "+n.newHeader));for(var t=0;t<n.hunks.length;t++){var s=n.hunks[t];s.oldLines===0&&(s.oldStart-=1),s.newLines===0&&(s.newStart-=1),e.push("@@ -"+s.oldStart+","+s.oldLines+" +"+s.newStart+","+s.newLines+" @@"),e.push.apply(e,s.lines)}return e.join(`
236
236
  `)+`
237
- `}function gb(n,e,t,s,r,i,o){return Uu(mb(n,e,t,s,r,i,o))}function qu(n,e,t,s,r,i){return gb(n,n,e,t,s,r,i)}var qC,Nu,ju,Hu,fo,ob,ab,fb,Xn,uo,Ku=L(()=>{Et.prototype={diff:function(e,t){var s,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=r.callback;typeof r=="function"&&(i=r,r={}),this.options=r;var o=this;function a(y){return i?(setTimeout(function(){i(void 0,y)},0),!0):y}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var l=t.length,u=e.length,d=1,f=l+u;r.maxEditLength&&(f=Math.min(f,r.maxEditLength));var h=(s=r.timeout)!==null&&s!==void 0?s:1/0,m=Date.now()+h,p=[{oldPos:-1,lastComponent:void 0}],g=this.extractCommon(p[0],t,e,0);if(p[0].oldPos+1>=u&&g+1>=l)return a([{value:this.join(t),count:t.length}]);var S=-1/0,w=1/0;function $(){for(var y=Math.max(S,-d);y<=Math.min(w,d);y+=2){var v=void 0,b=p[y-1],x=p[y+1];b&&(p[y-1]=void 0);var _=!1;if(x){var T=x.oldPos-y;_=x&&0<=T&&T<l}var P=b&&b.oldPos+1<u;if(!_&&!P){p[y]=void 0;continue}if(!P||_&&b.oldPos+1<x.oldPos?v=o.addToPath(x,!0,void 0,0):v=o.addToPath(b,void 0,!0,1),g=o.extractCommon(v,t,e,y),v.oldPos+1>=u&&g+1>=l)return a(rb(o,v.lastComponent,t,e,o.useLongestToken));p[y]=v,v.oldPos+1>=u&&(w=Math.min(w,y-1)),g+1>=l&&(S=Math.max(S,y+1))}d++}if(i)(function y(){setTimeout(function(){if(d>f||Date.now()>m)return i();$()||y()},0)})();else for(;d<=f&&Date.now()<=m;){var k=$();if(k)return k}},addToPath:function(e,t,s,r){var i=e.lastComponent;return i&&i.added===t&&i.removed===s?{oldPos:e.oldPos+r,lastComponent:{count:i.count+1,added:t,removed:s,previousComponent:i.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:s,previousComponent:i}}},extractCommon:function(e,t,s,r){for(var i=t.length,o=s.length,a=e.oldPos,l=a-r,u=0;l+1<i&&a+1<o&&this.equals(t[l+1],s[a+1]);)l++,a++,u++;return u&&(e.lastComponent={count:u,previousComponent:e.lastComponent}),e.oldPos=a,l},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],s=0;s<e.length;s++)e[s]&&t.push(e[s]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};qC=new Et,Nu=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,ju=/\S/,Hu=new Et;Hu.equals=function(n,e){return this.options.ignoreCase&&(n=n.toLowerCase(),e=e.toLowerCase()),n===e||this.options.ignoreWhitespace&&!ju.test(n)&&!ju.test(e)};Hu.tokenize=function(n){for(var e=n.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;t<e.length-1;t++)!e[t+1]&&e[t+2]&&Nu.test(e[t])&&Nu.test(e[t+2])&&(e[t]+=e[t+2],e.splice(t+1,2),t--);return e};fo=new Et;fo.tokenize=function(n){this.options.stripTrailingCr&&(n=n.replace(/\r\n/g,`
237
+ `}function gb(n,e,t,s,r,i,o){return Uu(mb(n,e,t,s,r,i,o))}function qu(n,e,t,s,r,i){return gb(n,n,e,t,s,r,i)}var qC,Nu,ju,Hu,fo,ob,ab,fb,Xn,uo,Ku=L(()=>{Et.prototype={diff:function(e,t){var s,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=r.callback;typeof r=="function"&&(i=r,r={}),this.options=r;var o=this;function a(y){return i?(setTimeout(function(){i(void 0,y)},0),!0):y}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var l=t.length,u=e.length,d=1,f=l+u;r.maxEditLength&&(f=Math.min(f,r.maxEditLength));var h=(s=r.timeout)!==null&&s!==void 0?s:1/0,m=Date.now()+h,p=[{oldPos:-1,lastComponent:void 0}],g=this.extractCommon(p[0],t,e,0);if(p[0].oldPos+1>=u&&g+1>=l)return a([{value:this.join(t),count:t.length}]);var S=-1/0,x=1/0;function $(){for(var y=Math.max(S,-d);y<=Math.min(x,d);y+=2){var b=void 0,v=p[y-1],w=p[y+1];v&&(p[y-1]=void 0);var _=!1;if(w){var T=w.oldPos-y;_=w&&0<=T&&T<l}var P=v&&v.oldPos+1<u;if(!_&&!P){p[y]=void 0;continue}if(!P||_&&v.oldPos+1<w.oldPos?b=o.addToPath(w,!0,void 0,0):b=o.addToPath(v,void 0,!0,1),g=o.extractCommon(b,t,e,y),b.oldPos+1>=u&&g+1>=l)return a(rb(o,b.lastComponent,t,e,o.useLongestToken));p[y]=b,b.oldPos+1>=u&&(x=Math.min(x,y-1)),g+1>=l&&(S=Math.max(S,y+1))}d++}if(i)(function y(){setTimeout(function(){if(d>f||Date.now()>m)return i();$()||y()},0)})();else for(;d<=f&&Date.now()<=m;){var k=$();if(k)return k}},addToPath:function(e,t,s,r){var i=e.lastComponent;return i&&i.added===t&&i.removed===s?{oldPos:e.oldPos+r,lastComponent:{count:i.count+1,added:t,removed:s,previousComponent:i.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:s,previousComponent:i}}},extractCommon:function(e,t,s,r){for(var i=t.length,o=s.length,a=e.oldPos,l=a-r,u=0;l+1<i&&a+1<o&&this.equals(t[l+1],s[a+1]);)l++,a++,u++;return u&&(e.lastComponent={count:u,previousComponent:e.lastComponent}),e.oldPos=a,l},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],s=0;s<e.length;s++)e[s]&&t.push(e[s]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};qC=new Et,Nu=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,ju=/\S/,Hu=new Et;Hu.equals=function(n,e){return this.options.ignoreCase&&(n=n.toLowerCase(),e=e.toLowerCase()),n===e||this.options.ignoreWhitespace&&!ju.test(n)&&!ju.test(e)};Hu.tokenize=function(n){for(var e=n.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;t<e.length-1;t++)!e[t+1]&&e[t+2]&&Nu.test(e[t])&&Nu.test(e[t+2])&&(e[t]+=e[t+2],e.splice(t+1,2),t--);return e};fo=new Et;fo.tokenize=function(n){this.options.stripTrailingCr&&(n=n.replace(/\r\n/g,`
238
238
  `));var e=[],t=n.split(/(\n|\r\n)/);t[t.length-1]||t.pop();for(var s=0;s<t.length;s++){var r=t[s];s%2&&!this.options.newlineIsToken?e[e.length-1]+=r:(this.options.ignoreWhitespace&&(r=r.trim()),e.push(r))}return e};ob=new Et;ob.tokenize=function(n){return n.split(/(\S.+?[.!?])(?=\s+|$)/)};ab=new Et;ab.tokenize=function(n){return n.split(/([{}:;,]|\s+)/)};fb=Object.prototype.toString,Xn=new Et;Xn.useLongestToken=!0;Xn.tokenize=fo.tokenize;Xn.castInput=function(n){var e=this.options,t=e.undefinedReplacement,s=e.stringifyReplacer,r=s===void 0?function(i,o){return typeof o>"u"?t:o}:s;return typeof n=="string"?n:JSON.stringify(co(n,null,null,r),r," ")};Xn.equals=function(n,e){return Et.prototype.equals.call(Xn,n.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};uo=new Et;uo.tokenize=function(n){return n.slice()};uo.join=uo.removeEmpty=function(n){return n}});var Wu={};Le(Wu,{applyDiff:()=>yb,formatDiffForDisplay:()=>bb,generateDiff:()=>er});function er(n,e,t){return qu(n,e,t,"original","modified")}function yb(n,e){return Bu(n,e)}function bb(n){return n.split(`
239
239
  `).map(t=>t.startsWith("+")&&!t.startsWith("+++")?`\x1B[32m${t}\x1B[0m`:t.startsWith("-")&&!t.startsWith("---")?`\x1B[31m${t}\x1B[0m`:t.startsWith("@@")?`\x1B[36m${t}\x1B[0m`:t).join(`
240
240
  `)}var po=L(()=>{"use strict";Ku()});async function bn(n,e){let t=[],s=Ae.join(n,"package.json");if(me.existsSync(s))try{let o=JSON.parse(me.readFileSync(s,"utf-8"));t.push(`Project: ${o.name||"unknown"}${o.version?` v${o.version}`:""}`),o.description&&t.push(`Description: ${o.description}`);let a=Object.keys(o.dependencies||{}).concat(Object.keys(o.devDependencies||{}));a.length>0&&t.push(`Key deps: ${a.slice(0,15).join(", ")}${a.length>15?"...":""}`)}catch{}if(e?.workspace?.frameworkDetection){let o=Ys(n);t.push(`Framework: ${o.framework}`),t.push(`Language: ${o.language}`),t.push(`Package Manager: ${o.packageManager}`),o.hasDocker&&t.push("Docker: detected"),o.hasCICD&&t.push("CI/CD: detected"),o.hasTests&&t.push("Tests: detected")}if(e?.workspace?.gitAwareness)try{let o=await Xi(n);o&&(t.push(`Git branch: ${o.branch}`),o.modified.length>0&&t.push(`Modified files: ${o.modified.length}`),o.staged.length>0&&t.push(`Staged files: ${o.staged.length}`))}catch{}if(e?.workspace?.envParsing){let a=[".env",".env.local",".env.development",".env.production"].filter(l=>me.existsSync(Ae.join(n,l)));a.length>0&&t.push(`Env files: ${a.join(", ")}`)}let i=["tsconfig.json",".eslintrc.json","vite.config.ts","next.config.js","tailwind.config.js"].filter(o=>me.existsSync(Ae.join(n,o)));if(i.length>0&&t.push(`Config: ${i.join(", ")}`),e?.context?.projectGraph)try{let o=me.readdirSync(n).filter(a=>!["node_modules",".git","dist","build",".next",".cache"].includes(a)).filter(a=>!a.startsWith(".")).slice(0,25);o.length>0&&t.push(`Structure: ${o.join(", ")}`)}catch{}else try{let o=me.readdirSync(n).filter(a=>!["node_modules",".git","dist","build",".next",".cache"].includes(a)).filter(a=>!a.startsWith(".")).slice(0,20);o.length>0&&t.push(`Structure: ${o.join(", ")}`)}catch{}return t.push(`Directory: ${n}`),e?.agents?.enabled&&(t.push("Multi-Agent: enabled (Team Leader: Hablas)"),t.push("Team: @Hablas (Leader), @Bob (Architect), @Alex (Engineer), @David (Data Analyst), @Emma (Product Manager)")),t.join(`
@@ -248,14 +248,14 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
248
248
  ## Shared Context
249
249
  `+i)}return r+=`
250
250
 
251
- `+au(),r}async function vb(n){try{if(!me.existsSync(ho))return null;let t=(await Nt.readdir(ho)).filter(f=>f.endsWith(".bak"));if(n){let f=Ae.basename(n);t=t.filter(h=>h.startsWith(`${f}.`))}if(t.length===0)return null;t.sort().reverse();let s=t[0],r=Ae.join(ho,s),i=s.replace(".bak","").split("."),o=parseInt(i[i.length-1],10),a=i.slice(0,-1).join("."),l=Date.now()-o,u=Math.floor(l/6e4),d=u<1?"just now":u<60?`${u} minutes ago`:`${Math.floor(u/60)} hours ago`;return{backupPath:r,originalName:a,age:d}}catch{return null}}async function Gu(n,e,t,s,r,i,o,a,l,u,d,f,h,m,p,g,S){let w=n.split(/\s+/),$=w[0],k=w.slice(1).join(" ");switch($){case"/quit":case"/exit":return"quit";case"/help":console.log(_u()),console.log(c.muted(" Model & Provider:")),console.log(c.muted(" /addmodel Interactive wizard to add a custom API")),console.log(c.muted(" /listmodels Show saved providers")),console.log(c.muted(" /removemodel <name> Remove a saved provider")),console.log(c.muted(" /usemodel <name> Switch to a saved provider")),console.log(c.muted(" /models [page|search] Browse all available models")),console.log(c.muted(" /provider Show/switch API provider")),console.log(),console.log(c.muted(" Aliases & Plugins:")),console.log(c.muted(" /alias Show all aliases")),console.log(c.muted(" /alias set <n> <cmd> Create an alias")),console.log(c.muted(" /alias del <name> Remove an alias")),console.log(c.muted(" /plugins List installed plugins")),console.log(c.muted(" /doctor Run system diagnostics")),console.log(),console.log(c.muted(" Task & Memory:")),console.log(c.muted(" /task add <desc> Add a task to the queue")),console.log(c.muted(" /task list Show all tasks")),console.log(c.muted(" /task clear Clear task queue")),console.log(c.muted(" /memory Show project memory")),console.log(c.muted(" /memory set <k> <v> Store a memory")),console.log(c.muted(" /memory del <key> Delete a memory")),console.log(c.muted(" /memory clear Clear all memory")),console.log(),console.log(c.muted(" Multi-Agent & Tools:")),console.log(c.muted(" /team Show team roster")),console.log(c.muted(" /delegate <agent> <t> Manually assign task to agent")),console.log(c.muted(" /agents Multi-agent system control")),console.log(c.muted(" /agents on|off Enable/disable multi-agent")),console.log(c.muted(" /agents status Show agent details")),console.log(c.muted(" /security Run security scan")),console.log(c.muted(" /git status Show git status")),console.log(c.muted(" /workspace Show workspace info")),console.log(c.muted(" /stats Show usage analytics")),console.log();break;case"/about":console.log(yu());break;case"/version":console.log(bu());break;case"/model":if(k){let y=await t.listModels();t.setModel(k);try{let v=zt();v.hablas||(v.hablas={model:k,temperature:.7}),v.hablas.model=k,Fi(v),typeof S<"u"&&S&&S.reloadModels(),console.log(fe(" [Phase 3] Synced to agents.json for @Hablas (team uses on next full turn)"))}catch{}y.includes(k)?console.log(Y(`Model: ${k}`)):console.log(j(`Model set to "${k}" (not found locally)`))}else console.log(fe(`Current model: ${t.getModel()}`)),console.log(c.muted(" Usage: /model <name>"));break;case"/models":{let y=k.trim(),v=1,b="";if(y){let A=parseInt(y);!isNaN(A)&&A>0?v=A:b=y.toLowerCase()}let x=new Ke("Fetching models");x.start();let _=await t.listModels();if(x.stop(_.length>0?`${_.length} found`:void 0),_.length===0){console.log(j("No models found \u2014 check your connection")),console.log(c.muted(" Use /provider test to verify"));break}let T=_;if(b&&(T=_.filter(A=>A.toLowerCase().includes(b)),T.length===0)){console.log(j(`No models matching: "${b}"`)),console.log(c.muted(` ${_.length} models available. Try a different search.`));break}let P=20,C=Math.ceil(T.length/P),F=Math.max(1,Math.min(v,C)),H=(F-1)*P,W=H+P,E=T.slice(H,W);console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Available Models")} ${c.muted(`(${T.length} total \xB7 page ${F}/${C})`)}`),console.log();for(let A=0;A<E.length;A++){let V=H+A+1,Z=E[A]===t.getModel()?` ${c.success("\u25CF active")}`:"";console.log(` ${c.muted(String(V).padStart(3," "))}. ${c.secondary(E[A])}${Z}`)}console.log(),C>1&&console.log(c.muted(` /models ${F<C?F+1:1} \u2014 next page`)),b&&console.log(c.muted(` Filtered: ${T.length} of ${_.length} (query: "${b}")`)),console.log(c.muted(" /models <query> \u2014 search \xB7 /model <id> \u2014 switch")),console.log();break}case"/tree":{let y=s.get("list_dir");if(y){let v=await y.execute({path:".",depth:3});console.log(`
252
- ${v.output}
253
- `)}break}case"/status":{let y=await t.checkConnection(),v=u?u.getActiveName():"planner",b=f?f.size():0,x=d?d.getProgress():void 0;console.log(Su({model:t.getModel(),host:e.ollamaHost,directory:o,cacheFiles:r.getCacheSize(),cacheTokens:r.getTotalTokens(),budgetTokens:e.contextBudget,connected:y,turnCount:l,mindset:v})),b>0&&console.log(c.muted(` Memory entries: ${b}`)),x&&x.total>0&&console.log(c.muted(` Tasks: ${x.done}/${x.total} done`)),console.log();break}case"/clear":r.clear(),i.clear(),console.log(Y("History cleared"));break;case"/history":{let y=parseInt(k)||10,v=i.getHistory().slice(-y);if(v.length===0){console.log(fe("No history yet"));break}console.log(),v.forEach(b=>{let x=b.role==="user"?c.primary("You"):b.role==="assistant"?c.success("Hablas"):c.muted("tool"),_=b.content.slice(0,120).replace(/\n/g," ");console.log(` ${x}: ${c.muted(_)}`)}),console.log();break}case"/undo":{if(!g){let y=await vb(k||void 0);if(!y){console.log(j("No backups found"));break}let v=k?Ae.resolve(o,k):Ae.resolve(o,y.originalName);if(await a.confirm(`Restore ${y.originalName} from backup (${y.age})?`))try{let x=await Nt.readFile(y.backupPath,"utf-8");await Nt.writeFile(v,x,"utf-8"),console.log(Y(`Restored ${y.originalName} from backup (${y.age})`))}catch(x){console.log(_e(`Failed: ${x.message}`))}break}if(k==="list")console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Undo History")} (${g.getUndoableCount()} changes)`),console.log(),console.log(g.formatList(20)),console.log();else if(k==="all"){let y=g.getUndoableCount();if(y===0){console.log(fe("Nothing to undo"));break}if(await a.confirm(`Undo ALL ${y} changes?`)){let b=await g.undoAll(),x=b.filter(_=>_.success).length;console.log(Y(`Reverted ${x}/${b.length} changes`))}}else{let y=k&&parseInt(k)||1;if(g.getUndoableCount()===0){console.log(fe("Nothing to undo"));break}let v=await g.undo(y);for(let b of v)b.success?console.log(Y(`Reverted: ${b.file}`)):console.log(_e(`Failed to revert ${b.file}: ${b.error}`))}break}case"/config":console.log(`
251
+ `+au(),r}async function vb(n){try{if(!me.existsSync(ho))return null;let t=(await Nt.readdir(ho)).filter(f=>f.endsWith(".bak"));if(n){let f=Ae.basename(n);t=t.filter(h=>h.startsWith(`${f}.`))}if(t.length===0)return null;t.sort().reverse();let s=t[0],r=Ae.join(ho,s),i=s.replace(".bak","").split("."),o=parseInt(i[i.length-1],10),a=i.slice(0,-1).join("."),l=Date.now()-o,u=Math.floor(l/6e4),d=u<1?"just now":u<60?`${u} minutes ago`:`${Math.floor(u/60)} hours ago`;return{backupPath:r,originalName:a,age:d}}catch{return null}}async function Gu(n,e,t,s,r,i,o,a,l,u,d,f,h,m,p,g,S){let x=n.split(/\s+/),$=x[0],k=x.slice(1).join(" ");switch($){case"/quit":case"/exit":return"quit";case"/help":console.log(_u()),console.log(c.muted(" Model & Provider:")),console.log(c.muted(" /addmodel Interactive wizard to add a custom API")),console.log(c.muted(" /listmodels Show saved providers")),console.log(c.muted(" /removemodel <name> Remove a saved provider")),console.log(c.muted(" /usemodel <name> Switch to a saved provider")),console.log(c.muted(" /models [page|search] Browse all available models")),console.log(c.muted(" /provider Show/switch API provider")),console.log(),console.log(c.muted(" Aliases & Plugins:")),console.log(c.muted(" /alias Show all aliases")),console.log(c.muted(" /alias set <n> <cmd> Create an alias")),console.log(c.muted(" /alias del <name> Remove an alias")),console.log(c.muted(" /plugins List installed plugins")),console.log(c.muted(" /doctor Run system diagnostics")),console.log(),console.log(c.muted(" Task & Memory:")),console.log(c.muted(" /task add <desc> Add a task to the queue")),console.log(c.muted(" /task list Show all tasks")),console.log(c.muted(" /task clear Clear task queue")),console.log(c.muted(" /memory Show project memory")),console.log(c.muted(" /memory set <k> <v> Store a memory")),console.log(c.muted(" /memory del <key> Delete a memory")),console.log(c.muted(" /memory clear Clear all memory")),console.log(),console.log(c.muted(" Multi-Agent & Tools:")),console.log(c.muted(" /team Show team roster")),console.log(c.muted(" /delegate <agent> <t> Manually assign task to agent")),console.log(c.muted(" /agents Multi-agent system control")),console.log(c.muted(" /agents on|off Enable/disable multi-agent")),console.log(c.muted(" /agents status Show agent details")),console.log(c.muted(" /security Run security scan")),console.log(c.muted(" /git status Show git status")),console.log(c.muted(" /workspace Show workspace info")),console.log(c.muted(" /stats Show usage analytics")),console.log();break;case"/about":console.log(yu());break;case"/version":console.log(bu());break;case"/model":if(k){let y=await t.listModels();t.setModel(k);try{let b=zt();b.hablas||(b.hablas={model:k,temperature:.7}),b.hablas.model=k,Fi(b),typeof S<"u"&&S&&S.reloadModels(),console.log(fe(" [Phase 3] Synced to agents.json for @Hablas (team uses on next full turn)"))}catch{}y.includes(k)?console.log(Y(`Model: ${k}`)):console.log(j(`Model set to "${k}" (not found locally)`))}else console.log(fe(`Current model: ${t.getModel()}`)),console.log(c.muted(" Usage: /model <name>"));break;case"/models":{let y=k.trim(),b=1,v="";if(y){let A=parseInt(y);!isNaN(A)&&A>0?b=A:v=y.toLowerCase()}let w=new Ne("Fetching models");w.start();let _=await t.listModels();if(w.stop(_.length>0?`${_.length} found`:void 0),_.length===0){console.log(j("No models found \u2014 check your connection")),console.log(c.muted(" Use /provider test to verify"));break}let T=_;if(v&&(T=_.filter(A=>A.toLowerCase().includes(v)),T.length===0)){console.log(j(`No models matching: "${v}"`)),console.log(c.muted(` ${_.length} models available. Try a different search.`));break}let P=20,C=Math.ceil(T.length/P),F=Math.max(1,Math.min(b,C)),H=(F-1)*P,W=H+P,E=T.slice(H,W);console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Available Models")} ${c.muted(`(${T.length} total \xB7 page ${F}/${C})`)}`),console.log();for(let A=0;A<E.length;A++){let V=H+A+1,Z=E[A]===t.getModel()?` ${c.success("\u25CF active")}`:"";console.log(` ${c.muted(String(V).padStart(3," "))}. ${c.secondary(E[A])}${Z}`)}console.log(),C>1&&console.log(c.muted(` /models ${F<C?F+1:1} \u2014 next page`)),v&&console.log(c.muted(` Filtered: ${T.length} of ${_.length} (query: "${v}")`)),console.log(c.muted(" /models <query> \u2014 search \xB7 /model <id> \u2014 switch")),console.log();break}case"/tree":{let y=s.get("list_dir");if(y){let b=await y.execute({path:".",depth:3});console.log(`
252
+ ${b.output}
253
+ `)}break}case"/status":{let y=await t.checkConnection(),b=u?u.getActiveName():"planner",v=f?f.size():0,w=d?d.getProgress():void 0;console.log(Su({model:t.getModel(),host:e.ollamaHost,directory:o,cacheFiles:r.getCacheSize(),cacheTokens:r.getTotalTokens(),budgetTokens:e.contextBudget,connected:y,turnCount:l,mindset:b})),v>0&&console.log(c.muted(` Memory entries: ${v}`)),w&&w.total>0&&console.log(c.muted(` Tasks: ${w.done}/${w.total} done`)),console.log();break}case"/clear":r.clear(),i.clear(),console.log(Y("History cleared"));break;case"/history":{let y=parseInt(k)||10,b=i.getHistory().slice(-y);if(b.length===0){console.log(fe("No history yet"));break}console.log(),b.forEach(v=>{let w=v.role==="user"?c.primary("You"):v.role==="assistant"?c.success("Hablas"):c.muted("tool"),_=v.content.slice(0,120).replace(/\n/g," ");console.log(` ${w}: ${c.muted(_)}`)}),console.log();break}case"/undo":{if(!g){let y=await vb(k||void 0);if(!y){console.log(j("No backups found"));break}let b=k?Ae.resolve(o,k):Ae.resolve(o,y.originalName);if(await a.confirm(`Restore ${y.originalName} from backup (${y.age})?`))try{let w=await Nt.readFile(y.backupPath,"utf-8");await Nt.writeFile(b,w,"utf-8"),console.log(Y(`Restored ${y.originalName} from backup (${y.age})`))}catch(w){console.log(_e(`Failed: ${w.message}`))}break}if(k==="list")console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Undo History")} (${g.getUndoableCount()} changes)`),console.log(),console.log(g.formatList(20)),console.log();else if(k==="all"){let y=g.getUndoableCount();if(y===0){console.log(fe("Nothing to undo"));break}if(await a.confirm(`Undo ALL ${y} changes?`)){let v=await g.undoAll(),w=v.filter(_=>_.success).length;console.log(Y(`Reverted ${w}/${v.length} changes`))}}else{let y=k&&parseInt(k)||1;if(g.getUndoableCount()===0){console.log(fe("Nothing to undo"));break}let b=await g.undo(y);for(let v of b)v.success?console.log(Y(`Reverted: ${v.file}`)):console.log(_e(`Failed to revert ${v.file}: ${v.error}`))}break}case"/config":console.log(`
254
254
  ${c.muted(JSON.stringify(e,null,2))}
255
- `),console.log(c.muted(" ~/.hablas/config.json")),console.log();break;case"/mindset":{if(!u){console.log(j("Mindset system not available"));break}if(k)if(u.setActive(k)){let v=u.getActive(),b=await bn(o,e),x=vn(v.systemPrompt,b,f,m);i.updateSystemPrompt(x),console.log(Y(`Mindset: ${v.name} \u2014 ${v.description}`))}else{let v=u.listNames().join(", ");console.log(je(`Unknown mindset: "${k}"`,`Available: ${v}`))}else{let y=u.getActive();y&&console.log(fe(`Current mindset: ${y.name} \u2014 ${y.description}`)),console.log(c.muted(" Usage: /mindset <name>")),console.log(c.muted(" See /mindsets for available options"))}break}case"/mindsets":{if(!u){console.log(j("Mindset system not available"));break}let y=u.list(),v=u.getActiveName();console.log();for(let b of y){let _=b.name===v?c.success(" \u25CF active"):"";console.log(` ${c.accent("\u25C6")} ${c.primary(b.name)}${_}`),console.log(` ${c.muted(b.description)}`)}console.log(),console.log(c.muted(" Switch: /mindset <name>")),console.log();break}case"/task":{if(!d){console.log(j("Task queue not available"));break}let y=w[1],v=w.slice(2).join(" ");switch(y){case"add":if(v){let b=d.add(v);console.log(Y(`Task #${b.id} added: ${v}`))}else console.log(j("Usage: /task add <description>"));break;case"list":console.log(),console.log(d.render()),console.log();break;case"done":{let b=parseInt(v);b?(d.complete(b),console.log(Y(`Task #${b} marked as done`))):console.log(j("Usage: /task done <id>"));break}case"fail":{let b=parseInt(v);b?(d.fail(b,"Manually marked as failed"),console.log(j(`Task #${b} marked as failed`))):console.log(j("Usage: /task fail <id>"));break}case"clear":d.clear(),console.log(Y("Task queue cleared"));break;default:console.log(),console.log(d.render()),console.log(),console.log(c.muted(" /task add <desc> \u2014 Add a task")),console.log(c.muted(" /task list \u2014 Show all tasks")),console.log(c.muted(" /task done <id> \u2014 Mark task as done")),console.log(c.muted(" /task fail <id> \u2014 Mark task as failed")),console.log(c.muted(" /task clear \u2014 Clear all tasks")),console.log()}break}case"/addmodel":{console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Add Custom API Provider")}`),console.log();let v=(await a.prompt(` ${c.muted("Provider name (e.g. OpenAI, Groq):")} `)).trim();if(!v){console.log(j("Cancelled \u2014 name is required"));break}let x=(await a.prompt(` ${c.muted("API URL (e.g. https://api.openai.com/v1):")} `)).trim();if(!x){console.log(j("Cancelled \u2014 URL is required"));break}let T=(await a.prompt(` ${c.muted("API Key (leave empty if none):")} `)).trim(),C=(await a.prompt(` ${c.muted("Default model ID (e.g. gpt-4o):")} `)).trim()||"default",F={name:v,apiUrl:x,apiKey:T,models:[C],defaultModel:C,addedAt:new Date().toISOString()};Qe(F),console.log(),console.log(Y(`Provider "${v}" saved!`)),console.log(c.muted(` Use: /usemodel ${v}`)),console.log();break}case"/listmodels":{let y=Vt();console.log(),console.log(Ic(y.providers,y.activeProvider));break}case"/removemodel":{let y=k.trim();if(!y){console.log(j("Usage: /removemodel <provider-name>"));break}if(Oc(y))console.log(Y(`Provider "${y}" removed`));else{console.log(j(`Provider "${y}" not found`));let b=Ns();b.length>0&&console.log(c.muted(` Available: ${b.map(x=>x.name).join(", ")}`))}break}case"/usemodel":{let y=k.trim();if(!y){console.log(j("Usage: /usemodel <provider-name> [model-id]"));let F=Ns();F.length>0&&console.log(c.muted(` Available: ${F.map(H=>H.name).join(", ")}`));break}let v=y.split(/\s+/),b=v[0],x=v[1],_=Pc(b);if(!_){console.log(j(`Provider "${b}" not found`));let F=Ns();F.length>0&&console.log(c.muted(` Available: ${F.map(H=>H.name).join(", ")}`));break}e.provider="custom",e.apiUrl=_.apiUrl,e.apiKey=_.apiKey,e.model=x||_.defaultModel;let T=Pe(e);h&&h(T),Mc(_.name,e.model),console.log(Y(`Switched to ${_.name} \xB7 Model: ${e.model}`));let P=new Ke("Testing");P.start();let C=await T.checkConnection();P.stop(C?"connected":void 0),C||console.log(j("Connection test failed \u2014 check URL and key"));break}case"/provider":{let y=w[1],v=w.slice(2).join(" ");if(!y){let b=Fs(e);console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Provider")}: ${b}`),console.log(` ${c.muted("Model")}: ${c.highlight(t.getModel())}`),e.provider==="custom"?(console.log(` ${c.muted("API URL")}: ${e.apiUrl}`),console.log(` ${c.muted("API Key")}: ${e.apiKey?"***"+e.apiKey.slice(-4):"not set"}`)):console.log(` ${c.muted("Host")}: ${e.ollamaHost}`),console.log(),console.log(c.muted(" /provider ollama \u2014 Switch to local Ollama")),console.log(c.muted(" /provider nvidia <key> \u2014 Switch to NVIDIA NIM")),console.log(c.muted(" /provider custom <url> [key] \u2014 Switch to custom API")),console.log(c.muted(" /provider test \u2014 Test current connection")),console.log();break}switch(y){case"ollama":{e.provider="ollama",e.apiUrl="",e.apiKey="";let b=Pe(e);h&&h(b),console.log(Y("Switched to Ollama (local)"));break}case"nvidia":{let b=w[2];if(!b&&!e.apiKey){console.log(j("Usage: /provider nvidia <api-key>")),console.log(c.muted(" Get your key at: https://build.nvidia.com/"));break}e.provider="nvidia",e.apiUrl=Ft.apiUrl,b&&(e.apiKey=b),(!e.model||!Ft.models.includes(e.model))&&(e.model=Ft.defaultModel);let x=Pe(e);h&&h(x),console.log(Y(`Switched to NVIDIA NIM \xB7 Model: ${e.model}`)),console.log(c.muted(` Available models: ${Ft.models.length}`));let _=new Ke("Testing NVIDIA connection");_.start();let T=await x.checkConnection();_.stop(T?"connected":void 0),T||(console.log(j("Connection test failed \u2014 check your API key")),console.log(c.muted(" Get key: https://build.nvidia.com/")));break}case"custom":{let b=w[2],x=w[3];if(!b){console.log(j("Usage: /provider custom <api-url> [api-key]")),console.log(c.muted(" Example: /provider custom https://api.openai.com/v1 sk-..."));break}e.provider="custom",e.apiUrl=b,x&&(e.apiKey=x);let _=Pe(e);h&&h(_),console.log(Y(`Switched to Custom API: ${b}`)),!x&&!e.apiKey&&console.log(j("No API key set. Use: /provider custom <url> <key>"));break}case"test":{let b=new Ke("Testing connection");b.start();let x=await t.checkConnection();if(b.stop(x?"connected":void 0),x){let _=await t.listModels();console.log(Y(`Connected! ${_.length} models available.`)),_.length>0&&console.log(c.muted(` Models: ${_.slice(0,5).join(", ")}${_.length>5?"...":""}`))}else console.log(_e("Connection failed"));break}case"key":{v?(e.apiKey=w[2],t instanceof Gt&&t.setApiKey(e.apiKey),console.log(Y("API key updated"))):console.log(j("Usage: /provider key <api-key>"));break}default:console.log(je(`Unknown: /provider ${y}`,"Type /provider for help"))}break}case"/memory":{if(!f){console.log(j("Project memory not available"));break}let y=w[1],v=w.slice(2);switch(y){case"set":{if(v.length>=2){let b=v[0],x=v.slice(1).join(" ");f.set(b,x),console.log(Y(`Memory stored: ${b}`));let _=u?.getActive(),T=_?_.systemPrompt:Qn,P=await bn(o,e);i.updateSystemPrompt(vn(T,P,f,m))}else console.log(j("Usage: /memory set <key> <value>"));break}case"del":case"delete":{if(v[0]){let b=f.delete(v[0]);console.log(b?Y(`Memory deleted: ${v[0]}`):j(`Memory key not found: ${v[0]}`))}else console.log(j("Usage: /memory del <key>"));break}case"search":{if(v[0]){let b=f.search(v.join(" "));b.length>0?(console.log(),b.forEach(x=>console.log(` \xB7 ${x.entry.key}: ${x.entry.value}`)),console.log()):console.log(fe("No matching memories found"))}else console.log(j("Usage: /memory search <query>"));break}case"clear":f.clear(),console.log(Y("Project memory cleared"));break;default:console.log(),console.log(f.render()),console.log(),console.log(c.muted(" /memory set <k> <v> \u2014 Store a memory")),console.log(c.muted(" /memory del <key> \u2014 Delete a memory")),console.log(c.muted(" /memory search <q> \u2014 Search memories")),console.log(c.muted(" /memory clear \u2014 Clear all")),console.log()}break}case"/alias":{let y=w[1],v=w.slice(2);switch(y){case"set":{if(v.length>=2){let b=v[0],x=v.slice(1).join(" ");Fc(b,x),console.log(Y(`Alias set: ${b} \u2192 ${x}`))}else console.log(j("Usage: /alias set <name> <expansion>"));break}case"del":case"remove":{if(v[0]){let b=Nc(v[0]);console.log(b?Y(`Alias removed: ${v[0]}`):j(`Alias not found: ${v[0]}`))}else console.log(j("Usage: /alias del <name>"));break}default:console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Aliases")}`),console.log(),console.log(Hc()),console.log(),console.log(c.muted(" /alias set <name> <cmd> \u2014 Create alias")),console.log(c.muted(" /alias del <name> \u2014 Remove alias")),console.log()}break}case"/doctor":{let y=new Ke("Running diagnostics");y.start();let v=await Ii({ollamaHost:e.ollamaHost,model:t.getModel(),provider:e.provider,apiUrl:e.apiUrl});y.stop(),console.log(Di(v));break}case"/plugins":{let y=w[1],v=w.slice(2).join(" ");switch(y){case"enable":v?(Ti(v),console.log(Y(`Plugin "${v}" enabled`))):console.log(j("Usage: /plugins enable <name>"));break;case"disable":v?(Ri(v),console.log(j(`Plugin "${v}" disabled`))):console.log(j("Usage: /plugins disable <name>"));break;default:Ks(),console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Plugins")}`),console.log(),console.log(Oi()),console.log(),console.log(c.muted(" /plugins enable <name> \u2014 Enable plugin")),console.log(c.muted(" /plugins disable <name> \u2014 Disable plugin")),console.log(c.muted(" Directory: ~/.hablas/plugins/")),console.log()}break}case"/agents":{let y=w[1];if(y==="on")e.agents.enabled=!0,console.log(Y("Multi-agent orchestration enabled"));else if(y==="off")e.agents.enabled=!1,console.log(Y("Multi-agent orchestration disabled"));else if(y==="status")console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Multi-Agent System")}`),console.log(` Status: ${e.agents.enabled?c.success("enabled"):c.muted("disabled")}`),console.log(` Orchestration: ${e.agents.orchestration}`),console.log(` Max concurrent: ${e.agents.maxConcurrent}`),console.log(),console.log(` ${c.strong("Team:")}`),console.log(Vc()),console.log();else if(y==="models"){let v=w.slice(2);if(v.length>=2){let b=v[0].toLowerCase(),x=v[1],_=["hablas","bob","alex","david","emma"];if(!_.includes(b)){console.log(j(`Unknown role: ${b}. Valid: ${_.join(", ")}`));break}let T=zt();T[b]||(T[b]={model:x,temperature:.5}),T[b].model=x,Fi(T),S&&S.reloadModels(),console.log(Y(`Agent model updated: @${b} \u2192 ${x}`)),console.log(c.muted(` Saved to ${Ni()}`))}else{let b=zt();console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Agent Models")}`),console.log();for(let x of we){let _=b[x.role];console.log(_?` ${c.primary(x.name.padEnd(8))} \u2192 ${c.highlight(_.model)}${_.temperature!==void 0?c.muted(` (temp: ${_.temperature})`):""}`:` ${c.primary(x.name.padEnd(8))} \u2192 ${c.muted("(default)")}`)}console.log(),console.log(c.muted(` Config: ${Ni()}`)),console.log(c.muted(" Usage: /agents models <role> <model> (e.g. /agents models alex qwen/qwen2.5-coder-32b-instruct)")),console.log()}}else console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Multi-Agent System")}: ${e.agents.enabled?c.success("ON"):c.muted("OFF")}`),console.log(),console.log(c.muted(" /agents on \u2014 Enable multi-agent orchestration")),console.log(c.muted(" /agents off \u2014 Disable multi-agent orchestration")),console.log(c.muted(" /agents status \u2014 Show agent details")),console.log(c.muted(" /agents models \u2014 Show model per agent")),console.log(c.muted(" /team \u2014 Show team roster")),console.log();break}case"/security":{console.log(),console.log(` ${c.accent("\u{1F512}")} Running security scan...`);let y=zi(o);console.log(Yi(y));break}case"/git":{if(w[1]==="status")try{let{getGitStatus:v,formatGitStatus:b}=await Promise.resolve().then(()=>(mn(),Yn)),x=await v(o);x?(console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Git Status")}`),console.log(b(x)),console.log()):console.log(j("Not a git repository"))}catch{console.log(j("Git not available"))}else console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Git Intelligence")}`),console.log(),console.log(c.muted(" /git status \u2014 Show git status")),console.log(c.muted(" hablas commit \u2014 Smart commit message")),console.log(c.muted(" hablas pr \u2014 Generate PR description")),console.log(c.muted(" hablas changelog \u2014 Generate changelog")),console.log();break}case"/workspace":{let y=Ys(o);console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Workspace Information")}`),console.log(),console.log(Qi(y)),console.log();break}case"/stats":{let{loadStats:y,formatStats:v}=await Promise.resolve().then(()=>(zn(),Vi)),b=y();console.log(v(b));break}case"/context":{if(!m){console.log(j("Shared context not available"));break}let y=w[1],v=w.slice(2);switch(y){case"set":{if(v.length>=2){let b=v[0],x=v.slice(1).join(" ");m.set(b,x),console.log(Y(`Context stored: ${b}`))}else console.log(j("Usage: /context set <key> <value>"));break}case"get":{if(v[0]){let b=m.get(v[0]);b!==void 0?(console.log(),console.log(` ${c.accent("\u25C6")} ${c.strong(v[0])}: ${b}`),console.log()):console.log(j(`Context key not found: ${v[0]}`))}else console.log(j("Usage: /context get <key>"));break}case"del":case"delete":{if(v[0]){let b=m.delete(v[0]);console.log(b?Y(`Context deleted: ${v[0]}`):j(`Context key not found: ${v[0]}`))}else console.log(j("Usage: /context del <key>"));break}case"decisions":{let b=m.getDecisions();if(b.length===0)console.log(fe("No decisions logged yet"));else{console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Decisions")}`),console.log();for(let x of b)console.log(` ${c.muted(x.timestamp)} ${c.primary(x.by)}: ${x.decision}`),x.rationale&&console.log(` ${c.muted(x.rationale)}`);console.log()}break}case"clear":m.clear(),console.log(Y("Shared context cleared"));break;default:console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Shared Context")}`),console.log(),console.log(m.render()),console.log(),console.log(c.muted(" /context set <k> <v> \u2014 Store a context entry")),console.log(c.muted(" /context get <key> \u2014 Get a context entry")),console.log(c.muted(" /context del <key> \u2014 Delete a context entry")),console.log(c.muted(" /context decisions \u2014 Show logged decisions")),console.log(c.muted(" /context clear \u2014 Clear all context")),console.log()}break}case"/plan":{if(!p){console.log(j("Plan manager not available"));break}let y=w[1],v=w.slice(2).join(" ");switch(y){case"status":{let x=p.getActivePlan();if(!x){console.log(fe("No active plan"));break}let _=p.getProgress();console.log(Au(x,{percent:_.percentage,done:_.done,total:_.total}));break}case"finish":{if(v){p.finishTask(v),console.log(Y(`Task finished: ${v}`));let x=p.getProgress();console.log(c.muted(` Progress: ${x.done}/${x.total} (${x.percentage}%)`))}else console.log(j("Usage: /plan finish <task_id>"));break}case"reset":{p.reset(),console.log(Y("Plan manager reset"));break}case"next":{let x=p.getNextTask();console.log(x?fe(`Next task: [${x.task_id}] ${x.description} \u2192 @${x.assignee}`):fe("No pending tasks"));break}default:console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Plan Manager")}`),console.log();let b=p.getActivePlan();if(b){let x=p.getProgress();console.log(` Active plan: ${b.title} (${x.percentage}% done)`),console.log(` Tasks: ${x.done}/${x.total}`)}else console.log(c.muted(" No active plan"));console.log(),console.log(c.muted(" /plan status \u2014 Show active plan with progress")),console.log(c.muted(" /plan finish <id> \u2014 Mark a task as finished")),console.log(c.muted(" /plan next \u2014 Show next pending task")),console.log(c.muted(" /plan reset \u2014 Reset plan manager")),console.log()}break}case"/learn":{if(!f||!k){console.log(j('Usage: /learn "always use tabs" or /learn "our API uses camelCase"'));break}if(f.set(`user-pref: ${k.slice(0,50)}`,k,{category:"user-pref",importance:9,createdBy:"user",tags:["user-pref","learned"]}),!(i.getMessages()[0]?.content||"").includes(k)){let v=await bn(o,e),b=u?.getActive(),x=b?b.systemPrompt:Qn,_=vn(x,v,f,m);i.updateSystemPrompt(_)}console.log(Y(`Learned: "${k}"`)),console.log(c.muted(" This will be remembered across sessions and injected into every prompt."));break}case"/test":{let y=oo(o);if(y==="unknown"&&!k){console.log(j("No test framework detected. Install jest, vitest, pytest, etc."));break}console.log(fe(`Running tests (${y})...`));let v=Cu(o,k==="--fix"?void 0:k||void 0);if(console.log(),console.log(Eu(v)),console.log(),!v.passed&&k==="--fix"){console.log(fe("Tests failed \u2014 adding fix request to conversation..."));let b=Tu(v);i.addUserMessage(b),console.log(fe("Type your next message or let the agent work on the fix."))}break}case"/checkpoint":{let y=w[1],v=w.slice(2).join(" ");if(y==="save"){let b=v||`Checkpoint at turn ${l}`,x=g?.getModifiedFiles?.()||[],_=await Pu(o,b,x);console.log(Y(`Checkpoint saved: ${_.id} "${b}" (${_.fileCount} files)`))}else if(y==="list"){let b=Mu(o);console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Checkpoints")}`),console.log(),console.log(Lu(b)),console.log()}else if(y==="restore"){if(!v){console.log(j("Usage: /checkpoint restore <id>"));break}let b=await Iu(o,v);b.success?console.log(Y(`Restored checkpoint: ${v} (${b.filesRestored} files)`)):console.log(_e(b.error||"Restore failed"))}else y==="delete"?v&&Du(o,v)?console.log(Y(`Deleted checkpoint: ${v}`)):console.log(j("Checkpoint not found")):(console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Checkpoint System")}`),console.log(),console.log(c.muted(' /checkpoint save "label" \u2014 Save current state')),console.log(c.muted(" /checkpoint list \u2014 List saved checkpoints")),console.log(c.muted(" /checkpoint restore <id> \u2014 Restore a checkpoint")),console.log(c.muted(" /checkpoint delete <id> \u2014 Delete a checkpoint")),console.log());break}case"/compare":{let y=w.slice(1);if(y.length===2)try{let v=await Nt.readFile(Ae.resolve(o,y[0]),"utf-8"),b=await Nt.readFile(Ae.resolve(o,y[1]),"utf-8"),{generateDiff:x}=await Promise.resolve().then(()=>(po(),Wu)),_=x(y[0]+" vs "+y[1],v,b);console.log(so(_))}catch(v){console.log(_e(`Compare failed: ${v.message}`))}else if(y.length===1&&y[0].startsWith("HEAD"))try{let{execSync:v}=await import("child_process"),b=v(`git diff ${y[0]}`,{cwd:o,encoding:"utf-8",timeout:1e4});console.log(so(b||"(no changes)"))}catch(v){console.log(_e(`Git diff failed: ${v.message}`))}else console.log(c.muted(" Usage: /compare file1.ts file2.ts or /compare HEAD~1"));break}case"/cost":{let y=Vn(),v="current";console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Session Cost & Usage")}`),console.log(),console.log(` Session duration: ${v} min`),console.log(` Messages: ${y.totalMessages}`),console.log(` Tool calls: ${y.totalToolCalls}`),console.log(` Tokens used: ${y.totalTokensUsed.toLocaleString()}`),console.log();let b=Object.entries(y.agentUsage);if(b.length>0){console.log(" Agent usage:");for(let[x,_]of b.sort((T,P)=>P[1]-T[1]))console.log(` @${x}: ${_} invocations`)}console.log();break}case"/delegate":{if(!e.agents.enabled){console.log(j("Multi-agent system is disabled. Enable with /agents on"));break}let y=w[1]?.toLowerCase(),v=w.slice(2).join(" ");if(!y||!v){console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Delegate Task to Agent")}`),console.log(),console.log(c.muted(" Usage: /delegate <agent> <task description>")),console.log(),console.log(c.muted(" Agents:")),console.log(` ${c.product("emma")} \u2014 Product Manager`),console.log(` ${c.architect("bob")} \u2014 Architect`),console.log(` ${c.engineer("alex")} \u2014 Engineer`),console.log(` ${c.analyst("david")} \u2014 Data Analyst`),console.log(),console.log(c.muted(" Example: /delegate alex create a login component")),console.log();break}let b=["emma","bob","alex","david","hablas"];if(!b.includes(y)){console.log(j(`Unknown agent: "${y}". Valid: ${b.join(", ")}`));break}let x=we.find(_=>_.role===y);if(x){if(!S){console.log(j("Agent runner not initialized. Cannot delegate."));break}console.log(mu("Hablas",x.name,x.title,v)),console.log(Jt(x.name,x.title));let _=s.getOllamaTools(),T=await S.runAgent(y,v,void 0,_);T.success&&T.output?(console.log(Xt(T.output)),i.addAssistantMessage(`[@${x.name}]: ${T.output}`)):T.error?console.log(j(`${x.name} failed: ${T.error}`)):console.log(fe(`${x.name} completed without output.`))}break}case"/session":{let y=w[1],v=w.slice(2).join(" "),b=Ae.join(mo.homedir(),".hablas","sessions");if(y==="save"){let x=v||`session_${Date.now()}`;try{me.existsSync(b)||me.mkdirSync(b,{recursive:!0});let _=i.toJSON(),T=Ae.join(b,`${x.replace(/[^a-zA-Z0-9_-]/g,"_")}.json`);me.writeFileSync(T,_,"utf-8"),console.log(Y(`Session saved: "${x}"`))}catch(_){console.log(_e(`Save failed: ${_.message}`))}}else if(y==="list")try{if(!me.existsSync(b)){console.log(fe("No saved sessions"));break}let x=me.readdirSync(b).filter(_=>_.endsWith(".json"));console.log();for(let _ of x){let T=me.statSync(Ae.join(b,_));console.log(` ${_.replace(".json","")} (${new Date(T.mtime).toLocaleString()})`)}console.log()}catch{console.log(fe("No saved sessions"))}else if(y==="load"){let x=v;if(!x){console.log(_e("Please specify the session label to load: /session load <label>"));break}try{let _=Ae.join(b,`${x.replace(/[^a-zA-Z0-9_-]/g,"_")}.json`);if(!me.existsSync(_)){console.log(_e(`Session file not found: ${x}`));break}let T=me.readFileSync(_,"utf-8");i.fromJSON(T),console.log(Y(`Session successfully loaded: "${x}"`))}catch(_){console.log(_e(`Load failed: ${_.message}`))}}else console.log(),console.log(c.muted(' /session save "label" \u2014 Save current conversation')),console.log(c.muted(" /session list \u2014 List saved sessions")),console.log(c.muted(' /session load "label" \u2014 Load saved conversation')),console.log();break}case"/team":{let{activeCollabManager:y}=await Promise.resolve().then(()=>(Tt(),jt));if(!y){console.log(j("Team mode is not active. Use hablas --team to start."));break}let v=y.getLocalState(),b=Math.min(process.stdout.columns-4,80);console.log(`
256
- `+c.border("\u2554"+"\u2550".repeat(b-2)+"\u2557")),console.log(c.border("\u2551")+" ".repeat(Math.floor((b-22)/2))+c.strong("HABLAS COLLABORATION SYNC")+" ".repeat(b-2-25-Math.floor((b-22)/2))+c.border("\u2551")),console.log(c.border("\u2560"+"\u2550".repeat(b-2)+"\u2563")),console.log(c.border("\u2551")+` ${c.strong("My Identity:")} ${c.highlight(`@${v.my_username}`)}`+" ".repeat(Math.max(1,b-21-(v.my_username?.length||0)))+c.border("\u2551")),console.log(c.border("\u2551")+` ${c.strong("Room Fingerprint:")} ${c.muted(v.project_team_token?.slice(0,12))}...`+" ".repeat(Math.max(1,b-34))+c.border("\u2551")),console.log(c.border("\u2551")+` ${c.strong("Status:")} ${c.success("\u25CF ACTIVE")}`+" ".repeat(Math.max(1,b-31))+c.border("\u2551")),console.log(c.border("\u2560"+"\u2550".repeat(b-2)+"\u2563")),console.log(c.border("\u2551")+` ${c.strong("Teammates Online:")}`+" ".repeat(Math.max(1,b-21))+c.border("\u2551"));let _=(v.sessions||[]).filter(T=>T.developer_name!==v.my_username);if(_.length===0)console.log(c.border("\u2551")+" (awaiting colleagues...)"+" ".repeat(Math.max(1,b-31))+c.border("\u2551"));else for(let T of _){let P=` @${T.developer_name} [${T.active_section||"idle"}] - ${T.current_task||"none"}`;console.log(c.border("\u2551")+` ${c.secondary(P.slice(0,b-6))}`+" ".repeat(Math.max(0,b-6-P.length))+c.border("\u2551"))}console.log(c.border("\u255A"+"\u2550".repeat(b-2)+"\u255D")+`
255
+ `),console.log(c.muted(" ~/.hablas/config.json")),console.log();break;case"/mindset":{if(!u){console.log(j("Mindset system not available"));break}if(k)if(u.setActive(k)){let b=u.getActive(),v=await bn(o,e),w=vn(b.systemPrompt,v,f,m);i.updateSystemPrompt(w),console.log(Y(`Mindset: ${b.name} \u2014 ${b.description}`))}else{let b=u.listNames().join(", ");console.log(He(`Unknown mindset: "${k}"`,`Available: ${b}`))}else{let y=u.getActive();y&&console.log(fe(`Current mindset: ${y.name} \u2014 ${y.description}`)),console.log(c.muted(" Usage: /mindset <name>")),console.log(c.muted(" See /mindsets for available options"))}break}case"/mindsets":{if(!u){console.log(j("Mindset system not available"));break}let y=u.list(),b=u.getActiveName();console.log();for(let v of y){let _=v.name===b?c.success(" \u25CF active"):"";console.log(` ${c.accent("\u25C6")} ${c.primary(v.name)}${_}`),console.log(` ${c.muted(v.description)}`)}console.log(),console.log(c.muted(" Switch: /mindset <name>")),console.log();break}case"/task":{if(!d){console.log(j("Task queue not available"));break}let y=x[1],b=x.slice(2).join(" ");switch(y){case"add":if(b){let v=d.add(b);console.log(Y(`Task #${v.id} added: ${b}`))}else console.log(j("Usage: /task add <description>"));break;case"list":console.log(),console.log(d.render()),console.log();break;case"done":{let v=parseInt(b);v?(d.complete(v),console.log(Y(`Task #${v} marked as done`))):console.log(j("Usage: /task done <id>"));break}case"fail":{let v=parseInt(b);v?(d.fail(v,"Manually marked as failed"),console.log(j(`Task #${v} marked as failed`))):console.log(j("Usage: /task fail <id>"));break}case"clear":d.clear(),console.log(Y("Task queue cleared"));break;default:console.log(),console.log(d.render()),console.log(),console.log(c.muted(" /task add <desc> \u2014 Add a task")),console.log(c.muted(" /task list \u2014 Show all tasks")),console.log(c.muted(" /task done <id> \u2014 Mark task as done")),console.log(c.muted(" /task fail <id> \u2014 Mark task as failed")),console.log(c.muted(" /task clear \u2014 Clear all tasks")),console.log()}break}case"/addmodel":{console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Add Custom API Provider")}`),console.log();let b=(await a.prompt(` ${c.muted("Provider name (e.g. OpenAI, Groq):")} `)).trim();if(!b){console.log(j("Cancelled \u2014 name is required"));break}let w=(await a.prompt(` ${c.muted("API URL (e.g. https://api.openai.com/v1):")} `)).trim();if(!w){console.log(j("Cancelled \u2014 URL is required"));break}let T=(await a.prompt(` ${c.muted("API Key (leave empty if none):")} `)).trim(),C=(await a.prompt(` ${c.muted("Default model ID (e.g. gpt-4o):")} `)).trim()||"default",F={name:b,apiUrl:w,apiKey:T,models:[C],defaultModel:C,addedAt:new Date().toISOString()};Qe(F),console.log(),console.log(Y(`Provider "${b}" saved!`)),console.log(c.muted(` Use: /usemodel ${b}`)),console.log();break}case"/listmodels":{let y=Vt();console.log(),console.log(Ic(y.providers,y.activeProvider));break}case"/removemodel":{let y=k.trim();if(!y){console.log(j("Usage: /removemodel <provider-name>"));break}if(Oc(y))console.log(Y(`Provider "${y}" removed`));else{console.log(j(`Provider "${y}" not found`));let v=Ns();v.length>0&&console.log(c.muted(` Available: ${v.map(w=>w.name).join(", ")}`))}break}case"/usemodel":{let y=k.trim();if(!y){console.log(j("Usage: /usemodel <provider-name> [model-id]"));let F=Ns();F.length>0&&console.log(c.muted(` Available: ${F.map(H=>H.name).join(", ")}`));break}let b=y.split(/\s+/),v=b[0],w=b[1],_=Pc(v);if(!_){console.log(j(`Provider "${v}" not found`));let F=Ns();F.length>0&&console.log(c.muted(` Available: ${F.map(H=>H.name).join(", ")}`));break}e.provider="custom",e.apiUrl=_.apiUrl,e.apiKey=_.apiKey,e.model=w||_.defaultModel;let T=Pe(e);h&&h(T),Mc(_.name,e.model),console.log(Y(`Switched to ${_.name} \xB7 Model: ${e.model}`));let P=new Ne("Testing");P.start();let C=await T.checkConnection();P.stop(C?"connected":void 0),C||console.log(j("Connection test failed \u2014 check URL and key"));break}case"/provider":{let y=x[1],b=x.slice(2).join(" ");if(!y){let v=Fs(e);console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Provider")}: ${v}`),console.log(` ${c.muted("Model")}: ${c.highlight(t.getModel())}`),e.provider==="custom"?(console.log(` ${c.muted("API URL")}: ${e.apiUrl}`),console.log(` ${c.muted("API Key")}: ${e.apiKey?"***"+e.apiKey.slice(-4):"not set"}`)):console.log(` ${c.muted("Host")}: ${e.ollamaHost}`),console.log(),console.log(c.muted(" /provider ollama \u2014 Switch to local Ollama")),console.log(c.muted(" /provider nvidia <key> \u2014 Switch to NVIDIA NIM")),console.log(c.muted(" /provider custom <url> [key] \u2014 Switch to custom API")),console.log(c.muted(" /provider test \u2014 Test current connection")),console.log();break}switch(y){case"ollama":{e.provider="ollama",e.apiUrl="",e.apiKey="";let v=Pe(e);h&&h(v),console.log(Y("Switched to Ollama (local)"));break}case"nvidia":{let v=x[2];if(!v&&!e.apiKey){console.log(j("Usage: /provider nvidia <api-key>")),console.log(c.muted(" Get your key at: https://build.nvidia.com/"));break}e.provider="nvidia",e.apiUrl=Ft.apiUrl,v&&(e.apiKey=v),(!e.model||!Ft.models.includes(e.model))&&(e.model=Ft.defaultModel);let w=Pe(e);h&&h(w),console.log(Y(`Switched to NVIDIA NIM \xB7 Model: ${e.model}`)),console.log(c.muted(` Available models: ${Ft.models.length}`));let _=new Ne("Testing NVIDIA connection");_.start();let T=await w.checkConnection();_.stop(T?"connected":void 0),T||(console.log(j("Connection test failed \u2014 check your API key")),console.log(c.muted(" Get key: https://build.nvidia.com/")));break}case"custom":{let v=x[2],w=x[3];if(!v){console.log(j("Usage: /provider custom <api-url> [api-key]")),console.log(c.muted(" Example: /provider custom https://api.openai.com/v1 sk-..."));break}e.provider="custom",e.apiUrl=v,w&&(e.apiKey=w);let _=Pe(e);h&&h(_),console.log(Y(`Switched to Custom API: ${v}`)),!w&&!e.apiKey&&console.log(j("No API key set. Use: /provider custom <url> <key>"));break}case"test":{let v=new Ne("Testing connection");v.start();let w=await t.checkConnection();if(v.stop(w?"connected":void 0),w){let _=await t.listModels();console.log(Y(`Connected! ${_.length} models available.`)),_.length>0&&console.log(c.muted(` Models: ${_.slice(0,5).join(", ")}${_.length>5?"...":""}`))}else console.log(_e("Connection failed"));break}case"key":{b?(e.apiKey=x[2],t instanceof Gt&&t.setApiKey(e.apiKey),console.log(Y("API key updated"))):console.log(j("Usage: /provider key <api-key>"));break}default:console.log(He(`Unknown: /provider ${y}`,"Type /provider for help"))}break}case"/memory":{if(!f){console.log(j("Project memory not available"));break}let y=x[1],b=x.slice(2);switch(y){case"set":{if(b.length>=2){let v=b[0],w=b.slice(1).join(" ");f.set(v,w),console.log(Y(`Memory stored: ${v}`));let _=u?.getActive(),T=_?_.systemPrompt:Qn,P=await bn(o,e);i.updateSystemPrompt(vn(T,P,f,m))}else console.log(j("Usage: /memory set <key> <value>"));break}case"del":case"delete":{if(b[0]){let v=f.delete(b[0]);console.log(v?Y(`Memory deleted: ${b[0]}`):j(`Memory key not found: ${b[0]}`))}else console.log(j("Usage: /memory del <key>"));break}case"search":{if(b[0]){let v=f.search(b.join(" "));v.length>0?(console.log(),v.forEach(w=>console.log(` \xB7 ${w.entry.key}: ${w.entry.value}`)),console.log()):console.log(fe("No matching memories found"))}else console.log(j("Usage: /memory search <query>"));break}case"clear":f.clear(),console.log(Y("Project memory cleared"));break;default:console.log(),console.log(f.render()),console.log(),console.log(c.muted(" /memory set <k> <v> \u2014 Store a memory")),console.log(c.muted(" /memory del <key> \u2014 Delete a memory")),console.log(c.muted(" /memory search <q> \u2014 Search memories")),console.log(c.muted(" /memory clear \u2014 Clear all")),console.log()}break}case"/alias":{let y=x[1],b=x.slice(2);switch(y){case"set":{if(b.length>=2){let v=b[0],w=b.slice(1).join(" ");Fc(v,w),console.log(Y(`Alias set: ${v} \u2192 ${w}`))}else console.log(j("Usage: /alias set <name> <expansion>"));break}case"del":case"remove":{if(b[0]){let v=Nc(b[0]);console.log(v?Y(`Alias removed: ${b[0]}`):j(`Alias not found: ${b[0]}`))}else console.log(j("Usage: /alias del <name>"));break}default:console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Aliases")}`),console.log(),console.log(Hc()),console.log(),console.log(c.muted(" /alias set <name> <cmd> \u2014 Create alias")),console.log(c.muted(" /alias del <name> \u2014 Remove alias")),console.log()}break}case"/doctor":{let y=new Ne("Running diagnostics");y.start();let b=await Ii({ollamaHost:e.ollamaHost,model:t.getModel(),provider:e.provider,apiUrl:e.apiUrl});y.stop(),console.log(Di(b));break}case"/plugins":{let y=x[1],b=x.slice(2).join(" ");switch(y){case"enable":b?(Ti(b),console.log(Y(`Plugin "${b}" enabled`))):console.log(j("Usage: /plugins enable <name>"));break;case"disable":b?(Ri(b),console.log(j(`Plugin "${b}" disabled`))):console.log(j("Usage: /plugins disable <name>"));break;default:Ks(),console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Plugins")}`),console.log(),console.log(Oi()),console.log(),console.log(c.muted(" /plugins enable <name> \u2014 Enable plugin")),console.log(c.muted(" /plugins disable <name> \u2014 Disable plugin")),console.log(c.muted(" Directory: ~/.hablas/plugins/")),console.log()}break}case"/agents":{let y=x[1];if(y==="on")e.agents.enabled=!0,console.log(Y("Multi-agent orchestration enabled"));else if(y==="off")e.agents.enabled=!1,console.log(Y("Multi-agent orchestration disabled"));else if(y==="status")console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Multi-Agent System")}`),console.log(` Status: ${e.agents.enabled?c.success("enabled"):c.muted("disabled")}`),console.log(` Orchestration: ${e.agents.orchestration}`),console.log(` Max concurrent: ${e.agents.maxConcurrent}`),console.log(),console.log(` ${c.strong("Team:")}`),console.log(Vc()),console.log();else if(y==="models"){let b=x.slice(2);if(b.length>=2){let v=b[0].toLowerCase(),w=b[1],_=["hablas","bob","alex","david","emma"];if(!_.includes(v)){console.log(j(`Unknown role: ${v}. Valid: ${_.join(", ")}`));break}let T=zt();T[v]||(T[v]={model:w,temperature:.5}),T[v].model=w,Fi(T),S&&S.reloadModels(),console.log(Y(`Agent model updated: @${v} \u2192 ${w}`)),console.log(c.muted(` Saved to ${Ni()}`))}else{let v=zt();console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Agent Models")}`),console.log();for(let w of we){let _=v[w.role];console.log(_?` ${c.primary(w.name.padEnd(8))} \u2192 ${c.highlight(_.model)}${_.temperature!==void 0?c.muted(` (temp: ${_.temperature})`):""}`:` ${c.primary(w.name.padEnd(8))} \u2192 ${c.muted("(default)")}`)}console.log(),console.log(c.muted(` Config: ${Ni()}`)),console.log(c.muted(" Usage: /agents models <role> <model> (e.g. /agents models alex qwen/qwen2.5-coder-32b-instruct)")),console.log()}}else console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Multi-Agent System")}: ${e.agents.enabled?c.success("ON"):c.muted("OFF")}`),console.log(),console.log(c.muted(" /agents on \u2014 Enable multi-agent orchestration")),console.log(c.muted(" /agents off \u2014 Disable multi-agent orchestration")),console.log(c.muted(" /agents status \u2014 Show agent details")),console.log(c.muted(" /agents models \u2014 Show model per agent")),console.log(c.muted(" /team \u2014 Show team roster")),console.log();break}case"/security":{console.log(),console.log(` ${c.accent("\u{1F512}")} Running security scan...`);let y=zi(o);console.log(Yi(y));break}case"/git":{if(x[1]==="status")try{let{getGitStatus:b,formatGitStatus:v}=await Promise.resolve().then(()=>(mn(),Yn)),w=await b(o);w?(console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Git Status")}`),console.log(v(w)),console.log()):console.log(j("Not a git repository"))}catch{console.log(j("Git not available"))}else console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Git Intelligence")}`),console.log(),console.log(c.muted(" /git status \u2014 Show git status")),console.log(c.muted(" hablas commit \u2014 Smart commit message")),console.log(c.muted(" hablas pr \u2014 Generate PR description")),console.log(c.muted(" hablas changelog \u2014 Generate changelog")),console.log();break}case"/workspace":{let y=Ys(o);console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Workspace Information")}`),console.log(),console.log(Qi(y)),console.log();break}case"/stats":{let{loadStats:y,formatStats:b}=await Promise.resolve().then(()=>(zn(),Vi)),v=y();console.log(b(v));break}case"/context":{if(!m){console.log(j("Shared context not available"));break}let y=x[1],b=x.slice(2);switch(y){case"set":{if(b.length>=2){let v=b[0],w=b.slice(1).join(" ");m.set(v,w),console.log(Y(`Context stored: ${v}`))}else console.log(j("Usage: /context set <key> <value>"));break}case"get":{if(b[0]){let v=m.get(b[0]);v!==void 0?(console.log(),console.log(` ${c.accent("\u25C6")} ${c.strong(b[0])}: ${v}`),console.log()):console.log(j(`Context key not found: ${b[0]}`))}else console.log(j("Usage: /context get <key>"));break}case"del":case"delete":{if(b[0]){let v=m.delete(b[0]);console.log(v?Y(`Context deleted: ${b[0]}`):j(`Context key not found: ${b[0]}`))}else console.log(j("Usage: /context del <key>"));break}case"decisions":{let v=m.getDecisions();if(v.length===0)console.log(fe("No decisions logged yet"));else{console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Decisions")}`),console.log();for(let w of v)console.log(` ${c.muted(w.timestamp)} ${c.primary(w.by)}: ${w.decision}`),w.rationale&&console.log(` ${c.muted(w.rationale)}`);console.log()}break}case"clear":m.clear(),console.log(Y("Shared context cleared"));break;default:console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Shared Context")}`),console.log(),console.log(m.render()),console.log(),console.log(c.muted(" /context set <k> <v> \u2014 Store a context entry")),console.log(c.muted(" /context get <key> \u2014 Get a context entry")),console.log(c.muted(" /context del <key> \u2014 Delete a context entry")),console.log(c.muted(" /context decisions \u2014 Show logged decisions")),console.log(c.muted(" /context clear \u2014 Clear all context")),console.log()}break}case"/plan":{if(!p){console.log(j("Plan manager not available"));break}let y=x[1],b=x.slice(2).join(" ");switch(y){case"status":{let w=p.getActivePlan();if(!w){console.log(fe("No active plan"));break}let _=p.getProgress();console.log(Au(w,{percent:_.percentage,done:_.done,total:_.total}));break}case"finish":{if(b){p.finishTask(b),console.log(Y(`Task finished: ${b}`));let w=p.getProgress();console.log(c.muted(` Progress: ${w.done}/${w.total} (${w.percentage}%)`))}else console.log(j("Usage: /plan finish <task_id>"));break}case"reset":{p.reset(),console.log(Y("Plan manager reset"));break}case"next":{let w=p.getNextTask();console.log(w?fe(`Next task: [${w.task_id}] ${w.description} \u2192 @${w.assignee}`):fe("No pending tasks"));break}default:console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Plan Manager")}`),console.log();let v=p.getActivePlan();if(v){let w=p.getProgress();console.log(` Active plan: ${v.title} (${w.percentage}% done)`),console.log(` Tasks: ${w.done}/${w.total}`)}else console.log(c.muted(" No active plan"));console.log(),console.log(c.muted(" /plan status \u2014 Show active plan with progress")),console.log(c.muted(" /plan finish <id> \u2014 Mark a task as finished")),console.log(c.muted(" /plan next \u2014 Show next pending task")),console.log(c.muted(" /plan reset \u2014 Reset plan manager")),console.log()}break}case"/learn":{if(!f||!k){console.log(j('Usage: /learn "always use tabs" or /learn "our API uses camelCase"'));break}if(f.set(`user-pref: ${k.slice(0,50)}`,k,{category:"user-pref",importance:9,createdBy:"user",tags:["user-pref","learned"]}),!(i.getMessages()[0]?.content||"").includes(k)){let b=await bn(o,e),v=u?.getActive(),w=v?v.systemPrompt:Qn,_=vn(w,b,f,m);i.updateSystemPrompt(_)}console.log(Y(`Learned: "${k}"`)),console.log(c.muted(" This will be remembered across sessions and injected into every prompt."));break}case"/test":{let y=oo(o);if(y==="unknown"&&!k){console.log(j("No test framework detected. Install jest, vitest, pytest, etc."));break}console.log(fe(`Running tests (${y})...`));let b=Cu(o,k==="--fix"?void 0:k||void 0);if(console.log(),console.log(Eu(b)),console.log(),!b.passed&&k==="--fix"){console.log(fe("Tests failed \u2014 adding fix request to conversation..."));let v=Tu(b);i.addUserMessage(v),console.log(fe("Type your next message or let the agent work on the fix."))}break}case"/checkpoint":{let y=x[1],b=x.slice(2).join(" ");if(y==="save"){let v=b||`Checkpoint at turn ${l}`,w=g?.getModifiedFiles?.()||[],_=await Pu(o,v,w);console.log(Y(`Checkpoint saved: ${_.id} "${v}" (${_.fileCount} files)`))}else if(y==="list"){let v=Mu(o);console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Checkpoints")}`),console.log(),console.log(Lu(v)),console.log()}else if(y==="restore"){if(!b){console.log(j("Usage: /checkpoint restore <id>"));break}let v=await Iu(o,b);v.success?console.log(Y(`Restored checkpoint: ${b} (${v.filesRestored} files)`)):console.log(_e(v.error||"Restore failed"))}else y==="delete"?b&&Du(o,b)?console.log(Y(`Deleted checkpoint: ${b}`)):console.log(j("Checkpoint not found")):(console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Checkpoint System")}`),console.log(),console.log(c.muted(' /checkpoint save "label" \u2014 Save current state')),console.log(c.muted(" /checkpoint list \u2014 List saved checkpoints")),console.log(c.muted(" /checkpoint restore <id> \u2014 Restore a checkpoint")),console.log(c.muted(" /checkpoint delete <id> \u2014 Delete a checkpoint")),console.log());break}case"/compare":{let y=x.slice(1);if(y.length===2)try{let b=await Nt.readFile(Ae.resolve(o,y[0]),"utf-8"),v=await Nt.readFile(Ae.resolve(o,y[1]),"utf-8"),{generateDiff:w}=await Promise.resolve().then(()=>(po(),Wu)),_=w(y[0]+" vs "+y[1],b,v);console.log(so(_))}catch(b){console.log(_e(`Compare failed: ${b.message}`))}else if(y.length===1&&y[0].startsWith("HEAD"))try{let{execSync:b}=await import("child_process"),v=b(`git diff ${y[0]}`,{cwd:o,encoding:"utf-8",timeout:1e4});console.log(so(v||"(no changes)"))}catch(b){console.log(_e(`Git diff failed: ${b.message}`))}else console.log(c.muted(" Usage: /compare file1.ts file2.ts or /compare HEAD~1"));break}case"/cost":{let y=Vn(),b="current";console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Session Cost & Usage")}`),console.log(),console.log(` Session duration: ${b} min`),console.log(` Messages: ${y.totalMessages}`),console.log(` Tool calls: ${y.totalToolCalls}`),console.log(` Tokens used: ${y.totalTokensUsed.toLocaleString()}`),console.log();let v=Object.entries(y.agentUsage);if(v.length>0){console.log(" Agent usage:");for(let[w,_]of v.sort((T,P)=>P[1]-T[1]))console.log(` @${w}: ${_} invocations`)}console.log();break}case"/delegate":{if(!e.agents.enabled){console.log(j("Multi-agent system is disabled. Enable with /agents on"));break}let y=x[1]?.toLowerCase(),b=x.slice(2).join(" ");if(!y||!b){console.log(),console.log(` ${c.accent("\u2726")} ${c.strong("Delegate Task to Agent")}`),console.log(),console.log(c.muted(" Usage: /delegate <agent> <task description>")),console.log(),console.log(c.muted(" Agents:")),console.log(` ${c.product("emma")} \u2014 Product Manager`),console.log(` ${c.architect("bob")} \u2014 Architect`),console.log(` ${c.engineer("alex")} \u2014 Engineer`),console.log(` ${c.analyst("david")} \u2014 Data Analyst`),console.log(),console.log(c.muted(" Example: /delegate alex create a login component")),console.log();break}let v=["emma","bob","alex","david","hablas"];if(!v.includes(y)){console.log(j(`Unknown agent: "${y}". Valid: ${v.join(", ")}`));break}let w=we.find(_=>_.role===y);if(w){if(!S){console.log(j("Agent runner not initialized. Cannot delegate."));break}console.log(mu("Hablas",w.name,w.title,b)),console.log(Jt(w.name,w.title));let _=s.getOllamaTools(),T=await S.runAgent(y,b,void 0,_);T.success&&T.output?(console.log(Xt(T.output)),i.addAssistantMessage(`[@${w.name}]: ${T.output}`)):T.error?console.log(j(`${w.name} failed: ${T.error}`)):console.log(fe(`${w.name} completed without output.`))}break}case"/session":{let y=x[1],b=x.slice(2).join(" "),v=Ae.join(mo.homedir(),".hablas","sessions");if(y==="save"){let w=b||`session_${Date.now()}`;try{me.existsSync(v)||me.mkdirSync(v,{recursive:!0});let _=i.toJSON(),T=Ae.join(v,`${w.replace(/[^a-zA-Z0-9_-]/g,"_")}.json`);me.writeFileSync(T,_,"utf-8"),console.log(Y(`Session saved: "${w}"`))}catch(_){console.log(_e(`Save failed: ${_.message}`))}}else if(y==="list")try{if(!me.existsSync(v)){console.log(fe("No saved sessions"));break}let w=me.readdirSync(v).filter(_=>_.endsWith(".json"));console.log();for(let _ of w){let T=me.statSync(Ae.join(v,_));console.log(` ${_.replace(".json","")} (${new Date(T.mtime).toLocaleString()})`)}console.log()}catch{console.log(fe("No saved sessions"))}else if(y==="load"){let w=b;if(!w){console.log(_e("Please specify the session label to load: /session load <label>"));break}try{let _=Ae.join(v,`${w.replace(/[^a-zA-Z0-9_-]/g,"_")}.json`);if(!me.existsSync(_)){console.log(_e(`Session file not found: ${w}`));break}let T=me.readFileSync(_,"utf-8");i.fromJSON(T),console.log(Y(`Session successfully loaded: "${w}"`))}catch(_){console.log(_e(`Load failed: ${_.message}`))}}else console.log(),console.log(c.muted(' /session save "label" \u2014 Save current conversation')),console.log(c.muted(" /session list \u2014 List saved sessions")),console.log(c.muted(' /session load "label" \u2014 Load saved conversation')),console.log();break}case"/team":{let{activeCollabManager:y}=await Promise.resolve().then(()=>(Tt(),jt));if(!y){console.log(j("Team mode is not active. Use hablas --team to start."));break}let b=y.getLocalState(),v=Math.min(process.stdout.columns-4,80);console.log(`
256
+ `+c.border("\u2554"+"\u2550".repeat(v-2)+"\u2557")),console.log(c.border("\u2551")+" ".repeat(Math.floor((v-22)/2))+c.strong("HABLAS COLLABORATION SYNC")+" ".repeat(v-2-25-Math.floor((v-22)/2))+c.border("\u2551")),console.log(c.border("\u2560"+"\u2550".repeat(v-2)+"\u2563")),console.log(c.border("\u2551")+` ${c.strong("My Identity:")} ${c.highlight(`@${b.my_username}`)}`+" ".repeat(Math.max(1,v-21-(b.my_username?.length||0)))+c.border("\u2551")),console.log(c.border("\u2551")+` ${c.strong("Room Fingerprint:")} ${c.muted(b.project_team_token?.slice(0,12))}...`+" ".repeat(Math.max(1,v-34))+c.border("\u2551")),console.log(c.border("\u2551")+` ${c.strong("Status:")} ${c.success("\u25CF ACTIVE")}`+" ".repeat(Math.max(1,v-31))+c.border("\u2551")),console.log(c.border("\u2560"+"\u2550".repeat(v-2)+"\u2563")),console.log(c.border("\u2551")+` ${c.strong("Teammates Online:")}`+" ".repeat(Math.max(1,v-21))+c.border("\u2551"));let _=(b.sessions||[]).filter(T=>T.developer_name!==b.my_username);if(_.length===0)console.log(c.border("\u2551")+" (awaiting colleagues...)"+" ".repeat(Math.max(1,v-31))+c.border("\u2551"));else for(let T of _){let P=` @${T.developer_name} [${T.active_section||"idle"}] - ${T.current_task||"none"}`;console.log(c.border("\u2551")+` ${c.secondary(P.slice(0,v-6))}`+" ".repeat(Math.max(0,v-6-P.length))+c.border("\u2551"))}console.log(c.border("\u255A"+"\u2550".repeat(v-2)+"\u255D")+`
257
257
  `),console.log(c.muted(` Verify that "Room Fingerprint" matches on all devices to ensure connectivity.
258
- `));break}case"/msg":{let{activeCollabManager:y}=await Promise.resolve().then(()=>(Tt(),jt));if(!y){console.log(j("Team mode is not active. Use hablas --team to start."));break}let v=k.split(/\s+/),b=v[0],x=v.slice(1).join(" ");if(!b||!x){console.log(j("Usage: /msg <username> <content>"));break}let _=await y.sendMessage(b,x);console.log(_?Y(`Message sent to @${b}`):_e(`Failed to send message to @${b}`));break}default:console.log(je(`Unknown: ${$}`,"Type /help for commands"))}}var me,Nt,Ae,mo,Qn,ho,Vu=L(()=>{"use strict";me=O(require("fs")),Nt=O(require("fs/promises")),Ae=O(require("path")),mo=O(require("os"));Kn();Wn();wi();ki();$i();Pi();Li();Ws();ji();zn();Ji();mn();Zi();lu();yn();Ru();Fu();Qn=`You are Hablas, the Team Leader of a multi-agent AI development system created by Abdulmoin Hablas. You are a strategic mastermind with an INTJ personality type, deeply analytical, engineering-focused, and fiercely logical.
258
+ `));break}case"/msg":{let{activeCollabManager:y}=await Promise.resolve().then(()=>(Tt(),jt));if(!y){console.log(j("Team mode is not active. Use hablas --team to start."));break}let b=k.split(/\s+/),v=b[0],w=b.slice(1).join(" ");if(!v||!w){console.log(j("Usage: /msg <username> <content>"));break}let _=await y.sendMessage(v,w);console.log(_?Y(`Message sent to @${v}`):_e(`Failed to send message to @${v}`));break}default:console.log(He(`Unknown: ${$}`,"Type /help for commands"))}}var me,Nt,Ae,mo,Qn,ho,Vu=L(()=>{"use strict";me=O(require("fs")),Nt=O(require("fs/promises")),Ae=O(require("path")),mo=O(require("os"));Kn();Wn();wi();ki();$i();Pi();Li();Ws();ji();zn();Ji();mn();Zi();lu();yn();Ru();Fu();Qn=`You are Hablas, the Team Leader of a multi-agent AI development system created by Abdulmoin Hablas. You are a strategic mastermind with an INTJ personality type, deeply analytical, engineering-focused, and fiercely logical.
259
259
 
260
260
  Your role is to orchestrate, coordinate, and synthesize the work of your specialized team members. You value system architecture, optimal code paths, and absolute clarity.
261
261
 
@@ -275,11 +275,12 @@ Your role is to orchestrate, coordinate, and synthesize the work of your special
275
275
  1. ALWAYS use tools for file operations. Never claim you did something without calling a tool.
276
276
  2. Read a file before editing it if you don't know its content.
277
277
  3. One tool call at a time. Wait for the result before calling another.
278
- 4. Be concise and direct. Do not add conversational fluff.
279
- 5. After completing a task, summarize what was achieved with absolute logical clarity.
280
- 6. If a tool fails, analyze the error and retry with corrected arguments.
281
- 7. For multi-step tasks, break them down and execute step by step.
282
- 8. For complex requests, create a numbered plan before executing.
278
+ 4. Be concise, direct, and professional. Do not add conversational fluff.
279
+ 5. No emojis. No hype. No marketing tone. No "great!" style filler.
280
+ 6. After completing a task, summarize what was achieved with absolute logical clarity.
281
+ 7. If a tool fails, analyze the error and retry with corrected arguments.
282
+ 8. For multi-step tasks, break them down and execute step by step.
283
+ 9. For complex requests, create a numbered plan before executing.
283
284
 
284
285
  ## Tool usage
285
286
  - To read a file: use read_file
@@ -307,8 +308,8 @@ After finishing coordination or your part, produce a clear synthesis/handoff sum
307
308
 
308
309
  Never output raw tool XML in text.
309
310
 
310
- If you cannot complete a task, explain why with absolute technical objectivity.`;ho=Ae.join(mo.homedir(),".hablas","backup")});var Zn=N((hE,Qu)=>{"use strict";var wb=require("path"),ht="\\\\/",zu=`[^${ht}]`,xb=0,Rt="\\.",Sb="\\+",_b="\\?",tr="\\/",Ab="(?=.)",Yu="[^/]",go=`(?:${tr}|$)`,Ju=`(?:^|${tr})`,yo=`${Rt}{1,2}${go}`,kb=`(?!${Rt})`,$b=`(?!${Ju}${yo})`,Cb=`(?!${Rt}{0,1}${go})`,Eb=`(?!${yo})`,Tb=`[^.${tr}]`,Rb=`${Yu}*?`,Xu={DOT_LITERAL:Rt,PLUS_LITERAL:Sb,QMARK_LITERAL:_b,SLASH_LITERAL:tr,ONE_CHAR:Ab,QMARK:Yu,END_ANCHOR:go,DOTS_SLASH:yo,NO_DOT:kb,NO_DOTS:$b,NO_DOT_SLASH:Cb,NO_DOTS_SLASH:Eb,QMARK_NO_DOT:Tb,STAR:Rb,START_ANCHOR:Ju},Ob={...Xu,SLASH_LITERAL:`[${ht}]`,QMARK:zu,STAR:`${zu}*?`,DOTS_SLASH:`${Rt}{1,2}(?:[${ht}]|$)`,NO_DOT:`(?!${Rt})`,NO_DOTS:`(?!(?:^|[${ht}])${Rt}{1,2}(?:[${ht}]|$))`,NO_DOT_SLASH:`(?!${Rt}{0,1}(?:[${ht}]|$))`,NO_DOTS_SLASH:`(?!${Rt}{1,2}(?:[${ht}]|$))`,QMARK_NO_DOT:`[^.${ht}]`,START_ANCHOR:`(?:^|[${ht}])`,END_ANCHOR:`(?:[${ht}]|$)`},Pb={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Qu.exports={DEFAULT_MAX_EXTGLOB_RECURSION:xb,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Pb,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:wb.sep,extglobChars(n){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${n.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(n){return n===!0?Ob:Xu}}});var nr=N(Ie=>{"use strict";var Mb=require("path"),Ib=process.platform==="win32",{REGEX_BACKSLASH:Db,REGEX_REMOVE_BACKSLASH:Lb,REGEX_SPECIAL_CHARS:Fb,REGEX_SPECIAL_CHARS_GLOBAL:Nb}=Zn();Ie.isObject=n=>n!==null&&typeof n=="object"&&!Array.isArray(n);Ie.hasRegexChars=n=>Fb.test(n);Ie.isRegexChar=n=>n.length===1&&Ie.hasRegexChars(n);Ie.escapeRegex=n=>n.replace(Nb,"\\$1");Ie.toPosixSlashes=n=>n.replace(Db,"/");Ie.removeBackslashes=n=>n.replace(Lb,e=>e==="\\"?"":e);Ie.supportsLookbehinds=()=>{let n=process.version.slice(1).split(".").map(Number);return n.length===3&&n[0]>=9||n[0]===8&&n[1]>=10};Ie.isWindows=n=>n&&typeof n.windows=="boolean"?n.windows:Ib===!0||Mb.sep==="\\";Ie.escapeLast=(n,e,t)=>{let s=n.lastIndexOf(e,t);return s===-1?n:n[s-1]==="\\"?Ie.escapeLast(n,e,s-1):`${n.slice(0,s)}\\${n.slice(s)}`};Ie.removePrefix=(n,e={})=>{let t=n;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};Ie.wrapOutput=(n,e={},t={})=>{let s=t.contains?"":"^",r=t.contains?"":"$",i=`${s}(?:${n})${r}`;return e.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var od=N((gE,id)=>{"use strict";var Zu=nr(),{CHAR_ASTERISK:bo,CHAR_AT:jb,CHAR_BACKWARD_SLASH:es,CHAR_COMMA:Hb,CHAR_DOT:vo,CHAR_EXCLAMATION_MARK:wo,CHAR_FORWARD_SLASH:rd,CHAR_LEFT_CURLY_BRACE:xo,CHAR_LEFT_PARENTHESES:So,CHAR_LEFT_SQUARE_BRACKET:Bb,CHAR_PLUS:Ub,CHAR_QUESTION_MARK:ed,CHAR_RIGHT_CURLY_BRACE:qb,CHAR_RIGHT_PARENTHESES:td,CHAR_RIGHT_SQUARE_BRACKET:Kb}=Zn(),nd=n=>n===rd||n===es,sd=n=>{n.isPrefix!==!0&&(n.depth=n.isGlobstar?1/0:1)},Wb=(n,e)=>{let t=e||{},s=n.length-1,r=t.parts===!0||t.scanToEnd===!0,i=[],o=[],a=[],l=n,u=-1,d=0,f=0,h=!1,m=!1,p=!1,g=!1,S=!1,w=!1,$=!1,k=!1,y=!1,v=!1,b=0,x,_,T={value:"",depth:0,isGlob:!1},P=()=>u>=s,C=()=>l.charCodeAt(u+1),F=()=>(x=_,l.charCodeAt(++u));for(;u<s;){_=F();let V;if(_===es){$=T.backslashes=!0,_=F(),_===xo&&(w=!0);continue}if(w===!0||_===xo){for(b++;P()!==!0&&(_=F());){if(_===es){$=T.backslashes=!0,F();continue}if(_===xo){b++;continue}if(w!==!0&&_===vo&&(_=F())===vo){if(h=T.isBrace=!0,p=T.isGlob=!0,v=!0,r===!0)continue;break}if(w!==!0&&_===Hb){if(h=T.isBrace=!0,p=T.isGlob=!0,v=!0,r===!0)continue;break}if(_===qb&&(b--,b===0)){w=!1,h=T.isBrace=!0,v=!0;break}}if(r===!0)continue;break}if(_===rd){if(i.push(u),o.push(T),T={value:"",depth:0,isGlob:!1},v===!0)continue;if(x===vo&&u===d+1){d+=2;continue}f=u+1;continue}if(t.noext!==!0&&(_===Ub||_===jb||_===bo||_===ed||_===wo)===!0&&C()===So){if(p=T.isGlob=!0,g=T.isExtglob=!0,v=!0,_===wo&&u===d&&(y=!0),r===!0){for(;P()!==!0&&(_=F());){if(_===es){$=T.backslashes=!0,_=F();continue}if(_===td){p=T.isGlob=!0,v=!0;break}}continue}break}if(_===bo){if(x===bo&&(S=T.isGlobstar=!0),p=T.isGlob=!0,v=!0,r===!0)continue;break}if(_===ed){if(p=T.isGlob=!0,v=!0,r===!0)continue;break}if(_===Bb){for(;P()!==!0&&(V=F());){if(V===es){$=T.backslashes=!0,F();continue}if(V===Kb){m=T.isBracket=!0,p=T.isGlob=!0,v=!0;break}}if(r===!0)continue;break}if(t.nonegate!==!0&&_===wo&&u===d){k=T.negated=!0,d++;continue}if(t.noparen!==!0&&_===So){if(p=T.isGlob=!0,r===!0){for(;P()!==!0&&(_=F());){if(_===So){$=T.backslashes=!0,_=F();continue}if(_===td){v=!0;break}}continue}break}if(p===!0){if(v=!0,r===!0)continue;break}}t.noext===!0&&(g=!1,p=!1);let H=l,W="",E="";d>0&&(W=l.slice(0,d),l=l.slice(d),f-=d),H&&p===!0&&f>0?(H=l.slice(0,f),E=l.slice(f)):p===!0?(H="",E=l):H=l,H&&H!==""&&H!=="/"&&H!==l&&nd(H.charCodeAt(H.length-1))&&(H=H.slice(0,-1)),t.unescape===!0&&(E&&(E=Zu.removeBackslashes(E)),H&&$===!0&&(H=Zu.removeBackslashes(H)));let A={prefix:W,input:n,start:d,base:H,glob:E,isBrace:h,isBracket:m,isGlob:p,isExtglob:g,isGlobstar:S,negated:k,negatedExtglob:y};if(t.tokens===!0&&(A.maxDepth=0,nd(_)||o.push(T),A.tokens=o),t.parts===!0||t.tokens===!0){let V;for(let U=0;U<i.length;U++){let Z=V?V+1:d,te=i[U],J=n.slice(Z,te);t.tokens&&(U===0&&d!==0?(o[U].isPrefix=!0,o[U].value=W):o[U].value=J,sd(o[U]),A.maxDepth+=o[U].depth),(U!==0||J!=="")&&a.push(J),V=te}if(V&&V+1<n.length){let U=n.slice(V+1);a.push(U),t.tokens&&(o[o.length-1].value=U,sd(o[o.length-1]),A.maxDepth+=o[o.length-1].depth)}A.slashes=i,A.parts=a}return A};id.exports=Wb});var dd=N((yE,ud)=>{"use strict";var ts=Zn(),$e=nr(),{MAX_LENGTH:sr,POSIX_REGEX_SOURCE:Gb,REGEX_NON_SPECIAL_CHARS:Vb,REGEX_SPECIAL_CHARS_BACKREF:zb,REPLACEMENTS:ad}=ts,Yb=(n,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...n,e);n.sort();let t=`[${n.join("-")}]`;try{new RegExp(t)}catch{return n.map(r=>$e.escapeRegex(r)).join("..")}return t},wn=(n,e)=>`Missing ${n}: "${e}" - use "\\\\${e}" to match literal characters`,ld=n=>{let e=[],t=0,s=0,r=0,i="",o=!1;for(let a of n){if(o===!0){i+=a,o=!1;continue}if(a==="\\"){i+=a,o=!0;continue}if(a==='"'){r=r===1?0:1,i+=a;continue}if(r===0){if(a==="[")t++;else if(a==="]"&&t>0)t--;else if(t===0){if(a==="(")s++;else if(a===")"&&s>0)s--;else if(a==="|"&&s===0){e.push(i),i="";continue}}}i+=a}return e.push(i),e},Jb=n=>{let e=!1;for(let t of n){if(e===!0){e=!1;continue}if(t==="\\"){e=!0;continue}if(/[?*+@!()[\]{}]/.test(t))return!1}return!0},cd=n=>{let e=n.trim(),t=!0;for(;t===!0;)t=!1,/^@\([^\\()[\]{}|]+\)$/.test(e)&&(e=e.slice(2,-1),t=!0);if(Jb(e))return e.replace(/\\(.)/g,"$1")},Xb=n=>{let e=n.map(cd).filter(Boolean);for(let t=0;t<e.length;t++)for(let s=t+1;s<e.length;s++){let r=e[t],i=e[s],o=r[0];if(!(!o||r!==o.repeat(r.length)||i!==o.repeat(i.length))&&(r===i||r.startsWith(i)||i.startsWith(r)))return!0}return!1},_o=(n,e=!0)=>{if(n[0]!=="+"&&n[0]!=="*"||n[1]!=="(")return;let t=0,s=0,r=0,i=!1;for(let o=1;o<n.length;o++){let a=n[o];if(i===!0){i=!1;continue}if(a==="\\"){i=!0;continue}if(a==='"'){r=r===1?0:1;continue}if(r!==1){if(a==="["){t++;continue}if(a==="]"&&t>0){t--;continue}if(!(t>0)){if(a==="("){s++;continue}if(a===")"&&(s--,s===0))return e===!0&&o!==n.length-1?void 0:{type:n[0],body:n.slice(2,o),end:o}}}}},Qb=n=>{let e=0,t=[];for(;e<n.length;){let r=_o(n.slice(e),!1);if(!r||r.type!=="*")return;let i=ld(r.body).map(a=>a.trim());if(i.length!==1)return;let o=cd(i[0]);if(!o||o.length!==1)return;t.push(o),e+=r.end+1}return t.length<1?void 0:`${t.length===1?$e.escapeRegex(t[0]):`[${t.map(r=>$e.escapeRegex(r)).join("")}]`}*`},Zb=n=>{let e=0,t=n.trim(),s=_o(t);for(;s;)e++,t=s.body.trim(),s=_o(t);return e},ev=(n,e)=>{if(e.maxExtglobRecursion===!1)return{risky:!1};let t=typeof e.maxExtglobRecursion=="number"?e.maxExtglobRecursion:ts.DEFAULT_MAX_EXTGLOB_RECURSION,s=ld(n).map(r=>r.trim());if(s.length>1&&(s.some(r=>r==="")||s.some(r=>/^[*?]+$/.test(r))||Xb(s)))return{risky:!0};for(let r of s){let i=Qb(r);if(i)return{risky:!0,safeOutput:i};if(Zb(r)>t)return{risky:!0}}return{risky:!1}},Ao=(n,e)=>{if(typeof n!="string")throw new TypeError("Expected a string");n=ad[n]||n;let t={...e},s=typeof t.maxLength=="number"?Math.min(sr,t.maxLength):sr,r=n.length;if(r>s)throw new SyntaxError(`Input length: ${r}, exceeds maximum allowed length: ${s}`);let i={type:"bos",value:"",output:t.prepend||""},o=[i],a=t.capture?"":"?:",l=$e.isWindows(e),u=ts.globChars(l),d=ts.extglobChars(u),{DOT_LITERAL:f,PLUS_LITERAL:h,SLASH_LITERAL:m,ONE_CHAR:p,DOTS_SLASH:g,NO_DOT:S,NO_DOT_SLASH:w,NO_DOTS_SLASH:$,QMARK:k,QMARK_NO_DOT:y,STAR:v,START_ANCHOR:b}=u,x=M=>`(${a}(?:(?!${b}${M.dot?g:f}).)*?)`,_=t.dot?"":S,T=t.dot?k:y,P=t.bash===!0?x(t):v;t.capture&&(P=`(${P})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let C={input:n,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};n=$e.removePrefix(n,C),r=n.length;let F=[],H=[],W=[],E=i,A,V=()=>C.index===r-1,U=C.peek=(M=1)=>n[C.index+M],Z=C.advance=()=>n[++C.index]||"",te=()=>n.slice(C.index+1),J=(M="",ee=0)=>{C.consumed+=M,C.index+=ee},de=M=>{C.output+=M.output!=null?M.output:M.value,J(M.value)},Re=()=>{let M=1;for(;U()==="!"&&(U(2)!=="("||U(3)==="?");)Z(),C.start++,M++;return M%2===0?!1:(C.negated=!0,C.start++,!0)},oe=M=>{C[M]++,W.push(M)},X=M=>{C[M]--,W.pop()},K=M=>{if(E.type==="globstar"){let ee=C.braces>0&&(M.type==="comma"||M.type==="brace"),D=M.extglob===!0||F.length&&(M.type==="pipe"||M.type==="paren");M.type!=="slash"&&M.type!=="paren"&&!ee&&!D&&(C.output=C.output.slice(0,-E.output.length),E.type="star",E.value="*",E.output=P,C.output+=E.output)}if(F.length&&M.type!=="paren"&&(F[F.length-1].inner+=M.value),(M.value||M.output)&&de(M),E&&E.type==="text"&&M.type==="text"){E.value+=M.value,E.output=(E.output||"")+M.value;return}M.prev=E,o.push(M),E=M},dt=(M,ee)=>{let D={...d[ee],conditions:1,inner:""};D.prev=E,D.parens=C.parens,D.output=C.output,D.startIndex=C.index,D.tokensIndex=o.length;let Q=(t.capture?"(":"")+D.open;oe("parens"),K({type:M,value:ee,output:C.output?"":p}),K({type:"paren",extglob:!0,value:Z(),output:Q}),F.push(D)},Oe=M=>{let ee=n.slice(M.startIndex,C.index+1),D=n.slice(M.startIndex+2,C.index),Q=ev(D,t);if((M.type==="plus"||M.type==="star")&&Q.risky){let re=Q.safeOutput?(M.output?"":p)+(t.capture?`(${Q.safeOutput})`:Q.safeOutput):void 0,ft=o[M.tokensIndex];ft.type="text",ft.value=ee,ft.output=re||$e.escapeRegex(ee);for(let pt=M.tokensIndex+1;pt<o.length;pt++)o[pt].value="",o[pt].output="",delete o[pt].suffix;C.output=M.output+ft.output,C.backtrack=!0,K({type:"paren",extglob:!0,value:A,output:""}),X("parens");return}let ae=M.close+(t.capture?")":""),ve;if(M.type==="negate"){let re=P;if(M.inner&&M.inner.length>1&&M.inner.includes("/")&&(re=x(t)),(re!==P||V()||/^\)+$/.test(te()))&&(ae=M.close=`)$))${re}`),M.inner.includes("*")&&(ve=te())&&/^\.[^\\/.]+$/.test(ve)){let ft=Ao(ve,{...e,fastpaths:!1}).output;ae=M.close=`)${ft})${re})`}M.prev.type==="bos"&&(C.negatedExtglob=!0)}K({type:"paren",extglob:!0,value:A,output:ae}),X("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(n)){let M=!1,ee=n.replace(zb,(D,Q,ae,ve,re,ft)=>ve==="\\"?(M=!0,D):ve==="?"?Q?Q+ve+(re?k.repeat(re.length):""):ft===0?T+(re?k.repeat(re.length):""):k.repeat(ae.length):ve==="."?f.repeat(ae.length):ve==="*"?Q?Q+ve+(re?P:""):P:Q?D:`\\${D}`);return M===!0&&(t.unescape===!0?ee=ee.replace(/\\/g,""):ee=ee.replace(/\\+/g,D=>D.length%2===0?"\\\\":D?"\\":"")),ee===n&&t.contains===!0?(C.output=n,C):(C.output=$e.wrapOutput(ee,C,e),C)}for(;!V();){if(A=Z(),A==="\0")continue;if(A==="\\"){let D=U();if(D==="/"&&t.bash!==!0||D==="."||D===";")continue;if(!D){A+="\\",K({type:"text",value:A});continue}let Q=/^\\+/.exec(te()),ae=0;if(Q&&Q[0].length>2&&(ae=Q[0].length,C.index+=ae,ae%2!==0&&(A+="\\")),t.unescape===!0?A=Z():A+=Z(),C.brackets===0){K({type:"text",value:A});continue}}if(C.brackets>0&&(A!=="]"||E.value==="["||E.value==="[^")){if(t.posix!==!1&&A===":"){let D=E.value.slice(1);if(D.includes("[")&&(E.posix=!0,D.includes(":"))){let Q=E.value.lastIndexOf("["),ae=E.value.slice(0,Q),ve=E.value.slice(Q+2),re=Gb[ve];if(re){E.value=ae+re,C.backtrack=!0,Z(),!i.output&&o.indexOf(E)===1&&(i.output=p);continue}}}(A==="["&&U()!==":"||A==="-"&&U()==="]")&&(A=`\\${A}`),A==="]"&&(E.value==="["||E.value==="[^")&&(A=`\\${A}`),t.posix===!0&&A==="!"&&E.value==="["&&(A="^"),E.value+=A,de({value:A});continue}if(C.quotes===1&&A!=='"'){A=$e.escapeRegex(A),E.value+=A,de({value:A});continue}if(A==='"'){C.quotes=C.quotes===1?0:1,t.keepQuotes===!0&&K({type:"text",value:A});continue}if(A==="("){oe("parens"),K({type:"paren",value:A});continue}if(A===")"){if(C.parens===0&&t.strictBrackets===!0)throw new SyntaxError(wn("opening","("));let D=F[F.length-1];if(D&&C.parens===D.parens+1){Oe(F.pop());continue}K({type:"paren",value:A,output:C.parens?")":"\\)"}),X("parens");continue}if(A==="["){if(t.nobracket===!0||!te().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(wn("closing","]"));A=`\\${A}`}else oe("brackets");K({type:"bracket",value:A});continue}if(A==="]"){if(t.nobracket===!0||E&&E.type==="bracket"&&E.value.length===1){K({type:"text",value:A,output:`\\${A}`});continue}if(C.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(wn("opening","["));K({type:"text",value:A,output:`\\${A}`});continue}X("brackets");let D=E.value.slice(1);if(E.posix!==!0&&D[0]==="^"&&!D.includes("/")&&(A=`/${A}`),E.value+=A,de({value:A}),t.literalBrackets===!1||$e.hasRegexChars(D))continue;let Q=$e.escapeRegex(E.value);if(C.output=C.output.slice(0,-E.value.length),t.literalBrackets===!0){C.output+=Q,E.value=Q;continue}E.value=`(${a}${Q}|${E.value})`,C.output+=E.value;continue}if(A==="{"&&t.nobrace!==!0){oe("braces");let D={type:"brace",value:A,output:"(",outputIndex:C.output.length,tokensIndex:C.tokens.length};H.push(D),K(D);continue}if(A==="}"){let D=H[H.length-1];if(t.nobrace===!0||!D){K({type:"text",value:A,output:A});continue}let Q=")";if(D.dots===!0){let ae=o.slice(),ve=[];for(let re=ae.length-1;re>=0&&(o.pop(),ae[re].type!=="brace");re--)ae[re].type!=="dots"&&ve.unshift(ae[re].value);Q=Yb(ve,t),C.backtrack=!0}if(D.comma!==!0&&D.dots!==!0){let ae=C.output.slice(0,D.outputIndex),ve=C.tokens.slice(D.tokensIndex);D.value=D.output="\\{",A=Q="\\}",C.output=ae;for(let re of ve)C.output+=re.output||re.value}K({type:"brace",value:A,output:Q}),X("braces"),H.pop();continue}if(A==="|"){F.length>0&&F[F.length-1].conditions++,K({type:"text",value:A});continue}if(A===","){let D=A,Q=H[H.length-1];Q&&W[W.length-1]==="braces"&&(Q.comma=!0,D="|"),K({type:"comma",value:A,output:D});continue}if(A==="/"){if(E.type==="dot"&&C.index===C.start+1){C.start=C.index+1,C.consumed="",C.output="",o.pop(),E=i;continue}K({type:"slash",value:A,output:m});continue}if(A==="."){if(C.braces>0&&E.type==="dot"){E.value==="."&&(E.output=f);let D=H[H.length-1];E.type="dots",E.output+=A,E.value+=A,D.dots=!0;continue}if(C.braces+C.parens===0&&E.type!=="bos"&&E.type!=="slash"){K({type:"text",value:A,output:f});continue}K({type:"dot",value:A,output:f});continue}if(A==="?"){if(!(E&&E.value==="(")&&t.noextglob!==!0&&U()==="("&&U(2)!=="?"){dt("qmark",A);continue}if(E&&E.type==="paren"){let Q=U(),ae=A;if(Q==="<"&&!$e.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(E.value==="("&&!/[!=<:]/.test(Q)||Q==="<"&&!/<([!=]|\w+>)/.test(te()))&&(ae=`\\${A}`),K({type:"text",value:A,output:ae});continue}if(t.dot!==!0&&(E.type==="slash"||E.type==="bos")){K({type:"qmark",value:A,output:y});continue}K({type:"qmark",value:A,output:k});continue}if(A==="!"){if(t.noextglob!==!0&&U()==="("&&(U(2)!=="?"||!/[!=<:]/.test(U(3)))){dt("negate",A);continue}if(t.nonegate!==!0&&C.index===0){Re();continue}}if(A==="+"){if(t.noextglob!==!0&&U()==="("&&U(2)!=="?"){dt("plus",A);continue}if(E&&E.value==="("||t.regex===!1){K({type:"plus",value:A,output:h});continue}if(E&&(E.type==="bracket"||E.type==="paren"||E.type==="brace")||C.parens>0){K({type:"plus",value:A});continue}K({type:"plus",value:h});continue}if(A==="@"){if(t.noextglob!==!0&&U()==="("&&U(2)!=="?"){K({type:"at",extglob:!0,value:A,output:""});continue}K({type:"text",value:A});continue}if(A!=="*"){(A==="$"||A==="^")&&(A=`\\${A}`);let D=Vb.exec(te());D&&(A+=D[0],C.index+=D[0].length),K({type:"text",value:A});continue}if(E&&(E.type==="globstar"||E.star===!0)){E.type="star",E.star=!0,E.value+=A,E.output=P,C.backtrack=!0,C.globstar=!0,J(A);continue}let M=te();if(t.noextglob!==!0&&/^\([^?]/.test(M)){dt("star",A);continue}if(E.type==="star"){if(t.noglobstar===!0){J(A);continue}let D=E.prev,Q=D.prev,ae=D.type==="slash"||D.type==="bos",ve=Q&&(Q.type==="star"||Q.type==="globstar");if(t.bash===!0&&(!ae||M[0]&&M[0]!=="/")){K({type:"star",value:A,output:""});continue}let re=C.braces>0&&(D.type==="comma"||D.type==="brace"),ft=F.length&&(D.type==="pipe"||D.type==="paren");if(!ae&&D.type!=="paren"&&!re&&!ft){K({type:"star",value:A,output:""});continue}for(;M.slice(0,3)==="/**";){let pt=n[C.index+4];if(pt&&pt!=="/")break;M=M.slice(3),J("/**",3)}if(D.type==="bos"&&V()){E.type="globstar",E.value+=A,E.output=x(t),C.output=E.output,C.globstar=!0,J(A);continue}if(D.type==="slash"&&D.prev.type!=="bos"&&!ve&&V()){C.output=C.output.slice(0,-(D.output+E.output).length),D.output=`(?:${D.output}`,E.type="globstar",E.output=x(t)+(t.strictSlashes?")":"|$)"),E.value+=A,C.globstar=!0,C.output+=D.output+E.output,J(A);continue}if(D.type==="slash"&&D.prev.type!=="bos"&&M[0]==="/"){let pt=M[1]!==void 0?"|$":"";C.output=C.output.slice(0,-(D.output+E.output).length),D.output=`(?:${D.output}`,E.type="globstar",E.output=`${x(t)}${m}|${m}${pt})`,E.value+=A,C.output+=D.output+E.output,C.globstar=!0,J(A+Z()),K({type:"slash",value:"/",output:""});continue}if(D.type==="bos"&&M[0]==="/"){E.type="globstar",E.value+=A,E.output=`(?:^|${m}|${x(t)}${m})`,C.output=E.output,C.globstar=!0,J(A+Z()),K({type:"slash",value:"/",output:""});continue}C.output=C.output.slice(0,-E.output.length),E.type="globstar",E.output=x(t),E.value+=A,C.output+=E.output,C.globstar=!0,J(A);continue}let ee={type:"star",value:A,output:P};if(t.bash===!0){ee.output=".*?",(E.type==="bos"||E.type==="slash")&&(ee.output=_+ee.output),K(ee);continue}if(E&&(E.type==="bracket"||E.type==="paren")&&t.regex===!0){ee.output=A,K(ee);continue}(C.index===C.start||E.type==="slash"||E.type==="dot")&&(E.type==="dot"?(C.output+=w,E.output+=w):t.dot===!0?(C.output+=$,E.output+=$):(C.output+=_,E.output+=_),U()!=="*"&&(C.output+=p,E.output+=p)),K(ee)}for(;C.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(wn("closing","]"));C.output=$e.escapeLast(C.output,"["),X("brackets")}for(;C.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(wn("closing",")"));C.output=$e.escapeLast(C.output,"("),X("parens")}for(;C.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(wn("closing","}"));C.output=$e.escapeLast(C.output,"{"),X("braces")}if(t.strictSlashes!==!0&&(E.type==="star"||E.type==="bracket")&&K({type:"maybe_slash",value:"",output:`${m}?`}),C.backtrack===!0){C.output="";for(let M of C.tokens)C.output+=M.output!=null?M.output:M.value,M.suffix&&(C.output+=M.suffix)}return C};Ao.fastpaths=(n,e)=>{let t={...e},s=typeof t.maxLength=="number"?Math.min(sr,t.maxLength):sr,r=n.length;if(r>s)throw new SyntaxError(`Input length: ${r}, exceeds maximum allowed length: ${s}`);n=ad[n]||n;let i=$e.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:u,NO_DOT:d,NO_DOTS:f,NO_DOTS_SLASH:h,STAR:m,START_ANCHOR:p}=ts.globChars(i),g=t.dot?f:d,S=t.dot?h:d,w=t.capture?"":"?:",$={negated:!1,prefix:""},k=t.bash===!0?".*?":m;t.capture&&(k=`(${k})`);let y=_=>_.noglobstar===!0?k:`(${w}(?:(?!${p}${_.dot?u:o}).)*?)`,v=_=>{switch(_){case"*":return`${g}${l}${k}`;case".*":return`${o}${l}${k}`;case"*.*":return`${g}${k}${o}${l}${k}`;case"*/*":return`${g}${k}${a}${l}${S}${k}`;case"**":return g+y(t);case"**/*":return`(?:${g}${y(t)}${a})?${S}${l}${k}`;case"**/*.*":return`(?:${g}${y(t)}${a})?${S}${k}${o}${l}${k}`;case"**/.*":return`(?:${g}${y(t)}${a})?${o}${l}${k}`;default:{let T=/^(.*?)\.(\w+)$/.exec(_);if(!T)return;let P=v(T[1]);return P?P+o+T[2]:void 0}}},b=$e.removePrefix(n,$),x=v(b);return x&&t.strictSlashes!==!0&&(x+=`${a}?`),x};ud.exports=Ao});var pd=N((bE,fd)=>{"use strict";var tv=require("path"),nv=od(),ko=dd(),$o=nr(),sv=Zn(),rv=n=>n&&typeof n=="object"&&!Array.isArray(n),ge=(n,e,t=!1)=>{if(Array.isArray(n)){let d=n.map(h=>ge(h,e,t));return h=>{for(let m of d){let p=m(h);if(p)return p}return!1}}let s=rv(n)&&n.tokens&&n.input;if(n===""||typeof n!="string"&&!s)throw new TypeError("Expected pattern to be a non-empty string");let r=e||{},i=$o.isWindows(e),o=s?ge.compileRe(n,e):ge.makeRe(n,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(r.ignore){let d={...e,ignore:null,onMatch:null,onResult:null};l=ge(r.ignore,d,t)}let u=(d,f=!1)=>{let{isMatch:h,match:m,output:p}=ge.test(d,o,e,{glob:n,posix:i}),g={glob:n,state:a,regex:o,posix:i,input:d,output:p,match:m,isMatch:h};return typeof r.onResult=="function"&&r.onResult(g),h===!1?(g.isMatch=!1,f?g:!1):l(d)?(typeof r.onIgnore=="function"&&r.onIgnore(g),g.isMatch=!1,f?g:!1):(typeof r.onMatch=="function"&&r.onMatch(g),f?g:!0)};return t&&(u.state=a),u};ge.test=(n,e,t,{glob:s,posix:r}={})=>{if(typeof n!="string")throw new TypeError("Expected input to be a string");if(n==="")return{isMatch:!1,output:""};let i=t||{},o=i.format||(r?$o.toPosixSlashes:null),a=n===s,l=a&&o?o(n):n;return a===!1&&(l=o?o(n):n,a=l===s),(a===!1||i.capture===!0)&&(i.matchBase===!0||i.basename===!0?a=ge.matchBase(n,e,t,r):a=e.exec(l)),{isMatch:!!a,match:a,output:l}};ge.matchBase=(n,e,t,s=$o.isWindows(t))=>(e instanceof RegExp?e:ge.makeRe(e,t)).test(tv.basename(n));ge.isMatch=(n,e,t)=>ge(e,t)(n);ge.parse=(n,e)=>Array.isArray(n)?n.map(t=>ge.parse(t,e)):ko(n,{...e,fastpaths:!1});ge.scan=(n,e)=>nv(n,e);ge.compileRe=(n,e,t=!1,s=!1)=>{if(t===!0)return n.output;let r=e||{},i=r.contains?"":"^",o=r.contains?"":"$",a=`${i}(?:${n.output})${o}`;n&&n.negated===!0&&(a=`^(?!${a}).*$`);let l=ge.toRegex(a,e);return s===!0&&(l.state=n),l};ge.makeRe=(n,e={},t=!1,s=!1)=>{if(!n||typeof n!="string")throw new TypeError("Expected a non-empty string");let r={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(n[0]==="."||n[0]==="*")&&(r.output=ko.fastpaths(n,e)),r.output||(r=ko(n,e)),ge.compileRe(r,e,t,s)};ge.toRegex=(n,e)=>{try{let t=e||{};return new RegExp(n,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};ge.constants=sv;fd.exports=ge});var Co=N((vE,hd)=>{"use strict";hd.exports=pd()});var Sd=N((wE,xd)=>{"use strict";var ss=require("fs"),{Readable:iv}=require("stream"),ns=require("path"),{promisify:ar}=require("util"),Eo=Co(),ov=ar(ss.readdir),av=ar(ss.stat),md=ar(ss.lstat),lv=ar(ss.realpath),cv="!",vd="READDIRP_RECURSIVE_ERROR",uv=new Set(["ENOENT","EPERM","EACCES","ELOOP",vd]),To="files",wd="directories",ir="files_directories",rr="all",gd=[To,wd,ir,rr],dv=n=>uv.has(n.code),[yd,fv]=process.versions.node.split(".").slice(0,2).map(n=>Number.parseInt(n,10)),pv=process.platform==="win32"&&(yd>10||yd===10&&fv>=5),bd=n=>{if(n!==void 0){if(typeof n=="function")return n;if(typeof n=="string"){let e=Eo(n.trim());return t=>e(t.basename)}if(Array.isArray(n)){let e=[],t=[];for(let s of n){let r=s.trim();r.charAt(0)===cv?t.push(Eo(r.slice(1))):e.push(Eo(r))}return t.length>0?e.length>0?s=>e.some(r=>r(s.basename))&&!t.some(r=>r(s.basename)):s=>!t.some(r=>r(s.basename)):s=>e.some(r=>r(s.basename))}}},or=class n extends iv{static get defaultOptions(){return{root:".",fileFilter:e=>!0,directoryFilter:e=>!0,type:To,lstat:!1,depth:2147483648,alwaysStat:!1}}constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark||4096});let t={...n.defaultOptions,...e},{root:s,type:r}=t;this._fileFilter=bd(t.fileFilter),this._directoryFilter=bd(t.directoryFilter);let i=t.lstat?md:av;pv?this._stat=o=>i(o,{bigint:!0}):this._stat=i,this._maxDepth=t.depth,this._wantsDir=[wd,ir,rr].includes(r),this._wantsFile=[To,ir,rr].includes(r),this._wantsEverything=r===rr,this._root=ns.resolve(s),this._isDirent="Dirent"in ss&&!t.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(s,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let{path:t,depth:s,files:r=[]}=this.parent||{};if(r.length>0){let i=r.splice(0,e).map(o=>this._formatEntry(o,t));for(let o of await Promise.all(i)){if(this.destroyed)return;let a=await this._getEntryType(o);a==="directory"&&this._directoryFilter(o)?(s<=this._maxDepth&&this.parents.push(this._exploreDir(o.fullPath,s+1)),this._wantsDir&&(this.push(o),e--)):(a==="file"||this._includeAsFile(o))&&this._fileFilter(o)&&this._wantsFile&&(this.push(o),e--)}}else{let i=this.parents.pop();if(!i){this.push(null);break}if(this.parent=await i,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(e,t){let s;try{s=await ov(e,this._rdOptions)}catch(r){this._onError(r)}return{files:s,depth:t,path:e}}async _formatEntry(e,t){let s;try{let r=this._isDirent?e.name:e,i=ns.resolve(ns.join(t,r));s={path:ns.relative(this._root,i),fullPath:i,basename:r},s[this._statsProp]=this._isDirent?e:await this._stat(i)}catch(r){this._onError(r)}return s}_onError(e){dv(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}async _getEntryType(e){let t=e&&e[this._statsProp];if(t){if(t.isFile())return"file";if(t.isDirectory())return"directory";if(t&&t.isSymbolicLink()){let s=e.fullPath;try{let r=await lv(s),i=await md(r);if(i.isFile())return"file";if(i.isDirectory()){let o=r.length;if(s.startsWith(r)&&s.substr(o,1)===ns.sep){let a=new Error(`Circular symlink detected: "${s}" points to "${r}"`);return a.code=vd,this._onError(a)}return"directory"}}catch(r){this._onError(r)}}}}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}},xn=(n,e={})=>{let t=e.entryType||e.type;if(t==="both"&&(t=ir),t&&(e.type=t),n){if(typeof n!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(t&&!gd.includes(t))throw new Error(`readdirp: Invalid type passed. Use one of ${gd.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return e.root=n,new or(e)},hv=(n,e={})=>new Promise((t,s)=>{let r=[];xn(n,e).on("data",i=>r.push(i)).on("end",()=>t(r)).on("error",i=>s(i))});xn.promise=hv;xn.ReaddirpStream=or;xn.default=xn;xd.exports=xn});var Ro=N((xE,_d)=>{_d.exports=function(n,e){if(typeof n!="string")throw new TypeError("expected path to be a string");if(n==="\\"||n==="/")return"/";var t=n.length;if(t<=1)return n;var s="";if(t>4&&n[3]==="\\"){var r=n[2];(r==="?"||r===".")&&n.slice(0,2)==="\\\\"&&(n=n.slice(2),s="//")}var i=n.split(/[/\\]+/);return e!==!1&&i[i.length-1]===""&&i.pop(),s+i.join("/")}});var Td=N((Cd,Ed)=>{"use strict";Object.defineProperty(Cd,"__esModule",{value:!0});var $d=Co(),mv=Ro(),Ad="!",gv={returnIndex:!1},yv=n=>Array.isArray(n)?n:[n],bv=(n,e)=>{if(typeof n=="function")return n;if(typeof n=="string"){let t=$d(n,e);return s=>n===s||t(s)}return n instanceof RegExp?t=>n.test(t):t=>!1},kd=(n,e,t,s)=>{let r=Array.isArray(t),i=r?t[0]:t;if(!r&&typeof i!="string")throw new TypeError("anymatch: second argument must be a string: got "+Object.prototype.toString.call(i));let o=mv(i,!1);for(let l=0;l<e.length;l++){let u=e[l];if(u(o))return s?-1:!1}let a=r&&[o].concat(t.slice(1));for(let l=0;l<n.length;l++){let u=n[l];if(r?u(...a):u(o))return s?l:!0}return s?-1:!1},Oo=(n,e,t=gv)=>{if(n==null)throw new TypeError("anymatch: specify first argument");let s=typeof t=="boolean"?{returnIndex:t}:t,r=s.returnIndex||!1,i=yv(n),o=i.filter(l=>typeof l=="string"&&l.charAt(0)===Ad).map(l=>l.slice(1)).map(l=>$d(l,s)),a=i.filter(l=>typeof l!="string"||typeof l=="string"&&l.charAt(0)!==Ad).map(l=>bv(l,s));return e==null?(l,u=!1)=>kd(a,o,l,typeof u=="boolean"?u:!1):kd(a,o,e,r)};Oo.default=Oo;Ed.exports=Oo});var Od=N((SE,Rd)=>{Rd.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var Po=N((_E,Md)=>{var vv=Od(),Pd={"{":"}","(":")","[":"]"},wv=function(n){if(n[0]==="!")return!0;for(var e=0,t=-2,s=-2,r=-2,i=-2,o=-2;e<n.length;){if(n[e]==="*"||n[e+1]==="?"&&/[\].+)]/.test(n[e])||s!==-1&&n[e]==="["&&n[e+1]!=="]"&&(s<e&&(s=n.indexOf("]",e)),s>e&&(o===-1||o>s||(o=n.indexOf("\\",e),o===-1||o>s)))||r!==-1&&n[e]==="{"&&n[e+1]!=="}"&&(r=n.indexOf("}",e),r>e&&(o=n.indexOf("\\",e),o===-1||o>r))||i!==-1&&n[e]==="("&&n[e+1]==="?"&&/[:!=]/.test(n[e+2])&&n[e+3]!==")"&&(i=n.indexOf(")",e),i>e&&(o=n.indexOf("\\",e),o===-1||o>i))||t!==-1&&n[e]==="("&&n[e+1]!=="|"&&(t<e&&(t=n.indexOf("|",e)),t!==-1&&n[t+1]!==")"&&(i=n.indexOf(")",t),i>t&&(o=n.indexOf("\\",t),o===-1||o>i))))return!0;if(n[e]==="\\"){var a=n[e+1];e+=2;var l=Pd[a];if(l){var u=n.indexOf(l,e);u!==-1&&(e=u+1)}if(n[e]==="!")return!0}else e++}return!1},xv=function(n){if(n[0]==="!")return!0;for(var e=0;e<n.length;){if(/[*?{}()[\]]/.test(n[e]))return!0;if(n[e]==="\\"){var t=n[e+1];e+=2;var s=Pd[t];if(s){var r=n.indexOf(s,e);r!==-1&&(e=r+1)}if(n[e]==="!")return!0}else e++}return!1};Md.exports=function(e,t){if(typeof e!="string"||e==="")return!1;if(vv(e))return!0;var s=wv;return t&&t.strict===!1&&(s=xv),s(e)}});var Dd=N((AE,Id)=>{"use strict";var Sv=Po(),_v=require("path").posix.dirname,Av=require("os").platform()==="win32",Mo="/",kv=/\\/g,$v=/[\{\[].*[\}\]]$/,Cv=/(^|[^\\])([\{\[]|\([^\)]+$)/,Ev=/\\([\!\*\?\|\[\]\(\)\{\}])/g;Id.exports=function(e,t){var s=Object.assign({flipBackslashes:!0},t);s.flipBackslashes&&Av&&e.indexOf(Mo)<0&&(e=e.replace(kv,Mo)),$v.test(e)&&(e+=Mo),e+="a";do e=_v(e);while(Sv(e)||Cv.test(e));return e.replace(Ev,"$1")}});var lr=N(We=>{"use strict";We.isInteger=n=>typeof n=="number"?Number.isInteger(n):typeof n=="string"&&n.trim()!==""?Number.isInteger(Number(n)):!1;We.find=(n,e)=>n.nodes.find(t=>t.type===e);We.exceedsLimit=(n,e,t=1,s)=>s===!1||!We.isInteger(n)||!We.isInteger(e)?!1:(Number(e)-Number(n))/Number(t)>=s;We.escapeNode=(n,e=0,t)=>{let s=n.nodes[e];s&&(t&&s.type===t||s.type==="open"||s.type==="close")&&s.escaped!==!0&&(s.value="\\"+s.value,s.escaped=!0)};We.encloseBrace=n=>n.type!=="brace"?!1:n.commas>>0+n.ranges>>0===0?(n.invalid=!0,!0):!1;We.isInvalidBrace=n=>n.type!=="brace"?!1:n.invalid===!0||n.dollar?!0:n.commas>>0+n.ranges>>0===0||n.open!==!0||n.close!==!0?(n.invalid=!0,!0):!1;We.isOpenOrClose=n=>n.type==="open"||n.type==="close"?!0:n.open===!0||n.close===!0;We.reduce=n=>n.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);We.flatten=(...n)=>{let e=[],t=s=>{for(let r=0;r<s.length;r++){let i=s[r];if(Array.isArray(i)){t(i);continue}i!==void 0&&e.push(i)}return e};return t(n),e}});var cr=N(($E,Fd)=>{"use strict";var Ld=lr();Fd.exports=(n,e={})=>{let t=(s,r={})=>{let i=e.escapeInvalid&&Ld.isInvalidBrace(r),o=s.invalid===!0&&e.escapeInvalid===!0,a="";if(s.value)return(i||o)&&Ld.isOpenOrClose(s)?"\\"+s.value:s.value;if(s.value)return s.value;if(s.nodes)for(let l of s.nodes)a+=t(l);return a};return t(n)}});var jd=N((CE,Nd)=>{"use strict";Nd.exports=function(n){return typeof n=="number"?n-n===0:typeof n=="string"&&n.trim()!==""?Number.isFinite?Number.isFinite(+n):isFinite(+n):!1}});var zd=N((EE,Vd)=>{"use strict";var Hd=jd(),Qt=(n,e,t)=>{if(Hd(n)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||n===e)return String(n);if(Hd(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let s={relaxZeros:!0,...t};typeof s.strictZeros=="boolean"&&(s.relaxZeros=s.strictZeros===!1);let r=String(s.relaxZeros),i=String(s.shorthand),o=String(s.capture),a=String(s.wrap),l=n+":"+e+"="+r+i+o+a;if(Qt.cache.hasOwnProperty(l))return Qt.cache[l].result;let u=Math.min(n,e),d=Math.max(n,e);if(Math.abs(u-d)===1){let g=n+"|"+e;return s.capture?`(${g})`:s.wrap===!1?g:`(?:${g})`}let f=Gd(n)||Gd(e),h={min:n,max:e,a:u,b:d},m=[],p=[];if(f&&(h.isPadded=f,h.maxLen=String(h.max).length),u<0){let g=d<0?Math.abs(d):1;p=Bd(g,Math.abs(u),h,s),u=h.a=0}return d>=0&&(m=Bd(u,d,h,s)),h.negatives=p,h.positives=m,h.result=Tv(p,m,s),s.capture===!0?h.result=`(${h.result})`:s.wrap!==!1&&m.length+p.length>1&&(h.result=`(?:${h.result})`),Qt.cache[l]=h,h.result};function Tv(n,e,t){let s=Io(n,e,"-",!1,t)||[],r=Io(e,n,"",!1,t)||[],i=Io(n,e,"-?",!0,t)||[];return s.concat(i).concat(r).join("|")}function Rv(n,e){let t=1,s=1,r=qd(n,t),i=new Set([e]);for(;n<=r&&r<=e;)i.add(r),t+=1,r=qd(n,t);for(r=Kd(e+1,s)-1;n<r&&r<=e;)i.add(r),s+=1,r=Kd(e+1,s)-1;return i=[...i],i.sort(Mv),i}function Ov(n,e,t){if(n===e)return{pattern:n,count:[],digits:0};let s=Pv(n,e),r=s.length,i="",o=0;for(let a=0;a<r;a++){let[l,u]=s[a];l===u?i+=l:l!=="0"||u!=="9"?i+=Iv(l,u,t):o++}return o&&(i+=t.shorthand===!0?"\\d":"[0-9]"),{pattern:i,count:[o],digits:r}}function Bd(n,e,t,s){let r=Rv(n,e),i=[],o=n,a;for(let l=0;l<r.length;l++){let u=r[l],d=Ov(String(o),String(u),s),f="";if(!t.isPadded&&a&&a.pattern===d.pattern){a.count.length>1&&a.count.pop(),a.count.push(d.count[0]),a.string=a.pattern+Wd(a.count),o=u+1;continue}t.isPadded&&(f=Dv(u,t,s)),d.string=f+d.pattern+Wd(d.count),i.push(d),o=u+1,a=d}return i}function Io(n,e,t,s,r){let i=[];for(let o of n){let{string:a}=o;!s&&!Ud(e,"string",a)&&i.push(t+a),s&&Ud(e,"string",a)&&i.push(t+a)}return i}function Pv(n,e){let t=[];for(let s=0;s<n.length;s++)t.push([n[s],e[s]]);return t}function Mv(n,e){return n>e?1:e>n?-1:0}function Ud(n,e,t){return n.some(s=>s[e]===t)}function qd(n,e){return Number(String(n).slice(0,-e)+"9".repeat(e))}function Kd(n,e){return n-n%Math.pow(10,e)}function Wd(n){let[e=0,t=""]=n;return t||e>1?`{${e+(t?","+t:"")}}`:""}function Iv(n,e,t){return`[${n}${e-n===1?"":"-"}${e}]`}function Gd(n){return/^-?(0+)\d/.test(n)}function Dv(n,e,t){if(!e.isPadded)return n;let s=Math.abs(e.maxLen-String(n).length),r=t.relaxZeros!==!1;switch(s){case 0:return"";case 1:return r?"0?":"0";case 2:return r?"0{0,2}":"00";default:return r?`0{0,${s}}`:`0{${s}}`}}Qt.cache={};Qt.clearCache=()=>Qt.cache={};Vd.exports=Qt});var Fo=N((TE,tf)=>{"use strict";var Lv=require("util"),Jd=zd(),Yd=n=>n!==null&&typeof n=="object"&&!Array.isArray(n),Fv=n=>e=>n===!0?Number(e):String(e),Do=n=>typeof n=="number"||typeof n=="string"&&n!=="",rs=n=>Number.isInteger(+n),Lo=n=>{let e=`${n}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},Nv=(n,e,t)=>typeof n=="string"||typeof e=="string"?!0:t.stringify===!0,jv=(n,e,t)=>{if(e>0){let s=n[0]==="-"?"-":"";s&&(n=n.slice(1)),n=s+n.padStart(s?e-1:e,"0")}return t===!1?String(n):n},dr=(n,e)=>{let t=n[0]==="-"?"-":"";for(t&&(n=n.slice(1),e--);n.length<e;)n="0"+n;return t?"-"+n:n},Hv=(n,e,t)=>{n.negatives.sort((a,l)=>a<l?-1:a>l?1:0),n.positives.sort((a,l)=>a<l?-1:a>l?1:0);let s=e.capture?"":"?:",r="",i="",o;return n.positives.length&&(r=n.positives.map(a=>dr(String(a),t)).join("|")),n.negatives.length&&(i=`-(${s}${n.negatives.map(a=>dr(String(a),t)).join("|")})`),r&&i?o=`${r}|${i}`:o=r||i,e.wrap?`(${s}${o})`:o},Xd=(n,e,t,s)=>{if(t)return Jd(n,e,{wrap:!1,...s});let r=String.fromCharCode(n);if(n===e)return r;let i=String.fromCharCode(e);return`[${r}-${i}]`},Qd=(n,e,t)=>{if(Array.isArray(n)){let s=t.wrap===!0,r=t.capture?"":"?:";return s?`(${r}${n.join("|")})`:n.join("|")}return Jd(n,e,t)},Zd=(...n)=>new RangeError("Invalid range arguments: "+Lv.inspect(...n)),ef=(n,e,t)=>{if(t.strictRanges===!0)throw Zd([n,e]);return[]},Bv=(n,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${n}" to be a number`);return[]},Uv=(n,e,t=1,s={})=>{let r=Number(n),i=Number(e);if(!Number.isInteger(r)||!Number.isInteger(i)){if(s.strictRanges===!0)throw Zd([n,e]);return[]}r===0&&(r=0),i===0&&(i=0);let o=r>i,a=String(n),l=String(e),u=String(t);t=Math.max(Math.abs(t),1);let d=Lo(a)||Lo(l)||Lo(u),f=d?Math.max(a.length,l.length,u.length):0,h=d===!1&&Nv(n,e,s)===!1,m=s.transform||Fv(h);if(s.toRegex&&t===1)return Xd(dr(n,f),dr(e,f),!0,s);let p={negatives:[],positives:[]},g=$=>p[$<0?"negatives":"positives"].push(Math.abs($)),S=[],w=0;for(;o?r>=i:r<=i;)s.toRegex===!0&&t>1?g(r):S.push(jv(m(r,w),f,h)),r=o?r-t:r+t,w++;return s.toRegex===!0?t>1?Hv(p,s,f):Qd(S,null,{wrap:!1,...s}):S},qv=(n,e,t=1,s={})=>{if(!rs(n)&&n.length>1||!rs(e)&&e.length>1)return ef(n,e,s);let r=s.transform||(h=>String.fromCharCode(h)),i=`${n}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=i>o,l=Math.min(i,o),u=Math.max(i,o);if(s.toRegex&&t===1)return Xd(l,u,!1,s);let d=[],f=0;for(;a?i>=o:i<=o;)d.push(r(i,f)),i=a?i-t:i+t,f++;return s.toRegex===!0?Qd(d,null,{wrap:!1,options:s}):d},ur=(n,e,t,s={})=>{if(e==null&&Do(n))return[n];if(!Do(n)||!Do(e))return ef(n,e,s);if(typeof t=="function")return ur(n,e,1,{transform:t});if(Yd(t))return ur(n,e,0,t);let r={...s};return r.capture===!0&&(r.wrap=!0),t=t||r.step||1,rs(t)?rs(n)&&rs(e)?Uv(n,e,t,r):qv(n,e,Math.max(Math.abs(t),1),r):t!=null&&!Yd(t)?Bv(t,r):ur(n,e,1,t)};tf.exports=ur});var rf=N((RE,sf)=>{"use strict";var Kv=Fo(),nf=lr(),Wv=(n,e={})=>{let t=(s,r={})=>{let i=nf.isInvalidBrace(r),o=s.invalid===!0&&e.escapeInvalid===!0,a=i===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",u="";if(s.isOpen===!0)return l+s.value;if(s.isClose===!0)return console.log("node.isClose",l,s.value),l+s.value;if(s.type==="open")return a?l+s.value:"(";if(s.type==="close")return a?l+s.value:")";if(s.type==="comma")return s.prev.type==="comma"?"":a?s.value:"|";if(s.value)return s.value;if(s.nodes&&s.ranges>0){let d=nf.reduce(s.nodes),f=Kv(...d,{...e,wrap:!1,toRegex:!0,strictZeros:!0});if(f.length!==0)return d.length>1&&f.length>1?`(${f})`:f}if(s.nodes)for(let d of s.nodes)u+=t(d,s);return u};return t(n)};sf.exports=Wv});var lf=N((OE,af)=>{"use strict";var Gv=Fo(),of=cr(),Sn=lr(),Zt=(n="",e="",t=!1)=>{let s=[];if(n=[].concat(n),e=[].concat(e),!e.length)return n;if(!n.length)return t?Sn.flatten(e).map(r=>`{${r}}`):e;for(let r of n)if(Array.isArray(r))for(let i of r)s.push(Zt(i,e,t));else for(let i of e)t===!0&&typeof i=="string"&&(i=`{${i}}`),s.push(Array.isArray(i)?Zt(r,i,t):r+i);return Sn.flatten(s)},Vv=(n,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,s=(r,i={})=>{r.queue=[];let o=i,a=i.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(r.invalid||r.dollar){a.push(Zt(a.pop(),of(r,e)));return}if(r.type==="brace"&&r.invalid!==!0&&r.nodes.length===2){a.push(Zt(a.pop(),["{}"]));return}if(r.nodes&&r.ranges>0){let f=Sn.reduce(r.nodes);if(Sn.exceedsLimit(...f,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=Gv(...f,e);h.length===0&&(h=of(r,e)),a.push(Zt(a.pop(),h)),r.nodes=[];return}let l=Sn.encloseBrace(r),u=r.queue,d=r;for(;d.type!=="brace"&&d.type!=="root"&&d.parent;)d=d.parent,u=d.queue;for(let f=0;f<r.nodes.length;f++){let h=r.nodes[f];if(h.type==="comma"&&r.type==="brace"){f===1&&u.push(""),u.push("");continue}if(h.type==="close"){a.push(Zt(a.pop(),u,l));continue}if(h.value&&h.type!=="open"){u.push(Zt(u.pop(),h.value));continue}h.nodes&&s(h,r)}return u};return Sn.flatten(s(n))};af.exports=Vv});var uf=N((PE,cf)=>{"use strict";cf.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
311
- `,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var mf=N((ME,hf)=>{"use strict";var zv=cr(),{MAX_LENGTH:df,CHAR_BACKSLASH:No,CHAR_BACKTICK:Yv,CHAR_COMMA:Jv,CHAR_DOT:Xv,CHAR_LEFT_PARENTHESES:Qv,CHAR_RIGHT_PARENTHESES:Zv,CHAR_LEFT_CURLY_BRACE:ew,CHAR_RIGHT_CURLY_BRACE:tw,CHAR_LEFT_SQUARE_BRACKET:ff,CHAR_RIGHT_SQUARE_BRACKET:pf,CHAR_DOUBLE_QUOTE:nw,CHAR_SINGLE_QUOTE:sw,CHAR_NO_BREAK_SPACE:rw,CHAR_ZERO_WIDTH_NOBREAK_SPACE:iw}=uf(),ow=(n,e={})=>{if(typeof n!="string")throw new TypeError("Expected a string");let t=e||{},s=typeof t.maxLength=="number"?Math.min(df,t.maxLength):df;if(n.length>s)throw new SyntaxError(`Input length (${n.length}), exceeds max characters (${s})`);let r={type:"root",input:n,nodes:[]},i=[r],o=r,a=r,l=0,u=n.length,d=0,f=0,h,m=()=>n[d++],p=g=>{if(g.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&g.type==="text"){a.value+=g.value;return}return o.nodes.push(g),g.parent=o,g.prev=a,a=g,g};for(p({type:"bos"});d<u;)if(o=i[i.length-1],h=m(),!(h===iw||h===rw)){if(h===No){p({type:"text",value:(e.keepEscaping?h:"")+m()});continue}if(h===pf){p({type:"text",value:"\\"+h});continue}if(h===ff){l++;let g;for(;d<u&&(g=m());){if(h+=g,g===ff){l++;continue}if(g===No){h+=m();continue}if(g===pf&&(l--,l===0))break}p({type:"text",value:h});continue}if(h===Qv){o=p({type:"paren",nodes:[]}),i.push(o),p({type:"text",value:h});continue}if(h===Zv){if(o.type!=="paren"){p({type:"text",value:h});continue}o=i.pop(),p({type:"text",value:h}),o=i[i.length-1];continue}if(h===nw||h===sw||h===Yv){let g=h,S;for(e.keepQuotes!==!0&&(h="");d<u&&(S=m());){if(S===No){h+=S+m();continue}if(S===g){e.keepQuotes===!0&&(h+=S);break}h+=S}p({type:"text",value:h});continue}if(h===ew){f++;let S={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||o.dollar===!0,depth:f,commas:0,ranges:0,nodes:[]};o=p(S),i.push(o),p({type:"open",value:h});continue}if(h===tw){if(o.type!=="brace"){p({type:"text",value:h});continue}let g="close";o=i.pop(),o.close=!0,p({type:g,value:h}),f--,o=i[i.length-1];continue}if(h===Jv&&f>0){if(o.ranges>0){o.ranges=0;let g=o.nodes.shift();o.nodes=[g,{type:"text",value:zv(o)}]}p({type:"comma",value:h}),o.commas++;continue}if(h===Xv&&f>0&&o.commas===0){let g=o.nodes;if(f===0||g.length===0){p({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){g.pop();let S=g[g.length-1];S.value+=a.value+h,a=S,o.ranges--;continue}p({type:"dot",value:h});continue}p({type:"text",value:h})}do if(o=i.pop(),o.type!=="root"){o.nodes.forEach(w=>{w.nodes||(w.type==="open"&&(w.isOpen=!0),w.type==="close"&&(w.isClose=!0),w.nodes||(w.type="text"),w.invalid=!0)});let g=i[i.length-1],S=g.nodes.indexOf(o);g.nodes.splice(S,1,...o.nodes)}while(i.length>0);return p({type:"eos"}),r};hf.exports=ow});var bf=N((IE,yf)=>{"use strict";var gf=cr(),aw=rf(),lw=lf(),cw=mf(),Be=(n,e={})=>{let t=[];if(Array.isArray(n))for(let s of n){let r=Be.create(s,e);Array.isArray(r)?t.push(...r):t.push(r)}else t=[].concat(Be.create(n,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Be.parse=(n,e={})=>cw(n,e);Be.stringify=(n,e={})=>gf(typeof n=="string"?Be.parse(n,e):n,e);Be.compile=(n,e={})=>(typeof n=="string"&&(n=Be.parse(n,e)),aw(n,e));Be.expand=(n,e={})=>{typeof n=="string"&&(n=Be.parse(n,e));let t=lw(n,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Be.create=(n,e={})=>n===""||n.length<3?[n]:e.expand!==!0?Be.compile(n,e):Be.expand(n,e);yf.exports=Be});var vf=N((DE,uw)=>{uw.exports=["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]});var xf=N((LE,wf)=>{wf.exports=vf()});var _f=N((FE,Sf)=>{"use strict";var dw=require("path"),fw=xf(),pw=new Set(fw);Sf.exports=n=>pw.has(dw.extname(n).slice(1).toLowerCase())});var fr=N(B=>{"use strict";var{sep:hw}=require("path"),{platform:jo}=process,mw=require("os");B.EV_ALL="all";B.EV_READY="ready";B.EV_ADD="add";B.EV_CHANGE="change";B.EV_ADD_DIR="addDir";B.EV_UNLINK="unlink";B.EV_UNLINK_DIR="unlinkDir";B.EV_RAW="raw";B.EV_ERROR="error";B.STR_DATA="data";B.STR_END="end";B.STR_CLOSE="close";B.FSEVENT_CREATED="created";B.FSEVENT_MODIFIED="modified";B.FSEVENT_DELETED="deleted";B.FSEVENT_MOVED="moved";B.FSEVENT_CLONED="cloned";B.FSEVENT_UNKNOWN="unknown";B.FSEVENT_FLAG_MUST_SCAN_SUBDIRS=1;B.FSEVENT_TYPE_FILE="file";B.FSEVENT_TYPE_DIRECTORY="directory";B.FSEVENT_TYPE_SYMLINK="symlink";B.KEY_LISTENERS="listeners";B.KEY_ERR="errHandlers";B.KEY_RAW="rawEmitters";B.HANDLER_KEYS=[B.KEY_LISTENERS,B.KEY_ERR,B.KEY_RAW];B.DOT_SLASH=`.${hw}`;B.BACK_SLASH_RE=/\\/g;B.DOUBLE_SLASH_RE=/\/\//;B.SLASH_OR_BACK_SLASH_RE=/[/\\]/;B.DOT_RE=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/;B.REPLACER_RE=/^\.[/\\]/;B.SLASH="/";B.SLASH_SLASH="//";B.BRACE_START="{";B.BANG="!";B.ONE_DOT=".";B.TWO_DOTS="..";B.STAR="*";B.GLOBSTAR="**";B.ROOT_GLOBSTAR="/**/*";B.SLASH_GLOBSTAR="/**";B.DIR_SUFFIX="Dir";B.ANYMATCH_OPTS={dot:!0};B.STRING_TYPE="string";B.FUNCTION_TYPE="function";B.EMPTY_STR="";B.EMPTY_FN=()=>{};B.IDENTITY_FN=n=>n;B.isWindows=jo==="win32";B.isMacos=jo==="darwin";B.isLinux=jo==="linux";B.isIBMi=mw.type()==="OS400"});var Tf=N((jE,Ef)=>{"use strict";var Ot=require("fs"),xe=require("path"),{promisify:ls}=require("util"),gw=_f(),{isWindows:yw,isLinux:bw,EMPTY_FN:vw,EMPTY_STR:ww,KEY_LISTENERS:_n,KEY_ERR:Ho,KEY_RAW:is,HANDLER_KEYS:xw,EV_CHANGE:hr,EV_ADD:pr,EV_ADD_DIR:Sw,EV_ERROR:kf,STR_DATA:_w,STR_END:Aw,BRACE_START:kw,STAR:$w}=fr(),Cw="watch",Ew=ls(Ot.open),$f=ls(Ot.stat),Tw=ls(Ot.lstat),Rw=ls(Ot.close),Bo=ls(Ot.realpath),Ow={lstat:Tw,stat:$f},qo=(n,e)=>{n instanceof Set?n.forEach(e):e(n)},os=(n,e,t)=>{let s=n[e];s instanceof Set||(n[e]=s=new Set([s])),s.add(t)},Pw=n=>e=>{let t=n[e];t instanceof Set?t.clear():delete n[e]},as=(n,e,t)=>{let s=n[e];s instanceof Set?s.delete(t):s===t&&delete n[e]},Cf=n=>n instanceof Set?n.size===0:!n,mr=new Map;function Af(n,e,t,s,r){let i=(o,a)=>{t(n),r(o,a,{watchedPath:n}),a&&n!==a&&gr(xe.resolve(n,a),_n,xe.join(n,a))};try{return Ot.watch(n,e,i)}catch(o){s(o)}}var gr=(n,e,t,s,r)=>{let i=mr.get(n);i&&qo(i[e],o=>{o(t,s,r)})},Mw=(n,e,t,s)=>{let{listener:r,errHandler:i,rawEmitter:o}=s,a=mr.get(e),l;if(!t.persistent)return l=Af(n,t,r,i,o),l.close.bind(l);if(a)os(a,_n,r),os(a,Ho,i),os(a,is,o);else{if(l=Af(n,t,gr.bind(null,e,_n),i,gr.bind(null,e,is)),!l)return;l.on(kf,async u=>{let d=gr.bind(null,e,Ho);if(a.watcherUnusable=!0,yw&&u.code==="EPERM")try{let f=await Ew(n,"r");await Rw(f),d(u)}catch{}else d(u)}),a={listeners:r,errHandlers:i,rawEmitters:o,watcher:l},mr.set(e,a)}return()=>{as(a,_n,r),as(a,Ho,i),as(a,is,o),Cf(a.listeners)&&(a.watcher.close(),mr.delete(e),xw.forEach(Pw(a)),a.watcher=void 0,Object.freeze(a))}},Uo=new Map,Iw=(n,e,t,s)=>{let{listener:r,rawEmitter:i}=s,o=Uo.get(e),a=new Set,l=new Set,u=o&&o.options;return u&&(u.persistent<t.persistent||u.interval>t.interval)&&(a=o.listeners,l=o.rawEmitters,Ot.unwatchFile(e),o=void 0),o?(os(o,_n,r),os(o,is,i)):(o={listeners:r,rawEmitters:i,options:t,watcher:Ot.watchFile(e,t,(d,f)=>{qo(o.rawEmitters,m=>{m(hr,e,{curr:d,prev:f})});let h=d.mtimeMs;(d.size!==f.size||h>f.mtimeMs||h===0)&&qo(o.listeners,m=>m(n,d))})},Uo.set(e,o)),()=>{as(o,_n,r),as(o,is,i),Cf(o.listeners)&&(Uo.delete(e),Ot.unwatchFile(e),o.options=o.watcher=void 0,Object.freeze(o))}},Ko=class{constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let s=this.fsw.options,r=xe.dirname(e),i=xe.basename(e);this.fsw._getWatchedDir(r).add(i);let a=xe.resolve(e),l={persistent:s.persistent};t||(t=vw);let u;return s.usePolling?(l.interval=s.enableBinaryInterval&&gw(i)?s.binaryInterval:s.interval,u=Iw(e,a,l,{listener:t,rawEmitter:this.fsw._emitRaw})):u=Mw(e,a,l,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw}),u}_handleFile(e,t,s){if(this.fsw.closed)return;let r=xe.dirname(e),i=xe.basename(e),o=this.fsw._getWatchedDir(r),a=t;if(o.has(i))return;let l=async(d,f)=>{if(this.fsw._throttle(Cw,e,5)){if(!f||f.mtimeMs===0)try{let h=await $f(e);if(this.fsw.closed)return;let m=h.atimeMs,p=h.mtimeMs;(!m||m<=p||p!==a.mtimeMs)&&this.fsw._emit(hr,e,h),bw&&a.ino!==h.ino?(this.fsw._closeFile(d),a=h,this.fsw._addPathCloser(d,this._watchWithNodeFs(e,l))):a=h}catch{this.fsw._remove(r,i)}else if(o.has(i)){let h=f.atimeMs,m=f.mtimeMs;(!h||h<=m||m!==a.mtimeMs)&&this.fsw._emit(hr,e,f),a=f}}},u=this._watchWithNodeFs(e,l);if(!(s&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(pr,e,0))return;this.fsw._emit(pr,e,t)}return u}async _handleSymlink(e,t,s,r){if(this.fsw.closed)return;let i=e.fullPath,o=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let a;try{a=await Bo(s)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(o.has(r)?this.fsw._symlinkPaths.get(i)!==a&&(this.fsw._symlinkPaths.set(i,a),this.fsw._emit(hr,s,e.stats)):(o.add(r),this.fsw._symlinkPaths.set(i,a),this.fsw._emit(pr,s,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(i))return!0;this.fsw._symlinkPaths.set(i,!0)}_handleRead(e,t,s,r,i,o,a){if(e=xe.join(e,ww),!s.hasGlob&&(a=this.fsw._throttle("readdir",e,1e3),!a))return;let l=this.fsw._getWatchedDir(s.path),u=new Set,d=this.fsw._readdirp(e,{fileFilter:f=>s.filterPath(f),directoryFilter:f=>s.filterDir(f),depth:0}).on(_w,async f=>{if(this.fsw.closed){d=void 0;return}let h=f.path,m=xe.join(e,h);if(u.add(h),!(f.stats.isSymbolicLink()&&await this._handleSymlink(f,e,m,h))){if(this.fsw.closed){d=void 0;return}(h===r||!r&&!l.has(h))&&(this.fsw._incrReadyCount(),m=xe.join(i,xe.relative(i,m)),this._addToNodeFs(m,t,s,o+1))}}).on(kf,this._boundHandleError);return new Promise(f=>d.once(Aw,()=>{if(this.fsw.closed){d=void 0;return}let h=a?a.clear():!1;f(),l.getChildren().filter(m=>m!==e&&!u.has(m)&&(!s.hasGlob||s.filterPath({fullPath:xe.resolve(e,m)}))).forEach(m=>{this.fsw._remove(e,m)}),d=void 0,h&&this._handleRead(e,!1,s,r,i,o,a)}))}async _handleDir(e,t,s,r,i,o,a){let l=this.fsw._getWatchedDir(xe.dirname(e)),u=l.has(xe.basename(e));!(s&&this.fsw.options.ignoreInitial)&&!i&&!u&&(!o.hasGlob||o.globFilter(e))&&this.fsw._emit(Sw,e,t),l.add(xe.basename(e)),this.fsw._getWatchedDir(e);let d,f,h=this.fsw.options.depth;if((h==null||r<=h)&&!this.fsw._symlinkPaths.has(a)){if(!i&&(await this._handleRead(e,s,o,i,e,r,d),this.fsw.closed))return;f=this._watchWithNodeFs(e,(m,p)=>{p&&p.mtimeMs===0||this._handleRead(m,!1,o,i,e,r,d)})}return f}async _addToNodeFs(e,t,s,r,i){let o=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return o(),!1;let a=this.fsw._getWatchHelpers(e,r);!a.hasGlob&&s&&(a.hasGlob=s.hasGlob,a.globFilter=s.globFilter,a.filterPath=l=>s.filterPath(l),a.filterDir=l=>s.filterDir(l));try{let l=await Ow[a.statMethod](a.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(a.watchPath,l))return o(),!1;let u=this.fsw.options.followSymlinks&&!e.includes($w)&&!e.includes(kw),d;if(l.isDirectory()){let f=xe.resolve(e),h=u?await Bo(e):e;if(this.fsw.closed||(d=await this._handleDir(a.watchPath,l,t,r,i,a,h),this.fsw.closed))return;f!==h&&h!==void 0&&this.fsw._symlinkPaths.set(f,h)}else if(l.isSymbolicLink()){let f=u?await Bo(e):e;if(this.fsw.closed)return;let h=xe.dirname(a.watchPath);if(this.fsw._getWatchedDir(h).add(a.watchPath),this.fsw._emit(pr,a.watchPath,l),d=await this._handleDir(h,l,t,r,e,a,f),this.fsw.closed)return;f!==void 0&&this.fsw._symlinkPaths.set(xe.resolve(e),f)}else d=this._handleFile(a.watchPath,l,t);return o(),this.fsw._addPathCloser(e,d),!1}catch(l){if(this.fsw._handleError(l))return o(),e}}};Ef.exports=Ko});var Lf=N((HE,Qo)=>{"use strict";var Jo=require("fs"),Se=require("path"),{promisify:Xo}=require("util"),An;try{An=require("fsevents")}catch(n){process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR&&console.error(n)}if(An){let n=process.version.match(/v(\d+)\.(\d+)/);if(n&&n[1]&&n[2]){let e=Number.parseInt(n[1],10),t=Number.parseInt(n[2],10);e===8&&t<16&&(An=void 0)}}var{EV_ADD:Wo,EV_CHANGE:Dw,EV_ADD_DIR:Rf,EV_UNLINK:yr,EV_ERROR:Lw,STR_DATA:Fw,STR_END:Nw,FSEVENT_CREATED:jw,FSEVENT_MODIFIED:Hw,FSEVENT_DELETED:Bw,FSEVENT_MOVED:Uw,FSEVENT_UNKNOWN:qw,FSEVENT_FLAG_MUST_SCAN_SUBDIRS:Kw,FSEVENT_TYPE_FILE:Ww,FSEVENT_TYPE_DIRECTORY:cs,FSEVENT_TYPE_SYMLINK:Df,ROOT_GLOBSTAR:Of,DIR_SUFFIX:Gw,DOT_SLASH:Pf,FUNCTION_TYPE:Go,EMPTY_FN:Vw,IDENTITY_FN:zw}=fr(),Yw=n=>isNaN(n)?{}:{depth:n},zo=Xo(Jo.stat),Jw=Xo(Jo.lstat),Mf=Xo(Jo.realpath),Xw={stat:zo,lstat:Jw},en=new Map,Qw=10,Zw=new Set([69888,70400,71424,72704,73472,131328,131840,262912]),ex=(n,e)=>({stop:An.watch(n,e)});function tx(n,e,t,s){let r=Se.extname(e)?Se.dirname(e):e,i=Se.dirname(r),o=en.get(r);nx(i)&&(r=i);let a=Se.resolve(n),l=a!==e,u=(f,h,m)=>{l&&(f=f.replace(e,a)),(f===a||!f.indexOf(a+Se.sep))&&t(f,h,m)},d=!1;for(let f of en.keys())if(e.indexOf(Se.resolve(f)+Se.sep)===0){r=f,o=en.get(r),d=!0;break}return o||d?o.listeners.add(u):(o={listeners:new Set([u]),rawEmitter:s,watcher:ex(r,(f,h)=>{if(!o.listeners.size||h&Kw)return;let m=An.getInfo(f,h);o.listeners.forEach(p=>{p(f,h,m)}),o.rawEmitter(m.event,f,m)})},en.set(r,o)),()=>{let f=o.listeners;if(f.delete(u),!f.size&&(en.delete(r),o.watcher))return o.watcher.stop().then(()=>{o.rawEmitter=o.watcher=void 0,Object.freeze(o)})}}var nx=n=>{let e=0;for(let t of en.keys())if(t.indexOf(n)===0&&(e++,e>=Qw))return!0;return!1},sx=()=>An&&en.size<128,Vo=(n,e)=>{let t=0;for(;!n.indexOf(e)&&(n=Se.dirname(n))!==e;)t++;return t},If=(n,e)=>n.type===cs&&e.isDirectory()||n.type===Df&&e.isSymbolicLink()||n.type===Ww&&e.isFile(),Yo=class{constructor(e){this.fsw=e}checkIgnored(e,t){let s=this.fsw._ignoredPaths;if(this.fsw._isIgnored(e,t))return s.add(e),t&&t.isDirectory()&&s.add(e+Of),!0;s.delete(e),s.delete(e+Of)}addOrChange(e,t,s,r,i,o,a,l){let u=i.has(o)?Dw:Wo;this.handleEvent(u,e,t,s,r,i,o,a,l)}async checkExists(e,t,s,r,i,o,a,l){try{let u=await zo(e);if(this.fsw.closed)return;If(a,u)?this.addOrChange(e,t,s,r,i,o,a,l):this.handleEvent(yr,e,t,s,r,i,o,a,l)}catch(u){u.code==="EACCES"?this.addOrChange(e,t,s,r,i,o,a,l):this.handleEvent(yr,e,t,s,r,i,o,a,l)}}handleEvent(e,t,s,r,i,o,a,l,u){if(!(this.fsw.closed||this.checkIgnored(t)))if(e===yr){let d=l.type===cs;(d||o.has(a))&&this.fsw._remove(i,a,d)}else{if(e===Wo){if(l.type===cs&&this.fsw._getWatchedDir(t),l.type===Df&&u.followSymlinks){let f=u.depth===void 0?void 0:Vo(s,r)+1;return this._addToFsEvents(t,!1,!0,f)}this.fsw._getWatchedDir(i).add(a)}let d=l.type===cs?e+Gw:e;this.fsw._emit(d,t),d===Rf&&this._addToFsEvents(t,!1,!0)}}_watchWithFsEvents(e,t,s,r){if(this.fsw.closed||this.fsw._isIgnored(e))return;let i=this.fsw.options,a=tx(e,t,async(l,u,d)=>{if(this.fsw.closed||i.depth!==void 0&&Vo(l,t)>i.depth)return;let f=s(Se.join(e,Se.relative(e,l)));if(r&&!r(f))return;let h=Se.dirname(f),m=Se.basename(f),p=this.fsw._getWatchedDir(d.type===cs?f:h);if(Zw.has(u)||d.event===qw)if(typeof i.ignored===Go){let g;try{g=await zo(f)}catch{}if(this.fsw.closed||this.checkIgnored(f,g))return;If(d,g)?this.addOrChange(f,l,t,h,p,m,d,i):this.handleEvent(yr,f,l,t,h,p,m,d,i)}else this.checkExists(f,l,t,h,p,m,d,i);else switch(d.event){case jw:case Hw:return this.addOrChange(f,l,t,h,p,m,d,i);case Bw:case Uw:return this.checkExists(f,l,t,h,p,m,d,i)}},this.fsw._emitRaw);return this.fsw._emitReady(),a}async _handleFsEventsSymlink(e,t,s,r){if(!(this.fsw.closed||this.fsw._symlinkPaths.has(t))){this.fsw._symlinkPaths.set(t,!0),this.fsw._incrReadyCount();try{let i=await Mf(e);if(this.fsw.closed)return;if(this.fsw._isIgnored(i))return this.fsw._emitReady();this.fsw._incrReadyCount(),this._addToFsEvents(i||e,o=>{let a=e;return i&&i!==Pf?a=o.replace(i,e):o!==Pf&&(a=Se.join(e,o)),s(a)},!1,r)}catch(i){if(this.fsw._handleError(i))return this.fsw._emitReady()}}}emitAdd(e,t,s,r,i){let o=s(e),a=t.isDirectory(),l=this.fsw._getWatchedDir(Se.dirname(o)),u=Se.basename(o);a&&this.fsw._getWatchedDir(o),!l.has(u)&&(l.add(u),(!r.ignoreInitial||i===!0)&&this.fsw._emit(a?Rf:Wo,o,t))}initWatch(e,t,s,r){if(this.fsw.closed)return;let i=this._watchWithFsEvents(s.watchPath,Se.resolve(e||s.watchPath),r,s.globFilter);this.fsw._addPathCloser(t,i)}async _addToFsEvents(e,t,s,r){if(this.fsw.closed)return;let i=this.fsw.options,o=typeof t===Go?t:zw,a=this.fsw._getWatchHelpers(e);try{let l=await Xw[a.statMethod](a.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(a.watchPath,l))throw null;if(l.isDirectory()){if(a.globFilter||this.emitAdd(o(e),l,o,i,s),r&&r>i.depth)return;this.fsw._readdirp(a.watchPath,{fileFilter:u=>a.filterPath(u),directoryFilter:u=>a.filterDir(u),...Yw(i.depth-(r||0))}).on(Fw,u=>{if(this.fsw.closed||u.stats.isDirectory()&&!a.filterPath(u))return;let d=Se.join(a.watchPath,u.path),{fullPath:f}=u;if(a.followSymlinks&&u.stats.isSymbolicLink()){let h=i.depth===void 0?void 0:Vo(d,Se.resolve(a.watchPath))+1;this._handleFsEventsSymlink(d,f,o,h)}else this.emitAdd(d,u.stats,o,i,s)}).on(Lw,Vw).on(Nw,()=>{this.fsw._emitReady()})}else this.emitAdd(a.watchPath,l,o,i,s),this.fsw._emitReady()}catch(l){(!l||this.fsw._handleError(l))&&(this.fsw._emitReady(),this.fsw._emitReady())}if(i.persistent&&s!==!0)if(typeof t===Go)this.initWatch(void 0,e,a,o);else{let l;try{l=await Mf(a.watchPath)}catch{}this.initWatch(l,e,a,o)}}};Qo.exports=Yo;Qo.exports.canUse=sx});var Vf=N(pa=>{"use strict";var{EventEmitter:rx}=require("events"),da=require("fs"),ne=require("path"),{promisify:qf}=require("util"),ix=Sd(),ra=Td().default,ox=Dd(),Zo=Po(),ax=bf(),lx=Ro(),cx=Tf(),Ff=Lf(),{EV_ALL:ea,EV_READY:ux,EV_ADD:br,EV_CHANGE:us,EV_UNLINK:Nf,EV_ADD_DIR:dx,EV_UNLINK_DIR:fx,EV_RAW:px,EV_ERROR:ta,STR_CLOSE:hx,STR_END:mx,BACK_SLASH_RE:gx,DOUBLE_SLASH_RE:jf,SLASH_OR_BACK_SLASH_RE:yx,DOT_RE:bx,REPLACER_RE:vx,SLASH:na,SLASH_SLASH:wx,BRACE_START:xx,BANG:ia,ONE_DOT:Kf,TWO_DOTS:Sx,GLOBSTAR:_x,SLASH_GLOBSTAR:sa,ANYMATCH_OPTS:oa,STRING_TYPE:fa,FUNCTION_TYPE:Ax,EMPTY_STR:aa,EMPTY_FN:kx,isWindows:$x,isMacos:Cx,isIBMi:Ex}=fr(),Tx=qf(da.stat),Rx=qf(da.readdir),la=(n=[])=>Array.isArray(n)?n:[n],Wf=(n,e=[])=>(n.forEach(t=>{Array.isArray(t)?Wf(t,e):e.push(t)}),e),Hf=n=>{let e=Wf(la(n));if(!e.every(t=>typeof t===fa))throw new TypeError(`Non-string provided as watch path: ${e}`);return e.map(Gf)},Bf=n=>{let e=n.replace(gx,na),t=!1;for(e.startsWith(wx)&&(t=!0);e.match(jf);)e=e.replace(jf,na);return t&&(e=na+e),e},Gf=n=>Bf(ne.normalize(Bf(n))),Uf=(n=aa)=>e=>typeof e!==fa?e:Gf(ne.isAbsolute(e)?e:ne.join(n,e)),Ox=(n,e)=>ne.isAbsolute(n)?n:n.startsWith(ia)?ia+ne.join(e,n.slice(1)):ne.join(e,n),tt=(n,e)=>n[e]===void 0,ca=class{constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&e!==Kf&&e!==Sx&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let s=this.path;try{await Rx(s)}catch{this._removeWatcher&&this._removeWatcher(ne.dirname(s),ne.basename(s))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;if(e)return[...e.values()]}dispose(){this.items.clear(),delete this.path,delete this._removeWatcher,delete this.items,Object.freeze(this)}},Px="stat",Mx="lstat",ua=class{constructor(e,t,s,r){this.fsw=r,this.path=e=e.replace(vx,aa),this.watchPath=t,this.fullWatchPath=ne.resolve(t),this.hasGlob=t!==e,e===aa&&(this.hasGlob=!1),this.globSymlink=this.hasGlob&&s?void 0:!1,this.globFilter=this.hasGlob?ra(e,void 0,oa):!1,this.dirParts=this.getDirParts(e),this.dirParts.forEach(i=>{i.length>1&&i.pop()}),this.followSymlinks=s,this.statMethod=s?Px:Mx}checkGlobSymlink(e){return this.globSymlink===void 0&&(this.globSymlink=e.fullParentDir===this.fullWatchPath?!1:{realPath:e.fullParentDir,linkPath:this.fullWatchPath}),this.globSymlink?e.fullPath.replace(this.globSymlink.realPath,this.globSymlink.linkPath):e.fullPath}entryPath(e){return ne.join(this.watchPath,ne.relative(this.watchPath,this.checkGlobSymlink(e)))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let s=this.entryPath(e);return(this.hasGlob&&typeof this.globFilter===Ax?this.globFilter(s):!0)&&this.fsw._isntIgnored(s,t)&&this.fsw._hasReadPermissions(t)}getDirParts(e){if(!this.hasGlob)return[];let t=[];return(e.includes(xx)?ax.expand(e):[e]).forEach(r=>{t.push(ne.relative(this.watchPath,r).split(yx))}),t}filterDir(e){if(this.hasGlob){let t=this.getDirParts(this.checkGlobSymlink(e)),s=!1;this.unmatchedGlob=!this.dirParts.some(r=>r.every((i,o)=>(i===_x&&(s=!0),s||!t[0][o]||ra(i,t[0][o],oa))))}return!this.unmatchedGlob&&this.fsw._isntIgnored(this.entryPath(e),e.stats)}},vr=class extends rx{constructor(e){super();let t={};e&&Object.assign(t,e),this._watched=new Map,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._symlinkPaths=new Map,this._streams=new Set,this.closed=!1,tt(t,"persistent")&&(t.persistent=!0),tt(t,"ignoreInitial")&&(t.ignoreInitial=!1),tt(t,"ignorePermissionErrors")&&(t.ignorePermissionErrors=!1),tt(t,"interval")&&(t.interval=100),tt(t,"binaryInterval")&&(t.binaryInterval=300),tt(t,"disableGlobbing")&&(t.disableGlobbing=!1),t.enableBinaryInterval=t.binaryInterval!==t.interval,tt(t,"useFsEvents")&&(t.useFsEvents=!t.usePolling),Ff.canUse()||(t.useFsEvents=!1),tt(t,"usePolling")&&!t.useFsEvents&&(t.usePolling=Cx),Ex&&(t.usePolling=!0);let r=process.env.CHOKIDAR_USEPOLLING;if(r!==void 0){let l=r.toLowerCase();l==="false"||l==="0"?t.usePolling=!1:l==="true"||l==="1"?t.usePolling=!0:t.usePolling=!!l}let i=process.env.CHOKIDAR_INTERVAL;i&&(t.interval=Number.parseInt(i,10)),tt(t,"atomic")&&(t.atomic=!t.usePolling&&!t.useFsEvents),t.atomic&&(this._pendingUnlinks=new Map),tt(t,"followSymlinks")&&(t.followSymlinks=!0),tt(t,"awaitWriteFinish")&&(t.awaitWriteFinish=!1),t.awaitWriteFinish===!0&&(t.awaitWriteFinish={});let o=t.awaitWriteFinish;o&&(o.stabilityThreshold||(o.stabilityThreshold=2e3),o.pollInterval||(o.pollInterval=100),this._pendingWrites=new Map),t.ignored&&(t.ignored=la(t.ignored));let a=0;this._emitReady=()=>{a++,a>=this._readyCount&&(this._emitReady=kx,this._readyEmitted=!0,process.nextTick(()=>this.emit(ux)))},this._emitRaw=(...l)=>this.emit(px,...l),this._readyEmitted=!1,this.options=t,t.useFsEvents?this._fsEventsHandler=new Ff(this):this._nodeFsHandler=new cx(this),Object.freeze(t)}add(e,t,s){let{cwd:r,disableGlobbing:i}=this.options;this.closed=!1;let o=Hf(e);return r&&(o=o.map(a=>{let l=Ox(a,r);return i||!Zo(a)?l:lx(l)})),o=o.filter(a=>a.startsWith(ia)?(this._ignoredPaths.add(a.slice(1)),!1):(this._ignoredPaths.delete(a),this._ignoredPaths.delete(a+sa),this._userIgnored=void 0,!0)),this.options.useFsEvents&&this._fsEventsHandler?(this._readyCount||(this._readyCount=o.length),this.options.persistent&&(this._readyCount+=o.length),o.forEach(a=>this._fsEventsHandler._addToFsEvents(a))):(this._readyCount||(this._readyCount=0),this._readyCount+=o.length,Promise.all(o.map(async a=>{let l=await this._nodeFsHandler._addToNodeFs(a,!s,0,0,t);return l&&this._emitReady(),l})).then(a=>{this.closed||a.filter(l=>l).forEach(l=>{this.add(ne.dirname(l),ne.basename(t||l))})})),this}unwatch(e){if(this.closed)return this;let t=Hf(e),{cwd:s}=this.options;return t.forEach(r=>{!ne.isAbsolute(r)&&!this._closers.has(r)&&(s&&(r=ne.join(s,r)),r=ne.resolve(r)),this._closePath(r),this._ignoredPaths.add(r),this._watched.has(r)&&this._ignoredPaths.add(r+sa),this._userIgnored=void 0}),this}close(){if(this.closed)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(s=>{let r=s();r instanceof Promise&&e.push(r)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),["closers","watched","streams","symlinkPaths","throttled"].forEach(t=>{this[`_${t}`].clear()}),this._closePromise=e.length?Promise.all(e).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,s)=>{let r=this.options.cwd?ne.relative(this.options.cwd,s):s;e[r||Kf]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(...t),e!==ta&&this.emit(ea,...t)}async _emit(e,t,s,r,i){if(this.closed)return;let o=this.options;$x&&(t=ne.normalize(t)),o.cwd&&(t=ne.relative(o.cwd,t));let a=[e,t];i!==void 0?a.push(s,r,i):r!==void 0?a.push(s,r):s!==void 0&&a.push(s);let l=o.awaitWriteFinish,u;if(l&&(u=this._pendingWrites.get(t)))return u.lastChange=new Date,this;if(o.atomic){if(e===Nf)return this._pendingUnlinks.set(t,a),setTimeout(()=>{this._pendingUnlinks.forEach((d,f)=>{this.emit(...d),this.emit(ea,...d),this._pendingUnlinks.delete(f)})},typeof o.atomic=="number"?o.atomic:100),this;e===br&&this._pendingUnlinks.has(t)&&(e=a[0]=us,this._pendingUnlinks.delete(t))}if(l&&(e===br||e===us)&&this._readyEmitted){let d=(f,h)=>{f?(e=a[0]=ta,a[1]=f,this.emitWithAll(e,a)):h&&(a.length>2?a[2]=h:a.push(h),this.emitWithAll(e,a))};return this._awaitWriteFinish(t,l.stabilityThreshold,e,d),this}if(e===us&&!this._throttle(us,t,50))return this;if(o.alwaysStat&&s===void 0&&(e===br||e===dx||e===us)){let d=o.cwd?ne.join(o.cwd,t):t,f;try{f=await Tx(d)}catch{}if(!f||this.closed)return;a.push(f)}return this.emitWithAll(e,a),this}_handleError(e){let t=e&&e.code;return e&&t!=="ENOENT"&&t!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||t!=="EPERM"&&t!=="EACCES")&&this.emit(ta,e),e||this.closed}_throttle(e,t,s){this._throttled.has(e)||this._throttled.set(e,new Map);let r=this._throttled.get(e),i=r.get(t);if(i)return i.count++,!1;let o,a=()=>{let u=r.get(t),d=u?u.count:0;return r.delete(t),clearTimeout(o),u&&clearTimeout(u.timeoutObject),d};o=setTimeout(a,s);let l={timeoutObject:o,clear:a,count:0};return r.set(t,l),l}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,s,r){let i,o=e;this.options.cwd&&!ne.isAbsolute(e)&&(o=ne.join(this.options.cwd,e));let a=new Date,l=u=>{da.stat(o,(d,f)=>{if(d||!this._pendingWrites.has(e)){d&&d.code!=="ENOENT"&&r(d);return}let h=Number(new Date);u&&f.size!==u.size&&(this._pendingWrites.get(e).lastChange=h);let m=this._pendingWrites.get(e);h-m.lastChange>=t?(this._pendingWrites.delete(e),r(void 0,f)):i=setTimeout(l,this.options.awaitWriteFinish.pollInterval,f)})};this._pendingWrites.has(e)||(this._pendingWrites.set(e,{lastChange:a,cancelWait:()=>(this._pendingWrites.delete(e),clearTimeout(i),s)}),i=setTimeout(l,this.options.awaitWriteFinish.pollInterval))}_getGlobIgnored(){return[...this._ignoredPaths.values()]}_isIgnored(e,t){if(this.options.atomic&&bx.test(e))return!0;if(!this._userIgnored){let{cwd:s}=this.options,r=this.options.ignored,i=r&&r.map(Uf(s)),o=la(i).filter(l=>typeof l===fa&&!Zo(l)).map(l=>l+sa),a=this._getGlobIgnored().map(Uf(s)).concat(i,o);this._userIgnored=ra(a,void 0,oa)}return this._userIgnored([e,t])}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e,t){let s=t||this.options.disableGlobbing||!Zo(e)?e:ox(e),r=this.options.followSymlinks;return new ua(e,s,r,this)}_getWatchedDir(e){this._boundRemove||(this._boundRemove=this._remove.bind(this));let t=ne.resolve(e);return this._watched.has(t)||this._watched.set(t,new ca(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){if(this.options.ignorePermissionErrors)return!0;let s=(e&&Number.parseInt(e.mode,10))&511;return!!(4&Number.parseInt(s.toString(8)[0],10))}_remove(e,t,s){let r=ne.join(e,t),i=ne.resolve(r);if(s=s??(this._watched.has(r)||this._watched.has(i)),!this._throttle("remove",r,100))return;!s&&!this.options.useFsEvents&&this._watched.size===1&&this.add(e,t,!0),this._getWatchedDir(r).getChildren().forEach(h=>this._remove(r,h));let l=this._getWatchedDir(e),u=l.has(t);l.remove(t),this._symlinkPaths.has(i)&&this._symlinkPaths.delete(i);let d=r;if(this.options.cwd&&(d=ne.relative(this.options.cwd,r)),this.options.awaitWriteFinish&&this._pendingWrites.has(d)&&this._pendingWrites.get(d).cancelWait()===br)return;this._watched.delete(r),this._watched.delete(i);let f=s?fx:Nf;u&&!this._isIgnored(r)&&this._emit(f,r),this.options.useFsEvents||this._closePath(r)}_closePath(e){this._closeFile(e);let t=ne.dirname(e);this._getWatchedDir(t).remove(ne.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(s=>s()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let s=this._closers.get(e);s||(s=[],this._closers.set(e,s)),s.push(t)}_readdirp(e,t){if(this.closed)return;let s={type:ea,alwaysStat:!0,lstat:!0,...t},r=ix(e,s);return this._streams.add(r),r.once(hx,()=>{r=void 0}),r.once(mx,()=>{r&&(this._streams.delete(r),r=void 0)}),r}};pa.FSWatcher=vr;var Ix=(n,e)=>{let t=new vr(e);return t.add(n),t};pa.watch=Ix});var Xf={};Le(Xf,{CollaborationManager:()=>ds,addTeamMember:()=>Fx,formatTeamConfig:()=>Nx,initTeamConfig:()=>Lx,loadTeamConfig:()=>Dx,saveTeamConfig:()=>Jf});function Dx(n){let e=Ge.join(n,".hablas","team.json");if(ye.existsSync(e))try{return JSON.parse(ye.readFileSync(e,"utf-8"))}catch{return null}return null}function Lx(n,e){let t={name:e,members:[]};return Jf(n,t),t}function Jf(n,e){let t=Ge.join(n,".hablas","team.json"),s=Ge.dirname(t);ye.existsSync(s)||ye.mkdirSync(s,{recursive:!0}),ye.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}function Fx(n,e,t){return n.members.push({name:e,email:t}),n}function Nx(n){return[`Team: ${n.name}`,"Members:",...n.members.map(t=>` - ${t.name} (${t.email})`)].join(`
311
+ If you cannot complete a task, explain why with absolute technical objectivity.`;ho=Ae.join(mo.homedir(),".hablas","backup")});var Zn=N((hE,Qu)=>{"use strict";var wb=require("path"),ht="\\\\/",zu=`[^${ht}]`,xb=0,Rt="\\.",Sb="\\+",_b="\\?",tr="\\/",Ab="(?=.)",Yu="[^/]",go=`(?:${tr}|$)`,Ju=`(?:^|${tr})`,yo=`${Rt}{1,2}${go}`,kb=`(?!${Rt})`,$b=`(?!${Ju}${yo})`,Cb=`(?!${Rt}{0,1}${go})`,Eb=`(?!${yo})`,Tb=`[^.${tr}]`,Rb=`${Yu}*?`,Xu={DOT_LITERAL:Rt,PLUS_LITERAL:Sb,QMARK_LITERAL:_b,SLASH_LITERAL:tr,ONE_CHAR:Ab,QMARK:Yu,END_ANCHOR:go,DOTS_SLASH:yo,NO_DOT:kb,NO_DOTS:$b,NO_DOT_SLASH:Cb,NO_DOTS_SLASH:Eb,QMARK_NO_DOT:Tb,STAR:Rb,START_ANCHOR:Ju},Ob={...Xu,SLASH_LITERAL:`[${ht}]`,QMARK:zu,STAR:`${zu}*?`,DOTS_SLASH:`${Rt}{1,2}(?:[${ht}]|$)`,NO_DOT:`(?!${Rt})`,NO_DOTS:`(?!(?:^|[${ht}])${Rt}{1,2}(?:[${ht}]|$))`,NO_DOT_SLASH:`(?!${Rt}{0,1}(?:[${ht}]|$))`,NO_DOTS_SLASH:`(?!${Rt}{1,2}(?:[${ht}]|$))`,QMARK_NO_DOT:`[^.${ht}]`,START_ANCHOR:`(?:^|[${ht}])`,END_ANCHOR:`(?:[${ht}]|$)`},Pb={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Qu.exports={DEFAULT_MAX_EXTGLOB_RECURSION:xb,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Pb,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:wb.sep,extglobChars(n){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${n.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(n){return n===!0?Ob:Xu}}});var nr=N(Ie=>{"use strict";var Mb=require("path"),Ib=process.platform==="win32",{REGEX_BACKSLASH:Db,REGEX_REMOVE_BACKSLASH:Lb,REGEX_SPECIAL_CHARS:Fb,REGEX_SPECIAL_CHARS_GLOBAL:Nb}=Zn();Ie.isObject=n=>n!==null&&typeof n=="object"&&!Array.isArray(n);Ie.hasRegexChars=n=>Fb.test(n);Ie.isRegexChar=n=>n.length===1&&Ie.hasRegexChars(n);Ie.escapeRegex=n=>n.replace(Nb,"\\$1");Ie.toPosixSlashes=n=>n.replace(Db,"/");Ie.removeBackslashes=n=>n.replace(Lb,e=>e==="\\"?"":e);Ie.supportsLookbehinds=()=>{let n=process.version.slice(1).split(".").map(Number);return n.length===3&&n[0]>=9||n[0]===8&&n[1]>=10};Ie.isWindows=n=>n&&typeof n.windows=="boolean"?n.windows:Ib===!0||Mb.sep==="\\";Ie.escapeLast=(n,e,t)=>{let s=n.lastIndexOf(e,t);return s===-1?n:n[s-1]==="\\"?Ie.escapeLast(n,e,s-1):`${n.slice(0,s)}\\${n.slice(s)}`};Ie.removePrefix=(n,e={})=>{let t=n;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};Ie.wrapOutput=(n,e={},t={})=>{let s=t.contains?"":"^",r=t.contains?"":"$",i=`${s}(?:${n})${r}`;return e.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var od=N((gE,id)=>{"use strict";var Zu=nr(),{CHAR_ASTERISK:bo,CHAR_AT:jb,CHAR_BACKWARD_SLASH:es,CHAR_COMMA:Hb,CHAR_DOT:vo,CHAR_EXCLAMATION_MARK:wo,CHAR_FORWARD_SLASH:rd,CHAR_LEFT_CURLY_BRACE:xo,CHAR_LEFT_PARENTHESES:So,CHAR_LEFT_SQUARE_BRACKET:Bb,CHAR_PLUS:Ub,CHAR_QUESTION_MARK:ed,CHAR_RIGHT_CURLY_BRACE:qb,CHAR_RIGHT_PARENTHESES:td,CHAR_RIGHT_SQUARE_BRACKET:Kb}=Zn(),nd=n=>n===rd||n===es,sd=n=>{n.isPrefix!==!0&&(n.depth=n.isGlobstar?1/0:1)},Wb=(n,e)=>{let t=e||{},s=n.length-1,r=t.parts===!0||t.scanToEnd===!0,i=[],o=[],a=[],l=n,u=-1,d=0,f=0,h=!1,m=!1,p=!1,g=!1,S=!1,x=!1,$=!1,k=!1,y=!1,b=!1,v=0,w,_,T={value:"",depth:0,isGlob:!1},P=()=>u>=s,C=()=>l.charCodeAt(u+1),F=()=>(w=_,l.charCodeAt(++u));for(;u<s;){_=F();let V;if(_===es){$=T.backslashes=!0,_=F(),_===xo&&(x=!0);continue}if(x===!0||_===xo){for(v++;P()!==!0&&(_=F());){if(_===es){$=T.backslashes=!0,F();continue}if(_===xo){v++;continue}if(x!==!0&&_===vo&&(_=F())===vo){if(h=T.isBrace=!0,p=T.isGlob=!0,b=!0,r===!0)continue;break}if(x!==!0&&_===Hb){if(h=T.isBrace=!0,p=T.isGlob=!0,b=!0,r===!0)continue;break}if(_===qb&&(v--,v===0)){x=!1,h=T.isBrace=!0,b=!0;break}}if(r===!0)continue;break}if(_===rd){if(i.push(u),o.push(T),T={value:"",depth:0,isGlob:!1},b===!0)continue;if(w===vo&&u===d+1){d+=2;continue}f=u+1;continue}if(t.noext!==!0&&(_===Ub||_===jb||_===bo||_===ed||_===wo)===!0&&C()===So){if(p=T.isGlob=!0,g=T.isExtglob=!0,b=!0,_===wo&&u===d&&(y=!0),r===!0){for(;P()!==!0&&(_=F());){if(_===es){$=T.backslashes=!0,_=F();continue}if(_===td){p=T.isGlob=!0,b=!0;break}}continue}break}if(_===bo){if(w===bo&&(S=T.isGlobstar=!0),p=T.isGlob=!0,b=!0,r===!0)continue;break}if(_===ed){if(p=T.isGlob=!0,b=!0,r===!0)continue;break}if(_===Bb){for(;P()!==!0&&(V=F());){if(V===es){$=T.backslashes=!0,F();continue}if(V===Kb){m=T.isBracket=!0,p=T.isGlob=!0,b=!0;break}}if(r===!0)continue;break}if(t.nonegate!==!0&&_===wo&&u===d){k=T.negated=!0,d++;continue}if(t.noparen!==!0&&_===So){if(p=T.isGlob=!0,r===!0){for(;P()!==!0&&(_=F());){if(_===So){$=T.backslashes=!0,_=F();continue}if(_===td){b=!0;break}}continue}break}if(p===!0){if(b=!0,r===!0)continue;break}}t.noext===!0&&(g=!1,p=!1);let H=l,W="",E="";d>0&&(W=l.slice(0,d),l=l.slice(d),f-=d),H&&p===!0&&f>0?(H=l.slice(0,f),E=l.slice(f)):p===!0?(H="",E=l):H=l,H&&H!==""&&H!=="/"&&H!==l&&nd(H.charCodeAt(H.length-1))&&(H=H.slice(0,-1)),t.unescape===!0&&(E&&(E=Zu.removeBackslashes(E)),H&&$===!0&&(H=Zu.removeBackslashes(H)));let A={prefix:W,input:n,start:d,base:H,glob:E,isBrace:h,isBracket:m,isGlob:p,isExtglob:g,isGlobstar:S,negated:k,negatedExtglob:y};if(t.tokens===!0&&(A.maxDepth=0,nd(_)||o.push(T),A.tokens=o),t.parts===!0||t.tokens===!0){let V;for(let U=0;U<i.length;U++){let Z=V?V+1:d,te=i[U],J=n.slice(Z,te);t.tokens&&(U===0&&d!==0?(o[U].isPrefix=!0,o[U].value=W):o[U].value=J,sd(o[U]),A.maxDepth+=o[U].depth),(U!==0||J!=="")&&a.push(J),V=te}if(V&&V+1<n.length){let U=n.slice(V+1);a.push(U),t.tokens&&(o[o.length-1].value=U,sd(o[o.length-1]),A.maxDepth+=o[o.length-1].depth)}A.slashes=i,A.parts=a}return A};id.exports=Wb});var dd=N((yE,ud)=>{"use strict";var ts=Zn(),$e=nr(),{MAX_LENGTH:sr,POSIX_REGEX_SOURCE:Gb,REGEX_NON_SPECIAL_CHARS:Vb,REGEX_SPECIAL_CHARS_BACKREF:zb,REPLACEMENTS:ad}=ts,Yb=(n,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...n,e);n.sort();let t=`[${n.join("-")}]`;try{new RegExp(t)}catch{return n.map(r=>$e.escapeRegex(r)).join("..")}return t},wn=(n,e)=>`Missing ${n}: "${e}" - use "\\\\${e}" to match literal characters`,ld=n=>{let e=[],t=0,s=0,r=0,i="",o=!1;for(let a of n){if(o===!0){i+=a,o=!1;continue}if(a==="\\"){i+=a,o=!0;continue}if(a==='"'){r=r===1?0:1,i+=a;continue}if(r===0){if(a==="[")t++;else if(a==="]"&&t>0)t--;else if(t===0){if(a==="(")s++;else if(a===")"&&s>0)s--;else if(a==="|"&&s===0){e.push(i),i="";continue}}}i+=a}return e.push(i),e},Jb=n=>{let e=!1;for(let t of n){if(e===!0){e=!1;continue}if(t==="\\"){e=!0;continue}if(/[?*+@!()[\]{}]/.test(t))return!1}return!0},cd=n=>{let e=n.trim(),t=!0;for(;t===!0;)t=!1,/^@\([^\\()[\]{}|]+\)$/.test(e)&&(e=e.slice(2,-1),t=!0);if(Jb(e))return e.replace(/\\(.)/g,"$1")},Xb=n=>{let e=n.map(cd).filter(Boolean);for(let t=0;t<e.length;t++)for(let s=t+1;s<e.length;s++){let r=e[t],i=e[s],o=r[0];if(!(!o||r!==o.repeat(r.length)||i!==o.repeat(i.length))&&(r===i||r.startsWith(i)||i.startsWith(r)))return!0}return!1},_o=(n,e=!0)=>{if(n[0]!=="+"&&n[0]!=="*"||n[1]!=="(")return;let t=0,s=0,r=0,i=!1;for(let o=1;o<n.length;o++){let a=n[o];if(i===!0){i=!1;continue}if(a==="\\"){i=!0;continue}if(a==='"'){r=r===1?0:1;continue}if(r!==1){if(a==="["){t++;continue}if(a==="]"&&t>0){t--;continue}if(!(t>0)){if(a==="("){s++;continue}if(a===")"&&(s--,s===0))return e===!0&&o!==n.length-1?void 0:{type:n[0],body:n.slice(2,o),end:o}}}}},Qb=n=>{let e=0,t=[];for(;e<n.length;){let r=_o(n.slice(e),!1);if(!r||r.type!=="*")return;let i=ld(r.body).map(a=>a.trim());if(i.length!==1)return;let o=cd(i[0]);if(!o||o.length!==1)return;t.push(o),e+=r.end+1}return t.length<1?void 0:`${t.length===1?$e.escapeRegex(t[0]):`[${t.map(r=>$e.escapeRegex(r)).join("")}]`}*`},Zb=n=>{let e=0,t=n.trim(),s=_o(t);for(;s;)e++,t=s.body.trim(),s=_o(t);return e},ev=(n,e)=>{if(e.maxExtglobRecursion===!1)return{risky:!1};let t=typeof e.maxExtglobRecursion=="number"?e.maxExtglobRecursion:ts.DEFAULT_MAX_EXTGLOB_RECURSION,s=ld(n).map(r=>r.trim());if(s.length>1&&(s.some(r=>r==="")||s.some(r=>/^[*?]+$/.test(r))||Xb(s)))return{risky:!0};for(let r of s){let i=Qb(r);if(i)return{risky:!0,safeOutput:i};if(Zb(r)>t)return{risky:!0}}return{risky:!1}},Ao=(n,e)=>{if(typeof n!="string")throw new TypeError("Expected a string");n=ad[n]||n;let t={...e},s=typeof t.maxLength=="number"?Math.min(sr,t.maxLength):sr,r=n.length;if(r>s)throw new SyntaxError(`Input length: ${r}, exceeds maximum allowed length: ${s}`);let i={type:"bos",value:"",output:t.prepend||""},o=[i],a=t.capture?"":"?:",l=$e.isWindows(e),u=ts.globChars(l),d=ts.extglobChars(u),{DOT_LITERAL:f,PLUS_LITERAL:h,SLASH_LITERAL:m,ONE_CHAR:p,DOTS_SLASH:g,NO_DOT:S,NO_DOT_SLASH:x,NO_DOTS_SLASH:$,QMARK:k,QMARK_NO_DOT:y,STAR:b,START_ANCHOR:v}=u,w=M=>`(${a}(?:(?!${v}${M.dot?g:f}).)*?)`,_=t.dot?"":S,T=t.dot?k:y,P=t.bash===!0?w(t):b;t.capture&&(P=`(${P})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let C={input:n,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};n=$e.removePrefix(n,C),r=n.length;let F=[],H=[],W=[],E=i,A,V=()=>C.index===r-1,U=C.peek=(M=1)=>n[C.index+M],Z=C.advance=()=>n[++C.index]||"",te=()=>n.slice(C.index+1),J=(M="",ee=0)=>{C.consumed+=M,C.index+=ee},de=M=>{C.output+=M.output!=null?M.output:M.value,J(M.value)},Re=()=>{let M=1;for(;U()==="!"&&(U(2)!=="("||U(3)==="?");)Z(),C.start++,M++;return M%2===0?!1:(C.negated=!0,C.start++,!0)},oe=M=>{C[M]++,W.push(M)},X=M=>{C[M]--,W.pop()},K=M=>{if(E.type==="globstar"){let ee=C.braces>0&&(M.type==="comma"||M.type==="brace"),D=M.extglob===!0||F.length&&(M.type==="pipe"||M.type==="paren");M.type!=="slash"&&M.type!=="paren"&&!ee&&!D&&(C.output=C.output.slice(0,-E.output.length),E.type="star",E.value="*",E.output=P,C.output+=E.output)}if(F.length&&M.type!=="paren"&&(F[F.length-1].inner+=M.value),(M.value||M.output)&&de(M),E&&E.type==="text"&&M.type==="text"){E.value+=M.value,E.output=(E.output||"")+M.value;return}M.prev=E,o.push(M),E=M},dt=(M,ee)=>{let D={...d[ee],conditions:1,inner:""};D.prev=E,D.parens=C.parens,D.output=C.output,D.startIndex=C.index,D.tokensIndex=o.length;let Q=(t.capture?"(":"")+D.open;oe("parens"),K({type:M,value:ee,output:C.output?"":p}),K({type:"paren",extglob:!0,value:Z(),output:Q}),F.push(D)},Oe=M=>{let ee=n.slice(M.startIndex,C.index+1),D=n.slice(M.startIndex+2,C.index),Q=ev(D,t);if((M.type==="plus"||M.type==="star")&&Q.risky){let re=Q.safeOutput?(M.output?"":p)+(t.capture?`(${Q.safeOutput})`:Q.safeOutput):void 0,ft=o[M.tokensIndex];ft.type="text",ft.value=ee,ft.output=re||$e.escapeRegex(ee);for(let pt=M.tokensIndex+1;pt<o.length;pt++)o[pt].value="",o[pt].output="",delete o[pt].suffix;C.output=M.output+ft.output,C.backtrack=!0,K({type:"paren",extglob:!0,value:A,output:""}),X("parens");return}let ae=M.close+(t.capture?")":""),ve;if(M.type==="negate"){let re=P;if(M.inner&&M.inner.length>1&&M.inner.includes("/")&&(re=w(t)),(re!==P||V()||/^\)+$/.test(te()))&&(ae=M.close=`)$))${re}`),M.inner.includes("*")&&(ve=te())&&/^\.[^\\/.]+$/.test(ve)){let ft=Ao(ve,{...e,fastpaths:!1}).output;ae=M.close=`)${ft})${re})`}M.prev.type==="bos"&&(C.negatedExtglob=!0)}K({type:"paren",extglob:!0,value:A,output:ae}),X("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(n)){let M=!1,ee=n.replace(zb,(D,Q,ae,ve,re,ft)=>ve==="\\"?(M=!0,D):ve==="?"?Q?Q+ve+(re?k.repeat(re.length):""):ft===0?T+(re?k.repeat(re.length):""):k.repeat(ae.length):ve==="."?f.repeat(ae.length):ve==="*"?Q?Q+ve+(re?P:""):P:Q?D:`\\${D}`);return M===!0&&(t.unescape===!0?ee=ee.replace(/\\/g,""):ee=ee.replace(/\\+/g,D=>D.length%2===0?"\\\\":D?"\\":"")),ee===n&&t.contains===!0?(C.output=n,C):(C.output=$e.wrapOutput(ee,C,e),C)}for(;!V();){if(A=Z(),A==="\0")continue;if(A==="\\"){let D=U();if(D==="/"&&t.bash!==!0||D==="."||D===";")continue;if(!D){A+="\\",K({type:"text",value:A});continue}let Q=/^\\+/.exec(te()),ae=0;if(Q&&Q[0].length>2&&(ae=Q[0].length,C.index+=ae,ae%2!==0&&(A+="\\")),t.unescape===!0?A=Z():A+=Z(),C.brackets===0){K({type:"text",value:A});continue}}if(C.brackets>0&&(A!=="]"||E.value==="["||E.value==="[^")){if(t.posix!==!1&&A===":"){let D=E.value.slice(1);if(D.includes("[")&&(E.posix=!0,D.includes(":"))){let Q=E.value.lastIndexOf("["),ae=E.value.slice(0,Q),ve=E.value.slice(Q+2),re=Gb[ve];if(re){E.value=ae+re,C.backtrack=!0,Z(),!i.output&&o.indexOf(E)===1&&(i.output=p);continue}}}(A==="["&&U()!==":"||A==="-"&&U()==="]")&&(A=`\\${A}`),A==="]"&&(E.value==="["||E.value==="[^")&&(A=`\\${A}`),t.posix===!0&&A==="!"&&E.value==="["&&(A="^"),E.value+=A,de({value:A});continue}if(C.quotes===1&&A!=='"'){A=$e.escapeRegex(A),E.value+=A,de({value:A});continue}if(A==='"'){C.quotes=C.quotes===1?0:1,t.keepQuotes===!0&&K({type:"text",value:A});continue}if(A==="("){oe("parens"),K({type:"paren",value:A});continue}if(A===")"){if(C.parens===0&&t.strictBrackets===!0)throw new SyntaxError(wn("opening","("));let D=F[F.length-1];if(D&&C.parens===D.parens+1){Oe(F.pop());continue}K({type:"paren",value:A,output:C.parens?")":"\\)"}),X("parens");continue}if(A==="["){if(t.nobracket===!0||!te().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(wn("closing","]"));A=`\\${A}`}else oe("brackets");K({type:"bracket",value:A});continue}if(A==="]"){if(t.nobracket===!0||E&&E.type==="bracket"&&E.value.length===1){K({type:"text",value:A,output:`\\${A}`});continue}if(C.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(wn("opening","["));K({type:"text",value:A,output:`\\${A}`});continue}X("brackets");let D=E.value.slice(1);if(E.posix!==!0&&D[0]==="^"&&!D.includes("/")&&(A=`/${A}`),E.value+=A,de({value:A}),t.literalBrackets===!1||$e.hasRegexChars(D))continue;let Q=$e.escapeRegex(E.value);if(C.output=C.output.slice(0,-E.value.length),t.literalBrackets===!0){C.output+=Q,E.value=Q;continue}E.value=`(${a}${Q}|${E.value})`,C.output+=E.value;continue}if(A==="{"&&t.nobrace!==!0){oe("braces");let D={type:"brace",value:A,output:"(",outputIndex:C.output.length,tokensIndex:C.tokens.length};H.push(D),K(D);continue}if(A==="}"){let D=H[H.length-1];if(t.nobrace===!0||!D){K({type:"text",value:A,output:A});continue}let Q=")";if(D.dots===!0){let ae=o.slice(),ve=[];for(let re=ae.length-1;re>=0&&(o.pop(),ae[re].type!=="brace");re--)ae[re].type!=="dots"&&ve.unshift(ae[re].value);Q=Yb(ve,t),C.backtrack=!0}if(D.comma!==!0&&D.dots!==!0){let ae=C.output.slice(0,D.outputIndex),ve=C.tokens.slice(D.tokensIndex);D.value=D.output="\\{",A=Q="\\}",C.output=ae;for(let re of ve)C.output+=re.output||re.value}K({type:"brace",value:A,output:Q}),X("braces"),H.pop();continue}if(A==="|"){F.length>0&&F[F.length-1].conditions++,K({type:"text",value:A});continue}if(A===","){let D=A,Q=H[H.length-1];Q&&W[W.length-1]==="braces"&&(Q.comma=!0,D="|"),K({type:"comma",value:A,output:D});continue}if(A==="/"){if(E.type==="dot"&&C.index===C.start+1){C.start=C.index+1,C.consumed="",C.output="",o.pop(),E=i;continue}K({type:"slash",value:A,output:m});continue}if(A==="."){if(C.braces>0&&E.type==="dot"){E.value==="."&&(E.output=f);let D=H[H.length-1];E.type="dots",E.output+=A,E.value+=A,D.dots=!0;continue}if(C.braces+C.parens===0&&E.type!=="bos"&&E.type!=="slash"){K({type:"text",value:A,output:f});continue}K({type:"dot",value:A,output:f});continue}if(A==="?"){if(!(E&&E.value==="(")&&t.noextglob!==!0&&U()==="("&&U(2)!=="?"){dt("qmark",A);continue}if(E&&E.type==="paren"){let Q=U(),ae=A;if(Q==="<"&&!$e.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(E.value==="("&&!/[!=<:]/.test(Q)||Q==="<"&&!/<([!=]|\w+>)/.test(te()))&&(ae=`\\${A}`),K({type:"text",value:A,output:ae});continue}if(t.dot!==!0&&(E.type==="slash"||E.type==="bos")){K({type:"qmark",value:A,output:y});continue}K({type:"qmark",value:A,output:k});continue}if(A==="!"){if(t.noextglob!==!0&&U()==="("&&(U(2)!=="?"||!/[!=<:]/.test(U(3)))){dt("negate",A);continue}if(t.nonegate!==!0&&C.index===0){Re();continue}}if(A==="+"){if(t.noextglob!==!0&&U()==="("&&U(2)!=="?"){dt("plus",A);continue}if(E&&E.value==="("||t.regex===!1){K({type:"plus",value:A,output:h});continue}if(E&&(E.type==="bracket"||E.type==="paren"||E.type==="brace")||C.parens>0){K({type:"plus",value:A});continue}K({type:"plus",value:h});continue}if(A==="@"){if(t.noextglob!==!0&&U()==="("&&U(2)!=="?"){K({type:"at",extglob:!0,value:A,output:""});continue}K({type:"text",value:A});continue}if(A!=="*"){(A==="$"||A==="^")&&(A=`\\${A}`);let D=Vb.exec(te());D&&(A+=D[0],C.index+=D[0].length),K({type:"text",value:A});continue}if(E&&(E.type==="globstar"||E.star===!0)){E.type="star",E.star=!0,E.value+=A,E.output=P,C.backtrack=!0,C.globstar=!0,J(A);continue}let M=te();if(t.noextglob!==!0&&/^\([^?]/.test(M)){dt("star",A);continue}if(E.type==="star"){if(t.noglobstar===!0){J(A);continue}let D=E.prev,Q=D.prev,ae=D.type==="slash"||D.type==="bos",ve=Q&&(Q.type==="star"||Q.type==="globstar");if(t.bash===!0&&(!ae||M[0]&&M[0]!=="/")){K({type:"star",value:A,output:""});continue}let re=C.braces>0&&(D.type==="comma"||D.type==="brace"),ft=F.length&&(D.type==="pipe"||D.type==="paren");if(!ae&&D.type!=="paren"&&!re&&!ft){K({type:"star",value:A,output:""});continue}for(;M.slice(0,3)==="/**";){let pt=n[C.index+4];if(pt&&pt!=="/")break;M=M.slice(3),J("/**",3)}if(D.type==="bos"&&V()){E.type="globstar",E.value+=A,E.output=w(t),C.output=E.output,C.globstar=!0,J(A);continue}if(D.type==="slash"&&D.prev.type!=="bos"&&!ve&&V()){C.output=C.output.slice(0,-(D.output+E.output).length),D.output=`(?:${D.output}`,E.type="globstar",E.output=w(t)+(t.strictSlashes?")":"|$)"),E.value+=A,C.globstar=!0,C.output+=D.output+E.output,J(A);continue}if(D.type==="slash"&&D.prev.type!=="bos"&&M[0]==="/"){let pt=M[1]!==void 0?"|$":"";C.output=C.output.slice(0,-(D.output+E.output).length),D.output=`(?:${D.output}`,E.type="globstar",E.output=`${w(t)}${m}|${m}${pt})`,E.value+=A,C.output+=D.output+E.output,C.globstar=!0,J(A+Z()),K({type:"slash",value:"/",output:""});continue}if(D.type==="bos"&&M[0]==="/"){E.type="globstar",E.value+=A,E.output=`(?:^|${m}|${w(t)}${m})`,C.output=E.output,C.globstar=!0,J(A+Z()),K({type:"slash",value:"/",output:""});continue}C.output=C.output.slice(0,-E.output.length),E.type="globstar",E.output=w(t),E.value+=A,C.output+=E.output,C.globstar=!0,J(A);continue}let ee={type:"star",value:A,output:P};if(t.bash===!0){ee.output=".*?",(E.type==="bos"||E.type==="slash")&&(ee.output=_+ee.output),K(ee);continue}if(E&&(E.type==="bracket"||E.type==="paren")&&t.regex===!0){ee.output=A,K(ee);continue}(C.index===C.start||E.type==="slash"||E.type==="dot")&&(E.type==="dot"?(C.output+=x,E.output+=x):t.dot===!0?(C.output+=$,E.output+=$):(C.output+=_,E.output+=_),U()!=="*"&&(C.output+=p,E.output+=p)),K(ee)}for(;C.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(wn("closing","]"));C.output=$e.escapeLast(C.output,"["),X("brackets")}for(;C.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(wn("closing",")"));C.output=$e.escapeLast(C.output,"("),X("parens")}for(;C.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(wn("closing","}"));C.output=$e.escapeLast(C.output,"{"),X("braces")}if(t.strictSlashes!==!0&&(E.type==="star"||E.type==="bracket")&&K({type:"maybe_slash",value:"",output:`${m}?`}),C.backtrack===!0){C.output="";for(let M of C.tokens)C.output+=M.output!=null?M.output:M.value,M.suffix&&(C.output+=M.suffix)}return C};Ao.fastpaths=(n,e)=>{let t={...e},s=typeof t.maxLength=="number"?Math.min(sr,t.maxLength):sr,r=n.length;if(r>s)throw new SyntaxError(`Input length: ${r}, exceeds maximum allowed length: ${s}`);n=ad[n]||n;let i=$e.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:u,NO_DOT:d,NO_DOTS:f,NO_DOTS_SLASH:h,STAR:m,START_ANCHOR:p}=ts.globChars(i),g=t.dot?f:d,S=t.dot?h:d,x=t.capture?"":"?:",$={negated:!1,prefix:""},k=t.bash===!0?".*?":m;t.capture&&(k=`(${k})`);let y=_=>_.noglobstar===!0?k:`(${x}(?:(?!${p}${_.dot?u:o}).)*?)`,b=_=>{switch(_){case"*":return`${g}${l}${k}`;case".*":return`${o}${l}${k}`;case"*.*":return`${g}${k}${o}${l}${k}`;case"*/*":return`${g}${k}${a}${l}${S}${k}`;case"**":return g+y(t);case"**/*":return`(?:${g}${y(t)}${a})?${S}${l}${k}`;case"**/*.*":return`(?:${g}${y(t)}${a})?${S}${k}${o}${l}${k}`;case"**/.*":return`(?:${g}${y(t)}${a})?${o}${l}${k}`;default:{let T=/^(.*?)\.(\w+)$/.exec(_);if(!T)return;let P=b(T[1]);return P?P+o+T[2]:void 0}}},v=$e.removePrefix(n,$),w=b(v);return w&&t.strictSlashes!==!0&&(w+=`${a}?`),w};ud.exports=Ao});var pd=N((bE,fd)=>{"use strict";var tv=require("path"),nv=od(),ko=dd(),$o=nr(),sv=Zn(),rv=n=>n&&typeof n=="object"&&!Array.isArray(n),ge=(n,e,t=!1)=>{if(Array.isArray(n)){let d=n.map(h=>ge(h,e,t));return h=>{for(let m of d){let p=m(h);if(p)return p}return!1}}let s=rv(n)&&n.tokens&&n.input;if(n===""||typeof n!="string"&&!s)throw new TypeError("Expected pattern to be a non-empty string");let r=e||{},i=$o.isWindows(e),o=s?ge.compileRe(n,e):ge.makeRe(n,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(r.ignore){let d={...e,ignore:null,onMatch:null,onResult:null};l=ge(r.ignore,d,t)}let u=(d,f=!1)=>{let{isMatch:h,match:m,output:p}=ge.test(d,o,e,{glob:n,posix:i}),g={glob:n,state:a,regex:o,posix:i,input:d,output:p,match:m,isMatch:h};return typeof r.onResult=="function"&&r.onResult(g),h===!1?(g.isMatch=!1,f?g:!1):l(d)?(typeof r.onIgnore=="function"&&r.onIgnore(g),g.isMatch=!1,f?g:!1):(typeof r.onMatch=="function"&&r.onMatch(g),f?g:!0)};return t&&(u.state=a),u};ge.test=(n,e,t,{glob:s,posix:r}={})=>{if(typeof n!="string")throw new TypeError("Expected input to be a string");if(n==="")return{isMatch:!1,output:""};let i=t||{},o=i.format||(r?$o.toPosixSlashes:null),a=n===s,l=a&&o?o(n):n;return a===!1&&(l=o?o(n):n,a=l===s),(a===!1||i.capture===!0)&&(i.matchBase===!0||i.basename===!0?a=ge.matchBase(n,e,t,r):a=e.exec(l)),{isMatch:!!a,match:a,output:l}};ge.matchBase=(n,e,t,s=$o.isWindows(t))=>(e instanceof RegExp?e:ge.makeRe(e,t)).test(tv.basename(n));ge.isMatch=(n,e,t)=>ge(e,t)(n);ge.parse=(n,e)=>Array.isArray(n)?n.map(t=>ge.parse(t,e)):ko(n,{...e,fastpaths:!1});ge.scan=(n,e)=>nv(n,e);ge.compileRe=(n,e,t=!1,s=!1)=>{if(t===!0)return n.output;let r=e||{},i=r.contains?"":"^",o=r.contains?"":"$",a=`${i}(?:${n.output})${o}`;n&&n.negated===!0&&(a=`^(?!${a}).*$`);let l=ge.toRegex(a,e);return s===!0&&(l.state=n),l};ge.makeRe=(n,e={},t=!1,s=!1)=>{if(!n||typeof n!="string")throw new TypeError("Expected a non-empty string");let r={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(n[0]==="."||n[0]==="*")&&(r.output=ko.fastpaths(n,e)),r.output||(r=ko(n,e)),ge.compileRe(r,e,t,s)};ge.toRegex=(n,e)=>{try{let t=e||{};return new RegExp(n,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};ge.constants=sv;fd.exports=ge});var Co=N((vE,hd)=>{"use strict";hd.exports=pd()});var Sd=N((wE,xd)=>{"use strict";var ss=require("fs"),{Readable:iv}=require("stream"),ns=require("path"),{promisify:ar}=require("util"),Eo=Co(),ov=ar(ss.readdir),av=ar(ss.stat),md=ar(ss.lstat),lv=ar(ss.realpath),cv="!",vd="READDIRP_RECURSIVE_ERROR",uv=new Set(["ENOENT","EPERM","EACCES","ELOOP",vd]),To="files",wd="directories",ir="files_directories",rr="all",gd=[To,wd,ir,rr],dv=n=>uv.has(n.code),[yd,fv]=process.versions.node.split(".").slice(0,2).map(n=>Number.parseInt(n,10)),pv=process.platform==="win32"&&(yd>10||yd===10&&fv>=5),bd=n=>{if(n!==void 0){if(typeof n=="function")return n;if(typeof n=="string"){let e=Eo(n.trim());return t=>e(t.basename)}if(Array.isArray(n)){let e=[],t=[];for(let s of n){let r=s.trim();r.charAt(0)===cv?t.push(Eo(r.slice(1))):e.push(Eo(r))}return t.length>0?e.length>0?s=>e.some(r=>r(s.basename))&&!t.some(r=>r(s.basename)):s=>!t.some(r=>r(s.basename)):s=>e.some(r=>r(s.basename))}}},or=class n extends iv{static get defaultOptions(){return{root:".",fileFilter:e=>!0,directoryFilter:e=>!0,type:To,lstat:!1,depth:2147483648,alwaysStat:!1}}constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark||4096});let t={...n.defaultOptions,...e},{root:s,type:r}=t;this._fileFilter=bd(t.fileFilter),this._directoryFilter=bd(t.directoryFilter);let i=t.lstat?md:av;pv?this._stat=o=>i(o,{bigint:!0}):this._stat=i,this._maxDepth=t.depth,this._wantsDir=[wd,ir,rr].includes(r),this._wantsFile=[To,ir,rr].includes(r),this._wantsEverything=r===rr,this._root=ns.resolve(s),this._isDirent="Dirent"in ss&&!t.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(s,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let{path:t,depth:s,files:r=[]}=this.parent||{};if(r.length>0){let i=r.splice(0,e).map(o=>this._formatEntry(o,t));for(let o of await Promise.all(i)){if(this.destroyed)return;let a=await this._getEntryType(o);a==="directory"&&this._directoryFilter(o)?(s<=this._maxDepth&&this.parents.push(this._exploreDir(o.fullPath,s+1)),this._wantsDir&&(this.push(o),e--)):(a==="file"||this._includeAsFile(o))&&this._fileFilter(o)&&this._wantsFile&&(this.push(o),e--)}}else{let i=this.parents.pop();if(!i){this.push(null);break}if(this.parent=await i,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(e,t){let s;try{s=await ov(e,this._rdOptions)}catch(r){this._onError(r)}return{files:s,depth:t,path:e}}async _formatEntry(e,t){let s;try{let r=this._isDirent?e.name:e,i=ns.resolve(ns.join(t,r));s={path:ns.relative(this._root,i),fullPath:i,basename:r},s[this._statsProp]=this._isDirent?e:await this._stat(i)}catch(r){this._onError(r)}return s}_onError(e){dv(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}async _getEntryType(e){let t=e&&e[this._statsProp];if(t){if(t.isFile())return"file";if(t.isDirectory())return"directory";if(t&&t.isSymbolicLink()){let s=e.fullPath;try{let r=await lv(s),i=await md(r);if(i.isFile())return"file";if(i.isDirectory()){let o=r.length;if(s.startsWith(r)&&s.substr(o,1)===ns.sep){let a=new Error(`Circular symlink detected: "${s}" points to "${r}"`);return a.code=vd,this._onError(a)}return"directory"}}catch(r){this._onError(r)}}}}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}},xn=(n,e={})=>{let t=e.entryType||e.type;if(t==="both"&&(t=ir),t&&(e.type=t),n){if(typeof n!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(t&&!gd.includes(t))throw new Error(`readdirp: Invalid type passed. Use one of ${gd.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return e.root=n,new or(e)},hv=(n,e={})=>new Promise((t,s)=>{let r=[];xn(n,e).on("data",i=>r.push(i)).on("end",()=>t(r)).on("error",i=>s(i))});xn.promise=hv;xn.ReaddirpStream=or;xn.default=xn;xd.exports=xn});var Ro=N((xE,_d)=>{_d.exports=function(n,e){if(typeof n!="string")throw new TypeError("expected path to be a string");if(n==="\\"||n==="/")return"/";var t=n.length;if(t<=1)return n;var s="";if(t>4&&n[3]==="\\"){var r=n[2];(r==="?"||r===".")&&n.slice(0,2)==="\\\\"&&(n=n.slice(2),s="//")}var i=n.split(/[/\\]+/);return e!==!1&&i[i.length-1]===""&&i.pop(),s+i.join("/")}});var Td=N((Cd,Ed)=>{"use strict";Object.defineProperty(Cd,"__esModule",{value:!0});var $d=Co(),mv=Ro(),Ad="!",gv={returnIndex:!1},yv=n=>Array.isArray(n)?n:[n],bv=(n,e)=>{if(typeof n=="function")return n;if(typeof n=="string"){let t=$d(n,e);return s=>n===s||t(s)}return n instanceof RegExp?t=>n.test(t):t=>!1},kd=(n,e,t,s)=>{let r=Array.isArray(t),i=r?t[0]:t;if(!r&&typeof i!="string")throw new TypeError("anymatch: second argument must be a string: got "+Object.prototype.toString.call(i));let o=mv(i,!1);for(let l=0;l<e.length;l++){let u=e[l];if(u(o))return s?-1:!1}let a=r&&[o].concat(t.slice(1));for(let l=0;l<n.length;l++){let u=n[l];if(r?u(...a):u(o))return s?l:!0}return s?-1:!1},Oo=(n,e,t=gv)=>{if(n==null)throw new TypeError("anymatch: specify first argument");let s=typeof t=="boolean"?{returnIndex:t}:t,r=s.returnIndex||!1,i=yv(n),o=i.filter(l=>typeof l=="string"&&l.charAt(0)===Ad).map(l=>l.slice(1)).map(l=>$d(l,s)),a=i.filter(l=>typeof l!="string"||typeof l=="string"&&l.charAt(0)!==Ad).map(l=>bv(l,s));return e==null?(l,u=!1)=>kd(a,o,l,typeof u=="boolean"?u:!1):kd(a,o,e,r)};Oo.default=Oo;Ed.exports=Oo});var Od=N((SE,Rd)=>{Rd.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var Po=N((_E,Md)=>{var vv=Od(),Pd={"{":"}","(":")","[":"]"},wv=function(n){if(n[0]==="!")return!0;for(var e=0,t=-2,s=-2,r=-2,i=-2,o=-2;e<n.length;){if(n[e]==="*"||n[e+1]==="?"&&/[\].+)]/.test(n[e])||s!==-1&&n[e]==="["&&n[e+1]!=="]"&&(s<e&&(s=n.indexOf("]",e)),s>e&&(o===-1||o>s||(o=n.indexOf("\\",e),o===-1||o>s)))||r!==-1&&n[e]==="{"&&n[e+1]!=="}"&&(r=n.indexOf("}",e),r>e&&(o=n.indexOf("\\",e),o===-1||o>r))||i!==-1&&n[e]==="("&&n[e+1]==="?"&&/[:!=]/.test(n[e+2])&&n[e+3]!==")"&&(i=n.indexOf(")",e),i>e&&(o=n.indexOf("\\",e),o===-1||o>i))||t!==-1&&n[e]==="("&&n[e+1]!=="|"&&(t<e&&(t=n.indexOf("|",e)),t!==-1&&n[t+1]!==")"&&(i=n.indexOf(")",t),i>t&&(o=n.indexOf("\\",t),o===-1||o>i))))return!0;if(n[e]==="\\"){var a=n[e+1];e+=2;var l=Pd[a];if(l){var u=n.indexOf(l,e);u!==-1&&(e=u+1)}if(n[e]==="!")return!0}else e++}return!1},xv=function(n){if(n[0]==="!")return!0;for(var e=0;e<n.length;){if(/[*?{}()[\]]/.test(n[e]))return!0;if(n[e]==="\\"){var t=n[e+1];e+=2;var s=Pd[t];if(s){var r=n.indexOf(s,e);r!==-1&&(e=r+1)}if(n[e]==="!")return!0}else e++}return!1};Md.exports=function(e,t){if(typeof e!="string"||e==="")return!1;if(vv(e))return!0;var s=wv;return t&&t.strict===!1&&(s=xv),s(e)}});var Dd=N((AE,Id)=>{"use strict";var Sv=Po(),_v=require("path").posix.dirname,Av=require("os").platform()==="win32",Mo="/",kv=/\\/g,$v=/[\{\[].*[\}\]]$/,Cv=/(^|[^\\])([\{\[]|\([^\)]+$)/,Ev=/\\([\!\*\?\|\[\]\(\)\{\}])/g;Id.exports=function(e,t){var s=Object.assign({flipBackslashes:!0},t);s.flipBackslashes&&Av&&e.indexOf(Mo)<0&&(e=e.replace(kv,Mo)),$v.test(e)&&(e+=Mo),e+="a";do e=_v(e);while(Sv(e)||Cv.test(e));return e.replace(Ev,"$1")}});var lr=N(We=>{"use strict";We.isInteger=n=>typeof n=="number"?Number.isInteger(n):typeof n=="string"&&n.trim()!==""?Number.isInteger(Number(n)):!1;We.find=(n,e)=>n.nodes.find(t=>t.type===e);We.exceedsLimit=(n,e,t=1,s)=>s===!1||!We.isInteger(n)||!We.isInteger(e)?!1:(Number(e)-Number(n))/Number(t)>=s;We.escapeNode=(n,e=0,t)=>{let s=n.nodes[e];s&&(t&&s.type===t||s.type==="open"||s.type==="close")&&s.escaped!==!0&&(s.value="\\"+s.value,s.escaped=!0)};We.encloseBrace=n=>n.type!=="brace"?!1:n.commas>>0+n.ranges>>0===0?(n.invalid=!0,!0):!1;We.isInvalidBrace=n=>n.type!=="brace"?!1:n.invalid===!0||n.dollar?!0:n.commas>>0+n.ranges>>0===0||n.open!==!0||n.close!==!0?(n.invalid=!0,!0):!1;We.isOpenOrClose=n=>n.type==="open"||n.type==="close"?!0:n.open===!0||n.close===!0;We.reduce=n=>n.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);We.flatten=(...n)=>{let e=[],t=s=>{for(let r=0;r<s.length;r++){let i=s[r];if(Array.isArray(i)){t(i);continue}i!==void 0&&e.push(i)}return e};return t(n),e}});var cr=N(($E,Fd)=>{"use strict";var Ld=lr();Fd.exports=(n,e={})=>{let t=(s,r={})=>{let i=e.escapeInvalid&&Ld.isInvalidBrace(r),o=s.invalid===!0&&e.escapeInvalid===!0,a="";if(s.value)return(i||o)&&Ld.isOpenOrClose(s)?"\\"+s.value:s.value;if(s.value)return s.value;if(s.nodes)for(let l of s.nodes)a+=t(l);return a};return t(n)}});var jd=N((CE,Nd)=>{"use strict";Nd.exports=function(n){return typeof n=="number"?n-n===0:typeof n=="string"&&n.trim()!==""?Number.isFinite?Number.isFinite(+n):isFinite(+n):!1}});var zd=N((EE,Vd)=>{"use strict";var Hd=jd(),Qt=(n,e,t)=>{if(Hd(n)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||n===e)return String(n);if(Hd(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let s={relaxZeros:!0,...t};typeof s.strictZeros=="boolean"&&(s.relaxZeros=s.strictZeros===!1);let r=String(s.relaxZeros),i=String(s.shorthand),o=String(s.capture),a=String(s.wrap),l=n+":"+e+"="+r+i+o+a;if(Qt.cache.hasOwnProperty(l))return Qt.cache[l].result;let u=Math.min(n,e),d=Math.max(n,e);if(Math.abs(u-d)===1){let g=n+"|"+e;return s.capture?`(${g})`:s.wrap===!1?g:`(?:${g})`}let f=Gd(n)||Gd(e),h={min:n,max:e,a:u,b:d},m=[],p=[];if(f&&(h.isPadded=f,h.maxLen=String(h.max).length),u<0){let g=d<0?Math.abs(d):1;p=Bd(g,Math.abs(u),h,s),u=h.a=0}return d>=0&&(m=Bd(u,d,h,s)),h.negatives=p,h.positives=m,h.result=Tv(p,m,s),s.capture===!0?h.result=`(${h.result})`:s.wrap!==!1&&m.length+p.length>1&&(h.result=`(?:${h.result})`),Qt.cache[l]=h,h.result};function Tv(n,e,t){let s=Io(n,e,"-",!1,t)||[],r=Io(e,n,"",!1,t)||[],i=Io(n,e,"-?",!0,t)||[];return s.concat(i).concat(r).join("|")}function Rv(n,e){let t=1,s=1,r=qd(n,t),i=new Set([e]);for(;n<=r&&r<=e;)i.add(r),t+=1,r=qd(n,t);for(r=Kd(e+1,s)-1;n<r&&r<=e;)i.add(r),s+=1,r=Kd(e+1,s)-1;return i=[...i],i.sort(Mv),i}function Ov(n,e,t){if(n===e)return{pattern:n,count:[],digits:0};let s=Pv(n,e),r=s.length,i="",o=0;for(let a=0;a<r;a++){let[l,u]=s[a];l===u?i+=l:l!=="0"||u!=="9"?i+=Iv(l,u,t):o++}return o&&(i+=t.shorthand===!0?"\\d":"[0-9]"),{pattern:i,count:[o],digits:r}}function Bd(n,e,t,s){let r=Rv(n,e),i=[],o=n,a;for(let l=0;l<r.length;l++){let u=r[l],d=Ov(String(o),String(u),s),f="";if(!t.isPadded&&a&&a.pattern===d.pattern){a.count.length>1&&a.count.pop(),a.count.push(d.count[0]),a.string=a.pattern+Wd(a.count),o=u+1;continue}t.isPadded&&(f=Dv(u,t,s)),d.string=f+d.pattern+Wd(d.count),i.push(d),o=u+1,a=d}return i}function Io(n,e,t,s,r){let i=[];for(let o of n){let{string:a}=o;!s&&!Ud(e,"string",a)&&i.push(t+a),s&&Ud(e,"string",a)&&i.push(t+a)}return i}function Pv(n,e){let t=[];for(let s=0;s<n.length;s++)t.push([n[s],e[s]]);return t}function Mv(n,e){return n>e?1:e>n?-1:0}function Ud(n,e,t){return n.some(s=>s[e]===t)}function qd(n,e){return Number(String(n).slice(0,-e)+"9".repeat(e))}function Kd(n,e){return n-n%Math.pow(10,e)}function Wd(n){let[e=0,t=""]=n;return t||e>1?`{${e+(t?","+t:"")}}`:""}function Iv(n,e,t){return`[${n}${e-n===1?"":"-"}${e}]`}function Gd(n){return/^-?(0+)\d/.test(n)}function Dv(n,e,t){if(!e.isPadded)return n;let s=Math.abs(e.maxLen-String(n).length),r=t.relaxZeros!==!1;switch(s){case 0:return"";case 1:return r?"0?":"0";case 2:return r?"0{0,2}":"00";default:return r?`0{0,${s}}`:`0{${s}}`}}Qt.cache={};Qt.clearCache=()=>Qt.cache={};Vd.exports=Qt});var Fo=N((TE,tf)=>{"use strict";var Lv=require("util"),Jd=zd(),Yd=n=>n!==null&&typeof n=="object"&&!Array.isArray(n),Fv=n=>e=>n===!0?Number(e):String(e),Do=n=>typeof n=="number"||typeof n=="string"&&n!=="",rs=n=>Number.isInteger(+n),Lo=n=>{let e=`${n}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},Nv=(n,e,t)=>typeof n=="string"||typeof e=="string"?!0:t.stringify===!0,jv=(n,e,t)=>{if(e>0){let s=n[0]==="-"?"-":"";s&&(n=n.slice(1)),n=s+n.padStart(s?e-1:e,"0")}return t===!1?String(n):n},dr=(n,e)=>{let t=n[0]==="-"?"-":"";for(t&&(n=n.slice(1),e--);n.length<e;)n="0"+n;return t?"-"+n:n},Hv=(n,e,t)=>{n.negatives.sort((a,l)=>a<l?-1:a>l?1:0),n.positives.sort((a,l)=>a<l?-1:a>l?1:0);let s=e.capture?"":"?:",r="",i="",o;return n.positives.length&&(r=n.positives.map(a=>dr(String(a),t)).join("|")),n.negatives.length&&(i=`-(${s}${n.negatives.map(a=>dr(String(a),t)).join("|")})`),r&&i?o=`${r}|${i}`:o=r||i,e.wrap?`(${s}${o})`:o},Xd=(n,e,t,s)=>{if(t)return Jd(n,e,{wrap:!1,...s});let r=String.fromCharCode(n);if(n===e)return r;let i=String.fromCharCode(e);return`[${r}-${i}]`},Qd=(n,e,t)=>{if(Array.isArray(n)){let s=t.wrap===!0,r=t.capture?"":"?:";return s?`(${r}${n.join("|")})`:n.join("|")}return Jd(n,e,t)},Zd=(...n)=>new RangeError("Invalid range arguments: "+Lv.inspect(...n)),ef=(n,e,t)=>{if(t.strictRanges===!0)throw Zd([n,e]);return[]},Bv=(n,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${n}" to be a number`);return[]},Uv=(n,e,t=1,s={})=>{let r=Number(n),i=Number(e);if(!Number.isInteger(r)||!Number.isInteger(i)){if(s.strictRanges===!0)throw Zd([n,e]);return[]}r===0&&(r=0),i===0&&(i=0);let o=r>i,a=String(n),l=String(e),u=String(t);t=Math.max(Math.abs(t),1);let d=Lo(a)||Lo(l)||Lo(u),f=d?Math.max(a.length,l.length,u.length):0,h=d===!1&&Nv(n,e,s)===!1,m=s.transform||Fv(h);if(s.toRegex&&t===1)return Xd(dr(n,f),dr(e,f),!0,s);let p={negatives:[],positives:[]},g=$=>p[$<0?"negatives":"positives"].push(Math.abs($)),S=[],x=0;for(;o?r>=i:r<=i;)s.toRegex===!0&&t>1?g(r):S.push(jv(m(r,x),f,h)),r=o?r-t:r+t,x++;return s.toRegex===!0?t>1?Hv(p,s,f):Qd(S,null,{wrap:!1,...s}):S},qv=(n,e,t=1,s={})=>{if(!rs(n)&&n.length>1||!rs(e)&&e.length>1)return ef(n,e,s);let r=s.transform||(h=>String.fromCharCode(h)),i=`${n}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=i>o,l=Math.min(i,o),u=Math.max(i,o);if(s.toRegex&&t===1)return Xd(l,u,!1,s);let d=[],f=0;for(;a?i>=o:i<=o;)d.push(r(i,f)),i=a?i-t:i+t,f++;return s.toRegex===!0?Qd(d,null,{wrap:!1,options:s}):d},ur=(n,e,t,s={})=>{if(e==null&&Do(n))return[n];if(!Do(n)||!Do(e))return ef(n,e,s);if(typeof t=="function")return ur(n,e,1,{transform:t});if(Yd(t))return ur(n,e,0,t);let r={...s};return r.capture===!0&&(r.wrap=!0),t=t||r.step||1,rs(t)?rs(n)&&rs(e)?Uv(n,e,t,r):qv(n,e,Math.max(Math.abs(t),1),r):t!=null&&!Yd(t)?Bv(t,r):ur(n,e,1,t)};tf.exports=ur});var rf=N((RE,sf)=>{"use strict";var Kv=Fo(),nf=lr(),Wv=(n,e={})=>{let t=(s,r={})=>{let i=nf.isInvalidBrace(r),o=s.invalid===!0&&e.escapeInvalid===!0,a=i===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",u="";if(s.isOpen===!0)return l+s.value;if(s.isClose===!0)return console.log("node.isClose",l,s.value),l+s.value;if(s.type==="open")return a?l+s.value:"(";if(s.type==="close")return a?l+s.value:")";if(s.type==="comma")return s.prev.type==="comma"?"":a?s.value:"|";if(s.value)return s.value;if(s.nodes&&s.ranges>0){let d=nf.reduce(s.nodes),f=Kv(...d,{...e,wrap:!1,toRegex:!0,strictZeros:!0});if(f.length!==0)return d.length>1&&f.length>1?`(${f})`:f}if(s.nodes)for(let d of s.nodes)u+=t(d,s);return u};return t(n)};sf.exports=Wv});var lf=N((OE,af)=>{"use strict";var Gv=Fo(),of=cr(),Sn=lr(),Zt=(n="",e="",t=!1)=>{let s=[];if(n=[].concat(n),e=[].concat(e),!e.length)return n;if(!n.length)return t?Sn.flatten(e).map(r=>`{${r}}`):e;for(let r of n)if(Array.isArray(r))for(let i of r)s.push(Zt(i,e,t));else for(let i of e)t===!0&&typeof i=="string"&&(i=`{${i}}`),s.push(Array.isArray(i)?Zt(r,i,t):r+i);return Sn.flatten(s)},Vv=(n,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,s=(r,i={})=>{r.queue=[];let o=i,a=i.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(r.invalid||r.dollar){a.push(Zt(a.pop(),of(r,e)));return}if(r.type==="brace"&&r.invalid!==!0&&r.nodes.length===2){a.push(Zt(a.pop(),["{}"]));return}if(r.nodes&&r.ranges>0){let f=Sn.reduce(r.nodes);if(Sn.exceedsLimit(...f,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=Gv(...f,e);h.length===0&&(h=of(r,e)),a.push(Zt(a.pop(),h)),r.nodes=[];return}let l=Sn.encloseBrace(r),u=r.queue,d=r;for(;d.type!=="brace"&&d.type!=="root"&&d.parent;)d=d.parent,u=d.queue;for(let f=0;f<r.nodes.length;f++){let h=r.nodes[f];if(h.type==="comma"&&r.type==="brace"){f===1&&u.push(""),u.push("");continue}if(h.type==="close"){a.push(Zt(a.pop(),u,l));continue}if(h.value&&h.type!=="open"){u.push(Zt(u.pop(),h.value));continue}h.nodes&&s(h,r)}return u};return Sn.flatten(s(n))};af.exports=Vv});var uf=N((PE,cf)=>{"use strict";cf.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
312
+ `,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var mf=N((ME,hf)=>{"use strict";var zv=cr(),{MAX_LENGTH:df,CHAR_BACKSLASH:No,CHAR_BACKTICK:Yv,CHAR_COMMA:Jv,CHAR_DOT:Xv,CHAR_LEFT_PARENTHESES:Qv,CHAR_RIGHT_PARENTHESES:Zv,CHAR_LEFT_CURLY_BRACE:ew,CHAR_RIGHT_CURLY_BRACE:tw,CHAR_LEFT_SQUARE_BRACKET:ff,CHAR_RIGHT_SQUARE_BRACKET:pf,CHAR_DOUBLE_QUOTE:nw,CHAR_SINGLE_QUOTE:sw,CHAR_NO_BREAK_SPACE:rw,CHAR_ZERO_WIDTH_NOBREAK_SPACE:iw}=uf(),ow=(n,e={})=>{if(typeof n!="string")throw new TypeError("Expected a string");let t=e||{},s=typeof t.maxLength=="number"?Math.min(df,t.maxLength):df;if(n.length>s)throw new SyntaxError(`Input length (${n.length}), exceeds max characters (${s})`);let r={type:"root",input:n,nodes:[]},i=[r],o=r,a=r,l=0,u=n.length,d=0,f=0,h,m=()=>n[d++],p=g=>{if(g.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&g.type==="text"){a.value+=g.value;return}return o.nodes.push(g),g.parent=o,g.prev=a,a=g,g};for(p({type:"bos"});d<u;)if(o=i[i.length-1],h=m(),!(h===iw||h===rw)){if(h===No){p({type:"text",value:(e.keepEscaping?h:"")+m()});continue}if(h===pf){p({type:"text",value:"\\"+h});continue}if(h===ff){l++;let g;for(;d<u&&(g=m());){if(h+=g,g===ff){l++;continue}if(g===No){h+=m();continue}if(g===pf&&(l--,l===0))break}p({type:"text",value:h});continue}if(h===Qv){o=p({type:"paren",nodes:[]}),i.push(o),p({type:"text",value:h});continue}if(h===Zv){if(o.type!=="paren"){p({type:"text",value:h});continue}o=i.pop(),p({type:"text",value:h}),o=i[i.length-1];continue}if(h===nw||h===sw||h===Yv){let g=h,S;for(e.keepQuotes!==!0&&(h="");d<u&&(S=m());){if(S===No){h+=S+m();continue}if(S===g){e.keepQuotes===!0&&(h+=S);break}h+=S}p({type:"text",value:h});continue}if(h===ew){f++;let S={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||o.dollar===!0,depth:f,commas:0,ranges:0,nodes:[]};o=p(S),i.push(o),p({type:"open",value:h});continue}if(h===tw){if(o.type!=="brace"){p({type:"text",value:h});continue}let g="close";o=i.pop(),o.close=!0,p({type:g,value:h}),f--,o=i[i.length-1];continue}if(h===Jv&&f>0){if(o.ranges>0){o.ranges=0;let g=o.nodes.shift();o.nodes=[g,{type:"text",value:zv(o)}]}p({type:"comma",value:h}),o.commas++;continue}if(h===Xv&&f>0&&o.commas===0){let g=o.nodes;if(f===0||g.length===0){p({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){g.pop();let S=g[g.length-1];S.value+=a.value+h,a=S,o.ranges--;continue}p({type:"dot",value:h});continue}p({type:"text",value:h})}do if(o=i.pop(),o.type!=="root"){o.nodes.forEach(x=>{x.nodes||(x.type==="open"&&(x.isOpen=!0),x.type==="close"&&(x.isClose=!0),x.nodes||(x.type="text"),x.invalid=!0)});let g=i[i.length-1],S=g.nodes.indexOf(o);g.nodes.splice(S,1,...o.nodes)}while(i.length>0);return p({type:"eos"}),r};hf.exports=ow});var bf=N((IE,yf)=>{"use strict";var gf=cr(),aw=rf(),lw=lf(),cw=mf(),Ue=(n,e={})=>{let t=[];if(Array.isArray(n))for(let s of n){let r=Ue.create(s,e);Array.isArray(r)?t.push(...r):t.push(r)}else t=[].concat(Ue.create(n,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Ue.parse=(n,e={})=>cw(n,e);Ue.stringify=(n,e={})=>gf(typeof n=="string"?Ue.parse(n,e):n,e);Ue.compile=(n,e={})=>(typeof n=="string"&&(n=Ue.parse(n,e)),aw(n,e));Ue.expand=(n,e={})=>{typeof n=="string"&&(n=Ue.parse(n,e));let t=lw(n,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Ue.create=(n,e={})=>n===""||n.length<3?[n]:e.expand!==!0?Ue.compile(n,e):Ue.expand(n,e);yf.exports=Ue});var vf=N((DE,uw)=>{uw.exports=["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]});var xf=N((LE,wf)=>{wf.exports=vf()});var _f=N((FE,Sf)=>{"use strict";var dw=require("path"),fw=xf(),pw=new Set(fw);Sf.exports=n=>pw.has(dw.extname(n).slice(1).toLowerCase())});var fr=N(B=>{"use strict";var{sep:hw}=require("path"),{platform:jo}=process,mw=require("os");B.EV_ALL="all";B.EV_READY="ready";B.EV_ADD="add";B.EV_CHANGE="change";B.EV_ADD_DIR="addDir";B.EV_UNLINK="unlink";B.EV_UNLINK_DIR="unlinkDir";B.EV_RAW="raw";B.EV_ERROR="error";B.STR_DATA="data";B.STR_END="end";B.STR_CLOSE="close";B.FSEVENT_CREATED="created";B.FSEVENT_MODIFIED="modified";B.FSEVENT_DELETED="deleted";B.FSEVENT_MOVED="moved";B.FSEVENT_CLONED="cloned";B.FSEVENT_UNKNOWN="unknown";B.FSEVENT_FLAG_MUST_SCAN_SUBDIRS=1;B.FSEVENT_TYPE_FILE="file";B.FSEVENT_TYPE_DIRECTORY="directory";B.FSEVENT_TYPE_SYMLINK="symlink";B.KEY_LISTENERS="listeners";B.KEY_ERR="errHandlers";B.KEY_RAW="rawEmitters";B.HANDLER_KEYS=[B.KEY_LISTENERS,B.KEY_ERR,B.KEY_RAW];B.DOT_SLASH=`.${hw}`;B.BACK_SLASH_RE=/\\/g;B.DOUBLE_SLASH_RE=/\/\//;B.SLASH_OR_BACK_SLASH_RE=/[/\\]/;B.DOT_RE=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/;B.REPLACER_RE=/^\.[/\\]/;B.SLASH="/";B.SLASH_SLASH="//";B.BRACE_START="{";B.BANG="!";B.ONE_DOT=".";B.TWO_DOTS="..";B.STAR="*";B.GLOBSTAR="**";B.ROOT_GLOBSTAR="/**/*";B.SLASH_GLOBSTAR="/**";B.DIR_SUFFIX="Dir";B.ANYMATCH_OPTS={dot:!0};B.STRING_TYPE="string";B.FUNCTION_TYPE="function";B.EMPTY_STR="";B.EMPTY_FN=()=>{};B.IDENTITY_FN=n=>n;B.isWindows=jo==="win32";B.isMacos=jo==="darwin";B.isLinux=jo==="linux";B.isIBMi=mw.type()==="OS400"});var Tf=N((jE,Ef)=>{"use strict";var Ot=require("fs"),xe=require("path"),{promisify:ls}=require("util"),gw=_f(),{isWindows:yw,isLinux:bw,EMPTY_FN:vw,EMPTY_STR:ww,KEY_LISTENERS:_n,KEY_ERR:Ho,KEY_RAW:is,HANDLER_KEYS:xw,EV_CHANGE:hr,EV_ADD:pr,EV_ADD_DIR:Sw,EV_ERROR:kf,STR_DATA:_w,STR_END:Aw,BRACE_START:kw,STAR:$w}=fr(),Cw="watch",Ew=ls(Ot.open),$f=ls(Ot.stat),Tw=ls(Ot.lstat),Rw=ls(Ot.close),Bo=ls(Ot.realpath),Ow={lstat:Tw,stat:$f},qo=(n,e)=>{n instanceof Set?n.forEach(e):e(n)},os=(n,e,t)=>{let s=n[e];s instanceof Set||(n[e]=s=new Set([s])),s.add(t)},Pw=n=>e=>{let t=n[e];t instanceof Set?t.clear():delete n[e]},as=(n,e,t)=>{let s=n[e];s instanceof Set?s.delete(t):s===t&&delete n[e]},Cf=n=>n instanceof Set?n.size===0:!n,mr=new Map;function Af(n,e,t,s,r){let i=(o,a)=>{t(n),r(o,a,{watchedPath:n}),a&&n!==a&&gr(xe.resolve(n,a),_n,xe.join(n,a))};try{return Ot.watch(n,e,i)}catch(o){s(o)}}var gr=(n,e,t,s,r)=>{let i=mr.get(n);i&&qo(i[e],o=>{o(t,s,r)})},Mw=(n,e,t,s)=>{let{listener:r,errHandler:i,rawEmitter:o}=s,a=mr.get(e),l;if(!t.persistent)return l=Af(n,t,r,i,o),l.close.bind(l);if(a)os(a,_n,r),os(a,Ho,i),os(a,is,o);else{if(l=Af(n,t,gr.bind(null,e,_n),i,gr.bind(null,e,is)),!l)return;l.on(kf,async u=>{let d=gr.bind(null,e,Ho);if(a.watcherUnusable=!0,yw&&u.code==="EPERM")try{let f=await Ew(n,"r");await Rw(f),d(u)}catch{}else d(u)}),a={listeners:r,errHandlers:i,rawEmitters:o,watcher:l},mr.set(e,a)}return()=>{as(a,_n,r),as(a,Ho,i),as(a,is,o),Cf(a.listeners)&&(a.watcher.close(),mr.delete(e),xw.forEach(Pw(a)),a.watcher=void 0,Object.freeze(a))}},Uo=new Map,Iw=(n,e,t,s)=>{let{listener:r,rawEmitter:i}=s,o=Uo.get(e),a=new Set,l=new Set,u=o&&o.options;return u&&(u.persistent<t.persistent||u.interval>t.interval)&&(a=o.listeners,l=o.rawEmitters,Ot.unwatchFile(e),o=void 0),o?(os(o,_n,r),os(o,is,i)):(o={listeners:r,rawEmitters:i,options:t,watcher:Ot.watchFile(e,t,(d,f)=>{qo(o.rawEmitters,m=>{m(hr,e,{curr:d,prev:f})});let h=d.mtimeMs;(d.size!==f.size||h>f.mtimeMs||h===0)&&qo(o.listeners,m=>m(n,d))})},Uo.set(e,o)),()=>{as(o,_n,r),as(o,is,i),Cf(o.listeners)&&(Uo.delete(e),Ot.unwatchFile(e),o.options=o.watcher=void 0,Object.freeze(o))}},Ko=class{constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let s=this.fsw.options,r=xe.dirname(e),i=xe.basename(e);this.fsw._getWatchedDir(r).add(i);let a=xe.resolve(e),l={persistent:s.persistent};t||(t=vw);let u;return s.usePolling?(l.interval=s.enableBinaryInterval&&gw(i)?s.binaryInterval:s.interval,u=Iw(e,a,l,{listener:t,rawEmitter:this.fsw._emitRaw})):u=Mw(e,a,l,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw}),u}_handleFile(e,t,s){if(this.fsw.closed)return;let r=xe.dirname(e),i=xe.basename(e),o=this.fsw._getWatchedDir(r),a=t;if(o.has(i))return;let l=async(d,f)=>{if(this.fsw._throttle(Cw,e,5)){if(!f||f.mtimeMs===0)try{let h=await $f(e);if(this.fsw.closed)return;let m=h.atimeMs,p=h.mtimeMs;(!m||m<=p||p!==a.mtimeMs)&&this.fsw._emit(hr,e,h),bw&&a.ino!==h.ino?(this.fsw._closeFile(d),a=h,this.fsw._addPathCloser(d,this._watchWithNodeFs(e,l))):a=h}catch{this.fsw._remove(r,i)}else if(o.has(i)){let h=f.atimeMs,m=f.mtimeMs;(!h||h<=m||m!==a.mtimeMs)&&this.fsw._emit(hr,e,f),a=f}}},u=this._watchWithNodeFs(e,l);if(!(s&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(pr,e,0))return;this.fsw._emit(pr,e,t)}return u}async _handleSymlink(e,t,s,r){if(this.fsw.closed)return;let i=e.fullPath,o=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let a;try{a=await Bo(s)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(o.has(r)?this.fsw._symlinkPaths.get(i)!==a&&(this.fsw._symlinkPaths.set(i,a),this.fsw._emit(hr,s,e.stats)):(o.add(r),this.fsw._symlinkPaths.set(i,a),this.fsw._emit(pr,s,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(i))return!0;this.fsw._symlinkPaths.set(i,!0)}_handleRead(e,t,s,r,i,o,a){if(e=xe.join(e,ww),!s.hasGlob&&(a=this.fsw._throttle("readdir",e,1e3),!a))return;let l=this.fsw._getWatchedDir(s.path),u=new Set,d=this.fsw._readdirp(e,{fileFilter:f=>s.filterPath(f),directoryFilter:f=>s.filterDir(f),depth:0}).on(_w,async f=>{if(this.fsw.closed){d=void 0;return}let h=f.path,m=xe.join(e,h);if(u.add(h),!(f.stats.isSymbolicLink()&&await this._handleSymlink(f,e,m,h))){if(this.fsw.closed){d=void 0;return}(h===r||!r&&!l.has(h))&&(this.fsw._incrReadyCount(),m=xe.join(i,xe.relative(i,m)),this._addToNodeFs(m,t,s,o+1))}}).on(kf,this._boundHandleError);return new Promise(f=>d.once(Aw,()=>{if(this.fsw.closed){d=void 0;return}let h=a?a.clear():!1;f(),l.getChildren().filter(m=>m!==e&&!u.has(m)&&(!s.hasGlob||s.filterPath({fullPath:xe.resolve(e,m)}))).forEach(m=>{this.fsw._remove(e,m)}),d=void 0,h&&this._handleRead(e,!1,s,r,i,o,a)}))}async _handleDir(e,t,s,r,i,o,a){let l=this.fsw._getWatchedDir(xe.dirname(e)),u=l.has(xe.basename(e));!(s&&this.fsw.options.ignoreInitial)&&!i&&!u&&(!o.hasGlob||o.globFilter(e))&&this.fsw._emit(Sw,e,t),l.add(xe.basename(e)),this.fsw._getWatchedDir(e);let d,f,h=this.fsw.options.depth;if((h==null||r<=h)&&!this.fsw._symlinkPaths.has(a)){if(!i&&(await this._handleRead(e,s,o,i,e,r,d),this.fsw.closed))return;f=this._watchWithNodeFs(e,(m,p)=>{p&&p.mtimeMs===0||this._handleRead(m,!1,o,i,e,r,d)})}return f}async _addToNodeFs(e,t,s,r,i){let o=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return o(),!1;let a=this.fsw._getWatchHelpers(e,r);!a.hasGlob&&s&&(a.hasGlob=s.hasGlob,a.globFilter=s.globFilter,a.filterPath=l=>s.filterPath(l),a.filterDir=l=>s.filterDir(l));try{let l=await Ow[a.statMethod](a.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(a.watchPath,l))return o(),!1;let u=this.fsw.options.followSymlinks&&!e.includes($w)&&!e.includes(kw),d;if(l.isDirectory()){let f=xe.resolve(e),h=u?await Bo(e):e;if(this.fsw.closed||(d=await this._handleDir(a.watchPath,l,t,r,i,a,h),this.fsw.closed))return;f!==h&&h!==void 0&&this.fsw._symlinkPaths.set(f,h)}else if(l.isSymbolicLink()){let f=u?await Bo(e):e;if(this.fsw.closed)return;let h=xe.dirname(a.watchPath);if(this.fsw._getWatchedDir(h).add(a.watchPath),this.fsw._emit(pr,a.watchPath,l),d=await this._handleDir(h,l,t,r,e,a,f),this.fsw.closed)return;f!==void 0&&this.fsw._symlinkPaths.set(xe.resolve(e),f)}else d=this._handleFile(a.watchPath,l,t);return o(),this.fsw._addPathCloser(e,d),!1}catch(l){if(this.fsw._handleError(l))return o(),e}}};Ef.exports=Ko});var Lf=N((HE,Qo)=>{"use strict";var Jo=require("fs"),Se=require("path"),{promisify:Xo}=require("util"),An;try{An=require("fsevents")}catch(n){process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR&&console.error(n)}if(An){let n=process.version.match(/v(\d+)\.(\d+)/);if(n&&n[1]&&n[2]){let e=Number.parseInt(n[1],10),t=Number.parseInt(n[2],10);e===8&&t<16&&(An=void 0)}}var{EV_ADD:Wo,EV_CHANGE:Dw,EV_ADD_DIR:Rf,EV_UNLINK:yr,EV_ERROR:Lw,STR_DATA:Fw,STR_END:Nw,FSEVENT_CREATED:jw,FSEVENT_MODIFIED:Hw,FSEVENT_DELETED:Bw,FSEVENT_MOVED:Uw,FSEVENT_UNKNOWN:qw,FSEVENT_FLAG_MUST_SCAN_SUBDIRS:Kw,FSEVENT_TYPE_FILE:Ww,FSEVENT_TYPE_DIRECTORY:cs,FSEVENT_TYPE_SYMLINK:Df,ROOT_GLOBSTAR:Of,DIR_SUFFIX:Gw,DOT_SLASH:Pf,FUNCTION_TYPE:Go,EMPTY_FN:Vw,IDENTITY_FN:zw}=fr(),Yw=n=>isNaN(n)?{}:{depth:n},zo=Xo(Jo.stat),Jw=Xo(Jo.lstat),Mf=Xo(Jo.realpath),Xw={stat:zo,lstat:Jw},en=new Map,Qw=10,Zw=new Set([69888,70400,71424,72704,73472,131328,131840,262912]),ex=(n,e)=>({stop:An.watch(n,e)});function tx(n,e,t,s){let r=Se.extname(e)?Se.dirname(e):e,i=Se.dirname(r),o=en.get(r);nx(i)&&(r=i);let a=Se.resolve(n),l=a!==e,u=(f,h,m)=>{l&&(f=f.replace(e,a)),(f===a||!f.indexOf(a+Se.sep))&&t(f,h,m)},d=!1;for(let f of en.keys())if(e.indexOf(Se.resolve(f)+Se.sep)===0){r=f,o=en.get(r),d=!0;break}return o||d?o.listeners.add(u):(o={listeners:new Set([u]),rawEmitter:s,watcher:ex(r,(f,h)=>{if(!o.listeners.size||h&Kw)return;let m=An.getInfo(f,h);o.listeners.forEach(p=>{p(f,h,m)}),o.rawEmitter(m.event,f,m)})},en.set(r,o)),()=>{let f=o.listeners;if(f.delete(u),!f.size&&(en.delete(r),o.watcher))return o.watcher.stop().then(()=>{o.rawEmitter=o.watcher=void 0,Object.freeze(o)})}}var nx=n=>{let e=0;for(let t of en.keys())if(t.indexOf(n)===0&&(e++,e>=Qw))return!0;return!1},sx=()=>An&&en.size<128,Vo=(n,e)=>{let t=0;for(;!n.indexOf(e)&&(n=Se.dirname(n))!==e;)t++;return t},If=(n,e)=>n.type===cs&&e.isDirectory()||n.type===Df&&e.isSymbolicLink()||n.type===Ww&&e.isFile(),Yo=class{constructor(e){this.fsw=e}checkIgnored(e,t){let s=this.fsw._ignoredPaths;if(this.fsw._isIgnored(e,t))return s.add(e),t&&t.isDirectory()&&s.add(e+Of),!0;s.delete(e),s.delete(e+Of)}addOrChange(e,t,s,r,i,o,a,l){let u=i.has(o)?Dw:Wo;this.handleEvent(u,e,t,s,r,i,o,a,l)}async checkExists(e,t,s,r,i,o,a,l){try{let u=await zo(e);if(this.fsw.closed)return;If(a,u)?this.addOrChange(e,t,s,r,i,o,a,l):this.handleEvent(yr,e,t,s,r,i,o,a,l)}catch(u){u.code==="EACCES"?this.addOrChange(e,t,s,r,i,o,a,l):this.handleEvent(yr,e,t,s,r,i,o,a,l)}}handleEvent(e,t,s,r,i,o,a,l,u){if(!(this.fsw.closed||this.checkIgnored(t)))if(e===yr){let d=l.type===cs;(d||o.has(a))&&this.fsw._remove(i,a,d)}else{if(e===Wo){if(l.type===cs&&this.fsw._getWatchedDir(t),l.type===Df&&u.followSymlinks){let f=u.depth===void 0?void 0:Vo(s,r)+1;return this._addToFsEvents(t,!1,!0,f)}this.fsw._getWatchedDir(i).add(a)}let d=l.type===cs?e+Gw:e;this.fsw._emit(d,t),d===Rf&&this._addToFsEvents(t,!1,!0)}}_watchWithFsEvents(e,t,s,r){if(this.fsw.closed||this.fsw._isIgnored(e))return;let i=this.fsw.options,a=tx(e,t,async(l,u,d)=>{if(this.fsw.closed||i.depth!==void 0&&Vo(l,t)>i.depth)return;let f=s(Se.join(e,Se.relative(e,l)));if(r&&!r(f))return;let h=Se.dirname(f),m=Se.basename(f),p=this.fsw._getWatchedDir(d.type===cs?f:h);if(Zw.has(u)||d.event===qw)if(typeof i.ignored===Go){let g;try{g=await zo(f)}catch{}if(this.fsw.closed||this.checkIgnored(f,g))return;If(d,g)?this.addOrChange(f,l,t,h,p,m,d,i):this.handleEvent(yr,f,l,t,h,p,m,d,i)}else this.checkExists(f,l,t,h,p,m,d,i);else switch(d.event){case jw:case Hw:return this.addOrChange(f,l,t,h,p,m,d,i);case Bw:case Uw:return this.checkExists(f,l,t,h,p,m,d,i)}},this.fsw._emitRaw);return this.fsw._emitReady(),a}async _handleFsEventsSymlink(e,t,s,r){if(!(this.fsw.closed||this.fsw._symlinkPaths.has(t))){this.fsw._symlinkPaths.set(t,!0),this.fsw._incrReadyCount();try{let i=await Mf(e);if(this.fsw.closed)return;if(this.fsw._isIgnored(i))return this.fsw._emitReady();this.fsw._incrReadyCount(),this._addToFsEvents(i||e,o=>{let a=e;return i&&i!==Pf?a=o.replace(i,e):o!==Pf&&(a=Se.join(e,o)),s(a)},!1,r)}catch(i){if(this.fsw._handleError(i))return this.fsw._emitReady()}}}emitAdd(e,t,s,r,i){let o=s(e),a=t.isDirectory(),l=this.fsw._getWatchedDir(Se.dirname(o)),u=Se.basename(o);a&&this.fsw._getWatchedDir(o),!l.has(u)&&(l.add(u),(!r.ignoreInitial||i===!0)&&this.fsw._emit(a?Rf:Wo,o,t))}initWatch(e,t,s,r){if(this.fsw.closed)return;let i=this._watchWithFsEvents(s.watchPath,Se.resolve(e||s.watchPath),r,s.globFilter);this.fsw._addPathCloser(t,i)}async _addToFsEvents(e,t,s,r){if(this.fsw.closed)return;let i=this.fsw.options,o=typeof t===Go?t:zw,a=this.fsw._getWatchHelpers(e);try{let l=await Xw[a.statMethod](a.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(a.watchPath,l))throw null;if(l.isDirectory()){if(a.globFilter||this.emitAdd(o(e),l,o,i,s),r&&r>i.depth)return;this.fsw._readdirp(a.watchPath,{fileFilter:u=>a.filterPath(u),directoryFilter:u=>a.filterDir(u),...Yw(i.depth-(r||0))}).on(Fw,u=>{if(this.fsw.closed||u.stats.isDirectory()&&!a.filterPath(u))return;let d=Se.join(a.watchPath,u.path),{fullPath:f}=u;if(a.followSymlinks&&u.stats.isSymbolicLink()){let h=i.depth===void 0?void 0:Vo(d,Se.resolve(a.watchPath))+1;this._handleFsEventsSymlink(d,f,o,h)}else this.emitAdd(d,u.stats,o,i,s)}).on(Lw,Vw).on(Nw,()=>{this.fsw._emitReady()})}else this.emitAdd(a.watchPath,l,o,i,s),this.fsw._emitReady()}catch(l){(!l||this.fsw._handleError(l))&&(this.fsw._emitReady(),this.fsw._emitReady())}if(i.persistent&&s!==!0)if(typeof t===Go)this.initWatch(void 0,e,a,o);else{let l;try{l=await Mf(a.watchPath)}catch{}this.initWatch(l,e,a,o)}}};Qo.exports=Yo;Qo.exports.canUse=sx});var Vf=N(pa=>{"use strict";var{EventEmitter:rx}=require("events"),da=require("fs"),ne=require("path"),{promisify:qf}=require("util"),ix=Sd(),ra=Td().default,ox=Dd(),Zo=Po(),ax=bf(),lx=Ro(),cx=Tf(),Ff=Lf(),{EV_ALL:ea,EV_READY:ux,EV_ADD:br,EV_CHANGE:us,EV_UNLINK:Nf,EV_ADD_DIR:dx,EV_UNLINK_DIR:fx,EV_RAW:px,EV_ERROR:ta,STR_CLOSE:hx,STR_END:mx,BACK_SLASH_RE:gx,DOUBLE_SLASH_RE:jf,SLASH_OR_BACK_SLASH_RE:yx,DOT_RE:bx,REPLACER_RE:vx,SLASH:na,SLASH_SLASH:wx,BRACE_START:xx,BANG:ia,ONE_DOT:Kf,TWO_DOTS:Sx,GLOBSTAR:_x,SLASH_GLOBSTAR:sa,ANYMATCH_OPTS:oa,STRING_TYPE:fa,FUNCTION_TYPE:Ax,EMPTY_STR:aa,EMPTY_FN:kx,isWindows:$x,isMacos:Cx,isIBMi:Ex}=fr(),Tx=qf(da.stat),Rx=qf(da.readdir),la=(n=[])=>Array.isArray(n)?n:[n],Wf=(n,e=[])=>(n.forEach(t=>{Array.isArray(t)?Wf(t,e):e.push(t)}),e),Hf=n=>{let e=Wf(la(n));if(!e.every(t=>typeof t===fa))throw new TypeError(`Non-string provided as watch path: ${e}`);return e.map(Gf)},Bf=n=>{let e=n.replace(gx,na),t=!1;for(e.startsWith(wx)&&(t=!0);e.match(jf);)e=e.replace(jf,na);return t&&(e=na+e),e},Gf=n=>Bf(ne.normalize(Bf(n))),Uf=(n=aa)=>e=>typeof e!==fa?e:Gf(ne.isAbsolute(e)?e:ne.join(n,e)),Ox=(n,e)=>ne.isAbsolute(n)?n:n.startsWith(ia)?ia+ne.join(e,n.slice(1)):ne.join(e,n),tt=(n,e)=>n[e]===void 0,ca=class{constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&e!==Kf&&e!==Sx&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let s=this.path;try{await Rx(s)}catch{this._removeWatcher&&this._removeWatcher(ne.dirname(s),ne.basename(s))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;if(e)return[...e.values()]}dispose(){this.items.clear(),delete this.path,delete this._removeWatcher,delete this.items,Object.freeze(this)}},Px="stat",Mx="lstat",ua=class{constructor(e,t,s,r){this.fsw=r,this.path=e=e.replace(vx,aa),this.watchPath=t,this.fullWatchPath=ne.resolve(t),this.hasGlob=t!==e,e===aa&&(this.hasGlob=!1),this.globSymlink=this.hasGlob&&s?void 0:!1,this.globFilter=this.hasGlob?ra(e,void 0,oa):!1,this.dirParts=this.getDirParts(e),this.dirParts.forEach(i=>{i.length>1&&i.pop()}),this.followSymlinks=s,this.statMethod=s?Px:Mx}checkGlobSymlink(e){return this.globSymlink===void 0&&(this.globSymlink=e.fullParentDir===this.fullWatchPath?!1:{realPath:e.fullParentDir,linkPath:this.fullWatchPath}),this.globSymlink?e.fullPath.replace(this.globSymlink.realPath,this.globSymlink.linkPath):e.fullPath}entryPath(e){return ne.join(this.watchPath,ne.relative(this.watchPath,this.checkGlobSymlink(e)))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let s=this.entryPath(e);return(this.hasGlob&&typeof this.globFilter===Ax?this.globFilter(s):!0)&&this.fsw._isntIgnored(s,t)&&this.fsw._hasReadPermissions(t)}getDirParts(e){if(!this.hasGlob)return[];let t=[];return(e.includes(xx)?ax.expand(e):[e]).forEach(r=>{t.push(ne.relative(this.watchPath,r).split(yx))}),t}filterDir(e){if(this.hasGlob){let t=this.getDirParts(this.checkGlobSymlink(e)),s=!1;this.unmatchedGlob=!this.dirParts.some(r=>r.every((i,o)=>(i===_x&&(s=!0),s||!t[0][o]||ra(i,t[0][o],oa))))}return!this.unmatchedGlob&&this.fsw._isntIgnored(this.entryPath(e),e.stats)}},vr=class extends rx{constructor(e){super();let t={};e&&Object.assign(t,e),this._watched=new Map,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._symlinkPaths=new Map,this._streams=new Set,this.closed=!1,tt(t,"persistent")&&(t.persistent=!0),tt(t,"ignoreInitial")&&(t.ignoreInitial=!1),tt(t,"ignorePermissionErrors")&&(t.ignorePermissionErrors=!1),tt(t,"interval")&&(t.interval=100),tt(t,"binaryInterval")&&(t.binaryInterval=300),tt(t,"disableGlobbing")&&(t.disableGlobbing=!1),t.enableBinaryInterval=t.binaryInterval!==t.interval,tt(t,"useFsEvents")&&(t.useFsEvents=!t.usePolling),Ff.canUse()||(t.useFsEvents=!1),tt(t,"usePolling")&&!t.useFsEvents&&(t.usePolling=Cx),Ex&&(t.usePolling=!0);let r=process.env.CHOKIDAR_USEPOLLING;if(r!==void 0){let l=r.toLowerCase();l==="false"||l==="0"?t.usePolling=!1:l==="true"||l==="1"?t.usePolling=!0:t.usePolling=!!l}let i=process.env.CHOKIDAR_INTERVAL;i&&(t.interval=Number.parseInt(i,10)),tt(t,"atomic")&&(t.atomic=!t.usePolling&&!t.useFsEvents),t.atomic&&(this._pendingUnlinks=new Map),tt(t,"followSymlinks")&&(t.followSymlinks=!0),tt(t,"awaitWriteFinish")&&(t.awaitWriteFinish=!1),t.awaitWriteFinish===!0&&(t.awaitWriteFinish={});let o=t.awaitWriteFinish;o&&(o.stabilityThreshold||(o.stabilityThreshold=2e3),o.pollInterval||(o.pollInterval=100),this._pendingWrites=new Map),t.ignored&&(t.ignored=la(t.ignored));let a=0;this._emitReady=()=>{a++,a>=this._readyCount&&(this._emitReady=kx,this._readyEmitted=!0,process.nextTick(()=>this.emit(ux)))},this._emitRaw=(...l)=>this.emit(px,...l),this._readyEmitted=!1,this.options=t,t.useFsEvents?this._fsEventsHandler=new Ff(this):this._nodeFsHandler=new cx(this),Object.freeze(t)}add(e,t,s){let{cwd:r,disableGlobbing:i}=this.options;this.closed=!1;let o=Hf(e);return r&&(o=o.map(a=>{let l=Ox(a,r);return i||!Zo(a)?l:lx(l)})),o=o.filter(a=>a.startsWith(ia)?(this._ignoredPaths.add(a.slice(1)),!1):(this._ignoredPaths.delete(a),this._ignoredPaths.delete(a+sa),this._userIgnored=void 0,!0)),this.options.useFsEvents&&this._fsEventsHandler?(this._readyCount||(this._readyCount=o.length),this.options.persistent&&(this._readyCount+=o.length),o.forEach(a=>this._fsEventsHandler._addToFsEvents(a))):(this._readyCount||(this._readyCount=0),this._readyCount+=o.length,Promise.all(o.map(async a=>{let l=await this._nodeFsHandler._addToNodeFs(a,!s,0,0,t);return l&&this._emitReady(),l})).then(a=>{this.closed||a.filter(l=>l).forEach(l=>{this.add(ne.dirname(l),ne.basename(t||l))})})),this}unwatch(e){if(this.closed)return this;let t=Hf(e),{cwd:s}=this.options;return t.forEach(r=>{!ne.isAbsolute(r)&&!this._closers.has(r)&&(s&&(r=ne.join(s,r)),r=ne.resolve(r)),this._closePath(r),this._ignoredPaths.add(r),this._watched.has(r)&&this._ignoredPaths.add(r+sa),this._userIgnored=void 0}),this}close(){if(this.closed)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(s=>{let r=s();r instanceof Promise&&e.push(r)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),["closers","watched","streams","symlinkPaths","throttled"].forEach(t=>{this[`_${t}`].clear()}),this._closePromise=e.length?Promise.all(e).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,s)=>{let r=this.options.cwd?ne.relative(this.options.cwd,s):s;e[r||Kf]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(...t),e!==ta&&this.emit(ea,...t)}async _emit(e,t,s,r,i){if(this.closed)return;let o=this.options;$x&&(t=ne.normalize(t)),o.cwd&&(t=ne.relative(o.cwd,t));let a=[e,t];i!==void 0?a.push(s,r,i):r!==void 0?a.push(s,r):s!==void 0&&a.push(s);let l=o.awaitWriteFinish,u;if(l&&(u=this._pendingWrites.get(t)))return u.lastChange=new Date,this;if(o.atomic){if(e===Nf)return this._pendingUnlinks.set(t,a),setTimeout(()=>{this._pendingUnlinks.forEach((d,f)=>{this.emit(...d),this.emit(ea,...d),this._pendingUnlinks.delete(f)})},typeof o.atomic=="number"?o.atomic:100),this;e===br&&this._pendingUnlinks.has(t)&&(e=a[0]=us,this._pendingUnlinks.delete(t))}if(l&&(e===br||e===us)&&this._readyEmitted){let d=(f,h)=>{f?(e=a[0]=ta,a[1]=f,this.emitWithAll(e,a)):h&&(a.length>2?a[2]=h:a.push(h),this.emitWithAll(e,a))};return this._awaitWriteFinish(t,l.stabilityThreshold,e,d),this}if(e===us&&!this._throttle(us,t,50))return this;if(o.alwaysStat&&s===void 0&&(e===br||e===dx||e===us)){let d=o.cwd?ne.join(o.cwd,t):t,f;try{f=await Tx(d)}catch{}if(!f||this.closed)return;a.push(f)}return this.emitWithAll(e,a),this}_handleError(e){let t=e&&e.code;return e&&t!=="ENOENT"&&t!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||t!=="EPERM"&&t!=="EACCES")&&this.emit(ta,e),e||this.closed}_throttle(e,t,s){this._throttled.has(e)||this._throttled.set(e,new Map);let r=this._throttled.get(e),i=r.get(t);if(i)return i.count++,!1;let o,a=()=>{let u=r.get(t),d=u?u.count:0;return r.delete(t),clearTimeout(o),u&&clearTimeout(u.timeoutObject),d};o=setTimeout(a,s);let l={timeoutObject:o,clear:a,count:0};return r.set(t,l),l}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,s,r){let i,o=e;this.options.cwd&&!ne.isAbsolute(e)&&(o=ne.join(this.options.cwd,e));let a=new Date,l=u=>{da.stat(o,(d,f)=>{if(d||!this._pendingWrites.has(e)){d&&d.code!=="ENOENT"&&r(d);return}let h=Number(new Date);u&&f.size!==u.size&&(this._pendingWrites.get(e).lastChange=h);let m=this._pendingWrites.get(e);h-m.lastChange>=t?(this._pendingWrites.delete(e),r(void 0,f)):i=setTimeout(l,this.options.awaitWriteFinish.pollInterval,f)})};this._pendingWrites.has(e)||(this._pendingWrites.set(e,{lastChange:a,cancelWait:()=>(this._pendingWrites.delete(e),clearTimeout(i),s)}),i=setTimeout(l,this.options.awaitWriteFinish.pollInterval))}_getGlobIgnored(){return[...this._ignoredPaths.values()]}_isIgnored(e,t){if(this.options.atomic&&bx.test(e))return!0;if(!this._userIgnored){let{cwd:s}=this.options,r=this.options.ignored,i=r&&r.map(Uf(s)),o=la(i).filter(l=>typeof l===fa&&!Zo(l)).map(l=>l+sa),a=this._getGlobIgnored().map(Uf(s)).concat(i,o);this._userIgnored=ra(a,void 0,oa)}return this._userIgnored([e,t])}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e,t){let s=t||this.options.disableGlobbing||!Zo(e)?e:ox(e),r=this.options.followSymlinks;return new ua(e,s,r,this)}_getWatchedDir(e){this._boundRemove||(this._boundRemove=this._remove.bind(this));let t=ne.resolve(e);return this._watched.has(t)||this._watched.set(t,new ca(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){if(this.options.ignorePermissionErrors)return!0;let s=(e&&Number.parseInt(e.mode,10))&511;return!!(4&Number.parseInt(s.toString(8)[0],10))}_remove(e,t,s){let r=ne.join(e,t),i=ne.resolve(r);if(s=s??(this._watched.has(r)||this._watched.has(i)),!this._throttle("remove",r,100))return;!s&&!this.options.useFsEvents&&this._watched.size===1&&this.add(e,t,!0),this._getWatchedDir(r).getChildren().forEach(h=>this._remove(r,h));let l=this._getWatchedDir(e),u=l.has(t);l.remove(t),this._symlinkPaths.has(i)&&this._symlinkPaths.delete(i);let d=r;if(this.options.cwd&&(d=ne.relative(this.options.cwd,r)),this.options.awaitWriteFinish&&this._pendingWrites.has(d)&&this._pendingWrites.get(d).cancelWait()===br)return;this._watched.delete(r),this._watched.delete(i);let f=s?fx:Nf;u&&!this._isIgnored(r)&&this._emit(f,r),this.options.useFsEvents||this._closePath(r)}_closePath(e){this._closeFile(e);let t=ne.dirname(e);this._getWatchedDir(t).remove(ne.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(s=>s()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let s=this._closers.get(e);s||(s=[],this._closers.set(e,s)),s.push(t)}_readdirp(e,t){if(this.closed)return;let s={type:ea,alwaysStat:!0,lstat:!0,...t},r=ix(e,s);return this._streams.add(r),r.once(hx,()=>{r=void 0}),r.once(mx,()=>{r&&(this._streams.delete(r),r=void 0)}),r}};pa.FSWatcher=vr;var Ix=(n,e)=>{let t=new vr(e);return t.add(n),t};pa.watch=Ix});var Xf={};Le(Xf,{CollaborationManager:()=>ds,addTeamMember:()=>Fx,formatTeamConfig:()=>Nx,initTeamConfig:()=>Lx,loadTeamConfig:()=>Dx,saveTeamConfig:()=>Jf});function Dx(n){let e=Ge.join(n,".hablas","team.json");if(ye.existsSync(e))try{return JSON.parse(ye.readFileSync(e,"utf-8"))}catch{return null}return null}function Lx(n,e){let t={name:e,members:[]};return Jf(n,t),t}function Jf(n,e){let t=Ge.join(n,".hablas","team.json"),s=Ge.dirname(t);ye.existsSync(s)||ye.mkdirSync(s,{recursive:!0}),ye.writeFileSync(t,JSON.stringify(e,null,2),"utf-8")}function Fx(n,e,t){return n.members.push({name:e,email:t}),n}function Nx(n){return[`Team: ${n.name}`,"Members:",...n.members.map(t=>` - ${t.name} (${t.email})`)].join(`
312
313
  `)}var ye,Ge,wr,zf,Yf,ds,ha=L(()=>{"use strict";ye=O(require("fs")),Ge=O(require("path")),wr=O(require("os")),zf=O(require("crypto")),Yf=O(Vf());yn();ds=class n{workingDir;config;username;teamKey;projectTeamToken;supabaseUrl="";supabaseKey="";isConfigured=!1;watcher=null;localStatePath;heartbeatInterval=null;syncInterval=null;static HEARTBEAT_MS=12e3;static POLL_ACTIVE_MS=3e3;static POLL_IDLE_MS=2e4;static STALE_MS=75e3;consecutiveHeartbeatFailures=0;announcedOffline=!1;idlePollTicks=0;signalHandler=null;shuttingDown=!1;currentActivity={section:"idle",task:"standby"};knownSessions=new Map;knownLocks=new Map;constructor(e,t,s,r){this.workingDir=e,this.config=t,this.username=s||wr.userInfo().username||"developer",this.teamKey=r||"default-team",this.localStatePath=Ge.join(this.workingDir,".hablas","collaboration.json");let i=this.getProjectIdentifier();console.log(`
313
314
  ${c.muted("[Debug] Project Context:")} ${c.highlight(i)}`),this.projectTeamToken=zf.createHash("sha256").update(`${i}:${this.teamKey}`).digest("hex"),console.log(` ${c.muted("[Debug] Session Fingerprint:")} ${c.muted(this.projectTeamToken.slice(0,16))}...
314
315
  `),this.loadSupabaseConfig()}async init(){if(!this.isConfigured)return console.log(` ${c.warning("\u26A0")} ${c.secondary("Supabase is not configured in .env. Collaboration mode operates locally.")}`),!1;let e=Ge.dirname(this.localStatePath);return ye.existsSync(e)||ye.mkdirSync(e,{recursive:!0}),this.saveLocalState([],[]),this.startLoops(),this.startWatcher(),this.registerCleanups(),!0}async shutdown(){this.shuttingDown||(this.shuttingDown=!0,this.heartbeatInterval&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null),this.syncInterval&&(clearTimeout(this.syncInterval),this.syncInterval=null),this.watcher&&(await this.watcher.close(),this.watcher=null),this.signalHandler&&(process.off("SIGINT",this.signalHandler),process.off("SIGTERM",this.signalHandler),this.signalHandler=null),await this.releaseAllMyLocks(),await this.deleteSession())}async apiRequest(e,t,s,r){if(!this.isConfigured)return{ok:!1,data:null};let i=`${this.supabaseUrl}/rest/v1/${e}`,o={apikey:this.supabaseKey,Authorization:`Bearer ${this.supabaseKey}`,"Content-Type":"application/json"};r?.prefer?o.Prefer=r.prefer:(t==="POST"||t==="PATCH")&&(o.Prefer="return=representation");let a=(r?.retries??0)+1,l=null;for(let u=0;u<a;u++)try{let d=await fetch(i,{method:t,headers:o,body:s?JSON.stringify(s):void 0,signal:AbortSignal.timeout(1e4)});if(!d.ok){let h=await d.text().catch(()=>"");if(l=new Error(`[Supabase ${d.status}] ${h}`),(d.status>=500||d.status===429)&&u<a-1){await this.delay(400*(u+1));continue}return{ok:!1,data:null}}let f=await d.text();return{ok:!0,data:f?JSON.parse(f):null}}catch(d){if(l=d,u<a-1){await this.delay(400*(u+1));continue}}return{ok:!1,data:null}}delay(e){return new Promise(t=>setTimeout(t,e))}async sendHeartbeat(e,t){let s={project_team_token:this.projectTeamToken,developer_name:this.username,last_heartbeat:new Date().toISOString(),active_section:e||"idle",current_task:t||"none"},r="hablas_team_sessions?on_conflict=project_team_token,developer_name",{ok:i}=await this.apiRequest(r,"POST",s,{prefer:"resolution=merge-duplicates,return=minimal",retries:2});return i}async fetchSessions(){let e=`hablas_team_sessions?project_team_token=eq.${this.projectTeamToken}`,{data:t}=await this.apiRequest(e,"GET");return t||[]}async deleteSession(){let e=`hablas_team_sessions?project_team_token=eq.${this.projectTeamToken}&developer_name=eq.${encodeURIComponent(this.username)}`;await this.apiRequest(e,"DELETE")}async fetchLocks(){let e=`hablas_team_locks?project_team_token=eq.${this.projectTeamToken}`,{data:t}=await this.apiRequest(e,"GET");return t||[]}async acquireLock(e,t){let s={project_team_token:this.projectTeamToken,file_path:e,locked_by:this.username,lock_context:t||"editing file",created_at:new Date().toISOString()};return await this.apiRequest("hablas_team_locks?on_conflict=project_team_token,file_path","POST",s,{prefer:"resolution=ignore-duplicates,return=minimal",retries:1}),!!(await this.fetchLocks()).find(a=>a.file_path===e&&a.locked_by===this.username)}async releaseLock(e){let t=`hablas_team_locks?project_team_token=eq.${this.projectTeamToken}&file_path=eq.${encodeURIComponent(e)}&locked_by=eq.${encodeURIComponent(this.username)}`;return await this.apiRequest(t,"DELETE"),!0}async releaseAllMyLocks(){let e=`hablas_team_locks?project_team_token=eq.${this.projectTeamToken}&locked_by=eq.${encodeURIComponent(this.username)}`;await this.apiRequest(e,"DELETE")}async sendMessage(e,t){let s={project_team_token:this.projectTeamToken,sender_name:this.username,receiver_name:e,message_content:t,is_read:!1,created_at:new Date().toISOString()},{ok:r}=await this.apiRequest("hablas_team_messages","POST",s,{retries:1});return r}async fetchUnreadMessages(){let e=`hablas_team_messages?project_team_token=eq.${this.projectTeamToken}&receiver_name=eq.${encodeURIComponent(this.username)}&is_read=eq.false`,t=(await this.apiRequest(e,"GET")).data||[];if(t.length>0)for(let s of t){let r=`hablas_team_messages?id=eq.${s.id}`;await this.apiRequest(r,"PATCH",{is_read:!0})}return t}saveLocalState(e,t){let s={project_team_token:this.projectTeamToken,last_sync:new Date().toISOString(),my_username:this.username,sessions:e,locks:t};ye.writeFileSync(this.localStatePath,JSON.stringify(s,null,2),"utf-8")}getLocalState(){if(ye.existsSync(this.localStatePath))try{return JSON.parse(ye.readFileSync(this.localStatePath,"utf-8"))}catch{}return{sessions:[],locks:[],my_username:this.username}}startLoops(){this.beat("idle","standby"),this.heartbeatInterval=setInterval(()=>{this.beat()},n.HEARTBEAT_MS);let e=t=>{this.syncInterval=setTimeout(async()=>{if(this.shuttingDown)return;await this.syncWithCloud()?this.idlePollTicks=0:this.idlePollTicks++;let r=this.idlePollTicks>=3?n.POLL_IDLE_MS:n.POLL_ACTIVE_MS;e(r)},t)};e(n.POLL_ACTIVE_MS)}setActivity(e,t="working"){this.currentActivity={section:t,task:e.slice(0,120)},this.beat(t,this.currentActivity.task)}async beat(e,t){await this.sendHeartbeat(e??this.currentActivity.section,t??this.currentActivity.task)?(this.announcedOffline&&(console.log(`
@@ -324,15 +325,15 @@ If you cannot complete a task, explain why with absolute technical objectivity.`
324
325
  `+r),console.log(l),console.log(f),console.log(i+`
325
326
  `)}registerCleanups(){this.signalHandler||(this.signalHandler=()=>{this.shutdown()},process.on("SIGTERM",this.signalHandler),process.once("beforeExit",this.signalHandler))}loadSupabaseConfig(){let e=Ge.join(this.workingDir,".env");if(ye.existsSync(e))try{let s=ye.readFileSync(e,"utf-8").split(`
326
327
  `);for(let r of s){let i=r.split("=");if(i.length>=2){let o=i[0].trim(),a=i.slice(1).join("=").trim().replace(/^['"]|['"]$/g,"");o==="SUPABASE_URL"||o==="VITE_SUPABASE_URL"?this.supabaseUrl=a:(o==="SUPABASE_KEY"||o==="SUPABASE_ANON_KEY"||o==="VITE_SUPABASE_ANON_KEY")&&(this.supabaseKey=a)}}}catch{}if(!this.supabaseUrl||!this.supabaseKey){let t="aHR0cHM6Ly93dXVtYXptcGp6dHZ4a3l3Y3Rvci5zdXBhYmFzZS5jbw==",s="c2JfcHVibGlzaGFibGVfVmxmNEtCUzdsaTRjaGFWNE04d19xQV9fbnJuczh1WQ==";this.supabaseUrl=Buffer.from(t,"base64").toString("utf-8"),this.supabaseKey=Buffer.from(s,"base64").toString("utf-8")}this.isConfigured=!!(this.supabaseUrl&&this.supabaseKey),this.isConfigured&&this.syncLlmConfig()}syncLlmConfig(){let e=Ge.join(wr.homedir(),".hablas","config.json");if(ye.existsSync(e))try{let t=JSON.parse(ye.readFileSync(e,"utf-8"));!this.config.apiUrl&&t.apiUrl&&(this.config.apiUrl=t.apiUrl,this.config.apiKey=t.apiKey,this.config.provider=t.provider)}catch{}}getProjectIdentifier(){let e="";try{let{execSync:t}=require("child_process"),s=t("git config --get remote.origin.url",{cwd:this.workingDir,encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim();if(s){let r=s.match(/[:/]([^/]+\/[^/.]+)(\.git)?$/);r&&r[1]&&(e=r[1].toLowerCase())}}catch{}if(!e)try{let t=Ge.join(this.workingDir,"package.json");if(ye.existsSync(t)){let s=JSON.parse(ye.readFileSync(t,"utf-8"));s.name&&(e=s.name.toLowerCase())}}catch{}return e||(e=Ge.basename(this.workingDir).toLowerCase()),e.replace(/\s+/g,"")}}});async function tn(n){try{if(!ma.existsSync(n))return;ma.existsSync(fs)||await mt.mkdir(fs,{recursive:!0});let e=await mt.readFile(n,"utf-8"),t=kn.basename(n),s=Date.now(),r=`${t}.${s}.bak`,i=kn.join(fs,r);await mt.writeFile(i,e,"utf-8");let a=(await mt.readdir(fs)).filter(l=>l.startsWith(`${t}.`)&&l.endsWith(".bak")).sort().reverse();if(a.length>Qf)for(let l of a.slice(Qf))await mt.unlink(kn.join(fs,l))}catch{}}var mt,ma,kn,Zf,fs,Qf,ep=L(()=>{"use strict";mt=O(require("fs/promises")),ma=O(require("fs")),kn=O(require("path")),Zf=O(require("os")),fs=kn.join(Zf.homedir(),".hablas","backup"),Qf=10});function np(n){let e=m=>Ht.resolve(n,m);return[{name:"read_file",description:"Read the FULL content of a file with line numbers (complete read, no truncation by default per user requirement for 1000/2000+ line files like architecture docs). Use start_line/end_line ONLY if you explicitly need a specific section. Never re-read the same path this turn \u2014 use previous tool observations from history.",safety:"safe",parameters:{path:{type:"string",description:"File path to read",required:!0},start_line:{type:"number",description:"Starting line number (1-based, optional)",required:!1},end_line:{type:"number",description:"Ending line number (inclusive, optional)",required:!1}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[read_file]: path is required"};let p=e(m.path),S=(await le.readFile(p,"utf-8")).split(`
327
- `),w=S.length,$=m.start_line?Math.max(1,m.start_line):1,k=m.end_line?Math.min(w,m.end_line):w,y=S.slice($-1,k),v=String(k).length,b=y.map((T,P)=>`${String($+P).padStart(v," ")} | ${T}`),x=`[${m.path} \u2014 lines ${$}-${k} of ${w}]`,_=k<w?`
328
- ... [Partial read. Total lines: ${w}.]`:"";return{success:!0,output:`${x}
329
- ${b.join(`
330
- `)}${_}`}}catch(p){return{success:!1,output:"",error:`[read_file]: ${p.message}`}}}},{name:"write_file",description:"Create or overwrite a file with content",safety:"confirm",parameters:{path:{type:"string",description:"File path to write",required:!0},content:{type:"string",description:"Content to write",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[write_file]: path is required"};if(m.content===void 0)return{success:!1,output:"",error:"[write_file]: content is required"};let p=e(m.path);return ga.existsSync(p)&&await tn(p),await le.mkdir(Ht.dirname(p),{recursive:!0}),await le.writeFile(p,m.content,"utf-8"),{success:!0,output:`Written: ${m.path}`}}catch(p){return{success:!1,output:"",error:`[write_file]: ${p.message}`}}}},{name:"edit_file",description:'Apply a surgical edit by replacing old content with new content. Must match exactly one location. CRITICAL: old_content MUST be an EXACT unique string copied from a previous read_file result. If you do not have it, use patch_file with start_line/end_line instead. Do not guess old_content or the call will fail with "old_content is required".',safety:"confirm",parameters:{path:{type:"string",description:"File path to edit",required:!0},old_content:{type:"string",description:"Exact content to replace (must be unique in the file)",required:!0},new_content:{type:"string",description:"New content to insert",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[edit_file]: path is required"};if(!m.old_content)return{success:!1,output:"",error:"[edit_file]: old_content is required"};let p=e(m.path),g=await le.readFile(p,"utf-8"),S=m.old_content,w=m.new_content,$=tp(g,S);if($===0)return{success:!1,output:"",error:"[edit_file]: Old content not found in file"};if($>1)return{success:!1,output:"",error:`[edit_file]: old_content matches ${$} locations in the file. Provide more surrounding context to be specific.`};await tn(p);let k=g.replace(S,w);await le.writeFile(p,k,"utf-8");let y=er(m.path,g,k);return{success:!0,output:`Edited: ${m.path}
328
+ `),x=S.length,$=m.start_line?Math.max(1,m.start_line):1,k=m.end_line?Math.min(x,m.end_line):x,y=S.slice($-1,k),b=String(k).length,v=y.map((T,P)=>`${String($+P).padStart(b," ")} | ${T}`),w=`[${m.path} \u2014 lines ${$}-${k} of ${x}]`,_=k<x?`
329
+ ... [Partial read. Total lines: ${x}.]`:"";return{success:!0,output:`${w}
330
+ ${v.join(`
331
+ `)}${_}`}}catch(p){return{success:!1,output:"",error:`[read_file]: ${p.message}`}}}},{name:"write_file",description:"Create or overwrite a file with content",safety:"confirm",parameters:{path:{type:"string",description:"File path to write",required:!0},content:{type:"string",description:"Content to write",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[write_file]: path is required"};if(m.content===void 0)return{success:!1,output:"",error:"[write_file]: content is required"};let p=e(m.path);return ga.existsSync(p)&&await tn(p),await le.mkdir(Ht.dirname(p),{recursive:!0}),await le.writeFile(p,m.content,"utf-8"),{success:!0,output:`Written: ${m.path}`}}catch(p){return{success:!1,output:"",error:`[write_file]: ${p.message}`}}}},{name:"edit_file",description:'Apply a surgical edit by replacing old content with new content. Must match exactly one location. CRITICAL: old_content MUST be an EXACT unique string copied from a previous read_file result. If you do not have it, use patch_file with start_line/end_line instead. Do not guess old_content or the call will fail with "old_content is required".',safety:"confirm",parameters:{path:{type:"string",description:"File path to edit",required:!0},old_content:{type:"string",description:"Exact content to replace (must be unique in the file)",required:!0},new_content:{type:"string",description:"New content to insert",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[edit_file]: path is required"};if(!m.old_content)return{success:!1,output:"",error:"[edit_file]: old_content is required"};let p=e(m.path),g=await le.readFile(p,"utf-8"),S=m.old_content,x=m.new_content,$=tp(g,S);if($===0)return{success:!1,output:"",error:"[edit_file]: Old content not found in file"};if($>1)return{success:!1,output:"",error:`[edit_file]: old_content matches ${$} locations in the file. Provide more surrounding context to be specific.`};await tn(p);let k=g.replace(S,x);await le.writeFile(p,k,"utf-8");let y=er(m.path,g,k);return{success:!0,output:`Edited: ${m.path}
331
332
  ${y}`}}catch(p){return{success:!1,output:"",error:`[edit_file]: ${p.message}`}}}},{name:"patch_file",description:"Replace lines in a file using line numbers. More reliable than edit_file. Use read_file first to see line numbers.",safety:"confirm",parameters:{path:{type:"string",description:"File path",required:!0},start_line:{type:"number",description:"First line to replace (1-indexed)",required:!0},end_line:{type:"number",description:"Last line to replace (inclusive)",required:!0},new_content:{type:"string",description:"New content to insert in place of those lines",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[patch_file]: path is required"};if(!m.start_line)return{success:!1,output:"",error:"[patch_file]: start_line is required"};if(!m.end_line)return{success:!1,output:"",error:"[patch_file]: end_line is required"};if(m.new_content===void 0)return{success:!1,output:"",error:"[patch_file]: new_content is required"};let p=e(m.path),g=await le.readFile(p,"utf-8"),S=g.split(`
332
- `),w=S.length,$=m.start_line,k=m.end_line;if($<1||$>w)return{success:!1,output:"",error:`[patch_file]: start_line ${$} is out of range (file has ${w} lines)`};if(k<$||k>w)return{success:!1,output:"",error:`[patch_file]: end_line ${k} is out of range (start_line=${$}, total=${w})`};await tn(p);let y=S.slice(0,$-1),v=S.slice(k),b=m.new_content.split(`
333
- `),x=[...y,...b,...v].join(`
334
- `);await le.writeFile(p,x,"utf-8");let _=er(m.path,g,x),T=k-$+1,P=b.length;return{success:!0,output:`Patched: ${m.path} (replaced ${T} lines with ${P})
335
- ${_}`}}catch(p){return{success:!1,output:"",error:`[patch_file]: ${p.message}`}}}},{name:"search_and_replace",description:"Find and replace all occurrences of a pattern in a file. Supports regex. Returns count of replacements made.",safety:"confirm",parameters:{path:{type:"string",description:"File path",required:!0},search:{type:"string",description:"Search pattern (string or regex)",required:!0},replace:{type:"string",description:"Replacement string",required:!0},is_regex:{type:"boolean",description:"Treat search as regex (default: false)",required:!1}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[search_and_replace]: path is required"};if(!m.search)return{success:!1,output:"",error:"[search_and_replace]: search is required"};if(m.replace===void 0)return{success:!1,output:"",error:"[search_and_replace]: replace is required"};let p=e(m.path),g=await le.readFile(p,"utf-8"),S=m.search,w=m.replace,$=m.is_regex;await tn(p);let k,y;if($){let v=new RegExp(S,"g");y=(g.match(v)||[]).length,k=g.replace(v,w)}else y=tp(g,S),k=g.split(S).join(w);return y===0?{success:!1,output:"",error:"[search_and_replace]: Pattern not found in file"}:(await le.writeFile(p,k,"utf-8"),{success:!0,output:`Replaced ${y} occurrence(s) in ${m.path}`})}catch(p){return{success:!1,output:"",error:`[search_and_replace]: ${p.message}`}}}},{name:"append_to_file",description:"Append content to the end of a file. Creates the file if it does not exist.",safety:"confirm",parameters:{path:{type:"string",description:"File path",required:!0},content:{type:"string",description:"Content to append",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[append_to_file]: path is required"};if(m.content===void 0)return{success:!1,output:"",error:"[append_to_file]: content is required"};let p=e(m.path);return await le.mkdir(Ht.dirname(p),{recursive:!0}),ga.existsSync(p)&&await tn(p),await le.appendFile(p,m.content,"utf-8"),{success:!0,output:`Appended to: ${m.path}`}}catch(p){return{success:!1,output:"",error:`[append_to_file]: ${p.message}`}}}},{name:"delete_file",description:"Delete a file",safety:"dangerous",parameters:{path:{type:"string",description:"File path to delete",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[delete_file]: path is required"};let p=e(m.path);return await tn(p),await le.unlink(p),{success:!0,output:`Deleted: ${m.path}`}}catch(p){return{success:!1,output:"",error:`[delete_file]: ${p.message}`}}}},{name:"move_file",description:"Move or rename a file",safety:"confirm",parameters:{from:{type:"string",description:"Source path",required:!0},to:{type:"string",description:"Destination path",required:!0}},execute:async m=>{try{if(!m.from)return{success:!1,output:"",error:"[move_file]: from is required"};if(!m.to)return{success:!1,output:"",error:"[move_file]: to is required"};let p=e(m.from),g=e(m.to);return await le.mkdir(Ht.dirname(g),{recursive:!0}),await le.rename(p,g),{success:!0,output:`Moved: ${m.from} \u2192 ${m.to}`}}catch(p){return{success:!1,output:"",error:`[move_file]: ${p.message}`}}}},{name:"create_dir",description:"Create a directory",safety:"safe",parameters:{path:{type:"string",description:"Directory path to create",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[create_dir]: path is required"};let p=e(m.path);return await le.mkdir(p,{recursive:!0}),{success:!0,output:`Created directory: ${m.path}`}}catch(p){return{success:!1,output:"",error:`[create_dir]: ${p.message}`}}}},{name:"list_dir",description:"List directory contents as a tree",safety:"safe",parameters:{path:{type:"string",description:"Directory path (default: .)",required:!1},depth:{type:"number",description:"Max depth (default: 3)",required:!1}},execute:async m=>{try{let p=e(m.path||"."),g=m.depth||3;return{success:!0,output:await sp(p,"",g,0)||"(empty directory)"}}catch(p){return{success:!1,output:"",error:`[list_dir]: ${p.message}`}}}},{name:"get_file_info",description:"Get file stats: size, last modified, type",safety:"safe",parameters:{path:{type:"string",description:"File path",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[get_file_info]: path is required"};let p=e(m.path),g=await le.stat(p);return{success:!0,output:[`Path: ${m.path}`,`Size: ${Hx(g.size)}`,`Type: ${g.isDirectory()?"directory":"file"}`,`Modified: ${g.mtime.toISOString()}`,`Created: ${g.birthtime.toISOString()}`].join(`
333
+ `),x=S.length,$=m.start_line,k=m.end_line;if($<1||$>x)return{success:!1,output:"",error:`[patch_file]: start_line ${$} is out of range (file has ${x} lines)`};if(k<$||k>x)return{success:!1,output:"",error:`[patch_file]: end_line ${k} is out of range (start_line=${$}, total=${x})`};await tn(p);let y=S.slice(0,$-1),b=S.slice(k),v=m.new_content.split(`
334
+ `),w=[...y,...v,...b].join(`
335
+ `);await le.writeFile(p,w,"utf-8");let _=er(m.path,g,w),T=k-$+1,P=v.length;return{success:!0,output:`Patched: ${m.path} (replaced ${T} lines with ${P})
336
+ ${_}`}}catch(p){return{success:!1,output:"",error:`[patch_file]: ${p.message}`}}}},{name:"search_and_replace",description:"Find and replace all occurrences of a pattern in a file. Supports regex. Returns count of replacements made.",safety:"confirm",parameters:{path:{type:"string",description:"File path",required:!0},search:{type:"string",description:"Search pattern (string or regex)",required:!0},replace:{type:"string",description:"Replacement string",required:!0},is_regex:{type:"boolean",description:"Treat search as regex (default: false)",required:!1}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[search_and_replace]: path is required"};if(!m.search)return{success:!1,output:"",error:"[search_and_replace]: search is required"};if(m.replace===void 0)return{success:!1,output:"",error:"[search_and_replace]: replace is required"};let p=e(m.path),g=await le.readFile(p,"utf-8"),S=m.search,x=m.replace,$=m.is_regex;await tn(p);let k,y;if($){let b=new RegExp(S,"g");y=(g.match(b)||[]).length,k=g.replace(b,x)}else y=tp(g,S),k=g.split(S).join(x);return y===0?{success:!1,output:"",error:"[search_and_replace]: Pattern not found in file"}:(await le.writeFile(p,k,"utf-8"),{success:!0,output:`Replaced ${y} occurrence(s) in ${m.path}`})}catch(p){return{success:!1,output:"",error:`[search_and_replace]: ${p.message}`}}}},{name:"append_to_file",description:"Append content to the end of a file. Creates the file if it does not exist.",safety:"confirm",parameters:{path:{type:"string",description:"File path",required:!0},content:{type:"string",description:"Content to append",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[append_to_file]: path is required"};if(m.content===void 0)return{success:!1,output:"",error:"[append_to_file]: content is required"};let p=e(m.path);return await le.mkdir(Ht.dirname(p),{recursive:!0}),ga.existsSync(p)&&await tn(p),await le.appendFile(p,m.content,"utf-8"),{success:!0,output:`Appended to: ${m.path}`}}catch(p){return{success:!1,output:"",error:`[append_to_file]: ${p.message}`}}}},{name:"delete_file",description:"Delete a file",safety:"dangerous",parameters:{path:{type:"string",description:"File path to delete",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[delete_file]: path is required"};let p=e(m.path);return await tn(p),await le.unlink(p),{success:!0,output:`Deleted: ${m.path}`}}catch(p){return{success:!1,output:"",error:`[delete_file]: ${p.message}`}}}},{name:"move_file",description:"Move or rename a file",safety:"confirm",parameters:{from:{type:"string",description:"Source path",required:!0},to:{type:"string",description:"Destination path",required:!0}},execute:async m=>{try{if(!m.from)return{success:!1,output:"",error:"[move_file]: from is required"};if(!m.to)return{success:!1,output:"",error:"[move_file]: to is required"};let p=e(m.from),g=e(m.to);return await le.mkdir(Ht.dirname(g),{recursive:!0}),await le.rename(p,g),{success:!0,output:`Moved: ${m.from} \u2192 ${m.to}`}}catch(p){return{success:!1,output:"",error:`[move_file]: ${p.message}`}}}},{name:"create_dir",description:"Create a directory",safety:"safe",parameters:{path:{type:"string",description:"Directory path to create",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[create_dir]: path is required"};let p=e(m.path);return await le.mkdir(p,{recursive:!0}),{success:!0,output:`Created directory: ${m.path}`}}catch(p){return{success:!1,output:"",error:`[create_dir]: ${p.message}`}}}},{name:"list_dir",description:"List directory contents as a tree",safety:"safe",parameters:{path:{type:"string",description:"Directory path (default: .)",required:!1},depth:{type:"number",description:"Max depth (default: 3)",required:!1}},execute:async m=>{try{let p=e(m.path||"."),g=m.depth||3;return{success:!0,output:await sp(p,"",g,0)||"(empty directory)"}}catch(p){return{success:!1,output:"",error:`[list_dir]: ${p.message}`}}}},{name:"get_file_info",description:"Get file stats: size, last modified, type",safety:"safe",parameters:{path:{type:"string",description:"File path",required:!0}},execute:async m=>{try{if(!m.path)return{success:!1,output:"",error:"[get_file_info]: path is required"};let p=e(m.path),g=await le.stat(p);return{success:!0,output:[`Path: ${m.path}`,`Size: ${Hx(g.size)}`,`Type: ${g.isDirectory()?"directory":"file"}`,`Modified: ${g.mtime.toISOString()}`,`Created: ${g.birthtime.toISOString()}`].join(`
336
337
  `)}}catch(p){return{success:!1,output:"",error:`[get_file_info]: ${p.message}`}}}}]}function tp(n,e){let t=0,s=0;for(;;){let r=n.indexOf(e,s);if(r===-1)break;t++,s=r+e.length}return t}async function sp(n,e,t,s){if(s>=t)return"";let i=(await le.readdir(n,{withFileTypes:!0})).filter(a=>!jx.has(a.name)&&!a.name.startsWith(".")).sort((a,l)=>a.isDirectory()&&!l.isDirectory()?-1:!a.isDirectory()&&l.isDirectory()?1:a.name.localeCompare(l.name)),o="";for(let a=0;a<i.length;a++){let l=i[a],u=a===i.length-1,d=u?"\u2514\u2500\u2500 ":"\u251C\u2500\u2500 ",f=l.isDirectory()?"\u{1F4C1}":"\u{1F4C4}";if(o+=`${e}${d}${f} ${l.name}
337
338
  `,l.isDirectory()){let h=e+(u?" ":"\u2502 ");o+=await sp(Ht.join(n,l.name),h,t,s+1)}}return o}function Hx(n){return n<1024?`${n} B`:n<1024*1024?`${(n/1024).toFixed(1)} KB`:`${(n/(1024*1024)).toFixed(1)} MB`}var le,ga,Ht,jx,rp=L(()=>{"use strict";le=O(require("fs/promises")),ga=O(require("fs")),Ht=O(require("path"));po();ep();jx=new Set(["node_modules",".git","__pycache__",".venv","dist","build",".next"])});var ip,xr,op=L(()=>{"use strict";ip=require("child_process"),xr=class{processes=new Map;config;nextId=1;constructor(e){this.config={workingDir:e.workingDir,defaultTimeout:e.defaultTimeout||3e5,maxOutputSize:e.maxOutputSize||5e5}}start(e,t){let s=`bg_${this.nextId++}`,r=t?.timeout||this.config.defaultTimeout,i=(0,ip.spawn)(e,{shell:!0,cwd:this.config.workingDir,env:{...process.env,...t?.env}}),o={id:s,command:e,process:i,stdout:"",stderr:"",startTime:Date.now(),pid:i.pid,status:"running"};return i.stdout?.on("data",a=>{o.stdout+=a.toString(),o.stdout.length>this.config.maxOutputSize&&(o.stdout=o.stdout.slice(-this.config.maxOutputSize))}),i.stderr?.on("data",a=>{o.stderr+=a.toString(),o.stderr.length>this.config.maxOutputSize&&(o.stderr=o.stderr.slice(-this.config.maxOutputSize))}),i.on("exit",a=>{o.status="finished",o.exitCode=a??void 0}),i.on("error",a=>{o.status="finished",o.stderr+=`
338
339
  Error: ${a.message}`}),r>0&&setTimeout(()=>{o.status==="running"&&(this.kill(s),o.status="timeout",o.stderr+=`
@@ -366,7 +367,7 @@ ${"#".repeat(parseInt(s))} ${r.replace(/<[^>]+>/g,"").trim()}
366
367
  `);return{success:!0,output:`Found ${o.length} links:
367
368
 
368
369
  ${a}`}}catch(s){let r=s instanceof Error?s.message:String(s);return{success:!1,output:"",error:`Failed to extract links from ${e}: ${r}`}}}}]}var yp,bp,vp,Jx,Sp=L(()=>{"use strict";yp=2*1024*1024,bp=15e3,vp=32e3,Jx="HablasBot/2.0 (+https://hablas.dev)"});function tS(n){let e=$n.get(n.toLowerCase().trim());return e?Date.now()-e.timestamp>eS?($n.delete(n.toLowerCase().trim()),null):e.results:null}function nS(n,e){if($n.size>200){let t=$n.keys().next().value;t!==void 0&&$n.delete(t)}$n.set(n.toLowerCase().trim(),{results:e,timestamp:Date.now()})}async function sS(n,e){let t=process.env.BRAVE_API_KEY||process.env.BRAVE_SEARCH_API_KEY;if(!t)return null;try{let s=new URLSearchParams({q:n,count:String(Math.min(e,10))}),r=await fetch(`https://api.search.brave.com/res/v1/web/search?${s}`,{headers:{Accept:"application/json","Accept-Encoding":"gzip","X-Subscription-Token":t},signal:AbortSignal.timeout(1e4)});return r.ok?((await r.json()).web?.results??[]).slice(0,e).map(a=>({title:a.title||"",url:a.url||"",snippet:a.description||"",source:"brave"})):null}catch{return null}}async function rS(n,e){try{let t=new URLSearchParams({q:n}),s=await fetch(`https://html.duckduckgo.com/html/?${t}`,{headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"},signal:AbortSignal.timeout(1e4)});if(!s.ok)return null;let r=await s.text(),i=[],o=/<a[^>]+class="result__a"[^>]+href="([^"]+)"[^>]*>([\s\S]*?)<\/a>[\s\S]*?<a[^>]+class="result__snippet"[^>]*>([\s\S]*?)<\/a>/gi,a;for(;(a=o.exec(r))!==null&&i.length<e;){let l=a[1],u=a[2].replace(/<[^>]+>/g,"").trim(),d=a[3].replace(/<[^>]+>/g,"").trim(),f=l.match(/uddg=([^&]+)/);if(f)try{l=decodeURIComponent(f[1])}catch{}u&&l&&!l.startsWith("/")&&i.push({title:u,url:l,snippet:d,source:"duckduckgo"})}if(i.length===0){let l=/<a[^>]+href="(https?:\/\/[^"]+)"[^>]*>([\s\S]*?)<\/a>/gi,u=new Set;for(;(a=l.exec(r))!==null&&i.length<e;){let d=a[1],f=a[2].replace(/<[^>]+>/g,"").trim();f&&f.length>5&&!u.has(d)&&!d.includes("duckduckgo.com")&&(u.add(d),i.push({title:f,url:d,snippet:"",source:"duckduckgo"}))}}return i.length>0?i:null}catch{return null}}async function iS(n,e=5){let t=tS(n);if(t)return t.slice(0,e);let s=[{name:"brave",fn:()=>sS(n,e)},{name:"duckduckgo",fn:()=>rS(n,e)}];for(let r of s)try{let i=await r.fn();if(i&&i.length>0)return nS(n,i),i}catch{}return[]}function _p(){return{name:"web_search",description:"Search the web for current information. Returns titles, URLs, and snippets from search results. Use this to find documentation, answers, latest versions, news, or any information not in your training data.",safety:"safe",parameters:{query:{type:"string",description:"The search query",required:!0},max_results:{type:"number",description:"Max results to return (default: 5, max: 10)",required:!1}},execute:async n=>{let e=n.query;if(!e?.trim())return{success:!1,output:"",error:"Search query is required"};let t=Math.min(Math.max(1,n.max_results||5),10);try{let s=await iS(e.trim(),t);if(s.length===0)return{success:!0,output:`No results found for: "${e}". Try rephrasing the search query.`};let r=[`Search results for: "${e}" (${s.length} results, source: ${s[0].source})`,""];for(let i=0;i<s.length;i++){let o=s[i];r.push(`[${i+1}] ${o.title}`),r.push(` ${o.url}`),o.snippet&&r.push(` ${o.snippet}`),r.push("")}return{success:!0,output:r.join(`
369
- `)}}catch(s){return{success:!1,output:"",error:`Search failed: ${s instanceof Error?s.message:String(s)}`}}}}}var eS,$n,Ap=L(()=>{"use strict";eS=3600*1e3,$n=new Map});function Cp(n){let e=n.toString("latin1"),t={},s=[],r=0,i=e.match(/\/Type\s*\/Page\b/g);r=i?i.length:0;let o=e.match(/\/Title\s*\(([^)]*)\)/);o&&(t.title=nn(o[1]));let a=e.match(/\/Author\s*\(([^)]*)\)/);a&&(t.author=nn(a[1]));let l=e.match(/\/Subject\s*\(([^)]*)\)/);l&&(t.subject=nn(l[1]));let u=e.match(/\/Creator\s*\(([^)]*)\)/);u&&(t.creator=nn(u[1]));let d=/stream\r?\n([\s\S]*?)\r?\nendstream/g,f;for(;(f=d.exec(e))!==null;){let m=f[1],p=Ep(m);p.trim()&&s.push(p);try{let g=require("zlib"),S=Buffer.from(m,"latin1"),w=g.inflateSync(S).toString("latin1"),$=Ep(w);$.trim()&&!s.includes($)&&s.push($)}catch{}}return{text:s.join(`
370
+ `)}}catch(s){return{success:!1,output:"",error:`Search failed: ${s instanceof Error?s.message:String(s)}`}}}}}var eS,$n,Ap=L(()=>{"use strict";eS=3600*1e3,$n=new Map});function Cp(n){let e=n.toString("latin1"),t={},s=[],r=0,i=e.match(/\/Type\s*\/Page\b/g);r=i?i.length:0;let o=e.match(/\/Title\s*\(([^)]*)\)/);o&&(t.title=nn(o[1]));let a=e.match(/\/Author\s*\(([^)]*)\)/);a&&(t.author=nn(a[1]));let l=e.match(/\/Subject\s*\(([^)]*)\)/);l&&(t.subject=nn(l[1]));let u=e.match(/\/Creator\s*\(([^)]*)\)/);u&&(t.creator=nn(u[1]));let d=/stream\r?\n([\s\S]*?)\r?\nendstream/g,f;for(;(f=d.exec(e))!==null;){let m=f[1],p=Ep(m);p.trim()&&s.push(p);try{let g=require("zlib"),S=Buffer.from(m,"latin1"),x=g.inflateSync(S).toString("latin1"),$=Ep(x);$.trim()&&!s.includes($)&&s.push($)}catch{}}return{text:s.join(`
370
371
  `).replace(/\r\n/g,`
371
372
  `).replace(/\n{3,}/g,`
372
373
 
@@ -395,10 +396,10 @@ ${u.content}`),a+=u.tokenCount}return l.join(`
395
396
 
396
397
  `)}getTotalTokens(){return this.usedTokens}getCacheSize(){return this.cache.size}getCacheInfo(){return Array.from(this.cache.values()).map(e=>({path:e.path,tokens:e.tokenCount,importance:e.importance,accesses:e.accessCount})).sort((e,t)=>t.importance-e.importance)}evictToFit(e){let t=Array.from(this.cache.entries()).map(([r,i])=>({key:r,...i,score:this.computeScore(i)})).sort((r,i)=>r.score-i.score),s=0;for(let r of t){if(s>=e)break;r.importance>=9||(s+=r.tokenCount,this.usedTokens-=r.tokenCount,this.cache.delete(r.key))}}evict(e){this.evictToFit(e)}clear(){this.cache.clear(),this.usedTokens=0,this.accessHistory=[]}computeScore(e){let r=(Date.now()-e.lastUsed)/6e4,i=Math.exp(-r/30),o=Math.log1p(e.accessCount);return e.importance*(i+o)}autoImportance(e,t){let s=5;/\b(config|tsconfig|package\.json|\.env|Dockerfile|docker-compose)\b/i.test(e)&&(s=8),/\b(index|main|app|server)\.(ts|js|tsx|jsx)$/i.test(e)&&(s=7),/\.(test|spec)\.(ts|js|tsx|jsx)$/i.test(e)&&(s=3);let r=va(t);return r>2e3&&(s=Math.max(1,s-1)),r>5e3&&(s=Math.max(1,s-2)),s}autoTag(e){let t=[];return/\.(ts|tsx)$/.test(e)&&t.push("typescript"),/\.(js|jsx)$/.test(e)&&t.push("javascript"),/\.json$/.test(e)&&t.push("config"),/\.md$/.test(e)&&t.push("documentation"),/\.(css|scss|sass)$/.test(e)&&t.push("style"),/\.(test|spec)\./i.test(e)&&t.push("test"),/src\//.test(e)&&t.push("source"),t}recordAccess(e){this.accessHistory.length>50&&(this.accessHistory=this.accessHistory.slice(-50));let t=this.accessHistory[this.accessHistory.length-1];if(t&&Date.now()-this.getGroupTime(t)<3e4){if(!t.includes(e)){t.push(e);for(let s of t)if(s!==e){let r=this.cache.get(s);r&&!r.relatedFiles.includes(e)&&r.relatedFiles.push(e)}}}else this.accessHistory.push([e])}getGroupTime(e){return Date.now()}computeHash(e){return Bp.createHash("md5").update(e).digest("hex")}}});function hs(){return`msg_${Date.now()}_${++lS}`}function Tn(n){return Math.ceil(n.length/4)}var lS,rn,Sa=L(()=>{"use strict";lS=0;rn=class n{messages=[];maxMessages;maxTokens;sessionId;snapshots=[];forks=new Map;agentMessageCounts=new Map;totalTokens=0;constructor(e,t=50,s=32e3){this.maxMessages=t,this.maxTokens=s,this.sessionId=`session_${Date.now()}`;let r=Tn(e);this.messages.push({id:hs(),role:"system",content:e,timestamp:Date.now(),priority:"critical",tokenEstimate:r,compressed:!1,tags:["system"]}),this.totalTokens=r}getSessionId(){return this.sessionId}addUserMessage(e,t){let s=hs(),r=Tn(e);return this.messages.push({id:s,role:"user",content:e,timestamp:Date.now(),priority:t?.priority||"high",tokenEstimate:r,compressed:!1,tags:t?.tags||["user-input"]}),this.totalTokens+=r,this.trimIfNeeded(),s}addAssistantMessage(e,t,s){let r=hs(),i=Tn(e),o={id:r,role:"assistant",content:e,timestamp:Date.now(),priority:"normal",agent:s||"hablas",tokenEstimate:i,compressed:!1,tags:s?[`agent:${s}`]:["assistant"]};return t&&t.length>0&&(o.tool_calls=t,o.tags.push("has-tools")),this.messages.push(o),this.totalTokens+=i,s&&this.agentMessageCounts.set(s,(this.agentMessageCounts.get(s)||0)+1),this.trimIfNeeded(),r}addToolMessage(e,t){let s=hs(),r=Tn(e);return this.messages.push({id:s,role:"tool",content:e,timestamp:Date.now(),priority:e.startsWith("Error")?"high":"low",tokenEstimate:r,compressed:!1,tags:t?[`tool:${t}`]:["tool-result"]}),this.totalTokens+=r,this.trimIfNeeded(),s}getMessages(){return this.messages.map(e=>{let t={role:e.role,content:e.content};return e.tool_calls&&e.tool_calls.length>0&&(t.tool_calls=e.tool_calls),t})}getEnhancedMessages(){return[...this.messages]}getHistory(){return this.messages.slice(1).map(e=>({role:e.role,content:e.content,tool_calls:e.tool_calls}))}getAgentMessages(e){return this.messages.filter(t=>t.agent===e)}getAgentStats(){return new Map(this.agentMessageCounts)}getTotalTokens(){return this.totalTokens}getMessageCount(){return this.messages.length}clear(){let e=this.messages[0];this.messages=[e],this.totalTokens=e.tokenEstimate,this.agentMessageCounts.clear()}updateSystemPrompt(e){let t=Tn(e),s=this.messages.filter(r=>r.priority==="critical"&&r.role!=="system");this.messages=[{id:hs(),role:"system",content:e,timestamp:Date.now(),priority:"critical",tokenEstimate:t,compressed:!1,tags:["system"]},...s],this.recalculateTokens()}takeSnapshot(e){let t={id:`snap_${Date.now()}`,timestamp:Date.now(),messages:this.messages.map(s=>({...s})),systemPrompt:this.messages[0]?.content||"",label:e};return this.snapshots.push(t),this.snapshots.length>10&&(this.snapshots=this.snapshots.slice(-10)),t.id}rollback(e){let t=this.snapshots.find(s=>s.id===e);return t?(this.messages=t.messages.map(s=>({...s})),this.recalculateTokens(),!0):!1}getSnapshots(){return[...this.snapshots]}fork(e,t){let s=this.messages.length,r=new n(t,this.maxMessages,this.maxTokens),i=this.messages.filter(o=>o.priority==="critical"||o.priority==="high").filter(o=>o.role!=="system").slice(-5);for(let o of i)o.role==="user"?r.addUserMessage(o.content,{priority:o.priority,tags:[...o.tags,"inherited"]}):o.role==="assistant"&&r.addAssistantMessage(o.content,o.tool_calls,o.agent);return this.forks.set(e,{parentSessionId:this.sessionId,forkPoint:s,session:r}),r}mergeFork(e,t){let s=this.forks.get(e);if(!s)return!1;let r=s.session.getEnhancedMessages().filter(i=>i.role!=="system").filter(i=>!i.tags.includes("inherited"));if(t)this.addAssistantMessage(`[Agent @${e} result]: ${t}`,void 0,e);else if(r.length>0){let i=r.filter(o=>o.role==="assistant").pop();i&&this.addAssistantMessage(i.content,i.tool_calls,e)}return this.forks.delete(e),!0}getActiveForks(){return Array.from(this.forks.keys())}searchMessages(e){let t=e.toLowerCase();return this.messages.filter(s=>s.content.toLowerCase().includes(t))}getMessagesByTag(e){return this.messages.filter(t=>t.tags.includes(e))}getLastByRole(e,t=1){return this.messages.filter(s=>s.role===e).slice(-t)}trimIfNeeded(){if(this.messages.length<=this.maxMessages&&this.totalTokens<=this.maxTokens)return;let e=this.messages.filter(t=>t.role==="tool"&&!t.compressed&&t.tokenEstimate>200);for(let t of e.slice(0,-3)){if(this.totalTokens<=this.maxTokens&&this.messages.length<=this.maxMessages)break;this.compressMessage(t)}if(this.totalTokens>this.maxTokens||this.messages.length>this.maxMessages){let t=this.messages.filter(s=>s.role==="assistant"&&!s.compressed&&s.priority!=="critical"&&s.tokenEstimate>300);for(let s of t.slice(0,-2)){if(this.totalTokens<=this.maxTokens&&this.messages.length<=this.maxMessages)break;this.compressMessage(s)}}if(this.messages.length>this.maxMessages){let t=this.messages[0],s=this.messages.slice(1),r={critical:3,high:2,normal:1,low:0},i=s.sort((o,a)=>{let l=r[a.priority]-r[o.priority];return l!==0?l:a.timestamp-o.timestamp}).slice(0,this.maxMessages-1);i.sort((o,a)=>o.timestamp-a.timestamp),this.messages=[t,...i],this.recalculateTokens()}}compressMessage(e){let t=e.content.length,s=e.tokenEstimate;e.role==="tool"?e.content=e.content.slice(0,200)+`
397
398
  ...(compressed from `+t+" chars)":e.content=e.content.slice(0,400)+`
398
- ...(compressed from `+t+" chars)",e.compressed=!0,e.originalLength=t,e.tokenEstimate=Tn(e.content),this.totalTokens-=s-e.tokenEstimate}recalculateTokens(){this.totalTokens=this.messages.reduce((e,t)=>e+t.tokenEstimate,0)}toJSON(){return JSON.stringify({sessionId:this.sessionId,messageCount:this.messages.length,totalTokens:this.totalTokens,messages:this.messages,agentStats:Object.fromEntries(this.agentMessageCounts)},null,2)}fromJSON(e){let t=JSON.parse(e);if(!t.messages||!Array.isArray(t.messages))throw new Error("Invalid session JSON data structure.");this.sessionId=t.sessionId||`session_${Date.now()}`,this.messages=t.messages,this.totalTokens=t.totalTokens||0,this.agentMessageCounts=new Map(Object.entries(t.agentStats||{})),this.recalculateTokens()}getSessionInfo(){return{id:this.sessionId,messages:this.messages.length,tokens:this.totalTokens,agents:Object.fromEntries(this.agentMessageCounts),forks:Array.from(this.forks.keys()),snapshots:this.snapshots.length}}}});var Up,ze,Ue,qp,Ar,_a,cS,uS,dS,ms,Kp=L(()=>{"use strict";Up=O(require("readline")),ze=O(require("fs")),Ue=O(require("path")),qp=O(require("os"));yn();Ar=Ue.join(qp.homedir(),".hablas","history"),_a=500,cS=new Set([".ts",".js",".tsx",".jsx",".py",".go",".rs",".java",".c",".cpp",".h",".css",".html",".json",".md",".yaml",".yml",".toml",".txt",".env",".sh",".bash",".zsh",".dockerfile",".xml",".svg",".sql"]),uS=new Set(["node_modules",".git","__pycache__",".venv","dist","build",".next",".cache"]),dS=["read ","edit ","write ","delete ","open ","patch "],ms=class{rl;history=[];workingDir;fileCache=[];fileCacheTime=0;constructor(e){this.workingDir=e||process.cwd(),this.loadHistory(),this.rl=this.createReadline()}createReadline(){return Up.createInterface({input:process.stdin,output:process.stdout,terminal:!0,history:this.history,historySize:_a,completer:e=>this.autocomplete(e)})}reinitialize(){this.loadHistory(),this.rl=this.createReadline()}async prompt(e){return new Promise(t=>{process.stdin.isTTY&&process.stdout.write("\r\x1B[K"),this.rl.question(e,s=>{s.trim()&&(this.history.push(s.trim()),this.saveHistory()),t(s)})})}async confirm(e){let t=` ${c.warning("?")} ${e} ${c.muted("[Y/n]")} `;return(await this.prompt(t)).toLowerCase()!=="n"}async confirmDangerous(e){console.log(`
399
+ ...(compressed from `+t+" chars)",e.compressed=!0,e.originalLength=t,e.tokenEstimate=Tn(e.content),this.totalTokens-=s-e.tokenEstimate}recalculateTokens(){this.totalTokens=this.messages.reduce((e,t)=>e+t.tokenEstimate,0)}toJSON(){return JSON.stringify({sessionId:this.sessionId,messageCount:this.messages.length,totalTokens:this.totalTokens,messages:this.messages,agentStats:Object.fromEntries(this.agentMessageCounts)},null,2)}fromJSON(e){let t=JSON.parse(e);if(!t.messages||!Array.isArray(t.messages))throw new Error("Invalid session JSON data structure.");this.sessionId=t.sessionId||`session_${Date.now()}`,this.messages=t.messages,this.totalTokens=t.totalTokens||0,this.agentMessageCounts=new Map(Object.entries(t.agentStats||{})),this.recalculateTokens()}getSessionInfo(){return{id:this.sessionId,messages:this.messages.length,tokens:this.totalTokens,agents:Object.fromEntries(this.agentMessageCounts),forks:Array.from(this.forks.keys()),snapshots:this.snapshots.length}}}});var Up,ze,qe,qp,Ar,_a,cS,uS,dS,ms,Kp=L(()=>{"use strict";Up=O(require("readline")),ze=O(require("fs")),qe=O(require("path")),qp=O(require("os"));yn();Ar=qe.join(qp.homedir(),".hablas","history"),_a=500,cS=new Set([".ts",".js",".tsx",".jsx",".py",".go",".rs",".java",".c",".cpp",".h",".css",".html",".json",".md",".yaml",".yml",".toml",".txt",".env",".sh",".bash",".zsh",".dockerfile",".xml",".svg",".sql"]),uS=new Set(["node_modules",".git","__pycache__",".venv","dist","build",".next",".cache"]),dS=["read ","edit ","write ","delete ","open ","patch "],ms=class{rl;history=[];workingDir;fileCache=[];fileCacheTime=0;constructor(e){this.workingDir=e||process.cwd(),this.loadHistory(),this.rl=this.createReadline()}createReadline(){return Up.createInterface({input:process.stdin,output:process.stdout,terminal:!0,history:this.history,historySize:_a,completer:e=>this.autocomplete(e)})}reinitialize(){this.loadHistory(),this.rl=this.createReadline()}async prompt(e){return new Promise(t=>{process.stdin.isTTY&&process.stdout.write("\r\x1B[K"),this.rl.question(e,s=>{s.trim()&&(this.history.push(s.trim()),this.saveHistory()),t(s)})})}async confirm(e){let t=` ${c.warning("?")} ${e} ${c.muted("[Y/n]")} `;return(await this.prompt(t)).toLowerCase()!=="n"}async confirmDangerous(e){console.log(`
399
400
  ${c.error("\u26A0")} ${c.error(c.strong(e))}`),console.log(` ${c.muted('This action cannot be undone. Type "yes" to confirm.')}
400
- `);let t=` ${c.error("\u2192")} `;return(await this.prompt(t)).trim().toLowerCase()==="yes"}close(){this.saveHistory(),this.rl.close()}autocomplete(e){if(e.startsWith("/")){if(e.startsWith("/model ")||e.startsWith("/usemodel "))return[[],e];if(e.startsWith("/mindset ")){let r=["coder","planner","debugger","reviewer"],i=e.slice(9),o=r.filter(a=>a.startsWith(i)).map(a=>"/mindset "+a);return[o.length?o:r.map(a=>"/mindset "+a),e]}if(e.startsWith("/alias ")){let r=["/alias set","/alias del"],i=r.filter(o=>o.startsWith(e));return[i.length?i:r,e]}if(e.startsWith("/plugins ")){let r=["/plugins enable","/plugins disable"],i=r.filter(o=>o.startsWith(e));return[i.length?i:r,e]}let s=io.filter(r=>r.startsWith(e));return[s.length?s:io,e]}for(let s of dS)if(e.toLowerCase().includes(s)){let r=e.split(s).pop()??"";if(r&&!r.includes(" "))try{let i=Ue.dirname(r)||".",o=Ue.basename(r),a=Ue.resolve(this.workingDir,i),l=ze.readdirSync(a).filter(u=>u.startsWith(o)).slice(0,8).map(u=>e.slice(0,e.lastIndexOf(r))+Ue.join(i,u));if(l.length)return[l,e]}catch{}}let t=e.match(/#([\w./-]*)$/);if(t){let s=t[1],r=this.getProjectFiles(),i=r.filter(a=>a.toLowerCase().startsWith(s.toLowerCase())).map(a=>e.slice(0,e.length-t[0].length)+"#"+a);return i.length>0?[i,e]:[r.slice(0,20).map(a=>e.slice(0,e.length-t[0].length)+"#"+a),e]}return[[],e]}getProjectFiles(){let e=Date.now();if(this.fileCache.length>0&&e-this.fileCacheTime<1e4)return this.fileCache;let t=[];return this.scanDir(this.workingDir,"",t,3),this.fileCache=t,this.fileCacheTime=e,t}scanDir(e,t,s,r,i=0){if(!(i>=r))try{let o=ze.readdirSync(e,{withFileTypes:!0});for(let a of o){if(a.name.startsWith(".")||uS.has(a.name))continue;let l=t?`${t}/${a.name}`:a.name;if(a.isDirectory())this.scanDir(Ue.join(e,a.name),l,s,r,i+1);else{let u=Ue.extname(a.name).toLowerCase();(cS.has(u)||a.name==="Dockerfile"||a.name==="Makefile")&&s.push(l)}}}catch{}}loadHistory(){try{if(ze.existsSync(Ar)){let e=ze.readFileSync(Ar,"utf-8");this.history=e.split(`
401
- `).filter(Boolean).slice(-_a)}}catch{}}saveHistory(){try{let e=Ue.dirname(Ar);ze.existsSync(e)||ze.mkdirSync(e,{recursive:!0});let t=this.history.slice(-_a);ze.writeFileSync(Ar,t.join(`
401
+ `);let t=` ${c.error("\u2192")} `;return(await this.prompt(t)).trim().toLowerCase()==="yes"}close(){this.saveHistory(),this.rl.close()}autocomplete(e){if(e.startsWith("/")){if(e.startsWith("/model ")||e.startsWith("/usemodel "))return[[],e];if(e.startsWith("/mindset ")){let r=["coder","planner","debugger","reviewer"],i=e.slice(9),o=r.filter(a=>a.startsWith(i)).map(a=>"/mindset "+a);return[o.length?o:r.map(a=>"/mindset "+a),e]}if(e.startsWith("/alias ")){let r=["/alias set","/alias del"],i=r.filter(o=>o.startsWith(e));return[i.length?i:r,e]}if(e.startsWith("/plugins ")){let r=["/plugins enable","/plugins disable"],i=r.filter(o=>o.startsWith(e));return[i.length?i:r,e]}let s=io.filter(r=>r.startsWith(e));return[s.length?s:io,e]}for(let s of dS)if(e.toLowerCase().includes(s)){let r=e.split(s).pop()??"";if(r&&!r.includes(" "))try{let i=qe.dirname(r)||".",o=qe.basename(r),a=qe.resolve(this.workingDir,i),l=ze.readdirSync(a).filter(u=>u.startsWith(o)).slice(0,8).map(u=>e.slice(0,e.lastIndexOf(r))+qe.join(i,u));if(l.length)return[l,e]}catch{}}let t=e.match(/#([\w./-]*)$/);if(t){let s=t[1],r=this.getProjectFiles(),i=r.filter(a=>a.toLowerCase().startsWith(s.toLowerCase())).map(a=>e.slice(0,e.length-t[0].length)+"#"+a);return i.length>0?[i,e]:[r.slice(0,20).map(a=>e.slice(0,e.length-t[0].length)+"#"+a),e]}return[[],e]}getProjectFiles(){let e=Date.now();if(this.fileCache.length>0&&e-this.fileCacheTime<1e4)return this.fileCache;let t=[];return this.scanDir(this.workingDir,"",t,3),this.fileCache=t,this.fileCacheTime=e,t}scanDir(e,t,s,r,i=0){if(!(i>=r))try{let o=ze.readdirSync(e,{withFileTypes:!0});for(let a of o){if(a.name.startsWith(".")||uS.has(a.name))continue;let l=t?`${t}/${a.name}`:a.name;if(a.isDirectory())this.scanDir(qe.join(e,a.name),l,s,r,i+1);else{let u=qe.extname(a.name).toLowerCase();(cS.has(u)||a.name==="Dockerfile"||a.name==="Makefile")&&s.push(l)}}}catch{}}loadHistory(){try{if(ze.existsSync(Ar)){let e=ze.readFileSync(Ar,"utf-8");this.history=e.split(`
402
+ `).filter(Boolean).slice(-_a)}}catch{}}saveHistory(){try{let e=qe.dirname(Ar);ze.existsSync(e)||ze.mkdirSync(e,{recursive:!0});let t=this.history.slice(-_a);ze.writeFileSync(Ar,t.join(`
402
403
  `),"utf-8")}catch{}}}});function Ye(n={}){let e={};if(nt.existsSync(Aa))try{let s=nt.readFileSync(Aa,"utf-8");e=JSON.parse(s)}catch{}let t={...qn,...e,tools:{...qn.tools,...e.tools||{}},ui:{...qn.ui,...e.ui||{}}};if(process.env.HABLAS_API_URL&&(t.apiUrl=process.env.HABLAS_API_URL),process.env.HABLAS_API_KEY&&(t.apiKey=process.env.HABLAS_API_KEY),process.env.HABLAS_PROVIDER){let s=process.env.HABLAS_PROVIDER;(s==="ollama"||s==="custom")&&(t.provider=s)}if(process.env.HABLAS_MODEL&&(t.model=process.env.HABLAS_MODEL),n.model&&(t.model=n.model),n.host&&(t.ollamaHost=n.host),n.project&&(t.workingDirectory=on.resolve(n.project)),n.provider){let s=n.provider;(s==="ollama"||s==="custom")&&(t.provider=s)}return n.apiUrl&&(t.apiUrl=n.apiUrl),n.apiKey&&(t.apiKey=n.apiKey),n.team&&(t.team||(t.team={enabled:!1,user:"",key:""}),t.team.enabled=!0),n.user&&(t.team||(t.team={enabled:!1,user:"",key:""}),t.team.user=n.user),n.teamKey&&(t.team||(t.team={enabled:!1,user:"",key:""}),t.team.key=n.teamKey),t.apiUrl&&t.provider==="ollama"&&(t.provider="custom"),t}function gt(n){nt.existsSync(Rn)||nt.mkdirSync(Rn,{recursive:!0}),nt.writeFileSync(Aa,JSON.stringify(n,null,2),"utf-8")}function Gp(){let n=[Rn,on.join(Rn,"logs"),on.join(Rn,"backup")];for(let e of n)nt.existsSync(e)||nt.mkdirSync(e,{recursive:!0})}var nt,on,Wp,Rn,Aa,kr=L(()=>{"use strict";nt=O(require("fs")),on=O(require("path")),Wp=O(require("os"));Kn();Rn=on.join(Wp.homedir(),".hablas"),Aa=on.join(Rn,"config.json")});var gs,ka=L(()=>{"use strict";gs=class{mindsets=new Map;activeMindset="planner";history=[];lastActivatedAt=Date.now();listeners=[];register(e){this.mindsets.set(e.name,e)}get(e){return this.mindsets.get(e)}list(){return Array.from(this.mindsets.values())}listNames(){return Array.from(this.mindsets.keys())}getActive(){return this.mindsets.get(this.activeMindset)}getActiveName(){return this.activeMindset}setActive(e){if(!this.mindsets.has(e))return!1;if(this.activeMindset===e)return!0;let t=this.activeMindset;if(this.history.length>0){let s=this.history[this.history.length-1];s.duration=Date.now()-this.lastActivatedAt}this.activeMindset=e,this.lastActivatedAt=Date.now(),this.history.push({name:e,timestamp:Date.now()}),this.history.length>50&&(this.history=this.history.slice(-50));for(let s of this.listeners)try{s(t,e)}catch{}return!0}has(e){return this.mindsets.has(e)}getHistory(){return[...this.history]}getMostUsed(){let e={};for(let s of this.history)e[s.name]=(e[s.name]||0)+1;let t=Object.entries(e).sort((s,r)=>r[1]-s[1]);return t.length>0?t[0][0]:null}onChange(e){this.listeners.push(e)}createComposite(e,t,s){let r=this.mindsets.get(t),i=this.mindsets.get(s);if(!r||!i)return null;let o={name:e,description:`${r.description} + ${i.description}`,systemPrompt:r.systemPrompt+`
403
404
 
404
405
  `+i.systemPrompt,toolPreferences:[...new Set([...i.toolPreferences,...r.toolPreferences])],behaviorModifiers:{...r.behaviorModifiers,...i.behaviorModifiers}};return this.register(o),o}}});var $a,Ca=L(()=>{"use strict";$a={name:"coder",description:"Expert coding assistant \u2014 direct file operations, precise edits, production-quality code",systemPrompt:`You are Alex, the Engineer on the Hablas multi-agent team. You are an expert full-stack developer.
@@ -842,27 +843,27 @@ Never output raw tool XML in text.`,toolPreferences:["read_file","list_dir","wri
842
843
  `)}getStats(){let e=this.getAll(),t={},s={};for(let r of e)t[r.category]=(t[r.category]||0)+1,s[r.createdBy]=(s[r.createdBy]||0)+1;return{totalEntries:e.length,byCategory:t,byAgent:s,topAccessed:e.sort((r,i)=>i.accessCount-r.accessCount).slice(0,5),recentlyAdded:e.sort((r,i)=>i.createdAt-r.createdAt).slice(0,5),totalAccessCount:e.reduce((r,i)=>r+i.accessCount,0)}}consolidate(e=200){if(this.entries.size<=e)return 0;let t=Array.from(this.entries.values()).filter(o=>o.importance<4&&o.accessCount<3).sort((o,a)=>o.updatedAt-a.updatedAt),s=t.slice(0,Math.max(10,t.length-e)),r={};for(let o of s){let a=o.category;r[a]||(r[a]=[]),r[a].push(o)}let i=0;for(let[o,a]of Object.entries(r)){if(a.length<2)continue;let l=`[consolidated] ${o} (${a.length} items)`,u=a.map(h=>`${h.key}: ${h.value}`).join("; "),d=a.map(h=>h.key);this.set(l,u.slice(0,500),{category:o,importance:3,tags:["consolidated"]});let f=this.entries.get(l);f&&(f.consolidatedFrom=d);for(let h of a)this.entries.delete(h.key),i++}return i>0&&this.save(),i}learnFromToolResult(e,t,s,r,i="hablas"){if(!(s.length<20)){if(!r){let o=`error:${e}:${JSON.stringify(t).slice(0,50)}`,a=this.entries.get(o);a?(a.useCount++,a.importance=Math.min(10,a.importance+1)):this.set(o,`${e} failed with: ${s.slice(0,200)}`,{category:"error",importance:6,createdBy:i,tags:["auto-learned","error",e]})}if(e==="list_dir"&&r){let o=t.path||".";this.set(`structure:${o}`,s.slice(0,300),{category:"pattern",importance:3,createdBy:i,tags:["auto-learned","structure"],relatedFiles:[o]})}}}size(){return this.entries.size}clear(){this.entries.clear(),this.agentLanes.clear(),this.save(),this.saveAgentLanes()}render(){if(this.getAll().length===0)return" No project memories stored";let t={convention:"\u{1F4CF}",decision:"\u{1F3AF}",pattern:"\u{1F504}",note:"\u{1F4DD}",error:"\u26A0\uFE0F","tool-result":"\u{1F527}","user-pref":"\u{1F464}",dependency:"\u{1F4E6}",performance:"\u26A1",security:"\u{1F512}",api:"\u{1F310}","agent-learning":"\u{1F916}"};return this.getTopMemories(20).map(i=>{let o=t[i.category]||"\xB7",a=i.importance>=7?" \u2605":"",l=i.useCount>0?` (used ${i.useCount}\xD7)`:"";return` ${o}${a} ${i.key}: ${i.value}${l}`}).join(`
843
844
  `)}autoImportance(e,t){let r={convention:6,decision:8,pattern:5,note:3,error:7,"tool-result":2,"user-pref":7,dependency:4,performance:5,security:9,api:6,"agent-learning":4}[e]||3;return/\b(important|critical|must|always|never|danger|warning|breaking)\b/i.test(t)&&(r=Math.min(10,r+2)),r}autoTag(e,t){let s=[t];return/\b(react|vue|angular|svelte|next|nuxt)\b/i.test(e)&&s.push("frontend"),/\b(express|fastify|nest|koa|hapi)\b/i.test(e)&&s.push("backend"),/\b(postgres|mysql|mongo|redis|sqlite)\b/i.test(e)&&s.push("database"),/\b(docker|kubernetes|k8s|ci\/cd|deploy)\b/i.test(e)&&s.push("devops"),/\b(test|jest|vitest|cypress|playwright)\b/i.test(e)&&s.push("testing"),/\b(auth|jwt|oauth|session|token)\b/i.test(e)&&s.push("auth"),/\b(api|endpoint|route|rest|graphql)\b/i.test(e)&&s.push("api"),s}extractFileRefs(e){let t=/[\w\-./]+\.(ts|js|tsx|jsx|py|json|yaml|yml|md|css|scss|html|vue|svelte|go|rs|java|sql|sh|toml|xml|env)/gi,s=e.match(t);return s?[...new Set(s)]:[]}load(){try{if(De.existsSync(this.filePath)){let e=JSON.parse(De.readFileSync(this.filePath,"utf-8"));if(Array.isArray(e))for(let t of e)t.importance||(t.importance=3),t.createdBy||(t.createdBy="hablas"),t.accessCount||(t.accessCount=0),t.useCount||(t.useCount=0),t.tags||(t.tags=[t.category||"note"]),t.relatedFiles||(t.relatedFiles=[]),t.lastAccessedAt||(t.lastAccessedAt=t.updatedAt||Date.now()),this.entries.set(t.key,t)}}catch{}this.loadAgentLanes()}save(){try{De.existsSync(On)||De.mkdirSync(On,{recursive:!0});let e=Array.from(this.entries.values());De.writeFileSync(this.filePath,JSON.stringify(e,null,2),"utf-8")}catch{}}loadAgentLanes(){try{if(De.existsSync(this.agentLanesPath)){let e=JSON.parse(De.readFileSync(this.agentLanesPath,"utf-8"));for(let[t,s]of Object.entries(e)){let r=new Map;for(let i of s)r.set(i.key,i);this.agentLanes.set(t,r)}}}catch{}}saveAgentLanes(){try{De.existsSync(On)||De.mkdirSync(On,{recursive:!0});let e={};for(let[t,s]of this.agentLanes)e[t]=Array.from(s.values());De.writeFileSync(this.agentLanesPath,JSON.stringify(e,null,2),"utf-8")}catch{}}}});var Ga=N((tR,Zp)=>{"use strict";var bs=n=>n&&typeof n.message=="string",Wa=n=>{if(!n)return;let e=n.cause;if(typeof e=="function"){let t=n.cause();return bs(t)?t:void 0}else return bs(e)?e:void 0},Xp=(n,e)=>{if(!bs(n))return"";let t=n.stack||"";if(e.has(n))return t+`
844
845
  causes have become circular...`;let s=Wa(n);return s?(e.add(n),t+`
845
- caused by: `+Xp(s,e)):t},fS=n=>Xp(n,new Set),Qp=(n,e,t)=>{if(!bs(n))return"";let s=t?"":n.message||"";if(e.has(n))return s+": ...";let r=Wa(n);if(r){e.add(n);let i=typeof n.cause=="function";return s+(i?"":": ")+Qp(r,e,i)}else return s},pS=n=>Qp(n,new Set);Zp.exports={isErrorLike:bs,getErrorCause:Wa,stackWithCauses:fS,messageWithCauses:pS}});var Va=N((nR,th)=>{"use strict";var hS=Symbol("circular-ref-tag"),Tr=Symbol("pino-raw-err-ref"),eh=Object.create({},{type:{enumerable:!0,writable:!0,value:void 0},message:{enumerable:!0,writable:!0,value:void 0},stack:{enumerable:!0,writable:!0,value:void 0},aggregateErrors:{enumerable:!0,writable:!0,value:void 0},raw:{enumerable:!1,get:function(){return this[Tr]},set:function(n){this[Tr]=n}}});Object.defineProperty(eh,Tr,{writable:!0,value:{}});th.exports={pinoErrProto:eh,pinoErrorSymbols:{seen:hS,rawSymbol:Tr}}});var rh=N((sR,sh)=>{"use strict";sh.exports=Ya;var{messageWithCauses:mS,stackWithCauses:gS,isErrorLike:nh}=Ga(),{pinoErrProto:yS,pinoErrorSymbols:bS}=Va(),{seen:za}=bS,{toString:vS}=Object.prototype;function Ya(n){if(!nh(n))return n;n[za]=void 0;let e=Object.create(yS);e.type=vS.call(n.constructor)==="[object Function]"?n.constructor.name:n.name,e.message=mS(n),e.stack=gS(n),Array.isArray(n.errors)&&(e.aggregateErrors=n.errors.map(t=>Ya(t)));for(let t in n)if(e[t]===void 0){let s=n[t];nh(s)?t!=="cause"&&!Object.prototype.hasOwnProperty.call(s,za)&&(e[t]=Ya(s)):e[t]=s}return delete n[za],e.raw=n,e}});var oh=N((rR,ih)=>{"use strict";ih.exports=Or;var{isErrorLike:Ja}=Ga(),{pinoErrProto:wS,pinoErrorSymbols:xS}=Va(),{seen:Rr}=xS,{toString:SS}=Object.prototype;function Or(n){if(!Ja(n))return n;n[Rr]=void 0;let e=Object.create(wS);e.type=SS.call(n.constructor)==="[object Function]"?n.constructor.name:n.name,e.message=n.message,e.stack=n.stack,Array.isArray(n.errors)&&(e.aggregateErrors=n.errors.map(t=>Or(t))),Ja(n.cause)&&!Object.prototype.hasOwnProperty.call(n.cause,Rr)&&(e.cause=Or(n.cause));for(let t in n)if(e[t]===void 0){let s=n[t];Ja(s)?Object.prototype.hasOwnProperty.call(s,Rr)||(e[t]=Or(s)):e[t]=s}return delete n[Rr],e.raw=n,e}});var uh=N((iR,ch)=>{"use strict";ch.exports={mapHttpRequest:_S,reqSerializer:lh};var Xa=Symbol("pino-raw-req-ref"),ah=Object.create({},{id:{enumerable:!0,writable:!0,value:""},method:{enumerable:!0,writable:!0,value:""},url:{enumerable:!0,writable:!0,value:""},query:{enumerable:!0,writable:!0,value:""},params:{enumerable:!0,writable:!0,value:""},headers:{enumerable:!0,writable:!0,value:{}},remoteAddress:{enumerable:!0,writable:!0,value:""},remotePort:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[Xa]},set:function(n){this[Xa]=n}}});Object.defineProperty(ah,Xa,{writable:!0,value:{}});function lh(n){let e=n.info||n.socket,t=Object.create(ah);if(t.id=typeof n.id=="function"?n.id():n.id||(n.info?n.info.id:void 0),t.method=n.method,n.originalUrl)t.url=n.originalUrl;else{let s=n.path;t.url=typeof s=="string"?s:n.url?n.url.path||n.url:void 0}return n.query&&(t.query=n.query),n.params&&(t.params=n.params),t.headers=n.headers,t.remoteAddress=e&&e.remoteAddress,t.remotePort=e&&e.remotePort,t.raw=n.raw||n,t}function _S(n){return{req:lh(n)}}});var hh=N((oR,ph)=>{"use strict";ph.exports={mapHttpResponse:AS,resSerializer:fh};var Qa=Symbol("pino-raw-res-ref"),dh=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[Qa]},set:function(n){this[Qa]=n}}});Object.defineProperty(dh,Qa,{writable:!0,value:{}});function fh(n){let e=Object.create(dh);return e.statusCode=n.headersSent?n.statusCode:null,e.headers=n.getHeaders?n.getHeaders():n._headers,e.raw=n,e}function AS(n){return{res:fh(n)}}});var el=N((aR,mh)=>{"use strict";var Za=rh(),kS=oh(),Pr=uh(),Mr=hh();mh.exports={err:Za,errWithCause:kS,mapHttpRequest:Pr.mapHttpRequest,mapHttpResponse:Mr.mapHttpResponse,req:Pr.reqSerializer,res:Mr.resSerializer,wrapErrorSerializer:function(e){return e===Za?e:function(s){return e(Za(s))}},wrapRequestSerializer:function(e){return e===Pr.reqSerializer?e:function(s){return e(Pr.reqSerializer(s))}},wrapResponseSerializer:function(e){return e===Mr.resSerializer?e:function(s){return e(Mr.resSerializer(s))}}}});var tl=N((lR,gh)=>{"use strict";function $S(n,e){return e}gh.exports=function(){let e=Error.prepareStackTrace;Error.prepareStackTrace=$S;let t=new Error().stack;if(Error.prepareStackTrace=e,!Array.isArray(t))return;let s=t.slice(2),r=[];for(let i of s)i&&r.push(i.getFileName());return r}});var Sh=N((cR,xh)=>{"use strict";function nl(n){if(n===null||typeof n!="object")return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof Array){let e=[];for(let t=0;t<n.length;t++)e[t]=nl(n[t]);return e}if(typeof n=="object"){let e=Object.create(Object.getPrototypeOf(n));for(let t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=nl(n[t]));return e}return n}function yh(n){let e=[],t="",s=!1,r=!1,i="";for(let o=0;o<n.length;o++){let a=n[o];!s&&a==="."?t&&(e.push(t),t=""):a==="["?(t&&(e.push(t),t=""),s=!0):a==="]"&&s?(e.push(t),t="",s=!1,r=!1):(a==='"'||a==="'")&&s?r?a===i?(r=!1,i=""):t+=a:(r=!0,i=a):t+=a}return t&&e.push(t),e}function bh(n,e,t){let s=n;for(let i=0;i<e.length-1;i++){let o=e[i];if(typeof s!="object"||s===null||!(o in s)||typeof s[o]!="object"||s[o]===null)return!1;s=s[o]}let r=e[e.length-1];if(r==="*"){if(Array.isArray(s))for(let i=0;i<s.length;i++)s[i]=t;else if(typeof s=="object"&&s!==null)for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&(s[i]=t)}else typeof s=="object"&&s!==null&&r in s&&Object.prototype.hasOwnProperty.call(s,r)&&(s[r]=t);return!0}function vh(n,e){let t=n;for(let r=0;r<e.length-1;r++){let i=e[r];if(typeof t!="object"||t===null||!(i in t)||typeof t[i]!="object"||t[i]===null)return!1;t=t[i]}let s=e[e.length-1];if(s==="*"){if(Array.isArray(t))for(let r=0;r<t.length;r++)t[r]=void 0;else if(typeof t=="object"&&t!==null)for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&delete t[r]}else typeof t=="object"&&t!==null&&s in t&&Object.prototype.hasOwnProperty.call(t,s)&&delete t[s];return!0}var Ir=Symbol("PATH_NOT_FOUND");function CS(n,e){let t=n;for(let s of e){if(t==null||typeof t!="object"||t===null||!(s in t))return Ir;t=t[s]}return t}function ES(n,e){let t=n;for(let s of e){if(t==null||typeof t!="object"||t===null)return;t=t[s]}return t}function TS(n,e,t,s=!1){for(let r of e){let i=yh(r);if(i.includes("*"))wh(n,i,t,r,s);else if(s)vh(n,i);else{let o=CS(n,i);if(o===Ir)continue;let a=typeof t=="function"?t(o,i):t;bh(n,i,a)}}}function wh(n,e,t,s,r=!1){let i=e.indexOf("*");if(i===e.length-1){let o=e.slice(0,-1),a=n;for(let l of o){if(a==null||typeof a!="object"||a===null)return;a=a[l]}if(Array.isArray(a))if(r)for(let l=0;l<a.length;l++)a[l]=void 0;else for(let l=0;l<a.length;l++){let u=[...o,l.toString()],d=typeof t=="function"?t(a[l],u):t;a[l]=d}else if(typeof a=="object"&&a!==null)if(r){let l=[];for(let u in a)Object.prototype.hasOwnProperty.call(a,u)&&l.push(u);for(let u of l)delete a[u]}else for(let l in a){let u=[...o,l],d=typeof t=="function"?t(a[l],u):t;a[l]=d}}else RS(n,e,t,i,s,r)}function RS(n,e,t,s,r,i=!1){let o=e.slice(0,s),a=e.slice(s+1),l=[];function u(d,f){if(f===o.length){if(Array.isArray(d))for(let h=0;h<d.length;h++)l[f]=h.toString(),u(d[h],f+1);else if(typeof d=="object"&&d!==null)for(let h in d)l[f]=h,u(d[h],f+1)}else if(f<o.length){let h=o[f];d&&typeof d=="object"&&d!==null&&h in d&&(l[f]=h,u(d[h],f+1))}else if(a.includes("*"))wh(d,a,typeof t=="function"?(m,p)=>{let g=[...l.slice(0,f),...p];return t(m,g)}:t,r,i);else if(i)vh(d,a);else{let h=typeof t=="function"?t(ES(d,a),[...l.slice(0,f),...a]):t;bh(d,a,h)}}if(o.length===0)u(n,0);else{let d=n;for(let f=0;f<o.length;f++){let h=o[f];if(d==null||typeof d!="object"||d===null)return;d=d[h],l[f]=h}d!=null&&u(d,o.length)}}function OS(n){if(n.length===0)return null;let e=new Map;for(let t of n){let s=yh(t),r=e;for(let i=0;i<s.length;i++){let o=s[i];r.has(o)||r.set(o,new Map),r=r.get(o)}}return e}function PS(n,e){if(!e)return n;function t(s,r,i=0){if(!r||r.size===0||s===null||typeof s!="object")return s;if(s instanceof Date)return new Date(s.getTime());if(Array.isArray(s)){let a=[];for(let l=0;l<s.length;l++){let u=l.toString();r.has(u)||r.has("*")?a[l]=t(s[l],r.get(u)||r.get("*")):a[l]=s[l]}return a}let o=Object.create(Object.getPrototypeOf(s));for(let a in s)Object.prototype.hasOwnProperty.call(s,a)&&(r.has(a)||r.has("*")?o[a]=t(s[a],r.get(a)||r.get("*")):o[a]=s[a]);return o}return t(n,e)}function MS(n){if(typeof n!="string")throw new Error("Paths must be (non-empty) strings");if(n==="")throw new Error("Invalid redaction path ()");if(n.includes(".."))throw new Error(`Invalid redaction path (${n})`);if(n.includes(","))throw new Error(`Invalid redaction path (${n})`);let e=0,t=!1,s="";for(let r=0;r<n.length;r++){let i=n[r];if((i==='"'||i==="'")&&e>0)t?i===s&&(t=!1,s=""):(t=!0,s=i);else if(i==="["&&!t)e++;else if(i==="]"&&!t&&(e--,e<0))throw new Error(`Invalid redaction path (${n})`)}if(e!==0)throw new Error(`Invalid redaction path (${n})`)}function IS(n){if(!Array.isArray(n))throw new TypeError("paths must be an array");for(let e of n)MS(e)}function DS(n={}){let{paths:e=[],censor:t="[REDACTED]",serialize:s=JSON.stringify,strict:r=!0,remove:i=!1}=n;IS(e);let o=OS(e);return function(l){if(r&&(l===null||typeof l!="object")&&(l==null||typeof l!="object"))return s?s(l):l;let u=PS(l,o),d=l,f=t;return typeof t=="function"&&(f=t),TS(u,e,f,i),s===!1?(u.restore=function(){return nl(d)},u):typeof s=="function"?s(u):JSON.stringify(u)}}xh.exports=DS});var Pn=N((uR,_h)=>{"use strict";var LS=Symbol("pino.setLevel"),FS=Symbol("pino.getLevel"),NS=Symbol("pino.levelVal"),jS=Symbol("pino.levelComp"),HS=Symbol("pino.useLevelLabels"),BS=Symbol("pino.useOnlyCustomLevels"),US=Symbol("pino.mixin"),qS=Symbol("pino.lsCache"),KS=Symbol("pino.chindings"),WS=Symbol("pino.asJson"),GS=Symbol("pino.write"),VS=Symbol("pino.redactFmt"),zS=Symbol("pino.time"),YS=Symbol("pino.timeSliceIndex"),JS=Symbol("pino.stream"),XS=Symbol("pino.stringify"),QS=Symbol("pino.stringifySafe"),ZS=Symbol("pino.stringifiers"),e_=Symbol("pino.end"),t_=Symbol("pino.formatOpts"),n_=Symbol("pino.messageKey"),s_=Symbol("pino.errorKey"),r_=Symbol("pino.nestedKey"),i_=Symbol("pino.nestedKeyStr"),o_=Symbol("pino.mixinMergeStrategy"),a_=Symbol("pino.msgPrefix"),l_=Symbol("pino.wildcardFirst"),c_=Symbol.for("pino.serializers"),u_=Symbol.for("pino.formatters"),d_=Symbol.for("pino.hooks"),f_=Symbol.for("pino.metadata");_h.exports={setLevelSym:LS,getLevelSym:FS,levelValSym:NS,levelCompSym:jS,useLevelLabelsSym:HS,mixinSym:US,lsCacheSym:qS,chindingsSym:KS,asJsonSym:WS,writeSym:GS,serializersSym:c_,redactFmtSym:VS,timeSym:zS,timeSliceIndexSym:YS,streamSym:JS,stringifySym:XS,stringifySafeSym:QS,stringifiersSym:ZS,endSym:e_,formatOptsSym:t_,messageKeySym:n_,errorKeySym:s_,nestedKeySym:r_,wildcardFirstSym:l_,needsMetadataGsym:f_,useOnlyCustomLevelsSym:BS,formattersSym:u_,hooksSym:d_,nestedKeyStrSym:i_,mixinMergeStrategySym:o_,msgPrefixSym:a_}});var rl=N((dR,Ch)=>{"use strict";var Ah=Sh(),{redactFmtSym:p_,wildcardFirstSym:Dr}=Pn(),sl=/[^.[\]]+|\[([^[\]]*?)\]/g,kh="[Redacted]",$h=!1;function h_(n,e){let{paths:t,censor:s,remove:r}=m_(n),i=t.reduce((l,u)=>{sl.lastIndex=0;let d=sl.exec(u),f=sl.exec(u),h=d[1]!==void 0?d[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):d[0];if(h==="*"&&(h=Dr),f===null)return l[h]=null,l;if(l[h]===null)return l;let{index:m}=f,p=`${u.substr(m,u.length-1)}`;return l[h]=l[h]||[],h!==Dr&&l[h].length===0&&l[h].push(...l[Dr]||[]),h===Dr&&Object.keys(l).forEach(function(g){l[g]&&l[g].push(p)}),l[h].push(p),l},{}),o={[p_]:Ah({paths:t,censor:s,serialize:e,strict:$h,remove:r})},a=(...l)=>e(typeof s=="function"?s(...l):s);return[...Object.keys(i),...Object.getOwnPropertySymbols(i)].reduce((l,u)=>{if(i[u]===null)l[u]=d=>a(d,[u]);else{let d=typeof s=="function"?(f,h)=>s(f,[u,...h]):s;l[u]=Ah({paths:i[u],censor:d,serialize:e,strict:$h,remove:r})}return l},o)}function m_(n){if(Array.isArray(n))return n={paths:n,censor:kh},n;let{paths:e,censor:t=kh,remove:s}=n;if(Array.isArray(e)===!1)throw Error("pino \u2013 redact must contain an array of strings");return s===!0&&(t=void 0),{paths:e,censor:t,remove:s}}Ch.exports=h_});var Rh=N((fR,Th)=>{"use strict";var g_=()=>"",y_=()=>`,"time":${Date.now()}`,b_=()=>`,"time":${Math.round(Date.now()/1e3)}`,v_=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,w_=1000000n,Eh=1000000000n,x_=BigInt(Date.now())*w_,S_=process.hrtime.bigint(),__=()=>{let n=process.hrtime.bigint()-S_,e=x_+n,t=e/Eh,s=e%Eh,r=Number(t*1000n+s/1000000n),i=new Date(r),o=i.getUTCFullYear(),a=(i.getUTCMonth()+1).toString().padStart(2,"0"),l=i.getUTCDate().toString().padStart(2,"0"),u=i.getUTCHours().toString().padStart(2,"0"),d=i.getUTCMinutes().toString().padStart(2,"0"),f=i.getUTCSeconds().toString().padStart(2,"0");return`,"time":"${o}-${a}-${l}T${u}:${d}:${f}.${s.toString().padStart(9,"0")}Z"`};Th.exports={nullTime:g_,epochTime:y_,unixTime:b_,isoTime:v_,isoTimeNano:__}});var Ph=N((pR,Oh)=>{"use strict";function A_(n){try{return JSON.stringify(n)}catch{return'"[Circular]"'}}Oh.exports=k_;function k_(n,e,t){var s=t&&t.stringify||A_,r=1;if(typeof n=="object"&&n!==null){var i=e.length+r;if(i===1)return n;var o=new Array(i);o[0]=s(n);for(var a=1;a<i;a++)o[a]=s(e[a]);return o.join(" ")}if(typeof n!="string")return n;var l=e.length;if(l===0)return n;for(var u="",d=1-r,f=-1,h=n&&n.length||0,m=0;m<h;){if(n.charCodeAt(m)===37&&m+1<h){switch(f=f>-1?f:0,n.charCodeAt(m+1)){case 100:case 102:if(d>=l||e[d]==null)break;f<m&&(u+=n.slice(f,m)),u+=Number(e[d]),f=m+2,m++;break;case 105:if(d>=l||e[d]==null)break;f<m&&(u+=n.slice(f,m)),u+=Math.floor(Number(e[d])),f=m+2,m++;break;case 79:case 111:case 106:if(d>=l||e[d]===void 0)break;f<m&&(u+=n.slice(f,m));var p=typeof e[d];if(p==="string"){u+="'"+e[d]+"'",f=m+2,m++;break}if(p==="function"){u+=e[d].name||"<anonymous>",f=m+2,m++;break}u+=s(e[d]),f=m+2,m++;break;case 115:if(d>=l)break;f<m&&(u+=n.slice(f,m)),u+=String(e[d]),f=m+2,m++;break;case 37:f<m&&(u+=n.slice(f,m)),u+="%",f=m+2,m++,d--;break}++d}++m}return f===-1?n:(f<h&&(u+=n.slice(f)),u)}});var ol=N((hR,il)=>{"use strict";if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let e=function(t){if((t>0&&t<1/0)===!1)throw typeof t!="number"&&typeof t!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");Atomics.wait(n,0,0,Number(t))},n=new Int32Array(new SharedArrayBuffer(4));il.exports=e}else{let n=function(e){if((e>0&&e<1/0)===!1)throw typeof e!="number"&&typeof e!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");let s=Date.now()+Number(e);for(;s>Date.now(););};il.exports=n}});var Hh=N((mR,jh)=>{"use strict";var ce=require("fs"),$_=require("events"),C_=require("util").inherits,Mh=require("path"),ll=ol(),E_=require("assert"),Lr=100,Fr=Buffer.allocUnsafe(0),T_=16*1024,Ih="buffer",Dh="utf8",[R_,O_]=(process.versions.node||"0.0").split(".").map(Number),P_=R_>=22&&O_>=7;function Lh(n,e){e._opening=!0,e._writing=!0,e._asyncDrainScheduled=!1;function t(i,o){if(i){e._reopening=!1,e._writing=!1,e._opening=!1,e.sync?process.nextTick(()=>{e.listenerCount("error")>0&&e.emit("error",i)}):e.emit("error",i);return}let a=e._reopening;e.fd=o,e.file=n,e._reopening=!1,e._opening=!1,e._writing=!1,e.sync?process.nextTick(()=>e.emit("ready")):e.emit("ready"),!e.destroyed&&(!e._writing&&e._len>e.minLength||e._flushPending?e._actualWrite():a&&process.nextTick(()=>e.emit("drain")))}let s=e.append?"a":"w",r=e.mode;if(e.sync)try{e.mkdir&&ce.mkdirSync(Mh.dirname(n),{recursive:!0});let i=ce.openSync(n,s,r);t(null,i)}catch(i){throw t(i),i}else e.mkdir?ce.mkdir(Mh.dirname(n),{recursive:!0},i=>{if(i)return t(i);ce.open(n,s,r,t)}):ce.open(n,s,r,t)}function st(n){if(!(this instanceof st))return new st(n);let{fd:e,dest:t,minLength:s,maxLength:r,maxWrite:i,periodicFlush:o,sync:a,append:l=!0,mkdir:u,retryEAGAIN:d,fsync:f,contentMode:h,mode:m}=n||{};e=e||t,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(s||0,16387),this.file=null,this.destroyed=!1,this.minLength=s||0,this.maxLength=r||0,this.maxWrite=i||T_,this._periodicFlush=o||0,this._periodicFlushTimer=void 0,this.sync=a||!1,this.writable=!0,this._fsync=f||!1,this.append=l||!1,this.mode=m,this.retryEAGAIN=d||(()=>!0),this.mkdir=u||!1;let p,g;if(h===Ih)this._writingBuf=Fr,this.write=D_,this.flush=F_,this.flushSync=j_,this._actualWrite=B_,p=()=>ce.writeSync(this.fd,this._writingBuf),g=()=>ce.write(this.fd,this._writingBuf,this.release);else if(h===void 0||h===Dh)this._writingBuf="",this.write=I_,this.flush=L_,this.flushSync=N_,this._actualWrite=H_,p=()=>Buffer.isBuffer(this._writingBuf)?ce.writeSync(this.fd,this._writingBuf):ce.writeSync(this.fd,this._writingBuf,"utf8"),g=()=>Buffer.isBuffer(this._writingBuf)?ce.write(this.fd,this._writingBuf,this.release):ce.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${Dh}" and "${Ih}", but passed ${h}`);if(typeof e=="number")this.fd=e,process.nextTick(()=>this.emit("ready"));else if(typeof e=="string")Lh(e,this);else throw new Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw new Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);this.release=(S,w)=>{if(S){if((S.code==="EAGAIN"||S.code==="EBUSY")&&this.retryEAGAIN(S,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{ll(Lr),this.release(void 0,0)}catch(y){this.release(y)}else setTimeout(g,Lr);else this._writing=!1,this.emit("error",S);return}this.emit("write",w);let $=al(this._writingBuf,this._len,w);if(this._len=$.len,this._writingBuf=$.writingBuf,this._writingBuf.length){if(!this.sync){g();return}try{do{let y=p(),v=al(this._writingBuf,this._len,y);this._len=v.len,this._writingBuf=v.writingBuf}while(this._writingBuf.length)}catch(y){this.release(y);return}}this._fsync&&ce.fsyncSync(this.fd);let k=this._len;this._reopening?(this._writing=!1,this._reopening=!1,this.reopen()):k>this.minLength?this._actualWrite():this._ending?k>0?this._actualWrite():(this._writing=!1,Nr(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(M_,this)):this.emit("drain"))},this.on("newListener",function(S){S==="drain"&&(this._asyncDrainScheduled=!1)}),this._periodicFlush!==0&&(this._periodicFlushTimer=setInterval(()=>this.flush(null),this._periodicFlush),this._periodicFlushTimer.unref())}function al(n,e,t){return typeof n=="string"&&(n=Buffer.from(n)),e=Math.max(e-t,0),n=n.subarray(t),{writingBuf:n,len:e}}function M_(n){n.listenerCount("drain")>0&&(n._asyncDrainScheduled=!1,n.emit("drain"))}C_(st,$_);function Fh(n,e){return n.length===0?Fr:n.length===1?n[0]:Buffer.concat(n,e)}function I_(n){if(this.destroyed)throw new Error("SonicBoom destroyed");n=""+n;let e=Buffer.byteLength(n),t=this._len+e,s=this._bufs;return this.maxLength&&t>this.maxLength?(this.emit("drop",n),this._len<this._hwm):(s.length===0||Buffer.byteLength(s[s.length-1])+e>this.maxWrite?s.push(n):s[s.length-1]+=n,this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len<this._hwm)}function D_(n){if(this.destroyed)throw new Error("SonicBoom destroyed");let e=this._len+n.length,t=this._bufs,s=this._lens;return this.maxLength&&e>this.maxLength?(this.emit("drop",n),this._len<this._hwm):(t.length===0||s[s.length-1]+n.length>this.maxWrite?(t.push([n]),s.push(n.length)):(t[t.length-1].push(n),s[s.length-1]+=n.length),this._len=e,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len<this._hwm)}function Nh(n){this._flushPending=!0;let e=()=>{if(this._fsync)this._flushPending=!1,n();else try{ce.fsync(this.fd,s=>{this._flushPending=!1,n(s)})}catch(s){n(s)}this.off("error",t)},t=s=>{this._flushPending=!1,n(s),this.off("drain",e)};this.once("drain",e),this.once("error",t)}function L_(n){if(n!=null&&typeof n!="function")throw new Error("flush cb must be a function");if(this.destroyed){let e=new Error("SonicBoom destroyed");if(n){n(e);return}throw e}if(this.minLength<=0){n?.();return}n&&Nh.call(this,n),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function F_(n){if(n!=null&&typeof n!="function")throw new Error("flush cb must be a function");if(this.destroyed){let e=new Error("SonicBoom destroyed");if(n){n(e);return}throw e}if(this.minLength<=0){n?.();return}n&&Nh.call(this,n),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}st.prototype.reopen=function(n){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen(n)});return}if(this._ending)return;if(!this.file)throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if(n&&(this.file=n),this._reopening=!0,this._writing)return;let e=this.fd;this.once("ready",()=>{e!==this.fd&&ce.close(e,t=>{if(t)return this.emit("error",t)})}),Lh(this.file,this)};st.prototype.end=function(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}this._ending||(this._ending=!0,!this._writing&&(this._len>0&&this.fd>=0?this._actualWrite():Nr(this)))};function N_(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift(this._writingBuf),this._writingBuf="");let n="";for(;this._bufs.length||n.length;){n.length<=0&&(n=this._bufs[0]);try{let e=Buffer.isBuffer(n)?ce.writeSync(this.fd,n):ce.writeSync(this.fd,n,"utf8"),t=al(n,this._len,e);n=t.writingBuf,this._len=t.len,n.length<=0&&this._bufs.shift()}catch(e){if((e.code==="EAGAIN"||e.code==="EBUSY")&&!this.retryEAGAIN(e,n.length,this._len-n.length))throw e;ll(Lr)}}try{ce.fsyncSync(this.fd)}catch{}}function j_(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift([this._writingBuf]),this._writingBuf=Fr);let n=Fr;for(;this._bufs.length||n.length;){n.length<=0&&(n=Fh(this._bufs[0],this._lens[0]));try{let e=ce.writeSync(this.fd,n);n=n.subarray(e),this._len=Math.max(this._len-e,0),n.length<=0&&(this._bufs.shift(),this._lens.shift())}catch(e){if((e.code==="EAGAIN"||e.code==="EBUSY")&&!this.retryEAGAIN(e,n.length,this._len-n.length))throw e;ll(Lr)}}}st.prototype.destroy=function(){this.destroyed||Nr(this)};function H_(){let n=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:this._bufs.shift()||"",this.sync)try{let e=Buffer.isBuffer(this._writingBuf)?ce.writeSync(this.fd,this._writingBuf):ce.writeSync(this.fd,this._writingBuf,"utf8");n(null,e)}catch(e){n(e)}else ce.write(this.fd,this._writingBuf,n)}function B_(){let n=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:Fh(this._bufs.shift(),this._lens.shift()),this.sync)try{let e=ce.writeSync(this.fd,this._writingBuf);n(null,e)}catch(e){n(e)}else P_&&(this._writingBuf=Buffer.from(this._writingBuf)),ce.write(this.fd,this._writingBuf,n)}function Nr(n){if(n.fd===-1){n.once("ready",Nr.bind(null,n));return}n._periodicFlushTimer!==void 0&&clearInterval(n._periodicFlushTimer),n.destroyed=!0,n._bufs=[],n._lens=[],E_(typeof n.fd=="number",`sonic.fd must be a number, got ${typeof n.fd}`);try{ce.fsync(n.fd,e)}catch{}function e(){n.fd!==1&&n.fd!==2?ce.close(n.fd,t):t()}function t(s){if(s){n.emit("error",s);return}n._ending&&!n._writing&&n.emit("finish"),n.emit("close")}}st.SonicBoom=st;st.default=st;jh.exports=st});var cl=N((gR,Wh)=>{"use strict";var rt={exit:[],beforeExit:[]},Bh={exit:K_,beforeExit:W_},Mn;function U_(){Mn===void 0&&(Mn=new FinalizationRegistry(G_))}function q_(n){rt[n].length>0||process.on(n,Bh[n])}function Uh(n){rt[n].length>0||(process.removeListener(n,Bh[n]),rt.exit.length===0&&rt.beforeExit.length===0&&(Mn=void 0))}function K_(){qh("exit")}function W_(){qh("beforeExit")}function qh(n){for(let e of rt[n]){let t=e.deref(),s=e.fn;t!==void 0&&s(t,n)}rt[n]=[]}function G_(n){for(let e of["exit","beforeExit"]){let t=rt[e].indexOf(n);rt[e].splice(t,t+1),Uh(e)}}function Kh(n,e,t){if(e===void 0)throw new Error("the object can't be undefined");q_(n);let s=new WeakRef(e);s.fn=t,U_(),Mn.register(e,s),rt[n].push(s)}function V_(n,e){Kh("exit",n,e)}function z_(n,e){Kh("beforeExit",n,e)}function Y_(n){if(Mn!==void 0){Mn.unregister(n);for(let e of["exit","beforeExit"])rt[e]=rt[e].filter(t=>{let s=t.deref();return s&&s!==n}),Uh(e)}}Wh.exports={register:V_,registerBeforeExit:z_,unregister:Y_}});var Gh=N((yR,J_)=>{J_.exports={name:"thread-stream",version:"4.2.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",engines:{node:">=20"},dependencies:{"real-require":"^1.0.0"},devDependencies:{"@types/node":"^25.0.2","@yao-pkg/pkg":"^6.0.0",borp:"^1.0.0",desm:"^1.3.0",eslint:"^9.39.1",fastbench:"^1.0.1",neostandard:"^0.13.0","pino-elasticsearch":"^9.0.0","sonic-boom":"^5.0.0","ts-node":"^10.8.0",typescript:"~5.7.3"},scripts:{build:"tsc --noEmit",lint:"eslint",test:'npm run lint && npm run build && npm run transpile && borp --pattern "test/*.test.{js,mjs}"',"test:ci":'npm run lint && npm run transpile && borp --pattern "test/*.test.{js,mjs}"',"test:yarn":'npm run transpile && borp --pattern "test/*.test.js"',transpile:"sh ./test/ts/transpile.sh"},repository:{type:"git",url:"git+https://github.com/mcollina/thread-stream.git"},keywords:["worker","thread","threads","stream"],author:"Matteo Collina <hello@matteocollina.com>",license:"MIT",bugs:{url:"https://github.com/mcollina/thread-stream/issues"},homepage:"https://github.com/mcollina/thread-stream#readme"}});var zh=N((bR,Vh)=>{"use strict";function X_(n,e,t,s,r){let i=s===1/0?1/0:Date.now()+s,o=()=>{let a=Atomics.load(n,e);if(a===t){r(null,"ok");return}if(i!==1/0&&Date.now()>i){r(null,"timed-out");return}let l=i===1/0?1e4:Math.min(1e4,Math.max(1,i-Date.now())),u=Atomics.waitAsync(n,e,a,l);u.async?u.value.then(o):setImmediate(o)};o()}function Q_(n,e,t,s,r){let i=s===1/0?1/0:Date.now()+s,o=()=>{if(Atomics.load(n,e)!==t){r(null,"ok");return}if(i!==1/0&&Date.now()>i){r(null,"timed-out");return}let l=i===1/0?1e4:Math.min(1e4,Math.max(1,i-Date.now())),u=Atomics.waitAsync(n,e,t,l);u.async?u.value.then(d=>{if(d==="ok"){r(null,"ok");return}o()}):setImmediate(o)};o()}Vh.exports={wait:X_,waitDiff:Q_}});var Jh=N((vR,Yh)=>{"use strict";Yh.exports={WRITE_INDEX:4,READ_INDEX:8,SEQ_INDEX:2}});var lm=N((wR,am)=>{"use strict";var{version:Z_}=Gh(),{EventEmitter:eA}=require("events"),{Worker:tA}=require("worker_threads"),{join:nA}=require("path"),{pathToFileURL:sA}=require("url"),{wait:rA}=zh(),{WRITE_INDEX:Mt,READ_INDEX:an,SEQ_INDEX:ul}=Jh(),iA=require("buffer"),oA=require("assert"),R=Symbol("kImpl"),aA=iA.constants.MAX_STRING_LENGTH;function Xh(){}function hl(n,e){Atomics.add(n[R].state,ul,1),e(),Atomics.add(n[R].state,ul,1),Atomics.notify(n[R].state,ul)}function Qh(n){hl(n,()=>{Atomics.store(n[R].state,an,0),Atomics.store(n[R].state,Mt,0)})}var vs=class{constructor(e){this._value=e}deref(){return this._value}},jr=class{register(){}unregister(){}},lA=process.env.NODE_V8_COVERAGE?jr:global.FinalizationRegistry||jr,cA=process.env.NODE_V8_COVERAGE?vs:global.WeakRef||vs,Zh=new lA(n=>{n.exited||n.terminate()});function uA(n,e){let{filename:t,workerData:s}=e,i=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||nA(__dirname,"lib","worker.js"),o=new tA(i,{...e.workerOpts,name:e.workerOpts?.name||"thread-stream",trackUnmanagedFds:!1,workerData:{filename:t.indexOf("file://")===0?t:sA(t).href,dataBuf:n[R].dataBuf,stateBuf:n[R].stateBuf,workerData:{$context:{threadStreamVersion:Z_},...s}}});return o.stream=new vs(n),o.on("message",dA),o.on("exit",nm),Zh.register(n,o),o}function em(n){oA(!n[R].sync),n[R].needDrain&&(n[R].needDrain=!1,n.emit("drain"))}function tm(n){for(;;){let e=Atomics.load(n[R].state,Mt),t=n[R].data.length-e;if(t>0){if(n[R].bufLen===0){n[R].flushing=!1,n[R].ending?ml(n):n[R].needDrain&&process.nextTick(em,n);return}im(n,t,Xh);continue}if(t===0){if(e===0&&n[R].bufLen===0)return;Hr(n,()=>{n.destroyed||(Qh(n),tm(n))});return}Je(n,new Error("overwritten"));return}}function dA(n){let e=this.stream.deref();if(e===void 0){this.exited=!0,this.terminate();return}if(n?.code!=null)switch(n.code){case"READY":this.stream=new cA(e),Hr(e,()=>{e[R].ready=!0,e.emit("ready")});break;case"ERROR":Je(e,n.err);break;case"EVENT":Array.isArray(n.args)?e.emit(n.name,...n.args):e.emit(n.name,n.args);break;case"FLUSHED":{if(n.context!=="thread-stream"){Je(e,new Error("this should not happen: "+n.code));break}let t=e[R].flushCallbacks.get(n.id);t&&(e[R].flushCallbacks.delete(n.id),process.nextTick(t));break}case"WARNING":process.emitWarning(n.err);break;default:Je(e,new Error("this should not happen: "+n.code))}}function nm(n){let e=this.stream.deref();e!==void 0&&(Zh.unregister(e),e.worker.exited=!0,e.worker.off("exit",nm),Je(e,n!==0?new Error("the worker thread exited"):null))}var fl=class extends eA{constructor(e={}){if(super(),e.bufferSize<4)throw new Error("bufferSize must at least fit a 4-byte utf-8 char");this[R]={},this[R].stateBuf=new SharedArrayBuffer(128),this[R].state=new Int32Array(this[R].stateBuf),this[R].dataBuf=new SharedArrayBuffer(e.bufferSize||4*1024*1024),this[R].data=Buffer.from(this[R].dataBuf),this[R].sync=e.sync||!1,this[R].ending=!1,this[R].ended=!1,this[R].needDrain=!1,this[R].destroyed=!1,this[R].flushing=!1,this[R].ready=!1,this[R].finished=!1,this[R].errored=null,this[R].closed=!1,this[R].buf=[],this[R].bufHead=0,this[R].bufLen=0,this[R].flushCallbacks=new Map,this[R].nextFlushId=0,this.worker=uA(this,e),this.on("message",(t,s)=>{this.worker.postMessage(t,s)})}write(e){let t=Buffer.isBuffer(e)?e:Buffer.from(e);if(this[R].destroyed)return pl(this,new Error("the worker has exited")),!1;if(this[R].ending)return pl(this,new Error("the worker is ending")),!1;if(this[R].flushing&&this[R].bufLen+t.length>=aA)try{dl(this),this[R].flushing=!0}catch(s){return Je(this,s),!1}if(this[R].buf.push(t),this[R].bufLen+=t.length,this[R].sync)try{return dl(this),!0}catch(s){return Je(this,s),!1}return this[R].flushing||(this[R].flushing=!0,setImmediate(tm,this)),this[R].needDrain=this[R].data.length-this[R].bufLen-Atomics.load(this[R].state,Mt)<=0,!this[R].needDrain}end(){this[R].destroyed||(this[R].ending=!0,ml(this))}flush(e){e=typeof e=="function"?e:Xh,sm(this,t=>{if(t){process.nextTick(e,t);return}rm(this,e)})}flushSync(){this[R].destroyed||(dl(this),om(this))}unref(){this.worker.unref()}ref(){this.worker.ref()}get ready(){return this[R].ready}get destroyed(){return this[R].destroyed}get closed(){return this[R].closed}get writable(){return!this[R].destroyed&&!this[R].ending}get writableEnded(){return this[R].ending}get writableFinished(){return this[R].finished}get writableNeedDrain(){return this[R].needDrain}get writableObjectMode(){return!1}get writableErrored(){return this[R].errored}};function sm(n,e){if(n[R].destroyed){process.nextTick(e,new Error("the worker has exited"));return}if(!n[R].sync&&(n[R].flushing||n[R].bufLen>0)){setImmediate(sm,n,e);return}Hr(n,e)}function Hr(n,e){let t=Atomics.load(n[R].state,Mt);rA(n[R].state,an,t,1/0,(s,r)=>{if(s){Je(n,s),e(s);return}if(r!=="ok"){Hr(n,e);return}e()})}function rm(n,e){if(n[R].destroyed){process.nextTick(e,new Error("the worker has exited"));return}if(!n[R].ready){let s=()=>{i(),rm(n,e)},r=()=>{i(),process.nextTick(e,new Error("the worker has exited"))},i=()=>{n.off("ready",s),n.off("close",r)};n.once("ready",s),n.once("close",r);return}let t=++n[R].nextFlushId;n[R].flushCallbacks.set(t,e);try{n.worker.postMessage({code:"FLUSH",context:"thread-stream",id:t})}catch(s){n[R].flushCallbacks.delete(t),Je(n,s),process.nextTick(e,s)}}function fA(n,e){let t=n[R].flushCallbacks;if(t.size===0)return;let s=e||new Error("the worker has exited");for(let r of t.values())process.nextTick(r,s);t.clear()}function pl(n,e){setImmediate(()=>{n.emit("error",e)})}function Je(n,e){n[R].destroyed||(n[R].destroyed=!0,fA(n,e),e&&(n[R].errored=e,pl(n,e)),n.worker.exited?setImmediate(()=>{n[R].closed=!0,n.emit("close")}):n.worker.terminate().catch(()=>{}).then(()=>{n[R].closed=!0,n.emit("close")}))}function im(n,e,t){let r=Atomics.load(n[R].state,Mt),i=e;for(;i>0&&n[R].bufLen!==0;){let o=n[R].bufHead,a=n[R].buf[o];if(a.length<=i){a.copy(n[R].data,r),r+=a.length,i-=a.length,n[R].bufLen-=a.length,n[R].bufHead=o+1,n[R].bufHead===n[R].buf.length?(n[R].buf.length=0,n[R].bufHead=0):n[R].bufHead>=1024&&n[R].bufHead*2>=n[R].buf.length&&(n[R].buf.splice(0,n[R].bufHead),n[R].bufHead=0);continue}a.copy(n[R].data,r,0,i),n[R].buf[o]=a.subarray(i),n[R].bufLen-=i,r+=i,i=0}return hl(n,()=>{Atomics.store(n[R].state,Mt,r)}),t(),!0}function ml(n){if(!(n[R].ended||!n[R].ending||n[R].flushing)){n[R].ended=!0;try{n.flushSync();let e=Atomics.load(n[R].state,an);hl(n,()=>{Atomics.store(n[R].state,Mt,-1)});let t=0;for(;e!==-1;){if(Atomics.wait(n[R].state,an,e,1e3),e=Atomics.load(n[R].state,an),e===-2){Je(n,new Error("end() failed"));return}if(++t===10){Je(n,new Error("end() took too long (10s)"));return}}process.nextTick(()=>{n[R].finished=!0,n.emit("finish")})}catch(e){Je(n,e)}}}function dl(n){let e=()=>{n[R].ending?ml(n):n[R].needDrain&&process.nextTick(em,n)};for(n[R].flushing=!1;n[R].bufLen!==0;){let t=Atomics.load(n[R].state,Mt),s=n[R].data.length-t;if(s===0){om(n),Qh(n);continue}else if(s<0)throw new Error("overwritten");im(n,s,e)}}function om(n){if(n[R].flushing)throw new Error("unable to flush while flushing");let e=Atomics.load(n[R].state,Mt),t=0;for(;;){let s=Atomics.load(n[R].state,an);if(s===-2)throw Error("_flushSync failed");if(s!==e)Atomics.wait(n[R].state,an,s,1e3);else break;if(++t===10)throw new Error("_flushSync took too long (10s)")}}am.exports=fl});var bl=N((xR,dm)=>{"use strict";var{createRequire:pA}=require("module"),{existsSync:hA}=require("node:fs"),mA=tl(),{join:gl,isAbsolute:um,sep:gA}=require("node:path"),{fileURLToPath:yA}=require("node:url"),bA=ol(),yl=cl(),vA=lm();function wA(n){yl.register(n,kA),yl.registerBeforeExit(n,$A),n.on("close",function(){yl.unregister(n)})}function xA(){let n=process.execArgv;for(let e=0;e<n.length;e++){let t=n[e];if(t==="--import"||t==="--require"||t==="-r"||t.startsWith("--import=")||t.startsWith("--require=")||t.startsWith("-r="))return!0}return!1}function SA(n){let e=n.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g);if(!e)return n;let t=[],s=!1;for(let r=0;r<e.length;r++){let i=e[r];if(i==="--require"||i==="-r"||i==="--import"){let o=e[r+1];if(o&&cm(o)){s=!0,r++;continue}t.push(i),o&&(t.push(o),r++);continue}if(i.startsWith("--require=")||i.startsWith("-r=")||i.startsWith("--import=")){let o=i.slice(i.indexOf("=")+1);if(cm(o)){s=!0;continue}}t.push(i)}return s?t.join(" "):n}function cm(n){let e=_A(n);if(!e)return!1;let t=e;if(t.startsWith("file://"))try{t=yA(t)}catch{return!1}return um(t)&&!hA(t)}function _A(n){let e=n[0],t=n[n.length-1];return e==='"'&&t==='"'||e==="'"&&t==="'"?n.slice(1,-1):n}function AA(n,e,t,s,r){if(!t.execArgv&&xA()&&require.main===void 0&&(t={...t,execArgv:[]}),!t.env&&process.env.NODE_OPTIONS){let l=SA(process.env.NODE_OPTIONS);l!==process.env.NODE_OPTIONS&&(t={...t,env:{...process.env,NODE_OPTIONS:l}})}t={...t,name:r};let i=new vA({filename:n,workerData:e,workerOpts:t,sync:s});i.on("ready",o),i.on("close",function(){process.removeListener("exit",a)}),process.on("exit",a);function o(){process.removeListener("exit",a),i.unref(),t.autoEnd!==!1&&wA(i)}function a(){i.closed||(i.flushSync(),bA(100),i.end())}return i}function kA(n){n.ref(),n.flushSync(),n.end(),n.once("close",function(){n.unref()})}function $A(n){n.flushSync()}function CA(n){let{pipeline:e,targets:t,levels:s,dedupe:r,worker:i={},caller:o=mA(),sync:a=!1}=n,l={...n.options},u=typeof o=="string"?[o]:o,d=typeof globalThis=="object"&&Object.prototype.hasOwnProperty.call(globalThis,"__bundlerPathsOverrides")&&globalThis.__bundlerPathsOverrides&&typeof globalThis.__bundlerPathsOverrides=="object"?globalThis.__bundlerPathsOverrides:Object.create(null),f=n.target;if(f&&t)throw new Error("only one of target or targets can be specified");t?(f=d["pino-worker"]||gl(__dirname,"worker.js"),l.targets=t.filter(p=>p.target).map(p=>({...p,target:m(p.target)})),l.pipelines=t.filter(p=>p.pipeline).map(p=>p.pipeline.map(g=>({...g,level:p.level,target:m(g.target)})))):e&&(f=d["pino-worker"]||gl(__dirname,"worker.js"),l.pipelines=[e.map(p=>({...p,target:m(p.target)}))]),s&&(l.levels=s),r&&(l.dedupe=r),l.pinoWillSendConfig=!0;let h=t||e?"pino.transport":f;return AA(m(f),l,i,a,h);function m(p){if(p=d[p]||p,um(p)||p.indexOf("file://")===0)return p;if(p==="pino/file")return gl(__dirname,"..","file.js");let g;for(let S of u)try{let w=S==="node:repl"?process.cwd()+gA:S;g=pA(w).resolve(p);break}catch{continue}if(!g)throw new Error(`unable to determine transport target for "${p}"`);return g}}dm.exports=CA});var qr=N((SR,Am)=>{"use strict";var EA=require("node:diagnostics_channel"),fm=Ph(),{mapHttpRequest:TA,mapHttpResponse:RA}=el(),wl=Hh(),pm=cl(),{lsCacheSym:OA,chindingsSym:bm,writeSym:hm,serializersSym:vm,formatOptsSym:mm,endSym:PA,stringifiersSym:wm,stringifySym:xm,stringifySafeSym:xl,wildcardFirstSym:Sm,nestedKeySym:MA,formattersSym:_m,messageKeySym:IA,errorKeySym:DA,nestedKeyStrSym:LA,msgPrefixSym:Br}=Pn(),{isMainThread:FA}=require("worker_threads"),NA=bl(),[jA]=process.versions.node.split(".").map(n=>Number(n)),gm=EA.tracingChannel("pino_asJson"),vl=jA>=25?n=>JSON.stringify(n):BA;function In(){}function HA(n,e){if(!e)return t;return function(...r){e.call(this,r,t,n)};function t(s,...r){if(typeof s=="object"){let i=s;s!==null&&(s.method&&s.headers&&s.socket?s=TA(s):typeof s.setHeader=="function"&&(s=RA(s)));let o;i===null&&r.length===0?o=[null]:(i=r.shift(),o=r),typeof this[Br]=="string"&&i!==void 0&&i!==null&&(i=this[Br]+i),this[hm](s,fm(i,o,this[mm]),n)}else{let i=s===void 0?r.shift():s;typeof this[Br]=="string"&&i!==void 0&&i!==null&&(i=this[Br]+i),this[hm](null,fm(i,r,this[mm]),n)}}}function BA(n){let e="",t=0,s=!1,r=255,i=n.length;if(i>100)return JSON.stringify(n);for(var o=0;o<i&&r>=32;o++)r=n.charCodeAt(o),(r===34||r===92)&&(e+=n.slice(t,o)+"\\",t=o,s=!0);return s?e+=n.slice(t):e=n,r<32?JSON.stringify(n):'"'+e+'"'}function UA(n,e,t,s){if(gm.hasSubscribers===!1)return ym.call(this,n,e,t,s);let r={instance:this,arguments};return gm.traceSync(ym,r,this,n,e,t,s)}function ym(n,e,t,s){let r=this[xm],i=this[xl],o=this[wm],a=this[PA],l=this[bm],u=this[vm],d=this[_m],f=this[IA],h=this[DA],m=this[OA][t]+s;m=m+l;let p;d.log&&(n=d.log(n));let g=o[Sm],S="";for(let $ in n)if(p=n[$],Object.prototype.hasOwnProperty.call(n,$)&&p!==void 0){u[$]?p=u[$](p):$===h&&u.err&&(p=u.err(p));let k=o[$]||g;switch(typeof p){case"undefined":case"function":continue;case"number":Number.isFinite(p)===!1&&(p=null);case"boolean":k&&(p=k(p));break;case"string":p=(k||vl)(p);break;default:p=(k||r)(p,i)}if(p===void 0)continue;let y=vl($);S+=","+y+":"+p}let w="";if(e!==void 0){p=u[f]?u[f](e):e;let $=o[f]||g;switch(typeof p){case"function":break;case"number":Number.isFinite(p)===!1&&(p=null);case"boolean":$&&(p=$(p)),w=',"'+f+'":'+p;break;case"string":p=($||vl)(p),w=',"'+f+'":'+p;break;default:p=($||r)(p,i),w=',"'+f+'":'+p}}return this[MA]&&S?m+this[LA]+S.slice(1)+"}"+w+a:m+S+w+a}function qA(n,e){let t,s=n[bm],r=n[xm],i=n[xl],o=n[wm],a=o[Sm],l=n[vm],u=n[_m].bindings;e=u(e);for(let d in e)if(t=e[d],((d.length<5||d!=="level"&&d!=="serializers"&&d!=="formatters"&&d!=="customLevels")&&e.hasOwnProperty(d)&&t!==void 0)===!0){if(t=l[d]?l[d](t):t,t=(o[d]||a||r)(t,i),t===void 0)continue;s+=',"'+d+'":'+t}return s}function KA(n){return n.write!==n.constructor.prototype.write}function Ur(n){let e=new wl(n);return e.on("error",t),!n.sync&&FA&&(pm.register(e,WA),e.on("close",function(){pm.unregister(e)})),e;function t(s){if(s.code==="EPIPE"){e.write=In,e.end=In,e.flushSync=In,e.destroy=In;return}e.removeListener("error",t),e.emit("error",s)}}function WA(n,e){n.destroyed||(e==="beforeExit"?(n.flush(),n.on("drain",function(){n.end()})):n.flushSync())}function GA(n){return function(t,s,r={},i){if(typeof r=="string")i=Ur({dest:r}),r={};else if(typeof i=="string"){if(r&&r.transport)throw Error("only one of option.transport or stream can be specified");i=Ur({dest:i})}else if(r instanceof wl||r.writable||r._writableState)i=r,r={};else if(r.transport){if(r.transport instanceof wl||r.transport.writable||r.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(r.transport.targets&&r.transport.targets.length&&r.formatters&&typeof r.formatters.level=="function")throw Error("option.transport.targets do not allow custom level formatters");let l;r.customLevels&&(l=r.useOnlyCustomLevels?r.customLevels:Object.assign({},r.levels,r.customLevels)),i=NA({caller:s,...r.transport,levels:l})}if(r=Object.assign({},n,r),r.serializers=Object.assign({},n.serializers,r.serializers),r.formatters=Object.assign({},n.formatters,r.formatters),r.prettyPrint)throw new Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:o,onChild:a}=r;return o===!1&&(r.level="silent"),a||(r.onChild=In),i||(KA(process.stdout)?i=process.stdout:i=Ur({fd:process.stdout.fd||1})),{opts:r,stream:i}}}function VA(n,e){try{return JSON.stringify(n)}catch{try{return(e||this[xl])(n)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function zA(n,e,t){return{level:n,bindings:e,log:t}}function YA(n){let e=Number(n);return typeof n=="string"&&Number.isFinite(e)?e:n===void 0?1:n}Am.exports={noop:In,buildSafeSonicBoom:Ur,asChindings:qA,asJson:UA,genLog:HA,createArgsNormalizer:GA,stringify:VA,buildFormatters:zA,normalizeDestFileDescriptor:YA}});var Kr=N((_R,km)=>{var JA={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},XA={ASC:"ASC",DESC:"DESC"};km.exports={DEFAULT_LEVELS:JA,SORTING_ORDER:XA}});var Al=N((AR,Tm)=>{"use strict";var{lsCacheSym:QA,levelValSym:Sl,useOnlyCustomLevelsSym:ZA,streamSym:ek,formattersSym:tk,hooksSym:nk,levelCompSym:$m}=Pn(),{noop:sk,genLog:ln}=qr(),{DEFAULT_LEVELS:yt,SORTING_ORDER:Cm}=Kr(),Em={fatal:n=>{let e=ln(yt.fatal,n);return function(...t){let s=this[ek];if(e.call(this,...t),typeof s.flushSync=="function")try{s.flushSync()}catch{}}},error:n=>ln(yt.error,n),warn:n=>ln(yt.warn,n),info:n=>ln(yt.info,n),debug:n=>ln(yt.debug,n),trace:n=>ln(yt.trace,n)},_l=Object.keys(yt).reduce((n,e)=>(n[yt[e]]=e,n),{}),rk=Object.keys(_l).reduce((n,e)=>(n[e]='{"level":'+Number(e),n),{});function ik(n){let e=n[tk].level,{labels:t}=n.levels,s={};for(let r in t){let i=e(t[r],Number(r));s[r]=JSON.stringify(i).slice(0,-1)}return n[QA]=s,n}function ok(n,e){if(e)return!1;switch(n){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function ak(n){let{labels:e,values:t}=this.levels;if(typeof n=="number"){if(e[n]===void 0)throw Error("unknown level value"+n);n=e[n]}if(t[n]===void 0)throw Error("unknown level "+n);let s=this[Sl],r=this[Sl]=t[n],i=this[ZA],o=this[$m],a=this[nk].logMethod;for(let l in t){if(o(t[l],r)===!1){this[l]=sk;continue}this[l]=ok(l,i)?Em[l](a):ln(t[l],a)}this.emit("level-change",n,r,e[s],s,this)}function lk(n){let{levels:e,levelVal:t}=this;return e&&e.labels?e.labels[t]:""}function ck(n){let{values:e}=this.levels,t=e[n];return t!==void 0&&this[$m](t,this[Sl])}function uk(n,e,t){return n===Cm.DESC?e<=t:e>=t}function dk(n){return typeof n=="string"?uk.bind(null,n):n}function fk(n=null,e=!1){let t=n?Object.keys(n).reduce((i,o)=>(i[n[o]]=o,i),{}):null,s=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),e?null:_l,t),r=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),e?null:yt,n);return{labels:s,values:r}}function pk(n,e,t){if(typeof n=="number"){if(![].concat(Object.keys(e||{}).map(i=>e[i]),t?[]:Object.keys(_l).map(i=>+i),1/0).includes(n))throw Error(`default level:${n} must be included in custom levels`);return}let s=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:yt,e);if(!(n in s))throw Error(`default level:${n} must be included in custom levels`)}function hk(n,e){let{labels:t,values:s}=n;for(let r in e){if(r in s)throw Error("levels cannot be overridden");if(e[r]in t)throw Error("pre-existing level values cannot be used for new levels")}}function mk(n){if(typeof n!="function"&&!(typeof n=="string"&&Object.values(Cm).includes(n)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Tm.exports={initialLsCache:rk,genLsCache:ik,levelMethods:Em,getLevel:lk,setLevel:ak,isLevelEnabled:ck,mappings:fk,assertNoLevelCollisions:hk,assertDefaultLevelFound:pk,genLevelComparison:dk,assertLevelComparison:mk}});var kl=N((kR,Rm)=>{"use strict";Rm.exports={version:"10.3.1"}});var Nm=N((CR,Fm)=>{"use strict";var{EventEmitter:gk}=require("node:events"),{lsCacheSym:yk,levelValSym:bk,setLevelSym:Cl,getLevelSym:Om,chindingsSym:Gr,mixinSym:vk,asJsonSym:Mm,writeSym:wk,mixinMergeStrategySym:xk,timeSym:Sk,timeSliceIndexSym:_k,streamSym:Im,serializersSym:cn,formattersSym:ws,errorKeySym:Ak,messageKeySym:kk,useOnlyCustomLevelsSym:$k,needsMetadataGsym:Ck,redactFmtSym:Ek,stringifySym:Tk,formatOptsSym:Rk,stringifiersSym:Ok,msgPrefixSym:El,hooksSym:Pk}=Pn(),{getLevel:Mk,setLevel:Ik,isLevelEnabled:Dk,mappings:Lk,initialLsCache:Fk,genLsCache:Nk,assertNoLevelCollisions:jk}=Al(),{asChindings:Tl,asJson:Hk,buildFormatters:$l,stringify:Pm,noop:Dm}=qr(),{version:Bk}=kl(),Uk=rl(),qk=class{},Lm={constructor:qk,child:Kk,bindings:Wk,setBindings:Gk,flush:Yk,isLevelEnabled:Dk,version:Bk,get level(){return this[Om]()},set level(n){this[Cl](n)},get levelVal(){return this[bk]},set levelVal(n){throw Error("levelVal is read-only")},get msgPrefix(){return this[El]},get[Symbol.toStringTag](){return"Pino"},[yk]:Fk,[wk]:zk,[Mm]:Hk,[Om]:Mk,[Cl]:Ik};Object.setPrototypeOf(Lm,gk.prototype);Fm.exports=function(){return Object.create(Lm)};var Wr=n=>n;function Kk(n,e){if(!n)throw Error("missing bindings for child Pino");let t=this[cn],s=this[ws],r=Object.create(this);if(e==null)return r[ws].bindings!==Wr&&(r[ws]=$l(s.level,Wr,s.log)),r[Gr]=Tl(r,n),this.onChild!==Dm&&this.onChild(r),r;if(e.hasOwnProperty("serializers")===!0){r[cn]=Object.create(null);for(let u in t)r[cn][u]=t[u];let a=Object.getOwnPropertySymbols(t);for(var i=0;i<a.length;i++){let u=a[i];r[cn][u]=t[u]}for(let u in e.serializers)r[cn][u]=e.serializers[u];let l=Object.getOwnPropertySymbols(e.serializers);for(var o=0;o<l.length;o++){let u=l[o];r[cn][u]=e.serializers[u]}}else r[cn]=t;if(e.hasOwnProperty("formatters")){let{level:a,bindings:l,log:u}=e.formatters;r[ws]=$l(a||s.level,l||Wr,u||s.log)}else r[ws]=$l(s.level,Wr,s.log);if(e.hasOwnProperty("customLevels")===!0&&(jk(this.levels,e.customLevels),r.levels=Lk(e.customLevels,r[$k]),Nk(r)),typeof e.redact=="object"&&e.redact!==null||Array.isArray(e.redact)){r.redact=e.redact;let a=Uk(r.redact,Pm),l={stringify:a[Ek]};r[Tk]=Pm,r[Ok]=a,r[Rk]=l}if(typeof e.msgPrefix=="string"&&(r[El]=(this[El]||"")+e.msgPrefix),r[Gr]=Tl(r,n),e.level!==void 0&&e.level!==this.level||e.hasOwnProperty("customLevels")){let a=e.level||this.level;r[Cl](a)}return this.onChild(r),r}function Wk(){let e=`{${this[Gr].substr(1)}}`,t=JSON.parse(e);return delete t.pid,delete t.hostname,t}function Gk(n){let e=Tl(this,n);this[Gr]=e}function Vk(n,e){return Object.assign(e,n)}function zk(n,e,t){let s=this[Sk](),r=this[vk],i=this[Ak],o=this[kk],a=this[xk]||Vk,l,u=this[Pk].streamWrite;n==null?l={}:n instanceof Error?(l={[i]:n},e===void 0&&(e=n.message)):(l=n,e===void 0&&n[o]===void 0&&n[i]&&(e=n[i].message)),r&&(l=a(l,r(l,t,this)));let d=this[Mm](l,e,t,s),f=this[Im];f[Ck]===!0&&(f.lastLevel=t,f.lastObj=l,f.lastMsg=e,f.lastTime=s.slice(this[_k]),f.lastLogger=this),f.write(u?u(d):d)}function Yk(n){if(n!=null&&typeof n!="function")throw Error("callback must be a function");let e=this[Im];typeof e.flush=="function"?e.flush(n||Dm):n&&n()}});var Um=N((Ml,Bm)=>{"use strict";var{hasOwnProperty:xs}=Object.prototype,dn=Pl();dn.configure=Pl;dn.stringify=dn;dn.default=dn;Ml.stringify=dn;Ml.configure=Pl;Bm.exports=dn;var Jk=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function qt(n){return n.length<5e3&&!Jk.test(n)?`"${n}"`:JSON.stringify(n)}function Rl(n,e){if(n.length>200||e)return n.sort(e);for(let t=1;t<n.length;t++){let s=n[t],r=t;for(;r!==0&&n[r-1]>s;)n[r]=n[r-1],r--;n[r]=s}return n}var Xk=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function Ol(n){return Xk.call(n)!==void 0&&n.length!==0}function jm(n,e,t){n.length<t&&(t=n.length);let s=e===","?"":" ",r=`"0":${s}${n[0]}`;for(let i=1;i<t;i++)r+=`${e}"${i}":${s}${n[i]}`;return r}function Qk(n){if(xs.call(n,"circularValue")){let e=n.circularValue;if(typeof e=="string")return`"${e}"`;if(e==null)return e;if(e===Error||e===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}function Zk(n){let e;if(xs.call(n,"deterministic")&&(e=n.deterministic,typeof e!="boolean"&&typeof e!="function"))throw new TypeError('The "deterministic" argument must be of type boolean or comparator function');return e===void 0?!0:e}function e$(n,e){let t;if(xs.call(n,e)&&(t=n[e],typeof t!="boolean"))throw new TypeError(`The "${e}" argument must be of type boolean`);return t===void 0?!0:t}function Hm(n,e){let t;if(xs.call(n,e)){if(t=n[e],typeof t!="number")throw new TypeError(`The "${e}" argument must be of type number`);if(!Number.isInteger(t))throw new TypeError(`The "${e}" argument must be an integer`);if(t<1)throw new RangeError(`The "${e}" argument must be >= 1`)}return t===void 0?1/0:t}function un(n){return n===1?"1 item":`${n} items`}function t$(n){let e=new Set;for(let t of n)(typeof t=="string"||typeof t=="number")&&e.add(String(t));return e}function n$(n){if(xs.call(n,"strict")){let e=n.strict;if(typeof e!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(e)return t=>{let s=`Object can not safely be stringified. Received type ${typeof t}`;throw typeof t!="function"&&(s+=` (${t.toString()})`),new Error(s)}}}function Pl(n){n={...n};let e=n$(n);e&&(n.bigint===void 0&&(n.bigint=!1),"circularValue"in n||(n.circularValue=Error));let t=Qk(n),s=e$(n,"bigint"),r=Zk(n),i=typeof r=="function"?r:void 0,o=Hm(n,"maximumDepth"),a=Hm(n,"maximumBreadth");function l(m,p,g,S,w,$){let k=p[m];switch(typeof k=="object"&&k!==null&&typeof k.toJSON=="function"&&(k=k.toJSON(m)),k=S.call(p,m,k),typeof k){case"string":return qt(k);case"object":{if(k===null)return"null";if(g.indexOf(k)!==-1)return t;let y="",v=",",b=$;if(Array.isArray(k)){if(k.length===0)return"[]";if(o<g.length+1)return'"[Array]"';g.push(k),w!==""&&($+=w,y+=`
846
- ${$}`,v=`,
847
- ${$}`);let F=Math.min(k.length,a),H=0;for(;H<F-1;H++){let E=l(String(H),k,g,S,w,$);y+=E!==void 0?E:"null",y+=v}let W=l(String(H),k,g,S,w,$);if(y+=W!==void 0?W:"null",k.length-1>a){let E=k.length-a-1;y+=`${v}"... ${un(E)} not stringified"`}return w!==""&&(y+=`
848
- ${b}`),g.pop(),`[${y}]`}let x=Object.keys(k),_=x.length;if(_===0)return"{}";if(o<g.length+1)return'"[Object]"';let T="",P="";w!==""&&($+=w,v=`,
849
- ${$}`,T=" ");let C=Math.min(_,a);r&&!Ol(k)&&(x=Rl(x,i)),g.push(k);for(let F=0;F<C;F++){let H=x[F],W=l(H,k,g,S,w,$);W!==void 0&&(y+=`${P}${qt(H)}:${T}${W}`,P=v)}if(_>a){let F=_-a;y+=`${P}"...":${T}"${un(F)} not stringified"`,P=v}return w!==""&&P.length>1&&(y=`
846
+ caused by: `+Xp(s,e)):t},fS=n=>Xp(n,new Set),Qp=(n,e,t)=>{if(!bs(n))return"";let s=t?"":n.message||"";if(e.has(n))return s+": ...";let r=Wa(n);if(r){e.add(n);let i=typeof n.cause=="function";return s+(i?"":": ")+Qp(r,e,i)}else return s},pS=n=>Qp(n,new Set);Zp.exports={isErrorLike:bs,getErrorCause:Wa,stackWithCauses:fS,messageWithCauses:pS}});var Va=N((nR,th)=>{"use strict";var hS=Symbol("circular-ref-tag"),Tr=Symbol("pino-raw-err-ref"),eh=Object.create({},{type:{enumerable:!0,writable:!0,value:void 0},message:{enumerable:!0,writable:!0,value:void 0},stack:{enumerable:!0,writable:!0,value:void 0},aggregateErrors:{enumerable:!0,writable:!0,value:void 0},raw:{enumerable:!1,get:function(){return this[Tr]},set:function(n){this[Tr]=n}}});Object.defineProperty(eh,Tr,{writable:!0,value:{}});th.exports={pinoErrProto:eh,pinoErrorSymbols:{seen:hS,rawSymbol:Tr}}});var rh=N((sR,sh)=>{"use strict";sh.exports=Ya;var{messageWithCauses:mS,stackWithCauses:gS,isErrorLike:nh}=Ga(),{pinoErrProto:yS,pinoErrorSymbols:bS}=Va(),{seen:za}=bS,{toString:vS}=Object.prototype;function Ya(n){if(!nh(n))return n;n[za]=void 0;let e=Object.create(yS);e.type=vS.call(n.constructor)==="[object Function]"?n.constructor.name:n.name,e.message=mS(n),e.stack=gS(n),Array.isArray(n.errors)&&(e.aggregateErrors=n.errors.map(t=>Ya(t)));for(let t in n)if(e[t]===void 0){let s=n[t];nh(s)?t!=="cause"&&!Object.prototype.hasOwnProperty.call(s,za)&&(e[t]=Ya(s)):e[t]=s}return delete n[za],e.raw=n,e}});var oh=N((rR,ih)=>{"use strict";ih.exports=Or;var{isErrorLike:Ja}=Ga(),{pinoErrProto:wS,pinoErrorSymbols:xS}=Va(),{seen:Rr}=xS,{toString:SS}=Object.prototype;function Or(n){if(!Ja(n))return n;n[Rr]=void 0;let e=Object.create(wS);e.type=SS.call(n.constructor)==="[object Function]"?n.constructor.name:n.name,e.message=n.message,e.stack=n.stack,Array.isArray(n.errors)&&(e.aggregateErrors=n.errors.map(t=>Or(t))),Ja(n.cause)&&!Object.prototype.hasOwnProperty.call(n.cause,Rr)&&(e.cause=Or(n.cause));for(let t in n)if(e[t]===void 0){let s=n[t];Ja(s)?Object.prototype.hasOwnProperty.call(s,Rr)||(e[t]=Or(s)):e[t]=s}return delete n[Rr],e.raw=n,e}});var uh=N((iR,ch)=>{"use strict";ch.exports={mapHttpRequest:_S,reqSerializer:lh};var Xa=Symbol("pino-raw-req-ref"),ah=Object.create({},{id:{enumerable:!0,writable:!0,value:""},method:{enumerable:!0,writable:!0,value:""},url:{enumerable:!0,writable:!0,value:""},query:{enumerable:!0,writable:!0,value:""},params:{enumerable:!0,writable:!0,value:""},headers:{enumerable:!0,writable:!0,value:{}},remoteAddress:{enumerable:!0,writable:!0,value:""},remotePort:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[Xa]},set:function(n){this[Xa]=n}}});Object.defineProperty(ah,Xa,{writable:!0,value:{}});function lh(n){let e=n.info||n.socket,t=Object.create(ah);if(t.id=typeof n.id=="function"?n.id():n.id||(n.info?n.info.id:void 0),t.method=n.method,n.originalUrl)t.url=n.originalUrl;else{let s=n.path;t.url=typeof s=="string"?s:n.url?n.url.path||n.url:void 0}return n.query&&(t.query=n.query),n.params&&(t.params=n.params),t.headers=n.headers,t.remoteAddress=e&&e.remoteAddress,t.remotePort=e&&e.remotePort,t.raw=n.raw||n,t}function _S(n){return{req:lh(n)}}});var hh=N((oR,ph)=>{"use strict";ph.exports={mapHttpResponse:AS,resSerializer:fh};var Qa=Symbol("pino-raw-res-ref"),dh=Object.create({},{statusCode:{enumerable:!0,writable:!0,value:0},headers:{enumerable:!0,writable:!0,value:""},raw:{enumerable:!1,get:function(){return this[Qa]},set:function(n){this[Qa]=n}}});Object.defineProperty(dh,Qa,{writable:!0,value:{}});function fh(n){let e=Object.create(dh);return e.statusCode=n.headersSent?n.statusCode:null,e.headers=n.getHeaders?n.getHeaders():n._headers,e.raw=n,e}function AS(n){return{res:fh(n)}}});var el=N((aR,mh)=>{"use strict";var Za=rh(),kS=oh(),Pr=uh(),Mr=hh();mh.exports={err:Za,errWithCause:kS,mapHttpRequest:Pr.mapHttpRequest,mapHttpResponse:Mr.mapHttpResponse,req:Pr.reqSerializer,res:Mr.resSerializer,wrapErrorSerializer:function(e){return e===Za?e:function(s){return e(Za(s))}},wrapRequestSerializer:function(e){return e===Pr.reqSerializer?e:function(s){return e(Pr.reqSerializer(s))}},wrapResponseSerializer:function(e){return e===Mr.resSerializer?e:function(s){return e(Mr.resSerializer(s))}}}});var tl=N((lR,gh)=>{"use strict";function $S(n,e){return e}gh.exports=function(){let e=Error.prepareStackTrace;Error.prepareStackTrace=$S;let t=new Error().stack;if(Error.prepareStackTrace=e,!Array.isArray(t))return;let s=t.slice(2),r=[];for(let i of s)i&&r.push(i.getFileName());return r}});var Sh=N((cR,xh)=>{"use strict";function nl(n){if(n===null||typeof n!="object")return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof Array){let e=[];for(let t=0;t<n.length;t++)e[t]=nl(n[t]);return e}if(typeof n=="object"){let e=Object.create(Object.getPrototypeOf(n));for(let t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=nl(n[t]));return e}return n}function yh(n){let e=[],t="",s=!1,r=!1,i="";for(let o=0;o<n.length;o++){let a=n[o];!s&&a==="."?t&&(e.push(t),t=""):a==="["?(t&&(e.push(t),t=""),s=!0):a==="]"&&s?(e.push(t),t="",s=!1,r=!1):(a==='"'||a==="'")&&s?r?a===i?(r=!1,i=""):t+=a:(r=!0,i=a):t+=a}return t&&e.push(t),e}function bh(n,e,t){let s=n;for(let i=0;i<e.length-1;i++){let o=e[i];if(typeof s!="object"||s===null||!(o in s)||typeof s[o]!="object"||s[o]===null)return!1;s=s[o]}let r=e[e.length-1];if(r==="*"){if(Array.isArray(s))for(let i=0;i<s.length;i++)s[i]=t;else if(typeof s=="object"&&s!==null)for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&(s[i]=t)}else typeof s=="object"&&s!==null&&r in s&&Object.prototype.hasOwnProperty.call(s,r)&&(s[r]=t);return!0}function vh(n,e){let t=n;for(let r=0;r<e.length-1;r++){let i=e[r];if(typeof t!="object"||t===null||!(i in t)||typeof t[i]!="object"||t[i]===null)return!1;t=t[i]}let s=e[e.length-1];if(s==="*"){if(Array.isArray(t))for(let r=0;r<t.length;r++)t[r]=void 0;else if(typeof t=="object"&&t!==null)for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&delete t[r]}else typeof t=="object"&&t!==null&&s in t&&Object.prototype.hasOwnProperty.call(t,s)&&delete t[s];return!0}var Ir=Symbol("PATH_NOT_FOUND");function CS(n,e){let t=n;for(let s of e){if(t==null||typeof t!="object"||t===null||!(s in t))return Ir;t=t[s]}return t}function ES(n,e){let t=n;for(let s of e){if(t==null||typeof t!="object"||t===null)return;t=t[s]}return t}function TS(n,e,t,s=!1){for(let r of e){let i=yh(r);if(i.includes("*"))wh(n,i,t,r,s);else if(s)vh(n,i);else{let o=CS(n,i);if(o===Ir)continue;let a=typeof t=="function"?t(o,i):t;bh(n,i,a)}}}function wh(n,e,t,s,r=!1){let i=e.indexOf("*");if(i===e.length-1){let o=e.slice(0,-1),a=n;for(let l of o){if(a==null||typeof a!="object"||a===null)return;a=a[l]}if(Array.isArray(a))if(r)for(let l=0;l<a.length;l++)a[l]=void 0;else for(let l=0;l<a.length;l++){let u=[...o,l.toString()],d=typeof t=="function"?t(a[l],u):t;a[l]=d}else if(typeof a=="object"&&a!==null)if(r){let l=[];for(let u in a)Object.prototype.hasOwnProperty.call(a,u)&&l.push(u);for(let u of l)delete a[u]}else for(let l in a){let u=[...o,l],d=typeof t=="function"?t(a[l],u):t;a[l]=d}}else RS(n,e,t,i,s,r)}function RS(n,e,t,s,r,i=!1){let o=e.slice(0,s),a=e.slice(s+1),l=[];function u(d,f){if(f===o.length){if(Array.isArray(d))for(let h=0;h<d.length;h++)l[f]=h.toString(),u(d[h],f+1);else if(typeof d=="object"&&d!==null)for(let h in d)l[f]=h,u(d[h],f+1)}else if(f<o.length){let h=o[f];d&&typeof d=="object"&&d!==null&&h in d&&(l[f]=h,u(d[h],f+1))}else if(a.includes("*"))wh(d,a,typeof t=="function"?(m,p)=>{let g=[...l.slice(0,f),...p];return t(m,g)}:t,r,i);else if(i)vh(d,a);else{let h=typeof t=="function"?t(ES(d,a),[...l.slice(0,f),...a]):t;bh(d,a,h)}}if(o.length===0)u(n,0);else{let d=n;for(let f=0;f<o.length;f++){let h=o[f];if(d==null||typeof d!="object"||d===null)return;d=d[h],l[f]=h}d!=null&&u(d,o.length)}}function OS(n){if(n.length===0)return null;let e=new Map;for(let t of n){let s=yh(t),r=e;for(let i=0;i<s.length;i++){let o=s[i];r.has(o)||r.set(o,new Map),r=r.get(o)}}return e}function PS(n,e){if(!e)return n;function t(s,r,i=0){if(!r||r.size===0||s===null||typeof s!="object")return s;if(s instanceof Date)return new Date(s.getTime());if(Array.isArray(s)){let a=[];for(let l=0;l<s.length;l++){let u=l.toString();r.has(u)||r.has("*")?a[l]=t(s[l],r.get(u)||r.get("*")):a[l]=s[l]}return a}let o=Object.create(Object.getPrototypeOf(s));for(let a in s)Object.prototype.hasOwnProperty.call(s,a)&&(r.has(a)||r.has("*")?o[a]=t(s[a],r.get(a)||r.get("*")):o[a]=s[a]);return o}return t(n,e)}function MS(n){if(typeof n!="string")throw new Error("Paths must be (non-empty) strings");if(n==="")throw new Error("Invalid redaction path ()");if(n.includes(".."))throw new Error(`Invalid redaction path (${n})`);if(n.includes(","))throw new Error(`Invalid redaction path (${n})`);let e=0,t=!1,s="";for(let r=0;r<n.length;r++){let i=n[r];if((i==='"'||i==="'")&&e>0)t?i===s&&(t=!1,s=""):(t=!0,s=i);else if(i==="["&&!t)e++;else if(i==="]"&&!t&&(e--,e<0))throw new Error(`Invalid redaction path (${n})`)}if(e!==0)throw new Error(`Invalid redaction path (${n})`)}function IS(n){if(!Array.isArray(n))throw new TypeError("paths must be an array");for(let e of n)MS(e)}function DS(n={}){let{paths:e=[],censor:t="[REDACTED]",serialize:s=JSON.stringify,strict:r=!0,remove:i=!1}=n;IS(e);let o=OS(e);return function(l){if(r&&(l===null||typeof l!="object")&&(l==null||typeof l!="object"))return s?s(l):l;let u=PS(l,o),d=l,f=t;return typeof t=="function"&&(f=t),TS(u,e,f,i),s===!1?(u.restore=function(){return nl(d)},u):typeof s=="function"?s(u):JSON.stringify(u)}}xh.exports=DS});var Pn=N((uR,_h)=>{"use strict";var LS=Symbol("pino.setLevel"),FS=Symbol("pino.getLevel"),NS=Symbol("pino.levelVal"),jS=Symbol("pino.levelComp"),HS=Symbol("pino.useLevelLabels"),BS=Symbol("pino.useOnlyCustomLevels"),US=Symbol("pino.mixin"),qS=Symbol("pino.lsCache"),KS=Symbol("pino.chindings"),WS=Symbol("pino.asJson"),GS=Symbol("pino.write"),VS=Symbol("pino.redactFmt"),zS=Symbol("pino.time"),YS=Symbol("pino.timeSliceIndex"),JS=Symbol("pino.stream"),XS=Symbol("pino.stringify"),QS=Symbol("pino.stringifySafe"),ZS=Symbol("pino.stringifiers"),e_=Symbol("pino.end"),t_=Symbol("pino.formatOpts"),n_=Symbol("pino.messageKey"),s_=Symbol("pino.errorKey"),r_=Symbol("pino.nestedKey"),i_=Symbol("pino.nestedKeyStr"),o_=Symbol("pino.mixinMergeStrategy"),a_=Symbol("pino.msgPrefix"),l_=Symbol("pino.wildcardFirst"),c_=Symbol.for("pino.serializers"),u_=Symbol.for("pino.formatters"),d_=Symbol.for("pino.hooks"),f_=Symbol.for("pino.metadata");_h.exports={setLevelSym:LS,getLevelSym:FS,levelValSym:NS,levelCompSym:jS,useLevelLabelsSym:HS,mixinSym:US,lsCacheSym:qS,chindingsSym:KS,asJsonSym:WS,writeSym:GS,serializersSym:c_,redactFmtSym:VS,timeSym:zS,timeSliceIndexSym:YS,streamSym:JS,stringifySym:XS,stringifySafeSym:QS,stringifiersSym:ZS,endSym:e_,formatOptsSym:t_,messageKeySym:n_,errorKeySym:s_,nestedKeySym:r_,wildcardFirstSym:l_,needsMetadataGsym:f_,useOnlyCustomLevelsSym:BS,formattersSym:u_,hooksSym:d_,nestedKeyStrSym:i_,mixinMergeStrategySym:o_,msgPrefixSym:a_}});var rl=N((dR,Ch)=>{"use strict";var Ah=Sh(),{redactFmtSym:p_,wildcardFirstSym:Dr}=Pn(),sl=/[^.[\]]+|\[([^[\]]*?)\]/g,kh="[Redacted]",$h=!1;function h_(n,e){let{paths:t,censor:s,remove:r}=m_(n),i=t.reduce((l,u)=>{sl.lastIndex=0;let d=sl.exec(u),f=sl.exec(u),h=d[1]!==void 0?d[1].replace(/^(?:"|'|`)(.*)(?:"|'|`)$/,"$1"):d[0];if(h==="*"&&(h=Dr),f===null)return l[h]=null,l;if(l[h]===null)return l;let{index:m}=f,p=`${u.substr(m,u.length-1)}`;return l[h]=l[h]||[],h!==Dr&&l[h].length===0&&l[h].push(...l[Dr]||[]),h===Dr&&Object.keys(l).forEach(function(g){l[g]&&l[g].push(p)}),l[h].push(p),l},{}),o={[p_]:Ah({paths:t,censor:s,serialize:e,strict:$h,remove:r})},a=(...l)=>e(typeof s=="function"?s(...l):s);return[...Object.keys(i),...Object.getOwnPropertySymbols(i)].reduce((l,u)=>{if(i[u]===null)l[u]=d=>a(d,[u]);else{let d=typeof s=="function"?(f,h)=>s(f,[u,...h]):s;l[u]=Ah({paths:i[u],censor:d,serialize:e,strict:$h,remove:r})}return l},o)}function m_(n){if(Array.isArray(n))return n={paths:n,censor:kh},n;let{paths:e,censor:t=kh,remove:s}=n;if(Array.isArray(e)===!1)throw Error("pino \u2013 redact must contain an array of strings");return s===!0&&(t=void 0),{paths:e,censor:t,remove:s}}Ch.exports=h_});var Rh=N((fR,Th)=>{"use strict";var g_=()=>"",y_=()=>`,"time":${Date.now()}`,b_=()=>`,"time":${Math.round(Date.now()/1e3)}`,v_=()=>`,"time":"${new Date(Date.now()).toISOString()}"`,w_=1000000n,Eh=1000000000n,x_=BigInt(Date.now())*w_,S_=process.hrtime.bigint(),__=()=>{let n=process.hrtime.bigint()-S_,e=x_+n,t=e/Eh,s=e%Eh,r=Number(t*1000n+s/1000000n),i=new Date(r),o=i.getUTCFullYear(),a=(i.getUTCMonth()+1).toString().padStart(2,"0"),l=i.getUTCDate().toString().padStart(2,"0"),u=i.getUTCHours().toString().padStart(2,"0"),d=i.getUTCMinutes().toString().padStart(2,"0"),f=i.getUTCSeconds().toString().padStart(2,"0");return`,"time":"${o}-${a}-${l}T${u}:${d}:${f}.${s.toString().padStart(9,"0")}Z"`};Th.exports={nullTime:g_,epochTime:y_,unixTime:b_,isoTime:v_,isoTimeNano:__}});var Ph=N((pR,Oh)=>{"use strict";function A_(n){try{return JSON.stringify(n)}catch{return'"[Circular]"'}}Oh.exports=k_;function k_(n,e,t){var s=t&&t.stringify||A_,r=1;if(typeof n=="object"&&n!==null){var i=e.length+r;if(i===1)return n;var o=new Array(i);o[0]=s(n);for(var a=1;a<i;a++)o[a]=s(e[a]);return o.join(" ")}if(typeof n!="string")return n;var l=e.length;if(l===0)return n;for(var u="",d=1-r,f=-1,h=n&&n.length||0,m=0;m<h;){if(n.charCodeAt(m)===37&&m+1<h){switch(f=f>-1?f:0,n.charCodeAt(m+1)){case 100:case 102:if(d>=l||e[d]==null)break;f<m&&(u+=n.slice(f,m)),u+=Number(e[d]),f=m+2,m++;break;case 105:if(d>=l||e[d]==null)break;f<m&&(u+=n.slice(f,m)),u+=Math.floor(Number(e[d])),f=m+2,m++;break;case 79:case 111:case 106:if(d>=l||e[d]===void 0)break;f<m&&(u+=n.slice(f,m));var p=typeof e[d];if(p==="string"){u+="'"+e[d]+"'",f=m+2,m++;break}if(p==="function"){u+=e[d].name||"<anonymous>",f=m+2,m++;break}u+=s(e[d]),f=m+2,m++;break;case 115:if(d>=l)break;f<m&&(u+=n.slice(f,m)),u+=String(e[d]),f=m+2,m++;break;case 37:f<m&&(u+=n.slice(f,m)),u+="%",f=m+2,m++,d--;break}++d}++m}return f===-1?n:(f<h&&(u+=n.slice(f)),u)}});var ol=N((hR,il)=>{"use strict";if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let e=function(t){if((t>0&&t<1/0)===!1)throw typeof t!="number"&&typeof t!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");Atomics.wait(n,0,0,Number(t))},n=new Int32Array(new SharedArrayBuffer(4));il.exports=e}else{let n=function(e){if((e>0&&e<1/0)===!1)throw typeof e!="number"&&typeof e!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");let s=Date.now()+Number(e);for(;s>Date.now(););};il.exports=n}});var Hh=N((mR,jh)=>{"use strict";var ce=require("fs"),$_=require("events"),C_=require("util").inherits,Mh=require("path"),ll=ol(),E_=require("assert"),Lr=100,Fr=Buffer.allocUnsafe(0),T_=16*1024,Ih="buffer",Dh="utf8",[R_,O_]=(process.versions.node||"0.0").split(".").map(Number),P_=R_>=22&&O_>=7;function Lh(n,e){e._opening=!0,e._writing=!0,e._asyncDrainScheduled=!1;function t(i,o){if(i){e._reopening=!1,e._writing=!1,e._opening=!1,e.sync?process.nextTick(()=>{e.listenerCount("error")>0&&e.emit("error",i)}):e.emit("error",i);return}let a=e._reopening;e.fd=o,e.file=n,e._reopening=!1,e._opening=!1,e._writing=!1,e.sync?process.nextTick(()=>e.emit("ready")):e.emit("ready"),!e.destroyed&&(!e._writing&&e._len>e.minLength||e._flushPending?e._actualWrite():a&&process.nextTick(()=>e.emit("drain")))}let s=e.append?"a":"w",r=e.mode;if(e.sync)try{e.mkdir&&ce.mkdirSync(Mh.dirname(n),{recursive:!0});let i=ce.openSync(n,s,r);t(null,i)}catch(i){throw t(i),i}else e.mkdir?ce.mkdir(Mh.dirname(n),{recursive:!0},i=>{if(i)return t(i);ce.open(n,s,r,t)}):ce.open(n,s,r,t)}function st(n){if(!(this instanceof st))return new st(n);let{fd:e,dest:t,minLength:s,maxLength:r,maxWrite:i,periodicFlush:o,sync:a,append:l=!0,mkdir:u,retryEAGAIN:d,fsync:f,contentMode:h,mode:m}=n||{};e=e||t,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(s||0,16387),this.file=null,this.destroyed=!1,this.minLength=s||0,this.maxLength=r||0,this.maxWrite=i||T_,this._periodicFlush=o||0,this._periodicFlushTimer=void 0,this.sync=a||!1,this.writable=!0,this._fsync=f||!1,this.append=l||!1,this.mode=m,this.retryEAGAIN=d||(()=>!0),this.mkdir=u||!1;let p,g;if(h===Ih)this._writingBuf=Fr,this.write=D_,this.flush=F_,this.flushSync=j_,this._actualWrite=B_,p=()=>ce.writeSync(this.fd,this._writingBuf),g=()=>ce.write(this.fd,this._writingBuf,this.release);else if(h===void 0||h===Dh)this._writingBuf="",this.write=I_,this.flush=L_,this.flushSync=N_,this._actualWrite=H_,p=()=>Buffer.isBuffer(this._writingBuf)?ce.writeSync(this.fd,this._writingBuf):ce.writeSync(this.fd,this._writingBuf,"utf8"),g=()=>Buffer.isBuffer(this._writingBuf)?ce.write(this.fd,this._writingBuf,this.release):ce.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${Dh}" and "${Ih}", but passed ${h}`);if(typeof e=="number")this.fd=e,process.nextTick(()=>this.emit("ready"));else if(typeof e=="string")Lh(e,this);else throw new Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw new Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);this.release=(S,x)=>{if(S){if((S.code==="EAGAIN"||S.code==="EBUSY")&&this.retryEAGAIN(S,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{ll(Lr),this.release(void 0,0)}catch(y){this.release(y)}else setTimeout(g,Lr);else this._writing=!1,this.emit("error",S);return}this.emit("write",x);let $=al(this._writingBuf,this._len,x);if(this._len=$.len,this._writingBuf=$.writingBuf,this._writingBuf.length){if(!this.sync){g();return}try{do{let y=p(),b=al(this._writingBuf,this._len,y);this._len=b.len,this._writingBuf=b.writingBuf}while(this._writingBuf.length)}catch(y){this.release(y);return}}this._fsync&&ce.fsyncSync(this.fd);let k=this._len;this._reopening?(this._writing=!1,this._reopening=!1,this.reopen()):k>this.minLength?this._actualWrite():this._ending?k>0?this._actualWrite():(this._writing=!1,Nr(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(M_,this)):this.emit("drain"))},this.on("newListener",function(S){S==="drain"&&(this._asyncDrainScheduled=!1)}),this._periodicFlush!==0&&(this._periodicFlushTimer=setInterval(()=>this.flush(null),this._periodicFlush),this._periodicFlushTimer.unref())}function al(n,e,t){return typeof n=="string"&&(n=Buffer.from(n)),e=Math.max(e-t,0),n=n.subarray(t),{writingBuf:n,len:e}}function M_(n){n.listenerCount("drain")>0&&(n._asyncDrainScheduled=!1,n.emit("drain"))}C_(st,$_);function Fh(n,e){return n.length===0?Fr:n.length===1?n[0]:Buffer.concat(n,e)}function I_(n){if(this.destroyed)throw new Error("SonicBoom destroyed");n=""+n;let e=Buffer.byteLength(n),t=this._len+e,s=this._bufs;return this.maxLength&&t>this.maxLength?(this.emit("drop",n),this._len<this._hwm):(s.length===0||Buffer.byteLength(s[s.length-1])+e>this.maxWrite?s.push(n):s[s.length-1]+=n,this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len<this._hwm)}function D_(n){if(this.destroyed)throw new Error("SonicBoom destroyed");let e=this._len+n.length,t=this._bufs,s=this._lens;return this.maxLength&&e>this.maxLength?(this.emit("drop",n),this._len<this._hwm):(t.length===0||s[s.length-1]+n.length>this.maxWrite?(t.push([n]),s.push(n.length)):(t[t.length-1].push(n),s[s.length-1]+=n.length),this._len=e,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len<this._hwm)}function Nh(n){this._flushPending=!0;let e=()=>{if(this._fsync)this._flushPending=!1,n();else try{ce.fsync(this.fd,s=>{this._flushPending=!1,n(s)})}catch(s){n(s)}this.off("error",t)},t=s=>{this._flushPending=!1,n(s),this.off("drain",e)};this.once("drain",e),this.once("error",t)}function L_(n){if(n!=null&&typeof n!="function")throw new Error("flush cb must be a function");if(this.destroyed){let e=new Error("SonicBoom destroyed");if(n){n(e);return}throw e}if(this.minLength<=0){n?.();return}n&&Nh.call(this,n),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function F_(n){if(n!=null&&typeof n!="function")throw new Error("flush cb must be a function");if(this.destroyed){let e=new Error("SonicBoom destroyed");if(n){n(e);return}throw e}if(this.minLength<=0){n?.();return}n&&Nh.call(this,n),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}st.prototype.reopen=function(n){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen(n)});return}if(this._ending)return;if(!this.file)throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if(n&&(this.file=n),this._reopening=!0,this._writing)return;let e=this.fd;this.once("ready",()=>{e!==this.fd&&ce.close(e,t=>{if(t)return this.emit("error",t)})}),Lh(this.file,this)};st.prototype.end=function(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}this._ending||(this._ending=!0,!this._writing&&(this._len>0&&this.fd>=0?this._actualWrite():Nr(this)))};function N_(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift(this._writingBuf),this._writingBuf="");let n="";for(;this._bufs.length||n.length;){n.length<=0&&(n=this._bufs[0]);try{let e=Buffer.isBuffer(n)?ce.writeSync(this.fd,n):ce.writeSync(this.fd,n,"utf8"),t=al(n,this._len,e);n=t.writingBuf,this._len=t.len,n.length<=0&&this._bufs.shift()}catch(e){if((e.code==="EAGAIN"||e.code==="EBUSY")&&!this.retryEAGAIN(e,n.length,this._len-n.length))throw e;ll(Lr)}}try{ce.fsyncSync(this.fd)}catch{}}function j_(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift([this._writingBuf]),this._writingBuf=Fr);let n=Fr;for(;this._bufs.length||n.length;){n.length<=0&&(n=Fh(this._bufs[0],this._lens[0]));try{let e=ce.writeSync(this.fd,n);n=n.subarray(e),this._len=Math.max(this._len-e,0),n.length<=0&&(this._bufs.shift(),this._lens.shift())}catch(e){if((e.code==="EAGAIN"||e.code==="EBUSY")&&!this.retryEAGAIN(e,n.length,this._len-n.length))throw e;ll(Lr)}}}st.prototype.destroy=function(){this.destroyed||Nr(this)};function H_(){let n=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:this._bufs.shift()||"",this.sync)try{let e=Buffer.isBuffer(this._writingBuf)?ce.writeSync(this.fd,this._writingBuf):ce.writeSync(this.fd,this._writingBuf,"utf8");n(null,e)}catch(e){n(e)}else ce.write(this.fd,this._writingBuf,n)}function B_(){let n=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:Fh(this._bufs.shift(),this._lens.shift()),this.sync)try{let e=ce.writeSync(this.fd,this._writingBuf);n(null,e)}catch(e){n(e)}else P_&&(this._writingBuf=Buffer.from(this._writingBuf)),ce.write(this.fd,this._writingBuf,n)}function Nr(n){if(n.fd===-1){n.once("ready",Nr.bind(null,n));return}n._periodicFlushTimer!==void 0&&clearInterval(n._periodicFlushTimer),n.destroyed=!0,n._bufs=[],n._lens=[],E_(typeof n.fd=="number",`sonic.fd must be a number, got ${typeof n.fd}`);try{ce.fsync(n.fd,e)}catch{}function e(){n.fd!==1&&n.fd!==2?ce.close(n.fd,t):t()}function t(s){if(s){n.emit("error",s);return}n._ending&&!n._writing&&n.emit("finish"),n.emit("close")}}st.SonicBoom=st;st.default=st;jh.exports=st});var cl=N((gR,Wh)=>{"use strict";var rt={exit:[],beforeExit:[]},Bh={exit:K_,beforeExit:W_},Mn;function U_(){Mn===void 0&&(Mn=new FinalizationRegistry(G_))}function q_(n){rt[n].length>0||process.on(n,Bh[n])}function Uh(n){rt[n].length>0||(process.removeListener(n,Bh[n]),rt.exit.length===0&&rt.beforeExit.length===0&&(Mn=void 0))}function K_(){qh("exit")}function W_(){qh("beforeExit")}function qh(n){for(let e of rt[n]){let t=e.deref(),s=e.fn;t!==void 0&&s(t,n)}rt[n]=[]}function G_(n){for(let e of["exit","beforeExit"]){let t=rt[e].indexOf(n);rt[e].splice(t,t+1),Uh(e)}}function Kh(n,e,t){if(e===void 0)throw new Error("the object can't be undefined");q_(n);let s=new WeakRef(e);s.fn=t,U_(),Mn.register(e,s),rt[n].push(s)}function V_(n,e){Kh("exit",n,e)}function z_(n,e){Kh("beforeExit",n,e)}function Y_(n){if(Mn!==void 0){Mn.unregister(n);for(let e of["exit","beforeExit"])rt[e]=rt[e].filter(t=>{let s=t.deref();return s&&s!==n}),Uh(e)}}Wh.exports={register:V_,registerBeforeExit:z_,unregister:Y_}});var Gh=N((yR,J_)=>{J_.exports={name:"thread-stream",version:"4.2.0",description:"A streaming way to send data to a Node.js Worker Thread",main:"index.js",types:"index.d.ts",engines:{node:">=20"},dependencies:{"real-require":"^1.0.0"},devDependencies:{"@types/node":"^25.0.2","@yao-pkg/pkg":"^6.0.0",borp:"^1.0.0",desm:"^1.3.0",eslint:"^9.39.1",fastbench:"^1.0.1",neostandard:"^0.13.0","pino-elasticsearch":"^9.0.0","sonic-boom":"^5.0.0","ts-node":"^10.8.0",typescript:"~5.7.3"},scripts:{build:"tsc --noEmit",lint:"eslint",test:'npm run lint && npm run build && npm run transpile && borp --pattern "test/*.test.{js,mjs}"',"test:ci":'npm run lint && npm run transpile && borp --pattern "test/*.test.{js,mjs}"',"test:yarn":'npm run transpile && borp --pattern "test/*.test.js"',transpile:"sh ./test/ts/transpile.sh"},repository:{type:"git",url:"git+https://github.com/mcollina/thread-stream.git"},keywords:["worker","thread","threads","stream"],author:"Matteo Collina <hello@matteocollina.com>",license:"MIT",bugs:{url:"https://github.com/mcollina/thread-stream/issues"},homepage:"https://github.com/mcollina/thread-stream#readme"}});var zh=N((bR,Vh)=>{"use strict";function X_(n,e,t,s,r){let i=s===1/0?1/0:Date.now()+s,o=()=>{let a=Atomics.load(n,e);if(a===t){r(null,"ok");return}if(i!==1/0&&Date.now()>i){r(null,"timed-out");return}let l=i===1/0?1e4:Math.min(1e4,Math.max(1,i-Date.now())),u=Atomics.waitAsync(n,e,a,l);u.async?u.value.then(o):setImmediate(o)};o()}function Q_(n,e,t,s,r){let i=s===1/0?1/0:Date.now()+s,o=()=>{if(Atomics.load(n,e)!==t){r(null,"ok");return}if(i!==1/0&&Date.now()>i){r(null,"timed-out");return}let l=i===1/0?1e4:Math.min(1e4,Math.max(1,i-Date.now())),u=Atomics.waitAsync(n,e,t,l);u.async?u.value.then(d=>{if(d==="ok"){r(null,"ok");return}o()}):setImmediate(o)};o()}Vh.exports={wait:X_,waitDiff:Q_}});var Jh=N((vR,Yh)=>{"use strict";Yh.exports={WRITE_INDEX:4,READ_INDEX:8,SEQ_INDEX:2}});var lm=N((wR,am)=>{"use strict";var{version:Z_}=Gh(),{EventEmitter:eA}=require("events"),{Worker:tA}=require("worker_threads"),{join:nA}=require("path"),{pathToFileURL:sA}=require("url"),{wait:rA}=zh(),{WRITE_INDEX:Mt,READ_INDEX:an,SEQ_INDEX:ul}=Jh(),iA=require("buffer"),oA=require("assert"),R=Symbol("kImpl"),aA=iA.constants.MAX_STRING_LENGTH;function Xh(){}function hl(n,e){Atomics.add(n[R].state,ul,1),e(),Atomics.add(n[R].state,ul,1),Atomics.notify(n[R].state,ul)}function Qh(n){hl(n,()=>{Atomics.store(n[R].state,an,0),Atomics.store(n[R].state,Mt,0)})}var vs=class{constructor(e){this._value=e}deref(){return this._value}},jr=class{register(){}unregister(){}},lA=process.env.NODE_V8_COVERAGE?jr:global.FinalizationRegistry||jr,cA=process.env.NODE_V8_COVERAGE?vs:global.WeakRef||vs,Zh=new lA(n=>{n.exited||n.terminate()});function uA(n,e){let{filename:t,workerData:s}=e,i=("__bundlerPathsOverrides"in globalThis?globalThis.__bundlerPathsOverrides:{})["thread-stream-worker"]||nA(__dirname,"lib","worker.js"),o=new tA(i,{...e.workerOpts,name:e.workerOpts?.name||"thread-stream",trackUnmanagedFds:!1,workerData:{filename:t.indexOf("file://")===0?t:sA(t).href,dataBuf:n[R].dataBuf,stateBuf:n[R].stateBuf,workerData:{$context:{threadStreamVersion:Z_},...s}}});return o.stream=new vs(n),o.on("message",dA),o.on("exit",nm),Zh.register(n,o),o}function em(n){oA(!n[R].sync),n[R].needDrain&&(n[R].needDrain=!1,n.emit("drain"))}function tm(n){for(;;){let e=Atomics.load(n[R].state,Mt),t=n[R].data.length-e;if(t>0){if(n[R].bufLen===0){n[R].flushing=!1,n[R].ending?ml(n):n[R].needDrain&&process.nextTick(em,n);return}im(n,t,Xh);continue}if(t===0){if(e===0&&n[R].bufLen===0)return;Hr(n,()=>{n.destroyed||(Qh(n),tm(n))});return}Je(n,new Error("overwritten"));return}}function dA(n){let e=this.stream.deref();if(e===void 0){this.exited=!0,this.terminate();return}if(n?.code!=null)switch(n.code){case"READY":this.stream=new cA(e),Hr(e,()=>{e[R].ready=!0,e.emit("ready")});break;case"ERROR":Je(e,n.err);break;case"EVENT":Array.isArray(n.args)?e.emit(n.name,...n.args):e.emit(n.name,n.args);break;case"FLUSHED":{if(n.context!=="thread-stream"){Je(e,new Error("this should not happen: "+n.code));break}let t=e[R].flushCallbacks.get(n.id);t&&(e[R].flushCallbacks.delete(n.id),process.nextTick(t));break}case"WARNING":process.emitWarning(n.err);break;default:Je(e,new Error("this should not happen: "+n.code))}}function nm(n){let e=this.stream.deref();e!==void 0&&(Zh.unregister(e),e.worker.exited=!0,e.worker.off("exit",nm),Je(e,n!==0?new Error("the worker thread exited"):null))}var fl=class extends eA{constructor(e={}){if(super(),e.bufferSize<4)throw new Error("bufferSize must at least fit a 4-byte utf-8 char");this[R]={},this[R].stateBuf=new SharedArrayBuffer(128),this[R].state=new Int32Array(this[R].stateBuf),this[R].dataBuf=new SharedArrayBuffer(e.bufferSize||4*1024*1024),this[R].data=Buffer.from(this[R].dataBuf),this[R].sync=e.sync||!1,this[R].ending=!1,this[R].ended=!1,this[R].needDrain=!1,this[R].destroyed=!1,this[R].flushing=!1,this[R].ready=!1,this[R].finished=!1,this[R].errored=null,this[R].closed=!1,this[R].buf=[],this[R].bufHead=0,this[R].bufLen=0,this[R].flushCallbacks=new Map,this[R].nextFlushId=0,this.worker=uA(this,e),this.on("message",(t,s)=>{this.worker.postMessage(t,s)})}write(e){let t=Buffer.isBuffer(e)?e:Buffer.from(e);if(this[R].destroyed)return pl(this,new Error("the worker has exited")),!1;if(this[R].ending)return pl(this,new Error("the worker is ending")),!1;if(this[R].flushing&&this[R].bufLen+t.length>=aA)try{dl(this),this[R].flushing=!0}catch(s){return Je(this,s),!1}if(this[R].buf.push(t),this[R].bufLen+=t.length,this[R].sync)try{return dl(this),!0}catch(s){return Je(this,s),!1}return this[R].flushing||(this[R].flushing=!0,setImmediate(tm,this)),this[R].needDrain=this[R].data.length-this[R].bufLen-Atomics.load(this[R].state,Mt)<=0,!this[R].needDrain}end(){this[R].destroyed||(this[R].ending=!0,ml(this))}flush(e){e=typeof e=="function"?e:Xh,sm(this,t=>{if(t){process.nextTick(e,t);return}rm(this,e)})}flushSync(){this[R].destroyed||(dl(this),om(this))}unref(){this.worker.unref()}ref(){this.worker.ref()}get ready(){return this[R].ready}get destroyed(){return this[R].destroyed}get closed(){return this[R].closed}get writable(){return!this[R].destroyed&&!this[R].ending}get writableEnded(){return this[R].ending}get writableFinished(){return this[R].finished}get writableNeedDrain(){return this[R].needDrain}get writableObjectMode(){return!1}get writableErrored(){return this[R].errored}};function sm(n,e){if(n[R].destroyed){process.nextTick(e,new Error("the worker has exited"));return}if(!n[R].sync&&(n[R].flushing||n[R].bufLen>0)){setImmediate(sm,n,e);return}Hr(n,e)}function Hr(n,e){let t=Atomics.load(n[R].state,Mt);rA(n[R].state,an,t,1/0,(s,r)=>{if(s){Je(n,s),e(s);return}if(r!=="ok"){Hr(n,e);return}e()})}function rm(n,e){if(n[R].destroyed){process.nextTick(e,new Error("the worker has exited"));return}if(!n[R].ready){let s=()=>{i(),rm(n,e)},r=()=>{i(),process.nextTick(e,new Error("the worker has exited"))},i=()=>{n.off("ready",s),n.off("close",r)};n.once("ready",s),n.once("close",r);return}let t=++n[R].nextFlushId;n[R].flushCallbacks.set(t,e);try{n.worker.postMessage({code:"FLUSH",context:"thread-stream",id:t})}catch(s){n[R].flushCallbacks.delete(t),Je(n,s),process.nextTick(e,s)}}function fA(n,e){let t=n[R].flushCallbacks;if(t.size===0)return;let s=e||new Error("the worker has exited");for(let r of t.values())process.nextTick(r,s);t.clear()}function pl(n,e){setImmediate(()=>{n.emit("error",e)})}function Je(n,e){n[R].destroyed||(n[R].destroyed=!0,fA(n,e),e&&(n[R].errored=e,pl(n,e)),n.worker.exited?setImmediate(()=>{n[R].closed=!0,n.emit("close")}):n.worker.terminate().catch(()=>{}).then(()=>{n[R].closed=!0,n.emit("close")}))}function im(n,e,t){let r=Atomics.load(n[R].state,Mt),i=e;for(;i>0&&n[R].bufLen!==0;){let o=n[R].bufHead,a=n[R].buf[o];if(a.length<=i){a.copy(n[R].data,r),r+=a.length,i-=a.length,n[R].bufLen-=a.length,n[R].bufHead=o+1,n[R].bufHead===n[R].buf.length?(n[R].buf.length=0,n[R].bufHead=0):n[R].bufHead>=1024&&n[R].bufHead*2>=n[R].buf.length&&(n[R].buf.splice(0,n[R].bufHead),n[R].bufHead=0);continue}a.copy(n[R].data,r,0,i),n[R].buf[o]=a.subarray(i),n[R].bufLen-=i,r+=i,i=0}return hl(n,()=>{Atomics.store(n[R].state,Mt,r)}),t(),!0}function ml(n){if(!(n[R].ended||!n[R].ending||n[R].flushing)){n[R].ended=!0;try{n.flushSync();let e=Atomics.load(n[R].state,an);hl(n,()=>{Atomics.store(n[R].state,Mt,-1)});let t=0;for(;e!==-1;){if(Atomics.wait(n[R].state,an,e,1e3),e=Atomics.load(n[R].state,an),e===-2){Je(n,new Error("end() failed"));return}if(++t===10){Je(n,new Error("end() took too long (10s)"));return}}process.nextTick(()=>{n[R].finished=!0,n.emit("finish")})}catch(e){Je(n,e)}}}function dl(n){let e=()=>{n[R].ending?ml(n):n[R].needDrain&&process.nextTick(em,n)};for(n[R].flushing=!1;n[R].bufLen!==0;){let t=Atomics.load(n[R].state,Mt),s=n[R].data.length-t;if(s===0){om(n),Qh(n);continue}else if(s<0)throw new Error("overwritten");im(n,s,e)}}function om(n){if(n[R].flushing)throw new Error("unable to flush while flushing");let e=Atomics.load(n[R].state,Mt),t=0;for(;;){let s=Atomics.load(n[R].state,an);if(s===-2)throw Error("_flushSync failed");if(s!==e)Atomics.wait(n[R].state,an,s,1e3);else break;if(++t===10)throw new Error("_flushSync took too long (10s)")}}am.exports=fl});var bl=N((xR,dm)=>{"use strict";var{createRequire:pA}=require("module"),{existsSync:hA}=require("node:fs"),mA=tl(),{join:gl,isAbsolute:um,sep:gA}=require("node:path"),{fileURLToPath:yA}=require("node:url"),bA=ol(),yl=cl(),vA=lm();function wA(n){yl.register(n,kA),yl.registerBeforeExit(n,$A),n.on("close",function(){yl.unregister(n)})}function xA(){let n=process.execArgv;for(let e=0;e<n.length;e++){let t=n[e];if(t==="--import"||t==="--require"||t==="-r"||t.startsWith("--import=")||t.startsWith("--require=")||t.startsWith("-r="))return!0}return!1}function SA(n){let e=n.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g);if(!e)return n;let t=[],s=!1;for(let r=0;r<e.length;r++){let i=e[r];if(i==="--require"||i==="-r"||i==="--import"){let o=e[r+1];if(o&&cm(o)){s=!0,r++;continue}t.push(i),o&&(t.push(o),r++);continue}if(i.startsWith("--require=")||i.startsWith("-r=")||i.startsWith("--import=")){let o=i.slice(i.indexOf("=")+1);if(cm(o)){s=!0;continue}}t.push(i)}return s?t.join(" "):n}function cm(n){let e=_A(n);if(!e)return!1;let t=e;if(t.startsWith("file://"))try{t=yA(t)}catch{return!1}return um(t)&&!hA(t)}function _A(n){let e=n[0],t=n[n.length-1];return e==='"'&&t==='"'||e==="'"&&t==="'"?n.slice(1,-1):n}function AA(n,e,t,s,r){if(!t.execArgv&&xA()&&require.main===void 0&&(t={...t,execArgv:[]}),!t.env&&process.env.NODE_OPTIONS){let l=SA(process.env.NODE_OPTIONS);l!==process.env.NODE_OPTIONS&&(t={...t,env:{...process.env,NODE_OPTIONS:l}})}t={...t,name:r};let i=new vA({filename:n,workerData:e,workerOpts:t,sync:s});i.on("ready",o),i.on("close",function(){process.removeListener("exit",a)}),process.on("exit",a);function o(){process.removeListener("exit",a),i.unref(),t.autoEnd!==!1&&wA(i)}function a(){i.closed||(i.flushSync(),bA(100),i.end())}return i}function kA(n){n.ref(),n.flushSync(),n.end(),n.once("close",function(){n.unref()})}function $A(n){n.flushSync()}function CA(n){let{pipeline:e,targets:t,levels:s,dedupe:r,worker:i={},caller:o=mA(),sync:a=!1}=n,l={...n.options},u=typeof o=="string"?[o]:o,d=typeof globalThis=="object"&&Object.prototype.hasOwnProperty.call(globalThis,"__bundlerPathsOverrides")&&globalThis.__bundlerPathsOverrides&&typeof globalThis.__bundlerPathsOverrides=="object"?globalThis.__bundlerPathsOverrides:Object.create(null),f=n.target;if(f&&t)throw new Error("only one of target or targets can be specified");t?(f=d["pino-worker"]||gl(__dirname,"worker.js"),l.targets=t.filter(p=>p.target).map(p=>({...p,target:m(p.target)})),l.pipelines=t.filter(p=>p.pipeline).map(p=>p.pipeline.map(g=>({...g,level:p.level,target:m(g.target)})))):e&&(f=d["pino-worker"]||gl(__dirname,"worker.js"),l.pipelines=[e.map(p=>({...p,target:m(p.target)}))]),s&&(l.levels=s),r&&(l.dedupe=r),l.pinoWillSendConfig=!0;let h=t||e?"pino.transport":f;return AA(m(f),l,i,a,h);function m(p){if(p=d[p]||p,um(p)||p.indexOf("file://")===0)return p;if(p==="pino/file")return gl(__dirname,"..","file.js");let g;for(let S of u)try{let x=S==="node:repl"?process.cwd()+gA:S;g=pA(x).resolve(p);break}catch{continue}if(!g)throw new Error(`unable to determine transport target for "${p}"`);return g}}dm.exports=CA});var qr=N((SR,Am)=>{"use strict";var EA=require("node:diagnostics_channel"),fm=Ph(),{mapHttpRequest:TA,mapHttpResponse:RA}=el(),wl=Hh(),pm=cl(),{lsCacheSym:OA,chindingsSym:bm,writeSym:hm,serializersSym:vm,formatOptsSym:mm,endSym:PA,stringifiersSym:wm,stringifySym:xm,stringifySafeSym:xl,wildcardFirstSym:Sm,nestedKeySym:MA,formattersSym:_m,messageKeySym:IA,errorKeySym:DA,nestedKeyStrSym:LA,msgPrefixSym:Br}=Pn(),{isMainThread:FA}=require("worker_threads"),NA=bl(),[jA]=process.versions.node.split(".").map(n=>Number(n)),gm=EA.tracingChannel("pino_asJson"),vl=jA>=25?n=>JSON.stringify(n):BA;function In(){}function HA(n,e){if(!e)return t;return function(...r){e.call(this,r,t,n)};function t(s,...r){if(typeof s=="object"){let i=s;s!==null&&(s.method&&s.headers&&s.socket?s=TA(s):typeof s.setHeader=="function"&&(s=RA(s)));let o;i===null&&r.length===0?o=[null]:(i=r.shift(),o=r),typeof this[Br]=="string"&&i!==void 0&&i!==null&&(i=this[Br]+i),this[hm](s,fm(i,o,this[mm]),n)}else{let i=s===void 0?r.shift():s;typeof this[Br]=="string"&&i!==void 0&&i!==null&&(i=this[Br]+i),this[hm](null,fm(i,r,this[mm]),n)}}}function BA(n){let e="",t=0,s=!1,r=255,i=n.length;if(i>100)return JSON.stringify(n);for(var o=0;o<i&&r>=32;o++)r=n.charCodeAt(o),(r===34||r===92)&&(e+=n.slice(t,o)+"\\",t=o,s=!0);return s?e+=n.slice(t):e=n,r<32?JSON.stringify(n):'"'+e+'"'}function UA(n,e,t,s){if(gm.hasSubscribers===!1)return ym.call(this,n,e,t,s);let r={instance:this,arguments};return gm.traceSync(ym,r,this,n,e,t,s)}function ym(n,e,t,s){let r=this[xm],i=this[xl],o=this[wm],a=this[PA],l=this[bm],u=this[vm],d=this[_m],f=this[IA],h=this[DA],m=this[OA][t]+s;m=m+l;let p;d.log&&(n=d.log(n));let g=o[Sm],S="";for(let $ in n)if(p=n[$],Object.prototype.hasOwnProperty.call(n,$)&&p!==void 0){u[$]?p=u[$](p):$===h&&u.err&&(p=u.err(p));let k=o[$]||g;switch(typeof p){case"undefined":case"function":continue;case"number":Number.isFinite(p)===!1&&(p=null);case"boolean":k&&(p=k(p));break;case"string":p=(k||vl)(p);break;default:p=(k||r)(p,i)}if(p===void 0)continue;let y=vl($);S+=","+y+":"+p}let x="";if(e!==void 0){p=u[f]?u[f](e):e;let $=o[f]||g;switch(typeof p){case"function":break;case"number":Number.isFinite(p)===!1&&(p=null);case"boolean":$&&(p=$(p)),x=',"'+f+'":'+p;break;case"string":p=($||vl)(p),x=',"'+f+'":'+p;break;default:p=($||r)(p,i),x=',"'+f+'":'+p}}return this[MA]&&S?m+this[LA]+S.slice(1)+"}"+x+a:m+S+x+a}function qA(n,e){let t,s=n[bm],r=n[xm],i=n[xl],o=n[wm],a=o[Sm],l=n[vm],u=n[_m].bindings;e=u(e);for(let d in e)if(t=e[d],((d.length<5||d!=="level"&&d!=="serializers"&&d!=="formatters"&&d!=="customLevels")&&e.hasOwnProperty(d)&&t!==void 0)===!0){if(t=l[d]?l[d](t):t,t=(o[d]||a||r)(t,i),t===void 0)continue;s+=',"'+d+'":'+t}return s}function KA(n){return n.write!==n.constructor.prototype.write}function Ur(n){let e=new wl(n);return e.on("error",t),!n.sync&&FA&&(pm.register(e,WA),e.on("close",function(){pm.unregister(e)})),e;function t(s){if(s.code==="EPIPE"){e.write=In,e.end=In,e.flushSync=In,e.destroy=In;return}e.removeListener("error",t),e.emit("error",s)}}function WA(n,e){n.destroyed||(e==="beforeExit"?(n.flush(),n.on("drain",function(){n.end()})):n.flushSync())}function GA(n){return function(t,s,r={},i){if(typeof r=="string")i=Ur({dest:r}),r={};else if(typeof i=="string"){if(r&&r.transport)throw Error("only one of option.transport or stream can be specified");i=Ur({dest:i})}else if(r instanceof wl||r.writable||r._writableState)i=r,r={};else if(r.transport){if(r.transport instanceof wl||r.transport.writable||r.transport._writableState)throw Error("option.transport do not allow stream, please pass to option directly. e.g. pino(transport)");if(r.transport.targets&&r.transport.targets.length&&r.formatters&&typeof r.formatters.level=="function")throw Error("option.transport.targets do not allow custom level formatters");let l;r.customLevels&&(l=r.useOnlyCustomLevels?r.customLevels:Object.assign({},r.levels,r.customLevels)),i=NA({caller:s,...r.transport,levels:l})}if(r=Object.assign({},n,r),r.serializers=Object.assign({},n.serializers,r.serializers),r.formatters=Object.assign({},n.formatters,r.formatters),r.prettyPrint)throw new Error("prettyPrint option is no longer supported, see the pino-pretty package (https://github.com/pinojs/pino-pretty)");let{enabled:o,onChild:a}=r;return o===!1&&(r.level="silent"),a||(r.onChild=In),i||(KA(process.stdout)?i=process.stdout:i=Ur({fd:process.stdout.fd||1})),{opts:r,stream:i}}}function VA(n,e){try{return JSON.stringify(n)}catch{try{return(e||this[xl])(n)}catch{return'"[unable to serialize, circular reference is too complex to analyze]"'}}}function zA(n,e,t){return{level:n,bindings:e,log:t}}function YA(n){let e=Number(n);return typeof n=="string"&&Number.isFinite(e)?e:n===void 0?1:n}Am.exports={noop:In,buildSafeSonicBoom:Ur,asChindings:qA,asJson:UA,genLog:HA,createArgsNormalizer:GA,stringify:VA,buildFormatters:zA,normalizeDestFileDescriptor:YA}});var Kr=N((_R,km)=>{var JA={trace:10,debug:20,info:30,warn:40,error:50,fatal:60},XA={ASC:"ASC",DESC:"DESC"};km.exports={DEFAULT_LEVELS:JA,SORTING_ORDER:XA}});var Al=N((AR,Tm)=>{"use strict";var{lsCacheSym:QA,levelValSym:Sl,useOnlyCustomLevelsSym:ZA,streamSym:ek,formattersSym:tk,hooksSym:nk,levelCompSym:$m}=Pn(),{noop:sk,genLog:ln}=qr(),{DEFAULT_LEVELS:yt,SORTING_ORDER:Cm}=Kr(),Em={fatal:n=>{let e=ln(yt.fatal,n);return function(...t){let s=this[ek];if(e.call(this,...t),typeof s.flushSync=="function")try{s.flushSync()}catch{}}},error:n=>ln(yt.error,n),warn:n=>ln(yt.warn,n),info:n=>ln(yt.info,n),debug:n=>ln(yt.debug,n),trace:n=>ln(yt.trace,n)},_l=Object.keys(yt).reduce((n,e)=>(n[yt[e]]=e,n),{}),rk=Object.keys(_l).reduce((n,e)=>(n[e]='{"level":'+Number(e),n),{});function ik(n){let e=n[tk].level,{labels:t}=n.levels,s={};for(let r in t){let i=e(t[r],Number(r));s[r]=JSON.stringify(i).slice(0,-1)}return n[QA]=s,n}function ok(n,e){if(e)return!1;switch(n){case"fatal":case"error":case"warn":case"info":case"debug":case"trace":return!0;default:return!1}}function ak(n){let{labels:e,values:t}=this.levels;if(typeof n=="number"){if(e[n]===void 0)throw Error("unknown level value"+n);n=e[n]}if(t[n]===void 0)throw Error("unknown level "+n);let s=this[Sl],r=this[Sl]=t[n],i=this[ZA],o=this[$m],a=this[nk].logMethod;for(let l in t){if(o(t[l],r)===!1){this[l]=sk;continue}this[l]=ok(l,i)?Em[l](a):ln(t[l],a)}this.emit("level-change",n,r,e[s],s,this)}function lk(n){let{levels:e,levelVal:t}=this;return e&&e.labels?e.labels[t]:""}function ck(n){let{values:e}=this.levels,t=e[n];return t!==void 0&&this[$m](t,this[Sl])}function uk(n,e,t){return n===Cm.DESC?e<=t:e>=t}function dk(n){return typeof n=="string"?uk.bind(null,n):n}function fk(n=null,e=!1){let t=n?Object.keys(n).reduce((i,o)=>(i[n[o]]=o,i),{}):null,s=Object.assign(Object.create(Object.prototype,{Infinity:{value:"silent"}}),e?null:_l,t),r=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),e?null:yt,n);return{labels:s,values:r}}function pk(n,e,t){if(typeof n=="number"){if(![].concat(Object.keys(e||{}).map(i=>e[i]),t?[]:Object.keys(_l).map(i=>+i),1/0).includes(n))throw Error(`default level:${n} must be included in custom levels`);return}let s=Object.assign(Object.create(Object.prototype,{silent:{value:1/0}}),t?null:yt,e);if(!(n in s))throw Error(`default level:${n} must be included in custom levels`)}function hk(n,e){let{labels:t,values:s}=n;for(let r in e){if(r in s)throw Error("levels cannot be overridden");if(e[r]in t)throw Error("pre-existing level values cannot be used for new levels")}}function mk(n){if(typeof n!="function"&&!(typeof n=="string"&&Object.values(Cm).includes(n)))throw new Error('Levels comparison should be one of "ASC", "DESC" or "function" type')}Tm.exports={initialLsCache:rk,genLsCache:ik,levelMethods:Em,getLevel:lk,setLevel:ak,isLevelEnabled:ck,mappings:fk,assertNoLevelCollisions:hk,assertDefaultLevelFound:pk,genLevelComparison:dk,assertLevelComparison:mk}});var kl=N((kR,Rm)=>{"use strict";Rm.exports={version:"10.3.1"}});var Nm=N((CR,Fm)=>{"use strict";var{EventEmitter:gk}=require("node:events"),{lsCacheSym:yk,levelValSym:bk,setLevelSym:Cl,getLevelSym:Om,chindingsSym:Gr,mixinSym:vk,asJsonSym:Mm,writeSym:wk,mixinMergeStrategySym:xk,timeSym:Sk,timeSliceIndexSym:_k,streamSym:Im,serializersSym:cn,formattersSym:ws,errorKeySym:Ak,messageKeySym:kk,useOnlyCustomLevelsSym:$k,needsMetadataGsym:Ck,redactFmtSym:Ek,stringifySym:Tk,formatOptsSym:Rk,stringifiersSym:Ok,msgPrefixSym:El,hooksSym:Pk}=Pn(),{getLevel:Mk,setLevel:Ik,isLevelEnabled:Dk,mappings:Lk,initialLsCache:Fk,genLsCache:Nk,assertNoLevelCollisions:jk}=Al(),{asChindings:Tl,asJson:Hk,buildFormatters:$l,stringify:Pm,noop:Dm}=qr(),{version:Bk}=kl(),Uk=rl(),qk=class{},Lm={constructor:qk,child:Kk,bindings:Wk,setBindings:Gk,flush:Yk,isLevelEnabled:Dk,version:Bk,get level(){return this[Om]()},set level(n){this[Cl](n)},get levelVal(){return this[bk]},set levelVal(n){throw Error("levelVal is read-only")},get msgPrefix(){return this[El]},get[Symbol.toStringTag](){return"Pino"},[yk]:Fk,[wk]:zk,[Mm]:Hk,[Om]:Mk,[Cl]:Ik};Object.setPrototypeOf(Lm,gk.prototype);Fm.exports=function(){return Object.create(Lm)};var Wr=n=>n;function Kk(n,e){if(!n)throw Error("missing bindings for child Pino");let t=this[cn],s=this[ws],r=Object.create(this);if(e==null)return r[ws].bindings!==Wr&&(r[ws]=$l(s.level,Wr,s.log)),r[Gr]=Tl(r,n),this.onChild!==Dm&&this.onChild(r),r;if(e.hasOwnProperty("serializers")===!0){r[cn]=Object.create(null);for(let u in t)r[cn][u]=t[u];let a=Object.getOwnPropertySymbols(t);for(var i=0;i<a.length;i++){let u=a[i];r[cn][u]=t[u]}for(let u in e.serializers)r[cn][u]=e.serializers[u];let l=Object.getOwnPropertySymbols(e.serializers);for(var o=0;o<l.length;o++){let u=l[o];r[cn][u]=e.serializers[u]}}else r[cn]=t;if(e.hasOwnProperty("formatters")){let{level:a,bindings:l,log:u}=e.formatters;r[ws]=$l(a||s.level,l||Wr,u||s.log)}else r[ws]=$l(s.level,Wr,s.log);if(e.hasOwnProperty("customLevels")===!0&&(jk(this.levels,e.customLevels),r.levels=Lk(e.customLevels,r[$k]),Nk(r)),typeof e.redact=="object"&&e.redact!==null||Array.isArray(e.redact)){r.redact=e.redact;let a=Uk(r.redact,Pm),l={stringify:a[Ek]};r[Tk]=Pm,r[Ok]=a,r[Rk]=l}if(typeof e.msgPrefix=="string"&&(r[El]=(this[El]||"")+e.msgPrefix),r[Gr]=Tl(r,n),e.level!==void 0&&e.level!==this.level||e.hasOwnProperty("customLevels")){let a=e.level||this.level;r[Cl](a)}return this.onChild(r),r}function Wk(){let e=`{${this[Gr].substr(1)}}`,t=JSON.parse(e);return delete t.pid,delete t.hostname,t}function Gk(n){let e=Tl(this,n);this[Gr]=e}function Vk(n,e){return Object.assign(e,n)}function zk(n,e,t){let s=this[Sk](),r=this[vk],i=this[Ak],o=this[kk],a=this[xk]||Vk,l,u=this[Pk].streamWrite;n==null?l={}:n instanceof Error?(l={[i]:n},e===void 0&&(e=n.message)):(l=n,e===void 0&&n[o]===void 0&&n[i]&&(e=n[i].message)),r&&(l=a(l,r(l,t,this)));let d=this[Mm](l,e,t,s),f=this[Im];f[Ck]===!0&&(f.lastLevel=t,f.lastObj=l,f.lastMsg=e,f.lastTime=s.slice(this[_k]),f.lastLogger=this),f.write(u?u(d):d)}function Yk(n){if(n!=null&&typeof n!="function")throw Error("callback must be a function");let e=this[Im];typeof e.flush=="function"?e.flush(n||Dm):n&&n()}});var Um=N((Ml,Bm)=>{"use strict";var{hasOwnProperty:xs}=Object.prototype,dn=Pl();dn.configure=Pl;dn.stringify=dn;dn.default=dn;Ml.stringify=dn;Ml.configure=Pl;Bm.exports=dn;var Jk=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function qt(n){return n.length<5e3&&!Jk.test(n)?`"${n}"`:JSON.stringify(n)}function Rl(n,e){if(n.length>200||e)return n.sort(e);for(let t=1;t<n.length;t++){let s=n[t],r=t;for(;r!==0&&n[r-1]>s;)n[r]=n[r-1],r--;n[r]=s}return n}var Xk=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function Ol(n){return Xk.call(n)!==void 0&&n.length!==0}function jm(n,e,t){n.length<t&&(t=n.length);let s=e===","?"":" ",r=`"0":${s}${n[0]}`;for(let i=1;i<t;i++)r+=`${e}"${i}":${s}${n[i]}`;return r}function Qk(n){if(xs.call(n,"circularValue")){let e=n.circularValue;if(typeof e=="string")return`"${e}"`;if(e==null)return e;if(e===Error||e===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}function Zk(n){let e;if(xs.call(n,"deterministic")&&(e=n.deterministic,typeof e!="boolean"&&typeof e!="function"))throw new TypeError('The "deterministic" argument must be of type boolean or comparator function');return e===void 0?!0:e}function e$(n,e){let t;if(xs.call(n,e)&&(t=n[e],typeof t!="boolean"))throw new TypeError(`The "${e}" argument must be of type boolean`);return t===void 0?!0:t}function Hm(n,e){let t;if(xs.call(n,e)){if(t=n[e],typeof t!="number")throw new TypeError(`The "${e}" argument must be of type number`);if(!Number.isInteger(t))throw new TypeError(`The "${e}" argument must be an integer`);if(t<1)throw new RangeError(`The "${e}" argument must be >= 1`)}return t===void 0?1/0:t}function un(n){return n===1?"1 item":`${n} items`}function t$(n){let e=new Set;for(let t of n)(typeof t=="string"||typeof t=="number")&&e.add(String(t));return e}function n$(n){if(xs.call(n,"strict")){let e=n.strict;if(typeof e!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(e)return t=>{let s=`Object can not safely be stringified. Received type ${typeof t}`;throw typeof t!="function"&&(s+=` (${t.toString()})`),new Error(s)}}}function Pl(n){n={...n};let e=n$(n);e&&(n.bigint===void 0&&(n.bigint=!1),"circularValue"in n||(n.circularValue=Error));let t=Qk(n),s=e$(n,"bigint"),r=Zk(n),i=typeof r=="function"?r:void 0,o=Hm(n,"maximumDepth"),a=Hm(n,"maximumBreadth");function l(m,p,g,S,x,$){let k=p[m];switch(typeof k=="object"&&k!==null&&typeof k.toJSON=="function"&&(k=k.toJSON(m)),k=S.call(p,m,k),typeof k){case"string":return qt(k);case"object":{if(k===null)return"null";if(g.indexOf(k)!==-1)return t;let y="",b=",",v=$;if(Array.isArray(k)){if(k.length===0)return"[]";if(o<g.length+1)return'"[Array]"';g.push(k),x!==""&&($+=x,y+=`
847
+ ${$}`,b=`,
848
+ ${$}`);let F=Math.min(k.length,a),H=0;for(;H<F-1;H++){let E=l(String(H),k,g,S,x,$);y+=E!==void 0?E:"null",y+=b}let W=l(String(H),k,g,S,x,$);if(y+=W!==void 0?W:"null",k.length-1>a){let E=k.length-a-1;y+=`${b}"... ${un(E)} not stringified"`}return x!==""&&(y+=`
849
+ ${v}`),g.pop(),`[${y}]`}let w=Object.keys(k),_=w.length;if(_===0)return"{}";if(o<g.length+1)return'"[Object]"';let T="",P="";x!==""&&($+=x,b=`,
850
+ ${$}`,T=" ");let C=Math.min(_,a);r&&!Ol(k)&&(w=Rl(w,i)),g.push(k);for(let F=0;F<C;F++){let H=w[F],W=l(H,k,g,S,x,$);W!==void 0&&(y+=`${P}${qt(H)}:${T}${W}`,P=b)}if(_>a){let F=_-a;y+=`${P}"...":${T}"${un(F)} not stringified"`,P=b}return x!==""&&P.length>1&&(y=`
850
851
  ${$}${y}
851
- ${b}`),g.pop(),`{${y}}`}case"number":return isFinite(k)?String(k):e?e(k):"null";case"boolean":return k===!0?"true":"false";case"undefined":return;case"bigint":if(s)return String(k);default:return e?e(k):void 0}}function u(m,p,g,S,w,$){switch(typeof p=="object"&&p!==null&&typeof p.toJSON=="function"&&(p=p.toJSON(m)),typeof p){case"string":return qt(p);case"object":{if(p===null)return"null";if(g.indexOf(p)!==-1)return t;let k=$,y="",v=",";if(Array.isArray(p)){if(p.length===0)return"[]";if(o<g.length+1)return'"[Array]"';g.push(p),w!==""&&($+=w,y+=`
852
- ${$}`,v=`,
853
- ${$}`);let _=Math.min(p.length,a),T=0;for(;T<_-1;T++){let C=u(String(T),p[T],g,S,w,$);y+=C!==void 0?C:"null",y+=v}let P=u(String(T),p[T],g,S,w,$);if(y+=P!==void 0?P:"null",p.length-1>a){let C=p.length-a-1;y+=`${v}"... ${un(C)} not stringified"`}return w!==""&&(y+=`
854
- ${k}`),g.pop(),`[${y}]`}g.push(p);let b="";w!==""&&($+=w,v=`,
855
- ${$}`,b=" ");let x="";for(let _ of S){let T=u(_,p[_],g,S,w,$);T!==void 0&&(y+=`${x}${qt(_)}:${b}${T}`,x=v)}return w!==""&&x.length>1&&(y=`
852
+ ${v}`),g.pop(),`{${y}}`}case"number":return isFinite(k)?String(k):e?e(k):"null";case"boolean":return k===!0?"true":"false";case"undefined":return;case"bigint":if(s)return String(k);default:return e?e(k):void 0}}function u(m,p,g,S,x,$){switch(typeof p=="object"&&p!==null&&typeof p.toJSON=="function"&&(p=p.toJSON(m)),typeof p){case"string":return qt(p);case"object":{if(p===null)return"null";if(g.indexOf(p)!==-1)return t;let k=$,y="",b=",";if(Array.isArray(p)){if(p.length===0)return"[]";if(o<g.length+1)return'"[Array]"';g.push(p),x!==""&&($+=x,y+=`
853
+ ${$}`,b=`,
854
+ ${$}`);let _=Math.min(p.length,a),T=0;for(;T<_-1;T++){let C=u(String(T),p[T],g,S,x,$);y+=C!==void 0?C:"null",y+=b}let P=u(String(T),p[T],g,S,x,$);if(y+=P!==void 0?P:"null",p.length-1>a){let C=p.length-a-1;y+=`${b}"... ${un(C)} not stringified"`}return x!==""&&(y+=`
855
+ ${k}`),g.pop(),`[${y}]`}g.push(p);let v="";x!==""&&($+=x,b=`,
856
+ ${$}`,v=" ");let w="";for(let _ of S){let T=u(_,p[_],g,S,x,$);T!==void 0&&(y+=`${w}${qt(_)}:${v}${T}`,w=b)}return x!==""&&w.length>1&&(y=`
856
857
  ${$}${y}
857
- ${k}`),g.pop(),`{${y}}`}case"number":return isFinite(p)?String(p):e?e(p):"null";case"boolean":return p===!0?"true":"false";case"undefined":return;case"bigint":if(s)return String(p);default:return e?e(p):void 0}}function d(m,p,g,S,w){switch(typeof p){case"string":return qt(p);case"object":{if(p===null)return"null";if(typeof p.toJSON=="function"){if(p=p.toJSON(m),typeof p!="object")return d(m,p,g,S,w);if(p===null)return"null"}if(g.indexOf(p)!==-1)return t;let $=w;if(Array.isArray(p)){if(p.length===0)return"[]";if(o<g.length+1)return'"[Array]"';g.push(p),w+=S;let T=`
858
- ${w}`,P=`,
859
- ${w}`,C=Math.min(p.length,a),F=0;for(;F<C-1;F++){let W=d(String(F),p[F],g,S,w);T+=W!==void 0?W:"null",T+=P}let H=d(String(F),p[F],g,S,w);if(T+=H!==void 0?H:"null",p.length-1>a){let W=p.length-a-1;T+=`${P}"... ${un(W)} not stringified"`}return T+=`
860
- ${$}`,g.pop(),`[${T}]`}let k=Object.keys(p),y=k.length;if(y===0)return"{}";if(o<g.length+1)return'"[Object]"';w+=S;let v=`,
861
- ${w}`,b="",x="",_=Math.min(y,a);Ol(p)&&(b+=jm(p,v,a),k=k.slice(p.length),_-=p.length,x=v),r&&(k=Rl(k,i)),g.push(p);for(let T=0;T<_;T++){let P=k[T],C=d(P,p[P],g,S,w);C!==void 0&&(b+=`${x}${qt(P)}: ${C}`,x=v)}if(y>a){let T=y-a;b+=`${x}"...": "${un(T)} not stringified"`,x=v}return x!==""&&(b=`
862
- ${w}${b}
863
- ${$}`),g.pop(),`{${b}}`}case"number":return isFinite(p)?String(p):e?e(p):"null";case"boolean":return p===!0?"true":"false";case"undefined":return;case"bigint":if(s)return String(p);default:return e?e(p):void 0}}function f(m,p,g){switch(typeof p){case"string":return qt(p);case"object":{if(p===null)return"null";if(typeof p.toJSON=="function"){if(p=p.toJSON(m),typeof p!="object")return f(m,p,g);if(p===null)return"null"}if(g.indexOf(p)!==-1)return t;let S="",w=p.length!==void 0;if(w&&Array.isArray(p)){if(p.length===0)return"[]";if(o<g.length+1)return'"[Array]"';g.push(p);let b=Math.min(p.length,a),x=0;for(;x<b-1;x++){let T=f(String(x),p[x],g);S+=T!==void 0?T:"null",S+=","}let _=f(String(x),p[x],g);if(S+=_!==void 0?_:"null",p.length-1>a){let T=p.length-a-1;S+=`,"... ${un(T)} not stringified"`}return g.pop(),`[${S}]`}let $=Object.keys(p),k=$.length;if(k===0)return"{}";if(o<g.length+1)return'"[Object]"';let y="",v=Math.min(k,a);w&&Ol(p)&&(S+=jm(p,",",a),$=$.slice(p.length),v-=p.length,y=","),r&&($=Rl($,i)),g.push(p);for(let b=0;b<v;b++){let x=$[b],_=f(x,p[x],g);_!==void 0&&(S+=`${y}${qt(x)}:${_}`,y=",")}if(k>a){let b=k-a;S+=`${y}"...":"${un(b)} not stringified"`}return g.pop(),`{${S}}`}case"number":return isFinite(p)?String(p):e?e(p):"null";case"boolean":return p===!0?"true":"false";case"undefined":return;case"bigint":if(s)return String(p);default:return e?e(p):void 0}}function h(m,p,g){if(arguments.length>1){let S="";if(typeof g=="number"?S=" ".repeat(Math.min(g,10)):typeof g=="string"&&(S=g.slice(0,10)),p!=null){if(typeof p=="function")return l("",{"":m},[],p,S,"");if(Array.isArray(p))return u("",m,[],t$(p),S,"")}if(S.length!==0)return d("",m,[],S,"")}return f("",m,[])}return h}});var Gm=N((ER,Wm)=>{"use strict";var Il=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:Km}=Kr(),s$=Km.info;function r$(n,e){n=n||[],e=e||{dedupe:!1};let t=Object.create(Km);t.silent=1/0,e.levels&&typeof e.levels=="object"&&Object.keys(e.levels).forEach(f=>{t[f]=e.levels[f]});let s={write:r,add:a,remove:l,emit:i,flushSync:o,end:u,minLevel:0,lastId:0,streams:[],clone:d,[Il]:!0,streamLevels:t};return Array.isArray(n)?n.forEach(a,s):a.call(s,n),n=null,s;function r(f){let h,m=this.lastLevel,{streams:p}=this,g=0,S;for(let w=i$(p.length,e.dedupe);a$(w,p.length,e.dedupe);w=o$(w,e.dedupe))if(h=p[w],h.level<=m){if(g!==0&&g!==h.level)break;if(S=h.stream,S[Il]){let{lastTime:$,lastMsg:k,lastObj:y,lastLogger:v}=this;S.lastLevel=m,S.lastTime=$,S.lastMsg=k,S.lastObj=y,S.lastLogger=v}S.write(f),e.dedupe&&(g=h.level)}else if(!e.dedupe)break}function i(...f){for(let{stream:h}of this.streams)typeof h.emit=="function"&&h.emit(...f)}function o(){for(let{stream:f}of this.streams)typeof f.flushSync=="function"&&f.flushSync()}function a(f){if(!f)return s;let h=typeof f.write=="function"||f.stream,m=f.write?f:f.stream;if(!h)throw Error("stream object needs to implement either StreamEntry or DestinationStream interface");let{streams:p,streamLevels:g}=this,S;typeof f.levelVal=="number"?S=f.levelVal:typeof f.level=="string"?S=g[f.level]:typeof f.level=="number"?S=f.level:S=s$;let w={stream:m,level:S,levelVal:void 0,id:++s.lastId};return p.unshift(w),p.sort(qm),this.minLevel=p[0].level,s}function l(f){let{streams:h}=this,m=h.findIndex(p=>p.id===f);return m>=0&&(h.splice(m,1),h.sort(qm),this.minLevel=h.length>0?h[0].level:-1),s}function u(){for(let{stream:f}of this.streams)typeof f.flushSync=="function"&&f.flushSync(),f.end()}function d(f){let h=new Array(this.streams.length);for(let m=0;m<h.length;m++)h[m]={level:f,stream:this.streams[m].stream};return{write:r,add:a,remove:l,minLevel:f,streams:h,clone:d,emit:i,flushSync:o,[Il]:!0}}}function qm(n,e){return n.level-e.level}function i$(n,e){return e?n-1:0}function o$(n,e){return e?n-1:n+1}function a$(n,e,t){return t?n>=0:n<e}Wm.exports=r$});var Nl=N((TR,Xe)=>{"use strict";var l$=require("node:os"),eg=el(),c$=tl(),u$=rl(),tg=Rh(),d$=Nm(),ng=Pn(),{configure:f$}=Um(),{assertDefaultLevelFound:p$,mappings:sg,genLsCache:h$,genLevelComparison:m$,assertLevelComparison:g$}=Al(),{DEFAULT_LEVELS:rg,SORTING_ORDER:y$}=Kr(),{createArgsNormalizer:b$,asChindings:v$,buildSafeSonicBoom:Vm,buildFormatters:w$,stringify:Dl,normalizeDestFileDescriptor:zm,noop:x$}=qr(),{version:S$}=kl(),{chindingsSym:Ym,redactFmtSym:_$,serializersSym:Jm,timeSym:A$,timeSliceIndexSym:k$,streamSym:$$,stringifySym:Xm,stringifySafeSym:Ll,stringifiersSym:Qm,setLevelSym:C$,endSym:E$,formatOptsSym:T$,messageKeySym:R$,errorKeySym:O$,nestedKeySym:P$,mixinSym:M$,levelCompSym:I$,useOnlyCustomLevelsSym:D$,formattersSym:Zm,hooksSym:L$,nestedKeyStrSym:F$,mixinMergeStrategySym:N$,msgPrefixSym:j$}=ng,{epochTime:ig,nullTime:H$}=tg,{pid:B$}=process,U$=l$.hostname(),q$=eg.err,K$={level:"info",levelComparison:y$.ASC,levels:rg,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:B$,hostname:U$},serializers:Object.assign(Object.create(null),{err:q$}),formatters:Object.assign(Object.create(null),{bindings(n){return n},level(n,e){return{level:e}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:ig,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},W$=b$(K$),G$=Object.assign(Object.create(null),eg);function Fl(...n){let e={},{opts:t,stream:s}=W$(e,c$(),...n);t.level&&typeof t.level=="string"&&rg[t.level.toLowerCase()]!==void 0&&(t.level=t.level.toLowerCase());let{redact:r,crlf:i,serializers:o,timestamp:a,messageKey:l,errorKey:u,nestedKey:d,base:f,name:h,level:m,customLevels:p,levelComparison:g,mixin:S,mixinMergeStrategy:w,useOnlyCustomLevels:$,formatters:k,hooks:y,depthLimit:v,edgeLimit:b,onChild:x,msgPrefix:_}=t,T=f$({maximumDepth:v,maximumBreadth:b}),P=w$(k.level,k.bindings,k.log),C=Dl.bind({[Ll]:T}),F=r?u$(r,C):{},H=r?{stringify:F[_$]}:{stringify:C},W="}"+(i?`\r
858
+ ${k}`),g.pop(),`{${y}}`}case"number":return isFinite(p)?String(p):e?e(p):"null";case"boolean":return p===!0?"true":"false";case"undefined":return;case"bigint":if(s)return String(p);default:return e?e(p):void 0}}function d(m,p,g,S,x){switch(typeof p){case"string":return qt(p);case"object":{if(p===null)return"null";if(typeof p.toJSON=="function"){if(p=p.toJSON(m),typeof p!="object")return d(m,p,g,S,x);if(p===null)return"null"}if(g.indexOf(p)!==-1)return t;let $=x;if(Array.isArray(p)){if(p.length===0)return"[]";if(o<g.length+1)return'"[Array]"';g.push(p),x+=S;let T=`
859
+ ${x}`,P=`,
860
+ ${x}`,C=Math.min(p.length,a),F=0;for(;F<C-1;F++){let W=d(String(F),p[F],g,S,x);T+=W!==void 0?W:"null",T+=P}let H=d(String(F),p[F],g,S,x);if(T+=H!==void 0?H:"null",p.length-1>a){let W=p.length-a-1;T+=`${P}"... ${un(W)} not stringified"`}return T+=`
861
+ ${$}`,g.pop(),`[${T}]`}let k=Object.keys(p),y=k.length;if(y===0)return"{}";if(o<g.length+1)return'"[Object]"';x+=S;let b=`,
862
+ ${x}`,v="",w="",_=Math.min(y,a);Ol(p)&&(v+=jm(p,b,a),k=k.slice(p.length),_-=p.length,w=b),r&&(k=Rl(k,i)),g.push(p);for(let T=0;T<_;T++){let P=k[T],C=d(P,p[P],g,S,x);C!==void 0&&(v+=`${w}${qt(P)}: ${C}`,w=b)}if(y>a){let T=y-a;v+=`${w}"...": "${un(T)} not stringified"`,w=b}return w!==""&&(v=`
863
+ ${x}${v}
864
+ ${$}`),g.pop(),`{${v}}`}case"number":return isFinite(p)?String(p):e?e(p):"null";case"boolean":return p===!0?"true":"false";case"undefined":return;case"bigint":if(s)return String(p);default:return e?e(p):void 0}}function f(m,p,g){switch(typeof p){case"string":return qt(p);case"object":{if(p===null)return"null";if(typeof p.toJSON=="function"){if(p=p.toJSON(m),typeof p!="object")return f(m,p,g);if(p===null)return"null"}if(g.indexOf(p)!==-1)return t;let S="",x=p.length!==void 0;if(x&&Array.isArray(p)){if(p.length===0)return"[]";if(o<g.length+1)return'"[Array]"';g.push(p);let v=Math.min(p.length,a),w=0;for(;w<v-1;w++){let T=f(String(w),p[w],g);S+=T!==void 0?T:"null",S+=","}let _=f(String(w),p[w],g);if(S+=_!==void 0?_:"null",p.length-1>a){let T=p.length-a-1;S+=`,"... ${un(T)} not stringified"`}return g.pop(),`[${S}]`}let $=Object.keys(p),k=$.length;if(k===0)return"{}";if(o<g.length+1)return'"[Object]"';let y="",b=Math.min(k,a);x&&Ol(p)&&(S+=jm(p,",",a),$=$.slice(p.length),b-=p.length,y=","),r&&($=Rl($,i)),g.push(p);for(let v=0;v<b;v++){let w=$[v],_=f(w,p[w],g);_!==void 0&&(S+=`${y}${qt(w)}:${_}`,y=",")}if(k>a){let v=k-a;S+=`${y}"...":"${un(v)} not stringified"`}return g.pop(),`{${S}}`}case"number":return isFinite(p)?String(p):e?e(p):"null";case"boolean":return p===!0?"true":"false";case"undefined":return;case"bigint":if(s)return String(p);default:return e?e(p):void 0}}function h(m,p,g){if(arguments.length>1){let S="";if(typeof g=="number"?S=" ".repeat(Math.min(g,10)):typeof g=="string"&&(S=g.slice(0,10)),p!=null){if(typeof p=="function")return l("",{"":m},[],p,S,"");if(Array.isArray(p))return u("",m,[],t$(p),S,"")}if(S.length!==0)return d("",m,[],S,"")}return f("",m,[])}return h}});var Gm=N((ER,Wm)=>{"use strict";var Il=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:Km}=Kr(),s$=Km.info;function r$(n,e){n=n||[],e=e||{dedupe:!1};let t=Object.create(Km);t.silent=1/0,e.levels&&typeof e.levels=="object"&&Object.keys(e.levels).forEach(f=>{t[f]=e.levels[f]});let s={write:r,add:a,remove:l,emit:i,flushSync:o,end:u,minLevel:0,lastId:0,streams:[],clone:d,[Il]:!0,streamLevels:t};return Array.isArray(n)?n.forEach(a,s):a.call(s,n),n=null,s;function r(f){let h,m=this.lastLevel,{streams:p}=this,g=0,S;for(let x=i$(p.length,e.dedupe);a$(x,p.length,e.dedupe);x=o$(x,e.dedupe))if(h=p[x],h.level<=m){if(g!==0&&g!==h.level)break;if(S=h.stream,S[Il]){let{lastTime:$,lastMsg:k,lastObj:y,lastLogger:b}=this;S.lastLevel=m,S.lastTime=$,S.lastMsg=k,S.lastObj=y,S.lastLogger=b}S.write(f),e.dedupe&&(g=h.level)}else if(!e.dedupe)break}function i(...f){for(let{stream:h}of this.streams)typeof h.emit=="function"&&h.emit(...f)}function o(){for(let{stream:f}of this.streams)typeof f.flushSync=="function"&&f.flushSync()}function a(f){if(!f)return s;let h=typeof f.write=="function"||f.stream,m=f.write?f:f.stream;if(!h)throw Error("stream object needs to implement either StreamEntry or DestinationStream interface");let{streams:p,streamLevels:g}=this,S;typeof f.levelVal=="number"?S=f.levelVal:typeof f.level=="string"?S=g[f.level]:typeof f.level=="number"?S=f.level:S=s$;let x={stream:m,level:S,levelVal:void 0,id:++s.lastId};return p.unshift(x),p.sort(qm),this.minLevel=p[0].level,s}function l(f){let{streams:h}=this,m=h.findIndex(p=>p.id===f);return m>=0&&(h.splice(m,1),h.sort(qm),this.minLevel=h.length>0?h[0].level:-1),s}function u(){for(let{stream:f}of this.streams)typeof f.flushSync=="function"&&f.flushSync(),f.end()}function d(f){let h=new Array(this.streams.length);for(let m=0;m<h.length;m++)h[m]={level:f,stream:this.streams[m].stream};return{write:r,add:a,remove:l,minLevel:f,streams:h,clone:d,emit:i,flushSync:o,[Il]:!0}}}function qm(n,e){return n.level-e.level}function i$(n,e){return e?n-1:0}function o$(n,e){return e?n-1:n+1}function a$(n,e,t){return t?n>=0:n<e}Wm.exports=r$});var Nl=N((TR,Xe)=>{"use strict";var l$=require("node:os"),eg=el(),c$=tl(),u$=rl(),tg=Rh(),d$=Nm(),ng=Pn(),{configure:f$}=Um(),{assertDefaultLevelFound:p$,mappings:sg,genLsCache:h$,genLevelComparison:m$,assertLevelComparison:g$}=Al(),{DEFAULT_LEVELS:rg,SORTING_ORDER:y$}=Kr(),{createArgsNormalizer:b$,asChindings:v$,buildSafeSonicBoom:Vm,buildFormatters:w$,stringify:Dl,normalizeDestFileDescriptor:zm,noop:x$}=qr(),{version:S$}=kl(),{chindingsSym:Ym,redactFmtSym:_$,serializersSym:Jm,timeSym:A$,timeSliceIndexSym:k$,streamSym:$$,stringifySym:Xm,stringifySafeSym:Ll,stringifiersSym:Qm,setLevelSym:C$,endSym:E$,formatOptsSym:T$,messageKeySym:R$,errorKeySym:O$,nestedKeySym:P$,mixinSym:M$,levelCompSym:I$,useOnlyCustomLevelsSym:D$,formattersSym:Zm,hooksSym:L$,nestedKeyStrSym:F$,mixinMergeStrategySym:N$,msgPrefixSym:j$}=ng,{epochTime:ig,nullTime:H$}=tg,{pid:B$}=process,U$=l$.hostname(),q$=eg.err,K$={level:"info",levelComparison:y$.ASC,levels:rg,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:B$,hostname:U$},serializers:Object.assign(Object.create(null),{err:q$}),formatters:Object.assign(Object.create(null),{bindings(n){return n},level(n,e){return{level:e}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:ig,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},W$=b$(K$),G$=Object.assign(Object.create(null),eg);function Fl(...n){let e={},{opts:t,stream:s}=W$(e,c$(),...n);t.level&&typeof t.level=="string"&&rg[t.level.toLowerCase()]!==void 0&&(t.level=t.level.toLowerCase());let{redact:r,crlf:i,serializers:o,timestamp:a,messageKey:l,errorKey:u,nestedKey:d,base:f,name:h,level:m,customLevels:p,levelComparison:g,mixin:S,mixinMergeStrategy:x,useOnlyCustomLevels:$,formatters:k,hooks:y,depthLimit:b,edgeLimit:v,onChild:w,msgPrefix:_}=t,T=f$({maximumDepth:b,maximumBreadth:v}),P=w$(k.level,k.bindings,k.log),C=Dl.bind({[Ll]:T}),F=r?u$(r,C):{},H=r?{stringify:F[_$]}:{stringify:C},W="}"+(i?`\r
864
865
  `:`
865
- `),E=v$.bind(null,{[Ym]:"",[Jm]:o,[Qm]:F,[Xm]:Dl,[Ll]:T,[Zm]:P}),A="";f!==null&&(h===void 0?A=E(f):A=E(Object.assign({},f,{name:h})));let V=a instanceof Function?a:a?ig:H$,U=V().indexOf(":")+1;if($&&!p)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(S&&typeof S!="function")throw Error(`Unknown mixin type "${typeof S}" - expected "function"`);if(_&&typeof _!="string")throw Error(`Unknown msgPrefix type "${typeof _}" - expected "string"`);p$(m,p,$);let Z=sg(p,$);typeof s.emit=="function"&&s.emit("message",{code:"PINO_CONFIG",config:{levels:Z,messageKey:l,errorKey:u}}),g$(g);let te=m$(g);return Object.assign(e,{levels:Z,[I$]:te,[D$]:$,[$$]:s,[A$]:V,[k$]:U,[Xm]:Dl,[Ll]:T,[Qm]:F,[E$]:W,[T$]:H,[R$]:l,[O$]:u,[P$]:d,[F$]:d?`,${JSON.stringify(d)}:{`:"",[Jm]:o,[M$]:S,[N$]:w,[Ym]:A,[Zm]:P,[L$]:y,silent:x$,onChild:x,[j$]:_}),Object.setPrototypeOf(e,d$()),h$(e),e[C$](m),e}Xe.exports=Fl;Xe.exports.destination=(n=process.stdout.fd)=>typeof n=="object"?(n.dest=zm(n.dest||process.stdout.fd),Vm(n)):Vm({dest:zm(n),minLength:0});Xe.exports.transport=bl();Xe.exports.multistream=Gm();Xe.exports.levels=sg();Xe.exports.stdSerializers=G$;Xe.exports.stdTimeFunctions=Object.assign({},tg);Xe.exports.symbols=ng;Xe.exports.version=S$;Xe.exports.default=Fl;Xe.exports.pino=Fl});function Ss(n){return new jl(n)}var V$,z$,Y$,jl,Hl=L(()=>{"use strict";V$={maxSteps:150,thinkingEnabled:!0,selfEvalEnabled:!0,minConfidence:.6,showThinking:!1},z$=`
866
+ `),E=v$.bind(null,{[Ym]:"",[Jm]:o,[Qm]:F,[Xm]:Dl,[Ll]:T,[Zm]:P}),A="";f!==null&&(h===void 0?A=E(f):A=E(Object.assign({},f,{name:h})));let V=a instanceof Function?a:a?ig:H$,U=V().indexOf(":")+1;if($&&!p)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(S&&typeof S!="function")throw Error(`Unknown mixin type "${typeof S}" - expected "function"`);if(_&&typeof _!="string")throw Error(`Unknown msgPrefix type "${typeof _}" - expected "string"`);p$(m,p,$);let Z=sg(p,$);typeof s.emit=="function"&&s.emit("message",{code:"PINO_CONFIG",config:{levels:Z,messageKey:l,errorKey:u}}),g$(g);let te=m$(g);return Object.assign(e,{levels:Z,[I$]:te,[D$]:$,[$$]:s,[A$]:V,[k$]:U,[Xm]:Dl,[Ll]:T,[Qm]:F,[E$]:W,[T$]:H,[R$]:l,[O$]:u,[P$]:d,[F$]:d?`,${JSON.stringify(d)}:{`:"",[Jm]:o,[M$]:S,[N$]:x,[Ym]:A,[Zm]:P,[L$]:y,silent:x$,onChild:w,[j$]:_}),Object.setPrototypeOf(e,d$()),h$(e),e[C$](m),e}Xe.exports=Fl;Xe.exports.destination=(n=process.stdout.fd)=>typeof n=="object"?(n.dest=zm(n.dest||process.stdout.fd),Vm(n)):Vm({dest:zm(n),minLength:0});Xe.exports.transport=bl();Xe.exports.multistream=Gm();Xe.exports.levels=sg();Xe.exports.stdSerializers=G$;Xe.exports.stdTimeFunctions=Object.assign({},tg);Xe.exports.symbols=ng;Xe.exports.version=S$;Xe.exports.default=Fl;Xe.exports.pino=Fl});function Ss(n){return new jl(n)}var V$,z$,Y$,jl,Hl=L(()=>{"use strict";V$={maxSteps:150,thinkingEnabled:!0,selfEvalEnabled:!0,minConfidence:.6,showThinking:!1},z$=`
866
867
  ## Reasoning Protocol
867
868
 
868
869
  Before taking ANY action, you MUST think step-by-step inside <thinking> tags.
@@ -925,7 +926,7 @@ Rate your work. Reply with ONLY a JSON object \u2014 no other text:
925
926
  `)}getTurnSummary(){let e=this.turnSteps.length,t=this.turnSteps.filter(r=>r.action).length,s=this.turnSteps.filter(r=>r.reflection).length;return`${e} steps, ${t} actions, ${s} reflections`}}});function _s(n=3){return new Bl(n)}var J$,Bl,Ul=L(()=>{"use strict";J$=[{test:n=>/ENOENT|no such file|not found|does not exist/i.test(n),errorClass:"file_not_found",strategy:"read_first",explanation:"The file or directory does not exist.",suggestion:"Use list_dir to check what files exist, then retry with the correct path.",alternatives:["list_dir","search_codebase"],autoRetry:!1},{test:n=>/EACCES|permission denied/i.test(n),errorClass:"permission_denied",strategy:"graceful_fail",explanation:"Permission denied \u2014 the process lacks access rights.",suggestion:"Check file ownership or try a different path. Do NOT use sudo.",alternatives:[],autoRetry:!1},{test:n=>/EISDIR|is a directory/i.test(n),errorClass:"path_is_directory",strategy:"retry_fixed",explanation:"The path points to a directory, not a file.",suggestion:"Append the filename to the path. Use list_dir to see contents.",alternatives:["list_dir"],autoRetry:!1},{test:n=>/EEXIST|already exists/i.test(n),errorClass:"file_already_exists",strategy:"read_first",explanation:"A file or directory already exists at that path.",suggestion:"Read the existing file first, then decide whether to overwrite or edit it.",alternatives:["read_file","edit_file"],autoRetry:!1},{test:n=>/no match|not found in file|search string not found/i.test(n),errorClass:"search_no_match",strategy:"read_first",explanation:"The search string was not found in the file.",suggestion:"Read the file first to see its actual content, then use the exact text for search/replace.",alternatives:["read_file","search_codebase"],autoRetry:!1},{test:n=>/command not found|not recognized/i.test(n),errorClass:"command_not_found",strategy:"alternative_tool",explanation:"The command does not exist on this system.",suggestion:"Check if the program is installed, or use a different command that achieves the same goal.",alternatives:["run_command"],autoRetry:!1},{test:n=>/timeout|timed out|ETIMEDOUT/i.test(n),errorClass:"command_timeout",strategy:"retry_fixed",explanation:"The command took too long and was terminated.",suggestion:"Try a simpler version of the command, or increase the timeout, or run it in background.",alternatives:[],autoRetry:!1},{test:n=>/exit code|exited with|non-zero/i.test(n),errorClass:"command_exit_error",strategy:"retry_fixed",explanation:"The command executed but returned an error.",suggestion:"Read the error output carefully. Fix the root cause (missing dependency, wrong syntax, etc.).",alternatives:[],autoRetry:!1},{test:n=>/syntax error|unexpected token|parse error|SyntaxError/i.test(n),errorClass:"syntax_error",strategy:"retry_fixed",explanation:"The content has a syntax error.",suggestion:"Review the generated code for syntax issues, fix them, and retry.",alternatives:[],autoRetry:!1},{test:n=>/ECONNREFUSED|ECONNRESET|ENOTFOUND|fetch failed|network/i.test(n),errorClass:"network_error",strategy:"retry_same",explanation:"Network connection failed.",suggestion:"This may be transient. Retry the same operation, or check connectivity.",alternatives:[],autoRetry:!0},{test:n=>/invalid argument|missing required|expected.*but got|type error/i.test(n),errorClass:"invalid_arguments",strategy:"retry_fixed",explanation:"The tool was called with invalid or missing arguments.",suggestion:"Check the tool's parameter requirements and provide correct values.",alternatives:[],autoRetry:!1},{test:n=>/ENOMEM|out of memory|resource|too large|max.*exceeded/i.test(n),errorClass:"resource_limit",strategy:"decompose_task",explanation:"Resource limit exceeded (memory, file size, etc.).",suggestion:"Break the task into smaller pieces, or process less data at once.",alternatives:[],autoRetry:!1}],Bl=class{failures=new Map;maxRetriesPerTool;constructor(e=3){this.maxRetriesPerTool=e}resetTurn(){this.failures.clear()}analyze(e,t,s){let r=this.failures.get(e),i=r?r.count+1:1,o={tool:e,count:i,lastError:t,lastStrategy:"retry_same"};if(i>this.maxRetriesPerTool)return o.lastStrategy="ask_user",this.failures.set(e,o),{errorClass:"unknown",strategy:"ask_user",explanation:`Tool "${e}" has failed ${i} times in this turn.`,suggestion:`Stop retrying "${e}". Ask the user for clarification or try a completely different approach.`,alternatives:this.suggestAlternatives(e),autoRetry:!1};for(let a of J$)if(a.test(t)){let l=r?.lastStrategy===a.strategy&&i>=2,u=l?"decompose_task":a.strategy;return o.lastStrategy=u,this.failures.set(e,o),{errorClass:a.errorClass,strategy:u,explanation:a.explanation,suggestion:l?`Previous recovery attempt ("${a.strategy}") also failed. Try breaking this into smaller steps or use a completely different approach.`:a.suggestion,alternatives:a.alternatives,autoRetry:!l&&a.autoRetry}}return o.lastStrategy=i===1?"retry_fixed":"graceful_fail",this.failures.set(e,o),{errorClass:"unknown",strategy:o.lastStrategy,explanation:`Unexpected error from "${e}".`,suggestion:i===1?"Review the error message and adjust your approach.":"This error is persistent. Explain to the user what went wrong and suggest manual steps.",alternatives:this.suggestAlternatives(e),autoRetry:!1}}buildRecoveryMessage(e,t){let s=[`ERROR: ${t}`,"","[Recovery Analysis]",` Type: ${e.errorClass}`,` Strategy: ${e.strategy}`,` Explanation: ${e.explanation}`,` Suggestion: ${e.suggestion}`];switch(e.alternatives.length>0&&s.push(` Alternative tools: ${e.alternatives.join(", ")}`),e.strategy){case"read_first":s.push("","\u2192 ACTION: Read the file or directory first, then retry with correct information.");break;case"retry_fixed":s.push("","\u2192 ACTION: Fix the arguments based on the error, then retry.");break;case"alternative_tool":s.push("","\u2192 ACTION: Use a different tool to achieve the same goal.");break;case"decompose_task":s.push("","\u2192 ACTION: Break this into smaller, simpler steps.");break;case"ask_user":s.push("","\u2192 ACTION: Ask the user for clarification. Do NOT retry automatically.");break;case"graceful_fail":s.push("","\u2192 ACTION: Explain what went wrong clearly. Suggest manual steps if possible.");break}return s.join(`
926
927
  `)}getFailureCount(e){return this.failures.get(e)?.count??0}shouldAutoRetry(e){let t=this.failures.get(e);return t?t.count<=1&&t.lastStrategy==="retry_same":!1}suggestAlternatives(e){return{read_file:["search_codebase","list_dir"],write_file:["edit_file","append_to_file"],edit_file:["search_and_replace","write_file","read_file"],search_and_replace:["edit_file","read_file"],patch_file:["edit_file","write_file"],run_command:["search_codebase"],search_codebase:["read_file","list_dir"],delete_file:["run_command"],create_dir:["run_command"],web_search:["scrape_url"]}[e]??[]}}});function X$(){try{if(It.existsSync(Vr))return JSON.parse(It.readFileSync(Vr,"utf-8"))}catch{}return{}}function Q$(n){try{let e=zr.dirname(Vr);It.existsSync(e)||It.mkdirSync(e,{recursive:!0}),It.writeFileSync(Vr,JSON.stringify(n,null,2),"utf-8")}catch{}}function ag(n,e){let t=0,s=!1,r=!1;for(let i=e;i<n.length;i++){let o=n[i];if(r){r=!1;continue}if(o==="\\"&&s){r=!0;continue}if(o==='"'){s=!s;continue}if(!s&&(o==="{"&&t++,o==="}"&&(t--,t===0)))return n.slice(e,i+1)}return null}function As(n){if(typeof n.name=="string"&&n.arguments&&typeof n.arguments=="object")return{tool:n.name,args:n.arguments};if(typeof n.tool=="string"&&n.args&&typeof n.args=="object")return{tool:n.tool,args:n.args};if(typeof n.name=="string"&&n.parameters&&typeof n.parameters=="object")return{tool:n.name,args:n.parameters};if(n.function&&typeof n.function=="object"){let e=n.function;if(typeof e.name=="string"){let t={};if(typeof e.arguments=="string")try{t=JSON.parse(e.arguments)}catch{t={}}else e.arguments&&typeof e.arguments=="object"&&(t=e.arguments);return{tool:e.name,args:t}}}return null}function Z$(n){return n.replace(/&quot;/g,'"').replace(/&apos;/g,"'").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")}function e0(n){let e=[],t=/<<?tool[-_]call\s*>>?([\s\S]*?)<<?\/tool[-_]call\s*>>?/gi,s;for(;(s=t.exec(n))!==null;)try{let r=JSON.parse(s[1].trim()),i=As(r);i&&e.push({...i,format:"xml_tags",rawMatch:s[0]})}catch{}return e}function t0(n){let e=[],t=/<<?tool[-_]call\s*>>?([\s\S]*?)<<?\/tool[-_]call\s*>>?/gi,s;for(;(s=t.exec(n))!==null;)try{let r=JSON.parse(s[1].trim());if(r.parameters||r.name){let i=As(r);i&&e.push({...i,format:"hermes",rawMatch:s[0]})}}catch{}return e}function n0(n){let e=[],t=/<<?tool[-_]call\s*>>?([\s\S]*?)<<?\/tool[-_]call\s*>>?/gi,s;for(;(s=t.exec(n))!==null;){let r=s[1],i=lg(r);for(let o of i)e.push({...o,format:"xml_tool_call_wrapper",rawMatch:s[0]})}return e}function lg(n){let e=[],t=["read_file","write_file","edit_file","search_and_replace","run_command","search_codebase","list_dir","create_dir","delete_file","append_to_file","patch_file","move_file","get_file_info"];for(let s of t){let r=new RegExp(`<<?${s}(\\s+[\\s\\S]*?)?(?:>>?([\\s\\S]*?)<<?\\/${s}>>?|\\s*\\/?>>?)`,"gi"),i;for(;(i=r.exec(n))!==null;){let o=i[1]||"",a=i[2]||"",l={},u=/(\w+)\s*=\s*(?:"([^"]*)"|'([^']*)'|(\S+))/g,d;for(;(d=u.exec(o))!==null;){let h=d[1].toLowerCase(),m=d[2]??d[3]??d[4];l[h]=Z$(m)}let f=a.trim();f&&(s==="write_file"||s==="append_to_file"?l.content=a:s==="run_command"?l.command=f:s==="patch_file"&&(l.new_content=a)),l.start_line&&(l.start_line=parseInt(l.start_line)),l.end_line&&(l.end_line=parseInt(l.end_line)),l.depth&&(l.depth=parseInt(l.depth)),s==="edit_file"?e.push({tool:"search_and_replace",args:l,format:"xml_prompt",rawMatch:i[0]}):e.push({tool:s,args:l,format:"xml_prompt",rawMatch:i[0]})}}return e}function s0(n){return lg(n)}function r0(n){let e=[],t=/```(?:json|tool_call)?\s*\n([\s\S]*?)\n```/g,s;for(;(s=t.exec(n))!==null;)try{let r=JSON.parse(s[1].trim()),i=As(r);i&&e.push({...i,format:"markdown_json",rawMatch:s[0]})}catch{}return e}function i0(n){let e=[],t=/\{\s*"function"\s*:/g,s;for(;(s=t.exec(n))!==null;){let r=ag(n,s.index);if(r)try{let i=JSON.parse(r),o=As(i);o&&e.push({...o,format:"function_call",rawMatch:r})}catch{}}return e}function o0(n){let e=[],t=/\{\s*"(?:name|tool)"\s*:/g,s;for(;(s=t.exec(n))!==null;){let r=ag(n,s.index);if(r)try{let i=JSON.parse(r),o=As(i);o&&e.push({...o,format:"json_object",rawMatch:r})}catch{}}return e}function a0(n){let e=[],t=/<<?tool[-_]call\s*>>?([\s\S]*?)(?:<<?\/tool[-_]call\s*>>?|$)/gi,s,r=!1;for(;(s=t.exec(n))!==null;){let i=s[1],o=/<function=([^>]+)>/i.exec(i);if(o){r=!0;let a=o[1].trim(),l={},u=/<parameter=([^>]+)>([\s\S]*?)<\/parameter>/gi,d;for(;(d=u.exec(i))!==null;){let f=d[1].trim(),h=d[2].trim();h==="true"?h=!0:h==="false"?h=!1:!isNaN(Number(h))&&h!==""&&(h=Number(h)),l[f]=h}e.push({tool:a,args:l,format:"xml_parameters",rawMatch:s[0]})}}if(!r&&/<function=([^>]+)>/i.test(n)){let i=/<function=([^>]+)>/i.exec(n);if(i){let o=i[1].trim(),a={},l=/<parameter=([^>]+)>([\s\S]*?)<\/parameter>/gi,u;for(;(u=l.exec(n))!==null;){let d=u[1].trim(),f=u[2].trim();f==="true"?f=!0:f==="false"?f=!1:!isNaN(Number(f))&&f!==""&&(f=Number(f)),a[d]=f}e.push({tool:o,args:a,format:"xml_parameters",rawMatch:n})}}return e}function cg(){return Kl||(Kl=new Wl),Kl}var It,zr,og,Vr,ql,Wl,Kl,ug=L(()=>{"use strict";It=O(require("fs")),zr=O(require("path")),og=O(require("os")),Vr=zr.join(og.homedir(),".hablas","model-formats.json");ql=[{format:"xml_tool_call_wrapper",parse:n0},{format:"xml_prompt",parse:s0},{format:"xml_tags",parse:e0},{format:"xml_parameters",parse:a0},{format:"hermes",parse:t0},{format:"markdown_json",parse:r0},{format:"function_call",parse:i0},{format:"json_object",parse:o0}],Wl=class{registry;constructor(){this.registry=X$()}parse(e,t,s){if(t&&Array.isArray(t)&&t.length>0){let i=t.filter(o=>o?.function?.name&&typeof o.function.name=="string");if(i.length>0){let o=i.map(a=>({function:{name:a.function.name,arguments:a.function.arguments||{}}}));return s&&this.learnFormat(s,"native"),{toolCalls:o,displayContent:(e||"").trim(),format:"native"}}}let r=e||"";if(!r.trim())return{toolCalls:[],displayContent:"",format:"unknown"};if(s){let i=this.registry[s];if(i&&i.format!=="native"){let o=ql.find(a=>a.format===i.format);if(o){let a=o.parse(r);if(a.length>0)return this.learnFormat(s,i.format),this.buildResult(a,r)}}}for(let{parse:i}of ql){let o=i(r);if(o.length>0){let a=o[0].format;return s&&this.learnFormat(s,a),this.buildResult(o,r)}}return{toolCalls:[],displayContent:r.trim(),format:"unknown"}}mightContainToolCall(e){if(!e)return!1;let t=e.trim();return!!(/<<?tool[-_]call[\s>]/i.test(t)||/<function=/i.test(t)||t.includes("```tool_call")||t.includes("```json")&&t.includes('"name"')||/<<?(?:read_file|write_file|run_command|edit_file|search_codebase|create_dir|delete_file|list_dir|append_to_file|patch_file|move_file|get_file_info)[\s>]/i.test(t)||t.startsWith("{")&&(t.includes('"name"')||t.includes('"tool"'))&&(t.includes('"arguments"')||t.includes('"args"')||t.includes('"parameters"'))||t.includes('"function"')&&t.includes('"name"'))}detectFormat(e){for(let{format:t,parse:s}of ql)if(s(e).length>0)return t;return"unknown"}learnFormat(e,t){let s=this.registry[e];s&&s.format===t?(s.successCount++,s.lastUsed=new Date().toISOString()):this.registry[e]={format:t,successCount:1,lastUsed:new Date().toISOString()},Q$(this.registry)}getLearnedFormat(e){return this.registry[e]?.format??null}getLearnedFormats(){let e={};for(let[t,s]of Object.entries(this.registry))e[t]={format:s.format,successCount:s.successCount};return e}buildResult(e,t){let s=e.map(o=>({function:{name:o.tool,arguments:o.args}})),r=t,i=[...e].sort((o,a)=>a.rawMatch.length-o.rawMatch.length);for(let o of i)r=r.replace(o.rawMatch,"");return r=r.replace(/<<?thinking>>?[\s\S]*?<<?\/thinking>>?/gi,""),r=r.replace(/<<?think>>?[\s\S]*?<<?\/think>>?/gi,""),r=r.replace(/\n{3,}/g,`
927
928
 
928
- `),{toolCalls:s,displayContent:r.trim(),format:e[0]?.format??"unknown"}}},Kl=null});function c0(n,e,t){let r=cg().parse(e,n,t);return{toolCalls:r.toolCalls,displayContent:r.displayContent}}function u0(n,e){return n==="write_file"&&typeof e.path=="string"?`create ${e.path}`:(n==="edit_file"||n==="patch_file"||n==="search_and_replace")&&typeof e.path=="string"?`modify ${e.path}`:n==="read_file"&&typeof e.path=="string"?`read ${e.path}`:n==="run_command"&&typeof e.command=="string"?String(e.command).slice(0,80):typeof e.path=="string"?String(e.path):n.replace(/_/g," ")}function d0(n){let e=(n||"").toLowerCase();return e.includes("eacces")||e.includes("permission")||e.includes("enospc")||e.includes("readonly")||e.includes("security")||e.includes("[write_file]")||e.includes("[delete_file]")||e.includes("[move_file]")||e.includes("[search_and_replace]")}async function pg(n,e,t,s){let r=0,i=Date.now();for(;r<=fg;){let o=await n.execute({name:e,arguments:t});if(o.success||r>=fg)return{success:o.success,output:o.output,error:o.error,duration:Date.now()-i,retries:r};r++,s.info({tool:e,retry:r,error:o.error},"Retrying tool"),await new Promise(a=>setTimeout(a,500))}return{success:!1,output:"",error:"Max retries exceeded",duration:Date.now()-i,retries:r}}async function Yr(n){let{identity:e,client:t,registry:s,session:r,contextManager:i,logger:o,io:a={},safetyPolicy:l,abortSignal:u,skipTools:d}=n,f=n.reactEngine??Ss(),h=n.errorRecovery??_s(),m=d?[]:s.getOllamaTools(),p=t.getModel(),g=n.maxIterations??l0,S=[],w=[],$=[],k="",y=0,v=!1;for(;y<g;){if(y++,u?.aborted)return{output:k,toolsUsed:Kt(S),toolResults:w,touchedFiles:Kt($),iterations:y,success:!1,error:"Aborted",completedNaturally:v};let b=f.buildBudgetWarningPrompt();b&&r.addUserMessage(b,{priority:"critical",tags:["system-budget"]});let x;try{x=await t.chatWithTools(r.getMessages(),m,u)}catch(W){let E=W;if(E.name==="AbortError"||u?.aborted)return{output:k,toolsUsed:Kt(S),toolResults:w,touchedFiles:Kt($),iterations:y,success:!1,error:"Aborted",completedNaturally:v};if(y<=1){a.onNotice?.(`Transient model error: ${E.message??"unknown"} \u2014 retrying\u2026`,"retry"),await new Promise(A=>setTimeout(A,1e3)),y--;continue}return a.onError?.(E.message??"Model request failed"),{output:k,toolsUsed:Kt(S),toolResults:w,touchedFiles:Kt($),iterations:y,success:!1,error:E.message,completedNaturally:v}}let _=x.message?.content||"",T=x.message?.tool_calls,P=f.parseThinking(_);P.hasThinking&&(f.recordStep({thought:P.thinking}),o.debug({thinking:P.thinking.slice(0,200)},"ReAct thinking"));let{toolCalls:C,displayContent:F}=c0(T,_,p);if(F&&F.trim()&&(k=F,await a.onAssistantText?.(F,e)),C.length===0){r.addAssistantMessage(_,void 0,e.role),v=!0;break}r.addAssistantMessage(_,C,e.role);let H=C.length;for(let W=0;W<C.length;W++){let E=C[W];if(!E?.function?.name)continue;let A=E.function.name,V=E.function.arguments||{},U=s.getSafetyLevel(A)??"confirm";if(!s.get(A)){a.onNotice?.(`Unknown tool: ${A} \u2014 skipping`,"warn"),r.addToolMessage(`Error: Unknown tool "${A}". Available: ${s.getAll().map(Re=>Re.name).join(", ")}`);continue}if(await l(A,U,V)==="skip"){r.addToolMessage(`Tool ${A} was skipped by policy/user.`);break}S.push(A),typeof V.path=="string"&&$.push(V.path);let te=u0(A,V);a.onToolStart?.(A,te,V),a.onToolCall?.(),f.recordStep({thought:P.hasThinking?`Executing: ${A}`:"",action:A,actionInput:V});let J=await pg(s,A,V,o);a.onToolEnd?.(A,J.success,J.error||J.output,J.duration,V);let de;if(J.success)de=ps(J.output,dg),f.recordObservation(de.slice(0,300)),w.push({tool:A,success:!0,summary:J.output.slice(0,150)});else{let Re=J.error||"Unknown error",oe=h.analyze(A,Re,V);if(de=h.buildRecoveryMessage(oe,Re),f.recordObservation(`FAILED: ${Re}`,`Recovery: ${oe.strategy} \u2014 ${oe.suggestion}`),o.info({tool:A,errorClass:oe.errorClass,strategy:oe.strategy},"Error recovery analysis"),w.push({tool:A,success:!1,summary:Re.slice(0,150)}),oe.autoRetry&&!f.isOverBudget()){a.onNotice?.("Auto-retrying (transient error)\u2026","retry");let X=await pg(s,A,V,o);a.onToolEnd?.(A,X.success,X.output,X.duration,V),X.success&&(de=ps(X.output,dg),f.recordObservation(de.slice(0,300),"Auto-retry succeeded"),w[w.length-1]={tool:A,success:!0,summary:X.output.slice(0,150)})}}if(r.addToolMessage(de),J.success&&A==="read_file"&&typeof V.path=="string"&&i?.addFile(V.path,J.output),o.info({tool:A,success:J.success,durationMs:J.duration,retries:J.retries},"Tool executed"),!J.success&&d0(J.error)){a.onNotice?.("Critical tool failure \u2014 aborting subsequent tool executions.","warn");break}H>1&&W<H-1}f.isOverBudget()&&a.onNotice?.(`Reached max reasoning steps (${f.getConfig().maxSteps}). Wrapping up.`,"warn")}return y>=g&&!v&&a.onNotice?.(`Reached max iterations (${g}). Stopping.`,"warn"),o.info({summary:f.getTurnSummary(),agent:e.name},"Agentic turn completed"),{output:k,toolsUsed:Kt(S),toolResults:w,touchedFiles:Kt($),iterations:y,success:!0,completedNaturally:v}}function Kt(n){return[...new Set(n)]}function hg(n){return async(e,t)=>{let s=e.replace(/_/g," ");return!n.autoMode&&n.interactive?t==="confirm"&&n.confirm?await n.confirm(`Proceed with ${s}?`)?"allow":"skip":t==="dangerous"&&n.confirmDangerous?await n.confirmDangerous(`Dangerous: ${s}`)?"allow":"skip":"allow":!n.autoMode&&t==="dangerous"?"skip":"allow"}}function mg(){return(n,e)=>e==="dangerous"?"skip":"allow"}var l0,dg,fg,Gl=L(()=>{"use strict";wa();Hl();Ul();ug();l0=600,dg=2e3,fg=2});var yg,f0,p0,h0,gg,Dn,bg=L(()=>{"use strict";yg=O(Nl());Wn();Sa();xa();Ws();ji();Ka();Gl();f0={hablas:"planner",bob:"architect",alex:"coder",david:"researcher",emma:"product-manager"},p0=(0,yg.default)({level:"silent"}),h0=200,gg={hablas:{role:"hablas",model:"stepfun-ai/step-3.7-flash",temperature:.7},bob:{role:"bob",model:"stepfun-ai/step-3.7-flash",temperature:.4},alex:{role:"alex",model:"stepfun-ai/step-3.7-flash",temperature:.2},david:{role:"david",model:"stepfun-ai/step-3.7-flash",temperature:.5},emma:{role:"emma",model:"stepfun-ai/step-3.7-flash",temperature:.6}},Dn=class{baseConfig;agentModels;toolRegistry=null;onOutput=null;channel=null;mindsetRegistry=$r();sharedContext=null;contextManager;constructor(e){this.baseConfig=e,this.agentModels=zt(),this.contextManager=new sn(e)}setSharedContext(e){this.sharedContext=e}setChannel(e){this.channel=e}setToolRegistry(e){this.toolRegistry=e}setOutputCallback(e){this.onOutput=e}reloadModels(){this.agentModels=zt()}getAgentModel(e){let t=this.agentModels[e];if(t)return{model:t.model,temperature:t.temperature??gg[e]?.temperature??.5};let s=gg[e];return{model:s.model,temperature:s.temperature??.5}}async runAgent(e,t,s,r,i){let o=Date.now(),a=we.find(y=>y.role===e)||{name:String(e),title:"Specialist",role:e,description:"",expertise:[]},l=this.getAgentModel(e),u=i?.maxIterations||h0,d={...this.baseConfig,model:l.model},f=Pe(d),h=this.buildAgentPrompt(a,s),m=new rn(h,200,this.baseConfig.contextBudget);m.addUserMessage(t);let p=a?.name||String(e),g=a?.title||"Specialist",S={name:p,title:g,role:e};this.emit(a.name,"thinking",`\u2605 Hablas \u2192 Delegating to @${a.name} (${a.title})...`);let w={onAssistantText:y=>{this.emit(a.name,"speaking",y.slice(0,200))},onToolStart:(y,v,b)=>{this.emit(a.name,"tool",v),this.channel&&this.channel.emitEvent({type:"act",agent:a.name,toolName:y,toolArgs:this.safeArgs(b),content:v})},onToolEnd:(y,v,b)=>{this.channel&&this.channel.emitEvent({type:"observe",agent:a.name,toolName:y,success:v,content:v?this.summarizeOk(y,b):`error: ${b.slice(0,120)}`})},onError:y=>this.emit(a.name,"error",y)},$=await Yr({identity:S,client:f,registry:this.toolRegistry,session:m,contextManager:this.contextManager,logger:p0,io:w,safetyPolicy:mg(),abortSignal:i?.abortSignal,skipTools:(!r||r.length===0,!1),maxIterations:u});if(this.sharedContext&&$.touchedFiles.length)try{this.sharedContext.set(`files:@${a.name}`,$.touchedFiles.join(", "))}catch{}let k=$.touchedFiles.length?[`@${a.name} touched: ${$.touchedFiles.join(", ")}`]:[];return{agent:e,agentName:a.name,output:$.output||($.success?"Done.":$.error??"No output"),toolsUsed:$.toolsUsed,toolResults:$.toolResults,duration:Date.now()-o,iterations:$.iterations,success:$.success,error:$.error,discoveries:k,touchedFiles:$.touchedFiles}}async runSequential(e,t,s){let r=[],i="",o=[];for(let a=0;a<e.length;a++){let{role:l,task:u}=e[a];if(s?.abortSignal?.aborted)break;let d=[];if(i&&(d.push("## Previous Agent Results"),d.push(i)),o.length>0){d.push(`
929
+ `),{toolCalls:s,displayContent:r.trim(),format:e[0]?.format??"unknown"}}},Kl=null});function c0(n,e,t){let r=cg().parse(e,n,t);return{toolCalls:r.toolCalls,displayContent:r.displayContent}}function u0(n,e){return n==="write_file"&&typeof e.path=="string"?`create ${e.path}`:(n==="edit_file"||n==="patch_file"||n==="search_and_replace")&&typeof e.path=="string"?`modify ${e.path}`:n==="read_file"&&typeof e.path=="string"?`read ${e.path}`:n==="run_command"&&typeof e.command=="string"?String(e.command).slice(0,80):typeof e.path=="string"?String(e.path):n.replace(/_/g," ")}function d0(n){let e=(n||"").toLowerCase();return e.includes("eacces")||e.includes("permission")||e.includes("enospc")||e.includes("readonly")||e.includes("security")||e.includes("[write_file]")||e.includes("[delete_file]")||e.includes("[move_file]")||e.includes("[search_and_replace]")}async function pg(n,e,t,s){let r=0,i=Date.now();for(;r<=fg;){let o=await n.execute({name:e,arguments:t});if(o.success||r>=fg)return{success:o.success,output:o.output,error:o.error,duration:Date.now()-i,retries:r};r++,s.info({tool:e,retry:r,error:o.error},"Retrying tool"),await new Promise(a=>setTimeout(a,500))}return{success:!1,output:"",error:"Max retries exceeded",duration:Date.now()-i,retries:r}}async function Yr(n){let{identity:e,client:t,registry:s,session:r,contextManager:i,logger:o,io:a={},safetyPolicy:l,abortSignal:u,skipTools:d}=n,f=n.reactEngine??Ss(),h=n.errorRecovery??_s(),m=d?[]:s.getOllamaTools(),p=t.getModel(),g=n.maxIterations??l0,S=[],x=[],$=[],k="",y=0,b=!1;for(;y<g;){if(y++,u?.aborted)return{output:k,toolsUsed:Kt(S),toolResults:x,touchedFiles:Kt($),iterations:y,success:!1,error:"Aborted",completedNaturally:b};let v=f.buildBudgetWarningPrompt();v&&r.addUserMessage(v,{priority:"critical",tags:["system-budget"]});let w;try{w=await t.chatWithTools(r.getMessages(),m,u)}catch(W){let E=W;if(E.name==="AbortError"||u?.aborted)return{output:k,toolsUsed:Kt(S),toolResults:x,touchedFiles:Kt($),iterations:y,success:!1,error:"Aborted",completedNaturally:b};if(y<=1){a.onNotice?.(`Transient model error: ${E.message??"unknown"} \u2014 retrying\u2026`,"retry"),await new Promise(A=>setTimeout(A,1e3)),y--;continue}return a.onError?.(E.message??"Model request failed"),{output:k,toolsUsed:Kt(S),toolResults:x,touchedFiles:Kt($),iterations:y,success:!1,error:E.message,completedNaturally:b}}let _=w.message?.content||"",T=w.message?.tool_calls,P=f.parseThinking(_);P.hasThinking&&(f.recordStep({thought:P.thinking}),o.debug({thinking:P.thinking.slice(0,200)},"ReAct thinking"));let{toolCalls:C,displayContent:F}=c0(T,_,p);if(F&&F.trim()&&(k=F,await a.onAssistantText?.(F,e)),C.length===0){r.addAssistantMessage(_,void 0,e.role),b=!0;break}r.addAssistantMessage(_,C,e.role);let H=C.length;for(let W=0;W<C.length;W++){let E=C[W];if(!E?.function?.name)continue;let A=E.function.name,V=E.function.arguments||{},U=s.getSafetyLevel(A)??"confirm";if(!s.get(A)){a.onNotice?.(`Unknown tool: ${A} \u2014 skipping`,"warn"),r.addToolMessage(`Error: Unknown tool "${A}". Available: ${s.getAll().map(Re=>Re.name).join(", ")}`);continue}if(await l(A,U,V)==="skip"){r.addToolMessage(`Tool ${A} was skipped by policy/user.`);break}S.push(A),typeof V.path=="string"&&$.push(V.path);let te=u0(A,V);a.onToolStart?.(A,te,V),a.onToolCall?.(),f.recordStep({thought:P.hasThinking?`Executing: ${A}`:"",action:A,actionInput:V});let J=await pg(s,A,V,o);a.onToolEnd?.(A,J.success,J.error||J.output,J.duration,V);let de;if(J.success)de=ps(J.output,dg),f.recordObservation(de.slice(0,300)),x.push({tool:A,success:!0,summary:J.output.slice(0,150)});else{let Re=J.error||"Unknown error",oe=h.analyze(A,Re,V);if(de=h.buildRecoveryMessage(oe,Re),f.recordObservation(`FAILED: ${Re}`,`Recovery: ${oe.strategy} \u2014 ${oe.suggestion}`),o.info({tool:A,errorClass:oe.errorClass,strategy:oe.strategy},"Error recovery analysis"),x.push({tool:A,success:!1,summary:Re.slice(0,150)}),oe.autoRetry&&!f.isOverBudget()){a.onNotice?.("Auto-retrying (transient error)\u2026","retry");let X=await pg(s,A,V,o);a.onToolEnd?.(A,X.success,X.output,X.duration,V),X.success&&(de=ps(X.output,dg),f.recordObservation(de.slice(0,300),"Auto-retry succeeded"),x[x.length-1]={tool:A,success:!0,summary:X.output.slice(0,150)})}}if(r.addToolMessage(de),J.success&&A==="read_file"&&typeof V.path=="string"&&i?.addFile(V.path,J.output),o.info({tool:A,success:J.success,durationMs:J.duration,retries:J.retries},"Tool executed"),!J.success&&d0(J.error)){a.onNotice?.("Critical tool failure \u2014 aborting subsequent tool executions.","warn");break}H>1&&W<H-1}f.isOverBudget()&&a.onNotice?.(`Reached max reasoning steps (${f.getConfig().maxSteps}). Wrapping up.`,"warn")}return y>=g&&!b&&a.onNotice?.(`Reached max iterations (${g}). Stopping.`,"warn"),o.info({summary:f.getTurnSummary(),agent:e.name},"Agentic turn completed"),{output:k,toolsUsed:Kt(S),toolResults:x,touchedFiles:Kt($),iterations:y,success:!0,completedNaturally:b}}function Kt(n){return[...new Set(n)]}function hg(n){return async(e,t)=>{let s=e.replace(/_/g," ");return!n.autoMode&&n.interactive?t==="confirm"&&n.confirm?await n.confirm(`Proceed with ${s}?`)?"allow":"skip":t==="dangerous"&&n.confirmDangerous?await n.confirmDangerous(`Dangerous: ${s}`)?"allow":"skip":"allow":!n.autoMode&&t==="dangerous"?"skip":"allow"}}function mg(){return(n,e)=>e==="dangerous"?"skip":"allow"}var l0,dg,fg,Gl=L(()=>{"use strict";wa();Hl();Ul();ug();l0=600,dg=2e3,fg=2});var yg,f0,p0,h0,gg,Dn,bg=L(()=>{"use strict";yg=O(Nl());Wn();Sa();xa();Ws();ji();Ka();Gl();f0={hablas:"planner",bob:"architect",alex:"coder",david:"researcher",emma:"product-manager"},p0=(0,yg.default)({level:"silent"}),h0=200,gg={hablas:{role:"hablas",model:"stepfun-ai/step-3.7-flash",temperature:.7},bob:{role:"bob",model:"stepfun-ai/step-3.7-flash",temperature:.4},alex:{role:"alex",model:"stepfun-ai/step-3.7-flash",temperature:.2},david:{role:"david",model:"stepfun-ai/step-3.7-flash",temperature:.5},emma:{role:"emma",model:"stepfun-ai/step-3.7-flash",temperature:.6}},Dn=class{baseConfig;agentModels;toolRegistry=null;onOutput=null;channel=null;mindsetRegistry=$r();sharedContext=null;contextManager;constructor(e){this.baseConfig=e,this.agentModels=zt(),this.contextManager=new sn(e)}setSharedContext(e){this.sharedContext=e}setChannel(e){this.channel=e}setToolRegistry(e){this.toolRegistry=e}setOutputCallback(e){this.onOutput=e}reloadModels(){this.agentModels=zt()}getAgentModel(e){let t=this.agentModels[e];if(t)return{model:t.model,temperature:t.temperature??gg[e]?.temperature??.5};let s=gg[e];return{model:s.model,temperature:s.temperature??.5}}async runAgent(e,t,s,r,i){let o=Date.now(),a=we.find(y=>y.role===e)||{name:String(e),title:"Specialist",role:e,description:"",expertise:[]},l=this.getAgentModel(e),u=i?.maxIterations||h0,d={...this.baseConfig,model:l.model},f=Pe(d),h=this.buildAgentPrompt(a,s),m=new rn(h,200,this.baseConfig.contextBudget);m.addUserMessage(t);let p=a?.name||String(e),g=a?.title||"Specialist",S={name:p,title:g,role:e};this.emit(a.name,"thinking",`\u2605 Hablas \u2192 Delegating to @${a.name} (${a.title})...`);let x={onAssistantText:y=>{this.emit(a.name,"speaking",y.slice(0,200))},onToolStart:(y,b,v)=>{this.emit(a.name,"tool",b),this.channel&&this.channel.emitEvent({type:"act",agent:a.name,toolName:y,toolArgs:this.safeArgs(v),content:b})},onToolEnd:(y,b,v)=>{this.channel&&this.channel.emitEvent({type:"observe",agent:a.name,toolName:y,success:b,content:b?this.summarizeOk(y,v):`error: ${v.slice(0,120)}`})},onError:y=>this.emit(a.name,"error",y)},$=await Yr({identity:S,client:f,registry:this.toolRegistry,session:m,contextManager:this.contextManager,logger:p0,io:x,safetyPolicy:mg(),abortSignal:i?.abortSignal,skipTools:(!r||r.length===0,!1),maxIterations:u});if(this.sharedContext&&$.touchedFiles.length)try{this.sharedContext.set(`files:@${a.name}`,$.touchedFiles.join(", "))}catch{}let k=$.touchedFiles.length?[`@${a.name} touched: ${$.touchedFiles.join(", ")}`]:[];return{agent:e,agentName:a.name,output:$.output||($.success?"Done.":$.error??"No output"),toolsUsed:$.toolsUsed,toolResults:$.toolResults,duration:Date.now()-o,iterations:$.iterations,success:$.success,error:$.error,discoveries:k,touchedFiles:$.touchedFiles}}async runSequential(e,t,s){let r=[],i="",o=[];for(let a=0;a<e.length;a++){let{role:l,task:u}=e[a];if(s?.abortSignal?.aborted)break;let d=[];if(i&&(d.push("## Previous Agent Results"),d.push(i)),o.length>0){d.push(`
929
930
  ## Handoff Chain`);for(let p of o)d.push(`- @${p.from} \u2192 @${p.to}: ${p.context.slice(0,100)}`)}let f=d.join(`
930
931
  `),h=we.find(p=>p.role===l);if(h&&a>0){let p=e[a-1].role,g=we.find(S=>S.role===p);this.emit(h.name,"thinking",`\u2605 Handoff: @${g?.name||p} \u2192 @${h.name} (${h.title})`)}let m=await this.runAgent(l,u,f,t,s);if(r.push(m),m.success&&m.output){let p=m.output.length>600?m.output.slice(0,600)+"...":m.output;i+=`
931
932
 
@@ -1050,7 +1051,7 @@ ${t.content}`).join(`
1050
1051
  ${t}
1051
1052
  `);this.write("CONTEXT.md",r)}ensureDir(){se.existsSync(this.contextDir)||se.mkdirSync(this.contextDir,{recursive:!0})}}});function zl(n){return we.find(e=>e.role===n)?.name||n}var jn,kg=L(()=>{"use strict";Ws();Vl();jn=class{channel;runner;chat;constructor(e,t,s,r){this.channel=e,this.runner=t,this.chat=s,this.runner.setChannel(e),this.chat.resetBudget()}async run(e,t,s,r={}){this.chat.setAbortSignal(r.abortSignal);let i=r.peerReview!==!1,o=r.centralizedToLeader===!0,a=new Nn(process.cwd());this.runner.setSharedContext(a),this.channel.emitEvent({type:"phase",agent:"System",content:"Delegating to the team"});let l=t.tasks.filter(m=>m.role!=="hablas").map(m=>({role:m.role,task:`${m.description}
1052
1053
 
1053
- Original request: ${e}`})),u=[],d="hablas",f=null;for(let m of l){if(r.abortSignal?.aborted)break;let p=we.find(w=>w.role===m.role);if(!p)continue;if(!o){this.channel.emitEvent({type:"handoff",agent:zl(d),to:p.name});let w=await this.chat.generateHandoffLine(d,m.role,m.task);this.channel.emitEvent({type:"speak",agent:zl(d),to:p.name,content:w});let $=await this.chat.generateAckLine(m.role,d);this.channel.emitEvent({type:"speak",agent:p.name,to:zl(d),content:$})}let g=Date.now(),S=await this.runner.runAgent(m.role,m.task,void 0,s,{abortSignal:r.abortSignal});u.push(S),S.success&&S.output?(this.channel.emitEvent({type:"summary",agent:p.name,durationMs:Date.now()-g}),m.role==="alex"&&(f=S.output),i&&m.role==="alex"&&t.tasks.some(w=>w.role==="bob")&&f&&await this.runPeerReview("bob","alex",f,r.abortSignal,o)):S.error&&this.channel.emitEvent({type:"error",agent:p.name,content:S.error}),d=m.role}this.channel.emitEvent({type:"phase",agent:"System",content:"Hablas compiling final report"});let h=await this.synthesize(e,u,s,r.abortSignal);return this.channel.emitEvent({type:"done",agent:"Hablas"}),h}async runPeerReview(e,t,s,r,i=!1){let o=we.find(l=>l.role===e),a=we.find(l=>l.role===t);if(!(!o||!a)){if(!i){let l=await this.chat.generateReviewLine(e,t,s);this.channel.emitEvent({type:"review",agent:o.name,to:a.name,content:l});let u=await this.chat.generateReviewAck(t,e);this.channel.emitEvent({type:"speak",agent:a.name,to:o.name,content:u})}r?.aborted}}async synthesize(e,t,s,r){let i=t.filter(d=>d.success&&d.output);if(i.length===0)return{results:t,finalSynthesis:"The team encountered errors and could not complete the task. Please review the logs and try again.",synthesisOk:!1};let o=i.map(d=>{let f=we.find(h=>h.role===d.agent);return`### Report from @${d.agentName} (${f?.title??d.agent}):
1054
+ Original request: ${e}`})),u=[],d="hablas",f=null;for(let m of l){if(r.abortSignal?.aborted)break;let p=we.find(x=>x.role===m.role);if(!p)continue;if(!o){this.channel.emitEvent({type:"handoff",agent:zl(d),to:p.name});let x=await this.chat.generateHandoffLine(d,m.role,m.task);this.channel.emitEvent({type:"speak",agent:zl(d),to:p.name,content:x});let $=await this.chat.generateAckLine(m.role,d);this.channel.emitEvent({type:"speak",agent:p.name,to:zl(d),content:$})}let g=Date.now(),S=await this.runner.runAgent(m.role,m.task,void 0,s,{abortSignal:r.abortSignal});u.push(S),S.success&&S.output?(this.channel.emitEvent({type:"summary",agent:p.name,durationMs:Date.now()-g}),m.role==="alex"&&(f=S.output),i&&m.role==="alex"&&t.tasks.some(x=>x.role==="bob")&&f&&await this.runPeerReview("bob","alex",f,r.abortSignal,o)):S.error&&this.channel.emitEvent({type:"error",agent:p.name,content:S.error}),d=m.role}this.channel.emitEvent({type:"phase",agent:"System",content:"Hablas compiling final report"});let h=await this.synthesize(e,u,s,r.abortSignal);return this.channel.emitEvent({type:"done",agent:"Hablas"}),h}async runPeerReview(e,t,s,r,i=!1){let o=we.find(l=>l.role===e),a=we.find(l=>l.role===t);if(!(!o||!a)){if(!i){let l=await this.chat.generateReviewLine(e,t,s);this.channel.emitEvent({type:"review",agent:o.name,to:a.name,content:l});let u=await this.chat.generateReviewAck(t,e);this.channel.emitEvent({type:"speak",agent:a.name,to:o.name,content:u})}r?.aborted}}async synthesize(e,t,s,r){let i=t.filter(d=>d.success&&d.output);if(i.length===0)return{results:t,finalSynthesis:"The team encountered errors and could not complete the task. Please review the logs and try again.",synthesisOk:!1};let o=i.map(d=>{let f=we.find(h=>h.role===d.agent);return`### Report from @${d.agentName} (${f?.title??d.agent}):
1054
1055
  ${d.output}`}).join(`
1055
1056
 
1056
1057
  `),a=`You are Hablas, the Team Leader. Your team has completed a multi-agent workflow for the user's request: "${e}".
@@ -1183,19 +1184,19 @@ ${d}`),o+=d.length}}}extractSection(e,t){let s=e.split(`
1183
1184
  `).length,p=Math.ceil(h.length/4);if(p>4e3){let g=h.split(`
1184
1185
  `).slice(0,200).join(`
1185
1186
  `)+`
1186
- ...(truncated)`,S=Math.ceil(g.length/4);u+S<=r&&(a.push({path:d,content:g,source:"mentioned",lineCount:200}),u+=S)}else if(u+p<=r&&(a.push({path:d,content:h,source:"mentioned",lineCount:m}),u+=p,i)){let g=E0(h,d,e);for(let S of g.slice(0,5)){if(a.length>=s||u>=r)break;if(!l.has(S)){l.add(S);try{let w=Ce.resolve(e,S),$=lt.readFileSync(w,"utf-8"),k=Math.ceil($.length/4),y=$.split(`
1187
- `).length;if(k>2e3){let v=$.split(`
1187
+ ...(truncated)`,S=Math.ceil(g.length/4);u+S<=r&&(a.push({path:d,content:g,source:"mentioned",lineCount:200}),u+=S)}else if(u+p<=r&&(a.push({path:d,content:h,source:"mentioned",lineCount:m}),u+=p,i)){let g=E0(h,d,e);for(let S of g.slice(0,5)){if(a.length>=s||u>=r)break;if(!l.has(S)){l.add(S);try{let x=Ce.resolve(e,S),$=lt.readFileSync(x,"utf-8"),k=Math.ceil($.length/4),y=$.split(`
1188
+ `).length;if(k>2e3){let b=$.split(`
1188
1189
  `).slice(0,100).join(`
1189
1190
  `)+`
1190
- ...(truncated)`,b=Math.ceil(v.length/4);u+b<=r&&(a.push({path:S,content:v,source:"imported",lineCount:100}),u+=b)}else u+k<=r&&(a.push({path:S,content:$,source:"imported",lineCount:y}),u+=k)}catch{}}}}}catch{}}}return{files:a,totalTokensEstimate:u,mentionedPaths:o}}function Ng(n){if(n.files.length===0)return"";let e=["## Referenced Files"];for(let t of n.files){let s=t.source==="imported"?" (imported)":"";e.push(`### ${t.path}${s} (${t.lineCount} lines)`),e.push("```"),e.push(t.content),e.push("```")}return e.join(`
1191
- `)}var lt,Ce,Ig,Dg,Lg,jg=L(()=>{"use strict";lt=O(require("fs")),Ce=O(require("path")),Ig=/(?:^|\s|['"`])([.\w\-/\\]+\.(?:ts|js|tsx|jsx|py|go|rs|java|c|cpp|h|css|scss|html|vue|svelte|json|yaml|yml|toml|md|sql|sh|env|xml))\b/gi,Dg=/(?:import\s+.*?\s+from\s+['"]([^'"]+)['"]|require\s*\(\s*['"]([^'"]+)['"]\s*\))/g,Lg=/(?:from\s+(\S+)\s+import|import\s+(\S+))/g});var Bg={};Le(Bg,{runSetupWizard:()=>Yl});function be(n,e){return new Promise(t=>{n.question(e,s=>t(s))})}function O0(){return["nvapi-","qJRIIcL3SbN6s91CK-","gk2DtzlHbUnaYvGJk","AoIohOTcABSY5lll","Kdwfj_fO_b55h"].join("")}async function Yl(n){let e=Hg.createInterface({input:process.stdin,output:process.stdout});switch(console.log(),console.log(`${xt}${Ee} \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501${I}`),console.log(`${xt}${Ee} hablas \u2014 Setup Wizard${I}`),console.log(`${q} Configure your AI provider and model${I}`),console.log(`${xt}${Ee} \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501${I}`),console.log(),console.log(`${xt} Choose your setup:${I}`),console.log(),console.log(` ${R0}${xt}1${I}. ${xt}Hablas Integrated Engine${I} ${ct}(instant \u2014 no setup needed)${I}`),console.log(` ${q}Pre-configured cloud AI, ready to use immediately${I}`),console.log(),console.log(` ${Ee}${xt}2${I}. ${xt}Custom Provider${I} ${q}(bring your own API key)${I}`),console.log(` ${q}Choose from Ollama, OpenAI, Groq, OpenRouter, and more${I}`),console.log(),(await be(e,` ${q}Your choice (1-2):${I} `)).trim()){case"1":{n.provider=Wt.provider,n.apiUrl=Wt.apiUrl,n.apiKey=O0(),n.model=Wt.model,gt(n),Qe({name:Wt.name,apiUrl:Wt.apiUrl,apiKey:n.apiKey,models:["stepfun-ai/step-3.7-flash","nvidia/llama-3.3-70b-instruct","deepseek-ai/deepseek-r1"],defaultModel:Wt.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Hablas Integrated Engine activated!${I}`),console.log(`${q} Model: ${Wt.model}${I}`),console.log(`${q} API: ${Wt.apiUrl}${I}`),console.log(`${q} No API key needed \u2014 everything is pre-configured.${I}`);break}case"2":{switch(console.log(),console.log(`${q} Select your provider:${I}`),console.log(` ${Ee}a${I}. Ollama (local, free, private)`),console.log(` ${Ee}b${I}. OpenAI API`),console.log(` ${Ee}c${I}. Groq (fast, free tier)`),console.log(` ${Ee}d${I}. OpenRouter (many models)`),console.log(` ${Ee}e${I}. Together AI`),console.log(` ${Ee}f${I}. DeepSeek`),console.log(` ${Ee}g${I}. Custom OpenAI-compatible API`),console.log(` ${Ee}h${I}. NVIDIA NIM (powerful cloud models)`),console.log(),(await be(e,` ${q}Your choice (a-h):${I} `)).trim().toLowerCase()){case"a":{n.provider="ollama";let r=await be(e,` ${q}Ollama host [http://localhost:11434]:${I} `);r.trim()&&(n.ollamaHost=r.trim());let i=await be(e,` ${q}Model [qwen2.5-coder:7b]:${I} `);i.trim()&&(n.model=i.trim()),gt(n),console.log(),console.log(`${ct} \u2713 Configured for Ollama${I}`),console.log(`${q} Model: ${n.model}${I}`),console.log(`${q} Host: ${n.ollamaHost}${I}`),console.log(`${q} Make sure Ollama is running: ollama serve${I}`);break}case"b":{let r=await be(e,` ${q}OpenAI API Key (sk-...):${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`);break}let i=await be(e,` ${q}Model [gpt-4o]:${I} `);n.provider="custom",n.apiUrl="https://api.openai.com/v1",n.apiKey=r.trim(),n.model=i.trim()||"gpt-4o",gt(n),Qe({name:"OpenAI",apiUrl:"https://api.openai.com/v1",apiKey:r.trim(),models:["gpt-4o","gpt-4o-mini","gpt-4-turbo","o1","o3-mini"],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for OpenAI${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"c":{let r=await be(e,` ${q}Groq API Key (gsk_...):${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`);break}let i=await be(e,` ${q}Model [llama-3.3-70b-versatile]:${I} `);n.provider="custom",n.apiUrl="https://api.groq.com/openai/v1",n.apiKey=r.trim(),n.model=i.trim()||"llama-3.3-70b-versatile",gt(n),Qe({name:"Groq",apiUrl:"https://api.groq.com/openai/v1",apiKey:r.trim(),models:["llama-3.3-70b-versatile","llama-3.1-70b-versatile","mixtral-8x7b-32768","gemma2-9b-it"],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for Groq${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"d":{let r=await be(e,` ${q}OpenRouter API Key (sk-or-...):${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`);break}let i=await be(e,` ${q}Model [anthropic/claude-3.5-sonnet]:${I} `);n.provider="custom",n.apiUrl="https://openrouter.ai/api/v1",n.apiKey=r.trim(),n.model=i.trim()||"anthropic/claude-3.5-sonnet",gt(n),Qe({name:"OpenRouter",apiUrl:"https://openrouter.ai/api/v1",apiKey:r.trim(),models:["openai/gpt-4o","anthropic/claude-3.5-sonnet","google/gemini-2.0-flash-001","deepseek/deepseek-r1"],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for OpenRouter${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"e":{let r=await be(e,` ${q}Together API Key:${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`);break}let i=await be(e,` ${q}Model [meta-llama/Llama-3.3-70B-Instruct-Turbo]:${I} `);n.provider="custom",n.apiUrl="https://api.together.xyz/v1",n.apiKey=r.trim(),n.model=i.trim()||"meta-llama/Llama-3.3-70B-Instruct-Turbo",gt(n),Qe({name:"Together",apiUrl:"https://api.together.xyz/v1",apiKey:r.trim(),models:["meta-llama/Llama-3.3-70B-Instruct-Turbo","Qwen/Qwen2.5-72B-Instruct-Turbo","deepseek-ai/DeepSeek-R1"],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for Together AI${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"f":{let r=await be(e,` ${q}DeepSeek API Key:${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`);break}let i=await be(e,` ${q}Model [deepseek-chat]:${I} `);n.provider="custom",n.apiUrl="https://api.deepseek.com/v1",n.apiKey=r.trim(),n.model=i.trim()||"deepseek-chat",gt(n),Qe({name:"DeepSeek",apiUrl:"https://api.deepseek.com/v1",apiKey:r.trim(),models:["deepseek-chat","deepseek-coder","deepseek-reasoner"],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for DeepSeek${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"g":{let r=await be(e,` ${q}Provider name:${I} `);if(!r.trim()){console.log(`${wt} \u26A0 Cancelled${I}`);break}let i=await be(e,` ${q}API base URL:${I} `);if(!i.trim()){console.log(`${wt} \u26A0 URL is required \u2014 cancelled${I}`);break}let o=await be(e,` ${q}API Key (leave empty if none):${I} `),a=await be(e,` ${q}Default model ID:${I} `);n.provider="custom",n.apiUrl=i.trim(),n.apiKey=o.trim(),n.model=a.trim()||"default",gt(n),Qe({name:r.trim(),apiUrl:i.trim(),apiKey:o.trim(),models:[n.model],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for ${r.trim()}${I}`),console.log(`${q} URL: ${i.trim()}${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"h":{let r=await be(e,` ${q}NVIDIA API Key (nvapi-...):${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`),console.log(`${q} Get your key at: https://build.nvidia.com/${I}`);break}let{NVIDIA_PROVIDER:i}=await Promise.resolve().then(()=>(Kn(),Sc));console.log(),console.log(`${q} Available NVIDIA models:${I}`),i.models.forEach((u,d)=>{console.log(` ${Ee}${d+1}${I}. ${u}`)}),console.log();let o=await be(e,` ${q}Model number [1]:${I} `),a=parseInt(o.trim())-1,l=i.models[a]||i.defaultModel;n.provider="nvidia",n.apiUrl=i.apiUrl,n.apiKey=r.trim(),n.model=l,gt(n),Qe({name:"NVIDIA",apiUrl:i.apiUrl,apiKey:r.trim(),models:i.models,defaultModel:l,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for NVIDIA NIM${I}`),console.log(`${q} Model: ${l}${I}`),console.log(`${q} API: ${i.apiUrl}${I}`);break}default:console.log(`${wt} \u26A0 Invalid choice${I}`)}break}default:console.log(`${wt} \u26A0 Invalid choice \u2014 please select 1 or 2${I}`)}console.log(),console.log(`${xt}${ct} \u2713 Setup complete!${I}`),console.log(),console.log(`${xt} Start Hablas:${I}`),console.log(),console.log(` ${Ee}hablas${I} \u2192 Interactive REPL`),console.log(` ${Ee}hablas --auto${I} \u2192 Interactive REPL with auto-confirm for tools`),console.log(` ${Ee}hablas run "your prompt"${I} \u2192 One-shot non-interactive prompt`),console.log(),console.log(`${q} Hablas now uses one unified runtime: direct leader handling for simple requests,`),console.log(`${q} and internal specialist coordination for serious engineering work.${I}`),console.log(),e.close()}var Hg,Ee,ct,wt,q,xt,I,R0,Wt,Jl=L(()=>{"use strict";Hg=O(require("readline"));kr();ki();Ee="\x1B[36m",ct="\x1B[32m",wt="\x1B[33m",q="\x1B[2m",xt="\x1B[1m",I="\x1B[0m",R0="\x1B[35m";Wt={provider:"nvidia",apiUrl:"https://integrate.api.nvidia.com/v1",model:"stepfun-ai/step-3.7-flash",name:"Hablas Integrated Engine"}});var Ug=L(()=>{"use strict"});var $s,Xl=L(()=>{"use strict";$s=class{snapshots=new Map;traceEvents=[];initializeFromContract(e){let t={taskContractId:e.id,currentGoal:e.intent,currentStepId:null,completedSteps:[],pendingSteps:[],failedSteps:[],artifacts:{},errors:[],lastUpdated:new Date,traceId:e.traceId};return this.snapshots.set(e.id,t),this.emitTrace({traceId:e.traceId,timestamp:new Date,layer:"StateManager",eventType:"state_initialized",payload:{taskContractId:e.id,intent:e.intent}}),t}getSnapshot(e){return this.snapshots.get(e)}setCurrentStep(e,t){let s=this.snapshots.get(e);if(!s)throw new Error(`No state for task ${e}`);s.currentStepId=t,s.lastUpdated=new Date,this.emitTrace({traceId:s.traceId,timestamp:new Date,layer:"StateManager",eventType:"current_step_updated",payload:{taskContractId:e,stepId:t}})}completeStep(e,t,s={}){let r=this.snapshots.get(e);if(!r)throw new Error(`No state for task ${e}`);r.completedSteps.includes(t)||r.completedSteps.push(t),r.pendingSteps=r.pendingSteps.filter(i=>i!==t),r.artifacts={...r.artifacts,...s},r.lastUpdated=new Date,this.emitTrace({traceId:r.traceId,timestamp:new Date,layer:"StateManager",eventType:"step_completed",payload:{taskContractId:e,stepId:t,artifactsCount:Object.keys(s).length}})}failStep(e,t,s){let r=this.snapshots.get(e);if(!r)throw new Error(`No state for task ${e}`);r.failedSteps.includes(t)||r.failedSteps.push(t),r.errors.push({stepId:t,error:s,timestamp:new Date}),r.lastUpdated=new Date,this.emitTrace({traceId:r.traceId,timestamp:new Date,layer:"StateManager",eventType:"step_failed",payload:{taskContractId:e,stepId:t,error:s}})}recordArtifact(e,t,s){let r=this.snapshots.get(e);if(!r)throw new Error(`No state for task ${e}`);r.artifacts[t]=s,r.lastUpdated=new Date,this.emitTrace({traceId:r.traceId,timestamp:new Date,layer:"StateManager",eventType:"artifact_recorded",payload:{taskContractId:e,key:t}})}getTrace(e){return this.traceEvents.filter(t=>t.traceId===e)}emitTrace(e){this.traceEvents.push(e)}getCurrentSnapshotForTransition(e){return this.getSnapshot(e)}}});var Cs,Ql=L(()=>{"use strict";Cs=class{build(e,t){return{id:`task_${Date.now()}_${Math.random().toString(36).slice(2,9)}`,originalInput:e,intent:this.extractIntent(e,t),risk:this.assessRisk(e,t),requiredTools:this.inferRequiredTools(e,t),requiredAgents:this.inferRequiredAgents(t),requiredMemory:this.inferRequiredMemory(e,t),validationRequired:t.executionPath==="team",stopConditions:this.buildStopConditions(t),completionCriteria:this.buildCompletionCriteria(t),oneStepDelivery:t.specialFlags.oneStepFinished??!1,continuityMode:t.specialFlags.continuityMode??!1,createdAt:new Date,routerDecision:t,traceId:t.traceId}}extractIntent(e,t){return t.taskKind==="analysis"?"Analyze, structure, and advise on the requested work":t.taskKind==="implementation"?"Implement or modify the requested software work":/version|what is|who are you|explain|how does/i.test(e)?"Answer the user directly":"Handle the user request clearly and directly"}assessRisk(e,t){return t.specialFlags.oneStepFinished?"high":t.executionPath==="team"&&t.specialFlags.requiresWrite?"medium":/production|deploy|database|delete|migration/i.test(e)?"high":t.executionPath==="team"?"medium":"low"}inferRequiredTools(e,t){let s=new Set,r=e.toLowerCase();return t.executionPath==="direct"?(/read|check|inspect|status|version|file|package\.json|src\//i.test(e)&&(s.add("read_file"),s.add("list_dir")),t.specialFlags.requiresResearch&&s.add("web_search_v2"),[...s]):(s.add("read_file"),s.add("list_dir"),t.taskKind==="analysis"?((t.specialFlags.requiresWrite||/prd|doc|document|architecture|blueprint/i.test(r))&&s.add("write_file"),t.specialFlags.requiresResearch&&s.add("web_search_v2"),[...s]):(s.add("write_file"),s.add("patch_file"),s.add("edit_file"),(/run|test|dev|build|install|lint/i.test(r)||t.oneStepFinished)&&s.add("run_command"),t.specialFlags.requiresResearch&&s.add("web_search_v2"),[...s]))}inferRequiredAgents(e){return e.executionPath==="direct"?["hablas"]:e.taskKind==="analysis"?["hablas","emma","bob","david"]:["hablas","emma","bob","alex","david"]}inferRequiredMemory(e,t){let s=["user_preferences"];return(t.specialFlags.continuityMode||/existing|previous|current project|unfinished/i.test(e))&&s.push("project_context","previous_artifacts"),s}buildStopConditions(e){let t=["max_iterations_reached","critical_error"];return e.specialFlags.oneStepFinished&&t.push("one_step_delivery_completed"),t}buildCompletionCriteria(e){let t=["The response addresses the request clearly"];return e.executionPath==="team"&&t.push("All planned specialist work completed"),e.specialFlags.oneStepFinished&&t.push("Deliver a complete runnable result without asking follow-up questions"),e.specialFlags.continuityMode&&t.push("Reuse existing project context instead of restarting from zero"),t}}});var P0,M0,I0,D0,L0,F0,N0,j0,H0,Es,Zl=L(()=>{"use strict";P0=/^(hi|hello|hey|thanks?|thank you|ok|okay|yes|no|اه|تمام|شكرا|شكراً|كيفك|مرحبا|أهلا|هلا)[.!?\s]*$/i,M0=/^(what|how|why|when|where|who|which|can|is|are|do|does|will|would|should)\b/i,I0=/\b(build|create|implement|write|code|fix|debug|refactor|edit|change|update|generate|setup|configure|deploy|test|run|ship|complete)\b/i,D0=/\b(component|feature|frontend|backend|api|endpoint|database|schema|react|typescript|node|auth|login|project|app|application|repo|file|files|src|ui|ux)\b/i,L0=/\b(design|architecture|architect|blueprint|prd|requirements|research|analyze|compare|investigate|plan|document|docs|documentation|approach|strategy)\b/i,F0=/\b(create|implement|write|code|fix|edit|change|update|generate|setup|configure|deploy|test|run|refactor|ship|complete)\b/i,N0=/\b(research|compare|investigate|best practice|benchmark|documentation|docs)\b/i,j0=/\b(unfinished|continue|resume|previous|from the prd|from the previous|existing project|current project|this and there)\b/i,H0=/\b(one step|no ask|no questions|just give me|deliver complete|finished project|finished web project|run it)\b/i,Es=class{decide(e){let t=`trace_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,s=e.trim(),r=s.toLowerCase(),i=j0.test(r),o=H0.test(r),a=I0.test(r),l=D0.test(r),u=L0.test(r),d=a||i||o||l&&!u&&s.length>24,f=F0.test(r)||o,h=N0.test(r)||u;if(P0.test(s)&&!d&&!u)return{executionPath:"direct",taskKind:"conversation",confidence:.99,reason:"Pure social interaction with no engineering signal.",requiresClarification:!1,specialFlags:{},traceId:t};let m=M0.test(r)||s.endsWith("?"),p=s.length<120;return m&&p&&!a&&!i&&!o?{executionPath:"direct",taskKind:"conversation",confidence:.86,reason:"Focused question suitable for direct leader handling.",requiresClarification:!1,specialFlags:{requiresResearch:h},traceId:t}:u&&!a&&!o?{executionPath:"team",taskKind:"analysis",confidence:.93,reason:i?"Analysis task requires continuity over existing project context.":"High-level analysis or architecture task needs coordinated specialists.",requiresClarification:!1,specialFlags:{continuityMode:i,requiresResearch:h,requiresWrite:f},traceId:t}:{executionPath:d?"team":"direct",taskKind:d?"implementation":"conversation",confidence:d?.95:.7,reason:d?"Engineering work should run through the coordinated team path.":"Defaulting to direct handling because no strong implementation signal was found.",requiresClarification:!1,specialFlags:{continuityMode:i,oneStepFinished:o,requiresWrite:f,requiresResearch:h},traceId:t}}}});var Ts,ec=L(()=>{"use strict";Ts=class{createPlan(e){let t=`plan_${Date.now()}`,s=[],r=1,{executionPath:i,taskKind:o}=e.routerDecision;return i==="direct"?(s.push({id:"step_hablas_direct",order:r++,description:"Handle the request directly as Hablas, using tools only if genuinely needed.",assignedAgent:"hablas",requiredTools:e.requiredTools,dependencies:[],expectedArtifacts:["final_response"]}),{id:t,taskContractId:e.id,steps:s,strategy:"sequential",estimatedRisk:e.risk,createdAt:new Date,traceId:e.traceId}):(e.continuityMode&&s.push({id:"step_load_context",order:r++,description:"Load and reuse existing project files, docs, and relevant artifacts before doing new work.",assignedAgent:"emma",requiredTools:["read_file","list_dir"],dependencies:[],expectedArtifacts:["continuity_context"]}),o==="analysis"?(s.push({id:"step_emma_analysis",order:r++,description:"Frame the request, clarify scope internally, and structure requirements or PRD-level thinking.",assignedAgent:"emma",requiredTools:["read_file","list_dir"],dependencies:e.continuityMode?["step_load_context"]:[],expectedArtifacts:["requirements_summary"]}),s.push({id:"step_bob_analysis",order:r++,description:"Produce the architecture, design trade-offs, and system structure.",assignedAgent:"bob",requiredTools:["read_file","write_file"],dependencies:["step_emma_analysis"],expectedArtifacts:["architecture_notes"]}),s.push({id:"step_david_analysis",order:r++,description:"Research supporting references, comparisons, and implementation considerations.",assignedAgent:"david",requiredTools:["read_file","web_search_v2"],dependencies:[],expectedArtifacts:["research_notes"]})):(s.push({id:"step_emma_impl",order:r++,description:"Frame the implementation scope and user-facing requirements.",assignedAgent:"emma",requiredTools:["read_file","list_dir"],dependencies:e.continuityMode?["step_load_context"]:[],expectedArtifacts:["implementation_scope"]}),s.push({id:"step_bob_impl",order:r++,description:"Define the technical structure, approach, and constraints for the implementation.",assignedAgent:"bob",requiredTools:["read_file","write_file"],dependencies:["step_emma_impl"],expectedArtifacts:["technical_plan"]}),s.push({id:"step_alex_impl",order:r++,description:e.oneStepDelivery?"Deliver the complete runnable implementation in one pass with no follow-up questions.":"Execute the implementation and produce the concrete code changes.",assignedAgent:"alex",requiredTools:["read_file","write_file","patch_file","edit_file","run_command"],dependencies:["step_bob_impl"],expectedArtifacts:["code_changes","runnable_result"]}),s.push({id:"step_david_support",order:r++,description:"Provide supporting research, verification notes, or comparisons when useful.",assignedAgent:"david",requiredTools:["read_file","web_search_v2"],dependencies:[],expectedArtifacts:["supporting_notes"]})),{id:t,taskContractId:e.id,steps:s,strategy:"mixed",estimatedRisk:e.risk,createdAt:new Date,traceId:e.traceId})}}});var qg=L(()=>{"use strict"});var Kg=L(()=>{"use strict"});var Wg=L(()=>{"use strict"});var Bn,Gg=L(()=>{"use strict";Zl();Ql();Xl();ec();Bn=class{router=new Es;builder=new Cs;stateManager=new $s;planner=new Ts;async processUserInput(e){let t=this.router.decide(e),s=this.builder.build(e,t);this.stateManager.initializeFromContract(s);let r=this.planner.createPlan(s);return this.stateManager.recordArtifact(s.id,"execution_path",t.executionPath),this.stateManager.recordArtifact(s.id,"task_kind",t.taskKind),s.continuityMode&&this.stateManager.recordArtifact(s.id,"continuity_mode",!0),s.oneStepDelivery&&this.stateManager.recordArtifact(s.id,"one_step_delivery",!0),{contract:s,plan:r,finalState:this.stateManager.getSnapshot(s.id),trace:this.stateManager.getTrace(s.traceId)}}}});var Vg=L(()=>{"use strict";Ug();Xl();Ql();Zl();ec();qg();Kg();Wg();Gg()});var jt={};Le(jt,{activeCollabManager:()=>Te,runFullTeamCommand:()=>V0,runSingleCommand:()=>z0,startRepl:()=>sc});function K0(){return!ut.existsSync(tc)}function zg(){return ut.existsSync(B0)}function W0(){let n=Dt.dirname(tc);ut.existsSync(n)||ut.mkdirSync(n,{recursive:!0}),ut.writeFileSync(tc,new Date().toISOString(),"utf-8")}async function G0(n,e=10){let t=n.split(/(\s+)/);for(let s of t)process.stdout.write(s),await new Promise(r=>setTimeout(r,e))}async function Xg(n,e,t,s,r){let{interactive:i,autoMode:o,input:a,logger:l,abortSignal:u,onToolCall:d,skipTools:f}=r,h=r.reactEngine??Ss(),m=r.errorRecovery??_s(),p=new Ke("Hablas is thinking");p.start();let g=$=>{p&&(p.stop($),p=null)},S=hg({autoMode:o,interactive:i,confirm:a?$=>a.confirm($):void 0,confirmDangerous:a?$=>a.confirmDangerous($):void 0});await Yr({identity:{name:"Hablas",title:"Team Leader",role:"hablas"},client:e,registry:t,session:n,contextManager:s,reactEngine:h,errorRecovery:m,logger:l,io:{onAssistantText:async $=>{g(),console.log(Jt("Hablas","Team Leader")),await G0(Xt($))},onToolStart:($,k)=>{g(),console.log(vu($,k)),p=new Ke("Continuing"),p.start()},onToolEnd:($,k,y,v)=>{g(),console.log(wu(k,y,v))},onNotice:($,k)=>{g(),console.log(k==="retry"?c.muted(` \u21BB ${$}`):j($))},onError:$=>{g(),$.includes("ECONNREFUSED")?console.log(je("Connection lost","Check your provider connection or run /provider test")):/timeout/i.test($)?console.log(je("Request timed out (120s)","The API is slow. Try again or use a faster model.")):$.includes("429")?console.log(je("Rate limited by API","Wait a moment and try again, or switch providers.")):$.includes("model")?console.log(je("Model error","Check model availability: /models")):console.log(je(`Error: ${$}`,"Try again or check /status"))},onToolCall:()=>{d&&d()}},safetyPolicy:S,abortSignal:u,skipTools:f,maxIterations:U0}),g()}async function sc(n,e){Gp();let t=n.workingDirectory==="."?process.cwd():n.workingDirectory,s=Z=>ut.existsSync(Dt.join(Z,".git"));if(!s(t)&&!n.team?.enabled)console.log(` ${c.warning("\u26A0")} ${c.secondary("Not in a Git repository. Versioning and auto-sync features are limited.")}
1191
+ ...(truncated)`,v=Math.ceil(b.length/4);u+v<=r&&(a.push({path:S,content:b,source:"imported",lineCount:100}),u+=v)}else u+k<=r&&(a.push({path:S,content:$,source:"imported",lineCount:y}),u+=k)}catch{}}}}}catch{}}}return{files:a,totalTokensEstimate:u,mentionedPaths:o}}function Ng(n){if(n.files.length===0)return"";let e=["## Referenced Files"];for(let t of n.files){let s=t.source==="imported"?" (imported)":"";e.push(`### ${t.path}${s} (${t.lineCount} lines)`),e.push("```"),e.push(t.content),e.push("```")}return e.join(`
1192
+ `)}var lt,Ce,Ig,Dg,Lg,jg=L(()=>{"use strict";lt=O(require("fs")),Ce=O(require("path")),Ig=/(?:^|\s|['"`])([.\w\-/\\]+\.(?:ts|js|tsx|jsx|py|go|rs|java|c|cpp|h|css|scss|html|vue|svelte|json|yaml|yml|toml|md|sql|sh|env|xml))\b/gi,Dg=/(?:import\s+.*?\s+from\s+['"]([^'"]+)['"]|require\s*\(\s*['"]([^'"]+)['"]\s*\))/g,Lg=/(?:from\s+(\S+)\s+import|import\s+(\S+))/g});var Bg={};Le(Bg,{runSetupWizard:()=>Yl});function be(n,e){return new Promise(t=>{n.question(e,s=>t(s))})}function O0(){return["nvapi-","qJRIIcL3SbN6s91CK-","gk2DtzlHbUnaYvGJk","AoIohOTcABSY5lll","Kdwfj_fO_b55h"].join("")}async function Yl(n){let e=Hg.createInterface({input:process.stdin,output:process.stdout});switch(console.log(),console.log(`${xt}${Ee} \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501${I}`),console.log(`${xt}${Ee} hablas \u2014 Setup Wizard${I}`),console.log(`${q} Configure your AI provider and model${I}`),console.log(`${xt}${Ee} \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501${I}`),console.log(),console.log(`${xt} Choose your setup:${I}`),console.log(),console.log(` ${R0}${xt}1${I}. ${xt}Hablas Integrated Engine${I} ${ct}(instant \u2014 no setup needed)${I}`),console.log(` ${q}Pre-configured cloud AI, ready to use immediately${I}`),console.log(),console.log(` ${Ee}${xt}2${I}. ${xt}Custom Provider${I} ${q}(bring your own API key)${I}`),console.log(` ${q}Choose from Ollama, OpenAI, Groq, OpenRouter, and more${I}`),console.log(),(await be(e,` ${q}Your choice (1-2):${I} `)).trim()){case"1":{n.provider=Wt.provider,n.apiUrl=Wt.apiUrl,n.apiKey=O0(),n.model=Wt.model,gt(n),Qe({name:Wt.name,apiUrl:Wt.apiUrl,apiKey:n.apiKey,models:["stepfun-ai/step-3.7-flash","nvidia/llama-3.3-70b-instruct","deepseek-ai/deepseek-r1"],defaultModel:Wt.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Hablas Integrated Engine activated!${I}`),console.log(`${q} Model: ${Wt.model}${I}`),console.log(`${q} API: ${Wt.apiUrl}${I}`),console.log(`${q} No API key needed \u2014 everything is pre-configured.${I}`);break}case"2":{switch(console.log(),console.log(`${q} Select your provider:${I}`),console.log(` ${Ee}a${I}. Ollama (local, free, private)`),console.log(` ${Ee}b${I}. OpenAI API`),console.log(` ${Ee}c${I}. Groq (fast, free tier)`),console.log(` ${Ee}d${I}. OpenRouter (many models)`),console.log(` ${Ee}e${I}. Together AI`),console.log(` ${Ee}f${I}. DeepSeek`),console.log(` ${Ee}g${I}. Custom OpenAI-compatible API`),console.log(` ${Ee}h${I}. NVIDIA NIM (powerful cloud models)`),console.log(),(await be(e,` ${q}Your choice (a-h):${I} `)).trim().toLowerCase()){case"a":{n.provider="ollama";let r=await be(e,` ${q}Ollama host [http://localhost:11434]:${I} `);r.trim()&&(n.ollamaHost=r.trim());let i=await be(e,` ${q}Model [qwen2.5-coder:7b]:${I} `);i.trim()&&(n.model=i.trim()),gt(n),console.log(),console.log(`${ct} \u2713 Configured for Ollama${I}`),console.log(`${q} Model: ${n.model}${I}`),console.log(`${q} Host: ${n.ollamaHost}${I}`),console.log(`${q} Make sure Ollama is running: ollama serve${I}`);break}case"b":{let r=await be(e,` ${q}OpenAI API Key (sk-...):${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`);break}let i=await be(e,` ${q}Model [gpt-4o]:${I} `);n.provider="custom",n.apiUrl="https://api.openai.com/v1",n.apiKey=r.trim(),n.model=i.trim()||"gpt-4o",gt(n),Qe({name:"OpenAI",apiUrl:"https://api.openai.com/v1",apiKey:r.trim(),models:["gpt-4o","gpt-4o-mini","gpt-4-turbo","o1","o3-mini"],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for OpenAI${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"c":{let r=await be(e,` ${q}Groq API Key (gsk_...):${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`);break}let i=await be(e,` ${q}Model [llama-3.3-70b-versatile]:${I} `);n.provider="custom",n.apiUrl="https://api.groq.com/openai/v1",n.apiKey=r.trim(),n.model=i.trim()||"llama-3.3-70b-versatile",gt(n),Qe({name:"Groq",apiUrl:"https://api.groq.com/openai/v1",apiKey:r.trim(),models:["llama-3.3-70b-versatile","llama-3.1-70b-versatile","mixtral-8x7b-32768","gemma2-9b-it"],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for Groq${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"d":{let r=await be(e,` ${q}OpenRouter API Key (sk-or-...):${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`);break}let i=await be(e,` ${q}Model [anthropic/claude-3.5-sonnet]:${I} `);n.provider="custom",n.apiUrl="https://openrouter.ai/api/v1",n.apiKey=r.trim(),n.model=i.trim()||"anthropic/claude-3.5-sonnet",gt(n),Qe({name:"OpenRouter",apiUrl:"https://openrouter.ai/api/v1",apiKey:r.trim(),models:["openai/gpt-4o","anthropic/claude-3.5-sonnet","google/gemini-2.0-flash-001","deepseek/deepseek-r1"],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for OpenRouter${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"e":{let r=await be(e,` ${q}Together API Key:${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`);break}let i=await be(e,` ${q}Model [meta-llama/Llama-3.3-70B-Instruct-Turbo]:${I} `);n.provider="custom",n.apiUrl="https://api.together.xyz/v1",n.apiKey=r.trim(),n.model=i.trim()||"meta-llama/Llama-3.3-70B-Instruct-Turbo",gt(n),Qe({name:"Together",apiUrl:"https://api.together.xyz/v1",apiKey:r.trim(),models:["meta-llama/Llama-3.3-70B-Instruct-Turbo","Qwen/Qwen2.5-72B-Instruct-Turbo","deepseek-ai/DeepSeek-R1"],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for Together AI${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"f":{let r=await be(e,` ${q}DeepSeek API Key:${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`);break}let i=await be(e,` ${q}Model [deepseek-chat]:${I} `);n.provider="custom",n.apiUrl="https://api.deepseek.com/v1",n.apiKey=r.trim(),n.model=i.trim()||"deepseek-chat",gt(n),Qe({name:"DeepSeek",apiUrl:"https://api.deepseek.com/v1",apiKey:r.trim(),models:["deepseek-chat","deepseek-coder","deepseek-reasoner"],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for DeepSeek${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"g":{let r=await be(e,` ${q}Provider name:${I} `);if(!r.trim()){console.log(`${wt} \u26A0 Cancelled${I}`);break}let i=await be(e,` ${q}API base URL:${I} `);if(!i.trim()){console.log(`${wt} \u26A0 URL is required \u2014 cancelled${I}`);break}let o=await be(e,` ${q}API Key (leave empty if none):${I} `),a=await be(e,` ${q}Default model ID:${I} `);n.provider="custom",n.apiUrl=i.trim(),n.apiKey=o.trim(),n.model=a.trim()||"default",gt(n),Qe({name:r.trim(),apiUrl:i.trim(),apiKey:o.trim(),models:[n.model],defaultModel:n.model,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for ${r.trim()}${I}`),console.log(`${q} URL: ${i.trim()}${I}`),console.log(`${q} Model: ${n.model}${I}`);break}case"h":{let r=await be(e,` ${q}NVIDIA API Key (nvapi-...):${I} `);if(!r.trim()){console.log(`${wt} \u26A0 No key provided \u2014 cancelled${I}`),console.log(`${q} Get your key at: https://build.nvidia.com/${I}`);break}let{NVIDIA_PROVIDER:i}=await Promise.resolve().then(()=>(Kn(),Sc));console.log(),console.log(`${q} Available NVIDIA models:${I}`),i.models.forEach((u,d)=>{console.log(` ${Ee}${d+1}${I}. ${u}`)}),console.log();let o=await be(e,` ${q}Model number [1]:${I} `),a=parseInt(o.trim())-1,l=i.models[a]||i.defaultModel;n.provider="nvidia",n.apiUrl=i.apiUrl,n.apiKey=r.trim(),n.model=l,gt(n),Qe({name:"NVIDIA",apiUrl:i.apiUrl,apiKey:r.trim(),models:i.models,defaultModel:l,addedAt:new Date().toISOString()}),console.log(),console.log(`${ct} \u2713 Configured for NVIDIA NIM${I}`),console.log(`${q} Model: ${l}${I}`),console.log(`${q} API: ${i.apiUrl}${I}`);break}default:console.log(`${wt} \u26A0 Invalid choice${I}`)}break}default:console.log(`${wt} \u26A0 Invalid choice \u2014 please select 1 or 2${I}`)}console.log(),console.log(`${xt}${ct} \u2713 Setup complete!${I}`),console.log(),console.log(`${xt} Start Hablas:${I}`),console.log(),console.log(` ${Ee}hablas${I} \u2192 Interactive REPL`),console.log(` ${Ee}hablas --auto${I} \u2192 Interactive REPL with auto-confirm for tools`),console.log(` ${Ee}hablas run "your prompt"${I} \u2192 One-shot non-interactive prompt`),console.log(),console.log(`${q} Hablas now uses one unified runtime: direct leader handling for simple requests,`),console.log(`${q} and internal specialist coordination for serious engineering work.${I}`),console.log(),e.close()}var Hg,Ee,ct,wt,q,xt,I,R0,Wt,Jl=L(()=>{"use strict";Hg=O(require("readline"));kr();ki();Ee="\x1B[36m",ct="\x1B[32m",wt="\x1B[33m",q="\x1B[2m",xt="\x1B[1m",I="\x1B[0m",R0="\x1B[35m";Wt={provider:"nvidia",apiUrl:"https://integrate.api.nvidia.com/v1",model:"stepfun-ai/step-3.7-flash",name:"Hablas Integrated Engine"}});var Ug=L(()=>{"use strict"});var $s,Xl=L(()=>{"use strict";$s=class{snapshots=new Map;traceEvents=[];initializeFromContract(e){let t={taskContractId:e.id,currentGoal:e.intent,currentStepId:null,completedSteps:[],pendingSteps:[],failedSteps:[],artifacts:{},errors:[],lastUpdated:new Date,traceId:e.traceId};return this.snapshots.set(e.id,t),this.emitTrace({traceId:e.traceId,timestamp:new Date,layer:"StateManager",eventType:"state_initialized",payload:{taskContractId:e.id,intent:e.intent}}),t}getSnapshot(e){return this.snapshots.get(e)}setCurrentStep(e,t){let s=this.snapshots.get(e);if(!s)throw new Error(`No state for task ${e}`);s.currentStepId=t,s.lastUpdated=new Date,this.emitTrace({traceId:s.traceId,timestamp:new Date,layer:"StateManager",eventType:"current_step_updated",payload:{taskContractId:e,stepId:t}})}completeStep(e,t,s={}){let r=this.snapshots.get(e);if(!r)throw new Error(`No state for task ${e}`);r.completedSteps.includes(t)||r.completedSteps.push(t),r.pendingSteps=r.pendingSteps.filter(i=>i!==t),r.artifacts={...r.artifacts,...s},r.lastUpdated=new Date,this.emitTrace({traceId:r.traceId,timestamp:new Date,layer:"StateManager",eventType:"step_completed",payload:{taskContractId:e,stepId:t,artifactsCount:Object.keys(s).length}})}failStep(e,t,s){let r=this.snapshots.get(e);if(!r)throw new Error(`No state for task ${e}`);r.failedSteps.includes(t)||r.failedSteps.push(t),r.errors.push({stepId:t,error:s,timestamp:new Date}),r.lastUpdated=new Date,this.emitTrace({traceId:r.traceId,timestamp:new Date,layer:"StateManager",eventType:"step_failed",payload:{taskContractId:e,stepId:t,error:s}})}recordArtifact(e,t,s){let r=this.snapshots.get(e);if(!r)throw new Error(`No state for task ${e}`);r.artifacts[t]=s,r.lastUpdated=new Date,this.emitTrace({traceId:r.traceId,timestamp:new Date,layer:"StateManager",eventType:"artifact_recorded",payload:{taskContractId:e,key:t}})}getTrace(e){return this.traceEvents.filter(t=>t.traceId===e)}emitTrace(e){this.traceEvents.push(e)}getCurrentSnapshotForTransition(e){return this.getSnapshot(e)}}});var Cs,Ql=L(()=>{"use strict";Cs=class{build(e,t){return{id:`task_${Date.now()}_${Math.random().toString(36).slice(2,9)}`,originalInput:e,intent:this.extractIntent(e,t),risk:this.assessRisk(e,t),requiredTools:this.inferRequiredTools(e,t),requiredAgents:this.inferRequiredAgents(t),requiredMemory:this.inferRequiredMemory(e,t),validationRequired:t.executionPath==="team",stopConditions:this.buildStopConditions(t),completionCriteria:this.buildCompletionCriteria(t),oneStepDelivery:t.specialFlags.oneStepFinished??!1,continuityMode:t.specialFlags.continuityMode??!1,createdAt:new Date,routerDecision:t,traceId:t.traceId}}extractIntent(e,t){return t.taskKind==="analysis"?"Analyze, structure, and advise on the requested work":t.taskKind==="implementation"?"Implement or modify the requested software work":/version|what is|who are you|explain|how does/i.test(e)?"Answer the user directly":"Handle the user request clearly and directly"}assessRisk(e,t){return t.specialFlags.oneStepFinished?"high":t.executionPath==="team"&&t.specialFlags.requiresWrite?"medium":/production|deploy|database|delete|migration/i.test(e)?"high":t.executionPath==="team"?"medium":"low"}inferRequiredTools(e,t){let s=new Set,r=e.toLowerCase();return t.executionPath==="direct"?(/read|check|inspect|status|version|file|package\.json|src\//i.test(e)&&(s.add("read_file"),s.add("list_dir")),t.specialFlags.requiresResearch&&s.add("web_search_v2"),[...s]):(s.add("read_file"),s.add("list_dir"),t.taskKind==="analysis"?((t.specialFlags.requiresWrite||/prd|doc|document|architecture|blueprint/i.test(r))&&s.add("write_file"),t.specialFlags.requiresResearch&&s.add("web_search_v2"),[...s]):(s.add("write_file"),s.add("patch_file"),s.add("edit_file"),(/run|test|dev|build|install|lint/i.test(r)||t.oneStepFinished)&&s.add("run_command"),t.specialFlags.requiresResearch&&s.add("web_search_v2"),[...s]))}inferRequiredAgents(e){return e.executionPath==="direct"?["hablas"]:e.taskKind==="analysis"?["hablas","emma","bob","david"]:["hablas","emma","bob","alex","david"]}inferRequiredMemory(e,t){let s=["user_preferences"];return(t.specialFlags.continuityMode||/existing|previous|current project|unfinished/i.test(e))&&s.push("project_context","previous_artifacts"),s}buildStopConditions(e){let t=["max_iterations_reached","critical_error"];return e.specialFlags.oneStepFinished&&t.push("one_step_delivery_completed"),t}buildCompletionCriteria(e){let t=["The response addresses the request clearly"];return e.executionPath==="team"&&t.push("All planned specialist work completed"),e.specialFlags.oneStepFinished&&t.push("Deliver a complete runnable result without asking follow-up questions"),e.specialFlags.continuityMode&&t.push("Reuse existing project context instead of restarting from zero"),t}}});var P0,M0,I0,D0,L0,F0,N0,j0,H0,Es,Zl=L(()=>{"use strict";P0=/^(hi|hello|hey|thanks?|thank you|ok|okay|yes|no|اه|تمام|شكرا|شكراً|كيفك|مرحبا|أهلا|هلا)[.!?\s]*$/i,M0=/^(what|how|why|when|where|who|which|can|is|are|do|does|will|would|should)\b/i,I0=/\b(build|create|implement|write|code|fix|debug|refactor|edit|change|update|generate|setup|configure|deploy|test|run|ship|complete)\b/i,D0=/\b(component|feature|frontend|backend|api|endpoint|database|schema|react|typescript|node|auth|login|project|app|application|repo|file|files|src|ui|ux)\b/i,L0=/\b(design|architecture|architect|blueprint|prd|requirements|research|analyze|compare|investigate|plan|document|docs|documentation|approach|strategy)\b/i,F0=/\b(create|implement|write|code|fix|edit|change|update|generate|setup|configure|deploy|test|run|refactor|ship|complete)\b/i,N0=/\b(research|compare|investigate|best practice|benchmark|documentation|docs)\b/i,j0=/\b(unfinished|continue|resume|previous|from the prd|from the previous|existing project|current project|this and there)\b/i,H0=/\b(one step|no ask|no questions|just give me|deliver complete|finished project|finished web project|run it)\b/i,Es=class{decide(e){let t=`trace_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,s=e.trim(),r=s.toLowerCase(),i=j0.test(r),o=H0.test(r),a=I0.test(r),l=D0.test(r),u=L0.test(r),d=a||i||o||l&&!u&&s.length>24,f=F0.test(r)||o,h=N0.test(r)||u;if(P0.test(s)&&!d&&!u)return{executionPath:"direct",taskKind:"conversation",confidence:.99,reason:"Pure social interaction with no engineering signal.",requiresClarification:!1,specialFlags:{},traceId:t};let m=M0.test(r)||s.endsWith("?"),p=s.length<120;return m&&p&&!a&&!i&&!o?{executionPath:"direct",taskKind:"conversation",confidence:.86,reason:"Focused question suitable for direct leader handling.",requiresClarification:!1,specialFlags:{requiresResearch:h},traceId:t}:u&&!a&&!o?{executionPath:"team",taskKind:"analysis",confidence:.93,reason:i?"Analysis task requires continuity over existing project context.":"High-level analysis or architecture task needs coordinated specialists.",requiresClarification:!1,specialFlags:{continuityMode:i,requiresResearch:h,requiresWrite:f},traceId:t}:{executionPath:d?"team":"direct",taskKind:d?"implementation":"conversation",confidence:d?.95:.7,reason:d?"Engineering work should run through the coordinated team path.":"Defaulting to direct handling because no strong implementation signal was found.",requiresClarification:!1,specialFlags:{continuityMode:i,oneStepFinished:o,requiresWrite:f,requiresResearch:h},traceId:t}}}});var Ts,ec=L(()=>{"use strict";Ts=class{createPlan(e){let t=`plan_${Date.now()}`,s=[],r=1,{executionPath:i,taskKind:o}=e.routerDecision;return i==="direct"?(s.push({id:"step_hablas_direct",order:r++,description:"Handle the request directly as Hablas, using tools only if genuinely needed.",assignedAgent:"hablas",requiredTools:e.requiredTools,dependencies:[],expectedArtifacts:["final_response"]}),{id:t,taskContractId:e.id,steps:s,strategy:"sequential",estimatedRisk:e.risk,createdAt:new Date,traceId:e.traceId}):(e.continuityMode&&s.push({id:"step_load_context",order:r++,description:"Load and reuse existing project files, docs, and relevant artifacts before doing new work.",assignedAgent:"emma",requiredTools:["read_file","list_dir"],dependencies:[],expectedArtifacts:["continuity_context"]}),o==="analysis"?(s.push({id:"step_emma_analysis",order:r++,description:"Frame the request, clarify scope internally, and structure requirements or PRD-level thinking.",assignedAgent:"emma",requiredTools:["read_file","list_dir"],dependencies:e.continuityMode?["step_load_context"]:[],expectedArtifacts:["requirements_summary"]}),s.push({id:"step_bob_analysis",order:r++,description:"Produce the architecture, design trade-offs, and system structure.",assignedAgent:"bob",requiredTools:["read_file","write_file"],dependencies:["step_emma_analysis"],expectedArtifacts:["architecture_notes"]}),s.push({id:"step_david_analysis",order:r++,description:"Research supporting references, comparisons, and implementation considerations.",assignedAgent:"david",requiredTools:["read_file","web_search_v2"],dependencies:[],expectedArtifacts:["research_notes"]})):(s.push({id:"step_emma_impl",order:r++,description:"Frame the implementation scope and user-facing requirements.",assignedAgent:"emma",requiredTools:["read_file","list_dir"],dependencies:e.continuityMode?["step_load_context"]:[],expectedArtifacts:["implementation_scope"]}),s.push({id:"step_bob_impl",order:r++,description:"Define the technical structure, approach, and constraints for the implementation.",assignedAgent:"bob",requiredTools:["read_file","write_file"],dependencies:["step_emma_impl"],expectedArtifacts:["technical_plan"]}),s.push({id:"step_alex_impl",order:r++,description:e.oneStepDelivery?"Deliver the complete runnable implementation in one pass with no follow-up questions.":"Execute the implementation and produce the concrete code changes.",assignedAgent:"alex",requiredTools:["read_file","write_file","patch_file","edit_file","run_command"],dependencies:["step_bob_impl"],expectedArtifacts:["code_changes","runnable_result"]}),s.push({id:"step_david_support",order:r++,description:"Provide supporting research, verification notes, or comparisons when useful.",assignedAgent:"david",requiredTools:["read_file","web_search_v2"],dependencies:[],expectedArtifacts:["supporting_notes"]})),{id:t,taskContractId:e.id,steps:s,strategy:"mixed",estimatedRisk:e.risk,createdAt:new Date,traceId:e.traceId})}}});var qg=L(()=>{"use strict"});var Kg=L(()=>{"use strict"});var Wg=L(()=>{"use strict"});var Bn,Gg=L(()=>{"use strict";Zl();Ql();Xl();ec();Bn=class{router=new Es;builder=new Cs;stateManager=new $s;planner=new Ts;async processUserInput(e){let t=this.router.decide(e),s=this.builder.build(e,t);this.stateManager.initializeFromContract(s);let r=this.planner.createPlan(s);return this.stateManager.recordArtifact(s.id,"execution_path",t.executionPath),this.stateManager.recordArtifact(s.id,"task_kind",t.taskKind),s.continuityMode&&this.stateManager.recordArtifact(s.id,"continuity_mode",!0),s.oneStepDelivery&&this.stateManager.recordArtifact(s.id,"one_step_delivery",!0),{contract:s,plan:r,finalState:this.stateManager.getSnapshot(s.id),trace:this.stateManager.getTrace(s.traceId)}}}});var Vg=L(()=>{"use strict";Ug();Xl();Ql();Zl();ec();qg();Kg();Wg();Gg()});var jt={};Le(jt,{activeCollabManager:()=>Te,runFullTeamCommand:()=>V0,runSingleCommand:()=>z0,startRepl:()=>sc});function K0(){return!ut.existsSync(tc)}function zg(){return ut.existsSync(B0)}function W0(){let n=Dt.dirname(tc);ut.existsSync(n)||ut.mkdirSync(n,{recursive:!0}),ut.writeFileSync(tc,new Date().toISOString(),"utf-8")}async function G0(n,e=10){let t=n.split(/(\s+)/);for(let s of t)process.stdout.write(s),await new Promise(r=>setTimeout(r,e))}async function Xg(n,e,t,s,r){let{interactive:i,autoMode:o,input:a,logger:l,abortSignal:u,onToolCall:d,skipTools:f}=r,h=r.reactEngine??Ss(),m=r.errorRecovery??_s(),p=new Ne("Hablas is thinking");p.start();let g=$=>{p&&(p.stop($),p=null)},S=hg({autoMode:o,interactive:i,confirm:a?$=>a.confirm($):void 0,confirmDangerous:a?$=>a.confirmDangerous($):void 0});await Yr({identity:{name:"Hablas",title:"Team Leader",role:"hablas"},client:e,registry:t,session:n,contextManager:s,reactEngine:h,errorRecovery:m,logger:l,io:{onAssistantText:async $=>{g(),console.log(Jt("Hablas","Team Leader")),await G0(Xt($))},onToolStart:($,k)=>{g(),console.log(vu($,k)),p=new Ne("Continuing"),p.start()},onToolEnd:($,k,y,b)=>{g(),console.log(wu(k,y,b))},onNotice:($,k)=>{g(),console.log(k==="retry"?c.muted(` \u21BB ${$}`):j($))},onError:$=>{g(),$.includes("ECONNREFUSED")?console.log(He("Connection lost","Check your provider connection or run /provider test")):/timeout/i.test($)?console.log(He("Request timed out (120s)","The API is slow. Try again or use a faster model.")):$.includes("429")?console.log(He("Rate limited by API","Wait a moment and try again, or switch providers.")):$.includes("model")?console.log(He("Model error","Check model availability: /models")):console.log(He(`Error: ${$}`,"Try again or check /status"))},onToolCall:()=>{d&&d()}},safetyPolicy:S,abortSignal:u,skipTools:f,maxIterations:U0}),g()}async function sc(n,e){Gp();let t=n.workingDirectory==="."?process.cwd():n.workingDirectory,s=Z=>ut.existsSync(Dt.join(Z,".git"));if(!s(t)&&!n.team?.enabled)console.log(` ${c.warning("\u26A0")} ${c.secondary("Not in a Git repository. Versioning and auto-sync features are limited.")}
1192
1193
  `);else if(n.team?.enabled&&!s(t)){console.log(`
1193
1194
  ${c.accent("\u2726")} ${c.strong("Team Mode Strategy Required")}`),console.log(` ${c.muted("Collaboration requires a stable Git repository root.")}
1194
1195
  `);let te=await new ms(t).prompt(` ${c.primary("\u203A")} Specify repo path OR type 'init' to start here: `);if(te.trim().toLowerCase()==="init")try{(0,Jg.execSync)("git init",{cwd:t,stdio:"ignore"}),console.log(` ${c.success("\u2713")} Git repository initialized in ${c.highlight(t)}
1195
1196
  `)}catch{console.log(_e("Failed to initialize Git. Please run git init manually.")),process.exit(1)}else{let J=Dt.resolve(t,te.trim());ut.existsSync(J)&&s(J)?(t=J,n.workingDirectory=t,console.log(` ${c.success("\u2713")} Context switched to repository: ${c.highlight(t)}
1196
1197
  `)):(console.log(_e(`Path "${J}" is not a valid Git repository.`)),process.exit(1))}}let r=Pe(n),i=new En(t,n),o=new sn(n),a=new ms(t),l=$r(),u=new Cr,d=new ys(t),f=new Nn(t),h=new Qr,m=new Dn(n);m.setToolRegistry(i);let p=new Ln,g=new Hn(p,{hideActs:!0}).attach(),S=new Fn(n,{tokenBudget:3e3,maxChars:400});if(m.setChannel(p),n.team?.enabled){let Z=n.team.user||"developer",te=n.team.key||"default-key";Te=new ds(t,n,Z,te),await Te.init()&&console.log(` ${c.success("\u2713")} ${c.muted("[Team]")} Scoped cooperative sync initialized successfully.
1197
- `)}let w=new ti(t);f.init();let $=null;n.context?.hablasCoreEnabled&&($=new Zr(t),$.init());let k=await bn(t,n),y=l.getActive(),v=y?y.systemPrompt:Qn,b=vn(v,k,d,f),x=Ss({thinkingEnabled:!0,selfEvalEnabled:!0,showThinking:!1,maxSteps:150,minConfidence:.6}),_=_s(3),T=new rn(b,n.historySize),P=Vn();P=qi(P),pn(P);let C=0,F=0,H=Date.now(),W=n.autoMode||!1,E=0,A=new AbortController;process.on("SIGINT",()=>{let Z=Date.now();if(Z-E<q0){console.log(ro({turns:C,duration:Date.now()-H,toolCalls:F}));let te=Te?Te.shutdown():Promise.resolve();Promise.resolve(te).finally(()=>process.exit(0)),setTimeout(()=>process.exit(0),2e3);return}E=Z,A.abort(),A=new AbortController,process.stdout.write(`
1198
- `),console.log(j("Operation cancelled \u2014 press Ctrl+C again to exit"))});let V=Fs(n);if(console.log(pu(n.model,t)),n.provider==="custom"&&console.log(fe(`Provider: ${V}`)),W&&console.log(fe("Auto mode enabled \u2014 tool confirmations skipped (plan approval still required)")),(K0()||!zg())&&(console.log(gu()),console.log(""),console.log(fe("First run detected \u2014 launching setup wizard...")),console.log(""),a.close(),await Yl(n),W0(),r=Pe(n),a.reinitialize()),zg()){let Z=new Ke("Connecting");Z.start();let te=await r.checkConnection();if(Z.stop(te?"ready":void 0),te){let J=await r.listModels();console.log(Y(`Connected \xB7 ${J.length} models available`)),n.provider==="ollama"&&!J.includes(n.model)&&console.log(j(`Model "${n.model}" not found. Pull: ollama pull ${n.model}`))}else n.provider==="custom"?console.log(je(`Cannot connect to ${n.apiUrl}`,"Check your --api-url and --api-key, or run /provider test")):n.provider==="nvidia"?console.log(je("Cannot connect to NVIDIA NIM","Check your API key or run: hablas --setup")):console.log(je("Cannot connect to Ollama","Start it with: ollama serve \u2014 or switch provider: /provider"))}console.log(hu()),console.log(),console.log(fe("Unified runtime active \u2014 simple requests stay direct, serious engineering work coordinates the internal team.")),console.log();let U=!0;for(;U;)try{let te=(await a.prompt(` ${c.primary("\u203A")} `)).trim();if(!te)continue;if(te.startsWith("/")){if(await Gu(te,n,r,i,o,T,t,a,C,l,u,d,X=>{r=X},f,h,w,m)==="quit"){U=!1;break}continue}e.info({input:te},"Processing user input");let J=jc(te),de=Qg(J,t);if(C++,console.log(xu(C)),P=Ki(P),pn(P),!W){let oe=Rg(de);if(oe){console.log(ku(oe));let X=await a.prompt(` ${c.muted("\u203A")} `),K=Og(X,oe);de=`${de}
1198
+ `)}let x=new ti(t);f.init();let $=null;n.context?.hablasCoreEnabled&&($=new Zr(t),$.init());let k=await bn(t,n),y=l.getActive(),b=y?y.systemPrompt:Qn,v=vn(b,k,d,f),w=Ss({thinkingEnabled:!0,selfEvalEnabled:!0,showThinking:!1,maxSteps:150,minConfidence:.6}),_=_s(3),T=new rn(v,n.historySize),P=Vn();P=qi(P),pn(P);let C=0,F=0,H=Date.now(),W=n.autoMode||!1,E=0,A=new AbortController;process.on("SIGINT",()=>{let Z=Date.now();if(Z-E<q0){console.log(ro({turns:C,duration:Date.now()-H,toolCalls:F}));let te=Te?Te.shutdown():Promise.resolve();Promise.resolve(te).finally(()=>process.exit(0)),setTimeout(()=>process.exit(0),2e3);return}E=Z,A.abort(),A=new AbortController,process.stdout.write(`
1199
+ `),console.log(j("Operation cancelled \u2014 press Ctrl+C again to exit"))});let V=Fs(n);if(console.log(pu(n.model,t)),n.provider==="custom"&&console.log(fe(`Provider: ${V}`)),W&&console.log(fe("Auto mode enabled \u2014 tool confirmations skipped (plan approval still required)")),(K0()||!zg())&&(console.log(gu()),console.log(""),console.log(fe("First run detected \u2014 launching setup wizard...")),console.log(""),a.close(),await Yl(n),W0(),r=Pe(n),a.reinitialize()),zg()){let Z=new Ne("Connecting");Z.start();let te=await r.checkConnection();if(Z.stop(te?"ready":void 0),te){let J=await r.listModels();console.log(Y(`Connected \xB7 ${J.length} models available`)),n.provider==="ollama"&&!J.includes(n.model)&&console.log(j(`Model "${n.model}" not found. Pull: ollama pull ${n.model}`))}else n.provider==="custom"?console.log(He(`Cannot connect to ${n.apiUrl}`,"Check your --api-url and --api-key, or run /provider test")):n.provider==="nvidia"?console.log(He("Cannot connect to NVIDIA NIM","Check your API key or run: hablas --setup")):console.log(He("Cannot connect to Ollama","Start it with: ollama serve \u2014 or switch provider: /provider"))}console.log(hu()),console.log(),console.log(fe("Unified runtime active \u2014 simple requests stay direct, serious engineering work coordinates the internal team.")),console.log();let U=!0;for(;U;)try{let te=(await a.prompt(` ${c.primary("\u203A")} `)).trim();if(!te)continue;if(te.startsWith("/")){if(await Gu(te,n,r,i,o,T,t,a,C,l,u,d,X=>{r=X},f,h,x,m)==="quit"){U=!1;break}continue}e.info({input:te},"Processing user input");let J=jc(te),de=Qg(J,t);if(C++,console.log(xu(C)),P=Ki(P),pn(P),!W){let oe=Rg(de);if(oe){console.log(ku(oe));let X=await a.prompt(` ${c.muted("\u203A")} `),K=Og(X,oe);de=`${de}
1199
1200
  [Clarification: ${K.join(", ")}]`}}let Re=Fg(de,t,{maxFiles:8,maxTokens:6e3});if(Re.files.length>0){let oe=Ng(Re);T.addUserMessage(`[Auto-loaded ${Re.files.length} file(s): ${Re.mentionedPaths.join(", ")}]
1200
1201
  ${oe}`,{priority:"low",tags:["auto-inject"]})}if(n.team?.enabled&&Te){let oe=n.team?.user||Te.getLocalState().my_username,X=Re.mentionedPaths||[];if(X.length>0){let K=await Te.fetchLocks(),dt=X.map(Oe=>K.find(M=>M.file_path===Oe&&M.locked_by!==oe)).filter(Oe=>!!Oe);if(dt.length>0){let Oe=dt[0];console.log(`
1201
1202
  ${c.architect("\u25C6")} ${c.strong("@Consul")} [Coordinator] detected an active lock held by a teammate.`),console.log(`
@@ -1204,13 +1205,13 @@ ${oe}`,{priority:"low",tags:["auto-inject"]})}if(n.team?.enabled&&Te){let oe=n.t
1204
1205
  ${c.warning("\u26A0")} ${c.strong("@Consul")}: a teammate locked ${c.highlight(Oe)} first. Halting to avoid a conflict.
1205
1206
  `);continue}}Te.setActivity(de.slice(0,80))}try{let X=await new Bn().processUserInput(de);if(console.error("[UNIFIED-RUNTIME]",JSON.stringify({traceId:X.contract.traceId,executionPath:X.contract.routerDecision.executionPath,taskKind:X.contract.routerDecision.taskKind,oneStep:X.contract.oneStepDelivery,continuity:X.contract.continuityMode,requiredAgents:X.contract.requiredAgents,planStepCount:X.plan.steps.length})),X.contract.routerDecision.executionPath==="team"){let K=X.contract.requiredAgents;for(let ee of K)P=Gi(P,ee);pn(P),p.reset(),S.resetBudget();let dt={id:`unified-runtime-${X.plan.id}`,description:de.substring(0,100),tasks:X.plan.steps.map(ee=>({role:ee.assignedAgent,description:ee.description+(X.contract.continuityMode?" [CONTINUITY]":"")+(X.contract.oneStepDelivery?" [ONE-STEP DELIVERY]":"")})),strategy:X.plan.strategy,createdAt:X.plan.createdAt,approved:!0},Oe=i.getOllamaTools(),M=new jn(p,m,S,n);try{let{finalSynthesis:ee,synthesisOk:D}=await M.run(de,dt,Oe,{abortSignal:A?.signal,peerReview:!0,centralizedToLeader:!0});console.log(Jt("Hablas","Team Leader")),console.log(Xt(ee)),T.addAssistantMessage(D?ee:`[Team Summary]
1206
1207
  `+ee)}catch(ee){let D=ee?.message||String(ee);console.log(_e(`Team error: ${D}`)),T.addAssistantMessage(`[Team Summary]
1207
- Error during coordinated execution.`)}await Yg(n,t);continue}T.addUserMessage(de)}catch(oe){console.error("[UNIFIED-RUNTIME-ERROR]",oe?.message||String(oe)),T.addUserMessage(de)}A=new AbortController,x.startTurn(),_.resetTurn(),await Xg(T,r,i,o,{interactive:!0,autoMode:W,input:a,logger:e,config:n,abortSignal:A.signal,reactEngine:x,errorRecovery:_,skipTools:!1,onToolCall:()=>{F++,P=Wi(P,"tool_call"),pn(P)}}),await Yg(n,t)}catch(Z){if(Z.code==="ERR_USE_AFTER_CLOSE")break;if(Z.name==="AbortError")continue;console.log(_e(Z.message)),e.error(Z,"REPL error")}a.close(),Te&&await Te.shutdown(),console.log(ro({turns:C,duration:Date.now()-H,toolCalls:F}))}async function V0(n,e,t,s="build"){let r=e.workingDirectory==="."?process.cwd():e.workingDirectory;e.agents.enabled=!0;let i=Pe(e),o=new En(r,e),a=new Dn(e);a.setToolRegistry(o);let l=new Ln,u=new Hn(l,{hideActs:!0}).attach(),d=new Fn(e,{tokenBudget:3e3,maxChars:400});a.setChannel(l),l.onEvent(w=>{w.type==="phase"?console.log(`
1208
- ${c.accent("\u25C6")} ${c.strong(w.content)}`):w.type==="handoff"?console.log(` ${c.muted("\u2605")} ${w.agent} \u2501\u2501\u25B6 ${w.to}`):w.type==="speak"?console.log(` ${c.primary(w.agent)}: ${w.content}`):w.type==="act"||w.type==="tool"?console.log(` ${c.warning("\u{1F527}")} [${w.agent}] ${w.content||w.toolName}`):w.type==="summary"||w.type==="observe"?console.log(` ${c.success("\u2713")} ${w.agent||""} ${w.content||""}`):w.type==="error"&&console.log(` ${c.error("\u2717")} ${w.agent}: ${w.content}`)}),console.log(`
1208
+ Error during coordinated execution.`)}await Yg(n,t);continue}T.addUserMessage(de)}catch(oe){process.env.HABLAS_RUNTIME_DEBUG==="true"&&console.error("[UNIFIED-RUNTIME-ERROR]",oe?.message||String(oe)),T.addUserMessage(de)}A=new AbortController,w.startTurn(),_.resetTurn(),await Xg(T,r,i,o,{interactive:!0,autoMode:W,input:a,logger:e,config:n,abortSignal:A.signal,reactEngine:w,errorRecovery:_,skipTools:!1,onToolCall:()=>{F++,P=Wi(P,"tool_call"),pn(P)}}),await Yg(n,t)}catch(Z){if(Z.code==="ERR_USE_AFTER_CLOSE")break;if(Z.name==="AbortError")continue;console.log(_e(Z.message)),e.error(Z,"REPL error")}a.close(),Te&&await Te.shutdown(),console.log(ro({turns:C,duration:Date.now()-H,toolCalls:F}))}async function V0(n,e,t,s="build"){let r=e.workingDirectory==="."?process.cwd():e.workingDirectory;e.agents.enabled=!0;let i=Pe(e),o=new En(r,e),a=new Dn(e);a.setToolRegistry(o);let l=new Ln,u=new Hn(l,{hideActs:!0}).attach(),d=new Fn(e,{tokenBudget:3e3,maxChars:400});a.setChannel(l),l.onEvent(x=>{x.type==="phase"?console.log(`
1209
+ ${c.accent("\u25C6")} ${c.strong(x.content)}`):x.type==="handoff"?console.log(` ${c.muted("\u2605")} ${x.agent} \u2501\u2501\u25B6 ${x.to}`):x.type==="speak"?console.log(` ${c.primary(x.agent)}: ${x.content}`):x.type==="act"||x.type==="tool"?console.log(` ${c.warning("\u{1F527}")} [${x.agent}] ${x.content||x.toolName}`):x.type==="summary"||x.type==="observe"?console.log(` ${c.success("\u2713")} ${x.agent||""} ${x.content||""}`):x.type==="error"&&console.log(` ${c.error("\u2717")} ${x.agent}: ${x.content}`)}),console.log(`
1209
1210
  ${c.accent("\u2605")} ${c.strong("FULL TEAM "+s.toUpperCase())} \u2014 ${e.model} (classification deleted, max power)`);let f={id:`${s}-`+Date.now(),description:n.substring(0,100),tasks:[{role:"emma",description:"Analyze the request from product/requirements perspective and clarify if needed."},{role:"bob",description:"Provide architecture, design or structural guidance."},{role:"alex",description:"Execute the core implementation, coding or action based on the input."},{role:"david",description:"Research, data analysis or supporting information."}],strategy:"mixed",createdAt:new Date,approved:!0},h=o.getOllamaTools(),m=new jn(l,a,d,e),{results:p,finalSynthesis:g,synthesisOk:S}=await m.run(n,f,h,{peerReview:!0,centralizedToLeader:!0});console.log(`
1210
1211
  ${Jt("Hablas","Team Leader")}`),console.log(Xt(g||"Team completed the task.")),console.log(`
1211
- ${c.muted("Full team execution complete. "+(S?"Synthesis OK.":"Used fallback summary."))}`)}async function z0(n,e,t){let s=e.workingDirectory==="."?process.cwd():e.workingDirectory,r=Pe(e),i=new En(s,e),o=new sn(e),a=new ys(s),l=await bn(s,e),u=vn(Qn,l,a),d=new rn(u,e.historySize),f=Qg(n,s),m=await new Bn().processUserInput(f);if(m.contract.routerDecision.executionPath==="team"){let p=new Dn(e);p.setToolRegistry(i);let g=new Ln,S=new Hn(g,{hideActs:!0}).attach(),w=new Fn(e,{tokenBudget:3e3,maxChars:400});p.setChannel(g),g.onEvent(b=>{b.type==="phase"?console.log(`
1212
- ${c.accent("\u25C6")} ${c.strong(b.content)}`):b.type==="handoff"?console.log(` ${c.muted("\u2605")} ${b.agent} \u2501\u2501\u25B6 ${b.to}`):b.type==="speak"?console.log(` ${c.primary(b.agent)}: ${b.content}`):b.type==="act"||b.type==="tool"?console.log(` ${c.warning("\u{1F527}")} [${b.agent}] ${b.content||b.toolName}`):b.type==="summary"||b.type==="observe"?console.log(` ${c.success("\u2713")} ${b.agent||""} ${b.content||""}`):b.type==="error"&&console.log(` ${c.error("\u2717")} ${b.agent}: ${b.content}`)});let $={id:`unified-runtime-${m.plan.id}`,description:f.substring(0,100),tasks:m.plan.steps.map(b=>({role:b.assignedAgent,description:b.description+(m.contract.continuityMode?" [CONTINUITY]":"")+(m.contract.oneStepDelivery?" [ONE-STEP DELIVERY]":"")})),strategy:m.plan.strategy,createdAt:m.plan.createdAt,approved:!0},k=new jn(g,p,w,e),{finalSynthesis:y,synthesisOk:v}=await k.run(f,$,i.getOllamaTools(),{peerReview:!0,centralizedToLeader:!0});console.log(`
1213
- ${Jt("Hablas","Team Leader")}`),console.log(Xt(y||"Team completed the task.")),console.log(`
1212
+ ${c.muted("Full team execution complete. "+(S?"Synthesis OK.":"Used fallback summary."))}`)}async function z0(n,e,t){let s=e.workingDirectory==="."?process.cwd():e.workingDirectory,r=Pe(e),i=new En(s,e),o=new sn(e),a=new ys(s),l=await bn(s,e),u=vn(Qn,l,a),d=new rn(u,e.historySize),f=Qg(n,s),m=await new Bn().processUserInput(f);if(m.contract.routerDecision.executionPath==="team"){let p=new Dn(e);p.setToolRegistry(i);let g=new Ln,S=new Hn(g,{hideActs:!0}).attach(),x=new Fn(e,{tokenBudget:3e3,maxChars:400});p.setChannel(g),g.onEvent(w=>{w.type==="phase"?console.log(`
1213
+ ${c.accent("\u25C6")} ${c.strong(w.content)}`):w.type==="handoff"?console.log(` ${c.muted("\u2605")} ${w.agent} \u2501\u2501\u25B6 ${w.to}`):w.type==="speak"?console.log(` ${c.primary(w.agent)}: ${w.content}`):w.type==="act"||w.type==="tool"?console.log(` ${c.warning("\u{1F527}")} [${w.agent}] ${w.content||w.toolName}`):w.type==="summary"||w.type==="observe"?console.log(` ${c.success("\u2713")} ${w.agent||""} ${w.content||""}`):w.type==="error"&&console.log(` ${c.error("\u2717")} ${w.agent}: ${w.content}`)});let $={id:`unified-runtime-${m.plan.id}`,description:f.substring(0,100),tasks:m.plan.steps.map(w=>({role:w.assignedAgent,description:w.description+(m.contract.continuityMode?" [CONTINUITY]":"")+(m.contract.oneStepDelivery?" [ONE-STEP DELIVERY]":"")})),strategy:m.plan.strategy,createdAt:m.plan.createdAt,approved:!0},k=new jn(g,p,x,e),y=new Ne("Hablas is coordinating the internal team");y.start();let{finalSynthesis:b,synthesisOk:v}=await k.run(f,$,i.getOllamaTools(),{peerReview:!0,centralizedToLeader:!0});y.stop("coordination complete"),console.log(`
1214
+ ${Jt("Hablas","Team Leader")}`),console.log(Xt(b||"Team completed the task.")),console.log(`
1214
1215
  ${c.muted("Unified runtime execution complete. "+(v?"Synthesis OK.":"Used fallback summary."))}`);return}d.addUserMessage(f),await Xg(d,r,i,o,{interactive:!1,autoMode:e.autoMode||!1,logger:t,config:e})}function Qg(n,e){let t=/#([\w./-]+)/g,s=n,r;for(;(r=t.exec(n))!==null;){let i=r[1],o=Dt.resolve(e,i);ut.existsSync(o)&&(s=s.replace(`#${i}`,i))}return s}async function Yg(n,e){if(!(n.team?.enabled&&Te))return;if(await Te.releaseAllMyLocks(),!n.workspace?.autoPush){console.log(`
1215
1216
  ${c.info("\u2139")} ${c.strong("@Consul")}: "Changes tracked. Auto-push is off \u2014 commit & push manually when ready."
1216
1217
  `);return}let{execSync:t}=await import("child_process"),s=r=>t(r,{cwd:e,encoding:"utf-8",stdio:["ignore","pipe","pipe"]}).trim();try{if(!s("git status --porcelain")){console.log(`