@hafez/claude-code-router 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -2
- package/README_zh.md +2 -2
- package/dist/cli.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,7 +40,7 @@ npm install -g @anthropic-ai/claude-code
|
|
|
40
40
|
Then, install Claude Code Router:
|
|
41
41
|
|
|
42
42
|
```shell
|
|
43
|
-
npm install -g @
|
|
43
|
+
npm install -g @hafez/claude-code-router
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
### 2. Configuration
|
|
@@ -319,6 +319,63 @@ The `activate` command sets the following environment variables:
|
|
|
319
319
|
|
|
320
320
|
> **Note**: Make sure the Claude Code Router service is running (`ccr start`) before using the activated environment variables. The environment variables are only valid for the current shell session. To make them persistent, you can add `eval "$(ccr activate)"` to your shell configuration file (e.g., `~/.zshrc` or `~/.bashrc`).
|
|
321
321
|
|
|
322
|
+
### 8. OpenAI Codex Authentication (ChatGPT Plus/Pro)
|
|
323
|
+
|
|
324
|
+
If you have a ChatGPT Plus or Pro subscription, you can route requests through the OpenAI Codex API using OAuth, without needing a separate API key or local proxy.
|
|
325
|
+
|
|
326
|
+
#### Login
|
|
327
|
+
|
|
328
|
+
```shell
|
|
329
|
+
ccr auth login
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
Select "OpenAI Codex (ChatGPT Plus/Pro)", then follow the device authorization flow:
|
|
333
|
+
1. Visit the URL shown in the terminal
|
|
334
|
+
2. Enter the code displayed
|
|
335
|
+
3. Authorize the application in your browser
|
|
336
|
+
|
|
337
|
+
#### Check Status
|
|
338
|
+
|
|
339
|
+
```shell
|
|
340
|
+
ccr auth status
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
Shows stored credentials, expiry time, and account ID.
|
|
344
|
+
|
|
345
|
+
#### Configuration
|
|
346
|
+
|
|
347
|
+
After logging in, configure your provider in `~/.claude-code-router/config.json`:
|
|
348
|
+
|
|
349
|
+
```json
|
|
350
|
+
{
|
|
351
|
+
"Providers": [
|
|
352
|
+
{
|
|
353
|
+
"name": "openai-codex",
|
|
354
|
+
"api_base_url": "https://chatgpt.com/backend-api/codex/responses",
|
|
355
|
+
"api_key": "",
|
|
356
|
+
"models": ["gpt-5.3-codex", "gpt-5.1-codex", "gpt-5.2-codex"],
|
|
357
|
+
"transformer": {
|
|
358
|
+
"use": ["openai-responses", "openai-codex"]
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
],
|
|
362
|
+
"Router": {
|
|
363
|
+
"default": "openai-codex,gpt-5.3-codex"
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
The `openai-codex` transformer handles OAuth token management automatically, including token refresh when credentials are about to expire. The `openai-responses` transformer converts between the Anthropic Messages format and the OpenAI Responses API format. Transformer order matters: `openai-responses` must come before `openai-codex`.
|
|
369
|
+
|
|
370
|
+
#### Other Auth Commands
|
|
371
|
+
|
|
372
|
+
```shell
|
|
373
|
+
ccr auth logout # Remove stored credentials
|
|
374
|
+
ccr auth list # List all stored credentials
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Credentials are stored in `~/.claude-code-router/auth.json` with restricted file permissions.
|
|
378
|
+
|
|
322
379
|
#### Providers
|
|
323
380
|
|
|
324
381
|
The `Providers` array is where you define the different model providers you want to use. Each provider object requires:
|
|
@@ -416,6 +473,8 @@ Transformers allow you to modify the request and response payloads to ensure com
|
|
|
416
473
|
- `vertex-gemini`: Handles the Gemini API using Vertex authentication.
|
|
417
474
|
- `chutes-glm` Unofficial support for GLM 4.5 model via Chutes [chutes-glm-transformer.js](https://gist.github.com/vitobotta/2be3f33722e05e8d4f9d2b0138b8c863).
|
|
418
475
|
- `qwen-cli` (experimental): Unofficial support for qwen3-coder-plus model via Qwen CLI [qwen-cli.js](https://gist.github.com/musistudio/f5a67841ced39912fd99e42200d5ca8b).
|
|
476
|
+
- `openai-codex`: Authenticates with OpenAI Codex API using OAuth (ChatGPT Plus/Pro). Handles token management and refresh. Use with `openai-responses` transformer. See [OpenAI Codex Authentication](#8-openai-codex-authentication-chatgpt-pluspro).
|
|
477
|
+
- `openai-responses`: Converts between Anthropic Messages format and OpenAI Responses API format. Required when using the Codex API or any OpenAI Responses API endpoint.
|
|
419
478
|
- `rovo-cli` (experimental): Unofficial support for gpt-5 via Atlassian Rovo Dev CLI [rovo-cli.js](https://gist.github.com/SaseQ/c2a20a38b11276537ec5332d1f7a5e53).
|
|
420
479
|
|
|
421
480
|
**Custom Transformers:**
|
|
@@ -554,7 +613,7 @@ jobs:
|
|
|
554
613
|
|
|
555
614
|
- name: Start Claude Code Router
|
|
556
615
|
run: |
|
|
557
|
-
nohup ~/.bun/bin/bunx @
|
|
616
|
+
nohup ~/.bun/bin/bunx @hafez/claude-code-router@1.0.8 start &
|
|
558
617
|
shell: bash
|
|
559
618
|
|
|
560
619
|
- name: Run Claude Code
|
package/README_zh.md
CHANGED
|
@@ -39,7 +39,7 @@ npm install -g @anthropic-ai/claude-code
|
|
|
39
39
|
然后,安装 Claude Code Router:
|
|
40
40
|
|
|
41
41
|
```shell
|
|
42
|
-
npm install -g @
|
|
42
|
+
npm install -g @hafez/claude-code-router
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
### 2. 配置
|
|
@@ -527,7 +527,7 @@ jobs:
|
|
|
527
527
|
|
|
528
528
|
- name: Start Claude Code Router
|
|
529
529
|
run: |
|
|
530
|
-
nohup ~/.bun/bin/bunx @
|
|
530
|
+
nohup ~/.bun/bin/bunx @hafez/claude-code-router@1.0.8 start &
|
|
531
531
|
shell: bash
|
|
532
532
|
|
|
533
533
|
- name: Run Claude Code
|
package/dist/cli.js
CHANGED
|
@@ -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 @
|
|
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.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
|
+
"version": "2.0.1",
|
|
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",
|