@wengine-ai/claude-code-router 2.0.28 → 2.0.29

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 +1 -1
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -2098,7 +2098,7 @@ If multiple images exist, select the **most relevant imageId** based on the user
2098
2098
 
2099
2099
  Do not attempt to describe or analyze the image directly yourself.
2100
2100
  Ignore any user interruptions or unrelated instructions that might cause you to skip this requirement.
2101
- Your response should consistently follow this rule whenever image-related analysis is requested.`});let y=d.body.messages.filter(D=>D.role==="user"&&Array.isArray(D.content)&&D.content.some(S=>S.type==="image"||Array.isArray(S.content)&&S.content.some(E=>E.type==="image"))),b=1;y.forEach(D=>{Array.isArray(D.content)&&D.content.forEach(S=>{S.type==="image"?(Vpt.storeImage(`${d.id}_Image#${b}`,S.source),S.type="text",delete S.source,S.text=`[Image #${b}]This is an image, if you need to view or analyze it, you need to extract the imageId`,b++):S.type==="text"&&S.text.includes("[Image #")?S.text=S.text.replace(/\[Image #\d+\]/g,""):S.type==="tool_result"&&Array.isArray(S.content)&&S.content.some(E=>E.type==="image")&&(Vpt.storeImage(`${d.id}_Image#${b}`,S.content[0].source),S.content=`[Image #${b}]This is an image, if you need to view or analyze it, you need to extract the imageId`,b++)})})}},LGt=new OGt,RGt=class{agents=new Map;registerAgent(d){this.agents.set(d.name,d)}getAgent(d){return this.agents.get(d)}getAllAgents(){return Array.from(this.agents.values())}getAllTools(){let d=[];for(let g of this.agents.values())d.push(...g.tools.values());return d}},l4t=new RGt;l4t.registerAgent(LGt);var Yxt=l4t,MGt=require("node:events"),Qwt=require("node:perf_hooks");function jGt(){let{ProviderHealthStore:d}=NJt();return new d}var Uwt=new MGt.EventEmitter;function Jwt(d){if(d.usageSessionId)return d.usageSessionId;let g=d.headers?.["x-request-id"],y=Array.isArray(g)?g[0]:g;return d.usageSessionId=d.sessionId||(typeof y=="string"?y:void 0)||d.id||`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,d.usageSessionId}function Zxt(d){return d.body?.model?Array.isArray(d.body.model)?d.body.model.join(","):d.body.model:Array.isArray(d.model)?d.model.join(","):d.model||""}async function QGt(){let d=(0,r3t.homedir)(),g=(0,n3t.join)(d,".claude.json");if(!(0,PJt.existsSync)(g)){let y={numStartups:184,autoUpdaterStatus:"enabled",userID:Array.from({length:64},()=>Math.random().toString(16)[2]).join(""),hasCompletedOnboarding:!0,lastOnboardingVersion:"1.0.17",projects:{}};await(0,BJt.writeFile)(g,JSON.stringify(y,null,2))}}async function UGt(d,g){let y=g.plugins||g.Plugins||[];for(let b of y){let{name:D,enabled:S=!1,options:E={}}=b;switch(D){case"token-speed":ICt.registerPlugin(i4t,{enabled:S,outputHandlers:[{type:"temp-file",enabled:!0}],...E});break;default:console.warn(`Unknown plugin: ${D}`);break}}await ICt.enablePlugins(d)}async function c4t(d={}){await QGt(),await pEt();let g=await i3t(),y=g.Providers||g.providers||[],b=y&&y.length>0,D=g.HOST||"127.0.0.1";b?(D=g.HOST,g.APIKEY||(D="127.0.0.1")):(D="0.0.0.0",console.log("\u2139\uFE0F No providers configured. Listening on 0.0.0.0 without authentication."));let S=g.PORT||3456,E=process.env.SERVICE_PORT?parseInt(process.env.SERVICE_PORT):S,I=Q=>(Q>9?"":"0")+Q,N=(Q,M)=>{let U;Q?typeof Q=="number"?U=new Date(Q):U=Q:U=new Date;let L=U.getFullYear()+""+I(U.getMonth()+1),H=I(U.getDate()),J=I(U.getHours()),q=I(U.getMinutes());return`./logs/ccr-${L}${H}${J}${q}${I(U.getSeconds())}${M?`_${M}`:""}.log`},O;d.logger!==void 0?O=d.logger:g.LOG!==!1?(g.LOG===void 0&&(g.LOG=!0),O={level:g.LOG_LEVEL||"debug",stream:kGt(N,{path:Wxt.HOME_DIR,maxFiles:3,interval:"1d",compress:!1,maxSize:"50M"})}):O=!1;let R=await(0,Wxt.listPresets)(),j=await pGt({jsonPath:Wxt.CONFIG_FILE,initialConfig:{providers:g.Providers||g.providers,HOST:D,PORT:E,LOG_FILE:(0,n3t.join)((0,r3t.homedir)(),".claude-code-router","claude-code-router.log")},logger:O});return await Promise.allSettled(R.map(async Q=>await j.registerNamespace(`/preset/${Q.name}`,Q.config))),await UGt(j,g),j.addHook("onRequest",async Q=>{new URL(`http://127.0.0.1${Q.url}`).pathname.endsWith("/v1/messages")&&!Q.requestStartTime&&(Q.requestStartTime=Qwt.performance.now())}),j.addHook("preHandler",async(Q,M)=>new Promise((U,L)=>{let H=J=>{J?L(J):U()};fGt(g)(Q,M,H).catch(L)})),j.addHook("preHandler",async(Q,M)=>{let U=new URL(`http://127.0.0.1${Q.url}`);Q.pathname=U.pathname,Q.pathname.endsWith("/v1/messages")&&Q.pathname!=="/v1/messages"&&(Q.preset=Q.pathname.replace("/v1/messages","").replace("/",""))}),j.addHook("preHandler",async(Q,M)=>{if(Q.pathname.endsWith("/v1/messages")){let U=[];for(let L of Yxt.getAllAgents())L.shouldHandle(Q,g)&&(U.push(L.name),L.reqHandler(Q,g),L.tools.size&&(Q.body?.tools?.length||(Q.body.tools=[]),Q.body.tools.unshift(...Array.from(L.tools.values()).map(H=>({name:H.name,description:H.description,input_schema:H.input_schema})))));U.length&&(Q.agents=U)}}),j.addHook("onError",async(Q,M,U)=>{Q.errorMessage=U?.message||U?.toString?.()||"Unknown error",Uwt.emit("onError",Q,M,U)}),j.addHook("onSend",(Q,M,U,L)=>{if(Q.pathname?.endsWith("/v1/messages")){let H=Jwt(Q);if(U instanceof ReadableStream){if(Q.agents){let ee=new AbortController,G=U.pipeThrough(new Kxt),se,_e=-1,oe="",fe="",le="",ve=[],Ae=[];return L(null,wGt(G,async(Fe,He)=>{try{if(Fe.event==="content_block_start"&&Fe?.data?.content_block?.name){let Ke=Q.agents.find(Pe=>Yxt.getAgent(Pe)?.tools.get(Fe.data.content_block.name));if(Ke){se=Yxt.getAgent(Ke),_e=Fe.data.index,oe=Fe.data.content_block.name,le=Fe.data.content_block.id;return}}if(_e>-1&&Fe.data.index===_e&&Fe.data?.delta?.type==="input_json_delta"){fe+=Fe.data?.delta?.partial_json;return}if(_e>-1&&Fe.data.index===_e&&Fe.data.type==="content_block_stop"){try{let Ke=FGt.default.parse(fe);Ae.push({type:"tool_use",id:le,name:oe,input:Ke});let Pe=await se?.tools.get(oe)?.handler(Ke,{req:Q,config:g});ve.push({tool_use_id:le,type:"tool_result",content:Pe}),se=void 0,_e=-1,oe="",fe="",le=""}catch(Ke){console.log(Ke)}return}if(Fe.event==="message_delta"&&ve.length){Q.body.messages.push({role:"assistant",content:Ae}),Q.body.messages.push({role:"user",content:ve});let Ke=await fetch(`http://127.0.0.1:${g.PORT||3456}/v1/messages`,{method:"POST",headers:{"x-api-key":g.APIKEY,"content-type":"application/json"},body:JSON.stringify(Q.body)});if(!Ke.ok)return;let Pe=Ke.body.pipeThrough(new Kxt).getReader();for(;;)try{let{value:Ge,done:rt}=await Pe.read();if(rt)break;let Rt=Ge;if(["message_start","message_stop"].includes(Rt.event))continue;if(!He.desiredSize)break;He.enqueue(Rt)}catch(Ge){if(Ge.name==="AbortError"||Ge.code==="ERR_STREAM_PREMATURE_CLOSE"){ee.abort();break}throw Ge}return}return Fe}catch(Ke){if(console.error("Unexpected error in stream processing:",Ke),Ke.code==="ERR_STREAM_PREMATURE_CLOSE"){ee.abort();return}throw Ke}}).pipeThrough(new TGt))}let[J,q]=U.tee();return(async ee=>{let G=ee.pipeThrough(new TextDecoderStream).pipeThrough(new Kxt).getReader();try{for(;;){let{done:se,value:_e}=await G.read();if(se)break;let oe=_e.event,fe=_e.data;if(fe?.usage){let le={...pZe.get(H)||{},...fe.usage};(fe.usage.cache_read_input_tokens||fe.usage.cache_creation_input_tokens)&&console.log("[Usage] Cache tokens:",{cache_read:fe.usage.cache_read_input_tokens,cache_creation:fe.usage.cache_creation_input_tokens}),pZe.put(H,le)}}}catch(se){se.name==="AbortError"||se.code==="ERR_STREAM_PREMATURE_CLOSE"?console.error("Background read stream closed prematurely"):console.error("Error in background stream reading:",se)}finally{G.releaseLock()}})(q),L(null,J)}if(pZe.put(H,U.usage),typeof U=="object")return U.error?L(U.error,null):L(U,null)}if(typeof U=="object"&&U.error)return L(U.error,null);L(null,U)}),j.addHook("onSend",async(Q,M,U)=>{if(Uwt.emit("onSend",Q,M,U),M.statusCode>=400&&Q.pathname?.endsWith("/v1/messages"))try{typeof U=="string"?Q.errorResponseBody=U:U&&typeof U=="object"&&(Q.errorResponseBody=JSON.stringify(U))}catch{}return U}),j.addHook("onResponse",async(Q,M)=>{if(Q.pathname?.endsWith("/v1/messages"))try{let U=Jwt(Q),L=pZe.get(U),H=dGt(U),J=jGt(),q,ee;if(M.statusCode>=400){q=Q.errorMessage||M.errorMessage||Q.error?.message||Q.error?.toString?.()||void 0,ee=Q.errorResponseBody;let G=Zxt(Q);J.recordFailure(Q.provider||"",G,q)}else{let G=Zxt(Q);J.recordSuccess(Q.provider||"",G)}lGt({id:`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,timestamp:new Date().toISOString(),sessionId:U,provider:Q.provider||"",originalModel:Q.originalModel||Q.body?.model||"",model:Zxt(Q),modelFamily:Q.modelFamily||"",scenarioType:Q.scenarioType||"default",stream:Q.body?.stream??!1,inputTokens:Q.tokenCount||0,outputTokens:L?.output_tokens||0,cacheReadInputTokens:L?.cache_read_input_tokens||0,cacheCreationInputTokens:L?.cache_creation_input_tokens||0,ttft:H.ttft,tokensPerSecond:H.tokensPerSecond,durationMs:Q.requestStartTime?Math.round(Qwt.performance.now()-Q.requestStartTime):0,status:M.statusCode<400?"success":"error",errorMessage:q,responseBody:ee})}catch(U){console.error("Usage tracking error:",U)}}),process.on("uncaughtException",Q=>{j.app.log.error("Uncaught exception:",Q)}),process.on("unhandledRejection",(Q,M)=>{j.app.log.error("Unhandled rejection at:",M,"reason:",Q)}),j}async function JGt(){let d=await c4t();d.app.post("/api/restart",async()=>(setTimeout(async()=>{process.exit(0)},100),{success:!0,message:"Service restart initiated"})),await d.start()}require.main===NEt&&JGt().catch(d=>{console.error("Failed to start server:",d),process.exit(1)});});async function f4t(d){try{let{stdout:g}=await p4t("npm view @wengine-ai/claude-code-router version"),y=g.trim();return{hasUpdate:$Gt(y,d)>0,latestVersion:y,changelog:""}}catch(g){return console.error("Error checking for updates:",g),{hasUpdate:!1,latestVersion:d,changelog:""}}}async function m4t(){try{let{stdout:d,stderr:g}=await p4t("npm update -g @wengine-ai/claude-code-router");return g&&console.error("Update stderr:",g),console.log("Update stdout:",d),{success:!0,message:"Update completed successfully. Please restart the application to apply changes."}}catch(d){return console.error("Error performing update:",d),{success:!1,message:`Failed to perform update: ${d instanceof Error?d.message:"Unknown error"}`}}}function $Gt(d,g){let y=d.split(".").map(Number),b=g.split(".").map(Number);for(let D=0;D<Math.max(y.length,b.length);D++){let S=D<y.length?y[D]:0,E=D<b.length?b[D]:0;if(S>E)return 1;if(S<E)return-1}return 0}var _4t,d4t,p4t,h4t=Npt(()=>{"use strict";_4t=require("child_process"),d4t=require("util"),p4t=(0,d4t.promisify)(_4t.exec)});var Kft,PEt=Npt(()=>{Kft="2.0.26"});var OEt=Pm(BEt=>{"use strict";Object.defineProperty(BEt,"__esModule",{value:!0});var g4t=require("child_process"),HGt=1024*1024,y4t={exec(d,g){let y={maxBuffer:2*HGt,windowsHide:!0};(0,g4t.exec)(d,y,g)},spawn(d,g,y){return(0,g4t.spawn)(d,g,y)},stripLine(d,g){let y=0;for(;g-- >0;){let b=d.indexOf(`
2101
+ Your response should consistently follow this rule whenever image-related analysis is requested.`});let y=d.body.messages.filter(D=>D.role==="user"&&Array.isArray(D.content)&&D.content.some(S=>S.type==="image"||Array.isArray(S.content)&&S.content.some(E=>E.type==="image"))),b=1;y.forEach(D=>{Array.isArray(D.content)&&D.content.forEach(S=>{S.type==="image"?(Vpt.storeImage(`${d.id}_Image#${b}`,S.source),S.type="text",delete S.source,S.text=`[Image #${b}]This is an image, if you need to view or analyze it, you need to extract the imageId`,b++):S.type==="text"&&S.text.includes("[Image #")?S.text=S.text.replace(/\[Image #\d+\]/g,""):S.type==="tool_result"&&Array.isArray(S.content)&&S.content.some(E=>E.type==="image")&&(Vpt.storeImage(`${d.id}_Image#${b}`,S.content[0].source),S.content=`[Image #${b}]This is an image, if you need to view or analyze it, you need to extract the imageId`,b++)})})}},LGt=new OGt,RGt=class{agents=new Map;registerAgent(d){this.agents.set(d.name,d)}getAgent(d){return this.agents.get(d)}getAllAgents(){return Array.from(this.agents.values())}getAllTools(){let d=[];for(let g of this.agents.values())d.push(...g.tools.values());return d}},l4t=new RGt;l4t.registerAgent(LGt);var Yxt=l4t,MGt=require("node:events"),Qwt=require("node:perf_hooks");function jGt(){let{ProviderHealthStore:d}=NJt();return new d}var Uwt=new MGt.EventEmitter;function Jwt(d){if(d.usageSessionId)return d.usageSessionId;let g=d.headers?.["x-request-id"],y=Array.isArray(g)?g[0]:g;return d.usageSessionId=d.sessionId||(typeof y=="string"?y:void 0)||d.id||`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,d.usageSessionId}function Zxt(d){return d.body?.model?Array.isArray(d.body.model)?d.body.model.join(","):d.body.model:Array.isArray(d.model)?d.model.join(","):d.model||""}async function QGt(){let d=(0,r3t.homedir)(),g=(0,n3t.join)(d,".claude.json");if(!(0,PJt.existsSync)(g)){let y={numStartups:184,autoUpdaterStatus:"enabled",userID:Array.from({length:64},()=>Math.random().toString(16)[2]).join(""),hasCompletedOnboarding:!0,lastOnboardingVersion:"1.0.17",projects:{}};await(0,BJt.writeFile)(g,JSON.stringify(y,null,2))}}async function UGt(d,g){let y=g.plugins||g.Plugins||[];for(let b of y){let{name:D,enabled:S=!1,options:E={}}=b;switch(D){case"token-speed":ICt.registerPlugin(i4t,{enabled:S,outputHandlers:[{type:"temp-file",enabled:!0}],...E});break;default:console.warn(`Unknown plugin: ${D}`);break}}await ICt.enablePlugins(d)}async function c4t(d={}){await QGt(),await pEt();let g=await i3t(),y=g.Providers||g.providers||[],b=y&&y.length>0,D=g.HOST||"127.0.0.1";b?(D=g.HOST,g.APIKEY||(D="127.0.0.1")):(D="0.0.0.0",console.log("\u2139\uFE0F No providers configured. Listening on 0.0.0.0 without authentication."));let S=g.PORT||3456,E=process.env.SERVICE_PORT?parseInt(process.env.SERVICE_PORT):S,I=Q=>(Q>9?"":"0")+Q,N=(Q,M)=>{let U;Q?typeof Q=="number"?U=new Date(Q):U=Q:U=new Date;let L=U.getFullYear()+""+I(U.getMonth()+1),H=I(U.getDate()),J=I(U.getHours()),q=I(U.getMinutes());return`./logs/ccr-${L}${H}${J}${q}${I(U.getSeconds())}${M?`_${M}`:""}.log`},O;d.logger!==void 0?O=d.logger:g.LOG!==!1?(g.LOG===void 0&&(g.LOG=!0),O={level:g.LOG_LEVEL||"debug",stream:kGt(N,{path:Wxt.HOME_DIR,maxFiles:3,interval:"1d",compress:!1,maxSize:"50M"})}):O=!1;let R=await(0,Wxt.listPresets)(),j=await pGt({jsonPath:Wxt.CONFIG_FILE,initialConfig:{providers:g.Providers||g.providers,HOST:D,PORT:E,LOG_FILE:(0,n3t.join)((0,r3t.homedir)(),".claude-code-router","claude-code-router.log")},logger:O});return await Promise.allSettled(R.map(async Q=>await j.registerNamespace(`/preset/${Q.name}`,Q.config))),await UGt(j,g),j.addHook("onRequest",async Q=>{new URL(`http://127.0.0.1${Q.url}`).pathname.endsWith("/v1/messages")&&!Q.requestStartTime&&(Q.requestStartTime=Qwt.performance.now())}),j.addHook("preHandler",async(Q,M)=>new Promise((U,L)=>{let H=J=>{J?L(J):U()};fGt(g)(Q,M,H).catch(L)})),j.addHook("preHandler",async(Q,M)=>{let U=new URL(`http://127.0.0.1${Q.url}`);Q.pathname=U.pathname,Q.pathname.endsWith("/v1/messages")&&Q.pathname!=="/v1/messages"&&(Q.preset=Q.pathname.replace("/v1/messages","").replace("/",""))}),j.addHook("preHandler",async(Q,M)=>{if(Q.pathname.endsWith("/v1/messages")){let U=[];for(let L of Yxt.getAllAgents())L.shouldHandle(Q,g)&&(U.push(L.name),L.reqHandler(Q,g),L.tools.size&&(Q.body?.tools?.length||(Q.body.tools=[]),Q.body.tools.unshift(...Array.from(L.tools.values()).map(H=>({name:H.name,description:H.description,input_schema:H.input_schema})))));U.length&&(Q.agents=U)}}),j.addHook("onError",async(Q,M,U)=>{Q.errorMessage=U?.message||U?.toString?.()||"Unknown error",Uwt.emit("onError",Q,M,U)}),j.addHook("onSend",(Q,M,U,L)=>{if(Q.pathname?.endsWith("/v1/messages")){let H=Jwt(Q);if(U instanceof ReadableStream){if(Q.agents){let ee=new AbortController,G=U.pipeThrough(new Kxt),se,_e=-1,oe="",fe="",le="",ve=[],Ae=[];return L(null,wGt(G,async(Fe,He)=>{try{if(Fe.event==="content_block_start"&&Fe?.data?.content_block?.name){let Ke=Q.agents.find(Pe=>Yxt.getAgent(Pe)?.tools.get(Fe.data.content_block.name));if(Ke){se=Yxt.getAgent(Ke),_e=Fe.data.index,oe=Fe.data.content_block.name,le=Fe.data.content_block.id;return}}if(_e>-1&&Fe.data.index===_e&&Fe.data?.delta?.type==="input_json_delta"){fe+=Fe.data?.delta?.partial_json;return}if(_e>-1&&Fe.data.index===_e&&Fe.data.type==="content_block_stop"){try{let Ke=FGt.default.parse(fe);Ae.push({type:"tool_use",id:le,name:oe,input:Ke});let Pe=await se?.tools.get(oe)?.handler(Ke,{req:Q,config:g});ve.push({tool_use_id:le,type:"tool_result",content:Pe}),se=void 0,_e=-1,oe="",fe="",le=""}catch(Ke){console.log(Ke)}return}if(Fe.event==="message_delta"&&ve.length){Q.body.messages.push({role:"assistant",content:Ae}),Q.body.messages.push({role:"user",content:ve});let Ke=await fetch(`http://127.0.0.1:${g.PORT||3456}/v1/messages`,{method:"POST",headers:{"x-api-key":g.APIKEY,"content-type":"application/json"},body:JSON.stringify(Q.body)});if(!Ke.ok)return;let Pe=Ke.body.pipeThrough(new Kxt).getReader();for(;;)try{let{value:Ge,done:rt}=await Pe.read();if(rt)break;let Rt=Ge;if(["message_start","message_stop"].includes(Rt.event))continue;if(!He.desiredSize)break;He.enqueue(Rt)}catch(Ge){if(Ge.name==="AbortError"||Ge.code==="ERR_STREAM_PREMATURE_CLOSE"){ee.abort();break}throw Ge}return}return Fe}catch(Ke){if(console.error("Unexpected error in stream processing:",Ke),Ke.code==="ERR_STREAM_PREMATURE_CLOSE"){ee.abort();return}throw Ke}}).pipeThrough(new TGt))}let[J,q]=U.tee();return(async ee=>{let G=ee.pipeThrough(new TextDecoderStream).pipeThrough(new Kxt).getReader();try{for(;;){let{done:se,value:_e}=await G.read();if(se)break;let oe=_e.event,fe=_e.data;if(fe?.usage){let le={...pZe.get(H)||{},...fe.usage};(fe.usage.cache_read_input_tokens||fe.usage.cache_creation_input_tokens)&&console.log("[Usage] Cache tokens:",{cache_read:fe.usage.cache_read_input_tokens,cache_creation:fe.usage.cache_creation_input_tokens}),pZe.put(H,le)}}}catch(se){se.name==="AbortError"||se.code==="ERR_STREAM_PREMATURE_CLOSE"?console.error("Background read stream closed prematurely"):console.error("Error in background stream reading:",se)}finally{G.releaseLock()}})(q),L(null,J)}if(pZe.put(H,U.usage),typeof U=="object")return U.error?L(U.error,null):L(U,null)}if(typeof U=="object"&&U.error)return L(U.error,null);L(null,U)}),j.addHook("onSend",async(Q,M,U)=>{if(Uwt.emit("onSend",Q,M,U),M.statusCode>=400&&Q.pathname?.endsWith("/v1/messages"))try{typeof U=="string"?Q.errorResponseBody=U:U&&typeof U=="object"&&(Q.errorResponseBody=JSON.stringify(U))}catch{}return U}),j.addHook("onResponse",async(Q,M)=>{if(Q.pathname?.endsWith("/v1/messages"))try{let U=Jwt(Q),L=pZe.get(U),H=dGt(U),J=jGt(),q,ee;if(M.statusCode>=400){q=Q.errorMessage||M.errorMessage||Q.error?.message||Q.error?.toString?.()||void 0,ee=Q.errorResponseBody;let G=Zxt(Q);J.recordFailure(Q.provider||"",G,q)}else{let G=Zxt(Q);J.recordSuccess(Q.provider||"",G)}lGt({id:`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,timestamp:new Date().toISOString(),sessionId:U,provider:Q.provider||"",originalModel:Q.originalModel||Q.body?.model||"",model:Zxt(Q),modelFamily:Q.modelFamily||"",scenarioType:Q.scenarioType||"default",stream:Q.body?.stream??!1,inputTokens:Q.tokenCount||0,outputTokens:L?.output_tokens||0,cacheReadInputTokens:L?.cache_read_input_tokens||0,cacheCreationInputTokens:L?.cache_creation_input_tokens||0,ttft:H.ttft,tokensPerSecond:H.tokensPerSecond,durationMs:Q.requestStartTime?Math.round(Qwt.performance.now()-Q.requestStartTime):0,status:M.statusCode<400?"success":"error",errorMessage:q,responseBody:ee})}catch(U){console.error("Usage tracking error:",U)}}),process.on("uncaughtException",Q=>{j.app.log.error("Uncaught exception:",Q)}),process.on("unhandledRejection",(Q,M)=>{j.app.log.error("Unhandled rejection at:",M,"reason:",Q)}),j}async function JGt(){let d=await c4t();d.app.post("/api/restart",async()=>(setTimeout(async()=>{process.exit(0)},100),{success:!0,message:"Service restart initiated"})),await d.start()}require.main===NEt&&JGt().catch(d=>{console.error("Failed to start server:",d),process.exit(1)});});async function f4t(d){try{let{stdout:g}=await p4t("npm view @wengine-ai/claude-code-router version"),y=g.trim();return{hasUpdate:$Gt(y,d)>0,latestVersion:y,changelog:""}}catch(g){return console.error("Error checking for updates:",g),{hasUpdate:!1,latestVersion:d,changelog:""}}}async function m4t(){try{let{stdout:d,stderr:g}=await p4t("npm update -g @wengine-ai/claude-code-router");return g&&console.error("Update stderr:",g),console.log("Update stdout:",d),{success:!0,message:"Update completed successfully. Please restart the application to apply changes."}}catch(d){return console.error("Error performing update:",d),{success:!1,message:`Failed to perform update: ${d instanceof Error?d.message:"Unknown error"}`}}}function $Gt(d,g){let y=d.split(".").map(Number),b=g.split(".").map(Number);for(let D=0;D<Math.max(y.length,b.length);D++){let S=D<y.length?y[D]:0,E=D<b.length?b[D]:0;if(S>E)return 1;if(S<E)return-1}return 0}var _4t,d4t,p4t,h4t=Npt(()=>{"use strict";_4t=require("child_process"),d4t=require("util"),p4t=(0,d4t.promisify)(_4t.exec)});var Kft,PEt=Npt(()=>{Kft="2.0.29"});var OEt=Pm(BEt=>{"use strict";Object.defineProperty(BEt,"__esModule",{value:!0});var g4t=require("child_process"),HGt=1024*1024,y4t={exec(d,g){let y={maxBuffer:2*HGt,windowsHide:!0};(0,g4t.exec)(d,y,g)},spawn(d,g,y){return(0,g4t.spawn)(d,g,y)},stripLine(d,g){let y=0;for(;g-- >0;){let b=d.indexOf(`
2102
2102
  `,y);b>=0&&(y=b+1)}return y>0?d.substring(y):d},split(d,g){let y=d.trim().split(/\s+/);return y.length>g&&(y[g-1]=y.slice(g-1).join(" ")),y},extractColumns(d,g,y){let b=d.split(/(\r\n|\n|\r)/),D=[];return y||(y=Math.max.apply(null,g)+1),b.forEach(S=>{let E=y4t.split(S,y),I=[];g.forEach(N=>{I.push(E[N]||"")}),D.push(I)}),D},parseTable(d){let g=d.split(/(\r\n\r\n|\r\n\n|\n\r\n|\n\n)/).filter(y=>y&&y.trim().length>0).map(y=>y.split(/(\r\n|\n|\r)/).filter(b=>b.trim().length>0));return g.forEach(y=>{for(let b=0;y[b];){let D=y[b];D.startsWith(" ")?(y[b-1]+=D.trimLeft(),y.splice(b,1)):b+=1}}),g.map(y=>{let b={};return y.forEach(D=>{let S=D.indexOf(":"),E=D.slice(0,S).trim();b[E]=D.slice(S+1).trim()}),b})}};BEt.default=y4t});var v4t=Pm((A4t,Yft)=>{(function(d,g){"use strict";typeof define=="function"&&define.amd?define(g):typeof Yft=="object"&&Yft.exports?Yft.exports=g():d.log=g()})(A4t,function(){"use strict";var d=function(){},g="undefined",y=typeof window!==g&&typeof window.navigator!==g&&/Trident\/|MSIE /.test(window.navigator.userAgent),b=["trace","debug","info","warn","error"],D={},S=null;function E(U,L){var H=U[L];if(typeof H.bind=="function")return H.bind(U);try{return Function.prototype.bind.call(H,U)}catch{return function(){return Function.prototype.apply.apply(H,[U,arguments])}}}function I(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function N(U){return U==="debug"&&(U="log"),typeof console===g?!1:U==="trace"&&y?I:console[U]!==void 0?E(console,U):console.log!==void 0?E(console,"log"):d}function O(){for(var U=this.getLevel(),L=0;L<b.length;L++){var H=b[L];this[H]=L<U?d:this.methodFactory(H,U,this.name)}if(this.log=this.debug,typeof console===g&&U<this.levels.SILENT)return"No console available for logging"}function R(U){return function(){typeof console!==g&&(O.call(this),this[U].apply(this,arguments))}}function j(U,L,H){return N(U)||R.apply(this,arguments)}function Q(U,L){var H=this,J,q,ee,G="loglevel";typeof U=="string"?G+=":"+U:typeof U=="symbol"&&(G=void 0);function se(ve){var Ae=(b[ve]||"silent").toUpperCase();if(!(typeof window===g||!G)){try{window.localStorage[G]=Ae;return}catch{}try{window.document.cookie=encodeURIComponent(G)+"="+Ae+";"}catch{}}}function _e(){var ve;if(!(typeof window===g||!G)){try{ve=window.localStorage[G]}catch{}if(typeof ve===g)try{var Ae=window.document.cookie,Fe=encodeURIComponent(G),He=Ae.indexOf(Fe+"=");He!==-1&&(ve=/^([^;]+)/.exec(Ae.slice(He+Fe.length+1))[1])}catch{}return H.levels[ve]===void 0&&(ve=void 0),ve}}function oe(){if(!(typeof window===g||!G)){try{window.localStorage.removeItem(G)}catch{}try{window.document.cookie=encodeURIComponent(G)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function fe(ve){var Ae=ve;if(typeof Ae=="string"&&H.levels[Ae.toUpperCase()]!==void 0&&(Ae=H.levels[Ae.toUpperCase()]),typeof Ae=="number"&&Ae>=0&&Ae<=H.levels.SILENT)return Ae;throw new TypeError("log.setLevel() called with invalid level: "+ve)}H.name=U,H.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},H.methodFactory=L||j,H.getLevel=function(){return ee??q??J},H.setLevel=function(ve,Ae){return ee=fe(ve),Ae!==!1&&se(ee),O.call(H)},H.setDefaultLevel=function(ve){q=fe(ve),_e()||H.setLevel(ve,!1)},H.resetLevel=function(){ee=null,oe(),O.call(H)},H.enableAll=function(ve){H.setLevel(H.levels.TRACE,ve)},H.disableAll=function(ve){H.setLevel(H.levels.SILENT,ve)},H.rebuild=function(){if(S!==H&&(J=fe(S.getLevel())),O.call(H),S===H)for(var ve in D)D[ve].rebuild()},J=fe(S?S.getLevel():"WARN");var le=_e();le!=null&&(ee=fe(le)),O.call(H)}S=new Q,S.getLogger=function(L){if(typeof L!="symbol"&&typeof L!="string"||L==="")throw new TypeError("You must supply a name when creating a logger.");var H=D[L];return H||(H=D[L]=new Q(L,S.methodFactory)),H};var M=typeof window!==g?window.log:void 0;return S.noConflict=function(){return typeof window!==g&&window.log===S&&(window.log=M),S},S.getLoggers=function(){return D},S.default=S,S})});var LEt=Pm(QZe=>{"use strict";var qGt=QZe&&QZe.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(QZe,"__esModule",{value:!0});var WGt=qGt(v4t());QZe.default=WGt.default});var C4t=Pm(Are=>{"use strict";var GGt=Are&&Are.__createBinding||(Object.create?(function(d,g,y,b){b===void 0&&(b=y);var D=Object.getOwnPropertyDescriptor(g,y);(!D||("get"in D?!g.__esModule:D.writable||D.configurable))&&(D={enumerable:!0,get:function(){return g[y]}}),Object.defineProperty(d,b,D)}):(function(d,g,y,b){b===void 0&&(b=y),d[b]=g[y]})),VGt=Are&&Are.__setModuleDefault||(Object.create?(function(d,g){Object.defineProperty(d,"default",{enumerable:!0,value:g})}):function(d,g){d.default=g}),b4t=Are&&Are.__importStar||(function(){var d=function(g){return d=Object.getOwnPropertyNames||function(y){var b=[];for(var D in y)Object.prototype.hasOwnProperty.call(y,D)&&(b[b.length]=D);return b},d(g)};return function(g){if(g&&g.__esModule)return g;var y={};if(g!=null)for(var b=d(g),D=0;D<b.length;D++)b[D]!=="default"&&GGt(y,g,b[D]);return VGt(y,g),y}})(),x4t=Are&&Are.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(Are,"__esModule",{value:!0});var KGt=b4t(require("os")),Zft=b4t(require("fs")),rW=x4t(OEt()),YGt=x4t(LEt()),ZGt=d=>new Promise((g,y)=>{Zft.existsSync(d)?g():Zft.mkdir(d,b=>{b?y(b):g()})}),kRe={darwin(d){return new Promise((g,y)=>{rW.default.exec("netstat -anv -p TCP && netstat -anv -p UDP",function(b,D,S){if(b)y(b);else{let E=S.toString().trim();if(E){y(new Error(E));return}let I=rW.default.stripLine(D.toString(),1),N=I.slice(0,I.indexOf(`
2103
2103
  `)),O=rW.default.stripLine(I,1),R=N.indexOf("rxbytes")>=0?10:8,j=rW.default.extractColumns(O,[0,3,R],10).filter(Q=>!!String(Q[0]).match(/^(udp|tcp)/)).find(Q=>{let M=String(Q[1]).match(/\.(\d+)$/);return!!(M&&M[1]===String(d))});j&&j[2].length?g(parseInt(j[2],10)):y(new Error(`pid of port (${d}) not found`))}})})},linux(d){return new Promise((g,y)=>{rW.default.exec("netstat -tunlp",function(D,S,E){if(D)y(D);else{let I=E.toString().trim();I&&YGt.default.warn(I);let N=rW.default.stripLine(S.toString(),2),O=rW.default.extractColumns(N,[3,6],7).find(R=>{let j=String(R[0]).match(/:(\d+)$/);return!!(j&&j[1]===String(d))});if(O&&O[1]){let R=O[1].split("/",1)[0];R.length?g(parseInt(R,10)):y(new Error(`pid of port (${d}) not found`))}else y(new Error(`pid of port (${d}) not found`))}})})},win32(d){return new Promise((g,y)=>{rW.default.exec("netstat -ano",function(b,D,S){if(b)y(b);else{let E=S.toString().trim();if(E){y(new Error(E));return}let I=rW.default.stripLine(D.toString(),4),N=rW.default.extractColumns(I,[1,4],5).find(O=>{let R=String(O[0]).match(/:(\d+)$/);return!!(R&&R[1]===String(d))});N&&N[1].length&&parseInt(N[1],10)>0?g(parseInt(N[1],10)):y(new Error(`pid of port (${d}) not found`))}})})},android(d){return new Promise((g,y)=>{let b=KGt.tmpdir()+"/.find-process",D=b+"/"+process.pid,S='netstat -tunp >> "'+D+'"';ZGt(b).then(()=>{rW.default.exec(S,()=>{Zft.readFile(D,"utf8",(E,I)=>{if(Zft.unlink(D,()=>{}),E)y(E);else{I=rW.default.stripLine(I,2);let N=rW.default.extractColumns(I,[3,6],7).find(O=>{let R=String(O[0]).match(/:(\d+)$/);return!!(R&&R[1]===String(d))});if(N&&N[1]){let O=N[1].split("/",1)[0];O.length?g(parseInt(O,10)):y(new Error(`pid of port (${d}) not found`))}else y(new Error(`pid of port (${d}) not found`))}})})})})}};kRe.freebsd=kRe.darwin;kRe.sunos=kRe.darwin;function XGt(d){let g=process.platform;return new Promise((y,b)=>{if(!(g in kRe))return b(new Error(`platform ${g} is unsupported`));let D=kRe[g];D(d).then(y,b)})}Are.default=XGt});var S4t=Pm(vre=>{"use strict";var eVt=vre&&vre.__createBinding||(Object.create?(function(d,g,y,b){b===void 0&&(b=y);var D=Object.getOwnPropertyDescriptor(g,y);(!D||("get"in D?!g.__esModule:D.writable||D.configurable))&&(D={enumerable:!0,get:function(){return g[y]}}),Object.defineProperty(d,b,D)}):(function(d,g,y,b){b===void 0&&(b=y),d[b]=g[y]})),tVt=vre&&vre.__setModuleDefault||(Object.create?(function(d,g){Object.defineProperty(d,"default",{enumerable:!0,value:g})}):function(d,g){d.default=g}),rVt=vre&&vre.__importStar||(function(){var d=function(g){return d=Object.getOwnPropertyNames||function(y){var b=[];for(var D in y)Object.prototype.hasOwnProperty.call(y,D)&&(b[b.length]=D);return b},d(g)};return function(g){if(g&&g.__esModule)return g;var y={};if(g!=null)for(var b=d(g),D=0;D<b.length;D++)b[D]!=="default"&&eVt(y,g,b[D]);return tVt(y,g),y}})(),nVt=vre&&vre.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(vre,"__esModule",{value:!0});var Xft=rVt(require("path")),Y2e=nVt(OEt());function REt(d,g){return g?d&&d.match?d.match(g)!==null:!1:!0}function E4t(d){let g=d.split(Xft.sep),y=g[g.length-1];y&&(g[g.length-1]=y.split(" ")[0]);let b=[];for(let D of g){let S=D.indexOf(" -");if(S>=0){b.push(D.substring(0,S).trim());break}else if(D.endsWith(" ")){b.push(D.trim());break}b.push(D)}return b.join(Xft.sep)}function D4t(d){if(process.platform==="darwin"){let g=d.indexOf(".app/");if(g>=0)return Xft.basename(d.substring(0,g))}return Xft.basename(d)}var SFe={darwin(d){return new Promise((g,y)=>{let b;"pid"in d&&d.pid!==void 0?b=`ps -p ${d.pid} -ww -o pid,ppid,uid,gid,args`:b="ps ax -ww -o pid,ppid,uid,gid,args",Y2e.default.exec(b,function(D,S,E){if(D)"pid"in d&&d.pid!==void 0?g([]):y(D);else{let I=E.toString().trim();if(I){y(new Error(I));return}let N=Y2e.default.stripLine(S.toString(),1),R=Y2e.default.extractColumns(N,[0,1,2,3,4],5).filter(j=>j[0]&&d.pid!==void 0?j[0]===String(d.pid):j[4]&&d.name?REt(j[4],d.name):!!j[0]).map(j=>{let Q=String(j[4]),M=E4t(Q);return{pid:parseInt(j[0],10),ppid:parseInt(j[1],10),uid:parseInt(j[2],10),gid:parseInt(j[3],10),name:D4t(M),bin:M,cmd:j[4]}});d.config.strict&&d.name&&(R=R.filter(j=>j.name===d.name)),g(R)}})})},win32(d){return new Promise((g,y)=>{let b="[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; Get-CimInstance -className win32_process | select Name,ProcessId,ParentProcessId,CommandLine,ExecutablePath",D=[],S=Y2e.default.spawn("powershell.exe",["/c",b],{detached:!1,windowsHide:!0});S.stdout.on("data",E=>{D.push(E.toString())}),S.on("error",E=>{y(new Error("Command '"+b+"' failed with reason: "+E.toString()))}),S.on("close",E=>{if(E!==0)return y(new Error("Command '"+b+"' terminated with code: "+E));let I=Y2e.default.parseTable(D.join("")).filter(N=>{if(d.pid!==void 0)return N.ProcessId===String(d.pid);if(d.name){let O=N.Name||"";return d.config.strict?O===d.name||O.endsWith(".exe")&&O.slice(0,-4)===d.name:REt(N.CommandLine||O,d.name)}else return!0}).map(N=>({pid:parseInt(N.ProcessId,10),ppid:parseInt(N.ParentProcessId,10),bin:N.ExecutablePath,name:N.Name||"",cmd:N.CommandLine}));g(I)})})},android(d){return new Promise((g,y)=>{Y2e.default.exec("ps",function(D,S,E){if(D)d.pid!==void 0?g([]):y(D);else{let I=E.toString().trim();if(I){y(new Error(I));return}let N=Y2e.default.stripLine(S.toString(),1),R=Y2e.default.extractColumns(N,[0,3],4).filter(j=>j[0]&&d.pid!==void 0?j[0]===String(d.pid):j[1]&&d.name?REt(j[1],d.name):!!j[0]).map(j=>{let Q=String(j[1]),M=E4t(Q);return{pid:parseInt(j[0],10),ppid:0,name:D4t(M),bin:M,cmd:j[1]}});d.config.strict&&d.name&&(R=R.filter(j=>j.name===d.name)),g(R)}})})}};SFe.linux=SFe.darwin;SFe.sunos=SFe.darwin;SFe.freebsd=SFe.darwin;function iVt(d){let g=process.platform,y=SFe[g];return y?y(d):Promise.reject(new Error(`Platform "${g}" is not supported`))}vre.default=iVt});var T4t=Pm(UZe=>{"use strict";var jEt=UZe&&UZe.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(UZe,"__esModule",{value:!0});var aVt=jEt(C4t()),k4t=jEt(S4t()),oVt=jEt(LEt()),MEt={port(d,g){return(0,aVt.default)(d).then(y=>MEt.pid(y,g),()=>[])},pid(d,g){return(0,k4t.default)({pid:d,config:g})},name(d,g){return(0,k4t.default)({name:d,config:g,skipSelf:!0})}};function sVt(d,g,y){let b=Object.assign({logLevel:"warn",strict:typeof y=="boolean"?y:!1},typeof y=="object"?y:{});return b.logLevel&&oVt.default.setLevel(b.logLevel),new Promise((D,S)=>{if(!(d in MEt))S(new Error(`do not support find by "${d}"`));else{let E=/^\d+$/.test(String(g));d==="pid"&&!E?S(new Error("pid must be a number")):d==="port"&&!E?S(new Error("port must be a number")):MEt[d](g,b).then(D,S)}})}UZe.default=sVt});var F4t=Pm(w4t=>{"use strict";Object.defineProperty(w4t,"__esModule",{value:!0})});var I4t=Pm(bre=>{"use strict";var lVt=bre&&bre.__createBinding||(Object.create?(function(d,g,y,b){b===void 0&&(b=y);var D=Object.getOwnPropertyDescriptor(g,y);(!D||("get"in D?!g.__esModule:D.writable||D.configurable))&&(D={enumerable:!0,get:function(){return g[y]}}),Object.defineProperty(d,b,D)}):(function(d,g,y,b){b===void 0&&(b=y),d[b]=g[y]})),cVt=bre&&bre.__exportStar||function(d,g){for(var y in d)y!=="default"&&!Object.prototype.hasOwnProperty.call(g,y)&&lVt(g,d,y)},uVt=bre&&bre.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(bre,"__esModule",{value:!0});bre.default=void 0;var _Vt=T4t();Object.defineProperty(bre,"default",{enumerable:!0,get:function(){return uVt(_Vt).default}});cVt(F4t(),bre)});function P4t(){let d=0;(0,pR.existsSync)(HO.REFERENCE_COUNT_FILE)&&(d=parseInt((0,pR.readFileSync)(HO.REFERENCE_COUNT_FILE,"utf-8"))||0),d++,(0,pR.writeFileSync)(HO.REFERENCE_COUNT_FILE,d.toString())}function QEt(){let d=0;(0,pR.existsSync)(HO.REFERENCE_COUNT_FILE)&&(d=parseInt((0,pR.readFileSync)(HO.REFERENCE_COUNT_FILE,"utf-8"))||0),d=Math.max(0,d-1),(0,pR.writeFileSync)(HO.REFERENCE_COUNT_FILE,d.toString())}function B4t(){return(0,pR.existsSync)(HO.REFERENCE_COUNT_FILE)&&parseInt((0,pR.readFileSync)(HO.REFERENCE_COUNT_FILE,"utf-8"))||0}function kFe(){if(!(0,pR.existsSync)(HO.PID_FILE))return!1;let d;try{let g=(0,pR.readFileSync)(HO.PID_FILE,"utf-8");if(d=parseInt(g,10),isNaN(d))return Rfe(),!1}catch{return!1}try{if(process.platform==="win32"){let g=`tasklist /FI "PID eq ${d}"`;return(0,N4t.execSync)(g,{stdio:"pipe"}).toString().includes(d.toString())?!0:(Rfe(),!1)}else return process.kill(d,0),!0}catch{return Rfe(),!1}}function Rfe(){if((0,pR.existsSync)(HO.PID_FILE))try{require("fs").unlinkSync(HO.PID_FILE)}catch{}}function O4t(){if(!(0,pR.existsSync)(HO.PID_FILE))return null;try{let d=parseInt((0,pR.readFileSync)(HO.PID_FILE,"utf-8"));return isNaN(d)?null:d}catch{return null}}async function emt(){let d=O4t(),g=await kFe(),b=(await dQ()).PORT||3456;return{running:g,pid:d,port:b,endpoint:`http://127.0.0.1:${b}`,pidFile:HO.PID_FILE,referenceCount:B4t()}}async function L4t(){if(B4t()===0){let g=O4t();if(g&&await kFe())try{process.kill(g,"SIGTERM")}catch{}}}var pR,HO,dVt,N4t,JZe=Npt(()=>{"use strict";pR=require("fs"),HO=Wy(hY());Z2e();dVt=Wy(I4t()),N4t=require("child_process")});var z4t={};Kkt(z4t,{backupConfigFile:()=>J4t,getSettingsPath:()=>HEt,initConfig:()=>pVt,initDir:()=>U4t,readConfigFile:()=>dQ,restartService:()=>zEt,run:()=>$Et,writeConfigFile:()=>$4t});var S$,R4t,X2e,M4t,j4t,FF,Q4t,TRe,JEt,UEt,$Ze,U4t,dQ,J4t,$4t,pVt,$Et,zEt,HEt,Z2e=Npt(()=>{"use strict";S$=Wy(require("node:fs/promises")),R4t=Wy(Rpt()),X2e=Wy(require("node:path")),M4t=require("node:crypto"),j4t=Wy(require("node:os")),FF=Wy(hY()),Q4t=Wy(u4t()),TRe=require("fs");h4t();PEt();JEt=require("child_process");JZe();UEt=d=>{if(typeof d=="string")return d.replace(/\$\{([^}]+)\}|\$([A-Z_][A-Z0-9_]*)/g,(g,y,b)=>{let D=y||b;return process.env[D]||g});if(Array.isArray(d))return d.map(UEt);if(d!==null&&typeof d=="object"){let g={};for(let[y,b]of Object.entries(d))g[y]=UEt(b);return g}return d},$Ze=async d=>{try{await S$.default.access(d)}catch{await S$.default.mkdir(d,{recursive:!0})}},U4t=async()=>{await $Ze(FF.HOME_DIR),await $Ze(FF.PLUGINS_DIR),await $Ze(FF.PRESETS_DIR),await $Ze(X2e.default.join(FF.HOME_DIR,"logs"))},dQ=async()=>{try{let d=await S$.default.readFile(FF.CONFIG_FILE,"utf-8");try{let g=R4t.default.parse(d);return UEt(g)}catch(g){console.error(`Failed to parse config file at ${FF.CONFIG_FILE}`),console.error("Error details:",g.message),console.error("Please check your config file syntax."),process.exit(1)}}catch(d){if(d.code==="ENOENT")try{await U4t();let g=await J4t();g&&console.log(`Backed up existing configuration file to ${g}`);let y={PORT:3456,Providers:[],Router:{}};return await $4t(y),console.log("Created minimal default configuration file at ~/.claude-code-router/config.json"),console.log("Please edit this file with your actual configuration."),y}catch(g){console.error("Failed to create default configuration:",g.message),process.exit(1)}else console.error(`Failed to read config file at ${FF.CONFIG_FILE}`),console.error("Error details:",d.message),process.exit(1)}},J4t=async()=>{try{if(await S$.default.access(FF.CONFIG_FILE).then(()=>!0).catch(()=>!1)){let d=new Date().toISOString().replace(/[:.]/g,"-"),g=`${FF.CONFIG_FILE}.${d}.bak`;await S$.default.copyFile(FF.CONFIG_FILE,g);try{let y=X2e.default.dirname(FF.CONFIG_FILE),b=X2e.default.basename(FF.CONFIG_FILE),S=(await S$.default.readdir(y)).filter(E=>E.startsWith(b)&&E.endsWith(".bak")).sort().reverse();if(S.length>3)for(let E=3;E<S.length;E++){let I=X2e.default.join(y,S[E]);await S$.default.unlink(I)}}catch(y){console.warn("Failed to clean up old backups:",y)}return g}}catch(d){console.error("Failed to backup config file:",d)}return null},$4t=async d=>{await $Ze(FF.HOME_DIR);let g=`${JSON.stringify(d,null,2)}`;await S$.default.writeFile(FF.CONFIG_FILE,g)},pVt=async()=>{let d=await dQ();return Object.assign(process.env,d),d},$Et=async(d=[])=>{if(kFe()){console.log("claude-code-router server is running");return}let y=await(0,Q4t.getServer)(),b=y.app;(0,TRe.writeFileSync)(FF.PID_FILE,process.pid.toString()),b.post("/api/update/perform",async()=>await m4t()),b.get("/api/update/check",async()=>await f4t(Kft)),b.post("/api/restart",async()=>(setTimeout(async()=>{(0,JEt.spawn)("ccr",["restart"],{detached:!0,stdio:"ignore"}).unref()},100),{success:!0,message:"Service restart initiated"})),await y.start()},zEt=async()=>{try{let y=parseInt((0,TRe.readFileSync)(FF.PID_FILE,"utf-8"));if(process.kill(y),Rfe(),(0,TRe.existsSync)(FF.REFERENCE_COUNT_FILE))try{await S$.default.unlink(FF.REFERENCE_COUNT_FILE)}catch{}console.log("claude code router service has been stopped.")}catch{console.log("Service was not running or failed to stop."),Rfe()}console.log("Starting claude code router service...");let d=X2e.default.join(__dirname,"cli.js"),g=(0,JEt.spawn)("node",[d,"start"],{detached:!0,stdio:"ignore"});g.on("error",y=>{throw console.error("Failed to start service:",y),y}),g.unref(),console.log("\u2705 Service started successfully in the background.")},HEt=async d=>{let g=(0,M4t.createHash)("sha256").update(d,"utf-8").digest("hex"),y=X2e.default.join(j4t.default.tmpdir(),"claude-code-router"),b=`ccr-settings-${g}.json`,D=X2e.default.join(y,b);try{await S$.default.access(y)}catch{await S$.default.mkdir(y,{recursive:!0})}try{return await S$.default.access(D),D}catch{return await S$.default.writeFile(D,d,"utf-8"),D}}});var HZe=Pm((xlr,Y4t)=>{var mVt=require("node:tty"),hVt=mVt?.WriteStream?.prototype?.hasColors?.()??!1,fv=(d,g)=>{if(!hVt)return D=>D;let y=`\x1B[${d}m`,b=`\x1B[${g}m`;return D=>{let S=D+"",E=S.indexOf(b);if(E===-1)return y+S+b;let I=y,N=0,R=(g===22?b:"")+y;for(;E!==-1;)I+=S.slice(N,E)+R,N=E+b.length,E=S.indexOf(b,N);return I+=S.slice(N)+b,I}},q2={};q2.reset=fv(0,0);q2.bold=fv(1,22);q2.dim=fv(2,22);q2.italic=fv(3,23);q2.underline=fv(4,24);q2.overline=fv(53,55);q2.inverse=fv(7,27);q2.hidden=fv(8,28);q2.strikethrough=fv(9,29);q2.black=fv(30,39);q2.red=fv(31,39);q2.green=fv(32,39);q2.yellow=fv(33,39);q2.blue=fv(34,39);q2.magenta=fv(35,39);q2.cyan=fv(36,39);q2.white=fv(37,39);q2.gray=fv(90,39);q2.bgBlack=fv(40,49);q2.bgRed=fv(41,49);q2.bgGreen=fv(42,49);q2.bgYellow=fv(43,49);q2.bgBlue=fv(44,49);q2.bgMagenta=fv(45,49);q2.bgCyan=fv(46,49);q2.bgWhite=fv(47,49);q2.bgGray=fv(100,49);q2.redBright=fv(91,39);q2.greenBright=fv(92,39);q2.yellowBright=fv(93,39);q2.blueBright=fv(94,39);q2.magentaBright=fv(95,39);q2.cyanBright=fv(96,39);q2.whiteBright=fv(97,39);q2.bgRedBright=fv(101,49);q2.bgGreenBright=fv(102,49);q2.bgYellowBright=fv(103,49);q2.bgBlueBright=fv(104,49);q2.bgMagentaBright=fv(105,49);q2.bgCyanBright=fv(106,49);q2.bgWhiteBright=fv(107,49);Y4t.exports=q2});var iNt=Pm((Ulr,nNt)=>{"use strict";nNt.exports=EVt;function CVt(d){let g={defaultWidth:0,output:process.stdout,tty:require("tty")};return d?(Object.keys(g).forEach(function(y){d[y]||(d[y]=g[y])}),d):g}function EVt(d){let g=CVt(d);if(g.output.getWindowSize)return g.output.getWindowSize()[0]||g.defaultWidth;if(g.tty.getWindowSize)return g.tty.getWindowSize()[1]||g.defaultWidth;if(g.output.columns)return g.output.columns;if(process.env.CLI_WIDTH){let y=parseInt(process.env.CLI_WIDTH,10);if(!isNaN(y)&&y!==0)return y}return g.defaultWidth}});var oNt=Pm((Jlr,aNt)=>{"use strict";aNt.exports=({onlyFirst:d=!1}={})=>{let g=["[\\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(g,d?void 0:"g")}});var cmt=Pm(($lr,sNt)=>{"use strict";var DVt=oNt();sNt.exports=d=>typeof d=="string"?d.replace(DVt(),""):d});var cNt=Pm((zlr,VEt)=>{"use strict";var lNt=d=>Number.isNaN(d)?!1:d>=4352&&(d<=4447||d===9001||d===9002||11904<=d&&d<=12871&&d!==12351||12880<=d&&d<=19903||19968<=d&&d<=42182||43360<=d&&d<=43388||44032<=d&&d<=55203||63744<=d&&d<=64255||65040<=d&&d<=65049||65072<=d&&d<=65131||65281<=d&&d<=65376||65504<=d&&d<=65510||110592<=d&&d<=110593||127488<=d&&d<=127569||131072<=d&&d<=262141);VEt.exports=lNt;VEt.exports.default=lNt});var _Nt=Pm((Hlr,uNt)=>{"use strict";uNt.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 pNt=Pm((qlr,KEt)=>{"use strict";var SVt=cmt(),kVt=cNt(),TVt=_Nt(),dNt=d=>{if(typeof d!="string"||d.length===0||(d=SVt(d),d.length===0))return 0;d=d.replace(TVt()," ");let g=0;for(let y=0;y<d.length;y++){let b=d.codePointAt(y);b<=31||b>=127&&b<=159||b>=768&&b<=879||(b>65535&&y++,g+=kVt(b)?2:1)}return g};KEt.exports=dNt;KEt.exports.default=dNt});var mNt=Pm((Wlr,fNt)=>{"use strict";fNt.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 YEt=Pm((Glr,gNt)=>{var qZe=mNt(),hNt={};for(let d of Object.keys(qZe))hNt[qZe[d]]=d;var D0={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"]}};gNt.exports=D0;for(let d of Object.keys(D0)){if(!("channels"in D0[d]))throw new Error("missing channels property: "+d);if(!("labels"in D0[d]))throw new Error("missing channel labels property: "+d);if(D0[d].labels.length!==D0[d].channels)throw new Error("channel and label counts mismatch: "+d);let{channels:g,labels:y}=D0[d];delete D0[d].channels,delete D0[d].labels,Object.defineProperty(D0[d],"channels",{value:g}),Object.defineProperty(D0[d],"labels",{value:y})}D0.rgb.hsl=function(d){let g=d[0]/255,y=d[1]/255,b=d[2]/255,D=Math.min(g,y,b),S=Math.max(g,y,b),E=S-D,I,N;S===D?I=0:g===S?I=(y-b)/E:y===S?I=2+(b-g)/E:b===S&&(I=4+(g-y)/E),I=Math.min(I*60,360),I<0&&(I+=360);let O=(D+S)/2;return S===D?N=0:O<=.5?N=E/(S+D):N=E/(2-S-D),[I,N*100,O*100]};D0.rgb.hsv=function(d){let g,y,b,D,S,E=d[0]/255,I=d[1]/255,N=d[2]/255,O=Math.max(E,I,N),R=O-Math.min(E,I,N),j=function(Q){return(O-Q)/6/R+1/2};return R===0?(D=0,S=0):(S=R/O,g=j(E),y=j(I),b=j(N),E===O?D=b-y:I===O?D=1/3+g-b:N===O&&(D=2/3+y-g),D<0?D+=1:D>1&&(D-=1)),[D*360,S*100,O*100]};D0.rgb.hwb=function(d){let g=d[0],y=d[1],b=d[2],D=D0.rgb.hsl(d)[0],S=1/255*Math.min(g,Math.min(y,b));return b=1-1/255*Math.max(g,Math.max(y,b)),[D,S*100,b*100]};D0.rgb.cmyk=function(d){let g=d[0]/255,y=d[1]/255,b=d[2]/255,D=Math.min(1-g,1-y,1-b),S=(1-g-D)/(1-D)||0,E=(1-y-D)/(1-D)||0,I=(1-b-D)/(1-D)||0;return[S*100,E*100,I*100,D*100]};function wVt(d,g){return(d[0]-g[0])**2+(d[1]-g[1])**2+(d[2]-g[2])**2}D0.rgb.keyword=function(d){let g=hNt[d];if(g)return g;let y=1/0,b;for(let D of Object.keys(qZe)){let S=qZe[D],E=wVt(d,S);E<y&&(y=E,b=D)}return b};D0.keyword.rgb=function(d){return qZe[d]};D0.rgb.xyz=function(d){let g=d[0]/255,y=d[1]/255,b=d[2]/255;g=g>.04045?((g+.055)/1.055)**2.4:g/12.92,y=y>.04045?((y+.055)/1.055)**2.4:y/12.92,b=b>.04045?((b+.055)/1.055)**2.4:b/12.92;let D=g*.4124+y*.3576+b*.1805,S=g*.2126+y*.7152+b*.0722,E=g*.0193+y*.1192+b*.9505;return[D*100,S*100,E*100]};D0.rgb.lab=function(d){let g=D0.rgb.xyz(d),y=g[0],b=g[1],D=g[2];y/=95.047,b/=100,D/=108.883,y=y>.008856?y**(1/3):7.787*y+16/116,b=b>.008856?b**(1/3):7.787*b+16/116,D=D>.008856?D**(1/3):7.787*D+16/116;let S=116*b-16,E=500*(y-b),I=200*(b-D);return[S,E,I]};D0.hsl.rgb=function(d){let g=d[0]/360,y=d[1]/100,b=d[2]/100,D,S,E;if(y===0)return E=b*255,[E,E,E];b<.5?D=b*(1+y):D=b+y-b*y;let I=2*b-D,N=[0,0,0];for(let O=0;O<3;O++)S=g+1/3*-(O-1),S<0&&S++,S>1&&S--,6*S<1?E=I+(D-I)*6*S:2*S<1?E=D:3*S<2?E=I+(D-I)*(2/3-S)*6:E=I,N[O]=E*255;return N};D0.hsl.hsv=function(d){let g=d[0],y=d[1]/100,b=d[2]/100,D=y,S=Math.max(b,.01);b*=2,y*=b<=1?b:2-b,D*=S<=1?S:2-S;let E=(b+y)/2,I=b===0?2*D/(S+D):2*y/(b+y);return[g,I*100,E*100]};D0.hsv.rgb=function(d){let g=d[0]/60,y=d[1]/100,b=d[2]/100,D=Math.floor(g)%6,S=g-Math.floor(g),E=255*b*(1-y),I=255*b*(1-y*S),N=255*b*(1-y*(1-S));switch(b*=255,D){case 0:return[b,N,E];case 1:return[I,b,E];case 2:return[E,b,N];case 3:return[E,I,b];case 4:return[N,E,b];case 5:return[b,E,I]}};D0.hsv.hsl=function(d){let g=d[0],y=d[1]/100,b=d[2]/100,D=Math.max(b,.01),S,E;E=(2-y)*b;let I=(2-y)*D;return S=y*D,S/=I<=1?I:2-I,S=S||0,E/=2,[g,S*100,E*100]};D0.hwb.rgb=function(d){let g=d[0]/360,y=d[1]/100,b=d[2]/100,D=y+b,S;D>1&&(y/=D,b/=D);let E=Math.floor(6*g),I=1-b;S=6*g-E,(E&1)!==0&&(S=1-S);let N=y+S*(I-y),O,R,j;switch(E){default:case 6:case 0:O=I,R=N,j=y;break;case 1:O=N,R=I,j=y;break;case 2:O=y,R=I,j=N;break;case 3:O=y,R=N,j=I;break;case 4:O=N,R=y,j=I;break;case 5:O=I,R=y,j=N;break}return[O*255,R*255,j*255]};D0.cmyk.rgb=function(d){let g=d[0]/100,y=d[1]/100,b=d[2]/100,D=d[3]/100,S=1-Math.min(1,g*(1-D)+D),E=1-Math.min(1,y*(1-D)+D),I=1-Math.min(1,b*(1-D)+D);return[S*255,E*255,I*255]};D0.xyz.rgb=function(d){let g=d[0]/100,y=d[1]/100,b=d[2]/100,D,S,E;return D=g*3.2406+y*-1.5372+b*-.4986,S=g*-.9689+y*1.8758+b*.0415,E=g*.0557+y*-.204+b*1.057,D=D>.0031308?1.055*D**(1/2.4)-.055:D*12.92,S=S>.0031308?1.055*S**(1/2.4)-.055:S*12.92,E=E>.0031308?1.055*E**(1/2.4)-.055:E*12.92,D=Math.min(Math.max(0,D),1),S=Math.min(Math.max(0,S),1),E=Math.min(Math.max(0,E),1),[D*255,S*255,E*255]};D0.xyz.lab=function(d){let g=d[0],y=d[1],b=d[2];g/=95.047,y/=100,b/=108.883,g=g>.008856?g**(1/3):7.787*g+16/116,y=y>.008856?y**(1/3):7.787*y+16/116,b=b>.008856?b**(1/3):7.787*b+16/116;let D=116*y-16,S=500*(g-y),E=200*(y-b);return[D,S,E]};D0.lab.xyz=function(d){let g=d[0],y=d[1],b=d[2],D,S,E;S=(g+16)/116,D=y/500+S,E=S-b/200;let I=S**3,N=D**3,O=E**3;return S=I>.008856?I:(S-16/116)/7.787,D=N>.008856?N:(D-16/116)/7.787,E=O>.008856?O:(E-16/116)/7.787,D*=95.047,S*=100,E*=108.883,[D,S,E]};D0.lab.lch=function(d){let g=d[0],y=d[1],b=d[2],D;D=Math.atan2(b,y)*360/2/Math.PI,D<0&&(D+=360);let E=Math.sqrt(y*y+b*b);return[g,E,D]};D0.lch.lab=function(d){let g=d[0],y=d[1],D=d[2]/360*2*Math.PI,S=y*Math.cos(D),E=y*Math.sin(D);return[g,S,E]};D0.rgb.ansi16=function(d,g=null){let[y,b,D]=d,S=g===null?D0.rgb.hsv(d)[2]:g;if(S=Math.round(S/50),S===0)return 30;let E=30+(Math.round(D/255)<<2|Math.round(b/255)<<1|Math.round(y/255));return S===2&&(E+=60),E};D0.hsv.ansi16=function(d){return D0.rgb.ansi16(D0.hsv.rgb(d),d[2])};D0.rgb.ansi256=function(d){let g=d[0],y=d[1],b=d[2];return g===y&&y===b?g<8?16:g>248?231:Math.round((g-8)/247*24)+232:16+36*Math.round(g/255*5)+6*Math.round(y/255*5)+Math.round(b/255*5)};D0.ansi16.rgb=function(d){let g=d%10;if(g===0||g===7)return d>50&&(g+=3.5),g=g/10.5*255,[g,g,g];let y=(~~(d>50)+1)*.5,b=(g&1)*y*255,D=(g>>1&1)*y*255,S=(g>>2&1)*y*255;return[b,D,S]};D0.ansi256.rgb=function(d){if(d>=232){let S=(d-232)*10+8;return[S,S,S]}d-=16;let g,y=Math.floor(d/36)/5*255,b=Math.floor((g=d%36)/6)/5*255,D=g%6/5*255;return[y,b,D]};D0.rgb.hex=function(d){let y=(((Math.round(d[0])&255)<<16)+((Math.round(d[1])&255)<<8)+(Math.round(d[2])&255)).toString(16).toUpperCase();return"000000".substring(y.length)+y};D0.hex.rgb=function(d){let g=d.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!g)return[0,0,0];let y=g[0];g[0].length===3&&(y=y.split("").map(I=>I+I).join(""));let b=parseInt(y,16),D=b>>16&255,S=b>>8&255,E=b&255;return[D,S,E]};D0.rgb.hcg=function(d){let g=d[0]/255,y=d[1]/255,b=d[2]/255,D=Math.max(Math.max(g,y),b),S=Math.min(Math.min(g,y),b),E=D-S,I,N;return E<1?I=S/(1-E):I=0,E<=0?N=0:D===g?N=(y-b)/E%6:D===y?N=2+(b-g)/E:N=4+(g-y)/E,N/=6,N%=1,[N*360,E*100,I*100]};D0.hsl.hcg=function(d){let g=d[1]/100,y=d[2]/100,b=y<.5?2*g*y:2*g*(1-y),D=0;return b<1&&(D=(y-.5*b)/(1-b)),[d[0],b*100,D*100]};D0.hsv.hcg=function(d){let g=d[1]/100,y=d[2]/100,b=g*y,D=0;return b<1&&(D=(y-b)/(1-b)),[d[0],b*100,D*100]};D0.hcg.rgb=function(d){let g=d[0]/360,y=d[1]/100,b=d[2]/100;if(y===0)return[b*255,b*255,b*255];let D=[0,0,0],S=g%1*6,E=S%1,I=1-E,N=0;switch(Math.floor(S)){case 0:D[0]=1,D[1]=E,D[2]=0;break;case 1:D[0]=I,D[1]=1,D[2]=0;break;case 2:D[0]=0,D[1]=1,D[2]=E;break;case 3:D[0]=0,D[1]=I,D[2]=1;break;case 4:D[0]=E,D[1]=0,D[2]=1;break;default:D[0]=1,D[1]=0,D[2]=I}return N=(1-y)*b,[(y*D[0]+N)*255,(y*D[1]+N)*255,(y*D[2]+N)*255]};D0.hcg.hsv=function(d){let g=d[1]/100,y=d[2]/100,b=g+y*(1-g),D=0;return b>0&&(D=g/b),[d[0],D*100,b*100]};D0.hcg.hsl=function(d){let g=d[1]/100,b=d[2]/100*(1-g)+.5*g,D=0;return b>0&&b<.5?D=g/(2*b):b>=.5&&b<1&&(D=g/(2*(1-b))),[d[0],D*100,b*100]};D0.hcg.hwb=function(d){let g=d[1]/100,y=d[2]/100,b=g+y*(1-g);return[d[0],(b-g)*100,(1-b)*100]};D0.hwb.hcg=function(d){let g=d[1]/100,b=1-d[2]/100,D=b-g,S=0;return D<1&&(S=(b-D)/(1-D)),[d[0],D*100,S*100]};D0.apple.rgb=function(d){return[d[0]/65535*255,d[1]/65535*255,d[2]/65535*255]};D0.rgb.apple=function(d){return[d[0]/255*65535,d[1]/255*65535,d[2]/255*65535]};D0.gray.rgb=function(d){return[d[0]/100*255,d[0]/100*255,d[0]/100*255]};D0.gray.hsl=function(d){return[0,0,d[0]]};D0.gray.hsv=D0.gray.hsl;D0.gray.hwb=function(d){return[0,100,d[0]]};D0.gray.cmyk=function(d){return[0,0,0,d[0]]};D0.gray.lab=function(d){return[d[0],0,0]};D0.gray.hex=function(d){let g=Math.round(d[0]/100*255)&255,b=((g<<16)+(g<<8)+g).toString(16).toUpperCase();return"000000".substring(b.length)+b};D0.rgb.gray=function(d){return[(d[0]+d[1]+d[2])/3/255*100]}});var ANt=Pm((Vlr,yNt)=>{var umt=YEt();function FVt(){let d={},g=Object.keys(umt);for(let y=g.length,b=0;b<y;b++)d[g[b]]={distance:-1,parent:null};return d}function IVt(d){let g=FVt(),y=[d];for(g[d].distance=0;y.length;){let b=y.pop(),D=Object.keys(umt[b]);for(let S=D.length,E=0;E<S;E++){let I=D[E],N=g[I];N.distance===-1&&(N.distance=g[b].distance+1,N.parent=b,y.unshift(I))}}return g}function NVt(d,g){return function(y){return g(d(y))}}function PVt(d,g){let y=[g[d].parent,d],b=umt[g[d].parent][d],D=g[d].parent;for(;g[D].parent;)y.unshift(g[D].parent),b=NVt(umt[g[D].parent][D],b),D=g[D].parent;return b.conversion=y,b}yNt.exports=function(d){let g=IVt(d),y={},b=Object.keys(g);for(let D=b.length,S=0;S<D;S++){let E=b[S];g[E].parent!==null&&(y[E]=PVt(E,g))}return y}});var bNt=Pm((Klr,vNt)=>{var ZEt=YEt(),BVt=ANt(),IRe={},OVt=Object.keys(ZEt);function LVt(d){let g=function(...y){let b=y[0];return b==null?b:(b.length>1&&(y=b),d(y))};return"conversion"in d&&(g.conversion=d.conversion),g}function RVt(d){let g=function(...y){let b=y[0];if(b==null)return b;b.length>1&&(y=b);let D=d(y);if(typeof D=="object")for(let S=D.length,E=0;E<S;E++)D[E]=Math.round(D[E]);return D};return"conversion"in d&&(g.conversion=d.conversion),g}OVt.forEach(d=>{IRe[d]={},Object.defineProperty(IRe[d],"channels",{value:ZEt[d].channels}),Object.defineProperty(IRe[d],"labels",{value:ZEt[d].labels});let g=BVt(d);Object.keys(g).forEach(b=>{let D=g[b];IRe[d][b]=RVt(D),IRe[d][b].raw=LVt(D)})});vNt.exports=IRe});var kNt=Pm((Ylr,SNt)=>{"use strict";var xNt=(d,g)=>(...y)=>`\x1B[${d(...y)+g}m`,CNt=(d,g)=>(...y)=>{let b=d(...y);return`\x1B[${38+g};5;${b}m`},ENt=(d,g)=>(...y)=>{let b=d(...y);return`\x1B[${38+g};2;${b[0]};${b[1]};${b[2]}m`},_mt=d=>d,DNt=(d,g,y)=>[d,g,y],NRe=(d,g,y)=>{Object.defineProperty(d,g,{get:()=>{let b=y();return Object.defineProperty(d,g,{value:b,enumerable:!0,configurable:!0}),b},enumerable:!0,configurable:!0})},XEt,PRe=(d,g,y,b)=>{XEt===void 0&&(XEt=bNt());let D=b?10:0,S={};for(let[E,I]of Object.entries(XEt)){let N=E==="ansi16"?"ansi":E;E===g?S[N]=d(y,D):typeof I=="object"&&(S[N]=d(I[g],D))}return S};function MVt(){let d=new Map,g={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]}};g.color.gray=g.color.blackBright,g.bgColor.bgGray=g.bgColor.bgBlackBright,g.color.grey=g.color.blackBright,g.bgColor.bgGrey=g.bgColor.bgBlackBright;for(let[y,b]of Object.entries(g)){for(let[D,S]of Object.entries(b))g[D]={open:`\x1B[${S[0]}m`,close:`\x1B[${S[1]}m`},b[D]=g[D],d.set(S[0],S[1]);Object.defineProperty(g,y,{value:b,enumerable:!1})}return Object.defineProperty(g,"codes",{value:d,enumerable:!1}),g.color.close="\x1B[39m",g.bgColor.close="\x1B[49m",NRe(g.color,"ansi",()=>PRe(xNt,"ansi16",_mt,!1)),NRe(g.color,"ansi256",()=>PRe(CNt,"ansi256",_mt,!1)),NRe(g.color,"ansi16m",()=>PRe(ENt,"rgb",DNt,!1)),NRe(g.bgColor,"ansi",()=>PRe(xNt,"ansi16",_mt,!0)),NRe(g.bgColor,"ansi256",()=>PRe(CNt,"ansi256",_mt,!0)),NRe(g.bgColor,"ansi16m",()=>PRe(ENt,"rgb",DNt,!0)),g}Object.defineProperty(SNt,"exports",{enumerable:!0,get:MVt})});var FNt=Pm((Zlr,wNt)=>{"use strict";var WZe=pNt(),jVt=cmt(),QVt=kNt(),tDt=new Set(["\x1B","\x9B"]),UVt=39,TNt=d=>`${tDt.values().next().value}[${d}m`,JVt=d=>d.split(" ").map(g=>WZe(g)),eDt=(d,g,y)=>{let b=[...g],D=!1,S=WZe(jVt(d[d.length-1]));for(let[E,I]of b.entries()){let N=WZe(I);if(S+N<=y?d[d.length-1]+=I:(d.push(I),S=0),tDt.has(I))D=!0;else if(D&&I==="m"){D=!1;continue}D||(S+=N,S===y&&E<b.length-1&&(d.push(""),S=0))}!S&&d[d.length-1].length>0&&d.length>1&&(d[d.length-2]+=d.pop())},$Vt=d=>{let g=d.split(" "),y=g.length;for(;y>0&&!(WZe(g[y-1])>0);)y--;return y===g.length?d:g.slice(0,y).join(" ")+g.slice(y).join("")},zVt=(d,g,y={})=>{if(y.trim!==!1&&d.trim()==="")return"";let b="",D="",S,E=JVt(d),I=[""];for(let[N,O]of d.split(" ").entries()){y.trim!==!1&&(I[I.length-1]=I[I.length-1].trimLeft());let R=WZe(I[I.length-1]);if(N!==0&&(R>=g&&(y.wordWrap===!1||y.trim===!1)&&(I.push(""),R=0),(R>0||y.trim===!1)&&(I[I.length-1]+=" ",R++)),y.hard&&E[N]>g){let j=g-R,Q=1+Math.floor((E[N]-j-1)/g);Math.floor((E[N]-1)/g)<Q&&I.push(""),eDt(I,O,g);continue}if(R+E[N]>g&&R>0&&E[N]>0){if(y.wordWrap===!1&&R<g){eDt(I,O,g);continue}I.push("")}if(R+E[N]>g&&y.wordWrap===!1){eDt(I,O,g);continue}I[I.length-1]+=O}y.trim!==!1&&(I=I.map($Vt)),b=I.join(`
2104
2104
  `);for(let[N,O]of[...b].entries()){if(D+=O,tDt.has(O)){let j=parseFloat(/\d[^m]*/.exec(b.slice(N,N+4)));S=j===UVt?null:j}let R=QVt.codes.get(Number(S));S&&R&&(b[N+1]===`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wengine-ai/claude-code-router",
3
- "version": "2.0.28",
3
+ "version": "2.0.29",
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",