@qitqode/qitqode-android-arm64 0.1.36 → 0.2.0
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/bundle/{chunk-ja18tvc7.js → chunk-0ne5m1n3.js} +1 -1
- package/bundle/{chunk-bjcb9kt0.js → chunk-0z33en1a.js} +1 -1
- package/bundle/{chunk-g5prcvq2.js → chunk-17pxm5d3.js} +1 -1
- package/bundle/{chunk-xyjehgzm.js → chunk-2pzvcpv4.js} +1 -1
- package/bundle/{chunk-983rqajz.js → chunk-46ztrjw0.js} +2 -2
- package/bundle/chunk-4dtkj9zg.js +2 -0
- package/bundle/chunk-4e9p3e0a.js +2 -0
- package/bundle/{chunk-nr4q9fv7.js → chunk-55wxgsga.js} +1 -1
- package/bundle/{chunk-t8rke5fr.js → chunk-5ke0yqqz.js} +4 -4
- package/bundle/{chunk-364ccew0.js → chunk-5myxjxae.js} +1 -1
- package/bundle/{chunk-vg41rtdy.js → chunk-5q1fz2az.js} +1 -1
- package/bundle/{chunk-q7rt76qw.js → chunk-5sgpjgss.js} +1 -1
- package/bundle/{chunk-pmv8yr8c.js → chunk-6r8pg6ma.js} +1 -1
- package/bundle/{chunk-tabcpx7t.js → chunk-871f8x99.js} +1 -1
- package/bundle/chunk-88emsbaz.js +2 -0
- package/bundle/{chunk-fmxm4kaj.js → chunk-909fp6pm.js} +1 -1
- package/bundle/{chunk-e07dbha4.js → chunk-98effz12.js} +1 -1
- package/bundle/{chunk-eywryd3k.js → chunk-a6z0fhta.js} +1 -1
- package/bundle/{chunk-w1ypf53m.js → chunk-aj3y2e86.js} +1 -1
- package/bundle/{chunk-rph5xswc.js → chunk-akpssv2d.js} +1 -1
- package/bundle/{chunk-1yv5h8k4.js → chunk-aw8af3ky.js} +1 -1
- package/bundle/{chunk-dx7h5r8j.js → chunk-bha3sbsj.js} +1 -1
- package/bundle/chunk-bs61sezq.js +2 -0
- package/bundle/{chunk-rd4x4tsv.js → chunk-ceefd2nj.js} +1 -1
- package/bundle/{chunk-v8ksjgc3.js → chunk-cmdjkx32.js} +1 -1
- package/bundle/{chunk-7dep7g7c.js → chunk-cxtxvt43.js} +1 -1
- package/bundle/{chunk-cx0j6mpq.js → chunk-d9x9kqvy.js} +1 -1
- package/bundle/chunk-de2rfsaf.js +2 -0
- package/bundle/{chunk-8zmreqxx.js → chunk-dncnyzaa.js} +1 -1
- package/bundle/{chunk-3gw6r3hf.js → chunk-dz3s882k.js} +215 -215
- package/bundle/{chunk-n7xgfm5x.js → chunk-eb8nsk7e.js} +1 -1
- package/bundle/{chunk-6sfhbckv.js → chunk-fn8191ps.js} +1 -1
- package/bundle/chunk-fyz7fngd.js +2 -0
- package/bundle/{chunk-d0xs3j5h.js → chunk-g8cfzzrs.js} +1 -1
- package/bundle/{chunk-yjp0btmq.js → chunk-gnt982jr.js} +2 -2
- package/bundle/{chunk-r0ewmh6f.js → chunk-grdfpd57.js} +1 -1
- package/bundle/{chunk-fjm9kstr.js → chunk-gt6tgm42.js} +1 -1
- package/bundle/chunk-hd8q4msp.js +2 -0
- package/bundle/{chunk-p8k48st6.js → chunk-j5kyf7vt.js} +1 -1
- package/bundle/{chunk-e88wd9ex.js → chunk-jfz8wwk9.js} +1 -1
- package/bundle/chunk-js6hqmq7.js +2 -0
- package/bundle/{chunk-rebsz3bj.js → chunk-k70x182t.js} +1 -1
- package/bundle/chunk-k7n1csxv.js +3 -0
- package/bundle/{chunk-brh35yt5.js → chunk-kb6v5hhm.js} +1 -1
- package/bundle/chunk-kmtfdky8.js +4 -0
- package/bundle/{chunk-qpd0gab8.js → chunk-kp8nkm3m.js} +1 -1
- package/bundle/{chunk-htkwc2se.js → chunk-m0xsvzyd.js} +1 -1
- package/bundle/{chunk-f77nxt23.js → chunk-m6zxr0j8.js} +1 -1
- package/bundle/{chunk-t5tfppwv.js → chunk-n38h109k.js} +1 -1
- package/bundle/{chunk-ebkztnpf.js → chunk-n7d9eemn.js} +49 -49
- package/bundle/{chunk-jw16f6t0.js → chunk-nhwhkx62.js} +1 -1
- package/bundle/{chunk-41x11r2s.js → chunk-pnpre7ys.js} +1 -1
- package/bundle/{chunk-5yfzzmv0.js → chunk-pr1ysgr3.js} +1 -1
- package/bundle/{chunk-3bnqw3xp.js → chunk-px8vtbmr.js} +1 -1
- package/bundle/{chunk-132tcp2j.js → chunk-qpzspr9z.js} +1 -1
- package/bundle/{chunk-b4ysd5b4.js → chunk-qq2rcxv2.js} +1 -1
- package/bundle/{chunk-shwjjrj8.js → chunk-qy1a2tpc.js} +1 -1
- package/bundle/{chunk-vcrakhgy.js → chunk-qyjt0qnq.js} +1 -1
- package/bundle/{chunk-mvsrzvc4.js → chunk-r0g5yyhf.js} +1 -1
- package/bundle/{chunk-tqazneg6.js → chunk-rnd5mnsm.js} +1 -1
- package/bundle/{chunk-sy3n0qhc.js → chunk-rtdym35y.js} +5 -5
- package/bundle/{chunk-cjxcnhmq.js → chunk-s2xdf6qh.js} +1 -1
- package/bundle/{chunk-vdpd4akk.js → chunk-sp8ek94w.js} +1 -1
- package/bundle/chunk-sv1s1qxd.js +619 -0
- package/bundle/chunk-sxwqrvmy.js +28 -0
- package/bundle/{chunk-v8dd6tyn.js → chunk-sxy4hyyy.js} +1 -1
- package/bundle/{chunk-bcs2gvmp.js → chunk-syc4b8rt.js} +1 -1
- package/bundle/{chunk-jr2q5295.js → chunk-tcs6wgna.js} +1 -1
- package/bundle/{chunk-xqwvx3qq.js → chunk-twhavv1m.js} +1 -1
- package/bundle/{chunk-w24660y4.js → chunk-tzrbb0e8.js} +1 -1
- package/bundle/chunk-v0yxkq99.js +3 -0
- package/bundle/{chunk-f36ctnbp.js → chunk-v7q3d3n6.js} +1 -1
- package/bundle/{chunk-hbh2034m.js → chunk-vvzbfv2f.js} +1 -1
- package/bundle/{chunk-37dvnent.js → chunk-w8d9srv7.js} +1 -1
- package/bundle/{chunk-mqtqcc10.js → chunk-ws3p9cya.js} +1 -1
- package/bundle/{chunk-jxg15t11.js → chunk-x42w8ewc.js} +1 -1
- package/bundle/chunk-xc9se3c8.js +2 -0
- package/bundle/{chunk-e03tgfpb.js → chunk-xjhezxft.js} +6 -6
- package/bundle/{chunk-pq3qwxa8.js → chunk-xxvqq7kc.js} +1 -1
- package/bundle/{chunk-b0x888w9.js → chunk-ye0mkqb4.js} +1 -1
- package/bundle/{chunk-a42q5mx4.js → chunk-ypk3t1eh.js} +1 -1
- package/bundle/{chunk-et7kz7kx.js → chunk-yzn08nx1.js} +1 -1
- package/bundle/{chunk-rqmvj7f4.js → chunk-z0tfsdb9.js} +1 -1
- package/bundle/{chunk-p8czsxp0.js → chunk-z210dtw1.js} +1 -1
- package/bundle/{chunk-5pkg052s.js → chunk-z7vv0ngm.js} +1 -1
- package/bundle/{chunk-24rw1br0.js → chunk-ztnepaqc.js} +1 -1
- package/bundle/{chunk-r3df289z.js → chunk-zwvwbrsc.js} +1 -1
- package/bundle/index.js +3 -3
- package/bundle/worker.js +1 -1
- package/package.json +1 -1
- package/bundle/chunk-0j6dhrew.js +0 -2
- package/bundle/chunk-4kqdzdv5.js +0 -3
- package/bundle/chunk-7cbj28fp.js +0 -2
- package/bundle/chunk-9yakc5yv.js +0 -28
- package/bundle/chunk-b1qhpxee.js +0 -2
- package/bundle/chunk-d72rty3t.js +0 -2
- package/bundle/chunk-dj951pms.js +0 -2
- package/bundle/chunk-ec7pznsp.js +0 -2
- package/bundle/chunk-gvtjxg0d.js +0 -2
- package/bundle/chunk-j21dnncc.js +0 -4
- package/bundle/chunk-qp9y0g73.js +0 -3
- package/bundle/chunk-t0jjes17.js +0 -2
- package/bundle/chunk-w57j3pgz.js +0 -616
- package/bundle/chunk-yg9c1v8v.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Xo as j,Yo as R,Zo as O,_o as A,ep as y,jp as q,kp as M,mp as C,sp as K}from"./chunk-
|
|
2
|
+
import{Xo as j,Yo as R,Zo as O,_o as A,ep as y,jp as q,kp as M,mp as C,sp as K}from"./chunk-n38h109k.js";import{zt as D}from"./chunk-871f8x99.js";import{qu as m,tu as v}from"./chunk-2pzvcpv4.js";import{Vu as d,Xu as b,_u as I}from"./chunk-vc4e6xc4.js";import{lQ as T,mQ as _}from"./chunk-4sazy0nq.js";import P from"path";function pt(t){let e=t&&typeof t==="object"&&"cause"in t?t.cause??t:t;if(!(e instanceof D.RunFailedError))return{error:e,detail:v(e),missing:!1};let r=e.stderr.toString().split(/\r?\n/).map((o)=>o.trim()).filter(Boolean),n=r.filter((o)=>o.startsWith("error:")).map((o)=>o.replace(/^error:\s*/,""));return{error:e,detail:n[0]??r.at(-1),missing:r.some((o)=>o.includes("No version matching"))}}var $={resolve:(t)=>q(t)},z={readText:(t)=>d.readText(t),write:async(t,e)=>{await d.write(t,e)},exists:(t)=>d.exists(t),files:(t,e)=>K(t,e)},G=z;function V(t){if(typeof t==="string")return t;if(!Array.isArray(t))return;if(typeof t[0]!=="string")return;return t[0]}function H(t){if(!t||typeof t!=="object"||Array.isArray(t))return;let e=t;if(!Array.isArray(e.plugin))return;return e.plugin}function Q(t){if(typeof t==="string"){let e=t.trim();if(e)return e;return}if(!m(t))return;for(let e of["import","default"]){let r=t[e];if(typeof r!=="string")continue;let n=r.trim();if(!n)continue;return n}}function U(t){if(!m(t))return;let e=t.config;if(!m(e))return;return e}function E(t,e){let r=t.exports;if(!m(r))return;let n=r[`./${e}`];if(!Q(n))return;return{opts:U(n)}}function X(t){let e=t.main;if(typeof e!=="string")return!1;return Boolean(e.trim())}function Y(t){let e=typeof t.json.name==="string"&&t.json.name.trim().length>0?t.json.name.trim():P.basename(t.dir),r=[],n=E(t.json,"server");if(n)r.push({kind:"server",opts:n.opts});else if(X(t.json))r.push({kind:"server"});let o=E(t.json,"tui");if(o)r.push({kind:"tui",opts:o.opts});if(!r.some((c)=>c.kind==="tui")&&C(e,t).length)r.push({kind:"tui"});return r}function g(t,e,r,n=!1){return A(t,O(t,e,r,{formattingOptions:{tabSize:2,insertSpaces:!0},isArrayInsertion:n}))}function Z(t,e,r,n,o=!1){let c=y(r).pkg,u=(e??[]).map((i,p)=>({item:i,i:p,spec:V(i)})).filter((i)=>{if(!i.spec)return!1;if(i.spec===r)return!0;if(i.spec.startsWith("file://"))return!1;return y(i.spec).pkg===c});if(!u.length){if(!e)return{mode:"add",text:g(t,["plugin"],[n])};return{mode:"add",text:g(t,["plugin",e.length],n,!0)}}if(!o)return{mode:"noop",text:t};let s=u[0];if(!s)return{mode:"noop",text:t};if(u.length===1&&s.spec===r)return{mode:"noop",text:t};let a=t;if(typeof s.item==="string")a=g(a,["plugin",s.i],n);if(Array.isArray(s.item)&&typeof s.item[0]==="string")a=g(a,["plugin",s.i,0],r);let l=u.map((i)=>i.i).filter((i)=>i!==s.i).sort((i,p)=>p-i);for(let i of l)a=g(a,["plugin",i],void 0);return{mode:"replace",text:a}}async function gt(t,e=$){let r=await e.resolve(t).then((n)=>({ok:!0,item:n}),(n)=>({ok:!1,error:n}));if(!r.ok)return{ok:!1,code:"install_failed",error:r.error};return{ok:!0,target:r.item}}async function dt(t){let e=await M(t).then((n)=>({ok:!0,item:n}),(n)=>({ok:!1,error:n}));if(!e.ok)return{ok:!1,code:"manifest_read_failed",file:t,error:e.error};let r=await Promise.resolve().then(()=>Y(e.item)).then((n)=>({ok:!0,item:n}),(n)=>({ok:!1,error:n}));if(!r.ok)return{ok:!1,code:"manifest_read_failed",file:e.item.pkg,error:r.error};if(!r.item.length)return{ok:!1,code:"manifest_no_targets",file:e.item.pkg};return{ok:!0,targets:r.item}}function tt(t){if(t.global)return t.config??I.Path.config;let r=t.vcs==="git"&&t.worktree!=="/"?t.worktree:t.directory;return P.join(r,".qitqode")}function et(t){if(t==="server")return"qitqode";return"tui"}async function rt(t,e,r,n,o){let x=[];try{let c=et(e.kind);const S=T(x,await b.acquire(`plug-config:${d.resolve(P.join(t,c))}`),1);let u=o.files(t,c);let s=u[0];for(let f of u){if(!await o.exists(f))continue;s=f;break}let a=await o.readText(s).catch((f)=>{if(f.code==="ENOENT")return"{}";return f});if(a instanceof Error)return{ok:!1,code:"patch_failed",kind:e.kind,error:a};let l=a.trim()?a:"{}";let i=[];let p=j(l,i,{allowTrailingComma:!0});if(i.length){let f=i[0],h=l.substring(0,f.offset).split(`
|
|
3
3
|
`);return{ok:!1,code:"invalid_json",kind:e.kind,file:s,line:h.length,col:h[h.length-1].length+1,parse:R(f.error)}}let N=H(p);let F=e.opts?[r,e.opts]:r;let k=Z(l,N,r,F,n);if(k.mode==="noop")return{ok:!0,item:{kind:e.kind,mode:k.mode,file:s}};let w=await o.write(s,k.text).catch((f)=>f);if(w instanceof Error)return{ok:!1,code:"patch_failed",kind:e.kind,error:w};return{ok:!0,item:{kind:e.kind,mode:k.mode,file:s}}}catch(J){var B=J,L=1}finally{var W=_(x,B,L);W&&await W}}async function mt(t,e=G){let r=tt(t),n=[];for(let o of t.targets){let c=await rt(r,o,t.spec,Boolean(t.force),e);if(!c.ok)return{...c,dir:r};n.push(c.item)}return{ok:!0,dir:r,items:n}}
|
|
4
4
|
export{pt as p,z as q,gt as r,dt as s,mt as t};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Sf as X}from"./chunk-9s4whpg1.js";import{qg as M,ug as x}from"./chunk-
|
|
2
|
+
import{Sf as X}from"./chunk-9s4whpg1.js";import{qg as M,ug as x}from"./chunk-qq2rcxv2.js";import{Mj as B}from"./chunk-rtdym35y.js";import{Up as G,Yp as C,dq as N,eq as V,hq as L}from"./chunk-xjhezxft.js";import{UI as z}from"./chunk-ydc6ypjt.js";var Z="forgewise";function A(j){if(!j||j.type!=="api")return"skip";if(j.method==="api-key")return"skip";if(M(j.expiresAt))return"skip";return"probe"}function F(j){if(j===null)return"skipped";if(!j)return"revoked";return"valid"}function U(j){if(!j||j.type!=="api")return{kind:"skip"};if(j.method==="api-key")return{kind:"skip"};if(!M(j.expiresAt))return{kind:"skip"};if(j.refreshToken)return{kind:"refresh-token",refreshToken:j.refreshToken};return{kind:"browser"}}function T(j){if(j==="invalid_grant")return{kind:"revoked"};if(j===null)return{kind:"transient"};return{kind:"persist",credential:L(j,{rotateRefreshToken:!0})}}var b=1e4;function P(j){if(!j)return;if(j.type!=="api")return{type:j.type,expiresAt:0};return{type:j.type,method:j.metadata?.method,expiresAt:Number(j.metadata?.expires_at??0),refreshToken:j.metadata?.refresh_token}}function w(){if(process.platform==="linux")return Boolean(process.env.DISPLAY||process.env.WAYLAND_DISPLAY);return process.platform==="win32"||process.platform==="darwin"}var K=()=>z.gen(function*(){let j=yield*B.Service,D=yield*z.orElseSucceed(j.get(Z),()=>{return});if(A(P(D))==="skip")return"skipped";if(!D||D.type!=="api")return"skipped";let J=yield*z.orElseSucceed(z.tryPromise({try:()=>C(),catch:()=>{return}}).pipe(z.map((Q)=>Q.issuer)),()=>{return});if(!J)return"skipped";let $=yield*z.promise(()=>N(J,D.key)),H=F($);if(H==="revoked")yield*z.orElseSucceed(j.remove(Z),()=>{return});return H}).pipe(z.withSpan("forgewise.validateStoredToken")),W=()=>z.gen(function*(){let j=yield*B.Service,D=yield*z.orElseSucceed(j.get(Z),()=>{return}),J=U(P(D));if(J.kind==="skip")return"skipped";if(J.kind==="refresh-token"){let _=yield*z.promise(()=>V(J.refreshToken).catch(()=>null)),q=T(_);if(q.kind==="revoked")return yield*z.orElseSucceed(j.remove(Z),()=>{return}),"failed";if(q.kind==="persist")return(yield*j.set(Z,q.credential).pipe(z.map(()=>!0),z.catch(()=>z.succeed(!1))))?"ok":"failed"}if(!w())return"skipped";let $=new AbortController,H=setTimeout(()=>$.abort(),b),Q=yield*z.promise(()=>x({signal:$.signal}).catch(()=>null).finally(()=>clearTimeout(H)));if(!Q)return"failed";let Y=L(Q,{rotateRefreshToken:!1});return(yield*j.set(Z,Y).pipe(z.map(()=>!0),z.catch(()=>z.succeed(!1))))?"ok":"failed"}).pipe(z.withSpan("forgewise.refreshIfNeeded"));var E=()=>z.gen(function*(){if((yield*z.promise(()=>G()))?.method!=="sso")return"ok";if((yield*K())==="revoked")return yield*z.sync(()=>X.println(X.Style.TEXT_DANGER+"Your session was revoked (signed out from another device or by an admin action). Run `qitqode auth login` to sign in again."+X.Style.TEXT_NORMAL)),"revoked";if((yield*W())==="failed")yield*z.sync(()=>X.println(X.Style.TEXT_DIM+"(Session refresh failed \u2014 run `qitqode auth login` to re-authenticate)"+X.Style.TEXT_NORMAL));return"ok"});
|
|
3
3
|
export{E as h};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Cd as b}from"./chunk-37dvnent.js";import{Pd as f}from"./chunk-9xvctnjr.js";import{Xg as S}from"./chunk-w57j3pgz.js";import"./chunk-ebkztnpf.js";import"./chunk-pxx2hz0g.js";import"./chunk-rexdr63q.js";import"./chunk-kqhh2pm9.js";import"./chunk-7fawtcnn.js";import"./chunk-mdzzcrf9.js";import"./chunk-wev34grp.js";import{rl as v}from"./chunk-sy3n0qhc.js";import"./chunk-364ccew0.js";import{Kl as U,Sl as R,am as k}from"./chunk-vdpd4akk.js";import"./chunk-yjp0btmq.js";import"./chunk-1bx2sjn6.js";import"./chunk-g5prcvq2.js";import"./chunk-t5tfppwv.js";import"./chunk-25bp7pcm.js";import"./chunk-qdcf1ay5.js";import"./chunk-45mjcxqk.js";import"./chunk-qqne79vp.js";import"./chunk-64s7vfj7.js";import"./chunk-e03tgfpb.js";import"./chunk-gwfx7tx7.js";import"./chunk-1wpjmwnh.js";import"./chunk-cqtkxwd8.js";import"./chunk-ymtcm4xd.js";import"./chunk-yykjvt7f.js";import"./chunk-3mepk08v.js";import"./chunk-atpzz901.js";import"./chunk-0g25z230.js";import"./chunk-w9pdvcf9.js";import"./chunk-4gs87ghj.js";import"./chunk-brh35yt5.js";import"./chunk-vcrakhgy.js";import"./chunk-xdjwapwy.js";import{qt as Z}from"./chunk-7dep7g7c.js";import"./chunk-tabcpx7t.js";import"./chunk-cx7p4ezk.js";import"./chunk-tgd5ctnt.js";import"./chunk-p8kpqyxb.js";import"./chunk-3sz6gw10.js";import"./chunk-xqwvx3qq.js";import"./chunk-qp9y0g73.js";import"./chunk-xyjehgzm.js";import"./chunk-j21dnncc.js";import"./chunk-vc4e6xc4.js";import"./chunk-hnz570f9.js";import"./chunk-tdmn21z0.js";import"./chunk-s8mghr5a.js";import"./chunk-pqnbdygz.js";import"./chunk-ydc6ypjt.js";import"./chunk-ev3a2sxv.js";import"./chunk-pnq1h5az.js";import"./chunk-4sazy0nq.js";var i=f({command:"stats",describe:"show token usage and cost statistics",builder:(z)=>{return z.option("days",{describe:"show stats for the last N days (default: all time)",type:"number"}).option("tools",{describe:"number of tools to show (default: all)",type:"number"}).option("models",{describe:"show model statistics (default: hidden). Pass a number to show top N, otherwise shows all"}).option("project",{describe:"filter by project (default: all projects, empty string: current project)",type:"string"})},handler:async(z)=>{await b(process.cwd(),async()=>{let E=await y(z.days,z.project),_;if(z.models===!0)_=1/0;else if(typeof z.models==="number")_=z.models;u(E,z.tools,_)})}});async function w(){return k.project}async function p(){return R.use((E)=>E.select().from(U).all()).map((E)=>v.fromRow(E))}async function y(z,E){let _=await p(),L=86400000,J=(()=>{if(z===void 0)return 0;if(z===0){let V=new Date;return V.setHours(0,0,0,0),V.getTime()}return Date.now()-z*86400000})(),K=(()=>{if(z===void 0)return;if(z===0)return 1;return z})(),Y=J>0?_.filter((V)=>V.time.updated>=J):_;if(E!==void 0)if(E===""){let V=await w();Y=Y.filter((F)=>F.projectID===V.id)}else Y=Y.filter((V)=>V.projectID===E);let G={totalSessions:Y.length,totalMessages:0,totalCost:0,totalTokens:{input:0,output:0,reasoning:0,cache:{read:0,write:0}},toolUsage:{},modelUsage:{},dateRange:{earliest:Date.now(),latest:Date.now()},days:0,costPerDay:0,tokensPerSession:0,medianTokensPerSession:0};if(Y.length>1000)console.log(`Large dataset detected (${Y.length} sessions). This may take a while...`);if(Y.length===0)return G.days=K??0,G;let C=Date.now(),x=0,X=[],h=20;for(let V=0;V<Y.length;V+=h){let D=Y.slice(V,V+h).map(async(Q)=>{let W=await S.runPromise(v.Service.use((O)=>O.messages({sessionID:Q.id,agentID:"*"}))),N=0,H={input:0,output:0,reasoning:0,cache:{read:0,write:0}},j={},A={};for(let O of W){if(O.info.role==="assistant"){N+=O.info.cost||0;let B=`${O.info.providerID}/${O.info.modelID}`;if(!A[B])A[B]={messages:0,tokens:{input:0,output:0,cache:{read:0,write:0}},cost:0};if(A[B].messages++,A[B].cost+=O.info.cost||0,O.info.tokens)H.input+=O.info.tokens.input||0,H.output+=O.info.tokens.output||0,H.reasoning+=O.info.tokens.reasoning||0,H.cache.read+=O.info.tokens.cache?.read||0,H.cache.write+=O.info.tokens.cache?.write||0,A[B].tokens.input+=O.info.tokens.input||0,A[B].tokens.output+=(O.info.tokens.output||0)+(O.info.tokens.reasoning||0),A[B].tokens.cache.read+=O.info.tokens.cache?.read||0,A[B].tokens.cache.write+=O.info.tokens.cache?.write||0}for(let B of O.parts)if(B.type==="tool"&&B.tool)j[B.tool]=(j[B.tool]||0)+1}return{messageCount:W.length,sessionCost:N,sessionTokens:H,sessionTotalTokens:H.input+H.output+H.reasoning+H.cache.read+H.cache.write,sessionToolUsage:j,sessionModelUsage:A,earliestTime:J>0?Q.time.updated:Q.time.created,latestTime:Q.time.updated}}),M=await Promise.all(D);for(let Q of M){C=Math.min(C,Q.earliestTime),x=Math.max(x,Q.latestTime),X.push(Q.sessionTotalTokens),G.totalMessages+=Q.messageCount,G.totalCost+=Q.sessionCost,G.totalTokens.input+=Q.sessionTokens.input,G.totalTokens.output+=Q.sessionTokens.output,G.totalTokens.reasoning+=Q.sessionTokens.reasoning,G.totalTokens.cache.read+=Q.sessionTokens.cache.read,G.totalTokens.cache.write+=Q.sessionTokens.cache.write;for(let[W,N]of Object.entries(Q.sessionToolUsage))G.toolUsage[W]=(G.toolUsage[W]||0)+N;for(let[W,N]of Object.entries(Q.sessionModelUsage)){if(!G.modelUsage[W])G.modelUsage[W]={messages:0,tokens:{input:0,output:0,cache:{read:0,write:0}},cost:0};G.modelUsage[W].messages+=N.messages,G.modelUsage[W].tokens.input+=N.tokens.input,G.modelUsage[W].tokens.output+=N.tokens.output,G.modelUsage[W].tokens.cache.read+=N.tokens.cache.read,G.modelUsage[W].tokens.cache.write+=N.tokens.cache.write,G.modelUsage[W].cost+=N.cost}}}let $=Math.max(1,Math.ceil((x-C)/86400000)),q=K??$;G.dateRange={earliest:C,latest:x},G.days=q,G.costPerDay=G.totalCost/q;let I=G.totalTokens.input+G.totalTokens.output+G.totalTokens.reasoning+G.totalTokens.cache.read+G.totalTokens.cache.write;G.tokensPerSession=Y.length>0?I/Y.length:0,X.sort((V,F)=>V-F);let P=Math.floor(X.length/2);return G.medianTokensPerSession=X.length===0?0:X.length%2===0?(X[P-1]+X[P])/2:X[P],G}function u(z,E,_){function J(x,X){let $=55-x.length-X.length,q=Math.max(0,$);return`\u2502${x}${" ".repeat(q)}${X} \u2502`}console.log("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510"),console.log("\u2502 OVERVIEW \u2502"),console.log("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524"),console.log(J("Sessions",z.totalSessions.toLocaleString())),console.log(J("Messages",z.totalMessages.toLocaleString())),console.log(J("Days",z.days.toString())),console.log("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518"),console.log(),console.log("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510"),console.log("\u2502 COST & TOKENS \u2502"),console.log("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");let K=isNaN(z.totalCost)?0:z.totalCost,Y=isNaN(z.costPerDay)?0:z.costPerDay,G=isNaN(z.tokensPerSession)?0:z.tokensPerSession;console.log(J("Total Cost",`$${K.toFixed(2)}`)),console.log(J("Avg Cost/Day",`$${Y.toFixed(2)}`)),console.log(J("Avg Tokens/Session",Z.number(Math.round(G))));let C=isNaN(z.medianTokensPerSession)?0:z.medianTokensPerSession;if(console.log(J("Median Tokens/Session",Z.number(Math.round(C)))),console.log(J("Input",Z.number(z.totalTokens.input))),console.log(J("Output",Z.number(z.totalTokens.output))),console.log(J("Cache Read",Z.number(z.totalTokens.cache.read))),console.log(J("Cache Write",Z.number(z.totalTokens.cache.write))),console.log("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518"),console.log(),_!==void 0&&Object.keys(z.modelUsage).length>0){let x=Object.entries(z.modelUsage).sort(([,h],[,$])=>$.messages-h.messages),X=_===1/0?x:x.slice(0,_);console.log("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510"),console.log("\u2502 MODEL USAGE \u2502"),console.log("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");for(let[h,$]of X)console.log(`\u2502 ${h.padEnd(54)} \u2502`),console.log(J(" Messages",$.messages.toLocaleString())),console.log(J(" Input Tokens",Z.number($.tokens.input))),console.log(J(" Output Tokens",Z.number($.tokens.output))),console.log(J(" Cache Read",Z.number($.tokens.cache.read))),console.log(J(" Cache Write",Z.number($.tokens.cache.write))),console.log(J(" Cost",`$${$.cost.toFixed(4)}`)),console.log("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");process.stdout.write("\x1B[1A"),console.log("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518")}if(console.log(),Object.keys(z.toolUsage).length>0){let x=Object.entries(z.toolUsage).sort(([,q],[,I])=>I-q),X=E?x.slice(0,E):x;console.log("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510"),console.log("\u2502 TOOL USAGE \u2502"),console.log("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");let h=Math.max(...X.map(([,q])=>q)),$=Object.values(z.toolUsage).reduce((q,I)=>q+I,0);for(let[q,I]of X){let P=Math.max(1,Math.floor(I/h*20)),V="\u2588".repeat(P),F=(I/$*100).toFixed(1),D=18,W=` ${(q.length>18?q.substring(0,16)+"..":q).padEnd(18)} ${V.padEnd(20)} ${I.toString().padStart(3)} (${F.padStart(4)}%)`,N=Math.max(0,56-W.length-1);console.log(`\u2502${W}${" ".repeat(N)} \u2502`)}console.log("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518")}console.log()}export{u as displayStats,y as aggregateSessionStats,i as StatsCommand};
|
|
2
|
+
import{Cd as b}from"./chunk-w8d9srv7.js";import{Pd as f}from"./chunk-9xvctnjr.js";import{Xg as S}from"./chunk-sv1s1qxd.js";import"./chunk-n7d9eemn.js";import"./chunk-pxx2hz0g.js";import"./chunk-rexdr63q.js";import"./chunk-kqhh2pm9.js";import"./chunk-7fawtcnn.js";import"./chunk-mdzzcrf9.js";import"./chunk-wev34grp.js";import{rl as v}from"./chunk-rtdym35y.js";import"./chunk-5myxjxae.js";import{Kl as U,Sl as R,am as k}from"./chunk-sp8ek94w.js";import"./chunk-gnt982jr.js";import"./chunk-1bx2sjn6.js";import"./chunk-17pxm5d3.js";import"./chunk-n38h109k.js";import"./chunk-25bp7pcm.js";import"./chunk-qdcf1ay5.js";import"./chunk-45mjcxqk.js";import"./chunk-qqne79vp.js";import"./chunk-64s7vfj7.js";import"./chunk-xjhezxft.js";import"./chunk-gwfx7tx7.js";import"./chunk-1wpjmwnh.js";import"./chunk-cqtkxwd8.js";import"./chunk-ymtcm4xd.js";import"./chunk-yykjvt7f.js";import"./chunk-3mepk08v.js";import"./chunk-atpzz901.js";import"./chunk-0g25z230.js";import"./chunk-w9pdvcf9.js";import"./chunk-4gs87ghj.js";import"./chunk-kb6v5hhm.js";import"./chunk-qyjt0qnq.js";import"./chunk-xdjwapwy.js";import{qt as Z}from"./chunk-cxtxvt43.js";import"./chunk-871f8x99.js";import"./chunk-cx7p4ezk.js";import"./chunk-tgd5ctnt.js";import"./chunk-p8kpqyxb.js";import"./chunk-3sz6gw10.js";import"./chunk-twhavv1m.js";import"./chunk-v0yxkq99.js";import"./chunk-2pzvcpv4.js";import"./chunk-kmtfdky8.js";import"./chunk-vc4e6xc4.js";import"./chunk-hnz570f9.js";import"./chunk-tdmn21z0.js";import"./chunk-s8mghr5a.js";import"./chunk-pqnbdygz.js";import"./chunk-ydc6ypjt.js";import"./chunk-ev3a2sxv.js";import"./chunk-pnq1h5az.js";import"./chunk-4sazy0nq.js";var i=f({command:"stats",describe:"show token usage and cost statistics",builder:(z)=>{return z.option("days",{describe:"show stats for the last N days (default: all time)",type:"number"}).option("tools",{describe:"number of tools to show (default: all)",type:"number"}).option("models",{describe:"show model statistics (default: hidden). Pass a number to show top N, otherwise shows all"}).option("project",{describe:"filter by project (default: all projects, empty string: current project)",type:"string"})},handler:async(z)=>{await b(process.cwd(),async()=>{let E=await y(z.days,z.project),_;if(z.models===!0)_=1/0;else if(typeof z.models==="number")_=z.models;u(E,z.tools,_)})}});async function w(){return k.project}async function p(){return R.use((E)=>E.select().from(U).all()).map((E)=>v.fromRow(E))}async function y(z,E){let _=await p(),L=86400000,J=(()=>{if(z===void 0)return 0;if(z===0){let V=new Date;return V.setHours(0,0,0,0),V.getTime()}return Date.now()-z*86400000})(),K=(()=>{if(z===void 0)return;if(z===0)return 1;return z})(),Y=J>0?_.filter((V)=>V.time.updated>=J):_;if(E!==void 0)if(E===""){let V=await w();Y=Y.filter((F)=>F.projectID===V.id)}else Y=Y.filter((V)=>V.projectID===E);let G={totalSessions:Y.length,totalMessages:0,totalCost:0,totalTokens:{input:0,output:0,reasoning:0,cache:{read:0,write:0}},toolUsage:{},modelUsage:{},dateRange:{earliest:Date.now(),latest:Date.now()},days:0,costPerDay:0,tokensPerSession:0,medianTokensPerSession:0};if(Y.length>1000)console.log(`Large dataset detected (${Y.length} sessions). This may take a while...`);if(Y.length===0)return G.days=K??0,G;let C=Date.now(),x=0,X=[],h=20;for(let V=0;V<Y.length;V+=h){let D=Y.slice(V,V+h).map(async(Q)=>{let W=await S.runPromise(v.Service.use((O)=>O.messages({sessionID:Q.id,agentID:"*"}))),N=0,H={input:0,output:0,reasoning:0,cache:{read:0,write:0}},j={},A={};for(let O of W){if(O.info.role==="assistant"){N+=O.info.cost||0;let B=`${O.info.providerID}/${O.info.modelID}`;if(!A[B])A[B]={messages:0,tokens:{input:0,output:0,cache:{read:0,write:0}},cost:0};if(A[B].messages++,A[B].cost+=O.info.cost||0,O.info.tokens)H.input+=O.info.tokens.input||0,H.output+=O.info.tokens.output||0,H.reasoning+=O.info.tokens.reasoning||0,H.cache.read+=O.info.tokens.cache?.read||0,H.cache.write+=O.info.tokens.cache?.write||0,A[B].tokens.input+=O.info.tokens.input||0,A[B].tokens.output+=(O.info.tokens.output||0)+(O.info.tokens.reasoning||0),A[B].tokens.cache.read+=O.info.tokens.cache?.read||0,A[B].tokens.cache.write+=O.info.tokens.cache?.write||0}for(let B of O.parts)if(B.type==="tool"&&B.tool)j[B.tool]=(j[B.tool]||0)+1}return{messageCount:W.length,sessionCost:N,sessionTokens:H,sessionTotalTokens:H.input+H.output+H.reasoning+H.cache.read+H.cache.write,sessionToolUsage:j,sessionModelUsage:A,earliestTime:J>0?Q.time.updated:Q.time.created,latestTime:Q.time.updated}}),M=await Promise.all(D);for(let Q of M){C=Math.min(C,Q.earliestTime),x=Math.max(x,Q.latestTime),X.push(Q.sessionTotalTokens),G.totalMessages+=Q.messageCount,G.totalCost+=Q.sessionCost,G.totalTokens.input+=Q.sessionTokens.input,G.totalTokens.output+=Q.sessionTokens.output,G.totalTokens.reasoning+=Q.sessionTokens.reasoning,G.totalTokens.cache.read+=Q.sessionTokens.cache.read,G.totalTokens.cache.write+=Q.sessionTokens.cache.write;for(let[W,N]of Object.entries(Q.sessionToolUsage))G.toolUsage[W]=(G.toolUsage[W]||0)+N;for(let[W,N]of Object.entries(Q.sessionModelUsage)){if(!G.modelUsage[W])G.modelUsage[W]={messages:0,tokens:{input:0,output:0,cache:{read:0,write:0}},cost:0};G.modelUsage[W].messages+=N.messages,G.modelUsage[W].tokens.input+=N.tokens.input,G.modelUsage[W].tokens.output+=N.tokens.output,G.modelUsage[W].tokens.cache.read+=N.tokens.cache.read,G.modelUsage[W].tokens.cache.write+=N.tokens.cache.write,G.modelUsage[W].cost+=N.cost}}}let $=Math.max(1,Math.ceil((x-C)/86400000)),q=K??$;G.dateRange={earliest:C,latest:x},G.days=q,G.costPerDay=G.totalCost/q;let I=G.totalTokens.input+G.totalTokens.output+G.totalTokens.reasoning+G.totalTokens.cache.read+G.totalTokens.cache.write;G.tokensPerSession=Y.length>0?I/Y.length:0,X.sort((V,F)=>V-F);let P=Math.floor(X.length/2);return G.medianTokensPerSession=X.length===0?0:X.length%2===0?(X[P-1]+X[P])/2:X[P],G}function u(z,E,_){function J(x,X){let $=55-x.length-X.length,q=Math.max(0,$);return`\u2502${x}${" ".repeat(q)}${X} \u2502`}console.log("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510"),console.log("\u2502 OVERVIEW \u2502"),console.log("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524"),console.log(J("Sessions",z.totalSessions.toLocaleString())),console.log(J("Messages",z.totalMessages.toLocaleString())),console.log(J("Days",z.days.toString())),console.log("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518"),console.log(),console.log("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510"),console.log("\u2502 COST & TOKENS \u2502"),console.log("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");let K=isNaN(z.totalCost)?0:z.totalCost,Y=isNaN(z.costPerDay)?0:z.costPerDay,G=isNaN(z.tokensPerSession)?0:z.tokensPerSession;console.log(J("Total Cost",`$${K.toFixed(2)}`)),console.log(J("Avg Cost/Day",`$${Y.toFixed(2)}`)),console.log(J("Avg Tokens/Session",Z.number(Math.round(G))));let C=isNaN(z.medianTokensPerSession)?0:z.medianTokensPerSession;if(console.log(J("Median Tokens/Session",Z.number(Math.round(C)))),console.log(J("Input",Z.number(z.totalTokens.input))),console.log(J("Output",Z.number(z.totalTokens.output))),console.log(J("Cache Read",Z.number(z.totalTokens.cache.read))),console.log(J("Cache Write",Z.number(z.totalTokens.cache.write))),console.log("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518"),console.log(),_!==void 0&&Object.keys(z.modelUsage).length>0){let x=Object.entries(z.modelUsage).sort(([,h],[,$])=>$.messages-h.messages),X=_===1/0?x:x.slice(0,_);console.log("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510"),console.log("\u2502 MODEL USAGE \u2502"),console.log("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");for(let[h,$]of X)console.log(`\u2502 ${h.padEnd(54)} \u2502`),console.log(J(" Messages",$.messages.toLocaleString())),console.log(J(" Input Tokens",Z.number($.tokens.input))),console.log(J(" Output Tokens",Z.number($.tokens.output))),console.log(J(" Cache Read",Z.number($.tokens.cache.read))),console.log(J(" Cache Write",Z.number($.tokens.cache.write))),console.log(J(" Cost",`$${$.cost.toFixed(4)}`)),console.log("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");process.stdout.write("\x1B[1A"),console.log("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518")}if(console.log(),Object.keys(z.toolUsage).length>0){let x=Object.entries(z.toolUsage).sort(([,q],[,I])=>I-q),X=E?x.slice(0,E):x;console.log("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510"),console.log("\u2502 TOOL USAGE \u2502"),console.log("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");let h=Math.max(...X.map(([,q])=>q)),$=Object.values(z.toolUsage).reduce((q,I)=>q+I,0);for(let[q,I]of X){let P=Math.max(1,Math.floor(I/h*20)),V="\u2588".repeat(P),F=(I/$*100).toFixed(1),D=18,W=` ${(q.length>18?q.substring(0,16)+"..":q).padEnd(18)} ${V.padEnd(20)} ${I.toString().padStart(3)} (${F.padStart(4)}%)`,N=Math.max(0,56-W.length-1);console.log(`\u2502${W}${" ".repeat(N)} \u2502`)}console.log("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518")}console.log()}export{u as displayStats,y as aggregateSessionStats,i as StatsCommand};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Bp as J}from"./chunk-45mjcxqk.js";import{wt as H,xt as I,yt as Q}from"./chunk-
|
|
2
|
+
import{Bp as J}from"./chunk-45mjcxqk.js";import{wt as H,xt as I,yt as Q}from"./chunk-871f8x99.js";import{Tu as N}from"./chunk-vc4e6xc4.js";import{kQ as L}from"./chunk-4sazy0nq.js";import{platform as R,release as U}from"os";import{tmpdir as V}from"os";import X from"path";import Y from"fs/promises";var Z=J(async()=>{let{which:D}=await import("./chunk-xfz698bh.js");return D}),T=J(async()=>{let{default:D}=await import("./chunk-hb9mc5f9.js");return D});function _(D){if(!process.stdout.isTTY)return;let A=`\x1B]52;c;${Buffer.from(D).toString("base64")}\x07`,E=process.env.TMUX||process.env.STY?`\x1BPtmux;\x1B${A}\x1B\\`:A;process.stdout.write(E)}async function $(){let D=R();if(D==="darwin"){let k=X.join(V(),"qitqode-clipboard.png");try{return await I(["osascript","-e",'set imageData to the clipboard as "PNGf"',"-e",`set fileRef to open for access POSIX file "${k}" with write permission`,"-e","set eof fileRef to 0","-e","write imageData to fileRef","-e","close access fileRef"],{nothrow:!0}),{data:(await N(k)).toString("base64"),mime:"image/png"}}catch{}finally{await Y.rm(k,{force:!0}).catch(()=>{})}}if(D==="win32"||U().includes("WSL")){let E=await Q(["powershell.exe","-NonInteractive","-NoProfile","-command","Add-Type -AssemblyName System.Windows.Forms; $img = [System.Windows.Forms.Clipboard]::GetImage(); if ($img) { $ms = New-Object System.IO.MemoryStream; $img.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png); [System.Convert]::ToBase64String($ms.ToArray()) }"],{nothrow:!0});if(E.text){let K=Buffer.from(E.text.trim(),"base64");if(K.length>0)return{data:K.toString("base64"),mime:"image/png"}}}if(D==="linux"){let k=await I(["wl-paste","-t","image/png"],{nothrow:!0});if(k.stdout.byteLength>0)return{data:Buffer.from(k.stdout).toString("base64"),mime:"image/png"};let E=await I(["xclip","-selection","clipboard","-t","image/png","-o"],{nothrow:!0});if(E.stdout.byteLength>0)return{data:Buffer.from(E.stdout).toString("base64"),mime:"image/png"}}let A=await(await T()).read().catch(()=>{});if(A)return{data:A,mime:"text/plain"}}var j=J(async()=>{let D=R(),G=await Z();if(D==="darwin"&&G("osascript"))return console.log("clipboard: using osascript"),async(A)=>{let k=A.replace(/\\/g,"\\\\").replace(/"/g,"\\\"");await I(["osascript","-e",`set the clipboard to "${k}"`],{nothrow:!0})};if(D==="linux"){if(process.env.WAYLAND_DISPLAY&&G("wl-copy"))return console.log("clipboard: using wl-copy"),async(A)=>{let k=H(["wl-copy"],{stdin:"pipe",stdout:"ignore",stderr:"ignore"});if(!k.stdin)return;k.stdin.write(A),k.stdin.end(),await k.exited.catch(()=>{})};if(G("xclip"))return console.log("clipboard: using xclip"),async(A)=>{let k=H(["xclip","-selection","clipboard"],{stdin:"pipe",stdout:"ignore",stderr:"ignore"});if(!k.stdin)return;k.stdin.write(A),k.stdin.end(),await k.exited.catch(()=>{})};if(G("xsel"))return console.log("clipboard: using xsel"),async(A)=>{let k=H(["xsel","--clipboard","--input"],{stdin:"pipe",stdout:"ignore",stderr:"ignore"});if(!k.stdin)return;k.stdin.write(A),k.stdin.end(),await k.exited.catch(()=>{})}}if(D==="win32")return console.log("clipboard: using powershell"),async(A)=>{let k=H(["powershell.exe","-NonInteractive","-NoProfile","-Command","[Console]::InputEncoding = [System.Text.Encoding]::UTF8; Set-Clipboard -Value ([Console]::In.ReadToEnd())"],{stdin:"pipe",stdout:"ignore",stderr:"ignore"});if(!k.stdin)return;k.stdin.write(A),k.stdin.end(),await k.exited.catch(()=>{})};return console.log("clipboard: no native support"),async(A)=>{await(await T()).write(A).catch(()=>{})}});async function v(D){_(D),await(await j())(D)}
|
|
3
3
|
export{$ as sd,v as td};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Bu as n}from"./chunk-
|
|
2
|
+
import{Bu as n}from"./chunk-kmtfdky8.js";function s(e){let r=e?.password??n.QITQODE_SERVER_PASSWORD;if(!r)return;let t=e?.username??n.QITQODE_SERVER_USERNAME??"qitqode";return`Basic ${Buffer.from(`${t}:${r}`).toString("base64")}`}function o(e){let r=s(e);if(!r)return;return{Authorization:r}}
|
|
3
3
|
export{o as N};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Rh as H}from"./chunk-pxx2hz0g.js";import{Yp as k,Zp as X,aq as O,bq as b,cq as F,fq as h,gq as C,rq as T}from"./chunk-
|
|
2
|
+
import{Rh as H}from"./chunk-pxx2hz0g.js";import{Yp as k,Zp as X,aq as O,bq as b,cq as F,fq as h,gq as C,rq as T}from"./chunk-xjhezxft.js";import w from"http";var B="/callback",U=[51737,51738],K=new Set;function _(f){return f.replace(/[&<>\"']/g,(y)=>{switch(y){case"&":return"&";case"<":return"<";case">":return">";case'"':return""";default:return"'"}})}function z(f){return`http://127.0.0.1:${f}${B}`}async function S(f){return new Promise((y,N)=>{let J=w.createServer();J.listen(f,"127.0.0.1",()=>{J.close(()=>y(f))}),J.on("error",N)})}async function E(){for(let f of U){if(K.has(f))continue;K.add(f);try{return await S(f)}catch{K.delete(f)}}throw new X(`Could not bind to any loopback port (tried ${U.join(", ")}). Free one of those ports and retry.`)}function R(f,y,N,J){return new Promise((Q,x)=>{let V=()=>K.delete(f),m=w.createServer(($,Y)=>{try{let Z=new URL($.url??"/",`http://localhost:${f}`);if(Z.pathname!==B){Y.writeHead(404),Y.end();return}let W=Z.searchParams.get("code"),D=Z.searchParams.get("state"),M=Z.searchParams.get("error"),q=Z.searchParams.get("error_description");if(M){let L=`${_(M)}${q?": "+_(q):""}`;Y.writeHead(200,{"Content-Type":"text/html"}),Y.end(`<html><body style="font-family:sans-serif;padding:2rem"><h2>Authorization failed</h2><p>${L}</p><p>You can close this tab.</p></body></html>`),m.close(),x(new X(`Authorization error: ${M}${q?" \u2014 "+q:""}`));return}if(!W||D!==y){Y.writeHead(400),Y.end("Invalid request");return}Y.writeHead(200,{"Content-Type":"text/html"}),Y.end('<html><body style="font-family:sans-serif;padding:2rem"><h2>Signed in! You can close this tab.</h2><p>Return to your terminal to continue.</p></body></html>'),m.close(),Q({code:W})}catch(Z){m.close(),x(Z)}});if(N?.aborted){V(),x(new X("Login cancelled"));return}let G=()=>{V(),m.close(()=>x(new X("Login cancelled")))};if(N?.addEventListener("abort",G,{once:!0}),N?.aborted){G();return}m.listen(f,"127.0.0.1",()=>{V(),J?.()}),m.on("error",($)=>{V(),x($)})})}function I(f,y){return new Promise((N,J)=>{if(y?.aborted){J(new X("Login cancelled"));return}let Q,x=()=>{clearTimeout(Q),y?.removeEventListener("abort",x),J(new X("Login cancelled"))};if(Q=setTimeout(()=>{y?.removeEventListener("abort",x),N()},f),y?.addEventListener("abort",x,{once:!0}),y?.aborted)x()})}function j(f,y=300000){if(!f)return!1;return Date.now()>=f-y}async function A(f){if(f.method==="api-key")return T({});let{issuer:y}=await k();return T({issuer:y,accessToken:f.key})}var d=300000;async function P(){let{issuer:f,clientId:y}=await k(),{verifier:N,challenge:J,state:Q}=O(),x=await E(),V=z(x),m=b({issuer:f,clientId:y,redirectUri:V,challenge:J,state:Q});return{issuer:f,clientId:y,verifier:N,port:x,redirectUri:V,authorizeStr:m,state:Q}}async function p(f){let{issuer:y,clientId:N}=await k(),{deviceCode:J,info:Q,intervalMs:x}=await h({issuer:y,clientId:N,signal:f.signal});if(f.onCode(Q),f.tryOpen){let m=Q.verificationUriComplete??Q.verificationUri;H(m)}let V=x;while(Date.now()<Q.expiresAt){await I(V,f.signal);let m=await C({issuer:y,clientId:N,deviceCode:J,currentIntervalMs:V,signal:f.signal});if(m.kind==="success")return m.profile;V=m.intervalMs}throw new X("The sign-in code expired before it was approved. Try again.")}async function g(){let{issuer:f,clientId:y,verifier:N,port:J,redirectUri:Q,authorizeStr:x,state:V}=await P();process.stdout.write(`
|
|
3
3
|
`),process.stdout.write(` Opening Forgewise sign-in in your browser...
|
|
4
4
|
`),process.stdout.write(" Sign-in URL: "+x+`
|
|
5
5
|
`),process.stdout.write(`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"./chunk-6sfhbckv.js";import"./chunk-4sazy0nq.js";var f={"language.en":"English","language.zh":"\u7B80\u4F53\u4E2D\u6587","language.zht":"\u7E41\u9AD4\u4E2D\u6587","language.ko":"\uD55C\uAD6D\uC5B4","language.de":"Deutsch","language.es":"Espa\xF1ol","language.fr":"Fran\xE7ais","language.da":"Dansk","language.ja":"\u65E5\u672C\u8A9E","language.pl":"Polski","language.ru":"\u0420\u0443\u0441\u0441\u043A\u0438\u0439","language.ar":"\u0627\u0644\u0639\u0631\u0628\u064A\u0629","language.no":"Norsk","language.br":"Portugu\xEAs (Brasil)","language.pt":"Portugu\xEAs","language.bs":"Bosanski","language.th":"\u0E44\u0E17\u0E22","language.tr":"T\xFCrk\xE7e","tui.prompt.placeholder.normal":'\u554F\u9EDE\u4EC0\u9EBC\u2026\u2026 "{{example}}"',"tui.prompt.placeholder.shell":'\u57F7\u884C\u6307\u4EE4\u2026\u2026 "{{example}}"',"tui.prompt.ghost":"{{prediction}} (\u6309 Tab \u63A1\u7D0D)","tui.home.placeholder.example.todo":"\u4FEE\u5FA9\u7A0B\u5F0F\u78BC\u5EAB\u4E2D\u7684 TODO","tui.home.placeholder.example.stack":"\u9019\u500B\u5C08\u6848\u7528\u4E86\u4EC0\u9EBC\u6280\u8853\u68E7\uFF1F","tui.home.placeholder.example.tests":"\u4FEE\u5FA9\u5931\u6557\u7684\u6E2C\u8A66","tui.home.agreement.prefix":"\u4F7F\u7528 QitQode \u5373\u8868\u793A\u4F60\u540C\u610F\u6211\u5011\u7684","tui.home.agreement.terms":"\u670D\u52D9\u5354\u8B70","tui.home.agreement.separator":"\u548C","tui.home.agreement.privacy":"\u96B1\u79C1\u653F\u7B56","tui.home.agreement.suffix":"","tui.prompt.hint.attach_file":"\u65B0\u589E\u6A94\u6848","tui.prompt.hint.subagent":"\u5B50\u667A\u80FD\u9AD4","tui.prompt.hint.commands":"\u559A\u8D77\u547D\u4EE4","tui.prompt.hint.switch_mode":"\u5207\u63DB\u6A21\u5F0F","tui.prompt.hint.settings":"\u8A2D\u5B9A","tui.tips.label":"\u63D0\u793A","tui.tips.plain_terminal":"\u5EFA\u8B70\u4F7F\u7528 iTerm \u6216 VS Code \u7D42\u7AEF\u6A5F","tui.tips.attach_file":"\u8F38\u5165 {highlight}@{/highlight} \u5F8C\u63A5\u6A94\u6848\u540D\u7A31\u4EE5\u6A21\u7CCA\u641C\u5C0B\u4E26\u9644\u52A0\u6A94\u6848","tui.tips.shell_prefix":"\u4EE5 {highlight}!{/highlight} \u958B\u982D\u53EF\u76F4\u63A5\u57F7\u884C shell \u6307\u4EE4\uFF08\u4F8B\u5982 {highlight}!ls -la{/highlight}\uFF09","tui.tips.tab_agent":"\u6309 {highlight}Tab{/highlight} \u6216 {highlight}Shift+Tab{/highlight} \u5728 Build / Plan / Compose \u667A\u6167\u4EE3\u7406\u4E4B\u9593\u5207\u63DB","tui.tips.theme_mode":"\u57F7\u884C {highlight}/dark{/highlight} \u5207\u63DB\u6DF1\u8272\u6A21\u5F0F\uFF0C{highlight}/light{/highlight} \u5207\u63DB\u6DFA\u8272\u6A21\u5F0F","tui.tips.doc":"\u57F7\u884C {highlight}/doc{/highlight} \u958B\u555F\u4F7F\u7528\u6587\u4EF6","tui.tips.undo":"\u4F7F\u7528 {highlight}/undo{/highlight} \u5FA9\u539F\u6700\u5F8C\u4E00\u689D\u8A0A\u606F\u53CA\u5176\u6A94\u6848\u8B8A\u66F4","tui.tips.redo":"\u4F7F\u7528 {highlight}/redo{/highlight} \u9084\u539F\u5148\u524D\u5FA9\u539F\u7684\u8A0A\u606F\u8207\u6A94\u6848\u8B8A\u66F4","tui.tips.drag_drop":"\u628A\u5716\u7247\u6216 PDF \u62D6\u5165\u7D42\u7AEF\u6A5F\u53EF\u4F5C\u70BA\u4E0A\u4E0B\u6587\u52A0\u5165","tui.tips.paste_image":"\u6309 {highlight}Ctrl+V{/highlight} \u628A\u526A\u8CBC\u7C3F\u4E2D\u7684\u5716\u7247\u8CBC\u5230\u8F38\u5165\u6846","tui.tips.editor":"\u6309 {highlight}Ctrl+X E{/highlight} \u6216 {highlight}/editor{/highlight} \u5728\u5916\u90E8\u7DE8\u8F2F\u5668\u4E2D\u7DE8\u8F2F\u8A0A\u606F","tui.tips.init":"\u57F7\u884C {highlight}/init{/highlight} \u6839\u64DA\u4F60\u7684\u7A0B\u5F0F\u78BC\u5EAB\u81EA\u52D5\u7522\u751F\u5C08\u6848\u898F\u5247","tui.tips.models":"\u57F7\u884C {highlight}/models{/highlight} \u6216 {highlight}Ctrl+X M{/highlight} \u5207\u63DB\u6A21\u578B","tui.tips.theme":'\u5728\u6307\u4EE4\u9762\u677F\uFF08{highlight}Ctrl+P{/highlight}\uFF09\u4E2D\u641C\u5C0B "lock" \u53EF\u9396\u5B9A\u4E3B\u984C\u6A21\u5F0F\uFF0C\u4F7F\u5176\u4E0D\u96A8\u7D42\u7AEF\u6A5F\u80CC\u666F\u8B8A\u5316',"tui.tips.new_session":"\u6309 {highlight}Ctrl+X N{/highlight} \u6216 {highlight}/new{/highlight} \u958B\u555F\u5168\u65B0\u5DE5\u4F5C\u968E\u6BB5","tui.tips.sessions":"\u4F7F\u7528 {highlight}/sessions{/highlight} \u6216 {highlight}Ctrl+X L{/highlight} \u5217\u51FA\u4E26\u7E7C\u7E8C\u5148\u524D\u7684\u5DE5\u4F5C\u968E\u6BB5","tui.tips.compact":"\u57F7\u884C {highlight}/compact{/highlight} \u5728\u63A5\u8FD1\u4E0A\u4E0B\u6587\u4E0A\u9650\u6642\u58D3\u7E2E\u9577\u5C0D\u8A71","tui.tips.export":"\u6309 {highlight}Ctrl+X X{/highlight} \u6216 {highlight}/export{/highlight} \u628A\u5C0D\u8A71\u5132\u5B58\u70BA Markdown","tui.tips.copy_last":"\u6309 {highlight}Ctrl+X Y{/highlight} \u5C07\u52A9\u7406\u6700\u5F8C\u4E00\u689D\u8A0A\u606F\u8907\u88FD\u5230\u526A\u8CBC\u7C3F","tui.tips.command_palette":"\u6309 {highlight}Ctrl+P{/highlight} \u6AA2\u8996\u6240\u6709\u53EF\u7528\u52D5\u4F5C\u8207\u6307\u4EE4","tui.tips.leader":"\u524D\u5C0E\u9375\u662F {highlight}Ctrl+X{/highlight}\uFF0C\u642D\u914D\u5176\u4ED6\u6309\u9375\u53EF\u5FEB\u901F\u89F8\u767C\u52D5\u4F5C","tui.tips.f2":"\u6309 {highlight}F2{/highlight} \u5728\u6700\u8FD1\u4F7F\u7528\u7684\u6A21\u578B\u4E4B\u9593\u5FEB\u901F\u5207\u63DB","tui.tips.sidebar":"\u6309 {highlight}Ctrl+X B{/highlight} \u986F\u793A\uFF0F\u96B1\u85CF\u5074\u908A\u6B04","tui.tips.history":"\u7528 {highlight}PageUp{/highlight}/{highlight}PageDown{/highlight} \u700F\u89BD\u5DE5\u4F5C\u968E\u6BB5\u6B77\u53F2","tui.tips.jump_first":"\u6309 {highlight}Ctrl+G{/highlight} \u6216 {highlight}Home{/highlight} \u8DF3\u5230\u5DE5\u4F5C\u968E\u6BB5\u958B\u982D","tui.tips.jump_last":"\u6309 {highlight}Ctrl+Alt+G{/highlight} \u6216 {highlight}End{/highlight} \u8DF3\u5230\u6700\u65B0\u8A0A\u606F","tui.tips.newline":"\u6309 {highlight}Shift+Enter{/highlight} \u6216 {highlight}Ctrl+J{/highlight} \u5728\u8F38\u5165\u6846\u63DB\u884C","tui.tips.clear_input":"\u8F38\u5165\u6642\u6309 {highlight}Ctrl+C{/highlight} \u6E05\u7A7A\u8F38\u5165\u6846","tui.tips.escape":"\u6309 {highlight}Escape{/highlight} \u5728\u56DE\u61C9\u4E2D\u9014\u4E2D\u65B7 AI","tui.tips.plan_agent":"\u5207\u63DB\u5230 {highlight}Plan{/highlight} \u667A\u6167\u4EE3\u7406\u4EE5\u53D6\u5F97\u5EFA\u8B70\u800C\u4E0D\u5BE6\u969B\u8B8A\u66F4","tui.tips.subagent":"\u5728\u63D0\u793A\u8A5E\u4E2D\u4F7F\u7528 {highlight}@agent-name{/highlight} \u547C\u53EB\u5C08\u7528\u5B50\u4EE3\u7406","tui.tips.cycle_sessions":"\u6309 {highlight}Ctrl+X Right/Left{/highlight} \u5728\u7236\u5B50\u5DE5\u4F5C\u968E\u6BB5\u4E4B\u9593\u5207\u63DB","tui.tips.config_files":"\u5EFA\u7ACB {highlight}qitqode.json{/highlight} \u7528\u65BC\u4F3A\u670D\u5668\u7AEF\u8A2D\u5B9A\uFF0C{highlight}tui.json{/highlight} \u7528\u65BC TUI \u8A2D\u5B9A","tui.tips.global_config":"\u628A TUI \u8A2D\u5B9A\u653E\u5728 {highlight}~/.config/qitqode/tui.json{/highlight} \u4F5C\u70BA\u5168\u57DF\u8A2D\u5B9A","tui.tips.schema":"\u5728\u8A2D\u5B9A\u4E2D\u52A0\u5165 {highlight}$schema{/highlight} \u4EE5\u4FBF\u7DE8\u8F2F\u5668\u81EA\u52D5\u5B8C\u6210","tui.tips.default_model":"\u5728\u8A2D\u5B9A\u4E2D\u8A2D\u5B9A {highlight}model{/highlight} \u4F86\u6307\u5B9A\u9810\u8A2D\u6A21\u578B","tui.tips.keybinds":"\u900F\u904E {highlight}tui.json{/highlight} \u7684 {highlight}keybinds{/highlight} \u5340\u6BB5\u8986\u5BEB\u4EFB\u610F\u6309\u9375","tui.tips.disable_keybind":"\u628A\u4EFB\u610F\u6309\u9375\u8A2D\u70BA {highlight}none{/highlight} \u5373\u53EF\u5B8C\u5168\u505C\u7528\u5B83","tui.tips.mcp_config":"\u5728 {highlight}mcp{/highlight} \u8A2D\u5B9A\u9805\u4E2D\u8A2D\u5B9A\u672C\u6A5F\u6216\u9060\u7AEF MCP \u4F3A\u670D\u5668","tui.tips.mcp_oauth":"QitQode \u81EA\u52D5\u8655\u7406\u9700\u8981\u9A57\u8B49\u7684\u9060\u7AEF MCP \u4F3A\u670D\u5668\u7684 OAuth","tui.tips.custom_command":"\u5728 {highlight}.qitqode/command/{/highlight} \u52A0\u5165 {highlight}.md{/highlight} \u6A94\u6848\u4EE5\u5B9A\u7FA9\u53EF\u91CD\u7528\u81EA\u8A02\u63D0\u793A","tui.tips.command_args":"\u5728\u81EA\u8A02\u6307\u4EE4\u4E2D\u4F7F\u7528 {highlight}$ARGUMENTS{/highlight}\u3001{highlight}$1{/highlight}\u3001{highlight}$2{/highlight} \u63A5\u6536\u52D5\u614B\u53C3\u6578","tui.tips.command_backticks":"\u5728\u6307\u4EE4\u4E2D\u4F7F\u7528\u53CD\u5F15\u865F\u6CE8\u5165 shell \u8F38\u51FA\uFF08\u4F8B\u5982 {highlight}`git status`{/highlight}\uFF09","tui.tips.custom_agent":"\u5728 {highlight}.qitqode/agent/{/highlight} \u52A0\u5165 {highlight}.md{/highlight} \u6A94\u6848\u4F86\u5EFA\u7ACB\u5C08\u7528 AI \u89D2\u8272","tui.tips.agent_perms":"\u70BA\u6BCF\u500B\u667A\u6167\u4EE3\u7406\u55AE\u7368\u8A2D\u5B9A {highlight}edit{/highlight}\u3001{highlight}bash{/highlight}\u3001{highlight}webfetch{/highlight} \u5DE5\u5177\u6B0A\u9650","tui.tips.bash_allow":'\u4F7F\u7528 {highlight}"git *": "allow"{/highlight} \u9019\u985E\u6A21\u5F0F\u505A\u7CBE\u7D30 bash \u6B0A\u9650',"tui.tips.bash_deny":'\u8A2D\u5B9A {highlight}"rm -rf *": "deny"{/highlight} \u963B\u64CB\u7834\u58DE\u6027\u6307\u4EE4',"tui.tips.bash_ask":'\u8A2D\u5B9A {highlight}"git push": "ask"{/highlight} \u5728\u63A8\u9001\u524D\u8981\u6C42\u78BA\u8A8D',"tui.tips.formatter":"QitQode \u81EA\u52D5\u4F7F\u7528 prettier\u3001gofmt\u3001ruff \u7B49\u683C\u5F0F\u5316\u6A94\u6848","tui.tips.disable_formatter":'\u5728\u8A2D\u5B9A\u4E2D\u8A2D\u5B9A {highlight}"formatter": false{/highlight} \u95DC\u9589\u6240\u6709\u81EA\u52D5\u683C\u5F0F\u5316',"tui.tips.custom_formatter":"\u5728\u8A2D\u5B9A\u4E2D\u4F9D\u6A94\u6848\u526F\u6A94\u540D\u5B9A\u7FA9\u81EA\u8A02\u683C\u5F0F\u5316\u6307\u4EE4","tui.tips.lsp":"QitQode \u4F7F\u7528 LSP \u4F3A\u670D\u5668\u9032\u884C\u667A\u6167\u7A0B\u5F0F\u78BC\u5206\u6790","tui.tips.custom_tool":"\u5728 {highlight}.qitqode/tools/{/highlight} \u5EFA\u7ACB {highlight}.ts{/highlight} \u6A94\u6848\u5B9A\u7FA9\u65B0\u7684 LLM \u5DE5\u5177","tui.tips.tool_scripts":"\u5DE5\u5177\u5B9A\u7FA9\u53EF\u547C\u53EB Python\u3001Go \u7B49\u6307\u4EE4\u7A3F","tui.tips.plugins":"\u5728 {highlight}.qitqode/plugin/{/highlight} \u52A0\u5165 {highlight}.ts{/highlight} \u6A94\u6848\u639B\u8F09\u4E8B\u4EF6\u52FE\u9EDE","tui.tips.plugin_notify":"\u7528\u5916\u639B\u5728\u5DE5\u4F5C\u968E\u6BB5\u5B8C\u6210\u6642\u50B3\u9001\u7CFB\u7D71\u901A\u77E5","tui.tips.plugin_protect":"\u64B0\u5BEB\u4E00\u500B\u5916\u639B\u963B\u6B62 QitQode \u8B80\u53D6\u654F\u611F\u6A94\u6848","tui.tips.run":"\u7528 {highlight}qitqode run{/highlight} \u9032\u884C\u975E\u4E92\u52D5\u5F0F\u6307\u4EE4\u7A3F\u547C\u53EB","tui.tips.continue":"\u7528 {highlight}qitqode --continue{/highlight} \u7E7C\u7E8C\u4E0A\u4E00\u500B\u5DE5\u4F5C\u968E\u6BB5","tui.tips.attach_cli":"\u7528 {highlight}qitqode run -f file.ts{/highlight} \u900F\u904E\u547D\u4EE4\u5217\u9644\u52A0\u6A94\u6848","tui.tips.format_json":"\u7528 {highlight}--format json{/highlight} \u5728\u6307\u4EE4\u7A3F\u4E2D\u53D6\u5F97\u6A5F\u5668\u53EF\u8B80\u8F38\u51FA","tui.tips.auth_list":"\u57F7\u884C {highlight}qitqode auth status{/highlight} \u6AA2\u8996\u76EE\u524D\u7684\u767B\u5165\u72C0\u614B","tui.tips.agent_create":"\u57F7\u884C {highlight}qitqode agent create{/highlight} \u5F15\u5C0E\u5F0F\u5EFA\u7ACB\u667A\u6167\u4EE3\u7406","tui.tips.theme_system":'\u4F7F\u7528 {highlight}"theme": "system"{/highlight} \u8DDF\u96A8\u7D42\u7AEF\u6A5F\u914D\u8272',"tui.tips.theme_files":"\u5728 {highlight}.qitqode/themes/{/highlight} \u76EE\u9304\u4E0B\u5EFA\u7ACB JSON \u4E3B\u984C\u6A94\u6848","tui.tips.theme_variants":"\u4E3B\u984C\u652F\u63F4\u6DF1\u8272\uFF0F\u6DFA\u8272\u96D9\u6A21\u5F0F\u8B8A\u9AD4","tui.tips.theme_ansi":"\u81EA\u8A02\u4E3B\u984C\u4E2D\u53EF\u53C3\u7167 ANSI 0-255 \u8272\u865F","tui.tips.env_var":"\u5728\u8A2D\u5B9A\u4E2D\u7528 {highlight}{env:VAR_NAME}{/highlight} \u8A9E\u6CD5\u53C3\u7167\u74B0\u5883\u8B8A\u6578","tui.tips.file_var":"\u7528 {highlight}{file:path}{/highlight} \u5728\u8A2D\u5B9A\u503C\u4E2D\u5D4C\u5165\u6A94\u6848\u5167\u5BB9","tui.tips.instructions":"\u5728\u8A2D\u5B9A\u4E2D\u7528 {highlight}instructions{/highlight} \u8F09\u5165\u984D\u5916\u7684\u898F\u5247\u6A94\u6848","tui.tips.temperature":"\u628A\u667A\u6167\u4EE3\u7406\u7684 {highlight}temperature{/highlight} \u5F9E 0.0\uFF08\u5C08\u6CE8\uFF09\u8ABF\u5230 1.0\uFF08\u5275\u9020\uFF09","tui.tips.steps":"\u8A2D\u5B9A {highlight}steps{/highlight} \u9650\u5236\u6BCF\u6B21\u8ACB\u6C42\u7684\u4EE3\u7406\u8FED\u4EE3\u6B21\u6578","tui.tips.disable_tool":'\u8A2D\u5B9A {highlight}"tools": {"bash": false}{/highlight} \u505C\u7528\u7279\u5B9A\u5DE5\u5177',"tui.tips.disable_mcp_tools":'\u8A2D\u5B9A {highlight}"mcp_*": false{/highlight} \u505C\u7528\u67D0\u500B MCP \u4F3A\u670D\u5668\u7684\u6240\u6709\u5DE5\u5177',"tui.tips.tool_override":"\u5728\u6BCF\u500B\u667A\u6167\u4EE3\u7406\u8A2D\u5B9A\u4E2D\u8986\u5BEB\u5168\u57DF\u5DE5\u5177\u8A2D\u5B9A","tui.tips.doom_loop":"\u6B0A\u9650 {highlight}doom_loop{/highlight} \u9632\u6B62\u5DE5\u5177\u547C\u53EB\u9677\u5165\u7121\u7AAE\u8FF4\u5708","tui.tips.external_dir":"\u6B0A\u9650 {highlight}external_directory{/highlight} \u4FDD\u8B77\u5C08\u6848\u5916\u90E8\u7684\u6A94\u6848","tui.tips.debug_config":"\u57F7\u884C {highlight}qitqode debug config{/highlight} \u6392\u67E5\u8A2D\u5B9A\u554F\u984C","tui.tips.print_logs":"\u4F7F\u7528 {highlight}--print-logs{/highlight} \u65D7\u6A19\u5728 stderr \u8F38\u51FA\u8A73\u7D30\u8A18\u9304","tui.tips.timeline":"\u6309 {highlight}Ctrl+X G{/highlight} \u6216 {highlight}/timeline{/highlight} \u8DF3\u5230\u6307\u5B9A\u8A0A\u606F","tui.tips.toggle_code":"\u6309 {highlight}Ctrl+X H{/highlight} \u5207\u63DB\u8A0A\u606F\u4E2D\u7A0B\u5F0F\u78BC\u5340\u584A\u7684\u986F\u793A","tui.tips.status":"\u6309 {highlight}Ctrl+X S{/highlight} \u6216 {highlight}/status{/highlight} \u6AA2\u8996\u7CFB\u7D71\u72C0\u614B","tui.tips.scroll_accel":"\u5728 {highlight}tui.json{/highlight} \u4E2D\u555F\u7528 {highlight}scroll_acceleration{/highlight} \u4EAB\u53D7\u5E73\u6ED1\u6372\u52D5","tui.tips.agents_md":"\u628A\u5C08\u6848\u4E2D\u7684 {highlight}AGENTS.md{/highlight} \u63D0\u4EA4\u5230 Git \u8207\u5718\u968A\u5171\u4EAB","tui.tips.review":"\u7528 {highlight}/review{/highlight} \u5BE9\u95B1\u672A\u63D0\u4EA4\u8B8A\u66F4\u3001\u5206\u652F\u6216 PR","tui.tips.help":"\u57F7\u884C {highlight}/help{/highlight} \u6216 {highlight}Ctrl+X H{/highlight} \u986F\u793A\u8AAA\u660E\u5C0D\u8A71\u6846","tui.tips.rename":"\u7528 {highlight}/rename{/highlight} \u91CD\u65B0\u547D\u540D\u76EE\u524D\u7684\u5DE5\u4F5C\u968E\u6BB5","tui.tips.suspend.unix":"\u6309 {highlight}Ctrl+Z{/highlight} \u66AB\u505C\u7D42\u7AEF\u6A5F\u4E26\u8FD4\u56DE shell","tui.tips.suspend.win":"\u6309 {highlight}Ctrl+Z{/highlight} \u5FA9\u539F\u8F38\u5165\u6846\u4E2D\u7684\u8F38\u5165","tui.command.palette.title":"\u6307\u4EE4","tui.command.palette.suggested":"\u63A8\u85A6","tui.command.category.session":"\u5DE5\u4F5C\u968E\u6BB5","tui.command.category.agent":"\u667A\u6167\u4EE3\u7406","tui.command.category.provider":"\u4F9B\u61C9\u5546","tui.command.category.system":"\u7CFB\u7D71","tui.command.category.prompt":"\u8F38\u5165\u6846","tui.command.category.internal":"\u5167\u5EFA","tui.command.category.external":"\u7B2C\u4E09\u65B9","tui.slash.init.description":"\u5F15\u5C0E\u5F0F AGENTS.md \u8A2D\u5B9A","tui.slash.review.description":"\u5BE9\u67E5\u8B8A\u66F4 [commit|branch|pr]\uFF0C\u9810\u8A2D\u672A\u63D0\u4EA4\u7684\u8B8A\u66F4","tui.slash.dream.description":"\u5F9E memory \u6A94\u6848\u8207\u539F\u59CB\u8ECC\u8DE1\u4E2D\u624B\u52D5\u6574\u5408\u5C08\u6848\u8A18\u61B6","tui.slash.distill.description":"\u5728\u6700\u8FD1\u5DE5\u4F5C\u4E2D\u767C\u73FE\u91CD\u8907\u6D41\u7A0B\uFF0C\u6253\u5305\u70BA skill\u3001\u5B50\u667A\u6167\u4EE3\u7406\u6216\u547D\u4EE4","tui.slash.goal.description":"\u8A2D\u5B9A\u7D42\u6B62\u689D\u4EF6\u76EE\u6A19\uFF1B\u57F7\u884C\u76F4\u5230\u5224\u5B9A\u9054\u6210\u3002\u4F7F\u7528 /goal clear \u4E2D\u6B62","tui.slash.deep-research.description":"\u6DF1\u5EA6\u591A\u4F86\u6E90\u3001\u4E8B\u5BE6\u6838\u67E5\u7684\u7814\u7A76\u5831\u544A\uFF08\u57F7\u884C deep-research \u5DE5\u4F5C\u6D41\u7A0B\uFF09","tui.command.language.switch.title":"\u5207\u63DB\u8A9E\u8A00","tui.command.language.switch.description":"\u8B8A\u66F4\u986F\u793A\u8A9E\u8A00","tui.command.language.dialog.title":"\u5207\u63DB\u8A9E\u8A00","tui.language.auto":"\u81EA\u52D5\uFF08\u8DDF\u96A8\u7CFB\u7D71\uFF09","tui.language.current":"\u76EE\u524D","tui.command.session.list.title":"\u5207\u63DB\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.new.title":"\u65B0\u589E\u5DE5\u4F5C\u968E\u6BB5","tui.command.workflow.list.title":"\u5DE5\u4F5C\u6D41\u7A0B","tui.command.model.list.title":"\u5207\u63DB\u6A21\u578B","tui.command.model.cycle_recent.title":"\u5FAA\u74B0\u5207\u63DB\u6A21\u578B","tui.command.model.cycle_recent_reverse.title":"\u53CD\u5411\u5FAA\u74B0\u5207\u63DB\u6A21\u578B","tui.command.model.cycle_favorite.title":"\u5FAA\u74B0\u5207\u63DB\u6536\u85CF\u6A21\u578B","tui.command.model.cycle_favorite_reverse.title":"\u53CD\u5411\u5FAA\u74B0\u5207\u63DB\u6536\u85CF\u6A21\u578B","tui.command.agent.list.title":"\u5207\u63DB\u667A\u6167\u4EE3\u7406","tui.command.mcp.list.title":"\u5207\u63DB MCP","tui.command.never_ask.title_on":"\u8DF3\u904E\u63D0\u554F\uFF1A\u5DF2\u958B\u555F\uFF08\u81EA\u52D5\u6C7A\u7B56\uFF0C\u6B0A\u9650\u8ACB\u6C42\u9664\u5916\uFF09 - \u9EDE\u64CA\u95DC\u9589","tui.command.never_ask.title_off":"\u8DF3\u904E\u63D0\u554F\uFF1A\u5DF2\u95DC\u9589 - \u9EDE\u64CA\u958B\u555F\uFF08\u81EA\u52D5\u6C7A\u7B56\uFF0C\u6B0A\u9650\u8ACB\u6C42\u9664\u5916\uFF09","tui.command.never_ask.toast_on":"\u5DF2\u958B\u555F\u8DF3\u904E\u63D0\u554F \u2014 \u6211\u4E0D\u6703\u518D\u5411\u4F60\u63D0\u554F\uFF0C\u6703\u81EA\u884C\u9078\u64C7\u6700\u4F73\u9078\u9805\uFF0C\u76F4\u5230\u4F60\u95DC\u9589\uFF08/never-ask\uFF09\u3002\u6B0A\u9650\u8ACB\u6C42\u4ECD\u9700\u4F60\u78BA\u8A8D\u3002","tui.command.never_ask.toast_off":"\u5DF2\u95DC\u9589\u8DF3\u904E\u63D0\u554F \u2014 \u9047\u5230\u6C7A\u7B56\u9EDE\u6211\u6703\u91CD\u65B0\u5411\u4F60\u63D0\u554F\u3002","tui.command.never_ask.title_on_fullauto":"\u8DF3\u904E\u63D0\u554F\uFF1A\u5DF2\u958B\u555F\uFF08\u81EA\u52D5\u6C7A\u7B56\uFF1B\u5168\u81EA\u52D5\u6A21\u5F0F\u540C\u6642\u81EA\u52D5\u6838\u51C6\u6B0A\u9650\uFF09 - \u9EDE\u64CA\u95DC\u9589","tui.command.never_ask.title_off_fullauto":"\u8DF3\u904E\u63D0\u554F\uFF1A\u5DF2\u95DC\u9589 - \u9EDE\u64CA\u958B\u555F\uFF08\u81EA\u52D5\u6C7A\u7B56\uFF1B\u5168\u81EA\u52D5\u6A21\u5F0F\u4ECD\u5728\u81EA\u52D5\u6838\u51C6\u6B0A\u9650\uFF09","tui.command.never_ask.toast_on_fullauto":"\u5DF2\u958B\u555F\u8DF3\u904E\u63D0\u554F \u2014 \u6211\u4E0D\u6703\u518D\u5411\u4F60\u63D0\u554F\uFF0C\u6703\u81EA\u884C\u9078\u64C7\u6700\u4F73\u9078\u9805\uFF0C\u76F4\u5230\u4F60\u95DC\u9589\uFF08/never-ask\uFF09\u3002\u5168\u81EA\u52D5\u6A21\u5F0F\u5DF2\u958B\u555F\uFF0C\u5DE5\u5177\u6B0A\u9650\u8ACB\u6C42\u4E5F\u6703\u81EA\u52D5\u6838\u51C6\u3002","tui.command.agent.cycle.title":"\u5FAA\u74B0\u5207\u63DB\u667A\u6167\u4EE3\u7406","tui.command.variant.cycle.title":"\u5FAA\u74B0\u5207\u63DB\u6A21\u578B\u8B8A\u9AD4","tui.command.variant.list.title":"\u5207\u63DB\u6A21\u578B\u8B8A\u9AD4","tui.command.agent.cycle.reverse.title":"\u53CD\u5411\u5FAA\u74B0\u5207\u63DB\u667A\u6167\u4EE3\u7406","tui.command.provider.login.title":"\u767B\u5165","tui.command.provider.logout.title":"\u767B\u51FA","tui.command.console.org.switch.title":"\u5207\u63DB\u7D44\u7E54","tui.command.qitqode.status.title":"\u6AA2\u8996\u72C0\u614B","tui.command.worktree.list.title":"\u5DE5\u4F5C\u6A39","tui.command.theme.switch.title":"\u5207\u63DB\u4E3B\u984C","tui.command.theme.switch_mode.to_light":"\u5207\u63DB\u5230\u6DFA\u8272\u6A21\u5F0F","tui.command.theme.switch_mode.to_dark":"\u5207\u63DB\u5230\u6DF1\u8272\u6A21\u5F0F","tui.command.theme.mode.unlock":"\u89E3\u9664\u9396\u5B9A\u4E3B\u984C\u6A21\u5F0F","tui.command.theme.mode.lock":"\u9396\u5B9A\u4E3B\u984C\u6A21\u5F0F","tui.command.help.show.title":"\u8AAA\u660E","tui.dialog.help.close_hint":"esc/enter/space","tui.dialog.help.accessibility":"\u7121\u969C\u7919:\u53EF\u5728\u547D\u4EE4\u6E05\u55AE\u4E2D\u5207\u63DB\u52D5\u756B\u548C\u8072\u97F3\u3002\u74B0\u5883\u8B8A\u6578:NO_COLOR, QITQODE_TUI_ACCESSIBLE, QITQODE_REDUCE_MOTION, QITQODE_TUI_SOUND\u3002","tui.dialog.help.announcements":"\u64AD\u5831:\u5728\u7121\u969C\u7919\u6A21\u5F0F\u4E0B,\u53EF\u900F\u904E\u547D\u4EE4\u6E05\u55AE\u6216 QITQODE_TUI_ANNOUNCEMENTS \u9078\u64C7\u87A2\u5E55\u95B1\u8B80\u5668\u64AD\u5831\u7684\u8A73\u7D30\u7A0B\u5EA6(\u5B89\u975C\u3001\u6B63\u5E38\u3001\u8A73\u7D30)\u3002\u932F\u8AA4\u6C38\u9060\u6703\u64AD\u5831\u3002","tui.dialog.help.dialog_keys":"\u5C0D\u8A71\u65B9\u584A:\u6240\u6709\u5C0D\u8A71\u65B9\u584A\u5747\u53EF\u50C5\u7528\u9375\u76E4\u64CD\u4F5C \u2014 Esc \u95DC\u9589,Tab \u6216\u65B9\u5411\u9375\u79FB\u52D5\u7126\u9EDE,Enter \u6216\u7A7A\u683C\u9375\u555F\u7528\u76EE\u524D\u63A7\u5236\u9805\u3002","tui.command.app.announcements.cycle":"\u64AD\u5831:{{level}}(\u9078\u64C7\u4EE5\u8B8A\u66F4)","tui.announcements.level.quiet":"\u5B89\u975C","tui.announcements.level.normal":"\u6B63\u5E38","tui.announcements.level.verbose":"\u8A73\u7D30","tui.app.terminal_too_small":"\u7D42\u7AEF\u8996\u7A97\u904E\u5C0F ({{width}}x{{height}}),\u8ACB\u8ABF\u6574\u5230\u81F3\u5C11 40x8\u3002","tui.dialog.help.command_list":"\u6309 {{keybind}} \u6AA2\u8996\u76EE\u524D\u5167\u5BB9\u4E2D\u6240\u6709\u53EF\u7528\u7684\u64CD\u4F5C\u8207\u547D\u4EE4\u3002","tui.dialog.help.ok":"\u78BA\u5B9A","tui.dialog.close_hint":"esc","tui.dialog.document.scroll_hint":"\u2191/\u2193 \u6372\u52D5 \xB7 PgUp/PgDn \u7FFB\u9801 \xB7 esc \u95DC\u9589","tui.dialog.ok":"\u78BA\u5B9A","tui.dialog.confirm.cancel":"\u53D6\u6D88","tui.dialog.confirm.confirm":"\u78BA\u8A8D","tui.dialog.agreement.title":"\u670D\u52D9\u5354\u8B70\u8207\u96B1\u79C1\u653F\u7B56","tui.dialog.agreement.message":"\u8ACB\u95B1\u8B80\u4E26\u540C\u610F\u5F8C\u7E7C\u7E8C\u4F7F\u7528\u3002","tui.dialog.agreement.confirm":"\u540C\u610F\u4E26\u7E7C\u7E8C","tui.command.docs.terms.title":"\u67E5\u770B\u670D\u52D9\u689D\u6B3E","tui.command.docs.privacy.title":"\u67E5\u770B\u96B1\u79C1\u653F\u7B56","tui.command.consent.revoke.title":"\u64A4\u92B7\u514D\u8CBB\u6A21\u578B\u5354\u8B70","tui.consent.revoked":"\u5DF2\u64A4\u92B7\u514D\u8CBB\u6A21\u578B\u5354\u8B70 \u2014 \u4E0B\u6B21\u4F7F\u7528\u6642\u5C07\u518D\u6B21\u8ACB\u6C42\u540C\u610F","tui.dialog.select.placeholder":"\u641C\u5C0B","tui.dialog.select.no_results":"\u627E\u4E0D\u5230\u7D50\u679C","tui.dialog.prompt.placeholder":"\u8F38\u5165\u6587\u5B57","tui.dialog.prompt.busy":"\u8655\u7406\u4E2D...","tui.dialog.prompt.processing":"\u8655\u7406\u4E2D...","tui.dialog.prompt.submit_key":"enter","tui.dialog.prompt.submit_action":"\u63D0\u4EA4","tui.dialog.export.title":"\u532F\u51FA\u9078\u9805","tui.dialog.export.filename":"\u6A94\u6848\u540D\u7A31\uFF1A","tui.dialog.export.filename_placeholder":"\u8F38\u5165\u6A94\u6848\u540D\u7A31","tui.dialog.export.include_thinking":"\u5305\u542B\u601D\u8003\u904E\u7A0B","tui.dialog.export.include_tool_details":"\u5305\u542B\u5DE5\u5177\u8A73\u7D30\u8CC7\u6599","tui.dialog.export.include_assistant_metadata":"\u5305\u542B\u52A9\u7406\u4E2D\u7E7C\u8CC7\u6599","tui.dialog.export.open_without_saving":"\u76F4\u63A5\u958B\u555F\u800C\u4E0D\u5132\u5B58","tui.dialog.export.hint.toggle_prefix":"\u6309","tui.dialog.export.hint.toggle_action":"\u5207\u63DB","tui.dialog.export.hint.confirm_action":"\u78BA\u8A8D","tui.dialog.export.hint.options_action":"\u67E5\u770B\u9078\u9805","tui.toast.copied_to_clipboard":"\u5DF2\u8907\u88FD\u5230\u526A\u8CBC\u7C3F","tui.toast.instructions_loaded":"\u5DF2\u8F09\u5165 {{files}}","tui.toast.update_available.title":"\u6709\u65B0\u7248\u672C\u53EF\u7528","tui.toast.update_available.confirm":"\u65B0\u7248\u672C v{{version}} \u5DF2\u767C\u4F48\uFF0C\u662F\u5426\u7ACB\u5373\u66F4\u65B0\uFF1F","tui.toast.update_available.updating":"\u6B63\u5728\u66F4\u65B0\u5230 v{{version}}...","tui.toast.update_available.failed":"\u66F4\u65B0\u5931\u6557","tui.toast.update_available.success":"\u5DF2\u66F4\u65B0\u5230 QitQode v{{version}}\uFF0C\u8ACB\u91CD\u65B0\u555F\u52D5\u61C9\u7528\u7A0B\u5F0F\u3002","tui.toast.updated.title":"\u5DF2\u81EA\u52D5\u66F4\u65B0","tui.toast.updated.message":"\u5DF2\u81EA\u52D5\u5957\u7528\u4FEE\u88DC\u66F4\u65B0\uFF1Av{{version}}\u3002\u91CD\u65B0\u555F\u52D5\u5F8C\u751F\u6548\u3002\u53EF\u5728\u8A2D\u5B9A\u4E2D\u8A2D\u7F6E autoupdate: false \u95DC\u9589\u81EA\u52D5\u66F4\u65B0\u3002","tui.sidebar.instructions":"\u6307\u4EE4\u6A94\u6848","tui.sidebar.cwd":"\u5DE5\u4F5C\u76EE\u9304","tui.toast.unknown_error":"\u767C\u751F\u672A\u77E5\u932F\u8AA4","tui.command.docs.open.title":"\u958B\u555F\u6587\u4EF6","tui.command.app.exit.title":"\u7D50\u675F\u61C9\u7528\u7A0B\u5F0F","tui.command.app.debug.title":"\u5207\u63DB\u5075\u932F\u9762\u677F","tui.command.app.console.title":"\u5207\u63DB\u4E3B\u63A7\u53F0","tui.command.app.heap_snapshot.title":"\u532F\u51FA\u5806\u7A4D\u5FEB\u7167","tui.command.terminal.suspend.title":"\u66AB\u505C\u7D42\u7AEF\u6A5F","tui.command.terminal.title.disable":"\u505C\u7528\u7D42\u7AEF\u6A5F\u6A19\u984C","tui.command.terminal.title.enable":"\u555F\u7528\u7D42\u7AEF\u6A5F\u6A19\u984C","tui.command.app.toggle.animations.disable":"\u505C\u7528\u52D5\u756B","tui.command.app.toggle.animations.enable":"\u555F\u7528\u52D5\u756B","tui.command.app.toggle.diffwrap.disable":"\u505C\u7528 diff \u81EA\u52D5\u63DB\u884C","tui.command.app.toggle.diffwrap.enable":"\u555F\u7528 diff \u81EA\u52D5\u63DB\u884C","tui.command.app.toggle.sound.disable":"\u505C\u7528\u8072\u97F3","tui.command.app.toggle.sound.enable":"\u555F\u7528\u8072\u97F3","tui.command.logout.toast":"\u5DF2\u767B\u51FA","tui.command.session.share.title":"\u5206\u4EAB\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.share.copy_link":"\u8907\u88FD\u5206\u4EAB\u9023\u7D50","tui.command.session.rename.title":"\u91CD\u65B0\u547D\u540D\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.timeline.title":"\u8DF3\u5230\u8A0A\u606F","tui.command.session.fork.title":"\u5206\u652F\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.compact.title":"\u58D3\u7E2E\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.unshare.title":"\u53D6\u6D88\u5206\u4EAB","tui.command.session.undo.title":"\u5FA9\u539F\u4E0A\u4E00\u689D\u8A0A\u606F","tui.command.session.redo.title":"\u91CD\u505A","tui.command.session.sidebar.show":"\u986F\u793A\u5074\u908A\u6B04","tui.command.session.sidebar.hide":"\u96B1\u85CF\u5074\u908A\u6B04","tui.command.session.conceal.disable":"\u95DC\u9589\u7A0B\u5F0F\u78BC\u96B1\u85CF","tui.command.session.conceal.enable":"\u958B\u555F\u7A0B\u5F0F\u78BC\u96B1\u85CF","tui.command.session.timestamps.show":"\u986F\u793A\u6642\u9593\u6233\u8A18","tui.command.session.timestamps.hide":"\u96B1\u85CF\u6642\u9593\u6233\u8A18","tui.command.session.thinking.expand":"\u5C55\u958B\u601D\u8003\u904E\u7A0B","tui.command.session.thinking.collapse":"\u647A\u758A\u601D\u8003\u904E\u7A0B","tui.command.session.tool_details.show":"\u986F\u793A\u5DE5\u5177\u8A73\u7D30\u8CC7\u6599","tui.command.session.tool_details.hide":"\u96B1\u85CF\u5DE5\u5177\u8A73\u7D30\u8CC7\u6599","tui.command.session.scrollbar.toggle":"\u5207\u63DB\u5DE5\u4F5C\u968E\u6BB5\u6372\u8EF8","tui.command.session.generic_tool_output.show":"\u986F\u793A\u901A\u7528\u5DE5\u5177\u8F38\u51FA","tui.command.session.generic_tool_output.hide":"\u96B1\u85CF\u901A\u7528\u5DE5\u5177\u8F38\u51FA","tui.command.session.page_up.title":"\u4E0A\u4E00\u9801","tui.command.session.page_down.title":"\u4E0B\u4E00\u9801","tui.command.session.line_up.title":"\u5411\u4E0A\u4E00\u884C","tui.command.session.line_down.title":"\u5411\u4E0B\u4E00\u884C","tui.command.session.half_page_up.title":"\u5411\u4E0A\u534A\u9801","tui.command.session.half_page_down.title":"\u5411\u4E0B\u534A\u9801","tui.command.session.first.title":"\u7B2C\u4E00\u689D\u8A0A\u606F","tui.command.session.last.title":"\u6700\u5F8C\u4E00\u689D\u8A0A\u606F","tui.command.session.last_user.title":"\u8DF3\u5230\u6700\u5F8C\u4E00\u689D\u4F7F\u7528\u8005\u8A0A\u606F","tui.command.session.message_next.title":"\u4E0B\u4E00\u689D\u8A0A\u606F","tui.command.session.message_previous.title":"\u4E0A\u4E00\u689D\u8A0A\u606F","tui.command.messages.copy.title":"\u8907\u88FD\u6700\u5F8C\u4E00\u689D\u52A9\u7406\u8A0A\u606F","tui.command.session.copy.title":"\u8907\u88FD\u5C0D\u8A71\u8A18\u9304","tui.command.session.export.title":"\u532F\u51FA\u5C0D\u8A71\u8A18\u9304","tui.command.session.child_first.title":"\u9032\u5165\u5B50\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.parent.title":"\u8FD4\u56DE\u7236\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.child_next.title":"\u4E0B\u4E00\u500B\u5B50\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.child_previous.title":"\u4E0A\u4E00\u500B\u5B50\u5DE5\u4F5C\u968E\u6BB5","tui.command.prompt.clear.title":"\u6E05\u7A7A\u8F38\u5165\u6846","tui.command.prompt.submit.title":"\u9001\u51FA\u63D0\u793A\u8A5E","tui.command.prompt.paste.title":"\u8CBC\u4E0A","tui.command.session.interrupt.title":"\u4E2D\u65B7\u5DE5\u4F5C\u968E\u6BB5","tui.command.prompt.editor.title":"\u958B\u555F\u7DE8\u8F2F\u5668","tui.command.prompt.skills.title":"\u6280\u80FD","tui.command.voice.toggle.title":"\u5207\u63DB\u8A9E\u97F3\u8F38\u5165","tui.command.voice.toggle.title_on":"\u8A9E\u97F3\u8F38\u5165\uFF1A\u5DF2\u958B\u555F \u2014 \u9EDE\u64CA\u95DC\u9589","tui.command.voice.toggle.title_off":"\u8A9E\u97F3\u8F38\u5165\uFF1A\u5DF2\u95DC\u9589 \u2014 \u9EDE\u64CA\u958B\u555F","tui.command.voice.send.title":"\u5207\u63DB\u8A9E\u97F3\u767C\u9001\u6307\u4EE4","tui.command.voice.send.title_on":"\u8A9E\u97F3\u767C\u9001\uFF1A\u5DF2\u958B\u555F \u2014 \u9EDE\u64CA\u95DC\u9589","tui.command.voice.send.title_off":"\u8A9E\u97F3\u767C\u9001\uFF1A\u5DF2\u95DC\u9589 \u2014 \u9EDE\u64CA\u958B\u555F","tui.voice.enabled":"\u8A9E\u97F3\u8F38\u5165\u5DF2\u555F\u7528\uFF08\u7C21\u9AD4\u4E2D\u6587/\u82F1\u8A9E\uFF09\u2014 \u9EDE\u64CA [Voice] \u958B\u59CB\u9304\u97F3","tui.voice.disabled":"\u8A9E\u97F3\u8F38\u5165\u5DF2\u95DC\u9589","tui.voice.send.enabled":"\u8A9E\u97F3\u767C\u9001\u5DF2\u555F\u7528 \u2014 \u505C\u9813\u5F8C\u6E05\u6670\u5FF5\u51FA\u300C\u53D1\u9001\u300D\u5373\u53EF\u63D0\u4EA4","tui.voice.send.disabled":"\u8A9E\u97F3\u767C\u9001\u5DF2\u95DC\u9589","tui.voice.control.enabled":"\u8A9E\u97F3\u63A7\u5236\u5DF2\u555F\u7528 \u2014 \u4F7F\u7528\u591A\u6A21\u614B\u6A21\u578B\u667A\u6167\u7DE8\u8F2F\uFF08\u8F03\u6162\uFF09","tui.voice.control.disabled":"\u8A9E\u97F3\u63A7\u5236\u5DF2\u95DC\u9589 \u2014 \u4F7F\u7528\u5FEB\u901F ASR \u8F49\u5BEB","tui.command.voice.control.title":"\u5207\u63DB\u8A9E\u97F3\u63A7\u5236\uFF08\u591A\u6A21\u614B\uFF09","tui.command.voice.control.title_on":"\u8A9E\u97F3\u63A7\u5236\uFF1A\u5DF2\u958B\u555F\uFF08\u591A\u6A21\u614B\uFF09 \u2014 \u9EDE\u64CA\u95DC\u9589","tui.command.voice.control.title_off":"\u8A9E\u97F3\u63A7\u5236\uFF1A\u5DF2\u95DC\u9589\uFF08\u5FEB\u901F ASR\uFF09 \u2014 \u9EDE\u64CA\u958B\u555F","tui.voice.error.no_auth":"\u8ACB\u5148\u7528 /connect \u9023\u63A5 QitQode \u5E33\u865F\uFF0C\u6216\u914D\u7F6E voice.asr_model \u6307\u5B9A\u5176\u4ED6 provider","tui.voice.error.no_auth_provider":"\u8A9E\u97F3 provider\u300C{{provider}}\u300D\u672A\u8A8D\u8B49\uFF0C\u8ACB\u6AA2\u67E5\u5176 apiKey \u914D\u7F6E","tui.voice.error.provider_not_found":"provider\u300C{{provider}}\u300D\u4E0D\u53EF\u7528 \u2014 \u8ACB /connect \u9023\u63A5\uFF0C\u81EA\u5B9A\u7FA9\u7AEF\u9EDE\u9700\u5728\u914D\u7F6E\u4E2D\u8072\u660E models","tui.voice.error.no_url":"provider\u300C{{provider}}\u300D\u672A\u914D\u7F6E baseURL\uFF0C\u8ACB\u5728 options.baseURL \u4E2D\u6307\u5B9A","tui.voice.error.no_device":"\u672A\u5075\u6E2C\u5230\u9EA5\u514B\u98A8/\u97F3\u8A0A\u88DD\u7F6E \u2014 \u8ACB\u6AA2\u67E5\u7CFB\u7D71\u97F3\u8A0A\u8A2D\u5B9A","tui.voice.error.recorder_failed":"\u9304\u97F3\u5931\u6557","tui.voice.error.no_recorder":"\u672A\u5075\u6E2C\u5230\u9304\u97F3\u5DE5\u5177\uFF0C\u8ACB\u5B89\u88DD sox","tui.voice.error.too_short":"\u9304\u97F3\u6642\u9593\u904E\u77ED","tui.voice.error.network":"\u8F49\u5BEB\u5931\u6557\uFF0C\u8ACB\u6AA2\u67E5\u7DB2\u8DEF","tui.voice.error.empty_send":"\u7121\u5167\u5BB9\u53EF\u767C\u9001","tui.voice.error.unknown_agent":"\u672A\u627E\u5230 agent\u300C{{name}}\u300D","tui.command.prompt.stash.title":"\u66AB\u5B58\u63D0\u793A\u8A5E","tui.command.prompt.stash.pop.title":"\u5F48\u51FA\u66AB\u5B58","tui.command.prompt.stash.list.title":"\u66AB\u5B58\u6E05\u55AE","tui.command.tips.toggle.show":"\u986F\u793A Tips","tui.command.tips.toggle.hide":"\u96B1\u85CF Tips","tui.command.plugins.list.title":"\u5916\u639B","tui.command.plugins.install.title":"\u5B89\u88DD\u5916\u639B","tui.question.plan_enter.question":"\u662F\u5426\u5207\u63DB\u5230 plan \u6A21\u5F0F\u9032\u884C\u7D50\u69CB\u5316\u898F\u5283\uFF1F","tui.question.plan_enter.header":"\u9032\u5165\u8A08\u5283","tui.question.plan_enter.option.0.label":"\u662F","tui.question.plan_enter.option.0.description":"\u5207\u63DB\u5230 plan \u667A\u6167\u4EE3\u7406\u9032\u884C\u552F\u8B80\u898F\u5283","tui.question.plan_enter.option.1.label":"\u5426","tui.question.plan_enter.option.1.description":"\u7559\u5728\u7576\u524D\u6A21\u5F0F","tui.question.plan_exit.question":"{{plan}} \u7684\u8A08\u5283\u5DF2\u5B8C\u6210\u3002\u662F\u5426\u5207\u63DB\u5230 build \u667A\u6167\u4EE3\u7406\u958B\u59CB\u5BE6\u4F5C\uFF1F","tui.question.plan_exit.header":"\u9000\u51FA\u8A08\u5283","tui.question.plan_exit.option.0.label":"\u662F","tui.question.plan_exit.option.0.description":"\u5207\u63DB\u5230 build \u667A\u6167\u4EE3\u7406\u4E26\u958B\u59CB\u5BE6\u4F5C\u8A08\u5283","tui.question.plan_exit.option.1.label":"\u5426","tui.question.plan_exit.option.1.description":"\u7559\u5728 plan \u667A\u6167\u4EE3\u7406\u7E7C\u7E8C\u5B8C\u5584\u8A08\u5283","tui.session.badge.auto":"\u81EA\u52D5","trust.title":"\u5B58\u53D6\u5DE5\u4F5C\u5340\uFF1A","trust.safety_check":"\u5B89\u5168\u78BA\u8A8D\uFF1A\u9019\u662F\u4F60\u81EA\u5DF1\u5EFA\u7ACB\u6216\u4FE1\u4EFB\u7684\u5C08\u6848\u55CE\uFF1F\uFF08\u5982\u4F60\u81EA\u5DF1\u7684\u7A0B\u5F0F\u78BC\u3001\u77E5\u540D\u958B\u6E90\u5C08\u6848\u6216\u5718\u968A\u5167\u90E8\u5C08\u6848\uFF09\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8ACB\u5148\u6AA2\u67E5\u6B64\u76EE\u9304\u4E0B\u7684\u5167\u5BB9\u3002","trust.capabilities":"QitQode \u5C07\u80FD\u5920\u8B80\u53D6\u3001\u7DE8\u8F2F\u548C\u57F7\u884C\u6B64\u76EE\u9304\u4E2D\u7684\u6A94\u6848\u3002","trust.plugin_warn":"\u5982\u679C\u6B64\u76EE\u9304\u4E2D\u5B58\u5728\u60E1\u610F\u5916\u639B\u7A0B\u5F0F\uFF0C\u5B83\u5011\u53EF\u4EE5\u57F7\u884C\u4EFB\u610F\u7A0B\u5F0F\u78BC\u3001\u8B80\u53D6\u3001\u4FEE\u6539\u6216\u7ACA\u53D6\u4F60\u7684\u6A94\u6848\u3002","trust.option.yes":"\u662F\u7684\uFF0C\u6211\u4FE1\u4EFB\u6B64\u76EE\u9304","trust.option.no":"\u5426\uFF0C\u9000\u51FA","trust.dangerous.title_home":"\u8B66\u544A\uFF1A\u4F60\u5373\u5C07\u958B\u555F\u4E3B\u76EE\u9304\u3002","trust.dangerous.title_root":"\u8B66\u544A\uFF1A\u4F60\u5373\u5C07\u958B\u555F\u6A94\u6848\u7CFB\u7D71\u6839\u76EE\u9304\u3002","trust.dangerous.body_home":"\u6A21\u578B\u5C07\u80FD\u5920\u5B58\u53D6\u4F60\u6240\u6709\u7684\u500B\u4EBA\u6A94\u6848 \u2014 SSH \u91D1\u9470\u3001\u6191\u8B49\u3001\u700F\u89BD\u5668\u8A2D\u5B9A\u6A94\u7B49\u4E3B\u76EE\u9304\u4E0B\u7684\u6240\u6709\u5167\u5BB9\u3002","trust.dangerous.body_root":"\u6A21\u578B\u5C07\u80FD\u5920\u5B58\u53D6\u6574\u500B\u6A94\u6848\u7CFB\u7D71 \u2014 \u7CFB\u7D71\u6A94\u6848\u3001\u6240\u6709\u4F7F\u7528\u8005\u8CC7\u6599\u3001\u6191\u8B49\u4EE5\u53CA\u9019\u53F0\u6A5F\u5668\u4E0A\u7684\u4E00\u5207\u3002","trust.dangerous.advice_home":"\u9664\u975E\u6709\u660E\u78BA\u7684\u7406\u7531\uFF0C\u5426\u5247\u4E0D\u8981\u4FE1\u4EFB\u4F60\u7684\u6574\u500B\u4E3B\u76EE\u9304\u3002","trust.dangerous.advice_root":"\u9664\u975E\u6709\u660E\u78BA\u7684\u7406\u7531\uFF0C\u5426\u5247\u4E0D\u8981\u4FE1\u4EFB\u6A94\u6848\u7CFB\u7D71\u6839\u76EE\u9304\u3002","trust.dangerous.option.yes":"\u6211\u4E86\u89E3\u98A8\u96AA\uFF0C\u50C5\u672C\u6B21\u4FE1\u4EFB","trust.dangerous.option.no":"\u9000\u51FA\uFF08\u63A8\u85A6\uFF09"};export{f as dict};
|
|
2
|
+
import"./chunk-fn8191ps.js";import"./chunk-4sazy0nq.js";var f={"language.en":"English","language.zh":"\u7B80\u4F53\u4E2D\u6587","language.zht":"\u7E41\u9AD4\u4E2D\u6587","language.ko":"\uD55C\uAD6D\uC5B4","language.de":"Deutsch","language.es":"Espa\xF1ol","language.fr":"Fran\xE7ais","language.da":"Dansk","language.ja":"\u65E5\u672C\u8A9E","language.pl":"Polski","language.ru":"\u0420\u0443\u0441\u0441\u043A\u0438\u0439","language.ar":"\u0627\u0644\u0639\u0631\u0628\u064A\u0629","language.no":"Norsk","language.br":"Portugu\xEAs (Brasil)","language.pt":"Portugu\xEAs","language.bs":"Bosanski","language.th":"\u0E44\u0E17\u0E22","language.tr":"T\xFCrk\xE7e","tui.prompt.placeholder.normal":'\u554F\u9EDE\u4EC0\u9EBC\u2026\u2026 "{{example}}"',"tui.prompt.placeholder.shell":'\u57F7\u884C\u6307\u4EE4\u2026\u2026 "{{example}}"',"tui.prompt.ghost":"{{prediction}} (\u6309 Tab \u63A1\u7D0D)","tui.home.placeholder.example.todo":"\u4FEE\u5FA9\u7A0B\u5F0F\u78BC\u5EAB\u4E2D\u7684 TODO","tui.home.placeholder.example.stack":"\u9019\u500B\u5C08\u6848\u7528\u4E86\u4EC0\u9EBC\u6280\u8853\u68E7\uFF1F","tui.home.placeholder.example.tests":"\u4FEE\u5FA9\u5931\u6557\u7684\u6E2C\u8A66","tui.home.agreement.prefix":"\u4F7F\u7528 QitQode \u5373\u8868\u793A\u4F60\u540C\u610F\u6211\u5011\u7684","tui.home.agreement.terms":"\u670D\u52D9\u5354\u8B70","tui.home.agreement.separator":"\u548C","tui.home.agreement.privacy":"\u96B1\u79C1\u653F\u7B56","tui.home.agreement.suffix":"","tui.prompt.hint.attach_file":"\u65B0\u589E\u6A94\u6848","tui.prompt.hint.subagent":"\u5B50\u667A\u80FD\u9AD4","tui.prompt.hint.commands":"\u559A\u8D77\u547D\u4EE4","tui.prompt.hint.switch_mode":"\u5207\u63DB\u6A21\u5F0F","tui.prompt.hint.settings":"\u8A2D\u5B9A","tui.tips.label":"\u63D0\u793A","tui.tips.plain_terminal":"\u5EFA\u8B70\u4F7F\u7528 iTerm \u6216 VS Code \u7D42\u7AEF\u6A5F","tui.tips.attach_file":"\u8F38\u5165 {highlight}@{/highlight} \u5F8C\u63A5\u6A94\u6848\u540D\u7A31\u4EE5\u6A21\u7CCA\u641C\u5C0B\u4E26\u9644\u52A0\u6A94\u6848","tui.tips.shell_prefix":"\u4EE5 {highlight}!{/highlight} \u958B\u982D\u53EF\u76F4\u63A5\u57F7\u884C shell \u6307\u4EE4\uFF08\u4F8B\u5982 {highlight}!ls -la{/highlight}\uFF09","tui.tips.tab_agent":"\u6309 {highlight}Tab{/highlight} \u6216 {highlight}Shift+Tab{/highlight} \u5728 Build / Plan / Compose \u667A\u6167\u4EE3\u7406\u4E4B\u9593\u5207\u63DB","tui.tips.theme_mode":"\u57F7\u884C {highlight}/dark{/highlight} \u5207\u63DB\u6DF1\u8272\u6A21\u5F0F\uFF0C{highlight}/light{/highlight} \u5207\u63DB\u6DFA\u8272\u6A21\u5F0F","tui.tips.doc":"\u57F7\u884C {highlight}/doc{/highlight} \u958B\u555F\u4F7F\u7528\u6587\u4EF6","tui.tips.undo":"\u4F7F\u7528 {highlight}/undo{/highlight} \u5FA9\u539F\u6700\u5F8C\u4E00\u689D\u8A0A\u606F\u53CA\u5176\u6A94\u6848\u8B8A\u66F4","tui.tips.redo":"\u4F7F\u7528 {highlight}/redo{/highlight} \u9084\u539F\u5148\u524D\u5FA9\u539F\u7684\u8A0A\u606F\u8207\u6A94\u6848\u8B8A\u66F4","tui.tips.drag_drop":"\u628A\u5716\u7247\u6216 PDF \u62D6\u5165\u7D42\u7AEF\u6A5F\u53EF\u4F5C\u70BA\u4E0A\u4E0B\u6587\u52A0\u5165","tui.tips.paste_image":"\u6309 {highlight}Ctrl+V{/highlight} \u628A\u526A\u8CBC\u7C3F\u4E2D\u7684\u5716\u7247\u8CBC\u5230\u8F38\u5165\u6846","tui.tips.editor":"\u6309 {highlight}Ctrl+X E{/highlight} \u6216 {highlight}/editor{/highlight} \u5728\u5916\u90E8\u7DE8\u8F2F\u5668\u4E2D\u7DE8\u8F2F\u8A0A\u606F","tui.tips.init":"\u57F7\u884C {highlight}/init{/highlight} \u6839\u64DA\u4F60\u7684\u7A0B\u5F0F\u78BC\u5EAB\u81EA\u52D5\u7522\u751F\u5C08\u6848\u898F\u5247","tui.tips.models":"\u57F7\u884C {highlight}/models{/highlight} \u6216 {highlight}Ctrl+X M{/highlight} \u5207\u63DB\u6A21\u578B","tui.tips.theme":'\u5728\u6307\u4EE4\u9762\u677F\uFF08{highlight}Ctrl+P{/highlight}\uFF09\u4E2D\u641C\u5C0B "lock" \u53EF\u9396\u5B9A\u4E3B\u984C\u6A21\u5F0F\uFF0C\u4F7F\u5176\u4E0D\u96A8\u7D42\u7AEF\u6A5F\u80CC\u666F\u8B8A\u5316',"tui.tips.new_session":"\u6309 {highlight}Ctrl+X N{/highlight} \u6216 {highlight}/new{/highlight} \u958B\u555F\u5168\u65B0\u5DE5\u4F5C\u968E\u6BB5","tui.tips.sessions":"\u4F7F\u7528 {highlight}/sessions{/highlight} \u6216 {highlight}Ctrl+X L{/highlight} \u5217\u51FA\u4E26\u7E7C\u7E8C\u5148\u524D\u7684\u5DE5\u4F5C\u968E\u6BB5","tui.tips.compact":"\u57F7\u884C {highlight}/compact{/highlight} \u5728\u63A5\u8FD1\u4E0A\u4E0B\u6587\u4E0A\u9650\u6642\u58D3\u7E2E\u9577\u5C0D\u8A71","tui.tips.export":"\u6309 {highlight}Ctrl+X X{/highlight} \u6216 {highlight}/export{/highlight} \u628A\u5C0D\u8A71\u5132\u5B58\u70BA Markdown","tui.tips.copy_last":"\u6309 {highlight}Ctrl+X Y{/highlight} \u5C07\u52A9\u7406\u6700\u5F8C\u4E00\u689D\u8A0A\u606F\u8907\u88FD\u5230\u526A\u8CBC\u7C3F","tui.tips.command_palette":"\u6309 {highlight}Ctrl+P{/highlight} \u6AA2\u8996\u6240\u6709\u53EF\u7528\u52D5\u4F5C\u8207\u6307\u4EE4","tui.tips.leader":"\u524D\u5C0E\u9375\u662F {highlight}Ctrl+X{/highlight}\uFF0C\u642D\u914D\u5176\u4ED6\u6309\u9375\u53EF\u5FEB\u901F\u89F8\u767C\u52D5\u4F5C","tui.tips.f2":"\u6309 {highlight}F2{/highlight} \u5728\u6700\u8FD1\u4F7F\u7528\u7684\u6A21\u578B\u4E4B\u9593\u5FEB\u901F\u5207\u63DB","tui.tips.sidebar":"\u6309 {highlight}Ctrl+X B{/highlight} \u986F\u793A\uFF0F\u96B1\u85CF\u5074\u908A\u6B04","tui.tips.history":"\u7528 {highlight}PageUp{/highlight}/{highlight}PageDown{/highlight} \u700F\u89BD\u5DE5\u4F5C\u968E\u6BB5\u6B77\u53F2","tui.tips.jump_first":"\u6309 {highlight}Ctrl+G{/highlight} \u6216 {highlight}Home{/highlight} \u8DF3\u5230\u5DE5\u4F5C\u968E\u6BB5\u958B\u982D","tui.tips.jump_last":"\u6309 {highlight}Ctrl+Alt+G{/highlight} \u6216 {highlight}End{/highlight} \u8DF3\u5230\u6700\u65B0\u8A0A\u606F","tui.tips.newline":"\u6309 {highlight}Shift+Enter{/highlight} \u6216 {highlight}Ctrl+J{/highlight} \u5728\u8F38\u5165\u6846\u63DB\u884C","tui.tips.clear_input":"\u8F38\u5165\u6642\u6309 {highlight}Ctrl+C{/highlight} \u6E05\u7A7A\u8F38\u5165\u6846","tui.tips.escape":"\u6309 {highlight}Escape{/highlight} \u5728\u56DE\u61C9\u4E2D\u9014\u4E2D\u65B7 AI","tui.tips.plan_agent":"\u5207\u63DB\u5230 {highlight}Plan{/highlight} \u667A\u6167\u4EE3\u7406\u4EE5\u53D6\u5F97\u5EFA\u8B70\u800C\u4E0D\u5BE6\u969B\u8B8A\u66F4","tui.tips.subagent":"\u5728\u63D0\u793A\u8A5E\u4E2D\u4F7F\u7528 {highlight}@agent-name{/highlight} \u547C\u53EB\u5C08\u7528\u5B50\u4EE3\u7406","tui.tips.cycle_sessions":"\u6309 {highlight}Ctrl+X Right/Left{/highlight} \u5728\u7236\u5B50\u5DE5\u4F5C\u968E\u6BB5\u4E4B\u9593\u5207\u63DB","tui.tips.config_files":"\u5EFA\u7ACB {highlight}qitqode.json{/highlight} \u7528\u65BC\u4F3A\u670D\u5668\u7AEF\u8A2D\u5B9A\uFF0C{highlight}tui.json{/highlight} \u7528\u65BC TUI \u8A2D\u5B9A","tui.tips.global_config":"\u628A TUI \u8A2D\u5B9A\u653E\u5728 {highlight}~/.config/qitqode/tui.json{/highlight} \u4F5C\u70BA\u5168\u57DF\u8A2D\u5B9A","tui.tips.schema":"\u5728\u8A2D\u5B9A\u4E2D\u52A0\u5165 {highlight}$schema{/highlight} \u4EE5\u4FBF\u7DE8\u8F2F\u5668\u81EA\u52D5\u5B8C\u6210","tui.tips.default_model":"\u5728\u8A2D\u5B9A\u4E2D\u8A2D\u5B9A {highlight}model{/highlight} \u4F86\u6307\u5B9A\u9810\u8A2D\u6A21\u578B","tui.tips.keybinds":"\u900F\u904E {highlight}tui.json{/highlight} \u7684 {highlight}keybinds{/highlight} \u5340\u6BB5\u8986\u5BEB\u4EFB\u610F\u6309\u9375","tui.tips.disable_keybind":"\u628A\u4EFB\u610F\u6309\u9375\u8A2D\u70BA {highlight}none{/highlight} \u5373\u53EF\u5B8C\u5168\u505C\u7528\u5B83","tui.tips.mcp_config":"\u5728 {highlight}mcp{/highlight} \u8A2D\u5B9A\u9805\u4E2D\u8A2D\u5B9A\u672C\u6A5F\u6216\u9060\u7AEF MCP \u4F3A\u670D\u5668","tui.tips.mcp_oauth":"QitQode \u81EA\u52D5\u8655\u7406\u9700\u8981\u9A57\u8B49\u7684\u9060\u7AEF MCP \u4F3A\u670D\u5668\u7684 OAuth","tui.tips.custom_command":"\u5728 {highlight}.qitqode/command/{/highlight} \u52A0\u5165 {highlight}.md{/highlight} \u6A94\u6848\u4EE5\u5B9A\u7FA9\u53EF\u91CD\u7528\u81EA\u8A02\u63D0\u793A","tui.tips.command_args":"\u5728\u81EA\u8A02\u6307\u4EE4\u4E2D\u4F7F\u7528 {highlight}$ARGUMENTS{/highlight}\u3001{highlight}$1{/highlight}\u3001{highlight}$2{/highlight} \u63A5\u6536\u52D5\u614B\u53C3\u6578","tui.tips.command_backticks":"\u5728\u6307\u4EE4\u4E2D\u4F7F\u7528\u53CD\u5F15\u865F\u6CE8\u5165 shell \u8F38\u51FA\uFF08\u4F8B\u5982 {highlight}`git status`{/highlight}\uFF09","tui.tips.custom_agent":"\u5728 {highlight}.qitqode/agent/{/highlight} \u52A0\u5165 {highlight}.md{/highlight} \u6A94\u6848\u4F86\u5EFA\u7ACB\u5C08\u7528 AI \u89D2\u8272","tui.tips.agent_perms":"\u70BA\u6BCF\u500B\u667A\u6167\u4EE3\u7406\u55AE\u7368\u8A2D\u5B9A {highlight}edit{/highlight}\u3001{highlight}bash{/highlight}\u3001{highlight}webfetch{/highlight} \u5DE5\u5177\u6B0A\u9650","tui.tips.bash_allow":'\u4F7F\u7528 {highlight}"git *": "allow"{/highlight} \u9019\u985E\u6A21\u5F0F\u505A\u7CBE\u7D30 bash \u6B0A\u9650',"tui.tips.bash_deny":'\u8A2D\u5B9A {highlight}"rm -rf *": "deny"{/highlight} \u963B\u64CB\u7834\u58DE\u6027\u6307\u4EE4',"tui.tips.bash_ask":'\u8A2D\u5B9A {highlight}"git push": "ask"{/highlight} \u5728\u63A8\u9001\u524D\u8981\u6C42\u78BA\u8A8D',"tui.tips.formatter":"QitQode \u81EA\u52D5\u4F7F\u7528 prettier\u3001gofmt\u3001ruff \u7B49\u683C\u5F0F\u5316\u6A94\u6848","tui.tips.disable_formatter":'\u5728\u8A2D\u5B9A\u4E2D\u8A2D\u5B9A {highlight}"formatter": false{/highlight} \u95DC\u9589\u6240\u6709\u81EA\u52D5\u683C\u5F0F\u5316',"tui.tips.custom_formatter":"\u5728\u8A2D\u5B9A\u4E2D\u4F9D\u6A94\u6848\u526F\u6A94\u540D\u5B9A\u7FA9\u81EA\u8A02\u683C\u5F0F\u5316\u6307\u4EE4","tui.tips.lsp":"QitQode \u4F7F\u7528 LSP \u4F3A\u670D\u5668\u9032\u884C\u667A\u6167\u7A0B\u5F0F\u78BC\u5206\u6790","tui.tips.custom_tool":"\u5728 {highlight}.qitqode/tools/{/highlight} \u5EFA\u7ACB {highlight}.ts{/highlight} \u6A94\u6848\u5B9A\u7FA9\u65B0\u7684 LLM \u5DE5\u5177","tui.tips.tool_scripts":"\u5DE5\u5177\u5B9A\u7FA9\u53EF\u547C\u53EB Python\u3001Go \u7B49\u6307\u4EE4\u7A3F","tui.tips.plugins":"\u5728 {highlight}.qitqode/plugin/{/highlight} \u52A0\u5165 {highlight}.ts{/highlight} \u6A94\u6848\u639B\u8F09\u4E8B\u4EF6\u52FE\u9EDE","tui.tips.plugin_notify":"\u7528\u5916\u639B\u5728\u5DE5\u4F5C\u968E\u6BB5\u5B8C\u6210\u6642\u50B3\u9001\u7CFB\u7D71\u901A\u77E5","tui.tips.plugin_protect":"\u64B0\u5BEB\u4E00\u500B\u5916\u639B\u963B\u6B62 QitQode \u8B80\u53D6\u654F\u611F\u6A94\u6848","tui.tips.run":"\u7528 {highlight}qitqode run{/highlight} \u9032\u884C\u975E\u4E92\u52D5\u5F0F\u6307\u4EE4\u7A3F\u547C\u53EB","tui.tips.continue":"\u7528 {highlight}qitqode --continue{/highlight} \u7E7C\u7E8C\u4E0A\u4E00\u500B\u5DE5\u4F5C\u968E\u6BB5","tui.tips.attach_cli":"\u7528 {highlight}qitqode run -f file.ts{/highlight} \u900F\u904E\u547D\u4EE4\u5217\u9644\u52A0\u6A94\u6848","tui.tips.format_json":"\u7528 {highlight}--format json{/highlight} \u5728\u6307\u4EE4\u7A3F\u4E2D\u53D6\u5F97\u6A5F\u5668\u53EF\u8B80\u8F38\u51FA","tui.tips.auth_list":"\u57F7\u884C {highlight}qitqode auth status{/highlight} \u6AA2\u8996\u76EE\u524D\u7684\u767B\u5165\u72C0\u614B","tui.tips.agent_create":"\u57F7\u884C {highlight}qitqode agent create{/highlight} \u5F15\u5C0E\u5F0F\u5EFA\u7ACB\u667A\u6167\u4EE3\u7406","tui.tips.theme_system":'\u4F7F\u7528 {highlight}"theme": "system"{/highlight} \u8DDF\u96A8\u7D42\u7AEF\u6A5F\u914D\u8272',"tui.tips.theme_files":"\u5728 {highlight}.qitqode/themes/{/highlight} \u76EE\u9304\u4E0B\u5EFA\u7ACB JSON \u4E3B\u984C\u6A94\u6848","tui.tips.theme_variants":"\u4E3B\u984C\u652F\u63F4\u6DF1\u8272\uFF0F\u6DFA\u8272\u96D9\u6A21\u5F0F\u8B8A\u9AD4","tui.tips.theme_ansi":"\u81EA\u8A02\u4E3B\u984C\u4E2D\u53EF\u53C3\u7167 ANSI 0-255 \u8272\u865F","tui.tips.env_var":"\u5728\u8A2D\u5B9A\u4E2D\u7528 {highlight}{env:VAR_NAME}{/highlight} \u8A9E\u6CD5\u53C3\u7167\u74B0\u5883\u8B8A\u6578","tui.tips.file_var":"\u7528 {highlight}{file:path}{/highlight} \u5728\u8A2D\u5B9A\u503C\u4E2D\u5D4C\u5165\u6A94\u6848\u5167\u5BB9","tui.tips.instructions":"\u5728\u8A2D\u5B9A\u4E2D\u7528 {highlight}instructions{/highlight} \u8F09\u5165\u984D\u5916\u7684\u898F\u5247\u6A94\u6848","tui.tips.temperature":"\u628A\u667A\u6167\u4EE3\u7406\u7684 {highlight}temperature{/highlight} \u5F9E 0.0\uFF08\u5C08\u6CE8\uFF09\u8ABF\u5230 1.0\uFF08\u5275\u9020\uFF09","tui.tips.steps":"\u8A2D\u5B9A {highlight}steps{/highlight} \u9650\u5236\u6BCF\u6B21\u8ACB\u6C42\u7684\u4EE3\u7406\u8FED\u4EE3\u6B21\u6578","tui.tips.disable_tool":'\u8A2D\u5B9A {highlight}"tools": {"bash": false}{/highlight} \u505C\u7528\u7279\u5B9A\u5DE5\u5177',"tui.tips.disable_mcp_tools":'\u8A2D\u5B9A {highlight}"mcp_*": false{/highlight} \u505C\u7528\u67D0\u500B MCP \u4F3A\u670D\u5668\u7684\u6240\u6709\u5DE5\u5177',"tui.tips.tool_override":"\u5728\u6BCF\u500B\u667A\u6167\u4EE3\u7406\u8A2D\u5B9A\u4E2D\u8986\u5BEB\u5168\u57DF\u5DE5\u5177\u8A2D\u5B9A","tui.tips.doom_loop":"\u6B0A\u9650 {highlight}doom_loop{/highlight} \u9632\u6B62\u5DE5\u5177\u547C\u53EB\u9677\u5165\u7121\u7AAE\u8FF4\u5708","tui.tips.external_dir":"\u6B0A\u9650 {highlight}external_directory{/highlight} \u4FDD\u8B77\u5C08\u6848\u5916\u90E8\u7684\u6A94\u6848","tui.tips.debug_config":"\u57F7\u884C {highlight}qitqode debug config{/highlight} \u6392\u67E5\u8A2D\u5B9A\u554F\u984C","tui.tips.print_logs":"\u4F7F\u7528 {highlight}--print-logs{/highlight} \u65D7\u6A19\u5728 stderr \u8F38\u51FA\u8A73\u7D30\u8A18\u9304","tui.tips.timeline":"\u6309 {highlight}Ctrl+X G{/highlight} \u6216 {highlight}/timeline{/highlight} \u8DF3\u5230\u6307\u5B9A\u8A0A\u606F","tui.tips.toggle_code":"\u6309 {highlight}Ctrl+X H{/highlight} \u5207\u63DB\u8A0A\u606F\u4E2D\u7A0B\u5F0F\u78BC\u5340\u584A\u7684\u986F\u793A","tui.tips.status":"\u6309 {highlight}Ctrl+X S{/highlight} \u6216 {highlight}/status{/highlight} \u6AA2\u8996\u7CFB\u7D71\u72C0\u614B","tui.tips.scroll_accel":"\u5728 {highlight}tui.json{/highlight} \u4E2D\u555F\u7528 {highlight}scroll_acceleration{/highlight} \u4EAB\u53D7\u5E73\u6ED1\u6372\u52D5","tui.tips.agents_md":"\u628A\u5C08\u6848\u4E2D\u7684 {highlight}AGENTS.md{/highlight} \u63D0\u4EA4\u5230 Git \u8207\u5718\u968A\u5171\u4EAB","tui.tips.review":"\u7528 {highlight}/review{/highlight} \u5BE9\u95B1\u672A\u63D0\u4EA4\u8B8A\u66F4\u3001\u5206\u652F\u6216 PR","tui.tips.help":"\u57F7\u884C {highlight}/help{/highlight} \u6216 {highlight}Ctrl+X H{/highlight} \u986F\u793A\u8AAA\u660E\u5C0D\u8A71\u6846","tui.tips.rename":"\u7528 {highlight}/rename{/highlight} \u91CD\u65B0\u547D\u540D\u76EE\u524D\u7684\u5DE5\u4F5C\u968E\u6BB5","tui.tips.suspend.unix":"\u6309 {highlight}Ctrl+Z{/highlight} \u66AB\u505C\u7D42\u7AEF\u6A5F\u4E26\u8FD4\u56DE shell","tui.tips.suspend.win":"\u6309 {highlight}Ctrl+Z{/highlight} \u5FA9\u539F\u8F38\u5165\u6846\u4E2D\u7684\u8F38\u5165","tui.command.palette.title":"\u6307\u4EE4","tui.command.palette.suggested":"\u63A8\u85A6","tui.command.category.session":"\u5DE5\u4F5C\u968E\u6BB5","tui.command.category.agent":"\u667A\u6167\u4EE3\u7406","tui.command.category.provider":"\u4F9B\u61C9\u5546","tui.command.category.system":"\u7CFB\u7D71","tui.command.category.prompt":"\u8F38\u5165\u6846","tui.command.category.internal":"\u5167\u5EFA","tui.command.category.external":"\u7B2C\u4E09\u65B9","tui.slash.init.description":"\u5F15\u5C0E\u5F0F AGENTS.md \u8A2D\u5B9A","tui.slash.review.description":"\u5BE9\u67E5\u8B8A\u66F4 [commit|branch|pr]\uFF0C\u9810\u8A2D\u672A\u63D0\u4EA4\u7684\u8B8A\u66F4","tui.slash.dream.description":"\u5F9E memory \u6A94\u6848\u8207\u539F\u59CB\u8ECC\u8DE1\u4E2D\u624B\u52D5\u6574\u5408\u5C08\u6848\u8A18\u61B6","tui.slash.distill.description":"\u5728\u6700\u8FD1\u5DE5\u4F5C\u4E2D\u767C\u73FE\u91CD\u8907\u6D41\u7A0B\uFF0C\u6253\u5305\u70BA skill\u3001\u5B50\u667A\u6167\u4EE3\u7406\u6216\u547D\u4EE4","tui.slash.goal.description":"\u8A2D\u5B9A\u7D42\u6B62\u689D\u4EF6\u76EE\u6A19\uFF1B\u57F7\u884C\u76F4\u5230\u5224\u5B9A\u9054\u6210\u3002\u4F7F\u7528 /goal clear \u4E2D\u6B62","tui.slash.deep-research.description":"\u6DF1\u5EA6\u591A\u4F86\u6E90\u3001\u4E8B\u5BE6\u6838\u67E5\u7684\u7814\u7A76\u5831\u544A\uFF08\u57F7\u884C deep-research \u5DE5\u4F5C\u6D41\u7A0B\uFF09","tui.command.language.switch.title":"\u5207\u63DB\u8A9E\u8A00","tui.command.language.switch.description":"\u8B8A\u66F4\u986F\u793A\u8A9E\u8A00","tui.command.language.dialog.title":"\u5207\u63DB\u8A9E\u8A00","tui.language.auto":"\u81EA\u52D5\uFF08\u8DDF\u96A8\u7CFB\u7D71\uFF09","tui.language.current":"\u76EE\u524D","tui.command.session.list.title":"\u5207\u63DB\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.new.title":"\u65B0\u589E\u5DE5\u4F5C\u968E\u6BB5","tui.command.workflow.list.title":"\u5DE5\u4F5C\u6D41\u7A0B","tui.command.model.list.title":"\u5207\u63DB\u6A21\u578B","tui.command.model.cycle_recent.title":"\u5FAA\u74B0\u5207\u63DB\u6A21\u578B","tui.command.model.cycle_recent_reverse.title":"\u53CD\u5411\u5FAA\u74B0\u5207\u63DB\u6A21\u578B","tui.command.model.cycle_favorite.title":"\u5FAA\u74B0\u5207\u63DB\u6536\u85CF\u6A21\u578B","tui.command.model.cycle_favorite_reverse.title":"\u53CD\u5411\u5FAA\u74B0\u5207\u63DB\u6536\u85CF\u6A21\u578B","tui.command.agent.list.title":"\u5207\u63DB\u667A\u6167\u4EE3\u7406","tui.command.mcp.list.title":"\u5207\u63DB MCP","tui.command.never_ask.title_on":"\u8DF3\u904E\u63D0\u554F\uFF1A\u5DF2\u958B\u555F\uFF08\u81EA\u52D5\u6C7A\u7B56\uFF0C\u6B0A\u9650\u8ACB\u6C42\u9664\u5916\uFF09 - \u9EDE\u64CA\u95DC\u9589","tui.command.never_ask.title_off":"\u8DF3\u904E\u63D0\u554F\uFF1A\u5DF2\u95DC\u9589 - \u9EDE\u64CA\u958B\u555F\uFF08\u81EA\u52D5\u6C7A\u7B56\uFF0C\u6B0A\u9650\u8ACB\u6C42\u9664\u5916\uFF09","tui.command.never_ask.toast_on":"\u5DF2\u958B\u555F\u8DF3\u904E\u63D0\u554F \u2014 \u6211\u4E0D\u6703\u518D\u5411\u4F60\u63D0\u554F\uFF0C\u6703\u81EA\u884C\u9078\u64C7\u6700\u4F73\u9078\u9805\uFF0C\u76F4\u5230\u4F60\u95DC\u9589\uFF08/never-ask\uFF09\u3002\u6B0A\u9650\u8ACB\u6C42\u4ECD\u9700\u4F60\u78BA\u8A8D\u3002","tui.command.never_ask.toast_off":"\u5DF2\u95DC\u9589\u8DF3\u904E\u63D0\u554F \u2014 \u9047\u5230\u6C7A\u7B56\u9EDE\u6211\u6703\u91CD\u65B0\u5411\u4F60\u63D0\u554F\u3002","tui.command.never_ask.title_on_fullauto":"\u8DF3\u904E\u63D0\u554F\uFF1A\u5DF2\u958B\u555F\uFF08\u81EA\u52D5\u6C7A\u7B56\uFF1B\u5168\u81EA\u52D5\u6A21\u5F0F\u540C\u6642\u81EA\u52D5\u6838\u51C6\u6B0A\u9650\uFF09 - \u9EDE\u64CA\u95DC\u9589","tui.command.never_ask.title_off_fullauto":"\u8DF3\u904E\u63D0\u554F\uFF1A\u5DF2\u95DC\u9589 - \u9EDE\u64CA\u958B\u555F\uFF08\u81EA\u52D5\u6C7A\u7B56\uFF1B\u5168\u81EA\u52D5\u6A21\u5F0F\u4ECD\u5728\u81EA\u52D5\u6838\u51C6\u6B0A\u9650\uFF09","tui.command.never_ask.toast_on_fullauto":"\u5DF2\u958B\u555F\u8DF3\u904E\u63D0\u554F \u2014 \u6211\u4E0D\u6703\u518D\u5411\u4F60\u63D0\u554F\uFF0C\u6703\u81EA\u884C\u9078\u64C7\u6700\u4F73\u9078\u9805\uFF0C\u76F4\u5230\u4F60\u95DC\u9589\uFF08/never-ask\uFF09\u3002\u5168\u81EA\u52D5\u6A21\u5F0F\u5DF2\u958B\u555F\uFF0C\u5DE5\u5177\u6B0A\u9650\u8ACB\u6C42\u4E5F\u6703\u81EA\u52D5\u6838\u51C6\u3002","tui.command.agent.cycle.title":"\u5FAA\u74B0\u5207\u63DB\u667A\u6167\u4EE3\u7406","tui.command.variant.cycle.title":"\u5FAA\u74B0\u5207\u63DB\u6A21\u578B\u8B8A\u9AD4","tui.command.variant.list.title":"\u5207\u63DB\u6A21\u578B\u8B8A\u9AD4","tui.command.agent.cycle.reverse.title":"\u53CD\u5411\u5FAA\u74B0\u5207\u63DB\u667A\u6167\u4EE3\u7406","tui.command.provider.login.title":"\u767B\u5165","tui.command.provider.logout.title":"\u767B\u51FA","tui.command.console.org.switch.title":"\u5207\u63DB\u7D44\u7E54","tui.command.qitqode.status.title":"\u6AA2\u8996\u72C0\u614B","tui.command.worktree.list.title":"\u5DE5\u4F5C\u6A39","tui.command.theme.switch.title":"\u5207\u63DB\u4E3B\u984C","tui.command.theme.switch_mode.to_light":"\u5207\u63DB\u5230\u6DFA\u8272\u6A21\u5F0F","tui.command.theme.switch_mode.to_dark":"\u5207\u63DB\u5230\u6DF1\u8272\u6A21\u5F0F","tui.command.theme.mode.unlock":"\u89E3\u9664\u9396\u5B9A\u4E3B\u984C\u6A21\u5F0F","tui.command.theme.mode.lock":"\u9396\u5B9A\u4E3B\u984C\u6A21\u5F0F","tui.command.help.show.title":"\u8AAA\u660E","tui.dialog.help.close_hint":"esc/enter/space","tui.dialog.help.accessibility":"\u7121\u969C\u7919:\u53EF\u5728\u547D\u4EE4\u6E05\u55AE\u4E2D\u5207\u63DB\u52D5\u756B\u548C\u8072\u97F3\u3002\u74B0\u5883\u8B8A\u6578:NO_COLOR, QITQODE_TUI_ACCESSIBLE, QITQODE_REDUCE_MOTION, QITQODE_TUI_SOUND\u3002","tui.dialog.help.announcements":"\u64AD\u5831:\u5728\u7121\u969C\u7919\u6A21\u5F0F\u4E0B,\u53EF\u900F\u904E\u547D\u4EE4\u6E05\u55AE\u6216 QITQODE_TUI_ANNOUNCEMENTS \u9078\u64C7\u87A2\u5E55\u95B1\u8B80\u5668\u64AD\u5831\u7684\u8A73\u7D30\u7A0B\u5EA6(\u5B89\u975C\u3001\u6B63\u5E38\u3001\u8A73\u7D30)\u3002\u932F\u8AA4\u6C38\u9060\u6703\u64AD\u5831\u3002","tui.dialog.help.dialog_keys":"\u5C0D\u8A71\u65B9\u584A:\u6240\u6709\u5C0D\u8A71\u65B9\u584A\u5747\u53EF\u50C5\u7528\u9375\u76E4\u64CD\u4F5C \u2014 Esc \u95DC\u9589,Tab \u6216\u65B9\u5411\u9375\u79FB\u52D5\u7126\u9EDE,Enter \u6216\u7A7A\u683C\u9375\u555F\u7528\u76EE\u524D\u63A7\u5236\u9805\u3002","tui.command.app.announcements.cycle":"\u64AD\u5831:{{level}}(\u9078\u64C7\u4EE5\u8B8A\u66F4)","tui.announcements.level.quiet":"\u5B89\u975C","tui.announcements.level.normal":"\u6B63\u5E38","tui.announcements.level.verbose":"\u8A73\u7D30","tui.app.terminal_too_small":"\u7D42\u7AEF\u8996\u7A97\u904E\u5C0F ({{width}}x{{height}}),\u8ACB\u8ABF\u6574\u5230\u81F3\u5C11 40x8\u3002","tui.dialog.help.command_list":"\u6309 {{keybind}} \u6AA2\u8996\u76EE\u524D\u5167\u5BB9\u4E2D\u6240\u6709\u53EF\u7528\u7684\u64CD\u4F5C\u8207\u547D\u4EE4\u3002","tui.dialog.help.ok":"\u78BA\u5B9A","tui.dialog.close_hint":"esc","tui.dialog.document.scroll_hint":"\u2191/\u2193 \u6372\u52D5 \xB7 PgUp/PgDn \u7FFB\u9801 \xB7 esc \u95DC\u9589","tui.dialog.ok":"\u78BA\u5B9A","tui.dialog.confirm.cancel":"\u53D6\u6D88","tui.dialog.confirm.confirm":"\u78BA\u8A8D","tui.dialog.agreement.title":"\u670D\u52D9\u5354\u8B70\u8207\u96B1\u79C1\u653F\u7B56","tui.dialog.agreement.message":"\u8ACB\u95B1\u8B80\u4E26\u540C\u610F\u5F8C\u7E7C\u7E8C\u4F7F\u7528\u3002","tui.dialog.agreement.confirm":"\u540C\u610F\u4E26\u7E7C\u7E8C","tui.command.docs.terms.title":"\u67E5\u770B\u670D\u52D9\u689D\u6B3E","tui.command.docs.privacy.title":"\u67E5\u770B\u96B1\u79C1\u653F\u7B56","tui.command.consent.revoke.title":"\u64A4\u92B7\u514D\u8CBB\u6A21\u578B\u5354\u8B70","tui.consent.revoked":"\u5DF2\u64A4\u92B7\u514D\u8CBB\u6A21\u578B\u5354\u8B70 \u2014 \u4E0B\u6B21\u4F7F\u7528\u6642\u5C07\u518D\u6B21\u8ACB\u6C42\u540C\u610F","tui.dialog.select.placeholder":"\u641C\u5C0B","tui.dialog.select.no_results":"\u627E\u4E0D\u5230\u7D50\u679C","tui.dialog.prompt.placeholder":"\u8F38\u5165\u6587\u5B57","tui.dialog.prompt.busy":"\u8655\u7406\u4E2D...","tui.dialog.prompt.processing":"\u8655\u7406\u4E2D...","tui.dialog.prompt.submit_key":"enter","tui.dialog.prompt.submit_action":"\u63D0\u4EA4","tui.dialog.export.title":"\u532F\u51FA\u9078\u9805","tui.dialog.export.filename":"\u6A94\u6848\u540D\u7A31\uFF1A","tui.dialog.export.filename_placeholder":"\u8F38\u5165\u6A94\u6848\u540D\u7A31","tui.dialog.export.include_thinking":"\u5305\u542B\u601D\u8003\u904E\u7A0B","tui.dialog.export.include_tool_details":"\u5305\u542B\u5DE5\u5177\u8A73\u7D30\u8CC7\u6599","tui.dialog.export.include_assistant_metadata":"\u5305\u542B\u52A9\u7406\u4E2D\u7E7C\u8CC7\u6599","tui.dialog.export.open_without_saving":"\u76F4\u63A5\u958B\u555F\u800C\u4E0D\u5132\u5B58","tui.dialog.export.hint.toggle_prefix":"\u6309","tui.dialog.export.hint.toggle_action":"\u5207\u63DB","tui.dialog.export.hint.confirm_action":"\u78BA\u8A8D","tui.dialog.export.hint.options_action":"\u67E5\u770B\u9078\u9805","tui.toast.copied_to_clipboard":"\u5DF2\u8907\u88FD\u5230\u526A\u8CBC\u7C3F","tui.toast.instructions_loaded":"\u5DF2\u8F09\u5165 {{files}}","tui.toast.update_available.title":"\u6709\u65B0\u7248\u672C\u53EF\u7528","tui.toast.update_available.confirm":"\u65B0\u7248\u672C v{{version}} \u5DF2\u767C\u4F48\uFF0C\u662F\u5426\u7ACB\u5373\u66F4\u65B0\uFF1F","tui.toast.update_available.updating":"\u6B63\u5728\u66F4\u65B0\u5230 v{{version}}...","tui.toast.update_available.failed":"\u66F4\u65B0\u5931\u6557","tui.toast.update_available.success":"\u5DF2\u66F4\u65B0\u5230 QitQode v{{version}}\uFF0C\u8ACB\u91CD\u65B0\u555F\u52D5\u61C9\u7528\u7A0B\u5F0F\u3002","tui.toast.updated.title":"\u5DF2\u81EA\u52D5\u66F4\u65B0","tui.toast.updated.message":"\u5DF2\u81EA\u52D5\u5957\u7528\u4FEE\u88DC\u66F4\u65B0\uFF1Av{{version}}\u3002\u91CD\u65B0\u555F\u52D5\u5F8C\u751F\u6548\u3002\u53EF\u5728\u8A2D\u5B9A\u4E2D\u8A2D\u7F6E autoupdate: false \u95DC\u9589\u81EA\u52D5\u66F4\u65B0\u3002","tui.sidebar.instructions":"\u6307\u4EE4\u6A94\u6848","tui.sidebar.cwd":"\u5DE5\u4F5C\u76EE\u9304","tui.toast.unknown_error":"\u767C\u751F\u672A\u77E5\u932F\u8AA4","tui.command.docs.open.title":"\u958B\u555F\u6587\u4EF6","tui.command.app.exit.title":"\u7D50\u675F\u61C9\u7528\u7A0B\u5F0F","tui.command.app.debug.title":"\u5207\u63DB\u5075\u932F\u9762\u677F","tui.command.app.console.title":"\u5207\u63DB\u4E3B\u63A7\u53F0","tui.command.app.heap_snapshot.title":"\u532F\u51FA\u5806\u7A4D\u5FEB\u7167","tui.command.terminal.suspend.title":"\u66AB\u505C\u7D42\u7AEF\u6A5F","tui.command.terminal.title.disable":"\u505C\u7528\u7D42\u7AEF\u6A5F\u6A19\u984C","tui.command.terminal.title.enable":"\u555F\u7528\u7D42\u7AEF\u6A5F\u6A19\u984C","tui.command.app.toggle.animations.disable":"\u505C\u7528\u52D5\u756B","tui.command.app.toggle.animations.enable":"\u555F\u7528\u52D5\u756B","tui.command.app.toggle.diffwrap.disable":"\u505C\u7528 diff \u81EA\u52D5\u63DB\u884C","tui.command.app.toggle.diffwrap.enable":"\u555F\u7528 diff \u81EA\u52D5\u63DB\u884C","tui.command.app.toggle.sound.disable":"\u505C\u7528\u8072\u97F3","tui.command.app.toggle.sound.enable":"\u555F\u7528\u8072\u97F3","tui.command.logout.toast":"\u5DF2\u767B\u51FA","tui.command.session.share.title":"\u5206\u4EAB\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.share.copy_link":"\u8907\u88FD\u5206\u4EAB\u9023\u7D50","tui.command.session.rename.title":"\u91CD\u65B0\u547D\u540D\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.timeline.title":"\u8DF3\u5230\u8A0A\u606F","tui.command.session.fork.title":"\u5206\u652F\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.compact.title":"\u58D3\u7E2E\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.unshare.title":"\u53D6\u6D88\u5206\u4EAB","tui.command.session.undo.title":"\u5FA9\u539F\u4E0A\u4E00\u689D\u8A0A\u606F","tui.command.session.redo.title":"\u91CD\u505A","tui.command.session.sidebar.show":"\u986F\u793A\u5074\u908A\u6B04","tui.command.session.sidebar.hide":"\u96B1\u85CF\u5074\u908A\u6B04","tui.command.session.conceal.disable":"\u95DC\u9589\u7A0B\u5F0F\u78BC\u96B1\u85CF","tui.command.session.conceal.enable":"\u958B\u555F\u7A0B\u5F0F\u78BC\u96B1\u85CF","tui.command.session.timestamps.show":"\u986F\u793A\u6642\u9593\u6233\u8A18","tui.command.session.timestamps.hide":"\u96B1\u85CF\u6642\u9593\u6233\u8A18","tui.command.session.thinking.expand":"\u5C55\u958B\u601D\u8003\u904E\u7A0B","tui.command.session.thinking.collapse":"\u647A\u758A\u601D\u8003\u904E\u7A0B","tui.command.session.tool_details.show":"\u986F\u793A\u5DE5\u5177\u8A73\u7D30\u8CC7\u6599","tui.command.session.tool_details.hide":"\u96B1\u85CF\u5DE5\u5177\u8A73\u7D30\u8CC7\u6599","tui.command.session.scrollbar.toggle":"\u5207\u63DB\u5DE5\u4F5C\u968E\u6BB5\u6372\u8EF8","tui.command.session.generic_tool_output.show":"\u986F\u793A\u901A\u7528\u5DE5\u5177\u8F38\u51FA","tui.command.session.generic_tool_output.hide":"\u96B1\u85CF\u901A\u7528\u5DE5\u5177\u8F38\u51FA","tui.command.session.page_up.title":"\u4E0A\u4E00\u9801","tui.command.session.page_down.title":"\u4E0B\u4E00\u9801","tui.command.session.line_up.title":"\u5411\u4E0A\u4E00\u884C","tui.command.session.line_down.title":"\u5411\u4E0B\u4E00\u884C","tui.command.session.half_page_up.title":"\u5411\u4E0A\u534A\u9801","tui.command.session.half_page_down.title":"\u5411\u4E0B\u534A\u9801","tui.command.session.first.title":"\u7B2C\u4E00\u689D\u8A0A\u606F","tui.command.session.last.title":"\u6700\u5F8C\u4E00\u689D\u8A0A\u606F","tui.command.session.last_user.title":"\u8DF3\u5230\u6700\u5F8C\u4E00\u689D\u4F7F\u7528\u8005\u8A0A\u606F","tui.command.session.message_next.title":"\u4E0B\u4E00\u689D\u8A0A\u606F","tui.command.session.message_previous.title":"\u4E0A\u4E00\u689D\u8A0A\u606F","tui.command.messages.copy.title":"\u8907\u88FD\u6700\u5F8C\u4E00\u689D\u52A9\u7406\u8A0A\u606F","tui.command.session.copy.title":"\u8907\u88FD\u5C0D\u8A71\u8A18\u9304","tui.command.session.export.title":"\u532F\u51FA\u5C0D\u8A71\u8A18\u9304","tui.command.session.child_first.title":"\u9032\u5165\u5B50\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.parent.title":"\u8FD4\u56DE\u7236\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.child_next.title":"\u4E0B\u4E00\u500B\u5B50\u5DE5\u4F5C\u968E\u6BB5","tui.command.session.child_previous.title":"\u4E0A\u4E00\u500B\u5B50\u5DE5\u4F5C\u968E\u6BB5","tui.command.prompt.clear.title":"\u6E05\u7A7A\u8F38\u5165\u6846","tui.command.prompt.submit.title":"\u9001\u51FA\u63D0\u793A\u8A5E","tui.command.prompt.paste.title":"\u8CBC\u4E0A","tui.command.session.interrupt.title":"\u4E2D\u65B7\u5DE5\u4F5C\u968E\u6BB5","tui.command.prompt.editor.title":"\u958B\u555F\u7DE8\u8F2F\u5668","tui.command.prompt.skills.title":"\u6280\u80FD","tui.command.voice.toggle.title":"\u5207\u63DB\u8A9E\u97F3\u8F38\u5165","tui.command.voice.toggle.title_on":"\u8A9E\u97F3\u8F38\u5165\uFF1A\u5DF2\u958B\u555F \u2014 \u9EDE\u64CA\u95DC\u9589","tui.command.voice.toggle.title_off":"\u8A9E\u97F3\u8F38\u5165\uFF1A\u5DF2\u95DC\u9589 \u2014 \u9EDE\u64CA\u958B\u555F","tui.command.voice.send.title":"\u5207\u63DB\u8A9E\u97F3\u767C\u9001\u6307\u4EE4","tui.command.voice.send.title_on":"\u8A9E\u97F3\u767C\u9001\uFF1A\u5DF2\u958B\u555F \u2014 \u9EDE\u64CA\u95DC\u9589","tui.command.voice.send.title_off":"\u8A9E\u97F3\u767C\u9001\uFF1A\u5DF2\u95DC\u9589 \u2014 \u9EDE\u64CA\u958B\u555F","tui.voice.enabled":"\u8A9E\u97F3\u8F38\u5165\u5DF2\u555F\u7528\uFF08\u7C21\u9AD4\u4E2D\u6587/\u82F1\u8A9E\uFF09\u2014 \u9EDE\u64CA [Voice] \u958B\u59CB\u9304\u97F3","tui.voice.disabled":"\u8A9E\u97F3\u8F38\u5165\u5DF2\u95DC\u9589","tui.voice.send.enabled":"\u8A9E\u97F3\u767C\u9001\u5DF2\u555F\u7528 \u2014 \u505C\u9813\u5F8C\u6E05\u6670\u5FF5\u51FA\u300C\u53D1\u9001\u300D\u5373\u53EF\u63D0\u4EA4","tui.voice.send.disabled":"\u8A9E\u97F3\u767C\u9001\u5DF2\u95DC\u9589","tui.voice.control.enabled":"\u8A9E\u97F3\u63A7\u5236\u5DF2\u555F\u7528 \u2014 \u4F7F\u7528\u591A\u6A21\u614B\u6A21\u578B\u667A\u6167\u7DE8\u8F2F\uFF08\u8F03\u6162\uFF09","tui.voice.control.disabled":"\u8A9E\u97F3\u63A7\u5236\u5DF2\u95DC\u9589 \u2014 \u4F7F\u7528\u5FEB\u901F ASR \u8F49\u5BEB","tui.command.voice.control.title":"\u5207\u63DB\u8A9E\u97F3\u63A7\u5236\uFF08\u591A\u6A21\u614B\uFF09","tui.command.voice.control.title_on":"\u8A9E\u97F3\u63A7\u5236\uFF1A\u5DF2\u958B\u555F\uFF08\u591A\u6A21\u614B\uFF09 \u2014 \u9EDE\u64CA\u95DC\u9589","tui.command.voice.control.title_off":"\u8A9E\u97F3\u63A7\u5236\uFF1A\u5DF2\u95DC\u9589\uFF08\u5FEB\u901F ASR\uFF09 \u2014 \u9EDE\u64CA\u958B\u555F","tui.voice.error.no_auth":"\u8ACB\u5148\u7528 /connect \u9023\u63A5 QitQode \u5E33\u865F\uFF0C\u6216\u914D\u7F6E voice.asr_model \u6307\u5B9A\u5176\u4ED6 provider","tui.voice.error.no_auth_provider":"\u8A9E\u97F3 provider\u300C{{provider}}\u300D\u672A\u8A8D\u8B49\uFF0C\u8ACB\u6AA2\u67E5\u5176 apiKey \u914D\u7F6E","tui.voice.error.provider_not_found":"provider\u300C{{provider}}\u300D\u4E0D\u53EF\u7528 \u2014 \u8ACB /connect \u9023\u63A5\uFF0C\u81EA\u5B9A\u7FA9\u7AEF\u9EDE\u9700\u5728\u914D\u7F6E\u4E2D\u8072\u660E models","tui.voice.error.no_url":"provider\u300C{{provider}}\u300D\u672A\u914D\u7F6E baseURL\uFF0C\u8ACB\u5728 options.baseURL \u4E2D\u6307\u5B9A","tui.voice.error.no_device":"\u672A\u5075\u6E2C\u5230\u9EA5\u514B\u98A8/\u97F3\u8A0A\u88DD\u7F6E \u2014 \u8ACB\u6AA2\u67E5\u7CFB\u7D71\u97F3\u8A0A\u8A2D\u5B9A","tui.voice.error.recorder_failed":"\u9304\u97F3\u5931\u6557","tui.voice.error.no_recorder":"\u672A\u5075\u6E2C\u5230\u9304\u97F3\u5DE5\u5177\uFF0C\u8ACB\u5B89\u88DD sox","tui.voice.error.too_short":"\u9304\u97F3\u6642\u9593\u904E\u77ED","tui.voice.error.network":"\u8F49\u5BEB\u5931\u6557\uFF0C\u8ACB\u6AA2\u67E5\u7DB2\u8DEF","tui.voice.error.empty_send":"\u7121\u5167\u5BB9\u53EF\u767C\u9001","tui.voice.error.unknown_agent":"\u672A\u627E\u5230 agent\u300C{{name}}\u300D","tui.command.prompt.stash.title":"\u66AB\u5B58\u63D0\u793A\u8A5E","tui.command.prompt.stash.pop.title":"\u5F48\u51FA\u66AB\u5B58","tui.command.prompt.stash.list.title":"\u66AB\u5B58\u6E05\u55AE","tui.command.tips.toggle.show":"\u986F\u793A Tips","tui.command.tips.toggle.hide":"\u96B1\u85CF Tips","tui.command.plugins.list.title":"\u5916\u639B","tui.command.plugins.install.title":"\u5B89\u88DD\u5916\u639B","tui.question.plan_enter.question":"\u662F\u5426\u5207\u63DB\u5230 plan \u6A21\u5F0F\u9032\u884C\u7D50\u69CB\u5316\u898F\u5283\uFF1F","tui.question.plan_enter.header":"\u9032\u5165\u8A08\u5283","tui.question.plan_enter.option.0.label":"\u662F","tui.question.plan_enter.option.0.description":"\u5207\u63DB\u5230 plan \u667A\u6167\u4EE3\u7406\u9032\u884C\u552F\u8B80\u898F\u5283","tui.question.plan_enter.option.1.label":"\u5426","tui.question.plan_enter.option.1.description":"\u7559\u5728\u7576\u524D\u6A21\u5F0F","tui.question.plan_exit.question":"{{plan}} \u7684\u8A08\u5283\u5DF2\u5B8C\u6210\u3002\u662F\u5426\u5207\u63DB\u5230 build \u667A\u6167\u4EE3\u7406\u958B\u59CB\u5BE6\u4F5C\uFF1F","tui.question.plan_exit.header":"\u9000\u51FA\u8A08\u5283","tui.question.plan_exit.option.0.label":"\u662F","tui.question.plan_exit.option.0.description":"\u5207\u63DB\u5230 build \u667A\u6167\u4EE3\u7406\u4E26\u958B\u59CB\u5BE6\u4F5C\u8A08\u5283","tui.question.plan_exit.option.1.label":"\u5426","tui.question.plan_exit.option.1.description":"\u7559\u5728 plan \u667A\u6167\u4EE3\u7406\u7E7C\u7E8C\u5B8C\u5584\u8A08\u5283","tui.session.badge.auto":"\u81EA\u52D5","trust.title":"\u5B58\u53D6\u5DE5\u4F5C\u5340\uFF1A","trust.safety_check":"\u5B89\u5168\u78BA\u8A8D\uFF1A\u9019\u662F\u4F60\u81EA\u5DF1\u5EFA\u7ACB\u6216\u4FE1\u4EFB\u7684\u5C08\u6848\u55CE\uFF1F\uFF08\u5982\u4F60\u81EA\u5DF1\u7684\u7A0B\u5F0F\u78BC\u3001\u77E5\u540D\u958B\u6E90\u5C08\u6848\u6216\u5718\u968A\u5167\u90E8\u5C08\u6848\uFF09\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8ACB\u5148\u6AA2\u67E5\u6B64\u76EE\u9304\u4E0B\u7684\u5167\u5BB9\u3002","trust.capabilities":"QitQode \u5C07\u80FD\u5920\u8B80\u53D6\u3001\u7DE8\u8F2F\u548C\u57F7\u884C\u6B64\u76EE\u9304\u4E2D\u7684\u6A94\u6848\u3002","trust.plugin_warn":"\u5982\u679C\u6B64\u76EE\u9304\u4E2D\u5B58\u5728\u60E1\u610F\u5916\u639B\u7A0B\u5F0F\uFF0C\u5B83\u5011\u53EF\u4EE5\u57F7\u884C\u4EFB\u610F\u7A0B\u5F0F\u78BC\u3001\u8B80\u53D6\u3001\u4FEE\u6539\u6216\u7ACA\u53D6\u4F60\u7684\u6A94\u6848\u3002","trust.option.yes":"\u662F\u7684\uFF0C\u6211\u4FE1\u4EFB\u6B64\u76EE\u9304","trust.option.no":"\u5426\uFF0C\u9000\u51FA","trust.dangerous.title_home":"\u8B66\u544A\uFF1A\u4F60\u5373\u5C07\u958B\u555F\u4E3B\u76EE\u9304\u3002","trust.dangerous.title_root":"\u8B66\u544A\uFF1A\u4F60\u5373\u5C07\u958B\u555F\u6A94\u6848\u7CFB\u7D71\u6839\u76EE\u9304\u3002","trust.dangerous.body_home":"\u6A21\u578B\u5C07\u80FD\u5920\u5B58\u53D6\u4F60\u6240\u6709\u7684\u500B\u4EBA\u6A94\u6848 \u2014 SSH \u91D1\u9470\u3001\u6191\u8B49\u3001\u700F\u89BD\u5668\u8A2D\u5B9A\u6A94\u7B49\u4E3B\u76EE\u9304\u4E0B\u7684\u6240\u6709\u5167\u5BB9\u3002","trust.dangerous.body_root":"\u6A21\u578B\u5C07\u80FD\u5920\u5B58\u53D6\u6574\u500B\u6A94\u6848\u7CFB\u7D71 \u2014 \u7CFB\u7D71\u6A94\u6848\u3001\u6240\u6709\u4F7F\u7528\u8005\u8CC7\u6599\u3001\u6191\u8B49\u4EE5\u53CA\u9019\u53F0\u6A5F\u5668\u4E0A\u7684\u4E00\u5207\u3002","trust.dangerous.advice_home":"\u9664\u975E\u6709\u660E\u78BA\u7684\u7406\u7531\uFF0C\u5426\u5247\u4E0D\u8981\u4FE1\u4EFB\u4F60\u7684\u6574\u500B\u4E3B\u76EE\u9304\u3002","trust.dangerous.advice_root":"\u9664\u975E\u6709\u660E\u78BA\u7684\u7406\u7531\uFF0C\u5426\u5247\u4E0D\u8981\u4FE1\u4EFB\u6A94\u6848\u7CFB\u7D71\u6839\u76EE\u9304\u3002","trust.dangerous.option.yes":"\u6211\u4E86\u89E3\u98A8\u96AA\uFF0C\u50C5\u672C\u6B21\u4FE1\u4EFB","trust.dangerous.option.no":"\u9000\u51FA\uFF08\u63A8\u85A6\uFF09"};export{f as dict};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{As as d,Bs as l,Ds as uJ,Es as cJ,Hs as pJ,Is as iJ,Js as nJ,Ks as aJ,Ls as rJ,Ns as AQ,us as mJ,vs as vJ,ws as dJ,xs as lJ}from"./chunk-xdjwapwy.js";import{Rt as CQ,St as DQ,ou as FQ}from"./chunk-qp9y0g73.js";import{Bu as x,Ku as GJ}from"./chunk-j21dnncc.js";import{$J as gJ,DH as RJ,EN as j,FH as VJ,GI as E,IH as hJ,JG as DJ,KG as FJ,LG as AJ,LI as yJ,MI as bJ,OF as BQ,PF as wQ,PP as g,QP as eJ,RD as GQ,RH as jJ,SF as $J,TF as UJ,TP as HQ,UC as wJ,UI as I,UP as WQ,VN as o,VP as R,XC as HJ,XG as t,XH as NJ,YF as zJ,YG as OJ,_C as WJ,_G as y,aD as $Q,dE as IJ,fC as tJ,gE as PJ,gI as kJ,hG as ZJ,iD as f,jE as T,kI as LJ,lH as TJ,mE as KJ,nI as SJ,rG as z,rI as xJ,sF as qQ,sH as EJ,vI as fJ,wH as MJ,xG as b,zF as _J,zG as CJ,zH as oJ}from"./chunk-ydc6ypjt.js";import{gQ as zQ,iQ as u,kQ as S}from"./chunk-4sazy0nq.js";var IX={};u(IX,{resource:()=>BJ,layer:()=>EQ,enabled:()=>OQ,Observability:()=>WX});var p={};u(p,{make:()=>IQ,layer:()=>ZX});var VQ=AJ.pipe(FJ,DJ((J)=>{if(lJ(J)&&J.reason._tag==="StatusCodeError"&&J.reason.response.status===429){let Q=HJ(J.reason.response.headers["retry-after"]).pipe(WJ(CJ),wJ(()=>5));return t(T(Q))}return t(T(1))})),sJ=E(function*(J){let Q=yield*jJ(),X=f(Q,b),Y=f(Q,UJ),$=fJ(Q),G=KJ(IJ(J.exportInterval),PJ),B=void 0,C=nJ(f(Q,pJ)).pipe(iJ(NJ(rJ,!1)),aJ({schedule:VQ,times:3})),V=vJ({"user-agent":`effect-opentelemetry-${J.label}/0.0.0`});if(J.headers)V=dJ(mJ(J.headers),V);let r=uJ(J.url,{headers:V}),O=[],s=OJ(()=>{if(B!==void 0&&X.currentTimeMillisUnsafe()<B)return y;else if(B!==void 0)B=void 0;let h=O;if(J.maxBatchSize!=="disabled"){if(O.length===0)return y;O=[]}return C.execute(cJ(r,J.body(h))).pipe(EJ,SJ(!1))}).pipe(MJ((h)=>{if(B!==void 0)return y;return B=X.currentTimeMillisUnsafe()+60000,O=[],yJ("Disabling exporter for 60 seconds",h)}),bJ({package:"@effect/opentelemetry",module:J.label}));return yield*zJ(Y,s.pipe(RJ,kJ,VJ(J.shutdownTimeout))),yield*hJ(G).pipe(TJ(s),LJ,xJ(Y)),{push(h){if(B!==void 0)return;if(O.push(h),J.maxBatchSize!=="disabled"&&O.length>=J.maxBatchSize)gJ($(s),Y)}}});var jQ=(J)=>{let Q=J.attributes?e(Object.entries(J.attributes)):[];if(Q.push({key:"service.name",value:{stringValue:J.serviceName}}),J.serviceVersion)Q.push({key:"service.version",value:{stringValue:J.serviceVersion}});return{attributes:Q,droppedAttributesCount:0}},JQ=E(function*(J){let Q={...yield*g(o(eJ(j,j)),"OTEL_RESOURCE_ATTRIBUTES"),...J?.attributes},X=J?.serviceName??Q["service.name"]??(yield*g(j,"OTEL_SERVICE_NAME"));delete Q["service.name"];let Y=J?.serviceVersion??Q["service.version"]??(yield*g(o(j),"OTEL_SERVICE_VERSION"));return delete Q["service.version"],jQ({serviceName:X,serviceVersion:Y,attributes:Q})},oJ),QQ=(J)=>{let Q=J.attributes.find((X)=>X.key==="service.name");if(!Q||!Q.value.stringValue)throw Error("Resource does not contain a service name");return Q.value.stringValue},e=(J)=>{let Q=[];for(let[X,Y]of J)Q.push({key:X,value:m(Y)});return Q},m=(J)=>{if(Array.isArray(J))return{arrayValue:{values:J.map(m)}};switch(typeof J){case"string":return{stringValue:J};case"bigint":return{intValue:Number(J)};case"number":return Number.isInteger(J)?{intValue:J}:{doubleValue:J};case"boolean":return{boolValue:J};default:return{stringValue:tJ(J)}}};var c={};u(c,{layerProtobuf:()=>YX,layerJson:()=>XX,OtlpSerialization:()=>M});var N={Varint:0,Fixed64:1,LengthDelimited:2,Fixed32:5},k=(J,Q)=>J<<3|Q,D=(J)=>{let Q=[],X=typeof J==="bigint"?J:BigInt(J);while(X>0x7fn)Q.push(Number(X&0x7fn)|128),X>>=7n;return Q.push(Number(X)),new Uint8Array(Q)};var kQ=(J)=>{let Q=new Uint8Array(8);return new DataView(Q.buffer).setBigUint64(0,J,!0),Q},LQ=(J)=>{let Q=new Uint8Array(4);return new DataView(Q.buffer).setUint32(0,J,!0),Q},SQ=(J)=>{let Q=new Uint8Array(8);return new DataView(Q.buffer).setFloat64(0,J,!0),Q},xQ=(J)=>new TextEncoder().encode(J),fQ=(J)=>{let Q=new Uint8Array(J.length/2);for(let X=0;X<J.length;X+=2)Q[X/2]=parseInt(J.slice(X,X+2),16);return Q},Z=(...J)=>{let Q=J.reduce(($,G)=>$+G.length,0),X=new Uint8Array(Q),Y=0;for(let $ of J)X.set($,Y),Y+=$.length;return X},q=(J,Q)=>Z(D(k(J,N.Varint)),D(Q));var JJ=(J,Q)=>q(J,Q?1:0),W=(J,Q)=>Z(D(k(J,N.Fixed64)),kQ(Q)),v=(J,Q)=>Z(D(k(J,N.Fixed32)),LQ(Q)),F=(J,Q)=>Z(D(k(J,N.Fixed64)),SQ(Q)),L=(J,Q)=>Z(D(k(J,N.LengthDelimited)),D(Q.length),Q),K=(J,Q)=>L(J,xQ(Q)),U=(J,Q)=>L(J,fQ(Q)),w=(J,Q)=>L(J,Q),_=(J,Q,X)=>Z(...Q.map((Y)=>w(J,X(Y))));var H=(J,Q)=>Q!==void 0&&Q!==""?K(J,Q):new Uint8Array(0);var QJ=(J)=>{if(J.stringValue!==void 0&&J.stringValue!==null)return K(1,J.stringValue);if(J.boolValue!==void 0&&J.boolValue!==null)return JJ(2,J.boolValue);if(J.intValue!==void 0&&J.intValue!==null)return q(3,BigInt(J.intValue));if(J.doubleValue!==void 0&&J.doubleValue!==null)return F(4,J.doubleValue);if(J.arrayValue!==void 0)return w(5,bQ(J.arrayValue));if(J.kvlistValue!==void 0)return w(6,gQ(J.kvlistValue));if(J.bytesValue!==void 0)return L(7,J.bytesValue);return new Uint8Array(0)},bQ=(J)=>_(1,J.values,QJ),gQ=(J)=>_(1,J.values,P),P=(J)=>Z(K(1,J.key),w(2,QJ(J.value))),XJ=(J)=>Z(K(1,J.name),H(2,J.version),J.attributes?_(3,J.attributes,P):new Uint8Array(0),J.droppedAttributesCount?q(4,J.droppedAttributesCount):new Uint8Array(0)),YJ=(J)=>Z(_(1,J.attributes,P),J.droppedAttributesCount>0?q(2,J.droppedAttributesCount):new Uint8Array(0));var mQ=(J)=>Z(H(2,J.message),q(3,J.code)),vQ=(J)=>Z(W(1,BigInt(J.timeUnixNano)),K(2,J.name),_(3,J.attributes,P),J.droppedAttributesCount>0?q(4,J.droppedAttributesCount):new Uint8Array(0)),dQ=(J)=>Z(U(1,J.traceId),U(2,J.spanId),H(3,J.traceState),_(4,J.attributes,P),J.droppedAttributesCount>0?q(5,J.droppedAttributesCount):new Uint8Array(0),J.flags!==void 0?v(6,J.flags):new Uint8Array(0)),lQ=(J)=>Z(U(1,J.traceId),U(2,J.spanId),H(3,J.traceState),J.parentSpanId!==void 0?U(4,J.parentSpanId):new Uint8Array(0),K(5,J.name),q(6,J.kind),W(7,BigInt(J.startTimeUnixNano)),W(8,BigInt(J.endTimeUnixNano)),_(9,J.attributes,P),J.droppedAttributesCount>0?q(10,J.droppedAttributesCount):new Uint8Array(0),_(11,J.events,vQ),J.droppedEventsCount>0?q(12,J.droppedEventsCount):new Uint8Array(0),_(13,J.links,dQ),J.droppedLinksCount>0?q(14,J.droppedLinksCount):new Uint8Array(0),w(15,mQ(J.status)),J.flags!==void 0?v(16,J.flags):new Uint8Array(0)),uQ=(J)=>Z(w(1,XJ(J.scope)),_(2,J.spans,lQ),H(3,J.schemaUrl)),cQ=(J)=>Z(w(1,YJ(J.resource)),_(2,J.scopeSpans,uQ),H(3,J.schemaUrl)),XQ=(J)=>_(1,J.resourceSpans,cQ);var YQ=(J)=>Z(W(2,BigInt(J.startTimeUnixNano)),W(3,BigInt(J.timeUnixNano)),J.asDouble!==void 0?F(4,J.asDouble):new Uint8Array(0),J.asInt!==void 0?W(6,BigInt(J.asInt)):new Uint8Array(0),_(7,J.attributes,P),J.flags!==void 0?q(8,J.flags):new Uint8Array(0)),pQ=(J)=>{let Q=Z(...J.bucketCounts.map((Y)=>W(6,BigInt(Y)))),X=Z(...J.explicitBounds.map((Y)=>F(7,Y)));return Z(W(2,BigInt(J.startTimeUnixNano)),W(3,BigInt(J.timeUnixNano)),W(4,BigInt(J.count)),J.sum!==void 0?F(5,J.sum):new Uint8Array(0),Q,X,_(9,J.attributes,P),J.flags!==void 0?q(10,J.flags):new Uint8Array(0),J.min!==void 0?F(11,J.min):new Uint8Array(0),J.max!==void 0?F(12,J.max):new Uint8Array(0))},iQ=(J)=>_(1,J.dataPoints,YQ),nQ=(J)=>Z(_(1,J.dataPoints,YQ),q(2,J.aggregationTemporality),JJ(3,J.isMonotonic)),aQ=(J)=>Z(_(1,J.dataPoints,pQ),q(2,J.aggregationTemporality)),rQ=(J)=>Z(K(1,J.name),H(2,J.description),H(3,J.unit),J.gauge!==void 0?w(5,iQ(J.gauge)):new Uint8Array(0),J.sum!==void 0?w(7,nQ(J.sum)):new Uint8Array(0),J.histogram!==void 0?w(9,aQ(J.histogram)):new Uint8Array(0)),sQ=(J)=>Z(w(1,XJ(J.scope)),_(2,J.metrics,rQ),H(3,J.schemaUrl)),tQ=(J)=>Z(w(1,YJ(J.resource)),_(2,J.scopeMetrics,sQ),H(3,J.schemaUrl)),ZQ=(J)=>_(1,J.resourceMetrics,tQ);var oQ=(J)=>Z(W(1,BigInt(J.timeUnixNano)),J.severityNumber!==void 0?q(2,J.severityNumber):new Uint8Array(0),H(3,J.severityText),J.body!==void 0?w(5,QJ(J.body)):new Uint8Array(0),_(6,J.attributes,P),J.droppedAttributesCount!==void 0&&J.droppedAttributesCount>0?q(7,J.droppedAttributesCount):new Uint8Array(0),J.flags!==void 0?v(8,J.flags):new Uint8Array(0),J.traceId!==void 0&&J.traceId!==""?U(9,J.traceId):new Uint8Array(0),J.spanId!==void 0&&J.spanId!==""?U(10,J.spanId):new Uint8Array(0),J.observedTimeUnixNano!==void 0?W(11,BigInt(J.observedTimeUnixNano)):new Uint8Array(0)),eQ=(J)=>Z(w(1,XJ(J.scope)),_(2,J.logRecords,oQ),H(3,J.schemaUrl)),JX=(J)=>Z(w(1,YJ(J.resource)),_(2,J.scopeLogs,eQ),H(3,J.schemaUrl)),_Q=(J)=>_(1,J.resourceLogs,JX);class M extends $Q()("effect/observability/OtlpSerialization"){}var XX=ZJ(M,{traces:(J)=>l(J),metrics:(J)=>l(J),logs:(J)=>l(J)}),YX=ZJ(M,{traces:(J)=>d(XQ(J),"application/x-protobuf"),metrics:(J)=>d(ZQ(J),"application/x-protobuf"),logs:(J)=>d(_Q(J),"application/x-protobuf")});var IQ=E(function*(J){let Q=yield*M,X=yield*JQ(J.resource),Y={name:QQ(X)},$=yield*sJ({label:"OtlpLogger",url:J.url,headers:J.headers,maxBatchSize:J.maxBatchSize??1000,exportInterval:J.exportInterval??T(1),body:(B)=>Q.logs({resourceLogs:[{resource:X,scopeLogs:[{scope:Y,logRecords:B}]}]}),shutdownTimeout:J.shutdownTimeout??T(3)}),G={excludeLogSpans:J.excludeLogSpans??!1,clock:yield*b};return HQ((B)=>{$.push(_X(B,G))})}),ZX=(J)=>WQ([IQ(J)],{mergeWithExisting:J.mergeWithExisting??!0}),_X=(J,Q)=>{let Y=Q.clock.currentTimeNanosUnsafe().toString(),$=J.date.getTime(),G=e(Object.entries(J.fiber.getRef(BQ)));if(G.push({key:"fiberId",value:{intValue:J.fiber.id}}),!Q.excludeLogSpans)for(let[V,r]of J.fiber.getRef(wQ))G.push({key:`logSpan.${V}`,value:{stringValue:`${$-r}ms`}});if(J.cause.reasons.length>0)G.push({key:"log.error",value:{stringValue:qQ(J.cause)}});let B=GQ(J.message),C={severityNumber:$X(J.logLevel),severityText:J.logLevel,timeUnixNano:Y,observedTimeUnixNano:Y,attributes:G,body:m(B.length===1?B[0]:B),droppedAttributesCount:0};if(J.fiber.currentSpan)C.traceId=J.fiber.currentSpan.traceId,C.spanId=J.fiber.currentSpan.spanId;return C},$X=(J)=>{switch(J){case"Trace":return A.SEVERITY_NUMBER_TRACE;case"Debug":return A.SEVERITY_NUMBER_DEBUG;case"Info":return A.SEVERITY_NUMBER_INFO;case"Warn":return A.SEVERITY_NUMBER_WARN;case"Error":return A.SEVERITY_NUMBER_ERROR;case"Fatal":return A.SEVERITY_NUMBER_FATAL;default:return A.SEVERITY_NUMBER_UNSPECIFIED}},A={SEVERITY_NUMBER_UNSPECIFIED:0,SEVERITY_NUMBER_TRACE:1,SEVERITY_NUMBER_TRACE2:2,SEVERITY_NUMBER_TRACE3:3,SEVERITY_NUMBER_TRACE4:4,SEVERITY_NUMBER_DEBUG:5,SEVERITY_NUMBER_DEBUG2:6,SEVERITY_NUMBER_DEBUG3:7,SEVERITY_NUMBER_DEBUG4:8,SEVERITY_NUMBER_INFO:9,SEVERITY_NUMBER_INFO2:10,SEVERITY_NUMBER_INFO3:11,SEVERITY_NUMBER_INFO4:12,SEVERITY_NUMBER_WARN:13,SEVERITY_NUMBER_WARN2:14,SEVERITY_NUMBER_WARN3:15,SEVERITY_NUMBER_WARN4:16,SEVERITY_NUMBER_ERROR:17,SEVERITY_NUMBER_ERROR2:18,SEVERITY_NUMBER_ERROR3:19,SEVERITY_NUMBER_ERROR4:20,SEVERITY_NUMBER_FATAL:21,SEVERITY_NUMBER_FATAL2:22,SEVERITY_NUMBER_FATAL3:23,SEVERITY_NUMBER_FATAL4:24};var UQ={};u(UQ,{logger:()=>n,layer:()=>qJ,create:()=>KQ});var GX=(J)=>J==="sessionID"?"session.id":J,PQ=(J)=>Object.fromEntries(Object.entries(J??{}).filter((Q)=>Q[1]!==void 0&&Q[1]!==null).map(([Q,X])=>[GX(Q),X])),qX=(J)=>{if(Array.isArray(J))return J.map((Q)=>String(Q)).join(" ");return J===void 0?"":String(J)},i=(J,Q,X,Y)=>{let $=PQ({...Q,...Y}),G=J(X);return Object.keys($).length?I.annotateLogs(G,$):G},n=R.make((J)=>{let Q=PQ(J.fiber.getRef($J.CurrentLogAnnotations)),X=J.date.getTime();for(let[B,C]of J.fiber.getRef($J.CurrentLogSpans))Q[`logSpan.${B}`]=`${X-C}ms`;if(J.cause.reasons.length>0)Q.cause=_J.pretty(J.cause);let Y=typeof Q.service==="string"?Q.service:void 0;if(Y)delete Q.service;let $=Y?GJ.create({service:Y}):GJ.Default,G=qX(J.message);switch(J.logLevel){case"Trace":case"Debug":return $.debug(G,Q);case"Warn":return $.warn(G,Q);case"Error":case"Fatal":return $.error(G,Q);default:return $.info(G,Q)}}),qJ=R.layer([n],{mergeWithExisting:!1}),KQ=(J={})=>({debug:(Q,X)=>i((Y)=>I.logDebug(Y),J,Q,X),info:(Q,X)=>i((Y)=>I.logInfo(Y),J,Q,X),warn:(Q,X)=>i((Y)=>I.logWarning(Y),J,Q,X),error:(Q,X)=>i((Y)=>I.logError(Y),J,Q,X),with:(Q)=>KQ({...J,...Q})});var a=x.OTEL_EXPORTER_OTLP_ENDPOINT,OQ=!!a,BX=crypto.randomUUID(),TQ=x.OTEL_EXPORTER_OTLP_HEADERS?x.OTEL_EXPORTER_OTLP_HEADERS.split(",").reduce((J,Q)=>{let[X,...Y]=Q.split("=");return J[X]=Y.join("="),J},{}):void 0;function BJ(){let J=FQ("main"),Q=(()=>{let X=process.env.OTEL_RESOURCE_ATTRIBUTES;if(!X)return{};try{return Object.fromEntries(X.split(",").map((Y)=>{let $=Y.indexOf("=");if($<1)throw Error("Invalid OTEL_RESOURCE_ATTRIBUTES entry");return[decodeURIComponent(Y.slice(0,$)),decodeURIComponent(Y.slice($+1))]}))}catch{return{}}})();return{serviceName:"qitqode",serviceVersion:CQ,attributes:{...Q,"deployment.environment.name":DQ,"qitqode.client":x.QITQODE_CLIENT,"qitqode.process_role":J.processRole,"qitqode.run_id":J.runID,"service.instance.id":BX}}}function wX(){return R.layer([n,p.make({url:`${a}/v1/logs`,resource:BJ(),headers:TQ})],{mergeWithExisting:!1}).pipe(z.provide(c.layerJson),z.provide(AQ.layer))}var HX=async()=>{let J=await import("./chunk-tdxbm1nd.js"),Q=await import("./chunk-zxddasg8.js"),X=await import("./chunk-3bkdbqjj.js"),{AsyncLocalStorageContextManager:Y}=await import("./chunk-yzwgvjzd.js").then((m)=>zQ(m.default,1)),{context:$}=await import("./chunk-wnjqaxze.js").then((m)=>zQ(m.default,1)),G=new Y;return G.enable(),$.setGlobalContextManager(G),J.layer(()=>({resource:BJ(),spanProcessor:new X.BatchSpanProcessor(new Q.OTLPTraceExporter({url:`${a}/v1/traces`,headers:TQ}))}))},EQ=!a?qJ:z.unwrap(I.gen(function*(){let J=yield*I.promise(HX);return z.mergeAll(J,wX())})),WX={enabled:OQ,layer:EQ};var aX=z.makeMemoMapUnsafe();
|
|
2
|
+
import{As as d,Bs as l,Ds as uJ,Es as cJ,Hs as pJ,Is as iJ,Js as nJ,Ks as aJ,Ls as rJ,Ns as AQ,us as mJ,vs as vJ,ws as dJ,xs as lJ}from"./chunk-xdjwapwy.js";import{Rt as CQ,St as DQ,ou as FQ}from"./chunk-v0yxkq99.js";import{Bu as x,Ku as GJ}from"./chunk-kmtfdky8.js";import{$J as gJ,DH as RJ,EN as j,FH as VJ,GI as E,IH as hJ,JG as DJ,KG as FJ,LG as AJ,LI as yJ,MI as bJ,OF as BQ,PF as wQ,PP as g,QP as eJ,RD as GQ,RH as jJ,SF as $J,TF as UJ,TP as HQ,UC as wJ,UI as I,UP as WQ,VN as o,VP as R,XC as HJ,XG as t,XH as NJ,YF as zJ,YG as OJ,_C as WJ,_G as y,aD as $Q,dE as IJ,fC as tJ,gE as PJ,gI as kJ,hG as ZJ,iD as f,jE as T,kI as LJ,lH as TJ,mE as KJ,nI as SJ,rG as z,rI as xJ,sF as qQ,sH as EJ,vI as fJ,wH as MJ,xG as b,zF as _J,zG as CJ,zH as oJ}from"./chunk-ydc6ypjt.js";import{gQ as zQ,iQ as u,kQ as S}from"./chunk-4sazy0nq.js";var IX={};u(IX,{resource:()=>BJ,layer:()=>EQ,enabled:()=>OQ,Observability:()=>WX});var p={};u(p,{make:()=>IQ,layer:()=>ZX});var VQ=AJ.pipe(FJ,DJ((J)=>{if(lJ(J)&&J.reason._tag==="StatusCodeError"&&J.reason.response.status===429){let Q=HJ(J.reason.response.headers["retry-after"]).pipe(WJ(CJ),wJ(()=>5));return t(T(Q))}return t(T(1))})),sJ=E(function*(J){let Q=yield*jJ(),X=f(Q,b),Y=f(Q,UJ),$=fJ(Q),G=KJ(IJ(J.exportInterval),PJ),B=void 0,C=nJ(f(Q,pJ)).pipe(iJ(NJ(rJ,!1)),aJ({schedule:VQ,times:3})),V=vJ({"user-agent":`effect-opentelemetry-${J.label}/0.0.0`});if(J.headers)V=dJ(mJ(J.headers),V);let r=uJ(J.url,{headers:V}),O=[],s=OJ(()=>{if(B!==void 0&&X.currentTimeMillisUnsafe()<B)return y;else if(B!==void 0)B=void 0;let h=O;if(J.maxBatchSize!=="disabled"){if(O.length===0)return y;O=[]}return C.execute(cJ(r,J.body(h))).pipe(EJ,SJ(!1))}).pipe(MJ((h)=>{if(B!==void 0)return y;return B=X.currentTimeMillisUnsafe()+60000,O=[],yJ("Disabling exporter for 60 seconds",h)}),bJ({package:"@effect/opentelemetry",module:J.label}));return yield*zJ(Y,s.pipe(RJ,kJ,VJ(J.shutdownTimeout))),yield*hJ(G).pipe(TJ(s),LJ,xJ(Y)),{push(h){if(B!==void 0)return;if(O.push(h),J.maxBatchSize!=="disabled"&&O.length>=J.maxBatchSize)gJ($(s),Y)}}});var jQ=(J)=>{let Q=J.attributes?e(Object.entries(J.attributes)):[];if(Q.push({key:"service.name",value:{stringValue:J.serviceName}}),J.serviceVersion)Q.push({key:"service.version",value:{stringValue:J.serviceVersion}});return{attributes:Q,droppedAttributesCount:0}},JQ=E(function*(J){let Q={...yield*g(o(eJ(j,j)),"OTEL_RESOURCE_ATTRIBUTES"),...J?.attributes},X=J?.serviceName??Q["service.name"]??(yield*g(j,"OTEL_SERVICE_NAME"));delete Q["service.name"];let Y=J?.serviceVersion??Q["service.version"]??(yield*g(o(j),"OTEL_SERVICE_VERSION"));return delete Q["service.version"],jQ({serviceName:X,serviceVersion:Y,attributes:Q})},oJ),QQ=(J)=>{let Q=J.attributes.find((X)=>X.key==="service.name");if(!Q||!Q.value.stringValue)throw Error("Resource does not contain a service name");return Q.value.stringValue},e=(J)=>{let Q=[];for(let[X,Y]of J)Q.push({key:X,value:m(Y)});return Q},m=(J)=>{if(Array.isArray(J))return{arrayValue:{values:J.map(m)}};switch(typeof J){case"string":return{stringValue:J};case"bigint":return{intValue:Number(J)};case"number":return Number.isInteger(J)?{intValue:J}:{doubleValue:J};case"boolean":return{boolValue:J};default:return{stringValue:tJ(J)}}};var c={};u(c,{layerProtobuf:()=>YX,layerJson:()=>XX,OtlpSerialization:()=>M});var N={Varint:0,Fixed64:1,LengthDelimited:2,Fixed32:5},k=(J,Q)=>J<<3|Q,D=(J)=>{let Q=[],X=typeof J==="bigint"?J:BigInt(J);while(X>0x7fn)Q.push(Number(X&0x7fn)|128),X>>=7n;return Q.push(Number(X)),new Uint8Array(Q)};var kQ=(J)=>{let Q=new Uint8Array(8);return new DataView(Q.buffer).setBigUint64(0,J,!0),Q},LQ=(J)=>{let Q=new Uint8Array(4);return new DataView(Q.buffer).setUint32(0,J,!0),Q},SQ=(J)=>{let Q=new Uint8Array(8);return new DataView(Q.buffer).setFloat64(0,J,!0),Q},xQ=(J)=>new TextEncoder().encode(J),fQ=(J)=>{let Q=new Uint8Array(J.length/2);for(let X=0;X<J.length;X+=2)Q[X/2]=parseInt(J.slice(X,X+2),16);return Q},Z=(...J)=>{let Q=J.reduce(($,G)=>$+G.length,0),X=new Uint8Array(Q),Y=0;for(let $ of J)X.set($,Y),Y+=$.length;return X},q=(J,Q)=>Z(D(k(J,N.Varint)),D(Q));var JJ=(J,Q)=>q(J,Q?1:0),W=(J,Q)=>Z(D(k(J,N.Fixed64)),kQ(Q)),v=(J,Q)=>Z(D(k(J,N.Fixed32)),LQ(Q)),F=(J,Q)=>Z(D(k(J,N.Fixed64)),SQ(Q)),L=(J,Q)=>Z(D(k(J,N.LengthDelimited)),D(Q.length),Q),K=(J,Q)=>L(J,xQ(Q)),U=(J,Q)=>L(J,fQ(Q)),w=(J,Q)=>L(J,Q),_=(J,Q,X)=>Z(...Q.map((Y)=>w(J,X(Y))));var H=(J,Q)=>Q!==void 0&&Q!==""?K(J,Q):new Uint8Array(0);var QJ=(J)=>{if(J.stringValue!==void 0&&J.stringValue!==null)return K(1,J.stringValue);if(J.boolValue!==void 0&&J.boolValue!==null)return JJ(2,J.boolValue);if(J.intValue!==void 0&&J.intValue!==null)return q(3,BigInt(J.intValue));if(J.doubleValue!==void 0&&J.doubleValue!==null)return F(4,J.doubleValue);if(J.arrayValue!==void 0)return w(5,bQ(J.arrayValue));if(J.kvlistValue!==void 0)return w(6,gQ(J.kvlistValue));if(J.bytesValue!==void 0)return L(7,J.bytesValue);return new Uint8Array(0)},bQ=(J)=>_(1,J.values,QJ),gQ=(J)=>_(1,J.values,P),P=(J)=>Z(K(1,J.key),w(2,QJ(J.value))),XJ=(J)=>Z(K(1,J.name),H(2,J.version),J.attributes?_(3,J.attributes,P):new Uint8Array(0),J.droppedAttributesCount?q(4,J.droppedAttributesCount):new Uint8Array(0)),YJ=(J)=>Z(_(1,J.attributes,P),J.droppedAttributesCount>0?q(2,J.droppedAttributesCount):new Uint8Array(0));var mQ=(J)=>Z(H(2,J.message),q(3,J.code)),vQ=(J)=>Z(W(1,BigInt(J.timeUnixNano)),K(2,J.name),_(3,J.attributes,P),J.droppedAttributesCount>0?q(4,J.droppedAttributesCount):new Uint8Array(0)),dQ=(J)=>Z(U(1,J.traceId),U(2,J.spanId),H(3,J.traceState),_(4,J.attributes,P),J.droppedAttributesCount>0?q(5,J.droppedAttributesCount):new Uint8Array(0),J.flags!==void 0?v(6,J.flags):new Uint8Array(0)),lQ=(J)=>Z(U(1,J.traceId),U(2,J.spanId),H(3,J.traceState),J.parentSpanId!==void 0?U(4,J.parentSpanId):new Uint8Array(0),K(5,J.name),q(6,J.kind),W(7,BigInt(J.startTimeUnixNano)),W(8,BigInt(J.endTimeUnixNano)),_(9,J.attributes,P),J.droppedAttributesCount>0?q(10,J.droppedAttributesCount):new Uint8Array(0),_(11,J.events,vQ),J.droppedEventsCount>0?q(12,J.droppedEventsCount):new Uint8Array(0),_(13,J.links,dQ),J.droppedLinksCount>0?q(14,J.droppedLinksCount):new Uint8Array(0),w(15,mQ(J.status)),J.flags!==void 0?v(16,J.flags):new Uint8Array(0)),uQ=(J)=>Z(w(1,XJ(J.scope)),_(2,J.spans,lQ),H(3,J.schemaUrl)),cQ=(J)=>Z(w(1,YJ(J.resource)),_(2,J.scopeSpans,uQ),H(3,J.schemaUrl)),XQ=(J)=>_(1,J.resourceSpans,cQ);var YQ=(J)=>Z(W(2,BigInt(J.startTimeUnixNano)),W(3,BigInt(J.timeUnixNano)),J.asDouble!==void 0?F(4,J.asDouble):new Uint8Array(0),J.asInt!==void 0?W(6,BigInt(J.asInt)):new Uint8Array(0),_(7,J.attributes,P),J.flags!==void 0?q(8,J.flags):new Uint8Array(0)),pQ=(J)=>{let Q=Z(...J.bucketCounts.map((Y)=>W(6,BigInt(Y)))),X=Z(...J.explicitBounds.map((Y)=>F(7,Y)));return Z(W(2,BigInt(J.startTimeUnixNano)),W(3,BigInt(J.timeUnixNano)),W(4,BigInt(J.count)),J.sum!==void 0?F(5,J.sum):new Uint8Array(0),Q,X,_(9,J.attributes,P),J.flags!==void 0?q(10,J.flags):new Uint8Array(0),J.min!==void 0?F(11,J.min):new Uint8Array(0),J.max!==void 0?F(12,J.max):new Uint8Array(0))},iQ=(J)=>_(1,J.dataPoints,YQ),nQ=(J)=>Z(_(1,J.dataPoints,YQ),q(2,J.aggregationTemporality),JJ(3,J.isMonotonic)),aQ=(J)=>Z(_(1,J.dataPoints,pQ),q(2,J.aggregationTemporality)),rQ=(J)=>Z(K(1,J.name),H(2,J.description),H(3,J.unit),J.gauge!==void 0?w(5,iQ(J.gauge)):new Uint8Array(0),J.sum!==void 0?w(7,nQ(J.sum)):new Uint8Array(0),J.histogram!==void 0?w(9,aQ(J.histogram)):new Uint8Array(0)),sQ=(J)=>Z(w(1,XJ(J.scope)),_(2,J.metrics,rQ),H(3,J.schemaUrl)),tQ=(J)=>Z(w(1,YJ(J.resource)),_(2,J.scopeMetrics,sQ),H(3,J.schemaUrl)),ZQ=(J)=>_(1,J.resourceMetrics,tQ);var oQ=(J)=>Z(W(1,BigInt(J.timeUnixNano)),J.severityNumber!==void 0?q(2,J.severityNumber):new Uint8Array(0),H(3,J.severityText),J.body!==void 0?w(5,QJ(J.body)):new Uint8Array(0),_(6,J.attributes,P),J.droppedAttributesCount!==void 0&&J.droppedAttributesCount>0?q(7,J.droppedAttributesCount):new Uint8Array(0),J.flags!==void 0?v(8,J.flags):new Uint8Array(0),J.traceId!==void 0&&J.traceId!==""?U(9,J.traceId):new Uint8Array(0),J.spanId!==void 0&&J.spanId!==""?U(10,J.spanId):new Uint8Array(0),J.observedTimeUnixNano!==void 0?W(11,BigInt(J.observedTimeUnixNano)):new Uint8Array(0)),eQ=(J)=>Z(w(1,XJ(J.scope)),_(2,J.logRecords,oQ),H(3,J.schemaUrl)),JX=(J)=>Z(w(1,YJ(J.resource)),_(2,J.scopeLogs,eQ),H(3,J.schemaUrl)),_Q=(J)=>_(1,J.resourceLogs,JX);class M extends $Q()("effect/observability/OtlpSerialization"){}var XX=ZJ(M,{traces:(J)=>l(J),metrics:(J)=>l(J),logs:(J)=>l(J)}),YX=ZJ(M,{traces:(J)=>d(XQ(J),"application/x-protobuf"),metrics:(J)=>d(ZQ(J),"application/x-protobuf"),logs:(J)=>d(_Q(J),"application/x-protobuf")});var IQ=E(function*(J){let Q=yield*M,X=yield*JQ(J.resource),Y={name:QQ(X)},$=yield*sJ({label:"OtlpLogger",url:J.url,headers:J.headers,maxBatchSize:J.maxBatchSize??1000,exportInterval:J.exportInterval??T(1),body:(B)=>Q.logs({resourceLogs:[{resource:X,scopeLogs:[{scope:Y,logRecords:B}]}]}),shutdownTimeout:J.shutdownTimeout??T(3)}),G={excludeLogSpans:J.excludeLogSpans??!1,clock:yield*b};return HQ((B)=>{$.push(_X(B,G))})}),ZX=(J)=>WQ([IQ(J)],{mergeWithExisting:J.mergeWithExisting??!0}),_X=(J,Q)=>{let Y=Q.clock.currentTimeNanosUnsafe().toString(),$=J.date.getTime(),G=e(Object.entries(J.fiber.getRef(BQ)));if(G.push({key:"fiberId",value:{intValue:J.fiber.id}}),!Q.excludeLogSpans)for(let[V,r]of J.fiber.getRef(wQ))G.push({key:`logSpan.${V}`,value:{stringValue:`${$-r}ms`}});if(J.cause.reasons.length>0)G.push({key:"log.error",value:{stringValue:qQ(J.cause)}});let B=GQ(J.message),C={severityNumber:$X(J.logLevel),severityText:J.logLevel,timeUnixNano:Y,observedTimeUnixNano:Y,attributes:G,body:m(B.length===1?B[0]:B),droppedAttributesCount:0};if(J.fiber.currentSpan)C.traceId=J.fiber.currentSpan.traceId,C.spanId=J.fiber.currentSpan.spanId;return C},$X=(J)=>{switch(J){case"Trace":return A.SEVERITY_NUMBER_TRACE;case"Debug":return A.SEVERITY_NUMBER_DEBUG;case"Info":return A.SEVERITY_NUMBER_INFO;case"Warn":return A.SEVERITY_NUMBER_WARN;case"Error":return A.SEVERITY_NUMBER_ERROR;case"Fatal":return A.SEVERITY_NUMBER_FATAL;default:return A.SEVERITY_NUMBER_UNSPECIFIED}},A={SEVERITY_NUMBER_UNSPECIFIED:0,SEVERITY_NUMBER_TRACE:1,SEVERITY_NUMBER_TRACE2:2,SEVERITY_NUMBER_TRACE3:3,SEVERITY_NUMBER_TRACE4:4,SEVERITY_NUMBER_DEBUG:5,SEVERITY_NUMBER_DEBUG2:6,SEVERITY_NUMBER_DEBUG3:7,SEVERITY_NUMBER_DEBUG4:8,SEVERITY_NUMBER_INFO:9,SEVERITY_NUMBER_INFO2:10,SEVERITY_NUMBER_INFO3:11,SEVERITY_NUMBER_INFO4:12,SEVERITY_NUMBER_WARN:13,SEVERITY_NUMBER_WARN2:14,SEVERITY_NUMBER_WARN3:15,SEVERITY_NUMBER_WARN4:16,SEVERITY_NUMBER_ERROR:17,SEVERITY_NUMBER_ERROR2:18,SEVERITY_NUMBER_ERROR3:19,SEVERITY_NUMBER_ERROR4:20,SEVERITY_NUMBER_FATAL:21,SEVERITY_NUMBER_FATAL2:22,SEVERITY_NUMBER_FATAL3:23,SEVERITY_NUMBER_FATAL4:24};var UQ={};u(UQ,{logger:()=>n,layer:()=>qJ,create:()=>KQ});var GX=(J)=>J==="sessionID"?"session.id":J,PQ=(J)=>Object.fromEntries(Object.entries(J??{}).filter((Q)=>Q[1]!==void 0&&Q[1]!==null).map(([Q,X])=>[GX(Q),X])),qX=(J)=>{if(Array.isArray(J))return J.map((Q)=>String(Q)).join(" ");return J===void 0?"":String(J)},i=(J,Q,X,Y)=>{let $=PQ({...Q,...Y}),G=J(X);return Object.keys($).length?I.annotateLogs(G,$):G},n=R.make((J)=>{let Q=PQ(J.fiber.getRef($J.CurrentLogAnnotations)),X=J.date.getTime();for(let[B,C]of J.fiber.getRef($J.CurrentLogSpans))Q[`logSpan.${B}`]=`${X-C}ms`;if(J.cause.reasons.length>0)Q.cause=_J.pretty(J.cause);let Y=typeof Q.service==="string"?Q.service:void 0;if(Y)delete Q.service;let $=Y?GJ.create({service:Y}):GJ.Default,G=qX(J.message);switch(J.logLevel){case"Trace":case"Debug":return $.debug(G,Q);case"Warn":return $.warn(G,Q);case"Error":case"Fatal":return $.error(G,Q);default:return $.info(G,Q)}}),qJ=R.layer([n],{mergeWithExisting:!1}),KQ=(J={})=>({debug:(Q,X)=>i((Y)=>I.logDebug(Y),J,Q,X),info:(Q,X)=>i((Y)=>I.logInfo(Y),J,Q,X),warn:(Q,X)=>i((Y)=>I.logWarning(Y),J,Q,X),error:(Q,X)=>i((Y)=>I.logError(Y),J,Q,X),with:(Q)=>KQ({...J,...Q})});var a=x.OTEL_EXPORTER_OTLP_ENDPOINT,OQ=!!a,BX=crypto.randomUUID(),TQ=x.OTEL_EXPORTER_OTLP_HEADERS?x.OTEL_EXPORTER_OTLP_HEADERS.split(",").reduce((J,Q)=>{let[X,...Y]=Q.split("=");return J[X]=Y.join("="),J},{}):void 0;function BJ(){let J=FQ("main"),Q=(()=>{let X=process.env.OTEL_RESOURCE_ATTRIBUTES;if(!X)return{};try{return Object.fromEntries(X.split(",").map((Y)=>{let $=Y.indexOf("=");if($<1)throw Error("Invalid OTEL_RESOURCE_ATTRIBUTES entry");return[decodeURIComponent(Y.slice(0,$)),decodeURIComponent(Y.slice($+1))]}))}catch{return{}}})();return{serviceName:"qitqode",serviceVersion:CQ,attributes:{...Q,"deployment.environment.name":DQ,"qitqode.client":x.QITQODE_CLIENT,"qitqode.process_role":J.processRole,"qitqode.run_id":J.runID,"service.instance.id":BX}}}function wX(){return R.layer([n,p.make({url:`${a}/v1/logs`,resource:BJ(),headers:TQ})],{mergeWithExisting:!1}).pipe(z.provide(c.layerJson),z.provide(AQ.layer))}var HX=async()=>{let J=await import("./chunk-tdxbm1nd.js"),Q=await import("./chunk-zxddasg8.js"),X=await import("./chunk-3bkdbqjj.js"),{AsyncLocalStorageContextManager:Y}=await import("./chunk-yzwgvjzd.js").then((m)=>zQ(m.default,1)),{context:$}=await import("./chunk-wnjqaxze.js").then((m)=>zQ(m.default,1)),G=new Y;return G.enable(),$.setGlobalContextManager(G),J.layer(()=>({resource:BJ(),spanProcessor:new X.BatchSpanProcessor(new Q.OTLPTraceExporter({url:`${a}/v1/traces`,headers:TQ}))}))},EQ=!a?qJ:z.unwrap(I.gen(function*(){let J=yield*I.promise(HX);return z.mergeAll(J,wX())})),WX={enabled:OQ,layer:EQ};var aX=z.makeMemoMapUnsafe();
|
|
3
3
|
export{qJ as os,UQ as ps,EQ as qs,WX as rs,IX as ss,aX as ts};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{L as R9}from"./chunk-
|
|
2
|
+
import{L as R9}from"./chunk-6r8pg6ma.js";import{Cd as E9}from"./chunk-w8d9srv7.js";import{Dd as P6,Gd as p$,Hd as S9,Id as U9,Ld as H9,Md as q6}from"./chunk-7jhrxzjx.js";import"./chunk-jcjaw7tk.js";import{Pd as T0}from"./chunk-9xvctnjr.js";import{Sf as O}from"./chunk-9s4whpg1.js";import{Kg as j9,Tg as I9,Xg as E$}from"./chunk-sv1s1qxd.js";import"./chunk-n7d9eemn.js";import"./chunk-pxx2hz0g.js";import"./chunk-rexdr63q.js";import"./chunk-kqhh2pm9.js";import"./chunk-7fawtcnn.js";import"./chunk-mdzzcrf9.js";import"./chunk-wev34grp.js";import{Lj as T9,ak as O6,bk as M0,gl as w9,il as D9,rl as b9}from"./chunk-rtdym35y.js";import{El as N9}from"./chunk-5myxjxae.js";import{Tl as A0,am as T$}from"./chunk-sp8ek94w.js";import"./chunk-gnt982jr.js";import"./chunk-1bx2sjn6.js";import"./chunk-17pxm5d3.js";import"./chunk-n38h109k.js";import"./chunk-25bp7pcm.js";import"./chunk-qdcf1ay5.js";import"./chunk-45mjcxqk.js";import"./chunk-qqne79vp.js";import"./chunk-64s7vfj7.js";import"./chunk-xjhezxft.js";import"./chunk-gwfx7tx7.js";import"./chunk-1wpjmwnh.js";import"./chunk-cqtkxwd8.js";import"./chunk-ymtcm4xd.js";import"./chunk-yykjvt7f.js";import"./chunk-3mepk08v.js";import"./chunk-atpzz901.js";import"./chunk-0g25z230.js";import"./chunk-w9pdvcf9.js";import"./chunk-4gs87ghj.js";import"./chunk-kb6v5hhm.js";import"./chunk-qyjt0qnq.js";import"./chunk-xdjwapwy.js";import"./chunk-cxtxvt43.js";import{zt as C6}from"./chunk-871f8x99.js";import"./chunk-cx7p4ezk.js";import"./chunk-tgd5ctnt.js";import"./chunk-p8kpqyxb.js";import"./chunk-3sz6gw10.js";import"./chunk-twhavv1m.js";import{Vt as F9,Yt as R6,Zt as M9,cu as A9}from"./chunk-v0yxkq99.js";import"./chunk-2pzvcpv4.js";import"./chunk-kmtfdky8.js";import{Vu as L9}from"./chunk-vc4e6xc4.js";import"./chunk-hnz570f9.js";import"./chunk-tdmn21z0.js";import"./chunk-s8mghr5a.js";import"./chunk-pqnbdygz.js";import{UI as V9}from"./chunk-ydc6ypjt.js";import"./chunk-ev3a2sxv.js";import"./chunk-pnq1h5az.js";import{gQ as q0,hQ as D,kQ as E}from"./chunk-4sazy0nq.js";var JZ=D((zZ)=>{/*!
|
|
3
3
|
* content-type
|
|
4
4
|
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
5
5
|
* MIT Licensed
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{p as w,q as h,r as I,s as C,t as D}from"./chunk-
|
|
2
|
+
import{p as w,q as h,r as I,s as C,t as D}from"./chunk-nhwhkx62.js";import{Gd as c,Hd as k,Id as $,Ld as x}from"./chunk-7jhrxzjx.js";import"./chunk-jcjaw7tk.js";import{Pd as P}from"./chunk-9xvctnjr.js";import{Sf as d}from"./chunk-9s4whpg1.js";import{am as l}from"./chunk-sp8ek94w.js";import"./chunk-gnt982jr.js";import"./chunk-1bx2sjn6.js";import{jp as v}from"./chunk-n38h109k.js";import"./chunk-25bp7pcm.js";import"./chunk-qdcf1ay5.js";import"./chunk-45mjcxqk.js";import"./chunk-qqne79vp.js";import"./chunk-kb6v5hhm.js";import"./chunk-qyjt0qnq.js";import"./chunk-xdjwapwy.js";import"./chunk-cxtxvt43.js";import"./chunk-871f8x99.js";import"./chunk-cx7p4ezk.js";import"./chunk-tgd5ctnt.js";import"./chunk-p8kpqyxb.js";import"./chunk-3sz6gw10.js";import"./chunk-v0yxkq99.js";import{tu as m}from"./chunk-2pzvcpv4.js";import"./chunk-kmtfdky8.js";import{_u as b}from"./chunk-vc4e6xc4.js";import"./chunk-hnz570f9.js";import"./chunk-tdmn21z0.js";import"./chunk-s8mghr5a.js";import"./chunk-pqnbdygz.js";import"./chunk-ydc6ypjt.js";import"./chunk-4sazy0nq.js";var j={spinner:()=>x(),log:{error:(o)=>c.error(o),info:(o)=>c.info(o),success:(o)=>c.success(o)},resolve:(o)=>v(o),...h,global:b.Path.config};function S(o){if(!o||typeof o!=="object")return;if(!("cause"in o))return;return o.cause}function _(o,e=j){let n=o.mod,a=Boolean(o.force),y=Boolean(o.global);return async(f)=>{let u=e.spinner();u.start("Installing plugin package...");let p=await I(n,e);if(!p.ok){u.stop("Install failed",1),e.log.error(`Could not install "${n}"`);let t=w(p.error);if(t.detail)e.log.error(t.detail);if(t.missing)e.log.info("This package depends on a version that is not available in your npm registry."),e.log.info("Check npm registry/auth settings and try again.");return!1}u.stop("Plugin package ready");let s=e.spinner();s.start("Reading plugin manifest...");let i=await C(p.target);if(!i.ok){if(i.code==="manifest_read_failed")return s.stop("Manifest read failed",1),e.log.error(`Installed "${n}" but failed to read ${i.file}`),e.log.error(m(S(i.error)??i.error)),!1;if(i.code==="manifest_no_targets")return s.stop("No plugin targets found",1),e.log.error(`"${n}" does not expose plugin entrypoints in package.json`),e.log.info('Expected one of: exports["./tui"], exports["./server"], package.json main for server, or package.json["oc-themes"] for tui themes.'),!1;return s.stop("Manifest read failed",1),!1}s.stop(`Detected ${i.targets.map((t)=>t.kind).join(" + ")} target${i.targets.length===1?"":"s"}`);let g=e.spinner();g.start("Updating plugin config...");let r=await D({spec:n,targets:i.targets,force:a,global:y,vcs:f.vcs,worktree:f.worktree,directory:f.directory,config:e.global},e);if(!r.ok){if(r.code==="invalid_json")return g.stop(`Failed updating ${r.kind} config`,1),e.log.error(`Invalid JSON in ${r.file} (${r.parse} at line ${r.line}, column ${r.col})`),e.log.info("Fix the config file and run the command again."),!1;return g.stop("Failed updating plugin config",1),e.log.error(m(r.error)),!1}g.stop("Plugin config updated");for(let t of r.items){if(t.mode==="noop"){e.log.info(`Already configured in ${t.file}`);continue}if(t.mode==="replace"){e.log.info(`Replaced in ${t.file}`);continue}e.log.info(`Added to ${t.file}`)}return e.log.success(`Installed ${n}`),e.log.info(y?`Scope: global (${r.dir})`:`Scope: local (${r.dir})`),!0}}var R=P({command:"plugin <module>",aliases:["plug"],describe:"install plugin and update config",builder:(o)=>{return o.positional("module",{type:"string",describe:"npm module name"}).option("global",{alias:["g"],type:"boolean",default:!1,describe:"install in global config"}).option("force",{alias:["f"],type:"boolean",default:!1,describe:"replace existing plugin version"})},handler:async(o)=>{let e=String(o.module??"").trim();if(!e){d.error("module is required"),process.exitCode=1;return}d.empty(),k(`Install plugin ${e}`);let n=_({mod:e,global:Boolean(o.global),force:Boolean(o.force)}),a=!0;if(await l.provide({directory:process.cwd(),fn:async()=>{a=await n({vcs:l.project.vcs,worktree:l.worktree,directory:l.directory})}}),$("Done"),!a)process.exitCode=1}});export{_ as createPlugTask,R as PluginCommand};
|