@unieai/code 0.0.14 → 0.0.15
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/README.md +18 -0
- package/dist/chunks/App-6wcwb5pc.js +2 -0
- package/dist/chunks/ApproveApiKey-d97zej3m.js +2 -0
- package/dist/chunks/{assistant-bmwndz7j.js → AssistantSessionChooser-vygv3jdr.js} +1 -1
- package/dist/chunks/BypassPermissionsModeDialog-p7yq2zap.js +2 -0
- package/dist/chunks/{ClaudeInChromeOnboarding-ckjppjhr.js → ClaudeInChromeOnboarding-n11q2368.js} +1 -1
- package/dist/chunks/ClaudeMdExternalIncludesDialog-6afdc75a.js +2 -0
- package/dist/chunks/ConsoleOAuthFlow-7na5hhyn.js +2 -0
- package/dist/chunks/{DiffDialog-ptnc4sgx.js → DiffDialog-0gfe5ew5.js} +1 -1
- package/dist/chunks/Doctor-q03grp6g.js +2 -0
- package/dist/chunks/Grove-2hdgsj42.js +2 -0
- package/dist/chunks/{ITermBackend-wgbbpgpy.js → ITermBackend-d4maa39x.js} +1 -1
- package/dist/chunks/{InProcessTransport-vgh7qgjn.js → InProcessTransport-7sr7467h.js} +1 -1
- package/dist/chunks/InvalidConfigDialog-qe8rkhkj.js +2 -0
- package/dist/chunks/InvalidSettingsDialog-tmhmy5tf.js +2 -0
- package/dist/chunks/Onboarding-hp8hb5kc.js +2 -0
- package/dist/chunks/REPL-5ppdjgag.js +2 -0
- package/dist/chunks/{ResumeConversation-ymc529y6.js → ResumeConversation-sr90x948.js} +1 -1
- package/dist/chunks/{SnapshotUpdateDialog-aya2c2f9.js → SnapshotUpdateDialog-wt6b6ee8.js} +1 -1
- package/dist/chunks/{TeleportProgress-kn3qgvd9.js → TeleportProgress-yv82g5fx.js} +1 -1
- package/dist/chunks/{TeleportRepoMismatchDialog-01v6e2qz.js → TeleportRepoMismatchDialog-hdzhp1cy.js} +1 -1
- package/dist/chunks/{TeleportResumeWrapper-48dsm503.js → TeleportResumeWrapper-m93f8nva.js} +1 -1
- package/dist/chunks/{TmuxBackend-s0bt8zqj.js → TmuxBackend-5ajj7r7b.js} +1 -1
- package/dist/chunks/ToolSearchTool-e8x4b1xy.js +2 -0
- package/dist/chunks/{TrustDialog-xtn3kq0n.js → TrustDialog-m74p2tm4.js} +1 -1
- package/dist/chunks/TungstenTool-3f5rj0vm.js +2 -0
- package/dist/chunks/{add-dir-z0kz5nf7.js → add-dir-fswbbep3.js} +1 -1
- package/dist/chunks/{agents-ex4cdx64.js → agents-ftrmk7h2.js} +1 -1
- package/dist/chunks/agents-wg0hfr30.js +4 -0
- package/dist/chunks/ant-claude-for-chrome-mcp-p12dy6z6.js +2 -0
- package/dist/chunks/api-94eda39h.js +2 -0
- package/dist/chunks/asciicast-ktxrxtw6.js +2 -0
- package/dist/chunks/{AssistantSessionChooser-wxmyvgcf.js → assistant-kae6ttkn.js} +1 -1
- package/dist/chunks/{auth-g2p039wk.js → auth-2kpz51np.js} +1 -1
- package/dist/chunks/auth-xw8gbsgb.js +2 -0
- package/dist/chunks/backgroundHousekeeping-zxf9qg70.js +2 -0
- package/dist/chunks/{branch-rdvbhvts.js → branch-takyqck5.js} +1 -1
- package/dist/chunks/{bridgePointer-9rqn5tp6.js → bridgePointer-73w5dbak.js} +1 -1
- package/dist/chunks/{btw-xts6twbq.js → btw-jdp39tx4.js} +1 -1
- package/dist/chunks/{buddy-yc09g048.js → buddy-m4zdx3bb.js} +1 -1
- package/dist/chunks/{cachedMicrocompact-fa2mdnyh.js → cachedMicrocompact-6agq4j15.js} +1 -1
- package/dist/chunks/caches-zfq2xyng.js +2 -0
- package/dist/chunks/{chrome-gb6g0d5p.js → chrome-6nn58sx4.js} +1 -1
- package/dist/chunks/{chromeNativeHost-jsntnc29.js → chromeNativeHost-zww6nc8m.js} +1 -1
- package/dist/chunks/{claudeDesktop-me56qerx.js → claudeDesktop-mbfy989f.js} +1 -1
- package/dist/chunks/{cleanup-hxj6tm50.js → cleanup-b1j2gz00.js} +1 -1
- package/dist/chunks/clear-gcgpc454.js +2 -0
- package/dist/chunks/{cli-63wps6p0.js → cli-01hdyy20.js} +1 -1
- package/dist/chunks/{cli-fnt125we.js → cli-024t0qj5.js} +2 -2
- package/dist/chunks/{cli-xqqnx8gk.js → cli-05d7kjwb.js} +1 -1
- package/dist/chunks/{cli-z02gsrtd.js → cli-0gt2xz4m.js} +2 -2
- package/dist/chunks/{cli-hp5gs22f.js → cli-0hyd6spd.js} +1 -1
- package/dist/chunks/{cli-3619x17q.js → cli-0p0bgg1c.js} +1 -1
- package/dist/chunks/{cli-j4r75xsd.js → cli-0qjhtnek.js} +1 -1
- package/dist/chunks/{cli-7ed2q42n.js → cli-0th9dbz0.js} +2 -2
- package/dist/chunks/{cli-8j0b3b55.js → cli-0vb8t8wq.js} +1 -1
- package/dist/chunks/{cli-7jw2qe69.js → cli-0ybyvcx6.js} +2 -2
- package/dist/chunks/{cli-8xyb31dy.js → cli-10j9svm7.js} +2 -2
- package/dist/chunks/{cli-2sbq6ggm.js → cli-16j5x50q.js} +2 -2
- package/dist/chunks/{cli-3tkd82y4.js → cli-19s45qns.js} +1 -1
- package/dist/chunks/{cli-zwn9x1p2.js → cli-1pwyw30a.js} +1 -1
- package/dist/chunks/{cli-h2t2hyz7.js → cli-1px0m0pt.js} +2 -2
- package/dist/chunks/{cli-e9t5kfxm.js → cli-2540qh2b.js} +1 -1
- package/dist/chunks/{cli-ps5qshk4.js → cli-259ff8gy.js} +1 -1
- package/dist/chunks/{cli-rc3w6tqd.js → cli-26y0jfks.js} +2 -2
- package/dist/chunks/{cli-qwx84m9c.js → cli-2afdzhna.js} +1 -1
- package/dist/chunks/{cli-e5yek4vx.js → cli-2dkq8dre.js} +2 -2
- package/dist/chunks/{cli-1eejy071.js → cli-2q9p0rr5.js} +1 -1
- package/dist/chunks/{cli-awe5yg6m.js → cli-39xs60x2.js} +2 -2
- package/dist/chunks/{cli-mx33m3gs.js → cli-3he638yr.js} +1 -1
- package/dist/chunks/{cli-an97yxg9.js → cli-3q4bcd9y.js} +2 -2
- package/dist/chunks/{cli-swrtc7tv.js → cli-40cqn5s4.js} +1 -1
- package/dist/chunks/cli-461ebjmk.js +3 -0
- package/dist/chunks/{cli-n5wt59z1.js → cli-4c9nnszs.js} +2 -2
- package/dist/chunks/{cli-64x5ghm5.js → cli-4dj4x3mr.js} +1 -1
- package/dist/chunks/{cli-zxe1a0ey.js → cli-4r0qxxn2.js} +2 -2
- package/dist/chunks/{cli-jz50hv3m.js → cli-4v73qw68.js} +1 -1
- package/dist/chunks/{cli-bfm3f0yw.js → cli-5pn327m7.js} +1 -1
- package/dist/chunks/{cli-jrwh6rs0.js → cli-5rxvwnb0.js} +1 -1
- package/dist/chunks/{cli-93sm9n17.js → cli-5t8cqq40.js} +1 -1
- package/dist/chunks/{cli-b3k8arn1.js → cli-63389c5w.js} +589 -589
- package/dist/chunks/{cli-609dp2ck.js → cli-6376p7cj.js} +1 -1
- package/dist/chunks/{cli-8h10q2x8.js → cli-6fmt7dye.js} +1 -1
- package/dist/chunks/{cli-9e8f55fp.js → cli-6xn8gqp2.js} +1 -1
- package/dist/chunks/{cli-a2d962bq.js → cli-7dm5ex18.js} +3 -3
- package/dist/chunks/{cli-9hqmq5g6.js → cli-7q6tcs56.js} +1 -1
- package/dist/chunks/{cli-6cqemsm9.js → cli-7xgc2882.js} +1 -1
- package/dist/chunks/{cli-wznsj6nb.js → cli-884gn8px.js} +1 -1
- package/dist/chunks/cli-8ayzxqxm.js +3 -0
- package/dist/chunks/{cli-33tchr20.js → cli-8hpg8nq4.js} +2 -2
- package/dist/chunks/{cli-5c6e6txh.js → cli-9m758wb1.js} +48 -48
- package/dist/chunks/{cli-192xnkcx.js → cli-9sjvqgf1.js} +39 -39
- package/dist/chunks/{cli-bj0csmzs.js → cli-a1ejrtbd.js} +2 -2
- package/dist/chunks/{cli-fdjfk8yq.js → cli-a2f4j8s5.js} +2 -2
- package/dist/chunks/cli-aevjtty8.js +3 -0
- package/dist/chunks/{cli-601zv0wv.js → cli-ajnshm3j.js} +2 -2
- package/dist/chunks/{cli-q2g5mjv6.js → cli-aw71bpta.js} +1 -1
- package/dist/chunks/{cli-brr3bnrj.js → cli-b2fkrk49.js} +2 -2
- package/dist/chunks/{cli-7k17xstr.js → cli-bavw7hk5.js} +1 -1
- package/dist/chunks/{cli-5ajcy93q.js → cli-bbt5chja.js} +2 -2
- package/dist/chunks/{cli-awb77t95.js → cli-bqs5smsv.js} +2 -2
- package/dist/chunks/{cli-yt4ezhhk.js → cli-btsq7ax8.js} +1 -1
- package/dist/chunks/{cli-yktdhy9p.js → cli-cmfxv0fb.js} +2 -2
- package/dist/chunks/{cli-nqvfpxp6.js → cli-d287m3xt.js} +1 -1
- package/dist/chunks/{cli-0nz8v3dj.js → cli-d5tdpnv2.js} +1 -1
- package/dist/chunks/{cli-jmq1x925.js → cli-d8qkvmdn.js} +2 -2
- package/dist/chunks/{cli-9xtyh8c7.js → cli-dc6wqdxq.js} +2 -2
- package/dist/chunks/{cli-rjy86nps.js → cli-djvr12vv.js} +1 -1
- package/dist/chunks/{cli-e4a4fjx9.js → cli-dp2jt8fs.js} +2 -2
- package/dist/chunks/{cli-e3q6b1cv.js → cli-e1e1m0pp.js} +1 -1
- package/dist/chunks/{cli-szxfz15b.js → cli-e1gmbexn.js} +1 -1
- package/dist/chunks/{cli-2428yw99.js → cli-e5vc9y1s.js} +2 -2
- package/dist/chunks/{cli-8kpqq0ea.js → cli-eehgc06t.js} +2 -2
- package/dist/chunks/{cli-a1cx6p3g.js → cli-ehchpnvs.js} +1 -1
- package/dist/chunks/{cli-6qt2xm18.js → cli-epetmtbs.js} +2 -2
- package/dist/chunks/{cli-m6amgxq3.js → cli-ex1phpwq.js} +1 -1
- package/dist/chunks/{cli-8ykv66e4.js → cli-ey3ajcbm.js} +2 -2
- package/dist/chunks/{cli-wvctks7e.js → cli-eys4epws.js} +2 -2
- package/dist/chunks/{cli-2fqrjjs9.js → cli-ezm83s1g.js} +1 -1
- package/dist/chunks/{cli-dx0pk7k2.js → cli-f2vabz18.js} +1 -1
- package/dist/chunks/{cli-7wxv39ry.js → cli-fg3rb4dg.js} +2 -2
- package/dist/chunks/{cli-t7sx6zqn.js → cli-fn58ekhc.js} +1 -1
- package/dist/chunks/{cli-6ee37m6j.js → cli-ft5hkwbj.js} +1 -1
- package/dist/chunks/{cli-eh1wx76n.js → cli-ftpdmdw5.js} +1 -1
- package/dist/chunks/{cli-df5r5xrp.js → cli-fvr47wt6.js} +1 -1
- package/dist/chunks/{cli-a1dqnvy2.js → cli-g85dpwpq.js} +1 -1
- package/dist/chunks/{cli-d1w21hsm.js → cli-gd0f1rtp.js} +1 -1
- package/dist/chunks/{cli-bpj9na88.js → cli-gh3w0z1t.js} +1 -1
- package/dist/chunks/{cli-ktzyyx91.js → cli-gpsc6dvd.js} +1 -1
- package/dist/chunks/{cli-zqrzc3qx.js → cli-gv71wq8a.js} +1 -1
- package/dist/chunks/{cli-67azkkwm.js → cli-h2e1scnk.js} +1 -1
- package/dist/chunks/{cli-bdgrtpsy.js → cli-h3vttdhj.js} +2 -2
- package/dist/chunks/{cli-sbm8tsyq.js → cli-h5hm4rsb.js} +1 -1
- package/dist/chunks/cli-h7tdk5fx.js +3 -0
- package/dist/chunks/{cli-yaxs01at.js → cli-h9xmkhdq.js} +2 -2
- package/dist/chunks/{cli-b8j8bm5m.js → cli-hs95nqb0.js} +1 -1
- package/dist/chunks/{cli-rz03bav0.js → cli-hsnk77dk.js} +1 -1
- package/dist/chunks/{cli-q8zmmp6z.js → cli-hy0se8fa.js} +2 -2
- package/dist/chunks/{cli-3tmtx9ka.js → cli-jr0hzh2w.js} +1 -1
- package/dist/chunks/{cli-hpxspent.js → cli-jy20hqk9.js} +2 -2
- package/dist/chunks/{cli-ez2xsd4m.js → cli-k3b5ctgk.js} +2 -2
- package/dist/chunks/{cli-yxsn8ang.js → cli-kc4b0z3x.js} +1 -1
- package/dist/chunks/{cli-d2pn0xfj.js → cli-krmacmt6.js} +1 -1
- package/dist/chunks/{cli-tafg3e9w.js → cli-ktzb7cwm.js} +2 -2
- package/dist/chunks/{cli-sr25begm.js → cli-m09f7s7e.js} +1 -1
- package/dist/chunks/{cli-kx3r72jp.js → cli-mae5am6a.js} +1 -1
- package/dist/chunks/{cli-z2ewnqgr.js → cli-mhza34xq.js} +2 -2
- package/dist/chunks/{cli-qpjkqhg2.js → cli-mky8bjey.js} +1 -1
- package/dist/chunks/{cli-fz053waw.js → cli-mqkqq3ye.js} +2 -2
- package/dist/chunks/{cli-vtsy70mz.js → cli-ms2tdrrf.js} +1 -1
- package/dist/chunks/{cli-hrmzaf5d.js → cli-n0xnhnx9.js} +2 -2
- package/dist/chunks/{cli-cfbfexxj.js → cli-ncbagd2h.js} +1 -1
- package/dist/chunks/{cli-vfh77r55.js → cli-ndp9j4vm.js} +1 -1
- package/dist/chunks/{cli-4pwyex04.js → cli-ndrvqgnc.js} +2 -2
- package/dist/chunks/{cli-jz8jcrhh.js → cli-nhks97kf.js} +1 -1
- package/dist/chunks/{cli-ry9g546q.js → cli-p2ngs1jm.js} +1 -1
- package/dist/chunks/{cli-qrmc38f8.js → cli-p853vxnx.js} +2 -2
- package/dist/chunks/{cli-gfweqbpz.js → cli-pmfc2886.js} +1 -1
- package/dist/chunks/{cli-1p7nc6zb.js → cli-q33bj7n5.js} +2 -2
- package/dist/chunks/{cli-t4see9hh.js → cli-q5arj6fm.js} +2 -2
- package/dist/chunks/{cli-vb6aa4jk.js → cli-q6atnwff.js} +2 -2
- package/dist/chunks/{cli-cmh6qwg8.js → cli-q93jv7x6.js} +2 -2
- package/dist/chunks/{cli-dy9qrrps.js → cli-qa0qmmg4.js} +2 -2
- package/dist/chunks/{cli-222ywgt0.js → cli-qhefvb54.js} +2 -2
- package/dist/chunks/{cli-sxe9wke0.js → cli-qxtxfn2z.js} +1 -1
- package/dist/chunks/{cli-bnr79ddy.js → cli-r29k5h5x.js} +2 -2
- package/dist/chunks/{cli-a826q5zk.js → cli-rm2gppbh.js} +1 -1
- package/dist/chunks/{cli-a25jeqs8.js → cli-rv4z0bsv.js} +2 -2
- package/dist/chunks/{cli-g2s3391y.js → cli-s5ee96g6.js} +1 -1
- package/dist/chunks/{cli-5kehgkgh.js → cli-sqtf9njc.js} +1 -1
- package/dist/chunks/{cli-3hrmwgsv.js → cli-stjsr4fx.js} +2 -2
- package/dist/chunks/{cli-tpjr1pz9.js → cli-svyc36nr.js} +1 -1
- package/dist/chunks/{cli-j403r21v.js → cli-sw84zjvc.js} +1 -1
- package/dist/chunks/{cli-vm7dr5aa.js → cli-tbp8513t.js} +2 -2
- package/dist/chunks/{cli-7n4d5yzr.js → cli-tez2hmqw.js} +1 -1
- package/dist/chunks/{cli-hs2k9997.js → cli-tfs3as1v.js} +1 -1
- package/dist/chunks/{cli-2j6cv2kz.js → cli-tj8fyjds.js} +2 -2
- package/dist/chunks/{cli-phwbqkv7.js → cli-tnbyhfne.js} +2 -2
- package/dist/chunks/{cli-97vx3m99.js → cli-ttxhmsvc.js} +1 -1
- package/dist/chunks/{cli-yb5m6jwq.js → cli-v86f53k0.js} +3 -3
- package/dist/chunks/{cli-07f2hk9d.js → cli-v8wqc6y3.js} +1 -1
- package/dist/chunks/{cli-m3r80gy0.js → cli-v9wwx1rc.js} +1 -1
- package/dist/chunks/{cli-8jym9hp6.js → cli-vbn35zp3.js} +2 -2
- package/dist/chunks/{cli-ca1jmr8f.js → cli-vj1rywde.js} +2 -2
- package/dist/chunks/cli-vq0ktbx3.js +3 -0
- package/dist/chunks/{cli-pgjnzqk4.js → cli-vrs8hpz4.js} +1 -1
- package/dist/chunks/{cli-r43jhzwm.js → cli-vzcpa5mx.js} +2 -2
- package/dist/chunks/{cli-q0vret0x.js → cli-w0jxph8x.js} +1 -1
- package/dist/chunks/{cli-x9s7jxq5.js → cli-w1y2zvbw.js} +2 -2
- package/dist/chunks/{cli-vy3e90k9.js → cli-w4zkh280.js} +1 -1
- package/dist/chunks/{cli-chvks6bg.js → cli-w8jvw417.js} +1 -1
- package/dist/chunks/{cli-ax0ckqpv.js → cli-w8pfefka.js} +1 -1
- package/dist/chunks/{cli-rd5ax7sn.js → cli-x0jht735.js} +1 -1
- package/dist/chunks/{cli-gypyp608.js → cli-x4rgkedw.js} +1 -1
- package/dist/chunks/{cli-asc9xmsr.js → cli-xabdpk7s.js} +1 -1
- package/dist/chunks/{cli-1q1b8rgs.js → cli-xq9g16gt.js} +1 -1
- package/dist/chunks/{cli-vqne1z50.js → cli-xw96dapq.js} +1 -1
- package/dist/chunks/{cli-b29enbbc.js → cli-xza1mmh1.js} +1 -1
- package/dist/chunks/{cli-b5z57an7.js → cli-y2g1asak.js} +1 -1
- package/dist/chunks/{cli-mcbntv3p.js → cli-yaw2d4zq.js} +1 -1
- package/dist/chunks/{cli-yfb8bk69.js → cli-ymqdnbx2.js} +2 -2
- package/dist/chunks/{cli-shsgq494.js → cli-yps4pn87.js} +1 -1
- package/dist/chunks/{cli-bzrat9yd.js → cli-z1f33m31.js} +2 -2
- package/dist/chunks/cli-z6eshqx6.js +3 -0
- package/dist/chunks/{cli-9tbmrp89.js → cli-zjznn7cc.js} +1 -1
- package/dist/chunks/{cli-ceas97gw.js → cli-zqj1my2v.js} +2 -2
- package/dist/chunks/{cli-psqvdh1r.js → cli-zrth7vt6.js} +1 -1
- package/dist/chunks/{cli-8z8d5bgb.js → cli-zxrt2zch.js} +2 -2
- package/dist/chunks/cli-zxz1xm2y.js +3 -0
- package/dist/chunks/client-syew3mvc.js +2 -0
- package/dist/chunks/color-qatz507k.js +2 -0
- package/dist/chunks/commitAttribution-shckr1cq.js +2 -0
- package/dist/chunks/common-jh4pavb6.js +2 -0
- package/dist/chunks/{compact-kysg5kxd.js → compact-sxghgg9n.js} +1 -1
- package/dist/chunks/config-25r8er6j.js +2 -0
- package/dist/chunks/config-ahnc48yv.js +2 -0
- package/dist/chunks/{context-aat04hqp.js → context-8vmnhkcn.js} +1 -1
- package/dist/chunks/context-noninteractive-r3easde9.js +2 -0
- package/dist/chunks/conversation-5j4eggm2.js +2 -0
- package/dist/chunks/{copy-zpvnnk85.js → copy-kkwp50xa.js} +1 -1
- package/dist/chunks/cost-jpq9rbzx.js +5 -0
- package/dist/chunks/createSession-q0a53mn0.js +2 -0
- package/dist/chunks/desktop-k6291p1x.js +2 -0
- package/dist/chunks/detectRepository-h3gr8gdb.js +2 -0
- package/dist/chunks/detection-b0zsvwnb.js +2 -0
- package/dist/chunks/{devtools-7jd4m7th.js → devtools-8zc2m716.js} +1 -1
- package/dist/chunks/{diff-xaw6ebj0.js → diff-vm40nyxd.js} +1 -1
- package/dist/chunks/doctor-y45fmac9.js +2 -0
- package/dist/chunks/earlyInput-pegekfhn.js +2 -0
- package/dist/chunks/{effort-bj5x7fcg.js → effort-9xnbtb27.js} +1 -1
- package/dist/chunks/executor-kx69dfy3.js +2 -0
- package/dist/chunks/exit-8r8kx8hm.js +2 -0
- package/dist/chunks/{export-tjrkechp.js → export-0wr0abd0.js} +1 -1
- package/dist/chunks/extra-usage-nbgas106.js +2 -0
- package/dist/chunks/extra-usage-noninteractive-66zmwx05.js +2 -0
- package/dist/chunks/fast-8ymdvfm8.js +2 -0
- package/dist/chunks/feedback-n8vwr3z9.js +2 -0
- package/dist/chunks/{files-n3b22fs2.js → files-mhx9cc10.js} +1 -1
- package/dist/chunks/firstPartyEventLogger-paerdr2m.js +2 -0
- package/dist/chunks/gates-wngyk842.js +2 -0
- package/dist/chunks/git-r7sca128.js +2 -0
- package/dist/chunks/goal-zqeb4rnv.js +2 -0
- package/dist/chunks/growthbook-z0km1xj1.js +2 -0
- package/dist/chunks/{heapdump-2y7wcy1r.js → heapdump-rcge2q0e.js} +1 -1
- package/dist/chunks/{help-a7mc9946.js → help-zba127jm.js} +1 -1
- package/dist/chunks/{hooks-22nm9hn0.js → hooks-kwyxgfnh.js} +1 -1
- package/dist/chunks/hooks-sd4knstw.js +2 -0
- package/dist/chunks/{ide-9x5zsk63.js → ide-ph9revqg.js} +1 -1
- package/dist/chunks/index-y2qvpmjn.js +2 -0
- package/dist/chunks/{initReplBridge-xjc6eaan.js → initReplBridge-0fb0sdd0.js} +1 -1
- package/dist/chunks/ink-qfs553mf.js +2 -0
- package/dist/chunks/{insights-n7k1ty4n.js → insights-mc3fr5tq.js} +1 -1
- package/dist/chunks/{install-github-app-zdsmjft8.js → install-github-app-8bpx4gak.js} +1 -1
- package/dist/chunks/{install-rhzcmymh.js → install-jnwzbh9n.js} +1 -1
- package/dist/chunks/install-slack-app-mq18xdh4.js +2 -0
- package/dist/chunks/instrumentation-r6m6cpwq.js +13 -0
- package/dist/chunks/keybindings-5xfde34t.js +3 -0
- package/dist/chunks/loadAgentsDir-858gc42y.js +2 -0
- package/dist/chunks/loadPluginHooks-nye2wnjd.js +2 -0
- package/dist/chunks/login-d806meeh.js +2 -0
- package/dist/chunks/logout-7eab6ep8.js +2 -0
- package/dist/chunks/{main-6h6y0rzf.js → main-r6t52mjc.js} +14 -14
- package/dist/chunks/{mcp-yqhzespv.js → mcp-0vwtqwa6.js} +1 -1
- package/dist/chunks/mcp-r18hhy02.js +3 -0
- package/dist/chunks/{mcp-yrt7dbxp.js → mcp-y8q5yb60.js} +3 -3
- package/dist/chunks/{mcpServer-f90a93nt.js → mcpServer-17f7qjpf.js} +1 -1
- package/dist/chunks/{mcpServer-v1dy489g.js → mcpServer-za0c5qxf.js} +1 -1
- package/dist/chunks/{memory-mdwb22wh.js → memory-cygg4exk.js} +1 -1
- package/dist/chunks/{mobile-j4jwvavn.js → mobile-3b85d257.js} +1 -1
- package/dist/chunks/{model-tf1ne2j9.js → model-159q4y9p.js} +1 -1
- package/dist/chunks/model-m251ahzh.js +2 -0
- package/dist/chunks/{oauth-1b0qpxz4.js → oauth-0bwqgx9q.js} +1 -1
- package/dist/chunks/{output-style-t39s3jqx.js → output-style-93keyt16.js} +1 -1
- package/dist/chunks/parser-hwq42bt6.js +2 -0
- package/dist/chunks/{passes-s3fqswrg.js → passes-q304cea1.js} +1 -1
- package/dist/chunks/{permissions-a050zfqv.js → permissions-tyasy9cv.js} +1 -1
- package/dist/chunks/plan-24nj1sc9.js +2 -0
- package/dist/chunks/plugin-6vddyvyh.js +2 -0
- package/dist/chunks/pluginStartupCheck-0vse6r56.js +2 -0
- package/dist/chunks/{plugins-4py04yzf.js → plugins-0c98naeb.js} +2 -2
- package/dist/chunks/{preauthorizedConfig-hmxcgb8e.js → preauthorizedConfig-et34h6tr.js} +1 -1
- package/dist/chunks/{print-pmzxgktf.js → print-z6k6yas1.js} +4 -4
- package/dist/chunks/privacy-settings-8j5mffff.js +2 -0
- package/dist/chunks/process-22t1nv1h.js +2 -0
- package/dist/chunks/{processBashCommand-zkztsgn4.js → processBashCommand-z4dv10xe.js} +1 -1
- package/dist/chunks/{processSlashCommand-mfh1h592.js → processSlashCommand-3d7jy9zn.js} +1 -1
- package/dist/chunks/prompt-2vc9x4tz.js +2 -0
- package/dist/chunks/prompt-n672rb6v.js +2 -0
- package/dist/chunks/provider-prompt-cyzsv35w.js +2 -0
- package/dist/chunks/{rate-limit-options-kd432dap.js → rate-limit-options-sj78r287.js} +1 -1
- package/dist/chunks/registry-eh3nbvrw.js +2 -0
- package/dist/chunks/release-notes-242sqhds.js +6 -0
- package/dist/chunks/reload-plugins-bnwgt3b2.js +3 -0
- package/dist/chunks/{remote-env-rg4k5em5.js → remote-env-gpwv8c1y.js} +1 -1
- package/dist/chunks/{remoteBridgeCore-t980tt3v.js → remoteBridgeCore-5f92ewk3.js} +1 -1
- package/dist/chunks/rename-q0t9qmps.js +2 -0
- package/dist/chunks/{resume-3tc40yn9.js → resume-707rbm95.js} +1 -1
- package/dist/chunks/{rewind-b6vg7dxs.js → rewind-2ghm1ys8.js} +1 -1
- package/dist/chunks/sandbox-adapter-z2sedaea.js +2 -0
- package/dist/chunks/{sandbox-toggle-eke03mr8.js → sandbox-toggle-r0nsvjfe.js} +1 -1
- package/dist/chunks/{session-53f3eza5.js → session-7jy47tfh.js} +1 -1
- package/dist/chunks/sessionFileAccessHooks-0h2dzr6d.js +2 -0
- package/dist/chunks/sessionStorage-na71kng7.js +2 -0
- package/dist/chunks/settings-jnqec2t4.js +2 -0
- package/dist/chunks/{setup-z05dsr8q.js → setup-exrj5apq.js} +2 -2
- package/dist/chunks/{setup-gravfzvg.js → setup-hhnqt5m4.js} +1 -1
- package/dist/chunks/setup-sv1h7c9x.js +2 -0
- package/dist/chunks/sinks-h5jqp76t.js +2 -0
- package/dist/chunks/{skills-41mfq71n.js → skills-7cx810ev.js} +1 -1
- package/dist/chunks/startupProfiler-qkkwmx3e.js +2 -0
- package/dist/chunks/state-9t5rddcc.js +2 -0
- package/dist/chunks/{stats-7qg84dw1.js → stats-4trmdgr9.js} +1 -1
- package/dist/chunks/status-qvn7jn0p.js +2 -0
- package/dist/chunks/stickers-p4yrfr32.js +2 -0
- package/dist/chunks/subprocessEnv-x1xd9x7k.js +2 -0
- package/dist/chunks/{systemPromptSections-jxxyhnxe.js → systemPromptSections-pcrphkzc.js} +1 -1
- package/dist/chunks/{tag-58ndeaa9.js → tag-bexktcx4.js} +1 -1
- package/dist/chunks/tasks-a0mx2drp.js +2 -0
- package/dist/chunks/teamHelpers-bfbx13m0.js +2 -0
- package/dist/chunks/teammateModeSnapshot-x1dc2d00.js +2 -0
- package/dist/chunks/teleport-y1mmes2t.js +2 -0
- package/dist/chunks/terminalSetup-a0a8wgbj.js +2 -0
- package/dist/chunks/theme-1wm2bpaf.js +2 -0
- package/dist/chunks/thinkback-3sz6bf5t.js +2 -0
- package/dist/chunks/thinkback-play-swd1vjqn.js +2 -0
- package/dist/chunks/toolSearch-8mgqzknz.js +2 -0
- package/dist/chunks/trustedDevice-9yp8mttk.js +2 -0
- package/dist/chunks/{ultrareviewCommand-qwnsjdez.js → ultrareviewCommand-dj716ryk.js} +1 -1
- package/dist/chunks/update-r3pdnfg1.js +82 -0
- package/dist/chunks/upgrade-adym17ka.js +2 -0
- package/dist/chunks/{upstreamproxy-34wva0r5.js → upstreamproxy-39e2hgq3.js} +1 -1
- package/dist/chunks/usage-gehxyrfj.js +2 -0
- package/dist/chunks/util-qk39hg9x.js +2 -0
- package/dist/chunks/utils-5nwk1214.js +2 -0
- package/dist/chunks/vim-zqzf0xh8.js +2 -0
- package/dist/chunks/worktree-17wb4yc5.js +2 -0
- package/dist/chunks/worktreeModeEnabled-pjb4srr0.js +2 -0
- package/dist/cli.js +1 -1
- package/package.json +2 -1
- package/dist/chunks/App-ncpmz34p.js +0 -2
- package/dist/chunks/ApproveApiKey-fqzjf1j3.js +0 -2
- package/dist/chunks/BypassPermissionsModeDialog-3ksmd8pp.js +0 -2
- package/dist/chunks/ClaudeMdExternalIncludesDialog-rrsfavte.js +0 -2
- package/dist/chunks/ConsoleOAuthFlow-04xt4sby.js +0 -2
- package/dist/chunks/Doctor-kg5m2zma.js +0 -2
- package/dist/chunks/Grove-rf9xhe2e.js +0 -2
- package/dist/chunks/InvalidConfigDialog-6spqsgmr.js +0 -2
- package/dist/chunks/InvalidSettingsDialog-m6y6esgz.js +0 -2
- package/dist/chunks/Onboarding-j1m69bqm.js +0 -2
- package/dist/chunks/REPL-bpg86z4h.js +0 -2
- package/dist/chunks/ToolSearchTool-4rm3kr13.js +0 -2
- package/dist/chunks/TungstenTool-3wjjz6cf.js +0 -2
- package/dist/chunks/agents-w6zde2j9.js +0 -4
- package/dist/chunks/ant-claude-for-chrome-mcp-gr0b0jr4.js +0 -2
- package/dist/chunks/api-07pqphw5.js +0 -2
- package/dist/chunks/asciicast-2k1ztt6v.js +0 -2
- package/dist/chunks/auth-g509w5pr.js +0 -2
- package/dist/chunks/backgroundHousekeeping-hw0chw1d.js +0 -2
- package/dist/chunks/caches-3qzm958c.js +0 -2
- package/dist/chunks/clear-ssfbry3k.js +0 -2
- package/dist/chunks/cli-16k24hzp.js +0 -3
- package/dist/chunks/cli-8xz7dd7z.js +0 -3
- package/dist/chunks/cli-geka8fb7.js +0 -3
- package/dist/chunks/cli-rwh0a2m1.js +0 -3
- package/dist/chunks/cli-t5ddsvmv.js +0 -3
- package/dist/chunks/cli-t5yqvdb3.js +0 -3
- package/dist/chunks/cli-t8ydjjs7.js +0 -3
- package/dist/chunks/client-qxx2ja27.js +0 -2
- package/dist/chunks/color-k1ew8kzn.js +0 -2
- package/dist/chunks/commitAttribution-nsa26sdx.js +0 -2
- package/dist/chunks/common-7t28qq0q.js +0 -2
- package/dist/chunks/config-d4kj5q8e.js +0 -2
- package/dist/chunks/config-txzzncm9.js +0 -2
- package/dist/chunks/context-noninteractive-w54t6xnc.js +0 -2
- package/dist/chunks/conversation-brecqh0t.js +0 -2
- package/dist/chunks/cost-5fbyws6x.js +0 -5
- package/dist/chunks/createSession-hsp3x7vw.js +0 -2
- package/dist/chunks/desktop-7kdmxet0.js +0 -2
- package/dist/chunks/detectRepository-9xqead5f.js +0 -2
- package/dist/chunks/detection-z3cdks0s.js +0 -2
- package/dist/chunks/doctor-nbm4z0tx.js +0 -2
- package/dist/chunks/earlyInput-e8zh4d2d.js +0 -2
- package/dist/chunks/executor-e1744nra.js +0 -2
- package/dist/chunks/exit-894g29w2.js +0 -2
- package/dist/chunks/extra-usage-noninteractive-577ac873.js +0 -2
- package/dist/chunks/extra-usage-tfwmdc7z.js +0 -2
- package/dist/chunks/fast-1krm57mn.js +0 -2
- package/dist/chunks/feedback-2421cbpm.js +0 -2
- package/dist/chunks/firstPartyEventLogger-1kwwcqdn.js +0 -2
- package/dist/chunks/gates-sd1cp8f2.js +0 -2
- package/dist/chunks/git-t6e9xdt2.js +0 -2
- package/dist/chunks/goal-0sxyk3va.js +0 -2
- package/dist/chunks/growthbook-4hx0kbpq.js +0 -2
- package/dist/chunks/hooks-tf9v5b0x.js +0 -2
- package/dist/chunks/index-p1k4dhfc.js +0 -2
- package/dist/chunks/ink-9n8bszp5.js +0 -2
- package/dist/chunks/install-slack-app-vhfe2dsf.js +0 -2
- package/dist/chunks/instrumentation-5jjvsvke.js +0 -13
- package/dist/chunks/keybindings-tqnmw7ng.js +0 -3
- package/dist/chunks/loadAgentsDir-j7pntb5v.js +0 -2
- package/dist/chunks/loadPluginHooks-sta7ra57.js +0 -2
- package/dist/chunks/login-j7x2fjw8.js +0 -2
- package/dist/chunks/logout-53bvwba1.js +0 -2
- package/dist/chunks/mcp-3mjagnnt.js +0 -3
- package/dist/chunks/model-hz3nn362.js +0 -2
- package/dist/chunks/parser-8venanpw.js +0 -2
- package/dist/chunks/plan-gjaybyvb.js +0 -2
- package/dist/chunks/plugin-trf2388p.js +0 -2
- package/dist/chunks/pluginStartupCheck-wxmc7h98.js +0 -2
- package/dist/chunks/privacy-settings-b2rz35r5.js +0 -2
- package/dist/chunks/process-n5355p53.js +0 -2
- package/dist/chunks/prompt-2jyjhkwg.js +0 -2
- package/dist/chunks/prompt-b34a0h5z.js +0 -2
- package/dist/chunks/provider-prompt-qe4s2yzh.js +0 -2
- package/dist/chunks/registry-d7cd5dqg.js +0 -2
- package/dist/chunks/release-notes-rwgbn4pp.js +0 -6
- package/dist/chunks/reload-plugins-9axdwaaj.js +0 -3
- package/dist/chunks/rename-xap3rpbv.js +0 -2
- package/dist/chunks/sandbox-adapter-1z8xktva.js +0 -2
- package/dist/chunks/sessionFileAccessHooks-xscvsvqt.js +0 -2
- package/dist/chunks/sessionStorage-rb63e8bn.js +0 -2
- package/dist/chunks/settings-hp0ksjn9.js +0 -2
- package/dist/chunks/setup-ssq8b1e6.js +0 -2
- package/dist/chunks/sinks-agafqaxj.js +0 -2
- package/dist/chunks/startupProfiler-wmf8nvfd.js +0 -2
- package/dist/chunks/state-rhxyy4qm.js +0 -2
- package/dist/chunks/status-sran2y9h.js +0 -2
- package/dist/chunks/stickers-hythmrsd.js +0 -2
- package/dist/chunks/subprocessEnv-b12dkzky.js +0 -2
- package/dist/chunks/tasks-52g28x72.js +0 -2
- package/dist/chunks/teamHelpers-rxt9rvmd.js +0 -2
- package/dist/chunks/teammateModeSnapshot-2782d4w9.js +0 -2
- package/dist/chunks/teleport-8gjys6yn.js +0 -2
- package/dist/chunks/terminalSetup-bbftxeqk.js +0 -2
- package/dist/chunks/theme-b38te5rz.js +0 -2
- package/dist/chunks/thinkback-05a9q24j.js +0 -2
- package/dist/chunks/thinkback-play-1nbagfm5.js +0 -2
- package/dist/chunks/toolSearch-7rnke366.js +0 -2
- package/dist/chunks/trustedDevice-2dn4981h.js +0 -2
- package/dist/chunks/update-ney1krzn.js +0 -82
- package/dist/chunks/upgrade-zxxxfq8c.js +0 -2
- package/dist/chunks/usage-82ghrfb3.js +0 -2
- package/dist/chunks/util-xm9cs164.js +0 -2
- package/dist/chunks/utils-zs0ft181.js +0 -2
- package/dist/chunks/vim-6gxdrp1k.js +0 -2
- package/dist/chunks/worktree-xjxz4ndt.js +0 -2
- package/dist/chunks/worktreeModeEnabled-8ndm5yfs.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{i as pJ,j as xZ,l as EQ}from"./cli-yxsn8ang.js";import{n as GZ,o as FQ,p as hQ,q as IJ,r as TQ,s as DQ,t as kQ,u as CQ}from"./cli-9hqmq5g6.js";import"./cli-pgjnzqk4.js";import{Aa as vJ,Ba as fQ,Ca as wQ,Da as MQ,Ea as bJ,Fa as SJ}from"./cli-64x5ghm5.js";import"./cli-mq300hkq.js";import{Wb as dJ,Zb as lZ}from"./cli-m6amgxq3.js";import{_b as jZ,ac as VZ,bc as HZ,cc as dZ}from"./cli-6cqemsm9.js";import{dc as zZ,fc as KJ,gc as KZ,hc as cZ}from"./cli-vtsy70mz.js";import{kc as YZ,lc as XZ,mc as uZ}from"./cli-kx3r72jp.js";import{Je as JZ,Ke as QZ,Le as ZZ,Me as $Z,Ne as pZ}from"./cli-t8ydjjs7.js";import{$v as oQ,AG as yQ,BG as BQ,CG as AQ,DG as RQ,EG as PQ,FG as UQ,GG as wZ,JE as rQ,OI as aZ,RE as eQ,VE as IZ,Xz as GQ,Yq as tQ,Zq as sQ,Zz as fZ,ar as bZ,aw as SZ,cI as qJ,eE as nQ,wG as _Q,xG as UJ,yG as qQ,zG as LQ}from"./cli-b3k8arn1.js";import{OK as mJ,PK as PZ}from"./cli-7jw2qe69.js";import{_K as xQ,cL as UZ}from"./cli-wvctks7e.js";import"./cli-2j6cv2kz.js";import"./cli-7ed2q42n.js";import"./cli-n5wt59z1.js";import"./cli-4pwyex04.js";import"./cli-jmq1x925.js";import"./cli-ez2xsd4m.js";import"./cli-33tchr20.js";import"./cli-t5yqvdb3.js";import"./cli-1p7nc6zb.js";import"./cli-bj0csmzs.js";import"./cli-8ykv66e4.js";import"./cli-awe5yg6m.js";import"./cli-bzrat9yd.js";import{AO as NQ,CO as o,DO as OQ,tO as iQ,uO as jQ,vO as VQ,xO as HQ,zO as WQ}from"./cli-8xyb31dy.js";import"./cli-8jym9hp6.js";import"./cli-a2d962bq.js";import"./cli-222ywgt0.js";import"./cli-brr3bnrj.js";import"./cli-qrmc38f8.js";import"./cli-x9s7jxq5.js";import"./cli-9xtyh8c7.js";import"./cli-cmh6qwg8.js";import"./cli-vb6aa4jk.js";import"./cli-a25jeqs8.js";import"./cli-ceas97gw.js";import"./cli-bnr79ddy.js";import"./cli-phwbqkv7.js";import"./cli-16k24hzp.js";import"./cli-dy9qrrps.js";import"./cli-3hrmwgsv.js";import"./cli-fz053waw.js";import"./cli-8z8d5bgb.js";import{F1 as CZ,GX as uQ,JX as kZ,Q3 as vZ,R2 as lQ,a3 as mZ,b1 as cJ,d1 as uJ,f1 as dQ,u3 as aQ,x3 as gQ}from"./cli-192xnkcx.js";import"./cli-ca1jmr8f.js";import"./cli-r43jhzwm.js";import"./cli-601zv0wv.js";import"./cli-h2t2hyz7.js";import"./cli-t5ddsvmv.js";import"./cli-6qt2xm18.js";import"./cli-2428yw99.js";import"./cli-an97yxg9.js";import{D5 as OJ,E5 as RZ}from"./cli-hpxspent.js";import"./cli-t4see9hh.js";import"./cli-bdgrtpsy.js";import"./cli-hrmzaf5d.js";import"./cli-fdjfk8yq.js";import{C7 as DZ,Q6 as WJ,S6 as AZ,l7 as pQ,n7 as cQ}from"./cli-yb5m6jwq.js";import"./cli-yfb8bk69.js";import"./cli-7wxv39ry.js";import"./cli-fnt125we.js";import{w8 as IQ,y8 as TZ}from"./cli-8kpqq0ea.js";import"./cli-z2ewnqgr.js";import"./cli-e4a4fjx9.js";import{$8 as LZ,_8 as y}from"./cli-e5yek4vx.js";import"./cli-z02gsrtd.js";import"./cli-yktdhy9p.js";import"./cli-5ajcy93q.js";import"./cli-zxe1a0ey.js";import"./cli-2sbq6ggm.js";import"./cli-yaxs01at.js";import{A_ as XQ,M9 as $Q,O9 as yZ,Z9 as k,d_ as YQ,x_ as J}from"./cli-awb77t95.js";import"./cli-rc3w6tqd.js";import{K_ as zQ,S_ as KQ,U_ as BZ}from"./cli-q8zmmp6z.js";import{dda as hZ,g$ as _J,m$ as SQ}from"./cli-tafg3e9w.js";import{ida as ZQ}from"./cli-qwx84m9c.js";hZ();mZ();kZ();bZ();CZ();vZ();XQ();TZ();YQ();DZ();lZ();IZ();aZ();uZ();SZ();cZ();pZ();dZ();OQ();import{hostname as gZ}from"os";BQ();XQ();AZ();LZ();yZ();import{randomUUID as eJ}from"crypto";HQ();fZ();UZ();PZ();BZ();BQ();OQ();function rJ(C){let x=new AbortController;function U(){x.abort(),x=new AbortController}function _(){let b=new AbortController,S=()=>b.abort();if(C.aborted||x.signal.aborted)return b.abort(),{signal:b.signal,cleanup:()=>{}};C.addEventListener("abort",S,{once:!0});let d=x.signal;return d.addEventListener("abort",S,{once:!0}),{signal:b.signal,cleanup:()=>{C.removeEventListener("abort",S),d.removeEventListener("abort",S)}}}return{signal:_,wake:U}}YQ();RZ();wZ();var MZ=2000,JQ=60000,QQ=900000,EZ=0;async function mQ(C){let{dir:x,machineName:U,branch:_,gitRepoUrl:b,title:S,baseUrl:d,sessionIngressUrl:E,workerType:c,getAccessToken:n,createSession:r,archiveSession:i,getCurrentTitle:ZJ=()=>S,toSDKMessages:YJ=()=>{throw Error("BridgeCoreParams.toSDKMessages not provided. Pass it if you use writeMessages() or initialMessages \u2014 daemon callers that only use writeSdkMessages() never hit this path.")},onAuth401:f,getPollIntervalConfig:w=()=>pJ,initialHistoryCap:F=200,initialMessages:G,previouslyFlushedUUIDs:v,onInboundMessage:m,onPermissionResponse:e,onInterrupt:l,onSetModel:V,onSetMaxThinkingTokens:h,onSetPermissionMode:B,onStateChange:W,onUserMessage:I,perpetual:T,initialSSESequenceNum:a=0}=C,q=++EZ,{writeBridgePointer:D,clearBridgePointer:JJ,readBridgePointer:j}=await import("./bridgePointer-9rqn5tp6.js"),H=T?await j(x):null,K=H?.source==="repl"?H:null;J(`[bridge:repl] initBridgeCore #${q} starting (initialMessages=${G?.length??0}${K?` perpetual prior=env:${K.environmentId}`:""})`);let A=qQ({baseUrl:d,getAccessToken:n,runnerVersion:MACRO.VERSION,onDebug:J,onAuth401:f,getTrustedDeviceToken:xQ}),P=process.env.USER_TYPE==="ant"?UQ(A):A,QJ={dir:x,machineName:U,branch:_,gitRepoUrl:b,maxSessions:1,spawnMode:"single-session",verbose:!1,sandbox:!1,bridgeId:eJ(),workerType:c,environmentId:eJ(),reuseEnvironmentId:K?.environmentId,apiBaseUrl:d,sessionIngressUrl:E},Y,LJ;try{let Q=await P.registerBridgeEnvironment(QJ);Y=Q.environment_id,LJ=Q.environment_secret}catch(Q){if(o("registration_failed",`[bridge:repl] Environment registration failed: ${k(Q)}`),K)await JJ(x);return W?.("failed",k(Q)),null}J(`[bridge:repl] Environment registered: ${Y}`),WJ("info","bridge_repl_env_registered"),y("tengu_bridge_repl_env_registered",{});async function lJ(Q,$){if(Y!==Q)return J(`[bridge:repl] Env mismatch (requested ${Q}, got ${Y}) \u2014 cannot reconnect in place`),!1;let N=VQ($),X=N===$?[$]:[$,N];for(let R of X)try{return await P.reconnectSession(Y,R),J(`[bridge:repl] Reconnected session ${R} in place on env ${Y}`),!0}catch(g){J(`[bridge:repl] reconnectSession(${R}) failed: ${k(g)}`)}return J("[bridge:repl] reconnectSession exhausted \u2014 falling through to fresh session"),!1}let fJ=K?await lJ(K.environmentId,K.sessionId):!1;if(K&&!fJ)await JJ(x);let z;if(fJ&&K){if(z=K.sessionId,J(`[bridge:repl] Perpetual session reused: ${z}`),G&&v)for(let Q of G)v.add(Q.uuid)}else{let Q=await r({environmentId:Y,title:S,gitRepoUrl:b,branch:_,signal:AbortSignal.timeout(15000)});if(!Q)return J("[bridge:repl] Session creation failed, deregistering environment"),y("tengu_bridge_repl_session_failed",{}),await P.deregisterEnvironment(Y).catch(()=>{}),W?.("failed","Session creation failed"),null;z=Q,J(`[bridge:repl] Session created: ${z}`)}await D(x,{sessionId:z,environmentId:Y,source:"repl"}),WJ("info","bridge_repl_session_created"),y("tengu_bridge_repl_started",{has_initial_messages:!!(G&&G.length>0),inProtectedNamespace:KQ()});let wJ=new Set;if(G)for(let Q of G)wJ.add(Q.uuid);let $J=new SJ(2000);for(let Q of wJ)$J.add(Q);let aJ=new SJ(2000),t=new AbortController,Z=null,XJ=0,p=fJ?a:0,M=null,jJ=null,gJ=rJ(t.signal),VJ=gJ.wake,WZ=gJ.signal,s=new CQ,MJ=!I,EJ=3,zJ=0,HJ=null;async function yJ(){if(HJ)return HJ;HJ=NZ();try{return await HJ}finally{HJ=null}}async function NZ(){if(zJ++,XJ++,J(`[bridge:repl] Reconnecting after env lost (attempt ${zJ}/${EJ})`),zJ>EJ)return J(`[bridge:repl] Environment reconnect limit reached (${EJ}), giving up`),!1;if(Z){let X=Z.getLastSequenceNum();if(X>p)p=X;Z.close(),Z=null}if(VJ(),s.drop(),M){let X=M;if(await P.stopWork(Y,X,!1).catch(()=>{}),M!==X)return J("[bridge:repl] Poll loop recovered during stopWork await \u2014 deferring to it"),zJ=0,!0;M=null,jJ=null}if(t.signal.aborted)return J("[bridge:repl] Reconnect aborted by teardown"),!1;let Q=Y;QJ.reuseEnvironmentId=Q;try{let X=await P.registerBridgeEnvironment(QJ);Y=X.environment_id,LJ=X.environment_secret}catch(X){return QJ.reuseEnvironmentId=void 0,J(`[bridge:repl] Environment re-registration failed: ${k(X)}`),!1}if(QJ.reuseEnvironmentId=void 0,J(`[bridge:repl] Re-registered: requested=${Q} got=${Y}`),t.signal.aborted)return J("[bridge:repl] Reconnect aborted after env registration, cleaning up"),await P.deregisterEnvironment(Y).catch(()=>{}),!1;if(Z!==null)return J("[bridge:repl] Poll loop recovered during registerBridgeEnvironment await \u2014 deferring to it"),zJ=0,!0;if(await lJ(Q,z))return y("tengu_bridge_repl_reconnected_in_place",{}),zJ=0,!0;if(Y!==Q)y("tengu_bridge_repl_env_expired_fresh_session",{});if(await i(z),t.signal.aborted)return J("[bridge:repl] Reconnect aborted after archive, cleaning up"),await P.deregisterEnvironment(Y).catch(()=>{}),!1;let $=ZJ(),N=await r({environmentId:Y,title:$,gitRepoUrl:b,branch:_,signal:AbortSignal.timeout(15000)});if(!N)return J("[bridge:repl] Session creation failed during reconnection"),!1;if(t.signal.aborted)return J("[bridge:repl] Reconnect aborted after session creation, cleaning up"),await i(N),!1;return z=N,GQ(jQ(N)).catch(()=>{}),p=0,aJ.clear(),MJ=!I,J(`[bridge:repl] Re-created session: ${z}`),await D(x,{sessionId:z,environmentId:Y,source:"repl"}),v?.clear(),zJ=0,!0}function FJ(){return n()}function iJ(){let Q=s.end();if(Q.length===0)return;if(!Z){J(`[bridge:repl] Cannot drain ${Q.length} pending message(s): no transport`);return}for(let X of Q)$J.add(X.uuid);let N=YJ(Q).map((X)=>({...X,session_id:z}));J(`[bridge:repl] Drained ${Q.length} pending message(s) after flush`),Z.writeBatch(N)}let BJ=null;function hJ(){BJ?.()}function tJ(Q){if(J(`[bridge:repl] Transport permanently closed: code=${Q}`),y("tengu_bridge_repl_ws_closed",{code:Q}),Z){let N=Z.getLastSequenceNum();if(N>p)p=N;Z=null}VJ();let $=s.drop();if($>0)J(`[bridge:repl] Dropping ${$} pending message(s) on transport close (code=${Q})`,{level:"warn"});if(Q===1000){W?.("failed","session ended"),t.abort(),hJ();return}W?.("reconnecting",`Remote Control connection lost (code ${Q})`),J(`[bridge:repl] Transport reconnect budget exhausted (code=${Q}), attempting env reconnect`),yJ().then((N)=>{if(N)return;if(t.signal.aborted)return;J("[bridge:repl] reconnectEnvironmentWithSession resolved false \u2014 tearing down"),y("tengu_bridge_repl_reconnect_failed",{close_code:Q}),W?.("failed","reconnection failed"),hJ()})}let AJ;if(process.env.USER_TYPE==="ant"&&process.platform!=="win32")AJ=()=>{J("[bridge:repl] SIGUSR2 received \u2014 forcing doReconnect() for testing"),yJ()},process.on("SIGUSR2",AJ);let RJ=null;if(process.env.USER_TYPE==="ant")AQ({fireClose:(Q)=>{if(!RJ){J("[bridge:debug] fireClose: no transport wired yet");return}J(`[bridge:debug] fireClose(${Q}) \u2014 injecting`),RJ(Q)},forceReconnect:()=>{J("[bridge:debug] forceReconnect \u2014 injecting"),yJ()},injectFault:PQ,wakePollLoop:VJ,describe:()=>`env=${Y} session=${z} transport=${Z?.getStateLabel()??"null"} workId=${M??"null"}`});let OZ={api:P,getCredentials:()=>({environmentId:Y,environmentSecret:LJ}),signal:t.signal,getPollIntervalConfig:w,onStateChange:W,getWsState:()=>Z?.getStateLabel()??"null",isAtCapacity:()=>Z!==null,capacitySignal:WZ,onFatalError:hJ,getHeartbeatInfo:()=>{if(!M||!jJ)return null;return{environmentId:Y,workId:M,sessionToken:jJ}},onHeartbeatFatal:(Q)=>{if(J(`[bridge:repl] heartbeatWork fatal (status=${Q.status}) \u2014 tearing down work item for fast re-dispatch`),Z){let $=Z.getLastSequenceNum();if($>p)p=$;Z.close(),Z=null}if(s.drop(),M)P.stopWork(Y,M,!1).catch(($)=>{J(`[bridge:repl] stopWork after heartbeat fatal: ${k($)}`)});M=null,jJ=null,VJ(),W?.("reconnecting","Work item lease expired, fetching fresh token")},async onEnvironmentLost(){if(!await yJ())return null;return{environmentId:Y,environmentSecret:LJ}},onWorkReceived:(Q,$,N,X)=>{if(Z?.isConnectedStatus())J(`[bridge:repl] Work received while transport connected, replacing with fresh token (workId=${N})`);if(J(`[bridge:repl] Work received: workId=${N} workSessionId=${Q} currentSessionId=${z} match=${IJ(Q,z)}`),D(x,{sessionId:z,environmentId:Y,source:"repl"}),!IJ(Q,z)){J(`[bridge:repl] Rejecting foreign session: expected=${z} got=${Q}`);return}M=N,jJ=$;let R=X||zQ(process.env.CLAUDE_BRIDGE_USE_CCR_V2),g;if(!R){if(g=FJ(),!g){J("[bridge:repl] No OAuth token available for session ingress, skipping work");return}mJ(g)}if(y("tengu_bridge_repl_work_received",{}),Z){let O=Z;Z=null;let L=O.getLastSequenceNum();if(L>p)p=L;O.close()}s.deactivate();let qZ=(O)=>MQ(O,{transport:Z,sessionId:z,onInterrupt:l,onSetModel:V,onSetMaxThinkingTokens:h,onSetPermissionMode:B}),CJ=!1,oJ=(O)=>{if(Z=O,O.setOnConnect(()=>{if(Z!==O)return;if(J("[bridge:repl] Ingress transport connected"),y("tengu_bridge_repl_ws_connected",{}),!R){let L=FJ();if(L)mJ(L)}if(kJ=!1,!CJ&&G&&G.length>0){CJ=!0;let L=F,u=G.filter((PJ)=>vJ(PJ)&&!v?.has(PJ.uuid)),xJ=L>0&&u.length>L?u.slice(-L):u;if(xJ.length<u.length)J(`[bridge:repl] Capped initial flush: ${u.length} -> ${xJ.length} (cap=${L})`),y("tengu_bridge_repl_history_capped",{eligible_count:u.length,capped_count:xJ.length});let NJ=YJ(xJ);if(NJ.length>0){J(`[bridge:repl] Flushing ${NJ.length} initial message(s) via transport`);let PJ=NJ.map((GJ)=>({...GJ,session_id:z})),nJ=O.droppedBatchCount;O.writeBatch(PJ).then(()=>{if(O.droppedBatchCount>nJ){J(`[bridge:repl] Initial flush dropped ${O.droppedBatchCount-nJ} batch(es) \u2014 not marking ${NJ.length} UUID(s) as flushed`);return}if(v){for(let GJ of NJ)if(GJ.uuid)v.add(GJ.uuid)}}).catch((GJ)=>J(`[bridge:repl] Initial flush failed: ${GJ}`)).finally(()=>{if(Z!==O)return;iJ(),W?.("connected")})}else iJ(),W?.("connected")}else if(!s.active)W?.("connected")}),O.setOnData((L)=>{wQ(L,$J,aJ,m,e,qZ)}),RJ=tJ,O.setOnClose((L)=>{if(Z!==O)return;tJ(L)}),!CJ&&G&&G.length>0)s.start();O.connect()};if(XJ++,R){let O=TQ(d,Q),L=XJ;J(`[bridge:repl] CCR v2: sessionUrl=${O} session=${Q} gen=${L}`),kQ({sessionUrl:O,ingressToken:$,sessionId:Q,initialSequenceNum:p}).then((u)=>{if(t.signal.aborted){u.close();return}if(L!==XJ){J(`[bridge:repl] CCR v2: discarding stale handshake gen=${L} current=${XJ}`),u.close();return}oJ(u)},(u)=>{if(J(`[bridge:repl] CCR v2: createV2ReplTransport failed: ${k(u)}`,{level:"error"}),y("tengu_bridge_repl_ccr_v2_init_failed",{}),L!==XJ)return;if(M)P.stopWork(Y,M,!1).catch((xJ)=>{J(`[bridge:repl] stopWork after v2 init failure: ${k(xJ)}`)}),M=null,jJ=null;VJ()})}else{let O=hQ(E,Q);J(`[bridge:repl] Ingress URL: ${O}`),J(`[bridge:repl] Creating HybridTransport: session=${Q}`);let L=g??"";oJ(DQ(new EQ(new URL(O),{Authorization:`Bearer ${L}`,"anthropic-version":"2023-06-01"},Q,()=>({Authorization:`Bearer ${FJ()??L}`,"anthropic-version":"2023-06-01"}),{maxConsecutiveFailures:50,isBridge:!0,onBatchDropped:()=>{W?.("reconnecting","Lost sync with Remote Control \u2014 events could not be delivered"),VJ()}})))}}};FZ(OZ);let TJ=T?setInterval(()=>{if(HJ)return;D(x,{sessionId:z,environmentId:Y,source:"repl"})},3600000):null;TJ?.unref?.();let sJ=w().session_keepalive_interval_v2_ms,DJ=sJ>0?setInterval(()=>{if(!Z)return;J("[bridge:repl] keep_alive sent"),Z.write({type:"keep_alive"}).catch((Q)=>{J(`[bridge:repl] keep_alive write failed: ${k(Q)}`)})},sJ):null;DJ?.unref?.();let kJ=!1;BJ=async()=>{if(kJ){J(`[bridge:repl] Teardown already in progress, skipping duplicate call env=${Y} session=${z}`);return}kJ=!0;let Q=Date.now();if(J(`[bridge:repl] Teardown starting: env=${Y} session=${z} workId=${M??"none"} transportState=${Z?.getStateLabel()??"null"}`),TJ!==null)clearInterval(TJ);if(DJ!==null)clearInterval(DJ);if(AJ)process.off("SIGUSR2",AJ);if(process.env.USER_TYPE==="ant")RQ(),RJ=null;if(t.abort(),J("[bridge:repl] Teardown: poll loop aborted"),Z){let X=Z.getLastSequenceNum();if(X>p)p=X}if(T){Z=null,s.drop(),await D(x,{sessionId:z,environmentId:Y,source:"repl"}),J(`[bridge:repl] Teardown (perpetual): leaving env=${Y} session=${z} alive on server, duration=${Date.now()-Q}ms`);return}let $=Z;if(Z=null,s.drop(),$)$.write(bJ(z));let N=M?P.stopWork(Y,M,!0).then(()=>{J("[bridge:repl] Teardown: stopWork completed")}).catch((X)=>{J(`[bridge:repl] Teardown stopWork failed: ${k(X)}`)}):Promise.resolve();await Promise.all([N,i(z)]),$?.close(),J("[bridge:repl] Teardown: transport closed"),await P.deregisterEnvironment(Y).catch((X)=>{J(`[bridge:repl] Teardown deregister failed: ${k(X)}`)}),await JJ(x),J(`[bridge:repl] Teardown complete: env=${Y} duration=${Date.now()-Q}ms`)};let _Z=$Q(()=>BJ?.());return J(`[bridge:repl] Ready: env=${Y} session=${z}`),W?.("ready"),{get bridgeSessionId(){return z},get environmentId(){return Y},getSSESequenceNum(){let Q=Z?.getLastSequenceNum()??0;return Math.max(p,Q)},sessionIngressUrl:E,writeMessages(Q){let $=Q.filter((R)=>vJ(R)&&!wJ.has(R.uuid)&&!$J.has(R.uuid));if($.length===0)return;if(!MJ)for(let R of $){let g=fQ(R);if(g!==void 0&&I?.(g,z)){MJ=!0;break}}if(s.enqueue(...$)){J(`[bridge:repl] Queued ${$.length} message(s) during initial flush`);return}if(!Z){let R=$.map((g)=>g.type).join(",");J(`[bridge:repl] Transport not configured, dropping ${$.length} message(s) [${R}] for session=${z}`,{level:"warn"});return}for(let R of $)$J.add(R.uuid);J(`[bridge:repl] Sending ${$.length} message(s) via transport`);let X=YJ($).map((R)=>({...R,session_id:z}));Z.writeBatch(X)},writeSdkMessages(Q){let $=Q.filter((X)=>!X.uuid||!$J.has(X.uuid));if($.length===0)return;if(!Z){J(`[bridge:repl] Transport not configured, dropping ${$.length} SDK message(s) for session=${z}`,{level:"warn"});return}for(let X of $)if(X.uuid)$J.add(X.uuid);let N=$.map((X)=>({...X,session_id:z}));Z.writeBatch(N)},sendControlRequest(Q){if(!Z){J("[bridge:repl] Transport not configured, skipping control_request");return}let $={...Q,session_id:z};Z.write($),J(`[bridge:repl] Sent control_request request_id=${Q.request_id}`)},sendControlResponse(Q){if(!Z){J("[bridge:repl] Transport not configured, skipping control_response");return}let $={...Q,session_id:z};Z.write($),J("[bridge:repl] Sent control_response")},sendControlCancelRequest(Q){if(!Z){J("[bridge:repl] Transport not configured, skipping control_cancel_request");return}let $={type:"control_cancel_request",request_id:Q,session_id:z};Z.write($),J(`[bridge:repl] Sent control_cancel_request request_id=${Q}`)},sendResult(){if(!Z){J(`[bridge:repl] sendResult: skipping, transport not configured session=${z}`);return}Z.write(bJ(z)),J(`[bridge:repl] Sent result for session=${z}`)},async teardown(){_Z(),await BJ?.(),J("[bridge:repl] Torn down"),y("tengu_bridge_repl_teardown",{})}}}async function FZ({api:C,getCredentials:x,signal:U,onStateChange:_,onWorkReceived:b,onEnvironmentLost:S,getWsState:d,isAtCapacity:E,capacitySignal:c,onFatalError:n,getPollIntervalConfig:r=()=>pJ,getHeartbeatInfo:i,onHeartbeatFatal:ZJ}){J(`[bridge:repl] Starting work poll loop for env=${x().environmentId}`);let f=0,w=null,F=null,G=0,v=!1;while(!U.aborted){let{environmentId:m,environmentSecret:e}=x(),l=r();try{let V=await C.pollForWork(m,e,U,l.reclaim_older_than_ms);if(G=0,f>0)J(`[bridge:repl] Poll recovered after ${f} consecutive error(s)`),f=0,w=null,F=null,_?.("ready");if(!V){let B=v;if(v=!1,E?.()&&c&&!B){let W=l.poll_interval_ms_at_capacity;if(l.non_exclusive_heartbeat_interval_ms>0&&i){y("tengu_bridge_heartbeat_mode_entered",{heartbeat_interval_ms:l.non_exclusive_heartbeat_interval_ms});let T=W>0?Date.now()+W:null,a=!1,q=0;while(!U.aborted&&E()&&(T===null||Date.now()<T)){let JJ=r();if(JJ.non_exclusive_heartbeat_interval_ms<=0)break;let j=i();if(!j)break;let H=c();try{await C.heartbeatWork(j.environmentId,j.workId,j.sessionToken)}catch(K){if(J(`[bridge:repl:heartbeat] Failed: ${k(K)}`),K instanceof UJ){if(H.cleanup(),y("tengu_bridge_heartbeat_error",{status:K.status,error_type:K.status===401||K.status===403?"auth_failed":"fatal"}),ZJ)ZJ(K),J(`[bridge:repl:heartbeat] Fatal (status=${K.status}), work state cleared \u2014 fast-polling for re-dispatch`);else a=!0;break}}q++,await OJ(JJ.non_exclusive_heartbeat_interval_ms,H.signal),H.cleanup()}let D=a?"error":U.aborted?"shutdown":!E()?"capacity_changed":T!==null&&Date.now()>=T?"poll_due":"config_disabled";if(y("tengu_bridge_heartbeat_mode_exited",{reason:D,heartbeat_cycles:q}),!a){if(D==="poll_due")J(`[bridge:repl] Heartbeat poll_due after ${q} cycles \u2014 falling through to pollForWork`);continue}}let I=W>0?W:l.non_exclusive_heartbeat_interval_ms;if(I>0){let T=c(),a=Date.now();await OJ(I,T.signal),T.cleanup();let q=Date.now()-a-I;if(q>60000)J(`[bridge:repl] At-capacity sleep overran by ${Math.round(q/1000)}s \u2014 process suspension detected, forcing one fast-poll cycle`),y("tengu_bridge_repl_suspension_detected",{overrun_ms:q}),v=!0}}else await OJ(l.poll_interval_ms_not_at_capacity,U);continue}let h;try{h=FQ(V.secret)}catch(B){J(`[bridge:repl] Failed to decode work secret: ${k(B)}`),y("tengu_bridge_repl_work_secret_failed",{}),await C.stopWork(m,V.id,!1).catch(()=>{});continue}J(`[bridge:repl] Acknowledging workId=${V.id}`);try{await C.acknowledgeWork(m,V.id,h.session_ingress_token)}catch(B){J(`[bridge:repl] Acknowledge failed workId=${V.id}: ${k(B)}`)}if(V.data.type==="healthcheck"){J("[bridge:repl] Healthcheck received");continue}if(V.data.type==="session"){let B=V.data.id;try{_Q(B,"session_id")}catch{J(`[bridge:repl] Invalid session_id in work: ${B}`);continue}b(B,h.session_ingress_token,V.id,h.use_code_sessions===!0),J("[bridge:repl] Work accepted, continuing poll loop")}}catch(V){if(U.aborted)break;if(V instanceof UJ&&V.status===404&&S){let q=x().environmentId;if(m!==q){J(`[bridge:repl] Stale poll error for old env=${m}, current env=${q} \u2014 skipping onEnvironmentLost`),f=0,w=null;continue}if(G++,J(`[bridge:repl] Environment deleted, attempting re-registration (attempt ${G}/3)`),y("tengu_bridge_repl_env_lost",{attempt:G}),G>3){J("[bridge:repl] Environment re-registration limit reached (3), giving up"),_?.("failed","Environment deleted and re-registration limit reached"),n?.();break}_?.("reconnecting","environment lost, recreating session");let D=await S();if(U.aborted)break;if(D){f=0,w=null,_?.("ready"),J(`[bridge:repl] Re-registered environment: ${D.environmentId}`);continue}_?.("failed","Environment deleted and re-registration failed"),n?.();break}if(V instanceof UJ){let q=LQ(V.errorType),D=yQ(V);if(J(`[bridge:repl] Fatal poll error: ${V.message} (status=${V.status}, type=${V.errorType??"unknown"})${D?" (suppressed)":""}`),y("tengu_bridge_repl_fatal_error",{status:V.status,error_type:V.errorType}),WJ(q?"info":"error","bridge_repl_fatal_error",{status:V.status,error_type:V.errorType}),!D)_?.("failed",q?"session expired \xB7 /remote-control to reconnect":V.message);n?.();break}let h=Date.now();if(F!==null&&h-F>JQ*2)J(`[bridge:repl] Detected system sleep (${Math.round((h-F)/1000)}s gap), resetting poll error budget`),WJ("info","bridge_repl_poll_sleep_detected",{gapMs:h-F}),f=0,w=null;if(F=h,f++,w===null)w=h;let B=h-w,W=NQ(V),I=WQ(V),T=d?.()??"unknown";if(J(`[bridge:repl] Poll error (attempt ${f}, elapsed ${Math.round(B/1000)}s, ws=${T}): ${I}`),y("tengu_bridge_repl_poll_error",{status:W,consecutiveErrors:f,elapsedMs:B}),f===1)_?.("reconnecting",I);if(B>=QQ){J(`[bridge:repl] Poll failures exceeded ${QQ/1000}s (${f} errors), giving up`),WJ("info","bridge_repl_poll_give_up"),y("tengu_bridge_repl_poll_give_up",{consecutiveErrors:f,elapsedMs:B,lastStatus:W}),_?.("failed","connection to server lost");break}let a=Math.min(MZ*2**(f-1),JQ);if(r().non_exclusive_heartbeat_interval_ms>0){let q=i?.();if(q)try{await C.heartbeatWork(q.environmentId,q.workId,q.sessionToken)}catch{}}await OJ(a,U)}}J(`[bridge:repl] Work poll loop ended (aborted=${U.aborted}) env=${x().environmentId}`)}HQ();async function d0(C){let{onInboundMessage:x,onPermissionResponse:U,onInterrupt:_,onSetModel:b,onSetMaxThinkingTokens:S,onSetPermissionMode:d,onStateChange:E,initialMessages:c,getMessages:n,previouslyFlushedUUIDs:r,initialName:i,perpetual:ZJ,outboundOnly:YJ,tags:f}=C??{};if(iQ(ZZ),!await JZ())return o("not_enabled","[bridge:repl] Skipping: bridge not enabled"),null;if(!KJ())return o("no_oauth","[bridge:repl] Skipping: no OAuth tokens"),E?.("failed","/login"),null;if(await tQ(),!sQ("allow_remote_control"))return o("policy_denied","[bridge:repl] Skipping: allow_remote_control policy not allowed"),E?.("failed","disabled by your organization's policy"),null;if(!zZ()){let j=gQ();if(j.bridgeOauthDeadExpiresAt!=null&&(j.bridgeOauthDeadFailCount??0)>=3&&cJ()?.expiresAt===j.bridgeOauthDeadExpiresAt)return J(`[bridge:repl] Skipping: cross-process backoff (dead token seen ${j.bridgeOauthDeadFailCount} times)`),null;await dQ();let H=cJ();if(H&&H.expiresAt!==null&&H.expiresAt<=Date.now()){o("oauth_expired_unrefreshable","[bridge:repl] Skipping: OAuth token expired and refresh failed (re-login required)"),E?.("failed","/login");let K=H.expiresAt;return aQ((A)=>({...A,bridgeOauthDeadExpiresAt:K,bridgeOauthDeadFailCount:A.bridgeOauthDeadExpiresAt===K?(A.bridgeOauthDeadFailCount??0)+1:1})),null}}let w=KZ(),F=`remote-control-${oQ()}`,G=!1,v=!1;if(i)F=i,G=!0,v=!0;else{let j=_J(),H=j?qJ(j):void 0;if(H)F=H,G=!0,v=!0;else if(c&&c.length>0)for(let K=c.length-1;K>=0;K--){let A=c[K];if(A.type!=="user"||A.isMeta||A.toolUseResult||A.isCompactSummary||A.origin&&A.origin.kind!=="human"||nQ(A))continue;let P=rQ(A.message.content);if(!P)continue;let QJ=bQ(P);if(!QJ)continue;F=QJ,G=!0;break}}let m=0,e,l=0,V=(j,H,K)=>{G=!0,F=j,J(`[bridge:repl] derived title from message ${K}: ${j}`),HZ(H,j,{baseUrl:w,getAccessToken:KJ}).catch(()=>{})},h=(j,H)=>{let K=++l,A=m;XZ(j,AbortSignal.timeout(15000)).then((P)=>{if(P&&K===l&&e===H&&!qJ(_J()))V(P,H,A)})},B=(j,H)=>{if(v||qJ(_J()))return!0;if(e!==void 0&&e!==H)m=0;if(e=H,m++,m===1&&!G){let K=bQ(j);if(K)V(K,H,m);h(j,H)}else if(m===3){let K=n?.(),A=K?YZ(eQ(K)):j;h(A,H)}return m>=3},W=lQ("tengu_bridge_initial_history_cap",200,300000),I=await uQ();if(!I)return o("no_org_uuid","[bridge:repl] Skipping: no org UUID"),E?.("failed","/login"),null;if(QZ()&&!ZJ){let j=await GZ();if(j)return o("version_too_old",`[bridge:repl] Skipping: ${j}`,!0),E?.("failed","run `claude update` to upgrade"),null;J("[bridge:repl] Using env-less bridge path (tengu_bridge_repl_v2)");let{initEnvLessBridgeCore:H}=await import("./remoteBridgeCore-t980tt3v.js");return H({baseUrl:w,orgUUID:I,title:F,getAccessToken:KJ,onAuth401:uJ,toSDKMessages:dJ,initialHistoryCap:W,initialMessages:c,onInboundMessage:x,onUserMessage:B,onPermissionResponse:U,onInterrupt:_,onSetModel:b,onSetMaxThinkingTokens:S,onSetPermissionMode:d,onStateChange:E,outboundOnly:YJ,tags:f})}let T=$Z();if(T)return o("version_too_old",`[bridge:repl] Skipping: ${T}`),E?.("failed","run `claude update` to upgrade"),null;let a=await pQ(),q=await cQ(),D=process.env.USER_TYPE==="ant"&&process.env.CLAUDE_BRIDGE_SESSION_INGRESS_URL?process.env.CLAUDE_BRIDGE_SESSION_INGRESS_URL:w,JJ="claude_code";return mQ({dir:SQ(),machineName:gZ(),branch:a,gitRepoUrl:q,title:F,baseUrl:w,sessionIngressUrl:D,workerType:JJ,getAccessToken:KJ,createSession:(j)=>jZ({...j,events:[],baseUrl:w,getAccessToken:KJ}),archiveSession:(j)=>VZ(j,{baseUrl:w,getAccessToken:KJ,timeoutMs:1500}).catch((H)=>{J(`[bridge:repl] archiveBridgeSession threw: ${k(H)}`,{level:"error"})}),getCurrentTitle:()=>qJ(_J())??F,onUserMessage:B,toSDKMessages:dJ,onAuth401:uJ,getPollIntervalConfig:xZ,initialHistoryCap:W,initialMessages:c,previouslyFlushedUUIDs:r,onInboundMessage:x,onPermissionResponse:U,onInterrupt:_,onSetModel:b,onSetMaxThinkingTokens:S,onSetPermissionMode:d,onStateChange:E,perpetual:ZJ})}var vQ=50;function bQ(C){let x=IQ(C),_=(/^(.*?[.!?])\s/.exec(x)?.[1]??x).replace(/\s+/g," ").trim();if(!_)return;return _.length>vQ?_.slice(0,vQ-1)+"\u2026":_}export{d0 as initReplBridge};
|
|
2
|
+
import{i as pJ,j as xZ,l as EQ}from"./cli-kc4b0z3x.js";import{n as GZ,o as FQ,p as hQ,q as IJ,r as TQ,s as DQ,t as kQ,u as CQ}from"./cli-7q6tcs56.js";import"./cli-vrs8hpz4.js";import{Aa as vJ,Ba as fQ,Ca as wQ,Da as MQ,Ea as bJ,Fa as SJ}from"./cli-4dj4x3mr.js";import"./cli-mq300hkq.js";import{Wb as dJ,Zb as lZ}from"./cli-ex1phpwq.js";import{_b as jZ,ac as VZ,bc as HZ,cc as dZ}from"./cli-7xgc2882.js";import{dc as zZ,fc as KJ,gc as KZ,hc as cZ}from"./cli-ms2tdrrf.js";import{kc as YZ,lc as XZ,mc as uZ}from"./cli-mae5am6a.js";import{Je as JZ,Ke as QZ,Le as ZZ,Me as $Z,Ne as pZ}from"./cli-aevjtty8.js";import{$z as fZ,AG as qQ,BG as LQ,CG as yQ,DG as BQ,EG as AQ,FG as RQ,GG as PQ,HG as UQ,IG as wZ,LE as rQ,QI as aZ,TE as eQ,XE as IZ,Yq as tQ,Zq as sQ,Zz as GQ,ar as bZ,bw as oQ,cw as SZ,eI as qJ,gE as nQ,yG as _Q,zG as UJ}from"./cli-63389c5w.js";import{QK as mJ,RK as PZ}from"./cli-0ybyvcx6.js";import{aL as xQ,eL as UZ}from"./cli-eys4epws.js";import"./cli-tj8fyjds.js";import"./cli-0th9dbz0.js";import"./cli-4c9nnszs.js";import"./cli-ndrvqgnc.js";import"./cli-d8qkvmdn.js";import"./cli-k3b5ctgk.js";import"./cli-8hpg8nq4.js";import"./cli-8ayzxqxm.js";import"./cli-q33bj7n5.js";import"./cli-a1ejrtbd.js";import"./cli-ey3ajcbm.js";import"./cli-39xs60x2.js";import"./cli-z1f33m31.js";import{BO as WQ,CO as NQ,EO as o,FO as OQ,vO as iQ,wO as jQ,xO as VQ,zO as HQ}from"./cli-10j9svm7.js";import"./cli-vbn35zp3.js";import"./cli-7dm5ex18.js";import"./cli-qhefvb54.js";import"./cli-b2fkrk49.js";import"./cli-p853vxnx.js";import"./cli-w1y2zvbw.js";import"./cli-dc6wqdxq.js";import"./cli-q93jv7x6.js";import"./cli-q6atnwff.js";import"./cli-rv4z0bsv.js";import"./cli-zqj1my2v.js";import"./cli-r29k5h5x.js";import"./cli-tnbyhfne.js";import"./cli-zxz1xm2y.js";import"./cli-qa0qmmg4.js";import"./cli-stjsr4fx.js";import"./cli-mqkqq3ye.js";import"./cli-zxrt2zch.js";import{K1 as CZ,LX as uQ,OX as kZ,S3 as vZ,T2 as lQ,c3 as mZ,g1 as cJ,i1 as uJ,k1 as dQ,w3 as aQ,z3 as gQ}from"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import"./cli-epetmtbs.js";import"./cli-e5vc9y1s.js";import"./cli-3q4bcd9y.js";import{F5 as OJ,G5 as RZ}from"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-a2f4j8s5.js";import{E7 as DZ,S6 as WJ,U6 as AZ,n7 as pQ,p7 as cQ}from"./cli-v86f53k0.js";import"./cli-ymqdnbx2.js";import"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import{A8 as TZ,y8 as IQ}from"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import"./cli-dp2jt8fs.js";import{a9 as y,b9 as LZ}from"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import{$9 as k,C_ as XQ,O9 as $Q,Q9 as yZ,f_ as YQ,z_ as J}from"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import{M_ as zQ,U_ as KQ,W_ as BZ}from"./cli-hy0se8fa.js";import{fda as hZ,i$ as _J,o$ as SQ}from"./cli-ktzb7cwm.js";import{kda as ZQ}from"./cli-2afdzhna.js";hZ();mZ();kZ();bZ();CZ();vZ();XQ();TZ();YQ();DZ();lZ();IZ();aZ();uZ();SZ();cZ();pZ();dZ();OQ();import{hostname as gZ}from"os";BQ();XQ();AZ();LZ();yZ();import{randomUUID as eJ}from"crypto";HQ();fZ();UZ();PZ();BZ();BQ();OQ();function rJ(C){let x=new AbortController;function U(){x.abort(),x=new AbortController}function _(){let b=new AbortController,S=()=>b.abort();if(C.aborted||x.signal.aborted)return b.abort(),{signal:b.signal,cleanup:()=>{}};C.addEventListener("abort",S,{once:!0});let d=x.signal;return d.addEventListener("abort",S,{once:!0}),{signal:b.signal,cleanup:()=>{C.removeEventListener("abort",S),d.removeEventListener("abort",S)}}}return{signal:_,wake:U}}YQ();RZ();wZ();var MZ=2000,JQ=60000,QQ=900000,EZ=0;async function mQ(C){let{dir:x,machineName:U,branch:_,gitRepoUrl:b,title:S,baseUrl:d,sessionIngressUrl:E,workerType:c,getAccessToken:n,createSession:r,archiveSession:i,getCurrentTitle:ZJ=()=>S,toSDKMessages:YJ=()=>{throw Error("BridgeCoreParams.toSDKMessages not provided. Pass it if you use writeMessages() or initialMessages \u2014 daemon callers that only use writeSdkMessages() never hit this path.")},onAuth401:f,getPollIntervalConfig:w=()=>pJ,initialHistoryCap:F=200,initialMessages:G,previouslyFlushedUUIDs:v,onInboundMessage:m,onPermissionResponse:e,onInterrupt:l,onSetModel:V,onSetMaxThinkingTokens:h,onSetPermissionMode:B,onStateChange:W,onUserMessage:I,perpetual:T,initialSSESequenceNum:a=0}=C,q=++EZ,{writeBridgePointer:D,clearBridgePointer:JJ,readBridgePointer:j}=await import("./bridgePointer-73w5dbak.js"),H=T?await j(x):null,K=H?.source==="repl"?H:null;J(`[bridge:repl] initBridgeCore #${q} starting (initialMessages=${G?.length??0}${K?` perpetual prior=env:${K.environmentId}`:""})`);let A=qQ({baseUrl:d,getAccessToken:n,runnerVersion:MACRO.VERSION,onDebug:J,onAuth401:f,getTrustedDeviceToken:xQ}),P=process.env.USER_TYPE==="ant"?UQ(A):A,QJ={dir:x,machineName:U,branch:_,gitRepoUrl:b,maxSessions:1,spawnMode:"single-session",verbose:!1,sandbox:!1,bridgeId:eJ(),workerType:c,environmentId:eJ(),reuseEnvironmentId:K?.environmentId,apiBaseUrl:d,sessionIngressUrl:E},Y,LJ;try{let Q=await P.registerBridgeEnvironment(QJ);Y=Q.environment_id,LJ=Q.environment_secret}catch(Q){if(o("registration_failed",`[bridge:repl] Environment registration failed: ${k(Q)}`),K)await JJ(x);return W?.("failed",k(Q)),null}J(`[bridge:repl] Environment registered: ${Y}`),WJ("info","bridge_repl_env_registered"),y("tengu_bridge_repl_env_registered",{});async function lJ(Q,$){if(Y!==Q)return J(`[bridge:repl] Env mismatch (requested ${Q}, got ${Y}) \u2014 cannot reconnect in place`),!1;let N=VQ($),X=N===$?[$]:[$,N];for(let R of X)try{return await P.reconnectSession(Y,R),J(`[bridge:repl] Reconnected session ${R} in place on env ${Y}`),!0}catch(g){J(`[bridge:repl] reconnectSession(${R}) failed: ${k(g)}`)}return J("[bridge:repl] reconnectSession exhausted \u2014 falling through to fresh session"),!1}let fJ=K?await lJ(K.environmentId,K.sessionId):!1;if(K&&!fJ)await JJ(x);let z;if(fJ&&K){if(z=K.sessionId,J(`[bridge:repl] Perpetual session reused: ${z}`),G&&v)for(let Q of G)v.add(Q.uuid)}else{let Q=await r({environmentId:Y,title:S,gitRepoUrl:b,branch:_,signal:AbortSignal.timeout(15000)});if(!Q)return J("[bridge:repl] Session creation failed, deregistering environment"),y("tengu_bridge_repl_session_failed",{}),await P.deregisterEnvironment(Y).catch(()=>{}),W?.("failed","Session creation failed"),null;z=Q,J(`[bridge:repl] Session created: ${z}`)}await D(x,{sessionId:z,environmentId:Y,source:"repl"}),WJ("info","bridge_repl_session_created"),y("tengu_bridge_repl_started",{has_initial_messages:!!(G&&G.length>0),inProtectedNamespace:KQ()});let wJ=new Set;if(G)for(let Q of G)wJ.add(Q.uuid);let $J=new SJ(2000);for(let Q of wJ)$J.add(Q);let aJ=new SJ(2000),t=new AbortController,Z=null,XJ=0,p=fJ?a:0,M=null,jJ=null,gJ=rJ(t.signal),VJ=gJ.wake,WZ=gJ.signal,s=new CQ,MJ=!I,EJ=3,zJ=0,HJ=null;async function yJ(){if(HJ)return HJ;HJ=NZ();try{return await HJ}finally{HJ=null}}async function NZ(){if(zJ++,XJ++,J(`[bridge:repl] Reconnecting after env lost (attempt ${zJ}/${EJ})`),zJ>EJ)return J(`[bridge:repl] Environment reconnect limit reached (${EJ}), giving up`),!1;if(Z){let X=Z.getLastSequenceNum();if(X>p)p=X;Z.close(),Z=null}if(VJ(),s.drop(),M){let X=M;if(await P.stopWork(Y,X,!1).catch(()=>{}),M!==X)return J("[bridge:repl] Poll loop recovered during stopWork await \u2014 deferring to it"),zJ=0,!0;M=null,jJ=null}if(t.signal.aborted)return J("[bridge:repl] Reconnect aborted by teardown"),!1;let Q=Y;QJ.reuseEnvironmentId=Q;try{let X=await P.registerBridgeEnvironment(QJ);Y=X.environment_id,LJ=X.environment_secret}catch(X){return QJ.reuseEnvironmentId=void 0,J(`[bridge:repl] Environment re-registration failed: ${k(X)}`),!1}if(QJ.reuseEnvironmentId=void 0,J(`[bridge:repl] Re-registered: requested=${Q} got=${Y}`),t.signal.aborted)return J("[bridge:repl] Reconnect aborted after env registration, cleaning up"),await P.deregisterEnvironment(Y).catch(()=>{}),!1;if(Z!==null)return J("[bridge:repl] Poll loop recovered during registerBridgeEnvironment await \u2014 deferring to it"),zJ=0,!0;if(await lJ(Q,z))return y("tengu_bridge_repl_reconnected_in_place",{}),zJ=0,!0;if(Y!==Q)y("tengu_bridge_repl_env_expired_fresh_session",{});if(await i(z),t.signal.aborted)return J("[bridge:repl] Reconnect aborted after archive, cleaning up"),await P.deregisterEnvironment(Y).catch(()=>{}),!1;let $=ZJ(),N=await r({environmentId:Y,title:$,gitRepoUrl:b,branch:_,signal:AbortSignal.timeout(15000)});if(!N)return J("[bridge:repl] Session creation failed during reconnection"),!1;if(t.signal.aborted)return J("[bridge:repl] Reconnect aborted after session creation, cleaning up"),await i(N),!1;return z=N,GQ(jQ(N)).catch(()=>{}),p=0,aJ.clear(),MJ=!I,J(`[bridge:repl] Re-created session: ${z}`),await D(x,{sessionId:z,environmentId:Y,source:"repl"}),v?.clear(),zJ=0,!0}function FJ(){return n()}function iJ(){let Q=s.end();if(Q.length===0)return;if(!Z){J(`[bridge:repl] Cannot drain ${Q.length} pending message(s): no transport`);return}for(let X of Q)$J.add(X.uuid);let N=YJ(Q).map((X)=>({...X,session_id:z}));J(`[bridge:repl] Drained ${Q.length} pending message(s) after flush`),Z.writeBatch(N)}let BJ=null;function hJ(){BJ?.()}function tJ(Q){if(J(`[bridge:repl] Transport permanently closed: code=${Q}`),y("tengu_bridge_repl_ws_closed",{code:Q}),Z){let N=Z.getLastSequenceNum();if(N>p)p=N;Z=null}VJ();let $=s.drop();if($>0)J(`[bridge:repl] Dropping ${$} pending message(s) on transport close (code=${Q})`,{level:"warn"});if(Q===1000){W?.("failed","session ended"),t.abort(),hJ();return}W?.("reconnecting",`Remote Control connection lost (code ${Q})`),J(`[bridge:repl] Transport reconnect budget exhausted (code=${Q}), attempting env reconnect`),yJ().then((N)=>{if(N)return;if(t.signal.aborted)return;J("[bridge:repl] reconnectEnvironmentWithSession resolved false \u2014 tearing down"),y("tengu_bridge_repl_reconnect_failed",{close_code:Q}),W?.("failed","reconnection failed"),hJ()})}let AJ;if(process.env.USER_TYPE==="ant"&&process.platform!=="win32")AJ=()=>{J("[bridge:repl] SIGUSR2 received \u2014 forcing doReconnect() for testing"),yJ()},process.on("SIGUSR2",AJ);let RJ=null;if(process.env.USER_TYPE==="ant")AQ({fireClose:(Q)=>{if(!RJ){J("[bridge:debug] fireClose: no transport wired yet");return}J(`[bridge:debug] fireClose(${Q}) \u2014 injecting`),RJ(Q)},forceReconnect:()=>{J("[bridge:debug] forceReconnect \u2014 injecting"),yJ()},injectFault:PQ,wakePollLoop:VJ,describe:()=>`env=${Y} session=${z} transport=${Z?.getStateLabel()??"null"} workId=${M??"null"}`});let OZ={api:P,getCredentials:()=>({environmentId:Y,environmentSecret:LJ}),signal:t.signal,getPollIntervalConfig:w,onStateChange:W,getWsState:()=>Z?.getStateLabel()??"null",isAtCapacity:()=>Z!==null,capacitySignal:WZ,onFatalError:hJ,getHeartbeatInfo:()=>{if(!M||!jJ)return null;return{environmentId:Y,workId:M,sessionToken:jJ}},onHeartbeatFatal:(Q)=>{if(J(`[bridge:repl] heartbeatWork fatal (status=${Q.status}) \u2014 tearing down work item for fast re-dispatch`),Z){let $=Z.getLastSequenceNum();if($>p)p=$;Z.close(),Z=null}if(s.drop(),M)P.stopWork(Y,M,!1).catch(($)=>{J(`[bridge:repl] stopWork after heartbeat fatal: ${k($)}`)});M=null,jJ=null,VJ(),W?.("reconnecting","Work item lease expired, fetching fresh token")},async onEnvironmentLost(){if(!await yJ())return null;return{environmentId:Y,environmentSecret:LJ}},onWorkReceived:(Q,$,N,X)=>{if(Z?.isConnectedStatus())J(`[bridge:repl] Work received while transport connected, replacing with fresh token (workId=${N})`);if(J(`[bridge:repl] Work received: workId=${N} workSessionId=${Q} currentSessionId=${z} match=${IJ(Q,z)}`),D(x,{sessionId:z,environmentId:Y,source:"repl"}),!IJ(Q,z)){J(`[bridge:repl] Rejecting foreign session: expected=${z} got=${Q}`);return}M=N,jJ=$;let R=X||zQ(process.env.CLAUDE_BRIDGE_USE_CCR_V2),g;if(!R){if(g=FJ(),!g){J("[bridge:repl] No OAuth token available for session ingress, skipping work");return}mJ(g)}if(y("tengu_bridge_repl_work_received",{}),Z){let O=Z;Z=null;let L=O.getLastSequenceNum();if(L>p)p=L;O.close()}s.deactivate();let qZ=(O)=>MQ(O,{transport:Z,sessionId:z,onInterrupt:l,onSetModel:V,onSetMaxThinkingTokens:h,onSetPermissionMode:B}),CJ=!1,oJ=(O)=>{if(Z=O,O.setOnConnect(()=>{if(Z!==O)return;if(J("[bridge:repl] Ingress transport connected"),y("tengu_bridge_repl_ws_connected",{}),!R){let L=FJ();if(L)mJ(L)}if(kJ=!1,!CJ&&G&&G.length>0){CJ=!0;let L=F,u=G.filter((PJ)=>vJ(PJ)&&!v?.has(PJ.uuid)),xJ=L>0&&u.length>L?u.slice(-L):u;if(xJ.length<u.length)J(`[bridge:repl] Capped initial flush: ${u.length} -> ${xJ.length} (cap=${L})`),y("tengu_bridge_repl_history_capped",{eligible_count:u.length,capped_count:xJ.length});let NJ=YJ(xJ);if(NJ.length>0){J(`[bridge:repl] Flushing ${NJ.length} initial message(s) via transport`);let PJ=NJ.map((GJ)=>({...GJ,session_id:z})),nJ=O.droppedBatchCount;O.writeBatch(PJ).then(()=>{if(O.droppedBatchCount>nJ){J(`[bridge:repl] Initial flush dropped ${O.droppedBatchCount-nJ} batch(es) \u2014 not marking ${NJ.length} UUID(s) as flushed`);return}if(v){for(let GJ of NJ)if(GJ.uuid)v.add(GJ.uuid)}}).catch((GJ)=>J(`[bridge:repl] Initial flush failed: ${GJ}`)).finally(()=>{if(Z!==O)return;iJ(),W?.("connected")})}else iJ(),W?.("connected")}else if(!s.active)W?.("connected")}),O.setOnData((L)=>{wQ(L,$J,aJ,m,e,qZ)}),RJ=tJ,O.setOnClose((L)=>{if(Z!==O)return;tJ(L)}),!CJ&&G&&G.length>0)s.start();O.connect()};if(XJ++,R){let O=TQ(d,Q),L=XJ;J(`[bridge:repl] CCR v2: sessionUrl=${O} session=${Q} gen=${L}`),kQ({sessionUrl:O,ingressToken:$,sessionId:Q,initialSequenceNum:p}).then((u)=>{if(t.signal.aborted){u.close();return}if(L!==XJ){J(`[bridge:repl] CCR v2: discarding stale handshake gen=${L} current=${XJ}`),u.close();return}oJ(u)},(u)=>{if(J(`[bridge:repl] CCR v2: createV2ReplTransport failed: ${k(u)}`,{level:"error"}),y("tengu_bridge_repl_ccr_v2_init_failed",{}),L!==XJ)return;if(M)P.stopWork(Y,M,!1).catch((xJ)=>{J(`[bridge:repl] stopWork after v2 init failure: ${k(xJ)}`)}),M=null,jJ=null;VJ()})}else{let O=hQ(E,Q);J(`[bridge:repl] Ingress URL: ${O}`),J(`[bridge:repl] Creating HybridTransport: session=${Q}`);let L=g??"";oJ(DQ(new EQ(new URL(O),{Authorization:`Bearer ${L}`,"anthropic-version":"2023-06-01"},Q,()=>({Authorization:`Bearer ${FJ()??L}`,"anthropic-version":"2023-06-01"}),{maxConsecutiveFailures:50,isBridge:!0,onBatchDropped:()=>{W?.("reconnecting","Lost sync with Remote Control \u2014 events could not be delivered"),VJ()}})))}}};FZ(OZ);let TJ=T?setInterval(()=>{if(HJ)return;D(x,{sessionId:z,environmentId:Y,source:"repl"})},3600000):null;TJ?.unref?.();let sJ=w().session_keepalive_interval_v2_ms,DJ=sJ>0?setInterval(()=>{if(!Z)return;J("[bridge:repl] keep_alive sent"),Z.write({type:"keep_alive"}).catch((Q)=>{J(`[bridge:repl] keep_alive write failed: ${k(Q)}`)})},sJ):null;DJ?.unref?.();let kJ=!1;BJ=async()=>{if(kJ){J(`[bridge:repl] Teardown already in progress, skipping duplicate call env=${Y} session=${z}`);return}kJ=!0;let Q=Date.now();if(J(`[bridge:repl] Teardown starting: env=${Y} session=${z} workId=${M??"none"} transportState=${Z?.getStateLabel()??"null"}`),TJ!==null)clearInterval(TJ);if(DJ!==null)clearInterval(DJ);if(AJ)process.off("SIGUSR2",AJ);if(process.env.USER_TYPE==="ant")RQ(),RJ=null;if(t.abort(),J("[bridge:repl] Teardown: poll loop aborted"),Z){let X=Z.getLastSequenceNum();if(X>p)p=X}if(T){Z=null,s.drop(),await D(x,{sessionId:z,environmentId:Y,source:"repl"}),J(`[bridge:repl] Teardown (perpetual): leaving env=${Y} session=${z} alive on server, duration=${Date.now()-Q}ms`);return}let $=Z;if(Z=null,s.drop(),$)$.write(bJ(z));let N=M?P.stopWork(Y,M,!0).then(()=>{J("[bridge:repl] Teardown: stopWork completed")}).catch((X)=>{J(`[bridge:repl] Teardown stopWork failed: ${k(X)}`)}):Promise.resolve();await Promise.all([N,i(z)]),$?.close(),J("[bridge:repl] Teardown: transport closed"),await P.deregisterEnvironment(Y).catch((X)=>{J(`[bridge:repl] Teardown deregister failed: ${k(X)}`)}),await JJ(x),J(`[bridge:repl] Teardown complete: env=${Y} duration=${Date.now()-Q}ms`)};let _Z=$Q(()=>BJ?.());return J(`[bridge:repl] Ready: env=${Y} session=${z}`),W?.("ready"),{get bridgeSessionId(){return z},get environmentId(){return Y},getSSESequenceNum(){let Q=Z?.getLastSequenceNum()??0;return Math.max(p,Q)},sessionIngressUrl:E,writeMessages(Q){let $=Q.filter((R)=>vJ(R)&&!wJ.has(R.uuid)&&!$J.has(R.uuid));if($.length===0)return;if(!MJ)for(let R of $){let g=fQ(R);if(g!==void 0&&I?.(g,z)){MJ=!0;break}}if(s.enqueue(...$)){J(`[bridge:repl] Queued ${$.length} message(s) during initial flush`);return}if(!Z){let R=$.map((g)=>g.type).join(",");J(`[bridge:repl] Transport not configured, dropping ${$.length} message(s) [${R}] for session=${z}`,{level:"warn"});return}for(let R of $)$J.add(R.uuid);J(`[bridge:repl] Sending ${$.length} message(s) via transport`);let X=YJ($).map((R)=>({...R,session_id:z}));Z.writeBatch(X)},writeSdkMessages(Q){let $=Q.filter((X)=>!X.uuid||!$J.has(X.uuid));if($.length===0)return;if(!Z){J(`[bridge:repl] Transport not configured, dropping ${$.length} SDK message(s) for session=${z}`,{level:"warn"});return}for(let X of $)if(X.uuid)$J.add(X.uuid);let N=$.map((X)=>({...X,session_id:z}));Z.writeBatch(N)},sendControlRequest(Q){if(!Z){J("[bridge:repl] Transport not configured, skipping control_request");return}let $={...Q,session_id:z};Z.write($),J(`[bridge:repl] Sent control_request request_id=${Q.request_id}`)},sendControlResponse(Q){if(!Z){J("[bridge:repl] Transport not configured, skipping control_response");return}let $={...Q,session_id:z};Z.write($),J("[bridge:repl] Sent control_response")},sendControlCancelRequest(Q){if(!Z){J("[bridge:repl] Transport not configured, skipping control_cancel_request");return}let $={type:"control_cancel_request",request_id:Q,session_id:z};Z.write($),J(`[bridge:repl] Sent control_cancel_request request_id=${Q}`)},sendResult(){if(!Z){J(`[bridge:repl] sendResult: skipping, transport not configured session=${z}`);return}Z.write(bJ(z)),J(`[bridge:repl] Sent result for session=${z}`)},async teardown(){_Z(),await BJ?.(),J("[bridge:repl] Torn down"),y("tengu_bridge_repl_teardown",{})}}}async function FZ({api:C,getCredentials:x,signal:U,onStateChange:_,onWorkReceived:b,onEnvironmentLost:S,getWsState:d,isAtCapacity:E,capacitySignal:c,onFatalError:n,getPollIntervalConfig:r=()=>pJ,getHeartbeatInfo:i,onHeartbeatFatal:ZJ}){J(`[bridge:repl] Starting work poll loop for env=${x().environmentId}`);let f=0,w=null,F=null,G=0,v=!1;while(!U.aborted){let{environmentId:m,environmentSecret:e}=x(),l=r();try{let V=await C.pollForWork(m,e,U,l.reclaim_older_than_ms);if(G=0,f>0)J(`[bridge:repl] Poll recovered after ${f} consecutive error(s)`),f=0,w=null,F=null,_?.("ready");if(!V){let B=v;if(v=!1,E?.()&&c&&!B){let W=l.poll_interval_ms_at_capacity;if(l.non_exclusive_heartbeat_interval_ms>0&&i){y("tengu_bridge_heartbeat_mode_entered",{heartbeat_interval_ms:l.non_exclusive_heartbeat_interval_ms});let T=W>0?Date.now()+W:null,a=!1,q=0;while(!U.aborted&&E()&&(T===null||Date.now()<T)){let JJ=r();if(JJ.non_exclusive_heartbeat_interval_ms<=0)break;let j=i();if(!j)break;let H=c();try{await C.heartbeatWork(j.environmentId,j.workId,j.sessionToken)}catch(K){if(J(`[bridge:repl:heartbeat] Failed: ${k(K)}`),K instanceof UJ){if(H.cleanup(),y("tengu_bridge_heartbeat_error",{status:K.status,error_type:K.status===401||K.status===403?"auth_failed":"fatal"}),ZJ)ZJ(K),J(`[bridge:repl:heartbeat] Fatal (status=${K.status}), work state cleared \u2014 fast-polling for re-dispatch`);else a=!0;break}}q++,await OJ(JJ.non_exclusive_heartbeat_interval_ms,H.signal),H.cleanup()}let D=a?"error":U.aborted?"shutdown":!E()?"capacity_changed":T!==null&&Date.now()>=T?"poll_due":"config_disabled";if(y("tengu_bridge_heartbeat_mode_exited",{reason:D,heartbeat_cycles:q}),!a){if(D==="poll_due")J(`[bridge:repl] Heartbeat poll_due after ${q} cycles \u2014 falling through to pollForWork`);continue}}let I=W>0?W:l.non_exclusive_heartbeat_interval_ms;if(I>0){let T=c(),a=Date.now();await OJ(I,T.signal),T.cleanup();let q=Date.now()-a-I;if(q>60000)J(`[bridge:repl] At-capacity sleep overran by ${Math.round(q/1000)}s \u2014 process suspension detected, forcing one fast-poll cycle`),y("tengu_bridge_repl_suspension_detected",{overrun_ms:q}),v=!0}}else await OJ(l.poll_interval_ms_not_at_capacity,U);continue}let h;try{h=FQ(V.secret)}catch(B){J(`[bridge:repl] Failed to decode work secret: ${k(B)}`),y("tengu_bridge_repl_work_secret_failed",{}),await C.stopWork(m,V.id,!1).catch(()=>{});continue}J(`[bridge:repl] Acknowledging workId=${V.id}`);try{await C.acknowledgeWork(m,V.id,h.session_ingress_token)}catch(B){J(`[bridge:repl] Acknowledge failed workId=${V.id}: ${k(B)}`)}if(V.data.type==="healthcheck"){J("[bridge:repl] Healthcheck received");continue}if(V.data.type==="session"){let B=V.data.id;try{_Q(B,"session_id")}catch{J(`[bridge:repl] Invalid session_id in work: ${B}`);continue}b(B,h.session_ingress_token,V.id,h.use_code_sessions===!0),J("[bridge:repl] Work accepted, continuing poll loop")}}catch(V){if(U.aborted)break;if(V instanceof UJ&&V.status===404&&S){let q=x().environmentId;if(m!==q){J(`[bridge:repl] Stale poll error for old env=${m}, current env=${q} \u2014 skipping onEnvironmentLost`),f=0,w=null;continue}if(G++,J(`[bridge:repl] Environment deleted, attempting re-registration (attempt ${G}/3)`),y("tengu_bridge_repl_env_lost",{attempt:G}),G>3){J("[bridge:repl] Environment re-registration limit reached (3), giving up"),_?.("failed","Environment deleted and re-registration limit reached"),n?.();break}_?.("reconnecting","environment lost, recreating session");let D=await S();if(U.aborted)break;if(D){f=0,w=null,_?.("ready"),J(`[bridge:repl] Re-registered environment: ${D.environmentId}`);continue}_?.("failed","Environment deleted and re-registration failed"),n?.();break}if(V instanceof UJ){let q=LQ(V.errorType),D=yQ(V);if(J(`[bridge:repl] Fatal poll error: ${V.message} (status=${V.status}, type=${V.errorType??"unknown"})${D?" (suppressed)":""}`),y("tengu_bridge_repl_fatal_error",{status:V.status,error_type:V.errorType}),WJ(q?"info":"error","bridge_repl_fatal_error",{status:V.status,error_type:V.errorType}),!D)_?.("failed",q?"session expired \xB7 /remote-control to reconnect":V.message);n?.();break}let h=Date.now();if(F!==null&&h-F>JQ*2)J(`[bridge:repl] Detected system sleep (${Math.round((h-F)/1000)}s gap), resetting poll error budget`),WJ("info","bridge_repl_poll_sleep_detected",{gapMs:h-F}),f=0,w=null;if(F=h,f++,w===null)w=h;let B=h-w,W=NQ(V),I=WQ(V),T=d?.()??"unknown";if(J(`[bridge:repl] Poll error (attempt ${f}, elapsed ${Math.round(B/1000)}s, ws=${T}): ${I}`),y("tengu_bridge_repl_poll_error",{status:W,consecutiveErrors:f,elapsedMs:B}),f===1)_?.("reconnecting",I);if(B>=QQ){J(`[bridge:repl] Poll failures exceeded ${QQ/1000}s (${f} errors), giving up`),WJ("info","bridge_repl_poll_give_up"),y("tengu_bridge_repl_poll_give_up",{consecutiveErrors:f,elapsedMs:B,lastStatus:W}),_?.("failed","connection to server lost");break}let a=Math.min(MZ*2**(f-1),JQ);if(r().non_exclusive_heartbeat_interval_ms>0){let q=i?.();if(q)try{await C.heartbeatWork(q.environmentId,q.workId,q.sessionToken)}catch{}}await OJ(a,U)}}J(`[bridge:repl] Work poll loop ended (aborted=${U.aborted}) env=${x().environmentId}`)}HQ();async function d0(C){let{onInboundMessage:x,onPermissionResponse:U,onInterrupt:_,onSetModel:b,onSetMaxThinkingTokens:S,onSetPermissionMode:d,onStateChange:E,initialMessages:c,getMessages:n,previouslyFlushedUUIDs:r,initialName:i,perpetual:ZJ,outboundOnly:YJ,tags:f}=C??{};if(iQ(ZZ),!await JZ())return o("not_enabled","[bridge:repl] Skipping: bridge not enabled"),null;if(!KJ())return o("no_oauth","[bridge:repl] Skipping: no OAuth tokens"),E?.("failed","/login"),null;if(await tQ(),!sQ("allow_remote_control"))return o("policy_denied","[bridge:repl] Skipping: allow_remote_control policy not allowed"),E?.("failed","disabled by your organization's policy"),null;if(!zZ()){let j=gQ();if(j.bridgeOauthDeadExpiresAt!=null&&(j.bridgeOauthDeadFailCount??0)>=3&&cJ()?.expiresAt===j.bridgeOauthDeadExpiresAt)return J(`[bridge:repl] Skipping: cross-process backoff (dead token seen ${j.bridgeOauthDeadFailCount} times)`),null;await dQ();let H=cJ();if(H&&H.expiresAt!==null&&H.expiresAt<=Date.now()){o("oauth_expired_unrefreshable","[bridge:repl] Skipping: OAuth token expired and refresh failed (re-login required)"),E?.("failed","/login");let K=H.expiresAt;return aQ((A)=>({...A,bridgeOauthDeadExpiresAt:K,bridgeOauthDeadFailCount:A.bridgeOauthDeadExpiresAt===K?(A.bridgeOauthDeadFailCount??0)+1:1})),null}}let w=KZ(),F=`remote-control-${oQ()}`,G=!1,v=!1;if(i)F=i,G=!0,v=!0;else{let j=_J(),H=j?qJ(j):void 0;if(H)F=H,G=!0,v=!0;else if(c&&c.length>0)for(let K=c.length-1;K>=0;K--){let A=c[K];if(A.type!=="user"||A.isMeta||A.toolUseResult||A.isCompactSummary||A.origin&&A.origin.kind!=="human"||nQ(A))continue;let P=rQ(A.message.content);if(!P)continue;let QJ=bQ(P);if(!QJ)continue;F=QJ,G=!0;break}}let m=0,e,l=0,V=(j,H,K)=>{G=!0,F=j,J(`[bridge:repl] derived title from message ${K}: ${j}`),HZ(H,j,{baseUrl:w,getAccessToken:KJ}).catch(()=>{})},h=(j,H)=>{let K=++l,A=m;XZ(j,AbortSignal.timeout(15000)).then((P)=>{if(P&&K===l&&e===H&&!qJ(_J()))V(P,H,A)})},B=(j,H)=>{if(v||qJ(_J()))return!0;if(e!==void 0&&e!==H)m=0;if(e=H,m++,m===1&&!G){let K=bQ(j);if(K)V(K,H,m);h(j,H)}else if(m===3){let K=n?.(),A=K?YZ(eQ(K)):j;h(A,H)}return m>=3},W=lQ("tengu_bridge_initial_history_cap",200,300000),I=await uQ();if(!I)return o("no_org_uuid","[bridge:repl] Skipping: no org UUID"),E?.("failed","/login"),null;if(QZ()&&!ZJ){let j=await GZ();if(j)return o("version_too_old",`[bridge:repl] Skipping: ${j}`,!0),E?.("failed","run `claude update` to upgrade"),null;J("[bridge:repl] Using env-less bridge path (tengu_bridge_repl_v2)");let{initEnvLessBridgeCore:H}=await import("./remoteBridgeCore-5f92ewk3.js");return H({baseUrl:w,orgUUID:I,title:F,getAccessToken:KJ,onAuth401:uJ,toSDKMessages:dJ,initialHistoryCap:W,initialMessages:c,onInboundMessage:x,onUserMessage:B,onPermissionResponse:U,onInterrupt:_,onSetModel:b,onSetMaxThinkingTokens:S,onSetPermissionMode:d,onStateChange:E,outboundOnly:YJ,tags:f})}let T=$Z();if(T)return o("version_too_old",`[bridge:repl] Skipping: ${T}`),E?.("failed","run `claude update` to upgrade"),null;let a=await pQ(),q=await cQ(),D=process.env.USER_TYPE==="ant"&&process.env.CLAUDE_BRIDGE_SESSION_INGRESS_URL?process.env.CLAUDE_BRIDGE_SESSION_INGRESS_URL:w,JJ="claude_code";return mQ({dir:SQ(),machineName:gZ(),branch:a,gitRepoUrl:q,title:F,baseUrl:w,sessionIngressUrl:D,workerType:JJ,getAccessToken:KJ,createSession:(j)=>jZ({...j,events:[],baseUrl:w,getAccessToken:KJ}),archiveSession:(j)=>VZ(j,{baseUrl:w,getAccessToken:KJ,timeoutMs:1500}).catch((H)=>{J(`[bridge:repl] archiveBridgeSession threw: ${k(H)}`,{level:"error"})}),getCurrentTitle:()=>qJ(_J())??F,onUserMessage:B,toSDKMessages:dJ,onAuth401:uJ,getPollIntervalConfig:xZ,initialHistoryCap:W,initialMessages:c,previouslyFlushedUUIDs:r,onInboundMessage:x,onPermissionResponse:U,onInterrupt:_,onSetModel:b,onSetMaxThinkingTokens:S,onSetPermissionMode:d,onStateChange:E,perpetual:ZJ})}var vQ=50;function bQ(C){let x=IQ(C),_=(/^(.*?[.!?])\s/.exec(x)?.[1]??x).replace(/\s+/g," ").trim();if(!_)return;return _.length>vQ?_.slice(0,vQ-1)+"\u2026":_}export{d0 as initReplBridge};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{$Q as G,AP as h,BP as i,DQ as q,FQ as r,GP as j,HQ as s,KP as k,LQ as t,NQ as u,OQ as v,PQ as w,QQ as x,RQ as y,SQ as z,TQ as A,VQ as B,WQ as C,YQ as D,ZQ as E,_Q as F,aQ as l,cR as H,dR as I,eP as a,eR as J,fP as b,fR as K,gR as L,hQ as m,hR as M,iP as c,lP as d,lQ as n,mP as e,nP as f,nQ as o,oP as g,tQ as p}from"./cli-7dm5ex18.js";import"./cli-qhefvb54.js";import"./cli-b2fkrk49.js";import"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import"./cli-epetmtbs.js";import"./cli-e5vc9y1s.js";import"./cli-3q4bcd9y.js";import"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-v86f53k0.js";import"./cli-ymqdnbx2.js";import"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import"./cli-hy0se8fa.js";import"./cli-ktzb7cwm.js";import"./cli-2afdzhna.js";M();export{j as wrapText,f as useThemeSetting,e as useTheme,A as useTerminalViewport,I as useTerminalTitle,m as useTerminalFocus,H as useTabStatus,c as useStdin,G as useSelection,g as usePreviewTheme,F as useInterval,D as useInput,C as useApp,E as useAnimationTimer,B as useAnimationFrame,l as supportsTabStatus,K as render,J as measureElement,L as createRoot,q as color,d as ThemeProvider,s as Text,i as TerminalFocusEvent,z as Spacer,y as RawAnsi,x as NoSelect,w as Newline,t as Link,h as InputEvent,k as FocusManager,b as EventEmitter,a as Event,p as ClickEvent,v as Button,r as Box,o as BaseText,n as BaseBox,u as Ansi};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Hk as c,
|
|
2
|
+
import{Hk as c,Ik as DQ,KE as r,KK as i,LI as UQ,LK as v0,MI as WQ,QI as O0,XE as xQ,hH as BQ,pI as LQ,ym as O,zm as wQ}from"./cli-63389c5w.js";import"./cli-0ybyvcx6.js";import"./cli-eys4epws.js";import"./cli-tj8fyjds.js";import"./cli-0th9dbz0.js";import"./cli-4c9nnszs.js";import"./cli-ndrvqgnc.js";import"./cli-d8qkvmdn.js";import"./cli-k3b5ctgk.js";import"./cli-8hpg8nq4.js";import"./cli-8ayzxqxm.js";import"./cli-q33bj7n5.js";import"./cli-a1ejrtbd.js";import"./cli-ey3ajcbm.js";import"./cli-39xs60x2.js";import"./cli-z1f33m31.js";import"./cli-10j9svm7.js";import"./cli-vbn35zp3.js";import"./cli-7dm5ex18.js";import"./cli-qhefvb54.js";import"./cli-b2fkrk49.js";import"./cli-p853vxnx.js";import"./cli-w1y2zvbw.js";import"./cli-dc6wqdxq.js";import"./cli-q93jv7x6.js";import"./cli-q6atnwff.js";import"./cli-rv4z0bsv.js";import"./cli-zqj1my2v.js";import"./cli-r29k5h5x.js";import"./cli-tnbyhfne.js";import"./cli-zxz1xm2y.js";import"./cli-qa0qmmg4.js";import"./cli-stjsr4fx.js";import"./cli-mqkqq3ye.js";import"./cli-zxrt2zch.js";import{KV as XQ,LV as YQ,OV as RQ,aZ as s,bW as qQ,hW as EQ,wZ as jQ}from"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import"./cli-epetmtbs.js";import"./cli-e5vc9y1s.js";import"./cli-3q4bcd9y.js";import"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-a2f4j8s5.js";import"./cli-v86f53k0.js";import"./cli-ymqdnbx2.js";import{K7 as m,M7 as PQ}from"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import{I8 as e,N8 as _Q}from"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import"./cli-dp2jt8fs.js";import"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import{_9 as t,f_ as vQ,h_ as f,i_ as h,l_ as NQ}from"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import{J_ as a,W_ as OQ}from"./cli-hy0se8fa.js";import"./cli-ktzb7cwm.js";import{jda as GQ}from"./cli-2afdzhna.js";import{execFileSync as AQ}from"child_process";import{diffLines as FQ}from"diff";import{constants as MQ}from"fs";import{copyFile as yQ,mkdir as l,mkdtemp as IQ,readdir as n,readFile as KQ,rm as TQ,unlink as CQ,writeFile as QQ}from"fs/promises";import{tmpdir as kQ}from"os";import{extname as HQ,join as F}from"path";function VQ(){return s()}function bQ(){return s()}function u(){return F(a(),"usage-data")}function d(){return F(u(),"facets")}function o(){return F(u(),"session-meta")}function dQ(Q){let J=HQ(Q).toLowerCase();return pQ[J]||null}function mQ(Q){let J={},$={},q=0,V=0,L=0,Y=0,X=0,K=[],Z=0,W={},_=!1,E=0,v=0,M=new Set,D=[],y=[],I=!1,U=!1,x=!1,C=null;for(let T of Q.messages){let k=T.timestamp;if(T.type==="assistant"&&T.message){if(k)C=k;let j=T.message.usage;if(j)L+=j.input_tokens||0,Y+=j.output_tokens||0;let H=T.message.content;if(Array.isArray(H)){for(let z of H)if(z.type==="tool_use"&&"name"in z){let P=z.name;if(J[P]=(J[P]||0)+1,P===XQ||P===YQ)_=!0;if(P.startsWith("mcp__"))I=!0;if(P==="WebSearch")U=!0;if(P==="WebFetch")x=!0;let B=z.input;if(B){let G=B.file_path||"";if(G){let R=dQ(G);if(R)$[R]=($[R]||0)+1;if(P==="Edit"||P==="Write")M.add(G)}if(P==="Edit"){let R=B.old_string||"",w=B.new_string||"";for(let A of FQ(R,w)){if(A.added)E+=A.count||0;if(A.removed)v+=A.count||0}}if(P==="Write"){let R=B.content||"";if(R)E+=qQ(R,`
|
|
3
3
|
`)+1}let N=B.command||"";if(N.includes("git commit"))q++;if(N.includes("git push"))V++}}}}if(T.type==="user"&&T.message){let j=T.message.content,H=!1;if(typeof j==="string"&&j.trim())H=!0;else if(Array.isArray(j)){for(let z of j)if(z.type==="text"&&"text"in z){H=!0;break}}if(H){if(k)try{let P=new Date(k).getHours();D.push(P),y.push(k)}catch{}if(C&&k){let z=new Date(C).getTime(),B=(new Date(k).getTime()-z)/1000;if(B>2&&B<3600)K.push(B)}}if(Array.isArray(j)){for(let z of j)if(z.type==="tool_result"&&"content"in z){if(z.is_error){Z++;let B=z.content,G="Other";if(typeof B==="string"){let N=B.toLowerCase();if(N.includes("exit code"))G="Command Failed";else if(N.includes("rejected")||N.includes("doesn't want"))G="User Rejected";else if(N.includes("string to replace not found")||N.includes("no changes"))G="Edit Failed";else if(N.includes("modified since read"))G="File Changed";else if(N.includes("exceeds maximum")||N.includes("too large"))G="File Too Large";else if(N.includes("file not found")||N.includes("does not exist"))G="File Not Found"}W[G]=(W[G]||0)+1}}}if(typeof j==="string"){if(j.includes("[Request interrupted by user"))X++}else if(Array.isArray(j)){for(let z of j)if(z.type==="text"&&"text"in z&&z.text.includes("[Request interrupted by user")){X++;break}}}}return{toolCounts:J,languages:$,gitCommits:q,gitPushes:V,inputTokens:L,outputTokens:Y,userInterruptions:X,userResponseTimes:K,toolErrors:Z,toolErrorCategories:W,usesTaskAgent:_,usesMcp:I,usesWebSearch:U,usesWebFetch:x,linesAdded:E,linesRemoved:v,filesModified:M,messageHours:D,userMessageTimestamps:y}}function cQ(Q){return!Number.isNaN(Q.created.getTime())&&!Number.isNaN(Q.modified.getTime())}function $Q(Q){let J=mQ(Q),$=LQ(Q)||"unknown",q=Q.created.toISOString(),V=Math.round((Q.modified.getTime()-Q.created.getTime())/1000/60),L=0,Y=0;for(let X of Q.messages){if(X.type==="assistant")Y++;if(X.type==="user"&&X.message){let K=X.message.content,Z=!1;if(typeof K==="string"&&K.trim())Z=!0;else if(Array.isArray(K)){for(let W of K)if(W.type==="text"&&"text"in W){Z=!0;break}}if(Z)L++}}return{session_id:$,project_path:Q.projectPath||"",start_time:q,duration_minutes:V,user_message_count:L,assistant_message_count:Y,tool_counts:J.toolCounts,languages:J.languages,git_commits:J.gitCommits,git_pushes:J.gitPushes,input_tokens:J.inputTokens,output_tokens:J.outputTokens,first_prompt:Q.firstPrompt||"",summary:Q.summary,user_interruptions:J.userInterruptions,user_response_times:J.userResponseTimes,tool_errors:J.toolErrors,tool_error_categories:J.toolErrorCategories,uses_task_agent:J.usesTaskAgent,uses_mcp:J.usesMcp,uses_web_search:J.usesWebSearch,uses_web_fetch:J.usesWebFetch,lines_added:J.linesAdded,lines_removed:J.linesRemoved,files_modified:J.filesModified.size,message_hours:J.messageHours,user_message_timestamps:J.userMessageTimestamps}}function S0(Q){let J=new Map;for(let $ of Q){let q=$.meta.session_id,V=J.get(q);if(!V||$.meta.user_message_count>V.meta.user_message_count||$.meta.user_message_count===V.meta.user_message_count&&$.meta.duration_minutes>V.meta.duration_minutes)J.set(q,$)}return[...J.values()]}function rQ(Q){let J=[],$=$Q(Q);J.push(`Session: ${$.session_id.slice(0,8)}`),J.push(`Date: ${$.start_time}`),J.push(`Project: ${$.project_path}`),J.push(`Duration: ${$.duration_minutes} min`),J.push("");for(let q of Q.messages)if(q.type==="user"&&q.message){let V=q.message.content;if(typeof V==="string")J.push(`[User]: ${V.slice(0,500)}`);else if(Array.isArray(V)){for(let L of V)if(L.type==="text"&&"text"in L)J.push(`[User]: ${L.text.slice(0,500)}`)}}else if(q.type==="assistant"&&q.message){let V=q.message.content;if(Array.isArray(V)){for(let L of V)if(L.type==="text"&&"text"in L)J.push(`[Assistant]: ${L.text.slice(0,300)}`);else if(L.type==="tool_use"&&"name"in L)J.push(`[Tool: ${L.name}]`)}}return J.join(`
|
|
4
4
|
`)}async function iQ(Q){try{let J=await i({systemPrompt:c([]),userPrompt:lQ+Q,signal:new AbortController().signal,options:{model:VQ(),querySource:"insights",agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[],maxOutputTokensOverride:500}});return r(J.message.content)||Q.slice(0,2000)}catch{return Q.slice(0,2000)}}async function nQ(Q){let J=rQ(Q);if(J.length<=30000)return J;let $=25000,q=[];for(let X=0;X<J.length;X+=$)q.push(J.slice(X,X+$));let V=await Promise.all(q.map(iQ)),L=$Q(Q);return[`Session: ${L.session_id.slice(0,8)}`,`Date: ${L.start_time}`,`Project: ${L.project_path}`,`Duration: ${L.duration_minutes} min`,`[Long session - ${q.length} parts summarized]`,""].join(`
|
|
5
5
|
`)+V.join(`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Br as O6,Cr as KK,Ep as Qq,
|
|
2
|
+
import{Br as O6,Cr as KK,Ep as Qq,Qu as mq,Ru as zK,br as Aq,cr as A6,dr as U6,oG as zq,pG as Wq}from"./cli-63389c5w.js";import"./cli-0ybyvcx6.js";import"./cli-eys4epws.js";import"./cli-tj8fyjds.js";import"./cli-0th9dbz0.js";import"./cli-4c9nnszs.js";import{$L as u6,UL as Pq,VL as Nq,WL as Rq,XL as R6,YL as $q,ZL as $6,_L as uq}from"./cli-ndrvqgnc.js";import"./cli-d8qkvmdn.js";import"./cli-k3b5ctgk.js";import"./cli-8hpg8nq4.js";import"./cli-8ayzxqxm.js";import"./cli-q33bj7n5.js";import"./cli-a1ejrtbd.js";import"./cli-ey3ajcbm.js";import{cO as N6,dO as kK}from"./cli-39xs60x2.js";import"./cli-z1f33m31.js";import"./cli-10j9svm7.js";import{GO as Kq,HO as Gq,UO as hq,VO as qq,WO as Hq}from"./cli-vbn35zp3.js";import{DQ as Yq,FQ as _,HQ as Y,LQ as Zq,YP as M6,bQ as qK,hR as F,mP as kq}from"./cli-7dm5ex18.js";import"./cli-qhefvb54.js";import"./cli-b2fkrk49.js";import"./cli-p853vxnx.js";import"./cli-w1y2zvbw.js";import"./cli-dc6wqdxq.js";import"./cli-q93jv7x6.js";import"./cli-q6atnwff.js";import"./cli-rv4z0bsv.js";import"./cli-zqj1my2v.js";import"./cli-r29k5h5x.js";import"./cli-tnbyhfne.js";import"./cli-zxz1xm2y.js";import"./cli-qa0qmmg4.js";import"./cli-stjsr4fx.js";import"./cli-mqkqq3ye.js";import"./cli-zxrt2zch.js";import{$V as T6,E0 as Tq,G0 as p6,K1 as P6,S3 as _K,f1 as _6,hW as ZK,w3 as G6}from"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import"./cli-epetmtbs.js";import"./cli-e5vc9y1s.js";import{D5 as Jq,E5 as k6}from"./cli-3q4bcd9y.js";import"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-a2f4j8s5.js";import{A7 as d6,E7 as XK}from"./cli-v86f53k0.js";import"./cli-ymqdnbx2.js";import{K7 as s,M7 as Z6}from"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import{I8 as wq,N8 as f6}from"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import"./cli-dp2jt8fs.js";import{a9 as p,b9 as yq}from"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import"./cli-hy0se8fa.js";import"./cli-ktzb7cwm.js";import{jda as r}from"./cli-2afdzhna.js";import{c as L6}from"react/compiler-runtime";import{useState as a6}from"react";import{jsxDEV as x}from"react/jsx-dev-runtime";function S6(G){if(G.pending)return x(Y,{children:["Press ",G.keyName," again to exit"]},void 0,!0,void 0,this);return x($q,{children:[x(Pq,{shortcut:"\u2191\u2193",action:"navigate"},void 0,!1,void 0,this),x(Pq,{shortcut:"Space",action:"toggle"},void 0,!1,void 0,this),x(Pq,{shortcut:"Enter",action:"confirm"},void 0,!1,void 0,this),x(Rq,{action:"confirm:no",context:"Confirmation",fallback:"Esc",description:"cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Lq(G){let q=L6(14),{onSubmit:K,defaultSelections:z}=G,[H,v]=a6(!1),w;if(q[0]!==K)w=(L)=>{if(L.length===0){v(!0);return}v(!1),K(L)},q[0]=K,q[1]=w;else w=q[1];let M=w,X;if(q[2]===Symbol.for("react.memo_cache_sentinel"))X=()=>{v(!1)},q[2]=X;else X=q[2];let Z=X,P;if(q[3]===Symbol.for("react.memo_cache_sentinel"))P=()=>{v(!0)},q[3]=P;else P=q[3];let W=P,j;if(q[4]===Symbol.for("react.memo_cache_sentinel"))j=x(_,{children:x(Y,{dimColor:!0,children:["More workflow examples (issue triage, CI fixes, etc.) at:"," ",x(Zq,{url:"https://github.com/anthropics/claude-code-action/blob/main/examples/",children:"https://github.com/anthropics/claude-code-action/blob/main/examples/"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),q[4]=j;else j=q[4];let h;if(q[5]===Symbol.for("react.memo_cache_sentinel"))h=D6.map(n6),q[5]=h;else h=q[5];let k;if(q[6]!==z||q[7]!==M)k=x(Aq,{options:h,defaultValue:z,onSubmit:M,onChange:Z,onCancel:W,hideIndexes:!0},void 0,!1,void 0,this),q[6]=z,q[7]=M,q[8]=k;else k=q[8];let m;if(q[9]!==H)m=H&&x(_,{children:x(Y,{color:"error",children:"You must select at least one workflow to continue"},void 0,!1,void 0,this)},void 0,!1,void 0,this),q[9]=H,q[10]=m;else m=q[10];let N;if(q[11]!==k||q[12]!==m)N=x(uq,{title:"Select GitHub workflows to install",subtitle:"We'll create a workflow file in your repository for each one you select.",onCancel:W,inputGuide:S6,children:[j,k,m]},void 0,!0,void 0,this),q[11]=k,q[12]=m,q[13]=N;else N=q[13];return N}function n6(G){return{label:G.label,value:G.value}}var D6;var aq=r(()=>{F();R6();A6();$6();u6();Nq();D6=[{value:"claude",label:"@UnieAI Code - Tag @claude in issues and PR comments"},{value:"claude-review",label:"UnieAI Code Review - Automated code review on new PRs"}]});var Dq="Add Claude Code GitHub Workflow",t="https://github.com/anthropics/claude-code-action/blob/main/docs/setup.md",Sq=`name: Claude Code
|
|
3
3
|
|
|
4
4
|
on:
|
|
5
5
|
issue_comment:
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{lf as k,mf as V}from"./cli-
|
|
2
|
+
import{lf as k,mf as V}from"./cli-mky8bjey.js";import{cs as M,ds as $,hs as b,is as B,js as E}from"./cli-63389c5w.js";import"./cli-0ybyvcx6.js";import"./cli-eys4epws.js";import"./cli-tj8fyjds.js";import"./cli-0th9dbz0.js";import"./cli-4c9nnszs.js";import"./cli-ndrvqgnc.js";import"./cli-d8qkvmdn.js";import"./cli-k3b5ctgk.js";import"./cli-8hpg8nq4.js";import"./cli-8ayzxqxm.js";import"./cli-q33bj7n5.js";import"./cli-a1ejrtbd.js";import"./cli-ey3ajcbm.js";import"./cli-39xs60x2.js";import"./cli-z1f33m31.js";import"./cli-10j9svm7.js";import"./cli-vbn35zp3.js";import{FQ as J,HQ as C,fR as d,hR as c}from"./cli-7dm5ex18.js";import"./cli-qhefvb54.js";import"./cli-b2fkrk49.js";import"./cli-p853vxnx.js";import"./cli-w1y2zvbw.js";import"./cli-dc6wqdxq.js";import"./cli-q93jv7x6.js";import"./cli-q6atnwff.js";import"./cli-rv4z0bsv.js";import"./cli-zqj1my2v.js";import"./cli-r29k5h5x.js";import"./cli-tnbyhfne.js";import"./cli-zxz1xm2y.js";import"./cli-qa0qmmg4.js";import"./cli-stjsr4fx.js";import"./cli-mqkqq3ye.js";import"./cli-zxrt2zch.js";import{GW as _,JW as I,SW as m}from"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import"./cli-epetmtbs.js";import"./cli-e5vc9y1s.js";import"./cli-3q4bcd9y.js";import"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-a2f4j8s5.js";import"./cli-v86f53k0.js";import"./cli-ymqdnbx2.js";import"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import"./cli-dp2jt8fs.js";import{a9 as W,b9 as p}from"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import{u9 as h,w9 as T}from"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import{$9 as v,C_ as S,f_ as F,z_ as H}from"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import"./cli-hy0se8fa.js";import"./cli-ktzb7cwm.js";import"./cli-2afdzhna.js";p();V();c();S();T();F();E();m();import{c as j}from"react/compiler-runtime";import{homedir as i}from"os";import{join as u}from"path";import{useEffect as N,useState as l}from"react";import{jsxDEV as q}from"react/jsx-dev-runtime";function D(){let R=h.platform==="win32",z=i();if(R)return u(z,".local","bin","claude.exe").replace(/\//g,"\\");return"~/.local/bin/claude"}function O(R){let z=j(5),{messages:G}=R;if(G.length===0)return null;let y;if(z[0]===Symbol.for("react.memo_cache_sentinel"))y=q(J,{children:q(C,{color:"warning",children:[q(k,{status:"warning",withSpace:!0},void 0,!1,void 0,this),"Setup notes:"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),z[0]=y;else y=z[0];let K;if(z[1]!==G)K=G.map(x),z[1]=G,z[2]=K;else K=z[2];let X;if(z[3]!==K)X=q(J,{flexDirection:"column",gap:0,marginBottom:1,children:[y,K]},void 0,!0,void 0,this),z[3]=K,z[4]=X;else X=z[4];return X}function x(R,z){return q(J,{marginLeft:2,children:q(C,{dimColor:!0,children:["\u2022 ",R]},void 0,!0,void 0,this)},z,!1,void 0,this)}function n({onDone:R,force:z,target:G}){let[y,K]=l({type:"checking"});return N(()=>{async function X(){try{H(`Install: Starting installation process (force=${z}, target=${G})`);let Y=G||I()?.autoUpdatesChannel||"latest";K({type:"installing",version:Y}),H(`Install: Calling installLatest(channelOrVersion=${Y}, forceReinstall=${z})`);let Q=await $(Y,z);if(H(`Install: installLatest returned version=${Q.latestVersion}, wasUpdated=${Q.wasUpdated}, lockFailed=${Q.lockFailed}`),Q.lockFailed)throw Error("Could not install - another process is currently installing Claude. Please try again in a moment.");if(!Q.latestVersion)H("Install: Failed to retrieve version information during install",{level:"error"});if(!Q.wasUpdated)H("Install: Already up to date");K({type:"setting-up"});let Z=await M(!0);if(H(`Install: Setup launcher completed with ${Z.length} messages`),Z.length>0)Z.forEach((U)=>H(`Install: Setup message: ${U.message}`));H("Install: Cleaning up npm installations after successful install");let{removed:P,errors:w,warnings:f}=await B();if(P>0)H(`Cleaned up ${P} npm installation(s)`);if(w.length>0)H(`Cleanup errors: ${w.join(", ")}`);let A=await b();if(A.length>0)H(`Shell alias cleanup: ${A.map((U)=>U.message).join("; ")}`);if(W("tengu_claude_install_command",{has_version:Q.latestVersion?1:0,forced:z?1:0}),G==="latest"||G==="stable")_("userSettings",{autoUpdatesChannel:G}),H(`Install: Saved autoUpdatesChannel=${G} to user settings`);let L=[...f,...A.map((U)=>U.message)];if(Z.length>0)K({type:"set-up",messages:Z.map((U)=>U.message)}),setTimeout(K,2000,{type:"success",version:Q.latestVersion||"current",setupMessages:[...Z.map((U)=>U.message),...L]});else H("Install: Shell PATH already configured"),K({type:"success",version:Q.latestVersion||"current",setupMessages:L.length>0?L:void 0})}catch(Y){H(`Install command failed: ${Y}`,{level:"error"}),K({type:"error",message:v(Y)})}}X()},[z,G]),N(()=>{if(y.type==="success")setTimeout(R,2000,"Claude Code installation completed successfully",{display:"system"});else if(y.type==="error")setTimeout(R,3000,"Claude Code installation failed",{display:"system"})},[y,R]),q(J,{flexDirection:"column",marginTop:1,children:[y.type==="checking"&&q(C,{color:"claude",children:"Checking installation status..."},void 0,!1,void 0,this),y.type==="cleaning-npm"&&q(C,{color:"warning",children:"Cleaning up old npm installations..."},void 0,!1,void 0,this),y.type==="installing"&&q(C,{color:"claude",children:["Installing Claude Code native build ",y.version,"..."]},void 0,!0,void 0,this),y.type==="setting-up"&&q(C,{color:"claude",children:"Setting up launcher and shell integration..."},void 0,!1,void 0,this),y.type==="set-up"&&q(O,{messages:y.messages},void 0,!1,void 0,this),y.type==="success"&&q(J,{flexDirection:"column",gap:1,children:[q(J,{children:[q(k,{status:"success",withSpace:!0},void 0,!1,void 0,this),q(C,{color:"success",bold:!0,children:"Claude Code successfully installed!"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q(J,{marginLeft:2,flexDirection:"column",gap:1,children:[y.version!=="current"&&q(J,{children:[q(C,{dimColor:!0,children:"Version: "},void 0,!1,void 0,this),q(C,{color:"claude",children:y.version},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q(J,{children:[q(C,{dimColor:!0,children:"Location: "},void 0,!1,void 0,this),q(C,{color:"text",children:D()},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),q(J,{marginLeft:2,flexDirection:"column",gap:1,children:q(J,{marginTop:1,children:[q(C,{dimColor:!0,children:"Next: Run "},void 0,!1,void 0,this),q(C,{color:"claude",bold:!0,children:"claude --help"},void 0,!1,void 0,this),q(C,{dimColor:!0,children:" to get started"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),y.setupMessages&&q(O,{messages:y.setupMessages},void 0,!1,void 0,this)]},void 0,!0,void 0,this),y.type==="error"&&q(J,{flexDirection:"column",gap:1,children:[q(J,{children:[q(k,{status:"error",withSpace:!0},void 0,!1,void 0,this),q(C,{color:"error",children:"Installation failed"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q(C,{color:"error",children:y.message},void 0,!1,void 0,this),q(J,{marginTop:1,children:q(C,{dimColor:!0,children:"Try running with --force to override checks"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var Jq={type:"local-jsx",name:"install",description:"Install Claude Code native build",argumentHint:"[options]",async call(R,z,G){let y=G.includes("--force"),X=G.filter((Q)=>!Q.startsWith("--"))[0],{unmount:Y}=await d(q(n,{onDone:(Q,Z)=>{Y(),R(Q,Z)},force:y,target:X},void 0,!1,void 0,this))}};export{Jq as install};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{S3 as I,w3 as z}from"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import"./cli-epetmtbs.js";import"./cli-e5vc9y1s.js";import{D5 as q,E5 as H}from"./cli-3q4bcd9y.js";import"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-v86f53k0.js";import"./cli-ymqdnbx2.js";import"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import{a9 as m,b9 as F}from"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import"./cli-hy0se8fa.js";import"./cli-ktzb7cwm.js";import{jda as D}from"./cli-2afdzhna.js";async function T(){if(m("tengu_install_slack_app_clicked",{}),z((h)=>({...h,slackAppInstallCount:(h.slackAppInstallCount??0)+1})),await q(k))return{type:"text",value:"Opening Slack app installation page in browser\u2026"};else return{type:"text",value:`Couldn't open browser. Visit: ${k}`}}var k="https://slack.com/marketplace/A08SF47R6P4-claude";var J=D(()=>{F();H();I()});J();export{T as call};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{AT as q3,eT as bw,iT as Y3,kT as vw,lT as Z3,mT as Ew,oT as g}from"./cli-zxrt2zch.js";import{B1 as yw,K1 as C,KW as Rw,L1 as R,M1 as $w,S3 as Zw,SW as w3,T1 as L,U1 as Jw,V1 as Qw,l1 as M,m1 as ww,r1 as Vw,t3 as Uw,w3 as Yw,z3 as T}from"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import{e5 as jw,f5 as Mw,i5 as ew}from"./cli-epetmtbs.js";import{B5 as Q3,j5 as u,l5 as $3,m5 as Lw,q5 as J3,s5 as Aw,t5 as fw}from"./cli-e5vc9y1s.js";import"./cli-3q4bcd9y.js";import"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import{D6 as rw,y6 as kw}from"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-v86f53k0.js";import{F7 as e,H7 as gw}from"./cli-ymqdnbx2.js";import"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import{B8 as r,E8 as uw,I8 as _,N8 as h}from"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import{$9 as F,C_ as j,O9 as d,Q9 as ow,_9 as Nw,f_ as E,h_ as O,l_ as zw,y_ as Sw,z_ as q}from"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import{M_ as Ow,W_ as tw}from"./cli-hy0se8fa.js";import{Paa as f,Qaa as a,Saa as l,Taa as Hw,Uaa as n,Vaa as D,Waa as c,Xaa as Xw,fda as Gw}from"./cli-ktzb7cwm.js";import{jda as k,kda as N}from"./cli-2afdzhna.js";import pw from"axios";async function lw(){let w=L();if(w.error)throw Error(`Auth error: ${w.error}`);let $={"Content-Type":"application/json","User-Agent":R(),...w.headers},J="https://api.anthropic.com/api/claude_code/organizations/metrics_enabled";return(await pw.get(J,{headers:$,timeout:5000})).data}async function cw(){if(r())return{enabled:!1,hasError:!1};try{let w=await Jw(lw,{also403Revoked:!0});return q(`Metrics opt-out API response: enabled=${w.metrics_logging_enabled}`),{enabled:w.metrics_logging_enabled,hasError:!1}}catch(w){return q(`Failed to check metrics opt-out status: ${F(w)}`),_(w),{enabled:!1,hasError:!0}}}async function t(){let w=await iw();if(w.hasError)return w;let $=T().metricsStatusCache;if($!==void 0&&$.enabled===w.enabled&&Date.now()-$.timestamp<qw)return w;return Yw((Q)=>({...Q,metricsStatusCache:{enabled:w.enabled,timestamp:Date.now()}})),w}async function Ww(){if(M()&&!ww())return{enabled:!1,hasError:!1};let w=T().metricsStatusCache;if(w){if(Date.now()-w.timestamp>qw)t().catch(_);return{enabled:w.enabled,hasError:!1}}return t()}var aw=3600000,qw=86400000,iw;var Bw=k(()=>{C();Zw();j();E();Qw();h();gw();uw();$w();iw=e(cw,aw)});import{ExportResultCode as I}from"@opentelemetry/core";import{AggregationTemporality as Kw}from"@opentelemetry/sdk-metrics";import sw from"axios";class P{endpoint;timeout;pendingExports=[];isShutdown=!1;constructor(w={}){if(process.env.USER_TYPE==="ant"&&process.env.ANT_CLAUDE_CODE_METRICS_ENDPOINT)this.endpoint=process.env.ANT_CLAUDE_CODE_METRICS_ENDPOINT+"/api/claude_code/metrics";else this.endpoint="https://api.anthropic.com/api/claude_code/metrics";this.timeout=w.timeout||5000}async export(w,$){if(this.isShutdown){$({code:I.FAILED,error:Error("Exporter has been shutdown")});return}let J=this.doExport(w,$);this.pendingExports.push(J),J.finally(()=>{let Q=this.pendingExports.indexOf(J);if(Q>-1)this.pendingExports.splice(Q,1)})}async doExport(w,$){try{if(!(Uw()||Xw())){q("BigQuery metrics export: trust not established, skipping"),$({code:I.SUCCESS});return}if(!(await Ww()).enabled){q("Metrics export disabled by organization setting"),$({code:I.SUCCESS});return}let Y=this.transformMetricsForInternal(w),Z=L();if(Z.error){q(`Metrics export failed: ${Z.error}`),$({code:I.FAILED,error:Error(Z.error)});return}let W={"Content-Type":"application/json","User-Agent":R(),...Z.headers},U=await sw.post(this.endpoint,Y,{timeout:this.timeout,headers:W});q("BigQuery metrics exported successfully"),q(`BigQuery API Response: ${O(U.data,null,2)}`),$({code:I.SUCCESS})}catch(J){q(`BigQuery metrics export failed: ${F(J)}`),_(J),$({code:I.FAILED,error:Nw(J)})}}transformMetricsForInternal(w){let $=w.resource.attributes,J={"service.name":$["service.name"]||"claude-code","service.version":$["service.version"]||"unknown","os.type":$["os.type"]||"unknown","os.version":$["os.version"]||"unknown","host.arch":$["host.arch"]||"unknown","aggregation.temporality":this.selectAggregationTemporality()===Kw.DELTA?"delta":"cumulative"};if($["wsl.version"])J["wsl.version"]=$["wsl.version"];if(M()){J["user.customer_type"]="claude_ai";let Y=Vw();if(Y)J["user.subscription_type"]=Y}else J["user.customer_type"]="api";return{resource_attributes:J,metrics:w.scopeMetrics.flatMap((Y)=>Y.metrics.map((Z)=>({name:Z.descriptor.name,description:Z.descriptor.description,unit:Z.descriptor.unit,data_points:this.extractDataPoints(Z)})))}}extractDataPoints(w){return(w.dataPoints||[]).filter((J)=>typeof J.value==="number").map((J)=>({attributes:this.convertAttributes(J.attributes),value:J.value,timestamp:this.hrTimeToISOString(J.endTime||J.startTime||[Date.now()/1000,0])}))}async shutdown(){this.isShutdown=!0,await this.forceFlush(),q("BigQuery metrics exporter shutdown complete")}async forceFlush(){await Promise.all(this.pendingExports),q("BigQuery metrics exporter flush complete")}convertAttributes(w){let $={};if(w){for(let[J,Q]of Object.entries(w))if(Q!==void 0&&Q!==null)$[J]=String(Q)}return $}hrTimeToISOString(w){let[$,J]=w;return new Date($*1000+J/1e6).toISOString()}selectAggregationTemporality(){return Kw.DELTA}}var _w=k(()=>{Bw();Gw();C();Zw();j();E();Qw();h();zw();$w()});class m{error(w,...$){_(Error(w)),q(`[3P telemetry] OTEL diag error: ${w}`,{level:"error"})}warn(w,...$){_(Error(w)),q(`[3P telemetry] OTEL diag warn: ${w}`,{level:"warn"})}info(w,...$){return}debug(w,...$){return}verbose(w,...$){return}}var Fw=k(()=>{j();h()});import{DiagLogLevel as W3,diag as B3,trace as hw}from"@opentelemetry/api";import{logs as y}from"@opentelemetry/api-logs";import{envDetector as K3,hostDetector as X3,osDetector as G3,resourceFromAttributes as A}from"@opentelemetry/resources";import{BatchLogRecordProcessor as Cw,ConsoleLogRecordExporter as N3,LoggerProvider as Tw}from"@opentelemetry/sdk-logs";import{ConsoleMetricExporter as z3,MeterProvider as Iw,PeriodicExportingMetricReader as Pw}from"@opentelemetry/sdk-metrics";import{BasicTracerProvider as mw,BatchSpanProcessor as xw,ConsoleSpanExporter as V3}from"@opentelemetry/sdk-trace-base";import{ATTR_SERVICE_NAME as U3,ATTR_SERVICE_VERSION as _3,SEMRESATTRS_HOST_ARCH as x}from"@opentelemetry/semantic-conventions";import{HttpsProxyAgent as Dw}from"https-proxy-agent";function p(w,$){return new Promise((J,Q)=>{setTimeout((Y,Z)=>Y(new i(Z)),w,Q,$).unref()})}function I3(){if(process.env.USER_TYPE==="ant"){if(process.env.ANT_OTEL_METRICS_EXPORTER)process.env.OTEL_METRICS_EXPORTER=process.env.ANT_OTEL_METRICS_EXPORTER;if(process.env.ANT_OTEL_LOGS_EXPORTER)process.env.OTEL_LOGS_EXPORTER=process.env.ANT_OTEL_LOGS_EXPORTER;if(process.env.ANT_OTEL_TRACES_EXPORTER)process.env.OTEL_TRACES_EXPORTER=process.env.ANT_OTEL_TRACES_EXPORTER;if(process.env.ANT_OTEL_EXPORTER_OTLP_PROTOCOL)process.env.OTEL_EXPORTER_OTLP_PROTOCOL=process.env.ANT_OTEL_EXPORTER_OTLP_PROTOCOL;if(process.env.ANT_OTEL_EXPORTER_OTLP_ENDPOINT)process.env.OTEL_EXPORTER_OTLP_ENDPOINT=process.env.ANT_OTEL_EXPORTER_OTLP_ENDPOINT;if(process.env.ANT_OTEL_EXPORTER_OTLP_HEADERS)process.env.OTEL_EXPORTER_OTLP_HEADERS=process.env.ANT_OTEL_EXPORTER_OTLP_HEADERS}if(!process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE)process.env.OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE="delta"}function s(w){return(w||"").trim().split(",").filter(Boolean).map(($)=>$.trim()).filter(($)=>$!=="none")}async function D3(){let w=s(process.env.OTEL_METRICS_EXPORTER),$=parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL||F3.toString()),J=[];for(let Q of w)if(Q==="console"){let Y=new z3,Z=Y.export.bind(Y);Y.export=(W,U)=>{if(W.resource&&W.resource.attributes)q(`
|
|
3
|
+
=== Resource Attributes ===`),q(O(W.resource.attributes)),q(`===========================
|
|
4
|
+
`);return Z(W,U)},J.push(Y)}else if(Q==="otlp"){let Y=process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim(),Z=o();switch(Y){case"grpc":{let{OTLPMetricExporter:W}=await import("@opentelemetry/exporter-metrics-otlp-grpc");J.push(new W);break}case"http/json":{let{OTLPMetricExporter:W}=await import("@opentelemetry/exporter-metrics-otlp-http");J.push(new W(Z));break}case"http/protobuf":{let{OTLPMetricExporter:W}=await import("@opentelemetry/exporter-metrics-otlp-proto");J.push(new W(Z));break}default:throw Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${Y}`)}}else if(Q==="prometheus"){let{PrometheusExporter:Y}=await import("@opentelemetry/exporter-prometheus");J.push(new Y)}else throw Error(`Unknown exporter type set in OTEL_EXPORTER_OTLP_METRICS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${Q}`);return J.map((Q)=>{if("export"in Q)return new Pw({exporter:Q,exportIntervalMillis:$});return Q})}async function H3(){let w=s(process.env.OTEL_LOGS_EXPORTER),$=process.env.OTEL_EXPORTER_OTLP_LOGS_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim(),J=process.env.OTEL_EXPORTER_OTLP_ENDPOINT;q(`[3P telemetry] getOtlpLogExporters: types=${O(w)}, protocol=${$}, endpoint=${J}`);let Q=[];for(let Y of w)if(Y==="console")Q.push(new N3);else if(Y==="otlp"){let Z=o();switch($){case"grpc":{let{OTLPLogExporter:W}=await import("@opentelemetry/exporter-logs-otlp-grpc");Q.push(new W);break}case"http/json":{let{OTLPLogExporter:W}=await import("@opentelemetry/exporter-logs-otlp-http");Q.push(new W(Z));break}case"http/protobuf":{let{OTLPLogExporter:W}=await import("@opentelemetry/exporter-logs-otlp-proto");Q.push(new W(Z));break}default:throw Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_LOGS_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${$}`)}}else throw Error(`Unknown exporter type set in OTEL_LOGS_EXPORTER env var: ${Y}`);return Q}async function O3(){let w=s(process.env.OTEL_TRACES_EXPORTER),$=[];for(let J of w)if(J==="console")$.push(new V3);else if(J==="otlp"){let Q=process.env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL?.trim()||process.env.OTEL_EXPORTER_OTLP_PROTOCOL?.trim(),Y=o();switch(Q){case"grpc":{let{OTLPTraceExporter:Z}=await import("@opentelemetry/exporter-trace-otlp-grpc");$.push(new Z);break}case"http/json":{let{OTLPTraceExporter:Z}=await import("@opentelemetry/exporter-trace-otlp-http");$.push(new Z(Y));break}case"http/protobuf":{let{OTLPTraceExporter:Z}=await import("@opentelemetry/exporter-trace-otlp-proto");$.push(new Z(Y));break}default:throw Error(`Unknown protocol set in OTEL_EXPORTER_OTLP_TRACES_PROTOCOL or OTEL_EXPORTER_OTLP_PROTOCOL env var: ${Q}`)}}else throw Error(`Unknown exporter type set in OTEL_TRACES_EXPORTER env var: ${J}`);return $}function S3(){return Ow(process.env.CLAUDE_CODE_ENABLE_TELEMETRY)}function k3(){let w=new P;return new Pw({exporter:w,exportIntervalMillis:300000})}function j3(){return!1}async function M3(w){let $=process.env.BETA_TRACING_ENDPOINT;if(!$)return;let[{OTLPTraceExporter:J},{OTLPLogExporter:Q}]=await Promise.all([import("@opentelemetry/exporter-trace-otlp-http"),import("@opentelemetry/exporter-logs-otlp-http")]),Y={url:`${$}/v1/traces`},Z={url:`${$}/v1/logs`},W=new J(Y),U=new xw(W,{scheduledDelayMillis:dw}),G=new mw({resource:w,spanProcessors:[U]});hw.setGlobalTracerProvider(G),c(G);let S=new Q(Z),V=new Tw({resource:w,processors:[new Cw(S,{scheduledDelayMillis:nw})]});y.setGlobalLoggerProvider(V),a(V);let H=y.getLogger("com.anthropic.claude_code.events",MACRO.VERSION);l(H),process.on("beforeExit",async()=>{await V?.forceFlush(),await G?.forceFlush()}),process.on("exit",()=>{V?.forceFlush(),G?.forceFlush()})}async function f$(){if(kw("telemetry_init_start"),I3(),Sw())for(let B of["OTEL_METRICS_EXPORTER","OTEL_LOGS_EXPORTER","OTEL_TRACES_EXPORTER"]){let K=process.env[B];if(K?.includes("console"))process.env[B]=K.split(",").map((X)=>X.trim()).filter((X)=>X!=="console").join(",")}B3.setLogger(new m,W3.ERROR),bw();let w=[],$=S3();if(q(`[3P telemetry] isTelemetryEnabled=${$} (CLAUDE_CODE_ENABLE_TELEMETRY=${process.env.CLAUDE_CODE_ENABLE_TELEMETRY})`),$)w.push(...await D3());if(j3())w.push(k3());let J=jw(),Q={[U3]:"claude-code",[_3]:MACRO.VERSION};if(J==="wsl"){let B=Mw();if(B)Q["wsl.version"]=B}let Y=A(Q),Z=A(G3.detect().attributes||{}),W=X3.detect(),U=W.attributes?.[x]?{[x]:W.attributes[x]}:{},G=A(U),S=A(K3.detect().attributes||{}),V=Y.merge(Z).merge(G).merge(S);if(vw()){M3(V).catch((X)=>q(`Beta tracing init failed: ${X}`,{level:"error"}));let B=new Iw({resource:V,views:[],readers:w});return n(B),d(async()=>{let X=parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS||"2000");try{g();let z=f(),b=D(),v=[B.shutdown()];if(z)v.push(z.forceFlush().then(()=>z.shutdown()));if(b)v.push(b.forceFlush().then(()=>b.shutdown()));await Promise.race([Promise.all(v),p(X,"OpenTelemetry shutdown timeout")])}catch{}}),B.getMeter("com.anthropic.claude_code",MACRO.VERSION)}let H=new Iw({resource:V,views:[],readers:w});if(n(H),$){let B=await H3();if(q(`[3P telemetry] Created ${B.length} log exporter(s)`),B.length>0){let K=new Tw({resource:V,processors:B.map((z)=>new Cw(z,{scheduledDelayMillis:parseInt(process.env.OTEL_LOGS_EXPORT_INTERVAL||nw.toString())}))});y.setGlobalLoggerProvider(K),a(K);let X=y.getLogger("com.anthropic.claude_code.events",MACRO.VERSION);l(X),q("[3P telemetry] Event logger set successfully"),process.on("beforeExit",async()=>{await K?.forceFlush(),await D()?.forceFlush()}),process.on("exit",()=>{K?.forceFlush(),D()?.forceFlush()})}}if($&&Ew()){let B=await O3();if(B.length>0){let K=B.map((z)=>new xw(z,{scheduledDelayMillis:parseInt(process.env.OTEL_TRACES_EXPORT_INTERVAL||dw.toString())})),X=new mw({resource:V,spanProcessors:K});hw.setGlobalTracerProvider(X),c(X)}}return d(async()=>{let B=parseInt(process.env.CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS||"2000");try{g();let K=[H.shutdown()],X=f();if(X)K.push(X.shutdown());let z=D();if(z)K.push(z.shutdown());await Promise.race([Promise.all(K),p(B,"OpenTelemetry shutdown timeout")])}catch(K){if(K instanceof Error&&K.message.includes("timeout"))q(`
|
|
5
|
+
OpenTelemetry telemetry flush timed out after ${B}ms
|
|
6
|
+
|
|
7
|
+
To resolve this issue, you can:
|
|
8
|
+
1. Increase the timeout by setting CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS env var (e.g., 5000 for 5 seconds)
|
|
9
|
+
2. Check if your OpenTelemetry backend is experiencing scalability issues
|
|
10
|
+
3. Disable OpenTelemetry by unsetting CLAUDE_CODE_ENABLE_TELEMETRY env var
|
|
11
|
+
|
|
12
|
+
Current timeout: ${B}ms
|
|
13
|
+
`,{level:"error"});throw K}}),H.getMeter("com.anthropic.claude_code",MACRO.VERSION)}async function y$(){let w=Hw();if(!w)return;let $=parseInt(process.env.CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS||"5000");try{let J=[w.forceFlush()],Q=f();if(Q)J.push(Q.forceFlush());let Y=D();if(Y)J.push(Y.forceFlush());await Promise.race([Promise.all(J),p($,"OpenTelemetry flush timeout")]),q("Telemetry flushed successfully")}catch(J){if(J instanceof i)q(`Telemetry flush timed out after ${$}ms. Some metrics may not be exported.`,{level:"warn"});else q(`Telemetry flush failed: ${F(J)}`,{level:"error"})}}function R3(){let w={},$=process.env.OTEL_EXPORTER_OTLP_HEADERS;if($)for(let J of $.split(",")){let[Q,...Y]=J.split("=");if(Q&&Y.length>0)w[Q.trim()]=Y.join("=").trim()}return w}function o(){let w=Aw(),$=Lw(),J=Rw(),Q={},Y=R3();if(J?.otelHeadersHelper)Q.headers=async()=>{let G=yw();return{...Y,...G}};else if(Object.keys(Y).length>0)Q.headers=async()=>Y;let Z=process.env.OTEL_EXPORTER_OTLP_ENDPOINT;if(!w||Z&&fw(Z)){let G=u();if($||G)Q.httpAgentOptions={...$,...G&&{ca:G}};return Q}let W=u(),U=(G)=>{return $||W?new Dw(w,{...$&&{cert:$.cert,key:$.key,passphrase:$.passphrase},...W&&{ca:W}}):new Dw(w)};return Q.httpAgentOptions=U,Q}var F3=60000,nw=5000,dw=5000,i;var L3=k(()=>{Gw();C();ew();$3();ow();j();tw();E();J3();Q3();w3();zw();rw();Z3();_w();Fw();Y3();q3();i=class i extends Error{}});L3();export{s as parseExporterTypes,S3 as isTelemetryEnabled,f$ as initializeTelemetry,y$ as flushTelemetry,I3 as bootstrapTelemetry};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{xe as O,ze as D}from"./cli-p2ngs1jm.js";import{$m as _,_m as Y,an as Z,dn as Q,en as v,fn as A,gn as L,jn as z}from"./cli-63389c5w.js";import"./cli-0ybyvcx6.js";import"./cli-eys4epws.js";import"./cli-tj8fyjds.js";import"./cli-0th9dbz0.js";import"./cli-4c9nnszs.js";import"./cli-ndrvqgnc.js";import"./cli-d8qkvmdn.js";import"./cli-k3b5ctgk.js";import"./cli-8hpg8nq4.js";import"./cli-8ayzxqxm.js";import"./cli-q33bj7n5.js";import"./cli-a1ejrtbd.js";import"./cli-ey3ajcbm.js";import"./cli-39xs60x2.js";import"./cli-z1f33m31.js";import"./cli-10j9svm7.js";import"./cli-vbn35zp3.js";import"./cli-7dm5ex18.js";import"./cli-qhefvb54.js";import"./cli-b2fkrk49.js";import"./cli-p853vxnx.js";import"./cli-w1y2zvbw.js";import"./cli-dc6wqdxq.js";import"./cli-q93jv7x6.js";import"./cli-q6atnwff.js";import"./cli-rv4z0bsv.js";import"./cli-zqj1my2v.js";import"./cli-r29k5h5x.js";import"./cli-tnbyhfne.js";import"./cli-zxz1xm2y.js";import"./cli-qa0qmmg4.js";import"./cli-stjsr4fx.js";import"./cli-mqkqq3ye.js";import"./cli-zxrt2zch.js";import"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import"./cli-epetmtbs.js";import"./cli-e5vc9y1s.js";import"./cli-3q4bcd9y.js";import"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-a2f4j8s5.js";import"./cli-v86f53k0.js";import"./cli-ymqdnbx2.js";import"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import"./cli-dp2jt8fs.js";import"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import{a_ as U,f_ as x,h_ as X,l_ as T}from"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import"./cli-hy0se8fa.js";import"./cli-ktzb7cwm.js";import{jda as W}from"./cli-2afdzhna.js";function w(q){let J=new Set(Z.map((H)=>Q(H.key)));return q.map((H)=>{let M={};for(let[V,R]of Object.entries(H.bindings))if(!J.has(Q(V)))M[V]=R;return{context:H.context,bindings:M}}).filter((H)=>Object.keys(H.bindings).length>0)}function $(){let J={$schema:"https://www.schemastore.org/claude-code-keybindings.json",$docs:"https://code.claude.com/docs/en/keybindings",bindings:w(Y)};return X(J,null,2)+`
|
|
3
|
+
`}var G=W(()=>{T();_();v()});import{mkdir as C,writeFile as I}from"fs/promises";import{dirname as S}from"path";async function E(){if(!A())return{type:"text",value:"Keybinding customization is not enabled. This feature is currently in preview."};let q=L(),J=!1;await C(S(q),{recursive:!0});try{await I(q,$(),{encoding:"utf-8",flag:"wx"})}catch(M){if(U(M)==="EEXIST")J=!0;else throw M}let H=await O(q);if(H.error)return{type:"text",value:`${J?"Opened":"Created"} ${q}. Could not open in editor: ${H.error}`};return{type:"text",value:J?`Opened ${q} in your editor.`:`Created ${q} with template. Opened in your editor.`}}var j=W(()=>{z();G();x();D()});j();export{E as call};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cj as a,dj as b,ej as c,fj as d,gj as e,hj as f,ij as g,jj as h,kj as i,lj as j,mj as k,nj as l}from"./cli-63389c5w.js";import"./cli-0ybyvcx6.js";import"./cli-eys4epws.js";import"./cli-tj8fyjds.js";import"./cli-0th9dbz0.js";import"./cli-4c9nnszs.js";import"./cli-ndrvqgnc.js";import"./cli-d8qkvmdn.js";import"./cli-k3b5ctgk.js";import"./cli-8hpg8nq4.js";import"./cli-8ayzxqxm.js";import"./cli-q33bj7n5.js";import"./cli-a1ejrtbd.js";import"./cli-ey3ajcbm.js";import"./cli-39xs60x2.js";import"./cli-z1f33m31.js";import"./cli-10j9svm7.js";import"./cli-vbn35zp3.js";import"./cli-7dm5ex18.js";import"./cli-qhefvb54.js";import"./cli-b2fkrk49.js";import"./cli-p853vxnx.js";import"./cli-w1y2zvbw.js";import"./cli-dc6wqdxq.js";import"./cli-q93jv7x6.js";import"./cli-q6atnwff.js";import"./cli-rv4z0bsv.js";import"./cli-zqj1my2v.js";import"./cli-r29k5h5x.js";import"./cli-tnbyhfne.js";import"./cli-zxz1xm2y.js";import"./cli-qa0qmmg4.js";import"./cli-stjsr4fx.js";import"./cli-mqkqq3ye.js";import"./cli-zxrt2zch.js";import"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import"./cli-epetmtbs.js";import"./cli-e5vc9y1s.js";import"./cli-3q4bcd9y.js";import"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-a2f4j8s5.js";import"./cli-v86f53k0.js";import"./cli-ymqdnbx2.js";import"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import"./cli-dp2jt8fs.js";import"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import"./cli-hy0se8fa.js";import"./cli-ktzb7cwm.js";import"./cli-2afdzhna.js";l();export{j as parseAgentsFromJson,k as parseAgentFromMarkdown,i as parseAgentFromJson,c as isPluginAgent,b as isCustomAgent,a as isBuiltInAgent,e as hasRequiredMcpServers,g as getAgentDefinitionsWithOverrides,d as getActiveAgentsFromList,f as filterAgentsByMcpRequirements,h as clearAgentDefinitionsCache};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{sw as a,tw as b,uw as c,vw as d,ww as e,xw as f,yw as g}from"./cli-63389c5w.js";import"./cli-0ybyvcx6.js";import"./cli-eys4epws.js";import"./cli-tj8fyjds.js";import"./cli-0th9dbz0.js";import"./cli-4c9nnszs.js";import"./cli-ndrvqgnc.js";import"./cli-d8qkvmdn.js";import"./cli-k3b5ctgk.js";import"./cli-8hpg8nq4.js";import"./cli-8ayzxqxm.js";import"./cli-q33bj7n5.js";import"./cli-a1ejrtbd.js";import"./cli-ey3ajcbm.js";import"./cli-39xs60x2.js";import"./cli-z1f33m31.js";import"./cli-10j9svm7.js";import"./cli-vbn35zp3.js";import"./cli-7dm5ex18.js";import"./cli-qhefvb54.js";import"./cli-b2fkrk49.js";import"./cli-p853vxnx.js";import"./cli-w1y2zvbw.js";import"./cli-dc6wqdxq.js";import"./cli-q93jv7x6.js";import"./cli-q6atnwff.js";import"./cli-rv4z0bsv.js";import"./cli-zqj1my2v.js";import"./cli-r29k5h5x.js";import"./cli-tnbyhfne.js";import"./cli-zxz1xm2y.js";import"./cli-qa0qmmg4.js";import"./cli-stjsr4fx.js";import"./cli-mqkqq3ye.js";import"./cli-zxrt2zch.js";import"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import"./cli-epetmtbs.js";import"./cli-e5vc9y1s.js";import"./cli-3q4bcd9y.js";import"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-a2f4j8s5.js";import"./cli-v86f53k0.js";import"./cli-ymqdnbx2.js";import"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import"./cli-dp2jt8fs.js";import"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import"./cli-hy0se8fa.js";import"./cli-ktzb7cwm.js";import"./cli-2afdzhna.js";g();export{f as setupPluginHookHotReload,d as resetHotReloadState,c as pruneRemovedPluginHooks,a as loadPluginHooks,e as getPluginAffectingSettingsSnapshot,b as clearPluginHookCache};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{$f as b,_f as a,ag as c}from"./cli-zjznn7cc.js";import"./cli-1pwyw30a.js";import"./cli-0p0bgg1c.js";import"./cli-gh3w0z1t.js";import"./cli-63389c5w.js";import"./cli-0ybyvcx6.js";import"./cli-eys4epws.js";import"./cli-tj8fyjds.js";import"./cli-0th9dbz0.js";import"./cli-4c9nnszs.js";import"./cli-ndrvqgnc.js";import"./cli-d8qkvmdn.js";import"./cli-k3b5ctgk.js";import"./cli-8hpg8nq4.js";import"./cli-8ayzxqxm.js";import"./cli-q33bj7n5.js";import"./cli-a1ejrtbd.js";import"./cli-ey3ajcbm.js";import"./cli-39xs60x2.js";import"./cli-z1f33m31.js";import"./cli-10j9svm7.js";import"./cli-vbn35zp3.js";import"./cli-7dm5ex18.js";import"./cli-qhefvb54.js";import"./cli-b2fkrk49.js";import"./cli-p853vxnx.js";import"./cli-w1y2zvbw.js";import"./cli-dc6wqdxq.js";import"./cli-q93jv7x6.js";import"./cli-q6atnwff.js";import"./cli-rv4z0bsv.js";import"./cli-zqj1my2v.js";import"./cli-r29k5h5x.js";import"./cli-tnbyhfne.js";import"./cli-zxz1xm2y.js";import"./cli-qa0qmmg4.js";import"./cli-stjsr4fx.js";import"./cli-mqkqq3ye.js";import"./cli-zxrt2zch.js";import"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import"./cli-epetmtbs.js";import"./cli-e5vc9y1s.js";import"./cli-3q4bcd9y.js";import"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-a2f4j8s5.js";import"./cli-v86f53k0.js";import"./cli-ymqdnbx2.js";import"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import"./cli-dp2jt8fs.js";import"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import"./cli-hy0se8fa.js";import"./cli-ktzb7cwm.js";import"./cli-2afdzhna.js";c();export{a as call,b as Login};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Ar as d,xr as a,yr as b,zr as c}from"./cli-63389c5w.js";import"./cli-0ybyvcx6.js";import"./cli-eys4epws.js";import"./cli-tj8fyjds.js";import"./cli-0th9dbz0.js";import"./cli-4c9nnszs.js";import"./cli-ndrvqgnc.js";import"./cli-d8qkvmdn.js";import"./cli-k3b5ctgk.js";import"./cli-8hpg8nq4.js";import"./cli-8ayzxqxm.js";import"./cli-q33bj7n5.js";import"./cli-a1ejrtbd.js";import"./cli-ey3ajcbm.js";import"./cli-39xs60x2.js";import"./cli-z1f33m31.js";import"./cli-10j9svm7.js";import"./cli-vbn35zp3.js";import"./cli-7dm5ex18.js";import"./cli-qhefvb54.js";import"./cli-b2fkrk49.js";import"./cli-p853vxnx.js";import"./cli-w1y2zvbw.js";import"./cli-dc6wqdxq.js";import"./cli-q93jv7x6.js";import"./cli-q6atnwff.js";import"./cli-rv4z0bsv.js";import"./cli-zqj1my2v.js";import"./cli-r29k5h5x.js";import"./cli-tnbyhfne.js";import"./cli-zxz1xm2y.js";import"./cli-qa0qmmg4.js";import"./cli-stjsr4fx.js";import"./cli-mqkqq3ye.js";import"./cli-zxrt2zch.js";import"./cli-9sjvqgf1.js";import"./cli-vj1rywde.js";import"./cli-vzcpa5mx.js";import"./cli-ajnshm3j.js";import"./cli-1px0m0pt.js";import"./cli-461ebjmk.js";import"./cli-epetmtbs.js";import"./cli-e5vc9y1s.js";import"./cli-3q4bcd9y.js";import"./cli-jy20hqk9.js";import"./cli-q5arj6fm.js";import"./cli-h3vttdhj.js";import"./cli-n0xnhnx9.js";import"./cli-a2f4j8s5.js";import"./cli-v86f53k0.js";import"./cli-ymqdnbx2.js";import"./cli-fg3rb4dg.js";import"./cli-024t0qj5.js";import"./cli-eehgc06t.js";import"./cli-mhza34xq.js";import"./cli-dp2jt8fs.js";import"./cli-2dkq8dre.js";import"./cli-0gt2xz4m.js";import"./cli-cmfxv0fb.js";import"./cli-bbt5chja.js";import"./cli-4r0qxxn2.js";import"./cli-16j5x50q.js";import"./cli-h9xmkhdq.js";import"./cli-bqs5smsv.js";import"./cli-26y0jfks.js";import"./cli-hy0se8fa.js";import"./cli-ktzb7cwm.js";import"./cli-2afdzhna.js";d();export{a as performLogout,b as clearAuthRelatedCaches,c as call};
|