@hafez/claude-code-router 2.0.3 → 2.0.4-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.js +2 -2
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -833,7 +833,7 @@ ${n.content}`),delete n.thinking)});let r=e.messages[e.messages.length-1];return
833
833
  `))}else a.enqueue(o.encode(D+`
834
834
  `))}}}catch(f){console.error("Stream error:",f),a.error(f)}finally{try{u.releaseLock()}catch(f){console.error("Error releasing reader lock:",f)}if(l==="REASONING"){let f={choices:[{delta:{thinking:{signature:new Date().getTime().toString()}}}]};a.enqueue(o.encode(`data: ${JSON.stringify(f)}
835
835
 
836
- `))}a.close()}}});return new Response(s,{status:e.status,statusText:e.statusText,headers:{"Content-Type":e.headers.get("Content-Type")||"text/plain","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}},gk=300*1e3,Ek=class{name="openai-codex";refreshPromise=null;async transformRequestIn(e,t,r){let n=await(0,su.getAuth)("openai-codex");if(!n||n.type!=="oauth")throw new Error("OpenAI Codex authentication required. Run 'ccr auth login' first.");let i=n;(!i.access||i.expires<Date.now()+gk)&&(i=await this.refreshToken(i));let o={Authorization:`Bearer ${i.access}`,Accept:"text/event-stream","User-Agent":"codex_cli_rs/0.101.0 (Mac OS 26.0.1; arm64)",Originator:"codex_cli_rs",Version:"0.101.0","Openai-Beta":"responses=experimental",Session_id:crypto.randomUUID()};return i.accountId&&(o["ChatGPT-Account-Id"]=i.accountId),e.instructions||(e.instructions=""),e.store=!1,e.stream=!0,{body:e,config:{url:new URL(su.CODEX_API_ENDPOINT),headers:o}}}async transformResponseOut(e){let t=new Headers(e.headers);return t.set("Content-Type","text/event-stream"),new Response(e.body,{status:e.status,statusText:e.statusText,headers:t})}async refreshToken(e){return this.refreshPromise?this.refreshPromise:(this.refreshPromise=(async()=>{try{let t=await(0,su.refreshAccessToken)(e.refresh),r=(0,su.extractAccountId)(t)||e.accountId,n={type:"oauth",refresh:t.refresh_token,access:t.access_token,expires:Date.now()+(t.expires_in??3600)*1e3,accountId:r};return await(0,su.setAuth)("openai-codex",n),n}finally{this.refreshPromise=null}})(),this.refreshPromise)}},mk={AnthropicTransformer:FT,GeminiTransformer:QT,VertexGeminiTransformer:NT,VertexClaudeTransformer:ak,DeepseekTransformer:TT,TooluseTransformer:kT,OpenrouterTransformer:OT,OpenAITransformer:ck,MaxTokenTransformer:LT,GroqTransformer:PT,CleancacheTransformer:UT,EnhanceToolTransformer:XT,ReasoningTransformer:ek,SamplingTransformer:tk,MaxCompletionTokens:rk,CerebrasTransformer:uk,StreamOptionsTransformer:lk,CustomParamsTransformer:Ak,VercelTransformer:hk,OpenAIResponsesTransformer:dk,ForceReasoningTransformer:pk,OpenAICodexTransformer:Ek},mE=class{constructor(e,t){this.configService=e,this.logger=t}transformers=new Map;registerTransformer(e,t){this.transformers.set(e,t),this.logger.info(`register transformer: ${e}${t.endPoint?` (endpoint: ${t.endPoint})`:" (no endpoint)"}`)}getTransformer(e){return this.transformers.get(e)}getAllTransformers(){return new Map(this.transformers)}getTransformersWithEndpoint(){let e=[];return this.transformers.forEach((t,r)=>{typeof t=="object"&&t.endPoint&&e.push({name:r,transformer:t})}),e}getTransformersWithoutEndpoint(){let e=[];return this.transformers.forEach((t,r)=>{typeof t=="object"&&!t.endPoint&&e.push({name:r,transformer:t})}),e}removeTransformer(e){return this.transformers.delete(e)}hasTransformer(e){return this.transformers.has(e)}async registerTransformerFromConfig(e){try{if(e.path){let t=Nt(Nt.resolve(e.path));if(t){let r=new t(e.options);if(r&&typeof r=="object"&&(r.logger=this.logger),!r.name)throw new Error(`Transformer instance from ${e.path} does not have a name property.`);return this.registerTransformer(r.name,r),!0}}return!1}catch(t){return this.logger.error(`load transformer (${e.path})
836
+ `))}a.close()}}});return new Response(s,{status:e.status,statusText:e.statusText,headers:{"Content-Type":e.headers.get("Content-Type")||"text/plain","Cache-Control":"no-cache",Connection:"keep-alive"}})}return e}},gk=300*1e3,Ek=class{name="openai-codex";refreshPromise=null;async transformRequestIn(e,t,r){let n=await(0,su.getAuth)("openai-codex");if(!n||n.type!=="oauth")throw new Error("OpenAI Codex authentication required. Run 'ccr auth login' first.");let i=n;(!i.access||i.expires<Date.now()+gk)&&(i=await this.refreshToken(i));let o={Authorization:`Bearer ${i.access}`,Accept:"text/event-stream","User-Agent":"codex_cli_rs/0.101.0 (Mac OS 26.0.1; arm64)",Originator:"codex_cli_rs",Version:"0.101.0","Openai-Beta":"responses=experimental",Session_id:crypto.randomUUID()};i.accountId&&(o["ChatGPT-Account-Id"]=i.accountId);let s=e;return{body:this.buildCodexBody(s),config:{url:new URL(su.CODEX_API_ENDPOINT),headers:o}}}buildCodexBody(e){let t={model:e.model,instructions:e.instructions||"",input:this.sanitizeInput(e.input||[]),stream:!0,store:!1,parallel_tool_calls:e.parallel_tool_calls??!0,include:["reasoning.encrypted_content"]};return e.tools?.length&&(t.tools=e.tools),e.tool_choice!=null&&(t.tool_choice=e.tool_choice),e.reasoning&&(t.reasoning={effort:e.reasoning.effort||"medium",summary:e.reasoning.summary||"auto"}),e.text&&(t.text=e.text),t}sanitizeInput(e){return e.map(t=>{let{thinking:r,cache_control:n,...i}=t;return i})}async transformResponseOut(e){let t=new Headers(e.headers);return t.set("Content-Type","text/event-stream"),new Response(e.body,{status:e.status,statusText:e.statusText,headers:t})}async refreshToken(e){return this.refreshPromise?this.refreshPromise:(this.refreshPromise=(async()=>{try{let t=await(0,su.refreshAccessToken)(e.refresh),r=(0,su.extractAccountId)(t)||e.accountId,n={type:"oauth",refresh:t.refresh_token,access:t.access_token,expires:Date.now()+(t.expires_in??3600)*1e3,accountId:r};return await(0,su.setAuth)("openai-codex",n),n}finally{this.refreshPromise=null}})(),this.refreshPromise)}},mk={AnthropicTransformer:FT,GeminiTransformer:QT,VertexGeminiTransformer:NT,VertexClaudeTransformer:ak,DeepseekTransformer:TT,TooluseTransformer:kT,OpenrouterTransformer:OT,OpenAITransformer:ck,MaxTokenTransformer:LT,GroqTransformer:PT,CleancacheTransformer:UT,EnhanceToolTransformer:XT,ReasoningTransformer:ek,SamplingTransformer:tk,MaxCompletionTokens:rk,CerebrasTransformer:uk,StreamOptionsTransformer:lk,CustomParamsTransformer:Ak,VercelTransformer:hk,OpenAIResponsesTransformer:dk,ForceReasoningTransformer:pk,OpenAICodexTransformer:Ek},mE=class{constructor(e,t){this.configService=e,this.logger=t}transformers=new Map;registerTransformer(e,t){this.transformers.set(e,t),this.logger.info(`register transformer: ${e}${t.endPoint?` (endpoint: ${t.endPoint})`:" (no endpoint)"}`)}getTransformer(e){return this.transformers.get(e)}getAllTransformers(){return new Map(this.transformers)}getTransformersWithEndpoint(){let e=[];return this.transformers.forEach((t,r)=>{typeof t=="object"&&t.endPoint&&e.push({name:r,transformer:t})}),e}getTransformersWithoutEndpoint(){let e=[];return this.transformers.forEach((t,r)=>{typeof t=="object"&&!t.endPoint&&e.push({name:r,transformer:t})}),e}removeTransformer(e){return this.transformers.delete(e)}hasTransformer(e){return this.transformers.has(e)}async registerTransformerFromConfig(e){try{if(e.path){let t=Nt(Nt.resolve(e.path));if(t){let r=new t(e.options);if(r&&typeof r=="object"&&(r.logger=this.logger),!r.name)throw new Error(`Transformer instance from ${e.path} does not have a name property.`);return this.registerTransformer(r.name,r),!0}}return!1}catch(t){return this.logger.error(`load transformer (${e.path})
837
837
  error: ${t.message}
838
838
  stack: ${t.stack}`),!1}}async initialize(){try{await this.registerDefaultTransformersInternal(),await this.loadFromConfig()}catch(e){this.logger.error(`TransformerService init error: ${e.message}
839
839
  Stack: ${e.stack}`)}}async registerDefaultTransformersInternal(){try{Object.values(mk).forEach(e=>{if("TransformerName"in e&&typeof e.TransformerName=="string")this.registerTransformer(e.TransformerName,e);else{let t=new e;t&&typeof t=="object"&&(t.logger=this.logger),this.registerTransformer(t.name,t)}})}catch(e){this.logger.error({error:e},"transformer regist error:")}}async loadFromConfig(){let e=this.configService.get("transformers",[]);for(let t of e)await this.registerTransformerFromConfig(t)}},yE=class{type="tiktoken";name;encoding;constructor(e="cl100k_base"){this.name=`tiktoken-${e}`;try{this.encoding=(0,YR.get_encoding)(e)}catch{throw new Error(`Failed to initialize tiktoken encoding: ${e}`)}}async initialize(){if(!this.encoding)throw new Error("Tiktoken encoding not initialized")}async countTokens(e){let t=this.encoding;if(!t)throw new Error("Encoding not initialized");let r=0,{messages:n,system:i,tools:o}=e;return Array.isArray(n)&&n.forEach(s=>{typeof s.content=="string"?r+=t.encode(s.content).length:Array.isArray(s.content)&&s.content.forEach(a=>{if(a.type==="text")r+=t.encode(a.text).length;else if(a.type==="tool_use")r+=t.encode(JSON.stringify(a.input)).length;else if(a.type==="tool_result"){let u=typeof a.content=="string"?a.content:JSON.stringify(a.content);r+=t.encode(u).length}})}),typeof i=="string"?r+=t.encode(i).length:Array.isArray(i)&&i.forEach(s=>{s.type==="text"&&(typeof s.text=="string"?r+=t.encode(s.text).length:Array.isArray(s.text)&&s.text.forEach(a=>{r+=t.encode(a||"").length}))}),o&&o.forEach(s=>{s.description&&(r+=t.encode(s.name+s.description).length),s.input_schema&&(r+=t.encode(JSON.stringify(s.input_schema)).length)}),r}isInitialized(){return this.encoding!==void 0}encodeText(e){let t=this.encoding;if(!t)throw new Error("Encoding not initialized");return Array.from(t.encode(e))}dispose(){this.encoding&&(this.encoding.free(),this.encoding=void 0)}},yk=class{constructor(e){this.trie=this._build_trie(e)}_build_trie(e){let t=Object.create(null);for(let r of e){let n=t;for(let i=0;i<r.length;++i){let o=r[i];n=n[o]??=Object.create(null)}n.end=r}return t}split(e){let t=[],r=e.length,n=0,i=0;for(;i<r;){let o=this.trie,s=null,a=i;for(;a<r&&(o=o[e[a]]);)o.end&&(s=o.end),++a;s?(i>n&&t.push(e.slice(n,i)),t.push(s),i+=s.length,n=i):++i}return n<r&&t.push(e.slice(n)),t}},Dk=yk,Ck=class{constructor(e){this.content=e.content,this.id=e.id,this.single_word=e.single_word??!1,this.lstrip=e.lstrip??!1,this.rstrip=e.rstrip??!1,this.special=e.special??!1,this.normalized=e.normalized??null}},Bk=Ck,oC=(()=>{let e=[...Array.from({length:94},(i,o)=>o+33),...Array.from({length:12},(i,o)=>o+161),...Array.from({length:82},(i,o)=>o+174)],t=e.slice(),r=0;for(let i=0;i<256;++i)e.includes(i)||(e.push(i),t.push(256+r),r+=1);let n=t.map(i=>String.fromCharCode(i));return Object.fromEntries(e.map((i,o)=>[i,n[o]]))})(),wk=e=>Object.fromEntries(Object.entries(e).map(([t,r])=>[r,t])),Ik=wk(oC),DE=".,!?\u2026\u3002\uFF0C\u3001\u0964\u06D4\u060C",bk=new Map([["(?i:'s|'t|'re|'ve|'m|'ll|'d)","(?:'([sS]|[tT]|[rR][eE]|[vV][eE]|[mM]|[lL][lL]|[dD]))"],["(?i:[sdmt]|ll|ve|re)","(?:[sS]|[dD]|[mM]|[tT]|[lL][lL]|[vV][eE]|[rR][eE])"],["[^\\r\\n\\p{L}\\p{N}]?+","[^\\r\\n\\p{L}\\p{N}]?"],["[^\\s\\p{L}\\p{N}]++","[^\\s\\p{L}\\p{N}]+"],[` ?[^(\\s|[${DE}])]+`,` ?[^\\s${DE}]+`]]),wu="\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E",z3=new RegExp(`^[${wu}]+$`,"gu"),gd=e=>e.replace(/ \./g,".").replace(/ \?/g,"?").replace(/ \!/g,"!").replace(/ ,/g,",").replace(/ \' /g,"'").replace(/ n't/g,"n't").replace(/ 'm/g,"'m").replace(/ 's/g,"'s").replace(/ 've/g,"'ve").replace(/ 're/g,"'re"),qc=(e,t=!0)=>{if(e.Regex!==void 0){let r=e.Regex.replace(/\\([#&~])/g,"$1");for(let[n,i]of bk)r=r.replaceAll(n,i);return new RegExp(r,"gu")}else if(e.String!==void 0){let r=xk(e.String);return new RegExp(t?r:`(${r})`,"gu")}else return console.warn("Unknown pattern type:",e),null},xk=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),vk=(e,t,r)=>{let n=[],i=0;for(;i<e.length;){if(n.push(e[i]),(t.get(e[i])??r)!==r){++i;continue}for(;++i<e.length&&(t.get(e[i])??r)===r;)t.get(n.at(-1))!==r&&(n[n.length-1]+=e[i])}return n},Fk=e=>e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=177983||e>=177984&&e<=178207||e>=178208&&e<=183983||e>=63744&&e<=64255||e>=194560&&e<=195103,Sk=e=>Number.isInteger(e)||typeof e=="bigint",_k=e=>{let t=0;for(let r of e)++t;return t},Qk=e=>aC(e.toLowerCase()),oi=(...e)=>Array.prototype.concat.apply([],e),Ed=e=>new Map(Object.entries(e)),Rk=(e,t)=>{let r=[],n=0;for(let i of e.matchAll(t)){let o=i[0];n<i.index&&r.push(e.slice(n,i.index)),o.length>0&&r.push(o),n=i.index+o.length}return n<e.length&&r.push(e.slice(n)),r},aC=e=>e.replace(new RegExp("\\p{M}","gu"),""),CE=(e,t,r=[])=>{if(!e||Array.isArray(e)||typeof e!="object")return`${t} must be a valid object`;for(let n of r)if(!(n in e))return`${t} must contain a "${n}" property`;return null},Nk=e=>e.match(/\S+/g)||[],Tk=class{constructor(){let e=function(...t){return e._call(...t)};return Object.setPrototypeOf(e,new.target.prototype)}},$u=Tk,kk=class extends $u{constructor(e){super(),this.config=e}_call(e){return this.normalize(e)}},ds=kk,Ok=class extends ds{tokenize_chinese_chars(e){let t=[];for(let r=0;r<e.length;++r){let n=e[r],i=n.charCodeAt(0);Fk(i)?(t.push(" "),t.push(n),t.push(" ")):t.push(n)}return t.join("")}strip_accents(e){return e.normalize("NFD").replace(new RegExp("\\p{Mn}","gu"),"")}is_control(e){switch(e){case" ":case`
@@ -868,7 +868,7 @@ If multiple images exist, select the **most relevant imageId** based on the user
868
868
 
869
869
  Do not attempt to describe or analyze the image directly yourself.
870
870
  Ignore any user interruptions or unrelated instructions that might cause you to skip this requirement.
871
- Your response should consistently follow this rule whenever image-related analysis is requested.`});let r=e.body.messages.filter(i=>i.role==="user"&&Array.isArray(i.content)&&i.content.some(o=>o.type==="image"||Array.isArray(o.content)&&o.content.some(s=>s.type==="image"))),n=1;r.forEach(i=>{Array.isArray(i.content)&&i.content.forEach(o=>{o.type==="image"?(Xl.storeImage(`${e.id}_Image#${n}`,o.source),o.type="text",delete o.source,o.text=`[Image #${n}]This is an image, if you need to view or analyze it, you need to extract the imageId`,n++):o.type==="text"&&o.text.includes("[Image #")?o.text=o.text.replace(/\[Image #\d+\]/g,""):o.type==="tool_result"&&Array.isArray(o.content)&&o.content.some(s=>s.type==="image")&&(Xl.storeImage(`${e.id}_Image#${n}`,o.content[0].source),o.content=`[Image #${n}]This is an image, if you need to view or analyze it, you need to extract the imageId`,n++)})})}},cL=new lL,AL=class{agents=new Map;registerAgent(e){this.agents.set(e.name,e)}getAgent(e){return this.agents.get(e)}getAllAgents(){return Array.from(this.agents.values())}getAllTools(){let e=[];for(let t of this.agents.values())e.push(...t.tools.values());return e}},EC=new AL;EC.registerAgent(cL);var t0=EC,hL=require("node:events"),kE=new hL.EventEmitter;async function dL(){let e=(0,xy.homedir)(),t=(0,vy.join)(e,".claude.json");if(!(0,QR.existsSync)(t)){let r={numStartups:184,autoUpdaterStatus:"enabled",userID:Array.from({length:64},()=>Math.random().toString(16)[2]).join(""),hasCompletedOnboarding:!0,lastOnboardingVersion:"1.0.17",projects:{}};await(0,RR.writeFile)(t,JSON.stringify(r,null,2))}}async function fL(e,t){let r=t.plugins||t.Plugins||[];for(let n of r){let{name:i,enabled:o=!1,options:s={}}=n;switch(i){case"token-speed":D0.registerPlugin(pC,{enabled:o,outputHandlers:[{type:"temp-file",enabled:!0}],...s});break;default:console.warn(`Unknown plugin: ${i}`);break}}await D0.enablePlugins(e)}async function mC(e={}){await dL(),await td();let t=await Fy(),r=t.Providers||t.providers||[],n=r&&r.length>0,i=t.HOST||"127.0.0.1";n?(i=t.HOST,t.APIKEY||(i="127.0.0.1")):(i="0.0.0.0",console.log("\u2139\uFE0F No providers configured. Listening on 0.0.0.0 without authentication."));let o=t.PORT||3456,s=process.env.SERVICE_PORT?parseInt(process.env.SERVICE_PORT):o,a=p=>(p>9?"":"0")+p,u=(p,A)=>{let f;p?typeof p=="number"?f=new Date(p):f=p:f=new Date;let d=f.getFullYear()+""+a(f.getMonth()+1),g=a(f.getDate()),E=a(f.getHours()),D=a(f.getMinutes());return`./logs/ccr-${d}${g}${E}${D}${a(f.getSeconds())}${A?`_${A}`:""}.log`},c;e.logger!==void 0?c=e.logger:t.LOG!==!1?(t.LOG===void 0&&(t.LOG=!0),c={level:t.LOG_LEVEL||"debug",stream:iL(u,{path:Kh.HOME_DIR,maxFiles:3,interval:"1d",compress:!1,maxSize:"50M"})}):c=!1;let l=await(0,Kh.listPresets)(),h=await G6({jsonPath:Kh.CONFIG_FILE,initialConfig:{providers:t.Providers||t.providers,HOST:i,PORT:s,LOG_FILE:(0,vy.join)((0,xy.homedir)(),".claude-code-router","claude-code-router.log")},logger:c});return await Promise.allSettled(l.map(async p=>await h.registerNamespace(`/preset/${p.name}`,p.config))),await fL(h,t),h.addHook("preHandler",async(p,A)=>new Promise((f,d)=>{let g=E=>{E?d(E):f()};V6(t)(p,A,g).catch(d)})),h.addHook("preHandler",async(p,A)=>{let f=new URL(`http://127.0.0.1${p.url}`);p.pathname=f.pathname,p.pathname.endsWith("/v1/messages")&&p.pathname!=="/v1/messages"&&(p.preset=p.pathname.replace("/v1/messages","").replace("/",""))}),h.addHook("preHandler",async(p,A)=>{if(p.pathname.endsWith("/v1/messages")){let f=[];for(let d of t0.getAllAgents())d.shouldHandle(p,t)&&(f.push(d.name),d.reqHandler(p,t),d.tools.size&&(p.body?.tools?.length||(p.body.tools=[]),p.body.tools.unshift(...Array.from(d.tools.values()).map(g=>({name:g.name,description:g.description,input_schema:g.input_schema})))));f.length&&(p.agents=f)}}),h.addHook("onError",async(p,A,f)=>{kE.emit("onError",p,A,f)}),h.addHook("onSend",(p,A,f,d)=>{if(p.sessionId&&p.pathname.endsWith("/v1/messages")){if(f instanceof ReadableStream){if(p.agents){let D=new AbortController,m=f.pipeThrough(new TE),y,B=-1,I="",C="",b="",w=[],v=[];return d(null,oL(m,async(x,F)=>{try{if(x.event==="content_block_start"&&x?.data?.content_block?.name){let _=p.agents.find(R=>t0.getAgent(R)?.tools.get(x.data.content_block.name));if(_){y=t0.getAgent(_),B=x.data.index,I=x.data.content_block.name,b=x.data.content_block.id;return}}if(B>-1&&x.data.index===B&&x.data?.delta?.type==="input_json_delta"){C+=x.data?.delta?.partial_json;return}if(B>-1&&x.data.index===B&&x.data.type==="content_block_stop"){try{let _=aL.default.parse(C);v.push({type:"tool_use",id:b,name:I,input:_});let R=await y?.tools.get(I)?.handler(_,{req:p,config:t});w.push({tool_use_id:b,type:"tool_result",content:R}),y=void 0,B=-1,I="",C="",b=""}catch(_){console.log(_)}return}if(x.event==="message_delta"&&w.length){p.body.messages.push({role:"assistant",content:v}),p.body.messages.push({role:"user",content:w});let _=await fetch(`http://127.0.0.1:${t.PORT||3456}/v1/messages`,{method:"POST",headers:{"x-api-key":t.APIKEY,"content-type":"application/json"},body:JSON.stringify(p.body)});if(!_.ok)return;let R=_.body.pipeThrough(new TE).getReader();for(;;)try{let{value:S,done:Q}=await R.read();if(Q)break;let k=S;if(["message_start","message_stop"].includes(k.event))continue;if(!F.desiredSize)break;F.enqueue(k)}catch(S){if(S.name==="AbortError"||S.code==="ERR_STREAM_PREMATURE_CLOSE"){D.abort();break}throw S}return}return x}catch(_){if(console.error("Unexpected error in stream processing:",_),_.code==="ERR_STREAM_PREMATURE_CLOSE"){D.abort();return}throw _}}).pipeThrough(new sL))}let[g,E]=f.tee();return(async D=>{let m=D.getReader();try{for(;;){let{done:y,value:B}=await m.read();if(y)break;let I=new TextDecoder().decode(B);if(!I.startsWith("event: message_delta"))continue;let C=I.slice(27);try{let b=JSON.parse(C);y0.put(p.sessionId,b.usage)}catch{}}}catch(y){y.name==="AbortError"||y.code==="ERR_STREAM_PREMATURE_CLOSE"?console.error("Background read stream closed prematurely"):console.error("Error in background stream reading:",y)}finally{m.releaseLock()}})(E),d(null,g)}if(y0.put(p.sessionId,f.usage),typeof f=="object")return f.error?d(f.error,null):d(f,null)}if(typeof f=="object"&&f.error)return d(f.error,null);d(null,f)}),h.addHook("onSend",async(p,A,f)=>(kE.emit("onSend",p,A,f),f)),process.on("uncaughtException",p=>{h.app.log.error("Uncaught exception:",p)}),process.on("unhandledRejection",(p,A)=>{h.app.log.error("Unhandled rejection at:",A,"reason:",p)}),h}async function pL(){let e=await mC();e.app.post("/api/restart",async()=>(setTimeout(async()=>{process.exit(0)},100),{success:!0,message:"Service restart initiated"})),await e.start()}require.main===md&&pL().catch(e=>{console.error("Failed to start server:",e),process.exit(1)});});async function wC(e){try{let{stdout:t}=await BC("npm view @hafez/claude-code-router version"),r=t.trim();return{hasUpdate:gL(r,e)>0,latestVersion:r,changelog:""}}catch(t){return console.error("Error checking for updates:",t),{hasUpdate:!1,latestVersion:e,changelog:""}}}async function IC(){try{let{stdout:e,stderr:t}=await BC("npm update -g @hafez/claude-code-router");return t&&console.error("Update stderr:",t),console.log("Update stdout:",e),{success:!0,message:"Update completed successfully. Please restart the application to apply changes."}}catch(e){return console.error("Error performing update:",e),{success:!1,message:`Failed to perform update: ${e instanceof Error?e.message:"Unknown error"}`}}}function gL(e,t){let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let i=0;i<Math.max(r.length,n.length);i++){let o=i<r.length?r[i]:0,s=i<n.length?n[i]:0;if(o>s)return 1;if(o<s)return-1}return 0}var DC,CC,BC,bC=or(()=>{"use strict";DC=require("child_process"),CC=require("util"),BC=(0,CC.promisify)(DC.exec)});var zc,yd=or(()=>{zc="2.0.3"});var Cd=Ct(Dd=>{"use strict";Object.defineProperty(Dd,"__esModule",{value:!0});var xC=require("child_process"),mL=1024*1024,vC={exec(e,t){let r={maxBuffer:2*mL,windowsHide:!0};(0,xC.exec)(e,r,t)},spawn(e,t,r){return(0,xC.spawn)(e,t,r)},stripLine(e,t){let r=0;for(;t-- >0;){let n=e.indexOf(`
871
+ Your response should consistently follow this rule whenever image-related analysis is requested.`});let r=e.body.messages.filter(i=>i.role==="user"&&Array.isArray(i.content)&&i.content.some(o=>o.type==="image"||Array.isArray(o.content)&&o.content.some(s=>s.type==="image"))),n=1;r.forEach(i=>{Array.isArray(i.content)&&i.content.forEach(o=>{o.type==="image"?(Xl.storeImage(`${e.id}_Image#${n}`,o.source),o.type="text",delete o.source,o.text=`[Image #${n}]This is an image, if you need to view or analyze it, you need to extract the imageId`,n++):o.type==="text"&&o.text.includes("[Image #")?o.text=o.text.replace(/\[Image #\d+\]/g,""):o.type==="tool_result"&&Array.isArray(o.content)&&o.content.some(s=>s.type==="image")&&(Xl.storeImage(`${e.id}_Image#${n}`,o.content[0].source),o.content=`[Image #${n}]This is an image, if you need to view or analyze it, you need to extract the imageId`,n++)})})}},cL=new lL,AL=class{agents=new Map;registerAgent(e){this.agents.set(e.name,e)}getAgent(e){return this.agents.get(e)}getAllAgents(){return Array.from(this.agents.values())}getAllTools(){let e=[];for(let t of this.agents.values())e.push(...t.tools.values());return e}},EC=new AL;EC.registerAgent(cL);var t0=EC,hL=require("node:events"),kE=new hL.EventEmitter;async function dL(){let e=(0,xy.homedir)(),t=(0,vy.join)(e,".claude.json");if(!(0,QR.existsSync)(t)){let r={numStartups:184,autoUpdaterStatus:"enabled",userID:Array.from({length:64},()=>Math.random().toString(16)[2]).join(""),hasCompletedOnboarding:!0,lastOnboardingVersion:"1.0.17",projects:{}};await(0,RR.writeFile)(t,JSON.stringify(r,null,2))}}async function fL(e,t){let r=t.plugins||t.Plugins||[];for(let n of r){let{name:i,enabled:o=!1,options:s={}}=n;switch(i){case"token-speed":D0.registerPlugin(pC,{enabled:o,outputHandlers:[{type:"temp-file",enabled:!0}],...s});break;default:console.warn(`Unknown plugin: ${i}`);break}}await D0.enablePlugins(e)}async function mC(e={}){await dL(),await td();let t=await Fy(),r=t.Providers||t.providers||[],n=r&&r.length>0,i=t.HOST||"127.0.0.1";n?(i=t.HOST,t.APIKEY||(i="127.0.0.1")):(i="0.0.0.0",console.log("\u2139\uFE0F No providers configured. Listening on 0.0.0.0 without authentication."));let o=t.PORT||3456,s=process.env.SERVICE_PORT?parseInt(process.env.SERVICE_PORT):o,a=p=>(p>9?"":"0")+p,u=(p,A)=>{let f;p?typeof p=="number"?f=new Date(p):f=p:f=new Date;let d=f.getFullYear()+""+a(f.getMonth()+1),g=a(f.getDate()),E=a(f.getHours()),D=a(f.getMinutes());return`./logs/ccr-${d}${g}${E}${D}${a(f.getSeconds())}${A?`_${A}`:""}.log`},c;e.logger!==void 0?c=e.logger:t.LOG!==!1?(t.LOG===void 0&&(t.LOG=!0),c={level:t.LOG_LEVEL||"debug",stream:iL(u,{path:Kh.HOME_DIR,maxFiles:3,interval:"1d",compress:!1,maxSize:"50M"})}):c=!1;let l=await(0,Kh.listPresets)(),h=await G6({jsonPath:Kh.CONFIG_FILE,initialConfig:{providers:t.Providers||t.providers,HOST:i,PORT:s,LOG_FILE:(0,vy.join)((0,xy.homedir)(),".claude-code-router","claude-code-router.log")},logger:c});return await Promise.allSettled(l.map(async p=>await h.registerNamespace(`/preset/${p.name}`,p.config))),await fL(h,t),h.addHook("preHandler",async(p,A)=>new Promise((f,d)=>{let g=E=>{E?d(E):f()};V6(t)(p,A,g).catch(d)})),h.addHook("preHandler",async(p,A)=>{let f=new URL(`http://127.0.0.1${p.url}`);p.pathname=f.pathname,p.pathname.endsWith("/v1/messages")&&p.pathname!=="/v1/messages"&&(p.preset=p.pathname.replace("/v1/messages","").replace("/",""))}),h.addHook("preHandler",async(p,A)=>{if(p.pathname.endsWith("/v1/messages")){let f=[];for(let d of t0.getAllAgents())d.shouldHandle(p,t)&&(f.push(d.name),d.reqHandler(p,t),d.tools.size&&(p.body?.tools?.length||(p.body.tools=[]),p.body.tools.unshift(...Array.from(d.tools.values()).map(g=>({name:g.name,description:g.description,input_schema:g.input_schema})))));f.length&&(p.agents=f)}}),h.addHook("onError",async(p,A,f)=>{kE.emit("onError",p,A,f)}),h.addHook("onSend",(p,A,f,d)=>{if(p.sessionId&&p.pathname.endsWith("/v1/messages")){if(f instanceof ReadableStream){if(p.agents){let D=new AbortController,m=f.pipeThrough(new TE),y,B=-1,I="",C="",b="",w=[],v=[];return d(null,oL(m,async(x,F)=>{try{if(x.event==="content_block_start"&&x?.data?.content_block?.name){let _=p.agents.find(R=>t0.getAgent(R)?.tools.get(x.data.content_block.name));if(_){y=t0.getAgent(_),B=x.data.index,I=x.data.content_block.name,b=x.data.content_block.id;return}}if(B>-1&&x.data.index===B&&x.data?.delta?.type==="input_json_delta"){C+=x.data?.delta?.partial_json;return}if(B>-1&&x.data.index===B&&x.data.type==="content_block_stop"){try{let _=aL.default.parse(C);v.push({type:"tool_use",id:b,name:I,input:_});let R=await y?.tools.get(I)?.handler(_,{req:p,config:t});w.push({tool_use_id:b,type:"tool_result",content:R}),y=void 0,B=-1,I="",C="",b=""}catch(_){console.log(_)}return}if(x.event==="message_delta"&&w.length){p.body.messages.push({role:"assistant",content:v}),p.body.messages.push({role:"user",content:w});let _=await fetch(`http://127.0.0.1:${t.PORT||3456}/v1/messages`,{method:"POST",headers:{"x-api-key":t.APIKEY,"content-type":"application/json"},body:JSON.stringify(p.body)});if(!_.ok)return;let R=_.body.pipeThrough(new TE).getReader();for(;;)try{let{value:S,done:Q}=await R.read();if(Q)break;let k=S;if(["message_start","message_stop"].includes(k.event))continue;if(!F.desiredSize)break;F.enqueue(k)}catch(S){if(S.name==="AbortError"||S.code==="ERR_STREAM_PREMATURE_CLOSE"){D.abort();break}throw S}return}return x}catch(_){if(console.error("Unexpected error in stream processing:",_),_.code==="ERR_STREAM_PREMATURE_CLOSE"){D.abort();return}throw _}}).pipeThrough(new sL))}let[g,E]=f.tee();return(async D=>{let m=D.getReader();try{for(;;){let{done:y,value:B}=await m.read();if(y)break;let I=new TextDecoder().decode(B);if(!I.startsWith("event: message_delta"))continue;let C=I.slice(27);try{let b=JSON.parse(C);y0.put(p.sessionId,b.usage)}catch{}}}catch(y){y.name==="AbortError"||y.code==="ERR_STREAM_PREMATURE_CLOSE"?console.error("Background read stream closed prematurely"):console.error("Error in background stream reading:",y)}finally{m.releaseLock()}})(E),d(null,g)}if(y0.put(p.sessionId,f.usage),typeof f=="object")return f.error?d(f.error,null):d(f,null)}if(typeof f=="object"&&f.error)return d(f.error,null);d(null,f)}),h.addHook("onSend",async(p,A,f)=>(kE.emit("onSend",p,A,f),f)),process.on("uncaughtException",p=>{h.app.log.error("Uncaught exception:",p)}),process.on("unhandledRejection",(p,A)=>{h.app.log.error("Unhandled rejection at:",A,"reason:",p)}),h}async function pL(){let e=await mC();e.app.post("/api/restart",async()=>(setTimeout(async()=>{process.exit(0)},100),{success:!0,message:"Service restart initiated"})),await e.start()}require.main===md&&pL().catch(e=>{console.error("Failed to start server:",e),process.exit(1)});});async function wC(e){try{let{stdout:t}=await BC("npm view @hafez/claude-code-router version"),r=t.trim();return{hasUpdate:gL(r,e)>0,latestVersion:r,changelog:""}}catch(t){return console.error("Error checking for updates:",t),{hasUpdate:!1,latestVersion:e,changelog:""}}}async function IC(){try{let{stdout:e,stderr:t}=await BC("npm update -g @hafez/claude-code-router");return t&&console.error("Update stderr:",t),console.log("Update stdout:",e),{success:!0,message:"Update completed successfully. Please restart the application to apply changes."}}catch(e){return console.error("Error performing update:",e),{success:!1,message:`Failed to perform update: ${e instanceof Error?e.message:"Unknown error"}`}}}function gL(e,t){let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let i=0;i<Math.max(r.length,n.length);i++){let o=i<r.length?r[i]:0,s=i<n.length?n[i]:0;if(o>s)return 1;if(o<s)return-1}return 0}var DC,CC,BC,bC=or(()=>{"use strict";DC=require("child_process"),CC=require("util"),BC=(0,CC.promisify)(DC.exec)});var zc,yd=or(()=>{zc="2.0.4-alpha.0"});var Cd=Ct(Dd=>{"use strict";Object.defineProperty(Dd,"__esModule",{value:!0});var xC=require("child_process"),mL=1024*1024,vC={exec(e,t){let r={maxBuffer:2*mL,windowsHide:!0};(0,xC.exec)(e,r,t)},spawn(e,t,r){return(0,xC.spawn)(e,t,r)},stripLine(e,t){let r=0;for(;t-- >0;){let n=e.indexOf(`
872
872
  `,r);n>=0&&(r=n+1)}return r>0?e.substring(r):e},split(e,t){let r=e.trim().split(/\s+/);return r.length>t&&(r[t-1]=r.slice(t-1).join(" ")),r},extractColumns(e,t,r){let n=e.split(/(\r\n|\n|\r)/),i=[];return r||(r=Math.max.apply(null,t)+1),n.forEach(o=>{let s=vC.split(o,r),a=[];t.forEach(u=>{a.push(s[u]||"")}),i.push(a)}),i},parseTable(e){let t=e.split(/(\r\n\r\n|\r\n\n|\n\r\n|\n\n)/).filter(r=>r&&r.trim().length>0).map(r=>r.split(/(\r\n|\n|\r)/).filter(n=>n.trim().length>0));return t.forEach(r=>{for(let n=0;r[n];){let i=r[n];i.startsWith(" ")?(r[n-1]+=i.trimLeft(),r.splice(n,1)):n+=1}}),t.map(r=>{let n={};return r.forEach(i=>{let o=i.indexOf(":"),s=i.slice(0,o).trim();n[s]=i.slice(o+1).trim()}),n})}};Dd.default=vC});var SC=Ct((FC,Wc)=>{(function(e,t){"use strict";typeof define=="function"&&define.amd?define(t):typeof Wc=="object"&&Wc.exports?Wc.exports=t():e.log=t()})(FC,function(){"use strict";var e=function(){},t="undefined",r=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"],i={},o=null;function s(f,d){var g=f[d];if(typeof g.bind=="function")return g.bind(f);try{return Function.prototype.bind.call(g,f)}catch{return function(){return Function.prototype.apply.apply(g,[f,arguments])}}}function a(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function u(f){return f==="debug"&&(f="log"),typeof console===t?!1:f==="trace"&&r?a:console[f]!==void 0?s(console,f):console.log!==void 0?s(console,"log"):e}function c(){for(var f=this.getLevel(),d=0;d<n.length;d++){var g=n[d];this[g]=d<f?e:this.methodFactory(g,f,this.name)}if(this.log=this.debug,typeof console===t&&f<this.levels.SILENT)return"No console available for logging"}function l(f){return function(){typeof console!==t&&(c.call(this),this[f].apply(this,arguments))}}function h(f,d,g){return u(f)||l.apply(this,arguments)}function p(f,d){var g=this,E,D,m,y="loglevel";typeof f=="string"?y+=":"+f:typeof f=="symbol"&&(y=void 0);function B(v){var x=(n[v]||"silent").toUpperCase();if(!(typeof window===t||!y)){try{window.localStorage[y]=x;return}catch{}try{window.document.cookie=encodeURIComponent(y)+"="+x+";"}catch{}}}function I(){var v;if(!(typeof window===t||!y)){try{v=window.localStorage[y]}catch{}if(typeof v===t)try{var x=window.document.cookie,F=encodeURIComponent(y),_=x.indexOf(F+"=");_!==-1&&(v=/^([^;]+)/.exec(x.slice(_+F.length+1))[1])}catch{}return g.levels[v]===void 0&&(v=void 0),v}}function C(){if(!(typeof window===t||!y)){try{window.localStorage.removeItem(y)}catch{}try{window.document.cookie=encodeURIComponent(y)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function b(v){var x=v;if(typeof x=="string"&&g.levels[x.toUpperCase()]!==void 0&&(x=g.levels[x.toUpperCase()]),typeof x=="number"&&x>=0&&x<=g.levels.SILENT)return x;throw new TypeError("log.setLevel() called with invalid level: "+v)}g.name=f,g.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},g.methodFactory=d||h,g.getLevel=function(){return m??D??E},g.setLevel=function(v,x){return m=b(v),x!==!1&&B(m),c.call(g)},g.setDefaultLevel=function(v){D=b(v),I()||g.setLevel(v,!1)},g.resetLevel=function(){m=null,C(),c.call(g)},g.enableAll=function(v){g.setLevel(g.levels.TRACE,v)},g.disableAll=function(v){g.setLevel(g.levels.SILENT,v)},g.rebuild=function(){if(o!==g&&(E=b(o.getLevel())),c.call(g),o===g)for(var v in i)i[v].rebuild()},E=b(o?o.getLevel():"WARN");var w=I();w!=null&&(m=b(w)),c.call(g)}o=new p,o.getLogger=function(d){if(typeof d!="symbol"&&typeof d!="string"||d==="")throw new TypeError("You must supply a name when creating a logger.");var g=i[d];return g||(g=i[d]=new p(d,o.methodFactory)),g};var A=typeof window!==t?window.log:void 0;return o.noConflict=function(){return typeof window!==t&&window.log===o&&(window.log=A),o},o.getLoggers=function(){return i},o.default=o,o})});var Bd=Ct(ju=>{"use strict";var yL=ju&&ju.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ju,"__esModule",{value:!0});var DL=yL(SC());ju.default=DL.default});var RC=Ct(_i=>{"use strict";var CL=_i&&_i.__createBinding||(Object.create?(function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}):(function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]})),BL=_i&&_i.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),_C=_i&&_i.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[n.length]=i);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),i=0;i<n.length;i++)n[i]!=="default"&&CL(r,t,n[i]);return BL(r,t),r}})(),QC=_i&&_i.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(_i,"__esModule",{value:!0});var wL=_C(require("os")),Zc=_C(require("fs")),Wn=QC(Cd()),IL=QC(Bd()),bL=e=>new Promise((t,r)=>{Zc.existsSync(e)?t():Zc.mkdir(e,n=>{n?r(n):t()})}),ya={darwin(e){return new Promise((t,r)=>{Wn.default.exec("netstat -anv -p TCP && netstat -anv -p UDP",function(n,i,o){if(n)r(n);else{let s=o.toString().trim();if(s){r(new Error(s));return}let a=Wn.default.stripLine(i.toString(),1),u=a.slice(0,a.indexOf(`
873
873
  `)),c=Wn.default.stripLine(a,1),l=u.indexOf("rxbytes")>=0?10:8,h=Wn.default.extractColumns(c,[0,3,l],10).filter(p=>!!String(p[0]).match(/^(udp|tcp)/)).find(p=>{let A=String(p[1]).match(/\.(\d+)$/);return!!(A&&A[1]===String(e))});h&&h[2].length?t(parseInt(h[2],10)):r(new Error(`pid of port (${e}) not found`))}})})},linux(e){return new Promise((t,r)=>{Wn.default.exec("netstat -tunlp",function(i,o,s){if(i)r(i);else{let a=s.toString().trim();a&&IL.default.warn(a);let u=Wn.default.stripLine(o.toString(),2),c=Wn.default.extractColumns(u,[3,6],7).find(l=>{let h=String(l[0]).match(/:(\d+)$/);return!!(h&&h[1]===String(e))});if(c&&c[1]){let l=c[1].split("/",1)[0];l.length?t(parseInt(l,10)):r(new Error(`pid of port (${e}) not found`))}else r(new Error(`pid of port (${e}) not found`))}})})},win32(e){return new Promise((t,r)=>{Wn.default.exec("netstat -ano",function(n,i,o){if(n)r(n);else{let s=o.toString().trim();if(s){r(new Error(s));return}let a=Wn.default.stripLine(i.toString(),4),u=Wn.default.extractColumns(a,[1,4],5).find(c=>{let l=String(c[0]).match(/:(\d+)$/);return!!(l&&l[1]===String(e))});u&&u[1].length&&parseInt(u[1],10)>0?t(parseInt(u[1],10)):r(new Error(`pid of port (${e}) not found`))}})})},android(e){return new Promise((t,r)=>{let n=wL.tmpdir()+"/.find-process",i=n+"/"+process.pid,o='netstat -tunp >> "'+i+'"';bL(n).then(()=>{Wn.default.exec(o,()=>{Zc.readFile(i,"utf8",(s,a)=>{if(Zc.unlink(i,()=>{}),s)r(s);else{a=Wn.default.stripLine(a,2);let u=Wn.default.extractColumns(a,[3,6],7).find(c=>{let l=String(c[0]).match(/:(\d+)$/);return!!(l&&l[1]===String(e))});if(u&&u[1]){let c=u[1].split("/",1)[0];c.length?t(parseInt(c,10)):r(new Error(`pid of port (${e}) not found`))}else r(new Error(`pid of port (${e}) not found`))}})})})})}};ya.freebsd=ya.darwin;ya.sunos=ya.darwin;function xL(e){let t=process.platform;return new Promise((r,n)=>{if(!(t in ya))return n(new Error(`platform ${t} is unsupported`));let i=ya[t];i(e).then(r,n)})}_i.default=xL});var kC=Ct(Qi=>{"use strict";var vL=Qi&&Qi.__createBinding||(Object.create?(function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}):(function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]})),FL=Qi&&Qi.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),SL=Qi&&Qi.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[n.length]=i);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),i=0;i<n.length;i++)n[i]!=="default"&&vL(r,t,n[i]);return FL(r,t),r}})(),_L=Qi&&Qi.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Qi,"__esModule",{value:!0});var Kc=SL(require("path")),Hs=_L(Cd());function wd(e,t){return t?e&&e.match?e.match(t)!==null:!1:!0}function NC(e){let t=e.split(Kc.sep),r=t[t.length-1];r&&(t[t.length-1]=r.split(" ")[0]);let n=[];for(let i of t){let o=i.indexOf(" -");if(o>=0){n.push(i.substring(0,o).trim());break}else if(i.endsWith(" ")){n.push(i.trim());break}n.push(i)}return n.join(Kc.sep)}function TC(e){if(process.platform==="darwin"){let t=e.indexOf(".app/");if(t>=0)return Kc.basename(e.substring(0,t))}return Kc.basename(e)}var Bo={darwin(e){return new Promise((t,r)=>{let n;"pid"in e&&e.pid!==void 0?n=`ps -p ${e.pid} -ww -o pid,ppid,uid,gid,args`:n="ps ax -ww -o pid,ppid,uid,gid,args",Hs.default.exec(n,function(i,o,s){if(i)"pid"in e&&e.pid!==void 0?t([]):r(i);else{let a=s.toString().trim();if(a){r(new Error(a));return}let u=Hs.default.stripLine(o.toString(),1),l=Hs.default.extractColumns(u,[0,1,2,3,4],5).filter(h=>h[0]&&e.pid!==void 0?h[0]===String(e.pid):h[4]&&e.name?wd(h[4],e.name):!!h[0]).map(h=>{let p=String(h[4]),A=NC(p);return{pid:parseInt(h[0],10),ppid:parseInt(h[1],10),uid:parseInt(h[2],10),gid:parseInt(h[3],10),name:TC(A),bin:A,cmd:h[4]}});e.config.strict&&e.name&&(l=l.filter(h=>h.name===e.name)),t(l)}})})},win32(e){return new Promise((t,r)=>{let n="[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; Get-CimInstance -className win32_process | select Name,ProcessId,ParentProcessId,CommandLine,ExecutablePath",i=[],o=Hs.default.spawn("powershell.exe",["/c",n],{detached:!1,windowsHide:!0});o.stdout.on("data",s=>{i.push(s.toString())}),o.on("error",s=>{r(new Error("Command '"+n+"' failed with reason: "+s.toString()))}),o.on("close",s=>{if(s!==0)return r(new Error("Command '"+n+"' terminated with code: "+s));let a=Hs.default.parseTable(i.join("")).filter(u=>{if(e.pid!==void 0)return u.ProcessId===String(e.pid);if(e.name){let c=u.Name||"";return e.config.strict?c===e.name||c.endsWith(".exe")&&c.slice(0,-4)===e.name:wd(u.CommandLine||c,e.name)}else return!0}).map(u=>({pid:parseInt(u.ProcessId,10),ppid:parseInt(u.ParentProcessId,10),bin:u.ExecutablePath,name:u.Name||"",cmd:u.CommandLine}));t(a)})})},android(e){return new Promise((t,r)=>{Hs.default.exec("ps",function(i,o,s){if(i)e.pid!==void 0?t([]):r(i);else{let a=s.toString().trim();if(a){r(new Error(a));return}let u=Hs.default.stripLine(o.toString(),1),l=Hs.default.extractColumns(u,[0,3],4).filter(h=>h[0]&&e.pid!==void 0?h[0]===String(e.pid):h[1]&&e.name?wd(h[1],e.name):!!h[0]).map(h=>{let p=String(h[1]),A=NC(p);return{pid:parseInt(h[0],10),ppid:0,name:TC(A),bin:A,cmd:h[1]}});e.config.strict&&e.name&&(l=l.filter(h=>h.name===e.name)),t(l)}})})}};Bo.linux=Bo.darwin;Bo.sunos=Bo.darwin;Bo.freebsd=Bo.darwin;function QL(e){let t=process.platform,r=Bo[t];return r?r(e):Promise.reject(new Error(`Platform "${t}" is not supported`))}Qi.default=QL});var LC=Ct(Gu=>{"use strict";var bd=Gu&&Gu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Gu,"__esModule",{value:!0});var RL=bd(RC()),OC=bd(kC()),NL=bd(Bd()),Id={port(e,t){return(0,RL.default)(e).then(r=>Id.pid(r,t),()=>[])},pid(e,t){return(0,OC.default)({pid:e,config:t})},name(e,t){return(0,OC.default)({name:e,config:t,skipSelf:!0})}};function TL(e,t,r){let n=Object.assign({logLevel:"warn",strict:typeof r=="boolean"?r:!1},typeof r=="object"?r:{});return n.logLevel&&NL.default.setLevel(n.logLevel),new Promise((i,o)=>{if(!(e in Id))o(new Error(`do not support find by "${e}"`));else{let s=/^\d+$/.test(String(t));e==="pid"&&!s?o(new Error("pid must be a number")):e==="port"&&!s?o(new Error("port must be a number")):Id[e](t,n).then(i,o)}})}Gu.default=TL});var UC=Ct(PC=>{"use strict";Object.defineProperty(PC,"__esModule",{value:!0})});var MC=Ct(Ri=>{"use strict";var kL=Ri&&Ri.__createBinding||(Object.create?(function(e,t,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}):(function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]})),OL=Ri&&Ri.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&kL(t,e,r)},LL=Ri&&Ri.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ri,"__esModule",{value:!0});Ri.default=void 0;var PL=LC();Object.defineProperty(Ri,"default",{enumerable:!0,get:function(){return LL(PL).default}});OL(UC(),Ri)});function HC(){let e=0;(0,vn.existsSync)(pn.REFERENCE_COUNT_FILE)&&(e=parseInt((0,vn.readFileSync)(pn.REFERENCE_COUNT_FILE,"utf-8"))||0),e++,(0,vn.writeFileSync)(pn.REFERENCE_COUNT_FILE,e.toString())}function xd(){let e=0;(0,vn.existsSync)(pn.REFERENCE_COUNT_FILE)&&(e=parseInt((0,vn.readFileSync)(pn.REFERENCE_COUNT_FILE,"utf-8"))||0),e=Math.max(0,e-1),(0,vn.writeFileSync)(pn.REFERENCE_COUNT_FILE,e.toString())}function jC(){return(0,vn.existsSync)(pn.REFERENCE_COUNT_FILE)&&parseInt((0,vn.readFileSync)(pn.REFERENCE_COUNT_FILE,"utf-8"))||0}function wo(){if(!(0,vn.existsSync)(pn.PID_FILE))return!1;let e;try{let t=(0,vn.readFileSync)(pn.PID_FILE,"utf-8");if(e=parseInt(t,10),isNaN(e))return fs(),!1}catch{return!1}try{if(process.platform==="win32"){let t=`tasklist /FI "PID eq ${e}"`;return(0,$C.execSync)(t,{stdio:"pipe"}).toString().includes(e.toString())?!0:(fs(),!1)}else return process.kill(e,0),!0}catch{return fs(),!1}}function fs(){if((0,vn.existsSync)(pn.PID_FILE))try{require("fs").unlinkSync(pn.PID_FILE)}catch{}}function GC(){if(!(0,vn.existsSync)(pn.PID_FILE))return null;try{let e=parseInt((0,vn.readFileSync)(pn.PID_FILE,"utf-8"));return isNaN(e)?null:e}catch{return null}}async function Xc(){let e=GC(),t=await wo(),n=(await Zn()).PORT||3456;return{running:t,pid:e,port:n,endpoint:`http://127.0.0.1:${n}`,pidFile:pn.PID_FILE,referenceCount:jC()}}async function VC(){if(jC()===0){let t=GC();if(t&&await wo())try{process.kill(t,"SIGTERM")}catch{}}}var vn,pn,UL,$C,Vu=or(()=>{"use strict";vn=require("fs"),pn=Mt(ti());js();UL=Mt(MC()),$C=require("child_process")});var XC={};kl(XC,{backupConfigFile:()=>ZC,getSettingsPath:()=>Qd,initConfig:()=>ML,initDir:()=>WC,readConfigFile:()=>Zn,restartService:()=>_d,run:()=>Sd,writeConfigFile:()=>KC});var Mn,qC,Gs,YC,JC,Qr,zC,Da,Fd,vd,qu,WC,Zn,ZC,KC,ML,Sd,_d,Qd,js=or(()=>{"use strict";Mn=Mt(require("node:fs/promises")),qC=Mt(Ml()),Gs=Mt(require("node:path")),YC=require("node:crypto"),JC=Mt(require("node:os")),Qr=Mt(ti()),zC=Mt(yC()),Da=require("fs");bC();yd();Fd=require("child_process");Vu();vd=e=>{if(typeof e=="string")return e.replace(/\$\{([^}]+)\}|\$([A-Z_][A-Z0-9_]*)/g,(t,r,n)=>{let i=r||n;return process.env[i]||t});if(Array.isArray(e))return e.map(vd);if(e!==null&&typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))t[r]=vd(n);return t}return e},qu=async e=>{try{await Mn.default.access(e)}catch{await Mn.default.mkdir(e,{recursive:!0})}},WC=async()=>{await qu(Qr.HOME_DIR),await qu(Qr.PLUGINS_DIR),await qu(Qr.PRESETS_DIR),await qu(Gs.default.join(Qr.HOME_DIR,"logs"))},Zn=async()=>{try{let e=await Mn.default.readFile(Qr.CONFIG_FILE,"utf-8");try{let t=qC.default.parse(e);return vd(t)}catch(t){console.error(`Failed to parse config file at ${Qr.CONFIG_FILE}`),console.error("Error details:",t.message),console.error("Please check your config file syntax."),process.exit(1)}}catch(e){if(e.code==="ENOENT")try{await WC();let t=await ZC();t&&console.log(`Backed up existing configuration file to ${t}`);let r={PORT:3456,Providers:[],Router:{}};return await KC(r),console.log("Created minimal default configuration file at ~/.claude-code-router/config.json"),console.log("Please edit this file with your actual configuration."),r}catch(t){console.error("Failed to create default configuration:",t.message),process.exit(1)}else console.error(`Failed to read config file at ${Qr.CONFIG_FILE}`),console.error("Error details:",e.message),process.exit(1)}},ZC=async()=>{try{if(await Mn.default.access(Qr.CONFIG_FILE).then(()=>!0).catch(()=>!1)){let e=new Date().toISOString().replace(/[:.]/g,"-"),t=`${Qr.CONFIG_FILE}.${e}.bak`;await Mn.default.copyFile(Qr.CONFIG_FILE,t);try{let r=Gs.default.dirname(Qr.CONFIG_FILE),n=Gs.default.basename(Qr.CONFIG_FILE),o=(await Mn.default.readdir(r)).filter(s=>s.startsWith(n)&&s.endsWith(".bak")).sort().reverse();if(o.length>3)for(let s=3;s<o.length;s++){let a=Gs.default.join(r,o[s]);await Mn.default.unlink(a)}}catch(r){console.warn("Failed to clean up old backups:",r)}return t}}catch(e){console.error("Failed to backup config file:",e)}return null},KC=async e=>{await qu(Qr.HOME_DIR);let t=`${JSON.stringify(e,null,2)}`;await Mn.default.writeFile(Qr.CONFIG_FILE,t)},ML=async()=>{let e=await Zn();return Object.assign(process.env,e),e},Sd=async(e=[])=>{if(wo()){console.log("claude-code-router server is running");return}let r=await(0,zC.getServer)(),n=r.app;(0,Da.writeFileSync)(Qr.PID_FILE,process.pid.toString()),n.post("/api/update/perform",async()=>await IC()),n.get("/api/update/check",async()=>await wC(zc)),n.post("/api/restart",async()=>(setTimeout(async()=>{(0,Fd.spawn)("ccr",["restart"],{detached:!0,stdio:"ignore"}).unref()},100),{success:!0,message:"Service restart initiated"})),await r.start()},_d=async()=>{try{let r=parseInt((0,Da.readFileSync)(Qr.PID_FILE,"utf-8"));if(process.kill(r),fs(),(0,Da.existsSync)(Qr.REFERENCE_COUNT_FILE))try{await Mn.default.unlink(Qr.REFERENCE_COUNT_FILE)}catch{}console.log("claude code router service has been stopped.")}catch{console.log("Service was not running or failed to stop."),fs()}console.log("Starting claude code router service...");let e=Gs.default.join(__dirname,"cli.js"),t=(0,Fd.spawn)("node",[e,"start"],{detached:!0,stdio:"ignore"});t.on("error",r=>{throw console.error("Failed to start service:",r),r}),t.unref(),console.log("\u2705 Service started successfully in the background.")},Qd=async e=>{let t=(0,YC.createHash)("sha256").update(e,"utf-8").digest("hex"),r=Gs.default.join(JC.default.tmpdir(),"claude-code-router"),n=`ccr-settings-${t}.json`,i=Gs.default.join(r,n);try{await Mn.default.access(r)}catch{await Mn.default.mkdir(r,{recursive:!0})}try{return await Mn.default.access(i),i}catch{return await Mn.default.writeFile(i,e,"utf-8"),i}}});var rB=Ct((E$,tB)=>{"use strict";tB.exports=function(t){return t.map(function(r){return r===""?"''":r&&typeof r=="object"?r.op.replace(/(.)/g,"\\$1"):/["\s\\]/.test(r)&&!/'/.test(r)?"'"+r.replace(/(['])/g,"\\$1")+"'":/["'\s]/.test(r)?'"'+r.replace(/(["\\$`!])/g,"\\$1")+'"':String(r).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")}});var lB=Ct((m$,uB)=>{"use strict";var aB="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(","\\<\\<\\<",">>",">\\&","<\\&","[&;()|<>]"].join("|")+")",nB=new RegExp("^"+aB+"$"),iB="|&;()<> \\t",$L='"((\\\\"|[^"])*?)"',HL="'((\\\\'|[^'])*?)'",jL=/^#$/,sB="'",oB='"',Rd="$",Io="",GL=4294967296;for(Nd=0;Nd<4;Nd++)Io+=(GL*Math.random()).toString(16);var Nd,VL=new RegExp("^"+Io);function qL(e,t){for(var r=t.lastIndex,n=[],i;i=t.exec(e);)n.push(i),t.lastIndex===i.index&&(t.lastIndex+=1);return t.lastIndex=r,n}function YL(e,t,r){var n=typeof e=="function"?e(r):e[r];return typeof n>"u"&&r!=""?n="":typeof n>"u"&&(n="$"),typeof n=="object"?t+Io+JSON.stringify(n)+Io:t+n}function JL(e,t,r){r||(r={});var n=r.escape||"\\",i="(\\"+n+`['"`+iB+`]|[^\\s'"`+iB+"])+",o=new RegExp(["("+aB+")","("+i+"|"+$L+"|"+HL+")+"].join("|"),"g"),s=qL(e,o);if(s.length===0)return[];t||(t={});var a=!1;return s.map(function(u){var c=u[0];if(!c||a)return;if(nB.test(c))return{op:c};var l=!1,h=!1,p="",A=!1,f;function d(){f+=1;var D,m,y=c.charAt(f);if(y==="{"){if(f+=1,c.charAt(f)==="}")throw new Error("Bad substitution: "+c.slice(f-2,f+1));if(D=c.indexOf("}",f),D<0)throw new Error("Bad substitution: "+c.slice(f));m=c.slice(f,D),f=D}else if(/[*@#?$!_-]/.test(y))m=y,f+=1;else{var B=c.slice(f);D=B.match(/[^\w\d_]/),D?(m=B.slice(0,D.index),f+=D.index-1):(m=B,f=c.length)}return YL(t,"",m)}for(f=0;f<c.length;f++){var g=c.charAt(f);if(A=A||!l&&(g==="*"||g==="?"),h)p+=g,h=!1;else if(l)g===l?l=!1:l==sB?p+=g:g===n?(f+=1,g=c.charAt(f),g===oB||g===n||g===Rd?p+=g:p+=n+g):g===Rd?p+=d():p+=g;else if(g===oB||g===sB)l=g;else{if(nB.test(g))return{op:c};if(jL.test(g)){a=!0;var E={comment:e.slice(u.index+f+1)};return p.length?[p,E]:[E]}else g===n?h=!0:g===Rd?p+=d():p+=g}}return A?{op:"glob",pattern:p}:p}).reduce(function(u,c){return typeof c>"u"?u:u.concat(c)},[])}uB.exports=function(t,r,n){var i=JL(t,r,n);return typeof r!="function"?i:i.reduce(function(o,s){if(typeof s=="object")return o.concat(s);var a=s.split(RegExp("("+Io+".*?"+Io+")","g"));return a.length===1?o.concat(a[0]):o.concat(a.filter(Boolean).map(function(u){return VL.test(u)?JSON.parse(u.split(Io)[1]):u}))},[])}});var cB=Ct(Td=>{"use strict";Td.quote=rB();Td.parse=lB()});var Vs,Ca,hB,Ba,rA,Zr,dB=or(()=>{Vs=e=>e.name==="up"||e.name==="k"||e.ctrl&&e.name==="p",Ca=e=>e.name==="down"||e.name==="j"||e.ctrl&&e.name==="n",hB=e=>e.name==="space",Ba=e=>e.name==="backspace",rA=e=>"123456789".includes(e.name),Zr=e=>e.name==="enter"||e.name==="return"});var nA,iA,sA,oA,qs,aA=or(()=>{nA=class extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(t){super(),this.cause=t?.cause}},iA=class extends Error{name="CancelPromptError";message="Prompt was canceled"},sA=class extends Error{name="ExitPromptError"},oA=class extends Error{name="HookError"},qs=class extends Error{name="ValidationError"}});function zL(e){return{rl:e,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}function pB(e,t){let r=zL(e);return fB.run(r,()=>{function n(i){r.handleChange=()=>{r.index=0,i()},r.handleChange()}return t(n)})}function bo(){let e=fB.getStore();if(!e)throw new oA("[Inquirer] Hook functions can only be called from within a prompt");return e}function kd(){return bo().rl}function Od(e){let t=(...r)=>{let n=bo(),i=!1,o=n.handleChange;n.handleChange=()=>{i=!0};let s=e(...r);return i&&o(),n.handleChange=o,s};return uA.AsyncResource.bind(t)}function wa(e){let t=bo(),{index:r}=t,n={get(){return t.hooks[r]},set(o){t.hooks[r]=o},initialized:r in t.hooks},i=e(n);return t.index++,i}function gB(){bo().handleChange()}var uA,fB,xo,vo=or(()=>{uA=require("node:async_hooks");aA();fB=new uA.AsyncLocalStorage;xo={queue(e){let t=bo(),{index:r}=t;t.hooksEffect.push(()=>{t.hooksCleanup[r]?.();let n=e(kd());if(n!=null&&typeof n!="function")throw new qs("useEffect return value must be a cleanup function or nothing.");t.hooksCleanup[r]=n})},run(){let e=bo();Od(()=>{e.hooksEffect.forEach(t=>{t()}),e.hooksEffect.length=0})()},clearAll(){let e=bo();e.hooksCleanup.forEach(t=>{t?.()}),e.hooksEffect.length=0,e.hooksCleanup.length=0}}});function Gt(e){return wa(t=>{let r=i=>{t.get()!==i&&(t.set(i),gB())};if(t.initialized)return[t.get(),r];let n=typeof e=="function"?e():e;return t.set(n),[n,r]})}var lA=or(()=>{vo()});function Ni(e,t){wa(r=>{let n=r.get();(!Array.isArray(n)||t.some((o,s)=>!Object.is(o,n[s])))&&xo.queue(e),r.set(t)})}var cA=or(()=>{vo()});var Ys=Ct((R$,EB)=>{var WL=require("node:tty"),ZL=WL?.WriteStream?.prototype?.hasColors?.()??!1,er=(e,t)=>{if(!ZL)return i=>i;let r=`\x1B[${e}m`,n=`\x1B[${t}m`;return i=>{let o=i+"",s=o.indexOf(n);if(s===-1)return r+o+n;let a=r,u=0,l=(t===22?n:"")+r;for(;s!==-1;)a+=o.slice(u,s)+l,u=s+n.length,s=o.indexOf(n,u);return a+=o.slice(u)+n,a}},Xt={};Xt.reset=er(0,0);Xt.bold=er(1,22);Xt.dim=er(2,22);Xt.italic=er(3,23);Xt.underline=er(4,24);Xt.overline=er(53,55);Xt.inverse=er(7,27);Xt.hidden=er(8,28);Xt.strikethrough=er(9,29);Xt.black=er(30,39);Xt.red=er(31,39);Xt.green=er(32,39);Xt.yellow=er(33,39);Xt.blue=er(34,39);Xt.magenta=er(35,39);Xt.cyan=er(36,39);Xt.white=er(37,39);Xt.gray=er(90,39);Xt.bgBlack=er(40,49);Xt.bgRed=er(41,49);Xt.bgGreen=er(42,49);Xt.bgYellow=er(43,49);Xt.bgBlue=er(44,49);Xt.bgMagenta=er(45,49);Xt.bgCyan=er(46,49);Xt.bgWhite=er(47,49);Xt.bgGray=er(100,49);Xt.redBright=er(91,39);Xt.greenBright=er(92,39);Xt.yellowBright=er(93,39);Xt.blueBright=er(94,39);Xt.magentaBright=er(95,39);Xt.cyanBright=er(96,39);Xt.whiteBright=er(97,39);Xt.bgRedBright=er(101,49);Xt.bgGreenBright=er(102,49);Xt.bgYellowBright=er(103,49);Xt.bgBlueBright=er(104,49);Xt.bgMagentaBright=er(105,49);Xt.bgCyanBright=er(106,49);Xt.bgWhiteBright=er(107,49);EB.exports=Xt});function KL(){return Ti.default.platform!=="win32"?Ti.default.env.TERM!=="linux":!!Ti.default.env.WT_SESSION||!!Ti.default.env.TERMINUS_SUBLIME||Ti.default.env.ConEmuTask==="{cmd::Cmder}"||Ti.default.env.TERM_PROGRAM==="Terminus-Sublime"||Ti.default.env.TERM_PROGRAM==="vscode"||Ti.default.env.TERM==="xterm-256color"||Ti.default.env.TERM==="alacritty"||Ti.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Ti,mB,yB,XL,e8,t8,r8,n8,li,N$,Ia=or(()=>{Ti=Mt(require("node:process"),1);mB={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},yB={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},XL={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},e8={...mB,...yB},t8={...mB,...XL},r8=KL(),n8=r8?e8:t8,li=n8,N$=Object.entries(yB)});var ci,DB,CB=or(()=>{ci=Mt(Ys(),1);Ia();DB={prefix:{idle:ci.default.blue("?"),done:ci.default.green(li.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(e=>ci.default.yellow(e))},style:{answer:ci.default.cyan,message:ci.default.bold,error:e=>ci.default.red(`> ${e}`),defaultAnswer:e=>ci.default.dim(`(${e})`),help:ci.default.dim,highlight:ci.default.cyan,key:e=>ci.default.cyan(ci.default.bold(`<${e}>`))}}});function BB(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function wB(...e){let t={};for(let r of e)for(let[n,i]of Object.entries(r)){let o=t[n];t[n]=BB(o)&&BB(i)?wB(o,i):i}return t}function Rr(...e){let t=[DB,...e.filter(r=>r!=null)];return wB(...t)}var Ld=or(()=>{CB()});function Vr({status:e="idle",theme:t}){let[r,n]=Gt(!1),[i,o]=Gt(0),{prefix:s,spinner:a}=Rr(t);return Ni(()=>{if(e==="loading"){let c,l=-1,h=setTimeout(Pd.AsyncResource.bind(()=>{n(!0),c=setInterval(Pd.AsyncResource.bind(()=>{l=l+1,o(l%a.frames.length)}),a.interval)}),300);return()=>{clearTimeout(h),clearInterval(c)}}else n(!1)},[e]),r?a.frames[i]:typeof s=="string"?s:s[e==="loading"?"idle":e]}var Pd,IB=or(()=>{Pd=require("node:async_hooks");lA();cA();Ld()});function Kn(e,t){return wa(r=>{let n=r.get();if(!n||n.dependencies.length!==t.length||n.dependencies.some((i,o)=>i!==t[o])){let i=e();return r.set({value:i,dependencies:t}),i}return n.value})}var bB=or(()=>{vo()});function Ai(e){return Gt({current:e})[0]}var AA=or(()=>{lA()});function qr(e){let t=Ai(e);t.current=e,Ni(r=>{let n=!1,i=Od((o,s)=>{n||t.current(s,r)});return r.input.on("keypress",i),()=>{n=!0,r.input.removeListener("keypress",i)}},[])}var xB=or(()=>{AA();cA();vo()});var FB=Ct((Z$,vB)=>{"use strict";vB.exports=s8;function i8(e){let t={defaultWidth:0,output:process.stdout,tty:require("tty")};return e?(Object.keys(t).forEach(function(r){e[r]||(e[r]=t[r])}),e):t}function s8(e){let t=i8(e);if(t.output.getWindowSize)return t.output.getWindowSize()[0]||t.defaultWidth;if(t.tty.getWindowSize)return t.tty.getWindowSize()[1]||t.defaultWidth;if(t.output.columns)return t.output.columns;if(process.env.CLI_WIDTH){let r=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(r)&&r!==0)return r}return t.defaultWidth}});var _B=Ct((K$,SB)=>{"use strict";SB.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var hA=Ct((X$,QB)=>{"use strict";var o8=_B();QB.exports=e=>typeof e=="string"?e.replace(o8(),""):e});var NB=Ct((eH,Ud)=>{"use strict";var RB=e=>Number.isNaN(e)?!1:e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);Ud.exports=RB;Ud.exports.default=RB});var kB=Ct((tH,TB)=>{"use strict";TB.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var LB=Ct((rH,Md)=>{"use strict";var a8=hA(),u8=NB(),l8=kB(),OB=e=>{if(typeof e!="string"||e.length===0||(e=a8(e),e.length===0))return 0;e=e.replace(l8()," ");let t=0;for(let r=0;r<e.length;r++){let n=e.codePointAt(r);n<=31||n>=127&&n<=159||n>=768&&n<=879||(n>65535&&r++,t+=u8(n)?2:1)}return t};Md.exports=OB;Md.exports.default=OB});var UB=Ct((nH,PB)=>{"use strict";PB.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var $d=Ct((iH,$B)=>{var Ju=UB(),MB={};for(let e of Object.keys(Ju))MB[Ju[e]]=e;var kt={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};$B.exports=kt;for(let e of Object.keys(kt)){if(!("channels"in kt[e]))throw new Error("missing channels property: "+e);if(!("labels"in kt[e]))throw new Error("missing channel labels property: "+e);if(kt[e].labels.length!==kt[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:t,labels:r}=kt[e];delete kt[e].channels,delete kt[e].labels,Object.defineProperty(kt[e],"channels",{value:t}),Object.defineProperty(kt[e],"labels",{value:r})}kt.rgb.hsl=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(t,r,n),o=Math.max(t,r,n),s=o-i,a,u;o===i?a=0:t===o?a=(r-n)/s:r===o?a=2+(n-t)/s:n===o&&(a=4+(t-r)/s),a=Math.min(a*60,360),a<0&&(a+=360);let c=(i+o)/2;return o===i?u=0:c<=.5?u=s/(o+i):u=s/(2-o-i),[a,u*100,c*100]};kt.rgb.hsv=function(e){let t,r,n,i,o,s=e[0]/255,a=e[1]/255,u=e[2]/255,c=Math.max(s,a,u),l=c-Math.min(s,a,u),h=function(p){return(c-p)/6/l+1/2};return l===0?(i=0,o=0):(o=l/c,t=h(s),r=h(a),n=h(u),s===c?i=n-r:a===c?i=1/3+t-n:u===c&&(i=2/3+r-t),i<0?i+=1:i>1&&(i-=1)),[i*360,o*100,c*100]};kt.rgb.hwb=function(e){let t=e[0],r=e[1],n=e[2],i=kt.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[i,o*100,n*100]};kt.rgb.cmyk=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(1-t,1-r,1-n),o=(1-t-i)/(1-i)||0,s=(1-r-i)/(1-i)||0,a=(1-n-i)/(1-i)||0;return[o*100,s*100,a*100,i*100]};function c8(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}kt.rgb.keyword=function(e){let t=MB[e];if(t)return t;let r=1/0,n;for(let i of Object.keys(Ju)){let o=Ju[i],s=c8(e,o);s<r&&(r=s,n=i)}return n};kt.keyword.rgb=function(e){return Ju[e]};kt.rgb.xyz=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;let i=t*.4124+r*.3576+n*.1805,o=t*.2126+r*.7152+n*.0722,s=t*.0193+r*.1192+n*.9505;return[i*100,o*100,s*100]};kt.rgb.lab=function(e){let t=kt.rgb.xyz(e),r=t[0],n=t[1],i=t[2];r/=95.047,n/=100,i/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let o=116*n-16,s=500*(r-n),a=200*(n-i);return[o,s,a]};kt.hsl.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100,i,o,s;if(r===0)return s=n*255,[s,s,s];n<.5?i=n*(1+r):i=n+r-n*r;let a=2*n-i,u=[0,0,0];for(let c=0;c<3;c++)o=t+1/3*-(c-1),o<0&&o++,o>1&&o--,6*o<1?s=a+(i-a)*6*o:2*o<1?s=i:3*o<2?s=a+(i-a)*(2/3-o)*6:s=a,u[c]=s*255;return u};kt.hsl.hsv=function(e){let t=e[0],r=e[1]/100,n=e[2]/100,i=r,o=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,i*=o<=1?o:2-o;let s=(n+r)/2,a=n===0?2*i/(o+i):2*r/(n+r);return[t,a*100,s*100]};kt.hsv.rgb=function(e){let t=e[0]/60,r=e[1]/100,n=e[2]/100,i=Math.floor(t)%6,o=t-Math.floor(t),s=255*n*(1-r),a=255*n*(1-r*o),u=255*n*(1-r*(1-o));switch(n*=255,i){case 0:return[n,u,s];case 1:return[a,n,s];case 2:return[s,n,u];case 3:return[s,a,n];case 4:return[u,s,n];case 5:return[n,s,a]}};kt.hsv.hsl=function(e){let t=e[0],r=e[1]/100,n=e[2]/100,i=Math.max(n,.01),o,s;s=(2-r)*n;let a=(2-r)*i;return o=r*i,o/=a<=1?a:2-a,o=o||0,s/=2,[t,o*100,s*100]};kt.hwb.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100,i=r+n,o;i>1&&(r/=i,n/=i);let s=Math.floor(6*t),a=1-n;o=6*t-s,(s&1)!==0&&(o=1-o);let u=r+o*(a-r),c,l,h;switch(s){default:case 6:case 0:c=a,l=u,h=r;break;case 1:c=u,l=a,h=r;break;case 2:c=r,l=a,h=u;break;case 3:c=r,l=u,h=a;break;case 4:c=u,l=r,h=a;break;case 5:c=a,l=r,h=u;break}return[c*255,l*255,h*255]};kt.cmyk.rgb=function(e){let t=e[0]/100,r=e[1]/100,n=e[2]/100,i=e[3]/100,o=1-Math.min(1,t*(1-i)+i),s=1-Math.min(1,r*(1-i)+i),a=1-Math.min(1,n*(1-i)+i);return[o*255,s*255,a*255]};kt.xyz.rgb=function(e){let t=e[0]/100,r=e[1]/100,n=e[2]/100,i,o,s;return i=t*3.2406+r*-1.5372+n*-.4986,o=t*-.9689+r*1.8758+n*.0415,s=t*.0557+r*-.204+n*1.057,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,i=Math.min(Math.max(0,i),1),o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),[i*255,o*255,s*255]};kt.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let i=116*r-16,o=500*(t-r),s=200*(r-n);return[i,o,s]};kt.lab.xyz=function(e){let t=e[0],r=e[1],n=e[2],i,o,s;o=(t+16)/116,i=r/500+o,s=o-n/200;let a=o**3,u=i**3,c=s**3;return o=a>.008856?a:(o-16/116)/7.787,i=u>.008856?u:(i-16/116)/7.787,s=c>.008856?c:(s-16/116)/7.787,i*=95.047,o*=100,s*=108.883,[i,o,s]};kt.lab.lch=function(e){let t=e[0],r=e[1],n=e[2],i;i=Math.atan2(n,r)*360/2/Math.PI,i<0&&(i+=360);let s=Math.sqrt(r*r+n*n);return[t,s,i]};kt.lch.lab=function(e){let t=e[0],r=e[1],i=e[2]/360*2*Math.PI,o=r*Math.cos(i),s=r*Math.sin(i);return[t,o,s]};kt.rgb.ansi16=function(e,t=null){let[r,n,i]=e,o=t===null?kt.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),o===0)return 30;let s=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return o===2&&(s+=60),s};kt.hsv.ansi16=function(e){return kt.rgb.ansi16(kt.hsv.rgb(e),e[2])};kt.rgb.ansi256=function(e){let t=e[0],r=e[1],n=e[2];return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)};kt.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let r=(~~(e>50)+1)*.5,n=(t&1)*r*255,i=(t>>1&1)*r*255,o=(t>>2&1)*r*255;return[n,i,o]};kt.ansi256.rgb=function(e){if(e>=232){let o=(e-232)*10+8;return[o,o,o]}e-=16;let t,r=Math.floor(e/36)/5*255,n=Math.floor((t=e%36)/6)/5*255,i=t%6/5*255;return[r,n,i]};kt.rgb.hex=function(e){let r=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};kt.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];t[0].length===3&&(r=r.split("").map(a=>a+a).join(""));let n=parseInt(r,16),i=n>>16&255,o=n>>8&255,s=n&255;return[i,o,s]};kt.rgb.hcg=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),s=i-o,a,u;return s<1?a=o/(1-s):a=0,s<=0?u=0:i===t?u=(r-n)/s%6:i===r?u=2+(n-t)/s:u=4+(t-r)/s,u/=6,u%=1,[u*360,s*100,a*100]};kt.hsl.hcg=function(e){let t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r),i=0;return n<1&&(i=(r-.5*n)/(1-n)),[e[0],n*100,i*100]};kt.hsv.hcg=function(e){let t=e[1]/100,r=e[2]/100,n=t*r,i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],n*100,i*100]};kt.hcg.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100;if(r===0)return[n*255,n*255,n*255];let i=[0,0,0],o=t%1*6,s=o%1,a=1-s,u=0;switch(Math.floor(o)){case 0:i[0]=1,i[1]=s,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=s;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=s,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return u=(1-r)*n,[(r*i[0]+u)*255,(r*i[1]+u)*255,(r*i[2]+u)*255]};kt.hcg.hsv=function(e){let t=e[1]/100,r=e[2]/100,n=t+r*(1-t),i=0;return n>0&&(i=t/n),[e[0],i*100,n*100]};kt.hcg.hsl=function(e){let t=e[1]/100,n=e[2]/100*(1-t)+.5*t,i=0;return n>0&&n<.5?i=t/(2*n):n>=.5&&n<1&&(i=t/(2*(1-n))),[e[0],i*100,n*100]};kt.hcg.hwb=function(e){let t=e[1]/100,r=e[2]/100,n=t+r*(1-t);return[e[0],(n-t)*100,(1-n)*100]};kt.hwb.hcg=function(e){let t=e[1]/100,n=1-e[2]/100,i=n-t,o=0;return i<1&&(o=(n-i)/(1-i)),[e[0],i*100,o*100]};kt.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};kt.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};kt.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};kt.gray.hsl=function(e){return[0,0,e[0]]};kt.gray.hsv=kt.gray.hsl;kt.gray.hwb=function(e){return[0,100,e[0]]};kt.gray.cmyk=function(e){return[0,0,0,e[0]]};kt.gray.lab=function(e){return[e[0],0,0]};kt.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n};kt.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}});var jB=Ct((sH,HB)=>{var dA=$d();function A8(){let e={},t=Object.keys(dA);for(let r=t.length,n=0;n<r;n++)e[t[n]]={distance:-1,parent:null};return e}function h8(e){let t=A8(),r=[e];for(t[e].distance=0;r.length;){let n=r.pop(),i=Object.keys(dA[n]);for(let o=i.length,s=0;s<o;s++){let a=i[s],u=t[a];u.distance===-1&&(u.distance=t[n].distance+1,u.parent=n,r.unshift(a))}}return t}function d8(e,t){return function(r){return t(e(r))}}function f8(e,t){let r=[t[e].parent,e],n=dA[t[e].parent][e],i=t[e].parent;for(;t[i].parent;)r.unshift(t[i].parent),n=d8(dA[t[i].parent][i],n),i=t[i].parent;return n.conversion=r,n}HB.exports=function(e){let t=h8(e),r={},n=Object.keys(t);for(let i=n.length,o=0;o<i;o++){let s=n[o];t[s].parent!==null&&(r[s]=f8(s,t))}return r}});var VB=Ct((oH,GB)=>{var Hd=$d(),p8=jB(),ba={},g8=Object.keys(Hd);function E8(e){let t=function(...r){let n=r[0];return n==null?n:(n.length>1&&(r=n),e(r))};return"conversion"in e&&(t.conversion=e.conversion),t}function m8(e){let t=function(...r){let n=r[0];if(n==null)return n;n.length>1&&(r=n);let i=e(r);if(typeof i=="object")for(let o=i.length,s=0;s<o;s++)i[s]=Math.round(i[s]);return i};return"conversion"in e&&(t.conversion=e.conversion),t}g8.forEach(e=>{ba[e]={},Object.defineProperty(ba[e],"channels",{value:Hd[e].channels}),Object.defineProperty(ba[e],"labels",{value:Hd[e].labels});let t=p8(e);Object.keys(t).forEach(n=>{let i=t[n];ba[e][n]=m8(i),ba[e][n].raw=E8(i)})});GB.exports=ba});var ZB=Ct((aH,WB)=>{"use strict";var qB=(e,t)=>(...r)=>`\x1B[${e(...r)+t}m`,YB=(e,t)=>(...r)=>{let n=e(...r);return`\x1B[${38+t};5;${n}m`},JB=(e,t)=>(...r)=>{let n=e(...r);return`\x1B[${38+t};2;${n[0]};${n[1]};${n[2]}m`},fA=e=>e,zB=(e,t,r)=>[e,t,r],xa=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{let n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})},jd,va=(e,t,r,n)=>{jd===void 0&&(jd=VB());let i=n?10:0,o={};for(let[s,a]of Object.entries(jd)){let u=s==="ansi16"?"ansi":s;s===t?o[u]=e(r,i):typeof a=="object"&&(o[u]=e(a[t],i))}return o};function y8(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[r,n]of Object.entries(t)){for(let[i,o]of Object.entries(n))t[i]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},n[i]=t[i],e.set(o[0],o[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",xa(t.color,"ansi",()=>va(qB,"ansi16",fA,!1)),xa(t.color,"ansi256",()=>va(YB,"ansi256",fA,!1)),xa(t.color,"ansi16m",()=>va(JB,"rgb",zB,!1)),xa(t.bgColor,"ansi",()=>va(qB,"ansi16",fA,!0)),xa(t.bgColor,"ansi256",()=>va(YB,"ansi256",fA,!0)),xa(t.bgColor,"ansi16m",()=>va(JB,"rgb",zB,!0)),t}Object.defineProperty(WB,"exports",{enumerable:!0,get:y8})});var e1=Ct((uH,XB)=>{"use strict";var zu=LB(),D8=hA(),C8=ZB(),Vd=new Set(["\x1B","\x9B"]),B8=39,KB=e=>`${Vd.values().next().value}[${e}m`,w8=e=>e.split(" ").map(t=>zu(t)),Gd=(e,t,r)=>{let n=[...t],i=!1,o=zu(D8(e[e.length-1]));for(let[s,a]of n.entries()){let u=zu(a);if(o+u<=r?e[e.length-1]+=a:(e.push(a),o=0),Vd.has(a))i=!0;else if(i&&a==="m"){i=!1;continue}i||(o+=u,o===r&&s<n.length-1&&(e.push(""),o=0))}!o&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},I8=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(zu(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},b8=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i="",o,s=w8(e),a=[""];for(let[u,c]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimLeft());let l=zu(a[a.length-1]);if(u!==0&&(l>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),l=0),(l>0||r.trim===!1)&&(a[a.length-1]+=" ",l++)),r.hard&&s[u]>t){let h=t-l,p=1+Math.floor((s[u]-h-1)/t);Math.floor((s[u]-1)/t)<p&&a.push(""),Gd(a,c,t);continue}if(l+s[u]>t&&l>0&&s[u]>0){if(r.wordWrap===!1&&l<t){Gd(a,c,t);continue}a.push("")}if(l+s[u]>t&&r.wordWrap===!1){Gd(a,c,t);continue}a[a.length-1]+=c}r.trim!==!1&&(a=a.map(I8)),n=a.join(`
874
874
  `);for(let[u,c]of[...n].entries()){if(i+=c,Vd.has(c)){let h=parseFloat(/\d[^m]*/.exec(n.slice(u,u+4)));o=h===B8?null:h}let l=C8.codes.get(Number(o));o&&l&&(n[u+1]===`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hafez/claude-code-router",
3
- "version": "2.0.3",
3
+ "version": "2.0.4-alpha.0",
4
4
  "description": "Use Claude Code without an Anthropics account and route it to another LLM provider",
5
5
  "scripts": {
6
6
  "build": "pnpm build:shared && pnpm build:core && pnpm build:server && pnpm build:cli && pnpm build:ui",