@codeflow-ai/cli 1.14.0 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/cli.js +1 -1
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{once as Yb}from"events";import{createInterface as Qb}from"readline/promises";import{parseArgs as Xb}from"util";var ea={name:"@codeflow-ai/cli",version:"1.14.0",type:"module",description:"CodeFlow \u547D\u4EE4\u884C\u5BA2\u6237\u7AEF\uFF1A\u4E00\u952E\u914D\u7F6E AI \u5BA2\u6237\u7AEF",keywords:["codeflow","claude-code","codex","cli"],license:"UNLICENSED",engines:{node:">=22"},bin:{codeflow:"./dist/cli.js"},files:["dist"],publishConfig:{access:"public"},scripts:{dev:"tsx src/cli.ts",build:"tsup",typecheck:"tsc --noEmit"},dependencies:{"@decimalturn/toml-patch":"3.0.2",ink:"7.1.1",marked:"18.0.5",qrcode:"1.5.4",react:"19.2.0","smol-toml":"1.7.0","string-width":"8.2.0",zod:"4.4.3"},devDependencies:{"@codeflow/shared":"workspace:*","@types/node":"25.9.1","@types/qrcode":"1.5.6","@types/react":"19.2.2",tsup:"8.5.1",tsx:"4.22.3",typescript:"5.9.3"}};var ct="codeflow",lt=ea.version,ta="https://codeflow.asia",$n="@codeflow-ai/cli",so=0,Bn=1,gi=2,pn=3,na=4;import{randomBytes as Ad}from"crypto";import{mkdirSync as sa,readFileSync as Nd,rmSync as aa,statSync as Id,writeFileSync as Ld}from"fs";import{join as ca}from"path";import{setTimeout as Md}from"timers/promises";import{z as xt}from"zod";var U=class extends Error{exitCode;hint;constructor(t,o={}){super(t,{cause:o.cause}),this.name="CliError",this.exitCode=o.exitCode??Bn,this.hint=o.hint}};function je(e){return e instanceof Error?e.message:String(e)}import{chmodSync as kd,existsSync as vd,mkdirSync as Rd,readFileSync as _d,writeFileSync as Cd}from"fs";import{dirname as Ed}from"path";function Fn(e){return vd(e)?_d(e,"utf8"):null}function hi(e,t,o){Rd(Ed(e),{recursive:!0,mode:448});try{Cd(e,t,{mode:o}),kd(e,o)}catch(n){throw new U(`\u5199\u5165 ${e} \u5931\u8D25\uFF1A${je(n)}`,{cause:n})}}function Go(e){let t=Fn(e);if(t===null)return null;if(t.trim()==="")return{};let o;try{o=JSON.parse(t)}catch(n){throw new U(`${e} \u4E0D\u662F\u5408\u6CD5 JSON\uFF0C\u5DF2\u8DF3\u8FC7\u5199\u5165\uFF0C\u8BF7\u5148\u4FEE\u590D\u8BE5\u6587\u4EF6`,{cause:n})}if(typeof o!="object"||o===null||Array.isArray(o))throw new U(`${e} \u7684\u9876\u5C42\u4E0D\u662F\u5BF9\u8C61\uFF0C\u5DF2\u8DF3\u8FC7\u5199\u5165\uFF0C\u8BF7\u5148\u4FEE\u590D\u8BE5\u6587\u4EF6`);return o}function Vo(e,t,o){hi(e,`${JSON.stringify(t,null,2)}
2
+ import{once as Yb}from"events";import{createInterface as Qb}from"readline/promises";import{parseArgs as Xb}from"util";var ea={name:"@codeflow-ai/cli",version:"1.15.1",type:"module",description:"CodeFlow \u547D\u4EE4\u884C\u5BA2\u6237\u7AEF\uFF1A\u4E00\u952E\u914D\u7F6E AI \u5BA2\u6237\u7AEF",keywords:["codeflow","claude-code","codex","cli"],license:"UNLICENSED",engines:{node:">=22"},bin:{codeflow:"./dist/cli.js"},files:["dist"],publishConfig:{access:"public"},scripts:{dev:"tsx src/cli.ts",build:"tsup",typecheck:"tsc --noEmit"},dependencies:{"@decimalturn/toml-patch":"3.0.2",ink:"7.1.1",marked:"18.0.5",qrcode:"1.5.4",react:"19.2.0","smol-toml":"1.7.0","string-width":"8.2.0",zod:"4.4.3"},devDependencies:{"@codeflow/shared":"workspace:*","@types/node":"25.9.1","@types/qrcode":"1.5.6","@types/react":"19.2.2",tsup:"8.5.1",tsx:"4.22.3",typescript:"5.9.3"}};var ct="codeflow",lt=ea.version,ta="https://codeflow.asia",$n="@codeflow-ai/cli",so=0,Bn=1,gi=2,pn=3,na=4;import{randomBytes as Ad}from"crypto";import{mkdirSync as sa,readFileSync as Nd,rmSync as aa,statSync as Id,writeFileSync as Ld}from"fs";import{join as ca}from"path";import{setTimeout as Md}from"timers/promises";import{z as xt}from"zod";var U=class extends Error{exitCode;hint;constructor(t,o={}){super(t,{cause:o.cause}),this.name="CliError",this.exitCode=o.exitCode??Bn,this.hint=o.hint}};function je(e){return e instanceof Error?e.message:String(e)}import{chmodSync as kd,existsSync as vd,mkdirSync as Rd,readFileSync as _d,writeFileSync as Cd}from"fs";import{dirname as Ed}from"path";function Fn(e){return vd(e)?_d(e,"utf8"):null}function hi(e,t,o){Rd(Ed(e),{recursive:!0,mode:448});try{Cd(e,t,{mode:o}),kd(e,o)}catch(n){throw new U(`\u5199\u5165 ${e} \u5931\u8D25\uFF1A${je(n)}`,{cause:n})}}function Go(e){let t=Fn(e);if(t===null)return null;if(t.trim()==="")return{};let o;try{o=JSON.parse(t)}catch(n){throw new U(`${e} \u4E0D\u662F\u5408\u6CD5 JSON\uFF0C\u5DF2\u8DF3\u8FC7\u5199\u5165\uFF0C\u8BF7\u5148\u4FEE\u590D\u8BE5\u6587\u4EF6`,{cause:n})}if(typeof o!="object"||o===null||Array.isArray(o))throw new U(`${e} \u7684\u9876\u5C42\u4E0D\u662F\u5BF9\u8C61\uFF0C\u5DF2\u8DF3\u8FC7\u5199\u5165\uFF0C\u8BF7\u5148\u4FEE\u590D\u8BE5\u6587\u4EF6`);return o}function Vo(e,t,o){hi(e,`${JSON.stringify(t,null,2)}
3
3
  `,o)}function Ko(e,t,o,n){let r=null,i=()=>{if(r)return r;let s=t(),a=Fn(s);if(a===null)return r=e.parse({}),r;let c;try{c=JSON.parse(a)}catch(d){throw new U(`${o} ${s} \u5DF2\u635F\u574F\uFF0C\u8BF7\u5220\u9664\u8BE5\u6587\u4EF6\u540E${n}`,{cause:d})}let l=e.safeParse(c);if(!l.success)throw new U(`${o} ${s} \u7ED3\u6784\u4E0D\u7B26\uFF0C\u8BF7\u5220\u9664\u8BE5\u6587\u4EF6\u540E${n}`);return r=l.data,r};return{load:i,reload:()=>(r=null,i()),update:s=>{let a=structuredClone(i());return s(a),Vo(t(),a,384),r=a,a}}}import{homedir as Pd}from"os";import{join as Un}from"path";function Ft(){let e=process.env.XDG_CONFIG_HOME;if(e)return Un(e,"codeflow");if(process.platform==="win32"){let t=process.env.APPDATA;if(t)return Un(t,"codeflow")}return Un(Pd(),".config","codeflow")}var oa=()=>Un(Ft(),"config.json"),ra=()=>Un(Ft(),"credentials.json"),ia=()=>Un(Ft(),"refresh.lock");var Od=xt.object({refreshCookie:xt.string(),accessToken:xt.string(),accessExpiresAt:xt.number(),username:xt.string(),email:xt.string(),site:xt.string()}),Dd=xt.object({site:xt.string(),cookie:xt.string()}),$d=xt.object({session:Od.nullable().default(null),device:Dd.nullable().default(null)}),bi=Ko($d,ra,"\u672C\u5730\u51ED\u636E","\u91CD\u65B0\u767B\u5F55"),Tt=bi.load,la=bi.reload,yi=bi.update;function ua(){let{session:e}=Tt();if(!e)throw new U("\u5C1A\u672A\u767B\u5F55\uFF0C\u8BF7\u5148\u767B\u5F55\u8D26\u53F7",{exitCode:pn});return e}var Bd=6e4,Fd=75e3,Ud=120;function jd(e,t){try{sa(e)}catch{try{Date.now()-Id(e).mtimeMs>Bd&&aa(e,{recursive:!0,force:!0})}catch{}return!1}return Ld(ca(e,"owner"),t),!0}function qd(e,t){let o;try{o=Nd(ca(e,"owner"),"utf8")}catch{return}o===t&&aa(e,{recursive:!0,force:!0})}async function ma(e){let t=ia(),o=Ad(16).toString("hex");sa(Ft(),{recursive:!0,mode:448});let n=Date.now()+Fd;for(;!jd(t,o);){if(Date.now()>n)throw new U(`\u7B49\u5F85\u5237\u65B0\u9501\u8D85\u65F6\uFF0C\u82E5\u786E\u8BA4\u6CA1\u6709\u5176\u4ED6 ${ct} \u5728\u8FD0\u884C\uFF0C\u8BF7\u5220\u9664 ${t}`);await Md(Ud)}try{return await e()}finally{qd(t,o)}}function Hd(){let e=process.env.CODEFLOW_SITE;if(e)return e;let t=Tt().session;return t?t.site:ta}function da(){return{site:Hd()}}function fn(e,t,o){if(!e.isTTY)return o;let n=Number.parseInt(t.slice(1),16);return`\x1B[38;2;${n>>16&255};${n>>8&255};${n&255}m${o}\x1B[39m`}import{existsSync as Np,rmSync as Ip}from"fs";import{z as Me}from"zod";var Wd=["active","disabled"],Oy=Me.enum(Wd),zd=["openai","anthropic"],Dy=Me.enum(zd),Gd=["openai-chat","openai-responses","anthropic-messages"],pa=Me.enum(Gd);var Vd=["enabled","auto_disabled","disabled"],$y=Me.enum(Vd),ao=["pending","paid","refund_requested","partially_refunded","refunded","failed","expired"],fa=Me.enum(ao),Kd=["recharge","subscription"],By=Me.enum(Kd),Jd=["requested","pending","succeeded","failed","rejected","canceled"],ga=Me.enum(Jd),Si=["pending","issued","rejected"],ha=Me.enum(Si),Yd=["special","general"],xi=Me.enum(Yd),Qd=["info","success","warning","error"],ba=Me.enum(Qd),Xd=["terms","privacy"],Fy=Me.enum(Xd),Ti=["recharge","reserve","consume","reserve_refund","refund","refund_release","reward","admin_adjust"],ya=Me.enum(Ti),Zd=["usage_log","order","invitation","admin"],Sa=Me.enum(Zd),wi=["first_inviter","first_invitee","subsequent_inviter"],xa=Me.enum(wi),ki=["success","error","canceled","anomaly"],Ta=Me.enum(ki),vi=["open","replied","closed"],wa=Me.enum(vi),Ri=["billing","technical","account","other"],ka=Me.enum(Ri),_i=["low","normal","high"],va=Me.enum(_i),ep=["user","admin"],Ra=Me.enum(ep);import{z as jn}from"zod";var tp=["internal_error","validation_error","not_found","conflict","model_in_use","rate_limited","forbidden","unauthorized","invalid_credentials","password_incorrect","account_disabled","email_already_registered","username_taken","verification_code_invalid","verification_code_expired","token_expired","token_reuse_detected","token_limit_exceeded","totp_invalid","totp_replayed","totp_setup_expired","totp_not_enabled","login_ticket_invalid","recovery_code_invalid","passkey_registration_failed","passkey_verification_failed","passkey_last_remaining","passkey_not_found","passkey_origin_not_allowed","insufficient_quota","no_available_channel","model_not_found","token_group_missing","token_quota_exceeded","upstream_error","channel_name_taken","order_not_found","order_not_payable","payment_verify_failed","payment_precreate_failed","amount_mismatch","refund_not_allowed","refund_amount_invalid","refund_insufficient_balance","refund_failed","refund_pending","refund_in_progress","refund_blocked_by_pending_order","refund_order_superseded","refund_request_not_found","refund_nothing_refundable","subscription_limit_reached","subscription_revoked","plan_disabled","plan_in_use","group_in_use","order_already_invoiced","order_not_eligible","order_invoiced","invoice_profile_exists","invite_code_invalid","ticket_closed","ticket_limit_exceeded"],np=jn.enum(tp),_a=jn.object({error:jn.object({code:np,message:jn.string(),details:jn.unknown().optional(),requestId:jn.string().optional()})});var Ca={internal_error:"\u670D\u52A1\u6682\u65F6\u51FA\u73B0\u95EE\u9898\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",validation_error:"\u63D0\u4EA4\u7684\u5185\u5BB9\u6709\u8BEF\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5",not_found:"\u8BBF\u95EE\u7684\u5185\u5BB9\u4E0D\u5B58\u5728\u6216\u5DF2\u88AB\u5220\u9664",conflict:"\u5DF2\u5B58\u5728\u76F8\u540C\u7684\u8BB0\u5F55\uFF0C\u8BF7\u52FF\u91CD\u590D\u63D0\u4EA4",model_in_use:"\u8BE5\u6A21\u578B\u4ECD\u88AB\u6E20\u9053\u4F7F\u7528\uFF0C\u8BF7\u5148\u5728\u6E20\u9053\u4E2D\u79FB\u9664\u540E\u518D\u4FEE\u6539\u6216\u5220\u9664\u5B9A\u4EF7",rate_limited:"\u64CD\u4F5C\u8FC7\u4E8E\u9891\u7E41\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",forbidden:"\u6CA1\u6709\u6743\u9650\u6267\u884C\u6B64\u64CD\u4F5C",unauthorized:"\u8BF7\u5148\u767B\u5F55",invalid_credentials:"\u8D26\u53F7\u6216\u5BC6\u7801\u4E0D\u6B63\u786E",password_incorrect:"\u5F53\u524D\u5BC6\u7801\u4E0D\u6B63\u786E",account_disabled:"\u8D26\u6237\u5DF2\u88AB\u7981\u7528\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458",email_already_registered:"\u8BE5\u90AE\u7BB1\u5DF2\u88AB\u6CE8\u518C",username_taken:"\u8BE5\u7528\u6237\u540D\u5DF2\u88AB\u4F7F\u7528",verification_code_invalid:"\u9A8C\u8BC1\u7801\u4E0D\u6B63\u786E",verification_code_expired:"\u9A8C\u8BC1\u7801\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u83B7\u53D6",token_expired:"\u767B\u5F55\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55",token_reuse_detected:"\u767B\u5F55\u72B6\u6001\u5F02\u5E38\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55",token_limit_exceeded:"\u4EE4\u724C\u6570\u91CF\u5DF2\u8FBE\u4E0A\u9650\uFF0C\u8BF7\u5148\u5220\u9664\u4E0D\u518D\u4F7F\u7528\u7684\u4EE4\u724C",totp_invalid:"\u52A8\u6001\u9A8C\u8BC1\u7801\u4E0D\u6B63\u786E\uFF0C\u8BF7\u91CD\u8BD5",totp_replayed:"\u8BE5\u9A8C\u8BC1\u7801\u521A\u521A\u5DF2\u88AB\u4F7F\u7528\uFF0C\u8BF7\u7B49\u5F85\u9A8C\u8BC1\u5668\u663E\u793A\u4E0B\u4E00\u4E2A\u9A8C\u8BC1\u7801\u540E\u518D\u8F93\u5165",totp_setup_expired:"\u7ED1\u5B9A\u4F1A\u8BDD\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u5F00\u59CB\u7ED1\u5B9A",totp_not_enabled:"\u5C1A\u672A\u542F\u7528\u4E24\u6B65\u9A8C\u8BC1",login_ticket_invalid:"\u767B\u5F55\u9A8C\u8BC1\u5DF2\u8FC7\u671F\u6216\u5C1D\u8BD5\u6B21\u6570\u8FC7\u591A\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55",recovery_code_invalid:"\u6062\u590D\u7801\u4E0D\u6B63\u786E\u6216\u5DF2\u88AB\u4F7F\u7528",passkey_registration_failed:"Passkey \u6CE8\u518C\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5",passkey_verification_failed:"Passkey \u9A8C\u8BC1\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5",passkey_last_remaining:"\u7BA1\u7406\u5458\u81F3\u5C11\u9700\u4FDD\u7559\u4E00\u679A Passkey\uFF0C\u65E0\u6CD5\u5220\u9664",passkey_not_found:"\u8BE5 Passkey \u4E0D\u5B58\u5728\u6216\u5DF2\u88AB\u5220\u9664",passkey_origin_not_allowed:"\u5F53\u524D\u8BBF\u95EE\u5730\u5740\u672A\u914D\u7F6E\u4E3A\u7AD9\u70B9\u5730\u5740\uFF0C\u65E0\u6CD5\u4F7F\u7528 Passkey",insufficient_quota:"\u989D\u5EA6\u4E0D\u8DB3\uFF0C\u8BF7\u5145\u503C\u540E\u518D\u8BD5",no_available_channel:"\u4E0A\u6E38\u670D\u52A1\u6682\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",model_not_found:"\u8BE5\u6A21\u578B\u4E0D\u5B58\u5728",token_group_missing:"\u4EE4\u724C\u6240\u5C5E\u5206\u7EC4\u5DF2\u88AB\u5220\u9664\uFF0C\u8BF7\u7F16\u8F91\u4EE4\u724C\u91CD\u65B0\u9009\u62E9\u5206\u7EC4",token_quota_exceeded:"\u8BE5\u4EE4\u724C\u7684\u6D88\u8D39\u5DF2\u8FBE\u8D39\u7528\u9650\u5236\uFF0C\u8BF7\u8C03\u9AD8\u6216\u6E05\u9664\u9650\u5236\u540E\u518D\u4F7F\u7528",upstream_error:"\u4E0A\u6E38\u670D\u52A1\u8FD4\u56DE\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",channel_name_taken:"\u8BE5\u6E20\u9053\u540D\u79F0\u5DF2\u88AB\u4F7F\u7528",order_not_found:"\u8BA2\u5355\u4E0D\u5B58\u5728",order_not_payable:"\u8BA2\u5355\u72B6\u6001\u5DF2\u53D8\u5316\uFF0C\u8BF7\u5237\u65B0\u540E\u518D\u8BD5",payment_verify_failed:"\u652F\u4ED8\u7ED3\u679C\u786E\u8BA4\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",payment_precreate_failed:"\u53D1\u8D77\u652F\u4ED8\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",amount_mismatch:"\u652F\u4ED8\u91D1\u989D\u4E0E\u8BA2\u5355\u4E0D\u7B26\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458",refund_not_allowed:"\u8BE5\u8BA2\u5355\u5F53\u524D\u4E0D\u53EF\u9000\u6B3E",refund_amount_invalid:"\u9000\u6B3E\u91D1\u989D\u4E0D\u6B63\u786E\u6216\u8D85\u8FC7\u53EF\u9000\u4F59\u989D",refund_insufficient_balance:"\u53EF\u7528\u989D\u5EA6\u4E0D\u8DB3\u4EE5\u6263\u56DE\u672C\u6B21\u9000\u6B3E\uFF08\u5DF2\u6D88\u8017\u90E8\u5206\u5BF9\u5E94\u7684\u73B0\u91D1\u4E0D\u53EF\u9000\uFF09",refund_failed:"\u652F\u4ED8\u5B9D\u9000\u6B3E\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u6216\u68C0\u67E5\u652F\u4ED8\u5B9D\u5546\u6237\u540E\u53F0",refund_pending:"\u9000\u6B3E\u7ED3\u679C\u5F85\u786E\u8BA4\uFF0C\u8BF7\u7A0D\u540E\u67E5\u770B\u9000\u6B3E\u8BB0\u5F55",refund_in_progress:"\u8BE5\u8BA2\u5355\u6216\u8BA2\u9605\u6709\u9000\u6B3E\u6B63\u5728\u5904\u7406\u4E2D\uFF0C\u8BF7\u5F85\u5176\u5B8C\u6210\u540E\u518D\u64CD\u4F5C",refund_blocked_by_pending_order:"\u8BE5\u8BA2\u9605\u6709\u5F85\u652F\u4ED8\u7684\u7EED\u8D39\u8BA2\u5355\uFF0C\u8BF7\u5F85\u5176\u652F\u4ED8\u6216\u8D85\u65F6\u540E\u518D\u9000\u6B3E",refund_order_superseded:"\u5B58\u5728\u66F4\u665A\u5165\u8D26\u7684\u8BA2\u5355\uFF0C\u8BF7\u6309\u4ECE\u65B0\u5230\u65E7\u7684\u987A\u5E8F\u9000\u6B3E",refund_request_not_found:"\u9000\u6B3E\u7533\u8BF7\u4E0D\u5B58\u5728\u6216\u5DF2\u88AB\u5904\u7406\uFF0C\u8BF7\u5237\u65B0\u540E\u67E5\u770B",refund_nothing_refundable:"\u8BE5\u8BA2\u9605\u8BA2\u5355\u6309\u9650\u989D\u5468\u671F\u8BA1\u8D39\u540E\u5DF2\u65E0\u53EF\u9000\u91D1\u989D",subscription_limit_reached:"\u8BA2\u9605\u989D\u5EA6\u5DF2\u7528\u5C3D\uFF0C\u8BF7\u7B49\u5F85\u7A97\u53E3\u91CD\u7F6E",subscription_revoked:"\u8BE5\u8BA2\u9605\u5DF2\u88AB\u4F5C\u5E9F",plan_disabled:"\u8BE5\u5957\u9910\u5DF2\u505C\u552E",plan_in_use:"\u8BE5\u5957\u9910\u5DF2\u6709\u8BA2\u9605\u6216\u8BA2\u5355\u5F15\u7528\uFF0C\u65E0\u6CD5\u5220\u9664\uFF08\u53EF\u6539\u4E3A\u505C\u552E\u5E76\u9690\u85CF\uFF09",group_in_use:"\u8BE5\u5206\u7EC4\u6B63\u88AB\u8BA2\u9605\u5957\u9910\u8986\u76D6\uFF0C\u8BF7\u5148\u8C03\u6574\u5957\u9910\u7684\u8986\u76D6\u5206\u7EC4\u540E\u518D\u5220\u9664",order_already_invoiced:"\u8BE5\u8BA2\u5355\u5DF2\u7533\u8BF7\u8FC7\u53D1\u7968",order_not_eligible:"\u6240\u9009\u8BA2\u5355\u4E0D\u7B26\u5408\u5F00\u7968\u6761\u4EF6",order_invoiced:"\u8BE5\u8BA2\u5355\u5DF2\u5F00\u7968\u6216\u6709\u672A\u5904\u7406\u7684\u5F00\u7968\u7533\u8BF7\uFF0C\u65E0\u6CD5\u9000\u6B3E",invoice_profile_exists:"\u5DF2\u5B58\u5728\u76F8\u540C\u7684\u5E38\u7528\u5F00\u7968\u4FE1\u606F",invite_code_invalid:"\u9080\u8BF7\u7801\u65E0\u6548",ticket_closed:"\u5DE5\u5355\u5DF2\u5173\u95ED\uFF0C\u8BF7\u5148\u91CD\u65B0\u6253\u5F00\u540E\u518D\u56DE\u590D",ticket_limit_exceeded:"\u672A\u5173\u95ED\u7684\u5DE5\u5355\u6570\u91CF\u5DF2\u8FBE\u4E0A\u9650\uFF0C\u8BF7\u5148\u5173\u95ED\u5DF2\u89E3\u51B3\u7684\u5DE5\u5355"};import{z as ue}from"zod";var op=ue.string().trim().min(1),Ci=op.pipe(ue.url()),rp=ue.object({name:ue.string().trim().min(1).max(64),description:ue.string().trim().min(1).max(200),url:Ci}),Ea=ue.array(rp),ip=["string","number","boolean","secret","markdown","money","api-lines","origins"],sp=ue.enum(ip),ap=ue.object({key:ue.string(),type:sp,label:ue.string(),description:ue.string().optional(),value:ue.unknown().optional(),secret:ue.boolean().default(!1),required:ue.boolean().default(!1),min:ue.number().optional(),max:ue.number().optional(),step:ue.number().optional(),unit:ue.string().optional(),placeholder:ue.string().optional()}),zy=ue.object({key:ue.string(),label:ue.string(),description:ue.string().optional(),fields:ue.array(ap)}),Gy=ue.object({values:ue.record(ue.string(),ue.unknown()).refine(e=>Object.keys(e).length>0,{message:"at least one value required"})}),Vy=ue.object({fields:ue.record(ue.string(),ue.string())});function Pa(e){return`codeflow-cli/${e.cliVersion} (${e.platform} ${e.release}; ${e.arch}) node/${e.nodeVersion}`}function Jo(e){if(!e)return"\u672A\u77E5\u8BBE\u5907";let t=e.type==="cli"?e.clientVersion:e.clientVersion?.split(".")[0],n=[e.client?t?`${e.client} ${t}`:e.client:null,e.os].filter(r=>r!==null);return n.length>0?n.join(" \xB7 "):"\u672A\u77E5\u8BBE\u5907"}import{z as ut}from"zod";var Ei=1e8;var Qy=ut.object({id:ut.coerce.number().int().positive()}),Xy=ut.object({page:ut.coerce.number().int().min(1).default(1),pageSize:ut.coerce.number().int().min(1).max(100).default(20)});function gn(e){return ut.object({items:ut.array(e),total:ut.number().int().nonnegative(),page:ut.number().int().positive(),pageSize:ut.number().int().positive()})}var Se=ut.object({ok:ut.literal(!0)});import{z as W}from"zod";var hn=W.email().max(254).toLowerCase(),rt=8,co=W.string().min(rt).max(128),lo=W.string().min(1).max(128),bn=32,Pi=W.string().trim().min(1).max(bn),Ai=W.string().trim().min(1).max(254),cp=["register","reset_password"],tS=W.object({email:hn,purpose:W.enum(cp)}),nS=W.object({username:Pi,email:hn,password:co,code:W.string().min(4).max(8),inviteCode:W.string().trim().min(1).max(32).optional()}),oS=W.object({account:Ai,password:lo}),rS=W.object({email:hn,code:W.string().min(4).max(8),password:co}),iS=W.object({oldPassword:lo,newPassword:co}),sS=W.object({email:hn}),aS=W.object({email:hn,code:W.string().min(4).max(8),password:lo}),Aa=W.object({username:W.string(),email:W.string()}),qn=W.object({accessToken:W.string(),user:Aa}),Na=W.discriminatedUnion("status",[qn.extend({status:W.literal("ok")}),W.object({status:W.literal("totp_required"),ticket:W.string()})]),Ia=W.object({user:Aa}),lp=W.object({client:W.string().nullable(),clientVersion:W.string().nullable(),os:W.string().nullable(),osVersion:W.string().nullable(),type:W.string().nullable(),vendor:W.string().nullable(),model:W.string().nullable()}),up=W.object({id:W.number().int(),ip:W.string().nullable(),userAgent:W.string().nullable(),device:lp.nullable(),loginAt:W.string(),lastActiveAt:W.string(),expiresAt:W.string(),current:W.boolean()}),La=W.object({sessions:W.array(up)});import{z as me}from"zod";var Hn=me.string().trim().length(6),mp=me.string().trim().min(10).max(20),Yo=me.string().trim().min(1).max(64),Qo=me.record(me.string(),me.unknown()),uS=me.object({ticket:me.string().min(1),code:Hn}),mS=me.object({ticket:me.string().min(1),code:mp}),dS=me.object({code:Hn.optional()}),pS=me.object({code:Hn}),Ma=me.object({secret:me.string(),otpauthUri:me.string()}),Ni=me.object({recoveryCodes:me.array(me.string())}),dp=me.object({id:me.number().int(),name:me.string(),createdAt:me.string(),lastUsedAt:me.string().nullable()}),Oa=me.object({totp:me.object({enabled:me.boolean(),enabledAt:me.string().nullable(),recoveryCodesRemaining:me.number().int()}),passkeys:me.array(dp)}),fS=me.object({name:Yo,response:Qo}),gS=me.object({name:Yo}),hS=me.object({response:Qo});import{z as xe}from"zod";var TS=xe.object({account:Ai,password:lo}),pp=xe.object({totp:xe.boolean(),passkeys:xe.boolean()}),wS=xe.discriminatedUnion("status",[xe.object({status:xe.literal("totp_required"),ticket:xe.string()}),xe.object({status:xe.literal("setup_required"),ticket:xe.string(),missing:pp})]),kS=xe.object({ticket:xe.string().min(1)}),vS=xe.object({ticket:xe.string().min(1),code:Hn}),RS=xe.object({ticket:xe.string().min(1),name:Yo,response:Qo}),_S=xe.object({ticket:xe.string().min(1),code:Hn.optional()}),Da=xe.object({username:xe.string(),email:xe.string()}),CS=xe.object({accessToken:xe.string(),admin:Da}),ES=xe.object({admin:Da});import{z as Ii}from"zod";var LS=Ii.object({siteName:Ii.string().trim().min(1).max(64),siteDescription:Ii.string().trim().max(200).optional(),siteOrigin:Ci,username:Pi,email:hn,password:co});import{z as Pe}from"zod";var $a={orderNo:Pe.string(),amountCny:Pe.number().int(),status:fa,credited:Pe.boolean(),refundedAmountCny:Pe.number().int(),succeededRefundCny:Pe.number().int(),pendingRefundCny:Pe.number().int(),createdAt:Pe.string()},uo=Pe.object({...$a,quota:Pe.number(),refundedQuota:Pe.number()}),mo=Pe.object({...$a,planName:Pe.string(),renewal:Pe.boolean(),grantedDurationDays:Pe.number().int()}),Ba=Pe.object({id:Pe.number().int(),amountCny:Pe.number().int(),status:ga,refundTradeNo:Pe.string().nullable(),reason:Pe.string().nullable(),rejectReason:Pe.string().nullable(),createdAt:Pe.string()});function Fa(e){return e.status!=="paid"&&e.status!=="partially_refunded"||e.pendingRefundCny>0?!1:e.kind==="recharge"?e.refundedAmountCny<e.amountCny:e.refundedAmountCny===0}import{z as wt}from"zod";var Xo=wt.object({id:wt.number().int(),title:wt.string(),category:ka,priority:va,status:wa,createdAt:wt.string(),updatedAt:wt.string()}),Li=wt.object({id:wt.number().int(),authorKind:Ra,content:wt.string(),createdAt:wt.string()}),Ua=wt.object({ticket:Xo,messages:wt.array(Li)});import{z as po}from"zod";var Mi=po.object({id:po.number().int(),title:po.string(),content:po.string(),level:ba,publishedAt:po.string()});var ja="Asia/Shanghai",fp="+08:00";function gp(e){return new Date(new Date(e).getTime()+288e5)}function hp(e=Date.now()){let t=gp(e);return{day:t.toISOString().slice(0,10),hour:t.getUTCHours()}}function Oi(e=Date.now()){return hp(e).day}function Di(e=Oi()){return new Date(`${e}T00:00:00${fp}`)}function Xt(e,t){let o=new Date(`${e}T00:00:00Z`);return new Date(o.getTime()+t*864e5).toISOString().slice(0,10)}var bp=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium",timeZone:ja}),yp=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeZone:ja});function ee(e){return bp.format(new Date(e))}function Ut(e){return yp.format(new Date(e))}var Sp=[{name:"\u300A\u8BBA\u8BED\u300B",tokens:25e3},{name:"\u300A\u5C0F\u738B\u5B50\u300B",tokens:3e4},{name:"\u300A\u6D3B\u7740\u300B",tokens:11e4},{name:"\u300A\u970D\u6BD4\u7279\u4EBA\u300B",tokens:12e4},{name:"\u300A\u7EA2\u697C\u68A6\u300B",tokens:9e5},{name:"\u300A\u4E09\u4F53\u300B\u4E09\u90E8\u66F2",tokens:11e5},{name:"\u300A\u54C8\u5229\xB7\u6CE2\u7279\u300B\u5168\u4E03\u90E8",tokens:14e5},{name:"\u300A\u9C81\u8FC5\u5168\u96C6\u300B",tokens:85e5},{name:"\u91D1\u5EB8\u5341\u4E94\u90E8\u5C0F\u8BF4",tokens:105e5},{name:"\u300A\u5927\u82F1\u767E\u79D1\u5168\u4E66\u300B",tokens:52e6},{name:"\u300A\u4E8C\u5341\u56DB\u53F2\u300B",tokens:6e7},{name:"\u4E2D\u6587\u7EF4\u57FA\u767E\u79D1",tokens:1e9},{name:"\u300A\u56DB\u5E93\u5168\u4E66\u300B",tokens:12e8}];function xp(e){return e>=10?Math.round(e).toLocaleString("en-US"):e>=1?e.toFixed(1):e.toFixed(-Math.floor(Math.log10(e)))}function Tp(e){let t=e/1.2/250/60;if(t<48)return`${Math.max(1,Math.round(t))} \u5C0F\u65F6`;let o=t/24;return o<730?`${Math.round(o)} \u5929`:`${(o/365).toFixed(1)} \u5E74`}var wp=[...Sp.map(e=>({min:0,suffix:t=>`\u7EA6\u4E3A${e.name}\u7684 ${xp(t/e.tokens)} \u500D`})),{min:3e5,suffix:e=>`\u6253\u5370\u6210 A4 \u7EB8\u7EA6\u6709 ${Math.round(e/1.2/1500).toLocaleString("en-US")} \u9875`},{min:3e5,suffix:e=>`\u6309\u6BCF\u5206\u949F 250 \u5B57\u7684\u8BED\u901F\u6717\u8BFB\u7EA6\u9700 ${Tp(e)}`}];function qa(e){let{tokens:t,scope:o,range:n}=e;if(t<=0)return null;let r=wp.filter(c=>t>=c.min),i=r[Math.floor(Math.random()*r.length)];return i?`${o==="user"?"\u4F60":"\u5168\u7AD9"}${n==="all"?"\u7D2F\u8BA1":n==="30d"?"\u8FD1 30 \u5929":"\u8FD1 7 \u5929"}\u4F7F\u7528\u7684 Token \u91CF${i.suffix(t)}`:null}function jt(e){return t=>{let o=e[t];if(!o)throw new Error(`unknown status value: ${t}`);return o}}function Zt(e){return t=>{let o=e[t];if(!o)throw new Error(`unknown label value: ${t}`);return o}}var en=jt({pending:{label:"\u5F85\u652F\u4ED8",tone:"warning"},paid:{label:"\u5DF2\u652F\u4ED8",tone:"success"},refund_requested:{label:"\u9000\u6B3E\u5BA1\u6838\u4E2D",tone:"warning"},partially_refunded:{label:"\u90E8\u5206\u9000\u6B3E",tone:"warning"},refunded:{label:"\u5DF2\u9000\u6B3E",tone:"danger"},failed:{label:"\u5931\u8D25",tone:"danger"},expired:{label:"\u5DF2\u8FC7\u671F",tone:"neutral"}}),GS=Zt({recharge:"\u5145\u503C",subscription:"\u8BA2\u9605"}),Zo=jt({pending:{label:"\u5F85\u5904\u7406",tone:"warning"},issued:{label:"\u5DF2\u5F00\u5177",tone:"success"},rejected:{label:"\u5DF2\u9A73\u56DE",tone:"danger"}}),VS=jt({enabled:{label:"\u5DF2\u542F\u7528",tone:"success"},auto_disabled:{label:"\u81EA\u52A8\u7981\u7528",tone:"warning"},disabled:{label:"\u5DF2\u7981\u7528",tone:"neutral"}});var KS=jt({active:{label:"\u6B63\u5E38",tone:"success"},disabled:{label:"\u7981\u7528",tone:"danger"}}),$i=Zt({recharge:"\u5145\u503C",reserve:"\u9884\u6263",consume:"\u6D88\u8D39",reserve_refund:"\u9884\u6263\u9000\u56DE",refund:"\u9000\u6B3E",refund_release:"\u9000\u6B3E\u8FD4\u8FD8",reward:"\u5956\u52B1",admin_adjust:"\u7BA1\u7406\u5458\u8C03\u6574"}),Ha=Zt({usage_log:"\u7528\u91CF",order:"\u8BA2\u5355",invitation:"\u9080\u8BF7",admin:"\u7BA1\u7406\u5458"}),Wa=jt({requested:{label:"\u5F85\u5BA1\u6838",tone:"warning"},pending:{label:"\u5F85\u786E\u8BA4",tone:"warning"},succeeded:{label:"\u5DF2\u9000\u6B3E",tone:"success"},failed:{label:"\u5931\u8D25",tone:"danger"},rejected:{label:"\u5DF2\u9A73\u56DE",tone:"danger"},canceled:{label:"\u5DF2\u64A4\u9500",tone:"neutral"}}),er=jt({success:{label:"\u6210\u529F",tone:"success"},error:{label:"\u5931\u8D25",tone:"danger"},canceled:{label:"\u53D6\u6D88",tone:"neutral"},anomaly:{label:"\u5F02\u5E38",tone:"warning"}}),za=Zt({"openai-chat":"OpenAI Chat","openai-responses":"OpenAI Responses","anthropic-messages":"Anthropic Messages"}),fo=Zt({special:"\u589E\u503C\u7A0E\u4E13\u7528\u53D1\u7968",general:"\u589E\u503C\u7A0E\u666E\u901A\u53D1\u7968"}),yn=Zt({special:"\u4E13\u7968",general:"\u666E\u7968"}),tr=Zt({first_inviter:"\u9996\u5145\u8FD4\u5229\uFF08\u9080\u8BF7\u4EBA\uFF09",first_invitee:"\u9996\u5145\u8FD4\u5229\uFF08\u88AB\u9080\u8BF7\u4EBA\uFF09",subsequent_inviter:"\u7EED\u5145\u8FD4\u5229\uFF08\u9080\u8BF7\u4EBA\uFF09"}),go=jt({info:{label:"\u4FE1\u606F",tone:"neutral"},success:{label:"\u6210\u529F",tone:"success"},warning:{label:"\u8B66\u544A",tone:"warning"},error:{label:"\u91CD\u8981",tone:"danger"}}),Bi=jt({open:{label:"\u5F85\u5904\u7406",tone:"warning"},replied:{label:"\u5DF2\u56DE\u590D",tone:"success"},closed:{label:"\u5DF2\u5173\u95ED",tone:"neutral"}}),nr=Zt({billing:"\u8BA1\u8D39",technical:"\u6280\u672F",account:"\u8D26\u53F7",other:"\u5176\u4ED6"}),Fi=jt({low:{label:"\u8F83\u4F4E",tone:"neutral"},normal:{label:"\u666E\u901A",tone:"neutral"},high:{label:"\u7D27\u6025",tone:"danger"}});function Je(e,t,o){let n=r=>{let i=t(r);return typeof i=="string"?i:i.label};return[{value:"",label:o},...e.map(r=>({value:r,label:n(r)}))]}function he(e){let t=e/100;return`${t<0?"-":""}\xA5${Math.abs(t).toFixed(2)}`}function Ui(e){return Math.round(e*100)}function Ga(e){return e/100}function Va(e,t,o){let n=e/t;return`${n<0?"-":""}$${Math.abs(n).toLocaleString("en-US",{minimumFractionDigits:o,maximumFractionDigits:o})}`}function ae(e,t){return Va(e,t,2)}function Wn(e,t){return Va(e,t,6)}var or=10080,rr=1440;function Ka(e){if(e%or===0){let t=e/or;return t===1?"\u6BCF\u5468\u9650\u989D":`${t} \u5468\u9650\u989D`}if(e%rr===0){let t=e/rr;return t===1?"\u6BCF\u65E5\u9650\u989D":`${t} \u5929\u9650\u989D`}return e%60===0?`${e/60} \u5C0F\u65F6\u9650\u989D`:`${e} \u5206\u949F\u9650\u989D`}function kp(e){if(e%or===0){let t=e/or;return t===1?"\u6BCF\u5468":`\u6BCF ${t} \u5468`}if(e%rr===0){let t=e/rr;return t===1?"\u6BCF\u5929":`\u6BCF ${t} \u5929`}return e%60===0?`\u6BCF ${e/60} \u5C0F\u65F6`:`\u6BCF ${e} \u5206\u949F`}function Ja(e,t){return e.windows.map(o=>`${kp(o.durationMinutes)} ${ae(o.quota,t)}`)}function ji(e){return e.quota<=0?100:Math.min(100,Math.floor(e.used/e.quota*100))}function qi(e){return e.revokedAt!==null?{label:"\u5DF2\u4F5C\u5E9F",tone:"danger"}:new Date(e.expiresAt).getTime()<=Date.now()?{label:"\u5DF2\u8FC7\u671F",tone:"neutral"}:{label:"\u751F\u6548\u4E2D",tone:"success"}}function Re(e){return e.toLocaleString("en-US")}function tn(e){let t=Math.abs(e);return t>=1e9?`${(e/1e9).toFixed(1)}B`:t>=1e6?`${(e/1e6).toFixed(1)}M`:t>=1e3?`${(e/1e3).toFixed(1)}k`:Re(e)}function Sn(e,t){let o=Number(e);return Number.isFinite(o)?o===0&&t!==void 0?t:o.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:12}):e}function xn(e){return(e/1e3).toFixed(2)}function ir(e,t){return`${e}******${t}`}var Hi={recharge:["\u5145\u9519\u91D1\u989D\u6216\u91CD\u590D\u5145\u503C","\u9700\u8981\u7684\u6A21\u578B\u4E0D\u53EF\u7528","\u8C03\u7528\u7ECF\u5E38\u62A5\u9519\u6216\u8D85\u65F6","\u5B9E\u9645\u8BA1\u8D39\u9AD8\u4E8E\u9884\u671F","\u4F59\u989D\u7528\u4E0D\u5B8C\uFF0C\u4E0D\u518D\u9700\u8981"],subscription:["\u8BEF\u8D2D\u6216\u9009\u9519\u5957\u9910","\u5957\u9910\u4E0D\u542B\u9700\u8981\u7684\u6A21\u578B","\u9650\u989D\u592A\u4F4E\uFF0C\u4E0D\u591F\u7528","\u8C03\u7528\u7ECF\u5E38\u62A5\u9519\u6216\u8D85\u65F6","\u4F7F\u7528\u9891\u7387\u4F4E\uFF0C\u4E0D\u5212\u7B97"]},Ya={recharge:"\u63D0\u4EA4\u540E\u672C\u5355\u5269\u4F59\u989D\u5EA6\u4E0E\u5173\u8054\u7684\u9080\u8BF7\u5956\u52B1\u5C06\u7ACB\u5373\u4ECE\u4F59\u989D\u6536\u56DE\uFF1B\u5BA1\u6838\u901A\u8FC7\u540E\u539F\u8DEF\u9000\u56DE\u652F\u4ED8\u5B9D\uFF0C\u9A73\u56DE\u6216\u64A4\u9500\u540E\u81EA\u52A8\u6062\u590D",subscription:"\u63D0\u4EA4\u540E\u672C\u5355\u672A\u5F00\u59CB\u7684\u65F6\u957F\u7ACB\u5373\u5931\u6548\uFF0C\u6B63\u5728\u670D\u52A1\u4E2D\u7684\u65F6\u6BB5\u4FDD\u7559\u81F3\u5F53\u524D\u9650\u989D\u5468\u671F\u7ED3\u675F\uFF1B\u5BA1\u6838\u901A\u8FC7\u540E\u6309\u672A\u5F00\u59CB\u7684\u9650\u989D\u5468\u671F\u6298\u7B97\u539F\u8DEF\u9000\u6B3E\uFF0C\u9A73\u56DE\u6216\u64A4\u9500\u540E\u81EA\u52A8\u6062\u590D"};import{release as vp}from"os";var Rp=3e4,_p=Pa({cliVersion:lt,platform:process.platform,release:vp(),arch:process.arch,nodeVersion:process.versions.node});async function mt(e,t={}){let o=new Headers(t.headers);o.set("user-agent",_p);let n;t.json!==void 0&&(o.set("content-type","application/json"),n=JSON.stringify(t.json));let r;try{r=await fetch(e,{method:t.method??(n===void 0?"GET":"POST"),headers:o,body:n,signal:AbortSignal.timeout(t.timeoutMs??Rp),redirect:"follow"})}catch(a){let c=URL.canParse(e)?new URL(e).origin:e;throw new U(`\u65E0\u6CD5\u8FDE\u63A5 ${c}\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u6216\u7AD9\u70B9\u5730\u5740`,{exitCode:na,cause:a})}let i=await r.text(),s=null;if(i!=="")try{s=JSON.parse(i)}catch(a){if(r.ok)throw new U(`${e} \u8FD4\u56DE\u4E86\u975E JSON \u5185\u5BB9\uFF0C\u53EF\u80FD\u88AB\u7F51\u5173\u6216\u4E2D\u95F4\u8BBE\u5907\u62E6\u622A`,{cause:a})}return{status:r.status,ok:r.ok,headers:r.headers,data:s}}function Cp(e,t){let o=_a.safeParse(t);if(!o.success)return new U(`\u8BF7\u6C42\u5931\u8D25\uFF08HTTP ${e}\uFF09`);let{code:n,message:r}=o.data.error,i=n==="unauthorized"||n==="token_expired"?pn:void 0;return new U(Ca[n]??r,i?{exitCode:i}:{})}function At(e){if(!e.ok)throw Cp(e.status,e.data)}var Za="cf_refresh",ec="cf_device",Qa=6e4;function Xa(e,t){for(let o of e.getSetCookie()){let n=o.split(";",1)[0];if(n===void 0)continue;let r=n.indexOf("=");if(!(r<0)&&n.slice(0,r).trim()===t)return n.slice(r+1).trim()}return null}function ho(e,t){return{refresh:Xa(t,Za)??e.refresh,device:Xa(t,ec)??e.device}}function sr(e){let t=[];return e.refresh&&t.push(`${Za}=${e.refresh}`),e.device&&t.push(`${ec}=${e.device}`),t.length>0?{cookie:t.join("; ")}:{}}function Ep(e){let t=e.split(".")[1];if(t===void 0)throw new U("\u670D\u52A1\u7AEF\u8FD4\u56DE\u7684\u8BBF\u95EE\u4EE4\u724C\u683C\u5F0F\u4E0D\u6B63\u786E");let o;try{o=JSON.parse(Buffer.from(t,"base64url").toString("utf8"))}catch(r){throw new U("\u670D\u52A1\u7AEF\u8FD4\u56DE\u7684\u8BBF\u95EE\u4EE4\u724C\u65E0\u6CD5\u89E3\u6790",{cause:r})}let n=o.exp;if(typeof n!="number")throw new U("\u670D\u52A1\u7AEF\u8FD4\u56DE\u7684\u8BBF\u95EE\u4EE4\u724C\u7F3A\u5C11\u6709\u6548\u671F");return n*1e3}function bo(e,t,o){if(!t.refresh)throw new U("\u670D\u52A1\u7AEF\u672A\u4E0B\u53D1\u5237\u65B0\u51ED\u636E\uFF0C\u65E0\u6CD5\u4FDD\u6301\u767B\u5F55\u72B6\u6001");let n={refreshCookie:t.refresh,accessToken:o.accessToken,accessExpiresAt:Ep(o.accessToken),username:o.user.username,email:o.user.email,site:e};return yi(r=>{r.session=n,t.device&&(r.device={site:e,cookie:t.device})}),n}function Wi(e){let{device:t}=Tt();return t!==null&&t.site===e?t.cookie:null}async function tc(e,t,o){let n={refresh:null,device:Wi(e)},r=await mt(`${e}/api/auth/login`,{json:{account:t,password:o},headers:sr(n)});At(r);let i=Na.parse(r.data),s=ho(n,r.headers);return i.status==="totp_required"?{status:"totp_required",ticket:i.ticket,jar:s}:{status:"ok",session:bo(e,s,i)}}async function nc(e,t,o,n,r){let s=await mt(`${e}/api/auth/${r==="totp"?"login/totp":"login/recovery-code"}`,{json:{ticket:o,code:n},headers:sr(t)});At(s);let a=qn.parse(s.data);return bo(e,ho(t,s.headers),a)}function oc(){yi(e=>{e.session=null})}async function Pp(e){let t={refresh:e.refreshCookie,device:Wi(e.site)},o=await mt(`${e.site}/api/auth/refresh`,{method:"POST",headers:sr(t)});if(o.status===401||o.status===403)throw oc(),new U("\u767B\u5F55\u5DF2\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55",{exitCode:pn});At(o);let n=qn.parse(o.data);return bo(e.site,ho(t,o.headers),n)}async function zi(e=!1){let t=ua();return!e&&Date.now()<t.accessExpiresAt-Qa?t:ma(async()=>{let o=la().session;if(!o)throw new U("\u5C1A\u672A\u767B\u5F55\uFF0C\u8BF7\u5148\u767B\u5F55\u8D26\u53F7",{exitCode:pn});return(o.refreshCookie!==t.refreshCookie||o.accessToken!==t.accessToken)&&Date.now()<o.accessExpiresAt-Qa?o:Pp(o)})}async function ar(){let e=Tt().session;if(!e)return;let t=await mt(`${e.site}/api/auth/logout`,{method:"POST",headers:sr({refresh:e.refreshCookie,device:Wi(e.site)})});oc(),At(t)}import{spawn as Ap}from"child_process";function yo(e,t={}){return new Promise((o,n)=>{let r=Ap("npm",e,{stdio:["ignore","pipe","pipe"],shell:process.platform==="win32"}),i=[],s=[],a=c=>{for(let l of c.toString("utf8").split(`
4
4
  `)){let d=l.trimEnd();d!==""&&(s.push(d),s.length>20&&s.shift())}};r.stdout.on("data",c=>{i.push(c.toString("utf8")),a(c)}),r.stderr.on("data",a),r.on("error",c=>n(new U(`\u6267\u884C npm \u5931\u8D25\uFF1A${c.message}`,{cause:c}))),r.on("close",c=>{if(c===0){o(i.join(""));return}let l=s.slice(-2).join(" / ");n(new U(`npm ${e.join(" ")} \u9000\u51FA\u7801 ${c??"null"}`,{...l===""?{}:{hint:l}}))}),t.background===!0&&(r.stdout.unref(),r.stderr.unref(),r.unref())})}async function rc(e){let t=[],o=async(n,r)=>{try{await r(),e.done(n)}catch(i){t.push(`${n}\uFF1A${je(i)}`),e.failed(n)}};return await o("\u9000\u51FA\u767B\u5F55",()=>ar()),await o("\u5220\u9664\u672C\u5730\u6587\u4EF6",()=>{let n=Ft();Np(n)&&Ip(n,{recursive:!0,force:!0})}),await o("\u5378\u8F7D\u672C\u7A0B\u5E8F",async()=>{await yo(["uninstall","-g",$n])}),t}import{z as So}from"zod";var Lp=So.object({line:So.object({name:So.string(),url:So.string()}).nullable().default(null),lastUpdateCheckAt:So.number().nullable().default(null)}),ic=Ko(Lp,oa,"\u672C\u5730\u914D\u7F6E","\u91CD\u65B0\u8FD0\u884C"),Tn=ic.load,cr=ic.update;var Mp=1440*60*1e3;async function sc(){let e=(await yo(["view",$n,"version"])).trim();if(e==="")throw new U(`npm \u6CA1\u6709\u62A5\u51FA ${$n} \u7684\u7248\u672C`);return e}async function ac(e,t){return await yo(["install","-g",`${$n}@${e}`],{background:t}),e}async function cc(){let e=await sc();return e===lt?null:await ac(e,!1)}function Op(){let e=Date.now(),t=Tn().lastUpdateCheckAt;return t!==null&&e-t<Mp?!1:(cr(o=>{o.lastUpdateCheckAt=e}),!0)}async function lc(){if(!Op())return null;let e;try{e=await sc()}catch{return null}return e===lt?null:await ac(e,!0)}import{Box as $b,render as Bb,useInput as Fb}from"ink";import{useEffect as Zs,useRef as Ub}from"react";async function kt(e,t,o={}){let n=await mt(t,o);return At(n),e.parse(n.data)}async function O(e,t,o={}){let n=await zi(),r=s=>mt(`${n.site}/api${t}`,{...o,headers:{...o.headers,authorization:`Bearer ${s}`}}),i=await r(n.accessToken);if(i.status===401){let s=await zi(!0);i=await r(s.accessToken)}return At(i),e.parse(i.data)}function qt(e,t){let o=new URLSearchParams;for(let[r,i]of Object.entries(t))i!==void 0&&o.set(r,String(i));let n=o.toString();return n===""?e:`${e}?${n}`}var uc=e=>O(gn(Mi),qt("/announcements",{...e})),mc=()=>O(Mi.nullable(),"/announcements/unread"),lr=e=>O(Se,`/announcements/${e}/read`,{method:"POST"}).then(()=>{});import{Box as dc,useWindowSize as Dp}from"ink";import{Children as $p}from"react";import{jsx as pc}from"react/jsx-runtime";var Bp=1,Gi=1,J=1;function j(){let{columns:e,rows:t}=Dp();return{width:Math.max(1,e-Bp*2),columns:e,rows:t}}function fc({height:e,children:t}){return pc(dc,{flexDirection:"column",height:e,justifyContent:"space-between",children:$p.toArray(t).map((o,n)=>pc(dc,{flexDirection:"column",flexShrink:0,children:o},n))})}import{useInput as hc}from"ink";import{createContext as Ji,useCallback as ur,useContext as Fp,useEffect as Yi,useMemo as Vi,useRef as xo,useState as gc}from"react";import{jsx as Ki}from"react/jsx-runtime";var mr=Ji(null),Qi=Ji(null),zn={screen:0,panel:10,input:20},Xi=Ji(null);function bc({children:e}){let[t,o]=gc(!1),[n,r]=gc(!1),i=xo(0),s=xo(0),a=xo([]),c=xo(0),l=ur(()=>(i.current+=1,o(!0),()=>{i.current-=1,i.current===0&&o(!1)}),[]),d=ur(()=>(s.current+=1,r(!0),()=>{s.current-=1,s.current===0&&r(!1)}),[]),f=ur(h=>{let y={...h,seq:c.current+=1};return a.current.push(y),()=>{a.current=a.current.filter(x=>x!==y)}},[]),m=ur(()=>{a.current.reduce((y,x)=>y===null||x.layer>y.layer||x.layer===y.layer&&x.seq>y.seq?x:y,null)?.handler()},[]);hc((h,y)=>{y.escape&&m()});let p=Vi(()=>({active:t,acquire:l}),[t,l]),S=Vi(()=>({locked:n,acquire:d}),[n,d]),g=Vi(()=>({push:f,fire:m}),[f,m]);return Ki(mr.Provider,{value:p,children:Ki(Qi.Provider,{value:S,children:Ki(Xi.Provider,{value:g,children:e})})})}function wn(e){let t=Fp(e);if(!t)throw new Error("\u952E\u76D8\u94A9\u5B50\u5FC5\u987B\u5728 KeyboardProvider \u5185\u4F7F\u7528");return t}function dr(e){let{acquire:t}=wn(mr);Yi(()=>{if(e)return t()},[e,t])}function yc(e){let{acquire:t}=wn(Qi);Yi(()=>{if(e)return t()},[e,t])}function pr(){return wn(Qi).locked}function fr(){return wn(mr).active}function z(e,t=!0){let o=wn(mr).active;hc(e,{isActive:t&&!o})}function Sc(){return wn(Xi).fire}function nn(e,{isActive:t=!0,layer:o=zn.screen}={}){let{push:n}=wn(Xi),r=xo(e);r.current=e,Yi(()=>{if(t)return n({handler:()=>r.current(),layer:o})},[t,o,n])}import{measureElement as Up}from"ink";import{PassThrough as jp}from"stream";import{createContext as qp,useCallback as Hp,useContext as Wp,useEffect as kc,useRef as gr}from"react";import{jsx as ef}from"react/jsx-runtime";var zp="\x1B[?1000h\x1B[?1003h\x1B[?1006h",Gp="\x1B[?1006l\x1B[?1003l\x1B[?1000l",Vp=27,Kp=91,Jp=60,xc=77,Tc=109,wc=20,Yp=64,Qp=32,Xp=20;function Zp(e){let t=[],o=[],n=0;for(;n<e.length;){let r=e[n];if(r===void 0)break;if(r!==Vp){o.push(r),n+=1;continue}let i=e[n+1],s=e[n+2];if(i===void 0||s===void 0)break;if(i!==Kp){o.push(r),n+=1;continue}if(s===xc){if(n+6>e.length)break;n+=6;continue}if(s!==Jp){o.push(r),n+=1;continue}let a=n+3,c;for(;a<e.length&&a-n<wc;){let p=e[a];if(p===xc||p===Tc){c=p;break}a+=1}if(c===void 0){if(a-n<wc)break;o.push(r),n+=1;continue}let l=e.subarray(n+3,a).toString("latin1").split(";");if(n=a+1,c===Tc||l.length!==3)continue;let d=Number(l[0]),f=Number(l[1]),m=Number(l[2]);!Number.isFinite(d)||!Number.isFinite(f)||!Number.isFinite(m)||t.push((d&Yp)!==0?{row:m,column:f,kind:"wheel",delta:(d&1)===0?-1:1}:{row:m,column:f,kind:(d&Qp)!==0?"move":"press"})}return{events:t,clean:Buffer.from(o),pending:e.subarray(n)}}function vc(e,t){let o=new Set,n=new jp,r=Buffer.alloc(0),i=null,s=()=>{i=null,r.length!==0&&(n.write(r),r=Buffer.alloc(0))},a=m=>{i!==null&&clearTimeout(i),i=null;let p=Zp(Buffer.concat([r,m]));r=p.pending,p.clean.length>0&&n.write(p.clean);for(let S of p.events)for(let g of o)g(S);r.length>0&&(i=setTimeout(s,Xp))},c=()=>{t.write(Gp)},l={SIGHUP:1,SIGINT:2,SIGTERM:15},d=m=>{process.exit(128+(l[m]??0))};e.on("data",a),process.once("exit",c);for(let m of Object.keys(l))process.on(m,d);t.write(zp);let f=n;return Object.assign(f,{isTTY:!0,setRawMode(m){return e.setRawMode(m),f},ref(){return e.ref(),f},unref(){return e.unref(),f}}),{stdin:f,subscribe(m){return o.add(m),()=>{o.delete(m)}},dispose(){c(),i!==null&&clearTimeout(i),process.off("exit",c);for(let m of Object.keys(l))process.off(m,d);e.off("data",a),o.clear()}}}var Rc=qp(null);function _c({subscribe:e,children:t}){let o=gr(new Set).current,n=gr(null),r=Hp(i=>(o.add(i),()=>{o.delete(i)}),[o]);return kc(()=>e(i=>{let s=i.row-1,a=i.column-1,c=null;for(let d of o){let f=d.node.current;if(f===null||d.handlers.current.isActive===!1)continue;let m=Up(f);if(s<m.y||s>=m.y+m.height||a<m.x||a>=m.x+m.width)continue;let p=m.width*m.height;(c===null||p<c.area)&&(c={region:d,top:m.y,left:m.x,area:p})}if(i.kind==="move"){let d=c===null?null:c.region;if(n.current!==d){let f=n.current;f!==null&&o.has(f)&&f.handlers.current.onHoverLeave?.(),n.current=d}c!==null&&c.region.handlers.current.onHover?.({row:s-c.top,column:a-c.left});return}if(c===null)return;let l=c.region.handlers.current;i.kind==="wheel"?l.onWheel?.(i.delta):l.onClick?.({row:s-c.top,column:a-c.left})}),[e,o]),ef(Rc.Provider,{value:r,children:t})}function $e(e){let t=Wp(Rc);if(t===null)throw new Error("useMouseRegion \u5FC5\u987B\u5728 MouseProvider \u5185\u4F7F\u7528");let o=gr(null),n=gr(e);return n.current=e,kc(()=>t({node:o,handlers:n}),[t]),o}import{useApp as tf}from"ink";import{createContext as nf,useCallback as kn,useContext as of,useEffect as Zi,useRef as br,useState as wo}from"react";var Ye=[{id:"usage",label:"\u6570\u636E\u770B\u677F"},{id:"tokens",label:"\u4EE4\u724C\u7BA1\u7406"},{id:"logs",label:"\u4F7F\u7528\u65E5\u5FD7"},{id:"models",label:"\u6A21\u578B\u5E7F\u573A"},{id:"recharge",label:"\u8D26\u6237\u5145\u503C"},{id:"subscription",label:"\u8BA2\u9605\u5957\u9910"},{id:"ledger",label:"\u989D\u5EA6\u6D41\u6C34"},{id:"invoices",label:"\u53D1\u7968\u7BA1\u7406"},{id:"invite",label:"\u9080\u8BF7\u597D\u53CB"},{id:"tickets",label:"\u5DE5\u5355\u652F\u6301"},{id:"announcements",label:"\u7CFB\u7EDF\u516C\u544A"},{id:"profile",label:"\u4E2A\u4EBA\u4E2D\u5FC3"}],Cc="usage",To=e=>Ye.findIndex(t=>t.id===e),hr=e=>To(e)>=0;import{jsx as sf}from"react/jsx-runtime";var rf=5e3,Pc=nf(null),Ac=e=>({id:e,params:void 0}),Ec=()=>Tt().session===null?[{id:"home",params:void 0}]:[Ac(Cc)];function D(){let e=of(Pc);if(!e)throw new Error("useNav \u5FC5\u987B\u5728 NavProvider \u5185\u4F7F\u7528");return e}function Nc({ctx:e,children:t}){let o=tf(),[n,r]=wo(Ec),[i,s]=wo(0),[a,c]=wo([]),l=br({announcementsChecked:!1,announcementsShown:!1}).current,d=br(new WeakMap).current,f=kn((C,...L)=>{r(F=>[...F,{id:C,params:L[0]}])},[]),m=kn(()=>{r(C=>C.length>1?C.slice(0,-1):C),s(C=>C+1)},[]),p=kn(C=>{r([Ac(C)]),s(L=>L+1)},[]),S=kn(()=>{r(Ec()),s(C=>C+1)},[]),g=kn(()=>s(C=>C+1),[]),h=kn((C,L)=>{c(F=>[...F,{tone:C,message:L}])},[]),y=kn(()=>c(C=>C.slice(1)),[]),x=a[0]??null;Zi(()=>{if(x===null)return;let C=setTimeout(y,rf);return()=>clearTimeout(C)},[x,y]);let k=n[n.length-1];if(k===void 0)throw new Error("\u5BFC\u822A\u6808\u4E3A\u7A7A");let b=d.get(k);b===void 0&&(b=new Map,d.set(k,b));let T={ctx:e,current:k,depth:n.length,push:f,pop:m,select:p,home:S,reload:g,toast:h,message:x,dismissToast:y,exit:o.exit,revision:i,gate:l,retained:b};return sf(Pc.Provider,{value:T,children:t})}function Ve(e,t){let{retained:o}=D(),[n,r]=wo(()=>e!==void 0&&o.has(e)?o.get(e):t());return Zi(()=>{e!==void 0&&o.set(e,n)},[o,e,n]),[n,r]}function Q(e,t){let[o,n]=wo({phase:"loading"}),r=br(t);r.current=t;let i=br(0);return Zi(()=>{let s=i.current+=1;n({phase:"loading"}),r.current().then(a=>{i.current===s&&n({phase:"ready",data:a})}).catch(a=>{i.current===s&&n({phase:"error",message:je(a),hint:a instanceof U?a.hint:void 0})})},e),o}import{Box as Or,Text as _n,useInput as $f}from"ink";import{Box as Co,Text as Jn}from"ink";import ko from"string-width";var u={background:"#0d0d0d",foreground:"#f3f3f3",mutedForeground:"#949494",faintForeground:"#696969",cursorBackground:"#c8c8c8",border:"#393939",accent:"#37be95",success:"#34d399",warning:"#fbbf24",danger:"#f87171"},yr=["#242424","#5a4233","#746533","#70924f","#37be95"],Sr=["#37be95","#2d9273","#246e58","#1e5443","#193f33"],Be={accent:u.accent,success:u.success,warning:u.warning,danger:u.danger},Gn=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],xr=80,X={cursor:"\u276F",bullet:"\xB7",crumb:"\u203A",ok:"\u2714",warn:"!",fail:"\u2718",ellipsis:"\u2026",barFilled:"\u2588",barEmpty:"\u2591",section:"\u258D",prev:"\u2039",next:"\u203A"};var af=ko(X.ellipsis),cf=(e,t)=>e+" ".repeat(Math.max(0,t-ko(e))),lf=(e,t)=>" ".repeat(Math.max(0,t-ko(e)))+e;function Te(e,t){if(t<=0)return"";if(ko(e)<=t)return e;let o=t-af,n="";for(let r of e){if(ko(n+r)>o)break;n+=r}return n+X.ellipsis}var Ae=(e,t)=>cf(Te(e,t),t),on=(e,t)=>lf(Te(e,t),t),Oe=e=>e.filter(t=>typeof t=="string"&&t!=="").join(` ${X.bullet} `);import{Text as vt,useInput as uf}from"ink";import{useImperativeHandle as mf,useRef as Ic,useEffect as df,useState as Mc}from"react";import es from"string-width";import{jsx as Nt,jsxs as ts}from"react/jsx-runtime";var pf=e=>e.replace(new RegExp("\\p{Cc}","gu"),"");function Lc(e,t,o){let n=t,r=0;for(;n>0;){let s=es(e[n-1]??"");if(r+s>o)break;r+=s,n-=1}let i=t;for(r+=1;i<e.length;){let s=es(e[i]??"");if(r+s>o)break;r+=s,i+=1}return{start:n,before:e.slice(n,t).join(""),at:e[t]??" ",after:e.slice(t+1,i).join("")}}function vo({char:e}){return Nt(vt,{backgroundColor:u.cursorBackground,color:u.foreground,children:e})}function Tr({value:e,onChange:t,onSubmit:o,placeholder:n,mask:r=!1,isActive:i=!0,width:s=40,ref:a}){let c=[...e],[l,d]=Mc(c.length),f=Math.min(l,c.length),m=Math.max(8,s),p=Ic(e),S=Ic(f);p.current=e,S.current=f,dr(i);let g=T=>{S.current=T,d(T)},h=(T,C)=>{p.current=T,g(C),t(T)};if(mf(a,()=>({moveToColumn:T=>{let C=[...p.current],L=r?Array.from({length:C.length},()=>"\u2022"):C,w=Lc(L,Math.min(S.current,C.length),m).start,E=0;for(;w<C.length;){let R=es(L[w]??"");if(E+R>T)break;E+=R,w+=1}g(w)}})),uf((T,C)=>{let L=[...p.current],F=Math.min(S.current,L.length);if(C.return){o(p.current);return}if(C.tab||C.upArrow||C.downArrow)return;if(C.leftArrow){g(Math.max(0,F-1));return}if(C.rightArrow){g(Math.min(L.length,F+1));return}if(C.home){g(0);return}if(C.end){g(L.length);return}if(C.backspace){if(F===0)return;h([...L.slice(0,F-1),...L.slice(F)].join(""),F-1);return}if(C.delete){if(F>=L.length)return;h([...L.slice(0,F),...L.slice(F+1)].join(""),F);return}if(C.ctrl){if(T==="a")g(0);else if(T==="e")g(L.length);else if(T==="k")h(L.slice(0,F).join(""),F);else if(T==="u")h(L.slice(F).join(""),0);else if(T==="w"){let P=F;for(;P>0&&L[P-1]===" ";)P-=1;for(;P>0&&L[P-1]!==" ";)P-=1;h([...L.slice(0,P),...L.slice(F)].join(""),P)}return}if(C.meta||!T)return;let w=T.search(/[\r\n]/),E=pf(w===-1?T:T.slice(0,w)),R=[...L.slice(0,F),E,...L.slice(F)].join("");h(R,F+[...E].length),w!==-1&&o(R)},{isActive:i}),e===""){let T=[...n??""];return i?ts(vt,{children:[Nt(vo,{char:T[0]??" "}),Nt(vt,{color:u.faintForeground,children:T.slice(1).join("")})]}):Nt(vt,{color:u.faintForeground,children:T.join("")})}let y=r?Array.from({length:c.length},()=>"\u2022"):c;if(!i)return Nt(vt,{color:u.foreground,children:y.join("")});let{before:x,at:k,after:b}=Lc(y,f,m);return ts(vt,{children:[Nt(vt,{color:u.foreground,children:x}),Nt(vo,{char:k}),Nt(vt,{color:u.foreground,children:b})]})}function Qe({label:e}){let[t,o]=Mc(0);return df(()=>{let n=setInterval(()=>o(r=>(r+1)%Gn.length),xr);return()=>clearInterval(n)},[]),ts(vt,{children:[Nt(vt,{color:u.accent,children:Gn[t]}),Nt(vt,{color:u.mutedForeground,children:` ${e}`})]})}import{Box as $c,Text as Vn}from"ink";import{useEffect as Fc,useState as gf}from"react";import Bc from"string-width";import{Box as Oc,Text as wr}from"ink";import ff from"string-width";import{jsx as Ro,jsxs as Dc}from"react/jsx-runtime";var ce=2,it=1,De=1,Rt=it+De;function _o({title:e,note:t,width:o}){let n=t===void 0?0:ff(t)+2,r=Math.max(0,o-ce-n);return Dc(wr,{wrap:"truncate",children:[Ro(wr,{color:u.accent,children:`${X.section} `}),Ro(wr,{bold:!0,color:u.foreground,children:Te(e,r)}),t!==void 0&&Ro(wr,{color:u.faintForeground,children:` ${t}`})]})}function oe({title:e,note:t,width:o,gap:n=De,children:r}){return Dc(Oc,{flexDirection:"column",children:[Ro(_o,{title:e,note:t,width:o}),Ro(Oc,{flexDirection:"column",marginTop:n,paddingLeft:ce,children:r})]})}import{jsx as Ht,jsxs as jc}from"react/jsx-runtime";var Kn=e=>!("heading"in e),hf=e=>e.flatMap(t=>!Kn(t)&&t.heading!==""?[t,{heading:""}]:[t]),Uc=2,kr=2,bf=(e,t)=>t===void 0?e:e>t?Math.max(1,t-1):t;function yf(e,t,o,n){let[r,i]=Ve(n,()=>e.findIndex(d=>Kn(d)&&d.disabled!==!0));Fc(()=>{i(d=>d>=e.length?Math.max(0,e.length-1):d)},[e.length]);let s=d=>{i(f=>{let m=e.length;if(m===0)return f;let p=f;for(let S=0;S<m;S+=1){p=(p+d+m)%m;let g=e[p];if(g!==void 0&&Kn(g)&&g.disabled!==!0)return p}return f})},a=d=>{let f=e[d];return f!==void 0&&Kn(f)&&f.disabled!==!0?f:null},c=d=>{a(d)!==null&&i(d)},l=d=>{let f=a(d);f!==null&&(i(d),o(f.value))};return z((d,f)=>{if(f.upArrow||d==="k"){s(-1);return}if(f.downArrow||d==="j"){s(1);return}f.return&&l(r)},t),{index:Math.max(0,r),step:s,pick:l,moveTo:c}}function ns(e,t){let[o,n]=gf(()=>e>=t?e-t+1:0);return Fc(()=>{n(r=>e<r?e:e>=r+t?e-t+1:r)},[e,t]),o}function Sf(e,t){let o=e.filter(Kn),n=Math.max(0,...o.map(s=>Bc(s.label))),r=Math.max(0,...o.map(s=>s.badge===void 0?0:Bc(s.badge))),i=Uc+n+(r>0?r+kr:0)+kr;return{label:n,badge:r,hint:Math.max(0,t-i)}}function xf({item:e,active:t,metrics:o}){let n=e.disabled===!0,r=n?u.faintForeground:e.labelTone!==void 0?Be[e.labelTone]:t?u.accent:u.foreground;return jc(Vn,{wrap:"truncate",children:[Ht(Vn,{color:u.accent,children:t?`${X.cursor} `:" "}),Ht(Vn,{color:r,bold:t,children:Ae(e.label,o.label)}),o.badge>0&&Ht(Vn,{color:e.badgeTone===void 0?u.faintForeground:Be[e.badgeTone],children:`${" ".repeat(kr)}${Ae(e.badge??"",o.badge)}`}),e.hint!==void 0&&o.hint>0&&Ht(Vn,{color:n||!t?u.faintForeground:u.mutedForeground,children:`${" ".repeat(kr)}${Te(e.hint,o.hint)}`})]})}function Tf({items:e,cursor:t,metrics:o,window:n,width:r,isActive:i,onPick:s,onHover:a,onScroll:c}){let l=ns(t,n),d=e.slice(l,l+n),f=p=>p<d.length?l+p:null,m=$e({isActive:i,onWheel:c,onClick:({row:p})=>{let S=f(p);S!==null&&s(S)},onHover:({row:p})=>{let S=f(p);S!==null&&a(S)}});return jc($c,{ref:m,flexDirection:"column",children:[d.map((p,S)=>{let g=l+S;return Kn(p)?Ht(xf,{item:p,active:g===t&&i,metrics:o},g):p.heading===""?Ht($c,{height:1},g):Ht(_o,{title:p.heading,width:r},g)}),e.length>n&&Ht(Vn,{color:u.faintForeground,children:`${" ".repeat(Uc)}${l+1}-${Math.min(l+n,e.length)} / ${e.length}`})]})}function le({items:e,onSelect:t,width:o,height:n,isActive:r=!0,retain:i}){let s=hf(e),a=yf(s,r,t,i);return Ht(Tf,{items:s,cursor:a.index,metrics:Sf(s,o),window:bf(s.length,n),width:o,isActive:r,onPick:a.pick,onHover:a.moveTo,onScroll:a.step})}import{jsx as dt,jsxs as vr}from"react/jsx-runtime";var qc={ok:{glyph:X.ok,color:u.success},warn:{glyph:X.warn,color:u.warning},fail:{glyph:X.fail,color:u.danger},info:{glyph:X.bullet,color:u.mutedForeground}};function fe({tone:e,title:t,detail:o,width:n}){let r=qc[e];return vr(Co,{flexDirection:"column",children:[vr(Jn,{children:[dt(Jn,{color:r.color,children:`${r.glyph} `}),dt(Jn,{color:u.foreground,children:Te(t,n-2)})]}),o!==void 0&&dt(Jn,{color:u.faintForeground,children:` ${Te(o,n-2)}`})]})}function vn({message:e,hint:t,width:o}){return dt(fe,{tone:"fail",title:e,detail:t,width:o})}var wf=2,kf=2;function Hc({tone:e,message:t,width:o,onDismiss:n}){let r=qc[e],i=$e({onClick:n});return vr(Co,{ref:i,children:[dt(Jn,{backgroundColor:u.border,color:r.color,wrap:"truncate",children:` ${r.glyph} `}),dt(Jn,{backgroundColor:u.border,color:u.foreground,wrap:"truncate",children:`${Te(t,o-wf-kf)} `})]})}function qe({title:e,detail:t,confirmLabel:o,onConfirm:n,onCancel:r,width:i,busy:s,error:a}){return vr(Co,{flexDirection:"column",children:[dt(fe,{tone:"warn",title:e,detail:t,width:i}),a!=null&&dt(Co,{marginTop:1,children:dt(vn,{message:a.message,hint:a.hint,width:i})}),dt(Co,{marginTop:1,children:typeof s=="string"?dt(Qe,{label:s}):dt(le,{items:[{value:"cancel",label:"\u53D6\u6D88"},{value:"confirm",label:o,labelTone:"danger"}],width:i,onSelect:c=>c==="confirm"?n():r()})})]})}import{Box as vf,Text as Rr,useInput as Rf}from"ink";import{useRef as _f,useState as Cf}from"react";import{jsx as _r,jsxs as Ef}from"react/jsx-runtime";function rn({lines:e,height:t,isActive:o=!0,pinBottom:n=!1}){let r=e.length>t,i=r?Math.max(1,t-1):t,s=Math.max(0,e.length-i),[a,c]=Cf(n?s:0),l=_f(s);if(s!==l.current){let p=a>=l.current;l.current=s;let S=n&&p?s:Math.min(a,s);S!==a&&c(S)}let d=p=>c(S=>Math.min(Math.max(0,S+p),s));Rf((p,S)=>{S.upArrow?d(-1):S.downArrow?d(1):S.pageUp?d(-i):S.pageDown&&d(i)},{isActive:o&&r}),z(p=>{p==="k"?d(-1):p==="j"&&d(1)},o&&r);let f=$e({isActive:o&&r,onWheel:d}),m=e.slice(a,a+i);return Ef(vf,{ref:f,flexDirection:"column",children:[m.map((p,S)=>_r(Rr,{wrap:"truncate",children:p.spans.length===0?" ":p.spans.map((g,h)=>_r(Rr,{color:g.color??u.foreground,bold:g.bold===!0,children:g.text},h))},a+S)),Array.from({length:Math.max(0,i-m.length)},(p,S)=>_r(Rr,{children:" "},S)),r&&_r(Rr,{color:u.faintForeground,wrap:"truncate",children:`${a+1}-${Math.min(a+i,e.length)} / ${e.length}`})]})}function We(e){return e.tone==="neutral"?void 0:e.tone}function Wt(e){let t=We(e);return t===void 0?e.label:{text:e.label,tone:t}}import{useCallback as os,useRef as Pf,useState as Wc}from"react";function ge(){let e=D(),[t,o]=Wc(null),[n,r]=Wc(null),i=Pf(0),s=os(()=>{i.current+=1,o(null),r(null)},[]),a=os((l,d)=>{r({message:l,hint:d})},[]),c=os((l,d,f={})=>{let m=i.current+=1;o(l),r(null),d().then(p=>{i.current===m&&(o(null),f.onSuccess?.(p))}).catch(p=>{if(i.current!==m)return;o(null);let S={message:je(p),hint:p instanceof U?p.hint:void 0};f.failToast===!0?e.toast("fail",S.message):r(S)})},[e]);return{busy:t,error:n,reset:s,fail:a,run:c}}import{Lexer as Af}from"marked";import Cr from"string-width";var Nf={spans:[]},rs=e=>e===void 0||e.spans.every(t=>t.text.trim()==="");function zc(e){let t=[];for(let o of e){let n=t[t.length-1];n!==void 0&&n.color===o.color&&n.bold===o.bold?n.text+=o.ch:t.push({text:o.ch,color:o.color,bold:o.bold})}return{spans:t}}function It(e,t,o=0){let n=()=>Array.from({length:o},()=>({ch:" "})),r=[],i=[],s=0,a=!0,c=()=>{r.push(zc(i)),a=!1,i=n(),s=o};for(let l of e)for(let d of l.text){if(d===`
5
5
  `){c();continue}let f=Cr(d);if(s+f>t&&i.length>(a?0:o)){let m=a?0:o,p=-1;for(let S=i.length-1;S>m;S-=1)if(i[S]?.ch===" "){p=S;break}if(p>m){let S=i.slice(p+1);i=i.slice(0,p),c(),i=[...i,...S],s=i.reduce((g,h)=>g+Cr(h.ch),0)}else c()}i.push({ch:d,color:l.color,bold:l.bold}),s+=f}return(i.length>0||r.length===0)&&r.push(zc(i)),r}function Lt(e,t){if(e===void 0)return[];let o=[];for(let n of e)switch(n.type){case"text":o.push(..."tokens"in n&&n.tokens!==void 0?Lt(n.tokens,t):[{text:n.text,...t}]);break;case"strong":o.push(...Lt(n.tokens,{...t,bold:!0}));break;case"em":o.push(...Lt(n.tokens,t));break;case"del":o.push(...Lt(n.tokens,{...t,color:u.faintForeground}));break;case"codespan":o.push({text:n.text,color:u.accent,bold:t.bold});break;case"link":{let r=Lt(n.tokens,{...t,color:u.accent});o.push(...r);let i=r.map(s=>s.text).join("");n.href!==i&&o.push({text:`\uFF08${n.href}\uFF09`,color:u.faintForeground});break}case"image":o.push({text:n.text===""?"\u56FE\u7247":n.text,...t}),o.push({text:`\uFF08${n.href}\uFF09`,color:u.faintForeground});break;case"br":o.push({text:`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codeflow-ai/cli",
3
- "version": "1.14.0",
3
+ "version": "1.15.1",
4
4
  "type": "module",
5
5
  "description": "CodeFlow 命令行客户端:一键配置 AI 客户端",
6
6
  "keywords": [