@codeflow-ai/cli 1.11.0 → 1.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +1 -1
- 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 Js={name:"@codeflow-ai/cli",version:"1.11.
|
|
2
|
+
import{once as Yb}from"events";import{createInterface as Qb}from"readline/promises";import{parseArgs as Xb}from"util";var Js={name:"@codeflow-ai/cli",version:"1.11.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 lt="codeflow",ut=Js.version,Ys="https://codeflow.asia",In="@codeflow-ai/cli",ro=0,Ln=1,mi=2,cn=3,Qs=4;import{randomBytes as Ed}from"crypto";import{mkdirSync as ta,readFileSync as Pd,rmSync as na,statSync as Ad,writeFileSync as Nd}from"fs";import{join as oa}from"path";import{setTimeout as Id}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??Ln,this.hint=o.hint}};function Ue(e){return e instanceof Error?e.message:String(e)}import{chmodSync as Td,existsSync as wd,mkdirSync as kd,readFileSync as vd,writeFileSync as Rd}from"fs";import{dirname as _d}from"path";function Mn(e){return wd(e)?vd(e,"utf8"):null}function di(e,t,o){kd(_d(e),{recursive:!0,mode:448});try{Rd(e,t,{mode:o}),Td(e,o)}catch(n){throw new U(`\u5199\u5165 ${e} \u5931\u8D25\uFF1A${Ue(n)}`,{cause:n})}}function Ho(e){let t=Mn(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 Wo(e,t,o){di(e,`${JSON.stringify(t,null,2)}
|
|
3
3
|
`,o)}function zo(e,t,o,n){let r=null,i=()=>{if(r)return r;let s=t(),a=Mn(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),Wo(t(),a,384),r=a,a}}}import{homedir as Cd}from"os";import{join as On}from"path";function Ft(){let e=process.env.XDG_CONFIG_HOME;if(e)return On(e,"codeflow");if(process.platform==="win32"){let t=process.env.APPDATA;if(t)return On(t,"codeflow")}return On(Cd(),".config","codeflow")}var Xs=()=>On(Ft(),"config.json"),Zs=()=>On(Ft(),"credentials.json"),ea=()=>On(Ft(),"refresh.lock");var Ld=xt.object({refreshCookie:xt.string(),accessToken:xt.string(),accessExpiresAt:xt.number(),username:xt.string(),email:xt.string(),site:xt.string()}),Md=xt.object({site:xt.string(),cookie:xt.string()}),Od=xt.object({session:Ld.nullable().default(null),device:Md.nullable().default(null)}),pi=zo(Od,Zs,"\u672C\u5730\u51ED\u636E","\u91CD\u65B0\u767B\u5F55"),Tt=pi.load,ra=pi.reload,fi=pi.update;function ia(){let{session:e}=Tt();if(!e)throw new U("\u5C1A\u672A\u767B\u5F55\uFF0C\u8BF7\u5148\u767B\u5F55\u8D26\u53F7",{exitCode:cn});return e}var Dd=6e4,$d=75e3,Bd=120;function Fd(e,t){try{ta(e)}catch{try{Date.now()-Ad(e).mtimeMs>Dd&&na(e,{recursive:!0,force:!0})}catch{}return!1}return Nd(oa(e,"owner"),t),!0}function Ud(e,t){let o;try{o=Pd(oa(e,"owner"),"utf8")}catch{return}o===t&&na(e,{recursive:!0,force:!0})}async function sa(e){let t=ea(),o=Ed(16).toString("hex");ta(Ft(),{recursive:!0,mode:448});let n=Date.now()+$d;for(;!Fd(t,o);){if(Date.now()>n)throw new U(`\u7B49\u5F85\u5237\u65B0\u9501\u8D85\u65F6\uFF0C\u82E5\u786E\u8BA4\u6CA1\u6709\u5176\u4ED6 ${lt} \u5728\u8FD0\u884C\uFF0C\u8BF7\u5220\u9664 ${t}`);await Id(Bd)}try{return await e()}finally{Ud(t,o)}}function jd(){let e=process.env.CODEFLOW_SITE;if(e)return e;let t=Tt().session;return t?t.site:Ys}function aa(){return{site:jd()}}function io(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 Pp,rmSync as Ap}from"fs";import{z as Le}from"zod";var qd=["active","disabled"],My=Le.enum(qd),Hd=["openai","anthropic"],Oy=Le.enum(Hd),Wd=["openai-chat","openai-responses","anthropic-messages"],ca=Le.enum(Wd);var zd=["enabled","auto_disabled","disabled"],Dy=Le.enum(zd),so=["pending","paid","refund_requested","partially_refunded","refunded","failed","expired"],la=Le.enum(so),Gd=["recharge","subscription"],$y=Le.enum(Gd),Vd=["requested","pending","succeeded","failed","rejected","canceled"],ua=Le.enum(Vd),gi=["pending","issued","rejected"],ma=Le.enum(gi),Kd=["special","general"],hi=Le.enum(Kd),Jd=["info","success","warning","error"],da=Le.enum(Jd),Yd=["terms","privacy"],By=Le.enum(Yd),bi=["recharge","reserve","consume","reserve_refund","refund","refund_release","reward","admin_adjust"],pa=Le.enum(bi),Qd=["usage_log","order","invitation","admin"],fa=Le.enum(Qd),yi=["first_inviter","first_invitee","subsequent_inviter"],ga=Le.enum(yi),Si=["success","error","canceled","anomaly"],ha=Le.enum(Si),xi=["open","replied","closed"],ba=Le.enum(xi),Ti=["billing","technical","account","other"],ya=Le.enum(Ti),wi=["low","normal","high"],Sa=Le.enum(wi),Xd=["user","admin"],xa=Le.enum(Xd);import{z as Dn}from"zod";var Zd=["internal_error","validation_error","not_found","conflict","model_in_use","model_in_plan","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"],ep=Dn.enum(Zd),Ta=Dn.object({error:Dn.object({code:ep,message:Dn.string(),details:Dn.unknown().optional(),requestId:Dn.string().optional()})});var wa={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",model_in_plan:"\u8BE5\u6A21\u578B\u4ECD\u88AB\u8BA2\u9605\u5957\u9910\u9650\u5B9A\u4F7F\u7528\uFF0C\u8BF7\u5148\u5728\u5957\u9910\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\u5DF2\u65E0\u53EF\u9000\u7684\u5269\u4F59\u65F6\u957F",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 le}from"zod";var tp=le.string().trim().min(1),ki=tp.pipe(le.url()),np=le.object({name:le.string().trim().min(1).max(64),description:le.string().trim().min(1).max(200),url:ki}),ka=le.array(np),op=["string","number","boolean","secret","markdown","money","api-lines","origins"],rp=le.enum(op),ip=le.object({key:le.string(),type:rp,label:le.string(),description:le.string().optional(),value:le.unknown().optional(),secret:le.boolean().default(!1),required:le.boolean().default(!1),min:le.number().optional(),max:le.number().optional(),step:le.number().optional(),unit:le.string().optional(),placeholder:le.string().optional()}),Wy=le.object({key:le.string(),label:le.string(),description:le.string().optional(),fields:le.array(ip)}),zy=le.object({values:le.record(le.string(),le.unknown()).refine(e=>Object.keys(e).length>0,{message:"at least one value required"})}),Gy=le.object({fields:le.record(le.string(),le.string())});function va(e){return`codeflow-cli/${e.cliVersion} (${e.platform} ${e.release}; ${e.arch}) node/${e.nodeVersion}`}function Go(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 mt}from"zod";var vi=1e8;var Yy=mt.object({id:mt.coerce.number().int().positive()}),Qy=mt.object({page:mt.coerce.number().int().min(1).default(1),pageSize:mt.coerce.number().int().min(1).max(100).default(20)});function ao(e){return mt.object({items:mt.array(e),total:mt.number().int().nonnegative(),page:mt.number().int().positive(),pageSize:mt.number().int().positive()})}var ye=mt.object({ok:mt.literal(!0)});import{z as W}from"zod";var ln=W.email().max(254).toLowerCase(),ot=8,co=W.string().min(ot).max(128),lo=W.string().min(1).max(128),un=32,Ri=W.string().trim().min(1).max(un),_i=W.string().trim().min(1).max(254),sp=["register","reset_password"],eS=W.object({email:ln,purpose:W.enum(sp)}),tS=W.object({username:Ri,email:ln,password:co,code:W.string().min(4).max(8),inviteCode:W.string().trim().min(1).max(32).optional()}),nS=W.object({account:_i,password:lo}),oS=W.object({email:ln,code:W.string().min(4).max(8),password:co}),rS=W.object({oldPassword:lo,newPassword:co}),iS=W.object({email:ln}),sS=W.object({email:ln,code:W.string().min(4).max(8),password:lo}),Ra=W.object({username:W.string(),email:W.string()}),$n=W.object({accessToken:W.string(),user:Ra}),_a=W.discriminatedUnion("status",[$n.extend({status:W.literal("ok")}),W.object({status:W.literal("totp_required"),ticket:W.string()})]),Ca=W.object({user:Ra}),ap=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()}),cp=W.object({id:W.number().int(),ip:W.string().nullable(),userAgent:W.string().nullable(),device:ap.nullable(),loginAt:W.string(),lastActiveAt:W.string(),expiresAt:W.string(),current:W.boolean()}),Ea=W.object({sessions:W.array(cp)});import{z as ue}from"zod";var Bn=ue.string().trim().length(6),lp=ue.string().trim().min(10).max(20),Vo=ue.string().trim().min(1).max(64),Ko=ue.record(ue.string(),ue.unknown()),lS=ue.object({ticket:ue.string().min(1),code:Bn}),uS=ue.object({ticket:ue.string().min(1),code:lp}),mS=ue.object({code:Bn.optional()}),dS=ue.object({code:Bn}),Pa=ue.object({secret:ue.string(),otpauthUri:ue.string()}),Ci=ue.object({recoveryCodes:ue.array(ue.string())}),up=ue.object({id:ue.number().int(),name:ue.string(),createdAt:ue.string(),lastUsedAt:ue.string().nullable()}),Aa=ue.object({totp:ue.object({enabled:ue.boolean(),enabledAt:ue.string().nullable(),recoveryCodesRemaining:ue.number().int()}),passkeys:ue.array(up)}),pS=ue.object({name:Vo,response:Ko}),fS=ue.object({name:Vo}),gS=ue.object({response:Ko});import{z as xe}from"zod";var xS=xe.object({account:_i,password:lo}),mp=xe.object({totp:xe.boolean(),passkeys:xe.boolean()}),TS=xe.discriminatedUnion("status",[xe.object({status:xe.literal("totp_required"),ticket:xe.string()}),xe.object({status:xe.literal("setup_required"),ticket:xe.string(),missing:mp})]),wS=xe.object({ticket:xe.string().min(1)}),kS=xe.object({ticket:xe.string().min(1),code:Bn}),vS=xe.object({ticket:xe.string().min(1),name:Vo,response:Ko}),RS=xe.object({ticket:xe.string().min(1),code:Bn.optional()}),Na=xe.object({username:xe.string(),email:xe.string()}),_S=xe.object({accessToken:xe.string(),admin:Na}),CS=xe.object({admin:Na});import{z as Ei}from"zod";var IS=Ei.object({siteName:Ei.string().trim().min(1).max(64),siteDescription:Ei.string().trim().max(200).optional(),siteOrigin:ki,username:Ri,email:ln,password:co});import{z as Ee}from"zod";var Ia={orderNo:Ee.string(),amountCny:Ee.number().int(),status:la,credited:Ee.boolean(),refundedAmountCny:Ee.number().int(),succeededRefundCny:Ee.number().int(),pendingRefundCny:Ee.number().int(),createdAt:Ee.string()},uo=Ee.object({...Ia,quota:Ee.number(),refundedQuota:Ee.number()}),mo=Ee.object({...Ia,planName:Ee.string(),renewal:Ee.boolean(),grantedDurationDays:Ee.number().int()}),La=Ee.object({id:Ee.number().int(),amountCny:Ee.number().int(),status:ua,refundTradeNo:Ee.string().nullable(),reason:Ee.string().nullable(),rejectReason:Ee.string().nullable(),createdAt:Ee.string()});function Ma(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 Jo=wt.object({id:wt.number().int(),title:wt.string(),category:ya,priority:Sa,status:ba,createdAt:wt.string(),updatedAt:wt.string()}),Pi=wt.object({id:wt.number().int(),authorKind:xa,content:wt.string(),createdAt:wt.string()}),Oa=wt.object({ticket:Jo,messages:wt.array(Pi)});import{z as Fn}from"zod";var Da=Fn.object({id:Fn.number().int(),title:Fn.string(),content:Fn.string(),level:da,publishedAt:Fn.string(),read:Fn.boolean()});var $a="Asia/Shanghai",dp="+08:00";function pp(e){return new Date(new Date(e).getTime()+288e5)}function fp(e=Date.now()){let t=pp(e);return{day:t.toISOString().slice(0,10),hour:t.getUTCHours()}}function Ai(e=Date.now()){return fp(e).day}function Ni(e=Ai()){return new Date(`${e}T00:00:00${dp}`)}function Kt(e,t){let o=new Date(`${e}T00:00:00Z`);return new Date(o.getTime()+t*864e5).toISOString().slice(0,10)}var gp=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium",timeZone:$a}),hp=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeZone:$a});function te(e){return gp.format(new Date(e))}function Ut(e){return hp.format(new Date(e))}var bp=[{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 yp(e){return e>=10?Math.round(e).toLocaleString("en-US"):e>=1?e.toFixed(1):e.toFixed(-Math.floor(Math.log10(e)))}function Sp(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 xp=[...bp.map(e=>({min:0,suffix:t=>`\u7EA6\u4E3A${e.name}\u7684 ${yp(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 ${Sp(e)}`}];function Ba(e){let{tokens:t,scope:o,range:n}=e;if(t<=0)return null;let r=xp.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 Jt(e){return t=>{let o=e[t];if(!o)throw new Error(`unknown label value: ${t}`);return o}}var Yt=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"}}),zS=Jt({recharge:"\u5145\u503C",subscription:"\u8BA2\u9605"}),Yo=jt({pending:{label:"\u5F85\u5904\u7406",tone:"warning"},issued:{label:"\u5DF2\u5F00\u5177",tone:"success"},rejected:{label:"\u5DF2\u9A73\u56DE",tone:"danger"}}),GS=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 VS=jt({active:{label:"\u6B63\u5E38",tone:"success"},disabled:{label:"\u7981\u7528",tone:"danger"}}),Ii=Jt({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"}),Fa=Jt({usage_log:"\u7528\u91CF",order:"\u8BA2\u5355",invitation:"\u9080\u8BF7",admin:"\u7BA1\u7406\u5458"}),Ua=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"}}),Qo=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"}}),ja=Jt({"openai-chat":"OpenAI Chat","openai-responses":"OpenAI Responses","anthropic-messages":"Anthropic Messages"}),po=Jt({special:"\u589E\u503C\u7A0E\u4E13\u7528\u53D1\u7968",general:"\u589E\u503C\u7A0E\u666E\u901A\u53D1\u7968"}),mn=Jt({special:"\u4E13\u7968",general:"\u666E\u7968"}),Xo=Jt({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"}),fo=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"}}),Li=jt({open:{label:"\u5F85\u5904\u7406",tone:"warning"},replied:{label:"\u5DF2\u56DE\u590D",tone:"success"},closed:{label:"\u5DF2\u5173\u95ED",tone:"neutral"}}),Zo=Jt({billing:"\u8BA1\u8D39",technical:"\u6280\u672F",account:"\u8D26\u53F7",other:"\u5176\u4ED6"}),Mi=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 Oi(e){return Math.round(e*100)}function qa(e){return e/100}function Ha(e,t,o){let n=e/t;return`${n<0?"-":""}$${Math.abs(n).toLocaleString("en-US",{minimumFractionDigits:o,maximumFractionDigits:o})}`}function me(e,t){return Ha(e,t,2)}function Un(e,t){return Ha(e,t,6)}var er=10080,tr=1440;function Wa(e){if(e%er===0){let t=e/er;return t===1?"\u6BCF\u5468\u9650\u989D":`${t} \u5468\u9650\u989D`}if(e%tr===0){let t=e/tr;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 Tp(e){if(e%er===0){let t=e/er;return t===1?"\u6BCF\u5468":`\u6BCF ${t} \u5468`}if(e%tr===0){let t=e/tr;return t===1?"\u6BCF\u5929":`\u6BCF ${t} \u5929`}return e%60===0?`\u6BCF ${e/60} \u5C0F\u65F6`:`\u6BCF ${e} \u5206\u949F`}function za(e,t){return e.windows.length===0?["\u8BA2\u9605\u671F\u5185\u4E0D\u9650\u91CF"]:e.windows.map(o=>`${Tp(o.durationMinutes)} ${me(o.quota,t)}`)}function Di(e){return e.quota<=0?100:Math.min(100,Math.floor(e.used/e.quota*100))}function $i(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 nr(e){return e>0?`${e} \u4E2A\u6A21\u578B`:"\u5168\u90E8\u6A21\u578B"}function Me(e){return e.toLocaleString("en-US")}function Qt(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`:Me(e)}function dn(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 pn(e){return(e/1e3).toFixed(2)}function or(e,t){return`${e}******${t}`}var Bi={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,\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,\u4E0D\u591F\u7528","\u8C03\u7528\u7ECF\u5E38\u62A5\u9519\u6216\u8D85\u65F6","\u4F7F\u7528\u9891\u7387\u4F4E,\u4E0D\u5212\u7B97"]},Ga={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\u8BA2\u9605\u5269\u4F59\u65F6\u957F\u7ACB\u5373\u5931\u6548\uFF1B\u5BA1\u6838\u901A\u8FC7\u540E\u6309\u5269\u4F59\u65F6\u957F\u6BD4\u4F8B\u539F\u8DEF\u9000\u6B3E\uFF0C\u9A73\u56DE\u6216\u64A4\u9500\u540E\u81EA\u52A8\u6062\u590D"};import{release as wp}from"os";var kp=3e4,vp=va({cliVersion:ut,platform:process.platform,release:wp(),arch:process.arch,nodeVersion:process.versions.node});async function dt(e,t={}){let o=new Headers(t.headers);o.set("user-agent",vp);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??kp),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:Qs,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 Rp(e,t){let o=Ta.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"?cn:void 0;return new U(wa[n]??r,i?{exitCode:i}:{})}function At(e){if(!e.ok)throw Rp(e.status,e.data)}var Ja="cf_refresh",Ya="cf_device",Va=6e4;function Ka(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 go(e,t){return{refresh:Ka(t,Ja)??e.refresh,device:Ka(t,Ya)??e.device}}function rr(e){let t=[];return e.refresh&&t.push(`${Ja}=${e.refresh}`),e.device&&t.push(`${Ya}=${e.device}`),t.length>0?{cookie:t.join("; ")}:{}}function _p(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 ho(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:_p(o.accessToken),username:o.user.username,email:o.user.email,site:e};return fi(r=>{r.session=n,t.device&&(r.device={site:e,cookie:t.device})}),n}function Fi(e){let{device:t}=Tt();return t!==null&&t.site===e?t.cookie:null}async function Qa(e,t,o){let n={refresh:null,device:Fi(e)},r=await dt(`${e}/api/auth/login`,{json:{account:t,password:o},headers:rr(n)});At(r);let i=_a.parse(r.data),s=go(n,r.headers);return i.status==="totp_required"?{status:"totp_required",ticket:i.ticket,jar:s}:{status:"ok",session:ho(e,s,i)}}async function Xa(e,t,o,n,r){let s=await dt(`${e}/api/auth/${r==="totp"?"login/totp":"login/recovery-code"}`,{json:{ticket:o,code:n},headers:rr(t)});At(s);let a=$n.parse(s.data);return ho(e,go(t,s.headers),a)}function Za(){fi(e=>{e.session=null})}async function Cp(e){let t={refresh:e.refreshCookie,device:Fi(e.site)},o=await dt(`${e.site}/api/auth/refresh`,{method:"POST",headers:rr(t)});if(o.status===401||o.status===403)throw Za(),new U("\u767B\u5F55\u5DF2\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55",{exitCode:cn});At(o);let n=$n.parse(o.data);return ho(e.site,go(t,o.headers),n)}async function Ui(e=!1){let t=ia();return!e&&Date.now()<t.accessExpiresAt-Va?t:sa(async()=>{let o=ra().session;if(!o)throw new U("\u5C1A\u672A\u767B\u5F55\uFF0C\u8BF7\u5148\u767B\u5F55\u8D26\u53F7",{exitCode:cn});return(o.refreshCookie!==t.refreshCookie||o.accessToken!==t.accessToken)&&Date.now()<o.accessExpiresAt-Va?o:Cp(o)})}async function ir(){let e=Tt().session;if(!e)return;let t=await dt(`${e.site}/api/auth/logout`,{method:"POST",headers:rr({refresh:e.refreshCookie,device:Fi(e.site)})});Za(),At(t)}import{spawn as Ep}from"child_process";function bo(e,t={}){return new Promise((o,n)=>{let r=Ep("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 ec(e){let t=[],o=async(n,r)=>{try{await r(),e.done(n)}catch(i){t.push(`${n}\uFF1A${Ue(i)}`),e.failed(n)}};return await o("\u9000\u51FA\u767B\u5F55",()=>ir()),await o("\u5220\u9664\u672C\u5730\u6587\u4EF6",()=>{let n=Ft();Pp(n)&&Ap(n,{recursive:!0,force:!0})}),await o("\u5378\u8F7D\u672C\u7A0B\u5E8F",async()=>{await bo(["uninstall","-g",In])}),t}import{z as yo}from"zod";var Np=yo.object({line:yo.object({name:yo.string(),url:yo.string()}).nullable().default(null),lastUpdateCheckAt:yo.number().nullable().default(null)}),tc=zo(Np,Xs,"\u672C\u5730\u914D\u7F6E","\u91CD\u65B0\u8FD0\u884C"),fn=tc.load,sr=tc.update;var Ip=1440*60*1e3;async function nc(){let e=(await bo(["view",In,"version"])).trim();if(e==="")throw new U(`npm \u6CA1\u6709\u62A5\u51FA ${In} \u7684\u7248\u672C`);return e}async function oc(e,t){return await bo(["install","-g",`${In}@${e}`],{background:t}),e}async function rc(){let e=await nc();return e===ut?null:await oc(e,!1)}function Lp(){let e=Date.now(),t=fn().lastUpdateCheckAt;return t!==null&&e-t<Ip?!1:(sr(o=>{o.lastUpdateCheckAt=e}),!0)}async function ic(){if(!Lp())return null;let e;try{e=await nc()}catch{return null}return e===ut?null:await oc(e,!0)}import{Box as $b,render as Bb,useInput as Fb}from"ink";import{useEffect as Ks,useRef as Ub}from"react";import{z as Mp}from"zod";async function kt(e,t,o={}){let n=await dt(t,o);return At(n),e.parse(n.data)}async function O(e,t,o={}){let n=await Ui(),r=s=>dt(`${n.site}/api${t}`,{...o,headers:{...o.headers,authorization:`Bearer ${s}`}}),i=await r(n.accessToken);if(i.status===401){let s=await Ui(!0);i=await r(s.accessToken)}return At(i),e.parse(i.data)}function jn(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 ar=()=>O(Mp.array(Da),"/announcements"),sc=e=>O(ye,`/announcements/${e}/read`,{method:"POST"}).then(()=>{}),ac=()=>O(ye,"/announcements/read-all",{method:"POST"}).then(()=>{});import{Box as cc,useWindowSize as Op}from"ink";import{Children as Dp}from"react";import{jsx as lc}from"react/jsx-runtime";var $p=1,ji=1,J=1;function j(){let{columns:e,rows:t}=Op();return{width:Math.max(1,e-$p*2),columns:e,rows:t}}function uc({height:e,children:t}){return lc(cc,{flexDirection:"column",height:e,justifyContent:"space-between",children:Dp.toArray(t).map((o,n)=>lc(cc,{flexDirection:"column",flexShrink:0,children:o},n))})}import{useInput as dc}from"ink";import{createContext as Wi,useCallback as cr,useContext as Bp,useEffect as zi,useMemo as qi,useRef as So,useState as mc}from"react";import{jsx as Hi}from"react/jsx-runtime";var lr=Wi(null),Gi=Wi(null),qn={screen:0,panel:10,input:20},Vi=Wi(null);function pc({children:e}){let[t,o]=mc(!1),[n,r]=mc(!1),i=So(0),s=So(0),a=So([]),c=So(0),l=cr(()=>(i.current+=1,o(!0),()=>{i.current-=1,i.current===0&&o(!1)}),[]),d=cr(()=>(s.current+=1,r(!0),()=>{s.current-=1,s.current===0&&r(!1)}),[]),g=cr(h=>{let b={...h,seq:c.current+=1};return a.current.push(b),()=>{a.current=a.current.filter(x=>x!==b)}},[]),u=cr(()=>{a.current.reduce((b,x)=>b===null||x.layer>b.layer||x.layer===b.layer&&x.seq>b.seq?x:b,null)?.handler()},[]);dc((h,b)=>{b.escape&&u()});let p=qi(()=>({active:t,acquire:l}),[t,l]),S=qi(()=>({locked:n,acquire:d}),[n,d]),f=qi(()=>({push:g,fire:u}),[g,u]);return Hi(lr.Provider,{value:p,children:Hi(Gi.Provider,{value:S,children:Hi(Vi.Provider,{value:f,children:e})})})}function gn(e){let t=Bp(e);if(!t)throw new Error("\u952E\u76D8\u94A9\u5B50\u5FC5\u987B\u5728 KeyboardProvider \u5185\u4F7F\u7528");return t}function ur(e){let{acquire:t}=gn(lr);zi(()=>{if(e)return t()},[e,t])}function fc(e){let{acquire:t}=gn(Gi);zi(()=>{if(e)return t()},[e,t])}function mr(){return gn(Gi).locked}function dr(){return gn(lr).active}function z(e,t=!0){let o=gn(lr).active;dc(e,{isActive:t&&!o})}function gc(){return gn(Vi).fire}function Xt(e,{isActive:t=!0,layer:o=qn.screen}={}){let{push:n}=gn(Vi),r=So(e);r.current=e,zi(()=>{if(t)return n({handler:()=>r.current(),layer:o})},[t,o,n])}import{measureElement as Fp}from"ink";import{PassThrough as Up}from"stream";import{createContext as jp,useCallback as qp,useContext as Hp,useEffect as Sc,useRef as pr}from"react";import{jsx as Zp}from"react/jsx-runtime";var Wp="\x1B[?1000h\x1B[?1003h\x1B[?1006h",zp="\x1B[?1006l\x1B[?1003l\x1B[?1000l",Gp=27,Vp=91,Kp=60,hc=77,bc=109,yc=20,Jp=64,Yp=32,Qp=20;function Xp(e){let t=[],o=[],n=0;for(;n<e.length;){let r=e[n];if(r===void 0)break;if(r!==Gp){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!==Vp){o.push(r),n+=1;continue}if(s===hc){if(n+6>e.length)break;n+=6;continue}if(s!==Kp){o.push(r),n+=1;continue}let a=n+3,c;for(;a<e.length&&a-n<yc;){let p=e[a];if(p===hc||p===bc){c=p;break}a+=1}if(c===void 0){if(a-n<yc)break;o.push(r),n+=1;continue}let l=e.subarray(n+3,a).toString("latin1").split(";");if(n=a+1,c===bc||l.length!==3)continue;let d=Number(l[0]),g=Number(l[1]),u=Number(l[2]);!Number.isFinite(d)||!Number.isFinite(g)||!Number.isFinite(u)||t.push((d&Jp)!==0?{row:u,column:g,kind:"wheel",delta:(d&1)===0?-1:1}:{row:u,column:g,kind:(d&Yp)!==0?"move":"press"})}return{events:t,clean:Buffer.from(o),pending:e.subarray(n)}}function xc(e,t){let o=new Set,n=new Up,r=Buffer.alloc(0),i=null,s=()=>{i=null,r.length!==0&&(n.write(r),r=Buffer.alloc(0))},a=u=>{i!==null&&clearTimeout(i),i=null;let p=Xp(Buffer.concat([r,u]));r=p.pending,p.clean.length>0&&n.write(p.clean);for(let S of p.events)for(let f of o)f(S);r.length>0&&(i=setTimeout(s,Qp))},c=()=>{t.write(zp)},l={SIGHUP:1,SIGINT:2,SIGTERM:15},d=u=>{process.exit(128+(l[u]??0))};e.on("data",a),process.once("exit",c);for(let u of Object.keys(l))process.on(u,d);t.write(Wp);let g=n;return Object.assign(g,{isTTY:!0,setRawMode(u){return e.setRawMode(u),g},ref(){return e.ref(),g},unref(){return e.unref(),g}}),{stdin:g,subscribe(u){return o.add(u),()=>{o.delete(u)}},dispose(){c(),i!==null&&clearTimeout(i),process.off("exit",c);for(let u of Object.keys(l))process.off(u,d);e.off("data",a),o.clear()}}}var Tc=jp(null);function wc({subscribe:e,children:t}){let o=pr(new Set).current,n=pr(null),r=qp(i=>(o.add(i),()=>{o.delete(i)}),[o]);return Sc(()=>e(i=>{let s=i.row-1,a=i.column-1,c=null;for(let d of o){let g=d.node.current;if(g===null||d.handlers.current.isActive===!1)continue;let u=Fp(g);if(s<u.y||s>=u.y+u.height||a<u.x||a>=u.x+u.width)continue;let p=u.width*u.height;(c===null||p<c.area)&&(c={region:d,top:u.y,left:u.x,area:p})}if(i.kind==="move"){let d=c===null?null:c.region;if(n.current!==d){let g=n.current;g!==null&&o.has(g)&&g.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]),Zp(Tc.Provider,{value:r,children:t})}function $e(e){let t=Hp(Tc);if(t===null)throw new Error("useMouseRegion \u5FC5\u987B\u5728 MouseProvider \u5185\u4F7F\u7528");let o=pr(null),n=pr(e);return n.current=e,Sc(()=>t({node:o,handlers:n}),[t]),o}import{useApp as ef}from"ink";import{createContext as tf,useCallback as hn,useContext as nf,useEffect as Ki,useRef as gr,useState as To}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"}],kc="usage",xo=e=>Ye.findIndex(t=>t.id===e),fr=e=>xo(e)>=0;import{jsx as rf}from"react/jsx-runtime";var of=3500,Rc=tf(null),_c=e=>({id:e,params:void 0}),vc=()=>Tt().session===null?[{id:"home",params:void 0}]:[_c(kc)];function D(){let e=nf(Rc);if(!e)throw new Error("useNav \u5FC5\u987B\u5728 NavProvider \u5185\u4F7F\u7528");return e}function Cc({ctx:e,children:t}){let o=ef(),[n,r]=To(vc),[i,s]=To(0),[a,c]=To([]),l=gr({announcementsChecked:!1,announcementsShown:!1}).current,d=gr(new WeakMap).current,g=hn((E,...M)=>{r(F=>[...F,{id:E,params:M[0]}])},[]),u=hn(()=>{r(E=>E.length>1?E.slice(0,-1):E),s(E=>E+1)},[]),p=hn(E=>{r([_c(E)]),s(M=>M+1)},[]),S=hn(()=>{r(vc()),s(E=>E+1)},[]),f=hn(()=>s(E=>E+1),[]),h=hn((E,M)=>{c(F=>[...F,{tone:E,message:M}])},[]),b=hn(()=>c(E=>E.slice(1)),[]),x=a[0]??null;Ki(()=>{if(x===null)return;let E=setTimeout(b,of);return()=>clearTimeout(E)},[x,b]);let w=n[n.length-1];if(w===void 0)throw new Error("\u5BFC\u822A\u6808\u4E3A\u7A7A");let y=d.get(w);y===void 0&&(y=new Map,d.set(w,y));let v={ctx:e,current:w,depth:n.length,push:g,pop:u,select:p,home:S,reload:f,toast:h,message:x,dismissToast:b,exit:o.exit,revision:i,gate:l,retained:y};return rf(Rc.Provider,{value:v,children:t})}function Ge(e,t){let{retained:o}=D(),[n,r]=To(()=>e!==void 0&&o.has(e)?o.get(e):t());return Ki(()=>{e!==void 0&&o.set(e,n)},[o,e,n]),[n,r]}function Y(e,t){let[o,n]=To({phase:"loading"}),r=gr(t);r.current=t;let i=gr(0);return Ki(()=>{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:Ue(a),hint:a instanceof U?a.hint:void 0})})},e),o}import{Box as Ir,Text as tn,useInput as Df}from"ink";import{useState as tl}from"react";import{Box as Ro,Text as zn}from"ink";import wo from"string-width";var m={background:"#0d0d0d",foreground:"#f3f3f3",mutedForeground:"#949494",faintForeground:"#696969",border:"#393939",accent:"#37be95",success:"#34d399",warning:"#fbbf24",danger:"#f87171"},hr=["#242424","#5a4233","#746533","#70924f","#37be95"],br=["#37be95","#2d9273","#246e58","#1e5443","#193f33"],Be={accent:m.accent,success:m.success,warning:m.warning,danger:m.danger},Ji=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Ec=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 sf=wo(X.ellipsis),af=(e,t)=>e+" ".repeat(Math.max(0,t-wo(e))),cf=(e,t)=>" ".repeat(Math.max(0,t-wo(e)))+e;function Te(e,t){if(t<=0)return"";if(wo(e)<=t)return e;let o=t-sf,n="";for(let r of e){if(wo(n+r)>o)break;n+=r}return n+X.ellipsis}var Pe=(e,t)=>af(Te(e,t),t),Nt=(e,t)=>cf(Te(e,t),t),Oe=e=>e.filter(t=>typeof t=="string"&&t!=="").join(` ${X.bullet} `);import{Text as vt,useInput as lf}from"ink";import{useImperativeHandle as uf,useRef as Pc,useEffect as mf,useState as Nc}from"react";import Yi from"string-width";import{jsx as Zt,jsxs as Qi}from"react/jsx-runtime";var df=e=>e.replace(new RegExp("\\p{Cc}","gu"),"");function Ac(e,t,o){let n=t,r=0;for(;n>0;){let s=Yi(e[n-1]??"");if(r+s>o)break;r+=s,n-=1}let i=t;for(r+=1;i<e.length;){let s=Yi(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 yr({value:e,onChange:t,onSubmit:o,placeholder:n,mask:r=!1,isActive:i=!0,width:s=40,ref:a}){let c=[...e],[l,d]=Nc(c.length),g=Math.min(l,c.length),u=Math.max(8,s),p=Pc(e),S=Pc(g);p.current=e,S.current=g,ur(i);let f=v=>{S.current=v,d(v)},h=(v,E)=>{p.current=v,f(E),t(v)};if(uf(a,()=>({moveToColumn:v=>{let E=[...p.current],M=r?Array.from({length:E.length},()=>"\u2022"):E,T=Ac(M,Math.min(S.current,E.length),u).start,C=0;for(;T<E.length;){let R=Yi(M[T]??"");if(C+R>v)break;C+=R,T+=1}f(T)}})),lf((v,E)=>{let M=[...p.current],F=Math.min(S.current,M.length);if(E.return){o(p.current);return}if(E.tab||E.upArrow||E.downArrow)return;if(E.leftArrow){f(Math.max(0,F-1));return}if(E.rightArrow){f(Math.min(M.length,F+1));return}if(E.home){f(0);return}if(E.end){f(M.length);return}if(E.backspace){if(F===0)return;h([...M.slice(0,F-1),...M.slice(F)].join(""),F-1);return}if(E.delete){if(F>=M.length)return;h([...M.slice(0,F),...M.slice(F+1)].join(""),F);return}if(E.ctrl){if(v==="a")f(0);else if(v==="e")f(M.length);else if(v==="k")h(M.slice(0,F).join(""),F);else if(v==="u")h(M.slice(F).join(""),0);else if(v==="w"){let P=F;for(;P>0&&M[P-1]===" ";)P-=1;for(;P>0&&M[P-1]!==" ";)P-=1;h([...M.slice(0,P),...M.slice(F)].join(""),P)}return}if(E.meta||!v)return;let T=v.search(/[\r\n]/),C=df(T===-1?v:v.slice(0,T)),R=[...M.slice(0,F),C,...M.slice(F)].join("");h(R,F+[...C].length),T!==-1&&o(R)},{isActive:i}),e==="")return Qi(vt,{children:[i&&Zt(vt,{inverse:!0,children:" "}),!i&&n!==void 0&&Zt(vt,{color:m.faintForeground,children:n})]});let b=r?Array.from({length:c.length},()=>"\u2022"):c;if(!i)return Zt(vt,{color:m.foreground,children:b.join("")});let{before:x,at:w,after:y}=Ac(b,g,u);return Qi(vt,{children:[Zt(vt,{color:m.foreground,children:x}),Zt(vt,{inverse:!0,children:w}),Zt(vt,{color:m.foreground,children:y})]})}function Qe({label:e}){let[t,o]=Nc(0);return mf(()=>{let n=setInterval(()=>o(r=>(r+1)%Ji.length),Ec);return()=>clearInterval(n)},[]),Qi(vt,{children:[Zt(vt,{color:m.accent,children:Ji[t]}),Zt(vt,{color:m.mutedForeground,children:` ${e}`})]})}import{Box as Mc,Text as Hn}from"ink";import{useEffect as Dc,useState as ff}from"react";import Oc from"string-width";import{Box as Ic,Text as Sr}from"ink";import pf from"string-width";import{jsx as ko,jsxs as Lc}from"react/jsx-runtime";var ae=2,rt=1,De=1,Rt=rt+De;function vo({title:e,note:t,width:o}){let n=t===void 0?0:pf(t)+2,r=Math.max(0,o-ae-n);return Lc(Sr,{wrap:"truncate",children:[ko(Sr,{color:m.accent,children:`${X.section} `}),ko(Sr,{bold:!0,color:m.foreground,children:Te(e,r)}),t!==void 0&&ko(Sr,{color:m.faintForeground,children:` ${t}`})]})}function oe({title:e,note:t,width:o,gap:n=De,children:r}){return Lc(Ic,{flexDirection:"column",children:[ko(vo,{title:e,note:t,width:o}),ko(Ic,{flexDirection:"column",marginTop:n,paddingLeft:ae,children:r})]})}import{jsx as qt,jsxs as Bc}from"react/jsx-runtime";var Wn=e=>!("heading"in e),gf=e=>e.flatMap(t=>!Wn(t)&&t.heading!==""?[t,{heading:""}]:[t]),$c=2,xr=2,hf=(e,t)=>t===void 0?e:e>t?Math.max(1,t-1):t;function bf(e,t,o,n){let[r,i]=Ge(n,()=>e.findIndex(d=>Wn(d)&&d.disabled!==!0));Dc(()=>{i(d=>d>=e.length?Math.max(0,e.length-1):d)},[e.length]);let s=d=>{i(g=>{let u=e.length;if(u===0)return g;let p=g;for(let S=0;S<u;S+=1){p=(p+d+u)%u;let f=e[p];if(f!==void 0&&Wn(f)&&f.disabled!==!0)return p}return g})},a=d=>{let g=e[d];return g!==void 0&&Wn(g)&&g.disabled!==!0?g:null},c=d=>{a(d)!==null&&i(d)},l=d=>{let g=a(d);g!==null&&(i(d),o(g.value))};return z((d,g)=>{if(g.upArrow||d==="k"){s(-1);return}if(g.downArrow||d==="j"){s(1);return}g.return&&l(r)},t),{index:Math.max(0,r),step:s,pick:l,moveTo:c}}function Xi(e,t){let[o,n]=ff(()=>e>=t?e-t+1:0);return Dc(()=>{n(r=>e<r?e:e>=r+t?e-t+1:r)},[e,t]),o}function yf(e,t){let o=e.filter(Wn),n=Math.max(0,...o.map(s=>Oc(s.label))),r=Math.max(0,...o.map(s=>s.badge===void 0?0:Oc(s.badge))),i=$c+n+(r>0?r+xr:0)+xr;return{label:n,badge:r,hint:Math.max(0,t-i)}}function Sf({item:e,active:t,metrics:o}){let n=e.disabled===!0,r=n?m.faintForeground:e.labelTone!==void 0?Be[e.labelTone]:t?m.accent:m.foreground;return Bc(Hn,{wrap:"truncate",children:[qt(Hn,{color:m.accent,children:t?`${X.cursor} `:" "}),qt(Hn,{color:r,bold:t,children:Pe(e.label,o.label)}),o.badge>0&&qt(Hn,{color:e.badgeTone===void 0?m.faintForeground:Be[e.badgeTone],children:`${" ".repeat(xr)}${Pe(e.badge??"",o.badge)}`}),e.hint!==void 0&&o.hint>0&&qt(Hn,{color:n||!t?m.faintForeground:m.mutedForeground,children:`${" ".repeat(xr)}${Te(e.hint,o.hint)}`})]})}function xf({items:e,cursor:t,metrics:o,window:n,width:r,isActive:i,onPick:s,onHover:a,onScroll:c}){let l=Xi(t,n),d=e.slice(l,l+n),g=p=>p<d.length?l+p:null,u=$e({isActive:i,onWheel:c,onClick:({row:p})=>{let S=g(p);S!==null&&s(S)},onHover:({row:p})=>{let S=g(p);S!==null&&a(S)}});return Bc(Mc,{ref:u,flexDirection:"column",children:[d.map((p,S)=>{let f=l+S;return Wn(p)?qt(Sf,{item:p,active:f===t&&i,metrics:o},f):p.heading===""?qt(Mc,{height:1},f):qt(vo,{title:p.heading,width:r},f)}),e.length>n&&qt(Hn,{color:m.faintForeground,children:`${" ".repeat($c)}${l+1}-${Math.min(l+n,e.length)} / ${e.length}`})]})}function ce({items:e,onSelect:t,width:o,height:n,isActive:r=!0,retain:i}){let s=gf(e),a=bf(s,r,t,i);return qt(xf,{items:s,cursor:a.index,metrics:yf(s,o),window:hf(s.length,n),width:o,isActive:r,onPick:a.pick,onHover:a.moveTo,onScroll:a.step})}import{jsx as pt,jsxs as Tr}from"react/jsx-runtime";var Fc={ok:{glyph:X.ok,color:m.success},warn:{glyph:X.warn,color:m.warning},fail:{glyph:X.fail,color:m.danger},info:{glyph:X.bullet,color:m.mutedForeground}};function fe({tone:e,title:t,detail:o,width:n}){let r=Fc[e];return Tr(Ro,{flexDirection:"column",children:[Tr(zn,{children:[pt(zn,{color:r.color,children:`${r.glyph} `}),pt(zn,{color:m.foreground,children:Te(t,n-2)})]}),o!==void 0&&pt(zn,{color:m.faintForeground,children:` ${Te(o,n-2)}`})]})}function bn({message:e,hint:t,width:o}){return pt(fe,{tone:"fail",title:e,detail:t,width:o})}var Tf=2,wf=2;function Uc({tone:e,message:t,width:o,onDismiss:n}){let r=Fc[e],i=$e({onClick:n});return Tr(Ro,{ref:i,children:[pt(zn,{backgroundColor:m.border,color:r.color,wrap:"truncate",children:` ${r.glyph} `}),pt(zn,{backgroundColor:m.border,color:m.foreground,wrap:"truncate",children:`${Te(t,o-Tf-wf)} `})]})}function je({title:e,detail:t,confirmLabel:o,onConfirm:n,onCancel:r,width:i,busy:s,error:a}){return Tr(Ro,{flexDirection:"column",children:[pt(fe,{tone:"warn",title:e,detail:t,width:i}),a!=null&&pt(Ro,{marginTop:1,children:pt(bn,{message:a.message,hint:a.hint,width:i})}),pt(Ro,{marginTop:1,children:typeof s=="string"?pt(Qe,{label:s}):pt(ce,{items:[{value:"cancel",label:"\u53D6\u6D88"},{value:"confirm",label:o,labelTone:"danger"}],width:i,onSelect:c=>c==="confirm"?n():r()})})]})}import{Box as kf,Text as wr,useInput as vf}from"ink";import{useRef as Rf,useState as _f}from"react";import{jsx as kr,jsxs as Cf}from"react/jsx-runtime";function en({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]=_f(n?s:0),l=Rf(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));vf((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 g=$e({isActive:o&&r,onWheel:d}),u=e.slice(a,a+i);return Cf(kf,{ref:g,flexDirection:"column",children:[u.map((p,S)=>kr(wr,{wrap:"truncate",children:p.spans.length===0?" ":p.spans.map((f,h)=>kr(wr,{color:f.color??m.foreground,bold:f.bold===!0,children:f.text},h))},a+S)),Array.from({length:Math.max(0,i-u.length)},(p,S)=>kr(wr,{children:" "},S)),r&&kr(wr,{color:m.faintForeground,wrap:"truncate",children:`${a+1}-${Math.min(a+i,e.length)} / ${e.length}`})]})}function He(e){return e.tone==="neutral"?void 0:e.tone}function Ht(e){let t=He(e);return t===void 0?e.label:{text:e.label,tone:t}}import{useCallback as Zi,useRef as Ef,useState as jc}from"react";function ge(){let e=D(),[t,o]=jc(null),[n,r]=jc(null),i=Ef(0),s=Zi(()=>{i.current+=1,o(null),r(null)},[]),a=Zi((l,d)=>{r({message:l,hint:d})},[]),c=Zi((l,d,g={})=>{let u=i.current+=1;o(l),r(null),d().then(p=>{i.current===u&&(o(null),g.onSuccess?.(p))}).catch(p=>{if(i.current!==u)return;o(null);let S={message:Ue(p),hint:p instanceof U?p.hint:void 0};g.failToast===!0?e.toast("fail",S.message):r(S)})},[e]);return{busy:t,error:n,reset:s,fail:a,run:c}}import{Lexer as Pf}from"marked";import vr from"string-width";var Af={spans:[]},es=e=>e===void 0||e.spans.every(t=>t.text.trim()==="");function qc(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(qc(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 g=vr(d);if(s+g>t&&i.length>(a?0:o)){let u=a?0:o,p=-1;for(let S=i.length-1;S>u;S-=1)if(i[S]?.ch===" "){p=S;break}if(p>u){let S=i.slice(p+1);i=i.slice(0,p),c(),i=[...i,...S],s=i.reduce((f,h)=>f+vr(h.ch),0)}else c()}i.push({ch:d,color:l.color,bold:l.bold}),s+=g}return(i.length>0||r.length===0)&&r.push(qc(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:m.faintForeground}));break;case"codespan":o.push({text:n.text,color:m.accent,bold:t.bold});break;case"link":{let r=Lt(n.tokens,{...t,color:m.accent});o.push(...r);let i=r.map(s=>s.text).join("");n.href!==i&&o.push({text:`\uFF08${n.href}\uFF09`,color:m.faintForeground});break}case"image":o.push({text:n.text===""?"\u56FE\u7247":n.text,...t}),o.push({text:`\uFF08${n.href}\uFF09`,color:m.faintForeground});break;case"br":o.push({text:`
|