@caspian2026/agent-sdk 0.0.9 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-c5zkrd7r.js → chunk-00d76x8k.js} +35 -37
- package/dist/{chunk-j0gke393.js → chunk-0b7gfh40.js} +34 -36
- package/dist/{chunk-4myad919.js → chunk-0q7109wh.js} +37 -39
- package/dist/{chunk-c4d52460.js → chunk-0rb968t3.js} +4 -4
- package/dist/{chunk-wkt2q02c.js → chunk-0wy4ckdx.js} +6 -8
- package/dist/{chunk-jwpp2bq2.js → chunk-0z0jnhy4.js} +77 -81
- package/dist/{chunk-hg6fwhj1.js → chunk-11snnhy9.js} +1 -1
- package/dist/{chunk-w6mcmmt5.js → chunk-12s5j5ga.js} +8 -10
- package/dist/chunk-17zbq30e.js +148 -0
- package/dist/{chunk-t3gmfcy7.js → chunk-1a245sn2.js} +39 -42
- package/dist/{chunk-cexw1jmv.js → chunk-1a5w7wdt.js} +2 -2
- package/dist/{chunk-5mrc0ps5.js → chunk-1aq0n033.js} +19 -23
- package/dist/{chunk-0txtpamh.js → chunk-1pee6gwp.js} +22 -24
- package/dist/{chunk-wm1zm5xj.js → chunk-1t59zkwn.js} +2 -2
- package/dist/{chunk-zqbnw3n2.js → chunk-20ka896x.js} +40 -42
- package/dist/{chunk-qqs58ywv.js → chunk-28za36s8.js} +3 -3
- package/dist/{chunk-1nhnn2rg.js → chunk-2apvtmkd.js} +5 -7
- package/dist/{chunk-83b2frat.js → chunk-2avrzsjc.js} +2 -2
- package/dist/{chunk-hqjdgc6c.js → chunk-2b42fj9k.js} +2 -2
- package/dist/{chunk-r7684mmh.js → chunk-2h4bj7qw.js} +3 -3
- package/dist/{chunk-sdfvr9ps.js → chunk-2h6f45jx.js} +5 -7
- package/dist/{chunk-bzatg35k.js → chunk-2k3y6fnp.js} +1 -1
- package/dist/{chunk-qcrpqjya.js → chunk-2nya3j5t.js} +1 -1
- package/dist/{chunk-9ewnsd7f.js → chunk-2tm611h9.js} +2 -2
- package/dist/{chunk-q14wrksq.js → chunk-337ft6zr.js} +36 -38
- package/dist/{chunk-y32em34x.js → chunk-35ezdbnv.js} +16 -18
- package/dist/{chunk-0gpem3pk.js → chunk-3hmgf3wg.js} +34 -36
- package/dist/{chunk-f4tdn7yr.js → chunk-3s0dfr99.js} +34 -36
- package/dist/{chunk-ev7h351p.js → chunk-43n91ybe.js} +6 -8
- package/dist/{chunk-snxp8mxj.js → chunk-45fm4zby.js} +2 -2
- package/dist/{chunk-xw99fqv1.js → chunk-46k21cp2.js} +4 -4
- package/dist/{chunk-6cfcqjty.js → chunk-496a2dj9.js} +38 -40
- package/dist/{chunk-wgd4n1q7.js → chunk-4ch0yj7k.js} +7 -9
- package/dist/{chunk-9z9teq7p.js → chunk-4s4vgf9j.js} +35 -37
- package/dist/{chunk-wxkrq9eb.js → chunk-4xes6pr4.js} +34 -36
- package/dist/{chunk-v6hbqcmr.js → chunk-4zx71gjb.js} +17 -19
- package/dist/{chunk-35nft36d.js → chunk-51p97n3a.js} +113 -117
- package/dist/{chunk-b6prbsae.js → chunk-542phb5x.js} +10 -14
- package/dist/{chunk-k8jpbz31.js → chunk-57190x8z.js} +14 -16
- package/dist/{chunk-ec6ga5ey.js → chunk-5enwkx00.js} +39 -41
- package/dist/{chunk-xffb3dsw.js → chunk-5hz3rcv3.js} +1 -1
- package/dist/{chunk-tj7v47cp.js → chunk-5pa7rye9.js} +1 -1
- package/dist/{chunk-fesvrjhd.js → chunk-5r10r06a.js} +8 -10
- package/dist/{chunk-hae34yd0.js → chunk-5rezzje2.js} +6 -8
- package/dist/{chunk-wg47eg7y.js → chunk-5vktw684.js} +34 -36
- package/dist/{chunk-2072dpbx.js → chunk-5vp228m5.js} +4 -6
- package/dist/{chunk-p9ny0p2a.js → chunk-5yvg4h4w.js} +14 -16
- package/dist/{chunk-frm7mphm.js → chunk-60q5gfv2.js} +9 -11
- package/dist/{chunk-dmyedkpw.js → chunk-657y059h.js} +6 -7
- package/dist/{chunk-84cdy41j.js → chunk-6af6k8cg.js} +6 -8
- package/dist/{chunk-vmp5rk8q.js → chunk-6e48t2eg.js} +6 -6
- package/dist/{chunk-dhwr4fz4.js → chunk-6e84jw8j.js} +1 -1
- package/dist/{chunk-qxjhw1dt.js → chunk-6f02d6a7.js} +17 -19
- package/dist/{chunk-f4v7t54y.js → chunk-6f3v6q11.js} +7 -8
- package/dist/{chunk-ef2m4xyz.js → chunk-6hd3qses.js} +34 -36
- package/dist/{chunk-5m3m7hr5.js → chunk-6jbmp7cc.js} +4 -4
- package/dist/{chunk-r6nnp8mj.js → chunk-6jh4ktef.js} +34 -36
- package/dist/{chunk-1efrnkxx.js → chunk-6pjsqs43.js} +8 -8
- package/dist/{chunk-dexkgxt4.js → chunk-6prf7w2a.js} +6 -8
- package/dist/{chunk-jxp2j9t5.js → chunk-6vn3qve2.js} +34 -36
- package/dist/{chunk-z16txqz0.js → chunk-6w51dnv1.js} +2 -2
- package/dist/{chunk-2m32xn94.js → chunk-73fcxjts.js} +12 -14
- package/dist/{chunk-g597bz1j.js → chunk-786fba9z.js} +35 -37
- package/dist/{chunk-x3jthbjq.js → chunk-7bn9x3a4.js} +35 -37
- package/dist/{chunk-ay5fvc2r.js → chunk-7dzf0vyg.js} +35 -37
- package/dist/{chunk-azv68vk1.js → chunk-7nzbvx9e.js} +2 -2
- package/dist/{chunk-1kmwf4vn.js → chunk-7we9b3rw.js} +12 -14
- package/dist/{chunk-rn1s097c.js → chunk-8a0rxq4x.js} +34 -36
- package/dist/{chunk-grqhgr2b.js → chunk-8d3kntdb.js} +3 -3
- package/dist/{chunk-t9eeyrkn.js → chunk-8qqf4fqb.js} +38 -41
- package/dist/{chunk-7etkb4pr.js → chunk-8y55mc4q.js} +2 -3
- package/dist/{chunk-frwznxnf.js → chunk-918zn0bw.js} +3 -3
- package/dist/{chunk-pfarypfq.js → chunk-92jgn98p.js} +36 -38
- package/dist/{chunk-jgvmjwnx.js → chunk-93hfvyd0.js} +34 -36
- package/dist/{chunk-be77bcs8.js → chunk-956kn4jm.js} +37 -39
- package/dist/{chunk-b547q41s.js → chunk-95tfr5nc.js} +35 -37
- package/dist/{chunk-ftsdm7y7.js → chunk-99kjyjqv.js} +42 -44
- package/dist/{chunk-40s88wdg.js → chunk-9an46bhy.js} +3 -5
- package/dist/{chunk-h4xfadhf.js → chunk-9cjqv8ks.js} +1 -1
- package/dist/{chunk-xvk90wpt.js → chunk-9t6ktd1k.js} +2 -2
- package/dist/{chunk-xtdm6ejq.js → chunk-a1e7apvj.js} +4 -4
- package/dist/{chunk-txgbs4hp.js → chunk-a3tsmh82.js} +39 -42
- package/dist/{chunk-ckh4f9ry.js → chunk-a4f2eabx.js} +13 -15
- package/dist/{chunk-nrjtxhyr.js → chunk-a4vds27m.js} +1 -1
- package/dist/{chunk-jtgyzqbq.js → chunk-a7fqavjt.js} +5 -7
- package/dist/{chunk-3npsy4c4.js → chunk-a9b8mvnf.js} +34 -36
- package/dist/{chunk-jsj3fx0g.js → chunk-agfhxmaa.js} +4 -4
- package/dist/{chunk-hrhp26d7.js → chunk-arr63gs7.js} +43 -45
- package/dist/{chunk-q4f1g9y6.js → chunk-atm8mys9.js} +10 -10
- package/dist/{chunk-q8hxwh48.js → chunk-ay73qdn7.js} +1 -1
- package/dist/{chunk-ayx9aq2k.js → chunk-b4e2yxzs.js} +35 -37
- package/dist/{chunk-3pzwd6qq.js → chunk-bas84mgf.js} +1 -1
- package/dist/{chunk-dj7d67ya.js → chunk-bf0apkzz.js} +1 -1
- package/dist/{chunk-e7ag583m.js → chunk-bh3mqd1n.js} +35 -37
- package/dist/{chunk-8jy18nx9.js → chunk-bngbc1q9.js} +1 -1
- package/dist/{chunk-j35mw64g.js → chunk-bwtw1cbj.js} +1 -1
- package/dist/{chunk-1v01c96r.js → chunk-c25z9zmd.js} +1 -1
- package/dist/{chunk-qkp4ygnk.js → chunk-c95dbdzk.js} +2 -2
- package/dist/{chunk-04pw5akr.js → chunk-cdqb8pyj.js} +15 -17
- package/dist/{chunk-0v89r445.js → chunk-cejztqqp.js} +12 -14
- package/dist/{chunk-z6wm96eh.js → chunk-cfvgegjj.js} +2 -2
- package/dist/{chunk-1hqb50ne.js → chunk-cgc5028n.js} +6 -8
- package/dist/{chunk-t1s91wrk.js → chunk-cj7gh4sc.js} +1 -1
- package/dist/{chunk-djfq8ws0.js → chunk-cmb7rm1k.js} +46 -48
- package/dist/{chunk-wtpgjmjd.js → chunk-cmqt0dnf.js} +35 -37
- package/dist/{chunk-dngfdsm9.js → chunk-cnvck8hk.js} +90 -92
- package/dist/{chunk-jksf0ax9.js → chunk-cp1y5wek.js} +38 -42
- package/dist/{chunk-mewywsar.js → chunk-cscffe8t.js} +34 -36
- package/dist/{chunk-1yfc1d48.js → chunk-d4n334px.js} +34 -36
- package/dist/{chunk-gzj94jgg.js → chunk-d6pdfssm.js} +34 -36
- package/dist/{chunk-t1pygy19.js → chunk-d7grzg31.js} +35 -37
- package/dist/{chunk-3e28fvn0.js → chunk-db92x7yq.js} +2 -2
- package/dist/{chunk-vbtm9g57.js → chunk-dm7fhe2p.js} +1 -1
- package/dist/{chunk-2vbash3m.js → chunk-dpg9k0qm.js} +6 -8
- package/dist/{chunk-skp5w8bq.js → chunk-dwyaks7s.js} +1 -1
- package/dist/{chunk-d8z7pyrb.js → chunk-e114ax4f.js} +35 -37
- package/dist/{chunk-sh2v9ywv.js → chunk-egj7sq93.js} +2 -2
- package/dist/{chunk-vk3nb2xe.js → chunk-ej46x3p8.js} +35 -37
- package/dist/{chunk-p4196wzm.js → chunk-ejjp1fy1.js} +4 -6
- package/dist/{chunk-b5asw4tj.js → chunk-eszdke28.js} +5 -5
- package/dist/{chunk-psm26hv7.js → chunk-etnkcek5.js} +8 -12
- package/dist/{chunk-qz0xdht6.js → chunk-eyys9mkd.js} +8 -9
- package/dist/{chunk-hparkfvt.js → chunk-ez7x0ev9.js} +42 -44
- package/dist/{chunk-r5nd93kc.js → chunk-f52xxv34.js} +1 -1
- package/dist/{chunk-rhvn1rqs.js → chunk-f7y0axm3.js} +2 -2
- package/dist/{chunk-c6hsz5ey.js → chunk-f81crq64.js} +13 -15
- package/dist/{chunk-trvc6jh7.js → chunk-fhfbj1pd.js} +37 -39
- package/dist/{chunk-3fn3ysvs.js → chunk-fn9xfcx2.js} +35 -37
- package/dist/{chunk-8b2y3x7a.js → chunk-fys33rtr.js} +1 -1
- package/dist/{chunk-9byfzaeq.js → chunk-g3pgn9a9.js} +34 -36
- package/dist/{chunk-zyjkg76f.js → chunk-g5jyxbsc.js} +6 -6
- package/dist/{chunk-9957ffjc.js → chunk-g96611rv.js} +2 -2
- package/dist/{chunk-msxggy37.js → chunk-gh9qnfb8.js} +15 -17
- package/dist/{chunk-jwwpfq76.js → chunk-ghs0pvtp.js} +36 -38
- package/dist/{chunk-bf03a1w7.js → chunk-gyrcpcs5.js} +36 -38
- package/dist/{chunk-b56smerd.js → chunk-h3rtwnzt.js} +2 -2
- package/dist/{chunk-q6tdxy8v.js → chunk-h6bgcfma.js} +3 -4
- package/dist/{chunk-1vp22nex.js → chunk-h7s9yqgb.js} +1 -1
- package/dist/{chunk-g5pe8dew.js → chunk-h8e89948.js} +4 -5
- package/dist/{chunk-hg45r671.js → chunk-hcpahckc.js} +2 -2
- package/dist/{chunk-wa0xgm6m.js → chunk-hgm8d1ke.js} +10 -14
- package/dist/{chunk-xgbd6ec5.js → chunk-hm6aeakn.js} +35 -37
- package/dist/{chunk-v3s93bzd.js → chunk-hqdwr6mz.js} +1 -1
- package/dist/{chunk-5zcygjb2.js → chunk-hy3ye51v.js} +34 -36
- package/dist/{chunk-njw0haha.js → chunk-hy74wncp.js} +9 -9
- package/dist/{chunk-7hrmxpha.js → chunk-j1y56wgn.js} +25 -19
- package/dist/{chunk-7krg0dkt.js → chunk-j7ptfetg.js} +1 -1
- package/dist/{chunk-g78fetxa.js → chunk-j8bapw4n.js} +34 -36
- package/dist/{chunk-93vwm44t.js → chunk-ja513x2h.js} +162 -166
- package/dist/{chunk-rpsqtvkx.js → chunk-ja9h4h89.js} +34 -36
- package/dist/{chunk-rmpaj37q.js → chunk-jbrktexr.js} +38 -40
- package/dist/{chunk-xswyz2es.js → chunk-jbv0d2xg.js} +1 -1
- package/dist/{chunk-x2bnzvd6.js → chunk-jry93mfk.js} +34 -36
- package/dist/{chunk-y5wfy524.js → chunk-jvwbz0zr.js} +37 -39
- package/dist/{chunk-bjdknxqn.js → chunk-kbdaeekj.js} +34 -36
- package/dist/{chunk-kjqyhxz7.js → chunk-kd5k97vr.js} +6 -8
- package/dist/{chunk-szzff973.js → chunk-kj3w1t4e.js} +4 -4
- package/dist/{chunk-6wzg2hpc.js → chunk-kpr0q6sr.js} +1 -1
- package/dist/{chunk-8ckwc9k8.js → chunk-kweh7zc3.js} +34 -36
- package/dist/{chunk-j99ms5ep.js → chunk-kxjfdqf8.js} +4 -6
- package/dist/{chunk-pddf0719.js → chunk-m6w05wvy.js} +37 -39
- package/dist/{chunk-ecbh4n6q.js → chunk-m799k476.js} +37 -40
- package/dist/{chunk-rygxwjtc.js → chunk-m9jet1d8.js} +35 -37
- package/dist/{chunk-ratnrv9v.js → chunk-mg0an997.js} +3 -3
- package/dist/{chunk-1hqvvvrt.js → chunk-mgg5a735.js} +43 -45
- package/dist/{chunk-2y8x7xt7.js → chunk-mqqq51yf.js} +2 -2
- package/dist/{chunk-44t1xk05.js → chunk-mtb0aeh7.js} +34 -36
- package/dist/{chunk-2yxqz99n.js → chunk-mv2g25hg.js} +7 -9
- package/dist/{chunk-4vtvwg7e.js → chunk-nasq48jf.js} +42 -44
- package/dist/{chunk-vtmxgm1m.js → chunk-nazmv0yc.js} +5 -7
- package/dist/{chunk-9wf3fc4t.js → chunk-nczt1pg8.js} +2 -2
- package/dist/{chunk-22mfb6bp.js → chunk-njm3ynry.js} +14 -16
- package/dist/{chunk-r3ehjkj5.js → chunk-nqd47stn.js} +46 -48
- package/dist/{chunk-35z2vxep.js → chunk-nwj6zx84.js} +37 -39
- package/dist/{chunk-rnxpvm3m.js → chunk-p10431ea.js} +1 -1
- package/dist/{chunk-65q3hqkw.js → chunk-p546k5vf.js} +12 -14
- package/dist/{chunk-thenr6b3.js → chunk-p6ayjcy6.js} +7 -7
- package/dist/{chunk-w3gnkyfc.js → chunk-p7t9gxz7.js} +38 -40
- package/dist/{chunk-ttyfhx12.js → chunk-pbejmtc5.js} +96 -66
- package/dist/{chunk-xhn4ptjn.js → chunk-pcv6hjxt.js} +42 -45
- package/dist/{chunk-67wms97m.js → chunk-pn1gzpw4.js} +15 -17
- package/dist/{chunk-ecv9kbtk.js → chunk-pzhgwt85.js} +4 -4
- package/dist/{chunk-hb1gr101.js → chunk-q0dfe2ma.js} +5 -7
- package/dist/{chunk-thmtkfgj.js → chunk-q1tan6f7.js} +6 -8
- package/dist/{chunk-rx4mcfg1.js → chunk-q2795dh5.js} +43 -45
- package/dist/{chunk-zxywawr7.js → chunk-q3b963kf.js} +1 -1
- package/dist/{chunk-b89ese8r.js → chunk-q3jf7cv8.js} +34 -36
- package/dist/{chunk-04h360ha.js → chunk-qb786rmk.js} +17 -19
- package/dist/{chunk-pwpk3gm6.js → chunk-qd5n2h9f.js} +5 -7
- package/dist/{chunk-sjpqw47t.js → chunk-qgzma8ky.js} +3 -3
- package/dist/{chunk-2vteceqh.js → chunk-qhsd552n.js} +4 -4
- package/dist/{chunk-9w114071.js → chunk-r328sk36.js} +5 -5
- package/dist/{chunk-hgmhngje.js → chunk-r7xxhzs2.js} +4 -4
- package/dist/{chunk-ty1cyqr7.js → chunk-r8q566z2.js} +37 -39
- package/dist/{chunk-7skyagc2.js → chunk-rbq4mcw7.js} +2 -2
- package/dist/{chunk-jj4zs4gr.js → chunk-rj6htvwb.js} +34 -36
- package/dist/{chunk-1gaw18rz.js → chunk-rxmv911f.js} +35 -37
- package/dist/{chunk-dt3epnwj.js → chunk-sa6bbzsy.js} +11 -13
- package/dist/{chunk-vajsk9ya.js → chunk-sfsy9bm0.js} +12 -14
- package/dist/{chunk-vw5jzpcm.js → chunk-skr9v618.js} +7 -9
- package/dist/{chunk-v4wba09w.js → chunk-t1xq3fhc.js} +37 -39
- package/dist/{chunk-42a0nyrq.js → chunk-t2ng3ptk.js} +35 -37
- package/dist/{chunk-jqfrz5g9.js → chunk-t47pgtvn.js} +17 -19
- package/dist/{chunk-vyz3v0qx.js → chunk-t5thxbgd.js} +5 -5
- package/dist/{chunk-1486qzk5.js → chunk-t6b35end.js} +3 -3
- package/dist/{chunk-rjq5nf1c.js → chunk-t74h1vfr.js} +11 -13
- package/dist/{chunk-tpk67mjc.js → chunk-t83k78sc.js} +3 -3
- package/dist/{chunk-7cje7scj.js → chunk-tbw0dr1x.js} +7 -9
- package/dist/{chunk-v0tgjdx0.js → chunk-tcjxkf7r.js} +11 -13
- package/dist/{chunk-ya9dxex0.js → chunk-te8afx2m.js} +36 -38
- package/dist/{chunk-k7cw1a8a.js → chunk-tmjt0nae.js} +1 -1
- package/dist/{chunk-jjz3hs34.js → chunk-tw8tg8kd.js} +47 -49
- package/dist/{chunk-hzbr9543.js → chunk-v2ah6nmr.js} +4 -4
- package/dist/{chunk-5tw3gj5z.js → chunk-v3215haz.js} +35 -37
- package/dist/{chunk-xcrzgyce.js → chunk-v3edramj.js} +34 -36
- package/dist/{chunk-w3782jck.js → chunk-v9dqk91p.js} +38 -41
- package/dist/{chunk-h3vyya5n.js → chunk-vg83d3zq.js} +13 -15
- package/dist/{chunk-kxrrtr3p.js → chunk-vpqp1mq8.js} +1 -1
- package/dist/{chunk-ecvy1ng2.js → chunk-vq3sw69a.js} +36 -38
- package/dist/{chunk-qctsv1d7.js → chunk-vwtdaw6w.js} +13 -17
- package/dist/{chunk-4ayjwyqj.js → chunk-w28t9jy7.js} +2 -4
- package/dist/{chunk-xs7zsmzk.js → chunk-w7w8t8tn.js} +36 -39
- package/dist/{chunk-gkn3jgqn.js → chunk-w96856xh.js} +46 -48
- package/dist/{chunk-54wn2jdr.js → chunk-w9v6bd0p.js} +2 -2
- package/dist/{chunk-ssb4wba6.js → chunk-wb53cfxb.js} +12 -14
- package/dist/{chunk-mmhkcj7c.js → chunk-wejkerqs.js} +46 -49
- package/dist/{chunk-h61d4awv.js → chunk-wnvvmh04.js} +36 -38
- package/dist/{chunk-etbb3dss.js → chunk-wz575naw.js} +37 -39
- package/dist/{chunk-1hx5g6qy.js → chunk-x5yc4663.js} +4 -4
- package/dist/{chunk-ey0n4emm.js → chunk-x8webzs9.js} +34 -36
- package/dist/{chunk-s19b0bc7.js → chunk-xdzhs9yv.js} +34 -36
- package/dist/{chunk-dz6zxh89.js → chunk-xe3c1vqh.js} +36 -39
- package/dist/{chunk-3e4r5pmc.js → chunk-xe49p33m.js} +4 -6
- package/dist/{chunk-rz94yg8c.js → chunk-xkpb3hbc.js} +4 -6
- package/dist/{chunk-6hs0cptm.js → chunk-xmv9n004.js} +42 -45
- package/dist/{chunk-72qa16xm.js → chunk-xnyztq9h.js} +36 -38
- package/dist/{chunk-v5g8nf5h.js → chunk-xr05z50c.js} +10 -14
- package/dist/{chunk-rfq9kmsy.js → chunk-xxahhkz2.js} +7 -8
- package/dist/{chunk-rfbbcx5s.js → chunk-y3qrx3ys.js} +34 -36
- package/dist/{chunk-tf859h88.js → chunk-y5nttq3d.js} +13 -16
- package/dist/{chunk-grqkx44z.js → chunk-y8thpqv0.js} +35 -37
- package/dist/{chunk-2nrarbza.js → chunk-y93z1mpf.js} +34 -36
- package/dist/{chunk-pd2vy8hx.js → chunk-yb6xww2x.js} +525 -56
- package/dist/{chunk-1nvcmzj1.js → chunk-ycc8yj76.js} +46 -48
- package/dist/{chunk-m70n19dz.js → chunk-yg11waka.js} +36 -38
- package/dist/{chunk-ghwvqhx9.js → chunk-ynytwr1a.js} +35 -37
- package/dist/{chunk-cay13mxk.js → chunk-ys8cwzed.js} +4 -4
- package/dist/{chunk-cr1dv2js.js → chunk-z3xh5n00.js} +36 -39
- package/dist/{chunk-vmbht6ec.js → chunk-zjnpfrg7.js} +6 -6
- package/dist/{chunk-p791ydbm.js → chunk-zs8gxf6g.js} +4 -4
- package/dist/{chunk-zcgprbyy.js → chunk-zzadbnpy.js} +20 -22
- package/dist/cli.js +7 -7
- package/dist/gateway/index.js +131 -27
- package/dist/gateway/worker.js +1664 -1188
- package/package.json +1 -1
- package/dist/chunk-5cxjxxx8.js +0 -352
- package/dist/chunk-7cdy4aj6.js +0 -150
- package/dist/chunk-rkv8bdtr.js +0 -125
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
getRecentReleaseNotesSync,
|
|
11
11
|
init_logoV2Utils,
|
|
12
12
|
truncatePath
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-x5yc4663.js";
|
|
14
14
|
import {
|
|
15
15
|
init_systemTheme,
|
|
16
16
|
resolveThemeSetting
|
|
@@ -18,27 +18,27 @@ import {
|
|
|
18
18
|
import {
|
|
19
19
|
init_useMainLoopModel,
|
|
20
20
|
useMainLoopModel
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-t6b35end.js";
|
|
22
22
|
import {
|
|
23
23
|
checkForReleaseNotesSync,
|
|
24
24
|
init_releaseNotes
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-kxjfdqf8.js";
|
|
26
26
|
import {
|
|
27
27
|
AGENT_DESCRIPTIONS_THRESHOLD,
|
|
28
28
|
getAgentDescriptionsTotalTokens,
|
|
29
29
|
init_statusNoticeHelpers
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-11snnhy9.js";
|
|
31
31
|
import {
|
|
32
32
|
OverageCreditUpsell,
|
|
33
33
|
createOverageCreditFeed,
|
|
34
34
|
incrementOverageCreditUpsellSeenCount,
|
|
35
35
|
init_OverageCreditUpsell,
|
|
36
36
|
useShowOverageCreditUpsell
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-qgzma8ky.js";
|
|
38
38
|
import {
|
|
39
39
|
PromptInputFooterSuggestions_default,
|
|
40
40
|
init_PromptInputFooterSuggestions
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-hcpahckc.js";
|
|
42
42
|
import {
|
|
43
43
|
ModalContext,
|
|
44
44
|
init_modalContext
|
|
@@ -114,34 +114,34 @@ import {
|
|
|
114
114
|
toolCallOf,
|
|
115
115
|
useAppState,
|
|
116
116
|
useShortcutDisplay
|
|
117
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-ja513x2h.js";
|
|
118
118
|
import {
|
|
119
119
|
checkCachedPassesEligibility,
|
|
120
120
|
formatCreditAmount,
|
|
121
121
|
getCachedReferrerReward,
|
|
122
122
|
getCachedRemainingPasses,
|
|
123
123
|
init_referral
|
|
124
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-jbv0d2xg.js";
|
|
125
125
|
import {
|
|
126
126
|
getSteps,
|
|
127
127
|
incrementProjectOnboardingSeenCount,
|
|
128
128
|
init_projectOnboardingState,
|
|
129
129
|
shouldShowProjectOnboarding
|
|
130
|
-
} from "./chunk-
|
|
130
|
+
} from "./chunk-542phb5x.js";
|
|
131
131
|
import {
|
|
132
132
|
init_advisor,
|
|
133
133
|
isAdvisorBlock
|
|
134
|
-
} from "./chunk-
|
|
134
|
+
} from "./chunk-mg0an997.js";
|
|
135
135
|
import {
|
|
136
136
|
init_model,
|
|
137
137
|
isOpus1mMergeEnabled,
|
|
138
138
|
renderModelSetting
|
|
139
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-tbw0dr1x.js";
|
|
140
140
|
import {
|
|
141
141
|
init_browser,
|
|
142
142
|
openBrowser,
|
|
143
143
|
openPath
|
|
144
|
-
} from "./chunk-
|
|
144
|
+
} from "./chunk-2k3y6fnp.js";
|
|
145
145
|
import {
|
|
146
146
|
BLACK_CIRCLE,
|
|
147
147
|
TEARDROP_ASTERISK,
|
|
@@ -164,7 +164,7 @@ import {
|
|
|
164
164
|
init_stringUtils,
|
|
165
165
|
plural,
|
|
166
166
|
saveGlobalConfig
|
|
167
|
-
} from "./chunk-
|
|
167
|
+
} from "./chunk-vwtdaw6w.js";
|
|
168
168
|
import {
|
|
169
169
|
init_sleep,
|
|
170
170
|
sleep
|
|
@@ -172,7 +172,7 @@ import {
|
|
|
172
172
|
import {
|
|
173
173
|
env,
|
|
174
174
|
init_env
|
|
175
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-1a5w7wdt.js";
|
|
176
176
|
import {
|
|
177
177
|
formatNumber,
|
|
178
178
|
formatRelativeTimeAgo,
|
|
@@ -181,7 +181,7 @@ import {
|
|
|
181
181
|
init_startupProfiler,
|
|
182
182
|
isDetailedProfilingEnabled,
|
|
183
183
|
truncate
|
|
184
|
-
} from "./chunk-
|
|
184
|
+
} from "./chunk-bwtw1cbj.js";
|
|
185
185
|
import {
|
|
186
186
|
Divider,
|
|
187
187
|
ScrollBox_default,
|
|
@@ -206,12 +206,6 @@ import {
|
|
|
206
206
|
init_analytics,
|
|
207
207
|
logEvent
|
|
208
208
|
} from "./chunk-x8d2ehd7.js";
|
|
209
|
-
import {
|
|
210
|
-
STATUS_TAG,
|
|
211
|
-
SUMMARY_TAG,
|
|
212
|
-
TASK_NOTIFICATION_TAG,
|
|
213
|
-
init_xml
|
|
214
|
-
} from "./chunk-5cxjxxx8.js";
|
|
215
209
|
import {
|
|
216
210
|
getCwd,
|
|
217
211
|
init_cwd
|
|
@@ -221,12 +215,16 @@ import {
|
|
|
221
215
|
init_figures
|
|
222
216
|
} from "./chunk-qajrkk97.js";
|
|
223
217
|
import {
|
|
218
|
+
STATUS_TAG,
|
|
219
|
+
SUMMARY_TAG,
|
|
220
|
+
TASK_NOTIFICATION_TAG,
|
|
224
221
|
getDebugLogPath,
|
|
225
222
|
init_debug,
|
|
223
|
+
init_xml,
|
|
226
224
|
isDebugMode,
|
|
227
225
|
isDebugToStdErr,
|
|
228
226
|
logForDebugging
|
|
229
|
-
} from "./chunk-
|
|
227
|
+
} from "./chunk-yb6xww2x.js";
|
|
230
228
|
import {
|
|
231
229
|
init_envUtils,
|
|
232
230
|
isEnvTruthy
|
package/dist/cli.js
CHANGED
|
@@ -28,22 +28,22 @@ async function main() {
|
|
|
28
28
|
console.log(`${"2.1.888"} (Claude Code)`);
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
-
const { profileCheckpoint } = await import("./chunk-
|
|
31
|
+
const { profileCheckpoint } = await import("./chunk-6w51dnv1.js");
|
|
32
32
|
profileCheckpoint("cli_entry");
|
|
33
33
|
if (false) {}
|
|
34
34
|
if (process.argv[2] === "--claude-in-chrome-mcp") {
|
|
35
35
|
profileCheckpoint("cli_claude_in_chrome_mcp_path");
|
|
36
|
-
const { runClaudeInChromeMcpServer } = await import("./chunk-
|
|
36
|
+
const { runClaudeInChromeMcpServer } = await import("./chunk-7dzf0vyg.js");
|
|
37
37
|
await runClaudeInChromeMcpServer();
|
|
38
38
|
return;
|
|
39
39
|
} else if (process.argv[2] === "--chrome-native-host") {
|
|
40
40
|
profileCheckpoint("cli_chrome_native_host_path");
|
|
41
|
-
const { runChromeNativeHost } = await import("./chunk-
|
|
41
|
+
const { runChromeNativeHost } = await import("./chunk-qd5n2h9f.js");
|
|
42
42
|
await runChromeNativeHost();
|
|
43
43
|
return;
|
|
44
44
|
} else if (process.argv[2] === "--computer-use-mcp") {
|
|
45
45
|
profileCheckpoint("cli_computer_use_mcp_path");
|
|
46
|
-
const { runComputerUseMcpServer } = await import("./chunk-
|
|
46
|
+
const { runComputerUseMcpServer } = await import("./chunk-t47pgtvn.js");
|
|
47
47
|
await runComputerUseMcpServer();
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
@@ -62,11 +62,11 @@ async function main() {
|
|
|
62
62
|
const hasTmuxFlag = args.includes("--tmux") || args.includes("--tmux=classic");
|
|
63
63
|
if (hasTmuxFlag && (args.includes("-w") || args.includes("--worktree") || args.some((a) => a.startsWith("--worktree=")))) {
|
|
64
64
|
profileCheckpoint("cli_tmux_worktree_fast_path");
|
|
65
|
-
const { enableConfigs } = await import("./chunk-
|
|
65
|
+
const { enableConfigs } = await import("./chunk-t74h1vfr.js");
|
|
66
66
|
enableConfigs();
|
|
67
67
|
const { isWorktreeModeEnabled } = await import("./chunk-pwwa7s62.js");
|
|
68
68
|
if (isWorktreeModeEnabled()) {
|
|
69
|
-
const { execIntoTmuxWorktree } = await import("./chunk-
|
|
69
|
+
const { execIntoTmuxWorktree } = await import("./chunk-3hmgf3wg.js");
|
|
70
70
|
const result = await execIntoTmuxWorktree(args);
|
|
71
71
|
if (result.handled) {
|
|
72
72
|
return;
|
|
@@ -83,7 +83,7 @@ async function main() {
|
|
|
83
83
|
const { startCapturingEarlyInput } = await import("./chunk-etdt1xz3.js");
|
|
84
84
|
startCapturingEarlyInput();
|
|
85
85
|
profileCheckpoint("cli_before_main_import");
|
|
86
|
-
const { main: cliMain } = await import("./chunk-
|
|
86
|
+
const { main: cliMain } = await import("./chunk-51p97n3a.js");
|
|
87
87
|
profileCheckpoint("cli_after_main_import");
|
|
88
88
|
await cliMain();
|
|
89
89
|
profileCheckpoint("cli_after_main_complete");
|
package/dist/gateway/index.js
CHANGED
|
@@ -22,7 +22,6 @@ function parseJsonRpc(line) {
|
|
|
22
22
|
|
|
23
23
|
// src/entrypoints/gateway/sessionRouter.ts
|
|
24
24
|
import { Worker } from "node:worker_threads";
|
|
25
|
-
import { createHash } from "node:crypto";
|
|
26
25
|
var DEFAULT_MAX_SESSIONS = 16;
|
|
27
26
|
var DEFAULT_IDLE_TTL_MS = 10 * 60 * 1000;
|
|
28
27
|
var IDLE_CHECK_INTERVAL_MS = 60 * 1000;
|
|
@@ -35,6 +34,8 @@ class SessionRouter {
|
|
|
35
34
|
onWorkerMessage;
|
|
36
35
|
onWorkerExit;
|
|
37
36
|
idleTimer = null;
|
|
37
|
+
pendingReady = new Map;
|
|
38
|
+
pendingUpdate = new Map;
|
|
38
39
|
constructor(options) {
|
|
39
40
|
this.workerPath = options.workerPath;
|
|
40
41
|
this.maxSessions = options.maxSessions ?? DEFAULT_MAX_SESSIONS;
|
|
@@ -47,12 +48,17 @@ class SessionRouter {
|
|
|
47
48
|
}
|
|
48
49
|
async create(sessionKey, config) {
|
|
49
50
|
if (this.sessions.has(sessionKey)) {
|
|
50
|
-
|
|
51
|
+
process.stderr.write(`[SessionRouter] Session already exists, destroying old: ${sessionKey}
|
|
52
|
+
`);
|
|
53
|
+
await this.destroy(sessionKey);
|
|
51
54
|
}
|
|
52
55
|
if (this.sessions.size >= this.maxSessions) {
|
|
56
|
+
process.stderr.write(`[SessionRouter] Max sessions reached, evicting LRU session
|
|
57
|
+
`);
|
|
53
58
|
this.evictLRU();
|
|
54
59
|
}
|
|
55
|
-
|
|
60
|
+
process.stderr.write(`[SessionRouter] Creating worker for session: ${sessionKey}
|
|
61
|
+
`);
|
|
56
62
|
const worker = new Worker(this.workerPath, {
|
|
57
63
|
workerData: config
|
|
58
64
|
});
|
|
@@ -60,26 +66,42 @@ class SessionRouter {
|
|
|
60
66
|
sessionKey,
|
|
61
67
|
worker,
|
|
62
68
|
sessionId: null,
|
|
63
|
-
configHash,
|
|
64
69
|
lastActive: new Date,
|
|
65
|
-
created: new Date
|
|
70
|
+
created: new Date,
|
|
71
|
+
destroyed: false
|
|
66
72
|
};
|
|
67
73
|
worker.on("message", (msg) => {
|
|
68
74
|
if (msg.type === "ready") {
|
|
69
75
|
entry.sessionId = msg.session_id;
|
|
76
|
+
this.pendingReady.get(sessionKey)?.resolve();
|
|
77
|
+
this.pendingReady.delete(sessionKey);
|
|
78
|
+
}
|
|
79
|
+
if (msg.type === "updated") {
|
|
80
|
+
this.pendingUpdate.get(sessionKey)?.resolve();
|
|
81
|
+
this.pendingUpdate.delete(sessionKey);
|
|
70
82
|
}
|
|
71
83
|
entry.lastActive = new Date;
|
|
72
84
|
this.onWorkerMessage(sessionKey, msg);
|
|
73
85
|
});
|
|
74
86
|
worker.on("exit", (code) => {
|
|
75
87
|
this.sessions.delete(sessionKey);
|
|
76
|
-
|
|
88
|
+
if (!entry.destroyed) {
|
|
89
|
+
process.stderr.write(`[SessionRouter] Worker exited unexpectedly for session: ${sessionKey}, code: ${code}
|
|
90
|
+
`);
|
|
91
|
+
this.onWorkerExit(sessionKey, code);
|
|
92
|
+
} else {
|
|
93
|
+
process.stderr.write(`[SessionRouter] Worker destroyed for session: ${sessionKey}, code: ${code}
|
|
94
|
+
`);
|
|
95
|
+
}
|
|
77
96
|
});
|
|
78
97
|
worker.on("error", (err) => {
|
|
98
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
99
|
+
process.stderr.write(`[SessionRouter] Worker thread error for session: ${sessionKey} - ${errMsg}
|
|
100
|
+
`);
|
|
79
101
|
this.onWorkerMessage(sessionKey, {
|
|
80
102
|
type: "error",
|
|
81
103
|
session_key: sessionKey,
|
|
82
|
-
error: `Worker thread error: ${
|
|
104
|
+
error: `Worker thread error: ${errMsg}`
|
|
83
105
|
});
|
|
84
106
|
});
|
|
85
107
|
this.sessions.set(sessionKey, entry);
|
|
@@ -90,9 +112,6 @@ class SessionRouter {
|
|
|
90
112
|
has(sessionKey) {
|
|
91
113
|
return this.sessions.has(sessionKey);
|
|
92
114
|
}
|
|
93
|
-
getConfigHash(sessionKey) {
|
|
94
|
-
return this.sessions.get(sessionKey)?.configHash;
|
|
95
|
-
}
|
|
96
115
|
send(sessionKey, msg) {
|
|
97
116
|
const entry = this.sessions.get(sessionKey);
|
|
98
117
|
if (!entry)
|
|
@@ -104,14 +123,62 @@ class SessionRouter {
|
|
|
104
123
|
const entry = this.sessions.get(sessionKey);
|
|
105
124
|
if (!entry)
|
|
106
125
|
return;
|
|
126
|
+
process.stderr.write(`[SessionRouter] Destroying worker for session: ${sessionKey}
|
|
127
|
+
`);
|
|
128
|
+
this.pendingReady.get(sessionKey)?.reject(new Error("Session destroyed"));
|
|
129
|
+
this.pendingReady.delete(sessionKey);
|
|
130
|
+
this.pendingUpdate.get(sessionKey)?.reject(new Error("Session destroyed"));
|
|
131
|
+
this.pendingUpdate.delete(sessionKey);
|
|
107
132
|
this.sessions.delete(sessionKey);
|
|
133
|
+
entry.destroyed = true;
|
|
108
134
|
entry.worker.postMessage({ type: "destroy" });
|
|
135
|
+
const exitPromise = new Promise((resolve) => {
|
|
136
|
+
entry.worker.once("exit", () => resolve());
|
|
137
|
+
});
|
|
138
|
+
const timeout = new Promise((resolve) => setTimeout(resolve, 2000));
|
|
139
|
+
await Promise.race([exitPromise, timeout]);
|
|
109
140
|
await entry.worker.terminate();
|
|
110
141
|
}
|
|
111
142
|
async destroyAll() {
|
|
112
143
|
const keys = [...this.sessions.keys()];
|
|
113
144
|
await Promise.all(keys.map((k) => this.destroy(k)));
|
|
114
145
|
}
|
|
146
|
+
waitForReady(sessionKey, timeoutMs = 30000) {
|
|
147
|
+
return new Promise((resolve, reject) => {
|
|
148
|
+
const timer = setTimeout(() => {
|
|
149
|
+
this.pendingReady.delete(sessionKey);
|
|
150
|
+
reject(new Error(`Session creation timed out after ${timeoutMs / 1000}s`));
|
|
151
|
+
}, timeoutMs);
|
|
152
|
+
this.pendingReady.set(sessionKey, {
|
|
153
|
+
resolve: () => {
|
|
154
|
+
clearTimeout(timer);
|
|
155
|
+
resolve();
|
|
156
|
+
},
|
|
157
|
+
reject: (err) => {
|
|
158
|
+
clearTimeout(timer);
|
|
159
|
+
reject(err);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
waitForUpdate(sessionKey, timeoutMs = 15000) {
|
|
165
|
+
return new Promise((resolve, reject) => {
|
|
166
|
+
const timer = setTimeout(() => {
|
|
167
|
+
this.pendingUpdate.delete(sessionKey);
|
|
168
|
+
reject(new Error(`Session update timed out after ${timeoutMs / 1000}s`));
|
|
169
|
+
}, timeoutMs);
|
|
170
|
+
this.pendingUpdate.set(sessionKey, {
|
|
171
|
+
resolve: () => {
|
|
172
|
+
clearTimeout(timer);
|
|
173
|
+
resolve();
|
|
174
|
+
},
|
|
175
|
+
reject: (err) => {
|
|
176
|
+
clearTimeout(timer);
|
|
177
|
+
reject(err);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
}
|
|
115
182
|
get activeCount() {
|
|
116
183
|
return this.sessions.size;
|
|
117
184
|
}
|
|
@@ -128,10 +195,16 @@ class SessionRouter {
|
|
|
128
195
|
const now = Date.now();
|
|
129
196
|
const toEvict = [];
|
|
130
197
|
for (const [key, entry] of this.sessions) {
|
|
198
|
+
if (this.pendingReady.has(key))
|
|
199
|
+
continue;
|
|
131
200
|
if (now - entry.lastActive.getTime() > this.idleTtlMs) {
|
|
132
201
|
toEvict.push(key);
|
|
133
202
|
}
|
|
134
203
|
}
|
|
204
|
+
if (toEvict.length > 0) {
|
|
205
|
+
process.stderr.write(`[SessionRouter] Evicting ${toEvict.length} idle session(s): ${toEvict.join(", ")}
|
|
206
|
+
`);
|
|
207
|
+
}
|
|
135
208
|
for (const key of toEvict) {
|
|
136
209
|
this.destroy(key).catch(() => {});
|
|
137
210
|
}
|
|
@@ -140,29 +213,20 @@ class SessionRouter {
|
|
|
140
213
|
let oldest = null;
|
|
141
214
|
let oldestTime = Infinity;
|
|
142
215
|
for (const [key, entry] of this.sessions) {
|
|
216
|
+
if (this.pendingReady.has(key))
|
|
217
|
+
continue;
|
|
143
218
|
if (entry.lastActive.getTime() < oldestTime) {
|
|
144
219
|
oldestTime = entry.lastActive.getTime();
|
|
145
220
|
oldest = key;
|
|
146
221
|
}
|
|
147
222
|
}
|
|
148
223
|
if (oldest) {
|
|
224
|
+
process.stderr.write(`[SessionRouter] Evicting LRU session: ${oldest}
|
|
225
|
+
`);
|
|
149
226
|
this.destroy(oldest).catch(() => {});
|
|
150
227
|
}
|
|
151
228
|
}
|
|
152
229
|
}
|
|
153
|
-
function computeConfigHash(config) {
|
|
154
|
-
const parts = [
|
|
155
|
-
config.session.model ?? "",
|
|
156
|
-
config.session.cwd ?? "",
|
|
157
|
-
config.session.systemPrompt ?? "",
|
|
158
|
-
config.session.appendSystemPrompt ?? "",
|
|
159
|
-
config.session.permissionMode ?? "",
|
|
160
|
-
config.permission.mode ?? "",
|
|
161
|
-
...(config.permission.allowed_tools ?? []).sort(),
|
|
162
|
-
...(config.permission.denied_tools ?? []).sort()
|
|
163
|
-
];
|
|
164
|
-
return createHash("sha256").update(JSON.stringify(parts)).digest("hex").slice(0, 16);
|
|
165
|
-
}
|
|
166
230
|
|
|
167
231
|
// src/entrypoints/gateway/index.ts
|
|
168
232
|
var __dirname2 = dirname(fileURLToPath(import.meta.url));
|
|
@@ -170,6 +234,7 @@ var WORKER_PATH = resolve(__dirname2, "worker.js");
|
|
|
170
234
|
var outputBuffer = "";
|
|
171
235
|
var drainResolve = null;
|
|
172
236
|
var MAX_OUTPUT_BUFFER_SIZE = 10 * 1024 * 1024;
|
|
237
|
+
var lastWorkerErrors = new Map;
|
|
173
238
|
function notify(msg) {
|
|
174
239
|
let line;
|
|
175
240
|
try {
|
|
@@ -205,15 +270,22 @@ var router = new SessionRouter({
|
|
|
205
270
|
onWorkerMessage: (sessionKey, msg) => {
|
|
206
271
|
switch (msg.type) {
|
|
207
272
|
case "ready":
|
|
208
|
-
|
|
273
|
+
process.stderr.write(`[Gateway] Session ready: ${sessionKey}, sessionId: ${msg.session_id}
|
|
274
|
+
`);
|
|
275
|
+
notify({ method: "session.ready", params: { session_key: msg.session_key, session_id: msg.session_id, state_session_id: msg.state_session_id } });
|
|
209
276
|
break;
|
|
210
277
|
case "stream":
|
|
211
278
|
notify({ method: "session.stream", params: { session_key: msg.session_key, data: msg.data } });
|
|
212
279
|
break;
|
|
213
280
|
case "complete":
|
|
281
|
+
process.stderr.write(`[Gateway] Session complete: ${sessionKey}, sessionId: ${msg.session_id}
|
|
282
|
+
`);
|
|
214
283
|
notify({ method: "session.complete", params: { session_key: msg.session_key, session_id: msg.session_id } });
|
|
215
284
|
break;
|
|
216
285
|
case "error":
|
|
286
|
+
process.stderr.write(`[Gateway] Session error: ${sessionKey} - ${msg.error}
|
|
287
|
+
`);
|
|
288
|
+
lastWorkerErrors.set(sessionKey, msg.error);
|
|
217
289
|
notify({ method: "session.error", params: { session_key: msg.session_key, error: msg.error } });
|
|
218
290
|
break;
|
|
219
291
|
case "permission_request":
|
|
@@ -229,21 +301,31 @@ var router = new SessionRouter({
|
|
|
229
301
|
}
|
|
230
302
|
});
|
|
231
303
|
break;
|
|
304
|
+
case "updated":
|
|
305
|
+
process.stderr.write(`[Gateway] Session updated: ${sessionKey}
|
|
306
|
+
`);
|
|
307
|
+
break;
|
|
232
308
|
}
|
|
233
309
|
},
|
|
234
310
|
onWorkerExit: (sessionKey, code) => {
|
|
235
|
-
|
|
311
|
+
const lastError = lastWorkerErrors.get(sessionKey);
|
|
312
|
+
const enrichedError = lastError ? `Worker exited with code ${code}. Last error: ${lastError}` : `Worker exited with code ${code}`;
|
|
313
|
+
process.stderr.write(`[Gateway] Worker exited: ${sessionKey}, code: ${code}. Last error: ${lastError || "none"}
|
|
314
|
+
`);
|
|
315
|
+
notify({ method: "session.error", params: { session_key: sessionKey, error: enrichedError } });
|
|
316
|
+
lastWorkerErrors.delete(sessionKey);
|
|
236
317
|
}
|
|
237
318
|
});
|
|
238
319
|
async function handleRequest(req) {
|
|
239
320
|
switch (req.method) {
|
|
240
321
|
case "session.create": {
|
|
241
|
-
const { session_key, config, permission, env } = req.params;
|
|
322
|
+
const { session_key, config, permission, env, resume } = req.params;
|
|
242
323
|
const workerConfig = {
|
|
243
324
|
sessionKey: session_key,
|
|
244
325
|
session: config,
|
|
245
326
|
permission,
|
|
246
|
-
env
|
|
327
|
+
env,
|
|
328
|
+
resume
|
|
247
329
|
};
|
|
248
330
|
try {
|
|
249
331
|
await router.create(session_key, workerConfig);
|
|
@@ -284,6 +366,28 @@ async function handleRequest(req) {
|
|
|
284
366
|
await router.destroy(session_key);
|
|
285
367
|
break;
|
|
286
368
|
}
|
|
369
|
+
case "session.update": {
|
|
370
|
+
const { session_key, config } = req.params;
|
|
371
|
+
if (!router.has(session_key)) {
|
|
372
|
+
notify({
|
|
373
|
+
method: "session.error",
|
|
374
|
+
params: { session_key, error: `Session not found: ${session_key}` }
|
|
375
|
+
});
|
|
376
|
+
break;
|
|
377
|
+
}
|
|
378
|
+
try {
|
|
379
|
+
const updatePromise = router.waitForUpdate(session_key);
|
|
380
|
+
router.send(session_key, { type: "update", config });
|
|
381
|
+
await updatePromise;
|
|
382
|
+
notify({ method: "session.updated", params: { session_key } });
|
|
383
|
+
} catch (err) {
|
|
384
|
+
notify({
|
|
385
|
+
method: "session.error",
|
|
386
|
+
params: { session_key, error: err instanceof Error ? err.message : String(err) }
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
break;
|
|
390
|
+
}
|
|
287
391
|
case "session.permission_response": {
|
|
288
392
|
const { session_key, request_id, result } = req.params;
|
|
289
393
|
try {
|