tako-cli 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +33 -33
  2. package/package.json +10 -3
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var x$=Object.create;var{getPrototypeOf:p$,defineProperty:xr,getOwnPropertyNames:w$}=Object;var y$=Object.prototype.hasOwnProperty;var f=($,e,m)=>{m=$!=null?x$(p$($)):{};let a=e||!$||!$.__esModule?xr(m,"default",{value:$,enumerable:!0}):m;for(let t of w$($))if(!y$.call(a,t))xr(a,t,{get:()=>$[t],enumerable:!0});return a};var pr=($,e)=>()=>(e||$((e={exports:{}}).exports,e),e.exports);var k=import.meta.require;var rr=pr((sm,Qr)=>{var D={to($,e){if(!e)return`\x1B[${$+1}G`;return`\x1B[${e+1};${$+1}H`},move($,e){let m="";if($<0)m+=`\x1B[${-$}D`;else if($>0)m+=`\x1B[${$}C`;if(e<0)m+=`\x1B[${-e}A`;else if(e>0)m+=`\x1B[${e}B`;return m},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"},Y$={up:($=1)=>"\x1B[S".repeat($),down:($=1)=>"\x1B[T".repeat($)},j$={screen:"\x1B[2J",up:($=1)=>"\x1B[1J".repeat($),down:($=1)=>"\x1B[J".repeat($),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines($){let e="";for(let m=0;m<$;m++)e+=this.line+(m<$-1?D.up():"");if($)e+=D.left;return e}};Qr.exports={cursor:D,scroll:Y$,erase:j$,beep:"\x07"}});var er=pr((om,$r)=>{var U=process||{},Yr=U.argv||[],I=U.env||{},H$=!(!!I.NO_COLOR||Yr.includes("--no-color"))&&(!!I.FORCE_COLOR||Yr.includes("--color")||U.platform==="win32"||(U.stdout||{}).isTTY&&I.TERM!=="dumb"||!!I.CI),L$=($,e,m=$)=>(a)=>{let t=""+a,s=t.indexOf(e,$.length);return~s?$+V$(t,e,m,s)+e:$+t+e},V$=($,e,m,a)=>{let t="",s=0;do t+=$.substring(s,a)+m,s=a+e.length,a=$.indexOf(e,s);while(~a);return t+$.substring(s)},jr=($=H$)=>{let e=$?L$:()=>String;return{isColorSupported:$,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};$r.exports=jr();$r.exports.createColors=jr});import{join as Wr}from"path";import{homedir as S$}from"os";import{join as j}from"path";var z=j(S$(),".tako"),yr=j(z,"config.json"),_=j(z,"tools"),J=j(z,"bun"),S=j(J,"bin","bun");var M="https://claude-proxy.shiroha.tech",wr={apiKey:"",apiId:"",installedClients:{}};async function Sr(){let $=await import("fs/promises");try{await $.mkdir(z,{recursive:!0}),await $.mkdir(_,{recursive:!0})}catch{}}async function G(){await Sr();try{let $=Bun.file(yr);if(await $.exists()){let e=await $.json();return{...wr,...e}}}catch{}return{...wr}}async function M$($){await Sr(),await Bun.write(yr,JSON.stringify($,null,2))}async function E($){let m={...await G(),...$};return await M$(m),m}async function Mr(){return!!(await G()).apiKey}async function fr(){return(await G()).apiKey}async function qr(){return(await G()).apiId}function Gr($,e){if(!$.startsWith(z))throw Error(`\u5B89\u5168\u68C0\u67E5\u5931\u8D25: ${e} \u8DEF\u5F84 "${$}" \u4E0D\u5728 Tako \u76EE\u5F55\u4E0B`)}function T($){let e=Wr(_,$);return Gr(e,"\u5BA2\u6237\u7AEF\u5B89\u88C5\u76EE\u5F55"),e}function Zr($){let e=T($.id),m=Wr(e,"node_modules",".bin",$.command);return Gr(m,"\u5BA2\u6237\u7AEF\u53EF\u6267\u884C\u6587\u4EF6"),m}var zr=new Map;function P($){zr.set($.id,$)}function Jr(){return Array.from(zr.values())}var f$={id:"claude-code",name:"Claude Code",package:"@anthropic-ai/claude-code",command:"claude",getEnvVars($){return{ANTHROPIC_BASE_URL:`${M}/api`,ANTHROPIC_AUTH_TOKEN:$}}};P(f$);import{homedir as q$}from"os";import{join as u}from"path";var F=u(q$(),".codex"),W$=u(F,"config.toml"),G$=u(F,"auth.json"),Z$=`model_provider = "crs"
3
+ var wr=Object.create;var{getPrototypeOf:yr,defineProperty:x$,getOwnPropertyNames:pr}=Object;var Sr=Object.prototype.hasOwnProperty;var f=(r,m,e)=>{e=r!=null?wr(yr(r)):{};let a=m||!r||!r.__esModule?x$(e,"default",{value:r,enumerable:!0}):e;for(let t of pr(r))if(!Sr.call(a,t))x$(a,t,{get:()=>r[t],enumerable:!0});return a};var w$=(r,m)=>()=>(m||r((m={exports:{}}).exports,m),m.exports);var E=import.meta.require;var $$=w$((se,Q$)=>{var D={to(r,m){if(!m)return`\x1B[${r+1}G`;return`\x1B[${m+1};${r+1}H`},move(r,m){let e="";if(r<0)e+=`\x1B[${-r}D`;else if(r>0)e+=`\x1B[${r}C`;if(m<0)e+=`\x1B[${-m}A`;else if(m>0)e+=`\x1B[${m}B`;return e},up:(r=1)=>`\x1B[${r}A`,down:(r=1)=>`\x1B[${r}B`,forward:(r=1)=>`\x1B[${r}C`,backward:(r=1)=>`\x1B[${r}D`,nextLine:(r=1)=>"\x1B[E".repeat(r),prevLine:(r=1)=>"\x1B[F".repeat(r),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},jr={up:(r=1)=>"\x1B[S".repeat(r),down:(r=1)=>"\x1B[T".repeat(r)},Hr={screen:"\x1B[2J",up:(r=1)=>"\x1B[1J".repeat(r),down:(r=1)=>"\x1B[J".repeat(r),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(r){let m="";for(let e=0;e<r;e++)m+=this.line+(e<r-1?D.up():"");if(r)m+=D.left;return m}};Q$.exports={cursor:D,scroll:jr,erase:Hr,beep:"\x07"}});var m$=w$((oe,r$)=>{var O=process||{},Y$=O.argv||[],U=O.env||{},Lr=!(!!U.NO_COLOR||Y$.includes("--no-color"))&&(!!U.FORCE_COLOR||Y$.includes("--color")||O.platform==="win32"||(O.stdout||{}).isTTY&&U.TERM!=="dumb"||!!U.CI),Vr=(r,m,e=r)=>(a)=>{let t=""+a,s=t.indexOf(m,r.length);return~s?r+Xr(t,m,e,s)+m:r+t+m},Xr=(r,m,e,a)=>{let t="",s=0;do t+=r.substring(s,a)+e,s=a+m.length,a=r.indexOf(m,s);while(~a);return t+r.substring(s)},j$=(r=Lr)=>{let m=r?Vr:()=>String;return{isColorSupported:r,reset:m("\x1B[0m","\x1B[0m"),bold:m("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:m("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:m("\x1B[3m","\x1B[23m"),underline:m("\x1B[4m","\x1B[24m"),inverse:m("\x1B[7m","\x1B[27m"),hidden:m("\x1B[8m","\x1B[28m"),strikethrough:m("\x1B[9m","\x1B[29m"),black:m("\x1B[30m","\x1B[39m"),red:m("\x1B[31m","\x1B[39m"),green:m("\x1B[32m","\x1B[39m"),yellow:m("\x1B[33m","\x1B[39m"),blue:m("\x1B[34m","\x1B[39m"),magenta:m("\x1B[35m","\x1B[39m"),cyan:m("\x1B[36m","\x1B[39m"),white:m("\x1B[37m","\x1B[39m"),gray:m("\x1B[90m","\x1B[39m"),bgBlack:m("\x1B[40m","\x1B[49m"),bgRed:m("\x1B[41m","\x1B[49m"),bgGreen:m("\x1B[42m","\x1B[49m"),bgYellow:m("\x1B[43m","\x1B[49m"),bgBlue:m("\x1B[44m","\x1B[49m"),bgMagenta:m("\x1B[45m","\x1B[49m"),bgCyan:m("\x1B[46m","\x1B[49m"),bgWhite:m("\x1B[47m","\x1B[49m"),blackBright:m("\x1B[90m","\x1B[39m"),redBright:m("\x1B[91m","\x1B[39m"),greenBright:m("\x1B[92m","\x1B[39m"),yellowBright:m("\x1B[93m","\x1B[39m"),blueBright:m("\x1B[94m","\x1B[39m"),magentaBright:m("\x1B[95m","\x1B[39m"),cyanBright:m("\x1B[96m","\x1B[39m"),whiteBright:m("\x1B[97m","\x1B[39m"),bgBlackBright:m("\x1B[100m","\x1B[49m"),bgRedBright:m("\x1B[101m","\x1B[49m"),bgGreenBright:m("\x1B[102m","\x1B[49m"),bgYellowBright:m("\x1B[103m","\x1B[49m"),bgBlueBright:m("\x1B[104m","\x1B[49m"),bgMagentaBright:m("\x1B[105m","\x1B[49m"),bgCyanBright:m("\x1B[106m","\x1B[49m"),bgWhiteBright:m("\x1B[107m","\x1B[49m")}};r$.exports=j$();r$.exports.createColors=j$});import{join as W$}from"path";import{homedir as Mr}from"os";import{join as L}from"path";var J=L(Mr(),".tako"),p$=L(J,"config.json"),_=L(J,"tools"),Q=L(J,"bun"),p=L(Q,"bin","bun");var M="https://claude-proxy.shiroha.tech",y$={apiKey:"",apiId:"",installedClients:{}};async function S$(){let r=await import("fs/promises");try{await r.mkdir(J,{recursive:!0}),await r.mkdir(_,{recursive:!0})}catch{}}async function Z(){await S$();try{let r=Bun.file(p$);if(await r.exists()){let m=await r.json();return{...y$,...m}}}catch{}return{...y$}}async function fr(r){await S$(),await Bun.write(p$,JSON.stringify(r,null,2))}async function T(r){let e={...await Z(),...r};return await fr(e),e}async function M$(){return!!(await Z()).apiKey}async function f$(){return(await Z()).apiKey}async function q$(){return(await Z()).apiId}function G$(r,m){if(!r.startsWith(J))throw Error(`\u5B89\u5168\u68C0\u67E5\u5931\u8D25: ${m} \u8DEF\u5F84 "${r}" \u4E0D\u5728 Tako \u76EE\u5F55\u4E0B`)}function P(r){let m=W$(_,r);return G$(m,"\u5BA2\u6237\u7AEF\u5B89\u88C5\u76EE\u5F55"),m}function Z$(r){let m=P(r.id),e=W$(m,"node_modules",".bin",r.command);return G$(e,"\u5BA2\u6237\u7AEF\u53EF\u6267\u884C\u6587\u4EF6"),e}var z$=new Map;function I(r){z$.set(r.id,r)}function J$(){return Array.from(z$.values())}var qr={id:"claude-code",name:"Claude Code",package:"@anthropic-ai/claude-code",command:"claude",getEnvVars(r){return{ANTHROPIC_BASE_URL:`${M}/api`,ANTHROPIC_AUTH_TOKEN:r}}};I(qr);import{homedir as Wr}from"os";import{join as u}from"path";var F=u(Wr(),".codex"),Gr=u(F,"config.toml"),Zr=u(F,"auth.json"),zr=`model_provider = "crs"
4
4
  model = "gpt-5-codex"
5
5
  model_reasoning_effort = "high"
6
6
  disable_response_storage = true
@@ -12,42 +12,42 @@ base_url = "${M}/openai"
12
12
  wire_api = "responses"
13
13
  requires_openai_auth = true
14
14
  env_key = "CRS_OAI_KEY"
15
- `,z$=`{
15
+ `,Jr=`{
16
16
  "OPENAI_API_KEY": null
17
17
  }
18
- `;async function J$($){let e=await import("fs/promises");try{await e.mkdir(F,{recursive:!0})}catch{}await Bun.write(W$,Z$),await Bun.write(G$,z$)}var Q$={id:"codex",name:"Codex",package:"@openai/codex",command:"codex",runtime:"bun",getEnvVars($){return{CRS_OAI_KEY:$}},setupConfigFiles:J$};P(Q$);var p=f(rr(),1),O=f(er(),1);import{stdin as Ir,stdout as Ur}from"process";import*as q from"readline";import Hr from"readline";import{WriteStream as X$}from"tty";function B$({onlyFirst:$=!1}={}){let e=["[\\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(e,$?void 0:"g")}var k$=B$();function Kr($){if(typeof $!="string")throw TypeError(`Expected a \`string\`, got \`${typeof $}\``);return $.replace(k$,"")}function Or($){return $&&$.__esModule&&Object.prototype.hasOwnProperty.call($,"default")?$.default:$}var Ar={exports:{}};(function($){var e={};$.exports=e,e.eastAsianWidth=function(a){var t=a.charCodeAt(0),s=a.length==2?a.charCodeAt(1):0,r=t;return 55296<=t&&t<=56319&&56320<=s&&s<=57343&&(t&=1023,s&=1023,r=t<<10|s,r+=65536),r==12288||65281<=r&&r<=65376||65504<=r&&r<=65510?"F":r==8361||65377<=r&&r<=65470||65474<=r&&r<=65479||65482<=r&&r<=65487||65490<=r&&r<=65495||65498<=r&&r<=65500||65512<=r&&r<=65518?"H":4352<=r&&r<=4447||4515<=r&&r<=4519||4602<=r&&r<=4607||9001<=r&&r<=9002||11904<=r&&r<=11929||11931<=r&&r<=12019||12032<=r&&r<=12245||12272<=r&&r<=12283||12289<=r&&r<=12350||12353<=r&&r<=12438||12441<=r&&r<=12543||12549<=r&&r<=12589||12593<=r&&r<=12686||12688<=r&&r<=12730||12736<=r&&r<=12771||12784<=r&&r<=12830||12832<=r&&r<=12871||12880<=r&&r<=13054||13056<=r&&r<=19903||19968<=r&&r<=42124||42128<=r&&r<=42182||43360<=r&&r<=43388||44032<=r&&r<=55203||55216<=r&&r<=55238||55243<=r&&r<=55291||63744<=r&&r<=64255||65040<=r&&r<=65049||65072<=r&&r<=65106||65108<=r&&r<=65126||65128<=r&&r<=65131||110592<=r&&r<=110593||127488<=r&&r<=127490||127504<=r&&r<=127546||127552<=r&&r<=127560||127568<=r&&r<=127569||131072<=r&&r<=194367||177984<=r&&r<=196605||196608<=r&&r<=262141?"W":32<=r&&r<=126||162<=r&&r<=163||165<=r&&r<=166||r==172||r==175||10214<=r&&r<=10221||10629<=r&&r<=10630?"Na":r==161||r==164||167<=r&&r<=168||r==170||173<=r&&r<=174||176<=r&&r<=180||182<=r&&r<=186||188<=r&&r<=191||r==198||r==208||215<=r&&r<=216||222<=r&&r<=225||r==230||232<=r&&r<=234||236<=r&&r<=237||r==240||242<=r&&r<=243||247<=r&&r<=250||r==252||r==254||r==257||r==273||r==275||r==283||294<=r&&r<=295||r==299||305<=r&&r<=307||r==312||319<=r&&r<=322||r==324||328<=r&&r<=331||r==333||338<=r&&r<=339||358<=r&&r<=359||r==363||r==462||r==464||r==466||r==468||r==470||r==472||r==474||r==476||r==593||r==609||r==708||r==711||713<=r&&r<=715||r==717||r==720||728<=r&&r<=731||r==733||r==735||768<=r&&r<=879||913<=r&&r<=929||931<=r&&r<=937||945<=r&&r<=961||963<=r&&r<=969||r==1025||1040<=r&&r<=1103||r==1105||r==8208||8211<=r&&r<=8214||8216<=r&&r<=8217||8220<=r&&r<=8221||8224<=r&&r<=8226||8228<=r&&r<=8231||r==8240||8242<=r&&r<=8243||r==8245||r==8251||r==8254||r==8308||r==8319||8321<=r&&r<=8324||r==8364||r==8451||r==8453||r==8457||r==8467||r==8470||8481<=r&&r<=8482||r==8486||r==8491||8531<=r&&r<=8532||8539<=r&&r<=8542||8544<=r&&r<=8555||8560<=r&&r<=8569||r==8585||8592<=r&&r<=8601||8632<=r&&r<=8633||r==8658||r==8660||r==8679||r==8704||8706<=r&&r<=8707||8711<=r&&r<=8712||r==8715||r==8719||r==8721||r==8725||r==8730||8733<=r&&r<=8736||r==8739||r==8741||8743<=r&&r<=8748||r==8750||8756<=r&&r<=8759||8764<=r&&r<=8765||r==8776||r==8780||r==8786||8800<=r&&r<=8801||8804<=r&&r<=8807||8810<=r&&r<=8811||8814<=r&&r<=8815||8834<=r&&r<=8835||8838<=r&&r<=8839||r==8853||r==8857||r==8869||r==8895||r==8978||9312<=r&&r<=9449||9451<=r&&r<=9547||9552<=r&&r<=9587||9600<=r&&r<=9615||9618<=r&&r<=9621||9632<=r&&r<=9633||9635<=r&&r<=9641||9650<=r&&r<=9651||9654<=r&&r<=9655||9660<=r&&r<=9661||9664<=r&&r<=9665||9670<=r&&r<=9672||r==9675||9678<=r&&r<=9681||9698<=r&&r<=9701||r==9711||9733<=r&&r<=9734||r==9737||9742<=r&&r<=9743||9748<=r&&r<=9749||r==9756||r==9758||r==9792||r==9794||9824<=r&&r<=9825||9827<=r&&r<=9829||9831<=r&&r<=9834||9836<=r&&r<=9837||r==9839||9886<=r&&r<=9887||9918<=r&&r<=9919||9924<=r&&r<=9933||9935<=r&&r<=9953||r==9955||9960<=r&&r<=9983||r==10045||r==10071||10102<=r&&r<=10111||11093<=r&&r<=11097||12872<=r&&r<=12879||57344<=r&&r<=63743||65024<=r&&r<=65039||r==65533||127232<=r&&r<=127242||127248<=r&&r<=127277||127280<=r&&r<=127337||127344<=r&&r<=127386||917760<=r&&r<=917999||983040<=r&&r<=1048573||1048576<=r&&r<=1114109?"A":"N"},e.characterLength=function(a){var t=this.eastAsianWidth(a);return t=="F"||t=="W"||t=="A"?2:1};function m(a){return a.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(a){for(var t=m(a),s=0,r=0;r<t.length;r++)s=s+this.characterLength(t[r]);return s},e.slice=function(a,t,s){textLen=e.length(a),t=t||0,s=s||1,t<0&&(t=textLen+t),s<0&&(s=textLen+s);for(var r="",i=0,b=m(a),c=0;c<b.length;c++){var d=b[c],h=e.length(d);if(i>=t-(h==2?1:0))if(i+h<=s)r+=d;else break;i+=h}return r}})(Ar);var E$=Ar.exports,T$=Or(E$),P$=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},I$=Or(P$);function H($,e={}){if(typeof $!="string"||$.length===0||(e={ambiguousIsNarrow:!0,...e},$=Kr($),$.length===0))return 0;$=$.replace(I$()," ");let m=e.ambiguousIsNarrow?1:2,a=0;for(let t of $){let s=t.codePointAt(0);if(s<=31||s>=127&&s<=159||s>=768&&s<=879)continue;switch(T$.eastAsianWidth(t)){case"F":case"W":a+=2;break;case"A":a+=m;break;default:a+=1}}return a}var mr=10,Lr=($=0)=>(e)=>`\x1B[${e+$}m`,Vr=($=0)=>(e)=>`\x1B[${38+$};5;${e}m`,Xr=($=0)=>(e,m,a)=>`\x1B[${38+$};2;${e};${m};${a}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 U$=Object.keys(n.color),K$=Object.keys(n.bgColor);[...U$,...K$];function O$(){let $=new Map;for(let[e,m]of Object.entries(n)){for(let[a,t]of Object.entries(m))n[a]={open:`\x1B[${t[0]}m`,close:`\x1B[${t[1]}m`},m[a]=n[a],$.set(t[0],t[1]);Object.defineProperty(n,e,{value:m,enumerable:!1})}return Object.defineProperty(n,"codes",{value:$,enumerable:!1}),n.color.close="\x1B[39m",n.bgColor.close="\x1B[49m",n.color.ansi=Lr(),n.color.ansi256=Vr(),n.color.ansi16m=Xr(),n.bgColor.ansi=Lr(mr),n.bgColor.ansi256=Vr(mr),n.bgColor.ansi16m=Xr(mr),Object.defineProperties(n,{rgbToAnsi256:{value:(e,m,a)=>e===m&&m===a?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(m/255*5)+Math.round(a/255*5),enumerable:!1},hexToRgb:{value:(e)=>{let m=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!m)return[0,0,0];let[a]=m;a.length===3&&(a=[...a].map((s)=>s+s).join(""));let t=Number.parseInt(a,16);return[t>>16&255,t>>8&255,t&255]},enumerable:!1},hexToAnsi256:{value:(e)=>n.rgbToAnsi256(...n.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:(e)=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let m,a,t;if(e>=232)m=((e-232)*10+8)/255,a=m,t=m;else{e-=16;let i=e%36;m=Math.floor(e/36)/5,a=Math.floor(i/6)/5,t=i%6/5}let s=Math.max(m,a,t)*2;if(s===0)return 30;let r=30+(Math.round(t)<<2|Math.round(a)<<1|Math.round(m));return s===2&&(r+=60),r},enumerable:!1},rgbToAnsi:{value:(e,m,a)=>n.ansi256ToAnsi(n.rgbToAnsi256(e,m,a)),enumerable:!1},hexToAnsi:{value:(e)=>n.ansi256ToAnsi(n.hexToAnsi256(e)),enumerable:!1}}),n}var A$=O$(),A=new Set(["\x1B","\x9B"]),C$=39,tr="\x07",Cr="[",R$="]",Rr="m",sr=`${R$}8;;`,Br=($)=>`${A.values().next().value}${Cr}${$}${Rr}`,kr=($)=>`${A.values().next().value}${sr}${$}${tr}`,N$=($)=>$.split(" ").map((e)=>H(e)),ar=($,e,m)=>{let a=[...e],t=!1,s=!1,r=H(Kr($[$.length-1]));for(let[i,b]of a.entries()){let c=H(b);if(r+c<=m?$[$.length-1]+=b:($.push(b),r=0),A.has(b)&&(t=!0,s=a.slice(i+1).join("").startsWith(sr)),t){s?b===tr&&(t=!1,s=!1):b===Rr&&(t=!1);continue}r+=c,r===m&&i<a.length-1&&($.push(""),r=0)}!r&&$[$.length-1].length>0&&$.length>1&&($[$.length-2]+=$.pop())},_$=($)=>{let e=$.split(" "),m=e.length;for(;m>0&&!(H(e[m-1])>0);)m--;return m===e.length?$:e.slice(0,m).join(" ")+e.slice(m).join("")},u$=($,e,m={})=>{if(m.trim!==!1&&$.trim()==="")return"";let a="",t,s,r=N$($),i=[""];for(let[c,d]of $.split(" ").entries()){m.trim!==!1&&(i[i.length-1]=i[i.length-1].trimStart());let h=H(i[i.length-1]);if(c!==0&&(h>=e&&(m.wordWrap===!1||m.trim===!1)&&(i.push(""),h=0),(h>0||m.trim===!1)&&(i[i.length-1]+=" ",h++)),m.hard&&r[c]>e){let v=e-h,W=1+Math.floor((r[c]-v-1)/e);Math.floor((r[c]-1)/e)<W&&i.push(""),ar(i,d,e);continue}if(h+r[c]>e&&h>0&&r[c]>0){if(m.wordWrap===!1&&h<e){ar(i,d,e);continue}i.push("")}if(h+r[c]>e&&m.wordWrap===!1){ar(i,d,e);continue}i[i.length-1]+=d}m.trim!==!1&&(i=i.map((c)=>_$(c)));let b=[...i.join(`
19
- `)];for(let[c,d]of b.entries()){if(a+=d,A.has(d)){let{groups:v}=new RegExp(`(?:\\${Cr}(?<code>\\d+)m|\\${sr}(?<uri>.*)${tr})`).exec(b.slice(c).join(""))||{groups:{}};if(v.code!==void 0){let W=Number.parseFloat(v.code);t=W===C$?void 0:W}else v.uri!==void 0&&(s=v.uri.length===0?void 0:v.uri)}let h=A$.codes.get(Number(t));b[c+1]===`
20
- `?(s&&(a+=kr("")),t&&h&&(a+=Br(h))):d===`
21
- `&&(t&&h&&(a+=Br(t)),s&&(a+=kr(s)))}return a};function Er($,e,m){return String($).normalize().replace(/\r\n/g,`
18
+ `;async function Qr(r){let m=await import("fs/promises");try{await m.mkdir(F,{recursive:!0})}catch{}await Bun.write(Gr,zr),await Bun.write(Zr,Jr)}var Yr={id:"codex",name:"Codex",package:"@openai/codex",command:"codex",runtime:"bun",getEnvVars(r){return{CRS_OAI_KEY:r}},setupConfigFiles:Qr};I(Yr);var w=f($$(),1),A=f(m$(),1);import{stdin as I$,stdout as U$}from"process";import*as q from"readline";import H$ from"readline";import{WriteStream as Br}from"tty";function kr({onlyFirst:r=!1}={}){let m=["[\\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(m,r?void 0:"g")}var Er=kr();function O$(r){if(typeof r!="string")throw TypeError(`Expected a \`string\`, got \`${typeof r}\``);return r.replace(Er,"")}function K$(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var A$={exports:{}};(function(r){var m={};r.exports=m,m.eastAsianWidth=function(a){var t=a.charCodeAt(0),s=a.length==2?a.charCodeAt(1):0,$=t;return 55296<=t&&t<=56319&&56320<=s&&s<=57343&&(t&=1023,s&=1023,$=t<<10|s,$+=65536),$==12288||65281<=$&&$<=65376||65504<=$&&$<=65510?"F":$==8361||65377<=$&&$<=65470||65474<=$&&$<=65479||65482<=$&&$<=65487||65490<=$&&$<=65495||65498<=$&&$<=65500||65512<=$&&$<=65518?"H":4352<=$&&$<=4447||4515<=$&&$<=4519||4602<=$&&$<=4607||9001<=$&&$<=9002||11904<=$&&$<=11929||11931<=$&&$<=12019||12032<=$&&$<=12245||12272<=$&&$<=12283||12289<=$&&$<=12350||12353<=$&&$<=12438||12441<=$&&$<=12543||12549<=$&&$<=12589||12593<=$&&$<=12686||12688<=$&&$<=12730||12736<=$&&$<=12771||12784<=$&&$<=12830||12832<=$&&$<=12871||12880<=$&&$<=13054||13056<=$&&$<=19903||19968<=$&&$<=42124||42128<=$&&$<=42182||43360<=$&&$<=43388||44032<=$&&$<=55203||55216<=$&&$<=55238||55243<=$&&$<=55291||63744<=$&&$<=64255||65040<=$&&$<=65049||65072<=$&&$<=65106||65108<=$&&$<=65126||65128<=$&&$<=65131||110592<=$&&$<=110593||127488<=$&&$<=127490||127504<=$&&$<=127546||127552<=$&&$<=127560||127568<=$&&$<=127569||131072<=$&&$<=194367||177984<=$&&$<=196605||196608<=$&&$<=262141?"W":32<=$&&$<=126||162<=$&&$<=163||165<=$&&$<=166||$==172||$==175||10214<=$&&$<=10221||10629<=$&&$<=10630?"Na":$==161||$==164||167<=$&&$<=168||$==170||173<=$&&$<=174||176<=$&&$<=180||182<=$&&$<=186||188<=$&&$<=191||$==198||$==208||215<=$&&$<=216||222<=$&&$<=225||$==230||232<=$&&$<=234||236<=$&&$<=237||$==240||242<=$&&$<=243||247<=$&&$<=250||$==252||$==254||$==257||$==273||$==275||$==283||294<=$&&$<=295||$==299||305<=$&&$<=307||$==312||319<=$&&$<=322||$==324||328<=$&&$<=331||$==333||338<=$&&$<=339||358<=$&&$<=359||$==363||$==462||$==464||$==466||$==468||$==470||$==472||$==474||$==476||$==593||$==609||$==708||$==711||713<=$&&$<=715||$==717||$==720||728<=$&&$<=731||$==733||$==735||768<=$&&$<=879||913<=$&&$<=929||931<=$&&$<=937||945<=$&&$<=961||963<=$&&$<=969||$==1025||1040<=$&&$<=1103||$==1105||$==8208||8211<=$&&$<=8214||8216<=$&&$<=8217||8220<=$&&$<=8221||8224<=$&&$<=8226||8228<=$&&$<=8231||$==8240||8242<=$&&$<=8243||$==8245||$==8251||$==8254||$==8308||$==8319||8321<=$&&$<=8324||$==8364||$==8451||$==8453||$==8457||$==8467||$==8470||8481<=$&&$<=8482||$==8486||$==8491||8531<=$&&$<=8532||8539<=$&&$<=8542||8544<=$&&$<=8555||8560<=$&&$<=8569||$==8585||8592<=$&&$<=8601||8632<=$&&$<=8633||$==8658||$==8660||$==8679||$==8704||8706<=$&&$<=8707||8711<=$&&$<=8712||$==8715||$==8719||$==8721||$==8725||$==8730||8733<=$&&$<=8736||$==8739||$==8741||8743<=$&&$<=8748||$==8750||8756<=$&&$<=8759||8764<=$&&$<=8765||$==8776||$==8780||$==8786||8800<=$&&$<=8801||8804<=$&&$<=8807||8810<=$&&$<=8811||8814<=$&&$<=8815||8834<=$&&$<=8835||8838<=$&&$<=8839||$==8853||$==8857||$==8869||$==8895||$==8978||9312<=$&&$<=9449||9451<=$&&$<=9547||9552<=$&&$<=9587||9600<=$&&$<=9615||9618<=$&&$<=9621||9632<=$&&$<=9633||9635<=$&&$<=9641||9650<=$&&$<=9651||9654<=$&&$<=9655||9660<=$&&$<=9661||9664<=$&&$<=9665||9670<=$&&$<=9672||$==9675||9678<=$&&$<=9681||9698<=$&&$<=9701||$==9711||9733<=$&&$<=9734||$==9737||9742<=$&&$<=9743||9748<=$&&$<=9749||$==9756||$==9758||$==9792||$==9794||9824<=$&&$<=9825||9827<=$&&$<=9829||9831<=$&&$<=9834||9836<=$&&$<=9837||$==9839||9886<=$&&$<=9887||9918<=$&&$<=9919||9924<=$&&$<=9933||9935<=$&&$<=9953||$==9955||9960<=$&&$<=9983||$==10045||$==10071||10102<=$&&$<=10111||11093<=$&&$<=11097||12872<=$&&$<=12879||57344<=$&&$<=63743||65024<=$&&$<=65039||$==65533||127232<=$&&$<=127242||127248<=$&&$<=127277||127280<=$&&$<=127337||127344<=$&&$<=127386||917760<=$&&$<=917999||983040<=$&&$<=1048573||1048576<=$&&$<=1114109?"A":"N"},m.characterLength=function(a){var t=this.eastAsianWidth(a);return t=="F"||t=="W"||t=="A"?2:1};function e(a){return a.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}m.length=function(a){for(var t=e(a),s=0,$=0;$<t.length;$++)s=s+this.characterLength(t[$]);return s},m.slice=function(a,t,s){textLen=m.length(a),t=t||0,s=s||1,t<0&&(t=textLen+t),s<0&&(s=textLen+s);for(var $="",i=0,b=e(a),c=0;c<b.length;c++){var d=b[c],h=m.length(d);if(i>=t-(h==2?1:0))if(i+h<=s)$+=d;else break;i+=h}return $}})(A$);var Tr=A$.exports,Pr=K$(Tr),Ir=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},Ur=K$(Ir);function V(r,m={}){if(typeof r!="string"||r.length===0||(m={ambiguousIsNarrow:!0,...m},r=O$(r),r.length===0))return 0;r=r.replace(Ur()," ");let e=m.ambiguousIsNarrow?1:2,a=0;for(let t of r){let s=t.codePointAt(0);if(s<=31||s>=127&&s<=159||s>=768&&s<=879)continue;switch(Pr.eastAsianWidth(t)){case"F":case"W":a+=2;break;case"A":a+=e;break;default:a+=1}}return a}var e$=10,L$=(r=0)=>(m)=>`\x1B[${m+r}m`,V$=(r=0)=>(m)=>`\x1B[${38+r};5;${m}m`,X$=(r=0)=>(m,e,a)=>`\x1B[${38+r};2;${m};${e};${a}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 Or=Object.keys(n.color),Kr=Object.keys(n.bgColor);[...Or,...Kr];function Ar(){let r=new Map;for(let[m,e]of Object.entries(n)){for(let[a,t]of Object.entries(e))n[a]={open:`\x1B[${t[0]}m`,close:`\x1B[${t[1]}m`},e[a]=n[a],r.set(t[0],t[1]);Object.defineProperty(n,m,{value:e,enumerable:!1})}return Object.defineProperty(n,"codes",{value:r,enumerable:!1}),n.color.close="\x1B[39m",n.bgColor.close="\x1B[49m",n.color.ansi=L$(),n.color.ansi256=V$(),n.color.ansi16m=X$(),n.bgColor.ansi=L$(e$),n.bgColor.ansi256=V$(e$),n.bgColor.ansi16m=X$(e$),Object.defineProperties(n,{rgbToAnsi256:{value:(m,e,a)=>m===e&&e===a?m<8?16:m>248?231:Math.round((m-8)/247*24)+232:16+36*Math.round(m/255*5)+6*Math.round(e/255*5)+Math.round(a/255*5),enumerable:!1},hexToRgb:{value:(m)=>{let e=/[a-f\d]{6}|[a-f\d]{3}/i.exec(m.toString(16));if(!e)return[0,0,0];let[a]=e;a.length===3&&(a=[...a].map((s)=>s+s).join(""));let t=Number.parseInt(a,16);return[t>>16&255,t>>8&255,t&255]},enumerable:!1},hexToAnsi256:{value:(m)=>n.rgbToAnsi256(...n.hexToRgb(m)),enumerable:!1},ansi256ToAnsi:{value:(m)=>{if(m<8)return 30+m;if(m<16)return 90+(m-8);let e,a,t;if(m>=232)e=((m-232)*10+8)/255,a=e,t=e;else{m-=16;let i=m%36;e=Math.floor(m/36)/5,a=Math.floor(i/6)/5,t=i%6/5}let s=Math.max(e,a,t)*2;if(s===0)return 30;let $=30+(Math.round(t)<<2|Math.round(a)<<1|Math.round(e));return s===2&&($+=60),$},enumerable:!1},rgbToAnsi:{value:(m,e,a)=>n.ansi256ToAnsi(n.rgbToAnsi256(m,e,a)),enumerable:!1},hexToAnsi:{value:(m)=>n.ansi256ToAnsi(n.hexToAnsi256(m)),enumerable:!1}}),n}var Cr=Ar(),C=new Set(["\x1B","\x9B"]),Rr=39,t$="\x07",C$="[",Nr="]",R$="m",s$=`${Nr}8;;`,B$=(r)=>`${C.values().next().value}${C$}${r}${R$}`,k$=(r)=>`${C.values().next().value}${s$}${r}${t$}`,_r=(r)=>r.split(" ").map((m)=>V(m)),a$=(r,m,e)=>{let a=[...m],t=!1,s=!1,$=V(O$(r[r.length-1]));for(let[i,b]of a.entries()){let c=V(b);if($+c<=e?r[r.length-1]+=b:(r.push(b),$=0),C.has(b)&&(t=!0,s=a.slice(i+1).join("").startsWith(s$)),t){s?b===t$&&(t=!1,s=!1):b===R$&&(t=!1);continue}$+=c,$===e&&i<a.length-1&&(r.push(""),$=0)}!$&&r[r.length-1].length>0&&r.length>1&&(r[r.length-2]+=r.pop())},ur=(r)=>{let m=r.split(" "),e=m.length;for(;e>0&&!(V(m[e-1])>0);)e--;return e===m.length?r:m.slice(0,e).join(" ")+m.slice(e).join("")},Fr=(r,m,e={})=>{if(e.trim!==!1&&r.trim()==="")return"";let a="",t,s,$=_r(r),i=[""];for(let[c,d]of r.split(" ").entries()){e.trim!==!1&&(i[i.length-1]=i[i.length-1].trimStart());let h=V(i[i.length-1]);if(c!==0&&(h>=m&&(e.wordWrap===!1||e.trim===!1)&&(i.push(""),h=0),(h>0||e.trim===!1)&&(i[i.length-1]+=" ",h++)),e.hard&&$[c]>m){let v=m-h,G=1+Math.floor(($[c]-v-1)/m);Math.floor(($[c]-1)/m)<G&&i.push(""),a$(i,d,m);continue}if(h+$[c]>m&&h>0&&$[c]>0){if(e.wordWrap===!1&&h<m){a$(i,d,m);continue}i.push("")}if(h+$[c]>m&&e.wordWrap===!1){a$(i,d,m);continue}i[i.length-1]+=d}e.trim!==!1&&(i=i.map((c)=>ur(c)));let b=[...i.join(`
19
+ `)];for(let[c,d]of b.entries()){if(a+=d,C.has(d)){let{groups:v}=new RegExp(`(?:\\${C$}(?<code>\\d+)m|\\${s$}(?<uri>.*)${t$})`).exec(b.slice(c).join(""))||{groups:{}};if(v.code!==void 0){let G=Number.parseFloat(v.code);t=G===Rr?void 0:G}else v.uri!==void 0&&(s=v.uri.length===0?void 0:v.uri)}let h=Cr.codes.get(Number(t));b[c+1]===`
20
+ `?(s&&(a+=k$("")),t&&h&&(a+=B$(h))):d===`
21
+ `&&(t&&h&&(a+=B$(t)),s&&(a+=k$(s)))}return a};function E$(r,m,e){return String(r).normalize().replace(/\r\n/g,`
22
22
  `).split(`
23
- `).map((a)=>u$(a,e,m)).join(`
24
- `)}var F$=Object.defineProperty,D$=($,e,m)=>(e in $)?F$($,e,{enumerable:!0,configurable:!0,writable:!0,value:m}):$[e]=m,w=($,e,m)=>(D$($,typeof e!="symbol"?e+"":e,m),m);function re($,e){if($===e)return;let m=$.split(`
25
- `),a=e.split(`
26
- `),t=[];for(let s=0;s<Math.max(m.length,a.length);s++)m[s]!==a[s]&&t.push(s);return t}var Nr=Symbol("clack:cancel");function L($){return $===Nr}function K($,e){$.isTTY&&$.setRawMode(e)}var Tr=new Map([["k","up"],["j","down"],["h","left"],["l","right"]]),$e=new Set(["up","down","left","right","space","enter"]);class or{constructor({render:$,input:e=Ir,output:m=Ur,...a},t=!0){w(this,"input"),w(this,"output"),w(this,"rl"),w(this,"opts"),w(this,"_track",!1),w(this,"_render"),w(this,"_cursor",0),w(this,"state","initial"),w(this,"value"),w(this,"error",""),w(this,"subscribers",new Map),w(this,"_prevFrame",""),this.opts=a,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=$.bind(this),this._track=t,this.input=e,this.output=m}prompt(){let $=new X$(0);return $._write=(e,m,a)=>{this._track&&(this.value=this.rl.line.replace(/\t/g,""),this._cursor=this.rl.cursor,this.emit("value",this.value)),a()},this.input.pipe($),this.rl=Hr.createInterface({input:this.input,output:$,tabSize:2,prompt:"",escapeCodeTimeout:50}),Hr.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),K(this.input,!0),this.output.on("resize",this.render),this.render(),new Promise((e,m)=>{this.once("submit",()=>{this.output.write(p.cursor.show),this.output.off("resize",this.render),K(this.input,!1),e(this.value)}),this.once("cancel",()=>{this.output.write(p.cursor.show),this.output.off("resize",this.render),K(this.input,!1),e(Nr)})})}on($,e){let m=this.subscribers.get($)??[];m.push({cb:e}),this.subscribers.set($,m)}once($,e){let m=this.subscribers.get($)??[];m.push({cb:e,once:!0}),this.subscribers.set($,m)}emit($,...e){let m=this.subscribers.get($)??[],a=[];for(let t of m)t.cb(...e),t.once&&a.push(()=>m.splice(m.indexOf(t),1));for(let t of a)t()}unsubscribe(){this.subscribers.clear()}onKeypress($,e){if(this.state==="error"&&(this.state="active"),e?.name&&!this._track&&Tr.has(e.name)&&this.emit("cursor",Tr.get(e.name)),e?.name&&$e.has(e.name)&&this.emit("cursor",e.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()),e?.name==="return"){if(this.opts.validate){let m=this.opts.validate(this.value);m&&(this.error=m,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(`
27
- `),K(this.input,!1),this.rl.close(),this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let $=Er(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
28
- `).length-1;this.output.write(p.cursor.move(-999,$*-1))}render(){let $=Er(this._render(this)??"",process.stdout.columns,{hard:!0});if($!==this._prevFrame){if(this.state==="initial")this.output.write(p.cursor.hide);else{let e=re(this._prevFrame,$);if(this.restoreCursor(),e&&e?.length===1){let m=e[0];this.output.write(p.cursor.move(0,m)),this.output.write(p.erase.lines(1));let a=$.split(`
29
- `);this.output.write(a[m]),this._prevFrame=$,this.output.write(p.cursor.move(0,a.length-m-1));return}else if(e&&e?.length>1){let m=e[0];this.output.write(p.cursor.move(0,m)),this.output.write(p.erase.down());let a=$.split(`
30
- `).slice(m);this.output.write(a.join(`
31
- `)),this._prevFrame=$;return}this.output.write(p.erase.down())}this.output.write($),this.state==="initial"&&(this.state="active"),this._prevFrame=$}}}var ee=Object.defineProperty,me=($,e,m)=>(e in $)?ee($,e,{enumerable:!0,configurable:!0,writable:!0,value:m}):$[e]=m,Pr=($,e,m)=>(me($,typeof e!="symbol"?e+"":e,m),m),_r=class extends or{constructor($){super($,!1),Pr(this,"options"),Pr(this,"cursor",0),this.options=$.options,this.cursor=this.options.findIndex(({value:e})=>e===$.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(e)=>{switch(e){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 ae=Object.defineProperty,te=($,e,m)=>(e in $)?ae($,e,{enumerable:!0,configurable:!0,writable:!0,value:m}):$[e]=m,se=($,e,m)=>(te($,typeof e!="symbol"?e+"":e,m),m);class ir extends or{constructor($){super($),se(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}${O.default.inverse(O.default.hidden("_"))}`;else{let e=this.value.slice(0,this.cursor),m=this.value.slice(this.cursor);this.valueWithCursor=`${e}${O.default.inverse(m[0])}${m.slice(1)}`}})}get cursor(){return this._cursor}}var oe=globalThis.process.platform.startsWith("win");function ur({input:$=Ir,output:e=Ur,overwrite:m=!0,hideCursor:a=!0}={}){let t=q.createInterface({input:$,output:e,prompt:"",tabSize:1});q.emitKeypressEvents($,t),$.isTTY&&$.setRawMode(!0);let s=(r,{name:i})=>{if(String(r)==="\x03"){a&&e.write(p.cursor.show),process.exit(0);return}if(!m)return;q.moveCursor(e,i==="return"?0:-1,i==="return"?-1:0,()=>{q.clearLine(e,1,()=>{$.once("keypress",s)})})};return a&&e.write(p.cursor.hide),$.once("keypress",s),()=>{$.off("keypress",s),a&&e.write(p.cursor.show),$.isTTY&&!oe&&$.setRawMode(!1),t.terminal=!1,t.close()}}var o=f(er(),1),Q=f(rr(),1);import y from"process";function ie(){return y.platform!=="win32"?y.env.TERM!=="linux":Boolean(y.env.CI)||Boolean(y.env.WT_SESSION)||Boolean(y.env.TERMINUS_SUBLIME)||y.env.ConEmuTask==="{cmd::Cmder}"||y.env.TERM_PROGRAM==="Terminus-Sublime"||y.env.TERM_PROGRAM==="vscode"||y.env.TERM==="xterm-256color"||y.env.TERM==="alacritty"||y.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var cr=ie(),g=($,e)=>cr?$:e,ce=g("\u25C6","*"),Fr=g("\u25A0","x"),Dr=g("\u25B2","x"),hr=g("\u25C7","o"),ym=g("\u250C","T"),x=g("\u2502","|"),C=g("\u2514","\u2014"),he=g("\u25CF",">"),be=g("\u25CB"," "),Sm=g("\u25FB","[\u2022]"),Mm=g("\u25FC","[+]"),fm=g("\u25FB","[ ]"),qm=g("\u25AA","\u2022"),Wm=g("\u2500","-"),Gm=g("\u256E","+"),Zm=g("\u251C","+"),zm=g("\u256F","+"),ne=g("\u25CF","\u2022"),le=g("\u25C6","*"),de=g("\u25B2","!"),ge=g("\u25A0","x"),r$=($)=>{switch($){case"initial":case"active":return o.default.cyan(ce);case"cancel":return o.default.red(Fr);case"error":return o.default.yellow(Dr);case"submit":return o.default.green(hr)}},br=($)=>new ir({validate:$.validate,placeholder:$.placeholder,defaultValue:$.defaultValue,initialValue:$.initialValue,render(){let e=`${o.default.gray(x)}
32
- ${r$(this.state)} ${$.message}
33
- `,m=$.placeholder?o.default.inverse($.placeholder[0])+o.default.dim($.placeholder.slice(1)):o.default.inverse(o.default.hidden("_")),a=this.value?this.valueWithCursor:m;switch(this.state){case"error":return`${e.trim()}
23
+ `).map((a)=>Fr(a,m,e)).join(`
24
+ `)}var Dr=Object.defineProperty,$m=(r,m,e)=>(m in r)?Dr(r,m,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[m]=e,y=(r,m,e)=>($m(r,typeof m!="symbol"?m+"":m,e),e);function rm(r,m){if(r===m)return;let e=r.split(`
25
+ `),a=m.split(`
26
+ `),t=[];for(let s=0;s<Math.max(e.length,a.length);s++)e[s]!==a[s]&&t.push(s);return t}var N$=Symbol("clack:cancel");function X(r){return r===N$}function K(r,m){r.isTTY&&r.setRawMode(m)}var T$=new Map([["k","up"],["j","down"],["h","left"],["l","right"]]),mm=new Set(["up","down","left","right","space","enter"]);class o${constructor({render:r,input:m=I$,output:e=U$,...a},t=!0){y(this,"input"),y(this,"output"),y(this,"rl"),y(this,"opts"),y(this,"_track",!1),y(this,"_render"),y(this,"_cursor",0),y(this,"state","initial"),y(this,"value"),y(this,"error",""),y(this,"subscribers",new Map),y(this,"_prevFrame",""),this.opts=a,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=r.bind(this),this._track=t,this.input=m,this.output=e}prompt(){let r=new Br(0);return r._write=(m,e,a)=>{this._track&&(this.value=this.rl.line.replace(/\t/g,""),this._cursor=this.rl.cursor,this.emit("value",this.value)),a()},this.input.pipe(r),this.rl=H$.createInterface({input:this.input,output:r,tabSize:2,prompt:"",escapeCodeTimeout:50}),H$.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),K(this.input,!0),this.output.on("resize",this.render),this.render(),new Promise((m,e)=>{this.once("submit",()=>{this.output.write(w.cursor.show),this.output.off("resize",this.render),K(this.input,!1),m(this.value)}),this.once("cancel",()=>{this.output.write(w.cursor.show),this.output.off("resize",this.render),K(this.input,!1),m(N$)})})}on(r,m){let e=this.subscribers.get(r)??[];e.push({cb:m}),this.subscribers.set(r,e)}once(r,m){let e=this.subscribers.get(r)??[];e.push({cb:m,once:!0}),this.subscribers.set(r,e)}emit(r,...m){let e=this.subscribers.get(r)??[],a=[];for(let t of e)t.cb(...m),t.once&&a.push(()=>e.splice(e.indexOf(t),1));for(let t of a)t()}unsubscribe(){this.subscribers.clear()}onKeypress(r,m){if(this.state==="error"&&(this.state="active"),m?.name&&!this._track&&T$.has(m.name)&&this.emit("cursor",T$.get(m.name)),m?.name&&mm.has(m.name)&&this.emit("cursor",m.name),r&&(r.toLowerCase()==="y"||r.toLowerCase()==="n")&&this.emit("confirm",r.toLowerCase()==="y"),r==="\t"&&this.opts.placeholder&&(this.value||(this.rl.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),r&&this.emit("key",r.toLowerCase()),m?.name==="return"){if(this.opts.validate){let e=this.opts.validate(this.value);e&&(this.error=e,this.state="error",this.rl.write(this.value))}this.state!=="error"&&(this.state="submit")}r==="\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(`
27
+ `),K(this.input,!1),this.rl.close(),this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let r=E$(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
28
+ `).length-1;this.output.write(w.cursor.move(-999,r*-1))}render(){let r=E$(this._render(this)??"",process.stdout.columns,{hard:!0});if(r!==this._prevFrame){if(this.state==="initial")this.output.write(w.cursor.hide);else{let m=rm(this._prevFrame,r);if(this.restoreCursor(),m&&m?.length===1){let e=m[0];this.output.write(w.cursor.move(0,e)),this.output.write(w.erase.lines(1));let a=r.split(`
29
+ `);this.output.write(a[e]),this._prevFrame=r,this.output.write(w.cursor.move(0,a.length-e-1));return}else if(m&&m?.length>1){let e=m[0];this.output.write(w.cursor.move(0,e)),this.output.write(w.erase.down());let a=r.split(`
30
+ `).slice(e);this.output.write(a.join(`
31
+ `)),this._prevFrame=r;return}this.output.write(w.erase.down())}this.output.write(r),this.state==="initial"&&(this.state="active"),this._prevFrame=r}}}var em=Object.defineProperty,am=(r,m,e)=>(m in r)?em(r,m,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[m]=e,P$=(r,m,e)=>(am(r,typeof m!="symbol"?m+"":m,e),e),_$=class extends o${constructor(r){super(r,!1),P$(this,"options"),P$(this,"cursor",0),this.options=r.options,this.cursor=this.options.findIndex(({value:m})=>m===r.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(m)=>{switch(m){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 tm=Object.defineProperty,sm=(r,m,e)=>(m in r)?tm(r,m,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[m]=e,om=(r,m,e)=>(sm(r,typeof m!="symbol"?m+"":m,e),e);class i$ extends o${constructor(r){super(r),om(this,"valueWithCursor",""),this.on("finalize",()=>{this.value||(this.value=r.defaultValue),this.valueWithCursor=this.value}),this.on("value",()=>{if(this.cursor>=this.value.length)this.valueWithCursor=`${this.value}${A.default.inverse(A.default.hidden("_"))}`;else{let m=this.value.slice(0,this.cursor),e=this.value.slice(this.cursor);this.valueWithCursor=`${m}${A.default.inverse(e[0])}${e.slice(1)}`}})}get cursor(){return this._cursor}}var im=globalThis.process.platform.startsWith("win");function u$({input:r=I$,output:m=U$,overwrite:e=!0,hideCursor:a=!0}={}){let t=q.createInterface({input:r,output:m,prompt:"",tabSize:1});q.emitKeypressEvents(r,t),r.isTTY&&r.setRawMode(!0);let s=($,{name:i})=>{if(String($)==="\x03"){a&&m.write(w.cursor.show),process.exit(0);return}if(!e)return;q.moveCursor(m,i==="return"?0:-1,i==="return"?-1:0,()=>{q.clearLine(m,1,()=>{r.once("keypress",s)})})};return a&&m.write(w.cursor.hide),r.once("keypress",s),()=>{r.off("keypress",s),a&&m.write(w.cursor.show),r.isTTY&&!im&&r.setRawMode(!1),t.terminal=!1,t.close()}}var o=f(m$(),1),Y=f($$(),1);import S from"process";function cm(){return S.platform!=="win32"?S.env.TERM!=="linux":Boolean(S.env.CI)||Boolean(S.env.WT_SESSION)||Boolean(S.env.TERMINUS_SUBLIME)||S.env.ConEmuTask==="{cmd::Cmder}"||S.env.TERM_PROGRAM==="Terminus-Sublime"||S.env.TERM_PROGRAM==="vscode"||S.env.TERM==="xterm-256color"||S.env.TERM==="alacritty"||S.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var c$=cm(),g=(r,m)=>c$?r:m,hm=g("\u25C6","*"),F$=g("\u25A0","x"),D$=g("\u25B2","x"),h$=g("\u25C7","o"),pe=g("\u250C","T"),x=g("\u2502","|"),R=g("\u2514","\u2014"),bm=g("\u25CF",">"),nm=g("\u25CB"," "),Se=g("\u25FB","[\u2022]"),Me=g("\u25FC","[+]"),fe=g("\u25FB","[ ]"),qe=g("\u25AA","\u2022"),We=g("\u2500","-"),Ge=g("\u256E","+"),Ze=g("\u251C","+"),ze=g("\u256F","+"),lm=g("\u25CF","\u2022"),dm=g("\u25C6","*"),gm=g("\u25B2","!"),vm=g("\u25A0","x"),$r=(r)=>{switch(r){case"initial":case"active":return o.default.cyan(hm);case"cancel":return o.default.red(F$);case"error":return o.default.yellow(D$);case"submit":return o.default.green(h$)}},b$=(r)=>new i$({validate:r.validate,placeholder:r.placeholder,defaultValue:r.defaultValue,initialValue:r.initialValue,render(){let m=`${o.default.gray(x)}
32
+ ${$r(this.state)} ${r.message}
33
+ `,e=r.placeholder?o.default.inverse(r.placeholder[0])+o.default.dim(r.placeholder.slice(1)):o.default.inverse(o.default.hidden("_")),a=this.value?this.valueWithCursor:e;switch(this.state){case"error":return`${m.trim()}
34
34
  ${o.default.yellow(x)} ${a}
35
- ${o.default.yellow(C)} ${o.default.yellow(this.error)}
36
- `;case"submit":return`${e}${o.default.gray(x)} ${o.default.dim(this.value||$.placeholder)}`;case"cancel":return`${e}${o.default.gray(x)} ${o.default.strikethrough(o.default.dim(this.value??""))}${this.value?.trim()?`
37
- `+o.default.gray(x):""}`;default:return`${e}${o.default.cyan(x)} ${a}
38
- ${o.default.cyan(C)}
39
- `}}}).prompt();var $$=($)=>{let e=(a,t)=>{let s=a.label??String(a.value);return t==="active"?`${o.default.green(he)} ${s} ${a.hint?o.default.dim(`(${a.hint})`):""}`:t==="selected"?`${o.default.dim(s)}`:t==="cancelled"?`${o.default.strikethrough(o.default.dim(s))}`:`${o.default.dim(be)} ${o.default.dim(s)}`},m=0;return new _r({options:$.options,initialValue:$.initialValue,render(){let a=`${o.default.gray(x)}
40
- ${r$(this.state)} ${$.message}
41
- `;switch(this.state){case"submit":return`${a}${o.default.gray(x)} ${e(this.options[this.cursor],"selected")}`;case"cancel":return`${a}${o.default.gray(x)} ${e(this.options[this.cursor],"cancelled")}
42
- ${o.default.gray(x)}`;default:{let t=$.maxItems===void 0?1/0:Math.max($.maxItems,5);this.cursor>=m+t-3?m=Math.max(Math.min(this.cursor-t+3,this.options.length-t),0):this.cursor<m+2&&(m=Math.max(this.cursor-2,0));let s=t<this.options.length&&m>0,r=t<this.options.length&&m+t<this.options.length;return`${a}${o.default.cyan(x)} ${this.options.slice(m,m+t).map((i,b,c)=>b===0&&s?o.default.dim("..."):b===c.length-1&&r?o.default.dim("..."):e(i,b+m===this.cursor?"active":"inactive")).join(`
35
+ ${o.default.yellow(R)} ${o.default.yellow(this.error)}
36
+ `;case"submit":return`${m}${o.default.gray(x)} ${o.default.dim(this.value||r.placeholder)}`;case"cancel":return`${m}${o.default.gray(x)} ${o.default.strikethrough(o.default.dim(this.value??""))}${this.value?.trim()?`
37
+ `+o.default.gray(x):""}`;default:return`${m}${o.default.cyan(x)} ${a}
38
+ ${o.default.cyan(R)}
39
+ `}}}).prompt();var rr=(r)=>{let m=(a,t)=>{let s=a.label??String(a.value);return t==="active"?`${o.default.green(bm)} ${s} ${a.hint?o.default.dim(`(${a.hint})`):""}`:t==="selected"?`${o.default.dim(s)}`:t==="cancelled"?`${o.default.strikethrough(o.default.dim(s))}`:`${o.default.dim(nm)} ${o.default.dim(s)}`},e=0;return new _$({options:r.options,initialValue:r.initialValue,render(){let a=`${o.default.gray(x)}
40
+ ${$r(this.state)} ${r.message}
41
+ `;switch(this.state){case"submit":return`${a}${o.default.gray(x)} ${m(this.options[this.cursor],"selected")}`;case"cancel":return`${a}${o.default.gray(x)} ${m(this.options[this.cursor],"cancelled")}
42
+ ${o.default.gray(x)}`;default:{let t=r.maxItems===void 0?1/0:Math.max(r.maxItems,5);this.cursor>=e+t-3?e=Math.max(Math.min(this.cursor-t+3,this.options.length-t),0):this.cursor<e+2&&(e=Math.max(this.cursor-2,0));let s=t<this.options.length&&e>0,$=t<this.options.length&&e+t<this.options.length;return`${a}${o.default.cyan(x)} ${this.options.slice(e,e+t).map((i,b,c)=>b===0&&s?o.default.dim("..."):b===c.length-1&&$?o.default.dim("..."):m(i,b+e===this.cursor?"active":"inactive")).join(`
43
43
  ${o.default.cyan(x)} `)}
44
- ${o.default.cyan(C)}
45
- `}}}}).prompt()};var nr=($="")=>{process.stdout.write(`${o.default.gray(x)}
46
- ${o.default.gray(C)} ${$}
44
+ ${o.default.cyan(R)}
45
+ `}}}}).prompt()};var n$=(r="")=>{process.stdout.write(`${o.default.gray(x)}
46
+ ${o.default.gray(R)} ${r}
47
47
 
48
- `)},l={message:($="",{symbol:e=o.default.gray(x)}={})=>{let m=[`${o.default.gray(x)}`];if($){let[a,...t]=$.split(`
49
- `);m.push(`${e} ${a}`,...t.map((s)=>`${o.default.gray(x)} ${s}`))}process.stdout.write(`${m.join(`
48
+ `)},l={message:(r="",{symbol:m=o.default.gray(x)}={})=>{let e=[`${o.default.gray(x)}`];if(r){let[a,...t]=r.split(`
49
+ `);e.push(`${m} ${a}`,...t.map((s)=>`${o.default.gray(x)} ${s}`))}process.stdout.write(`${e.join(`
50
50
  `)}
51
- `)},info:($)=>{l.message($,{symbol:o.default.blue(ne)})},success:($)=>{l.message($,{symbol:o.default.green(le)})},step:($)=>{l.message($,{symbol:o.default.green(hr)})},warn:($)=>{l.message($,{symbol:o.default.yellow(de)})},warning:($)=>{l.warn($)},error:($)=>{l.message($,{symbol:o.default.red(ge)})}},Y=()=>{let $=cr?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],e=cr?80:120,m,a,t=!1,s="",r=(d="")=>{t=!0,m=ur(),s=d.replace(/\.+$/,""),process.stdout.write(`${o.default.gray(x)}
52
- `);let h=0,v=0;a=setInterval(()=>{let W=o.default.magenta($[h]),X=".".repeat(Math.floor(v)).slice(0,3);process.stdout.write(Q.cursor.move(-999,0)),process.stdout.write(Q.erase.down(1)),process.stdout.write(`${W} ${s}${X}`),h=h+1<$.length?h+1:0,v=v<$.length?v+0.125:0},e)},i=(d="",h=0)=>{s=d??s,t=!1,clearInterval(a);let v=h===0?o.default.green(hr):h===1?o.default.red(Fr):o.default.red(Dr);process.stdout.write(Q.cursor.move(-999,0)),process.stdout.write(Q.erase.down(1)),process.stdout.write(`${v} ${s}
53
- `),m()},b=(d="")=>{s=d??s},c=(d)=>{let h=d>1?"Something went wrong":"Canceled";t&&i(h,d)};return process.on("uncaughtExceptionMonitor",()=>c(2)),process.on("unhandledRejection",()=>c(2)),process.on("SIGINT",()=>c(1)),process.on("SIGTERM",()=>c(1)),process.on("exit",c),{start:r,stop:i,message:b}};function xe($){return $.startsWith("cr_")&&$.length>10}async function pe($){try{let m=await(await fetch(`${M}/apiStats/api/get-key-id`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:$})})).json();if(m.success&&m.data?.id)return{valid:!0,apiId:m.data.id};return{valid:!1,error:m.error||"Key \u9A8C\u8BC1\u5931\u8D25"}}catch(e){return{valid:!1,error:e instanceof Error?e.message:"\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25"}}}async function e$($){if(!xe($))return{success:!1,error:"Key \u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u5FC5\u987B\u4EE5 cr_ \u5F00\u5934"};let e=await pe($);if(!e.valid)return{success:!1,error:e.error};return await E({apiKey:$,apiId:e.apiId}),{success:!0}}import{join as s$}from"path";var R=null,lr={cn:{npm:"https://registry.npmmirror.com",bun:"https://bun.sh/install",bunMirror:"https://registry.npmmirror.com/-/binary/bun"},global:{npm:"https://registry.npmjs.org",bun:"https://bun.sh/install",bunMirror:null}};async function dr(){if(R)return R;let $=[we,ye,Se];for(let e of $)try{let m=await Promise.race([e(),new Promise((a,t)=>setTimeout(()=>t(Error("timeout")),3000))]);if(m)return R=m,m}catch{}return R="cn","cn"}async function we(){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 ye(){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 Se(){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 Me(){let $=await dr();return lr[$]}async function V(){return(await Me()).npm}async function m$(){if(await dr()==="cn")return`curl -fsSL https://bun.sh/install | BUN_INSTALL_MIRROR="${lr.cn.bunMirror}" bash`;return"curl -fsSL https://bun.sh/install | bash"}async function a$(){let $=await dr(),e=lr[$];if($==="cn")l.info("\u68C0\u6D4B\u5230\u4E2D\u56FD\u5927\u9646\u7F51\u7EDC\uFF0C\u4F7F\u7528\u56FD\u5185\u955C\u50CF\u6E90"),l.message(` npm: ${e.npm}`);else l.info("\u4F7F\u7528\u56FD\u9645\u6E90")}var Z=null;function fe($){return $.startsWith(J)}async function o$(){try{if(!await Bun.file(S).exists())return!1;let e=Bun.spawn([S,"--version"],{stdout:"pipe",stderr:"pipe"});return await e.exited,e.exitCode===0}catch{return!1}}async function qe(){try{let e=Bun.spawn(["which","unzip"],{stdout:"pipe",stderr:"pipe"});if(await e.exited,e.exitCode===0)return!0}catch{}l.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 e of $)try{let m=Bun.spawn(["bash","-c",`sudo ${e} 2>/dev/null || ${e}`],{stdout:"pipe",stderr:"pipe"});if(await m.exited,m.exitCode===0)return!0}catch{}return!1}async function We(){let $=Y();if(!await qe())return l.error("\u8BF7\u5148\u624B\u52A8\u5B89\u88C5 unzip: apt install unzip / yum install unzip"),!1;await a$(),$.start("\u6B63\u5728\u5B89\u88C5 Tako \u4E13\u5C5E Bun \u8FD0\u884C\u65F6...");try{await(await import("fs/promises")).mkdir(J,{recursive:!0});let m=await m$(),a=`BUN_INSTALL="${J}" ${m}`;if(await Bun.spawn(["bash","-c",a],{stdout:"inherit",stderr:"inherit"}).exited!==0)return $.stop("Bun \u5B89\u88C5\u5931\u8D25"),!1;return Z=S,$.stop("Tako \u4E13\u5C5E Bun \u5B89\u88C5\u5B8C\u6210"),l.info(`\u5B89\u88C5\u4F4D\u7F6E: ${J}`),!0}catch(e){return $.stop("Bun \u5B89\u88C5\u5931\u8D25"),!1}}async function Ge(){if(await o$())return Z=S,!0;return l.warn("\u672A\u68C0\u6D4B\u5230 Tako \u4E13\u5C5E Bun\uFF0C\u6B63\u5728\u81EA\u52A8\u5B89\u88C5..."),l.info("\uFF08\u4E0D\u4F1A\u5F71\u54CD\u60A8\u7CFB\u7EDF\u4E2D\u5DF2\u5B89\u88C5\u7684 Node.js \u6216 Bun\uFF09"),await We()}async function gr(){if(Z){if(!fe(Z))Z=S;return Z}if(await o$())return Z=S,S;return S}async function i$($){try{let e=await V(),m=await fetch(`${e}/${$}/latest`);if(!m.ok)return null;return(await m.json()).version}catch{return null}}async function Ze($){return(await G()).installedClients[$.id]?.version||null}async function c$($){let e=T($.id),m=s$(e,"package.json");try{return await Bun.file(m).exists()}catch{return!1}}async function h$($){let e=await Ze($);if(!e)return!0;let m=await i$($.package);if(!m)return!1;return e!==m}async function t$($,e=!1){let m=Y(),a=T($.id);try{if(!await Ge())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 t=await c$($),s=e||await h$($);if(t&&!s)return{success:!0};let r=t?"\u66F4\u65B0":"\u5B89\u88C5";m.start(`\u6B63\u5728${r} ${$.name}...`),await(await import("fs/promises")).mkdir(a,{recursive:!0});let b=s$(a,"package.json");if(!await Bun.file(b).exists())await Bun.write(b,JSON.stringify({name:`tako-${$.id}`,private:!0,dependencies:{}},null,2));let d=await gr(),h=await V(),v=Bun.spawn([d,"add",$.package,"--registry",h],{cwd:a,stdout:"pipe",stderr:"pipe"});if(await v.exited!==0){let B=await new Response(v.stderr).text();return m.stop(`${r} ${$.name} \u5931\u8D25`),{success:!1,error:B}}let X=await i$($.package);if(X){let B=await G();B.installedClients[$.id]={version:X,installedAt:new Date().toISOString()},await E(B)}return m.stop(`${$.name} ${r}\u5B8C\u6210`),{success:!0}}catch(t){return m.stop("\u64CD\u4F5C\u5931\u8D25"),{success:!1,error:t instanceof Error?t.message:"\u672A\u77E5\u9519\u8BEF"}}}async function b$($){if(!await c$($))return await t$($);if(await h$($))return await t$($,!0);return{success:!0}}async function n$($){try{let e=await b$($);if(!e.success)return e;let m=await fr();if(!m)return{success:!1,error:"\u672A\u914D\u7F6E API Key"};if($.setupConfigFiles)await $.setupConfigFiles(m);let a=Zr($);if(!await Bun.file(a).exists())return{success:!1,error:`\u627E\u4E0D\u5230\u53EF\u6267\u884C\u6587\u4EF6: ${a}`};let s=$.getEnvVars(m),r={...process.env,...s};l.info(`\u542F\u52A8 ${$.name}...`);let i;if($.runtime==="bun")i=[await gr(),a];else i=[a];return await Bun.spawn(i,{env:r,stdio:["inherit","inherit","inherit"],cwd:process.cwd()}).exited,{success:!0}}catch(e){return{success:!1,error:e instanceof Error?e.message:"\u542F\u52A8\u5931\u8D25"}}}async function l$(){try{let $=await qr();if(!$)return{success:!1,error:"\u672A\u627E\u5230 API ID\uFF0C\u8BF7\u91CD\u65B0\u914D\u7F6E Key"};let m=await(await fetch(`${M}/apiStats/api/user-stats`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiId:$})})).json(),t=await(await fetch(`${M}/apiStats/api/user-model-stats`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiId:$,period:"daily"})})).json();if(!m.success)return{success:!1,error:m.error||m.message||"\u83B7\u53D6\u7EDF\u8BA1\u5931\u8D25"};let s=(t.data||[]).map((r)=>({model:r.model,requests:r.requests,cost:r.formatted?.total||"$0.00"}));return{success:!0,data:{totalRequests:m.data?.usage?.total?.requests||0,totalCost:m.data?.usage?.total?.formattedCost||"$0.00",todayCost:`$${(m.data?.limits?.currentDailyCost||0).toFixed(2)}`,modelStats:s}}}catch($){return{success:!1,error:$ instanceof Error?$.message:"\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25"}}}function vr($){return $.toLocaleString("en-US")}var ze="1.0.0";function Je(){console.log(),console.log(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557"),console.log(` \u2551 Tako CLI v${ze} \u2551`),console.log(" \u2551 \u4E2D\u8F6C\u7AD9\u5BA2\u6237\u7AEF\u7BA1\u7406\u5DE5\u5177 \u2551"),console.log(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D"),console.log()}async function d$($=!1){if(!$)l.warn("\u672A\u68C0\u6D4B\u5230 API Key"),console.log();let e=await br({message:$?"\u8BF7\u8F93\u5165\u65B0\u7684 API Key (cr_xxx):":"\u8BF7\u8F93\u5165\u4F60\u7684 API Key (cr_xxx):",placeholder:"cr_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",validate(t){if(!t)return"\u8BF7\u8F93\u5165 API Key";if(!t.startsWith("cr_"))return"Key \u5FC5\u987B\u4EE5 cr_ \u5F00\u5934";if(t.length<10)return"Key \u683C\u5F0F\u4E0D\u6B63\u786E"}});if(L(e))return!1;let m=Y();m.start("\u9A8C\u8BC1 Key \u4E2D...");let a=await e$(e);if(a.success)return m.stop("Key \u9A8C\u8BC1\u6210\u529F\uFF01\u5DF2\u4FDD\u5B58\u5230\u914D\u7F6E\u6587\u4EF6"),!0;else return m.stop(`\u9A8C\u8BC1\u5931\u8D25: ${a.error}`),!1}async function Qe(){let $=Y();$.start("\u83B7\u53D6\u7528\u91CF\u7EDF\u8BA1...");let e=await l$();if(!e.success){$.stop(`\u83B7\u53D6\u5931\u8D25: ${e.error}`);return}if($.stop("\u7528\u91CF\u7EDF\u8BA1"),console.log(),console.log(" \uD83D\uDCCA \u7528\u91CF\u7EDF\u8BA1"),console.log(),console.log(` \u603B\u8C03\u7528\u6B21\u6570: ${vr(e.data.totalRequests)} \u6B21`),console.log(` \u603B\u6D88\u8D39: ${e.data.totalCost}`),console.log(` \u4ECA\u65E5\u6D88\u8D39: ${e.data.todayCost}`),e.data.modelStats.length>0)console.log(),console.log(" \u6A21\u578B\u4F7F\u7528\u5206\u5E03 (\u4ECA\u65E5):"),e.data.modelStats.forEach((m,a)=>{let t=a===e.data.modelStats.length-1?"\u2514\u2500":"\u251C\u2500",s=m.model.length>25?m.model.slice(0,22)+"...":m.model;console.log(` ${t} ${s.padEnd(25)} ${vr(m.requests).padStart(6)} \u6B21 ${m.cost.padStart(8)}`)});console.log(),await br({message:"\u6309\u56DE\u8F66\u952E\u8FD4\u56DE...",placeholder:"",defaultValue:""})}async function Ye(){let e=[...Jr().map((a)=>({value:{type:"launch",client:a},label:`\u542F\u52A8 ${a.name}`,hint:a.package})),{value:{type:"stats"},label:"\u67E5\u770B\u7528\u91CF\u7EDF\u8BA1"},{value:{type:"config"},label:"\u914D\u7F6E API Key"},{value:{type:"exit"},label:"\u9000\u51FA"}],m=await $$({message:"\u8BF7\u9009\u62E9\u64CD\u4F5C:",options:e});if(L(m))return null;return m}async function je($){switch($.type){case"launch":let e=await n$($.client);if(!e.success)l.error(e.error||"\u542F\u52A8\u5931\u8D25");return!0;case"stats":return await Qe(),!0;case"config":return await d$(!0),!0;case"exit":return!1}}async function g$(){if(Je(),!await Mr()){if(!await d$()){nr("\u518D\u89C1\uFF01");return}}while(!0){let e=await Ye();if(e===null)break;if(!await je(e))break}nr("\u518D\u89C1\uFF01")}var He="tako-cli",N="0.1.2";function Le($,e){let m=$.split(".").map(Number),a=e.split(".").map(Number);for(let t=0;t<3;t++){let s=m[t]||0,r=a[t]||0;if(s>r)return 1;if(s<r)return-1}return 0}async function Ve(){try{let $=await V(),e=await fetch(`${$}/${He}/latest`,{signal:AbortSignal.timeout(5000)});if(!e.ok)return null;return(await e.json()).version||null}catch{return null}}async function Xe(){let $=await Ve();if(!$)return{hasUpdate:!1,currentVersion:N};return{hasUpdate:Le($,N)>0,latestVersion:$,currentVersion:N}}async function v$(){try{let $=await Xe();if($.hasUpdate&&$.latestVersion)l.warn(`\u53D1\u73B0\u65B0\u7248\u672C Tako v${$.latestVersion}\uFF08\u5F53\u524D v${N}\uFF09`),l.info("\u8BF7\u91CD\u65B0\u8FD0\u884C\u5B89\u88C5\u811A\u672C\u66F4\u65B0: curl -fsSL https://tako.shiroha.tech/install.sh | bash")}catch{}}async function Be(){await v$(),await g$()}Be().catch(($)=>{console.error("Tako CLI \u53D1\u751F\u9519\u8BEF:",$),process.exit(1)});
51
+ `)},info:(r)=>{l.message(r,{symbol:o.default.blue(lm)})},success:(r)=>{l.message(r,{symbol:o.default.green(dm)})},step:(r)=>{l.message(r,{symbol:o.default.green(h$)})},warn:(r)=>{l.message(r,{symbol:o.default.yellow(gm)})},warning:(r)=>{l.warn(r)},error:(r)=>{l.message(r,{symbol:o.default.red(vm)})}},W=()=>{let r=c$?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],m=c$?80:120,e,a,t=!1,s="",$=(d="")=>{t=!0,e=u$(),s=d.replace(/\.+$/,""),process.stdout.write(`${o.default.gray(x)}
52
+ `);let h=0,v=0;a=setInterval(()=>{let G=o.default.magenta(r[h]),B=".".repeat(Math.floor(v)).slice(0,3);process.stdout.write(Y.cursor.move(-999,0)),process.stdout.write(Y.erase.down(1)),process.stdout.write(`${G} ${s}${B}`),h=h+1<r.length?h+1:0,v=v<r.length?v+0.125:0},m)},i=(d="",h=0)=>{s=d??s,t=!1,clearInterval(a);let v=h===0?o.default.green(h$):h===1?o.default.red(F$):o.default.red(D$);process.stdout.write(Y.cursor.move(-999,0)),process.stdout.write(Y.erase.down(1)),process.stdout.write(`${v} ${s}
53
+ `),e()},b=(d="")=>{s=d??s},c=(d)=>{let h=d>1?"Something went wrong":"Canceled";t&&i(h,d)};return process.on("uncaughtExceptionMonitor",()=>c(2)),process.on("unhandledRejection",()=>c(2)),process.on("SIGINT",()=>c(1)),process.on("SIGTERM",()=>c(1)),process.on("exit",c),{start:$,stop:i,message:b}};function wm(r){return r.startsWith("cr_")&&r.length>10}async function ym(r){try{let e=await(await fetch(`${M}/apiStats/api/get-key-id`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:r})})).json();if(e.success&&e.data?.id)return{valid:!0,apiId:e.data.id};return{valid:!1,error:e.error||"Key \u9A8C\u8BC1\u5931\u8D25"}}catch(m){return{valid:!1,error:m instanceof Error?m.message:"\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25"}}}async function mr(r){if(!wm(r))return{success:!1,error:"Key \u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u5FC5\u987B\u4EE5 cr_ \u5F00\u5934"};let m=await ym(r);if(!m.valid)return{success:!1,error:m.error};return await T({apiKey:r,apiId:m.apiId}),{success:!0}}import{join as sr}from"path";var N=null,l$={cn:{npm:"https://registry.npmmirror.com",bun:"https://bun.sh/install",bunMirror:"https://registry.npmmirror.com/-/binary/bun"},global:{npm:"https://registry.npmjs.org",bun:"https://bun.sh/install",bunMirror:null}};async function d$(){if(N)return N;let r=[pm,Sm,Mm];for(let m of r)try{let e=await Promise.race([m(),new Promise((a,t)=>setTimeout(()=>t(Error("timeout")),3000))]);if(e)return N=e,e}catch{}return N="cn","cn"}async function pm(){try{let r=await fetch("http://ip-api.com/json/?fields=countryCode",{signal:AbortSignal.timeout(2000)});if(!r.ok)return null;return(await r.json()).countryCode==="CN"?"cn":"global"}catch{return null}}async function Sm(){try{let r=await fetch("https://ipinfo.io/json",{signal:AbortSignal.timeout(2000)});if(!r.ok)return null;return(await r.json()).country==="CN"?"cn":"global"}catch{return null}}async function Mm(){try{let r=await fetch("https://api.ip.sb/geoip",{signal:AbortSignal.timeout(2000)});if(!r.ok)return null;return(await r.json()).country_code==="CN"?"cn":"global"}catch{return null}}async function fm(){let r=await d$();return l$[r]}async function j(){return(await fm()).npm}async function er(){if(await d$()==="cn")return`curl -fsSL https://bun.sh/install | BUN_INSTALL_MIRROR="${l$.cn.bunMirror}" bash`;return"curl -fsSL https://bun.sh/install | bash"}async function ar(){let r=await d$(),m=l$[r];if(r==="cn")l.info("\u68C0\u6D4B\u5230\u4E2D\u56FD\u5927\u9646\u7F51\u7EDC\uFF0C\u4F7F\u7528\u56FD\u5185\u955C\u50CF\u6E90"),l.message(` npm: ${m.npm}`);else l.info("\u4F7F\u7528\u56FD\u9645\u6E90")}var z=null;function qm(r){return r.startsWith(Q)}async function or(){try{if(!await Bun.file(p).exists())return!1;let m=Bun.spawn([p,"--version"],{stdout:"pipe",stderr:"pipe"});return await m.exited,m.exitCode===0}catch{return!1}}async function Wm(){try{let m=Bun.spawn(["which","unzip"],{stdout:"pipe",stderr:"pipe"});if(await m.exited,m.exitCode===0)return!0}catch{}l.warn("\u6B63\u5728\u5B89\u88C5\u7CFB\u7EDF\u4F9D\u8D56 (unzip)...");let r=["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 m of r)try{let e=Bun.spawn(["bash","-c",`sudo ${m} 2>/dev/null || ${m}`],{stdout:"pipe",stderr:"pipe"});if(await e.exited,e.exitCode===0)return!0}catch{}return!1}async function Gm(){let r=W();if(!await Wm())return l.error("\u8BF7\u5148\u624B\u52A8\u5B89\u88C5 unzip: apt install unzip / yum install unzip"),!1;await ar(),r.start("\u6B63\u5728\u5B89\u88C5 Tako \u4E13\u5C5E Bun \u8FD0\u884C\u65F6...");try{await(await import("fs/promises")).mkdir(Q,{recursive:!0});let e=await er(),a=`BUN_INSTALL="${Q}" ${e}`;if(await Bun.spawn(["bash","-c",a],{stdout:"inherit",stderr:"inherit"}).exited!==0)return r.stop("Bun \u5B89\u88C5\u5931\u8D25"),!1;return z=p,r.stop("Tako \u4E13\u5C5E Bun \u5B89\u88C5\u5B8C\u6210"),l.info(`\u5B89\u88C5\u4F4D\u7F6E: ${Q}`),!0}catch(m){return r.stop("Bun \u5B89\u88C5\u5931\u8D25"),!1}}async function Zm(){if(await or())return z=p,!0;return l.warn("\u672A\u68C0\u6D4B\u5230 Tako \u4E13\u5C5E Bun\uFF0C\u6B63\u5728\u81EA\u52A8\u5B89\u88C5..."),l.info("\uFF08\u4E0D\u4F1A\u5F71\u54CD\u60A8\u7CFB\u7EDF\u4E2D\u5DF2\u5B89\u88C5\u7684 Node.js \u6216 Bun\uFF09"),await Gm()}async function g$(){if(z){if(!qm(z))z=p;return z}if(await or())return z=p,p;return p}async function ir(r){try{let m=await j(),e=await fetch(`${m}/${r}/latest`);if(!e.ok)return null;return(await e.json()).version}catch{return null}}async function zm(r){return(await Z()).installedClients[r.id]?.version||null}async function cr(r){let m=P(r.id),e=sr(m,"package.json");try{return await Bun.file(e).exists()}catch{return!1}}async function hr(r){let m=await zm(r);if(!m)return!0;let e=await ir(r.package);if(!e)return!1;return m!==e}async function tr(r,m=!1){let e=W(),a=P(r.id);try{if(!await Zm())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 t=await cr(r),s=m||await hr(r);if(t&&!s)return{success:!0};let $=t?"\u66F4\u65B0":"\u5B89\u88C5";e.start(`\u6B63\u5728${$} ${r.name}...`),await(await import("fs/promises")).mkdir(a,{recursive:!0});let b=sr(a,"package.json");if(!await Bun.file(b).exists())await Bun.write(b,JSON.stringify({name:`tako-${r.id}`,private:!0,dependencies:{}},null,2));let d=await g$(),h=await j(),v=Bun.spawn([d,"add",r.package,"--registry",h],{cwd:a,stdout:"pipe",stderr:"pipe"});if(await v.exited!==0){let k=await new Response(v.stderr).text();return e.stop(`${$} ${r.name} \u5931\u8D25`),{success:!1,error:k}}let B=await ir(r.package);if(B){let k=await Z();k.installedClients[r.id]={version:B,installedAt:new Date().toISOString()},await T(k)}return e.stop(`${r.name} ${$}\u5B8C\u6210`),{success:!0}}catch(t){return e.stop("\u64CD\u4F5C\u5931\u8D25"),{success:!1,error:t instanceof Error?t.message:"\u672A\u77E5\u9519\u8BEF"}}}async function br(r){if(!await cr(r))return await tr(r);if(await hr(r))return await tr(r,!0);return{success:!0}}async function nr(r){try{let m=await br(r);if(!m.success)return m;let e=await f$();if(!e)return{success:!1,error:"\u672A\u914D\u7F6E API Key"};if(r.setupConfigFiles)await r.setupConfigFiles(e);let a=Z$(r);if(!await Bun.file(a).exists())return{success:!1,error:`\u627E\u4E0D\u5230\u53EF\u6267\u884C\u6587\u4EF6: ${a}`};let s=r.getEnvVars(e),$={...process.env,...s};l.info(`\u542F\u52A8 ${r.name}...`);let i;if(r.runtime==="bun")i=[await g$(),a];else i=[a];return await Bun.spawn(i,{env:$,stdio:["inherit","inherit","inherit"],cwd:process.cwd()}).exited,{success:!0}}catch(m){return{success:!1,error:m instanceof Error?m.message:"\u542F\u52A8\u5931\u8D25"}}}async function lr(){try{let r=await q$();if(!r)return{success:!1,error:"\u672A\u627E\u5230 API ID\uFF0C\u8BF7\u91CD\u65B0\u914D\u7F6E Key"};let e=await(await fetch(`${M}/apiStats/api/user-stats`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiId:r})})).json(),t=await(await fetch(`${M}/apiStats/api/user-model-stats`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiId:r,period:"daily"})})).json();if(!e.success)return{success:!1,error:e.error||e.message||"\u83B7\u53D6\u7EDF\u8BA1\u5931\u8D25"};let s=(t.data||[]).map(($)=>({model:$.model,requests:$.requests,cost:$.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:s}}}catch(r){return{success:!1,error:r instanceof Error?r.message:"\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25"}}}function v$(r){return r.toLocaleString("en-US")}var dr="tako-cli",H="0.1.4";function Jm(r,m){let e=r.split(".").map(Number),a=m.split(".").map(Number);for(let t=0;t<3;t++){let s=e[t]||0,$=a[t]||0;if(s>$)return 1;if(s<$)return-1}return 0}async function Qm(){try{let r=await j(),m=await fetch(`${r}/${dr}/latest`,{signal:AbortSignal.timeout(5000)});if(!m.ok)return null;return(await m.json()).version||null}catch{return null}}async function Ym(){let r=await Qm();if(!r)return{hasUpdate:!1,currentVersion:H};return{hasUpdate:Jm(r,H)>0,latestVersion:r,currentVersion:H}}async function jm(r){let m=W();m.start(`\u6B63\u5728\u66F4\u65B0\u5230 v${r}...`);try{let e=await j(),a=Bun.spawn([p,"add","-g",`${dr}@latest`],{stdout:"pipe",stderr:"pipe",env:{...process.env,npm_config_registry:e}});if(await a.exited,a.exitCode===0)return m.stop(`\u66F4\u65B0\u6210\u529F\uFF01\u5DF2\u66F4\u65B0\u5230 v${r}`),!0;else{let t=await new Response(a.stderr).text();return m.stop(`\u66F4\u65B0\u5931\u8D25: ${t||"\u672A\u77E5\u9519\u8BEF"}`),!1}}catch(e){return m.stop(`\u66F4\u65B0\u5931\u8D25: ${e instanceof Error?e.message:"\u672A\u77E5\u9519\u8BEF"}`),!1}}async function gr(){try{let r=await Ym();if(r.hasUpdate&&r.latestVersion){if(l.warn(`\u53D1\u73B0\u65B0\u7248\u672C v${r.latestVersion}\uFF08\u5F53\u524D v${H}\uFF09`),await jm(r.latestVersion))l.info("\u8BF7\u91CD\u65B0\u542F\u52A8 Tako CLI \u4EE5\u4F7F\u7528\u65B0\u7248\u672C"),process.exit(0)}}catch{}}function Hm(){console.log(),console.log(` \uD83D\uDC19 Tako CLI v${H}`),console.log(" \x1B[90m\u6B22\u8FCE\u4F7F\u7528\uFF01\x1B[0m"),console.log()}async function vr(r=!1){if(!r)l.warn("\u672A\u68C0\u6D4B\u5230 API Key"),console.log();let m=await b$({message:r?"\u8BF7\u8F93\u5165\u65B0\u7684 API Key (cr_xxx):":"\u8BF7\u8F93\u5165\u4F60\u7684 API Key (cr_xxx):",placeholder:"cr_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",validate(t){if(!t)return"\u8BF7\u8F93\u5165 API Key";if(!t.startsWith("cr_"))return"Key \u5FC5\u987B\u4EE5 cr_ \u5F00\u5934";if(t.length<10)return"Key \u683C\u5F0F\u4E0D\u6B63\u786E"}});if(X(m))return!1;let e=W();e.start("\u9A8C\u8BC1 Key \u4E2D...");let a=await mr(m);if(a.success)return e.stop("Key \u9A8C\u8BC1\u6210\u529F\uFF01\u5DF2\u4FDD\u5B58\u5230\u914D\u7F6E\u6587\u4EF6"),!0;else return e.stop(`\u9A8C\u8BC1\u5931\u8D25: ${a.error}`),!1}async function Lm(){let r=W();r.start("\u83B7\u53D6\u7528\u91CF\u7EDF\u8BA1...");let m=await lr();if(!m.success){r.stop(`\u83B7\u53D6\u5931\u8D25: ${m.error}`);return}if(r.stop("\u7528\u91CF\u7EDF\u8BA1"),console.log(),console.log(" \uD83D\uDCCA \u7528\u91CF\u7EDF\u8BA1"),console.log(),console.log(` \u603B\u8C03\u7528\u6B21\u6570: ${v$(m.data.totalRequests)} \u6B21`),console.log(` \u603B\u6D88\u8D39: ${m.data.totalCost}`),console.log(` \u4ECA\u65E5\u6D88\u8D39: ${m.data.todayCost}`),m.data.modelStats.length>0)console.log(),console.log(" \u6A21\u578B\u4F7F\u7528\u5206\u5E03 (\u4ECA\u65E5):"),m.data.modelStats.forEach((e,a)=>{let t=a===m.data.modelStats.length-1?"\u2514\u2500":"\u251C\u2500",s=e.model.length>25?e.model.slice(0,22)+"...":e.model;console.log(` ${t} ${s.padEnd(25)} ${v$(e.requests).padStart(6)} \u6B21 ${e.cost.padStart(8)}`)});console.log(),await b$({message:"\u6309\u56DE\u8F66\u952E\u8FD4\u56DE...",placeholder:"",defaultValue:""})}async function Vm(){let m=[...J$().map((a)=>({value:{type:"launch",client:a},label:`\u542F\u52A8 ${a.name}`,hint:a.package})),{value:{type:"stats"},label:"\u67E5\u770B\u7528\u91CF\u7EDF\u8BA1"},{value:{type:"config"},label:"\u914D\u7F6E API Key"},{value:{type:"exit"},label:"\u9000\u51FA"}],e=await rr({message:"\u8BF7\u9009\u62E9\u64CD\u4F5C:",options:m});if(X(e))return null;return e}async function Xm(r){switch(r.type){case"launch":let m=await nr(r.client);if(!m.success)l.error(m.error||"\u542F\u52A8\u5931\u8D25");return!0;case"stats":return await Lm(),!0;case"config":return await vr(!0),!0;case"exit":return!1}}async function xr(){if(Hm(),!await M$()){if(!await vr()){n$("\u518D\u89C1\uFF01");return}}while(!0){let m=await Vm();if(m===null)break;if(!await Xm(m))break}n$("\u518D\u89C1\uFF01")}async function Bm(){await gr(),await xr()}Bm().catch((r)=>{console.error("Tako CLI \u53D1\u751F\u9519\u8BEF:",r),process.exit(1)});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tako-cli",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Tako CLI - AI coding tools launcher",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,13 +11,20 @@
11
11
  "dist"
12
12
  ],
13
13
  "scripts": {
14
- "build": "bun build src/index.ts --outfile dist/index.js --minify --target bun",
14
+ "build": "bun run scripts/build.ts",
15
+ "bump": "bun scripts/bump.ts",
16
+ "release": "bun scripts/bump.ts patch && npm publish",
15
17
  "prepublishOnly": "bun run build"
16
18
  },
17
19
  "devDependencies": {
18
20
  "@clack/prompts": "^0.7.0",
19
21
  "bun-types": "latest"
20
22
  },
21
- "keywords": ["cli", "ai", "claude", "codex"],
23
+ "keywords": [
24
+ "cli",
25
+ "ai",
26
+ "claude",
27
+ "codex"
28
+ ],
22
29
  "license": "UNLICENSED"
23
30
  }