@jayjiang/open-cc 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +8 -0
- package/README.md +107 -0
- package/dist/chunk-00dxqxqj.js +227 -0
- package/dist/chunk-01p8hhsp.js +154 -0
- package/dist/chunk-02wy0m47.js +152 -0
- package/dist/chunk-0465tnzh.js +110 -0
- package/dist/chunk-054mjk62.js +678 -0
- package/dist/chunk-06saje2v.js +39 -0
- package/dist/chunk-0731m51q.js +8 -0
- package/dist/chunk-09y0jvtm.js +165 -0
- package/dist/chunk-0fkqze0v.js +113 -0
- package/dist/chunk-0hn525br.js +1920 -0
- package/dist/chunk-0hneh9ha.js +123 -0
- package/dist/chunk-0paqc2yw.js +15 -0
- package/dist/chunk-0rkbrabt.js +32 -0
- package/dist/chunk-0scs4rpx.js +96 -0
- package/dist/chunk-0vkfrmqm.js +690 -0
- package/dist/chunk-0w2byc95.js +38 -0
- package/dist/chunk-0xjaqda8.js +1124 -0
- package/dist/chunk-0y3vcsv4.js +92 -0
- package/dist/chunk-0yb4dz9c.js +26840 -0
- package/dist/chunk-10fdxge0.js +121 -0
- package/dist/chunk-1141xmr4.js +8 -0
- package/dist/chunk-14vffdmg.js +38 -0
- package/dist/chunk-178ykx7k.js +1493 -0
- package/dist/chunk-1bhva2z9.js +128 -0
- package/dist/chunk-1c8z1b5v.js +16 -0
- package/dist/chunk-1cbn5kxf.js +7 -0
- package/dist/chunk-1che51a5.js +1585 -0
- package/dist/chunk-1h2famwb.js +49 -0
- package/dist/chunk-1jrkpnbn.js +71 -0
- package/dist/chunk-1k4j1xcf.js +154 -0
- package/dist/chunk-1mm9d8p4.js +70 -0
- package/dist/chunk-1n3gnn2t.js +41 -0
- package/dist/chunk-1nqaq1rs.js +654 -0
- package/dist/chunk-1p2j9g3w.js +998 -0
- package/dist/chunk-1p7jfcee.js +533 -0
- package/dist/chunk-1pg8s12r.js +338 -0
- package/dist/chunk-1qjb22fx.js +109 -0
- package/dist/chunk-1yzc16qa.js +39 -0
- package/dist/chunk-20gm89wf.js +208 -0
- package/dist/chunk-238g70xa.js +36 -0
- package/dist/chunk-26k0324b.js +751 -0
- package/dist/chunk-27xc1csx.js +104 -0
- package/dist/chunk-2a42s11t.js +412 -0
- package/dist/chunk-2bhq4emw.js +10476 -0
- package/dist/chunk-2eykm0j0.js +20 -0
- package/dist/chunk-2gzv8nrw.js +205 -0
- package/dist/chunk-2k995y2x.js +880 -0
- package/dist/chunk-2kpzaa7w.js +401 -0
- package/dist/chunk-2nayx6q1.js +63 -0
- package/dist/chunk-2qhs9n36.js +151 -0
- package/dist/chunk-2s5f2nnw.js +603 -0
- package/dist/chunk-2y54j9ew.js +174394 -0
- package/dist/chunk-2zcaw1jd.js +2343 -0
- package/dist/chunk-30chpfyc.js +15275 -0
- package/dist/chunk-30k39xd2.js +28 -0
- package/dist/chunk-30rst83v.js +168 -0
- package/dist/chunk-36z5enc4.js +160 -0
- package/dist/chunk-3c25bcsw.js +17 -0
- package/dist/chunk-3c4qja3e.js +63 -0
- package/dist/chunk-3ccx8k84.js +102 -0
- package/dist/chunk-3envnthj.js +157 -0
- package/dist/chunk-3h8a89gy.js +46 -0
- package/dist/chunk-3kadbep2.js +6956 -0
- package/dist/chunk-3kd79cnk.js +15 -0
- package/dist/chunk-3m45xtza.js +1188 -0
- package/dist/chunk-3q50xe1j.js +17 -0
- package/dist/chunk-3w6s9m5w.js +16 -0
- package/dist/chunk-3x0408tc.js +42 -0
- package/dist/chunk-3z7ae04g.js +372 -0
- package/dist/chunk-40tedt0y.js +275 -0
- package/dist/chunk-44q8kegv.js +811 -0
- package/dist/chunk-47gy6qkp.js +328 -0
- package/dist/chunk-495d85x1.js +8066 -0
- package/dist/chunk-4axcksrv.js +129 -0
- package/dist/chunk-4e1271a8.js +106 -0
- package/dist/chunk-4g3v8y12.js +23 -0
- package/dist/chunk-4g5mrzm0.js +220 -0
- package/dist/chunk-4jm600zv.js +13 -0
- package/dist/chunk-4n989n6h.js +153 -0
- package/dist/chunk-4qedx22a.js +44 -0
- package/dist/chunk-4rze71rx.js +116 -0
- package/dist/chunk-4wbhvcag.js +91 -0
- package/dist/chunk-4zfkzkt6.js +37 -0
- package/dist/chunk-55wgxwa9.js +13877 -0
- package/dist/chunk-56ta4h0b.js +154 -0
- package/dist/chunk-58a0x39g.js +89 -0
- package/dist/chunk-5dbk24zg.js +890 -0
- package/dist/chunk-5gzg4q1k.js +99 -0
- package/dist/chunk-5k2gdxnr.js +336 -0
- package/dist/chunk-5kp252z6.js +202 -0
- package/dist/chunk-5p2ssw3d.js +825 -0
- package/dist/chunk-5w33j8gy.js +1580 -0
- package/dist/chunk-5ywjzvm8.js +61 -0
- package/dist/chunk-5ztxx8gd.js +80 -0
- package/dist/chunk-62vwr0y5.js +117 -0
- package/dist/chunk-6b8ksqmf.js +1153 -0
- package/dist/chunk-6bd8brc4.js +48 -0
- package/dist/chunk-6cpqmd4r.js +132 -0
- package/dist/chunk-6dj5t602.js +341 -0
- package/dist/chunk-6g62sjpf.js +328 -0
- package/dist/chunk-6gr3c3w9.js +378 -0
- package/dist/chunk-6h9n8qbr.js +1170 -0
- package/dist/chunk-6kpbgc5w.js +23 -0
- package/dist/chunk-6n2qgm9v.js +8 -0
- package/dist/chunk-6n6jfmce.js +2833 -0
- package/dist/chunk-6q2x8zeg.js +802 -0
- package/dist/chunk-6tnekwtp.js +849 -0
- package/dist/chunk-6tq2v3rk.js +186 -0
- package/dist/chunk-6vphqqd1.js +27 -0
- package/dist/chunk-6wkdqk81.js +444 -0
- package/dist/chunk-7226mgjt.js +195 -0
- package/dist/chunk-72fey14y.js +565 -0
- package/dist/chunk-73fgm72g.js +698 -0
- package/dist/chunk-73fhat5j.js +212 -0
- package/dist/chunk-73rpbt04.js +1947 -0
- package/dist/chunk-743znc5c.js +56 -0
- package/dist/chunk-760252na.js +101 -0
- package/dist/chunk-76t2h5v2.js +495 -0
- package/dist/chunk-7739pg2c.js +4261 -0
- package/dist/chunk-789khc7a.js +96 -0
- package/dist/chunk-78mma1s7.js +88 -0
- package/dist/chunk-7aw745vx.js +40175 -0
- package/dist/chunk-7azp8c8y.js +584 -0
- package/dist/chunk-7m2nd8da.js +110 -0
- package/dist/chunk-7pemewz2.js +726 -0
- package/dist/chunk-7rjyn5d3.js +125 -0
- package/dist/chunk-7v0wq9nk.js +93 -0
- package/dist/chunk-7wm5s02e.js +216 -0
- package/dist/chunk-83hfzbx3.js +10 -0
- package/dist/chunk-84k64e4a.js +1646 -0
- package/dist/chunk-87jfpcm7.js +438 -0
- package/dist/chunk-8btm871b.js +42 -0
- package/dist/chunk-8hbbzet5.js +34 -0
- package/dist/chunk-8hq5kk3y.js +44 -0
- package/dist/chunk-8j6vs75t.js +256 -0
- package/dist/chunk-8ngxagxq.js +18 -0
- package/dist/chunk-8nsem424.js +110 -0
- package/dist/chunk-8pf73pc8.js +169 -0
- package/dist/chunk-8tnsngw2.js +31 -0
- package/dist/chunk-8y12jxg8.js +10 -0
- package/dist/chunk-8ymf4e6z.js +48 -0
- package/dist/chunk-90wp6wez.js +10510 -0
- package/dist/chunk-95dt8mpg.js +603 -0
- package/dist/chunk-95rj8m4e.js +130 -0
- package/dist/chunk-9ebygqen.js +89 -0
- package/dist/chunk-9gbamk79.js +93 -0
- package/dist/chunk-9tkq3g56.js +642 -0
- package/dist/chunk-a05hje2h.js +105 -0
- package/dist/chunk-a2krhf3c.js +90 -0
- package/dist/chunk-a6q9rehn.js +182 -0
- package/dist/chunk-a78b3pvt.js +71 -0
- package/dist/chunk-a8ejc632.js +3094 -0
- package/dist/chunk-a9vdeb6y.js +258 -0
- package/dist/chunk-a9zh40sj.js +48 -0
- package/dist/chunk-ab59azrr.js +480 -0
- package/dist/chunk-accxhkm6.js +88 -0
- package/dist/chunk-adzd8pzb.js +1095 -0
- package/dist/chunk-ae76ded0.js +30 -0
- package/dist/chunk-aftppv3p.js +691 -0
- package/dist/chunk-agmw1vmf.js +725 -0
- package/dist/chunk-an5cb1vx.js +16 -0
- package/dist/chunk-b1s11z4y.js +63 -0
- package/dist/chunk-b2rkh01x.js +443 -0
- package/dist/chunk-b4w4argn.js +1551 -0
- package/dist/chunk-b4wg70y1.js +54 -0
- package/dist/chunk-b5b7h81y.js +7189 -0
- package/dist/chunk-b9k5cs09.js +50 -0
- package/dist/chunk-bapy5rc8.js +40 -0
- package/dist/chunk-bda3gxxz.js +246 -0
- package/dist/chunk-bhdt6k7w.js +15 -0
- package/dist/chunk-bm1qb16p.js +17 -0
- package/dist/chunk-bp0dnrwg.js +281 -0
- package/dist/chunk-bqfnp99q.js +477 -0
- package/dist/chunk-bs6keys0.js +158 -0
- package/dist/chunk-bsbmmfyt.js +17 -0
- package/dist/chunk-btkettbr.js +166 -0
- package/dist/chunk-bwgde7nf.js +37 -0
- package/dist/chunk-c1zc58pw.js +280 -0
- package/dist/chunk-c2g96ga2.js +184 -0
- package/dist/chunk-c3z7ptb2.js +21933 -0
- package/dist/chunk-c8vn3ynx.js +349 -0
- package/dist/chunk-cdm0k2n0.js +115 -0
- package/dist/chunk-cdz5yb0r.js +57 -0
- package/dist/chunk-cfv996bs.js +22 -0
- package/dist/chunk-cg788ab0.js +100 -0
- package/dist/chunk-cgfdkzhb.js +12 -0
- package/dist/chunk-cp76dsdp.js +386 -0
- package/dist/chunk-cr6t6rth.js +306 -0
- package/dist/chunk-cvp5vayb.js +31 -0
- package/dist/chunk-cwehsmj5.js +114 -0
- package/dist/chunk-cy2hswr1.js +15 -0
- package/dist/chunk-d2rzy2p0.js +42 -0
- package/dist/chunk-d3v2fbay.js +106 -0
- package/dist/chunk-dc4eha8a.js +243 -0
- package/dist/chunk-dcz167d6.js +73 -0
- package/dist/chunk-de55jjre.js +106 -0
- package/dist/chunk-dfx733j3.js +650 -0
- package/dist/chunk-dgqrcy74.js +48 -0
- package/dist/chunk-dj6dk19k.js +55 -0
- package/dist/chunk-dn2xcmc4.js +173 -0
- package/dist/chunk-dndehvfr.js +57 -0
- package/dist/chunk-dnh7jtpb.js +37 -0
- package/dist/chunk-dnwzz9f7.js +88 -0
- package/dist/chunk-dv1wfr85.js +6373 -0
- package/dist/chunk-dwq5rs3q.js +62 -0
- package/dist/chunk-dz8exe78.js +91 -0
- package/dist/chunk-e4rzw1sd.js +606 -0
- package/dist/chunk-e6rrwzv0.js +463 -0
- package/dist/chunk-e6t9kpzq.js +145 -0
- package/dist/chunk-e7c8ypwc.js +287 -0
- package/dist/chunk-e9nkfs4e.js +738 -0
- package/dist/chunk-eaf7c8ck.js +537 -0
- package/dist/chunk-ebyr6p77.js +115 -0
- package/dist/chunk-edfv7pme.js +104 -0
- package/dist/chunk-eh474zhj.js +59 -0
- package/dist/chunk-er8ckwzt.js +140 -0
- package/dist/chunk-ev5p07yh.js +144 -0
- package/dist/chunk-ewadzrm8.js +103 -0
- package/dist/chunk-f2mhrmww.js +62 -0
- package/dist/chunk-f2zhqnb6.js +69 -0
- package/dist/chunk-f5ma3nh5.js +3436 -0
- package/dist/chunk-f63q7vx7.js +756 -0
- package/dist/chunk-fbv4apne.js +51 -0
- package/dist/chunk-fcna95wg.js +113 -0
- package/dist/chunk-fdvcpaz3.js +163 -0
- package/dist/chunk-fgc0q2b2.js +3354 -0
- package/dist/chunk-fm2jvsk7.js +87 -0
- package/dist/chunk-ft7fs35e.js +282 -0
- package/dist/chunk-fyc5fepv.js +10 -0
- package/dist/chunk-g0j0t6qk.js +26 -0
- package/dist/chunk-g0nbec9m.js +32 -0
- package/dist/chunk-g1fdv1kb.js +86 -0
- package/dist/chunk-g338npwr.js +1061 -0
- package/dist/chunk-g3t0act8.js +8 -0
- package/dist/chunk-g6qddbvf.js +1391 -0
- package/dist/chunk-ga5faygf.js +61 -0
- package/dist/chunk-gac6nzhc.js +90 -0
- package/dist/chunk-gck2cswd.js +862 -0
- package/dist/chunk-gntr3b25.js +40683 -0
- package/dist/chunk-gq5bbtme.js +456 -0
- package/dist/chunk-gyj242zr.js +20 -0
- package/dist/chunk-h0qngp9w.js +157 -0
- package/dist/chunk-h1xnvnye.js +524 -0
- package/dist/chunk-h3mhfamg.js +60 -0
- package/dist/chunk-h6s1tx0e.js +250 -0
- package/dist/chunk-h7qb4hyj.js +70 -0
- package/dist/chunk-h8qd1gw2.js +106 -0
- package/dist/chunk-hakdhagh.js +16606 -0
- package/dist/chunk-hcdt34n4.js +143 -0
- package/dist/chunk-hh7cmy4k.js +20 -0
- package/dist/chunk-hk9xz7gk.js +118 -0
- package/dist/chunk-hqmz36b3.js +552 -0
- package/dist/chunk-hs8ph4p8.js +8 -0
- package/dist/chunk-hsq4vtjy.js +92 -0
- package/dist/chunk-hzhd0p1y.js +104 -0
- package/dist/chunk-hzhe8ygc.js +547 -0
- package/dist/chunk-j0tqbsh7.js +176 -0
- package/dist/chunk-j1s1jvad.js +346 -0
- package/dist/chunk-j2k4p94p.js +55 -0
- package/dist/chunk-j3a4p81y.js +184 -0
- package/dist/chunk-j595yd4h.js +439 -0
- package/dist/chunk-j64ga6ta.js +8035 -0
- package/dist/chunk-j7qwxra8.js +2335 -0
- package/dist/chunk-j98f65zv.js +789 -0
- package/dist/chunk-jd32zbps.js +15 -0
- package/dist/chunk-jdgeec04.js +4249 -0
- package/dist/chunk-jdt5s5k7.js +62 -0
- package/dist/chunk-jeaek018.js +97 -0
- package/dist/chunk-jkhvm8yk.js +104 -0
- package/dist/chunk-jmxaze30.js +780 -0
- package/dist/chunk-jne71s1f.js +104 -0
- package/dist/chunk-jnhkref0.js +30 -0
- package/dist/chunk-jpgr7zfs.js +95 -0
- package/dist/chunk-jqp0q5nk.js +339 -0
- package/dist/chunk-jtqgnyaq.js +1317 -0
- package/dist/chunk-jx817w05.js +11 -0
- package/dist/chunk-jynzr5w9.js +71 -0
- package/dist/chunk-jzmz18nn.js +65 -0
- package/dist/chunk-k0p9w03v.js +4957 -0
- package/dist/chunk-k1jnpyj9.js +155 -0
- package/dist/chunk-k445en8h.js +102 -0
- package/dist/chunk-k62k13ya.js +81 -0
- package/dist/chunk-kf8kjmfv.js +821 -0
- package/dist/chunk-kgn1nfg9.js +468 -0
- package/dist/chunk-khmz14d4.js +38 -0
- package/dist/chunk-kjhmt6ba.js +100 -0
- package/dist/chunk-kkrz2zw2.js +122 -0
- package/dist/chunk-kv1ryvtm.js +176 -0
- package/dist/chunk-kwekc97v.js +18 -0
- package/dist/chunk-kyvwf342.js +65 -0
- package/dist/chunk-m0g3xv72.js +266 -0
- package/dist/chunk-m26twd8m.js +277 -0
- package/dist/chunk-m4bc15mz.js +229 -0
- package/dist/chunk-m9t8j37k.js +253 -0
- package/dist/chunk-mb2gpwwf.js +432 -0
- package/dist/chunk-mezwt1bt.js +306 -0
- package/dist/chunk-mfm83xn5.js +84 -0
- package/dist/chunk-mn7870fh.js +4389 -0
- package/dist/chunk-mr9df5v8.js +722 -0
- package/dist/chunk-mt25echc.js +6157 -0
- package/dist/chunk-mwrr6zbb.js +55 -0
- package/dist/chunk-mywpbwad.js +198 -0
- package/dist/chunk-mzdtkccs.js +125 -0
- package/dist/chunk-mzn0z9d3.js +691 -0
- package/dist/chunk-n0qaeaa5.js +256 -0
- package/dist/chunk-n128bzxs.js +2739 -0
- package/dist/chunk-n1erf6kh.js +22820 -0
- package/dist/chunk-n4nbgkvd.js +520 -0
- package/dist/chunk-n5gkdn9v.js +120 -0
- package/dist/chunk-n7ttdtk0.js +641 -0
- package/dist/chunk-n8b1njwb.js +208 -0
- package/dist/chunk-nek12gtk.js +94 -0
- package/dist/chunk-nerv0jvx.js +74 -0
- package/dist/chunk-nka1g8f4.js +773 -0
- package/dist/chunk-nm2cncrq.js +336 -0
- package/dist/chunk-nq0fxyxh.js +752 -0
- package/dist/chunk-nrnkshv2.js +192 -0
- package/dist/chunk-nsqma629.js +128 -0
- package/dist/chunk-nt837qt9.js +21 -0
- package/dist/chunk-nttf3k0r.js +2643 -0
- package/dist/chunk-nx638j6h.js +268 -0
- package/dist/chunk-nx7s0zn5.js +375 -0
- package/dist/chunk-p0hff8zy.js +8871 -0
- package/dist/chunk-p2816w9z.js +1486 -0
- package/dist/chunk-p2d5nh3g.js +342 -0
- package/dist/chunk-p57bz7nv.js +55 -0
- package/dist/chunk-p5z8t6r3.js +130 -0
- package/dist/chunk-pd6653na.js +5394 -0
- package/dist/chunk-pjnzf3cg.js +61 -0
- package/dist/chunk-ps49ymvj.js +43 -0
- package/dist/chunk-pthzapbx.js +348 -0
- package/dist/chunk-pwwa7s62.js +11 -0
- package/dist/chunk-pyx135a5.js +20 -0
- package/dist/chunk-q132dkwr.js +195 -0
- package/dist/chunk-q16y18s1.js +120 -0
- package/dist/chunk-q25bjaev.js +15 -0
- package/dist/chunk-q3jxs36m.js +716 -0
- package/dist/chunk-q5by3da6.js +8 -0
- package/dist/chunk-q663msp4.js +908 -0
- package/dist/chunk-qezgfppb.js +4521 -0
- package/dist/chunk-qgjgqmy5.js +5796 -0
- package/dist/chunk-qj7h3xc3.js +40 -0
- package/dist/chunk-qjcxkbv6.js +644 -0
- package/dist/chunk-qnfx3qtx.js +617 -0
- package/dist/chunk-qnmyzsam.js +84 -0
- package/dist/chunk-qp2qdcda.js +100 -0
- package/dist/chunk-qvrq1sby.js +6107 -0
- package/dist/chunk-qz2x630m.js +49145 -0
- package/dist/chunk-qz3fe4fj.js +469 -0
- package/dist/chunk-r0af6bw0.js +173 -0
- package/dist/chunk-r1v8d6da.js +1299 -0
- package/dist/chunk-r6b58y3x.js +17 -0
- package/dist/chunk-r6e45bzh.js +118 -0
- package/dist/chunk-r843jezp.js +28 -0
- package/dist/chunk-rbgjkg3v.js +90 -0
- package/dist/chunk-rc5bbzx4.js +655 -0
- package/dist/chunk-rca5xtnd.js +267 -0
- package/dist/chunk-rfdbzyjh.js +1865 -0
- package/dist/chunk-rh7q28df.js +93 -0
- package/dist/chunk-rn0v1hk8.js +34 -0
- package/dist/chunk-rvxs7x7j.js +542 -0
- package/dist/chunk-rw6fwk2s.js +98 -0
- package/dist/chunk-rwagvxh5.js +1711 -0
- package/dist/chunk-s10vyjz4.js +224 -0
- package/dist/chunk-s274nv8k.js +8 -0
- package/dist/chunk-s3pzvdss.js +50 -0
- package/dist/chunk-s4w01jsb.js +969 -0
- package/dist/chunk-s56j2d6g.js +500 -0
- package/dist/chunk-sbs1r0h4.js +317 -0
- package/dist/chunk-sd36yzx8.js +954 -0
- package/dist/chunk-sd6env07.js +19 -0
- package/dist/chunk-sdj9b9wh.js +782 -0
- package/dist/chunk-sfht9xvd.js +24 -0
- package/dist/chunk-sk3gpkdt.js +89 -0
- package/dist/chunk-sp5cjcjh.js +526 -0
- package/dist/chunk-sq847dr5.js +1528 -0
- package/dist/chunk-sskngwam.js +89 -0
- package/dist/chunk-svar8pp2.js +276 -0
- package/dist/chunk-szj5wvdy.js +28 -0
- package/dist/chunk-t175chdd.js +714 -0
- package/dist/chunk-t4k75hqs.js +4987 -0
- package/dist/chunk-t7z7vg91.js +225 -0
- package/dist/chunk-tanfpxm1.js +419 -0
- package/dist/chunk-tf9h0cyj.js +3037 -0
- package/dist/chunk-tm1wwvm1.js +99 -0
- package/dist/chunk-trtgjd28.js +9300 -0
- package/dist/chunk-ts2p6bv1.js +224 -0
- package/dist/chunk-ttk5dzz8.js +25 -0
- package/dist/chunk-tvg352rv.js +391 -0
- package/dist/chunk-tww14j0s.js +86 -0
- package/dist/chunk-tz03j2da.js +66 -0
- package/dist/chunk-v1kzp02e.js +785 -0
- package/dist/chunk-v2sm9w6h.js +220 -0
- package/dist/chunk-v3gm2day.js +8 -0
- package/dist/chunk-v4qn3g0d.js +286 -0
- package/dist/chunk-v66tbnn6.js +476 -0
- package/dist/chunk-v78fj8by.js +145 -0
- package/dist/chunk-v9smspw2.js +4301 -0
- package/dist/chunk-v9ybze94.js +713 -0
- package/dist/chunk-vest0y6x.js +3830 -0
- package/dist/chunk-vf5sd1nq.js +12 -0
- package/dist/chunk-vht4mzgb.js +298 -0
- package/dist/chunk-vjwgf4qh.js +41 -0
- package/dist/chunk-vkrhafhf.js +248 -0
- package/dist/chunk-vn56q87z.js +2058 -0
- package/dist/chunk-vscz82fv.js +27 -0
- package/dist/chunk-vvn4gkak.js +642 -0
- package/dist/chunk-vxj5rbg5.js +84 -0
- package/dist/chunk-vyjeh50y.js +2149 -0
- package/dist/chunk-w44nvpvt.js +22 -0
- package/dist/chunk-waambva2.js +2430 -0
- package/dist/chunk-wbhsqc2a.js +275 -0
- package/dist/chunk-wbsnpxzh.js +471 -0
- package/dist/chunk-wfz0qffj.js +3939 -0
- package/dist/chunk-wpqbrv0f.js +83 -0
- package/dist/chunk-wzpdet3m.js +843 -0
- package/dist/chunk-x6tb96y2.js +264 -0
- package/dist/chunk-x8b7vft8.js +132 -0
- package/dist/chunk-x8eg216f.js +99 -0
- package/dist/chunk-xc9khn0r.js +490 -0
- package/dist/chunk-xch406a3.js +673 -0
- package/dist/chunk-xdw5dv00.js +8 -0
- package/dist/chunk-xe0bpcbr.js +3444 -0
- package/dist/chunk-xm3ed3zn.js +300 -0
- package/dist/chunk-xpm4ebhz.js +87 -0
- package/dist/chunk-xr6yfttj.js +43 -0
- package/dist/chunk-xsq9ae7x.js +90 -0
- package/dist/chunk-xszk7n10.js +14358 -0
- package/dist/chunk-xzmkekfb.js +259 -0
- package/dist/chunk-y1784krc.js +19 -0
- package/dist/chunk-y3py9g5d.js +213 -0
- package/dist/chunk-y9nnmev5.js +687 -0
- package/dist/chunk-ya6jq0hf.js +29 -0
- package/dist/chunk-ycc3xnx0.js +374 -0
- package/dist/chunk-yfa54ssn.js +87 -0
- package/dist/chunk-ymy4xrr8.js +101 -0
- package/dist/chunk-yqfz2k9z.js +48 -0
- package/dist/chunk-ywxd4qw4.js +22 -0
- package/dist/chunk-yxmz5k16.js +122 -0
- package/dist/chunk-yxvy4jt4.js +1014 -0
- package/dist/chunk-z2dp53wn.js +17 -0
- package/dist/chunk-z2xxx2sz.js +294 -0
- package/dist/chunk-z31an09g.js +67 -0
- package/dist/chunk-z95xqvr0.js +75 -0
- package/dist/chunk-zbmxxxz8.js +161 -0
- package/dist/chunk-zk2wsm7d.js +15 -0
- package/dist/chunk-zmg1pcp3.js +71 -0
- package/dist/chunk-znrwmznk.js +272 -0
- package/dist/chunk-zq9r43cb.js +26 -0
- package/dist/chunk-zsfxha74.js +17655 -0
- package/dist/chunk-ztpr96av.js +229 -0
- package/dist/chunk-zv7qrz04.js +58 -0
- package/dist/chunk-zxa7st21.js +32 -0
- package/dist/chunk-zxhezavg.js +216 -0
- package/dist/chunk-zz0qcq2n.js +434 -0
- package/dist/cli.js +194 -0
- package/package.json +164 -0
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import {
|
|
3
|
+
init_registry,
|
|
4
|
+
registerTmuxBackend
|
|
5
|
+
} from "./chunk-2y54j9ew.js";
|
|
6
|
+
import"./chunk-1yzc16qa.js";
|
|
7
|
+
import"./chunk-s10vyjz4.js";
|
|
8
|
+
import"./chunk-1k4j1xcf.js";
|
|
9
|
+
import"./chunk-3c4qja3e.js";
|
|
10
|
+
import"./chunk-rc5bbzx4.js";
|
|
11
|
+
import"./chunk-e6rrwzv0.js";
|
|
12
|
+
import"./chunk-2gzv8nrw.js";
|
|
13
|
+
import"./chunk-743znc5c.js";
|
|
14
|
+
import"./chunk-5p2ssw3d.js";
|
|
15
|
+
import"./chunk-cgfdkzhb.js";
|
|
16
|
+
import"./chunk-bhdt6k7w.js";
|
|
17
|
+
import"./chunk-6wkdqk81.js";
|
|
18
|
+
import"./chunk-5dbk24zg.js";
|
|
19
|
+
import"./chunk-bda3gxxz.js";
|
|
20
|
+
import"./chunk-zxhezavg.js";
|
|
21
|
+
import"./chunk-x8eg216f.js";
|
|
22
|
+
import"./chunk-9gbamk79.js";
|
|
23
|
+
import"./chunk-t175chdd.js";
|
|
24
|
+
import"./chunk-7rjyn5d3.js";
|
|
25
|
+
import"./chunk-6q2x8zeg.js";
|
|
26
|
+
import"./chunk-0yb4dz9c.js";
|
|
27
|
+
import"./chunk-7m2nd8da.js";
|
|
28
|
+
import"./chunk-ps49ymvj.js";
|
|
29
|
+
import"./chunk-g338npwr.js";
|
|
30
|
+
import"./chunk-zk2wsm7d.js";
|
|
31
|
+
import"./chunk-eh474zhj.js";
|
|
32
|
+
import"./chunk-ga5faygf.js";
|
|
33
|
+
import"./chunk-e7c8ypwc.js";
|
|
34
|
+
import"./chunk-g6qddbvf.js";
|
|
35
|
+
import {
|
|
36
|
+
getLeaderPaneId,
|
|
37
|
+
init_detection,
|
|
38
|
+
isInsideTmux,
|
|
39
|
+
isTmuxAvailable
|
|
40
|
+
} from "./chunk-b1s11z4y.js";
|
|
41
|
+
import {
|
|
42
|
+
HIDDEN_SESSION_NAME,
|
|
43
|
+
SWARM_SESSION_NAME,
|
|
44
|
+
SWARM_VIEW_WINDOW_NAME,
|
|
45
|
+
TMUX_COMMAND,
|
|
46
|
+
getSwarmSocketName,
|
|
47
|
+
init_constants
|
|
48
|
+
} from "./chunk-4jm600zv.js";
|
|
49
|
+
import"./chunk-yxmz5k16.js";
|
|
50
|
+
import"./chunk-v9smspw2.js";
|
|
51
|
+
import"./chunk-qz2x630m.js";
|
|
52
|
+
import {
|
|
53
|
+
init_sleep,
|
|
54
|
+
sleep
|
|
55
|
+
} from "./chunk-30chpfyc.js";
|
|
56
|
+
import"./chunk-84k64e4a.js";
|
|
57
|
+
import"./chunk-y3py9g5d.js";
|
|
58
|
+
import"./chunk-7pemewz2.js";
|
|
59
|
+
import {
|
|
60
|
+
count,
|
|
61
|
+
init_array
|
|
62
|
+
} from "./chunk-s4w01jsb.js";
|
|
63
|
+
import"./chunk-c8vn3ynx.js";
|
|
64
|
+
import"./chunk-g0j0t6qk.js";
|
|
65
|
+
import"./chunk-6kpbgc5w.js";
|
|
66
|
+
import"./chunk-3c25bcsw.js";
|
|
67
|
+
import"./chunk-mzdtkccs.js";
|
|
68
|
+
import"./chunk-55wgxwa9.js";
|
|
69
|
+
import"./chunk-5k2gdxnr.js";
|
|
70
|
+
import"./chunk-2qhs9n36.js";
|
|
71
|
+
import"./chunk-f5ma3nh5.js";
|
|
72
|
+
import"./chunk-v1kzp02e.js";
|
|
73
|
+
import"./chunk-p2816w9z.js";
|
|
74
|
+
import"./chunk-0vkfrmqm.js";
|
|
75
|
+
import"./chunk-0xjaqda8.js";
|
|
76
|
+
import"./chunk-mr9df5v8.js";
|
|
77
|
+
import"./chunk-cdz5yb0r.js";
|
|
78
|
+
import"./chunk-f2mhrmww.js";
|
|
79
|
+
import"./chunk-10fdxge0.js";
|
|
80
|
+
import"./chunk-r1v8d6da.js";
|
|
81
|
+
import"./chunk-d3v2fbay.js";
|
|
82
|
+
import"./chunk-qnfx3qtx.js";
|
|
83
|
+
import"./chunk-f2zhqnb6.js";
|
|
84
|
+
import"./chunk-cvp5vayb.js";
|
|
85
|
+
import {
|
|
86
|
+
execFileNoThrow,
|
|
87
|
+
init_execFileNoThrow
|
|
88
|
+
} from "./chunk-b5b7h81y.js";
|
|
89
|
+
import {
|
|
90
|
+
init_log,
|
|
91
|
+
logError
|
|
92
|
+
} from "./chunk-nm2cncrq.js";
|
|
93
|
+
import"./chunk-8tnsngw2.js";
|
|
94
|
+
import"./chunk-0rkbrabt.js";
|
|
95
|
+
import"./chunk-7wm5s02e.js";
|
|
96
|
+
import {
|
|
97
|
+
init_debug,
|
|
98
|
+
logForDebugging
|
|
99
|
+
} from "./chunk-rwagvxh5.js";
|
|
100
|
+
import"./chunk-fbv4apne.js";
|
|
101
|
+
import"./chunk-0fkqze0v.js";
|
|
102
|
+
import"./chunk-2zcaw1jd.js";
|
|
103
|
+
import"./chunk-hqmz36b3.js";
|
|
104
|
+
import"./chunk-4g3v8y12.js";
|
|
105
|
+
import"./chunk-7739pg2c.js";
|
|
106
|
+
import"./chunk-xszk7n10.js";
|
|
107
|
+
import"./chunk-sdj9b9wh.js";
|
|
108
|
+
import {
|
|
109
|
+
__esm
|
|
110
|
+
} from "./chunk-qp2qdcda.js";
|
|
111
|
+
|
|
112
|
+
// src/utils/swarm/backends/TmuxBackend.ts
|
|
113
|
+
function waitForPaneShellReady() {
|
|
114
|
+
return sleep(PANE_SHELL_INIT_DELAY_MS);
|
|
115
|
+
}
|
|
116
|
+
function acquirePaneCreationLock() {
|
|
117
|
+
let release;
|
|
118
|
+
const newLock = new Promise((resolve) => {
|
|
119
|
+
release = resolve;
|
|
120
|
+
});
|
|
121
|
+
const previousLock = paneCreationLock;
|
|
122
|
+
paneCreationLock = newLock;
|
|
123
|
+
return previousLock.then(() => release);
|
|
124
|
+
}
|
|
125
|
+
function getTmuxColorName(color) {
|
|
126
|
+
const tmuxColors = {
|
|
127
|
+
red: "red",
|
|
128
|
+
blue: "blue",
|
|
129
|
+
green: "green",
|
|
130
|
+
yellow: "yellow",
|
|
131
|
+
purple: "magenta",
|
|
132
|
+
orange: "colour208",
|
|
133
|
+
pink: "colour205",
|
|
134
|
+
cyan: "cyan"
|
|
135
|
+
};
|
|
136
|
+
return tmuxColors[color];
|
|
137
|
+
}
|
|
138
|
+
function runTmuxInUserSession(args) {
|
|
139
|
+
return execFileNoThrow(TMUX_COMMAND, args);
|
|
140
|
+
}
|
|
141
|
+
function runTmuxInSwarm(args) {
|
|
142
|
+
return execFileNoThrow(TMUX_COMMAND, ["-L", getSwarmSocketName(), ...args]);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
class TmuxBackend {
|
|
146
|
+
type = "tmux";
|
|
147
|
+
displayName = "tmux";
|
|
148
|
+
supportsHideShow = true;
|
|
149
|
+
async isAvailable() {
|
|
150
|
+
return isTmuxAvailable();
|
|
151
|
+
}
|
|
152
|
+
async isRunningInside() {
|
|
153
|
+
return isInsideTmux();
|
|
154
|
+
}
|
|
155
|
+
async createTeammatePaneInSwarmView(name, color) {
|
|
156
|
+
const releaseLock = await acquirePaneCreationLock();
|
|
157
|
+
try {
|
|
158
|
+
const insideTmux = await this.isRunningInside();
|
|
159
|
+
if (insideTmux) {
|
|
160
|
+
return await this.createTeammatePaneWithLeader(name, color);
|
|
161
|
+
}
|
|
162
|
+
return await this.createTeammatePaneExternal(name, color);
|
|
163
|
+
} finally {
|
|
164
|
+
releaseLock();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
async sendCommandToPane(paneId, command, useExternalSession = false) {
|
|
168
|
+
const runTmux = useExternalSession ? runTmuxInSwarm : runTmuxInUserSession;
|
|
169
|
+
const result = await runTmux(["send-keys", "-t", paneId, command, "Enter"]);
|
|
170
|
+
if (result.code !== 0) {
|
|
171
|
+
throw new Error(`Failed to send command to pane ${paneId}: ${result.stderr}`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async setPaneBorderColor(paneId, color, useExternalSession = false) {
|
|
175
|
+
const tmuxColor = getTmuxColorName(color);
|
|
176
|
+
const runTmux = useExternalSession ? runTmuxInSwarm : runTmuxInUserSession;
|
|
177
|
+
await runTmux([
|
|
178
|
+
"select-pane",
|
|
179
|
+
"-t",
|
|
180
|
+
paneId,
|
|
181
|
+
"-P",
|
|
182
|
+
`bg=default,fg=${tmuxColor}`
|
|
183
|
+
]);
|
|
184
|
+
await runTmux([
|
|
185
|
+
"set-option",
|
|
186
|
+
"-p",
|
|
187
|
+
"-t",
|
|
188
|
+
paneId,
|
|
189
|
+
"pane-border-style",
|
|
190
|
+
`fg=${tmuxColor}`
|
|
191
|
+
]);
|
|
192
|
+
await runTmux([
|
|
193
|
+
"set-option",
|
|
194
|
+
"-p",
|
|
195
|
+
"-t",
|
|
196
|
+
paneId,
|
|
197
|
+
"pane-active-border-style",
|
|
198
|
+
`fg=${tmuxColor}`
|
|
199
|
+
]);
|
|
200
|
+
}
|
|
201
|
+
async setPaneTitle(paneId, name, color, useExternalSession = false) {
|
|
202
|
+
const tmuxColor = getTmuxColorName(color);
|
|
203
|
+
const runTmux = useExternalSession ? runTmuxInSwarm : runTmuxInUserSession;
|
|
204
|
+
await runTmux(["select-pane", "-t", paneId, "-T", name]);
|
|
205
|
+
await runTmux([
|
|
206
|
+
"set-option",
|
|
207
|
+
"-p",
|
|
208
|
+
"-t",
|
|
209
|
+
paneId,
|
|
210
|
+
"pane-border-format",
|
|
211
|
+
`#[fg=${tmuxColor},bold] #{pane_title} #[default]`
|
|
212
|
+
]);
|
|
213
|
+
}
|
|
214
|
+
async enablePaneBorderStatus(windowTarget, useExternalSession = false) {
|
|
215
|
+
const target = windowTarget || await this.getCurrentWindowTarget();
|
|
216
|
+
if (!target) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
const runTmux = useExternalSession ? runTmuxInSwarm : runTmuxInUserSession;
|
|
220
|
+
await runTmux([
|
|
221
|
+
"set-option",
|
|
222
|
+
"-w",
|
|
223
|
+
"-t",
|
|
224
|
+
target,
|
|
225
|
+
"pane-border-status",
|
|
226
|
+
"top"
|
|
227
|
+
]);
|
|
228
|
+
}
|
|
229
|
+
async rebalancePanes(windowTarget, hasLeader) {
|
|
230
|
+
if (hasLeader) {
|
|
231
|
+
await this.rebalancePanesWithLeader(windowTarget);
|
|
232
|
+
} else {
|
|
233
|
+
await this.rebalancePanesTiled(windowTarget);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
async killPane(paneId, useExternalSession = false) {
|
|
237
|
+
const runTmux = useExternalSession ? runTmuxInSwarm : runTmuxInUserSession;
|
|
238
|
+
const result = await runTmux(["kill-pane", "-t", paneId]);
|
|
239
|
+
return result.code === 0;
|
|
240
|
+
}
|
|
241
|
+
async hidePane(paneId, useExternalSession = false) {
|
|
242
|
+
const runTmux = useExternalSession ? runTmuxInSwarm : runTmuxInUserSession;
|
|
243
|
+
await runTmux(["new-session", "-d", "-s", HIDDEN_SESSION_NAME]);
|
|
244
|
+
const result = await runTmux([
|
|
245
|
+
"break-pane",
|
|
246
|
+
"-d",
|
|
247
|
+
"-s",
|
|
248
|
+
paneId,
|
|
249
|
+
"-t",
|
|
250
|
+
`${HIDDEN_SESSION_NAME}:`
|
|
251
|
+
]);
|
|
252
|
+
if (result.code === 0) {
|
|
253
|
+
logForDebugging(`[TmuxBackend] Hidden pane ${paneId}`);
|
|
254
|
+
} else {
|
|
255
|
+
logForDebugging(`[TmuxBackend] Failed to hide pane ${paneId}: ${result.stderr}`);
|
|
256
|
+
}
|
|
257
|
+
return result.code === 0;
|
|
258
|
+
}
|
|
259
|
+
async showPane(paneId, targetWindowOrPane, useExternalSession = false) {
|
|
260
|
+
const runTmux = useExternalSession ? runTmuxInSwarm : runTmuxInUserSession;
|
|
261
|
+
const result = await runTmux([
|
|
262
|
+
"join-pane",
|
|
263
|
+
"-h",
|
|
264
|
+
"-s",
|
|
265
|
+
paneId,
|
|
266
|
+
"-t",
|
|
267
|
+
targetWindowOrPane
|
|
268
|
+
]);
|
|
269
|
+
if (result.code !== 0) {
|
|
270
|
+
logForDebugging(`[TmuxBackend] Failed to show pane ${paneId}: ${result.stderr}`);
|
|
271
|
+
return false;
|
|
272
|
+
}
|
|
273
|
+
logForDebugging(`[TmuxBackend] Showed pane ${paneId} in ${targetWindowOrPane}`);
|
|
274
|
+
await runTmux(["select-layout", "-t", targetWindowOrPane, "main-vertical"]);
|
|
275
|
+
const panesResult = await runTmux([
|
|
276
|
+
"list-panes",
|
|
277
|
+
"-t",
|
|
278
|
+
targetWindowOrPane,
|
|
279
|
+
"-F",
|
|
280
|
+
"#{pane_id}"
|
|
281
|
+
]);
|
|
282
|
+
const panes = panesResult.stdout.trim().split(`
|
|
283
|
+
`).filter(Boolean);
|
|
284
|
+
if (panes[0]) {
|
|
285
|
+
await runTmux(["resize-pane", "-t", panes[0], "-x", "30%"]);
|
|
286
|
+
}
|
|
287
|
+
return true;
|
|
288
|
+
}
|
|
289
|
+
async getCurrentPaneId() {
|
|
290
|
+
const leaderPane = getLeaderPaneId();
|
|
291
|
+
if (leaderPane) {
|
|
292
|
+
return leaderPane;
|
|
293
|
+
}
|
|
294
|
+
const result = await execFileNoThrow(TMUX_COMMAND, [
|
|
295
|
+
"display-message",
|
|
296
|
+
"-p",
|
|
297
|
+
"#{pane_id}"
|
|
298
|
+
]);
|
|
299
|
+
if (result.code !== 0) {
|
|
300
|
+
logForDebugging(`[TmuxBackend] Failed to get current pane ID (exit ${result.code}): ${result.stderr}`);
|
|
301
|
+
return null;
|
|
302
|
+
}
|
|
303
|
+
return result.stdout.trim();
|
|
304
|
+
}
|
|
305
|
+
async getCurrentWindowTarget() {
|
|
306
|
+
if (cachedLeaderWindowTarget) {
|
|
307
|
+
return cachedLeaderWindowTarget;
|
|
308
|
+
}
|
|
309
|
+
const leaderPane = getLeaderPaneId();
|
|
310
|
+
const args = ["display-message"];
|
|
311
|
+
if (leaderPane) {
|
|
312
|
+
args.push("-t", leaderPane);
|
|
313
|
+
}
|
|
314
|
+
args.push("-p", "#{session_name}:#{window_index}");
|
|
315
|
+
const result = await execFileNoThrow(TMUX_COMMAND, args);
|
|
316
|
+
if (result.code !== 0) {
|
|
317
|
+
logForDebugging(`[TmuxBackend] Failed to get current window target (exit ${result.code}): ${result.stderr}`);
|
|
318
|
+
return null;
|
|
319
|
+
}
|
|
320
|
+
cachedLeaderWindowTarget = result.stdout.trim();
|
|
321
|
+
return cachedLeaderWindowTarget;
|
|
322
|
+
}
|
|
323
|
+
async getCurrentWindowPaneCount(windowTarget, useSwarmSocket = false) {
|
|
324
|
+
const target = windowTarget || await this.getCurrentWindowTarget();
|
|
325
|
+
if (!target) {
|
|
326
|
+
return null;
|
|
327
|
+
}
|
|
328
|
+
const args = ["list-panes", "-t", target, "-F", "#{pane_id}"];
|
|
329
|
+
const result = useSwarmSocket ? await runTmuxInSwarm(args) : await runTmuxInUserSession(args);
|
|
330
|
+
if (result.code !== 0) {
|
|
331
|
+
logError(new Error(`[TmuxBackend] Failed to get pane count for ${target} (exit ${result.code}): ${result.stderr}`));
|
|
332
|
+
return null;
|
|
333
|
+
}
|
|
334
|
+
return count(result.stdout.trim().split(`
|
|
335
|
+
`), Boolean);
|
|
336
|
+
}
|
|
337
|
+
async hasSessionInSwarm(sessionName) {
|
|
338
|
+
const result = await runTmuxInSwarm(["has-session", "-t", sessionName]);
|
|
339
|
+
return result.code === 0;
|
|
340
|
+
}
|
|
341
|
+
async createExternalSwarmSession() {
|
|
342
|
+
const sessionExists = await this.hasSessionInSwarm(SWARM_SESSION_NAME);
|
|
343
|
+
if (!sessionExists) {
|
|
344
|
+
const result = await runTmuxInSwarm([
|
|
345
|
+
"new-session",
|
|
346
|
+
"-d",
|
|
347
|
+
"-s",
|
|
348
|
+
SWARM_SESSION_NAME,
|
|
349
|
+
"-n",
|
|
350
|
+
SWARM_VIEW_WINDOW_NAME,
|
|
351
|
+
"-P",
|
|
352
|
+
"-F",
|
|
353
|
+
"#{pane_id}"
|
|
354
|
+
]);
|
|
355
|
+
if (result.code !== 0) {
|
|
356
|
+
throw new Error(`Failed to create swarm session: ${result.stderr || "Unknown error"}`);
|
|
357
|
+
}
|
|
358
|
+
const paneId = result.stdout.trim();
|
|
359
|
+
const windowTarget2 = `${SWARM_SESSION_NAME}:${SWARM_VIEW_WINDOW_NAME}`;
|
|
360
|
+
logForDebugging(`[TmuxBackend] Created external swarm session with window ${windowTarget2}, pane ${paneId}`);
|
|
361
|
+
return { windowTarget: windowTarget2, paneId };
|
|
362
|
+
}
|
|
363
|
+
const listResult = await runTmuxInSwarm([
|
|
364
|
+
"list-windows",
|
|
365
|
+
"-t",
|
|
366
|
+
SWARM_SESSION_NAME,
|
|
367
|
+
"-F",
|
|
368
|
+
"#{window_name}"
|
|
369
|
+
]);
|
|
370
|
+
const windows = listResult.stdout.trim().split(`
|
|
371
|
+
`).filter(Boolean);
|
|
372
|
+
const windowTarget = `${SWARM_SESSION_NAME}:${SWARM_VIEW_WINDOW_NAME}`;
|
|
373
|
+
if (windows.includes(SWARM_VIEW_WINDOW_NAME)) {
|
|
374
|
+
const paneResult = await runTmuxInSwarm([
|
|
375
|
+
"list-panes",
|
|
376
|
+
"-t",
|
|
377
|
+
windowTarget,
|
|
378
|
+
"-F",
|
|
379
|
+
"#{pane_id}"
|
|
380
|
+
]);
|
|
381
|
+
const panes = paneResult.stdout.trim().split(`
|
|
382
|
+
`).filter(Boolean);
|
|
383
|
+
return { windowTarget, paneId: panes[0] || "" };
|
|
384
|
+
}
|
|
385
|
+
const createResult = await runTmuxInSwarm([
|
|
386
|
+
"new-window",
|
|
387
|
+
"-t",
|
|
388
|
+
SWARM_SESSION_NAME,
|
|
389
|
+
"-n",
|
|
390
|
+
SWARM_VIEW_WINDOW_NAME,
|
|
391
|
+
"-P",
|
|
392
|
+
"-F",
|
|
393
|
+
"#{pane_id}"
|
|
394
|
+
]);
|
|
395
|
+
if (createResult.code !== 0) {
|
|
396
|
+
throw new Error(`Failed to create swarm-view window: ${createResult.stderr || "Unknown error"}`);
|
|
397
|
+
}
|
|
398
|
+
return { windowTarget, paneId: createResult.stdout.trim() };
|
|
399
|
+
}
|
|
400
|
+
async createTeammatePaneWithLeader(teammateName, teammateColor) {
|
|
401
|
+
const currentPaneId = await this.getCurrentPaneId();
|
|
402
|
+
const windowTarget = await this.getCurrentWindowTarget();
|
|
403
|
+
if (!currentPaneId || !windowTarget) {
|
|
404
|
+
throw new Error("Could not determine current tmux pane/window");
|
|
405
|
+
}
|
|
406
|
+
const paneCount = await this.getCurrentWindowPaneCount(windowTarget);
|
|
407
|
+
if (paneCount === null) {
|
|
408
|
+
throw new Error("Could not determine pane count for current window");
|
|
409
|
+
}
|
|
410
|
+
const isFirstTeammate = paneCount === 1;
|
|
411
|
+
let splitResult;
|
|
412
|
+
if (isFirstTeammate) {
|
|
413
|
+
splitResult = await execFileNoThrow(TMUX_COMMAND, [
|
|
414
|
+
"split-window",
|
|
415
|
+
"-t",
|
|
416
|
+
currentPaneId,
|
|
417
|
+
"-h",
|
|
418
|
+
"-l",
|
|
419
|
+
"70%",
|
|
420
|
+
"-P",
|
|
421
|
+
"-F",
|
|
422
|
+
"#{pane_id}"
|
|
423
|
+
]);
|
|
424
|
+
} else {
|
|
425
|
+
const listResult = await execFileNoThrow(TMUX_COMMAND, [
|
|
426
|
+
"list-panes",
|
|
427
|
+
"-t",
|
|
428
|
+
windowTarget,
|
|
429
|
+
"-F",
|
|
430
|
+
"#{pane_id}"
|
|
431
|
+
]);
|
|
432
|
+
const panes = listResult.stdout.trim().split(`
|
|
433
|
+
`).filter(Boolean);
|
|
434
|
+
const teammatePanes = panes.slice(1);
|
|
435
|
+
const teammateCount = teammatePanes.length;
|
|
436
|
+
const splitVertically = teammateCount % 2 === 1;
|
|
437
|
+
const targetPaneIndex = Math.floor((teammateCount - 1) / 2);
|
|
438
|
+
const targetPane = teammatePanes[targetPaneIndex] || teammatePanes[teammatePanes.length - 1];
|
|
439
|
+
splitResult = await execFileNoThrow(TMUX_COMMAND, [
|
|
440
|
+
"split-window",
|
|
441
|
+
"-t",
|
|
442
|
+
targetPane,
|
|
443
|
+
splitVertically ? "-v" : "-h",
|
|
444
|
+
"-P",
|
|
445
|
+
"-F",
|
|
446
|
+
"#{pane_id}"
|
|
447
|
+
]);
|
|
448
|
+
}
|
|
449
|
+
if (splitResult.code !== 0) {
|
|
450
|
+
throw new Error(`Failed to create teammate pane: ${splitResult.stderr}`);
|
|
451
|
+
}
|
|
452
|
+
const paneId = splitResult.stdout.trim();
|
|
453
|
+
logForDebugging(`[TmuxBackend] Created teammate pane for ${teammateName}: ${paneId}`);
|
|
454
|
+
await this.setPaneBorderColor(paneId, teammateColor);
|
|
455
|
+
await this.setPaneTitle(paneId, teammateName, teammateColor);
|
|
456
|
+
await this.rebalancePanesWithLeader(windowTarget);
|
|
457
|
+
await waitForPaneShellReady();
|
|
458
|
+
return { paneId, isFirstTeammate };
|
|
459
|
+
}
|
|
460
|
+
async createTeammatePaneExternal(teammateName, teammateColor) {
|
|
461
|
+
const { windowTarget, paneId: firstPaneId } = await this.createExternalSwarmSession();
|
|
462
|
+
const paneCount = await this.getCurrentWindowPaneCount(windowTarget, true);
|
|
463
|
+
if (paneCount === null) {
|
|
464
|
+
throw new Error("Could not determine pane count for swarm window");
|
|
465
|
+
}
|
|
466
|
+
const isFirstTeammate = !firstPaneUsedForExternal && paneCount === 1;
|
|
467
|
+
let paneId;
|
|
468
|
+
if (isFirstTeammate) {
|
|
469
|
+
paneId = firstPaneId;
|
|
470
|
+
firstPaneUsedForExternal = true;
|
|
471
|
+
logForDebugging(`[TmuxBackend] Using initial pane for first teammate ${teammateName}: ${paneId}`);
|
|
472
|
+
await this.enablePaneBorderStatus(windowTarget, true);
|
|
473
|
+
} else {
|
|
474
|
+
const listResult = await runTmuxInSwarm([
|
|
475
|
+
"list-panes",
|
|
476
|
+
"-t",
|
|
477
|
+
windowTarget,
|
|
478
|
+
"-F",
|
|
479
|
+
"#{pane_id}"
|
|
480
|
+
]);
|
|
481
|
+
const panes = listResult.stdout.trim().split(`
|
|
482
|
+
`).filter(Boolean);
|
|
483
|
+
const teammateCount = panes.length;
|
|
484
|
+
const splitVertically = teammateCount % 2 === 1;
|
|
485
|
+
const targetPaneIndex = Math.floor((teammateCount - 1) / 2);
|
|
486
|
+
const targetPane = panes[targetPaneIndex] || panes[panes.length - 1];
|
|
487
|
+
const splitResult = await runTmuxInSwarm([
|
|
488
|
+
"split-window",
|
|
489
|
+
"-t",
|
|
490
|
+
targetPane,
|
|
491
|
+
splitVertically ? "-v" : "-h",
|
|
492
|
+
"-P",
|
|
493
|
+
"-F",
|
|
494
|
+
"#{pane_id}"
|
|
495
|
+
]);
|
|
496
|
+
if (splitResult.code !== 0) {
|
|
497
|
+
throw new Error(`Failed to create teammate pane: ${splitResult.stderr}`);
|
|
498
|
+
}
|
|
499
|
+
paneId = splitResult.stdout.trim();
|
|
500
|
+
logForDebugging(`[TmuxBackend] Created teammate pane for ${teammateName}: ${paneId}`);
|
|
501
|
+
}
|
|
502
|
+
await this.setPaneBorderColor(paneId, teammateColor, true);
|
|
503
|
+
await this.setPaneTitle(paneId, teammateName, teammateColor, true);
|
|
504
|
+
await this.rebalancePanesTiled(windowTarget);
|
|
505
|
+
await waitForPaneShellReady();
|
|
506
|
+
return { paneId, isFirstTeammate };
|
|
507
|
+
}
|
|
508
|
+
async rebalancePanesWithLeader(windowTarget) {
|
|
509
|
+
const listResult = await runTmuxInUserSession([
|
|
510
|
+
"list-panes",
|
|
511
|
+
"-t",
|
|
512
|
+
windowTarget,
|
|
513
|
+
"-F",
|
|
514
|
+
"#{pane_id}"
|
|
515
|
+
]);
|
|
516
|
+
const panes = listResult.stdout.trim().split(`
|
|
517
|
+
`).filter(Boolean);
|
|
518
|
+
if (panes.length <= 2) {
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
521
|
+
await runTmuxInUserSession([
|
|
522
|
+
"select-layout",
|
|
523
|
+
"-t",
|
|
524
|
+
windowTarget,
|
|
525
|
+
"main-vertical"
|
|
526
|
+
]);
|
|
527
|
+
const leaderPane = panes[0];
|
|
528
|
+
await runTmuxInUserSession(["resize-pane", "-t", leaderPane, "-x", "30%"]);
|
|
529
|
+
logForDebugging(`[TmuxBackend] Rebalanced ${panes.length - 1} teammate panes with leader`);
|
|
530
|
+
}
|
|
531
|
+
async rebalancePanesTiled(windowTarget) {
|
|
532
|
+
const listResult = await runTmuxInSwarm([
|
|
533
|
+
"list-panes",
|
|
534
|
+
"-t",
|
|
535
|
+
windowTarget,
|
|
536
|
+
"-F",
|
|
537
|
+
"#{pane_id}"
|
|
538
|
+
]);
|
|
539
|
+
const panes = listResult.stdout.trim().split(`
|
|
540
|
+
`).filter(Boolean);
|
|
541
|
+
if (panes.length <= 1) {
|
|
542
|
+
return;
|
|
543
|
+
}
|
|
544
|
+
await runTmuxInSwarm(["select-layout", "-t", windowTarget, "tiled"]);
|
|
545
|
+
logForDebugging(`[TmuxBackend] Rebalanced ${panes.length} teammate panes with tiled layout`);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
var firstPaneUsedForExternal = false, cachedLeaderWindowTarget = null, paneCreationLock, PANE_SHELL_INIT_DELAY_MS = 200;
|
|
549
|
+
var init_TmuxBackend = __esm(() => {
|
|
550
|
+
init_debug();
|
|
551
|
+
init_execFileNoThrow();
|
|
552
|
+
init_log();
|
|
553
|
+
init_array();
|
|
554
|
+
init_sleep();
|
|
555
|
+
init_constants();
|
|
556
|
+
init_detection();
|
|
557
|
+
init_registry();
|
|
558
|
+
paneCreationLock = Promise.resolve();
|
|
559
|
+
registerTmuxBackend(TmuxBackend);
|
|
560
|
+
});
|
|
561
|
+
init_TmuxBackend();
|
|
562
|
+
|
|
563
|
+
export {
|
|
564
|
+
TmuxBackend
|
|
565
|
+
};
|