tako-cli 0.2.18 → 0.2.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +108 -108
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,61 +1,61 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var TS=Object.create;var{getPrototypeOf:zS,defineProperty:M$,getOwnPropertyNames:c1,getOwnPropertyDescriptor:IS}=Object,D1=Object.prototype.hasOwnProperty;function l1($){return this[$]}var NS,WS,U$=($,S,E)=>{var Y=$!=null&&typeof $==="object";if(Y){var O=S?NS??=new WeakMap:WS??=new WeakMap,x=O.get($);if(x)return x}E=$!=null?TS(zS($)):{};let H=S||!$||!$.__esModule?M$(E,"default",{value:$,enumerable:!0}):E;for(let R of c1($))if(!D1.call(H,R))M$(H,R,{get:l1.bind($,R),enumerable:!0});if(Y)O.set($,H);return H},LS=($)=>{var S=(d1??=new WeakMap).get($),E;if(S)return S;if(S=M$({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var Y of c1($))if(!D1.call(S,Y))M$(S,Y,{get:l1.bind($,Y),enumerable:!(E=IS($,Y))||E.enumerable})}return d1.set($,S),S},d1,p1=($,S)=>()=>(S||$((S={exports:{}}).exports,S),S.exports);var XS=($)=>$;function US($,S){this[$]=XS.bind(null,S)}var VS=($,S)=>{for(var E in S)M$($,E,{get:S[E],enumerable:!0,configurable:!0,set:US.bind(S,E)})};var BS=($,S)=>()=>($&&(S=$($=0)),S);var K=import.meta.require;var S1=p1((b3,$0)=>{var $1={to($,S){if(!S)return`\x1B[${$+1}G`;return`\x1B[${S+1};${$+1}H`},move($,S){let E="";if($<0)E+=`\x1B[${-$}D`;else if($>0)E+=`\x1B[${$}C`;if(S<0)E+=`\x1B[${-S}A`;else if(S>0)E+=`\x1B[${S}B`;return E},up:($=1)=>`\x1B[${$}A`,down:($=1)=>`\x1B[${$}B`,forward:($=1)=>`\x1B[${$}C`,backward:($=1)=>`\x1B[${$}D`,nextLine:($=1)=>"\x1B[E".repeat($),prevLine:($=1)=>"\x1B[F".repeat($),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},KS={up:($=1)=>"\x1B[S".repeat($),down:($=1)=>"\x1B[T".repeat($)},CS={screen:"\x1B[2J",up:($=1)=>"\x1B[1J".repeat($),down:($=1)=>"\x1B[J".repeat($),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines($){let S="";for(let E=0;E<$;E++)S+=this.line+(E<$-1?$1.up():"");if($)S+=$1.left;return S}};$0.exports={cursor:$1,scroll:KS,erase:CS,beep:"\x07"}});var E1=p1((v3,H1)=>{var K$=process||{},S0=K$.argv||[],h$=K$.env||{},mS=!(!!h$.NO_COLOR||S0.includes("--no-color"))&&(!!h$.FORCE_COLOR||S0.includes("--color")||K$.platform==="win32"||(K$.stdout||{}).isTTY&&h$.TERM!=="dumb"||!!h$.CI),yS=($,S,E=$)=>(Y)=>{let O=""+Y,x=O.indexOf(S,$.length);return~x?$+fS(O,S,E,x)+S:$+O+S},fS=($,S,E,Y)=>{let O="",x=0;do O+=$.substring(x,Y)+E,x=Y+S.length,Y=$.indexOf(S,x);while(~Y);return O+$.substring(x)},H0=($=mS)=>{let S=$?yS:()=>String;return{isColorSupported:$,reset:S("\x1B[0m","\x1B[0m"),bold:S("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:S("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:S("\x1B[3m","\x1B[23m"),underline:S("\x1B[4m","\x1B[24m"),inverse:S("\x1B[7m","\x1B[27m"),hidden:S("\x1B[8m","\x1B[28m"),strikethrough:S("\x1B[9m","\x1B[29m"),black:S("\x1B[30m","\x1B[39m"),red:S("\x1B[31m","\x1B[39m"),green:S("\x1B[32m","\x1B[39m"),yellow:S("\x1B[33m","\x1B[39m"),blue:S("\x1B[34m","\x1B[39m"),magenta:S("\x1B[35m","\x1B[39m"),cyan:S("\x1B[36m","\x1B[39m"),white:S("\x1B[37m","\x1B[39m"),gray:S("\x1B[90m","\x1B[39m"),bgBlack:S("\x1B[40m","\x1B[49m"),bgRed:S("\x1B[41m","\x1B[49m"),bgGreen:S("\x1B[42m","\x1B[49m"),bgYellow:S("\x1B[43m","\x1B[49m"),bgBlue:S("\x1B[44m","\x1B[49m"),bgMagenta:S("\x1B[45m","\x1B[49m"),bgCyan:S("\x1B[46m","\x1B[49m"),bgWhite:S("\x1B[47m","\x1B[49m"),blackBright:S("\x1B[90m","\x1B[39m"),redBright:S("\x1B[91m","\x1B[39m"),greenBright:S("\x1B[92m","\x1B[39m"),yellowBright:S("\x1B[93m","\x1B[39m"),blueBright:S("\x1B[94m","\x1B[39m"),magentaBright:S("\x1B[95m","\x1B[39m"),cyanBright:S("\x1B[96m","\x1B[39m"),whiteBright:S("\x1B[97m","\x1B[39m"),bgBlackBright:S("\x1B[100m","\x1B[49m"),bgRedBright:S("\x1B[101m","\x1B[49m"),bgGreenBright:S("\x1B[102m","\x1B[49m"),bgYellowBright:S("\x1B[103m","\x1B[49m"),bgBlueBright:S("\x1B[104m","\x1B[49m"),bgMagentaBright:S("\x1B[105m","\x1B[49m"),bgCyanBright:S("\x1B[106m","\x1B[49m"),bgWhiteBright:S("\x1B[107m","\x1B[49m")}};H1.exports=H0();H1.exports.createColors=H0});var K0={};VS(K0,{t:()=>v,setLocale:()=>Z1,getLocale:()=>q$,detectLocale:()=>s,clearLocaleOverride:()=>J2});function s(){if(_$)return _$;let $=process.env.LANG||process.env.LANGUAGE||process.env.LC_ALL||"";if($.toLowerCase().includes("zh")||$.toLowerCase().includes("chinese"))return"zh";try{if(Intl.DateTimeFormat().resolvedOptions().locale.toLowerCase().startsWith("zh"))return"zh"}catch{}return"zh"}function Z1($){_$=$}function J2(){_$=null}function v($,S){let E=s(),Y=$.split("."),O=T2;for(let H of Y)if(O=O?.[H],!O)return $;let x=O[E]||O.en||$;if(S)for(let[H,R]of Object.entries(S))x=x.replace(`{${H}}`,String(R));return x}function q$(){return s()}var _$=null,T2;var h=BS(()=>{T2={launcher:{starting:{en:"Starting {client}...",zh:"\u6B63\u5728\u542F\u52A8 {client}..."},directoryNotFound:{en:"Directory not found: {path}",zh:"\u76EE\u5F55\u4E0D\u5B58\u5728\uFF1A{path}"},apiKeyNotConfigured:{en:"API Key not configured",zh:"API Key \u672A\u914D\u7F6E"},error:{en:"Error: {message}",zh:"\u9519\u8BEF\uFF1A{message}"}},menu:{selectAction:{en:"Select an action:",zh:"\u8BF7\u9009\u62E9\u64CD\u4F5C\uFF1A"},launchClient:{en:"Launch {client}",zh:"\u542F\u52A8 {client}"},advanced:{en:"Advanced",zh:"\u9AD8\u7EA7"},advancedHint:{en:"Usage stats, configuration, etc.",zh:"\u7528\u91CF\u7EDF\u8BA1\u3001\u914D\u7F6E\u7B49"},exit:{en:"Exit",zh:"\u9000\u51FA"},advancedOptions:{en:"Advanced Options:",zh:"\u9AD8\u7EA7\u9009\u9879\uFF1A"},viewStats:{en:"View Usage Statistics",zh:"\u67E5\u770B\u7528\u91CF\u7EDF\u8BA1"},configApiKey:{en:"Configure API Key",zh:"\u914D\u7F6E API Key"},back:{en:"Back",zh:"\u8FD4\u56DE"},changeLanguage:{en:"Change Language",zh:"\u5207\u6362\u8BED\u8A00"},currentLanguage:{en:"Current Language: {lang}",zh:"\u5F53\u524D\u8BED\u8A00\uFF1A{lang}"},languageChanged:{en:"Language changed to {lang}",zh:"\u8BED\u8A00\u5DF2\u5207\u6362\u4E3A {lang}"},selectOptions:{en:"Select launch options (Space to toggle, Enter to confirm):",zh:"\u9009\u62E9\u542F\u52A8\u9009\u9879\uFF08\u7A7A\u683C\u5207\u6362\uFF0C\u56DE\u8F66\u786E\u8BA4\uFF09\uFF1A"},resetOptions:{en:"Reset Launch Options",zh:"\u91CD\u7F6E\u542F\u52A8\u9009\u9879"},optionsReset:{en:"Launch options have been reset. You will be prompted again next time.",zh:"\u542F\u52A8\u9009\u9879\u5DF2\u91CD\u7F6E\uFF0C\u4E0B\u6B21\u542F\u52A8\u65F6\u5C06\u91CD\u65B0\u9009\u62E9\u3002"}},language:{en:{en:"English",zh:"\u82F1\u8BED"},zh:{en:"Chinese",zh:"\u4E2D\u6587"}},banner:{welcome:{en:"Welcome!",zh:"\u6B22\u8FCE\u4F7F\u7528\uFF01"}},stats:{title:{en:"\uD83D\uDCCA Usage Statistics",zh:"\uD83D\uDCCA \u7528\u91CF\u7EDF\u8BA1"},totalRequests:{en:"Total Requests: {count} times",zh:"\u603B\u8C03\u7528\u6B21\u6570\uFF1A{count} \u6B21"},totalCost:{en:"Total Cost: {cost}",zh:"\u603B\u6D88\u8D39\uFF1A{cost}"},todayCost:{en:"Today's Cost: {cost}",zh:"\u4ECA\u65E5\u6D88\u8D39\uFF1A{cost}"},modelDistribution:{en:"Model Usage Distribution (Today):",zh:"\u6A21\u578B\u4F7F\u7528\u5206\u5E03\uFF08\u4ECA\u65E5\uFF09\uFF1A"},times:{en:"times",zh:"\u6B21"},refreshHint:{en:"{countdown}s until refresh | Press any key to return",zh:"{countdown}s \u540E\u5237\u65B0 | \u6309\u4EFB\u610F\u952E\u8FD4\u56DE"},fetching:{en:"Fetching usage statistics...",zh:"\u83B7\u53D6\u7528\u91CF\u7EDF\u8BA1..."},fetchFailed:{en:"Failed to fetch: {error}",zh:"\u83B7\u53D6\u5931\u8D25\uFF1A{error}"}},prompts:{enterApiKey:{en:"Please enter your API Key:",zh:"\u8BF7\u8F93\u5165\u60A8\u7684 API Key\uFF1A"},apiKeyPlaceholder:{en:"cr_xxxxxxxx",zh:"cr_xxxxxxxx"},validating:{en:"Validating API Key...",zh:"\u6B63\u5728\u9A8C\u8BC1 API Key..."},keyInvalidFormat:{en:"Invalid format, must start with cr_",zh:"\u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u5FC5\u987B\u4EE5 cr_ \u5F00\u5934"},keyValidationFailed:{en:"Validation failed: {error}",zh:"\u9A8C\u8BC1\u5931\u8D25\uFF1A{error}"},keyConfigured:{en:"API Key configured successfully!",zh:"API Key \u914D\u7F6E\u6210\u529F\uFF01"}},cli:{version:{en:"Tako CLI v{version}",zh:"Tako CLI v{version}"},usage:{en:"Usage: tako [options] [command]",zh:"\u7528\u6CD5\uFF1Atako [\u9009\u9879] [\u547D\u4EE4]"},options:{en:"Options:",zh:"\u9009\u9879\uFF1A"},optionVersion:{en:" -v, --version Display version number",zh:" -v, --version \u663E\u793A\u7248\u672C\u53F7"},optionHelp:{en:" -h, --help Display help information",zh:" -h, --help \u663E\u793A\u5E2E\u52A9\u4FE1\u606F"},shortcuts:{en:"Shortcuts:",zh:"\u5FEB\u6377\u547D\u4EE4\uFF1A"},shortcutClaude:{en:" --claude Launch Claude Code directly",zh:" --claude \u76F4\u63A5\u542F\u52A8 Claude Code"},shortcutCodex:{en:" --codex Launch Codex directly",zh:" --codex \u76F4\u63A5\u542F\u52A8 Codex"},shortcutGemini:{en:" --gemini Launch Gemini CLI directly",zh:" --gemini \u76F4\u63A5\u542F\u52A8 Gemini CLI"},examples:{en:"Examples:",zh:"\u793A\u4F8B\uFF1A"},exampleInteractive:{en:" tako Interactive tool selection",zh:" tako \u4EA4\u4E92\u5F0F\u9009\u62E9\u5DE5\u5177"},exampleClaude:{en:" tako --claude Launch Claude Code directly",zh:" tako --claude \u76F4\u63A5\u542F\u52A8 Claude Code"},exampleCodex:{en:" tako --codex Launch Codex directly",zh:" tako --codex \u76F4\u63A5\u542F\u52A8 Codex"},exampleGemini:{en:" tako --gemini Launch Gemini CLI directly",zh:" tako --gemini \u76F4\u63A5\u542F\u52A8 Gemini CLI"},clientNotFound:{en:"{client} client not found",zh:"{client} \u5BA2\u6237\u7AEF\u672A\u627E\u5230"},cliError:{en:"Tako CLI encountered an error:",zh:"Tako CLI \u53D1\u751F\u9519\u8BEF\uFF1A"},launchFailed:{en:"Launch failed",zh:"\u542F\u52A8\u5931\u8D25"}},auth:{invalidFormat:{en:"Invalid format, must start with cr_",zh:"\u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u5FC5\u987B\u4EE5 cr_ \u5F00\u5934"},validationFailed:{en:"Validation failed",zh:"\u9A8C\u8BC1\u5931\u8D25"},networkError:{en:"Network request failed",zh:"\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25"}},updater:{migrating:{en:"Detected old installation, migrating...",zh:"\u68C0\u6D4B\u5230\u65E7\u7248\u5B89\u88C5\u65B9\u5F0F\uFF0C\u6B63\u5728\u8FC1\u79FB..."},installingLocally:{en:"Installing to local directory...",zh:"\u6B63\u5728\u5B89\u88C5\u5230\u672C\u5730\u76EE\u5F55..."},migrationFailed:{en:"Local installation failed, skipping migration",zh:"\u672C\u5730\u5B89\u88C5\u5931\u8D25\uFF0C\u8DF3\u8FC7\u8FC1\u79FB"},installComplete:{en:"Local installation complete",zh:"\u672C\u5730\u5B89\u88C5\u5B8C\u6210"},migrationComplete:{en:"Detected old installation, migration complete. Please restart Tako CLI",zh:"\u68C0\u6D4B\u5230\u65E7\u7248\u5B89\u88C5\uFF0C\u5DF2\u5B8C\u6210\u8FC1\u79FB\uFF0C\u8BF7\u91CD\u65B0\u542F\u52A8 Tako CLI"},newVersionAvailable:{en:"New version v{version} available (current v{current})",zh:"\u53D1\u73B0\u65B0\u7248\u672C v{version}\uFF08\u5F53\u524D v{current}\uFF09"},pleaseRestart:{en:"Please restart Tako CLI to use the new version",zh:"\u8BF7\u91CD\u65B0\u542F\u52A8 Tako CLI \u4EE5\u4F7F\u7528\u65B0\u7248\u672C"}},region:{usingChinaMirror:{en:"Detected China mainland network, using domestic mirror",zh:"\u68C0\u6D4B\u5230\u4E2D\u56FD\u5927\u9646\u7F51\u7EDC\uFF0C\u4F7F\u7528\u56FD\u5185\u955C\u50CF\u6E90"},usingGlobalMirror:{en:"Using global mirror",zh:"\u4F7F\u7528\u56FD\u9645\u6E90"}},telemetry:{toggle:{en:"Toggle Telemetry",zh:"\u5207\u6362\u9065\u6D4B"},enabled:{en:"Telemetry is enabled",zh:"\u9065\u6D4B\u5DF2\u5F00\u542F"},disabled:{en:"Telemetry is disabled",zh:"\u9065\u6D4B\u5DF2\u5173\u95ED"},description:{en:"Anonymous usage data helps us improve Tako CLI",zh:"\u533F\u540D\u4F7F\u7528\u6570\u636E\u5E2E\u52A9\u6211\u4EEC\u6539\u8FDB Tako CLI"}},time:{justNow:{en:"just now",zh:"\u521A\u521A"},minutesAgo:{en:"{n}m ago",zh:"{n}\u5206\u949F\u524D"},hoursAgo:{en:"{n}h ago",zh:"{n}\u5C0F\u65F6\u524D"},yesterday:{en:"yesterday",zh:"\u6628\u5929"},daysAgo:{en:"{n}d ago",zh:"{n}\u5929\u524D"},weeksAgo:{en:"{n}w ago",zh:"{n}\u5468\u524D"},monthsAgo:{en:"{n}mo ago",zh:"{n}\u6708\u524D"}},claudeCode:{settingsDetected:{en:`Detected hardcoded config in Claude Code settings that conflicts with Tako:
|
|
3
|
+
var N2=Object.create;var{getPrototypeOf:U2,defineProperty:z$,getOwnPropertyNames:l1,getOwnPropertyDescriptor:B2}=Object,o1=Object.prototype.hasOwnProperty;function a1($){return this[$]}var A2,V2,V$=($,S,Y)=>{var E=$!=null&&typeof $==="object";if(E){var O=S?A2??=new WeakMap:V2??=new WeakMap,x=O.get($);if(x)return x}Y=$!=null?N2(U2($)):{};let H=S||!$||!$.__esModule?z$(Y,"default",{value:$,enumerable:!0}):Y;for(let q of l1($))if(!o1.call(H,q))z$(H,q,{get:a1.bind($,q),enumerable:!0});if(E)O.set($,H);return H},h2=($)=>{var S=(p1??=new WeakMap).get($),Y;if(S)return S;if(S=z$({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var E of l1($))if(!o1.call(S,E))z$(S,E,{get:a1.bind($,E),enumerable:!(Y=B2($,E))||Y.enumerable})}return p1.set($,S),S},p1,i1=($,S)=>()=>(S||$((S={exports:{}}).exports,S),S.exports);var K2=($)=>$;function C2($,S){this[$]=K2.bind(null,S)}var m2=($,S)=>{for(var Y in S)z$($,Y,{get:S[Y],enumerable:!0,configurable:!0,set:C2.bind(S,Y)})};var y2=($,S)=>()=>($&&(S=$($=0)),S);var K=import.meta.require;var Y1=i1((W3,Y0)=>{var H1={to($,S){if(!S)return`\x1B[${$+1}G`;return`\x1B[${S+1};${$+1}H`},move($,S){let Y="";if($<0)Y+=`\x1B[${-$}D`;else if($>0)Y+=`\x1B[${$}C`;if(S<0)Y+=`\x1B[${-S}A`;else if(S>0)Y+=`\x1B[${S}B`;return Y},up:($=1)=>`\x1B[${$}A`,down:($=1)=>`\x1B[${$}B`,forward:($=1)=>`\x1B[${$}C`,backward:($=1)=>`\x1B[${$}D`,nextLine:($=1)=>"\x1B[E".repeat($),prevLine:($=1)=>"\x1B[F".repeat($),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},_2={up:($=1)=>"\x1B[S".repeat($),down:($=1)=>"\x1B[T".repeat($)},P2={screen:"\x1B[2J",up:($=1)=>"\x1B[1J".repeat($),down:($=1)=>"\x1B[J".repeat($),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines($){let S="";for(let Y=0;Y<$;Y++)S+=this.line+(Y<$-1?H1.up():"");if($)S+=H1.left;return S}};Y0.exports={cursor:H1,scroll:_2,erase:P2,beep:"\x07"}});var O1=i1((T3,E1)=>{var y$=process||{},E0=y$.argv||[],m$=y$.env||{},F2=!(!!m$.NO_COLOR||E0.includes("--no-color"))&&(!!m$.FORCE_COLOR||E0.includes("--color")||y$.platform==="win32"||(y$.stdout||{}).isTTY&&m$.TERM!=="dumb"||!!m$.CI),k2=($,S,Y=$)=>(E)=>{let O=""+E,x=O.indexOf(S,$.length);return~x?$+u2(O,S,Y,x)+S:$+O+S},u2=($,S,Y,E)=>{let O="",x=0;do O+=$.substring(x,E)+Y,x=E+S.length,E=$.indexOf(S,x);while(~E);return O+$.substring(x)},O0=($=F2)=>{let S=$?k2:()=>String;return{isColorSupported:$,reset:S("\x1B[0m","\x1B[0m"),bold:S("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:S("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:S("\x1B[3m","\x1B[23m"),underline:S("\x1B[4m","\x1B[24m"),inverse:S("\x1B[7m","\x1B[27m"),hidden:S("\x1B[8m","\x1B[28m"),strikethrough:S("\x1B[9m","\x1B[29m"),black:S("\x1B[30m","\x1B[39m"),red:S("\x1B[31m","\x1B[39m"),green:S("\x1B[32m","\x1B[39m"),yellow:S("\x1B[33m","\x1B[39m"),blue:S("\x1B[34m","\x1B[39m"),magenta:S("\x1B[35m","\x1B[39m"),cyan:S("\x1B[36m","\x1B[39m"),white:S("\x1B[37m","\x1B[39m"),gray:S("\x1B[90m","\x1B[39m"),bgBlack:S("\x1B[40m","\x1B[49m"),bgRed:S("\x1B[41m","\x1B[49m"),bgGreen:S("\x1B[42m","\x1B[49m"),bgYellow:S("\x1B[43m","\x1B[49m"),bgBlue:S("\x1B[44m","\x1B[49m"),bgMagenta:S("\x1B[45m","\x1B[49m"),bgCyan:S("\x1B[46m","\x1B[49m"),bgWhite:S("\x1B[47m","\x1B[49m"),blackBright:S("\x1B[90m","\x1B[39m"),redBright:S("\x1B[91m","\x1B[39m"),greenBright:S("\x1B[92m","\x1B[39m"),yellowBright:S("\x1B[93m","\x1B[39m"),blueBright:S("\x1B[94m","\x1B[39m"),magentaBright:S("\x1B[95m","\x1B[39m"),cyanBright:S("\x1B[96m","\x1B[39m"),whiteBright:S("\x1B[97m","\x1B[39m"),bgBlackBright:S("\x1B[100m","\x1B[49m"),bgRedBright:S("\x1B[101m","\x1B[49m"),bgGreenBright:S("\x1B[102m","\x1B[49m"),bgYellowBright:S("\x1B[103m","\x1B[49m"),bgBlueBright:S("\x1B[104m","\x1B[49m"),bgMagentaBright:S("\x1B[105m","\x1B[49m"),bgCyanBright:S("\x1B[106m","\x1B[49m"),bgWhiteBright:S("\x1B[107m","\x1B[49m")}};E1.exports=O0();E1.exports.createColors=O0});var y0={};m2(y0,{t:()=>w,setLocale:()=>J1,getLocale:()=>M$,detectLocale:()=>H$,clearLocaleOverride:()=>LS});function H$(){if(F$)return F$;let $=process.env.LANG||process.env.LANGUAGE||process.env.LC_ALL||"";if($.toLowerCase().includes("zh")||$.toLowerCase().includes("chinese"))return"zh";try{if(Intl.DateTimeFormat().resolvedOptions().locale.toLowerCase().startsWith("zh"))return"zh"}catch{}return"zh"}function J1($){F$=$}function LS(){F$=null}function w($,S){let Y=H$(),E=$.split("."),O=NS;for(let H of E)if(O=O?.[H],!O)return $;let x=O[Y]||O.en||$;if(S)for(let[H,q]of Object.entries(S))x=x.replace(`{${H}}`,String(q));return x}function M$(){return H$()}var F$=null,NS;var h=y2(()=>{NS={launcher:{starting:{en:"Starting {client}...",zh:"\u6B63\u5728\u542F\u52A8 {client}..."},directoryNotFound:{en:"Directory not found: {path}",zh:"\u76EE\u5F55\u4E0D\u5B58\u5728\uFF1A{path}"},apiKeyNotConfigured:{en:"API Key not configured",zh:"API Key \u672A\u914D\u7F6E"},error:{en:"Error: {message}",zh:"\u9519\u8BEF\uFF1A{message}"}},menu:{selectAction:{en:"Select an action:",zh:"\u8BF7\u9009\u62E9\u64CD\u4F5C\uFF1A"},launchClient:{en:"Launch {client}",zh:"\u542F\u52A8 {client}"},advanced:{en:"Advanced",zh:"\u9AD8\u7EA7"},advancedHint:{en:"Usage stats, configuration, etc.",zh:"\u7528\u91CF\u7EDF\u8BA1\u3001\u914D\u7F6E\u7B49"},exit:{en:"Exit",zh:"\u9000\u51FA"},advancedOptions:{en:"Advanced Options:",zh:"\u9AD8\u7EA7\u9009\u9879\uFF1A"},viewStats:{en:"View Usage Statistics",zh:"\u67E5\u770B\u7528\u91CF\u7EDF\u8BA1"},configApiKey:{en:"Configure API Key",zh:"\u914D\u7F6E API Key"},back:{en:"Back",zh:"\u8FD4\u56DE"},changeLanguage:{en:"Change Language",zh:"\u5207\u6362\u8BED\u8A00"},currentLanguage:{en:"Current Language: {lang}",zh:"\u5F53\u524D\u8BED\u8A00\uFF1A{lang}"},languageChanged:{en:"Language changed to {lang}",zh:"\u8BED\u8A00\u5DF2\u5207\u6362\u4E3A {lang}"},selectOptions:{en:"Select launch options (Space to toggle, Enter to confirm):",zh:"\u9009\u62E9\u542F\u52A8\u9009\u9879\uFF08\u7A7A\u683C\u5207\u6362\uFF0C\u56DE\u8F66\u786E\u8BA4\uFF09\uFF1A"},resetOptions:{en:"Reset Launch Options",zh:"\u91CD\u7F6E\u542F\u52A8\u9009\u9879"},optionsReset:{en:"Launch options have been reset. You will be prompted again next time.",zh:"\u542F\u52A8\u9009\u9879\u5DF2\u91CD\u7F6E\uFF0C\u4E0B\u6B21\u542F\u52A8\u65F6\u5C06\u91CD\u65B0\u9009\u62E9\u3002"}},language:{en:{en:"English",zh:"\u82F1\u8BED"},zh:{en:"Chinese",zh:"\u4E2D\u6587"}},banner:{welcome:{en:"Welcome!",zh:"\u6B22\u8FCE\u4F7F\u7528\uFF01"}},stats:{title:{en:"\uD83D\uDCCA Usage Statistics",zh:"\uD83D\uDCCA \u7528\u91CF\u7EDF\u8BA1"},totalRequests:{en:"Total Requests: {count} times",zh:"\u603B\u8C03\u7528\u6B21\u6570\uFF1A{count} \u6B21"},totalCost:{en:"Total Cost: {cost}",zh:"\u603B\u6D88\u8D39\uFF1A{cost}"},todayCost:{en:"Today's Cost: {cost}",zh:"\u4ECA\u65E5\u6D88\u8D39\uFF1A{cost}"},modelDistribution:{en:"Model Usage Distribution (Today):",zh:"\u6A21\u578B\u4F7F\u7528\u5206\u5E03\uFF08\u4ECA\u65E5\uFF09\uFF1A"},times:{en:"times",zh:"\u6B21"},refreshHint:{en:"{countdown}s until refresh | Press any key to return",zh:"{countdown}s \u540E\u5237\u65B0 | \u6309\u4EFB\u610F\u952E\u8FD4\u56DE"},fetching:{en:"Fetching usage statistics...",zh:"\u83B7\u53D6\u7528\u91CF\u7EDF\u8BA1..."},fetchFailed:{en:"Failed to fetch: {error}",zh:"\u83B7\u53D6\u5931\u8D25\uFF1A{error}"}},prompts:{enterApiKey:{en:"Please enter your API Key:",zh:"\u8BF7\u8F93\u5165\u60A8\u7684 API Key\uFF1A"},apiKeyPlaceholder:{en:"cr_xxxxxxxx",zh:"cr_xxxxxxxx"},validating:{en:"Validating API Key...",zh:"\u6B63\u5728\u9A8C\u8BC1 API Key..."},keyInvalidFormat:{en:"Invalid format, must start with cr_",zh:"\u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u5FC5\u987B\u4EE5 cr_ \u5F00\u5934"},keyValidationFailed:{en:"Validation failed: {error}",zh:"\u9A8C\u8BC1\u5931\u8D25\uFF1A{error}"},keyConfigured:{en:"API Key configured successfully!",zh:"API Key \u914D\u7F6E\u6210\u529F\uFF01"}},cli:{version:{en:"Tako CLI v{version}",zh:"Tako CLI v{version}"},usage:{en:"Usage: tako [options] [command]",zh:"\u7528\u6CD5\uFF1Atako [\u9009\u9879] [\u547D\u4EE4]"},options:{en:"Options:",zh:"\u9009\u9879\uFF1A"},optionVersion:{en:" -v, --version Display version number",zh:" -v, --version \u663E\u793A\u7248\u672C\u53F7"},optionHelp:{en:" -h, --help Display help information",zh:" -h, --help \u663E\u793A\u5E2E\u52A9\u4FE1\u606F"},shortcuts:{en:"Shortcuts:",zh:"\u5FEB\u6377\u547D\u4EE4\uFF1A"},shortcutClaude:{en:" --claude Launch Claude Code directly",zh:" --claude \u76F4\u63A5\u542F\u52A8 Claude Code"},shortcutCodex:{en:" --codex Launch Codex directly",zh:" --codex \u76F4\u63A5\u542F\u52A8 Codex"},shortcutGemini:{en:" --gemini Launch Gemini CLI directly",zh:" --gemini \u76F4\u63A5\u542F\u52A8 Gemini CLI"},examples:{en:"Examples:",zh:"\u793A\u4F8B\uFF1A"},exampleInteractive:{en:" tako Interactive tool selection",zh:" tako \u4EA4\u4E92\u5F0F\u9009\u62E9\u5DE5\u5177"},exampleClaude:{en:" tako --claude Launch Claude Code directly",zh:" tako --claude \u76F4\u63A5\u542F\u52A8 Claude Code"},exampleCodex:{en:" tako --codex Launch Codex directly",zh:" tako --codex \u76F4\u63A5\u542F\u52A8 Codex"},exampleGemini:{en:" tako --gemini Launch Gemini CLI directly",zh:" tako --gemini \u76F4\u63A5\u542F\u52A8 Gemini CLI"},clientNotFound:{en:"{client} client not found",zh:"{client} \u5BA2\u6237\u7AEF\u672A\u627E\u5230"},cliError:{en:"Tako CLI encountered an error:",zh:"Tako CLI \u53D1\u751F\u9519\u8BEF\uFF1A"},launchFailed:{en:"Launch failed",zh:"\u542F\u52A8\u5931\u8D25"}},auth:{invalidFormat:{en:"Invalid format, must start with cr_",zh:"\u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u5FC5\u987B\u4EE5 cr_ \u5F00\u5934"},validationFailed:{en:"Validation failed",zh:"\u9A8C\u8BC1\u5931\u8D25"},networkError:{en:"Network request failed",zh:"\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25"}},updater:{migrating:{en:"Detected old installation, migrating...",zh:"\u68C0\u6D4B\u5230\u65E7\u7248\u5B89\u88C5\u65B9\u5F0F\uFF0C\u6B63\u5728\u8FC1\u79FB..."},installingLocally:{en:"Installing to local directory...",zh:"\u6B63\u5728\u5B89\u88C5\u5230\u672C\u5730\u76EE\u5F55..."},migrationFailed:{en:"Local installation failed, skipping migration",zh:"\u672C\u5730\u5B89\u88C5\u5931\u8D25\uFF0C\u8DF3\u8FC7\u8FC1\u79FB"},installComplete:{en:"Local installation complete",zh:"\u672C\u5730\u5B89\u88C5\u5B8C\u6210"},migrationComplete:{en:"Detected old installation, migration complete. Please restart Tako CLI",zh:"\u68C0\u6D4B\u5230\u65E7\u7248\u5B89\u88C5\uFF0C\u5DF2\u5B8C\u6210\u8FC1\u79FB\uFF0C\u8BF7\u91CD\u65B0\u542F\u52A8 Tako CLI"},newVersionAvailable:{en:"New version v{version} available (current v{current})",zh:"\u53D1\u73B0\u65B0\u7248\u672C v{version}\uFF08\u5F53\u524D v{current}\uFF09"},pleaseRestart:{en:"Please restart Tako CLI to use the new version",zh:"\u8BF7\u91CD\u65B0\u542F\u52A8 Tako CLI \u4EE5\u4F7F\u7528\u65B0\u7248\u672C"}},region:{usingChinaMirror:{en:"Detected China mainland network, using domestic mirror",zh:"\u68C0\u6D4B\u5230\u4E2D\u56FD\u5927\u9646\u7F51\u7EDC\uFF0C\u4F7F\u7528\u56FD\u5185\u955C\u50CF\u6E90"},usingGlobalMirror:{en:"Using global mirror",zh:"\u4F7F\u7528\u56FD\u9645\u6E90"}},telemetry:{toggle:{en:"Toggle Telemetry",zh:"\u5207\u6362\u9065\u6D4B"},enabled:{en:"Telemetry is enabled",zh:"\u9065\u6D4B\u5DF2\u5F00\u542F"},disabled:{en:"Telemetry is disabled",zh:"\u9065\u6D4B\u5DF2\u5173\u95ED"},description:{en:"Anonymous usage data helps us improve Tako CLI",zh:"\u533F\u540D\u4F7F\u7528\u6570\u636E\u5E2E\u52A9\u6211\u4EEC\u6539\u8FDB Tako CLI"}},time:{justNow:{en:"just now",zh:"\u521A\u521A"},minutesAgo:{en:"{n}m ago",zh:"{n}\u5206\u949F\u524D"},hoursAgo:{en:"{n}h ago",zh:"{n}\u5C0F\u65F6\u524D"},yesterday:{en:"yesterday",zh:"\u6628\u5929"},daysAgo:{en:"{n}d ago",zh:"{n}\u5929\u524D"},weeksAgo:{en:"{n}w ago",zh:"{n}\u5468\u524D"},monthsAgo:{en:"{n}mo ago",zh:"{n}\u6708\u524D"}},claudeCode:{settingsDetected:{en:`Detected hardcoded config in Claude Code settings that conflicts with Tako:
|
|
4
4
|
{fields}`,zh:`\u68C0\u6D4B\u5230 Claude Code settings \u4E2D\u5B58\u5728\u4E0E Tako \u51B2\u7A81\u7684\u914D\u7F6E\uFF1A
|
|
5
|
-
{fields}`},confirmClean:{en:"Clean these settings? Tako will manage them automatically at launch",zh:"\u662F\u5426\u6E05\u7406\u8FD9\u4E9B\u914D\u7F6E\uFF1FTako \u542F\u52A8\u65F6\u4F1A\u81EA\u52A8\u6CE8\u5165\u6B63\u786E\u7684\u503C"},settingsCleaned:{en:"Settings cleaned, Tako will manage these configs automatically",zh:"\u5DF2\u6E05\u7406\u5B8C\u6210\uFF0CTako \u4F1A\u81EA\u52A8\u7BA1\u7406\u8FD9\u4E9B\u914D\u7F6E"},cleanSkipped:{en:"Skipped. Note: hardcoded settings may cause issues with Tako",zh:"\u5DF2\u8DF3\u8FC7\u3002\u6CE8\u610F\uFF1A\u5199\u6B7B\u7684\u914D\u7F6E\u53EF\u80FD\u5BFC\u81F4 Tako \u542F\u52A8\u5F02\u5E38"}},recentProjects:{title:{en:"Recent Projects",zh:"\u6700\u8FD1\u9879\u76EE"},launchInCurrent:{en:"Launch in current directory",zh:"\u5728\u5F53\u524D\u76EE\u5F55\u542F\u52A8"}}}});import{homedir as z2}from"os";import{join as I2}from"path";import{join as B$}from"path";import{homedir as AS}from"os";import{join as O$}from"path";var F=O$(AS(),".tako"),i1=O$(F,"config.json"),n$=O$(F,"tools"),k=O$(F,"cli"),p=O$(F,"bun"),C=O$(p,"bin",process.platform==="win32"?"bun.exe":"bun"),hS=process.env.TAKO_SERVER||"https://tako.shiroha.tech",c=process.env.PROXY_BASE_URL||"https://tako.shiroha.tech",Y3=process.env.TAKO_DEV==="true"||hS.includes("localhost"),o1={apiKey:"",apiId:"",installedClients:{}};async function a1(){let $=await import("fs/promises");try{await $.mkdir(F,{recursive:!0}),await $.mkdir(n$,{recursive:!0})}catch{}}async function U(){await a1();try{let $=Bun.file(i1);if(await $.exists()){let S=await $.json();return{...o1,...S}}}catch{}return{...o1}}async function s$($){await a1(),await Bun.write(i1,JSON.stringify($,null,2))}async function a($){let E={...await U(),...$};return await s$(E),E}async function r1(){return!!(await U()).apiKey}async function V$(){return(await U()).apiKey}async function n1(){return(await U()).apiId}function e$($,S){if(!$.startsWith(F))throw Error(`\u5B89\u5168\u68C0\u67E5\u5931\u8D25: ${S} \u8DEF\u5F84 "${$}" \u4E0D\u5728 Tako \u76EE\u5F55\u4E0B`)}function Q$($){let S=B$(n$,$);return e$(S,"\u5BA2\u6237\u7AEF\u5B89\u88C5\u76EE\u5F55"),S}async function s1($){let S=Q$($.id),E=B$(S,"node_modules",$.package,"package.json");try{let Y=Bun.file(E);if(!await Y.exists())return null;let x=(await Y.json()).bin;if(!x)return null;let H=null;if(typeof x==="string")H=x;else if(typeof x==="object"&&x[$.command])H=x[$.command];if(!H)return null;let R=B$(S,"node_modules",$.package,H);return e$(R,"\u5BA2\u6237\u7AEF\u5165\u53E3\u6587\u4EF6"),R}catch{return null}}function e1($){let S=Q$($.id),E=B$(S,"node_modules",".bin",$.command);return e$(E,"\u5BA2\u6237\u7AEF\u53EF\u6267\u884C\u6587\u4EF6"),E}var t$=new Map;function x$($){t$.set($.id,$)}function t1(){return Array.from(t$.values())}function A$($){return t$.get($)}var B=U$(S1(),1),m$=U$(E1(),1);import{stdin as M0,stdout as Q0}from"process";import*as o from"readline";import E0 from"readline";import{WriteStream as jS}from"tty";function _S({onlyFirst:$=!1}={}){let S=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(S,$?void 0:"g")}var PS=_S();function Z0($){if(typeof $!="string")throw TypeError(`Expected a \`string\`, got \`${typeof $}\``);return $.replace(PS,"")}function J0($){return $&&$.__esModule&&Object.prototype.hasOwnProperty.call($,"default")?$.default:$}var T0={exports:{}};(function($){var S={};$.exports=S,S.eastAsianWidth=function(Y){var O=Y.charCodeAt(0),x=Y.length==2?Y.charCodeAt(1):0,H=O;return 55296<=O&&O<=56319&&56320<=x&&x<=57343&&(O&=1023,x&=1023,H=O<<10|x,H+=65536),H==12288||65281<=H&&H<=65376||65504<=H&&H<=65510?"F":H==8361||65377<=H&&H<=65470||65474<=H&&H<=65479||65482<=H&&H<=65487||65490<=H&&H<=65495||65498<=H&&H<=65500||65512<=H&&H<=65518?"H":4352<=H&&H<=4447||4515<=H&&H<=4519||4602<=H&&H<=4607||9001<=H&&H<=9002||11904<=H&&H<=11929||11931<=H&&H<=12019||12032<=H&&H<=12245||12272<=H&&H<=12283||12289<=H&&H<=12350||12353<=H&&H<=12438||12441<=H&&H<=12543||12549<=H&&H<=12589||12593<=H&&H<=12686||12688<=H&&H<=12730||12736<=H&&H<=12771||12784<=H&&H<=12830||12832<=H&&H<=12871||12880<=H&&H<=13054||13056<=H&&H<=19903||19968<=H&&H<=42124||42128<=H&&H<=42182||43360<=H&&H<=43388||44032<=H&&H<=55203||55216<=H&&H<=55238||55243<=H&&H<=55291||63744<=H&&H<=64255||65040<=H&&H<=65049||65072<=H&&H<=65106||65108<=H&&H<=65126||65128<=H&&H<=65131||110592<=H&&H<=110593||127488<=H&&H<=127490||127504<=H&&H<=127546||127552<=H&&H<=127560||127568<=H&&H<=127569||131072<=H&&H<=194367||177984<=H&&H<=196605||196608<=H&&H<=262141?"W":32<=H&&H<=126||162<=H&&H<=163||165<=H&&H<=166||H==172||H==175||10214<=H&&H<=10221||10629<=H&&H<=10630?"Na":H==161||H==164||167<=H&&H<=168||H==170||173<=H&&H<=174||176<=H&&H<=180||182<=H&&H<=186||188<=H&&H<=191||H==198||H==208||215<=H&&H<=216||222<=H&&H<=225||H==230||232<=H&&H<=234||236<=H&&H<=237||H==240||242<=H&&H<=243||247<=H&&H<=250||H==252||H==254||H==257||H==273||H==275||H==283||294<=H&&H<=295||H==299||305<=H&&H<=307||H==312||319<=H&&H<=322||H==324||328<=H&&H<=331||H==333||338<=H&&H<=339||358<=H&&H<=359||H==363||H==462||H==464||H==466||H==468||H==470||H==472||H==474||H==476||H==593||H==609||H==708||H==711||713<=H&&H<=715||H==717||H==720||728<=H&&H<=731||H==733||H==735||768<=H&&H<=879||913<=H&&H<=929||931<=H&&H<=937||945<=H&&H<=961||963<=H&&H<=969||H==1025||1040<=H&&H<=1103||H==1105||H==8208||8211<=H&&H<=8214||8216<=H&&H<=8217||8220<=H&&H<=8221||8224<=H&&H<=8226||8228<=H&&H<=8231||H==8240||8242<=H&&H<=8243||H==8245||H==8251||H==8254||H==8308||H==8319||8321<=H&&H<=8324||H==8364||H==8451||H==8453||H==8457||H==8467||H==8470||8481<=H&&H<=8482||H==8486||H==8491||8531<=H&&H<=8532||8539<=H&&H<=8542||8544<=H&&H<=8555||8560<=H&&H<=8569||H==8585||8592<=H&&H<=8601||8632<=H&&H<=8633||H==8658||H==8660||H==8679||H==8704||8706<=H&&H<=8707||8711<=H&&H<=8712||H==8715||H==8719||H==8721||H==8725||H==8730||8733<=H&&H<=8736||H==8739||H==8741||8743<=H&&H<=8748||H==8750||8756<=H&&H<=8759||8764<=H&&H<=8765||H==8776||H==8780||H==8786||8800<=H&&H<=8801||8804<=H&&H<=8807||8810<=H&&H<=8811||8814<=H&&H<=8815||8834<=H&&H<=8835||8838<=H&&H<=8839||H==8853||H==8857||H==8869||H==8895||H==8978||9312<=H&&H<=9449||9451<=H&&H<=9547||9552<=H&&H<=9587||9600<=H&&H<=9615||9618<=H&&H<=9621||9632<=H&&H<=9633||9635<=H&&H<=9641||9650<=H&&H<=9651||9654<=H&&H<=9655||9660<=H&&H<=9661||9664<=H&&H<=9665||9670<=H&&H<=9672||H==9675||9678<=H&&H<=9681||9698<=H&&H<=9701||H==9711||9733<=H&&H<=9734||H==9737||9742<=H&&H<=9743||9748<=H&&H<=9749||H==9756||H==9758||H==9792||H==9794||9824<=H&&H<=9825||9827<=H&&H<=9829||9831<=H&&H<=9834||9836<=H&&H<=9837||H==9839||9886<=H&&H<=9887||9918<=H&&H<=9919||9924<=H&&H<=9933||9935<=H&&H<=9953||H==9955||9960<=H&&H<=9983||H==10045||H==10071||10102<=H&&H<=10111||11093<=H&&H<=11097||12872<=H&&H<=12879||57344<=H&&H<=63743||65024<=H&&H<=65039||H==65533||127232<=H&&H<=127242||127248<=H&&H<=127277||127280<=H&&H<=127337||127344<=H&&H<=127386||917760<=H&&H<=917999||983040<=H&&H<=1048573||1048576<=H&&H<=1114109?"A":"N"},S.characterLength=function(Y){var O=this.eastAsianWidth(Y);return O=="F"||O=="W"||O=="A"?2:1};function E(Y){return Y.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}S.length=function(Y){for(var O=E(Y),x=0,H=0;H<O.length;H++)x=x+this.characterLength(O[H]);return x},S.slice=function(Y,O,x){textLen=S.length(Y),O=O||0,x=x||1,O<0&&(O=textLen+O),x<0&&(x=textLen+x);for(var H="",R=0,q=E(Y),G=0;G<q.length;G++){var w=q[G],M=S.length(w);if(R>=O-(M==2?1:0))if(R+M<=x)H+=w;else break;R+=M}return H}})(T0);var FS=T0.exports,kS=J0(FS),gS=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\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])|\uD83C[\uDF3E\uDF73\uDF7C\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\uDF7C\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\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\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\uDF7C\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\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\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\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\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-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*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\u26A7\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-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\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[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},uS=J0(gS);function Z$($,S={}){if(typeof $!="string"||$.length===0||(S={ambiguousIsNarrow:!0,...S},$=Z0($),$.length===0))return 0;$=$.replace(uS()," ");let E=S.ambiguousIsNarrow?1:2,Y=0;for(let O of $){let x=O.codePointAt(0);if(x<=31||x>=127&&x<=159||x>=768&&x<=879)continue;switch(kS.eastAsianWidth(O)){case"F":case"W":Y+=2;break;case"A":Y+=E;break;default:Y+=1}}return Y}var Y1=10,Y0=($=0)=>(S)=>`\x1B[${S+$}m`,O0=($=0)=>(S)=>`\x1B[${38+$};5;${S}m`,x0=($=0)=>(S,E,Y)=>`\x1B[${38+$};2;${S};${E};${Y}m`,N={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],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],gray:[90,39],grey:[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],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(N.modifier);var dS=Object.keys(N.color),cS=Object.keys(N.bgColor);[...dS,...cS];function DS(){let $=new Map;for(let[S,E]of Object.entries(N)){for(let[Y,O]of Object.entries(E))N[Y]={open:`\x1B[${O[0]}m`,close:`\x1B[${O[1]}m`},E[Y]=N[Y],$.set(O[0],O[1]);Object.defineProperty(N,S,{value:E,enumerable:!1})}return Object.defineProperty(N,"codes",{value:$,enumerable:!1}),N.color.close="\x1B[39m",N.bgColor.close="\x1B[49m",N.color.ansi=Y0(),N.color.ansi256=O0(),N.color.ansi16m=x0(),N.bgColor.ansi=Y0(Y1),N.bgColor.ansi256=O0(Y1),N.bgColor.ansi16m=x0(Y1),Object.defineProperties(N,{rgbToAnsi256:{value:(S,E,Y)=>S===E&&E===Y?S<8?16:S>248?231:Math.round((S-8)/247*24)+232:16+36*Math.round(S/255*5)+6*Math.round(E/255*5)+Math.round(Y/255*5),enumerable:!1},hexToRgb:{value:(S)=>{let E=/[a-f\d]{6}|[a-f\d]{3}/i.exec(S.toString(16));if(!E)return[0,0,0];let[Y]=E;Y.length===3&&(Y=[...Y].map((x)=>x+x).join(""));let O=Number.parseInt(Y,16);return[O>>16&255,O>>8&255,O&255]},enumerable:!1},hexToAnsi256:{value:(S)=>N.rgbToAnsi256(...N.hexToRgb(S)),enumerable:!1},ansi256ToAnsi:{value:(S)=>{if(S<8)return 30+S;if(S<16)return 90+(S-8);let E,Y,O;if(S>=232)E=((S-232)*10+8)/255,Y=E,O=E;else{S-=16;let R=S%36;E=Math.floor(S/36)/5,Y=Math.floor(R/6)/5,O=R%6/5}let x=Math.max(E,Y,O)*2;if(x===0)return 30;let H=30+(Math.round(O)<<2|Math.round(Y)<<1|Math.round(E));return x===2&&(H+=60),H},enumerable:!1},rgbToAnsi:{value:(S,E,Y)=>N.ansi256ToAnsi(N.rgbToAnsi256(S,E,Y)),enumerable:!1},hexToAnsi:{value:(S)=>N.ansi256ToAnsi(N.hexToAnsi256(S)),enumerable:!1}}),N}var lS=DS(),y$=new Set(["\x1B","\x9B"]),pS=39,x1="\x07",z0="[",oS="]",I0="m",R1=`${oS}8;;`,R0=($)=>`${y$.values().next().value}${z0}${$}${I0}`,G0=($)=>`${y$.values().next().value}${R1}${$}${x1}`,iS=($)=>$.split(" ").map((S)=>Z$(S)),O1=($,S,E)=>{let Y=[...S],O=!1,x=!1,H=Z$(Z0($[$.length-1]));for(let[R,q]of Y.entries()){let G=Z$(q);if(H+G<=E?$[$.length-1]+=q:($.push(q),H=0),y$.has(q)&&(O=!0,x=Y.slice(R+1).join("").startsWith(R1)),O){x?q===x1&&(O=!1,x=!1):q===I0&&(O=!1);continue}H+=G,H===E&&R<Y.length-1&&($.push(""),H=0)}!H&&$[$.length-1].length>0&&$.length>1&&($[$.length-2]+=$.pop())},aS=($)=>{let S=$.split(" "),E=S.length;for(;E>0&&!(Z$(S[E-1])>0);)E--;return E===S.length?$:S.slice(0,E).join(" ")+S.slice(E).join("")},rS=($,S,E={})=>{if(E.trim!==!1&&$.trim()==="")return"";let Y="",O,x,H=iS($),R=[""];for(let[G,w]of $.split(" ").entries()){E.trim!==!1&&(R[R.length-1]=R[R.length-1].trimStart());let M=Z$(R[R.length-1]);if(G!==0&&(M>=S&&(E.wordWrap===!1||E.trim===!1)&&(R.push(""),M=0),(M>0||E.trim===!1)&&(R[R.length-1]+=" ",M++)),E.hard&&H[G]>S){let J=S-M,V=1+Math.floor((H[G]-J-1)/S);Math.floor((H[G]-1)/S)<V&&R.push(""),O1(R,w,S);continue}if(M+H[G]>S&&M>0&&H[G]>0){if(E.wordWrap===!1&&M<S){O1(R,w,S);continue}R.push("")}if(M+H[G]>S&&E.wordWrap===!1){O1(R,w,S);continue}R[R.length-1]+=w}E.trim!==!1&&(R=R.map((G)=>aS(G)));let q=[...R.join(`
|
|
6
|
-
`)];for(let[G,
|
|
7
|
-
`?(x&&(
|
|
8
|
-
`&&(O&&
|
|
5
|
+
{fields}`},confirmClean:{en:"Clean these settings? Tako will manage them automatically at launch",zh:"\u662F\u5426\u6E05\u7406\u8FD9\u4E9B\u914D\u7F6E\uFF1FTako \u542F\u52A8\u65F6\u4F1A\u81EA\u52A8\u6CE8\u5165\u6B63\u786E\u7684\u503C"},settingsCleaned:{en:"Settings cleaned, Tako will manage these configs automatically",zh:"\u5DF2\u6E05\u7406\u5B8C\u6210\uFF0CTako \u4F1A\u81EA\u52A8\u7BA1\u7406\u8FD9\u4E9B\u914D\u7F6E"},cleanSkipped:{en:"Skipped. Note: hardcoded settings may cause issues with Tako",zh:"\u5DF2\u8DF3\u8FC7\u3002\u6CE8\u610F\uFF1A\u5199\u6B7B\u7684\u914D\u7F6E\u53EF\u80FD\u5BFC\u81F4 Tako \u542F\u52A8\u5F02\u5E38"}},recentProjects:{title:{en:"Recent Projects",zh:"\u6700\u8FD1\u9879\u76EE"},launchInCurrent:{en:"Launch in current directory",zh:"\u5728\u5F53\u524D\u76EE\u5F55\u542F\u52A8"}}}});import{homedir as US}from"os";import{join as BS}from"path";import{join as K$}from"path";import{homedir as f2}from"os";import{join as G$}from"path";var F=G$(f2(),".tako"),n1=G$(F,"config.json"),e$=G$(F,"tools"),k=G$(F,"cli"),i=G$(F,"bun"),C=G$(i,"bin",process.platform==="win32"?"bun.exe":"bun"),j2=process.env.TAKO_SERVER||"https://tako.shiroha.tech",D=process.env.PROXY_BASE_URL||"https://tako.shiroha.tech",M3=process.env.TAKO_DEV==="true"||j2.includes("localhost"),r1={apiKey:"",apiId:"",installedClients:{}};async function s1(){let $=await import("fs/promises");try{await $.mkdir(F,{recursive:!0}),await $.mkdir(e$,{recursive:!0})}catch{}}async function X(){await s1();try{let $=Bun.file(n1);if(await $.exists()){let S=await $.json();return{...r1,...S}}}catch{}return{...r1}}async function t$($){await s1(),await Bun.write(n1,JSON.stringify($,null,2))}async function p($){let Y={...await X(),...$};return await t$(Y),Y}async function e1(){return!!(await X()).apiKey}async function h$(){return(await X()).apiKey}async function t1(){return(await X()).apiId}function $1($,S){if(!$.startsWith(F))throw Error(`\u5B89\u5168\u68C0\u67E5\u5931\u8D25: ${S} \u8DEF\u5F84 "${$}" \u4E0D\u5728 Tako \u76EE\u5F55\u4E0B`)}function R$($){let S=K$(e$,$);return $1(S,"\u5BA2\u6237\u7AEF\u5B89\u88C5\u76EE\u5F55"),S}async function $0($){let S=R$($.id),Y=K$(S,"node_modules",$.package,"package.json");try{let E=Bun.file(Y);if(!await E.exists())return null;let x=(await E.json()).bin;if(!x)return null;let H=null;if(typeof x==="string")H=x;else if(typeof x==="object"&&x[$.command])H=x[$.command];if(!H)return null;let q=K$(S,"node_modules",$.package,H);return $1(q,"\u5BA2\u6237\u7AEF\u5165\u53E3\u6587\u4EF6"),q}catch{return null}}function S0($){let S=R$($.id),Y=K$(S,"node_modules",".bin",$.command);return $1(Y,"\u5BA2\u6237\u7AEF\u53EF\u6267\u884C\u6587\u4EF6"),Y}var S1=new Map;function b$($){S1.set($.id,$)}function H0(){return Array.from(S1.values())}function C$($){return S1.get($)}var V=V$(Y1(),1),j$=V$(O1(),1);import{stdin as z0,stdout as J0}from"process";import*as r from"readline";import x0 from"readline";import{WriteStream as g2}from"tty";function d2({onlyFirst:$=!1}={}){let S=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(S,$?void 0:"g")}var c2=d2();function W0($){if(typeof $!="string")throw TypeError(`Expected a \`string\`, got \`${typeof $}\``);return $.replace(c2,"")}function T0($){return $&&$.__esModule&&Object.prototype.hasOwnProperty.call($,"default")?$.default:$}var I0={exports:{}};(function($){var S={};$.exports=S,S.eastAsianWidth=function(E){var O=E.charCodeAt(0),x=E.length==2?E.charCodeAt(1):0,H=O;return 55296<=O&&O<=56319&&56320<=x&&x<=57343&&(O&=1023,x&=1023,H=O<<10|x,H+=65536),H==12288||65281<=H&&H<=65376||65504<=H&&H<=65510?"F":H==8361||65377<=H&&H<=65470||65474<=H&&H<=65479||65482<=H&&H<=65487||65490<=H&&H<=65495||65498<=H&&H<=65500||65512<=H&&H<=65518?"H":4352<=H&&H<=4447||4515<=H&&H<=4519||4602<=H&&H<=4607||9001<=H&&H<=9002||11904<=H&&H<=11929||11931<=H&&H<=12019||12032<=H&&H<=12245||12272<=H&&H<=12283||12289<=H&&H<=12350||12353<=H&&H<=12438||12441<=H&&H<=12543||12549<=H&&H<=12589||12593<=H&&H<=12686||12688<=H&&H<=12730||12736<=H&&H<=12771||12784<=H&&H<=12830||12832<=H&&H<=12871||12880<=H&&H<=13054||13056<=H&&H<=19903||19968<=H&&H<=42124||42128<=H&&H<=42182||43360<=H&&H<=43388||44032<=H&&H<=55203||55216<=H&&H<=55238||55243<=H&&H<=55291||63744<=H&&H<=64255||65040<=H&&H<=65049||65072<=H&&H<=65106||65108<=H&&H<=65126||65128<=H&&H<=65131||110592<=H&&H<=110593||127488<=H&&H<=127490||127504<=H&&H<=127546||127552<=H&&H<=127560||127568<=H&&H<=127569||131072<=H&&H<=194367||177984<=H&&H<=196605||196608<=H&&H<=262141?"W":32<=H&&H<=126||162<=H&&H<=163||165<=H&&H<=166||H==172||H==175||10214<=H&&H<=10221||10629<=H&&H<=10630?"Na":H==161||H==164||167<=H&&H<=168||H==170||173<=H&&H<=174||176<=H&&H<=180||182<=H&&H<=186||188<=H&&H<=191||H==198||H==208||215<=H&&H<=216||222<=H&&H<=225||H==230||232<=H&&H<=234||236<=H&&H<=237||H==240||242<=H&&H<=243||247<=H&&H<=250||H==252||H==254||H==257||H==273||H==275||H==283||294<=H&&H<=295||H==299||305<=H&&H<=307||H==312||319<=H&&H<=322||H==324||328<=H&&H<=331||H==333||338<=H&&H<=339||358<=H&&H<=359||H==363||H==462||H==464||H==466||H==468||H==470||H==472||H==474||H==476||H==593||H==609||H==708||H==711||713<=H&&H<=715||H==717||H==720||728<=H&&H<=731||H==733||H==735||768<=H&&H<=879||913<=H&&H<=929||931<=H&&H<=937||945<=H&&H<=961||963<=H&&H<=969||H==1025||1040<=H&&H<=1103||H==1105||H==8208||8211<=H&&H<=8214||8216<=H&&H<=8217||8220<=H&&H<=8221||8224<=H&&H<=8226||8228<=H&&H<=8231||H==8240||8242<=H&&H<=8243||H==8245||H==8251||H==8254||H==8308||H==8319||8321<=H&&H<=8324||H==8364||H==8451||H==8453||H==8457||H==8467||H==8470||8481<=H&&H<=8482||H==8486||H==8491||8531<=H&&H<=8532||8539<=H&&H<=8542||8544<=H&&H<=8555||8560<=H&&H<=8569||H==8585||8592<=H&&H<=8601||8632<=H&&H<=8633||H==8658||H==8660||H==8679||H==8704||8706<=H&&H<=8707||8711<=H&&H<=8712||H==8715||H==8719||H==8721||H==8725||H==8730||8733<=H&&H<=8736||H==8739||H==8741||8743<=H&&H<=8748||H==8750||8756<=H&&H<=8759||8764<=H&&H<=8765||H==8776||H==8780||H==8786||8800<=H&&H<=8801||8804<=H&&H<=8807||8810<=H&&H<=8811||8814<=H&&H<=8815||8834<=H&&H<=8835||8838<=H&&H<=8839||H==8853||H==8857||H==8869||H==8895||H==8978||9312<=H&&H<=9449||9451<=H&&H<=9547||9552<=H&&H<=9587||9600<=H&&H<=9615||9618<=H&&H<=9621||9632<=H&&H<=9633||9635<=H&&H<=9641||9650<=H&&H<=9651||9654<=H&&H<=9655||9660<=H&&H<=9661||9664<=H&&H<=9665||9670<=H&&H<=9672||H==9675||9678<=H&&H<=9681||9698<=H&&H<=9701||H==9711||9733<=H&&H<=9734||H==9737||9742<=H&&H<=9743||9748<=H&&H<=9749||H==9756||H==9758||H==9792||H==9794||9824<=H&&H<=9825||9827<=H&&H<=9829||9831<=H&&H<=9834||9836<=H&&H<=9837||H==9839||9886<=H&&H<=9887||9918<=H&&H<=9919||9924<=H&&H<=9933||9935<=H&&H<=9953||H==9955||9960<=H&&H<=9983||H==10045||H==10071||10102<=H&&H<=10111||11093<=H&&H<=11097||12872<=H&&H<=12879||57344<=H&&H<=63743||65024<=H&&H<=65039||H==65533||127232<=H&&H<=127242||127248<=H&&H<=127277||127280<=H&&H<=127337||127344<=H&&H<=127386||917760<=H&&H<=917999||983040<=H&&H<=1048573||1048576<=H&&H<=1114109?"A":"N"},S.characterLength=function(E){var O=this.eastAsianWidth(E);return O=="F"||O=="W"||O=="A"?2:1};function Y(E){return E.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}S.length=function(E){for(var O=Y(E),x=0,H=0;H<O.length;H++)x=x+this.characterLength(O[H]);return x},S.slice=function(E,O,x){textLen=S.length(E),O=O||0,x=x||1,O<0&&(O=textLen+O),x<0&&(x=textLen+x);for(var H="",q=0,R=Y(E),G=0;G<R.length;G++){var M=R[G],Q=S.length(M);if(q>=O-(Q==2?1:0))if(q+Q<=x)H+=M;else break;q+=Q}return H}})(I0);var D2=I0.exports,p2=T0(D2),l2=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\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])|\uD83C[\uDF3E\uDF73\uDF7C\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\uDF7C\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\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\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\uDF7C\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\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\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\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\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-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*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\u26A7\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-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\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[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},o2=T0(l2);function J$($,S={}){if(typeof $!="string"||$.length===0||(S={ambiguousIsNarrow:!0,...S},$=W0($),$.length===0))return 0;$=$.replace(o2()," ");let Y=S.ambiguousIsNarrow?1:2,E=0;for(let O of $){let x=O.codePointAt(0);if(x<=31||x>=127&&x<=159||x>=768&&x<=879)continue;switch(p2.eastAsianWidth(O)){case"F":case"W":E+=2;break;case"A":E+=Y;break;default:E+=1}}return E}var x1=10,q0=($=0)=>(S)=>`\x1B[${S+$}m`,G0=($=0)=>(S)=>`\x1B[${38+$};5;${S}m`,R0=($=0)=>(S,Y,E)=>`\x1B[${38+$};2;${S};${Y};${E}m`,I={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],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],gray:[90,39],grey:[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],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(I.modifier);var a2=Object.keys(I.color),i2=Object.keys(I.bgColor);[...a2,...i2];function r2(){let $=new Map;for(let[S,Y]of Object.entries(I)){for(let[E,O]of Object.entries(Y))I[E]={open:`\x1B[${O[0]}m`,close:`\x1B[${O[1]}m`},Y[E]=I[E],$.set(O[0],O[1]);Object.defineProperty(I,S,{value:Y,enumerable:!1})}return Object.defineProperty(I,"codes",{value:$,enumerable:!1}),I.color.close="\x1B[39m",I.bgColor.close="\x1B[49m",I.color.ansi=q0(),I.color.ansi256=G0(),I.color.ansi16m=R0(),I.bgColor.ansi=q0(x1),I.bgColor.ansi256=G0(x1),I.bgColor.ansi16m=R0(x1),Object.defineProperties(I,{rgbToAnsi256:{value:(S,Y,E)=>S===Y&&Y===E?S<8?16:S>248?231:Math.round((S-8)/247*24)+232:16+36*Math.round(S/255*5)+6*Math.round(Y/255*5)+Math.round(E/255*5),enumerable:!1},hexToRgb:{value:(S)=>{let Y=/[a-f\d]{6}|[a-f\d]{3}/i.exec(S.toString(16));if(!Y)return[0,0,0];let[E]=Y;E.length===3&&(E=[...E].map((x)=>x+x).join(""));let O=Number.parseInt(E,16);return[O>>16&255,O>>8&255,O&255]},enumerable:!1},hexToAnsi256:{value:(S)=>I.rgbToAnsi256(...I.hexToRgb(S)),enumerable:!1},ansi256ToAnsi:{value:(S)=>{if(S<8)return 30+S;if(S<16)return 90+(S-8);let Y,E,O;if(S>=232)Y=((S-232)*10+8)/255,E=Y,O=Y;else{S-=16;let q=S%36;Y=Math.floor(S/36)/5,E=Math.floor(q/6)/5,O=q%6/5}let x=Math.max(Y,E,O)*2;if(x===0)return 30;let H=30+(Math.round(O)<<2|Math.round(E)<<1|Math.round(Y));return x===2&&(H+=60),H},enumerable:!1},rgbToAnsi:{value:(S,Y,E)=>I.ansi256ToAnsi(I.rgbToAnsi256(S,Y,E)),enumerable:!1},hexToAnsi:{value:(S)=>I.ansi256ToAnsi(I.hexToAnsi256(S)),enumerable:!1}}),I}var n2=r2(),_$=new Set(["\x1B","\x9B"]),s2=39,G1="\x07",X0="[",e2="]",L0="m",R1=`${e2}8;;`,b0=($)=>`${_$.values().next().value}${X0}${$}${L0}`,w0=($)=>`${_$.values().next().value}${R1}${$}${G1}`,t2=($)=>$.split(" ").map((S)=>J$(S)),q1=($,S,Y)=>{let E=[...S],O=!1,x=!1,H=J$(W0($[$.length-1]));for(let[q,R]of E.entries()){let G=J$(R);if(H+G<=Y?$[$.length-1]+=R:($.push(R),H=0),_$.has(R)&&(O=!0,x=E.slice(q+1).join("").startsWith(R1)),O){x?R===G1&&(O=!1,x=!1):R===L0&&(O=!1);continue}H+=G,H===Y&&q<E.length-1&&($.push(""),H=0)}!H&&$[$.length-1].length>0&&$.length>1&&($[$.length-2]+=$.pop())},$S=($)=>{let S=$.split(" "),Y=S.length;for(;Y>0&&!(J$(S[Y-1])>0);)Y--;return Y===S.length?$:S.slice(0,Y).join(" ")+S.slice(Y).join("")},SS=($,S,Y={})=>{if(Y.trim!==!1&&$.trim()==="")return"";let E="",O,x,H=t2($),q=[""];for(let[G,M]of $.split(" ").entries()){Y.trim!==!1&&(q[q.length-1]=q[q.length-1].trimStart());let Q=J$(q[q.length-1]);if(G!==0&&(Q>=S&&(Y.wordWrap===!1||Y.trim===!1)&&(q.push(""),Q=0),(Q>0||Y.trim===!1)&&(q[q.length-1]+=" ",Q++)),Y.hard&&H[G]>S){let Z=S-Q,B=1+Math.floor((H[G]-Z-1)/S);Math.floor((H[G]-1)/S)<B&&q.push(""),q1(q,M,S);continue}if(Q+H[G]>S&&Q>0&&H[G]>0){if(Y.wordWrap===!1&&Q<S){q1(q,M,S);continue}q.push("")}if(Q+H[G]>S&&Y.wordWrap===!1){q1(q,M,S);continue}q[q.length-1]+=M}Y.trim!==!1&&(q=q.map((G)=>$S(G)));let R=[...q.join(`
|
|
6
|
+
`)];for(let[G,M]of R.entries()){if(E+=M,_$.has(M)){let{groups:Z}=new RegExp(`(?:\\${X0}(?<code>\\d+)m|\\${R1}(?<uri>.*)${G1})`).exec(R.slice(G).join(""))||{groups:{}};if(Z.code!==void 0){let B=Number.parseFloat(Z.code);O=B===s2?void 0:B}else Z.uri!==void 0&&(x=Z.uri.length===0?void 0:Z.uri)}let Q=n2.codes.get(Number(O));R[G+1]===`
|
|
7
|
+
`?(x&&(E+=w0("")),O&&Q&&(E+=b0(Q))):M===`
|
|
8
|
+
`&&(O&&Q&&(E+=b0(O)),x&&(E+=w0(x)))}return E};function M0($,S,Y){return String($).normalize().replace(/\r\n/g,`
|
|
9
9
|
`).split(`
|
|
10
|
-
`).map((
|
|
11
|
-
`)}var
|
|
12
|
-
`),
|
|
13
|
-
`),O=[];for(let x=0;x<Math.max(
|
|
14
|
-
`),
|
|
15
|
-
`).length-1;this.output.write(
|
|
16
|
-
`);this.output.write(Y
|
|
17
|
-
`).slice(
|
|
18
|
-
`)),this._prevFrame=$;return}this.output.write(
|
|
19
|
-
${
|
|
20
|
-
`,
|
|
21
|
-
${b.default.yellow(
|
|
22
|
-
${b.default.yellow(
|
|
23
|
-
`;case"submit":return`${S}${b.default.gray(
|
|
24
|
-
`+b.default.gray(
|
|
25
|
-
${b.default.cyan(
|
|
26
|
-
`}}}).prompt();var
|
|
27
|
-
${
|
|
28
|
-
`,O=this.value?S:
|
|
29
|
-
${b.default.gray(
|
|
30
|
-
${b.default.cyan(
|
|
31
|
-
`}}}).prompt()},
|
|
32
|
-
${
|
|
33
|
-
`;switch(this.state){case"submit":return`${
|
|
34
|
-
${b.default.gray(
|
|
35
|
-
${b.default.cyan(
|
|
36
|
-
${b.default.cyan(
|
|
37
|
-
`}}}}).prompt()};var
|
|
38
|
-
${b.default.reset(b.default.dim(`Press ${b.default.gray(b.default.bgWhite(b.default.inverse(" space ")))} to select, ${b.default.gray(b.default.bgWhite(b.default.inverse(" enter ")))} to submit`))}`},render(){let
|
|
39
|
-
${
|
|
40
|
-
`;switch(this.state){case"submit":return`${
|
|
41
|
-
${b.default.gray(
|
|
42
|
-
`).map((O,x)=>x===0?`${b.default.yellow(
|
|
43
|
-
`);return
|
|
44
|
-
${b.default.yellow(
|
|
45
|
-
`+
|
|
46
|
-
`}default:return`${
|
|
47
|
-
${b.default.cyan(
|
|
48
|
-
${b.default.cyan(
|
|
49
|
-
`}}}).prompt()};var
|
|
50
|
-
${b.default.gray(
|
|
10
|
+
`).map((E)=>SS(E,S,Y)).join(`
|
|
11
|
+
`)}var HS=Object.defineProperty,YS=($,S,Y)=>(S in $)?HS($,S,{enumerable:!0,configurable:!0,writable:!0,value:Y}):$[S]=Y,f=($,S,Y)=>(YS($,typeof S!="symbol"?S+"":S,Y),Y);function ES($,S){if($===S)return;let Y=$.split(`
|
|
12
|
+
`),E=S.split(`
|
|
13
|
+
`),O=[];for(let x=0;x<Math.max(Y.length,E.length);x++)Y[x]!==E[x]&&O.push(x);return O}var N0=Symbol("clack:cancel");function A($){return $===N0}function f$($,S){$.isTTY&&$.setRawMode(S)}var Q0=new Map([["k","up"],["j","down"],["h","left"],["l","right"]]),OS=new Set(["up","down","left","right","space","enter"]);class W${constructor({render:$,input:S=z0,output:Y=J0,...E},O=!0){f(this,"input"),f(this,"output"),f(this,"rl"),f(this,"opts"),f(this,"_track",!1),f(this,"_render"),f(this,"_cursor",0),f(this,"state","initial"),f(this,"value"),f(this,"error",""),f(this,"subscribers",new Map),f(this,"_prevFrame",""),this.opts=E,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=$.bind(this),this._track=O,this.input=S,this.output=Y}prompt(){let $=new g2(0);return $._write=(S,Y,E)=>{this._track&&(this.value=this.rl.line.replace(/\t/g,""),this._cursor=this.rl.cursor,this.emit("value",this.value)),E()},this.input.pipe($),this.rl=x0.createInterface({input:this.input,output:$,tabSize:2,prompt:"",escapeCodeTimeout:50}),x0.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),f$(this.input,!0),this.output.on("resize",this.render),this.render(),new Promise((S,Y)=>{this.once("submit",()=>{this.output.write(V.cursor.show),this.output.off("resize",this.render),f$(this.input,!1),S(this.value)}),this.once("cancel",()=>{this.output.write(V.cursor.show),this.output.off("resize",this.render),f$(this.input,!1),S(N0)})})}on($,S){let Y=this.subscribers.get($)??[];Y.push({cb:S}),this.subscribers.set($,Y)}once($,S){let Y=this.subscribers.get($)??[];Y.push({cb:S,once:!0}),this.subscribers.set($,Y)}emit($,...S){let Y=this.subscribers.get($)??[],E=[];for(let O of Y)O.cb(...S),O.once&&E.push(()=>Y.splice(Y.indexOf(O),1));for(let O of E)O()}unsubscribe(){this.subscribers.clear()}onKeypress($,S){if(this.state==="error"&&(this.state="active"),S?.name&&!this._track&&Q0.has(S.name)&&this.emit("cursor",Q0.get(S.name)),S?.name&&OS.has(S.name)&&this.emit("cursor",S.name),$&&($.toLowerCase()==="y"||$.toLowerCase()==="n")&&this.emit("confirm",$.toLowerCase()==="y"),$==="\t"&&this.opts.placeholder&&(this.value||(this.rl.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),$&&this.emit("key",$.toLowerCase()),S?.name==="return"){if(this.opts.validate){let Y=this.opts.validate(this.value);Y&&(this.error=Y,this.state="error",this.rl.write(this.value))}this.state!=="error"&&(this.state="submit")}$==="\x03"&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
|
|
14
|
+
`),f$(this.input,!1),this.rl.close(),this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let $=M0(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
|
|
15
|
+
`).length-1;this.output.write(V.cursor.move(-999,$*-1))}render(){let $=M0(this._render(this)??"",process.stdout.columns,{hard:!0});if($!==this._prevFrame){if(this.state==="initial")this.output.write(V.cursor.hide);else{let S=ES(this._prevFrame,$);if(this.restoreCursor(),S&&S?.length===1){let Y=S[0];this.output.write(V.cursor.move(0,Y)),this.output.write(V.erase.lines(1));let E=$.split(`
|
|
16
|
+
`);this.output.write(E[Y]),this._prevFrame=$,this.output.write(V.cursor.move(0,E.length-Y-1));return}else if(S&&S?.length>1){let Y=S[0];this.output.write(V.cursor.move(0,Y)),this.output.write(V.erase.down());let E=$.split(`
|
|
17
|
+
`).slice(Y);this.output.write(E.join(`
|
|
18
|
+
`)),this._prevFrame=$;return}this.output.write(V.erase.down())}this.output.write($),this.state==="initial"&&(this.state="active"),this._prevFrame=$}}}class b1 extends W${get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor($){super($,!1),this.value=!!$.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(S)=>{this.output.write(V.cursor.move(0,-1)),this.value=S,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var xS=Object.defineProperty,qS=($,S,Y)=>(S in $)?xS($,S,{enumerable:!0,configurable:!0,writable:!0,value:Y}):$[S]=Y,v0=($,S,Y)=>(qS($,typeof S!="symbol"?S+"":S,Y),Y),U0=class extends W${constructor($){super($,!1),v0(this,"options"),v0(this,"cursor",0),this.options=$.options,this.value=[...$.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:S})=>S===$.cursorAt),0),this.on("key",(S)=>{S==="a"&&this.toggleAll()}),this.on("cursor",(S)=>{switch(S){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let $=this.value.length===this.options.length;this.value=$?[]:this.options.map((S)=>S.value)}toggleValue(){let $=this.value.includes(this._value);this.value=$?this.value.filter((S)=>S!==this._value):[...this.value,this._value]}};var GS=Object.defineProperty,RS=($,S,Y)=>(S in $)?GS($,S,{enumerable:!0,configurable:!0,writable:!0,value:Y}):$[S]=Y,Z0=($,S,Y)=>(RS($,typeof S!="symbol"?S+"":S,Y),Y),B0=class extends W${constructor($){super($,!1),Z0(this,"options"),Z0(this,"cursor",0),this.options=$.options,this.cursor=this.options.findIndex(({value:S})=>S===$.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(S)=>{switch(S){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}};var bS=Object.defineProperty,wS=($,S,Y)=>(S in $)?bS($,S,{enumerable:!0,configurable:!0,writable:!0,value:Y}):$[S]=Y,MS=($,S,Y)=>(wS($,typeof S!="symbol"?S+"":S,Y),Y);class w1 extends W${constructor($){super($),MS(this,"valueWithCursor",""),this.on("finalize",()=>{this.value||(this.value=$.defaultValue),this.valueWithCursor=this.value}),this.on("value",()=>{if(this.cursor>=this.value.length)this.valueWithCursor=`${this.value}${j$.default.inverse(j$.default.hidden("_"))}`;else{let S=this.value.slice(0,this.cursor),Y=this.value.slice(this.cursor);this.valueWithCursor=`${S}${j$.default.inverse(Y[0])}${Y.slice(1)}`}})}get cursor(){return this._cursor}}var QS=globalThis.process.platform.startsWith("win");function A0({input:$=z0,output:S=J0,overwrite:Y=!0,hideCursor:E=!0}={}){let O=r.createInterface({input:$,output:S,prompt:"",tabSize:1});r.emitKeypressEvents($,O),$.isTTY&&$.setRawMode(!0);let x=(H,{name:q})=>{if(String(H)==="\x03"){E&&S.write(V.cursor.show),process.exit(0);return}if(!Y)return;r.moveCursor(S,q==="return"?0:-1,q==="return"?-1:0,()=>{r.clearLine(S,1,()=>{$.once("keypress",x)})})};return E&&S.write(V.cursor.hide),$.once("keypress",x),()=>{$.off("keypress",x),E&&S.write(V.cursor.show),$.isTTY&&!QS&&$.setRawMode(!1),O.terminal=!1,O.close()}}var b=V$(O1(),1),w$=V$(Y1(),1);import _ from"process";function vS(){return _.platform!=="win32"?_.env.TERM!=="linux":Boolean(_.env.CI)||Boolean(_.env.WT_SESSION)||Boolean(_.env.TERMINUS_SUBLIME)||_.env.ConEmuTask==="{cmd::Cmder}"||_.env.TERM_PROGRAM==="Terminus-Sublime"||_.env.TERM_PROGRAM==="vscode"||_.env.TERM==="xterm-256color"||_.env.TERM==="alacritty"||_.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var M1=vS(),U=($,S)=>M1?$:S,ZS=U("\u25C6","*"),h0=U("\u25A0","x"),K0=U("\u25B2","x"),Z1=U("\u25C7","o"),m3=U("\u250C","T"),J=U("\u2502","|"),$$=U("\u2514","\u2014"),Q1=U("\u25CF",">"),v1=U("\u25CB"," "),zS=U("\u25FB","[\u2022]"),V0=U("\u25FC","[+]"),JS=U("\u25FB","[ ]"),y3=U("\u25AA","\u2022"),f3=U("\u2500","-"),j3=U("\u256E","+"),_3=U("\u251C","+"),P3=U("\u256F","+"),WS=U("\u25CF","\u2022"),TS=U("\u25C6","*"),IS=U("\u25B2","!"),XS=U("\u25A0","x"),P$=($)=>{switch($){case"initial":case"active":return b.default.cyan(ZS);case"cancel":return b.default.red(h0);case"error":return b.default.yellow(K0);case"submit":return b.default.green(Z1)}},C0=($)=>new w1({validate:$.validate,placeholder:$.placeholder,defaultValue:$.defaultValue,initialValue:$.initialValue,render(){let S=`${b.default.gray(J)}
|
|
19
|
+
${P$(this.state)} ${$.message}
|
|
20
|
+
`,Y=$.placeholder?b.default.inverse($.placeholder[0])+b.default.dim($.placeholder.slice(1)):b.default.inverse(b.default.hidden("_")),E=this.value?this.valueWithCursor:Y;switch(this.state){case"error":return`${S.trim()}
|
|
21
|
+
${b.default.yellow(J)} ${E}
|
|
22
|
+
${b.default.yellow($$)} ${b.default.yellow(this.error)}
|
|
23
|
+
`;case"submit":return`${S}${b.default.gray(J)} ${b.default.dim(this.value||$.placeholder)}`;case"cancel":return`${S}${b.default.gray(J)} ${b.default.strikethrough(b.default.dim(this.value??""))}${this.value?.trim()?`
|
|
24
|
+
`+b.default.gray(J):""}`;default:return`${S}${b.default.cyan(J)} ${E}
|
|
25
|
+
${b.default.cyan($$)}
|
|
26
|
+
`}}}).prompt();var n=($)=>{let S=$.active??"Yes",Y=$.inactive??"No";return new b1({active:S,inactive:Y,initialValue:$.initialValue??!0,render(){let E=`${b.default.gray(J)}
|
|
27
|
+
${P$(this.state)} ${$.message}
|
|
28
|
+
`,O=this.value?S:Y;switch(this.state){case"submit":return`${E}${b.default.gray(J)} ${b.default.dim(O)}`;case"cancel":return`${E}${b.default.gray(J)} ${b.default.strikethrough(b.default.dim(O))}
|
|
29
|
+
${b.default.gray(J)}`;default:return`${E}${b.default.cyan(J)} ${this.value?`${b.default.green(Q1)} ${S}`:`${b.default.dim(v1)} ${b.default.dim(S)}`} ${b.default.dim("/")} ${this.value?`${b.default.dim(v1)} ${b.default.dim(Y)}`:`${b.default.green(Q1)} ${Y}`}
|
|
30
|
+
${b.default.cyan($$)}
|
|
31
|
+
`}}}).prompt()},S$=($)=>{let S=(E,O)=>{let x=E.label??String(E.value);return O==="active"?`${b.default.green(Q1)} ${x} ${E.hint?b.default.dim(`(${E.hint})`):""}`:O==="selected"?`${b.default.dim(x)}`:O==="cancelled"?`${b.default.strikethrough(b.default.dim(x))}`:`${b.default.dim(v1)} ${b.default.dim(x)}`},Y=0;return new B0({options:$.options,initialValue:$.initialValue,render(){let E=`${b.default.gray(J)}
|
|
32
|
+
${P$(this.state)} ${$.message}
|
|
33
|
+
`;switch(this.state){case"submit":return`${E}${b.default.gray(J)} ${S(this.options[this.cursor],"selected")}`;case"cancel":return`${E}${b.default.gray(J)} ${S(this.options[this.cursor],"cancelled")}
|
|
34
|
+
${b.default.gray(J)}`;default:{let O=$.maxItems===void 0?1/0:Math.max($.maxItems,5);this.cursor>=Y+O-3?Y=Math.max(Math.min(this.cursor-O+3,this.options.length-O),0):this.cursor<Y+2&&(Y=Math.max(this.cursor-2,0));let x=O<this.options.length&&Y>0,H=O<this.options.length&&Y+O<this.options.length;return`${E}${b.default.cyan(J)} ${this.options.slice(Y,Y+O).map((q,R,G)=>R===0&&x?b.default.dim("..."):R===G.length-1&&H?b.default.dim("..."):S(q,R+Y===this.cursor?"active":"inactive")).join(`
|
|
35
|
+
${b.default.cyan(J)} `)}
|
|
36
|
+
${b.default.cyan($$)}
|
|
37
|
+
`}}}}).prompt()};var m0=($)=>{let S=(Y,E)=>{let O=Y.label??String(Y.value);return E==="active"?`${b.default.cyan(zS)} ${O} ${Y.hint?b.default.dim(`(${Y.hint})`):""}`:E==="selected"?`${b.default.green(V0)} ${b.default.dim(O)}`:E==="cancelled"?`${b.default.strikethrough(b.default.dim(O))}`:E==="active-selected"?`${b.default.green(V0)} ${O} ${Y.hint?b.default.dim(`(${Y.hint})`):""}`:E==="submitted"?`${b.default.dim(O)}`:`${b.default.dim(JS)} ${b.default.dim(O)}`};return new U0({options:$.options,initialValues:$.initialValues,required:$.required??!0,cursorAt:$.cursorAt,validate(Y){if(this.required&&Y.length===0)return`Please select at least one option.
|
|
38
|
+
${b.default.reset(b.default.dim(`Press ${b.default.gray(b.default.bgWhite(b.default.inverse(" space ")))} to select, ${b.default.gray(b.default.bgWhite(b.default.inverse(" enter ")))} to submit`))}`},render(){let Y=`${b.default.gray(J)}
|
|
39
|
+
${P$(this.state)} ${$.message}
|
|
40
|
+
`;switch(this.state){case"submit":return`${Y}${b.default.gray(J)} ${this.options.filter(({value:E})=>this.value.includes(E)).map((E)=>S(E,"submitted")).join(b.default.dim(", "))||b.default.dim("none")}`;case"cancel":{let E=this.options.filter(({value:O})=>this.value.includes(O)).map((O)=>S(O,"cancelled")).join(b.default.dim(", "));return`${Y}${b.default.gray(J)} ${E.trim()?`${E}
|
|
41
|
+
${b.default.gray(J)}`:""}`}case"error":{let E=this.error.split(`
|
|
42
|
+
`).map((O,x)=>x===0?`${b.default.yellow($$)} ${b.default.yellow(O)}`:` ${O}`).join(`
|
|
43
|
+
`);return Y+b.default.yellow(J)+" "+this.options.map((O,x)=>{let H=this.value.includes(O.value),q=x===this.cursor;return q&&H?S(O,"active-selected"):H?S(O,"selected"):S(O,q?"active":"inactive")}).join(`
|
|
44
|
+
${b.default.yellow(J)} `)+`
|
|
45
|
+
`+E+`
|
|
46
|
+
`}default:return`${Y}${b.default.cyan(J)} ${this.options.map((E,O)=>{let x=this.value.includes(E.value),H=O===this.cursor;return H&&x?S(E,"active-selected"):x?S(E,"selected"):S(E,H?"active":"inactive")}).join(`
|
|
47
|
+
${b.default.cyan(J)} `)}
|
|
48
|
+
${b.default.cyan($$)}
|
|
49
|
+
`}}}).prompt()};var z1=($="")=>{process.stdout.write(`${b.default.gray(J)}
|
|
50
|
+
${b.default.gray($$)} ${$}
|
|
51
51
|
|
|
52
|
-
`)},
|
|
53
|
-
`);
|
|
52
|
+
`)},v={message:($="",{symbol:S=b.default.gray(J)}={})=>{let Y=[`${b.default.gray(J)}`];if($){let[E,...O]=$.split(`
|
|
53
|
+
`);Y.push(`${S} ${E}`,...O.map((x)=>`${b.default.gray(J)} ${x}`))}process.stdout.write(`${Y.join(`
|
|
54
54
|
`)}
|
|
55
|
-
`)},info:($)=>{
|
|
56
|
-
`);let
|
|
57
|
-
`),
|
|
58
|
-
`),
|
|
55
|
+
`)},info:($)=>{v.message($,{symbol:b.default.blue(WS)})},success:($)=>{v.message($,{symbol:b.default.green(TS)})},step:($)=>{v.message($,{symbol:b.default.green(Z1)})},warn:($)=>{v.message($,{symbol:b.default.yellow(IS)})},warning:($)=>{v.warn($)},error:($)=>{v.message($,{symbol:b.default.red(XS)})}},u=()=>{let $=M1?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],S=M1?80:120,Y,E,O=!1,x="",H=(M="")=>{O=!0,Y=A0(),x=M.replace(/\.+$/,""),process.stdout.write(`${b.default.gray(J)}
|
|
56
|
+
`);let Q=0,Z=0;E=setInterval(()=>{let B=b.default.magenta($[Q]),c=".".repeat(Math.floor(Z)).slice(0,3);process.stdout.write(w$.cursor.move(-999,0)),process.stdout.write(w$.erase.down(1)),process.stdout.write(`${B} ${x}${c}`),Q=Q+1<$.length?Q+1:0,Z=Z<$.length?Z+0.125:0},S)},q=(M="",Q=0)=>{x=M??x,O=!1,clearInterval(E);let Z=Q===0?b.default.green(Z1):Q===1?b.default.red(h0):b.default.red(K0);process.stdout.write(w$.cursor.move(-999,0)),process.stdout.write(w$.erase.down(1)),process.stdout.write(`${Z} ${x}
|
|
57
|
+
`),Y()},R=(M="")=>{x=M??x},G=(M)=>{let Q=M>1?"Something went wrong":"Canceled";O&&q(Q,M)};return process.on("uncaughtExceptionMonitor",()=>G(2)),process.on("unhandledRejection",()=>G(2)),process.on("SIGINT",()=>G(1)),process.on("SIGTERM",()=>G(1)),process.on("exit",G),{start:H,stop:q,message:R}};h();var f0=BS(US(),".claude","settings.json"),AS=["CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC","API_TIMEOUT_MS"];function VS($){if($.startsWith("ANTHROPIC_"))return!0;return AS.includes($)}async function hS(){let $=await import("fs/promises"),S;try{S=await $.readFile(f0,"utf-8")}catch{return}let Y;try{Y=JSON.parse(S)}catch{return}let E=[];if(Y.env&&typeof Y.env==="object"){for(let x of Object.keys(Y.env))if(VS(x))E.push(x),delete Y.env[x];if(Object.keys(Y.env).length===0)delete Y.env}if(E.length===0)return;v.warn(w("claudeCode.settingsDetected",{fields:E.join(", ")}));let O=await n({message:w("claudeCode.confirmClean"),initialValue:!0});if(A(O)||!O){v.info(w("claudeCode.cleanSkipped"));return}await $.writeFile(f0,JSON.stringify(Y,null,2)+`
|
|
58
|
+
`),v.success(w("claudeCode.settingsCleaned"))}var KS={id:"claude-code",name:"Claude Code",package:"@anthropic-ai/claude-code",command:"claude",runtime:"native",continueArg:"--continue",brandColor:"yellow",getEnvVars($){return{ANTHROPIC_BASE_URL:`${D}/api`,ANTHROPIC_AUTH_TOKEN:$,CLAUDE_CODE_DISABLE_UPDATE_CHECK:"1",DISABLE_AUTOUPDATER:"1"}},async setupConfigFiles(){await hS()},launchOptions:[{id:"skip-permissions",label:{en:"Skip Permissions",zh:"\u8DF3\u8FC7\u6743\u9650\u786E\u8BA4"},shortLabel:"Skip Perms",description:{en:"Auto-execute all operations without confirmation",zh:"\u5141\u8BB8\u81EA\u52A8\u6267\u884C\u6240\u6709\u64CD\u4F5C\uFF0C\u65E0\u9700\u786E\u8BA4"},flag:"--dangerously-skip-permissions",args:["--dangerously-skip-permissions"]},{id:"verbose",label:{en:"Verbose",zh:"\u8BE6\u7EC6\u65E5\u5FD7"},shortLabel:"Verbose",description:{en:"Show full invocation details",zh:"\u663E\u793A\u5B8C\u6574\u7684\u8C03\u7528\u8FC7\u7A0B"},flag:"--verbose",args:["--verbose"]},{id:"worktree",label:{en:"Git Worktree",zh:"Git Worktree"},shortLabel:"Worktree",description:{en:"Run in an isolated worktree",zh:"\u5728\u9694\u79BB\u7684 worktree \u4E2D\u8FD0\u884C"},flag:"--worktree",args:["--worktree"]}]};b$(KS);import{homedir as pS}from"os";import{join as U1}from"path";/*!
|
|
59
59
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
60
60
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
61
61
|
*
|
|
@@ -81,11 +81,11 @@ ${b.default.gray(r)} ${$}
|
|
|
81
81
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
82
82
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
83
83
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
84
|
-
*/function
|
|
85
|
-
`,H===S)O+=" ".repeat(x+
|
|
86
|
-
`}return O}class
|
|
84
|
+
*/function CS($,S){let Y=$.slice(0,S).split(/\r\n|\n|\r/g);return[Y.length,Y.pop().length+1]}function mS($,S,Y){let E=$.split(/\r\n|\n|\r/g),O="",x=(Math.log10(S+1)|0)+1;for(let H=S-1;H<=S+1;H++){let q=E[H-1];if(!q)continue;if(O+=H.toString().padEnd(x," "),O+=": ",O+=q,O+=`
|
|
85
|
+
`,H===S)O+=" ".repeat(x+Y+2),O+=`^
|
|
86
|
+
`}return O}class z extends Error{line;column;codeblock;constructor($,S){let[Y,E]=CS(S.toml,S.ptr),O=mS(S.toml,Y,E);super(`Invalid TOML document: ${$}
|
|
87
87
|
|
|
88
|
-
${O}`,S);this.line=
|
|
88
|
+
${O}`,S);this.line=Y,this.column=E,this.codeblock=O}}/*!
|
|
89
89
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
90
90
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
91
91
|
*
|
|
@@ -111,14 +111,14 @@ ${O}`,S);this.line=E,this.column=Y,this.codeblock=O}}/*!
|
|
|
111
111
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
112
112
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
113
113
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
114
|
-
*/function
|
|
115
|
-
`,S);if($[
|
|
116
|
-
`)return
|
|
117
|
-
`)return
|
|
114
|
+
*/function yS($,S){let Y=0;while($[S-++Y]==="\\");return--Y&&Y%2}function k$($,S=0,Y=$.length){let E=$.indexOf(`
|
|
115
|
+
`,S);if($[E-1]==="\r")E--;return E<=Y?E:-1}function Q$($,S){for(let Y=S;Y<$.length;Y++){let E=$[Y];if(E===`
|
|
116
|
+
`)return Y;if(E==="\r"&&$[Y+1]===`
|
|
117
|
+
`)return Y+1;if(E<" "&&E!=="\t"||E==="\x7F")throw new z("control characters are not allowed in comments",{toml:$,ptr:S})}return $.length}function m($,S,Y,E){let O;while(!0){while((O=$[S])===" "||O==="\t"||!Y&&(O===`
|
|
118
118
|
`||O==="\r"&&$[S+1]===`
|
|
119
|
-
`))S++;if(
|
|
119
|
+
`))S++;if(E||O!=="#")break;S=Q$($,S)}return S}function j0($,S,Y,E,O=!1){if(!E)return S=k$($,S),S<0?$.length:S;for(let x=S;x<$.length;x++){let H=$[x];if(H==="#")x=k$($,x);else if(H===Y)return x+1;else if(H===E||O&&(H===`
|
|
120
120
|
`||H==="\r"&&$[x+1]===`
|
|
121
|
-
`))return x}throw new
|
|
121
|
+
`))return x}throw new z("cannot find end of structure",{toml:$,ptr:S})}function u$($,S){let Y=$[S],E=Y===$[S+1]&&$[S+1]===$[S+2]?$.slice(S,S+3):Y;S+=E.length-1;do S=$.indexOf(E,++S);while(S>-1&&Y!=="'"&&yS($,S));if(S>-1){if(S+=E.length,E.length>1){if($[S]===Y)S++;if($[S]===Y)S++}}return S}/*!
|
|
122
122
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
123
123
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
124
124
|
*
|
|
@@ -144,7 +144,7 @@ ${O}`,S);this.line=E,this.column=Y,this.codeblock=O}}/*!
|
|
|
144
144
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
145
145
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
146
146
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
147
|
-
*/var
|
|
147
|
+
*/var fS=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;class e extends Date{#S=!1;#H=!1;#$=null;constructor($){let S=!0,Y=!0,E="Z";if(typeof $==="string"){let O=$.match(fS);if(O){if(!O[1])S=!1,$=`0000-01-01T${$}`;if(Y=!!O[2],Y&&$[10]===" "&&($=$.replace(" ","T")),O[2]&&+O[2]>23)$="";else if(E=O[3]||null,$=$.toUpperCase(),!E&&Y)$+="Z"}else $=""}super($);if(!isNaN(this.getTime()))this.#S=S,this.#H=Y,this.#$=E}isDateTime(){return this.#S&&this.#H}isLocal(){return!this.#S||!this.#H||!this.#$}isDate(){return this.#S&&!this.#H}isTime(){return this.#H&&!this.#S}isValid(){return this.#S||this.#H}toISOString(){let $=super.toISOString();if(this.isDate())return $.slice(0,10);if(this.isTime())return $.slice(11,23);if(this.#$===null)return $.slice(0,-1);if(this.#$==="Z")return $;let S=+this.#$.slice(1,3)*60+ +this.#$.slice(4,6);return S=this.#$[0]==="-"?S:-S,new Date(this.getTime()-S*60000).toISOString().slice(0,-1)+this.#$}static wrapAsOffsetDateTime($,S="Z"){let Y=new e($);return Y.#$=S,Y}static wrapAsLocalDateTime($){let S=new e($);return S.#$=null,S}static wrapAsLocalDate($){let S=new e($);return S.#H=!1,S.#$=null,S}static wrapAsLocalTime($){let S=new e($);return S.#S=!1,S.#$=null,S}}/*!
|
|
148
148
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
149
149
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
150
150
|
*
|
|
@@ -170,13 +170,13 @@ ${O}`,S);this.line=E,this.column=Y,this.codeblock=O}}/*!
|
|
|
170
170
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
171
171
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
172
172
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
173
|
-
*/var
|
|
174
|
-
`,f:"\f",r:"\r",e:"\x1B",'"':'"',"\\":"\\"};function
|
|
175
|
-
`)S++}let x=0,H,
|
|
173
|
+
*/var jS=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,_S=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,PS=/^[+-]?0[0-9_]/,FS=/^[0-9a-f]{2,8}$/i,_0={b:"\b",t:"\t",n:`
|
|
174
|
+
`,f:"\f",r:"\r",e:"\x1B",'"':'"',"\\":"\\"};function g$($,S=0,Y=$.length){let E=$[S]==="'",O=$[S++]===$[S]&&$[S]===$[S+1];if(O){if(Y-=2,$[S+=2]==="\r")S++;if($[S]===`
|
|
175
|
+
`)S++}let x=0,H,q="",R=S;while(S<Y-1){let G=$[S++];if(G===`
|
|
176
176
|
`||G==="\r"&&$[S]===`
|
|
177
|
-
`){if(!O)throw new
|
|
177
|
+
`){if(!O)throw new z("newlines are not allowed in strings",{toml:$,ptr:S-1})}else if(G<" "&&G!=="\t"||G==="\x7F")throw new z("control characters are not allowed in strings",{toml:$,ptr:S-1});if(H){if(H=!1,G==="x"||G==="u"||G==="U"){let M=$.slice(S,S+=G==="x"?2:G==="u"?4:8);if(!FS.test(M))throw new z("invalid unicode escape",{toml:$,ptr:x});try{q+=String.fromCodePoint(parseInt(M,16))}catch{throw new z("invalid unicode escape",{toml:$,ptr:x})}}else if(O&&(G===`
|
|
178
178
|
`||G===" "||G==="\t"||G==="\r")){if(S=m($,S-1,!0),$[S]!==`
|
|
179
|
-
`&&$[S]!=="\r")throw new
|
|
179
|
+
`&&$[S]!=="\r")throw new z("invalid escape: only line-ending whitespace may be escaped",{toml:$,ptr:x});S=m($,S)}else if(G in _0)q+=_0[G];else throw new z("unrecognized escape sequence",{toml:$,ptr:x});R=S}else if(!E&&G==="\\")x=S-1,H=!0,q+=$.slice(R,x)}return q+$.slice(R,Y-1)}function P0($,S,Y,E){if($==="true")return!0;if($==="false")return!1;if($==="-inf")return-1/0;if($==="inf"||$==="+inf")return 1/0;if($==="nan"||$==="+nan"||$==="-nan")return NaN;if($==="-0")return E?0n:0;let O=jS.test($);if(O||_S.test($)){if(PS.test($))throw new z("leading zeroes are not allowed",{toml:S,ptr:Y});$=$.replace(/_/g,"");let H=+$;if(isNaN(H))throw new z("invalid number",{toml:S,ptr:Y});if(O){if((O=!Number.isSafeInteger(H))&&!E)throw new z("integer value cannot be represented losslessly",{toml:S,ptr:Y});if(O||E===!0)H=BigInt($)}return H}let x=new e($);if(!x.isValid())throw new z("invalid value",{toml:S,ptr:Y});return x}/*!
|
|
180
180
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
181
181
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
182
182
|
*
|
|
@@ -202,8 +202,8 @@ ${O}`,S);this.line=E,this.column=Y,this.codeblock=O}}/*!
|
|
|
202
202
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
203
203
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
204
204
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
205
|
-
*/function
|
|
206
|
-
`&&$[H]!=="\r")throw new
|
|
205
|
+
*/function kS($,S,Y){let E=$.slice(S,Y),O=E.indexOf("#");if(O>-1)Q$($,O),E=E.slice(0,O);return[E.trimEnd(),O]}function T$($,S,Y,E,O){if(E===0)throw new z("document contains excessively nested structures. aborting.",{toml:$,ptr:S});let x=$[S];if(x==="["||x==="{"){let[R,G]=x==="["?k0($,S,E,O):F0($,S,E,O);if(Y){if(G=m($,G),$[G]===",")G++;else if($[G]!==Y)throw new z("expected comma or end of structure",{toml:$,ptr:G})}return[R,G]}let H;if(x==='"'||x==="'"){H=u$($,S);let R=g$($,S,H);if(Y){if(H=m($,H),$[H]&&$[H]!==","&&$[H]!==Y&&$[H]!==`
|
|
206
|
+
`&&$[H]!=="\r")throw new z("unexpected character encountered",{toml:$,ptr:H});H+=+($[H]===",")}return[R,H]}H=j0($,S,",",Y);let q=kS($,S,H-+($[H-1]===","));if(!q[0])throw new z("incomplete key-value declaration: no value specified",{toml:$,ptr:S});if(Y&&q[1]>-1)H=m($,S+q[1]),H+=+($[H]===",");return[P0(q[0],$,S,O),H]}/*!
|
|
207
207
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
208
208
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
209
209
|
*
|
|
@@ -229,9 +229,9 @@ ${O}`,S);this.line=E,this.column=Y,this.codeblock=O}}/*!
|
|
|
229
229
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
230
230
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
231
231
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
232
|
-
*/var
|
|
233
|
-
`&&H!=="\r"){let R
|
|
234
|
-
`&&x!=="\r"){let H=T$($,S-1,"]",
|
|
232
|
+
*/var uS=/^[a-zA-Z0-9-_]+[ \t]*$/;function d$($,S,Y="="){let E=S-1,O=[],x=$.indexOf(Y,S);if(x<0)throw new z("incomplete key-value: cannot find end of key",{toml:$,ptr:S});do{let H=$[S=++E];if(H!==" "&&H!=="\t")if(H==='"'||H==="'"){if(H===$[S+1]&&H===$[S+2])throw new z("multiline strings are not allowed in keys",{toml:$,ptr:S});let q=u$($,S);if(q<0)throw new z("unfinished string encountered",{toml:$,ptr:S});E=$.indexOf(".",q);let R=$.slice(q,E<0||E>x?x:E),G=k$(R);if(G>-1)throw new z("newlines are not allowed in keys",{toml:$,ptr:S+E+G});if(R.trimStart())throw new z("found extra tokens after the string part",{toml:$,ptr:q});if(x<q){if(x=$.indexOf(Y,q),x<0)throw new z("incomplete key-value: cannot find end of key",{toml:$,ptr:S})}O.push(g$($,S,q))}else{E=$.indexOf(".",S);let q=$.slice(S,E<0||E>x?x:E);if(!uS.test(q))throw new z("only letter, numbers, dashes and underscores are allowed in keys",{toml:$,ptr:S});O.push(q.trimEnd())}}while(E+1&&E<x);return[O,m($,x+1,!0,!0)]}function F0($,S,Y,E){let O={},x=new Set,H;S++;while((H=$[S++])!=="}"&&H)if(H===",")throw new z("expected value, found comma",{toml:$,ptr:S-1});else if(H==="#")S=Q$($,S);else if(H!==" "&&H!=="\t"&&H!==`
|
|
233
|
+
`&&H!=="\r"){let q,R=O,G=!1,[M,Q]=d$($,S-1);for(let c=0;c<M.length;c++){if(c)R=G?R[q]:R[q]={};if(q=M[c],(G=Object.hasOwn(R,q))&&(typeof R[q]!=="object"||x.has(R[q])))throw new z("trying to redefine an already defined value",{toml:$,ptr:S});if(!G&&q==="__proto__")Object.defineProperty(R,q,{enumerable:!0,configurable:!0,writable:!0})}if(G)throw new z("trying to redefine an already defined value",{toml:$,ptr:S});let[Z,B]=T$($,Q,"}",Y-1,E);x.add(Z),R[q]=Z,S=B}if(!H)throw new z("unfinished table encountered",{toml:$,ptr:S});return[O,S]}function k0($,S,Y,E){let O=[],x;S++;while((x=$[S++])!=="]"&&x)if(x===",")throw new z("expected value, found comma",{toml:$,ptr:S-1});else if(x==="#")S=Q$($,S);else if(x!==" "&&x!=="\t"&&x!==`
|
|
234
|
+
`&&x!=="\r"){let H=T$($,S-1,"]",Y-1,E);O.push(H[0]),S=H[1]}if(!x)throw new z("unfinished array encountered",{toml:$,ptr:S});return[O,S]}/*!
|
|
235
235
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
236
236
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
237
237
|
*
|
|
@@ -257,8 +257,8 @@ ${O}`,S);this.line=E,this.column=Y,this.codeblock=O}}/*!
|
|
|
257
257
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
258
258
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
259
259
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
260
|
-
*/function
|
|
261
|
-
`&&$[
|
|
260
|
+
*/function u0($,S,Y,E){let O=S,x=Y,H,q=!1,R;for(let G=0;G<$.length;G++){if(G){if(O=q?O[H]:O[H]={},x=(R=x[H]).c,E===0&&(R.t===1||R.t===2))return null;if(R.t===2){let M=O.length-1;O=O[M],x=x[M].c}}if(H=$[G],(q=Object.hasOwn(O,H))&&x[H]?.t===0&&x[H]?.d)return null;if(!q){if(H==="__proto__")Object.defineProperty(O,H,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(x,H,{enumerable:!0,configurable:!0,writable:!0});x[H]={t:G<$.length-1&&E===2?3:E,d:!1,i:0,c:{}}}}if(R=x[H],R.t!==E&&!(E===1&&R.t===3))return null;if(E===2){if(!R.d)R.d=!0,O[H]=[];O[H].push(O={}),R.c[R.i++]=R={t:1,d:!1,i:0,c:{}}}if(R.d)return null;if(R.d=!0,E===1)O=q?O[H]:O[H]={};else if(E===0&&q)return null;return[H,O,R.c]}function W1($,{maxDepth:S=1000,integersAsBigInt:Y}={}){let E={},O={},x=E,H=O;for(let q=m($,0);q<$.length;){if($[q]==="["){let R=$[++q]==="[",G=d$($,q+=+R,"]");if(R){if($[G[1]-1]!=="]")throw new z("expected end of table declaration",{toml:$,ptr:G[1]-1});G[1]++}let M=u0(G[0],E,O,R?2:1);if(!M)throw new z("trying to redefine an already defined table or value",{toml:$,ptr:q});H=M[2],x=M[1],q=G[1]}else{let R=d$($,q),G=u0(R[0],x,H,0);if(!G)throw new z("trying to redefine an already defined table or value",{toml:$,ptr:q});let M=T$($,R[1],void 0,S,Y);G[1][G[0]]=M[0],q=M[1]}if(q=m($,q,!0),$[q]&&$[q]!==`
|
|
261
|
+
`&&$[q]!=="\r")throw new z("each key-value declaration must be followed by an end-of-line",{toml:$,ptr:q});q=m($,q)}return E}/*!
|
|
262
262
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
263
263
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
264
264
|
*
|
|
@@ -284,16 +284,16 @@ ${O}`,S);this.line=E,this.column=Y,this.codeblock=O}}/*!
|
|
|
284
284
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
285
285
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
286
286
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
287
|
-
*/var
|
|
287
|
+
*/var g0=/^[a-z0-9-_]+$/i;function I$($){let S=typeof $;if(S==="object"){if(Array.isArray($))return"array";if($ instanceof Date)return"date"}return S}function gS($){for(let S=0;S<$.length;S++)if(I$($[S])!=="object")return!1;return $.length!=0}function T1($){return JSON.stringify($).replace(/\x7f/g,"\\u007f")}function I1($,S,Y,E){if(Y===0)throw Error("Could not stringify the object: maximum object depth exceeded");if(S==="number"){if(isNaN($))return"nan";if($===1/0)return"inf";if($===-1/0)return"-inf";if(E&&Number.isInteger($))return $.toFixed(1);return $.toString()}if(S==="bigint"||S==="boolean")return $.toString();if(S==="string")return T1($);if(S==="date"){if(isNaN($.getTime()))throw TypeError("cannot serialize invalid date");return $.toISOString()}if(S==="object")return dS($,Y,E);if(S==="array")return cS($,Y,E)}function dS($,S,Y){let E=Object.keys($);if(E.length===0)return"{}";let O="{ ";for(let x=0;x<E.length;x++){let H=E[x];if(x)O+=", ";O+=g0.test(H)?H:T1(H),O+=" = ",O+=I1($[H],I$($[H]),S-1,Y)}return O+" }"}function cS($,S,Y){if($.length===0)return"[]";let E="[ ";for(let O=0;O<$.length;O++){if(O)E+=", ";if($[O]===null||$[O]===void 0)throw TypeError("arrays cannot contain null or undefined values");E+=I1($[O],I$($[O]),S-1,Y)}return E+" ]"}function DS($,S,Y,E){if(Y===0)throw Error("Could not stringify the object: maximum object depth exceeded");let O="";for(let x=0;x<$.length;x++)O+=`${O&&`
|
|
288
288
|
`}[[${S}]]
|
|
289
|
-
`,O+=
|
|
290
|
-
`)+
|
|
291
|
-
`)+
|
|
289
|
+
`,O+=X1(0,$[x],S,Y,E);return O}function X1($,S,Y,E,O){if(E===0)throw Error("Could not stringify the object: maximum object depth exceeded");let x="",H="",q=Object.keys(S);for(let R=0;R<q.length;R++){let G=q[R];if(S[G]!==null&&S[G]!==void 0){let M=I$(S[G]);if(M==="symbol"||M==="function")throw TypeError(`cannot serialize values of type '${M}'`);let Q=g0.test(G)?G:T1(G);if(M==="array"&&gS(S[G]))H+=(H&&`
|
|
290
|
+
`)+DS(S[G],Y?`${Y}.${Q}`:Q,E-1,O);else if(M==="object"){let Z=Y?`${Y}.${Q}`:Q;H+=(H&&`
|
|
291
|
+
`)+X1(Z,S[G],Z,E-1,O)}else x+=Q,x+=" = ",x+=I1(S[G],M,E,O),x+=`
|
|
292
292
|
`}}if($&&(x||!H))x=x?`[${$}]
|
|
293
293
|
${x}`:`[${$}]`;return x&&H?`${x}
|
|
294
|
-
${H}`:x||H}function
|
|
295
|
-
`)return
|
|
296
|
-
`;return
|
|
294
|
+
${H}`:x||H}function L1($,{maxDepth:S=1000,numbersAsFloat:Y=!1}={}){if(I$($)!=="object")throw TypeError("stringify can only be called with an object");let E=X1(0,$,"",S,Y);if(E[E.length-1]!==`
|
|
295
|
+
`)return E+`
|
|
296
|
+
`;return E}/*!
|
|
297
297
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
298
298
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
299
299
|
*
|
|
@@ -319,33 +319,33 @@ ${H}`:x||H}function N1($,{maxDepth:S=1000,numbersAsFloat:E=!1}={}){if(z$($)!=="o
|
|
|
319
319
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
320
320
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
321
321
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
322
|
-
*/var
|
|
323
|
-
`;await Bun.write(
|
|
324
|
-
`)}var i2={id:"gemini",name:"Gemini CLI",package:"@google/gemini-cli",command:"gemini",runtime:"native",brandColor:"cyan",getEnvVars($){return{GEMINI_API_KEY:$,GOOGLE_GEMINI_BASE_URL:"https://tako.shiroha.tech"}},setupConfigFiles:o2};x$(i2);import{join as B1}from"path";h();var u$=null,d$={cn:{npm:"https://registry.npmmirror.com",bunBinary:"https://registry.npmmirror.com/-/binary/bun"},global:{npm:"https://registry.npmjs.org",bunBinary:null}};async function v$(){if(u$)return u$;let $=[a2,r2,n2];for(let S of $)try{let E=await Promise.race([S(),new Promise((Y,O)=>setTimeout(()=>O(Error("timeout")),3000))]);if(E)return u$=E,E}catch{}return u$="cn","cn"}async function a2(){try{let $=await fetch("http://ip-api.com/json/?fields=countryCode",{signal:AbortSignal.timeout(2000)});if(!$.ok)return null;return(await $.json()).countryCode==="CN"?"cn":"global"}catch{return null}}async function r2(){try{let $=await fetch("https://ipinfo.io/json",{signal:AbortSignal.timeout(2000)});if(!$.ok)return null;return(await $.json()).country==="CN"?"cn":"global"}catch{return null}}async function n2(){try{let $=await fetch("https://api.ip.sb/geoip",{signal:AbortSignal.timeout(2000)});if(!$.ok)return null;return(await $.json()).country_code==="CN"?"cn":"global"}catch{return null}}async function s2(){let $=await v$();return d$[$]}async function e(){return(await s2()).npm}function c0(){return"curl -fsSL https://bun.sh/install | bash"}async function e2(){let $=d$.cn.bunBinary,S=await fetch(`${$}/`,{signal:AbortSignal.timeout(1e4)});if(!S.ok)throw Error(`Failed to fetch bun versions: ${S.status}`);let Y=(await S.json()).map((O)=>O.name.replace(/\/$/,"")).filter((O)=>/^bun-v\d+\.\d+\.\d+$/.test(O)).sort((O,x)=>{let H=O.replace("bun-v","").split(".").map(Number),R=x.replace("bun-v","").split(".").map(Number);for(let q=0;q<3;q++)if(H[q]!==R[q])return R[q]-H[q];return 0});if(Y.length===0)throw Error("No bun versions found on mirror");return Y[0]}async function D0(){let $=d$.cn.bunBinary,S=await e2(),Y={darwin:"darwin",win32:"windows",linux:"linux"}[process.platform]||"linux",O=process.arch==="arm64"?"aarch64":"x64",x=`bun-${Y}-${O}`;return`${$}/${S}/${x}.zip`}async function l0(){let $=await v$(),S=d$[$];if($==="cn")Z.info(v("region.usingChinaMirror")),Z.message(` npm: ${S.npm}`);else Z.info(v("region.usingGlobalMirror"))}var t2=class{constructor($){this.baseUrl=$.baseUrl,this.headers={"Content-Type":"application/json",...$.defaultHeaders},this.maxRetries=$.maxRetries??3,this.initialRetryDelay=$.initialRetryDelay??500}async resolveHeaders(){let $={};for(let[S,E]of Object.entries(this.headers)){let Y=await E;Y!==null&&($[S]=Y)}return $}addHeader($,S){this.headers[$]=S}async post($,S,E,Y){try{let O=await fetch($,{method:"POST",headers:await this.resolveHeaders(),body:S?JSON.stringify(S??{}):void 0,keepalive:!0,...E});if(O.status===401)return null;if(O.status!==200&&O.status!==202)throw Error(`HTTP error! status: ${O.status}`);let x=await O.text();return x?JSON.parse(x):null}catch(O){if(Y<this.maxRetries){let x=this.initialRetryDelay*2**Y;return await new Promise((H)=>setTimeout(H,x)),this.post($,S,E,Y+1)}return console.error("Max retries reached:",O),null}}async fetch($,S,E={}){let Y=`${this.baseUrl}${$}`;return this.post(Y,S,E,0)}},p0=class{constructor($){this.options=$,this.queue=[];let S={"openpanel-client-id":$.clientId};$.clientSecret&&(S["openpanel-client-secret"]=$.clientSecret),S["openpanel-sdk-name"]=$.sdk||"node",S["openpanel-sdk-version"]=$.sdkVersion||"1.0.4",this.api=new t2({baseUrl:$.apiUrl||"https://api.openpanel.dev",defaultHeaders:S})}init(){}ready(){this.options.waitForProfile=!1,this.flush()}async send($){return this.options.disabled||this.options.filter&&!this.options.filter($)?Promise.resolve():this.options.waitForProfile&&!this.profileId?(this.queue.push($),Promise.resolve()):this.api.fetch("/track",$)}setGlobalProperties($){this.global={...this.global,...$}}async track($,S){return this.log("track event",$,S),this.send({type:"track",payload:{name:$,profileId:S?.profileId??this.profileId,properties:{...this.global??{},...S??{}}}})}async identify($){if(this.log("identify user",$),$.profileId&&(this.profileId=$.profileId,this.flush()),Object.keys($).length>1)return this.send({type:"identify",payload:{...$,properties:{...this.global,...$.properties}}})}async alias($){}async increment($){return this.send({type:"increment",payload:$})}async decrement($){return this.send({type:"decrement",payload:$})}async revenue($,S){let E=S?.deviceId;return delete S?.deviceId,this.track("revenue",{...S??{},...E?{__deviceId:E}:{},__revenue:$})}async fetchDeviceId(){return(await this.api.fetch("/track/device-id",void 0,{method:"GET",keepalive:!1}))?.deviceId??""}clear(){this.profileId=void 0}flush(){this.queue.forEach(($)=>{this.send({...$,payload:{...$.payload,profileId:$.payload.profileId??this.profileId}})}),this.queue=[]}log(...$){this.options.debug&&console.log("[OpenPanel.dev]",...$)}};var $H="f8ec91ab-20e5-4c17-bece-f5f2fe647a71",SH="sec_3038f0cb74f91312f374",HH="https://op.shiroha.tech/api",w$=null;function U1(){if(!w$)w$=new p0({clientId:$H,clientSecret:SH,apiUrl:HH});return w$}async function o0(){if(w$){try{w$.flush()}catch{}w$=null}}h();h();var EH="0.2.18";function i0(){return{cli_version:EH,platform:process.platform,arch:process.arch,locale:s(),node_version:process.version}}function a0($){return Bun.hash($).toString(16).slice(0,8)}var YH="0.2.18",r0=!1,I$=null,V1=[];async function n0(){if(I$!==null)return I$;try{return I$=(await U()).telemetryEnabled!==!1,I$}catch{return I$=!1,!1}}async function OH(){try{return(await U()).apiId||"anonymous"}catch{return"anonymous"}}async function c$(){if(r0)return;try{if(!await n0())return;let $=await U();if(!$.apiId)return;let S=U1(),E=await v$();await S.identify({profileId:$.apiId,properties:{region:E,locale:s(),first_seen_version:YH,platform:process.platform,arch:process.arch}}),r0=!0}catch{}}function L($,S){let E=xH($,S).catch(()=>{});V1.push(E)}async function xH($,S){try{if(!await n0())return;let E=U1(),Y=await OH();await E.track($,{profileId:Y,...i0(),...S})}catch{}}async function N$(){await Promise.allSettled(V1),V1.length=0,await o0()}var t=null;function RH($){return $.startsWith(p)}async function GH(){try{if(!await Bun.file(C).exists())return null;let S=Bun.spawn([C,"--version"],{stdout:"pipe",stderr:"pipe"});if(await S.exited,S.exitCode!==0)return null;return(await new Response(S.stdout).text()).trim()}catch{return null}}async function e0(){return await GH()!==null}async function qH(){if(process.platform==="win32")return!0;try{let S=Bun.spawn(["which","unzip"],{stdout:"pipe",stderr:"pipe"});if(await S.exited,S.exitCode===0)return!0}catch{}Z.warn("\u6B63\u5728\u5B89\u88C5\u7CFB\u7EDF\u4F9D\u8D56 (unzip)...");let $=["apt-get update -qq && apt-get install -y -qq unzip","yum install -y -q unzip","dnf install -y -q unzip","pacman -S --noconfirm unzip","apk add --quiet unzip"];for(let S of $)try{let E=Bun.spawn(["bash","-c",`sudo ${S} 2>/dev/null || ${S}`],{stdout:"pipe",stderr:"pipe"});if(await E.exited,E.exitCode===0)return!0}catch{}return!1}async function bH($){let S=await import("fs/promises"),{join:E}=await import("path"),Y=process.platform==="win32",O=Y?"bun.exe":"bun",x=await D0();Z.info(`\u4ECE npmmirror \u4E0B\u8F7D: ${x}`);let H=await fetch(x);if(!H.ok)throw Error(`\u4E0B\u8F7D\u5931\u8D25: ${H.status}`);let R=E($,"bun-download.zip");await Bun.write(R,H);let q=E($,"bin");if(await S.mkdir(q,{recursive:!0}),Y){let w=`Expand-Archive -Path "${R}" -DestinationPath "${$}" -Force`,M=Bun.spawn(["powershell","-Command",w],{stdout:"pipe",stderr:"pipe"});if(await M.exited,M.exitCode!==0)throw Error("\u89E3\u538B\u5931\u8D25")}else{let w=Bun.spawn(["unzip","-oq",R,"-d",$],{stdout:"pipe",stderr:"pipe"});if(await w.exited,w.exitCode!==0)throw Error("\u89E3\u538B\u5931\u8D25")}let G=await S.readdir($);for(let w of G){let M=E($,w);if((await S.stat(M)).isDirectory()&&w.startsWith("bun-")){let V=E(M,O);try{if(await S.access(V),await S.rename(V,E(q,O)),!Y)await S.chmod(E(q,O),493);await S.rm(M,{recursive:!0,force:!0});break}catch{}}}return await S.rm(R,{force:!0}),!0}async function vH(){let $=g();if(!await qH())return Z.error("\u8BF7\u5148\u624B\u52A8\u5B89\u88C5 unzip: apt install unzip / yum install unzip"),!1;await l0(),$.start("\u6B63\u5728\u5B89\u88C5 Tako \u4E13\u5C5E Bun \u8FD0\u884C\u65F6...");try{if(await(await import("fs/promises")).mkdir(p,{recursive:!0}),await v$()==="cn")await bH(p);else if(process.platform==="win32"){let Y=`$env:BUN_INSTALL="${p}"; irm bun.sh/install.ps1 | iex`;if(await Bun.spawn(["powershell","-Command",Y],{stdout:"inherit",stderr:"inherit"}).exited!==0)return $.stop("Bun \u5B89\u88C5\u5931\u8D25"),!1}else{let Y=`BUN_INSTALL="${p}" ${c0()}`;if(await Bun.spawn(["bash","-c",Y],{stdout:"inherit",stderr:"inherit"}).exited!==0)return $.stop("Bun \u5B89\u88C5\u5931\u8D25"),!1}return t=C,$.stop("Tako \u4E13\u5C5E Bun \u5B89\u88C5\u5B8C\u6210"),Z.info(`\u5B89\u88C5\u4F4D\u7F6E: ${p}`),!0}catch(S){return $.stop("Bun \u5B89\u88C5\u5931\u8D25"),!1}}async function wH(){if(await e0())return t=C,!0;return Z.warn("\u672A\u68C0\u6D4B\u5230 Tako \u4E13\u5C5E Bun\uFF0C\u6B63\u5728\u81EA\u52A8\u5B89\u88C5..."),Z.info("\uFF08\u4E0D\u4F1A\u5F71\u54CD\u60A8\u7CFB\u7EDF\u4E2D\u5DF2\u5B89\u88C5\u7684 Node.js \u6216 Bun\uFF09"),await vH()}async function A1(){if(t){if(!RH(t))t=C;return t}if(await e0())return t=C,C;return C}async function t0($){try{let S=await e(),E=await fetch(`${S}/${$}/latest`);if(!E.ok)return null;return(await E.json()).version}catch{return null}}async function MH($){return(await U()).installedClients[$.id]?.version||null}async function $S($){let S=Q$($.id),E=B1(S,"package.json");try{return await Bun.file(E).exists()}catch{return!1}}async function SS($){let S=await MH($);if(!S)return!0;let E=await t0($.package);if(!E)return!1;return S!==E}async function s0($,S=!1){let E=g(),Y=Q$($.id);try{if(!await wH())return{success:!1,error:"Tako \u4E13\u5C5E Bun \u5B89\u88C5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u6216\u624B\u52A8\u5220\u9664 ~/.tako/bun \u76EE\u5F55\u540E\u91CD\u8BD5"};let O=await $S($),x=S||await SS($);if(O&&!x)return{success:!0};let H=O?"\u66F4\u65B0":"\u5B89\u88C5";E.start(`\u6B63\u5728${H} ${$.name}...`);let R=await import("fs/promises");await R.mkdir(Y,{recursive:!0});let q=B1(Y,"package.json");if(!await Bun.file(q).exists())await Bun.write(q,JSON.stringify({name:`tako-${$.id}`,private:!0,dependencies:{}},null,2));let w=await A1(),M=await e();if(O){let Y$=B1(Y,"bun.lock");try{await R.unlink(Y$)}catch{}}let J=Bun.spawn([w,"add",`${$.package}@latest`],{cwd:Y,stdout:"pipe",stderr:"pipe",env:{...process.env,BUN_CONFIG_REGISTRY:M}});if(await J.exited!==0){let Y$=await new Response(J.stderr).text();return E.stop(`${H} ${$.name} \u5931\u8D25`),{success:!1,error:Y$}}let j=await t0($.package),u1=(await U()).installedClients[$.id]?.version;if(j){let Y$=await U();if(Y$.installedClients[$.id]={version:j,installedAt:new Date().toISOString()},await a(Y$),O&&u1)L("client_updated",{client_id:$.id,from_version:u1,to_version:j});else L("client_installed",{client_id:$.id,client_version:j})}return E.stop(`${$.name} ${H}\u5B8C\u6210`),{success:!0}}catch(O){return E.stop("\u64CD\u4F5C\u5931\u8D25"),{success:!1,error:O instanceof Error?O.message:"\u672A\u77E5\u9519\u8BEF"}}}async function D$($){if(!await $S($))return await s0($);if(await SS($))return await s0($,!0);return{success:!0}}import{homedir as QH}from"os";var ZH=50,h1=3;async function W$($){try{return(await(await import("fs/promises")).stat($)).isDirectory()}catch{return!1}}async function l$($,S){let E=await U(),Y=E.recentProjects||[],O=new Date().toISOString(),x=Y.findIndex((R)=>R.path===$);if(x>=0){let R=Y[x],q=R.clientUsage||{},G=q[S]||{count:0,lastAt:O};Y[x]={...R,launchCount:R.launchCount+1,lastLaunchedAt:O,lastClientId:S,clientUsage:{...q,[S]:{count:G.count+1,lastAt:O}}}}else Y.push({path:$,launchCount:1,lastLaunchedAt:O,lastClientId:S,clientUsage:{[S]:{count:1,lastAt:O}}});let H=Y.sort((R,q)=>new Date(q.lastLaunchedAt).getTime()-new Date(R.lastLaunchedAt).getTime()).slice(0,ZH);E.recentProjects=H,await s$(E)}function JH($,S){let E=$.clientUsage?.[S];if(E)return new Date(E.lastAt).getTime();if($.lastClientId===S)return new Date($.lastLaunchedAt).getTime();return 0}async function HS($,S=h1,E=!0){let O=(await U()).recentProjects||[],x=process.cwd(),R=O.filter((G)=>{if(E&&G.path===x)return!1;return G.clientUsage?.[$]||G.lastClientId===$}).map((G)=>({...G,lastUsedTime:JH(G,$)})).sort((G,w)=>w.lastUsedTime-G.lastUsedTime),q=[];for(let{lastUsedTime:G,...w}of R){if(q.length>=S)break;if(await W$(w.path))q.push(w)}return q}async function ES(){let S=(await U()).recentProjects||[],E=process.cwd();return S.find((O)=>O.path===E)?.lastClientId||null}function YS($,S=25){let E=QH(),Y=$.startsWith(E)?"~"+$.slice(E.length):$;if(Y.length>S){let x=Y.split("/").pop()||"";if(x.length>S-4)Y="..."+x.slice(-S+3);else Y=`.../${x}`}return Y}function OS($){let{t:S}=(h(),LS(K0)),E=Date.now(),Y=new Date($).getTime(),O=E-Y,x=Math.floor(O/60000),H=Math.floor(O/3600000),R=Math.floor(O/86400000),q=Math.floor(R/7),G=Math.floor(R/30);if(x<1)return S("time.justNow");if(x<60)return S("time.minutesAgo",{n:x});if(H<24)return S("time.hoursAgo",{n:H});if(R===1)return S("time.yesterday");if(R<7)return S("time.daysAgo",{n:R});if(R<30)return S("time.weeksAgo",{n:q});return S("time.monthsAgo",{n:G})}h();async function xS($,S){try{let E=S?.projectPath||process.cwd();if(S?.projectPath){if(!await W$(S.projectPath))return{success:!1,error:`\u76EE\u5F55\u4E0D\u5B58\u5728: ${S.projectPath}`}}let Y=await D$($);if(!Y.success)return Y;let O=await V$();if(!O)return{success:!1,error:"\u672A\u914D\u7F6E API Key"};if($.setupConfigFiles)await $.setupConfigFiles(O,S?.selectedOptionIds);let x=await s1($);if(!x)x=e1($);if(!await Bun.file(x).exists())return{success:!1,error:`\u627E\u4E0D\u5230\u53EF\u6267\u884C\u6587\u4EF6: ${x}`};await l$(E,$.id);let R=$.getEnvVars(O),q={...process.env,...R};Z.info(`\u542F\u52A8 ${$.name}...`);let G;if($.runtime==="native")G=[x];else G=[await A1(),x];if(S?.args&&S.args.length>0)G=[...G,...S.args];return await Bun.spawn(G,{env:q,stdio:["inherit","inherit","inherit"],cwd:E}).exited,{success:!0}}catch(E){return{success:!1,error:E instanceof Error?E.message:"\u542F\u52A8\u5931\u8D25"}}}async function $$($,S){try{let E=S?.projectPath||process.cwd();if(S?.projectPath){if(!await W$(S.projectPath))return{success:!1,error:v("launcher.directoryNotFound",{path:S.projectPath})}}let Y=await D$($);if(!Y.success)return Y;let O=await V$();if(!O)return{success:!1,error:v("launcher.apiKeyNotConfigured")};if($.setupConfigFiles)await $.setupConfigFiles(O,S?.selectedOptionIds);await l$(E,$.id);let H=(await U()).installedClients[$.id]?.version;return L("client_launched",{client_id:$.id,client_version:H,project_hash:a0(E),is_recent_project:!!S?.projectPath}),Z.info(v("launcher.starting",{client:$.name})),await xS($,S)}catch(E){return{success:!1,error:E instanceof Error?E.message:"Launch failed"}}}h();import{join as u}from"path";var K1="tako-cli",S$="0.2.18";function TH($,S){let E=$.split(".").map(Number),Y=S.split(".").map(Number);for(let O=0;O<3;O++){let x=E[O]||0,H=Y[O]||0;if(x>H)return 1;if(x<H)return-1}return 0}async function zH(){try{let $=await e(),S=await fetch(`${$}/${K1}/latest`,{signal:AbortSignal.timeout(5000)});if(!S.ok)return null;return(await S.json()).version||null}catch{return null}}async function IH(){let $=await zH();if(!$)return{hasUpdate:!1,currentVersion:S$};return{hasUpdate:TH($,S$)>0,latestVersion:$,currentVersion:S$}}async function RS(){let $=await import("fs/promises"),S=u(F,"bin"),E=u(S,"tako"),Y=u(k,"node_modules/tako-cli/dist/index.js");if(await $.mkdir(S,{recursive:!0}),process.platform==="win32"){let x=`@echo off\r
|
|
325
|
-
"${C}" "${
|
|
326
|
-
`;await $.writeFile(
|
|
327
|
-
exec "${C}" "${
|
|
328
|
-
`;await $.writeFile(E,x,{mode:493})}}async function NH($){let S=g();S.start(`\u6B63\u5728\u66F4\u65B0\u5230 v${$}...`);try{let E=await e(),Y=await import("fs/promises");await Y.mkdir(k,{recursive:!0});let O=u(k,"package.json");try{await Y.access(O)}catch{await Y.writeFile(O,JSON.stringify({name:"tako-local",private:!0},null,2))}let x=Bun.spawn([C,"update",K1,"--latest"],{cwd:k,stdout:"pipe",stderr:"pipe",env:{...process.env,BUN_CONFIG_REGISTRY:E}});if(await x.exited,x.exitCode===0)return await RS(),L("cli_updated",{from_version:S$,to_version:$}),S.stop(`\u66F4\u65B0\u6210\u529F\uFF01\u5DF2\u66F4\u65B0\u5230 v${$}`),!0;else{let H=await new Response(x.stderr).text();return S.stop(`\u66F4\u65B0\u5931\u8D25: ${H||"\u672A\u77E5\u9519\u8BEF"}`),!1}}catch(E){return S.stop(`\u66F4\u65B0\u5931\u8D25: ${E instanceof Error?E.message:"\u672A\u77E5\u9519\u8BEF"}`),!1}}async function WH(){let $=await import("fs/promises"),S=u(k,"bun.lock");try{await $.unlink(S)}catch{}}async function LH(){let $=await import("fs/promises");try{let S=await e();await $.mkdir(k,{recursive:!0});let E=u(k,"package.json");try{await $.access(E)}catch{await $.writeFile(E,JSON.stringify({name:"tako-local",private:!0},null,2))}await WH();let Y=Bun.spawn([C,"add",`${K1}@latest`],{cwd:k,stdout:"pipe",stderr:"pipe",env:{...process.env,BUN_CONFIG_REGISTRY:S}});return await Y.exited,Y.exitCode===0}catch{return!1}}async function XH(){let $=await import("fs/promises"),S=u(F,"bin"),E=u(S,"tako"),Y=u(k,"node_modules/tako-cli/dist/index.js");try{let O=await $.readFile(E,"utf-8");if(O.includes("bun run tako-cli")||O.includes("run tako-cli")){Z.info(v("updater.migrating"));let x=!1;try{await $.access(Y),x=!0}catch{x=!1}if(!x){let H=g();if(H.start(v("updater.installingLocally")),!await LH())return H.stop(v("updater.migrationFailed")),!1;H.stop(v("updater.installComplete"))}return await RS(),!0}}catch{}return!1}async function L$(){try{if(await XH())Z.info(v("updater.migrationComplete")),process.exit(0);let S=await IH();if(S.hasUpdate&&S.latestVersion){if(Z.warn(v("updater.newVersionAvailable",{version:S.latestVersion,current:S$})),await NH(S.latestVersion))Z.info(v("updater.pleaseRestart")),process.exit(0)}}catch{}}h();function UH($){let S=$.codePointAt(0);if(!S)return!1;return S>=19968&&S<=40959||S>=13312&&S<=19903||S>=131072&&S<=191471||S>=63744&&S<=64255||S>=194560&&S<=195103||S>=44032&&S<=55215||S>=12352&&S<=12447||S>=12448&&S<=12543||S>=65280&&S<=65519||S>=126976&&S<=131071||S>=9728&&S<=10175||S===11088}function VH($){return $.replace(/\x1b\[[0-9;]*m/g,"")}function C1($){let S=VH($),E=0;for(let Y of S)E+=UH(Y)?2:1;return E}h();var m1="__skip_prompt__";async function H$($){let S=$.launchOptions;if(!S||S.length===0)return{args:[],selectedOptionIds:[]};let E=await U(),Y=E.clientOptions?.[$.id];if(Y&&E.clientOptionsLocked?.[$.id])return GS(S,Y);let O=await BH($,S,Y);if(O===null)return null;if(await a({clientOptions:{...E.clientOptions,[$.id]:O.selectedIds},...O.lock?{clientOptionsLocked:{...E.clientOptionsLocked,[$.id]:!0}}:{}}),O.lock){let x=q$();Z.info(x==="zh"?"\u5DF2\u4FDD\u5B58\uFF0C\u4E0B\u6B21\u5C06\u8DF3\u8FC7\u6B64\u9009\u62E9\u3002\u53EF\u5728\u300C\u9AD8\u7EA7 \u2192 \u91CD\u7F6E\u542F\u52A8\u9009\u9879\u300D\u4E2D\u4FEE\u6539\u3002":"Saved. This prompt will be skipped next time. Reset in Advanced \u2192 Reset Launch Options.")}return GS(S,O.selectedIds)}async function qS(){await a({clientOptions:{},clientOptionsLocked:{}})}function GS($,S){let E=[];for(let Y of S){let O=$.find((x)=>x.id===Y);if(O)E.push(...O.args)}return{args:E,selectedOptionIds:S}}async function BH($,S,E){let Y=q$(),O=(G)=>Y==="zh"?G.label.zh:G.label.en,x=[],H=new Map,R=[];for(let G of S)if(G.group){if(!H.has(G.group))H.set(G.group,[]);H.get(G.group).push(G)}else R.push(G);for(let[,G]of H){let M=G.find((V)=>E?.includes(V.id))?.id??"__none__",J=await n({message:v("menu.selectOptions")||`${$.name} options`,initialValue:M,options:[{value:"__none__",label:Y==="zh"?"\u8DF3\u8FC7":"Skip",hint:""},...G.map((V)=>({value:V.id,label:O(V),hint:V.flag}))]});if(A(J))return null;if(J!=="__none__")x.push(J)}if(R.length>0){let G=await h0({message:v("menu.selectOptions")||`${$.name} options`,options:[...R.map((J)=>({value:J.id,label:O(J),hint:J.flag,initialValue:E?.includes(J.id)??!1})),{value:m1,label:Y==="zh"?"\u4EE5\u540E\u4E0D\u518D\u663E\u793A\u6B64\u9009\u62E9":"Don't show this again",hint:""}],required:!1});if(A(G))return null;let w=G,M=w.includes(m1);return x.push(...w.filter((J)=>J!==m1)),{selectedIds:x,lock:M}}let q=await j$({message:Y==="zh"?"\u4EE5\u540E\u4E0D\u518D\u663E\u793A\u6B64\u9009\u62E9\uFF1F":"Don't show this again?",initialValue:!1});if(A(q))return null;return{selectedIds:x,lock:!!q}}h();async function bS(){let $=t1(),S=await ES(),E=process.cwd(),Y=[],O=[...$].sort((x,H)=>{if(x.id===S)return-1;if(H.id===S)return 1;return 0});for(let x of O){let H=await HS(x.id,h1,!0);Y.push({value:{type:"launch",client:x},label:x.name,hint:v("recentProjects.launchInCurrent")});for(let R of H)Y.push({value:{type:"launch-in-project",client:x,projectPath:R.path},label:` \u2514\u2500 ${YS(R.path,35)}`,hint:OS(R.lastLaunchedAt)})}return Y.push({value:{type:"advanced"},label:v("menu.advanced"),hint:v("menu.advancedHint")},{value:{type:"exit"},label:v("menu.exit")}),Y}async function y1(){let $=await bS(),S=await n({message:v("menu.selectAction"),options:$});if(A(S))return null;return S}async function f1(){let $=await n({message:v("menu.advancedOptions"),options:[{value:{type:"stats"},label:v("menu.viewStats")},{value:{type:"config"},label:v("menu.configApiKey")},{value:{type:"resetOptions"},label:v("menu.resetOptions")},{value:{type:"language"},label:v("menu.changeLanguage")},{value:null,label:v("menu.back")}]});if(A($)||$===null)return null;return $}h();function AH($){return $.startsWith("cr_")&&$.length>10}async function hH($){try{let E=await(await fetch(`${c}/apiStats/api/get-key-id`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:$})})).json();if(E.success&&E.data?.id)return{valid:!0,apiId:E.data.id};return{valid:!1,error:E.error||v("auth.validationFailed")}}catch(S){return{valid:!1,error:S instanceof Error?S.message:v("auth.networkError")}}}async function vS($){if(!AH($))return L("api_key_validated",{success:!1,error_type:"invalid_format"}),{success:!1,error:v("auth.invalidFormat")};let S=await hH($);if(!S.valid)return L("api_key_validated",{success:!1,error_type:"api_validation_failed"}),{success:!1,error:S.error};return await a({apiKey:$,apiId:S.apiId}),L("api_key_validated",{success:!0}),c$(),{success:!0}}h();async function p$($=!1){if(!$)Z.warn("API Key not detected"),console.log();let S=await A0({message:v("prompts.enterApiKey"),placeholder:v("prompts.apiKeyPlaceholder"),validate(O){if(!O)return v("prompts.enterApiKey");if(!O.startsWith("cr_"))return v("prompts.keyInvalidFormat");if(O.length<10)return v("prompts.keyInvalidFormat")}});if(A(S))return!1;let E=g();E.start(v("prompts.validating"));let Y=await vS(S);if(Y.success)return E.stop(v("prompts.keyConfigured")),!0;else return E.stop(v("prompts.keyValidationFailed",{error:Y.error||""})),!1}async function X$(){try{let $=await n1();if(!$)return{success:!1,error:"\u672A\u627E\u5230 API ID\uFF0C\u8BF7\u91CD\u65B0\u914D\u7F6E Key"};let E=await(await fetch(`${c}/apiStats/api/user-stats`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiId:$})})).json(),O=await(await fetch(`${c}/apiStats/api/user-model-stats`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiId:$,period:"daily"})})).json();if(!E.success)return{success:!1,error:E.error||E.message||"\u83B7\u53D6\u7EDF\u8BA1\u5931\u8D25"};let x=(O.data||[]).map((H)=>({model:H.model,requests:H.requests,cost:H.formatted?.total||"$0.00"}));return{success:!0,data:{totalRequests:E.data?.usage?.total?.requests||0,totalCost:E.data?.usage?.total?.formattedCost||"$0.00",todayCost:`$${(E.data?.limits?.currentDailyCost||0).toFixed(2)}`,modelStats:x}}}catch($){return{success:!1,error:$ instanceof Error?$.message:"\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25"}}}function j1($){return $.toLocaleString("en-US")}h();function KH($,S){let E=[];if(E.push(""),E.push(` ${v("stats.title")}`),E.push(""),E.push(` ${v("stats.totalRequests",{count:j1($.totalRequests)})}`),E.push(` ${v("stats.totalCost",{cost:$.totalCost})}`),E.push(` ${v("stats.todayCost",{cost:$.todayCost})}`),$.modelStats.length>0)E.push(""),E.push(` ${v("stats.modelDistribution")}`),$.modelStats.forEach((Y,O)=>{let x=O===$.modelStats.length-1?"\u2514\u2500":"\u251C\u2500",H=Y.model.length>25?Y.model.slice(0,22)+"...":Y.model;E.push(` ${x} ${H.padEnd(25)} ${j1(Y.requests).padStart(6)} ${v("stats.times")} ${Y.cost.padStart(8)}`)});return E.push(""),E.push(` \x1B[90m${v("stats.refreshHint",{countdown:S})}\x1B[0m`),E.join(`
|
|
329
|
-
`)}async function
|
|
330
|
-
`).length;process.stdout.write(`\x1B[${R}A\x1B[0J`)}O=KH(E.data,Y),console.log(O)};x();let H=process.stdin.isRaw;if(process.stdin.isTTY)process.stdin.setRawMode(!0);return process.stdin.resume(),new Promise((R)=>{let q=!0,G=()=>{if(!q)return;q=!1,M(),R()},w=setInterval(async()=>{if(!q)return;if(Y--,Y<=0){Y=10;let J=await X$();if(J.success)E=J}x()},1000),M=()=>{if(clearInterval(w),process.stdin.removeListener("data",G),process.stdin.isTTY)process.stdin.setRawMode(H??!1);process.stdin.pause()};process.stdin.on("data",G)})}function CH(){let S="\u2500".repeat(50);console.log(),console.log(` \u250C${S}\u2510`);let E=`\uD83D\uDC19 ${v("cli.version",{version:S$})}`,Y=C1(E),O=Math.floor((50-Y)/2),x=50-O-Y;console.log(` \u2502${" ".repeat(O)}${E}${" ".repeat(x)}\u2502`);let H=v("banner.welcome"),R=`\x1B[90m${H}\x1B[0m`,q=C1(H),G=Math.floor((50-q)/2),w=50-G-q;console.log(` \u2502${" ".repeat(G)}${R}${" ".repeat(w)}\u2502`),console.log(` \u2514${S}\u2518`),console.log()}async function wS($){switch($.type){case"launch":{L("menu_action",{action:"launch",client_id:$.client.id});let S=await H$($.client);if(S===null)return!0;let E=await $$($.client,{args:S.args,selectedOptionIds:S.selectedOptionIds});if(!E.success)Z.error(E.error||v("cli.launchFailed"));return!0}case"launch-in-project":{L("menu_action",{action:"launch",client_id:$.client.id});let S=await H$($.client);if(S===null)return!0;let E=[...$.client.continueArg?[$.client.continueArg]:[],...S.args],Y=await $$($.client,{projectPath:$.projectPath,args:E,selectedOptionIds:S.selectedOptionIds});if(!Y.success)Z.error(Y.error||v("cli.launchFailed"));return!0}case"advanced":{L("menu_action",{action:"advanced"});let S=await f1();if(S)return await wS(S);return!0}case"stats":return L("menu_action",{action:"stats"}),await _1(),!0;case"config":return L("menu_action",{action:"config"}),await p$(!0),!0;case"resetOptions":return L("menu_action",{action:"resetOptions"}),await qS(),Z.success(v("menu.optionsReset")),!0;case"language":return L("menu_action",{action:"language"}),await mH(),!0;case"exit":return L("menu_action",{action:"exit"}),!1}}async function mH(){let $=q$(),S=v(`language.${$}`),E=await n({message:v("menu.changeLanguage")+` (${v("menu.currentLanguage",{lang:S})})`,options:[{value:"en",label:v("language.en")},{value:"zh",label:v("language.zh")}]});if(A(E))return;Z1(E);let Y=v(`language.${E}`);Z.success(v("menu.languageChanged",{lang:Y}))}async function MS(){if(CH(),!await r1()){if(!await p$()){Q1("\u518D\u89C1\uFF01");return}}while(!0){let S=await y1();if(S===null)break;if(!await wS(S))break}Q1("\u518D\u89C1\uFF01")}h();import{homedir as fH}from"os";var W={black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m"};var I={bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",reset:"\x1B[0m"};var z={directory:{icon:W.brightYellow,text:W.brightGreen},git:{icon:W.brightBlue,text:W.brightBlue,clean:W.brightGreen,dirty:W.brightYellow,conflict:W.brightRed},model:{icon:W.brightCyan,text:W.brightCyan},version:{icon:W.brightWhite,text:W.brightBlack},outputStyle:{icon:W.brightMagenta,text:W.brightMagenta},context:{icon:W.brightMagenta,low:W.brightGreen,medium:W.brightYellow,high:W.brightRed},todayUsage:{icon:W.brightGreen,text:W.brightGreen},separator:W.brightBlack},D={directory:{nerd:"\uF07B",plain:"\uD83D\uDCC1"},git:{nerd:"\uE725",plain:"\uD83C\uDF3F"},model:{nerd:"\uF11B",plain:"\uD83E\uDD16"},version:{nerd:"\uF412",plain:"\uD83D\uDCBE"},outputStyle:{nerd:"\uF12F5",plain:"\uD83C\uDFAF"},context:{nerd:"\uF0E7",plain:"\u26A1"},todayUsage:{nerd:"\uF155",plain:"\uD83D\uDCB0"},gitClean:"\u2713",gitDirty:"\u25CF",gitConflict:"\u26A0",gitAhead:"\u2191",gitBehind:"\u2193"};function yH(){return!1}function y($){let S=D[$];if(typeof S==="string")return S;return yH()?S.nerd:S.plain}class o${id="directory";render($){let S=this.formatPath($.workspace.current_dir),E=y("directory");return`${z.directory.icon}${E}${I.reset} ${z.directory.text}${S}${I.reset}`}formatPath($){let S=fH();if($===S)return"~";if($.startsWith(S+"/"))return"~"+$.slice(S.length);return $}}class i${id="git";async render($){let S=$.workspace.current_dir;if(!await this.isGitRepository(S))return null;let Y=await this.getBranch(S);if(!Y)return null;let{status:O,statusColor:x}=await this.getStatus(S),{ahead:H,behind:R}=await this.getAheadBehind(S),q=y("git"),G=`${z.git.icon}${q}${I.reset} ${z.git.text}${Y}${I.reset}`;if(G+=` ${x}${O}${I.reset}`,H>0)G+=` ${z.git.clean}${D.gitAhead}${H}${I.reset}`;if(R>0)G+=` ${z.git.dirty}${D.gitBehind}${R}${I.reset}`;return G}async isGitRepository($){try{return await Bun.spawn(["git","rev-parse","--git-dir"],{cwd:$,stdout:"pipe",stderr:"pipe"}).exited===0}catch{return!1}}async getBranch($){try{let S=Bun.spawn(["git","branch","--show-current"],{cwd:$,stdout:"pipe",stderr:"pipe"}),E=await new Response(S.stdout).text();if(await S.exited===0&&E.trim())return E.trim();let O=Bun.spawn(["git","rev-parse","--short","HEAD"],{cwd:$,stdout:"pipe",stderr:"pipe"}),x=await new Response(O.stdout).text();if(await O.exited===0&&x.trim())return`detached:${x.trim()}`;return null}catch{return null}}async getStatus($){try{let S=Bun.spawn(["git","status","--porcelain"],{cwd:$,stdout:"pipe",stderr:"pipe"}),E=await new Response(S.stdout).text();if(await S.exited!==0)return{status:D.gitClean,statusColor:z.git.clean};let O=E.trim();if(!O)return{status:D.gitClean,statusColor:z.git.clean};if(O.includes("UU")||O.includes("AA")||O.includes("DD"))return{status:D.gitConflict,statusColor:z.git.conflict};return{status:D.gitDirty,statusColor:z.git.dirty}}catch{return{status:D.gitClean,statusColor:z.git.clean}}}async getAheadBehind($){try{let S=Bun.spawn(["git","rev-list","--count","@{u}..HEAD"],{cwd:$,stdout:"pipe",stderr:"pipe"}),E=await new Response(S.stdout).text(),O=await S.exited===0?parseInt(E.trim(),10)||0:0,x=Bun.spawn(["git","rev-list","--count","HEAD..@{u}"],{cwd:$,stdout:"pipe",stderr:"pipe"}),H=await new Response(x.stdout).text(),q=await x.exited===0?parseInt(H.trim(),10)||0:0;return{ahead:O,behind:q}}catch{return{ahead:0,behind:0}}}}var jH={"claude-opus-4-5-20251101":"Opus 4.5","claude-opus-4-5":"Opus 4.5","claude-sonnet-4-5-20250514":"Sonnet 4.5","claude-sonnet-4-5":"Sonnet 4.5","claude-sonnet-4-20250514":"Sonnet 4","claude-sonnet-4":"Sonnet 4","claude-sonnet-3-5-20241022":"Sonnet 3.5","claude-3-5-sonnet-20241022":"Sonnet 3.5","claude-3-5-sonnet":"Sonnet 3.5","claude-haiku-3-5-20241022":"Haiku 3.5","claude-3-5-haiku-20241022":"Haiku 3.5","claude-3-5-haiku":"Haiku 3.5"};class a${id="model";render($){let S=$.model.id,E=jH[S]||this.simplifyModelName($.model.display_name),Y=y("model");return`${z.model.icon}${Y}${I.reset} ${z.model.text}${E}${I.reset}`}simplifyModelName($){let S=$.replace(/^Claude\s+/i,"");return S=S.replace(/-\d{8}$/,""),S}}import{homedir as _H}from"os";import{join as P}from"path";var{Glob:PH}=globalThis.Bun;var QS=process.platform==="win32";class r${id="version";async render($){let S=await this.getClaudeCodeVersion();if(!S)return null;let E=y("version");return`${z.version.icon}${E}${I.reset} ${z.version.text}v${S}${I.reset}`}async getClaudeCodeVersion(){let $=_H(),S=[];if(QS)S.push(P($,"AppData","Roaming","npm","node_modules","@anthropic-ai","claude-code","package.json"),P($,"AppData","Local","npm-cache","_npx","**","node_modules","@anthropic-ai","claude-code","package.json"),P($,".bun","install","global","node_modules","@anthropic-ai","claude-code","package.json"));else S.push(P($,".bun","install","global","node_modules","@anthropic-ai","claude-code","package.json"),P($,".npm-global","lib","node_modules","@anthropic-ai","claude-code","package.json"),"/usr/local/lib/node_modules/@anthropic-ai/claude-code/package.json","/usr/lib/node_modules/@anthropic-ai/claude-code/package.json");for(let Y of S){let O=await this.readVersionFromPackage(Y);if(O)return O}let E=[];if(QS)E.push({base:P($,"AppData","Roaming","nvm"),pattern:"*/node_modules/@anthropic-ai/claude-code/package.json"},{base:P($,".volta","tools","image","packages","@anthropic-ai","claude-code"),pattern:"*/package.json"});else E.push({base:P($,".local","share","fnm","node-versions"),pattern:"*/installation/lib/node_modules/@anthropic-ai/claude-code/package.json"},{base:P($,".nvm","versions","node"),pattern:"*/lib/node_modules/@anthropic-ai/claude-code/package.json"},{base:P($,".volta","tools","image","packages","@anthropic-ai","claude-code"),pattern:"*/package.json"},{base:P($,".local","share","pnpm","global"),pattern:"*/node_modules/@anthropic-ai/claude-code/package.json"});for(let{base:Y,pattern:O}of E)try{let x=new PH(O);for await(let H of x.scan({cwd:Y,absolute:!0})){let R=await this.readVersionFromPackage(H);if(R)return R}}catch{continue}return null}async readVersionFromPackage($){try{let S=Bun.file($);if(!await S.exists())return null;return(await S.json()).version||null}catch{return null}}}var FH={"claude-opus-4-5-20251101":200000,"claude-opus-4-5":200000,"claude-sonnet-4-5-20250514":200000,"claude-sonnet-4-5":200000,"claude-sonnet-4-20250514":200000,"claude-sonnet-4":200000,"claude-sonnet-3-5-20241022":200000,"claude-3-5-sonnet-20241022":200000,"claude-3-5-sonnet":200000,"claude-haiku-3-5-20241022":200000,"claude-3-5-haiku-20241022":200000,"claude-3-5-haiku":200000},kH=200000;class d{id="context";static cache=null;static CACHE_TTL=5000;async render($){let S=await this.getTokensWithCache($.transcript_path),E=this.getContextLimit($.model.id),O=Math.round((S??0)/E*100),x=Math.max(0,100-O),H=y("context"),R=this.getRemainingColor(x),q=this.renderProgressBar(x);return`${z.context.icon}${H}${I.reset} ${R}Context Remaining: ${x}%${I.reset} ${q}`}renderProgressBar($){let E=Math.round($/100*10),Y=10-E,O="=".repeat(E),x="-".repeat(Y),H=this.getRemainingColor($);return`${W.brightBlack}[${I.reset}${H}${O}${I.reset}${W.brightBlack}${x}]${I.reset}`}getRemainingColor($){if($<=20)return z.context.high;if($<=50)return z.context.medium;return z.context.low}async getTokensWithCache($){let S=Date.now();if(d.cache&&d.cache.path===$&&S-d.cache.timestamp<d.CACHE_TTL)return d.cache.tokens;let E=await this.parseTranscriptTokens($);return d.cache={path:$,tokens:E,timestamp:S},E}async parseTranscriptTokens($){try{let S=Bun.file($);if(!await S.exists())return null;let E=await S.text();if(!E.trim())return null;let Y=E.split(`
|
|
331
|
-
`).filter((O)=>O.trim());for(let O=
|
|
332
|
-
`)}renderLine($,S){let
|
|
333
|
-
${
|
|
322
|
+
*/var B1=U1(pS(),".codex"),d0=U1(B1,"config.toml"),lS=U1(B1,"auth.json"),oS={model_provider:"tako",model:"gpt-5.4",check_for_update_on_startup:!1,model_providers:{tako:{name:"tako",base_url:`${D}/v1`}}},aS={"full-auto":{approval_policy:"on-request",sandbox:"workspace-write"}};function N1($,S){let Y={...$};for(let[E,O]of Object.entries(S))if(O&&typeof O==="object"&&!Array.isArray(O)&&Y[E]&&typeof Y[E]==="object"&&!Array.isArray(Y[E]))Y[E]=N1(Y[E],O);else Y[E]=O;return Y}function iS($){if($.model_providers?.crs)delete $.model_providers.crs;if($.model_provider==="crs")delete $.model_provider;if($.openai_base_url)delete $.openai_base_url;let S=$.model_providers?.tako;if(S)delete S.wire_api,delete S.requires_openai_auth,delete S.supports_websockets,delete S.request_max_retries,delete S.stream_max_retries,delete S.api_key,delete S.env_key,delete S.experimental_bearer_token;return $}async function rS($,S){let Y=await import("fs/promises");try{await Y.mkdir(B1,{recursive:!0})}catch{}let E={};try{E=W1(await Y.readFile(d0,"utf-8"))}catch{}E=iS(E);let O=N1(E,oS);if(S)for(let H of S){let q=aS[H];if(q)O=N1(O,q)}await Bun.write(d0,L1(O));let x=JSON.stringify({OPENAI_API_KEY:$},null,2)+`
|
|
323
|
+
`;await Bun.write(lS,x)}var nS={id:"codex",name:"Codex",package:"@openai/codex",command:"codex",runtime:"bun",continueArg:"--continue",brandColor:"blue",getEnvVars($){return{}},setupConfigFiles:rS,launchOptions:[{id:"full-auto",label:{en:"Full-Auto",zh:"\u5168\u81EA\u52A8\u6A21\u5F0F"},shortLabel:"Full-Auto",description:{en:"Low-friction automation, auto-write in sandbox",zh:"\u4F4E\u6469\u64E6\u81EA\u52A8\u5316\uFF0C\u6C99\u7BB1\u5185\u81EA\u52A8\u5199\u5165"},flag:"--full-auto",args:[]},{id:"search",label:{en:"Web Search",zh:"\u7F51\u7EDC\u641C\u7D22"},shortLabel:"Search",description:{en:"Enable real-time web search",zh:"\u542F\u7528\u5B9E\u65F6\u7F51\u9875\u641C\u7D22"},flag:"--search",args:["--search"]}]};b$(nS);import{homedir as sS}from"os";import{join as D0}from"path";var p0=D0(sS(),".gemini"),c0=D0(p0,"settings.json");async function eS(){let $=await import("fs/promises");try{await $.mkdir(p0,{recursive:!0})}catch{}let S={};try{S=JSON.parse(await $.readFile(c0,"utf-8"))}catch{}let Y=S.security?.auth||{};if(Y.selectedType==="gemini-api-key")return;S.selectedAuthType="gemini-api-key",S.security={...S.security,auth:{...Y,selectedType:"gemini-api-key"}},await Bun.write(c0,JSON.stringify(S,null,2)+`
|
|
324
|
+
`)}var tS={id:"gemini",name:"Gemini CLI",package:"@google/gemini-cli",command:"gemini",runtime:"native",brandColor:"cyan",getEnvVars($){return{GEMINI_API_KEY:$,GOOGLE_GEMINI_BASE_URL:"https://tako.shiroha.tech"}},setupConfigFiles:eS};b$(tS);import{join as l}from"path";h();var c$=null,D$={cn:{npm:"https://registry.npmmirror.com",bunBinary:"https://registry.npmmirror.com/-/binary/bun"},global:{npm:"https://registry.npmjs.org",bunBinary:null}};async function v$(){if(c$)return c$;let $=[$H,SH,HH];for(let S of $)try{let Y=await Promise.race([S(),new Promise((E,O)=>setTimeout(()=>O(Error("timeout")),3000))]);if(Y)return c$=Y,Y}catch{}return c$="cn","cn"}async function $H(){try{let $=await fetch("http://ip-api.com/json/?fields=countryCode",{signal:AbortSignal.timeout(2000)});if(!$.ok)return null;return(await $.json()).countryCode==="CN"?"cn":"global"}catch{return null}}async function SH(){try{let $=await fetch("https://ipinfo.io/json",{signal:AbortSignal.timeout(2000)});if(!$.ok)return null;return(await $.json()).country==="CN"?"cn":"global"}catch{return null}}async function HH(){try{let $=await fetch("https://api.ip.sb/geoip",{signal:AbortSignal.timeout(2000)});if(!$.ok)return null;return(await $.json()).country_code==="CN"?"cn":"global"}catch{return null}}async function YH(){let $=await v$();return D$[$]}async function Y$(){return(await YH()).npm}function l0(){return"curl -fsSL https://bun.sh/install | bash"}async function EH(){let $=D$.cn.bunBinary,S=await fetch(`${$}/`,{signal:AbortSignal.timeout(1e4)});if(!S.ok)throw Error(`Failed to fetch bun versions: ${S.status}`);let E=(await S.json()).map((O)=>O.name.replace(/\/$/,"")).filter((O)=>/^bun-v\d+\.\d+\.\d+$/.test(O)).sort((O,x)=>{let H=O.replace("bun-v","").split(".").map(Number),q=x.replace("bun-v","").split(".").map(Number);for(let R=0;R<3;R++)if(H[R]!==q[R])return q[R]-H[R];return 0});if(E.length===0)throw Error("No bun versions found on mirror");return E[0]}async function o0(){let $=D$.cn.bunBinary,S=await EH(),E={darwin:"darwin",win32:"windows",linux:"linux"}[process.platform]||"linux",O=process.arch==="arm64"?"aarch64":"x64",x=`bun-${E}-${O}`;return`${$}/${S}/${x}.zip`}async function a0(){let $=await v$(),S=D$[$];if($==="cn")v.info(w("region.usingChinaMirror")),v.message(` npm: ${S.npm}`);else v.info(w("region.usingGlobalMirror"))}var OH=class{constructor($){this.baseUrl=$.baseUrl,this.headers={"Content-Type":"application/json",...$.defaultHeaders},this.maxRetries=$.maxRetries??3,this.initialRetryDelay=$.initialRetryDelay??500}async resolveHeaders(){let $={};for(let[S,Y]of Object.entries(this.headers)){let E=await Y;E!==null&&($[S]=E)}return $}addHeader($,S){this.headers[$]=S}async post($,S,Y,E){try{let O=await fetch($,{method:"POST",headers:await this.resolveHeaders(),body:S?JSON.stringify(S??{}):void 0,keepalive:!0,...Y});if(O.status===401)return null;if(O.status!==200&&O.status!==202)throw Error(`HTTP error! status: ${O.status}`);let x=await O.text();return x?JSON.parse(x):null}catch(O){if(E<this.maxRetries){let x=this.initialRetryDelay*2**E;return await new Promise((H)=>setTimeout(H,x)),this.post($,S,Y,E+1)}return console.error("Max retries reached:",O),null}}async fetch($,S,Y={}){let E=`${this.baseUrl}${$}`;return this.post(E,S,Y,0)}},i0=class{constructor($){this.options=$,this.queue=[];let S={"openpanel-client-id":$.clientId};$.clientSecret&&(S["openpanel-client-secret"]=$.clientSecret),S["openpanel-sdk-name"]=$.sdk||"node",S["openpanel-sdk-version"]=$.sdkVersion||"1.0.4",this.api=new OH({baseUrl:$.apiUrl||"https://api.openpanel.dev",defaultHeaders:S})}init(){}ready(){this.options.waitForProfile=!1,this.flush()}async send($){return this.options.disabled||this.options.filter&&!this.options.filter($)?Promise.resolve():this.options.waitForProfile&&!this.profileId?(this.queue.push($),Promise.resolve()):this.api.fetch("/track",$)}setGlobalProperties($){this.global={...this.global,...$}}async track($,S){return this.log("track event",$,S),this.send({type:"track",payload:{name:$,profileId:S?.profileId??this.profileId,properties:{...this.global??{},...S??{}}}})}async identify($){if(this.log("identify user",$),$.profileId&&(this.profileId=$.profileId,this.flush()),Object.keys($).length>1)return this.send({type:"identify",payload:{...$,properties:{...this.global,...$.properties}}})}async alias($){}async increment($){return this.send({type:"increment",payload:$})}async decrement($){return this.send({type:"decrement",payload:$})}async revenue($,S){let Y=S?.deviceId;return delete S?.deviceId,this.track("revenue",{...S??{},...Y?{__deviceId:Y}:{},__revenue:$})}async fetchDeviceId(){return(await this.api.fetch("/track/device-id",void 0,{method:"GET",keepalive:!1}))?.deviceId??""}clear(){this.profileId=void 0}flush(){this.queue.forEach(($)=>{this.send({...$,payload:{...$.payload,profileId:$.payload.profileId??this.profileId}})}),this.queue=[]}log(...$){this.options.debug&&console.log("[OpenPanel.dev]",...$)}};var xH="f8ec91ab-20e5-4c17-bece-f5f2fe647a71",qH="sec_3038f0cb74f91312f374",GH="https://op.shiroha.tech/api",Z$=null;function A1(){if(!Z$)Z$=new i0({clientId:xH,clientSecret:qH,apiUrl:GH});return Z$}async function r0(){if(Z$){try{Z$.flush()}catch{}Z$=null}}h();h();var RH="0.2.23";function n0(){return{cli_version:RH,platform:process.platform,arch:process.arch,locale:H$(),node_version:process.version}}function s0($){return Bun.hash($).toString(16).slice(0,8)}var bH="0.2.23",e0=!1,X$=null,V1=[];async function t0(){if(X$!==null)return X$;try{return X$=(await X()).telemetryEnabled!==!1,X$}catch{return X$=!1,!1}}async function wH(){try{return(await X()).apiId||"anonymous"}catch{return"anonymous"}}async function p$(){if(e0)return;try{if(!await t0())return;let $=await X();if(!$.apiId)return;let S=A1(),Y=await v$();await S.identify({profileId:$.apiId,properties:{region:Y,locale:H$(),first_seen_version:bH,platform:process.platform,arch:process.arch}}),e0=!0}catch{}}function L($,S){let Y=MH($,S).catch(()=>{});V1.push(Y)}async function MH($,S){try{if(!await t0())return;let Y=A1(),E=await wH();await Y.track($,{profileId:E,...n0(),...S})}catch{}}async function L$(){await Promise.allSettled(V1),V1.length=0,await r0()}var E$=null;function QH($){return $.startsWith(i)}async function vH(){try{if(!await Bun.file(C).exists())return null;let S=Bun.spawn([C,"--version"],{stdout:"pipe",stderr:"pipe"});if(await S.exited,S.exitCode!==0)return null;return(await new Response(S.stdout).text()).trim()}catch{return null}}async function S2(){return await vH()!==null}async function ZH(){if(process.platform==="win32")return!0;try{let S=Bun.spawn(["which","unzip"],{stdout:"pipe",stderr:"pipe"});if(await S.exited,S.exitCode===0)return!0}catch{}v.warn("\u6B63\u5728\u5B89\u88C5\u7CFB\u7EDF\u4F9D\u8D56 (unzip)...");let $=["apt-get update -qq && apt-get install -y -qq unzip","yum install -y -q unzip","dnf install -y -q unzip","pacman -S --noconfirm unzip","apk add --quiet unzip"];for(let S of $)try{let Y=Bun.spawn(["bash","-c",`sudo ${S} 2>/dev/null || ${S}`],{stdout:"pipe",stderr:"pipe"});if(await Y.exited,Y.exitCode===0)return!0}catch{}return!1}async function zH($){let S=await import("fs/promises"),{join:Y}=await import("path"),E=process.platform==="win32",O=E?"bun.exe":"bun",x=await o0();v.info(`\u4ECE npmmirror \u4E0B\u8F7D: ${x}`);let H=await fetch(x);if(!H.ok)throw Error(`\u4E0B\u8F7D\u5931\u8D25: ${H.status}`);let q=Y($,"bun-download.zip");await Bun.write(q,H);let R=Y($,"bin");if(await S.mkdir(R,{recursive:!0}),E){let M=`Expand-Archive -Path "${q}" -DestinationPath "${$}" -Force`,Q=Bun.spawn(["powershell","-Command",M],{stdout:"pipe",stderr:"pipe"});if(await Q.exited,Q.exitCode!==0)throw Error("\u89E3\u538B\u5931\u8D25")}else{let M=Bun.spawn(["unzip","-oq",q,"-d",$],{stdout:"pipe",stderr:"pipe"});if(await M.exited,M.exitCode!==0)throw Error("\u89E3\u538B\u5931\u8D25")}let G=await S.readdir($);for(let M of G){let Q=Y($,M);if((await S.stat(Q)).isDirectory()&&M.startsWith("bun-")){let B=Y(Q,O);try{if(await S.access(B),await S.rename(B,Y(R,O)),!E)await S.chmod(Y(R,O),493);await S.rm(Q,{recursive:!0,force:!0});break}catch{}}}return await S.rm(q,{force:!0}),!0}async function JH(){let $=u();if(!await ZH())return v.error("\u8BF7\u5148\u624B\u52A8\u5B89\u88C5 unzip: apt install unzip / yum install unzip"),!1;await a0(),$.start("\u6B63\u5728\u5B89\u88C5 Tako \u4E13\u5C5E Bun \u8FD0\u884C\u65F6...");try{if(await(await import("fs/promises")).mkdir(i,{recursive:!0}),await v$()==="cn")await zH(i);else if(process.platform==="win32"){let E=`$env:BUN_INSTALL="${i}"; irm bun.sh/install.ps1 | iex`;if(await Bun.spawn(["powershell","-Command",E],{stdout:"inherit",stderr:"inherit"}).exited!==0)return $.stop("Bun \u5B89\u88C5\u5931\u8D25"),!1}else{let E=`BUN_INSTALL="${i}" ${l0()}`;if(await Bun.spawn(["bash","-c",E],{stdout:"inherit",stderr:"inherit"}).exited!==0)return $.stop("Bun \u5B89\u88C5\u5931\u8D25"),!1}return E$=C,$.stop("Tako \u4E13\u5C5E Bun \u5B89\u88C5\u5B8C\u6210"),v.info(`\u5B89\u88C5\u4F4D\u7F6E: ${i}`),!0}catch(S){return $.stop("Bun \u5B89\u88C5\u5931\u8D25"),!1}}async function WH(){if(await S2())return E$=C,!0;return v.warn("\u672A\u68C0\u6D4B\u5230 Tako \u4E13\u5C5E Bun\uFF0C\u6B63\u5728\u81EA\u52A8\u5B89\u88C5..."),v.info("\uFF08\u4E0D\u4F1A\u5F71\u54CD\u60A8\u7CFB\u7EDF\u4E2D\u5DF2\u5B89\u88C5\u7684 Node.js \u6216 Bun\uFF09"),await JH()}async function K1(){if(E$){if(!QH(E$))E$=C;return E$}if(await S2())return E$=C,C;return C}async function C1($){try{let S=await Y$(),Y=await fetch(`${S}/${$}/latest`);if(!Y.ok)return null;return(await Y.json()).version}catch{return null}}async function TH($){return(await X()).installedClients[$.id]?.version||null}async function H2($){let S=R$($.id),Y=l(S,"package.json");try{return await Bun.file(Y).exists()}catch{return!1}}async function Y2($){let S=await TH($);if(!S)return!0;let Y=await C1($.package);if(!Y)return!1;return S!==Y}async function $2($,S=!1){let Y=u(),E=R$($.id);try{if(!await WH())return{success:!1,error:"Tako \u4E13\u5C5E Bun \u5B89\u88C5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u6216\u624B\u52A8\u5220\u9664 ~/.tako/bun \u76EE\u5F55\u540E\u91CD\u8BD5"};let O=await H2($),x=S||await Y2($);if(O&&!x)return{success:!0};let H=O?"\u66F4\u65B0":"\u5B89\u88C5";Y.start(`\u6B63\u5728${H} ${$.name}...`);let q=await import("fs/promises");await q.mkdir(E,{recursive:!0});let R=l(E,"package.json");if(!await Bun.file(R).exists())await Bun.write(R,JSON.stringify({name:`tako-${$.id}`,private:!0,dependencies:{}},null,2));let M=await K1(),Q=await Y$();if(O){let t=l(E,"bun.lock");try{await q.unlink(t)}catch{}}let Z=Bun.spawn([M,"add",`${$.package}@latest`],{cwd:E,stdout:"pipe",stderr:"pipe",env:{...process.env,BUN_CONFIG_REGISTRY:Q}});if(await Z.exited!==0){let t=await new Response(Z.stderr).text();return Y.stop(`${H} ${$.name} \u5931\u8D25`),{success:!1,error:t}}let c=l(E,"node_modules",$.package,"install.cjs");if(await Bun.file(c).exists())await Bun.spawn(["node",c],{cwd:l(E,"node_modules",$.package),stdout:"pipe",stderr:"pipe"}).exited;let A$=await C1($.package),D1=(await X()).installedClients[$.id]?.version;if(A$){let t=await X();if(t.installedClients[$.id]={version:A$,installedAt:new Date().toISOString()},await p(t),O&&D1)L("client_updated",{client_id:$.id,from_version:D1,to_version:A$});else L("client_installed",{client_id:$.id,client_version:A$})}return Y.stop(`${$.name} ${H}\u5B8C\u6210`),{success:!0}}catch(O){return Y.stop("\u64CD\u4F5C\u5931\u8D25"),{success:!1,error:O instanceof Error?O.message:"\u672A\u77E5\u9519\u8BEF"}}}async function h1($){if($.runtime!=="native")return;let S=R$($.id),Y=l(S,"node_modules",$.package,"package.json");try{let E=Bun.file(Y);if(!await E.exists())return;let x=(await E.json()).bin;if(!x)return;let H=typeof x==="string"?x:x[$.command];if(!H)return;let q=l(S,"node_modules",$.package,H),R=Bun.file(q);if(!await R.exists())return;let G=await R.slice(0,64).text();if(!G.startsWith("echo")&&!G.startsWith("#!/"))return;let M=l(S,"node_modules",$.package,"install.cjs");if(!await Bun.file(M).exists())return;v.info("\u6B63\u5728\u5B89\u88C5\u539F\u751F\u4E8C\u8FDB\u5236...");let Z=Bun.spawn(["node",M],{cwd:l(S,"node_modules",$.package),stdout:"pipe",stderr:"pipe"});if(await Z.exited,Z.exitCode===0)v.success("\u539F\u751F\u4E8C\u8FDB\u5236\u5B89\u88C5\u5B8C\u6210");else v.warn("\u539F\u751F\u4E8C\u8FDB\u5236\u5B89\u88C5\u5931\u8D25\uFF0C\u53EF\u80FD\u5F71\u54CD\u542F\u52A8")}catch{}}async function l$($){if(!await H2($)){let E=await $2($);if(E.success)await h1($);return E}if(await h1($),await Y2($)){let E=await C1($.package),O=(await X()).installedClients[$.id]?.version||"\u672A\u77E5",x=E?`${O} \u2192 ${E}`:"\u6709\u65B0\u7248\u672C\u53EF\u7528";v.info(`${$.name} \u53D1\u73B0\u66F4\u65B0: ${x}`);let H=await n({message:`\u662F\u5426\u66F4\u65B0 ${$.name}\uFF1F`,initialValue:!1});if(A(H)||!H)return v.info("\u8DF3\u8FC7\u66F4\u65B0\uFF0C\u4F7F\u7528\u5F53\u524D\u7248\u672C"),{success:!0};let q=await $2($,!0);if(q.success)await h1($);return q}return{success:!0}}import{homedir as IH}from"os";var XH=50,m1=3;async function N$($){try{return(await(await import("fs/promises")).stat($)).isDirectory()}catch{return!1}}async function o$($,S){let Y=await X(),E=Y.recentProjects||[],O=new Date().toISOString(),x=E.findIndex((q)=>q.path===$);if(x>=0){let q=E[x],R=q.clientUsage||{},G=R[S]||{count:0,lastAt:O};E[x]={...q,launchCount:q.launchCount+1,lastLaunchedAt:O,lastClientId:S,clientUsage:{...R,[S]:{count:G.count+1,lastAt:O}}}}else E.push({path:$,launchCount:1,lastLaunchedAt:O,lastClientId:S,clientUsage:{[S]:{count:1,lastAt:O}}});let H=E.sort((q,R)=>new Date(R.lastLaunchedAt).getTime()-new Date(q.lastLaunchedAt).getTime()).slice(0,XH);Y.recentProjects=H,await t$(Y)}function LH($,S){let Y=$.clientUsage?.[S];if(Y)return new Date(Y.lastAt).getTime();if($.lastClientId===S)return new Date($.lastLaunchedAt).getTime();return 0}async function E2($,S=m1,Y=!0){let O=(await X()).recentProjects||[],x=process.cwd(),q=O.filter((G)=>{if(Y&&G.path===x)return!1;return G.clientUsage?.[$]||G.lastClientId===$}).map((G)=>({...G,lastUsedTime:LH(G,$)})).sort((G,M)=>M.lastUsedTime-G.lastUsedTime),R=[];for(let{lastUsedTime:G,...M}of q){if(R.length>=S)break;if(await N$(M.path))R.push(M)}return R}async function O2(){let S=(await X()).recentProjects||[],Y=process.cwd();return S.find((O)=>O.path===Y)?.lastClientId||null}function x2($,S=25){let Y=IH(),E=$.startsWith(Y)?"~"+$.slice(Y.length):$;if(E.length>S){let x=E.split("/").pop()||"";if(x.length>S-4)E="..."+x.slice(-S+3);else E=`.../${x}`}return E}function q2($){let{t:S}=(h(),h2(y0)),Y=Date.now(),E=new Date($).getTime(),O=Y-E,x=Math.floor(O/60000),H=Math.floor(O/3600000),q=Math.floor(O/86400000),R=Math.floor(q/7),G=Math.floor(q/30);if(x<1)return S("time.justNow");if(x<60)return S("time.minutesAgo",{n:x});if(H<24)return S("time.hoursAgo",{n:H});if(q===1)return S("time.yesterday");if(q<7)return S("time.daysAgo",{n:q});if(q<30)return S("time.weeksAgo",{n:R});return S("time.monthsAgo",{n:G})}h();async function G2($,S){try{let Y=S?.projectPath||process.cwd();if(S?.projectPath){if(!await N$(S.projectPath))return{success:!1,error:`\u76EE\u5F55\u4E0D\u5B58\u5728: ${S.projectPath}`}}let E=await l$($);if(!E.success)return E;let O=await h$();if(!O)return{success:!1,error:"\u672A\u914D\u7F6E API Key"};if($.setupConfigFiles)await $.setupConfigFiles(O,S?.selectedOptionIds);let x=await $0($);if(!x)x=S0($);if(!await Bun.file(x).exists())return{success:!1,error:`\u627E\u4E0D\u5230\u53EF\u6267\u884C\u6587\u4EF6: ${x}`};await o$(Y,$.id);let q=$.getEnvVars(O),R={...process.env,...q};v.info(`\u542F\u52A8 ${$.name}...`);let G;if($.runtime==="native")G=[x];else G=[await K1(),x];if(S?.args&&S.args.length>0)G=[...G,...S.args];return await Bun.spawn(G,{env:R,stdio:["inherit","inherit","inherit"],cwd:Y}).exited,{success:!0}}catch(Y){return{success:!1,error:Y instanceof Error?Y.message:"\u542F\u52A8\u5931\u8D25"}}}async function O$($,S){try{let Y=S?.projectPath||process.cwd();if(S?.projectPath){if(!await N$(S.projectPath))return{success:!1,error:w("launcher.directoryNotFound",{path:S.projectPath})}}let E=await l$($);if(!E.success)return E;let O=await h$();if(!O)return{success:!1,error:w("launcher.apiKeyNotConfigured")};if($.setupConfigFiles)await $.setupConfigFiles(O,S?.selectedOptionIds);await o$(Y,$.id);let H=(await X()).installedClients[$.id]?.version;return L("client_launched",{client_id:$.id,client_version:H,project_hash:s0(Y),is_recent_project:!!S?.projectPath}),v.info(w("launcher.starting",{client:$.name})),await G2($,S)}catch(Y){return{success:!1,error:Y instanceof Error?Y.message:"Launch failed"}}}h();import{join as g}from"path";var y1="tako-cli",j="0.2.23";function NH($,S){let Y=$.split(".").map(Number),E=S.split(".").map(Number);for(let O=0;O<3;O++){let x=Y[O]||0,H=E[O]||0;if(x>H)return 1;if(x<H)return-1}return 0}async function UH(){try{let $=await Y$(),S=await fetch(`${$}/${y1}/latest`,{signal:AbortSignal.timeout(5000)});if(!S.ok)return null;return(await S.json()).version||null}catch{return null}}async function BH(){let $=await UH();if(!$)return{hasUpdate:!1,currentVersion:j};return{hasUpdate:NH($,j)>0,latestVersion:$,currentVersion:j}}async function R2(){let $=await import("fs/promises"),S=g(F,"bin"),Y=g(S,"tako"),E=g(k,"node_modules/tako-cli/dist/index.js");if(await $.mkdir(S,{recursive:!0}),process.platform==="win32"){let x=`@echo off\r
|
|
325
|
+
"${C}" "${E}" %*\r
|
|
326
|
+
`;await $.writeFile(g(S,"tako.cmd"),x)}else{let x=`#!/bin/bash
|
|
327
|
+
exec "${C}" "${E}" "$@"
|
|
328
|
+
`;await $.writeFile(Y,x,{mode:493})}}async function AH($){let S=u();S.start(`\u6B63\u5728\u66F4\u65B0\u5230 v${$}...`);try{let Y=await Y$(),E=await import("fs/promises");await E.mkdir(k,{recursive:!0});let O=g(k,"package.json");try{await E.access(O)}catch{await E.writeFile(O,JSON.stringify({name:"tako-local",private:!0},null,2))}let x=Bun.spawn([C,"update",y1,"--latest"],{cwd:k,stdout:"pipe",stderr:"pipe",env:{...process.env,BUN_CONFIG_REGISTRY:Y}});if(await x.exited,x.exitCode===0)return await R2(),L("cli_updated",{from_version:j,to_version:$}),S.stop(`\u66F4\u65B0\u6210\u529F\uFF01\u5DF2\u66F4\u65B0\u5230 v${$}`),!0;else{let H=await new Response(x.stderr).text();return S.stop(`\u66F4\u65B0\u5931\u8D25: ${H||"\u672A\u77E5\u9519\u8BEF"}`),!1}}catch(Y){return S.stop(`\u66F4\u65B0\u5931\u8D25: ${Y instanceof Error?Y.message:"\u672A\u77E5\u9519\u8BEF"}`),!1}}async function VH(){let $=await import("fs/promises"),S=g(k,"bun.lock");try{await $.unlink(S)}catch{}}async function hH(){let $=await import("fs/promises");try{let S=await Y$();await $.mkdir(k,{recursive:!0});let Y=g(k,"package.json");try{await $.access(Y)}catch{await $.writeFile(Y,JSON.stringify({name:"tako-local",private:!0},null,2))}await VH();let E=Bun.spawn([C,"add",`${y1}@latest`],{cwd:k,stdout:"pipe",stderr:"pipe",env:{...process.env,BUN_CONFIG_REGISTRY:S}});return await E.exited,E.exitCode===0}catch{return!1}}async function KH(){let $=await import("fs/promises"),S=g(F,"bin"),Y=g(S,"tako"),E=g(k,"node_modules/tako-cli/dist/index.js");try{let O=await $.readFile(Y,"utf-8");if(O.includes("bun run tako-cli")||O.includes("run tako-cli")){v.info(w("updater.migrating"));let x=!1;try{await $.access(E),x=!0}catch{x=!1}if(!x){let H=u();if(H.start(w("updater.installingLocally")),!await hH())return H.stop(w("updater.migrationFailed")),!1;H.stop(w("updater.installComplete"))}return await R2(),!0}}catch{}return!1}async function U$(){try{if(await KH())v.info(w("updater.migrationComplete")),process.exit(0);let S=await BH();if(S.hasUpdate&&S.latestVersion){if(v.warn(w("updater.newVersionAvailable",{version:S.latestVersion,current:j})),await AH(S.latestVersion))v.info(w("updater.pleaseRestart")),process.exit(0)}}catch{}}h();function CH($){let S=$.codePointAt(0);if(!S)return!1;return S>=19968&&S<=40959||S>=13312&&S<=19903||S>=131072&&S<=191471||S>=63744&&S<=64255||S>=194560&&S<=195103||S>=44032&&S<=55215||S>=12352&&S<=12447||S>=12448&&S<=12543||S>=65280&&S<=65519||S>=126976&&S<=131071||S>=9728&&S<=10175||S===11088}function mH($){return $.replace(/\x1b\[[0-9;]*m/g,"")}function f1($){let S=mH($),Y=0;for(let E of S)Y+=CH(E)?2:1;return Y}h();var j1="__skip_prompt__";async function x$($){let S=$.launchOptions;if(!S||S.length===0)return{args:[],selectedOptionIds:[]};let Y=await X(),E=Y.clientOptions?.[$.id];if(E&&Y.clientOptionsLocked?.[$.id])return b2(S,E);let O=await yH($,S,E);if(O===null)return null;if(await p({clientOptions:{...Y.clientOptions,[$.id]:O.selectedIds},...O.lock?{clientOptionsLocked:{...Y.clientOptionsLocked,[$.id]:!0}}:{}}),O.lock){let x=M$();v.info(x==="zh"?"\u5DF2\u4FDD\u5B58\uFF0C\u4E0B\u6B21\u5C06\u8DF3\u8FC7\u6B64\u9009\u62E9\u3002\u53EF\u5728\u300C\u9AD8\u7EA7 \u2192 \u91CD\u7F6E\u542F\u52A8\u9009\u9879\u300D\u4E2D\u4FEE\u6539\u3002":"Saved. This prompt will be skipped next time. Reset in Advanced \u2192 Reset Launch Options.")}return b2(S,O.selectedIds)}async function w2(){await p({clientOptions:{},clientOptionsLocked:{}})}function b2($,S){let Y=[];for(let E of S){let O=$.find((x)=>x.id===E);if(O)Y.push(...O.args)}return{args:Y,selectedOptionIds:S}}async function yH($,S,Y){let E=M$(),O=(G)=>E==="zh"?G.label.zh:G.label.en,x=[],H=new Map,q=[];for(let G of S)if(G.group){if(!H.has(G.group))H.set(G.group,[]);H.get(G.group).push(G)}else q.push(G);for(let[,G]of H){let Q=G.find((B)=>Y?.includes(B.id))?.id??"__none__",Z=await S$({message:w("menu.selectOptions")||`${$.name} options`,initialValue:Q,options:[{value:"__none__",label:E==="zh"?"\u8DF3\u8FC7":"Skip",hint:""},...G.map((B)=>({value:B.id,label:O(B),hint:B.flag}))]});if(A(Z))return null;if(Z!=="__none__")x.push(Z)}if(q.length>0){let G=await m0({message:w("menu.selectOptions")||`${$.name} options`,options:[...q.map((Z)=>({value:Z.id,label:O(Z),hint:Z.flag,initialValue:Y?.includes(Z.id)??!1})),{value:j1,label:E==="zh"?"\u4EE5\u540E\u4E0D\u518D\u663E\u793A\u6B64\u9009\u62E9":"Don't show this again",hint:""}],required:!1});if(A(G))return null;let M=G,Q=M.includes(j1);return x.push(...M.filter((Z)=>Z!==j1)),{selectedIds:x,lock:Q}}let R=await n({message:E==="zh"?"\u4EE5\u540E\u4E0D\u518D\u663E\u793A\u6B64\u9009\u62E9\uFF1F":"Don't show this again?",initialValue:!1});if(A(R))return null;return{selectedIds:x,lock:!!R}}var Q2=[{version:"0.2.21",date:"2026-04-20",changes:["\u5BA2\u6237\u7AEF\u66F4\u65B0\u6539\u4E3A\u7528\u6237\u786E\u8BA4\uFF0C\u4E0D\u518D\u81EA\u52A8\u66F4\u65B0","\u7981\u6B62 Claude Code / Codex \u81EA\u8EAB\u7684\u81EA\u52A8\u66F4\u65B0\uFF0C\u7531 Tako \u7EDF\u4E00\u7BA1\u7406","\u4FEE\u590D\u5DF2\u5B89\u88C5\u7528\u6237\u539F\u751F\u4E8C\u8FDB\u5236\u672A\u5C31\u4F4D\u5BFC\u81F4 ENOEXEC \u7684\u95EE\u9898"]},{version:"0.2.20",date:"2026-04-19",changes:["\u4FEE\u590D Claude Code v2 \u539F\u751F\u4E8C\u8FDB\u5236\u542F\u52A8\u5931\u8D25\u7684\u95EE\u9898","\u5B89\u88C5\u65F6\u81EA\u52A8\u8FD0\u884C postinstall \u786E\u4FDD\u539F\u751F\u4E8C\u8FDB\u5236\u5C31\u4F4D","\u65B0\u589E\u66F4\u65B0\u65E5\u5FD7\u529F\u80FD\uFF0C\u53EF\u5728\u4E3B\u9875\u67E5\u770B\u7248\u672C\u53D8\u66F4"]},{version:"0.2.18",date:"2026-04-15",changes:["\u65B0\u589E Gemini CLI \u652F\u6301","Codex \u914D\u7F6E\u7B80\u5316\uFF0C\u65E0\u9700\u624B\u52A8\u7F16\u8F91\u914D\u7F6E\u6587\u4EF6","Claude Code settings.json \u51B2\u7A81\u68C0\u6D4B\u4E0E\u81EA\u52A8\u6E05\u7406","\u5B89\u88C5\u6D41\u7A0B\u4F18\u5316"]},{version:"0.2.14",date:"2026-04-10",changes:["Codex \u542F\u52A8\u9009\u9879\u652F\u6301\uFF08\u8DF3\u8FC7\u6743\u9650\u3001\u8BE6\u7EC6\u65E5\u5FD7\u7B49\uFF09","\u914D\u7F6E\u6CE8\u5165\u673A\u5236\u4F18\u5316"]},{version:"0.2.12",date:"2026-04-06",changes:["\u56FD\u5185\u955C\u50CF\u6E90\u5B89\u88C5\u4FEE\u590D","Windows install.ps1 \u5B89\u88C5\u811A\u672C\u4FEE\u590D"]},{version:"0.2.9",date:"2026-03-30",changes:["statusline \u72B6\u6001\u680F\u529F\u80FD\u8FC1\u79FB","Codex \u914D\u7F6E\u589E\u91CF\u66F4\u65B0\uFF0C\u4FEE\u590D\u542F\u52A8\u5931\u8D25\u95EE\u9898"]},{version:"0.2.0",date:"2026-03-15",changes:["\u5168\u65B0 Ink TUI \u4E3B\u83DC\u5355","\u5BA2\u6237\u7AEF Tab \u5207\u6362 + \u53EF\u6298\u53E0\u542F\u52A8\u9009\u9879","\u6700\u8FD1\u9879\u76EE\u5FEB\u901F\u542F\u52A8","\u57CB\u70B9\u5206\u6790\u7CFB\u7EDF"]}];async function fH(){let S=(await X()).lastSeenVersion;if(!S)return!0;return S!==j}async function M2(){await p({lastSeenVersion:j})}async function v2(){if(!await fH())return;let $=Q2.find((Y)=>Y.version===j);if(!$){await M2();return}let S=` \x1B[36m\uD83D\uDCCB v${$.version} \u66F4\u65B0\u5185\u5BB9\uFF1A\x1B[0m`;console.log(S);for(let Y of $.changes)console.log(` \x1B[90m\u2022\x1B[0m ${Y}`);console.log(),await M2()}async function Z2(){console.log(),console.log(" \x1B[1m\uD83D\uDCCB \u66F4\u65B0\u65E5\u5FD7\x1B[0m"),console.log(" "+"\u2500".repeat(40));for(let $ of Q2){let Y=$.version===j?`\x1B[36;1mv${$.version}\x1B[0m \x1B[90m(\u5F53\u524D)\x1B[0m`:`\x1B[1mv${$.version}\x1B[0m`;console.log(),console.log(` ${Y} \x1B[90m${$.date}\x1B[0m`);for(let E of $.changes)console.log(` \x1B[90m\u2022\x1B[0m ${E}`)}console.log(),console.log(" "+"\u2500".repeat(40)),console.log(),await n({message:"\u8FD4\u56DE\u4E3B\u83DC\u5355",initialValue:!0,active:"\u786E\u5B9A",inactive:"\u786E\u5B9A"})}h();async function z2(){let $=H0(),S=await O2(),Y=process.cwd(),E=[],O=[...$].sort((x,H)=>{if(x.id===S)return-1;if(H.id===S)return 1;return 0});for(let x of O){let H=await E2(x.id,m1,!0);E.push({value:{type:"launch",client:x},label:x.name,hint:w("recentProjects.launchInCurrent")});for(let q of H)E.push({value:{type:"launch-in-project",client:x,projectPath:q.path},label:` \u2514\u2500 ${x2(q.path,35)}`,hint:q2(q.lastLaunchedAt)})}return E.push({value:{type:"advanced"},label:w("menu.advanced"),hint:w("menu.advancedHint")},{value:{type:"exit"},label:w("menu.exit")}),E}async function _1(){let $=await z2(),S=await S$({message:w("menu.selectAction"),options:$});if(A(S))return null;return S}async function P1(){let $=await S$({message:w("menu.advancedOptions"),options:[{value:{type:"stats"},label:w("menu.viewStats")},{value:{type:"config"},label:w("menu.configApiKey")},{value:{type:"resetOptions"},label:w("menu.resetOptions")},{value:{type:"changelog"},label:"\uD83D\uDCCB \u66F4\u65B0\u65E5\u5FD7"},{value:{type:"language"},label:w("menu.changeLanguage")},{value:null,label:w("menu.back")}]});if(A($)||$===null)return null;return $}h();function jH($){return $.startsWith("cr_")&&$.length>10}async function _H($){try{let Y=await(await fetch(`${D}/apiStats/api/get-key-id`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:$})})).json();if(Y.success&&Y.data?.id)return{valid:!0,apiId:Y.data.id};return{valid:!1,error:Y.error||w("auth.validationFailed")}}catch(S){return{valid:!1,error:S instanceof Error?S.message:w("auth.networkError")}}}async function J2($){if(!jH($))return L("api_key_validated",{success:!1,error_type:"invalid_format"}),{success:!1,error:w("auth.invalidFormat")};let S=await _H($);if(!S.valid)return L("api_key_validated",{success:!1,error_type:"api_validation_failed"}),{success:!1,error:S.error};return await p({apiKey:$,apiId:S.apiId}),L("api_key_validated",{success:!0}),p$(),{success:!0}}h();async function a$($=!1){if(!$)v.warn("API Key not detected"),console.log();let S=await C0({message:w("prompts.enterApiKey"),placeholder:w("prompts.apiKeyPlaceholder"),validate(O){if(!O)return w("prompts.enterApiKey");if(!O.startsWith("cr_"))return w("prompts.keyInvalidFormat");if(O.length<10)return w("prompts.keyInvalidFormat")}});if(A(S))return!1;let Y=u();Y.start(w("prompts.validating"));let E=await J2(S);if(E.success)return Y.stop(w("prompts.keyConfigured")),!0;else return Y.stop(w("prompts.keyValidationFailed",{error:E.error||""})),!1}async function B$(){try{let $=await t1();if(!$)return{success:!1,error:"\u672A\u627E\u5230 API ID\uFF0C\u8BF7\u91CD\u65B0\u914D\u7F6E Key"};let Y=await(await fetch(`${D}/apiStats/api/user-stats`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiId:$})})).json(),O=await(await fetch(`${D}/apiStats/api/user-model-stats`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiId:$,period:"daily"})})).json();if(!Y.success)return{success:!1,error:Y.error||Y.message||"\u83B7\u53D6\u7EDF\u8BA1\u5931\u8D25"};let x=(O.data||[]).map((H)=>({model:H.model,requests:H.requests,cost:H.formatted?.total||"$0.00"}));return{success:!0,data:{totalRequests:Y.data?.usage?.total?.requests||0,totalCost:Y.data?.usage?.total?.formattedCost||"$0.00",todayCost:`$${(Y.data?.limits?.currentDailyCost||0).toFixed(2)}`,modelStats:x}}}catch($){return{success:!1,error:$ instanceof Error?$.message:"\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25"}}}function F1($){return $.toLocaleString("en-US")}h();function PH($,S){let Y=[];if(Y.push(""),Y.push(` ${w("stats.title")}`),Y.push(""),Y.push(` ${w("stats.totalRequests",{count:F1($.totalRequests)})}`),Y.push(` ${w("stats.totalCost",{cost:$.totalCost})}`),Y.push(` ${w("stats.todayCost",{cost:$.todayCost})}`),$.modelStats.length>0)Y.push(""),Y.push(` ${w("stats.modelDistribution")}`),$.modelStats.forEach((E,O)=>{let x=O===$.modelStats.length-1?"\u2514\u2500":"\u251C\u2500",H=E.model.length>25?E.model.slice(0,22)+"...":E.model;Y.push(` ${x} ${H.padEnd(25)} ${F1(E.requests).padStart(6)} ${w("stats.times")} ${E.cost.padStart(8)}`)});return Y.push(""),Y.push(` \x1B[90m${w("stats.refreshHint",{countdown:S})}\x1B[0m`),Y.join(`
|
|
329
|
+
`)}async function k1(){let S=u();S.start(w("stats.fetching"));let Y=await B$();if(!Y.success){S.stop(w("stats.fetchFailed",{error:Y.error||""}));return}S.stop("");let E=10,O="",x=()=>{if(O){let q=O.split(`
|
|
330
|
+
`).length;process.stdout.write(`\x1B[${q}A\x1B[0J`)}O=PH(Y.data,E),console.log(O)};x();let H=process.stdin.isRaw;if(process.stdin.isTTY)process.stdin.setRawMode(!0);return process.stdin.resume(),new Promise((q)=>{let R=!0,G=()=>{if(!R)return;R=!1,Q(),q()},M=setInterval(async()=>{if(!R)return;if(E--,E<=0){E=10;let Z=await B$();if(Z.success)Y=Z}x()},1000),Q=()=>{if(clearInterval(M),process.stdin.removeListener("data",G),process.stdin.isTTY)process.stdin.setRawMode(H??!1);process.stdin.pause()};process.stdin.on("data",G)})}function FH(){let S="\u2500".repeat(50);console.log(),console.log(` \u250C${S}\u2510`);let Y=`\uD83D\uDC19 ${w("cli.version",{version:j})}`,E=f1(Y),O=Math.floor((50-E)/2),x=50-O-E;console.log(` \u2502${" ".repeat(O)}${Y}${" ".repeat(x)}\u2502`);let H=w("banner.welcome"),q=`\x1B[90m${H}\x1B[0m`,R=f1(H),G=Math.floor((50-R)/2),M=50-G-R;console.log(` \u2502${" ".repeat(G)}${q}${" ".repeat(M)}\u2502`),console.log(` \u2514${S}\u2518`),console.log()}async function W2($){switch($.type){case"launch":{L("menu_action",{action:"launch",client_id:$.client.id});let S=await x$($.client);if(S===null)return!0;let Y=await O$($.client,{args:S.args,selectedOptionIds:S.selectedOptionIds});if(!Y.success)v.error(Y.error||w("cli.launchFailed"));return!0}case"launch-in-project":{L("menu_action",{action:"launch",client_id:$.client.id});let S=await x$($.client);if(S===null)return!0;let Y=[...$.client.continueArg?[$.client.continueArg]:[],...S.args],E=await O$($.client,{projectPath:$.projectPath,args:Y,selectedOptionIds:S.selectedOptionIds});if(!E.success)v.error(E.error||w("cli.launchFailed"));return!0}case"advanced":{L("menu_action",{action:"advanced"});let S=await P1();if(S)return await W2(S);return!0}case"stats":return L("menu_action",{action:"stats"}),await k1(),!0;case"config":return L("menu_action",{action:"config"}),await a$(!0),!0;case"resetOptions":return L("menu_action",{action:"resetOptions"}),await w2(),v.success(w("menu.optionsReset")),!0;case"changelog":return L("menu_action",{action:"changelog"}),await Z2(),!0;case"language":return L("menu_action",{action:"language"}),await kH(),!0;case"exit":return L("menu_action",{action:"exit"}),!1}}async function kH(){let $=M$(),S=w(`language.${$}`),Y=await S$({message:w("menu.changeLanguage")+` (${w("menu.currentLanguage",{lang:S})})`,options:[{value:"en",label:w("language.en")},{value:"zh",label:w("language.zh")}]});if(A(Y))return;J1(Y);let E=w(`language.${Y}`);v.success(w("menu.languageChanged",{lang:E}))}async function T2(){if(FH(),await v2(),!await e1()){if(!await a$()){z1("\u518D\u89C1\uFF01");return}}while(!0){let S=await _1();if(S===null)break;if(!await W2(S))break}z1("\u518D\u89C1\uFF01")}h();import{homedir as gH}from"os";var N={black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m"};var T={bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",reset:"\x1B[0m"};var W={directory:{icon:N.brightYellow,text:N.brightGreen},git:{icon:N.brightBlue,text:N.brightBlue,clean:N.brightGreen,dirty:N.brightYellow,conflict:N.brightRed},model:{icon:N.brightCyan,text:N.brightCyan},version:{icon:N.brightWhite,text:N.brightBlack},outputStyle:{icon:N.brightMagenta,text:N.brightMagenta},context:{icon:N.brightMagenta,low:N.brightGreen,medium:N.brightYellow,high:N.brightRed},todayUsage:{icon:N.brightGreen,text:N.brightGreen},separator:N.brightBlack},o={directory:{nerd:"\uF07B",plain:"\uD83D\uDCC1"},git:{nerd:"\uE725",plain:"\uD83C\uDF3F"},model:{nerd:"\uF11B",plain:"\uD83E\uDD16"},version:{nerd:"\uF412",plain:"\uD83D\uDCBE"},outputStyle:{nerd:"\uF12F5",plain:"\uD83C\uDFAF"},context:{nerd:"\uF0E7",plain:"\u26A1"},todayUsage:{nerd:"\uF155",plain:"\uD83D\uDCB0"},gitClean:"\u2713",gitDirty:"\u25CF",gitConflict:"\u26A0",gitAhead:"\u2191",gitBehind:"\u2193"};function uH(){return!1}function y($){let S=o[$];if(typeof S==="string")return S;return uH()?S.nerd:S.plain}class i${id="directory";render($){let S=this.formatPath($.workspace.current_dir),Y=y("directory");return`${W.directory.icon}${Y}${T.reset} ${W.directory.text}${S}${T.reset}`}formatPath($){let S=gH();if($===S)return"~";if($.startsWith(S+"/"))return"~"+$.slice(S.length);return $}}class r${id="git";async render($){let S=$.workspace.current_dir;if(!await this.isGitRepository(S))return null;let E=await this.getBranch(S);if(!E)return null;let{status:O,statusColor:x}=await this.getStatus(S),{ahead:H,behind:q}=await this.getAheadBehind(S),R=y("git"),G=`${W.git.icon}${R}${T.reset} ${W.git.text}${E}${T.reset}`;if(G+=` ${x}${O}${T.reset}`,H>0)G+=` ${W.git.clean}${o.gitAhead}${H}${T.reset}`;if(q>0)G+=` ${W.git.dirty}${o.gitBehind}${q}${T.reset}`;return G}async isGitRepository($){try{return await Bun.spawn(["git","rev-parse","--git-dir"],{cwd:$,stdout:"pipe",stderr:"pipe"}).exited===0}catch{return!1}}async getBranch($){try{let S=Bun.spawn(["git","branch","--show-current"],{cwd:$,stdout:"pipe",stderr:"pipe"}),Y=await new Response(S.stdout).text();if(await S.exited===0&&Y.trim())return Y.trim();let O=Bun.spawn(["git","rev-parse","--short","HEAD"],{cwd:$,stdout:"pipe",stderr:"pipe"}),x=await new Response(O.stdout).text();if(await O.exited===0&&x.trim())return`detached:${x.trim()}`;return null}catch{return null}}async getStatus($){try{let S=Bun.spawn(["git","status","--porcelain"],{cwd:$,stdout:"pipe",stderr:"pipe"}),Y=await new Response(S.stdout).text();if(await S.exited!==0)return{status:o.gitClean,statusColor:W.git.clean};let O=Y.trim();if(!O)return{status:o.gitClean,statusColor:W.git.clean};if(O.includes("UU")||O.includes("AA")||O.includes("DD"))return{status:o.gitConflict,statusColor:W.git.conflict};return{status:o.gitDirty,statusColor:W.git.dirty}}catch{return{status:o.gitClean,statusColor:W.git.clean}}}async getAheadBehind($){try{let S=Bun.spawn(["git","rev-list","--count","@{u}..HEAD"],{cwd:$,stdout:"pipe",stderr:"pipe"}),Y=await new Response(S.stdout).text(),O=await S.exited===0?parseInt(Y.trim(),10)||0:0,x=Bun.spawn(["git","rev-list","--count","HEAD..@{u}"],{cwd:$,stdout:"pipe",stderr:"pipe"}),H=await new Response(x.stdout).text(),R=await x.exited===0?parseInt(H.trim(),10)||0:0;return{ahead:O,behind:R}}catch{return{ahead:0,behind:0}}}}var dH={"claude-opus-4-5-20251101":"Opus 4.5","claude-opus-4-5":"Opus 4.5","claude-sonnet-4-5-20250514":"Sonnet 4.5","claude-sonnet-4-5":"Sonnet 4.5","claude-sonnet-4-20250514":"Sonnet 4","claude-sonnet-4":"Sonnet 4","claude-sonnet-3-5-20241022":"Sonnet 3.5","claude-3-5-sonnet-20241022":"Sonnet 3.5","claude-3-5-sonnet":"Sonnet 3.5","claude-haiku-3-5-20241022":"Haiku 3.5","claude-3-5-haiku-20241022":"Haiku 3.5","claude-3-5-haiku":"Haiku 3.5"};class n${id="model";render($){let S=$.model.id,Y=dH[S]||this.simplifyModelName($.model.display_name),E=y("model");return`${W.model.icon}${E}${T.reset} ${W.model.text}${Y}${T.reset}`}simplifyModelName($){let S=$.replace(/^Claude\s+/i,"");return S=S.replace(/-\d{8}$/,""),S}}import{homedir as cH}from"os";import{join as P}from"path";var{Glob:DH}=globalThis.Bun;var I2=process.platform==="win32";class s${id="version";async render($){let S=await this.getClaudeCodeVersion();if(!S)return null;let Y=y("version");return`${W.version.icon}${Y}${T.reset} ${W.version.text}v${S}${T.reset}`}async getClaudeCodeVersion(){let $=cH(),S=[];if(I2)S.push(P($,"AppData","Roaming","npm","node_modules","@anthropic-ai","claude-code","package.json"),P($,"AppData","Local","npm-cache","_npx","**","node_modules","@anthropic-ai","claude-code","package.json"),P($,".bun","install","global","node_modules","@anthropic-ai","claude-code","package.json"));else S.push(P($,".bun","install","global","node_modules","@anthropic-ai","claude-code","package.json"),P($,".npm-global","lib","node_modules","@anthropic-ai","claude-code","package.json"),"/usr/local/lib/node_modules/@anthropic-ai/claude-code/package.json","/usr/lib/node_modules/@anthropic-ai/claude-code/package.json");for(let E of S){let O=await this.readVersionFromPackage(E);if(O)return O}let Y=[];if(I2)Y.push({base:P($,"AppData","Roaming","nvm"),pattern:"*/node_modules/@anthropic-ai/claude-code/package.json"},{base:P($,".volta","tools","image","packages","@anthropic-ai","claude-code"),pattern:"*/package.json"});else Y.push({base:P($,".local","share","fnm","node-versions"),pattern:"*/installation/lib/node_modules/@anthropic-ai/claude-code/package.json"},{base:P($,".nvm","versions","node"),pattern:"*/lib/node_modules/@anthropic-ai/claude-code/package.json"},{base:P($,".volta","tools","image","packages","@anthropic-ai","claude-code"),pattern:"*/package.json"},{base:P($,".local","share","pnpm","global"),pattern:"*/node_modules/@anthropic-ai/claude-code/package.json"});for(let{base:E,pattern:O}of Y)try{let x=new DH(O);for await(let H of x.scan({cwd:E,absolute:!0})){let q=await this.readVersionFromPackage(H);if(q)return q}}catch{continue}return null}async readVersionFromPackage($){try{let S=Bun.file($);if(!await S.exists())return null;return(await S.json()).version||null}catch{return null}}}var pH={"claude-opus-4-5-20251101":200000,"claude-opus-4-5":200000,"claude-sonnet-4-5-20250514":200000,"claude-sonnet-4-5":200000,"claude-sonnet-4-20250514":200000,"claude-sonnet-4":200000,"claude-sonnet-3-5-20241022":200000,"claude-3-5-sonnet-20241022":200000,"claude-3-5-sonnet":200000,"claude-haiku-3-5-20241022":200000,"claude-3-5-haiku-20241022":200000,"claude-3-5-haiku":200000},lH=200000;class d{id="context";static cache=null;static CACHE_TTL=5000;async render($){let S=await this.getTokensWithCache($.transcript_path),Y=this.getContextLimit($.model.id),O=Math.round((S??0)/Y*100),x=Math.max(0,100-O),H=y("context"),q=this.getRemainingColor(x),R=this.renderProgressBar(x);return`${W.context.icon}${H}${T.reset} ${q}Context Remaining: ${x}%${T.reset} ${R}`}renderProgressBar($){let Y=Math.round($/100*10),E=10-Y,O="=".repeat(Y),x="-".repeat(E),H=this.getRemainingColor($);return`${N.brightBlack}[${T.reset}${H}${O}${T.reset}${N.brightBlack}${x}]${T.reset}`}getRemainingColor($){if($<=20)return W.context.high;if($<=50)return W.context.medium;return W.context.low}async getTokensWithCache($){let S=Date.now();if(d.cache&&d.cache.path===$&&S-d.cache.timestamp<d.CACHE_TTL)return d.cache.tokens;let Y=await this.parseTranscriptTokens($);return d.cache={path:$,tokens:Y,timestamp:S},Y}async parseTranscriptTokens($){try{let S=Bun.file($);if(!await S.exists())return null;let Y=await S.text();if(!Y.trim())return null;let E=Y.split(`
|
|
331
|
+
`).filter((O)=>O.trim());for(let O=E.length-1;O>=0;O--)try{let x=JSON.parse(E[O]);if(x.type==="assistant"&&x.message?.usage){let H=x.message.usage;return(H.input_tokens||0)+(H.output_tokens||0)+(H.cache_creation_input_tokens||0)+(H.cache_read_input_tokens||0)}}catch{continue}return null}catch{return null}}getContextLimit($){return pH[$]||lH}}class a{id="today-usage";static cache=null;static CACHE_TTL=30000;async render($){if(a.cache&&Date.now()-a.cache.timestamp<a.CACHE_TTL)return a.cache.data;try{let S=await B$();if(!S.success||!S.data)return null;let Y=S.data.todayCost,E=y("todayUsage"),O=`${W.todayUsage.icon}${E}${T.reset} ${W.todayUsage.text}Today: ${Y}${T.reset}`;return a.cache={data:O,timestamp:Date.now()},O}catch{return null}}}class u1{separator=`${W.separator} \u2502 ${T.reset}`;render($){let S=["directory","git","model","version","today-usage"],Y=["context"],E=this.renderLine($,S),O=this.renderLine($,Y);return[E,O].filter((x)=>x.length>0).join(`
|
|
332
|
+
`)}renderLine($,S){let Y=[];for(let E of S){let O=$.get(E);if(O)Y.push(O)}return Y.join(this.separator)}}import{join as q$,dirname as oH}from"path";import{homedir as g1}from"os";import{mkdir as aH}from"fs/promises";var X2=q$(g1(),".tako"),iH=q$(X2,"cli"),rH=q$(X2,"bin",process.platform==="win32"?"tako.cmd":"tako");function nH(){if(process.platform==="win32")return q$(process.env.APPDATA||q$(g1(),"AppData","Roaming"),"claude","settings.json");return q$(g1(),".claude","settings.json")}var sH=process.platform==="win32",eH="0.1.48";function tH($,S){let Y=$.split(".").map(Number),E=S.split(".").map(Number),O=Math.max(Y.length,E.length);for(let x=0;x<O;x++){let H=Y[x]||0,q=E[x]||0;if(H!==q)return H-q}return 0}async function $3(){let $=q$(iH,"node_modules","tako-cli","package.json");try{let S=Bun.file($);if(!await S.exists())return null;return(await S.json()).version||null}catch{return null}}async function S3(){let $=await $3();if(!$)return!1;return tH($,eH)>=0}function H3(){return rH}function Y3($){if(sH)return $.replace(/\\/g,"/");return $}async function d1(){if(!await S3())return;let S=nH(),Y={};try{let H=Bun.file(S);if(await H.exists())Y=await H.json()}catch{}let O={type:"command",command:`"${Y3(H3())}" statusline`,padding:0},x=typeof Y.statusLine==="object"&&Y.statusLine!==null?Y.statusLine.command:null;if(typeof x==="string"&&x.includes("tako statusline"))return;Y.statusLine=O,await aH(oH(S),{recursive:!0}),await Bun.write(S,JSON.stringify(Y,null,2))}var E3=[new i$,new r$,new n$,new s$,new d,new a];async function O3($){let S=await Promise.all(E3.map(async(O)=>{try{let x=await O.render($);return{id:O.id,content:x}}catch{return{id:O.id,content:null}}})),Y=new Map;for(let{id:O,content:x}of S)Y.set(O,x);return new u1().render(Y)}async function L2(){try{let $=await Bun.stdin.json(),S=await O3($);console.log(S)}catch($){process.exit(0)}}var c1="0.2.23";function x3(){console.log(`
|
|
333
|
+
${w("cli.version",{version:c1})}
|
|
334
334
|
|
|
335
|
-
${
|
|
335
|
+
${w("cli.usage")}
|
|
336
336
|
|
|
337
|
-
${
|
|
338
|
-
${
|
|
339
|
-
${
|
|
337
|
+
${w("cli.options")}
|
|
338
|
+
${w("cli.optionVersion")}
|
|
339
|
+
${w("cli.optionHelp")}
|
|
340
340
|
|
|
341
|
-
${
|
|
342
|
-
${
|
|
343
|
-
${
|
|
344
|
-
${
|
|
341
|
+
${w("cli.shortcuts")}
|
|
342
|
+
${w("cli.shortcutClaude")}
|
|
343
|
+
${w("cli.shortcutCodex")}
|
|
344
|
+
${w("cli.shortcutGemini")}
|
|
345
345
|
|
|
346
|
-
${
|
|
347
|
-
${
|
|
348
|
-
${
|
|
349
|
-
${
|
|
350
|
-
${
|
|
351
|
-
`)}async function
|
|
346
|
+
${w("cli.examples")}
|
|
347
|
+
${w("cli.exampleInteractive")}
|
|
348
|
+
${w("cli.exampleClaude")}
|
|
349
|
+
${w("cli.exampleCodex")}
|
|
350
|
+
${w("cli.exampleGemini")}
|
|
351
|
+
`)}async function q3(){let $=process.argv.slice(2);if($[0]==="statusline"){await L2();return}if($.includes("-v")||$.includes("--version")){console.log(`Tako CLI v${c1}`);return}if($.includes("-h")||$.includes("--help")){x3();return}let S=c1==="dev";if(p$(),L("cli_started"),$.includes("--claude")){let Y=C$("claude-code");if(!Y)console.error(w("cli.clientNotFound",{client:"Claude Code"})),process.exit(1);if(!S)await U$();let E=await x$(Y);if(E===null)return;let O=await O$(Y,{args:E.args,selectedOptionIds:E.selectedOptionIds});if(!O.success)console.error(O.error),process.exit(1);return}if($.includes("--codex")){let Y=C$("codex");if(!Y)console.error(w("cli.clientNotFound",{client:"Codex"})),process.exit(1);if(!S)await U$();let E=await x$(Y);if(E===null)return;let O=await O$(Y,{args:E.args,selectedOptionIds:E.selectedOptionIds});if(!O.success)console.error(O.error),process.exit(1);return}if($.includes("--gemini")){let Y=C$("gemini");if(!Y)console.error(w("cli.clientNotFound",{client:"Gemini CLI"})),process.exit(1);if(!S)await U$();let E=await x$(Y);if(E===null)return;let O=await O$(Y,{args:E.args,selectedOptionIds:E.selectedOptionIds});if(!O.success)console.error(O.error),process.exit(1);return}if(!S)await U$();d1().catch(()=>{}),await T2()}process.on("beforeExit",async()=>{await L$()});process.on("SIGINT",async()=>{await L$(),process.exit(0)});process.on("SIGTERM",async()=>{await L$(),process.exit(0)});q3().catch(async($)=>{console.error(w("cli.cliError"),$),await L$(),process.exit(1)});
|