@qitqode/qitqode-android-arm64 0.2.10 → 0.2.11
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-06j0gaen.js +2 -0
- package/bundle/{chunk-1r81q7m3.js → chunk-075gkea2.js} +1 -1
- package/bundle/{chunk-9fjcgdea.js → chunk-09n24ztn.js} +1 -1
- package/bundle/chunk-0bn86djg.js +3 -0
- package/bundle/chunk-0mm40z8g.js +2 -0
- package/bundle/{chunk-mn5cacf6.js → chunk-0tya4pqb.js} +2 -2
- package/bundle/{chunk-ff8q10gk.js → chunk-1dnvdeat.js} +2 -2
- package/bundle/{chunk-kcqeh1e5.js → chunk-1h9sc0gy.js} +1 -1
- package/bundle/chunk-1mqfhw0f.js +2 -0
- package/bundle/{chunk-gq3zb4wv.js → chunk-1p39y33b.js} +2 -2
- package/bundle/{chunk-tg1f56s3.js → chunk-1pd943m9.js} +1 -1
- package/bundle/{chunk-qbewhcsz.js → chunk-1rsabv4p.js} +1 -1
- package/bundle/{chunk-vsfj16v9.js → chunk-1tdy73ha.js} +2 -2
- package/bundle/{chunk-3zzrdpsx.js → chunk-1yh1f9yj.js} +1 -1
- package/bundle/{chunk-62y6zk9x.js → chunk-22wa8zty.js} +1 -1
- package/bundle/chunk-28kte9rt.js +2 -0
- package/bundle/chunk-2dhjehxe.js +2 -0
- package/bundle/{chunk-dz3kcsb6.js → chunk-2h8b0csf.js} +2 -2
- package/bundle/chunk-2nnfxbd2.js +2 -0
- package/bundle/{chunk-g08qj9z3.js → chunk-2ts74cgq.js} +2 -2
- package/bundle/{chunk-0mwzxqt5.js → chunk-2vsqsxe1.js} +3 -3
- package/bundle/chunk-2w5zmgpb.js +2 -0
- package/bundle/{chunk-6wjdhvdf.js → chunk-32x2901e.js} +1 -1
- package/bundle/chunk-34qt3fqj.js +2 -0
- package/bundle/{chunk-by1kwg4r.js → chunk-3amgvg81.js} +2 -2
- package/bundle/{chunk-ge7csm6m.js → chunk-3hawwbw6.js} +2 -2
- package/bundle/chunk-3p0xvt47.js +2 -0
- package/bundle/chunk-3pzx5ret.js +2 -0
- package/bundle/{chunk-f6vy70p6.js → chunk-3tf7xfw5.js} +2 -2
- package/bundle/chunk-3y4rmqmm.js +2 -0
- package/bundle/{chunk-q0xgxygw.js → chunk-42gd2vx4.js} +1 -1
- package/bundle/{chunk-8rkszwxq.js → chunk-43eqr0ds.js} +6 -6
- package/bundle/{chunk-d1xfv4d3.js → chunk-43x9n8rp.js} +1 -1
- package/bundle/{chunk-kk850sdw.js → chunk-44685nzw.js} +2 -2
- package/bundle/{chunk-z023h7t8.js → chunk-46ewdxgh.js} +1 -1
- package/bundle/{chunk-v8bxj01h.js → chunk-4805mxf7.js} +1 -1
- package/bundle/chunk-486874bd.js +2 -0
- package/bundle/{chunk-0tkznq75.js → chunk-48y4n9ne.js} +1 -1
- package/bundle/{chunk-56yp5v0w.js → chunk-49brdmgp.js} +1 -1
- package/bundle/{chunk-ngyv4fhn.js → chunk-49we3vy1.js} +2 -2
- package/bundle/chunk-4bcbvfsw.js +2 -0
- package/bundle/{chunk-d0dsgxk4.js → chunk-4c6d1wy1.js} +2 -2
- package/bundle/{chunk-9tz18e54.js → chunk-4d9s7cgr.js} +1 -1
- package/bundle/{chunk-kec1xw1n.js → chunk-4ngvj758.js} +1 -1
- package/bundle/{chunk-pwsajn96.js → chunk-4q14whpc.js} +1 -1
- package/bundle/chunk-4t1ysdag.js +2 -0
- package/bundle/{chunk-nh4zk07t.js → chunk-50knjq36.js} +1 -1
- package/bundle/{chunk-9zy5tsry.js → chunk-51vn4f06.js} +3 -3
- package/bundle/{chunk-5fcyb122.js → chunk-5mgmq6yz.js} +1 -1
- package/bundle/chunk-5q7a4h2w.js +2 -0
- package/bundle/{chunk-dx7rexx3.js → chunk-5qydhr42.js} +3 -3
- package/bundle/{chunk-je8fcsa9.js → chunk-611wfdn3.js} +1 -1
- package/bundle/{chunk-9pj10pgd.js → chunk-63t0rhc9.js} +2 -2
- package/bundle/chunk-63vamhf7.js +2 -0
- package/bundle/chunk-6hhv3n7c.js +2 -0
- package/bundle/{chunk-gbkz04ke.js → chunk-6p848y99.js} +1 -1
- package/bundle/{chunk-tjfer79w.js → chunk-6xx66mr1.js} +1 -1
- package/bundle/{chunk-mmqyter3.js → chunk-71h3pmnn.js} +1 -1
- package/bundle/{chunk-yzd6cyep.js → chunk-78e76m4h.js} +1 -1
- package/bundle/{chunk-z0m1qm7j.js → chunk-78yvbv9b.js} +2 -2
- package/bundle/chunk-7a9kfb2n.js +2 -0
- package/bundle/{chunk-eme9xmh3.js → chunk-7b5vney6.js} +1 -1
- package/bundle/{chunk-yexzxx6f.js → chunk-7jvx29js.js} +1 -1
- package/bundle/{chunk-vy93mn7d.js → chunk-7wshaze9.js} +2 -2
- package/bundle/{chunk-q26s0wb5.js → chunk-7x4g7h04.js} +1 -1
- package/bundle/chunk-7x9m1smk.js +2 -0
- package/bundle/chunk-82mnr6sf.js +2 -0
- package/bundle/{chunk-mp1x10t5.js → chunk-84qx54nf.js} +2 -2
- package/bundle/{chunk-c1c8ch3g.js → chunk-88hmeyf5.js} +8 -8
- package/bundle/{chunk-vk35g121.js → chunk-89b6ttzs.js} +2 -2
- package/bundle/chunk-8bea2r6p.js +2 -0
- package/bundle/{chunk-fvv1cret.js → chunk-8gn7r4kb.js} +1 -1
- package/bundle/chunk-8h6mhzhg.js +2 -0
- package/bundle/chunk-8n1cmvr7.js +2 -0
- package/bundle/{chunk-e10c0crf.js → chunk-8qbhnwej.js} +1 -1
- package/bundle/{chunk-at4dge22.js → chunk-8rbbt1s8.js} +1 -1
- package/bundle/{chunk-6gbdvz6p.js → chunk-8rc7cvex.js} +1 -1
- package/bundle/{chunk-cdenq7jb.js → chunk-8t17w67q.js} +1 -1
- package/bundle/{chunk-qq9yc2tp.js → chunk-8y03p2md.js} +2 -2
- package/bundle/{chunk-m01h6kk1.js → chunk-8z65v9c9.js} +1 -1
- package/bundle/{chunk-f17se3hh.js → chunk-92xxg12q.js} +1 -1
- package/bundle/chunk-955zj1y6.js +2 -0
- package/bundle/{chunk-vbb1jg02.js → chunk-95tec4gm.js} +1 -1
- package/bundle/chunk-95vp9bvk.js +2 -0
- package/bundle/{chunk-eqpep2m2.js → chunk-96nmxprr.js} +1 -1
- package/bundle/{chunk-9nf5650d.js → chunk-98z5pfvj.js} +1 -1
- package/bundle/{chunk-xcmbxny8.js → chunk-9d2mtevw.js} +1 -1
- package/bundle/{chunk-c3ey896z.js → chunk-9d8meavf.js} +1 -1
- package/bundle/{chunk-fsndgr9a.js → chunk-9gs4en9v.js} +1 -1
- package/bundle/{chunk-djfrkbd5.js → chunk-9svh74gt.js} +1 -1
- package/bundle/chunk-9wzxnwv7.js +2 -0
- package/bundle/chunk-9zve998d.js +2 -0
- package/bundle/{chunk-yspstxkq.js → chunk-a2pd7nt5.js} +1 -1
- package/bundle/{chunk-pky8h8rh.js → chunk-a4cmpa56.js} +1 -1
- package/bundle/chunk-a9bkr9x4.js +2 -0
- package/bundle/chunk-ac5vzpzt.js +2 -0
- package/bundle/{chunk-532fnfmw.js → chunk-ajgwyrcf.js} +2 -2
- package/bundle/{chunk-c8k32724.js → chunk-ajyfms68.js} +1 -1
- package/bundle/{chunk-q7s6z0nz.js → chunk-akrcbxfa.js} +1 -1
- package/bundle/{chunk-ajnzv5jt.js → chunk-aykvrqrp.js} +2 -2
- package/bundle/{chunk-rk21wv4k.js → chunk-b274mb6v.js} +1 -1
- package/bundle/{chunk-5p2r8bxx.js → chunk-b79bb2g3.js} +1 -1
- package/bundle/{chunk-8nnajdwf.js → chunk-bd66q24j.js} +3 -3
- package/bundle/{chunk-qdbx1qkr.js → chunk-bffm0wv9.js} +1 -1
- package/bundle/{chunk-se8d5xg9.js → chunk-bh1zbz62.js} +1 -1
- package/bundle/{chunk-f3y5kr76.js → chunk-bqqxvagz.js} +2 -2
- package/bundle/{chunk-h6z86aay.js → chunk-bw0951fs.js} +1 -1
- package/bundle/{chunk-8peby2d1.js → chunk-bwzbcwff.js} +1 -1
- package/bundle/{chunk-wh2qqhep.js → chunk-bxc3z38f.js} +2 -2
- package/bundle/{chunk-ztvkzex1.js → chunk-bzz2expb.js} +1 -1
- package/bundle/chunk-c1exgasy.js +2 -0
- package/bundle/{chunk-qm9fm5ja.js → chunk-c53ev0da.js} +2 -2
- package/bundle/{chunk-wd2xmkdp.js → chunk-c5n49vrd.js} +2 -2
- package/bundle/{chunk-m4j6t713.js → chunk-ccghr6pm.js} +1 -1
- package/bundle/{chunk-j7637cwg.js → chunk-cg7zeppb.js} +2 -2
- package/bundle/chunk-cgxzmkkf.js +2 -0
- package/bundle/{chunk-1m78yy4k.js → chunk-cm7yp259.js} +1 -1
- package/bundle/chunk-cs3cbfm8.js +2 -0
- package/bundle/{chunk-x308f9j4.js → chunk-cshsqavb.js} +2 -2
- package/bundle/{chunk-vbfc0wgv.js → chunk-csmdhh7r.js} +2 -2
- package/bundle/{chunk-8v60bqm0.js → chunk-cydpdkx7.js} +1 -1
- package/bundle/{chunk-f6btedtt.js → chunk-czfjmrrq.js} +1 -1
- package/bundle/{chunk-a70m6kyn.js → chunk-d1j8frtq.js} +1 -1
- package/bundle/chunk-d29te4c1.js +2 -0
- package/bundle/{chunk-snf6ahg7.js → chunk-d39e4fa8.js} +1 -1
- package/bundle/chunk-d6q42p18.js +2 -0
- package/bundle/{chunk-f0ab2f28.js → chunk-d6qs2pbx.js} +1 -1
- package/bundle/{chunk-0bhzhh7s.js → chunk-datctfgt.js} +2 -2
- package/bundle/chunk-dfbexagg.js +2 -0
- package/bundle/chunk-dfkcp43a.js +2 -0
- package/bundle/chunk-dps1p1g1.js +2 -0
- package/bundle/{chunk-9d0exvey.js → chunk-dzw0j790.js} +2 -2
- package/bundle/chunk-e1fzgez5.js +2 -0
- package/bundle/{chunk-141p12c4.js → chunk-e5cds19n.js} +1 -1
- package/bundle/{chunk-nqk8d62j.js → chunk-e6ckxkj8.js} +1 -1
- package/bundle/{chunk-v0hnn7nb.js → chunk-e7a50j2w.js} +1 -1
- package/bundle/chunk-e9vh8d52.js +8 -0
- package/bundle/{chunk-j5z95b6f.js → chunk-eftk07r3.js} +1 -1
- package/bundle/chunk-egcvm4x2.js +3 -0
- package/bundle/chunk-ek3b08ed.js +2 -0
- package/bundle/{chunk-s27cz24e.js → chunk-ep92grvg.js} +52 -52
- package/bundle/{chunk-dnjyepb2.js → chunk-ex47pb9n.js} +2 -2
- package/bundle/{chunk-b9f78x5g.js → chunk-eya9c81t.js} +1 -1
- package/bundle/chunk-f78yth0b.js +2 -0
- package/bundle/{chunk-gbnf7zf9.js → chunk-fd6qxjtf.js} +1 -1
- package/bundle/{chunk-c8080519.js → chunk-fnmq42y5.js} +1 -1
- package/bundle/{chunk-nnkfdhh9.js → chunk-fqvrxy41.js} +1 -1
- package/bundle/{chunk-3sj0jv91.js → chunk-fqvsxg00.js} +1 -1
- package/bundle/{chunk-5w7ebtcd.js → chunk-fsagyvkz.js} +1 -1
- package/bundle/{chunk-gb51fn3r.js → chunk-fzxqn4j0.js} +1 -1
- package/bundle/{chunk-p506eydh.js → chunk-g7jwp73v.js} +1 -1
- package/bundle/{chunk-xnxw5zz9.js → chunk-g83d3a0t.js} +2 -2
- package/bundle/chunk-gamnnfna.js +2 -0
- package/bundle/{chunk-dp6ms01y.js → chunk-gfer8ch3.js} +2 -2
- package/bundle/{chunk-c2ns2csn.js → chunk-ghdegwnr.js} +1 -1
- package/bundle/chunk-gjxhz1a6.js +2 -0
- package/bundle/chunk-gpm39v12.js +2 -0
- package/bundle/chunk-gr8emzzx.js +2 -0
- package/bundle/chunk-gt6h68pk.js +2 -0
- package/bundle/{chunk-e72jwbfc.js → chunk-gz8k40ty.js} +1 -1
- package/bundle/{chunk-xvvt886p.js → chunk-h6kmpgak.js} +2 -2
- package/bundle/{chunk-2y5bthrp.js → chunk-h8yf5e2e.js} +1 -1
- package/bundle/{chunk-v8rqgt7h.js → chunk-hama2v6a.js} +1 -1
- package/bundle/{chunk-7a3txs9f.js → chunk-hav9pgf3.js} +2 -2
- package/bundle/chunk-hj588j4f.js +2 -0
- package/bundle/{chunk-c9cngded.js → chunk-hntsg7q4.js} +1 -1
- package/bundle/chunk-hqtex91e.js +2 -0
- package/bundle/{chunk-0sfc21qe.js → chunk-hts68y73.js} +2 -2
- package/bundle/{chunk-kc8n5cgb.js → chunk-j5dnzqjy.js} +1 -1
- package/bundle/{chunk-r81w6skn.js → chunk-j7d3v0x2.js} +1 -1
- package/bundle/{chunk-4a9jqe5s.js → chunk-jcn8bg31.js} +1 -1
- package/bundle/{chunk-2dmcpqak.js → chunk-jf4zyy7r.js} +1 -1
- package/bundle/{chunk-h0pvxre5.js → chunk-jfe9f2wv.js} +1 -1
- package/bundle/{chunk-8gpjmj42.js → chunk-jh2za7y4.js} +3 -3
- package/bundle/chunk-jmgpr5th.js +2 -0
- package/bundle/chunk-jt79yt0t.js +2 -0
- package/bundle/{chunk-7rbg6mg9.js → chunk-jt7g0r2j.js} +2 -2
- package/bundle/chunk-jtz5re73.js +2 -0
- package/bundle/{chunk-81dvy370.js → chunk-k232ny9m.js} +1 -1
- package/bundle/{chunk-t9pq363q.js → chunk-k4ajben7.js} +2 -2
- package/bundle/chunk-k4bj677f.js +3 -0
- package/bundle/{chunk-brk1jca3.js → chunk-k4d8gwxe.js} +1 -1
- package/bundle/{chunk-zskdxbbh.js → chunk-k558fr15.js} +1 -1
- package/bundle/{chunk-eabbrt1p.js → chunk-k56zj08h.js} +1 -1
- package/bundle/{chunk-61t4g8bh.js → chunk-k5swnh8m.js} +4 -4
- package/bundle/{chunk-gksbv613.js → chunk-k8zbhj2p.js} +2 -2
- package/bundle/{chunk-c8yc8qcd.js → chunk-kr975sx0.js} +1 -1
- package/bundle/{chunk-qdafm7qg.js → chunk-krk24aqm.js} +2 -2
- package/bundle/{chunk-3mtjxmw1.js → chunk-kt982884.js} +1 -1
- package/bundle/chunk-kw5z5awx.js +2 -0
- package/bundle/{chunk-vjt6mh10.js → chunk-kxdw2vtq.js} +2 -2
- package/bundle/{chunk-rxnd79h7.js → chunk-m8phqgxp.js} +1 -1
- package/bundle/{chunk-psqtptrs.js → chunk-mazakqr7.js} +1 -1
- package/bundle/{chunk-cxtwavyf.js → chunk-mnxcykeq.js} +2 -2
- package/bundle/chunk-mp42gb6q.js +2 -0
- package/bundle/{chunk-yh1t6jrj.js → chunk-mp5m0acf.js} +1 -1
- package/bundle/chunk-mq0733qh.js +2 -0
- package/bundle/chunk-mrcsatmn.js +2 -0
- package/bundle/{chunk-qtyapmy7.js → chunk-n230jbn9.js} +1 -1
- package/bundle/chunk-n24yx79r.js +5 -0
- package/bundle/{chunk-acsqvgdw.js → chunk-n2ytaxyn.js} +1 -1
- package/bundle/{chunk-819qr675.js → chunk-n4fwztya.js} +1 -1
- package/bundle/{chunk-z69tt390.js → chunk-n5dxwryh.js} +1 -1
- package/bundle/{chunk-xv03hbgj.js → chunk-n9969djm.js} +1 -1
- package/bundle/{chunk-pxm0x3e0.js → chunk-ncvr75f6.js} +2 -2
- package/bundle/chunk-ng2g9kkk.js +2 -0
- package/bundle/chunk-ngfhfyjs.js +2 -0
- package/bundle/{chunk-mn0pshpv.js → chunk-nvvja3ch.js} +1 -1
- package/bundle/{chunk-6axm2qtj.js → chunk-nwkp2f8e.js} +1 -1
- package/bundle/{chunk-d9w2bn2e.js → chunk-nwygsfhk.js} +2 -2
- package/bundle/chunk-p0dnmrqp.js +2 -0
- package/bundle/{chunk-x0hhw46n.js → chunk-p5p4jh9s.js} +1 -1
- package/bundle/chunk-p6h2ydcp.js +2 -0
- package/bundle/{chunk-e1x1mp9m.js → chunk-pcmsxhrb.js} +1 -1
- package/bundle/{chunk-rpdgn9z3.js → chunk-pdcj2rfz.js} +2 -2
- package/bundle/{chunk-t2r51r6v.js → chunk-pfd8gzy4.js} +1 -1
- package/bundle/{chunk-6y58jzak.js → chunk-ph46s66y.js} +1 -1
- package/bundle/{chunk-s05hqtx1.js → chunk-pkm3w0ks.js} +1 -1
- package/bundle/{chunk-dd461rg3.js → chunk-pnmadk2h.js} +1 -1
- package/bundle/{chunk-jt6bvxtr.js → chunk-q65qzc9w.js} +1 -1
- package/bundle/{chunk-qjw2zcq5.js → chunk-q8qx38kz.js} +1 -1
- package/bundle/chunk-qhakedgs.js +2 -0
- package/bundle/{chunk-xj0zc9za.js → chunk-qsgpbt4t.js} +1 -1
- package/bundle/{chunk-ccdjzn2m.js → chunk-qtdxy2q1.js} +3 -3
- package/bundle/chunk-r18zetwf.js +2 -0
- package/bundle/{chunk-3yfjgks3.js → chunk-r1936yb5.js} +1 -1
- package/bundle/{chunk-32xd626h.js → chunk-r4qpsa4e.js} +2 -2
- package/bundle/{chunk-azss4acq.js → chunk-r6055kk0.js} +2 -2
- package/bundle/chunk-r6rgrz25.js +2 -0
- package/bundle/{chunk-t5wdstzv.js → chunk-r9ng8xx5.js} +1 -1
- package/bundle/chunk-rk4vp09j.js +2 -0
- package/bundle/{chunk-e3mrw0k7.js → chunk-rkmg0gbq.js} +1 -1
- package/bundle/{chunk-9s5h0f1y.js → chunk-rpc0he6b.js} +2 -2
- package/bundle/{chunk-h2p984qb.js → chunk-rvev3cy6.js} +2 -2
- package/bundle/{chunk-waa781eh.js → chunk-rx29zmw2.js} +1 -1
- package/bundle/{chunk-5nm5egq0.js → chunk-rxh160jr.js} +2 -2
- package/bundle/{chunk-k10rtgsk.js → chunk-s3hbwksw.js} +1 -1
- package/bundle/{chunk-atacnspd.js → chunk-s3zmxfz2.js} +2 -2
- package/bundle/chunk-s4jp4zce.js +2 -0
- package/bundle/{chunk-qyan69nb.js → chunk-s6vhscvd.js} +2 -2
- package/bundle/{chunk-hgm8yfcb.js → chunk-s81ck6bw.js} +1 -1
- package/bundle/{chunk-3vae1s42.js → chunk-sbj816s8.js} +1 -1
- package/bundle/chunk-sec9y622.js +2 -0
- package/bundle/{chunk-dzma8zvf.js → chunk-seda5sfd.js} +2 -2
- package/bundle/{chunk-tm79yrf3.js → chunk-sjtq9bbb.js} +2 -2
- package/bundle/chunk-sn7q178t.js +2 -0
- package/bundle/chunk-st0h54dm.js +2 -0
- package/bundle/{chunk-b8rzn48q.js → chunk-sxtfssjv.js} +1 -1
- package/bundle/chunk-sz75fx13.js +2 -0
- package/bundle/{chunk-pbanj1gk.js → chunk-t076hwsv.js} +2 -2
- package/bundle/{chunk-p6jf1fyt.js → chunk-t3e19wdp.js} +1 -1
- package/bundle/{chunk-v16n1fep.js → chunk-t7s475b2.js} +2 -2
- package/bundle/chunk-tefh2cgk.js +2 -0
- package/bundle/chunk-tfez99qv.js +2 -0
- package/bundle/chunk-tjk1hymv.js +2 -0
- package/bundle/{chunk-9bbwxp5d.js → chunk-tpw1ewqn.js} +1 -1
- package/bundle/{chunk-wecs14rz.js → chunk-tqnf1p88.js} +1 -1
- package/bundle/{chunk-pyf649pz.js → chunk-tyk97q7c.js} +1 -1
- package/bundle/chunk-tz1sv9kt.js +3 -0
- package/bundle/{chunk-2zjet9tx.js → chunk-tz60e15h.js} +2 -2
- package/bundle/{chunk-xstxdw7v.js → chunk-tzwm08yc.js} +1 -1
- package/bundle/chunk-v1098rqc.js +2 -0
- package/bundle/chunk-v30ezr68.js +11 -0
- package/bundle/{chunk-q8fjktv4.js → chunk-v5j3ypfv.js} +1 -1
- package/bundle/chunk-v5wn741w.js +2 -0
- package/bundle/{chunk-tdevq564.js → chunk-vamwvx0x.js} +1 -1
- package/bundle/{chunk-yce8ph5b.js → chunk-vbcekkw2.js} +2 -2
- package/bundle/{chunk-te91d271.js → chunk-vf75j9wd.js} +1 -1
- package/bundle/{chunk-4sa9t0vx.js → chunk-vhh80d5j.js} +2 -2
- package/bundle/{chunk-5rqjze1g.js → chunk-vm8htc6d.js} +1 -1
- package/bundle/{chunk-cs825mxr.js → chunk-vnz9n9z0.js} +1 -1
- package/bundle/chunk-vp6ttkct.js +2 -0
- package/bundle/chunk-vpcsmwsb.js +2 -0
- package/bundle/{chunk-gmq1kwn0.js → chunk-vrt8wd3r.js} +1 -1
- package/bundle/{chunk-1q10jyka.js → chunk-vyf77kq1.js} +2 -2
- package/bundle/{chunk-pchv413c.js → chunk-w32xhz0x.js} +2 -2
- package/bundle/{chunk-xqwk2zsx.js → chunk-wdy0fsp8.js} +2 -2
- package/bundle/{chunk-gqgjybjc.js → chunk-wkepvmgt.js} +1 -1
- package/bundle/{chunk-g52wmt1v.js → chunk-wp0xd7at.js} +1 -1
- package/bundle/{chunk-x50adh71.js → chunk-wpkr3vzf.js} +1 -1
- package/bundle/{chunk-npdgfqaw.js → chunk-wpx2vmf5.js} +1 -1
- package/bundle/{chunk-2fbkw84y.js → chunk-wqkvsj5y.js} +2 -2
- package/bundle/{chunk-nk5vrenn.js → chunk-wspbjh74.js} +2 -2
- package/bundle/{chunk-qdh2dm62.js → chunk-wzfb19t6.js} +1 -1
- package/bundle/chunk-x23s1s8k.js +2 -0
- package/bundle/{chunk-7s0nq2aa.js → chunk-x28chfpz.js} +2 -2
- package/bundle/{chunk-gx4v8z64.js → chunk-xf1y0sc6.js} +2 -2
- package/bundle/{chunk-h91zmzs5.js → chunk-xfsccqsm.js} +1 -1
- package/bundle/{chunk-pf2vq6t1.js → chunk-xmt17jd4.js} +2 -2
- package/bundle/{chunk-q4mtwv1w.js → chunk-xphzr4wg.js} +2 -2
- package/bundle/chunk-xr6js4ek.js +2 -0
- package/bundle/chunk-y078gb3n.js +2 -0
- package/bundle/{chunk-yydqavgh.js → chunk-y24yxs9g.js} +2 -2
- package/bundle/{chunk-wbt31xap.js → chunk-y565z8n2.js} +2 -2
- package/bundle/{chunk-nq4x6792.js → chunk-y7cqyeve.js} +2 -2
- package/bundle/{chunk-d1fv2c7s.js → chunk-y8bxvp3c.js} +2 -2
- package/bundle/{chunk-zfqgh9h7.js → chunk-y8tx9x5b.js} +1 -1
- package/bundle/{chunk-kds2g7r2.js → chunk-ya6r72ng.js} +1 -1
- package/bundle/chunk-yewjnqee.js +2 -0
- package/bundle/{chunk-2cvwrabw.js → chunk-yg0rs4g1.js} +2 -2
- package/bundle/{chunk-jbcqhw3x.js → chunk-yhr7s8qm.js} +2 -2
- package/bundle/chunk-ykk9e9as.js +2 -0
- package/bundle/chunk-yqn88gjf.js +2 -0
- package/bundle/chunk-yrxg3dex.js +2 -0
- package/bundle/{chunk-7hdb1fhq.js → chunk-yvtbt12y.js} +2 -2
- package/bundle/chunk-z1xeqrgd.js +2 -0
- package/bundle/chunk-z5j46dem.js +2 -0
- package/bundle/{chunk-dm447tgc.js → chunk-zj5snrsa.js} +2 -2
- package/bundle/{chunk-asxmkyz2.js → chunk-zjfdptdj.js} +1 -1
- package/bundle/chunk-zq0hpja9.js +2 -0
- package/bundle/{chunk-td9hm9be.js → chunk-zqzh5hp3.js} +1 -1
- package/bundle/{chunk-ev6jwt7q.js → chunk-zr1cvkpb.js} +1 -1
- package/bundle/{chunk-6mnk5sg3.js → chunk-zr89enb8.js} +1 -1
- package/bundle/{chunk-ecz4h0a2.js → chunk-zskjqrmc.js} +1 -1
- package/bundle/{chunk-1h96bk6p.js → chunk-ztjrm8m0.js} +2 -2
- package/bundle/chunk-zv89qwjc.js +2 -0
- package/bundle/index.js +3 -3
- package/bundle/parser.worker.js +2 -2
- package/bundle/worker.js +1 -1
- package/package.json +1 -1
- package/bundle/chunk-062chtrq.js +0 -2
- package/bundle/chunk-062vs7bp.js +0 -2
- package/bundle/chunk-08g14hmz.js +0 -2
- package/bundle/chunk-0w2v8dfy.js +0 -2
- package/bundle/chunk-10fr7a2y.js +0 -2
- package/bundle/chunk-15bjhfav.js +0 -3
- package/bundle/chunk-1hv61m11.js +0 -2
- package/bundle/chunk-2mkvx8b2.js +0 -2
- package/bundle/chunk-2rykfc3a.js +0 -2
- package/bundle/chunk-2w5hx4fs.js +0 -2
- package/bundle/chunk-2yy63sxz.js +0 -2
- package/bundle/chunk-2z3fe4qw.js +0 -2
- package/bundle/chunk-361cmmrp.js +0 -2
- package/bundle/chunk-3r6dq1h3.js +0 -2
- package/bundle/chunk-4a12wv2m.js +0 -2
- package/bundle/chunk-547a55ba.js +0 -2
- package/bundle/chunk-5ztmc770.js +0 -2
- package/bundle/chunk-62x3r2q8.js +0 -2
- package/bundle/chunk-6th7vpwm.js +0 -2
- package/bundle/chunk-6ybh5smv.js +0 -2
- package/bundle/chunk-73kprndw.js +0 -2
- package/bundle/chunk-79fr19xf.js +0 -2
- package/bundle/chunk-7ezr478e.js +0 -2
- package/bundle/chunk-7gj1vqyj.js +0 -2
- package/bundle/chunk-7ywfkwb4.js +0 -2
- package/bundle/chunk-85fnnwm2.js +0 -2
- package/bundle/chunk-89fwh84w.js +0 -2
- package/bundle/chunk-8e724g3k.js +0 -2
- package/bundle/chunk-9894a2yn.js +0 -2
- package/bundle/chunk-98ye2nwt.js +0 -2
- package/bundle/chunk-9s4excg8.js +0 -2
- package/bundle/chunk-aetgcegz.js +0 -2
- package/bundle/chunk-agas0nay.js +0 -2
- package/bundle/chunk-ayknzc4m.js +0 -2
- package/bundle/chunk-b2ybst88.js +0 -2
- package/bundle/chunk-bd5vtjd7.js +0 -2
- package/bundle/chunk-bjqqk6jt.js +0 -2
- package/bundle/chunk-cpkcdykz.js +0 -2
- package/bundle/chunk-cyafm8d6.js +0 -2
- package/bundle/chunk-d4316r53.js +0 -2
- package/bundle/chunk-d8ym7mcg.js +0 -2
- package/bundle/chunk-dnpjxjkp.js +0 -2
- package/bundle/chunk-e5gjqtby.js +0 -2
- package/bundle/chunk-ee3mqzms.js +0 -2
- package/bundle/chunk-er5f61s5.js +0 -2
- package/bundle/chunk-er716522.js +0 -2
- package/bundle/chunk-ez3gacqe.js +0 -2
- package/bundle/chunk-fkc7wf1p.js +0 -2
- package/bundle/chunk-fm6z8nqb.js +0 -2
- package/bundle/chunk-g0qwm23d.js +0 -2
- package/bundle/chunk-g4yn8cj8.js +0 -2
- package/bundle/chunk-gsez13bg.js +0 -3
- package/bundle/chunk-h1spsy3y.js +0 -2
- package/bundle/chunk-h8gkv40j.js +0 -2
- package/bundle/chunk-j59kmb49.js +0 -2
- package/bundle/chunk-jv37ghev.js +0 -2
- package/bundle/chunk-k3hcb6qf.js +0 -2
- package/bundle/chunk-k5d822n2.js +0 -3
- package/bundle/chunk-m8ytbq04.js +0 -2
- package/bundle/chunk-mf9nc4xz.js +0 -2
- package/bundle/chunk-mxby91bj.js +0 -2
- package/bundle/chunk-mzv1gh6f.js +0 -2
- package/bundle/chunk-n0hsvvw8.js +0 -2
- package/bundle/chunk-nm1v9z14.js +0 -2
- package/bundle/chunk-p7nstcxa.js +0 -2
- package/bundle/chunk-pfwkvv7g.js +0 -2
- package/bundle/chunk-pn1jz8qj.js +0 -2
- package/bundle/chunk-pqvmtfk7.js +0 -2
- package/bundle/chunk-prgw26g3.js +0 -2
- package/bundle/chunk-pv9ty6v7.js +0 -2
- package/bundle/chunk-q4rstre7.js +0 -2
- package/bundle/chunk-q6jk2v6g.js +0 -2
- package/bundle/chunk-qd43npx3.js +0 -2
- package/bundle/chunk-qdb21y83.js +0 -2
- package/bundle/chunk-qeksaefy.js +0 -2
- package/bundle/chunk-r7t9yb9d.js +0 -2
- package/bundle/chunk-sdv3a4w3.js +0 -2
- package/bundle/chunk-sk89becn.js +0 -2
- package/bundle/chunk-tc0996xz.js +0 -2
- package/bundle/chunk-tfs50mgj.js +0 -2
- package/bundle/chunk-thecq33z.js +0 -3
- package/bundle/chunk-tjvtp9d9.js +0 -2
- package/bundle/chunk-tkm9m3n0.js +0 -2
- package/bundle/chunk-v03xq38e.js +0 -5
- package/bundle/chunk-v1s1rcqx.js +0 -2
- package/bundle/chunk-v4dt4062.js +0 -2
- package/bundle/chunk-wgrq86kd.js +0 -2
- package/bundle/chunk-x8ks2bn7.js +0 -2
- package/bundle/chunk-xgf4k9q7.js +0 -10
- package/bundle/chunk-xy2ty5h5.js +0 -8
- package/bundle/chunk-z0383stv.js +0 -2
- package/bundle/chunk-zewrmk8x.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Id as a,Jd as b}from"./chunk-3amgvg81.js";import"./chunk-j7d3v0x2.js";import"./chunk-dzw0j790.js";import"./chunk-rvev3cy6.js";import"./chunk-datctfgt.js";import"./chunk-x28chfpz.js";import"./chunk-mnxcykeq.js";import"./chunk-0bn86djg.js";import"./chunk-xphzr4wg.js";import"./chunk-hav9pgf3.js";import"./chunk-cshsqavb.js";import"./chunk-tz60e15h.js";import"./chunk-9svh74gt.js";export{a as read,b as copy};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
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":'\u0421\u043F\u0440\u043E\u0441\u0438\u0442\u0435 \u0447\u0442\u043E \u0443\u0433\u043E\u0434\u043D\u043E... "{{example}}"',"tui.prompt.placeholder.shell":'\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u0443... "{{example}}"',"tui.prompt.ghost":"{{prediction}} (Tab \u2014 \u043F\u0440\u0438\u043D\u044F\u0442\u044C)","tui.home.placeholder.example.todo":"\u0418\u0441\u043F\u0440\u0430\u0432\u044C TODO \u0432 \u043A\u043E\u0434\u043E\u0432\u043E\u0439 \u0431\u0430\u0437\u0435","tui.home.placeholder.example.stack":"\u041A\u0430\u043A\u043E\u0439 \u0442\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0441\u0442\u0435\u043A \u0443 \u044D\u0442\u043E\u0433\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0430?","tui.home.placeholder.example.tests":"\u041F\u043E\u0447\u0438\u043D\u0438 \u0441\u043B\u043E\u043C\u0430\u043D\u043D\u044B\u0435 \u0442\u0435\u0441\u0442\u044B","tui.home.agreement.prefix":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F QitQode, \u0432\u044B \u0441\u043E\u0433\u043B\u0430\u0448\u0430\u0435\u0442\u0435\u0441\u044C \u0441 \u043D\u0430\u0448\u0438\u043C\u0438 ","tui.home.agreement.terms":"\u0423\u0441\u043B\u043E\u0432\u0438\u044F\u043C\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F","tui.home.agreement.separator":" \u0438 ","tui.home.agreement.privacy":"\u041F\u043E\u043B\u0438\u0442\u0438\u043A\u043E\u0439 \u043A\u043E\u043D\u0444\u0438\u0434\u0435\u043D\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u0438","tui.home.agreement.suffix":"","tui.prompt.hint.attach_file":"\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u0444\u0430\u0439\u043B","tui.prompt.hint.subagent":"\u0441\u0443\u0431\u0430\u0433\u0435\u043D\u0442","tui.prompt.hint.commands":"\u043A\u043E\u043C\u0430\u043D\u0434\u044B","tui.prompt.hint.switch_mode":"\u0441\u043C\u0435\u043D\u0438\u0442\u044C \u0440\u0435\u0436\u0438\u043C","tui.prompt.hint.settings":"\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438","tui.tips.label":"\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430","tui.tips.plain_terminal":"\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C iTerm \u0438\u043B\u0438 \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B VS Code","tui.tips.attach_file":"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 {highlight}@{/highlight}, \u0430 \u0437\u0430\u0442\u0435\u043C \u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430, \u0447\u0442\u043E\u0431\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043D\u0435\u0447\u0451\u0442\u043A\u0438\u0439 \u043F\u043E\u0438\u0441\u043A \u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u044B","tui.tips.shell_prefix":"\u041D\u0430\u0447\u043D\u0438\u0442\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0441 {highlight}!{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C shell-\u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, {highlight}!ls -la{/highlight})","tui.tips.tab_agent":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Tab{/highlight} \u0438\u043B\u0438 {highlight}Shift+Tab{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u044C\u0441\u044F \u043C\u0435\u0436\u0434\u0443 \u0430\u0433\u0435\u043D\u0442\u0430\u043C\u0438 Build, Plan \u0438 Compose","tui.tips.theme_mode":"\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 {highlight}/dark{/highlight} \u0434\u043B\u044F \u0442\u0451\u043C\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0430 \u0438\u043B\u0438 {highlight}/light{/highlight} \u0434\u043B\u044F \u0441\u0432\u0435\u0442\u043B\u043E\u0433\u043E","tui.tips.doc":"\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 {highlight}/doc{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0443\u044E \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044E","tui.tips.undo":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}/undo{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u043E\u0432","tui.tips.redo":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}/redo{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0440\u0430\u043D\u0435\u0435 \u043E\u0442\u043C\u0435\u043D\u0451\u043D\u043D\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F","tui.tips.drag_drop":"\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0438\u043B\u0438 PDF \u0432 \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B, \u0447\u0442\u043E\u0431\u044B \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0438\u0445 \u0432 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442","tui.tips.paste_image":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+V{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430 \u043E\u0431\u043C\u0435\u043D\u0430 \u0432 \u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u0432\u043E\u0434\u0430","tui.tips.editor":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+X E{/highlight} \u0438\u043B\u0438 {highlight}/editor{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0432\u043E \u0432\u043D\u0435\u0448\u043D\u0435\u043C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435","tui.tips.init":"\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 {highlight}/init{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0430\u0432\u0438\u043B\u0430 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043F\u043E \u0432\u0430\u0448\u0435\u043C\u0443 \u043A\u043E\u0434\u0443","tui.tips.models":"\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 {highlight}/models{/highlight} \u0438\u043B\u0438 {highlight}Ctrl+X M{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u044C\u0441\u044F \u043C\u0435\u0436\u0434\u0443 \u043C\u043E\u0434\u0435\u043B\u044F\u043C\u0438","tui.tips.theme":'\u0417\u0430\u043A\u0440\u0435\u043F\u0438\u0442\u0435 \u0440\u0435\u0436\u0438\u043C \u0442\u0435\u043C\u044B \u043D\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E \u043E\u0442 \u0444\u043E\u043D\u0430 \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430 \u2014 \u043E\u0442\u043A\u0440\u043E\u0439\u0442\u0435 \u043F\u0430\u043B\u0438\u0442\u0440\u0443 \u043A\u043E\u043C\u0430\u043D\u0434 ({highlight}Ctrl+P{/highlight}) \u0438 \u043D\u0430\u0439\u0434\u0438\u0442\u0435 "lock"',"tui.tips.new_session":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+X N{/highlight} \u0438\u043B\u0438 {highlight}/new{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043D\u0430\u0447\u0430\u0442\u044C \u043D\u043E\u0432\u0443\u044E \u0441\u0435\u0441\u0441\u0438\u044E","tui.tips.sessions":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}/sessions{/highlight} \u0438\u043B\u0438 {highlight}Ctrl+X L{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0438 \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0435 \u0441\u0435\u0441\u0441\u0438\u0438","tui.tips.compact":"\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 {highlight}/compact{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0441\u0436\u0438\u043C\u0430\u0442\u044C \u0434\u043B\u0438\u043D\u043D\u044B\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u0443 \u0433\u0440\u0430\u043D\u0438\u0446\u044B \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430","tui.tips.export":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+X X{/highlight} \u0438\u043B\u0438 {highlight}/export{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0434\u0438\u0430\u043B\u043E\u0433 \u0432 Markdown","tui.tips.copy_last":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+X Y{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0430","tui.tips.command_palette":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+P{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0432\u0441\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u044B","tui.tips.leader":"\u041B\u0438\u0434\u0435\u0440-\u043A\u043B\u0430\u0432\u0438\u0448\u0430 \u2014 {highlight}Ctrl+X{/highlight}; \u0441\u043E\u0447\u0435\u0442\u0430\u0439\u0442\u0435 \u0435\u0451 \u0441 \u0434\u0440\u0443\u0433\u0438\u043C\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0430\u043C\u0438 \u0434\u043B\u044F \u0431\u044B\u0441\u0442\u0440\u044B\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439","tui.tips.f2":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}F2{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0431\u044B\u0441\u0442\u0440\u043E \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u044C\u0441\u044F \u043C\u0435\u0436\u0434\u0443 \u043D\u0435\u0434\u0430\u0432\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u043C\u0438 \u043C\u043E\u0434\u0435\u043B\u044F\u043C\u0438","tui.tips.sidebar":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+X B{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u043B\u0438 \u0441\u043A\u0440\u044B\u0442\u044C \u0431\u043E\u043A\u043E\u0432\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C","tui.tips.history":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}PageUp{/highlight}/{highlight}PageDown{/highlight} \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u043F\u043E \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u0434\u0438\u0430\u043B\u043E\u0433\u0430","tui.tips.jump_first":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+G{/highlight} \u0438\u043B\u0438 {highlight}Home{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u043D\u0430\u0447\u0430\u043B\u043E \u0434\u0438\u0430\u043B\u043E\u0433\u0430","tui.tips.jump_last":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+Alt+G{/highlight} \u0438\u043B\u0438 {highlight}End{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u043C\u0443 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044E","tui.tips.newline":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Shift+Enter{/highlight} \u0438\u043B\u0438 {highlight}Ctrl+J{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u0441\u0442\u0440\u043E\u043A\u0438 \u0432\u043E \u0432\u0432\u043E\u0434","tui.tips.clear_input":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+C{/highlight} \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u0432\u0432\u043E\u0434\u0430, \u0447\u0442\u043E\u0431\u044B \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u043F\u043E\u043B\u0435 \u0432\u0432\u043E\u0434\u0430","tui.tips.escape":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Escape{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u0418\u0418 \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u043E\u0442\u0432\u0435\u0442\u0430","tui.tips.plan_agent":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u0435\u0441\u044C \u043D\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 {highlight}Plan{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0431\u0435\u0437 \u0440\u0435\u0430\u043B\u044C\u043D\u044B\u0445 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439","tui.tips.subagent":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}@agent-name{/highlight} \u0432 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430\u0445, \u0447\u0442\u043E\u0431\u044B \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u0434-\u0430\u0433\u0435\u043D\u0442\u043E\u0432","tui.tips.cycle_sessions":"\u041D\u0430\u0436\u0438\u043C\u0430\u0439\u0442\u0435 {highlight}Ctrl+X Right/Left{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u044C\u0441\u044F \u043C\u0435\u0436\u0434\u0443 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0439 \u0438 \u0434\u043E\u0447\u0435\u0440\u043D\u0438\u043C\u0438 \u0441\u0435\u0441\u0441\u0438\u044F\u043C\u0438","tui.tips.config_files":"\u0421\u043E\u0437\u0434\u0430\u0439\u0442\u0435 {highlight}qitqode.json{/highlight} \u0434\u043B\u044F \u0441\u0435\u0440\u0432\u0435\u0440\u043D\u044B\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0438 {highlight}tui.json{/highlight} \u0434\u043B\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A TUI","tui.tips.global_config":"\u041F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 TUI \u0432 {highlight}~/.config/qitqode/tui.json{/highlight} \u043A\u0430\u043A \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0435","tui.tips.schema":"\u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 {highlight}$schema{/highlight} \u0432 \u043A\u043E\u043D\u0444\u0438\u0433 \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435","tui.tips.default_model":"\u0417\u0430\u0434\u0430\u0439\u0442\u0435 {highlight}model{/highlight} \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0435, \u0447\u0442\u043E\u0431\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043C\u043E\u0434\u0435\u043B\u044C \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E","tui.tips.keybinds":"\u041F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0439\u0442\u0435 \u043B\u044E\u0431\u044B\u0435 \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u044F \u043A\u043B\u0430\u0432\u0438\u0448 \u0432 {highlight}tui.json{/highlight} \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0435 {highlight}keybinds{/highlight}","tui.tips.disable_keybind":"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u0435 \u0432 {highlight}none{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u043D\u043E\u0441\u0442\u044C\u044E \u0435\u0433\u043E \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C","tui.tips.mcp_config":"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0435 \u0438\u043B\u0438 \u0443\u0434\u0430\u043B\u0451\u043D\u043D\u044B\u0435 MCP-\u0441\u0435\u0440\u0432\u0435\u0440\u044B \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0435 {highlight}mcp{/highlight} \u043A\u043E\u043D\u0444\u0438\u0433\u0430","tui.tips.mcp_oauth":"QitQode \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0435\u0442 OAuth \u0434\u043B\u044F \u0443\u0434\u0430\u043B\u0451\u043D\u043D\u044B\u0445 MCP-\u0441\u0435\u0440\u0432\u0435\u0440\u043E\u0432 \u0441 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u0435\u0439","tui.tips.custom_command":"\u0414\u043E\u0431\u0430\u0432\u043B\u044F\u0439\u0442\u0435 \u0444\u0430\u0439\u043B\u044B {highlight}.md{/highlight} \u0432 {highlight}.qitqode/command/{/highlight} \u0434\u043B\u044F \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u043A\u043E\u043C\u0430\u043D\u0434","tui.tips.command_args":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}$ARGUMENTS{/highlight}, {highlight}$1{/highlight}, {highlight}$2{/highlight} \u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0430\u0445 \u0434\u043B\u044F \u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0432\u0432\u043E\u0434\u0430","tui.tips.command_backticks":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043E\u0431\u0440\u0430\u0442\u043D\u044B\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438 \u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0430\u0445, \u0447\u0442\u043E\u0431\u044B \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0432\u044B\u0432\u043E\u0434 shell (\u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, {highlight}`git status`{/highlight})","tui.tips.custom_agent":"\u0414\u043E\u0431\u0430\u0432\u043B\u044F\u0439\u0442\u0435 \u0444\u0430\u0439\u043B\u044B {highlight}.md{/highlight} \u0432 {highlight}.qitqode/agent/{/highlight} \u0434\u043B\u044F \u0441\u043F\u0435\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 AI-\u043F\u0435\u0440\u0441\u043E\u043D","tui.tips.agent_perms":"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0434\u043B\u044F \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u0430\u0433\u0435\u043D\u0442\u0430 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0435 \u043F\u0440\u0430\u0432\u0430 \u043D\u0430 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B {highlight}edit{/highlight}, {highlight}bash{/highlight} \u0438 {highlight}webfetch{/highlight}","tui.tips.bash_allow":'\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0448\u0430\u0431\u043B\u043E\u043D\u044B \u0432\u0440\u043E\u0434\u0435 {highlight}"git *": "allow"{/highlight} \u0434\u043B\u044F \u0442\u043E\u043D\u043A\u0438\u0445 bash-\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0439',"tui.tips.bash_deny":'\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 {highlight}"rm -rf *": "deny"{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u0440\u0443\u0448\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B',"tui.tips.bash_ask":'\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 {highlight}"git push": "ask"{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044C \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0434 push',"tui.tips.formatter":"QitQode \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u0443\u0435\u0442 \u0444\u0430\u0439\u043B\u044B \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E prettier, gofmt, ruff \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432","tui.tips.disable_formatter":'\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 {highlight}"formatter": false{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u0441\u0451 \u0430\u0432\u0442\u043E-\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435',"tui.tips.custom_formatter":"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0439\u0442\u0435 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043C \u0444\u0430\u0439\u043B\u043E\u0432 \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0435","tui.tips.lsp":"QitQode \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 LSP-\u0441\u0435\u0440\u0432\u0435\u0440\u044B \u0434\u043B\u044F \u0438\u043D\u0442\u0435\u043B\u043B\u0435\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0430\u043D\u0430\u043B\u0438\u0437\u0430 \u043A\u043E\u0434\u0430","tui.tips.custom_tool":"\u0421\u043E\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043B\u044B {highlight}.ts{/highlight} \u0432 {highlight}.qitqode/tools/{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0435 LLM-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B","tui.tips.tool_scripts":"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043C\u043E\u0433\u0443\u0442 \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C \u0441\u043A\u0440\u0438\u043F\u0442\u044B \u043D\u0430 Python, Go \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u044F\u0437\u044B\u043A\u0430\u0445","tui.tips.plugins":"\u0414\u043E\u0431\u0430\u0432\u043B\u044F\u0439\u0442\u0435 \u0444\u0430\u0439\u043B\u044B {highlight}.ts{/highlight} \u0432 {highlight}.qitqode/plugin/{/highlight} \u0434\u043B\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F \u0445\u0443\u043A\u043E\u0432 \u0441\u043E\u0431\u044B\u0442\u0438\u0439","tui.tips.plugin_notify":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043F\u043B\u0430\u0433\u0438\u043D\u044B, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0438 \u0441\u0435\u0441\u0441\u0438\u0439","tui.tips.plugin_protect":"\u0421\u043E\u0437\u0434\u0430\u0439\u0442\u0435 \u043F\u043B\u0430\u0433\u0438\u043D, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0437\u0430\u043F\u0440\u0435\u0442\u0438\u0442 QitQode \u0447\u0438\u0442\u0430\u0442\u044C \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B","tui.tips.run":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}qitqode run{/highlight} \u0434\u043B\u044F \u043D\u0435\u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0432","tui.tips.continue":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}qitqode --continue{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0441\u0435\u0441\u0441\u0438\u044E","tui.tips.attach_cli":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}qitqode run -f file.ts{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u0438\u0437 \u043A\u043E\u043C\u0430\u043D\u0434\u043D\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0438","tui.tips.format_json":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}--format json{/highlight} \u0434\u043B\u044F \u043C\u0430\u0448\u0438\u043D\u043D\u043E-\u0447\u0438\u0442\u0430\u0435\u043C\u043E\u0433\u043E \u0432\u044B\u0432\u043E\u0434\u0430 \u0432 \u0441\u043A\u0440\u0438\u043F\u0442\u0430\u0445","tui.tips.auth_list":"\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 {highlight}qitqode auth status{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0432\u0445\u043E\u0434\u0430","tui.tips.agent_create":"\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 {highlight}qitqode agent create{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0430\u0433\u0435\u043D\u0442\u0430 \u0432 \u043F\u043E\u0448\u0430\u0433\u043E\u0432\u043E\u043C \u0440\u0435\u0436\u0438\u043C\u0435","tui.tips.theme_system":'\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}"theme": "system"{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0446\u0432\u0435\u0442\u0430\u043C \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430',"tui.tips.theme_files":"\u0421\u043E\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 JSON-\u0444\u0430\u0439\u043B\u044B \u0442\u0435\u043C \u0432 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435 {highlight}.qitqode/themes/{/highlight}","tui.tips.theme_variants":"\u0422\u0435\u043C\u044B \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0442 \u0442\u0451\u043C\u043D\u044B\u0435 \u0438 \u0441\u0432\u0435\u0442\u043B\u044B\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0434\u043B\u044F \u043E\u0431\u043E\u0438\u0445 \u0440\u0435\u0436\u0438\u043C\u043E\u0432","tui.tips.theme_ansi":"\u0421\u0441\u044B\u043B\u0430\u0439\u0442\u0435\u0441\u044C \u043D\u0430 ANSI-\u0446\u0432\u0435\u0442\u0430 0-255 \u0432 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0445 \u0442\u0435\u043C\u0430\u0445","tui.tips.env_var":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0441\u0438\u043D\u0442\u0430\u043A\u0441\u0438\u0441 {highlight}{env:VAR_NAME}{/highlight} \u0434\u043B\u044F \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u043E\u043A\u0440\u0443\u0436\u0435\u043D\u0438\u044F \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0435","tui.tips.file_var":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}{file:path}{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0432\u0441\u0442\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0444\u0430\u0439\u043B\u0430 \u0432 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0430","tui.tips.instructions":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}instructions{/highlight} \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B \u043F\u0440\u0430\u0432\u0438\u043B","tui.tips.temperature":"\u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0439\u0442\u0435 {highlight}temperature{/highlight} \u0430\u0433\u0435\u043D\u0442\u0430 \u043E\u0442 0.0 (\u0441\u043E\u0441\u0440\u0435\u0434\u043E\u0442\u043E\u0447\u0435\u043D\u043D\u043E) \u0434\u043E 1.0 (\u0442\u0432\u043E\u0440\u0447\u0435\u0441\u043A\u0438)","tui.tips.steps":"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 {highlight}steps{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0442\u044C \u0447\u0438\u0441\u043B\u043E \u0430\u0433\u0435\u043D\u0442\u0441\u043A\u0438\u0445 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043D\u0430 \u0437\u0430\u043F\u0440\u043E\u0441","tui.tips.disable_tool":'\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 {highlight}"tools": {"bash": false}{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B',"tui.tips.disable_mcp_tools":'\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 {highlight}"mcp_*": false{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u0441\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E MCP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430',"tui.tips.tool_override":"\u041F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0439\u0442\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u0430\u0433\u0435\u043D\u0442\u0430","tui.tips.doom_loop":"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 {highlight}doom_loop{/highlight} \u043F\u0440\u0435\u0434\u043E\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0431\u0435\u0441\u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0435 \u0446\u0438\u043A\u043B\u044B \u0432\u044B\u0437\u043E\u0432\u0430 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432","tui.tips.external_dir":"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 {highlight}external_directory{/highlight} \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u0444\u0430\u0439\u043B\u044B \u0432\u043D\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u0430","tui.tips.debug_config":"\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 {highlight}qitqode debug config{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438","tui.tips.print_logs":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0444\u043B\u0430\u0433 {highlight}--print-logs{/highlight}, \u0447\u0442\u043E\u0431\u044B \u0432\u0438\u0434\u0435\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u044B\u0435 \u043B\u043E\u0433\u0438 \u0432 stderr","tui.tips.timeline":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+X G{/highlight} \u0438\u043B\u0438 {highlight}/timeline{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u043D\u0443\u0436\u043D\u043E\u043C\u0443 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044E","tui.tips.toggle_code":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+X H{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u044C \u0432\u0438\u0434\u0438\u043C\u043E\u0441\u0442\u044C \u0431\u043B\u043E\u043A\u043E\u0432 \u043A\u043E\u0434\u0430 \u0432 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u0445","tui.tips.status":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+X S{/highlight} \u0438\u043B\u0438 {highlight}/status{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441 \u0441\u0438\u0441\u0442\u0435\u043C\u044B","tui.tips.scroll_accel":"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u0435 {highlight}scroll_acceleration{/highlight} \u0432 {highlight}tui.json{/highlight} \u0434\u043B\u044F \u043F\u043B\u0430\u0432\u043D\u043E\u0439 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438","tui.tips.agents_md":"\u0417\u0430\u043A\u043E\u043C\u043C\u0438\u0442\u044C\u0442\u0435 {highlight}AGENTS.md{/highlight} \u0432\u0430\u0448\u0435\u0433\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0432 Git \u0434\u043B\u044F \u043E\u0431\u0449\u0435\u0433\u043E \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0435","tui.tips.review":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}/review{/highlight} \u0434\u043B\u044F \u0440\u0435\u0432\u044C\u044E \u043D\u0435\u0437\u0430\u043A\u043E\u043C\u043C\u0438\u0447\u0435\u043D\u043D\u044B\u0445 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439, \u0432\u0435\u0442\u043E\u043A \u0438\u043B\u0438 PR","tui.tips.help":"\u0412\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 {highlight}/help{/highlight} \u0438\u043B\u0438 {highlight}Ctrl+X H{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0441\u043F\u0440\u0430\u0432\u043A\u0443","tui.tips.rename":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {highlight}/rename{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0441\u0435\u0441\u0441\u0438\u044E","tui.tips.suspend.unix":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+Z{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B \u0438 \u0432\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u0432 shell","tui.tips.suspend.win":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {highlight}Ctrl+Z{/highlight}, \u0447\u0442\u043E\u0431\u044B \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432 \u0441\u0442\u0440\u043E\u043A\u0435 \u0432\u0432\u043E\u0434\u0430","tui.command.palette.title":"\u041A\u043E\u043C\u0430\u043D\u0434\u044B","tui.command.palette.suggested":"\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u0435","tui.command.category.session":"\u0421\u0435\u0441\u0441\u0438\u044F","tui.command.category.agent":"\u0410\u0433\u0435\u043D\u0442","tui.command.category.provider":"\u041F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440","tui.command.category.system":"\u0421\u0438\u0441\u0442\u0435\u043C\u0430","tui.command.category.prompt":"\u0412\u0432\u043E\u0434","tui.command.category.internal":"\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0435","tui.command.category.external":"\u0412\u043D\u0435\u0448\u043D\u0438\u0435","tui.slash.init.description":"\u043F\u043E\u0448\u0430\u0433\u043E\u0432\u0430\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 AGENTS.md","tui.slash.review.description":"\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 [commit|branch|pr], \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0435\u0437\u0430\u043A\u043E\u043C\u043C\u0438\u0447\u0435\u043D\u043D\u044B\u0435","tui.slash.dream.description":"\u0432\u0440\u0443\u0447\u043D\u0443\u044E \u043A\u043E\u043D\u0441\u043E\u043B\u0438\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0430\u043C\u044F\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438\u0437 memory-\u0444\u0430\u0439\u043B\u043E\u0432 \u0438 \u0441\u044B\u0440\u043E\u0439 \u0442\u0440\u0430\u0435\u043A\u0442\u043E\u0440\u0438\u0438","tui.slash.distill.description":"\u043D\u0430\u0439\u0442\u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0449\u0438\u0435\u0441\u044F workflow \u0432 \u043D\u0435\u0434\u0430\u0432\u043D\u0435\u0439 \u0440\u0430\u0431\u043E\u0442\u0435 \u0438 \u0443\u043F\u0430\u043A\u043E\u0432\u0430\u0442\u044C \u0438\u0445 \u0432 skills, \u0441\u0443\u0431\u0430\u0433\u0435\u043D\u0442\u043E\u0432 \u0438\u043B\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u044B","tui.slash.goal.description":"\u0437\u0430\u0434\u0430\u0442\u044C \u0446\u0435\u043B\u044C \u0441 \u0443\u0441\u043B\u043E\u0432\u0438\u0435\u043C \u043E\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438; \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F, \u043F\u043E\u043A\u0430 \u0441\u0443\u0434\u044C\u044F \u043D\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442. /goal clear \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B","tui.slash.deep-research.description":"\u0433\u043B\u0443\u0431\u043E\u043A\u0438\u0439 \u043C\u043D\u043E\u0433\u043E\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u0432\u044B\u0439 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043D\u044B\u0439 \u043E\u0442\u0447\u0451\u0442 (\u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442 workflow deep-research)","tui.command.language.switch.title":"\u0421\u043C\u0435\u043D\u0438\u0442\u044C \u044F\u0437\u044B\u043A","tui.command.language.switch.description":"\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u044F\u0437\u044B\u043A \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430","tui.command.language.dialog.title":"\u0421\u043C\u0435\u043D\u0438\u0442\u044C \u044F\u0437\u044B\u043A","tui.language.auto":"\u0410\u0432\u0442\u043E (\u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0439)","tui.language.current":"\u0422\u0435\u043A\u0443\u0449\u0438\u0439","tui.command.session.list.title":"\u0421\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E","tui.command.session.new.title":"\u041D\u043E\u0432\u0430\u044F \u0441\u0435\u0441\u0441\u0438\u044F","tui.command.workflow.list.title":"\u0420\u0430\u0431\u043E\u0447\u0438\u0435 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u044B","tui.command.model.list.title":"\u0421\u043C\u0435\u043D\u0438\u0442\u044C \u043C\u043E\u0434\u0435\u043B\u044C","tui.command.model.cycle_recent.title":"\u0426\u0438\u043A\u043B \u043C\u043E\u0434\u0435\u043B\u0435\u0439","tui.command.model.cycle_recent_reverse.title":"\u0426\u0438\u043A\u043B \u043C\u043E\u0434\u0435\u043B\u0435\u0439 (\u0432 \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u043C \u043F\u043E\u0440\u044F\u0434\u043A\u0435)","tui.command.model.cycle_favorite.title":"\u0426\u0438\u043A\u043B \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u044B\u0445 \u043C\u043E\u0434\u0435\u043B\u0435\u0439","tui.command.model.cycle_favorite_reverse.title":"\u0426\u0438\u043A\u043B \u0438\u0437\u0431\u0440\u0430\u043D\u043D\u044B\u0445 \u043C\u043E\u0434\u0435\u043B\u0435\u0439 (\u0432 \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u043C \u043F\u043E\u0440\u044F\u0434\u043A\u0435)","tui.command.agent.list.title":"\u0421\u043C\u0435\u043D\u0438\u0442\u044C \u0430\u0433\u0435\u043D\u0442\u0430","tui.command.mcp.list.title":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C MCP","tui.command.never_ask.title_on":"\u0411\u0435\u0437 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432: \u0412\u041A\u041B (\u0430\u0432\u0442\u043E-\u0440\u0435\u0448\u0435\u043D\u0438\u0435, \u043A\u0440\u043E\u043C\u0435 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0439) \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","tui.command.never_ask.title_off":"\u0411\u0435\u0437 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432: \u0412\u042B\u041A\u041B \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F (\u0430\u0432\u0442\u043E-\u0440\u0435\u0448\u0435\u043D\u0438\u0435, \u043A\u0440\u043E\u043C\u0435 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0439)","tui.command.never_ask.toast_on":"\u0411\u0435\u0437 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 \u0412\u041A\u041B \u2014 \u044F \u043D\u0435 \u0431\u0443\u0434\u0443 \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044C; \u0441\u0430\u043C \u0432\u044B\u0431\u0435\u0440\u0443 \u043B\u0443\u0447\u0448\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442, \u043F\u043E\u043A\u0430 \u0432\u044B \u043D\u0435 \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u0435 (/never-ask). \u0417\u0430\u043F\u0440\u043E\u0441\u044B \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0439 \u043F\u043E-\u043F\u0440\u0435\u0436\u043D\u0435\u043C\u0443 \u0442\u0440\u0435\u0431\u0443\u044E\u0442 \u0432\u0430\u0448\u0435\u0433\u043E \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F.","tui.command.never_ask.toast_off":"\u0411\u0435\u0437 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 \u0412\u042B\u041A\u041B \u2014 \u044F \u0441\u043D\u043E\u0432\u0430 \u0431\u0443\u0434\u0443 \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044C \u0432\u0430\u0441 \u0432 \u0442\u043E\u0447\u043A\u0430\u0445 \u043F\u0440\u0438\u043D\u044F\u0442\u0438\u044F \u0440\u0435\u0448\u0435\u043D\u0438\u0439.","tui.command.never_ask.title_on_fullauto":"\u0411\u0435\u0437 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432: \u0412\u041A\u041B (\u0430\u0432\u0442\u043E-\u0440\u0435\u0448\u0435\u043D\u0438\u0435; \u043F\u043E\u043B\u043D\u044B\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442 \u0442\u0430\u043A\u0436\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F) \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","tui.command.never_ask.title_off_fullauto":"\u0411\u0435\u0437 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432: \u0412\u042B\u041A\u041B \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F (\u0430\u0432\u0442\u043E-\u0440\u0435\u0448\u0435\u043D\u0438\u0435; \u043F\u043E\u043B\u043D\u044B\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442 \u043F\u043E-\u043F\u0440\u0435\u0436\u043D\u0435\u043C\u0443 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F)","tui.command.never_ask.toast_on_fullauto":"\u0411\u0435\u0437 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 \u0412\u041A\u041B \u2014 \u044F \u043D\u0435 \u0431\u0443\u0434\u0443 \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044C; \u0441\u0430\u043C \u0432\u044B\u0431\u0435\u0440\u0443 \u043B\u0443\u0447\u0448\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442, \u043F\u043E\u043A\u0430 \u0432\u044B \u043D\u0435 \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u0435 (/never-ask). \u0412\u043A\u043B\u044E\u0447\u0451\u043D \u043F\u043E\u043B\u043D\u044B\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0437\u0430\u043F\u0440\u043E\u0441\u044B \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0439 \u0442\u043E\u0436\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044E\u0442\u0441\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438.","tui.command.agent.cycle.title":"\u0426\u0438\u043A\u043B \u0430\u0433\u0435\u043D\u0442\u043E\u0432","tui.command.variant.cycle.title":"\u0426\u0438\u043A\u043B \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432","tui.command.variant.list.title":"\u0421\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u043C\u043E\u0434\u0435\u043B\u0438","tui.command.agent.cycle.reverse.title":"\u0426\u0438\u043A\u043B \u0430\u0433\u0435\u043D\u0442\u043E\u0432 (\u0432 \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u043C \u043F\u043E\u0440\u044F\u0434\u043A\u0435)","tui.command.provider.login.title":"\u0412\u043E\u0439\u0442\u0438","tui.command.provider.logout.title":"\u0412\u044B\u0439\u0442\u0438","tui.command.console.org.switch.title":"\u0421\u043C\u0435\u043D\u0438\u0442\u044C \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044E","tui.command.qitqode.status.title":"\u041F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0441\u0442\u0430\u0442\u0443\u0441","tui.command.theme.switch.title":"\u0421\u043C\u0435\u043D\u0438\u0442\u044C \u0442\u0435\u043C\u0443","tui.command.theme.switch_mode.to_light":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430 \u0441\u0432\u0435\u0442\u043B\u044B\u0439 \u0440\u0435\u0436\u0438\u043C","tui.command.theme.switch_mode.to_dark":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0430 \u0442\u0451\u043C\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C","tui.command.theme.mode.unlock":"\u0420\u0430\u0437\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0435\u0436\u0438\u043C \u0442\u0435\u043C\u044B","tui.command.theme.mode.lock":"\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0435\u0436\u0438\u043C \u0442\u0435\u043C\u044B","tui.command.help.show.title":"\u0421\u043F\u0440\u0430\u0432\u043A\u0430","tui.dialog.help.close_hint":"esc/enter/space","tui.dialog.help.accessibility":"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0441\u0442\u044C: \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0439\u0442\u0435 \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u0438 \u0438 \u0437\u0432\u0443\u043A \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u043A\u043E\u043C\u0430\u043D\u0434. \u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0435 \u043E\u043A\u0440\u0443\u0436\u0435\u043D\u0438\u044F: NO_COLOR, QITQODE_TUI_ACCESSIBLE, QITQODE_REDUCE_MOTION, QITQODE_TUI_SOUND.","tui.dialog.help.announcements":"\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u044F: \u0432 \u0440\u0435\u0436\u0438\u043C\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0441\u0442\u0438 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u044C \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0439 \u0434\u043B\u044F \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C \u0447\u0442\u0435\u043D\u0438\u044F \u0441 \u044D\u043A\u0440\u0430\u043D\u0430 (\u0442\u0438\u0445\u0438\u0439, \u043E\u0431\u044B\u0447\u043D\u044B\u0439, \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u044B\u0439) \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u043A\u043E\u043C\u0430\u043D\u0434 \u0438\u043B\u0438 \u0447\u0435\u0440\u0435\u0437 QITQODE_TUI_ANNOUNCEMENTS. \u041E\u0448\u0438\u0431\u043A\u0438 \u043E\u0431\u044A\u044F\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u0432\u0441\u0435\u0433\u0434\u0430.","tui.dialog.help.dialog_keys":"\u0414\u0438\u0430\u043B\u043E\u0433\u0438: \u0432\u0441\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438 \u043F\u043E\u043B\u043D\u043E\u0441\u0442\u044C\u044E \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u0441 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044B \u2014 Esc \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442, Tab \u0438\u043B\u0438 \u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0430\u044E\u0442 \u0444\u043E\u043A\u0443\u0441, Enter \u0438\u043B\u0438 \u043F\u0440\u043E\u0431\u0435\u043B \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442.","tui.command.app.announcements.cycle":"\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u044F: {{level}} (\u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C)","tui.announcements.level.quiet":"\u0442\u0438\u0445\u0438\u0439","tui.announcements.level.normal":"\u043E\u0431\u044B\u0447\u043D\u044B\u0439","tui.announcements.level.verbose":"\u043F\u043E\u0434\u0440\u043E\u0431\u043D\u044B\u0439","tui.app.terminal_too_small":"\u0422\u0435\u0440\u043C\u0438\u043D\u0430\u043B \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B ({{width}}x{{height}}). \u0423\u0432\u0435\u043B\u0438\u0447\u044C\u0442\u0435 \u043E\u043A\u043D\u043E \u043C\u0438\u043D\u0438\u043C\u0443\u043C \u0434\u043E 40x8.","tui.dialog.help.command_list":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 {{keybind}}, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0432\u0441\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u0432 \u043B\u044E\u0431\u043E\u043C \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0435.","tui.dialog.help.ok":"OK","tui.dialog.close_hint":"esc","tui.dialog.document.scroll_hint":"\u2191/\u2193 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430 \xB7 PgUp/PgDn \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \xB7 esc \u0437\u0430\u043A\u0440\u044B\u0442\u044C","tui.dialog.ok":"OK","tui.dialog.confirm.cancel":"\u041E\u0442\u043C\u0435\u043D\u0430","tui.dialog.confirm.confirm":"\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C","tui.dialog.agreement.title":"\u0423\u0441\u043B\u043E\u0432\u0438\u044F \u0438 \u043A\u043E\u043D\u0444\u0438\u0434\u0435\u043D\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u044C","tui.dialog.agreement.message":"\u041E\u0437\u043D\u0430\u043A\u043E\u043C\u044C\u0442\u0435\u0441\u044C \u0438 \u043F\u0440\u0438\u043C\u0438\u0442\u0435 \u0438\u0445, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C.","tui.dialog.agreement.confirm":"\u041F\u0440\u0438\u043D\u044F\u0442\u044C \u0438 \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C","tui.command.docs.terms.title":"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0443\u0441\u043B\u043E\u0432\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F","tui.command.docs.privacy.title":"\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0443 \u043A\u043E\u043D\u0444\u0438\u0434\u0435\u043D\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u0438","tui.command.consent.revoke.title":"\u041E\u0442\u043E\u0437\u0432\u0430\u0442\u044C \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043D\u0430 \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u0443\u044E \u043C\u043E\u0434\u0435\u043B\u044C","tui.consent.revoked":"\u0421\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043D\u0430 \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u0443\u044E \u043C\u043E\u0434\u0435\u043B\u044C \u043E\u0442\u043E\u0437\u0432\u0430\u043D\u043E \u2014 \u043F\u043E\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u043F\u0440\u0438\u043D\u044F\u0442\u044C \u0441\u043D\u043E\u0432\u0430","tui.dialog.select.placeholder":"\u041F\u043E\u0438\u0441\u043A","tui.dialog.select.no_results":"\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E","tui.dialog.prompt.placeholder":"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0442\u0435\u043A\u0441\u0442","tui.dialog.prompt.busy":"\u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F...","tui.dialog.prompt.processing":"\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430...","tui.dialog.prompt.submit_key":"enter","tui.dialog.prompt.submit_action":"\u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C","tui.dialog.export.title":"\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u044D\u043A\u0441\u043F\u043E\u0440\u0442\u0430","tui.dialog.export.filename":"\u0418\u043C\u044F \u0444\u0430\u0439\u043B\u0430:","tui.dialog.export.filename_placeholder":"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043C\u044F \u0444\u0430\u0439\u043B\u0430","tui.dialog.export.include_thinking":"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F","tui.dialog.export.include_tool_details":"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432","tui.dialog.export.include_assistant_metadata":"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0435 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0430","tui.dialog.export.open_without_saving":"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0431\u0435\u0437 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F","tui.dialog.export.hint.toggle_prefix":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435","tui.dialog.export.hint.toggle_action":"\u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","tui.dialog.export.hint.confirm_action":"\u0434\u043B\u044F \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F","tui.dialog.export.hint.options_action":"\u0434\u043B\u044F \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432","tui.toast.copied_to_clipboard":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430","tui.toast.instructions_loaded":"\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043E {{files}}","tui.toast.update_available.title":"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435","tui.toast.update_available.confirm":"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u043D\u043E\u0432\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F v{{version}}. \u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u0435\u0439\u0447\u0430\u0441?","tui.toast.update_available.updating":"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0434\u043E v{{version}}...","tui.toast.update_available.failed":"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C","tui.toast.update_available.success":"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0434\u043E QitQode v{{version}}. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435.","tui.toast.updated.title":"\u0410\u0432\u0442\u043E\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E","tui.toast.updated.message":"\u041F\u0430\u0442\u0447 \u043F\u0440\u0438\u043C\u0435\u043D\u0451\u043D \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438: v{{version}}. \u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u043D\u043E\u0432\u043E\u0439 \u0432\u0435\u0440\u0441\u0438\u0438. \u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 autoupdate: false \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438.","tui.sidebar.instructions":"\u0418\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u0438","tui.sidebar.cwd":"\u0420\u0430\u0431\u043E\u0447\u0438\u0439 \u043A\u0430\u0442\u0430\u043B\u043E\u0433","tui.toast.unknown_error":"\u041F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430","tui.command.docs.open.title":"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044E","tui.command.app.exit.title":"\u0412\u044B\u0439\u0442\u0438 \u0438\u0437 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F","tui.command.app.debug.title":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C \u043E\u0442\u043B\u0430\u0434\u043A\u0438","tui.command.app.console.title":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043A\u043E\u043D\u0441\u043E\u043B\u044C","tui.command.app.heap_snapshot.title":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0441\u043D\u0438\u043C\u043E\u043A \u043A\u0443\u0447\u0438","tui.command.terminal.suspend.title":"\u041F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B","tui.command.terminal.title.disable":"\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430","tui.command.terminal.title.enable":"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430","tui.command.app.toggle.animations.disable":"\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u0438","tui.command.app.toggle.animations.enable":"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u0438","tui.command.app.toggle.diffwrap.disable":"\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u0441\u0442\u0440\u043E\u043A \u0432 diff","tui.command.app.toggle.diffwrap.enable":"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u0441\u0442\u0440\u043E\u043A \u0432 diff","tui.command.app.toggle.sound.disable":"\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0437\u0432\u0443\u043A","tui.command.app.toggle.sound.enable":"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0437\u0432\u0443\u043A","tui.command.logout.toast":"\u0412\u044B \u0432\u044B\u0448\u043B\u0438 \u0438\u0437 \u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0430","tui.command.session.share.title":"\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F \u0441\u0435\u0441\u0441\u0438\u0435\u0439","tui.command.session.share.copy_link":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0441\u044B\u043B\u043A\u0443","tui.command.session.rename.title":"\u041F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E","tui.command.session.timeline.title":"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044E","tui.command.session.fork.title":"\u0420\u0430\u0437\u0432\u0435\u0442\u0432\u0438\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E","tui.command.session.compact.title":"\u0421\u0436\u0430\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E","tui.command.session.unshare.title":"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u0443\u0431\u043B\u0438\u043A\u0430\u0446\u0438\u044E","tui.command.session.undo.title":"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435","tui.command.session.redo.title":"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C","tui.command.session.sidebar.show":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0431\u043E\u043A\u043E\u0432\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C","tui.command.session.sidebar.hide":"\u0421\u043A\u0440\u044B\u0442\u044C \u0431\u043E\u043A\u043E\u0432\u0443\u044E \u043F\u0430\u043D\u0435\u043B\u044C","tui.command.session.conceal.disable":"\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u043A\u0440\u044B\u0442\u0438\u0435 \u043A\u043E\u0434\u0430","tui.command.session.conceal.enable":"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u043A\u0440\u044B\u0442\u0438\u0435 \u043A\u043E\u0434\u0430","tui.command.session.timestamps.show":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043C\u0435\u0442\u043A\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438","tui.command.session.timestamps.hide":"\u0421\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u0442\u043A\u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u0438","tui.command.session.thinking.expand":"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F","tui.command.session.thinking.collapse":"\u0421\u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F","tui.command.session.tool_details.show":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432","tui.command.session.tool_details.hide":"\u0421\u043A\u0440\u044B\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432","tui.command.session.scrollbar.toggle":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u043B\u043E\u0441\u0443 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438","tui.command.session.generic_tool_output.show":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043E\u0431\u0449\u0438\u0439 \u0432\u044B\u0432\u043E\u0434 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432","tui.command.session.generic_tool_output.hide":"\u0421\u043A\u0440\u044B\u0442\u044C \u043E\u0431\u0449\u0438\u0439 \u0432\u044B\u0432\u043E\u0434 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432","tui.command.session.page_up.title":"\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u0432\u0432\u0435\u0440\u0445","tui.command.session.page_down.title":"\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u0432\u043D\u0438\u0437","tui.command.session.line_up.title":"\u0421\u0442\u0440\u043E\u043A\u0430 \u0432\u0432\u0435\u0440\u0445","tui.command.session.line_down.title":"\u0421\u0442\u0440\u043E\u043A\u0430 \u0432\u043D\u0438\u0437","tui.command.session.half_page_up.title":"\u041F\u043E\u043B\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0432\u0432\u0435\u0440\u0445","tui.command.session.half_page_down.title":"\u041F\u043E\u043B\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0432\u043D\u0438\u0437","tui.command.session.first.title":"\u041F\u0435\u0440\u0432\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435","tui.command.session.last.title":"\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435","tui.command.session.last_user.title":"\u041A \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u043C\u0443 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F","tui.command.session.message_next.title":"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435","tui.command.session.message_previous.title":"\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0435\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435","tui.command.messages.copy.title":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0430","tui.command.session.copy.title":"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0435\u043D\u043E\u0433\u0440\u0430\u043C\u043C\u0443 \u0441\u0435\u0441\u0441\u0438\u0438","tui.command.session.export.title":"\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0442\u0435\u043D\u043E\u0433\u0440\u0430\u043C\u043C\u0443","tui.command.session.child_first.title":"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0434\u043E\u0447\u0435\u0440\u043D\u044E\u044E \u0441\u0435\u0441\u0441\u0438\u044E","tui.command.session.parent.title":"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0443\u044E \u0441\u0435\u0441\u0441\u0438\u044E","tui.command.session.child_next.title":"\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0434\u043E\u0447\u0435\u0440\u043D\u044F\u044F \u0441\u0435\u0441\u0441\u0438\u044F","tui.command.session.child_previous.title":"\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u0434\u043E\u0447\u0435\u0440\u043D\u044F\u044F \u0441\u0435\u0441\u0441\u0438\u044F","tui.command.prompt.clear.title":"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0432\u043E\u0434","tui.command.prompt.submit.title":"\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u0440\u043E\u0441","tui.command.prompt.paste.title":"\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C","tui.command.session.interrupt.title":"\u041F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E","tui.command.prompt.editor.title":"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440","tui.command.prompt.skills.title":"\u041D\u0430\u0432\u044B\u043A\u0438","tui.command.voice.toggle.title":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0433\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0439 \u0432\u0432\u043E\u0434","tui.command.voice.toggle.title_on":"\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0439 \u0432\u0432\u043E\u0434: \u0432\u043A\u043B\u044E\u0447\u0451\u043D \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","tui.command.voice.toggle.title_off":"\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0439 \u0432\u0432\u043E\u0434: \u043E\u0442\u043A\u043B\u044E\u0447\u0451\u043D \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","tui.voice.enabled":"\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0439 \u0432\u0432\u043E\u0434 \u0432\u043A\u043B\u044E\u0447\u0451\u043D (\u043A\u0438\u0442\u0430\u0439\u0441\u043A\u0438\u0439/\u0430\u043D\u0433\u043B\u0438\u0439\u0441\u043A\u0438\u0439) \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 [Voice] \u0434\u043B\u044F \u0437\u0430\u043F\u0438\u0441\u0438","tui.voice.disabled":"\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0439 \u0432\u0432\u043E\u0434 \u043E\u0442\u043A\u043B\u044E\u0447\u0451\u043D","tui.voice.send.enabled":'\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u0430\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0430 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430 \u2014 \u0441\u043A\u0430\u0436\u0438\u0442\u0435\u300C\u53D1\u9001\u300D\u0438\u043B\u0438 "send it"',"tui.voice.send.disabled":"\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u0430\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0430 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0430","tui.voice.control.enabled":"\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0435 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u2014 \u0438\u043D\u0442\u0435\u043B\u043B\u0435\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0441 \u043C\u0443\u043B\u044C\u0442\u0438\u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0439 \u043C\u043E\u0434\u0435\u043B\u044C\u044E (\u043C\u0435\u0434\u043B\u0435\u043D\u043D\u0435\u0435)","tui.voice.control.disabled":"\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0435 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u2014 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0431\u044B\u0441\u0442\u0440\u0430\u044F ASR \u0442\u0440\u0430\u043D\u0441\u043A\u0440\u0438\u043F\u0446\u0438\u044F","tui.command.voice.control.title":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0433\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0435 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 (\u043C\u0443\u043B\u044C\u0442\u0438\u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0435)","tui.command.voice.control.title_on":"\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0435 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435: \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E (\u043C\u0443\u043B\u044C\u0442\u0438\u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0435) \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","tui.command.voice.control.title_off":"\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0435 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435: \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043E (\u0431\u044B\u0441\u0442\u0440\u044B\u0439 ASR) \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","tui.voice.error.no_auth":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 /connect \u0434\u043B\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F \u043A QitQode \u0438\u043B\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 voice.asr_model \u0434\u043B\u044F \u0434\u0440\u0443\u0433\u043E\u0433\u043E \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430","tui.voice.error.no_auth_provider":'\u0413\u043E\u043B\u043E\u0441\u043E\u0432\u043E\u0439 \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440 "{{provider}}" \u043D\u0435 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u043E\u0432\u0430\u043D, \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0435\u0433\u043E apiKey',"tui.voice.error.provider_not_found":'\u041F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440 "{{provider}}" \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u2014 /connect \u0434\u043B\u044F \u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438, \u0438\u043B\u0438 \u043E\u0431\u044A\u044F\u0432\u0438\u0442\u0435 models \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u043E\u0432',"tui.voice.error.no_url":'\u0423 \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430 "{{provider}}" \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D baseURL \u2014 \u0443\u043A\u0430\u0436\u0438\u0442\u0435 options.baseURL \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438',"tui.voice.error.no_device":"\u041C\u0438\u043A\u0440\u043E\u0444\u043E\u043D/\u0430\u0443\u0434\u0438\u043E\u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0437\u0432\u0443\u043A\u0430 \u0441\u0438\u0441\u0442\u0435\u043C\u044B","tui.voice.error.recorder_failed":"\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u043F\u0438\u0441\u0438","tui.voice.error.no_recorder":"\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D, \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 sox","tui.voice.error.too_short":"\u0417\u0430\u043F\u0438\u0441\u044C \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043A\u043E\u0440\u043E\u0442\u043A\u0430\u044F","tui.voice.error.network":"\u041E\u0448\u0438\u0431\u043A\u0430 \u0442\u0440\u0430\u043D\u0441\u043A\u0440\u0438\u043F\u0446\u0438\u0438, \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0441\u0435\u0442\u044C","tui.command.prompt.stash.title":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0432\u0432\u043E\u0434 \u0432\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0435 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435","tui.command.prompt.stash.pop.title":"\u0412\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0438\u0437 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430","tui.command.prompt.stash.list.title":"\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432","tui.command.tips.toggle.show":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438","tui.command.tips.toggle.hide":"\u0421\u043A\u0440\u044B\u0442\u044C \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438","tui.command.plugins.list.title":"\u041F\u043B\u0430\u0433\u0438\u043D\u044B","tui.command.plugins.install.title":"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043B\u0430\u0433\u0438\u043D","cli.providers.select":"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430","cli.providers.other":"\u0414\u0440\u0443\u0433\u043E\u0439 \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440","tui.question.plan_enter.question":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u0432 \u0440\u0435\u0436\u0438\u043C plan \u0434\u043B\u044F \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F?","tui.question.plan_enter.header":"\u0412\u0445\u043E\u0434 \u0432 \u043F\u043B\u0430\u043D","tui.question.plan_enter.option.0.label":"\u0414\u0430","tui.question.plan_enter.option.0.description":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 plan \u0434\u043B\u044F \u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0432 \u0440\u0435\u0436\u0438\u043C\u0435 \u0447\u0442\u0435\u043D\u0438\u044F","tui.question.plan_enter.option.1.label":"\u041D\u0435\u0442","tui.question.plan_enter.option.1.description":"\u041E\u0441\u0442\u0430\u0442\u044C\u0441\u044F \u0432 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u0440\u0435\u0436\u0438\u043C\u0435","tui.question.plan_exit.question":"\u041F\u043B\u0430\u043D {{plan}} \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D. \u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 build \u0438 \u043D\u0430\u0447\u0430\u0442\u044C \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044E?","tui.question.plan_exit.header":"\u0412\u044B\u0445\u043E\u0434 \u0438\u0437 \u043F\u043B\u0430\u043D\u0430","tui.question.plan_exit.option.0.label":"\u0414\u0430","tui.question.plan_exit.option.0.description":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 build \u0438 \u043D\u0430\u0447\u0430\u0442\u044C \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044E \u043F\u043B\u0430\u043D\u0430","tui.question.plan_exit.option.1.label":"\u041D\u0435\u0442","tui.question.plan_exit.option.1.description":"\u041E\u0441\u0442\u0430\u0442\u044C\u0441\u044F \u0441 \u0430\u0433\u0435\u043D\u0442\u043E\u043C plan \u0434\u043B\u044F \u0434\u043E\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043F\u043B\u0430\u043D\u0430","tui.session.badge.auto":"\u0410\u0432\u0442\u043E","trust.title":"\u0414\u043E\u0441\u0442\u0443\u043F \u043A \u0440\u0430\u0431\u043E\u0447\u0435\u043C\u0443 \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0443:","trust.safety_check":"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438: \u044D\u0442\u043E \u043F\u0440\u043E\u0435\u043A\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u0432\u044B \u0441\u043E\u0437\u0434\u0430\u043B\u0438 \u0438\u043B\u0438 \u043A\u043E\u0442\u043E\u0440\u043E\u043C\u0443 \u0434\u043E\u0432\u0435\u0440\u044F\u0435\u0442\u0435? (\u0412\u0430\u0448 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439 \u043A\u043E\u0434, \u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0439 open source \u043F\u0440\u043E\u0435\u043A\u0442 \u0438\u043B\u0438 \u0440\u0430\u0431\u043E\u0442\u0430 \u0432\u0430\u0448\u0435\u0439 \u043A\u043E\u043C\u0430\u043D\u0434\u044B). \u0415\u0441\u043B\u0438 \u043D\u0435\u0442, \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u044D\u0442\u043E\u0439 \u043F\u0430\u043F\u043A\u0438.","trust.capabilities":"QitQode \u0441\u043C\u043E\u0436\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044C, \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u0437\u0434\u0435\u0441\u044C.","trust.plugin_warn":"\u0415\u0441\u043B\u0438 \u0432 \u044D\u0442\u043E\u043C \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435 \u0435\u0441\u0442\u044C \u0432\u0440\u0435\u0434\u043E\u043D\u043E\u0441\u043D\u044B\u0435 \u043F\u043B\u0430\u0433\u0438\u043D\u044B, \u043E\u043D\u0438 \u043C\u043E\u0433\u0443\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u043A\u043E\u0434, \u0447\u0438\u0442\u0430\u0442\u044C, \u0438\u0437\u043C\u0435\u043D\u044F\u0442\u044C \u0438\u043B\u0438 \u043F\u043E\u0445\u0438\u0449\u0430\u0442\u044C \u0432\u0430\u0448\u0438 \u0444\u0430\u0439\u043B\u044B.","trust.option.yes":"\u0414\u0430, \u044F \u0434\u043E\u0432\u0435\u0440\u044F\u044E \u044D\u0442\u043E\u0439 \u043F\u0430\u043F\u043A\u0435","trust.option.no":"\u041D\u0435\u0442, \u0432\u044B\u0439\u0442\u0438","trust.dangerous.title_home":"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u0412\u044B \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0414\u041E\u041C\u0410\u0428\u041D\u0418\u0419 \u041A\u0410\u0422\u0410\u041B\u041E\u0413.","trust.dangerous.title_root":"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u0412\u044B \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u041A\u041E\u0420\u0415\u041D\u042C \u0424\u0410\u0419\u041B\u041E\u0412\u041E\u0419 \u0421\u0418\u0421\u0422\u0415\u041C\u042B.","trust.dangerous.body_home":"\u041C\u043E\u0434\u0435\u043B\u044C \u043F\u043E\u043B\u0443\u0447\u0438\u0442 \u0434\u043E\u0441\u0442\u0443\u043F \u043A\u043E \u0412\u0421\u0415\u041C \u0432\u0430\u0448\u0438\u043C \u043B\u0438\u0447\u043D\u044B\u043C \u0444\u0430\u0439\u043B\u0430\u043C \u2014 SSH-\u043A\u043B\u044E\u0447\u0430\u043C, \u0443\u0447\u0451\u0442\u043D\u044B\u043C \u0434\u0430\u043D\u043D\u044B\u043C, \u043F\u0440\u043E\u0444\u0438\u043B\u044F\u043C \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0438 \u0432\u0441\u0435\u043C\u0443 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u043C\u0443 \u0434\u043E\u043C\u0430\u0448\u043D\u0435\u0439 \u043F\u0430\u043F\u043A\u0438.","trust.dangerous.body_root":"\u041C\u043E\u0434\u0435\u043B\u044C \u043F\u043E\u043B\u0443\u0447\u0438\u0442 \u0434\u043E\u0441\u0442\u0443\u043F \u043A\u043E \u0412\u0421\u0415\u0419 \u0444\u0430\u0439\u043B\u043E\u0432\u043E\u0439 \u0441\u0438\u0441\u0442\u0435\u043C\u0435 \u2014 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u043C \u0444\u0430\u0439\u043B\u0430\u043C, \u0434\u0430\u043D\u043D\u044B\u043C \u0432\u0441\u0435\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439, \u0443\u0447\u0451\u0442\u043D\u044B\u043C \u0434\u0430\u043D\u043D\u044B\u043C \u0438 \u0432\u0441\u0435\u043C\u0443 \u043D\u0430 \u044D\u0442\u043E\u0439 \u043C\u0430\u0448\u0438\u043D\u0435.","trust.dangerous.advice_home":"\u0415\u0441\u043B\u0438 \u043D\u0435\u0442 \u0432\u0435\u0441\u043E\u043C\u043E\u0439 \u043F\u0440\u0438\u0447\u0438\u043D\u044B, \u041D\u0415 \u0434\u043E\u0432\u0435\u0440\u044F\u0439\u0442\u0435 \u0432\u0441\u0435\u043C\u0443 \u0434\u043E\u043C\u0430\u0448\u043D\u0435\u043C\u0443 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0443.","trust.dangerous.advice_root":"\u0415\u0441\u043B\u0438 \u043D\u0435\u0442 \u0432\u0435\u0441\u043E\u043C\u043E\u0439 \u043F\u0440\u0438\u0447\u0438\u043D\u044B, \u041D\u0415 \u0434\u043E\u0432\u0435\u0440\u044F\u0439\u0442\u0435 \u043A\u043E\u0440\u043D\u044E \u0444\u0430\u0439\u043B\u043E\u0432\u043E\u0439 \u0441\u0438\u0441\u0442\u0435\u043C\u044B.","trust.dangerous.option.yes":"\u042F \u043F\u043E\u043D\u0438\u043C\u0430\u044E \u0440\u0438\u0441\u043A\u0438, \u0434\u043E\u0432\u0435\u0440\u044F\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u044D\u0442\u043E\u0439 \u0441\u0435\u0441\u0441\u0438\u0438","trust.dangerous.option.no":"\u0412\u044B\u0439\u0442\u0438 (\u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u0442\u0441\u044F)"};
|
|
3
|
-
export{f as
|
|
3
|
+
export{f as Ld};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{de as b}from"./chunk-b274mb6v.js";import{ag as t}from"./chunk-h6kmpgak.js";import{yh as u}from"./chunk-88hmeyf5.js";import"./chunk-aykvrqrp.js";import"./chunk-2h8b0csf.js";import"./chunk-4q14whpc.js";import"./chunk-s81ck6bw.js";import"./chunk-jt7g0r2j.js";import"./chunk-84qx54nf.js";import{Qk as y,Xj as m}from"./chunk-ep92grvg.js";import{ml as v}from"./chunk-xf1y0sc6.js";import{Kl as a}from"./chunk-n24yx79r.js";import"./chunk-5qydhr42.js";import"./chunk-v30ezr68.js";import"./chunk-ex47pb9n.js";import"./chunk-jh2za7y4.js";import"./chunk-s3zmxfz2.js";import"./chunk-krk24aqm.js";import"./chunk-j7d3v0x2.js";import"./chunk-3hawwbw6.js";import"./chunk-4c6d1wy1.js";import"./chunk-vyf77kq1.js";import"./chunk-bxc3z38f.js";import"./chunk-7wshaze9.js";import"./chunk-vbcekkw2.js";import"./chunk-4ngvj758.js";import"./chunk-cqtkxwd8.js";import"./chunk-wpkr3vzf.js";import"./chunk-49we3vy1.js";import"./chunk-y7cqyeve.js";import"./chunk-92xxg12q.js";import"./chunk-h8yf5e2e.js";import"./chunk-yvtbt12y.js";import"./chunk-g83d3a0t.js";import"./chunk-1p39y33b.js";import"./chunk-yg0rs4g1.js";import"./chunk-vhh80d5j.js";import"./chunk-wp0xd7at.js";import"./chunk-dzw0j790.js";import"./chunk-rvev3cy6.js";import"./chunk-c53ev0da.js";import"./chunk-78yvbv9b.js";import"./chunk-c5n49vrd.js";import"./chunk-bwzbcwff.js";import"./chunk-r6055kk0.js";import"./chunk-datctfgt.js";import"./chunk-x28chfpz.js";import"./chunk-mnxcykeq.js";import"./chunk-0bn86djg.js";import"./chunk-xphzr4wg.js";import"./chunk-hav9pgf3.js";import"./chunk-cshsqavb.js";import{CJ as s}from"./chunk-tz60e15h.js";import"./chunk-0tya4pqb.js";import"./chunk-63t0rhc9.js";import"./chunk-9svh74gt.js";import{EOL as f}from"os";var M=b({command:"models [provider]",describe:"list all available models",builder:(r)=>{return r.positional("provider",{describe:"provider ID to filter models by",type:"string",array:!1}).option("verbose",{describe:"use more verbose model output (includes metadata like costs)",type:"boolean"}).option("refresh",{describe:"refresh the models cache from models.dev",type:"boolean"})},handler:async(r)=>{if(r.refresh)await v.refresh(!0),t.println(t.Style.TEXT_SUCCESS_BOLD+"Models cache refreshed"+t.Style.TEXT_NORMAL);await a.provide({directory:process.cwd(),async fn(){await u.runPromise(s.gen(function*(){let n=yield*(yield*y.Service).list(),l=(e,o)=>{let i=n[e],d=Object.entries(i.models).sort(([c],[p])=>c.localeCompare(p));for(let[c,p]of d)if(process.stdout.write(`${e}/${c}`),process.stdout.write(f),o)process.stdout.write(JSON.stringify(p,null,2)),process.stdout.write(f)};if(r.provider){let e=m.make(r.provider);if(!n[e]){yield*s.sync(()=>t.error(`Provider not found: ${r.provider}`));return}yield*s.sync(()=>l(e,r.verbose));return}let h=Object.keys(n).sort((e,o)=>{let i=e.startsWith("opencode"),d=o.startsWith("opencode");if(i&&!d)return-1;if(!i&&d)return 1;return e.localeCompare(o)});yield*s.sync(()=>{for(let e of h)l(m.make(e),r.verbose)})}))}})}});export{M as ModelsCommand};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"./chunk-djfrkbd5.js";function K(Q,Z,H){return typeof Q.default==="function"?Q.default(Z,H):Q.default}function J(Q,Z){if(Q)return Q.push(Z),Q;return[Z]}var q=/[.*+?^${}()|[\]\\]/g;function X(Q){return Q.replace(q,"\\$&")}function T(Q,Z){switch(Z?.errorMode){case"ignore":break;case"warn":console.warn(Q);break;default:throw Error(Q)}}function V(Q){return typeof Q==="boolean"||typeof Q==="number"&&Number.isFinite(Q)||typeof Q==="string"}function w(Q){return Q.every(V)}function x(Q,Z,H){if(H?.ignoreActions?.includes(Z.type))return Q;let Y;switch(Z.type){case"base64":Q.contentEncoding="base64";break;case"bic":case"cuid2":case"decimal":case"digits":case"domain":case"emoji":case"hash":case"hexadecimal":case"hex_color":case"isrc":case"iso_time_second":case"iso_week":case"mac":case"mac48":case"mac64":case"nanoid":case"octal":case"slug":case"ulid":if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=Z.requirement.source;break;case"description":Q.description=Z.description;break;case"email":case"rfc_email":Q.format="email";break;case"ends_with":if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=`${X(Z.requirement)}$`;break;case"empty":if(Q.type==="array")Q.maxItems=0;else{if(Q.type!=="string")Y=J(Y,`The "${Z.type}" action is not supported on type "${Q.type}".`);Q.maxLength=0}break;case"entries":Q.minProperties=Z.requirement,Q.maxProperties=Z.requirement;break;case"examples":if(Array.isArray(Q.examples))Q.examples=[...Q.examples,...Z.examples];else Q.examples=Z.examples;break;case"gt_value":if(Q.type!=="number"&&Q.type!=="integer")Y=J(Y,`The "gt_value" action is not supported on type "${Q.type}".`);if(H?.target==="openapi-3.0"){Y=J(Y,'The "gt_value" action is not supported for OpenAPI 3.0.');break}Q.exclusiveMinimum=Z.requirement;break;case"includes":if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=X(Z.requirement);break;case"integer":Q.type="integer";break;case"ipv4":Q.format="ipv4";break;case"ipv6":Q.format="ipv6";break;case"iso_date":Q.format="date";break;case"iso_date_time":case"iso_timestamp":Q.format="date-time";break;case"iso_time":Q.format="time";break;case"jws_compact":if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=Z.requirement.source;break;case"length":if(Q.type==="array")Q.minItems=Z.requirement,Q.maxItems=Z.requirement;else{if(Q.type!=="string")Y=J(Y,`The "${Z.type}" action is not supported on type "${Q.type}".`);Q.minLength=Z.requirement,Q.maxLength=Z.requirement}break;case"lt_value":if(Q.type!=="number"&&Q.type!=="integer")Y=J(Y,`The "lt_value" action is not supported on type "${Q.type}".`);if(H?.target==="openapi-3.0"){Y=J(Y,'The "lt_value" action is not supported for OpenAPI 3.0.');break}Q.exclusiveMaximum=Z.requirement;break;case"max_entries":Q.maxProperties=Z.requirement;break;case"max_length":if(Q.type==="array")Q.maxItems=Z.requirement;else{if(Q.type!=="string")Y=J(Y,`The "${Z.type}" action is not supported on type "${Q.type}".`);Q.maxLength=Z.requirement}break;case"max_value":if(Q.type!=="number"&&Q.type!=="integer")Y=J(Y,`The "max_value" action is not supported on type "${Q.type}".`);Q.maximum=Z.requirement;break;case"metadata":if(typeof Z.metadata.title==="string")Q.title=Z.metadata.title;if(typeof Z.metadata.description==="string")Q.description=Z.metadata.description;if(Array.isArray(Z.metadata.examples))if(Array.isArray(Q.examples))Q.examples=[...Q.examples,...Z.metadata.examples];else Q.examples=Z.metadata.examples;break;case"min_entries":Q.minProperties=Z.requirement;break;case"min_length":if(Q.type==="array")Q.minItems=Z.requirement;else{if(Q.type!=="string")Y=J(Y,`The "${Z.type}" action is not supported on type "${Q.type}".`);Q.minLength=Z.requirement}break;case"min_value":if(Q.type!=="number"&&Q.type!=="integer")Y=J(Y,`The "min_value" action is not supported on type "${Q.type}".`);Q.minimum=Z.requirement;break;case"multiple_of":Q.multipleOf=Z.requirement;break;case"non_empty":if(Q.type==="array")Q.minItems=1;else{if(Q.type!=="string")Y=J(Y,`The "${Z.type}" action is not supported on type "${Q.type}".`);Q.minLength=1}break;case"not_value":if(!V(Z.requirement)){Y=J(Y,'The requirement of the "not_value" action is not JSON compatible.');break}if(H?.target==="openapi-3.0")Q.not={enum:[Z.requirement]};else Q.not={const:Z.requirement};break;case"not_values":if(!w(Z.requirement)){Y=J(Y,'A requirement of the "not_values" action is not JSON compatible.');break}Q.not={enum:Z.requirement};break;case"regex":if(Z.requirement.flags)Y=J(Y,"RegExp flags are not supported by JSON Schema.");if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=Z.requirement.source;break;case"safe_integer":if(Q.type="integer",typeof Q.minimum!=="number"||Q.minimum<Number.MIN_SAFE_INTEGER)Q.minimum=Number.MIN_SAFE_INTEGER;if(typeof Q.maximum!=="number"||Q.maximum>Number.MAX_SAFE_INTEGER)Q.maximum=Number.MAX_SAFE_INTEGER;break;case"starts_with":if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=`^${X(Z.requirement)}`;break;case"title":Q.title=Z.title;break;case"url":Q.format="uri";break;case"uuid":Q.format="uuid";break;case"value":if(!V(Z.requirement)){Y=J(Y,'The requirement of the "value" action is not JSON compatible.');break}if(H?.target==="openapi-3.0")Q.enum=[Z.requirement];else Q.const=Z.requirement;break;case"values":if(!w(Z.requirement)){Y=J(Y,'A requirement of the "values" action is not JSON compatible.');break}Q.enum=Z.requirement;break;default:Y=J(Y,`The "${Z.type}" action cannot be converted to JSON Schema.`)}if(H?.overrideAction){let F=H.overrideAction({valibotAction:Z,jsonSchema:Q,errors:Y});if(F)return{...F}}if(Y)for(let F of Y)T(F,H);return Q}function R(Q){return Q.flatMap((Z)=>("pipe"in Z)?R(Z.pipe):Z)}var A=0;function B(Q,Z,H,Y,F=!1){if(!F){let U=Y.referenceMap.get(Z);if(U){if(Q.$ref=`#/$defs/${U}`,H?.overrideRef){let z=H.overrideRef({...Y,referenceId:U,valibotSchema:Z,jsonSchema:Q});if(z)Q.$ref=z}return Q}}if("pipe"in Z){let U=R(Z.pipe),z=0,M=U.length-1;if(H?.typeMode==="input"){let L=U.slice(1).findIndex((W)=>W.kind==="schema"||W.kind==="transformation"&&(W.type==="find_item"||W.type==="parse_json"||W.type==="raw_transform"||W.type==="reduce_items"||W.type==="stringify_json"||W.type==="to_bigint"||W.type==="to_boolean"||W.type==="to_date"||W.type==="to_number"||W.type==="to_string"||W.type==="transform"));if(L!==-1)M=L}else if(H?.typeMode==="output"){let L=U.findLastIndex((W)=>W.kind==="schema");if(L!==-1)z=L}for(let L=z;L<=M;L++){let W=U[L];if(W.kind==="schema"){if(L>z)T('Set the "typeMode" config to "input" or "output" to convert pipelines with multiple schemas.',H);Q=B(Q,W,H,Y,!0)}else Q=x(Q,W,H)}return Q}let N;switch(Z.type){case"boolean":Q.type="boolean";break;case"null":if(H?.target==="openapi-3.0")Q.enum=[null];else Q.type="null";break;case"number":Q.type="number";break;case"string":Q.type="string";break;case"array":Q.type="array",Q.items=B({},Z.item,H,Y);break;case"tuple":case"tuple_with_rest":case"loose_tuple":case"strict_tuple":if(Q.type="array",H?.target==="openapi-3.0"){Q.items={anyOf:[]},Q.minItems=Z.items.length;for(let U of Z.items)Q.items.anyOf.push(B({},U,H,Y));if(Z.type==="tuple_with_rest")Q.items.anyOf.push(B({},Z.rest,H,Y));else if(Z.type==="strict_tuple"||Z.type==="tuple")Q.maxItems=Z.items.length}else if(H?.target==="draft-2020-12"){Q.prefixItems=[],Q.minItems=Z.items.length;for(let U of Z.items)Q.prefixItems.push(B({},U,H,Y));if(Z.type==="tuple_with_rest")Q.items=B({},Z.rest,H,Y);else if(Z.type==="strict_tuple")Q.items=!1}else{Q.items=[],Q.minItems=Z.items.length;for(let U of Z.items)Q.items.push(B({},U,H,Y));if(Z.type==="tuple_with_rest")Q.additionalItems=B({},Z.rest,H,Y);else if(Z.type==="strict_tuple")Q.additionalItems=!1}break;case"object":case"object_with_rest":case"loose_object":case"strict_object":Q.type="object",Q.properties={},Q.required=[];for(let U in Z.entries){let z=Z.entries[U];if(Q.properties[U]=B({},z,H,Y),z.type!=="exact_optional"&&z.type!=="nullish"&&z.type!=="optional")Q.required.push(U)}if(Z.type==="object_with_rest")Q.additionalProperties=B({},Z.rest,H,Y);else if(Z.type==="strict_object")Q.additionalProperties=!1;break;case"record":if(H?.target==="openapi-3.0"&&"pipe"in Z.key)N=J(N,'The "record" schema with a schema for the key that contains a "pipe" cannot be converted to JSON Schema.');if(Z.key.type!=="string")N=J(N,`The "record" schema with the "${Z.key.type}" schema for the key cannot be converted to JSON Schema.`);if(Q.type="object",H?.target!=="openapi-3.0")Q.propertyNames=B({},Z.key,H,Y);Q.additionalProperties=B({},Z.value,H,Y);break;case"any":case"unknown":break;case"never":Q.not={};break;case"nullable":case"nullish":if(H?.target==="openapi-3.0"){let U=B({},Z.wrapped,H,Y);Object.assign(Q,U),Q.nullable=!0}else Q.anyOf=[B({},Z.wrapped,H,Y),{type:"null"}];if(Z.default!==void 0)Q.default=K(Z);break;case"exact_optional":case"optional":case"undefinedable":if(Q=B(Q,Z.wrapped,H,Y),Z.default!==void 0)Q.default=K(Z);break;case"literal":if(typeof Z.literal!=="boolean"&&typeof Z.literal!=="number"&&typeof Z.literal!=="string")N=J(N,'The value of the "literal" schema is not JSON compatible.');if(H?.target==="openapi-3.0")Q.enum=[Z.literal];else Q.const=Z.literal;break;case"enum":if(Q.enum=Z.options,Z.options.every((U)=>typeof U==="string"))Q.type="string";else if(Z.options.every((U)=>typeof U==="number"))Q.type="number";else if(H?.target!=="openapi-3.0")Q.type=["string","number"];break;case"picklist":{let U=Z.options.some((z)=>typeof z!=="number"&&typeof z!=="string");if(U)N=J(N,'An option of the "picklist" schema is not JSON compatible.');if(Q.enum=Z.options,Z.options.every((z)=>typeof z==="string"))Q.type="string";else if(Z.options.every((z)=>typeof z==="number"))Q.type="number";else if(!U&&H?.target!=="openapi-3.0")Q.type=["string","number"];break}case"union":Q.anyOf=Z.options.map((U)=>B({},U,H,Y));break;case"variant":Q.oneOf=Z.options.map((U)=>B({},U,H,Y));break;case"intersect":Q.allOf=Z.options.map((U)=>B({},U,H,Y));break;case"lazy":{let U=Y.getterMap.get(Z.getter);if(!U)U=Z.getter(void 0),Y.getterMap.set(Z.getter,U);let z=Y.referenceMap.get(U);if(!z)z=`${A++}`,Y.referenceMap.set(U,z),Y.definitions[z]=B({},U,H,Y,!0);if(Q.$ref=`#/$defs/${z}`,H?.overrideRef){let M=H.overrideRef({...Y,referenceId:z,valibotSchema:U,jsonSchema:Q});if(M)Q.$ref=M}break}default:N=J(N,`The "${Z.type}" schema cannot be converted to JSON Schema.`)}if(H?.overrideSchema){let U=H.overrideSchema({...Y,referenceId:Y.referenceMap.get(Z),valibotSchema:Z,jsonSchema:Q,errors:N});if(U)return{...U}}if(N)for(let U of N)T(U,H);return Q}var O;function b(Q){O={...O??{},...Q}}function E(){return O}function G(Q,Z){let H={definitions:{},referenceMap:new Map,getterMap:new Map},Y=Z?.definitions??E();if(Y){for(let U in Y)H.referenceMap.set(Y[U],U);for(let U in Y)H.definitions[U]=B({},Y[U],Z,H,!0)}let F=B({},Q,Z,H),N=Z?.target??"draft-07";if(N==="draft-2020-12")F.$schema="https://json-schema.org/draft/2020-12/schema";else if(N==="draft-07")F.$schema="http://json-schema.org/draft-07/schema#";if(H.referenceMap.size)F.$defs=H.definitions;return F}function I(Q,Z){let H={definitions:{},referenceMap:new Map,getterMap:new Map};for(let Y in Q)H.referenceMap.set(Q[Y],Y);for(let Y in Q)H.definitions[Y]=B({},Q[Y],Z,H,!0);return H.definitions}var C=["draft-07","draft-2020-12","openapi-3.0"];function j(Q){return{"~standard":{...Q["~standard"],jsonSchema:{input(Z){if(C.includes(Z.target))return G(Q,{typeMode:"input",target:Z.target,...Z.libraryOptions});throw Error(`Unsupported target: ${Z.target}`)},output(Z){if(C.includes(Z.target))return G(Q,{typeMode:"output",target:Z.target,...Z.libraryOptions});throw Error(`Unsupported target: ${Z.target}`)}}}}}export{j as toStandardJsonSchema,I as toJsonSchemaDefs,G as toJsonSchema,E as getGlobalDefs,b as addGlobalDefs};
|
|
2
|
+
import"./chunk-9svh74gt.js";function K(Q,Z,H){return typeof Q.default==="function"?Q.default(Z,H):Q.default}function J(Q,Z){if(Q)return Q.push(Z),Q;return[Z]}var q=/[.*+?^${}()|[\]\\]/g;function X(Q){return Q.replace(q,"\\$&")}function T(Q,Z){switch(Z?.errorMode){case"ignore":break;case"warn":console.warn(Q);break;default:throw Error(Q)}}function V(Q){return typeof Q==="boolean"||typeof Q==="number"&&Number.isFinite(Q)||typeof Q==="string"}function w(Q){return Q.every(V)}function x(Q,Z,H){if(H?.ignoreActions?.includes(Z.type))return Q;let Y;switch(Z.type){case"base64":Q.contentEncoding="base64";break;case"bic":case"cuid2":case"decimal":case"digits":case"domain":case"emoji":case"hash":case"hexadecimal":case"hex_color":case"isrc":case"iso_time_second":case"iso_week":case"mac":case"mac48":case"mac64":case"nanoid":case"octal":case"slug":case"ulid":if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=Z.requirement.source;break;case"description":Q.description=Z.description;break;case"email":case"rfc_email":Q.format="email";break;case"ends_with":if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=`${X(Z.requirement)}$`;break;case"empty":if(Q.type==="array")Q.maxItems=0;else{if(Q.type!=="string")Y=J(Y,`The "${Z.type}" action is not supported on type "${Q.type}".`);Q.maxLength=0}break;case"entries":Q.minProperties=Z.requirement,Q.maxProperties=Z.requirement;break;case"examples":if(Array.isArray(Q.examples))Q.examples=[...Q.examples,...Z.examples];else Q.examples=Z.examples;break;case"gt_value":if(Q.type!=="number"&&Q.type!=="integer")Y=J(Y,`The "gt_value" action is not supported on type "${Q.type}".`);if(H?.target==="openapi-3.0"){Y=J(Y,'The "gt_value" action is not supported for OpenAPI 3.0.');break}Q.exclusiveMinimum=Z.requirement;break;case"includes":if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=X(Z.requirement);break;case"integer":Q.type="integer";break;case"ipv4":Q.format="ipv4";break;case"ipv6":Q.format="ipv6";break;case"iso_date":Q.format="date";break;case"iso_date_time":case"iso_timestamp":Q.format="date-time";break;case"iso_time":Q.format="time";break;case"jws_compact":if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=Z.requirement.source;break;case"length":if(Q.type==="array")Q.minItems=Z.requirement,Q.maxItems=Z.requirement;else{if(Q.type!=="string")Y=J(Y,`The "${Z.type}" action is not supported on type "${Q.type}".`);Q.minLength=Z.requirement,Q.maxLength=Z.requirement}break;case"lt_value":if(Q.type!=="number"&&Q.type!=="integer")Y=J(Y,`The "lt_value" action is not supported on type "${Q.type}".`);if(H?.target==="openapi-3.0"){Y=J(Y,'The "lt_value" action is not supported for OpenAPI 3.0.');break}Q.exclusiveMaximum=Z.requirement;break;case"max_entries":Q.maxProperties=Z.requirement;break;case"max_length":if(Q.type==="array")Q.maxItems=Z.requirement;else{if(Q.type!=="string")Y=J(Y,`The "${Z.type}" action is not supported on type "${Q.type}".`);Q.maxLength=Z.requirement}break;case"max_value":if(Q.type!=="number"&&Q.type!=="integer")Y=J(Y,`The "max_value" action is not supported on type "${Q.type}".`);Q.maximum=Z.requirement;break;case"metadata":if(typeof Z.metadata.title==="string")Q.title=Z.metadata.title;if(typeof Z.metadata.description==="string")Q.description=Z.metadata.description;if(Array.isArray(Z.metadata.examples))if(Array.isArray(Q.examples))Q.examples=[...Q.examples,...Z.metadata.examples];else Q.examples=Z.metadata.examples;break;case"min_entries":Q.minProperties=Z.requirement;break;case"min_length":if(Q.type==="array")Q.minItems=Z.requirement;else{if(Q.type!=="string")Y=J(Y,`The "${Z.type}" action is not supported on type "${Q.type}".`);Q.minLength=Z.requirement}break;case"min_value":if(Q.type!=="number"&&Q.type!=="integer")Y=J(Y,`The "min_value" action is not supported on type "${Q.type}".`);Q.minimum=Z.requirement;break;case"multiple_of":Q.multipleOf=Z.requirement;break;case"non_empty":if(Q.type==="array")Q.minItems=1;else{if(Q.type!=="string")Y=J(Y,`The "${Z.type}" action is not supported on type "${Q.type}".`);Q.minLength=1}break;case"not_value":if(!V(Z.requirement)){Y=J(Y,'The requirement of the "not_value" action is not JSON compatible.');break}if(H?.target==="openapi-3.0")Q.not={enum:[Z.requirement]};else Q.not={const:Z.requirement};break;case"not_values":if(!w(Z.requirement)){Y=J(Y,'A requirement of the "not_values" action is not JSON compatible.');break}Q.not={enum:Z.requirement};break;case"regex":if(Z.requirement.flags)Y=J(Y,"RegExp flags are not supported by JSON Schema.");if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=Z.requirement.source;break;case"safe_integer":if(Q.type="integer",typeof Q.minimum!=="number"||Q.minimum<Number.MIN_SAFE_INTEGER)Q.minimum=Number.MIN_SAFE_INTEGER;if(typeof Q.maximum!=="number"||Q.maximum>Number.MAX_SAFE_INTEGER)Q.maximum=Number.MAX_SAFE_INTEGER;break;case"starts_with":if(Q.pattern)Y=J(Y,`The "${Z.type}" action is not supported in combination with another regex action.`);else Q.pattern=`^${X(Z.requirement)}`;break;case"title":Q.title=Z.title;break;case"url":Q.format="uri";break;case"uuid":Q.format="uuid";break;case"value":if(!V(Z.requirement)){Y=J(Y,'The requirement of the "value" action is not JSON compatible.');break}if(H?.target==="openapi-3.0")Q.enum=[Z.requirement];else Q.const=Z.requirement;break;case"values":if(!w(Z.requirement)){Y=J(Y,'A requirement of the "values" action is not JSON compatible.');break}Q.enum=Z.requirement;break;default:Y=J(Y,`The "${Z.type}" action cannot be converted to JSON Schema.`)}if(H?.overrideAction){let F=H.overrideAction({valibotAction:Z,jsonSchema:Q,errors:Y});if(F)return{...F}}if(Y)for(let F of Y)T(F,H);return Q}function R(Q){return Q.flatMap((Z)=>("pipe"in Z)?R(Z.pipe):Z)}var A=0;function B(Q,Z,H,Y,F=!1){if(!F){let U=Y.referenceMap.get(Z);if(U){if(Q.$ref=`#/$defs/${U}`,H?.overrideRef){let z=H.overrideRef({...Y,referenceId:U,valibotSchema:Z,jsonSchema:Q});if(z)Q.$ref=z}return Q}}if("pipe"in Z){let U=R(Z.pipe),z=0,M=U.length-1;if(H?.typeMode==="input"){let L=U.slice(1).findIndex((W)=>W.kind==="schema"||W.kind==="transformation"&&(W.type==="find_item"||W.type==="parse_json"||W.type==="raw_transform"||W.type==="reduce_items"||W.type==="stringify_json"||W.type==="to_bigint"||W.type==="to_boolean"||W.type==="to_date"||W.type==="to_number"||W.type==="to_string"||W.type==="transform"));if(L!==-1)M=L}else if(H?.typeMode==="output"){let L=U.findLastIndex((W)=>W.kind==="schema");if(L!==-1)z=L}for(let L=z;L<=M;L++){let W=U[L];if(W.kind==="schema"){if(L>z)T('Set the "typeMode" config to "input" or "output" to convert pipelines with multiple schemas.',H);Q=B(Q,W,H,Y,!0)}else Q=x(Q,W,H)}return Q}let N;switch(Z.type){case"boolean":Q.type="boolean";break;case"null":if(H?.target==="openapi-3.0")Q.enum=[null];else Q.type="null";break;case"number":Q.type="number";break;case"string":Q.type="string";break;case"array":Q.type="array",Q.items=B({},Z.item,H,Y);break;case"tuple":case"tuple_with_rest":case"loose_tuple":case"strict_tuple":if(Q.type="array",H?.target==="openapi-3.0"){Q.items={anyOf:[]},Q.minItems=Z.items.length;for(let U of Z.items)Q.items.anyOf.push(B({},U,H,Y));if(Z.type==="tuple_with_rest")Q.items.anyOf.push(B({},Z.rest,H,Y));else if(Z.type==="strict_tuple"||Z.type==="tuple")Q.maxItems=Z.items.length}else if(H?.target==="draft-2020-12"){Q.prefixItems=[],Q.minItems=Z.items.length;for(let U of Z.items)Q.prefixItems.push(B({},U,H,Y));if(Z.type==="tuple_with_rest")Q.items=B({},Z.rest,H,Y);else if(Z.type==="strict_tuple")Q.items=!1}else{Q.items=[],Q.minItems=Z.items.length;for(let U of Z.items)Q.items.push(B({},U,H,Y));if(Z.type==="tuple_with_rest")Q.additionalItems=B({},Z.rest,H,Y);else if(Z.type==="strict_tuple")Q.additionalItems=!1}break;case"object":case"object_with_rest":case"loose_object":case"strict_object":Q.type="object",Q.properties={},Q.required=[];for(let U in Z.entries){let z=Z.entries[U];if(Q.properties[U]=B({},z,H,Y),z.type!=="exact_optional"&&z.type!=="nullish"&&z.type!=="optional")Q.required.push(U)}if(Z.type==="object_with_rest")Q.additionalProperties=B({},Z.rest,H,Y);else if(Z.type==="strict_object")Q.additionalProperties=!1;break;case"record":if(H?.target==="openapi-3.0"&&"pipe"in Z.key)N=J(N,'The "record" schema with a schema for the key that contains a "pipe" cannot be converted to JSON Schema.');if(Z.key.type!=="string")N=J(N,`The "record" schema with the "${Z.key.type}" schema for the key cannot be converted to JSON Schema.`);if(Q.type="object",H?.target!=="openapi-3.0")Q.propertyNames=B({},Z.key,H,Y);Q.additionalProperties=B({},Z.value,H,Y);break;case"any":case"unknown":break;case"never":Q.not={};break;case"nullable":case"nullish":if(H?.target==="openapi-3.0"){let U=B({},Z.wrapped,H,Y);Object.assign(Q,U),Q.nullable=!0}else Q.anyOf=[B({},Z.wrapped,H,Y),{type:"null"}];if(Z.default!==void 0)Q.default=K(Z);break;case"exact_optional":case"optional":case"undefinedable":if(Q=B(Q,Z.wrapped,H,Y),Z.default!==void 0)Q.default=K(Z);break;case"literal":if(typeof Z.literal!=="boolean"&&typeof Z.literal!=="number"&&typeof Z.literal!=="string")N=J(N,'The value of the "literal" schema is not JSON compatible.');if(H?.target==="openapi-3.0")Q.enum=[Z.literal];else Q.const=Z.literal;break;case"enum":if(Q.enum=Z.options,Z.options.every((U)=>typeof U==="string"))Q.type="string";else if(Z.options.every((U)=>typeof U==="number"))Q.type="number";else if(H?.target!=="openapi-3.0")Q.type=["string","number"];break;case"picklist":{let U=Z.options.some((z)=>typeof z!=="number"&&typeof z!=="string");if(U)N=J(N,'An option of the "picklist" schema is not JSON compatible.');if(Q.enum=Z.options,Z.options.every((z)=>typeof z==="string"))Q.type="string";else if(Z.options.every((z)=>typeof z==="number"))Q.type="number";else if(!U&&H?.target!=="openapi-3.0")Q.type=["string","number"];break}case"union":Q.anyOf=Z.options.map((U)=>B({},U,H,Y));break;case"variant":Q.oneOf=Z.options.map((U)=>B({},U,H,Y));break;case"intersect":Q.allOf=Z.options.map((U)=>B({},U,H,Y));break;case"lazy":{let U=Y.getterMap.get(Z.getter);if(!U)U=Z.getter(void 0),Y.getterMap.set(Z.getter,U);let z=Y.referenceMap.get(U);if(!z)z=`${A++}`,Y.referenceMap.set(U,z),Y.definitions[z]=B({},U,H,Y,!0);if(Q.$ref=`#/$defs/${z}`,H?.overrideRef){let M=H.overrideRef({...Y,referenceId:z,valibotSchema:U,jsonSchema:Q});if(M)Q.$ref=M}break}default:N=J(N,`The "${Z.type}" schema cannot be converted to JSON Schema.`)}if(H?.overrideSchema){let U=H.overrideSchema({...Y,referenceId:Y.referenceMap.get(Z),valibotSchema:Z,jsonSchema:Q,errors:N});if(U)return{...U}}if(N)for(let U of N)T(U,H);return Q}var O;function b(Q){O={...O??{},...Q}}function E(){return O}function G(Q,Z){let H={definitions:{},referenceMap:new Map,getterMap:new Map},Y=Z?.definitions??E();if(Y){for(let U in Y)H.referenceMap.set(Y[U],U);for(let U in Y)H.definitions[U]=B({},Y[U],Z,H,!0)}let F=B({},Q,Z,H),N=Z?.target??"draft-07";if(N==="draft-2020-12")F.$schema="https://json-schema.org/draft/2020-12/schema";else if(N==="draft-07")F.$schema="http://json-schema.org/draft-07/schema#";if(H.referenceMap.size)F.$defs=H.definitions;return F}function I(Q,Z){let H={definitions:{},referenceMap:new Map,getterMap:new Map};for(let Y in Q)H.referenceMap.set(Q[Y],Y);for(let Y in Q)H.definitions[Y]=B({},Q[Y],Z,H,!0);return H.definitions}var C=["draft-07","draft-2020-12","openapi-3.0"];function j(Q){return{"~standard":{...Q["~standard"],jsonSchema:{input(Z){if(C.includes(Z.target))return G(Q,{typeMode:"input",target:Z.target,...Z.libraryOptions});throw Error(`Unsupported target: ${Z.target}`)},output(Z){if(C.includes(Z.target))return G(Q,{typeMode:"output",target:Z.target,...Z.libraryOptions});throw Error(`Unsupported target: ${Z.target}`)}}}}}export{j as toStandardJsonSchema,I as toJsonSchemaDefs,G as toJsonSchema,E as getGlobalDefs,b as addGlobalDefs};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Ql as no,Rl as Vt,Sl as oo,Tl as qt,Vl as Qt,Wl as Dt}from"./chunk-5qydhr42.js";import{$l as sr,$m as fn,$n as ki,Am as Xr,An as Bi,Bm as Yr,Bn as Lo,Cm as vr,Cn as Go,Dm as x,Dn as Qi,Em as zr,En as Di,Fm as kr,Fn as Ii,Gm as Vr,Gn as li,Hm as qr,Hn as Li,Im as wr,In as di,Jm as Fr,Jn as Gi,Km as cr,Kn as Ji,Lm as jr,Ln as Ci,Mm as br,Mn as Hi,Nm as hr,Nn as Mi,Om as ar,On as xi,Pm as ni,Pn as Ki,Qm as oi,Qn as Ri,Rm as ri,Rn as Ei,Sm as ii,Sn as Si,Tm as ti,Tn as Wi,Um as ei,Un as Pi,Vm as mi,Vn as Ui,Wm as yi,Wn as Zi,Xl as Nr,Xm as fi,Xn as Xi,Yl as pr,Ym as gi,Yn as Yi,Zl as Sn,Zm as j,Zn as vi,_l as Wn,_m as D,_n as zi,am as Ar,an as yn,ao as Vi,bm as Tr,bn as vo,bo as qi,cn as ui,co as wi,dm as Or,dn as Y,do as Fi,em as $r,en as _o,eo as ci,fm as Br,fn as Pn,fo as ji,gm as Qr,gn as No,go as bi,hm as Dr,hn as po,ho as hi,im as Ir,in as so,io as ai,jm as lr,jn as Ao,jo as nt,km as Lr,kn as To,ko as ot,lm as dr,ln as Oo,lo as rt,mm as Gr,mn as $o,mo as it,nm as Jr,nn as _i,no as tt,om as Cr,on as Bo,oo as et,pm as Hr,pn as Qo,po as mt,qm as Mr,qn as Do,qo as yt,rm as xr,rn as Ni,ro as jo,sm as Kr,sn as Io,so as ft,tm as Rr,tn as pi,to as gt,um as Er,un as lo,uo as ut,vm as Sr,vn as si,wm as Wr,wn as Ai,xm as Pr,xn as Ti,ym as Ur,yn as Oi,zm as Zr,zn as $i,zo as Zt}from"./chunk-v30ezr68.js";import{ep as hn,ip as an}from"./chunk-krk24aqm.js";import{jp as vt}from"./chunk-j7d3v0x2.js";import{kp as Mo}from"./chunk-3hawwbw6.js";import{Ts as Yn,Us as ro,Vs as sn,Ws as xt,Xs as Wt,Zs as Kt}from"./chunk-1p39y33b.js";import{_s as Et}from"./chunk-yg0rs4g1.js";import{$t as un}from"./chunk-wp0xd7at.js";import{yu as eo}from"./chunk-c5n49vrd.js";import{Cu as Wo}from"./chunk-r6055kk0.js";import{jv as nn,sv as V}from"./chunk-x28chfpz.js";import{Dv as go,Iv as Bn,vv as Bt,yv as wo,zv as q}from"./chunk-mnxcykeq.js";import{Jv as b}from"./chunk-0bn86djg.js";import{GB as Hn,UB as Kn,yB as An}from"./chunk-cshsqavb.js";import{$G as a,CJ as r,FM as $t,GL as Xo,JD as wn,KK as dn,LG as Ot,XD as Dn,hG as So,oG as kn,pQ as s,vG as _n}from"./chunk-tz60e15h.js";import{SQ as $n}from"./chunk-9svh74gt.js";var Fo={};$n(Fo,{run:()=>bt});var mn={time_created:j().notNull().$default(()=>Date.now()),time_updated:j().notNull().$onUpdate(()=>Date.now())};var C=yn("project",{id:D().$type().primaryKey(),worktree:D().notNull(),vcs:D(),name:D(),icon_url:D(),icon_color:D(),...mn,time_initialized:j(),sandboxes:D({mode:"json"}).notNull().$type(),commands:D({mode:"json"}).$type()});var gn=yn("session",{id:D().$type().primaryKey(),project_id:D().$type().notNull().references(()=>C.id,{onDelete:"cascade"}),workspace_id:D().$type(),parent_id:D().$type(),context_from:D().$type(),context_watermark:D().$type(),slug:D().notNull(),directory:D().notNull(),title:D().notNull(),version:D().notNull(),share_url:D(),summary_additions:j(),summary_deletions:j(),summary_files:j(),summary_diffs:D({mode:"json"}).$type(),revert:D({mode:"json"}).$type(),permission:D({mode:"json"}).$type(),...mn,time_compacting:j(),time_archived:j(),last_checkpoint_message_id:D().$type()},(n)=>[fn("session_project_idx").on(n.project_id),fn("session_workspace_idx").on(n.workspace_id),fn("session_parent_idx").on(n.parent_id),fn("session_context_from_idx").on(n.context_from)]),fo=yn("message",{id:D().$type().primaryKey(),session_id:D().$type().notNull().references(()=>gn.id,{onDelete:"cascade"}),agent_id:D().notNull().default("main"),...mn,data:D({mode:"json"}).notNull().$type()},(n)=>[fn("message_session_time_created_id_idx").on(n.session_id,n.time_created,n.id),fn("message_session_agent_idx").on(n.session_id,n.agent_id,n.id)]),zo=yn("part",{id:D().$type().primaryKey(),message_id:D().$type().notNull().references(()=>fo.id,{onDelete:"cascade"}),session_id:D().$type().notNull(),...mn,data:D({mode:"json"}).notNull().$type()},(n)=>[fn("part_message_id_id_idx").on(n.message_id,n.id),fn("part_session_idx").on(n.session_id)]),ko=yn("todo",{session_id:D().$type().notNull().references(()=>gn.id,{onDelete:"cascade"}),content:D().notNull(),status:D().notNull(),position:j().notNull(),...mn},(n)=>[vo({columns:[n.session_id,n.position]}),fn("todo_session_idx").on(n.session_id)]),Vo=yn("permission",{project_id:D().primaryKey().references(()=>C.id,{onDelete:"cascade"}),...mn,data:D({mode:"json"}).notNull().$type()});var qo=yn("session_share",{session_id:D().primaryKey().references(()=>gn.id,{onDelete:"cascade"}),id:D().notNull(),secret:D().notNull(),url:D().notNull(),...mn});import k from"path";var X=V.create({service:"json-migration"});async function bt(n,o){let i=k.join(Bn.Path.data,"storage");if(!await go.exists(i))return X.info("storage directory does not exist, skipping migration"),{projects:0,sessions:0,messages:0,parts:0,todos:0,permissions:0,shares:0,errors:[]};X.info("starting json to sqlite migration",{storageDir:i});let _=performance.now();n.run("PRAGMA journal_mode = WAL"),n.run("PRAGMA synchronous = OFF"),n.run("PRAGMA cache_size = 10000"),n.run("PRAGMA temp_store = MEMORY");let e={projects:0,sessions:0,messages:0,parts:0,todos:0,permissions:0,shares:0,errors:[]},T={sessions:0,todos:0,permissions:0,shares:0},p=e.errors,O=1000,H=Date.now();async function E(g){return wo.scan(g,{cwd:i,absolute:!0})}async function K(g,G,M){let I=M-G,A=Array(I);for(let P=0;P<I;P++)A[P]=go.readJson(g[G+P]);let J=await Promise.allSettled(A),Z=Array(I);for(let P=0;P<J.length;P++){let w=J[P];if(w.status==="fulfilled"){Z[P]=w.value;continue}p.push(`failed to read ${g[G+P]}: ${w.reason}`)}return Z}function R(g,G,M){if(g.length===0)return 0;try{return n.insert(G).values(g).onConflictDoNothing().run(),g.length}catch(I){return p.push(`failed to migrate ${M} batch: ${I}`),0}}X.info("scanning files...");let[S,B,l,d,u,N,m]=await Promise.all([E("project/*.json"),E("session/*/*.json"),E("message/*/*.json"),E("part/*/*.json"),E("todo/*.json"),E("permission/*.json"),E("session_share/*.json")]);X.info("file scan complete",{projects:S.length,sessions:B.length,messages:l.length,parts:d.length,todos:u.length,permissions:N.length,shares:m.length});let f=Math.max(1,S.length+B.length+l.length+d.length+u.length+N.length+m.length),t=o?.progress,y=0,Q=(g,G)=>{y=Math.min(f,y+G),t?.({current:y,total:f,label:g})};t?.({current:y,total:f,label:"starting"}),n.run("BEGIN TRANSACTION");let L=new Set,$=[];for(let g=0;g<S.length;g+=O){let G=Math.min(g+O,S.length),M=await K(S,g,G);$.length=0;for(let I=0;I<M.length;I++){let A=M[I];if(!A)continue;let J=k.basename(S[g+I],".json");L.add(J),$.push({id:J,worktree:A.worktree??"/",vcs:A.vcs,name:A.name??void 0,icon_url:A.icon?.url,icon_color:A.icon?.color,time_created:A.time?.created??H,time_updated:A.time?.updated??H,time_initialized:A.time?.initialized,sandboxes:A.sandboxes??[],commands:A.commands})}e.projects+=R($,C,"project"),Q("projects",G-g)}X.info("migrated projects",{count:e.projects,duration:Math.round(performance.now()-_)});let U=B.map((g)=>k.basename(k.dirname(g))),z=new Set,en=[];for(let g=0;g<B.length;g+=O){let G=Math.min(g+O,B.length),M=await K(B,g,G);en.length=0;for(let I=0;I<M.length;I++){let A=M[I];if(!A)continue;let J=k.basename(B[g+I],".json"),Z=U[g+I];if(!L.has(Z)){T.sessions++;continue}z.add(J),en.push({id:J,project_id:Z,parent_id:A.parentID??null,slug:A.slug??"",directory:A.directory??"",title:A.title??"",version:A.version??"",share_url:A.share?.url??null,summary_additions:A.summary?.additions??null,summary_deletions:A.summary?.deletions??null,summary_files:A.summary?.files??null,summary_diffs:A.summary?.diffs??null,revert:A.revert??null,permission:A.permission??null,time_created:A.time?.created??H,time_updated:A.time?.updated??H,time_compacting:A.time?.compacting??null,time_archived:A.time?.archived??null})}e.sessions+=R(en,gn,"session"),Q("sessions",G-g)}if(X.info("migrated sessions",{count:e.sessions}),T.sessions>0)X.warn("skipped orphaned sessions",{count:T.sessions});let Nn=[],W=[],Fn=new Map;for(let g of l){let G=k.basename(k.dirname(g));if(!z.has(G))continue;Nn.push(g),W.push(G)}for(let g=0;g<Nn.length;g+=O){let G=Math.min(g+O,Nn.length),M=await K(Nn,g,G),I=Array(M.length),A=0;for(let J=0;J<M.length;J++){let Z=M[J];if(!Z)continue;let P=Nn[g+J],w=k.basename(P,".json"),En=W[g+J];Fn.set(w,En);let In=Z;delete In.id,delete In.sessionID,I[A++]={id:w,session_id:En,time_created:Z.time?.created??H,time_updated:Z.time?.updated??H,data:In}}I.length=A,e.messages+=R(I,fo,"message"),Q("messages",G-g)}X.info("migrated messages",{count:e.messages});for(let g=0;g<d.length;g+=O){let G=Math.min(g+O,d.length),M=await K(d,g,G),I=Array(M.length),A=0;for(let J=0;J<M.length;J++){let Z=M[J];if(!Z)continue;let P=d[g+J],w=k.basename(P,".json"),En=k.basename(k.dirname(P)),In=Fn.get(En);if(!In){p.push(`part missing message session: ${P}`);continue}if(!z.has(In))continue;let bn=Z;delete bn.id,delete bn.messageID,delete bn.sessionID,I[A++]={id:w,message_id:En,session_id:In,time_created:Z.time?.created??H,time_updated:Z.time?.updated??H,data:bn}}I.length=A,e.parts+=R(I,zo,"part"),Q("parts",G-g)}X.info("migrated parts",{count:e.parts});let On=u.map((g)=>k.basename(g,".json"));for(let g=0;g<u.length;g+=O){let G=Math.min(g+O,u.length),M=await K(u,g,G),I=[];for(let A=0;A<M.length;A++){let J=M[A];if(!J)continue;let Z=On[g+A];if(!z.has(Z)){T.todos++;continue}if(!Array.isArray(J)){p.push(`todo not an array: ${u[g+A]}`);continue}for(let P=0;P<J.length;P++){let w=J[P];if(!w?.content||!w?.status)continue;I.push({session_id:Z,content:w.content,status:w.status,position:P,time_created:H,time_updated:H})}}e.todos+=R(I,ko,"todo"),Q("todos",G-g)}if(X.info("migrated todos",{count:e.todos}),T.todos>0)X.warn("skipped orphaned todos",{count:T.todos});let cn=N.map((g)=>k.basename(g,".json")),Rn=[];for(let g=0;g<N.length;g+=O){let G=Math.min(g+O,N.length),M=await K(N,g,G);Rn.length=0;for(let I=0;I<M.length;I++){let A=M[I];if(!A)continue;let J=cn[g+I];if(!L.has(J)){T.permissions++;continue}Rn.push({project_id:J,data:A})}e.permissions+=R(Rn,Vo,"permission"),Q("permissions",G-g)}if(X.info("migrated permissions",{count:e.permissions}),T.permissions>0)X.warn("skipped orphaned permissions",{count:T.permissions});let jn=m.map((g)=>k.basename(g,".json")),Gn=[];for(let g=0;g<m.length;g+=O){let G=Math.min(g+O,m.length),M=await K(m,g,G);Gn.length=0;for(let I=0;I<M.length;I++){let A=M[I];if(!A)continue;let J=jn[g+I];if(!z.has(J)){T.shares++;continue}if(!A?.id||!A?.secret||!A?.url){p.push(`session_share missing id/secret/url: ${m[g+I]}`);continue}Gn.push({session_id:J,id:A.id,secret:A.secret,url:A.url})}e.shares+=R(Gn,qo,"session_share"),Q("shares",G-g)}if(X.info("migrated session shares",{count:e.shares}),T.shares>0)X.warn("skipped orphaned session shares",{count:T.shares});if(n.run("COMMIT"),X.info("json migration complete",{projects:e.projects,sessions:e.sessions,messages:e.messages,parts:e.parts,todos:e.todos,permissions:e.permissions,shares:e.shares,errorCount:e.errors.length,duration:Math.round(performance.now()-_)}),e.errors.length>0)X.warn("migration errors",{errors:e.errors.slice(0,20)});return t?.({current:f,total:f,label:"complete"}),e}var Ln={};$n(Ln,{use:()=>Me,transaction:()=>Ke,textDecoder:()=>mi,sumDistinct:()=>ir,sum:()=>rr,sql:()=>x,relationsOrderToSQL:()=>tt,relationsFilterToSQL:()=>it,relationToSQL:()=>mt,relationExtrasToSQL:()=>et,processRelations:()=>Wi,placeholder:()=>kr,param:()=>vr,orderSelectedFields:()=>jr,orderByOperators:()=>Vi,or:()=>No,operators:()=>ki,notLike:()=>si,notInArray:()=>_i,notIlike:()=>Ti,notExists:()=>Ni,notBetween:()=>pi,not:()=>po,noopMapper:()=>Xr,noopEncoder:()=>Zr,noopDecoder:()=>Ur,ne:()=>_o,name:()=>Wr,min:()=>er,max:()=>tr,mapUpdateSet:()=>hr,mapResultRow:()=>cr,mapRelationalRow:()=>wi,mapColumnsInSQLToAlias:()=>xi,mapColumnsInAliasedSQLToAlias:()=>Mi,lte:()=>Oo,lt:()=>To,like:()=>lo,l2Distance:()=>mr,l1Distance:()=>yr,jaccardDistance:()=>_r,isWithEnum:()=>fi,isView:()=>wr,isTable:()=>dr,isSQLWrapper:()=>Kr,isNull:()=>Bo,isNotNull:()=>Qo,isDriverValueEncoder:()=>Pr,isConfig:()=>ei,is:()=>Sn,innerProduct:()=>fr,inArray:()=>$o,ilike:()=>Ai,haveSameKeys:()=>br,hasOwnEntityKind:()=>pr,hammingDistance:()=>ur,gte:()=>Ao,gt:()=>so,getViewSelectedFields:()=>oi,getViewName:()=>Fr,getTableUniqueName:()=>Jr,getTableName:()=>Gr,getTableLikeName:()=>ii,getTableColumns:()=>ni,getTableAsAliasSQL:()=>yt,getOriginalColumnFromAlias:()=>Ki,getOrderByOperators:()=>qi,getColumns:()=>ri,getColumnTable:()=>sr,getColumnNameAndConfig:()=>ti,getChannelPath:()=>zt,fillPlaceholders:()=>Vr,fieldSelectionToSQL:()=>rt,extractTablesFromSchema:()=>ai,extractExtendedColumnType:()=>Ar,exists:()=>Do,eq:()=>Y,entityKind:()=>Nr,effect:()=>xe,desc:()=>Go,defineRelationsPart:()=>ot,defineRelations:()=>nt,createRelationsHelper:()=>hi,countDistinct:()=>ao,count:()=>uo,cosineDistance:()=>gr,close:()=>He,buildRelationsParts:()=>Ui,buildRelations:()=>Pi,bindIfParam:()=>ui,between:()=>Io,avgDistinct:()=>or,avg:()=>nr,assertUnreachable:()=>yi,asc:()=>Lo,arrayOverlaps:()=>Bi,arrayContains:()=>Oi,arrayContained:()=>$i,applyMixins:()=>ar,and:()=>Pn,aliasedTableColumn:()=>Hi,aliasedTable:()=>Gi,aliasedRelation:()=>Ci,aliasedColumn:()=>Ji,WithSubquery:()=>Hr,ViewSelectionAliasProxyHandler:()=>Ii,ViewBaseConfig:()=>Mr,View:()=>qr,TransactionRollbackError:()=>Si,TableSchema:()=>Or,TableColumns:()=>$r,TableAliasProxyHandler:()=>li,Table:()=>Lr,Subquery:()=>Cr,StringChunk:()=>Rr,SQL:()=>Er,RelationsHelperStatic:()=>bi,RelationsBuilderTable:()=>Fi,RelationsBuilderJunctionColumn:()=>ji,RelationsBuilderColumn:()=>ci,RelationTableAliasProxyHandler:()=>di,Relation:()=>Zi,QueryPromise:()=>Qi,Placeholder:()=>zr,Path:()=>Po,Param:()=>Yr,OriginalName:()=>Qr,One:()=>Xi,NotFoundError:()=>Ce,NoopLogger:()=>ut,Name:()=>Sr,Many:()=>Yi,IsAlias:()=>Ir,FakePrimitiveParam:()=>xr,ExtraConfigColumns:()=>Br,ExtraConfigBuilder:()=>lr,DrizzleQueryError:()=>Ei,DrizzleError:()=>Ri,DefaultLogger:()=>gt,Count:()=>zi,ConsoleLogWriter:()=>ft,ColumnTableAliasProxyHandler:()=>Di,ColumnBuilder:()=>Tr,ColumnAliasProxyHandler:()=>Li,Column:()=>Wn,Client:()=>Mn,CONSTANTS:()=>gi,BaseName:()=>Dr,AggregatedField:()=>vi});import ht from"crypto";import co,{existsSync as at,readdirSync as ne}from"fs";import{join as oe}from"path";function bo(n){if(co.existsSync(`${n.migrationsFolder}/meta/_journal.json`))throw Error('We detected that you have old drizzle-kit migration folders. You must upgrade drizzle-kit and run "drizzle-kit up"');let o=n.migrationsFolder,i=[],_=ne(o).map((e)=>({path:oe(o,e,"migration.sql"),name:e})).filter((e)=>at(e.path));_.sort((e,T)=>e.name.localeCompare(T.name));for(let e of _){let T=e.path,p=e.name.slice(0,14),O=co.readFileSync(T).toString(),H=O.split("--> statement-breakpoint").map((K)=>{return K}),E=jo(p);i.push({sql:H,bps:!0,folderMillis:E,hash:ht.createHash("sha256").update(O).digest("hex"),name:e.name})}return i}function ho(n,o){if(Array.isArray(o)||"migrationsJournal"in o){let _=Array.isArray(o)?o:o.migrationsJournal,e=Array.isArray(o)?void 0:o.migrationsTable,T=_.map((p)=>({sql:p.sql.split("--> statement-breakpoint"),folderMillis:p.timestamp,hash:"",bps:!0,name:p.name}));return n.dialect.migrate(T,n.session,{migrationsTable:e})}let i=bo(o);return n.dialect.migrate(i,n.session,o)}function uo(n){return x`count(${n||x.raw("*")})`.mapWith(Number)}function ao(n){return x`count(distinct ${n})`.mapWith(Number)}function nr(n){return x`avg(${n})`.mapWith(String)}function or(n){return x`avg(distinct ${n})`.mapWith(String)}function rr(n){return x`sum(${n})`.mapWith(String)}function ir(n){return x`sum(distinct ${n})`.mapWith(String)}function tr(n){return x`max(${n})`.mapWith(Sn(n,Wn)?n:String)}function er(n){return x`min(${n})`.mapWith(Sn(n,Wn)?n:String)}function Jn(n){return JSON.stringify(n)}function mr(n,o){if(Array.isArray(o))return x`${n} <-> ${Jn(o)}`;return x`${n} <-> ${o}`}function yr(n,o){if(Array.isArray(o))return x`${n} <+> ${Jn(o)}`;return x`${n} <+> ${o}`}function fr(n,o){if(Array.isArray(o))return x`${n} <#> ${Jn(o)}`;return x`${n} <#> ${o}`}function gr(n,o){if(Array.isArray(o))return x`${n} <=> ${Jn(o)}`;return x`${n} <=> ${o}`}function ur(n,o){if(Array.isArray(o))return x`${n} <~> ${Jn(o)}`;return x`${n} <~> ${o}`}function _r(n,o){if(Array.isArray(o))return x`${n} <%> ${Jn(o)}`;return x`${n} <%> ${o}`}import to from"path";var vn={};$n(vn,{workspaceID:()=>Be,useEffect:()=>Ie,use:()=>De,make:()=>Qe,invalidate:()=>Le,has:()=>le,get:()=>Eo,directory:()=>io,context:()=>Ro,bind:()=>$e});import{EventEmitter as re}from"events";var Un=new re;var Jo=new Set;function _t(n){return Jo.add(n),()=>{Jo.delete(n)}}async function Co(n){await Promise.allSettled([...Jo].map((o)=>o(n)))}function Zn(n){return n()}var Ct={};$n(Ct,{setInitialized:()=>_e,list:()=>ge,layer:()=>Jt,get:()=>ue,fromRow:()=>pn,defaultLayer:()=>Ko,UpdateInput:()=>fe,Service:()=>Cn,Info:()=>dt,Event:()=>Gt});import*as c from"fs/promises";import*as It from"os";import*as Qn from"path";var ie=s.String.pipe(s.brand("ProjectID")),F=ie.pipe(hn((n)=>({global:n.make("global"),zod:b.string().pipe(b.custom())})));import*as ln from"fs/promises";import*as h from"path";import*as st from"crypto";async function Ho(n){let o=h.resolve(n);while(!0){let i=h.join(o,".git"),_=await ln.stat(i).catch(()=>null);if(_){if(_.isDirectory())return i;let p=(await ln.readFile(i,"utf-8")).trim().match(/^gitdir:\s*(.+)$/);if(!p)return null;let O=h.isAbsolute(p[1])?p[1]:h.resolve(o,p[1]);return h.resolve(O,"../..")}let e=h.dirname(o);if(e===o)return null;o=e}}async function Nt(n){let o=await ln.readFile(n,"utf-8").catch(()=>null);if(o===null)return null;return o.trim()||null}async function pt(n){let o=await Nt(n);if(o)return o;let i=st.randomUUID();try{return await ln.writeFile(n,i,{flag:"wx"}),i}catch(_){if(_.code!=="EEXIST")throw _;let e=await Nt(n);if(e)return e;throw Error(`Project ID file was concurrently created but is empty: ${n}`)}}async function At(n){let o=await Ho(n);if(o){let _=h.join(o,"qitqode-project-id");return F.make(await pt(_))}let i=h.join(n,".qitqode-project-id");return F.make(await pt(i))}async function ee(n){let o=await Ho(n);if(!o)return;let i=Qn.join(n,".qitqode-project-id"),_=Qn.join(o,"qitqode-project-id"),e=(O)=>c.access(O).then(()=>!0).catch(()=>!1);if(await e(i)){if(!await e(_)){let O=await c.readFile(i,"utf-8");await c.writeFile(_,O)}await c.unlink(i).catch(()=>{})}let T=Qn.join(o,"info","exclude");if(await c.mkdir(Qn.dirname(T),{recursive:!0}),!(await c.readFile(T,"utf-8").catch(()=>"")).includes(".qitqode-project-id"))await c.appendFile(T,`
|
|
3
|
+
.qitqode-project-id
|
|
4
|
+
`)}var Tt=V.create({service:"project"}),me=262144,xo=s.Literal("git"),lt=s.Struct({url:s.optional(s.String),override:s.optional(s.String),color:s.optional(s.String)}),Lt=s.Struct({start:s.optional(s.String.annotate({description:"Startup script to run when creating a new workspace (worktree)"}))}),ye=s.Struct({created:s.Number,updated:s.Number,initialized:s.optional(s.Number)}),dt=s.Struct({id:F,worktree:s.String,vcs:s.optional(xo),name:s.optional(s.String),icon:s.optional(lt),commands:s.optional(Lt),time:ye,sandboxes:s.Array(s.String)}).annotate({identifier:"Project"}).pipe(hn((n)=>({zod:an(n)}))),Gt={Updated:Dt.define("project.updated",dt.zod)};function pn(n){let o=n.icon_url||n.icon_color?{url:n.icon_url??void 0,color:n.icon_color??void 0}:void 0;return{id:n.id,worktree:n.worktree,vcs:n.vcs?s.decodeUnknownSync(xo)(n.vcs):void 0,name:n.name??void 0,icon:o,time:{created:n.time_created,updated:n.time_updated,initialized:n.time_initialized??void 0},sandboxes:n.sandboxes,commands:n.commands??void 0}}var fe=b.object({projectID:F.zod,name:b.string().optional(),icon:an(lt).optional(),commands:an(Lt).optional()});class Cn extends Dn.Service()("@qitqode/Project"){}var Jt=a.effect(Cn,r.gen(function*(){let n=yield*q.Service,o=yield*$t.Path,i=yield*no.ChildProcessSpawner,_=r.fnUntraced(function*(t,y){return yield*Qt(i,t,y)},r.catch(()=>r.succeed({code:1,text:"",stderr:""}))),e=(t)=>r.sync(()=>Ln.use(t)),T=(t)=>r.sync(()=>Un.emit("event",{directory:"global",project:t.id,payload:{type:Gt.Updated.type,properties:t}})),p=s.decodeUnknownSync(s.optional(xo))(nn.QITQODE_FAKE_VCS),O=(t,y)=>{if(!y)return t;if(y=y.replace(/[\r\n]+$/,""),!y)return t;if(y=q.windowsPath(y),o.isAbsolute(y))return o.normalize(y);return o.resolve(t,y)},H=yield*Ot.Scope,E=r.fn("Project.fromDirectory")(function*(t){Tt.info("fromDirectory",{directory:t});let y=yield*r.gen(function*(){if(nn.QITQODE_DISABLE_GIT)return{id:F.global,worktree:t,sandbox:t,vcs:p};let z=(yield*n.up({targets:[".git"],start:t}).pipe(r.orDie))[0];if(!z)return{id:F.global,worktree:"/",sandbox:"/",vcs:p};let en=o.dirname(z),Nn=process.env.HOME??process.env.USERPROFILE??It.homedir();if(en===Nn||Qn.parse(en).root===en)return Tt.warn("ignoring .git at home or filesystem root, snapshots disabled",{dotgit:z}),{id:F.global,worktree:t,sandbox:t,vcs:p};let W=en,Fn=yield*r.sync(()=>Mo("git")),On;if(!Fn)return{id:On??F.global,worktree:W,sandbox:W,vcs:p};let cn=yield*_(["rev-parse","--git-common-dir"],{cwd:W});if(cn.code!==0)return{id:On??F.global,worktree:W,sandbox:W,vcs:p};let Rn=(()=>{let Gn=O(W,cn.text.trim());return Gn===W?W:o.dirname(Gn)})();if(On==null)yield*r.promise(()=>ee(W)),On=yield*r.promise(()=>At(W));let jn=yield*_(["rev-parse","--show-toplevel"],{cwd:W});if(jn.code!==0)return{id:On,worktree:W,sandbox:W,vcs:p};return W=O(W,jn.text.trim()),{id:On,sandbox:W,worktree:Rn,vcs:"git"}}),Q=yield*e((U)=>U.select().from(C).where(Y(C.id,y.id)).get()),L=Q?pn(Q):{id:y.id,worktree:y.worktree,vcs:y.vcs,sandboxes:[],time:{created:Date.now(),updated:Date.now()}};if(nn.QITQODE_EXPERIMENTAL_ICON_DISCOVERY)yield*K(L).pipe(r.ignore,r.forkIn(H));let $={...L,worktree:y.worktree,vcs:y.vcs,time:{...L.time,updated:Date.now()}};if(y.sandbox!==$.worktree&&!$.sandboxes.includes(y.sandbox))$.sandboxes.push(y.sandbox);if($.sandboxes=yield*r.forEach($.sandboxes,(U)=>n.exists(U).pipe(r.orDie,r.map((z)=>z?U:void 0)),{concurrency:16}).pipe(r.map((U)=>U.filter((z)=>z!==void 0))),yield*e((U)=>U.insert(C).values({id:$.id,worktree:$.worktree,vcs:$.vcs??null,name:$.name,icon_url:$.icon?.url,icon_color:$.icon?.color,time_created:$.time.created,time_updated:$.time.updated,time_initialized:$.time.initialized,sandboxes:$.sandboxes,commands:$.commands}).onConflictDoUpdate({target:C.id,set:{worktree:$.worktree,vcs:$.vcs??null,name:$.name,icon_url:$.icon?.url,icon_color:$.icon?.color,time_updated:$.time.updated,time_initialized:$.time.initialized,sandboxes:$.sandboxes,commands:$.commands}}).run()),y.id!==F.global)yield*e((U)=>U.update(gn).set({project_id:y.id}).where(Pn(Y(gn.project_id,F.global),Y(gn.directory,y.worktree))).run());return yield*T($),{project:$,sandbox:y.sandbox}}),K=r.fn("Project.discover")(function*(t){if(t.vcs!=="git")return;if(t.icon?.override)return;if(t.icon?.url)return;let Q=(yield*n.glob("**/favicon.{ico,png,svg,jpg,jpeg,webp}",{cwd:t.worktree,absolute:!0,include:"file"}).pipe(r.orDie)).sort((Nn,W)=>Nn.length-W.length)[0];if(!Q)return;let L=yield*n.stat(Q).pipe(r.orDie);if(Number(L.size)>me)return;let $=yield*n.readFile(Q).pipe(r.orDie),U=Buffer.from($).toString("base64"),en=`data:${q.mimeType(Q)};base64,${U}`;yield*B({projectID:t.id,icon:{url:en}})}),R=r.fn("Project.list")(function*(){return yield*e((t)=>t.select().from(C).all().map(pn))}),S=r.fn("Project.get")(function*(t){let y=yield*e((Q)=>Q.select().from(C).where(Y(C.id,t)).get());return y?pn(y):void 0}),B=r.fn("Project.update")(function*(t){let y=yield*e((L)=>L.update(C).set({name:t.name,icon_url:t.icon?.url,icon_color:t.icon?.color,commands:t.commands,time_updated:Date.now()}).where(Y(C.id,t.projectID)).returning().get());if(!y)throw Error(`Project not found: ${t.projectID}`);let Q=pn(y);return yield*T(Q),Q}),l=r.fn("Project.initGit")(function*(t){if(t.project.vcs==="git")return t.project;if(!(yield*r.sync(()=>Mo("git"))))throw Error("Git is not installed");let y=yield*_(["init","--quiet"],{cwd:t.directory});if(y.code!==0)throw Error(y.stderr.trim()||y.text.trim()||"Failed to initialize git repository");let{project:Q}=yield*E(t.directory);return Q}),d=r.fn("Project.setInitialized")(function*(t){yield*e((y)=>y.update(C).set({time_initialized:Date.now()}).where(Y(C.id,t)).run())}),u=r.fn("Project.sandboxes")(function*(t){let y=yield*e((L)=>L.select().from(C).where(Y(C.id,t)).get());if(!y)return[];let Q=pn(y);return yield*r.forEach(Q.sandboxes,(L)=>n.isDir(L).pipe(r.orDie,r.map(($)=>$?L:void 0)),{concurrency:16}).pipe(r.map((L)=>L.filter(($)=>$!==void 0)))}),N=r.fnUntraced(function*(t,y){let Q=yield*e((L)=>L.update(C).set({sandboxes:y,time_updated:Date.now()}).where(Y(C.id,t)).returning().get());if(!Q)throw Error(`Project not found: ${t}`);yield*T(pn(Q))}),m=r.fn("Project.addSandbox")(function*(t,y){let Q=yield*e(($)=>$.select().from(C).where(Y(C.id,t)).get());if(!Q)throw Error(`Project not found: ${t}`);let L=[...Q.sandboxes];if(!L.includes(y))L.push(y);yield*N(t,L)}),f=r.fn("Project.removeSandbox")(function*(t,y){let Q=yield*e(($)=>$.select().from(C).where(Y(C.id,t)).get());if(!Q)throw Error(`Project not found: ${t}`);let L=Q.sandboxes.filter(($)=>$!==y);yield*N(t,L)});return Cn.of({fromDirectory:E,discover:K,list:R,get:S,update:B,initGit:l,setInitialized:d,sandboxes:u,addSandbox:m,removeSandbox:f})})),Ko=Jt.pipe(a.provide(oo),a.provide(q.defaultLayer),a.provide(Bt.layer));function ge(){return Ln.use((n)=>n.select().from(C).all().map((o)=>pn(o)))}function ue(n){let o=Ln.use((i)=>i.select().from(C).where(Y(C.id,n)).get());if(!o)return;return pn(o)}function _e(n){Ln.use((o)=>o.update(C).set({time_initialized:Date.now()}).where(Y(C.id,n)).run())}import{parse as Ne}from"path";var rn=un.create("instance");xt(()=>rn.use());var tn=new Map,pe=Kt(Cn,Ko),se=new Set(["/etc","/proc","/sys","/dev","/boot","/root","/var","/private/etc","/private/var"]);function Ae(n){if(n===Ne(n).root)return"filesystem root is not a valid project directory";for(let o of se)if(n===o||q.contains(o,n))return"target is a protected system directory";return null}function Te(n){let o=Ae(n);if(o)throw Error("Access denied: "+o)}var Xn={all:void 0};function Ht(n){return Zn(async()=>{let o=n.project&&n.worktree?{directory:n.directory,worktree:n.worktree,project:n.project}:await pe.runPromise((i)=>i.fromDirectory(n.directory)).then(({project:i,sandbox:_})=>({directory:n.directory,worktree:_,project:i}));return await rn.provide(o,async()=>{await n.init?.()}),o})}function Mt(n,o){let i=o.catch((_)=>{if(tn.get(n)===i)tn.delete(n);throw _});return tn.set(n,i),i}var on={async provide(n){let o=q.resolve(n.directory);Te(o);let i=tn.get(o);if(!i)V.Default.info("creating instance",{directory:o}),i=Mt(o,Ht({directory:o,init:n.init}));let _=await i;return rn.provide(_,async()=>{return n.fn()})},get current(){return rn.use()},get directory(){return rn.use().directory},get worktree(){return rn.use().worktree},get project(){return rn.use().project},containsPath(n,o){let i=o??on;if(q.contains(i.directory,n))return!0;if(i.worktree==="/")return!1;return q.contains(i.worktree,n)},bind(n){let o=rn.use();return(...i)=>rn.provide(o,()=>n(...i))},restore(n,o){return rn.provide(n,o)},async reload(n){let o=q.resolve(n.directory);V.Default.info("reloading instance",{directory:o}),await Co(o),tn.delete(o);let i=Mt(o,Ht({...n,directory:o}));return Un.emit("event",{directory:o,project:n.project?.id,workspace:sn.workspaceID,payload:{type:"server.instance.disposed",properties:{directory:o}}}),await i},async dispose(){let{directory:n,project:o}=on;V.Default.info("disposing instance",{directory:n}),await Co(n),tn.delete(n),Un.emit("event",{directory:n,project:o.id,workspace:sn.workspaceID,payload:{type:"server.instance.disposed",properties:{directory:n}}})},async disposeAll(){if(Xn.all)return Xn.all;return Xn.all=Zn(async()=>{V.Default.info("disposing all instances");let n=[...tn.entries()];for(let[o,i]of n){if(tn.get(o)!==i)continue;let _=await i.catch((e)=>{V.Default.warn("instance dispose failed",{key:o,error:e});return});if(!_){if(tn.get(o)===i)tn.delete(o);continue}if(tn.get(o)!==i)continue;await rn.provide(_,async()=>{await on.dispose()})}}).finally(()=>{Xn.all=void 0}),Xn.all}};var Rt="~qitqode/InstanceState",$e=(n)=>{try{return on.bind(n)}catch(_){if(!(_ instanceof un.NotFound))throw _}let o=dn.getCurrent(),i=o?Dn.getReferenceUnsafe(o.context,Yn):void 0;if(!i)return n;return(..._)=>on.restore(i,()=>n(..._))},Ro=r.gen(function*(){return(yield*Yn)??on.current}),Be=r.gen(function*(){return(yield*ro)??sn.workspaceID}),io=r.map(Ro,(n)=>n.directory),Qe=(n)=>r.gen(function*(){let o=yield*Hn.make({capacity:Number.POSITIVE_INFINITY,lookup:()=>r.gen(function*(){return yield*n(yield*Ro)})}),i=_t((_)=>r.runPromise(Hn.invalidate(o,_).pipe(r.provide(Et))));return yield*r.addFinalizer(()=>r.sync(i)),{[Rt]:Rt,cache:o}}),Eo=(n)=>r.gen(function*(){return yield*Hn.get(n.cache,yield*io)}),De=(n,o)=>r.map(Eo(n),o),Ie=(n,o)=>r.flatMap(Eo(n),o),le=(n)=>r.gen(function*(){return yield*Hn.has(n.cache,yield*io)}),Le=(n)=>r.gen(function*(){return yield*Hn.invalidate(n.cache,yield*io)});var Pt={};$n(Pt,{make:()=>de});function St(n,o,i){if(n&&o!==void 0)return sn.restore(o,()=>on.restore(n,i));if(n)return on.restore(n,i);if(o!==void 0)return sn.restore(o,i);return i()}function de(){return r.gen(function*(){let n=yield*r.context(),i=(yield*Yn)??(()=>{try{return on.current}catch(p){if(!(p instanceof un.NotFound))throw p}})(),_=(yield*ro)??sn.workspaceID,e=(p)=>Wt(p,{instance:i,workspace:_}),T=(p)=>e(p).pipe(r.provide(n));return{promise:(p)=>St(i,_,()=>r.runPromise(T(p))),fork:(p)=>St(i,_,()=>r.runFork(T(p)))}})}var Ut={};$n(Ut,{make:()=>Ge,Cancelled:()=>zn});class zn extends s.TaggedErrorClass()("RunnerCancelled",{}){}var Ge=(n,o)=>{let i=An.makeUnsafe({_tag:"Idle"}),_=o?.onIdle??r.void,e=o?.onBusy??r.void,T=o?.onInterrupt,p=0,O=()=>An.getUnsafe(i),H=()=>{return p+=1,p},E=(m,f)=>kn.isFailure(f)&&So.hasInterruptsOnly(f.cause)?_n.fail(m,new zn).pipe(r.asVoid):_n.done(m,f).pipe(r.asVoid),K=()=>An.modify(i,(m)=>[m._tag==="Idle"?_:r.void,m]).pipe(r.flatten),R=(m,f,t)=>An.modify(i,(y)=>[r.gen(function*(){if(y._tag==="Running"&&y.run.id===m)yield*_;yield*E(f,t)}),y._tag==="Running"&&y.run.id===m?{_tag:"Idle"}:y]).pipe(r.flatten),S=(m,f)=>r.gen(function*(){let t=H(),y=yield*m.pipe(r.onExit((Q)=>R(t,f,Q)),r.forkIn(n));return{id:t,done:f,fiber:y}}),B=(m)=>An.modifyEffect(i,r.fnUntraced(function*(f){if(f._tag==="Shell"&&f.shell.id===m)return[_,{_tag:"Idle"}];if(f._tag==="ShellThenRun"&&f.shell.id===m){let t=yield*S(f.run.work,f.run.done);return[r.void,{_tag:"Running",run:t}]}return[r.void,f]})).pipe(r.flatten),l=(m)=>dn.interrupt(m.fiber),d=(m)=>An.modifyEffect(i,r.fnUntraced(function*(f){switch(f._tag){case"Running":case"ShellThenRun":if(o?.onReentryWarn)yield*o.onReentryWarn({label:o.label??"(unlabeled)",existingRunId:f.run.id});return[_n.await(f.run.done),f];case"Shell":{let t={id:H(),done:yield*_n.make(),work:m};return[_n.await(t.done),{_tag:"ShellThenRun",shell:f.shell,run:t}]}case"Idle":{let t=yield*_n.make(),y=yield*S(m,t);return[_n.await(t),{_tag:"Running",run:y}]}}})).pipe(r.flatten,r.catch((f)=>f instanceof zn?T??r.die(f):r.fail(f))),u=(m)=>An.modifyEffect(i,r.fnUntraced(function*(f){if(f._tag!=="Idle")return[r.sync(()=>{if(o?.busy)o.busy();throw Error("Runner is busy")}),f];yield*e;let t=H(),y=yield*m.pipe(r.ensuring(B(t)),r.forkChild),Q={id:t,fiber:y};return[r.gen(function*(){let L=yield*dn.await(y);if(kn.isSuccess(L))return L.value;if(So.hasInterruptsOnly(L.cause)&&T)return yield*T;return yield*r.failCause(L.cause)}),{_tag:"Shell",shell:Q}]})).pipe(r.flatten),N=An.modify(i,(m)=>{switch(m._tag){case"Idle":return[r.void,m];case"Running":return[r.gen(function*(){yield*dn.interrupt(m.run.fiber);let f=yield*dn.await(m.run.fiber);yield*E(m.run.done,f),yield*_n.await(m.run.done).pipe(r.exit,r.asVoid),yield*K()}),{_tag:"Idle"}];case"Shell":return[r.gen(function*(){yield*l(m.shell),yield*K()}),{_tag:"Idle"}];case"ShellThenRun":return[r.gen(function*(){yield*_n.fail(m.run.done,new zn).pipe(r.asVoid),yield*l(m.shell),yield*K()}),{_tag:"Idle"}]}}).pipe(r.flatten);return{get state(){return O()},get busy(){return O()._tag!=="Idle"},ensureRunning:d,startShell:u,cancel:N}};import{Database as Je}from"bun:sqlite";function Xt(n){let o=new Je(n,{create:!0});return Zt({client:o})}var Ce=eo.create("NotFoundError",b.object({message:b.string()})),Yt=V.create({service:"db"});function zt(){if(["latest","beta","prod"].includes(Wo)||nn.QITQODE_DISABLE_CHANNEL_DB)return to.join(Bn.Path.data,"qitqode.db");let n=Wo.replace(/[^a-zA-Z0-9._-]/g,"-");return to.join(Bn.Path.data,`qitqode-${n}.db`)}var Po=Zn(()=>{if(nn.QITQODE_DB){if(nn.QITQODE_DB===":memory:"||to.isAbsolute(nn.QITQODE_DB))return nn.QITQODE_DB;return to.join(Bn.Path.data,nn.QITQODE_DB)}return zt()}),Mn=vt(()=>{Yt.info("opening database",{path:Po});let n=Xt(Po);n.run("PRAGMA journal_mode = WAL"),n.run("PRAGMA synchronous = NORMAL"),n.run("PRAGMA busy_timeout = 5000"),n.run("PRAGMA cache_size = -64000"),n.run("PRAGMA foreign_keys = ON"),n.run("PRAGMA wal_checkpoint(PASSIVE)");let o=[{sql:"CREATE TABLE `project` (\n\t`id` text PRIMARY KEY,\n\t`worktree` text NOT NULL,\n\t`vcs` text,\n\t`name` text,\n\t`icon_url` text,\n\t`icon_color` text,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`time_initialized` integer,\n\t`sandboxes` text NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `message` (\n\t`id` text PRIMARY KEY,\n\t`session_id` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_message_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `part` (\n\t`id` text PRIMARY KEY,\n\t`message_id` text NOT NULL,\n\t`session_id` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_part_message_id_message_id_fk` FOREIGN KEY (`message_id`) REFERENCES `message`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `permission` (\n\t`project_id` text PRIMARY KEY,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_permission_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `session` (\n\t`id` text PRIMARY KEY,\n\t`project_id` text NOT NULL,\n\t`parent_id` text,\n\t`slug` text NOT NULL,\n\t`directory` text NOT NULL,\n\t`title` text NOT NULL,\n\t`version` text NOT NULL,\n\t`share_url` text,\n\t`summary_additions` integer,\n\t`summary_deletions` integer,\n\t`summary_files` integer,\n\t`summary_diffs` text,\n\t`revert` text,\n\t`permission` text,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`time_compacting` integer,\n\t`time_archived` integer,\n\tCONSTRAINT `fk_session_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `todo` (\n\t`session_id` text NOT NULL,\n\t`content` text NOT NULL,\n\t`status` text NOT NULL,\n\t`priority` text NOT NULL,\n\t`position` integer NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\tCONSTRAINT `todo_pk` PRIMARY KEY(`session_id`, `position`),\n\tCONSTRAINT `fk_todo_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `session_share` (\n\t`session_id` text PRIMARY KEY,\n\t`id` text NOT NULL,\n\t`secret` text NOT NULL,\n\t`url` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\tCONSTRAINT `fk_session_share_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE INDEX `message_session_idx` ON `message` (`session_id`);--> statement-breakpoint\nCREATE INDEX `part_message_idx` ON `part` (`message_id`);--> statement-breakpoint\nCREATE INDEX `part_session_idx` ON `part` (`session_id`);--> statement-breakpoint\nCREATE INDEX `session_project_idx` ON `session` (`project_id`);--> statement-breakpoint\nCREATE INDEX `session_parent_idx` ON `session` (`parent_id`);--> statement-breakpoint\nCREATE INDEX `todo_session_idx` ON `todo` (`session_id`);",timestamp:1769552633000,name:"20260127222353_familiar_lady_ursula"},{sql:"ALTER TABLE `project` ADD `commands` text;",timestamp:1770830228000,name:"20260211171708_add_project_commands"},{sql:"CREATE TABLE `control_account` (\n\t`email` text NOT NULL,\n\t`url` text NOT NULL,\n\t`access_token` text NOT NULL,\n\t`refresh_token` text NOT NULL,\n\t`token_expiry` integer,\n\t`active` integer NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\tCONSTRAINT `control_account_pk` PRIMARY KEY(`email`, `url`)\n);\n",timestamp:1770993676000,name:"20260213144116_wakeful_the_professor"},{sql:"CREATE TABLE `workspace` (\n\t`id` text PRIMARY KEY,\n\t`branch` text,\n\t`project_id` text NOT NULL,\n\t`config` text NOT NULL,\n\tCONSTRAINT `fk_workspace_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n",timestamp:1772056728000,name:"20260225215848_workspace"},{sql:"ALTER TABLE `session` ADD `workspace_id` text;--> statement-breakpoint\nCREATE INDEX `session_workspace_idx` ON `session` (`workspace_id`);",timestamp:1772228279000,name:"20260227213759_add_session_workspace_id"},{sql:"CREATE TABLE `account` (\n\t`id` text PRIMARY KEY,\n\t`email` text NOT NULL,\n\t`url` text NOT NULL,\n\t`access_token` text NOT NULL,\n\t`refresh_token` text NOT NULL,\n\t`token_expiry` integer,\n\t`selected_org_id` text,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `account_state` (\n\t`id` integer PRIMARY KEY NOT NULL,\n\t`active_account_id` text,\n\tFOREIGN KEY (`active_account_id`) REFERENCES `account`(`id`) ON UPDATE no action ON DELETE set null\n);\n",timestamp:1772310750000,name:"20260228203230_blue_harpoon"},{sql:"ALTER TABLE `workspace` ADD `type` text NOT NULL;--> statement-breakpoint\nALTER TABLE `workspace` ADD `name` text;--> statement-breakpoint\nALTER TABLE `workspace` ADD `directory` text;--> statement-breakpoint\nALTER TABLE `workspace` ADD `extra` text;--> statement-breakpoint\nALTER TABLE `workspace` DROP COLUMN `config`;",timestamp:1772579546000,name:"20260303231226_add_workspace_fields"},{sql:"ALTER TABLE `account_state` ADD `active_org_id` text;--> statement-breakpoint\nUPDATE `account_state` SET `active_org_id` = (SELECT `selected_org_id` FROM `account` WHERE `account`.`id` = `account_state`.`active_account_id`);--> statement-breakpoint\nALTER TABLE `account` DROP COLUMN `selected_org_id`;\n",timestamp:1773097200000,name:"20260309230000_move_org_to_state"},{sql:"DROP INDEX IF EXISTS `message_session_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `part_message_idx`;--> statement-breakpoint\nCREATE INDEX `message_session_time_created_id_idx` ON `message` (`session_id`,`time_created`,`id`);--> statement-breakpoint\nCREATE INDEX `part_message_id_id_idx` ON `part` (`message_id`,`id`);",timestamp:1773290071000,name:"20260312043431_session_message_cursor"},{sql:"CREATE TABLE `event_sequence` (\n\t`aggregate_id` text PRIMARY KEY,\n\t`seq` integer NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `event` (\n\t`id` text PRIMARY KEY,\n\t`aggregate_id` text NOT NULL,\n\t`seq` integer NOT NULL,\n\t`type` text NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_event_aggregate_id_event_sequence_aggregate_id_fk` FOREIGN KEY (`aggregate_id`) REFERENCES `event_sequence`(`aggregate_id`) ON DELETE CASCADE\n);\n",timestamp:1774309702000,name:"20260323234822_events"},{sql:"PRAGMA foreign_keys=OFF;--> statement-breakpoint\nCREATE TABLE `__new_workspace` (\n\t`id` text PRIMARY KEY,\n\t`type` text NOT NULL,\n\t`name` text DEFAULT '' NOT NULL,\n\t`branch` text,\n\t`directory` text,\n\t`extra` text,\n\t`project_id` text NOT NULL,\n\tCONSTRAINT `fk_workspace_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nINSERT INTO `__new_workspace`(`id`, `type`, `branch`, `name`, `directory`, `extra`, `project_id`) SELECT `id`, `type`, `branch`, `name`, `directory`, `extra`, `project_id` FROM `workspace`;--> statement-breakpoint\nDROP TABLE `workspace`;--> statement-breakpoint\nALTER TABLE `__new_workspace` RENAME TO `workspace`;--> statement-breakpoint\nPRAGMA foreign_keys=ON;",timestamp:1775843113000,name:"20260410174513_workspace-name"},{sql:"CREATE TABLE `session_entry` (\n\t`id` text PRIMARY KEY,\n\t`session_id` text NOT NULL,\n\t`type` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_session_entry_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE INDEX `session_entry_session_idx` ON `session_entry` (`session_id`);--> statement-breakpoint\nCREATE INDEX `session_entry_session_type_idx` ON `session_entry` (`session_id`,`type`);--> statement-breakpoint\nCREATE INDEX `session_entry_time_created_idx` ON `session_entry` (`time_created`);",timestamp:1776103196000,name:"20260413175956_chief_energizer"},{sql:"ALTER TABLE `session` ADD `context_from` text;--> statement-breakpoint\nALTER TABLE `session` ADD `context_watermark` text;--> statement-breakpoint\nCREATE INDEX `session_context_from_idx` ON `session` (`context_from`);\n",timestamp:1776873600000,name:"20260422160000_context_inheritance"},{sql:"CREATE TABLE `task_registry` (\n `id` text PRIMARY KEY,\n `parent_session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `status` text NOT NULL,\n `agent` text NOT NULL,\n `description` text NOT NULL,\n `context_mode` text NOT NULL,\n `background` integer NOT NULL,\n `last_turn_time` integer NOT NULL,\n `turn_count` integer NOT NULL DEFAULT 0,\n `error` text,\n `time_completed` integer,\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `task_registry_parent_idx` ON `task_registry` (`parent_session_id`);--> statement-breakpoint\nCREATE INDEX `task_registry_status_idx` ON `task_registry` (`status`);--> statement-breakpoint\nCREATE INDEX `task_registry_status_last_turn_idx` ON `task_registry` (`status`, `last_turn_time`);\n",timestamp:1776877200000,name:"20260422170000_task_registry"},{sql:"DROP INDEX IF EXISTS `session_entry_session_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `session_entry_session_type_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `session_entry_time_created_idx`;--> statement-breakpoint\nDROP TABLE IF EXISTS `session_entry`;\n",timestamp:1776956061000,name:"20260423145421_remove_session_entry"},{sql:"DROP INDEX IF EXISTS `task_registry_parent_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `task_registry_status_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `task_registry_status_last_turn_idx`;--> statement-breakpoint\nALTER TABLE `task_registry` RENAME TO `actor_registry`;--> statement-breakpoint\nCREATE INDEX `actor_registry_parent_idx` ON `actor_registry` (`parent_session_id`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_idx` ON `actor_registry` (`status`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_last_turn_idx` ON `actor_registry` (`status`, `last_turn_time`);\n",timestamp:1778803200000,name:"20260515000000_actor_rename"},{sql:"CREATE TABLE `memory_fts` (\n `path` text PRIMARY KEY NOT NULL,\n `scope` text NOT NULL,\n `scope_id` text DEFAULT '' NOT NULL,\n `type` text NOT NULL,\n `body` text NOT NULL,\n `fingerprint` text NOT NULL,\n `last_indexed_at` integer NOT NULL\n);\n--> statement-breakpoint\nCREATE INDEX `memory_fts_scope_idx` ON `memory_fts` (`scope`, `scope_id`);\n--> statement-breakpoint\nCREATE INDEX `memory_fts_type_idx` ON `memory_fts` (`type`);\n--> statement-breakpoint\nCREATE VIRTUAL TABLE `memory_fts_idx` USING fts5(\n body,\n content='memory_fts',\n content_rowid='rowid',\n tokenize='unicode61 remove_diacritics 1'\n);\n--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ai` AFTER INSERT ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;\n--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ad` AFTER DELETE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.rowid;\nEND;\n--> statement-breakpoint\nCREATE TRIGGER `memory_fts_au` AFTER UPDATE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.rowid;\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;\n",timestamp:1778806800000,name:"20260515010000_memory_fts"},{sql:"CREATE TABLE `task` (\n `id` text NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `parent_task_id` text,\n `kind` text NOT NULL DEFAULT 'user',\n `status` text NOT NULL,\n `focus` integer NOT NULL DEFAULT 0,\n `summary` text NOT NULL,\n `created_at` integer NOT NULL,\n `last_event_at` integer NOT NULL,\n `ended_at` integer,\n `cleanup_after` integer,\n PRIMARY KEY (`session_id`, `id`)\n);--> statement-breakpoint\nCREATE INDEX `task_session_idx` ON `task` (`session_id`);--> statement-breakpoint\nCREATE INDEX `task_parent_idx` ON `task` (`session_id`, `parent_task_id`);--> statement-breakpoint\nCREATE INDEX `task_status_idx` ON `task` (`status`);--> statement-breakpoint\nCREATE INDEX `task_kind_idx` ON `task` (`kind`);--> statement-breakpoint\nCREATE UNIQUE INDEX `task_focus_per_session_idx` ON `task` (`session_id`) WHERE focus = 1;--> statement-breakpoint\nCREATE TABLE `task_event` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `task_id` text NOT NULL,\n `at` integer NOT NULL,\n `kind` text NOT NULL,\n `summary` text,\n FOREIGN KEY (`session_id`, `task_id`) REFERENCES `task`(`session_id`, `id`) ON DELETE CASCADE\n);--> statement-breakpoint\nCREATE INDEX `task_event_task_idx` ON `task_event` (`session_id`, `task_id`, `at`);\n",timestamp:1778810400000,name:"20260515020000_user_task"},{sql:"ALTER TABLE `session` ADD `last_checkpoint_message_id` text;\n",timestamp:1779148800000,name:"20260519000000_last_checkpoint_message_id"},{sql:"ALTER TABLE `message` ADD `agent_id` text;--> statement-breakpoint\nCREATE INDEX `message_session_agent_idx` ON `message` (`session_id`,`agent_id`,`id`);\n",timestamp:1779321600000,name:"20260521000000_message_agent_id"},{sql:"DROP TABLE `actor_registry`;--> statement-breakpoint\nCREATE TABLE `actor_registry` (\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `actor_id` text NOT NULL,\n `mode` text NOT NULL,\n `parent_actor_id` text,\n `status` text NOT NULL,\n `agent` text NOT NULL,\n `description` text NOT NULL,\n `context_mode` text NOT NULL,\n `context_watermark` text,\n `background` integer NOT NULL,\n `tools` text,\n `last_turn_time` integer NOT NULL,\n `turn_count` integer NOT NULL DEFAULT 0,\n `error` text,\n `time_completed` integer,\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL,\n PRIMARY KEY (`session_id`, `actor_id`)\n);--> statement-breakpoint\nCREATE INDEX `actor_registry_session_agent_idx` ON `actor_registry` (`session_id`, `agent`);--> statement-breakpoint\nCREATE INDEX `actor_registry_session_parent_idx` ON `actor_registry` (`session_id`, `parent_actor_id`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_idx` ON `actor_registry` (`status`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_last_turn_idx` ON `actor_registry` (`status`, `last_turn_time`);\n",timestamp:1779321660000,name:"20260521000100_actor_registry_v6"},{sql:"DROP TRIGGER IF EXISTS `memory_fts_ai`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_ad`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_au`;--> statement-breakpoint\nDROP TABLE IF EXISTS `memory_fts_idx`;--> statement-breakpoint\nDROP TABLE IF EXISTS `memory_fts`;--> statement-breakpoint\nCREATE TABLE `memory_fts` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `path` text NOT NULL UNIQUE,\n `scope` text NOT NULL,\n `scope_id` text DEFAULT '' NOT NULL,\n `type` text NOT NULL,\n `body` text NOT NULL,\n `fingerprint` text NOT NULL,\n `last_indexed_at` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `memory_fts_scope_idx` ON `memory_fts` (`scope`, `scope_id`);--> statement-breakpoint\nCREATE INDEX `memory_fts_type_idx` ON `memory_fts` (`type`);--> statement-breakpoint\nCREATE VIRTUAL TABLE `memory_fts_idx` USING fts5(\n body,\n content='memory_fts',\n content_rowid='id',\n tokenize='unicode61 remove_diacritics 1'\n);--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ai` AFTER INSERT ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ad` AFTER DELETE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.id;\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_au` AFTER UPDATE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.id;\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;\n",timestamp:1779325200000,name:"20260521010000_memory_fts_v6"},{sql:"-- Fix v6.1 trigger pattern: external content FTS5 vtab requires the 'delete'\n-- magic command to remove OLD body's tokens, NOT a plain DELETE FROM the vtab.\n-- The previous DELETE FROM pattern was contentless-mode syntax misapplied to\n-- external-content mode, leaving stale tokens accumulating until vtab corrupts.\nDROP TRIGGER IF EXISTS `memory_fts_ai`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_ad`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_au`;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ai` AFTER INSERT ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ad` AFTER DELETE ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(`memory_fts_idx`, rowid, body) VALUES('delete', OLD.id, OLD.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_au` AFTER UPDATE ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(`memory_fts_idx`, rowid, body) VALUES('delete', OLD.id, OLD.body);\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;\n",timestamp:1779328800000,name:"20260521020000_memory_fts_triggers"},{sql:"UPDATE `message` SET `agent_id` = 'main' WHERE `agent_id` IS NULL;--> statement-breakpoint\nCREATE TABLE `message_new` (\n `id` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `agent_id` text NOT NULL DEFAULT 'main',\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL,\n `data` text NOT NULL\n);--> statement-breakpoint\nINSERT INTO `message_new` SELECT `id`, `session_id`, COALESCE(`agent_id`, 'main'), `time_created`, `time_updated`, `data` FROM `message`;--> statement-breakpoint\nDROP TABLE `message`;--> statement-breakpoint\nALTER TABLE `message_new` RENAME TO `message`;--> statement-breakpoint\nCREATE INDEX `message_session_time_created_id_idx` ON `message` (`session_id`,`time_created`,`id`);--> statement-breakpoint\nCREATE INDEX `message_session_agent_idx` ON `message` (`session_id`,`agent_id`,`id`);\n",timestamp:1779753600000,name:"20260526000000_agent_id_main"},{sql:"ALTER TABLE `actor_registry` ADD COLUMN `last_outcome` text;--> statement-breakpoint\nALTER TABLE `actor_registry` ADD COLUMN `lifecycle` text NOT NULL DEFAULT 'ephemeral';--> statement-breakpoint\nALTER TABLE `actor_registry` RENAME COLUMN `error` TO `last_error`;--> statement-breakpoint\nUPDATE `actor_registry` SET `last_outcome` = 'success' WHERE `status` = 'completed';--> statement-breakpoint\nUPDATE `actor_registry` SET `last_outcome` = 'failure' WHERE `status` = 'failed';--> statement-breakpoint\nUPDATE `actor_registry` SET `last_outcome` = 'cancelled' WHERE `status` = 'cancelled';--> statement-breakpoint\nUPDATE `actor_registry` SET `status` = 'idle' WHERE `status` IN ('completed','failed','cancelled');--> statement-breakpoint\nUPDATE `actor_registry` SET `lifecycle` = CASE `mode` WHEN 'peer' THEN 'persistent' WHEN 'main' THEN 'persistent' ELSE 'ephemeral' END;\n",timestamp:1779840000000,name:"20260527000000_actor_lifecycle"},{sql:"CREATE TABLE `inbox` (\n `id` text PRIMARY KEY NOT NULL,\n `receiver_session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `receiver_actor_id` text NOT NULL,\n `sender_session_id` text,\n `sender_actor_id` text,\n `type` text NOT NULL DEFAULT 'text',\n `content` text NOT NULL,\n `created_at` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `inbox_receiver_idx` ON `inbox` (`receiver_session_id`,`receiver_actor_id`,`id`);--> statement-breakpoint\nCREATE INDEX `inbox_created_idx` ON `inbox` (`created_at`);\n",timestamp:1779840060000,name:"20260527000100_inbox"},{sql:"-- todo: drop priority column\nALTER TABLE `todo` DROP COLUMN `priority`;\n--> statement-breakpoint\n\n-- task: drop focus-dependent index before dropping its column\nDROP INDEX `task_focus_per_session_idx`;\n--> statement-breakpoint\nDROP INDEX `task_kind_idx`;\n--> statement-breakpoint\nALTER TABLE `task` DROP COLUMN `focus`;\n--> statement-breakpoint\nALTER TABLE `task` DROP COLUMN `kind`;\n--> statement-breakpoint\n\n-- migrate status values: proposed/active -> open\nUPDATE `task` SET `status` = 'open' WHERE `status` IN ('proposed', 'active');\n",timestamp:1780012800000,name:"20260529000000_task_todo_redesign"},{sql:"ALTER TABLE `task` ADD COLUMN `owner` text;\n",timestamp:1780444800000,name:"20260603000000_task_in_progress_owner"},{sql:"CREATE TABLE `workflow_run` (\n `id` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `name` text NOT NULL,\n `status` text NOT NULL,\n `running` integer NOT NULL DEFAULT 0,\n `succeeded` integer NOT NULL DEFAULT 0,\n `failed` integer NOT NULL DEFAULT 0,\n `current_phase` text,\n `parent_actor_id` text,\n `args` text,\n `error` text,\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `workflow_run_session_idx` ON `workflow_run` (`session_id`);--> statement-breakpoint\nCREATE INDEX `workflow_run_status_idx` ON `workflow_run` (`status`);\n",timestamp:1780444800000,name:"20260603000000_workflow_run"},{sql:"ALTER TABLE `workflow_run` ADD COLUMN `script_sha` text;\n",timestamp:1780531200000,name:"20260604000000_workflow_script_sha"},{sql:"CREATE TABLE `claude_import` (\n `source_uuid` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL,\n `source_path` text NOT NULL,\n `source_mtime` integer NOT NULL,\n `time_imported` integer NOT NULL\n);\n",timestamp:1780876800000,name:"20260608000000_claude_import"},{sql:"ALTER TABLE `claude_import` ADD `message_ids` text;\n",timestamp:1780880400000,name:"20260608010000_claude_import_message_ids"},{sql:"CREATE TABLE `history_fts` (\n `part_id` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL,\n `message_id` text NOT NULL,\n `project_id` text NOT NULL,\n `kind` text NOT NULL,\n `tool_name` text,\n `body` text NOT NULL,\n `time_created` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `history_fts_session_idx` ON `history_fts` (`session_id`, `time_created`);--> statement-breakpoint\nCREATE INDEX `history_fts_project_idx` ON `history_fts` (`project_id`, `time_created`);--> statement-breakpoint\nCREATE INDEX `history_fts_message_idx` ON `history_fts` (`message_id`);--> statement-breakpoint\nCREATE VIRTUAL TABLE `history_fts_idx` USING fts5(\n body,\n content='history_fts',\n content_rowid='rowid',\n tokenize='unicode61 remove_diacritics 1'\n);--> statement-breakpoint\nCREATE TRIGGER `history_fts_ai` AFTER INSERT ON `history_fts` BEGIN\n INSERT INTO `history_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `history_fts_ad` AFTER DELETE ON `history_fts` BEGIN\n INSERT INTO `history_fts_idx`(`history_fts_idx`, rowid, body) VALUES('delete', OLD.rowid, OLD.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `history_fts_au` AFTER UPDATE ON `history_fts` BEGIN\n INSERT INTO `history_fts_idx`(`history_fts_idx`, rowid, body) VALUES('delete', OLD.rowid, OLD.body);\n INSERT INTO `history_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;\n",timestamp:1780963200000,name:"20260609000000_history_fts"},{sql:"ALTER TABLE `workflow_run` ADD COLUMN `agent_timeout_ms` integer;\n",timestamp:1781046000000,name:"20260609230000_workflow_agent_timeout"},{sql:"CREATE TABLE `external_import` (\n `source` text NOT NULL,\n `source_key` text NOT NULL,\n `session_id` text NOT NULL,\n `source_path` text NOT NULL,\n `source_mtime` integer NOT NULL,\n `time_imported` integer NOT NULL,\n `message_ids` text,\n PRIMARY KEY (`source`, `source_key`)\n);\n\nINSERT INTO `external_import` (`source`, `source_key`, `session_id`, `source_path`, `source_mtime`, `time_imported`, `message_ids`)\nSELECT 'cc', `source_uuid`, `session_id`, `source_path`, `source_mtime`, `time_imported`, `message_ids`\nFROM `claude_import`;\n\nDROP TABLE `claude_import`;\n",timestamp:1781222400000,name:"20260612000000_external_import"}];if(o.length>0){if(Yt.info("applying migrations",{count:o.length,mode:"bundled"}),nn.QITQODE_SKIP_MIGRATIONS)for(let i of o)i.sql="select 1;";ho(n,o)}return n});function He(){Mn().$client.close(),Mn.reset()}var Vn=un.create("database");function Me(n){try{return n(Vn.use().tx)}catch(o){if(o instanceof un.NotFound){let i=[],_=Vn.provide({effects:i,tx:Mn()},()=>n(Mn()));for(let e of i)e();return _}throw o}}function xe(n){let o=vn.bind(n);try{Vn.use().effects.push(o)}catch{o()}}function Ke(n,o){try{return n(Vn.use().tx)}catch(i){if(i instanceof un.NotFound){let _=[],e=vn.bind((p)=>Vn.provide({tx:p,effects:_},()=>n(p))),T=Mn().transaction(e,{behavior:o?.behavior});for(let p of _)p();return T}throw i}}var jt={};$n(jt,{layer:()=>ct,defaultLayer:()=>we,Service:()=>yo,NotFoundError:()=>Yo});import v from"path";var xn={};$n(xn,{layer:()=>wt,defaultLayer:()=>Se,Service:()=>mo,Git:()=>xn});var Re=["--no-optional-locks","-c","core.autocrlf=false","-c","core.fsmonitor=false","-c","core.longpaths=true","-c","core.symlinks=true","-c","core.quotepath=false"],qn=(n)=>n.text().trim(),Uo=(n)=>n.split("\x00").filter(Boolean),Ee=(n)=>({exitCode:1,text:()=>"",stdout:Buffer.alloc(0),stderr:Buffer.from(n instanceof Error?n.message:String(n))}),kt=(n)=>{if(n==="??")return"added";if(n.includes("U"))return"modified";if(n.includes("A")&&!n.includes("D"))return"added";if(n.includes("D")&&!n.includes("A"))return"deleted";return"modified"};class mo extends Dn.Service()("@qitqode/Git"){}var wt=a.effect(mo,r.gen(function*(){let n=yield*no.ChildProcessSpawner,o=r.fn("Git.run")(function*(u,N){let m=Vt.make("git",[...Re,...u],{cwd:N.cwd,env:N.env,extendEnv:!0,stdin:"ignore",stdout:"pipe",stderr:"pipe"}),f=yield*qt(n,m);return{exitCode:f.code,text:()=>f.text,stdout:Buffer.from(f.text),stderr:Buffer.from(f.stderr)}},r.scoped,r.catch((u)=>r.succeed(Ee(u)))),i=r.fn("Git.text")(function*(u,N){return(yield*o(u,N)).text()}),_=r.fn("Git.lines")(function*(u,N){return(yield*i(u,N)).split(/\r?\n/).map((m)=>m.trim()).filter(Boolean)}),e=r.fnUntraced(function*(u){return yield*_(["for-each-ref","--format=%(refname:short)","refs/heads"],{cwd:u})}),T=r.fnUntraced(function*(u,N){let m=yield*o(["config","init.defaultBranch"],{cwd:u}),f=qn(m);if(!f||!N.includes(f))return;return{name:f,ref:f}}),p=r.fnUntraced(function*(u){let N=yield*_(["remote"],{cwd:u});if(N.includes("origin"))return"origin";if(N.length===1)return N[0];if(N.includes("upstream"))return"upstream";return N[0]}),O=r.fn("Git.branch")(function*(u){let N=yield*o(["symbolic-ref","--quiet","--short","HEAD"],{cwd:u});if(N.exitCode!==0)return;return qn(N)||void 0}),H=r.fn("Git.prefix")(function*(u){let N=yield*o(["rev-parse","--show-prefix"],{cwd:u});if(N.exitCode!==0)return"";return qn(N)}),E=r.fn("Git.defaultBranch")(function*(u){let N=yield*p(u);if(N){let t=yield*o(["symbolic-ref",`refs/remotes/${N}/HEAD`],{cwd:u});if(t.exitCode===0){let y=qn(t).replace(/^refs\/remotes\//,""),Q=y.startsWith(`${N}/`)?y.slice(`${N}/`.length):"";if(Q)return{name:Q,ref:y}}}let m=yield*e(u),f=yield*T(u,m);if(f)return f;if(m.includes("main"))return{name:"main",ref:"main"};if(m.includes("master"))return{name:"master",ref:"master"}}),K=r.fn("Git.hasHead")(function*(u){return(yield*o(["rev-parse","--verify","HEAD"],{cwd:u})).exitCode===0}),R=r.fn("Git.mergeBase")(function*(u,N,m="HEAD"){let f=yield*o(["merge-base",N,m],{cwd:u});if(f.exitCode!==0)return;return qn(f)||void 0}),S=r.fn("Git.show")(function*(u,N,m,f=""){let t=f?`${f}${m}`:m,y=yield*o(["show",`${N}:${t}`],{cwd:u});if(y.exitCode!==0)return"";if(y.stdout.includes(0))return"";return y.text()}),B=r.fn("Git.status")(function*(u){return Uo(yield*i(["status","--porcelain=v1","--untracked-files=all","--no-renames","-z","--","."],{cwd:u})).flatMap((N)=>{let m=N.slice(3);if(!m)return[];let f=N.slice(0,2);return[{file:m,code:f,status:kt(f)}]})}),l=r.fn("Git.diff")(function*(u,N){let m=Uo(yield*i(["diff","--no-ext-diff","--no-renames","--name-status","-z",N,"--","."],{cwd:u}));return m.flatMap((f,t)=>{if(t%2!==0)return[];let y=m[t+1];if(!f||!y)return[];return[{file:y,code:f,status:kt(f)}]})}),d=r.fn("Git.stats")(function*(u,N){return Uo(yield*i(["diff","--no-ext-diff","--no-renames","--numstat","-z",N,"--","."],{cwd:u})).flatMap((m)=>{let f=m.indexOf("\t"),t=m.indexOf("\t",f+1);if(f===-1||t===-1)return[];let y=m.slice(t+1);if(!y)return[];let Q=m.slice(0,f),L=m.slice(f+1,t),$=Q==="-"?0:Number.parseInt(Q||"0",10),U=L==="-"?0:Number.parseInt(L||"0",10);return[{file:y,additions:Number.isFinite($)?$:0,deletions:Number.isFinite(U)?U:0}]})});return mo.of({run:o,branch:O,prefix:H,defaultBranch:E,hasHead:K,mergeBase:R,show:S,status:B,diff:l,stats:d})})),Se=wt.pipe(a.provide(oo));var Tn=V.create({service:"storage"}),Yo=eo.create("NotFoundError",b.object({message:b.string()})),We=s.Struct({path:s.optional(s.Struct({root:s.optional(s.String)}))}),Pe=s.Struct({id:s.String}),Ue=s.Struct({id:s.String}),Ze=s.Struct({additions:s.Number,deletions:s.Number}),Xe=s.Struct({id:s.String,projectID:s.String,summary:s.Struct({diffs:s.Array(Ze)})}),Ye=s.decodeUnknownOption(We),ve=s.decodeUnknownOption(Pe),ze=s.decodeUnknownOption(Ue),ke=s.decodeUnknownOption(Xe);class yo extends Dn.Service()("@qitqode/Storage"){}function Ve(n,o){return v.join(n,...o)+".json"}function Zo(n){if(!n||typeof n!=="object")return!1;if("code"in n&&n.code==="ENOENT")return!0;if("reason"in n&&n.reason&&typeof n.reason==="object"&&"_tag"in n.reason)return n.reason._tag==="NotFound";return!1}function qe(n){let o=Number.parseInt(n,10);return Number.isNaN(o)?0:o}var Ft=[r.fn("Storage.migration.1")(function*(n,o,i){let _=v.resolve(n,"../project");if(!(yield*o.isDir(_)))return;let e=yield*o.glob("*",{cwd:_,include:"all"});for(let T of e){let p=v.join(_,T);if(!(yield*o.isDir(p)))continue;Tn.info(`migrating project ${T}`);let O=T,H="/";if(O!=="global"){for(let R of yield*o.glob("storage/session/message/*/*.json",{cwd:p,absolute:!0})){let S=Ye(yield*o.readJson(R),{onExcessProperty:"preserve"}),B=wn.isSome(S)?S.value.path?.root:void 0;if(!B)continue;H=B;break}if(!H)continue;if(!(yield*o.isDir(H)))continue;let E=yield*i.run(["rev-list","--max-parents=0","--all"],{cwd:H}),[K]=E.text().split(`
|
|
5
|
+
`).filter(Boolean).map((R)=>R.trim()).toSorted();if(!K)continue;O=K,yield*o.writeWithDirs(v.join(n,"project",O+".json"),JSON.stringify({id:K,vcs:"git",worktree:H,time:{created:Date.now(),initialized:Date.now()}},null,2)),Tn.info(`migrating sessions for project ${O}`);for(let R of yield*o.glob("storage/session/info/*.json",{cwd:p,absolute:!0})){let S=v.join(n,"session",O,v.basename(R));Tn.info("copying",{sessionFile:R,dest:S});let B=yield*o.readJson(R),l=ve(B,{onExcessProperty:"preserve"});if(yield*o.writeWithDirs(S,JSON.stringify(B,null,2)),wn.isNone(l))continue;Tn.info(`migrating messages for session ${l.value.id}`);for(let d of yield*o.glob(`storage/session/message/${l.value.id}/*.json`,{cwd:p,absolute:!0})){let u=v.join(n,"message",l.value.id,v.basename(d));Tn.info("copying",{msgFile:d,dest:u});let N=yield*o.readJson(d),m=ze(N,{onExcessProperty:"preserve"});if(yield*o.writeWithDirs(u,JSON.stringify(N,null,2)),wn.isNone(m))continue;Tn.info(`migrating parts for message ${m.value.id}`);for(let f of yield*o.glob(`storage/session/part/${l.value.id}/${m.value.id}/*.json`,{cwd:p,absolute:!0})){let t=v.join(n,"part",m.value.id,v.basename(f)),y=yield*o.readJson(f);Tn.info("copying",{partFile:f,dest:t}),yield*o.writeWithDirs(t,JSON.stringify(y,null,2))}}}}}}),r.fn("Storage.migration.2")(function*(n,o){for(let i of yield*o.glob("session/*/*.json",{cwd:n,absolute:!0})){let _=yield*o.readJson(i),e=ke(_,{onExcessProperty:"preserve"});if(wn.isNone(e))continue;let T=e.value.summary.diffs;yield*o.writeWithDirs(v.join(n,"session_diff",e.value.id+".json"),JSON.stringify(T,null,2)),yield*o.writeWithDirs(v.join(n,"session",e.value.projectID,e.value.id+".json"),JSON.stringify({..._,summary:{additions:T.reduce((p,O)=>p+O.additions,0),deletions:T.reduce((p,O)=>p+O.deletions,0)}},null,2))}})],ct=a.effect(yo,r.gen(function*(){let n=yield*q.Service,o=yield*xn.Service,i=yield*Xo.make({lookup:()=>Kn.make(),idleTimeToLive:0}),_=yield*r.cached(r.gen(function*(){let B=v.join(Bn.Path.data,"storage"),l=v.join(B,"migration"),d=yield*n.readFileString(l).pipe(r.map(qe),r.catchIf(Zo,()=>r.succeed(0)),r.orElseSucceed(()=>0));for(let u=d;u<Ft.length;u++){Tn.info("running migration",{index:u});let N=Ft[u],m=yield*r.exit(N(B,n,o));if(kn.isFailure(m)){Tn.error("failed to run migration",{index:u,cause:m.cause});break}yield*n.writeWithDirs(l,String(u+1))}return{dir:B}})),e=(B)=>r.fail(new Yo({message:`Resource not found: ${B}`})),T=(B,l)=>l.pipe(r.catchIf(Zo,()=>e(B))),p=r.fnUntraced(function*(B,l){yield*n.writeWithDirs(B,JSON.stringify(l,null,2))}),O=(B,l)=>r.scoped(r.gen(function*(){let d=Ve((yield*_).dir,B);return yield*l(d,yield*Xo.get(i,d))})),H=r.fn("Storage.remove")(function*(B){yield*O(B,(l,d)=>Kn.withWriteLock(d,n.remove(l).pipe(r.catchIf(Zo,()=>r.void))))}),E=(B)=>r.gen(function*(){return yield*O(B,(d,u)=>Kn.withReadLock(u,T(d,n.readJson(d))))}),K=(B,l)=>r.gen(function*(){return yield*O(B,(u,N)=>Kn.withWriteLock(N,r.gen(function*(){let m=yield*T(u,n.readJson(u));return l(m),yield*p(u,m),m})))}),R=(B,l)=>r.gen(function*(){yield*O(B,(d,u)=>Kn.withWriteLock(u,p(d,l)))}),S=r.fn("Storage.list")(function*(B){let l=(yield*_).dir,d=v.join(l,...B);return(yield*n.glob("**/*",{cwd:d,include:"file"}).pipe(r.catch(()=>r.succeed([])))).map((N)=>[...B,...N.slice(0,-5).split(v.sep)]).toSorted((N,m)=>N.join("/").localeCompare(m.join("/")))});return yo.of({remove:H,read:E,update:K,write:R,list:S})})),we=ct.pipe(a.provide(q.defaultLayer),a.provide(xn.defaultLayer));export{Un as nl,_t as ol,Zn as pl,mn as ql,C as rl,gn as sl,fo as tl,zo as ul,ko as vl,Vo as wl,qo as xl,Fo as yl,uo as zl,Ln as Al,xn as Bl,Yo as Cl,jt as Dl,F as El,Ho as Fl,At as Gl,_e as Hl,Ct as Il,Ae as Jl,on as Kl,vn as Ll,de as Ml,Pt as Nl,Ut as Ol};
|