@opencode-ai/core 0.0.0-dev-19087 → 0.0.0-dev-19093
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/account/sql.js +4 -5
- package/dist/agent.js +87 -88
- package/dist/aisdk-native.js +5 -6
- package/dist/aisdk.js +11 -13
- package/dist/app.js +14 -15
- package/dist/bus.js +88 -89
- package/dist/catalog.js +84 -86
- package/dist/chunks/{instance-q1eh8qzn.js → kv-0763wtqz.js} +206 -173
- package/dist/chunks/kv-07h2bzrz.js +41 -0
- package/dist/chunks/kv-0c2smd8y.js +131 -0
- package/dist/chunks/{instance-80ad1we6.js → kv-0c65v11p.js} +64 -64
- package/dist/chunks/{instance-326j4s6w.js → kv-0e0xafbb.js} +11 -11
- package/dist/chunks/{instance-29n7vfk2.js → kv-0fabt78z.js} +15 -15
- package/dist/chunks/kv-0jwsre1p.js +16 -0
- package/dist/chunks/{instance-qf8pc29t.js → kv-0m99z42p.js} +26 -25
- package/dist/chunks/{instance-y6f7ym68.js → kv-0n419b4w.js} +49 -43
- package/dist/chunks/{instance-bnha4c96.js → kv-0paq2nw3.js} +6 -6
- package/dist/chunks/{instance-rdfev9jy.js → kv-0qkdqm5v.js} +2 -2
- package/dist/chunks/{instance-hzwx8p6y.js → kv-0rag4e4f.js} +7 -7
- package/dist/chunks/{instance-zwfcr2t4.js → kv-0s9ayhjt.js} +6 -6
- package/dist/chunks/{instance-zseh86v1.js → kv-0vp2h810.js} +11 -10
- package/dist/chunks/{instance-a42y10z7.js → kv-11tw25g0.js} +7 -7
- package/dist/chunks/{instance-0pc4kdn1.js → kv-1ct4r87x.js} +4 -7
- package/dist/chunks/{instance-xhjjgjbq.js → kv-1edtvy0k.js} +23 -22
- package/dist/chunks/{instance-72z7vvq3.js → kv-1j6eeha2.js} +50 -45
- package/dist/chunks/kv-1kg9ymc8.js +6 -0
- package/dist/chunks/{instance-ngzr6ypz.js → kv-1ydgq2r4.js} +12 -12
- package/dist/chunks/kv-21r38tys.js +14 -0
- package/dist/chunks/{instance-s32nnj3r.js → kv-2402vzrj.js} +31 -31
- package/dist/chunks/{instance-zsf8rs93.js → kv-2710q6r3.js} +4 -4
- package/dist/chunks/kv-284xm0g3.js +35 -0
- package/dist/chunks/kv-2a5m3afh.js +36 -0
- package/dist/chunks/{instance-hzeg9cfr.js → kv-2axfhc9x.js} +8 -8
- package/dist/chunks/kv-2exvmxnk.js +87 -0
- package/dist/chunks/{instance-k7hkdbw5.js → kv-2ht70gj7.js} +4 -7
- package/dist/chunks/{instance-r7a2r1m6.js → kv-2jqmte8w.js} +11 -11
- package/dist/chunks/{instance-22rezvx7.js → kv-2kmdnfsa.js} +41 -38
- package/dist/chunks/{instance-8qt59045.js → kv-2xgyk5yr.js} +45 -44
- package/dist/chunks/{instance-smkpwctb.js → kv-2xwcamwv.js} +26 -25
- package/dist/chunks/{instance-xws7arpm.js → kv-327n2tt7.js} +8 -8
- package/dist/chunks/{instance-m8cbvarh.js → kv-3asan66x.js} +2 -2
- package/dist/chunks/{instance-rr7wbarq.js → kv-3fc6dm20.js} +13 -13
- package/dist/chunks/{instance-j9gxaphs.js → kv-3gng8nv9.js} +56 -52
- package/dist/chunks/kv-3gnxtrwc.js +24 -0
- package/dist/chunks/{instance-jar52fmb.js → kv-3gqhfq1r.js} +8 -11
- package/dist/chunks/{instance-wmxdh12w.js → kv-3hepkmqq.js} +5 -5
- package/dist/chunks/{instance-zr29p06e.js → kv-3jn85j34.js} +23 -18
- package/dist/chunks/{instance-4xf915ct.js → kv-3qzbfqsy.js} +30 -30
- package/dist/chunks/{instance-5ez4e7fn.js → kv-3rps85z5.js} +27 -27
- package/dist/chunks/{instance-kq3q54gz.js → kv-3smtnn6g.js} +4 -4
- package/dist/chunks/{instance-xx9qfgev.js → kv-3t738kvx.js} +14 -14
- package/dist/chunks/kv-3tvqynh2.js +14 -0
- package/dist/chunks/{instance-jve7t217.js → kv-3v8g72cx.js} +2 -2
- package/dist/chunks/{instance-hhh0a6y6.js → kv-3vzcwd0g.js} +43 -43
- package/dist/chunks/{instance-gy500k2r.js → kv-3wcehsnq.js} +2 -2
- package/dist/chunks/{instance-g9dd0fv6.js → kv-41mncz27.js} +18 -18
- package/dist/chunks/{instance-dyhtrhy2.js → kv-41nvscxy.js} +2 -6
- package/dist/chunks/{instance-hzag9ake.js → kv-454k5vzh.js} +5 -5
- package/dist/chunks/{instance-tr1b000b.js → kv-483apw73.js} +14 -13
- package/dist/chunks/kv-4a9hv4gp.js +134 -0
- package/dist/chunks/{instance-7zpcmb87.js → kv-4ahqr3ea.js} +52 -49
- package/dist/chunks/{instance-ex8w83fw.js → kv-4gdhbjcs.js} +23 -19
- package/dist/chunks/{instance-ma1e88qh.js → kv-4qjr8vj0.js} +33 -32
- package/dist/chunks/{instance-fqehnn9p.js → kv-4r2nyarf.js} +4 -7
- package/dist/chunks/{instance-9vvd3fey.js → kv-4r9k75he.js} +29 -27
- package/dist/chunks/{instance-evmyw6g4.js → kv-4rdnd30x.js} +61 -52
- package/dist/chunks/{instance-4b2tz2m9.js → kv-4y7fprxs.js} +3 -3
- package/dist/chunks/{instance-3mc1hhwa.js → kv-4zamrek1.js} +15 -15
- package/dist/chunks/{instance-22b7mj3q.js → kv-51dky10w.js} +37 -35
- package/dist/chunks/{instance-sxyprntq.js → kv-54dwvch8.js} +36 -32
- package/dist/chunks/{instance-r8f4w671.js → kv-550bvhaj.js} +4 -4
- package/dist/chunks/{instance-y1m4me88.js → kv-5ag54q36.js} +49 -43
- package/dist/chunks/{instance-p5gyct0y.js → kv-5daktx2q.js} +10 -10
- package/dist/chunks/{instance-f2nhxfjt.js → kv-5fmxt4p5.js} +4 -7
- package/dist/chunks/{instance-1eb65z1v.js → kv-5hwm4egr.js} +12 -11
- package/dist/chunks/{instance-rahat93a.js → kv-5jvc5tg2.js} +6 -6
- package/dist/chunks/{instance-kqbaffed.js → kv-5kceqzn1.js} +24 -25
- package/dist/chunks/{instance-4dn6m3rq.js → kv-5w5f5h43.js} +48 -44
- package/dist/chunks/{instance-kbmh7nv5.js → kv-62pfnrxw.js} +20 -19
- package/dist/chunks/{instance-68yag814.js → kv-64z8z5x5.js} +38 -39
- package/dist/chunks/{instance-etbnsc4s.js → kv-6abnk40k.js} +15 -15
- package/dist/chunks/kv-6c7eyv5g.js +321 -0
- package/dist/chunks/{instance-c54e84vp.js → kv-6e958v7x.js} +52 -52
- package/dist/chunks/{instance-xmp1dk6d.js → kv-6h1zm1av.js} +57 -55
- package/dist/chunks/{instance-bd2mvb8t.js → kv-6h414ywr.js} +18 -18
- package/dist/chunks/{instance-c77ad0vh.js → kv-6prwharc.js} +2 -2
- package/dist/chunks/{instance-svrgfpe2.js → kv-6tf8tr4v.js} +19 -19
- package/dist/chunks/{instance-my7754jk.js → kv-6ycxekxv.js} +13 -13
- package/dist/chunks/{instance-hx54kxtk.js → kv-6z7yq735.js} +49 -48
- package/dist/chunks/{instance-xdb88cdw.js → kv-711hfp6y.js} +7 -7
- package/dist/chunks/{instance-e0n16vwa.js → kv-7908ykgb.js} +10 -10
- package/dist/chunks/{instance-hgr9y616.js → kv-7bmhse3q.js} +14 -14
- package/dist/chunks/{instance-rksay3ym.js → kv-7m27rx9w.js} +70 -62
- package/dist/chunks/{instance-m6a7zjhr.js → kv-7ng7exzm.js} +7 -6
- package/dist/chunks/{instance-8y5vxhk7.js → kv-7nxyxket.js} +7 -6
- package/dist/chunks/{instance-53jxjgr1.js → kv-7ry09vv5.js} +7 -10
- package/dist/chunks/{instance-dn43fcgt.js → kv-7sc33ysb.js} +20 -14
- package/dist/chunks/{instance-18yj21vh.js → kv-7vqq5csv.js} +43 -39
- package/dist/chunks/{instance-s7whb9gt.js → kv-822emrt2.js} +3 -3
- package/dist/chunks/{instance-8w9tzfz1.js → kv-88xbtdfr.js} +2 -2
- package/dist/chunks/{instance-7myqjfx6.js → kv-89znhe33.js} +8 -8
- package/dist/chunks/{instance-9av6q7y3.js → kv-8brfdvrk.js} +85 -84
- package/dist/chunks/{instance-1nnvw04n.js → kv-8fjpabk1.js} +49 -43
- package/dist/chunks/{instance-zn935gjz.js → kv-8npyp30c.js} +8 -8
- package/dist/chunks/{instance-6hppa3xw.js → kv-8s5g27jy.js} +13 -13
- package/dist/chunks/{instance-jepqtr73.js → kv-8y3p0gjc.js} +42 -40
- package/dist/chunks/kv-91fwk46n.js +153 -0
- package/dist/chunks/kv-93a8yfjt.js +25 -0
- package/dist/chunks/kv-94exngkb.js +76 -0
- package/dist/chunks/{instance-pves38xm.js → kv-94kekqj1.js} +10 -10
- package/dist/chunks/kv-982e01ww.js +6 -0
- package/dist/chunks/{instance-9dbv6hqn.js → kv-986p65m9.js} +17 -18
- package/dist/chunks/{instance-wht8mw9e.js → kv-98p2q5zs.js} +47 -47
- package/dist/chunks/kv-9dcr27t6.js +119 -0
- package/dist/chunks/{instance-3dwd52hd.js → kv-9j3fyze8.js} +110 -110
- package/dist/chunks/{instance-0kzk410e.js → kv-9p05ydt5.js} +15 -14
- package/dist/chunks/kv-9qm9egsn.js +41 -0
- package/dist/chunks/{instance-ezq2f8jv.js → kv-9rjp7yvj.js} +137 -133
- package/dist/chunks/{instance-vpjkya7h.js → kv-9rqn6x4v.js} +1 -4
- package/dist/chunks/{instance-we6q85je.js → kv-a04vk3pp.js} +50 -47
- package/dist/chunks/{instance-bybkghrn.js → kv-a1tpkmh4.js} +12 -12
- package/dist/chunks/{instance-x13w0757.js → kv-a3mv2pdz.js} +161 -147
- package/dist/chunks/{instance-jqhp3fpz.js → kv-aaet6srn.js} +17 -17
- package/dist/chunks/{instance-a02svayp.js → kv-af5trqkr.js} +2 -2
- package/dist/chunks/{instance-1wcz8fvj.js → kv-afrmfg78.js} +4 -4
- package/dist/chunks/{instance-gb1z7yet.js → kv-ajtjthsy.js} +8 -8
- package/dist/chunks/{instance-01efxvvh.js → kv-amc59nhp.js} +11 -11
- package/dist/chunks/{instance-5vbk082d.js → kv-apjnhj61.js} +13 -14
- package/dist/chunks/{instance-rkk31p0w.js → kv-avcz7j5r.js} +35 -33
- package/dist/chunks/kv-aw8agfgj.js +147 -0
- package/dist/chunks/kv-azv14p53.js +49 -0
- package/dist/chunks/{instance-6wsfy4sp.js → kv-b6gygkdw.js} +14 -14
- package/dist/chunks/kv-b9wsbatv.js +13 -0
- package/dist/chunks/{instance-xfnfr1jt.js → kv-ba79cv5k.js} +98 -82
- package/dist/chunks/{instance-x3vb5b1t.js → kv-bct739vz.js} +4 -4
- package/dist/chunks/{instance-264e1nfp.js → kv-bgt6msk1.js} +13 -13
- package/dist/chunks/{instance-rdr9s5v3.js → kv-bvtk4tvq.js} +23 -21
- package/dist/chunks/{instance-zwa0hzca.js → kv-c2pdtwhf.js} +12 -12
- package/dist/chunks/kv-c2rr8at4.js +38 -0
- package/dist/chunks/kv-c7r09442.js +43 -0
- package/dist/chunks/{instance-v9qxqszp.js → kv-c9pb9e7v.js} +43 -43
- package/dist/chunks/{instance-bxdhjb3y.js → kv-cf4snx6d.js} +6 -6
- package/dist/chunks/{instance-jdfrfn4m.js → kv-cf4t2kv8.js} +68 -67
- package/dist/chunks/{instance-pvgy7gzv.js → kv-cgxfzgsr.js} +18 -18
- package/dist/chunks/kv-cq35m6me.js +7 -0
- package/dist/chunks/kv-csjjrfxs.js +115 -0
- package/dist/chunks/{instance-pt493xm0.js → kv-ctydmyak.js} +49 -46
- package/dist/chunks/{instance-w6yxrx4v.js → kv-cvwaz07y.js} +44 -42
- package/dist/chunks/{instance-war75a4r.js → kv-cyae2b53.js} +46 -43
- package/dist/chunks/{instance-d4h7vwhh.js → kv-d72308c8.js} +8 -8
- package/dist/chunks/{instance-7n9qwqk4.js → kv-dap0rakb.js} +2 -2
- package/dist/chunks/{instance-dj8pjrdg.js → kv-de6hrhrf.js} +82 -73
- package/dist/chunks/{instance-jb524syp.js → kv-dec85aak.js} +38 -34
- package/dist/chunks/{instance-2mhre95w.js → kv-df3bq64p.js} +24 -20
- package/dist/chunks/{instance-f8wvq04h.js → kv-djtdz80w.js} +4 -4
- package/dist/chunks/{instance-8zhybw33.js → kv-dyrrjrjh.js} +7 -7
- package/dist/chunks/{instance-asjzae5b.js → kv-e0vtkr8g.js} +36 -36
- package/dist/chunks/kv-e3ze3pba.js +4 -0
- package/dist/chunks/{instance-hpkeh7wf.js → kv-e6hd9jay.js} +14 -14
- package/dist/chunks/{instance-c55cgmsp.js → kv-e6v427vd.js} +9 -8
- package/dist/chunks/{instance-wj4sxzqa.js → kv-e73j6tqm.js} +5 -5
- package/dist/chunks/{instance-3fp6arq7.js → kv-e9zqpvgt.js} +44 -39
- package/dist/chunks/{instance-5a5ch9ts.js → kv-eh3zwz77.js} +9 -9
- package/dist/chunks/{instance-k8b45nas.js → kv-emrn6kk6.js} +13 -13
- package/dist/chunks/{instance-khawq58x.js → kv-eszkm5vj.js} +17 -19
- package/dist/chunks/{instance-htmhxvv7.js → kv-ez5b8bq3.js} +15 -15
- package/dist/chunks/{instance-0f48qthw.js → kv-f0mxakyp.js} +3 -3
- package/dist/chunks/{instance-qpxzqy01.js → kv-f9x6rp1j.js} +5 -5
- package/dist/chunks/{instance-61ek4hj9.js → kv-faypxj3z.js} +2 -2
- package/dist/chunks/{instance-8jtz1kc1.js → kv-fjp933gm.js} +39 -38
- package/dist/chunks/kv-fn7btw4k.js +49 -0
- package/dist/chunks/{instance-1cbqwbtq.js → kv-fngmbr2j.js} +20 -19
- package/dist/chunks/{instance-ywpa8647.js → kv-fpdzc529.js} +31 -31
- package/dist/chunks/{instance-qg2k024k.js → kv-fqf57vhm.js} +40 -35
- package/dist/chunks/{instance-qz5gwjr7.js → kv-fw8cvjkv.js} +65 -65
- package/dist/chunks/{instance-5y5kqjze.js → kv-fxbjtjnd.js} +25 -25
- package/dist/chunks/{instance-brsh5f65.js → kv-fxgpk5d8.js} +2 -2
- package/dist/chunks/{instance-dexm22yg.js → kv-fxypknc8.js} +8 -8
- package/dist/chunks/{instance-yrcc2tj9.js → kv-g12117d9.js} +151 -141
- package/dist/chunks/{instance-7pzd3heq.js → kv-g14v1841.js} +73 -63
- package/dist/chunks/{instance-3de4ekwz.js → kv-g385kr8a.js} +78 -70
- package/dist/chunks/{instance-bbqs2y60.js → kv-g4wezp1m.js} +2 -2
- package/dist/chunks/{instance-p1m5qwvv.js → kv-gd4qta3r.js} +4 -4
- package/dist/chunks/{instance-df3v2q6j.js → kv-gebd4c9n.js} +3 -3
- package/dist/chunks/kv-ghvapxam.js +31 -0
- package/dist/chunks/{instance-t1ery8x8.js → kv-gr3mfh83.js} +29 -27
- package/dist/chunks/{instance-hv3navfe.js → kv-grsggjxz.js} +47 -44
- package/dist/chunks/kv-gva7hxj4.js +184 -0
- package/dist/chunks/kv-h6vf3j39.js +14 -0
- package/dist/chunks/{instance-wcxp0ga0.js → kv-hbhn1exa.js} +61 -55
- package/dist/chunks/{instance-v6xa4kfs.js → kv-hbtmpj90.js} +81 -77
- package/dist/chunks/{instance-af42tqdk.js → kv-heyhwy2w.js} +4 -7
- package/dist/chunks/{instance-xe02v0q7.js → kv-hgeb4s25.js} +7 -9
- package/dist/chunks/kv-hj3nn2ka.js +41 -0
- package/dist/chunks/{instance-q606pcse.js → kv-hrvm11jt.js} +26 -26
- package/dist/chunks/{instance-683rspwx.js → kv-hs1w2bsr.js} +33 -30
- package/dist/chunks/{instance-2hs65vvd.js → kv-hsgbf354.js} +33 -29
- package/dist/chunks/{instance-az0mxvda.js → kv-hsm8v5na.js} +60 -50
- package/dist/chunks/{instance-6vbv4je1.js → kv-hw4pv20g.js} +7 -7
- package/dist/chunks/{instance-r49tj7k0.js → kv-j04nvffp.js} +59 -50
- package/dist/chunks/{instance-qqbvr2v1.js → kv-j0msafmp.js} +29 -28
- package/dist/chunks/{instance-z5mpwars.js → kv-j36q68jf.js} +44 -39
- package/dist/chunks/{instance-vac9eqd2.js → kv-j5zkgpj8.js} +2 -2
- package/dist/chunks/{instance-dkmkay92.js → kv-j935v87r.js} +2 -2
- package/dist/chunks/kv-jdszapxk.js +33 -0
- package/dist/chunks/{instance-b3ba60js.js → kv-jnv71sbj.js} +58 -57
- package/dist/chunks/kv-jqh9b0xq.js +18 -0
- package/dist/chunks/{instance-2tm6xfe0.js → kv-jtgs360h.js} +16 -16
- package/dist/chunks/{instance-66mds5ht.js → kv-jwcy2c2z.js} +6 -6
- package/dist/chunks/{instance-x4az4y7r.js → kv-k4bwy1x5.js} +8 -8
- package/dist/chunks/{instance-d5rbqqhr.js → kv-k9jet765.js} +60 -57
- package/dist/chunks/{instance-x0dam28d.js → kv-kawst5yz.js} +128 -113
- package/dist/chunks/kv-keptat7v.js +56 -0
- package/dist/chunks/{instance-j6s3yjyb.js → kv-kg06axw8.js} +38 -38
- package/dist/chunks/kv-kg9yxd3j.js +37 -0
- package/dist/chunks/{instance-zmbmd7xf.js → kv-kxnt8qcg.js} +9 -9
- package/dist/chunks/{instance-8w0phwr3.js → kv-m01f3ztw.js} +13 -13
- package/dist/chunks/{instance-j0feex7e.js → kv-m9w0rfyh.js} +17 -17
- package/dist/chunks/{instance-bmbq2yb9.js → kv-mbc7zawv.js} +38 -38
- package/dist/chunks/kv-mntxs535.js +5 -0
- package/dist/chunks/{instance-6b7ybj1y.js → kv-mpsa3nes.js} +33 -33
- package/dist/chunks/{instance-r9d3d23r.js → kv-mvfsc1pv.js} +5 -5
- package/dist/chunks/{instance-xhjm9f76.js → kv-mw36zcxb.js} +15 -14
- package/dist/chunks/{instance-k9d5hcgq.js → kv-n08wtfc0.js} +60 -58
- package/dist/chunks/kv-n4qddg0w.js +39 -0
- package/dist/chunks/{instance-bacxzeht.js → kv-nc7q88x6.js} +55 -48
- package/dist/chunks/{instance-1yj4rbe8.js → kv-nde3t6pb.js} +43 -40
- package/dist/chunks/{instance-enjmckgs.js → kv-nsdz1sxb.js} +97 -90
- package/dist/chunks/{instance-d70ew2wv.js → kv-nyhhhmd8.js} +14 -14
- package/dist/chunks/{instance-g484z5s3.js → kv-p6nrge75.js} +36 -28
- package/dist/chunks/kv-p8qxwesx.js +21 -0
- package/dist/chunks/kv-pba9ahe1.js +22 -0
- package/dist/chunks/kv-pbpghnj4.js +243 -0
- package/dist/chunks/kv-pcdwj75n.js +450 -0
- package/dist/chunks/{instance-w5r9s7kx.js → kv-pjvnvgmy.js} +8 -8
- package/dist/chunks/{instance-7nbxrcvf.js → kv-pk93fgsn.js} +9 -8
- package/dist/chunks/{instance-mf0hyk7z.js → kv-pknna89w.js} +5 -5
- package/dist/chunks/{instance-ckcq38kt.js → kv-pkpgy38q.js} +10 -9
- package/dist/chunks/{instance-kfgn6n4e.js → kv-pmqshxn9.js} +75 -71
- package/dist/chunks/{instance-aspyef2t.js → kv-pq3hsm1q.js} +33 -31
- package/dist/chunks/{instance-dwvtf5ds.js → kv-pzhf940q.js} +28 -23
- package/dist/chunks/{instance-jj0rzag1.js → kv-q334rcf3.js} +32 -24
- package/dist/chunks/{instance-k3e42drn.js → kv-qaymkmh1.js} +2 -2
- package/dist/chunks/{instance-eb87q0yv.js → kv-qbyj8qxd.js} +7 -6
- package/dist/chunks/{instance-sem2g21k.js → kv-qfa1cgps.js} +2 -2
- package/dist/chunks/{instance-mnyszbxc.js → kv-qsdy395h.js} +5 -5
- package/dist/chunks/kv-qvs4vh02.js +460 -0
- package/dist/chunks/kv-qyewj5s0.js +38 -0
- package/dist/chunks/{instance-52cmjgt6.js → kv-r3y5s33r.js} +104 -101
- package/dist/chunks/{instance-aseryw3y.js → kv-r5s1f9ds.js} +12 -12
- package/dist/chunks/{instance-zbqqnp0n.js → kv-r8dhm0tv.js} +9 -9
- package/dist/chunks/{instance-ntev5d3k.js → kv-rbss7vdr.js} +12 -12
- package/dist/chunks/{instance-za321d1d.js → kv-rcaq9zsf.js} +94 -85
- package/dist/chunks/{instance-sgt1ntaw.js → kv-rf1xepha.js} +28 -27
- package/dist/chunks/{instance-13pmmrk3.js → kv-rn7fzfzb.js} +29 -26
- package/dist/chunks/{instance-aa8dbra7.js → kv-rr97n57r.js} +25 -25
- package/dist/chunks/{instance-ep4bzh3p.js → kv-rsdvpskb.js} +10 -9
- package/dist/chunks/{instance-pah0m3fw.js → kv-rszjw5nd.js} +26 -25
- package/dist/chunks/{instance-k0mbwr6q.js → kv-rt9c2rpv.js} +12 -10
- package/dist/chunks/{instance-my53s247.js → kv-rvhss2m2.js} +4 -4
- package/dist/chunks/{instance-dj1xm95f.js → kv-rvn46zq7.js} +11 -11
- package/dist/chunks/{instance-0ag03ecw.js → kv-sba4qhjf.js} +4 -7
- package/dist/chunks/{instance-1b3ejbt8.js → kv-sdrecbr4.js} +49 -47
- package/dist/chunks/{instance-0zz82cjq.js → kv-se0s1eqw.js} +2 -2
- package/dist/chunks/{instance-ysznacw7.js → kv-set6m918.js} +43 -43
- package/dist/chunks/{instance-9maxscqf.js → kv-sk3qaz4a.js} +37 -37
- package/dist/chunks/kv-sp5wnj6d.js +20 -0
- package/dist/chunks/{instance-apeqands.js → kv-ssbg0cn7.js} +61 -49
- package/dist/chunks/{instance-qf52r0wh.js → kv-syctsqr6.js} +14 -14
- package/dist/chunks/{instance-e2rjcp79.js → kv-t445f1bj.js} +20 -20
- package/dist/chunks/{instance-3chx3ng6.js → kv-tazgh4e4.js} +26 -26
- package/dist/chunks/{instance-jevja17x.js → kv-tgc5gq4n.js} +16 -16
- package/dist/chunks/{instance-nn16cgj7.js → kv-tjykrgmx.js} +14 -14
- package/dist/chunks/{instance-88hamw33.js → kv-tk0q86eg.js} +33 -32
- package/dist/chunks/{instance-3ep0k87g.js → kv-tkd6bwd8.js} +14 -14
- package/dist/chunks/{instance-cn08ygyc.js → kv-tn0mb6rm.js} +7 -7
- package/dist/chunks/{instance-z544avea.js → kv-tr6k467p.js} +29 -29
- package/dist/chunks/{instance-42zyazrq.js → kv-v5dkyp31.js} +7 -7
- package/dist/chunks/{instance-mv81kt5z.js → kv-v8gy3pjr.js} +7 -9
- package/dist/chunks/{instance-me1r9ntq.js → kv-v9m13ysc.js} +35 -34
- package/dist/chunks/kv-v9qvtgmd.js +40 -0
- package/dist/chunks/{instance-5kyxrmbs.js → kv-vdex1qw9.js} +14 -17
- package/dist/chunks/{instance-vt3b1xqd.js → kv-vn7dnbkg.js} +55 -49
- package/dist/chunks/{instance-vcwr2vpf.js → kv-w3wsvvr9.js} +9 -9
- package/dist/chunks/{instance-j1rneedg.js → kv-w9f7wb0e.js} +16 -16
- package/dist/chunks/{instance-4v6g3p22.js → kv-waa9wdep.js} +9 -9
- package/dist/chunks/kv-wb29ggtc.js +31 -0
- package/dist/chunks/{instance-wbkt8qpj.js → kv-wd87259q.js} +10 -10
- package/dist/chunks/{instance-qjv6na9g.js → kv-we11dx6z.js} +28 -28
- package/dist/chunks/{instance-njsjmnxj.js → kv-wh6ksyj4.js} +21 -18
- package/dist/chunks/kv-wsfy2223.js +18 -0
- package/dist/chunks/{instance-z361wxjg.js → kv-wtmp9133.js} +24 -21
- package/dist/chunks/{instance-rneafqj3.js → kv-wywtm3b4.js} +79 -71
- package/dist/chunks/{instance-ezs3tagn.js → kv-x0ckcb58.js} +2 -2
- package/dist/chunks/{instance-snpn6bap.js → kv-x1b8g1yb.js} +2 -2
- package/dist/chunks/{instance-hbtzhcxr.js → kv-x1ezjp6w.js} +12 -12
- package/dist/chunks/{instance-0cgt0xh2.js → kv-x61499pn.js} +2 -2
- package/dist/chunks/{instance-79khac0p.js → kv-x6560wra.js} +62 -57
- package/dist/chunks/{instance-nq32axp3.js → kv-x7a9f5qc.js} +16 -16
- package/dist/chunks/{instance-n3w3s70a.js → kv-xdvenhre.js} +32 -26
- package/dist/chunks/kv-xzjsw50f.js +38 -0
- package/dist/chunks/kv-y0bse006.js +35 -0
- package/dist/chunks/{instance-edxnhgvj.js → kv-y1fvbwt7.js} +4 -4
- package/dist/chunks/{instance-qaarhjrp.js → kv-y44na4kk.js} +2 -2
- package/dist/chunks/{instance-g70ev3a2.js → kv-y5j2xpyk.js} +38 -33
- package/dist/chunks/{instance-jqms80b0.js → kv-y8cydn3q.js} +2 -2
- package/dist/chunks/{instance-dtm6fkaa.js → kv-y8d1ay0e.js} +11 -11
- package/dist/chunks/{instance-be7vfy9w.js → kv-y8gp91n4.js} +34 -30
- package/dist/chunks/{instance-3j4x8r8z.js → kv-y9deds22.js} +14 -13
- package/dist/chunks/kv-yfbd16n1.js +386 -0
- package/dist/chunks/{instance-k01cbqr5.js → kv-ygze9xf4.js} +17 -17
- package/dist/chunks/{instance-4w0ckvbq.js → kv-yhemmazy.js} +12 -12
- package/dist/chunks/{instance-8ez3qcv1.js → kv-ykczf8eq.js} +20 -20
- package/dist/chunks/{instance-k4v14bs7.js → kv-yktzjgkc.js} +27 -28
- package/dist/chunks/{instance-pjm3te0s.js → kv-ynvk86gk.js} +18 -17
- package/dist/chunks/{instance-snhkxpyn.js → kv-ywss3cf1.js} +25 -24
- package/dist/chunks/{instance-rpa95wsa.js → kv-z0r88r3d.js} +13 -13
- package/dist/chunks/{instance-hvydqsq5.js → kv-z1k01bn4.js} +15 -15
- package/dist/chunks/{instance-vhac95sf.js → kv-z2wsashg.js} +24 -23
- package/dist/chunks/{instance-89ttfx5q.js → kv-z63w68vq.js} +14 -14
- package/dist/chunks/{instance-g23fad86.js → kv-zbjnn3ac.js} +8 -8
- package/dist/chunks/{instance-cve1w3m9.js → kv-zkbmddfw.js} +22 -22
- package/dist/chunks/{instance-m3k5wttq.js → kv-zqg3qsz2.js} +58 -53
- package/dist/chunks/{instance-1x7vrby2.js → kv-ztwbsy28.js} +91 -91
- package/dist/chunks/{instance-51t2tyks.js → kv-zxq2ej10.js} +7 -7
- package/dist/codemode/catalog.js +10 -11
- package/dist/codemode/instructions.js +11 -12
- package/dist/codemode/tool.js +8 -10
- package/dist/command.js +85 -86
- package/dist/config/discovery.js +83 -85
- package/dist/config/markdown.js +8 -9
- package/dist/config/normalize.js +22 -23
- package/dist/config/plugin/agent.js +114 -131
- package/dist/config/plugin/command.js +205 -213
- package/dist/config/plugin/compaction.js +153 -171
- package/dist/config/plugin/entry-observer.js +4 -114
- package/dist/config/plugin/formatter.js +116 -118
- package/dist/config/plugin/image.js +114 -130
- package/dist/config/plugin/instruction.js +85 -87
- package/dist/config/plugin/location-watcher.js +116 -118
- package/dist/config/plugin/mcp.js +126 -129
- package/dist/config/plugin/policy.js +113 -115
- package/dist/config/plugin/provider.js +112 -114
- package/dist/config/plugin/reference.js +116 -118
- package/dist/config/plugin/shell.js +117 -119
- package/dist/config/plugin/skill-file.js +99 -101
- package/dist/config/plugin/skill.js +134 -136
- package/dist/config/plugin/snapshot.js +114 -116
- package/dist/config/plugin/source.js +119 -121
- package/dist/config/plugin/tool-output.js +116 -118
- package/dist/config/plugin/websearch.js +114 -116
- package/dist/config/variable.js +6 -7
- package/dist/config/watch.js +4 -5
- package/dist/config.js +125 -127
- package/dist/credential/sql.js +4 -5
- package/dist/credential.js +87 -88
- package/dist/database/database.js +79 -80
- package/dist/database/drizzle/effect-sqlite/driver.js +20 -21
- package/dist/database/drizzle/effect-sqlite/index.js +26 -27
- package/dist/database/drizzle/effect-sqlite/session.js +17 -18
- package/dist/database/drizzle/index.js +30 -31
- package/dist/database/drizzle/internal/drizzle-utils.js +17 -18
- package/dist/database/drizzle/sqlite-core/effect/count.js +3 -4
- package/dist/database/drizzle/sqlite-core/effect/db.js +11 -12
- package/dist/database/drizzle/sqlite-core/effect/delete.js +4 -5
- package/dist/database/drizzle/sqlite-core/effect/index.js +40 -41
- package/dist/database/drizzle/sqlite-core/effect/insert.js +6 -7
- package/dist/database/drizzle/sqlite-core/effect/query.js +5 -6
- package/dist/database/drizzle/sqlite-core/effect/raw.js +3 -4
- package/dist/database/drizzle/sqlite-core/effect/select.js +6 -7
- package/dist/database/drizzle/sqlite-core/effect/session.js +16 -17
- package/dist/database/drizzle/sqlite-core/effect/update.js +6 -7
- package/dist/database/drizzle.js +31 -32
- package/dist/database/migration/20260127222353_familiar_lady_ursula.js +1 -2
- package/dist/database/migration/20260211171708_add_project_commands.js +1 -2
- package/dist/database/migration/20260213144116_wakeful_the_professor.js +1 -2
- package/dist/database/migration/20260225215848_workspace.js +1 -2
- package/dist/database/migration/20260227213759_add_session_workspace_id.js +1 -2
- package/dist/database/migration/20260228203230_blue_harpoon.js +1 -2
- package/dist/database/migration/20260303231226_add_workspace_fields.js +1 -2
- package/dist/database/migration/20260309230000_move_org_to_state.js +1 -2
- package/dist/database/migration/20260312043431_session_message_cursor.js +1 -2
- package/dist/database/migration/20260323234822_events.js +1 -2
- package/dist/database/migration/20260410174513_workspace-name.js +1 -2
- package/dist/database/migration/20260413175956_chief_energizer.js +1 -2
- package/dist/database/migration/20260423070820_add_icon_url_override.js +1 -2
- package/dist/database/migration/20260427172553_slow_nightmare.js +1 -2
- package/dist/database/migration/20260428004200_add_session_path.js +1 -2
- package/dist/database/migration/20260501142318_next_venus.js +1 -2
- package/dist/database/migration/20260504145000_add_sync_owner.js +1 -2
- package/dist/database/migration/20260507164347_add_workspace_time.js +1 -2
- package/dist/database/migration/20260510033149_session_usage.js +1 -2
- package/dist/database/migration/20260511000411_data_migration_state.js +1 -2
- package/dist/database/migration/20260511173437_session-metadata.js +1 -2
- package/dist/database/migration/20260601010001_normalize_storage_paths.js +1 -2
- package/dist/database/migration/20260601202201_amazing_prowler.js +1 -2
- package/dist/database/migration/20260602002951_lowly_union_jack.js +1 -2
- package/dist/database/migration/20260602182828_add_project_directories.js +1 -2
- package/dist/database/migration/20260603001617_session_message_projection_indexes.js +1 -2
- package/dist/database/migration/20260603040000_session_message_projection_order.js +1 -2
- package/dist/database/migration/20260603141458_session_input_inbox.js +1 -2
- package/dist/database/migration/20260603160727_jittery_ezekiel_stane.js +1 -2
- package/dist/database/migration/20260604172448_event_sourced_session_input.js +1 -2
- package/dist/database/migration/20260605003541_add_session_context_snapshot.js +1 -2
- package/dist/database/migration/20260605042240_add_context_epoch_agent.js +1 -2
- package/dist/database/migration/20260611035744_credential.js +1 -2
- package/dist/database/migration/20260611192811_lush_chimera.js +1 -2
- package/dist/database/migration/20260612174303_project_dir_strategy.js +1 -2
- package/dist/database/migration/20260622142730_simplify_session_context_epoch.js +1 -2
- package/dist/database/migration/20260622170816_reset_v2_session_state.js +1 -2
- package/dist/database/migration/20260622202450_simplify_session_input.js +1 -2
- package/dist/database/migration/20260804233008_loose_psylocke.js +1 -2
- package/dist/database/migration/20260805200742_import_legacy_credentials.js +4 -5
- package/dist/database/migration/20260808023530_workspace_domain.js +1 -2
- package/dist/database/migration/20260811161259_execution_claim_attempts.js +1 -2
- package/dist/database/migration/20260812181746_session_inbox.js +1 -2
- package/dist/database/migration/20260812213948_worktree.js +1 -2
- package/dist/database/migration/20260819222447_session_viewed_state.js +1 -2
- package/dist/database/migration/20260823191254_nullable_workspace_binding.js +1 -2
- package/dist/database/migration.gen.js +49 -50
- package/dist/database/migration.js +53 -54
- package/dist/database/path.js +10 -11
- package/dist/database/schema.gen.js +1 -2
- package/dist/database/schema.sql.js +3 -4
- package/dist/database/sqlite.bun.js +8 -7
- package/dist/database/sqlite.js +8 -9
- package/dist/database/sqlite.node.js +8 -7
- package/dist/database/sqlite.workerd.js +6 -6
- package/dist/database/v1-migration.bun.js +106 -109
- package/dist/database/v1-migration.js +3 -4
- package/dist/database/v1-migration.noop.js +0 -2
- package/dist/effect/app-node-builder.js +357 -357
- package/dist/effect/app-node-platform.js +9 -10
- package/dist/effect/keyed-mutex.js +6 -7
- package/dist/effect/websocket-constructor.js +3 -4
- package/dist/environment/driver.js +1 -1
- package/dist/environment/environment.js +90 -92
- package/dist/environment/exec-defaults.js +4 -5
- package/dist/environment/files.js +12 -13
- package/dist/environment/index.js +106 -108
- package/dist/environment/local.js +5 -6
- package/dist/environment/memory.js +5 -6
- package/dist/environment/unavailable.js +1 -1
- package/dist/event/sql.js +5 -6
- package/dist/event-logger.js +72 -71
- package/dist/file-mutation.js +94 -96
- package/dist/file-retention.js +3 -4
- package/dist/file.js +11 -4
- package/dist/filesystem/fff.bun.js +4 -4
- package/dist/filesystem/fff.js +3 -4
- package/dist/filesystem/fff.node.js +5 -6
- package/dist/filesystem/fff.workerd.js +4 -4
- package/dist/filesystem/ignore.js +1 -1
- package/dist/filesystem/location-watcher-policy.js +7 -8
- package/dist/filesystem/location-watcher.js +216 -224
- package/dist/filesystem/protected.js +8 -9
- package/dist/filesystem/search.js +104 -106
- package/dist/filesystem/watcher-binding.js +3 -4
- package/dist/filesystem/watcher.js +28 -29
- package/dist/filesystem.js +118 -120
- package/dist/form.js +106 -107
- package/dist/formatter/builtins.js +4 -5
- package/dist/formatter.js +84 -86
- package/dist/generate.js +93 -95
- package/dist/git.js +19 -21
- package/dist/github-copilot/chat/convert-to-openai-compatible-chat-messages.js +3 -4
- package/dist/github-copilot/chat/get-response-metadata.js +3 -4
- package/dist/github-copilot/chat/map-openai-compatible-finish-reason.js +3 -4
- package/dist/github-copilot/chat/openai-compatible-chat-language-model.js +9 -10
- package/dist/github-copilot/chat/openai-compatible-chat-options.js +3 -4
- package/dist/github-copilot/chat/openai-compatible-prepare-tools.js +3 -4
- package/dist/github-copilot/copilot-provider.js +21 -22
- package/dist/github-copilot/models.js +7 -8
- package/dist/github-copilot/openai-compatible-error.js +5 -6
- package/dist/github-copilot/responses/convert-to-openai-responses-input.js +3 -4
- package/dist/github-copilot/responses/map-openai-responses-finish-reason.js +3 -4
- package/dist/github-copilot/responses/openai-error.js +5 -6
- package/dist/github-copilot/responses/openai-responses-language-model.js +12 -13
- package/dist/github-copilot/responses/openai-responses-prepare-tools.js +10 -11
- package/dist/github-copilot/responses/tool/code-interpreter.js +11 -12
- package/dist/github-copilot/responses/tool/file-search.js +7 -8
- package/dist/github-copilot/responses/tool/image-generation.js +5 -6
- package/dist/github-copilot/responses/tool/web-search-preview.js +3 -4
- package/dist/github-copilot/responses/tool/web-search.js +3 -4
- package/dist/id/id.js +8 -9
- package/dist/image/photon-wasm.bun.js +0 -2
- package/dist/image/photon-wasm.node.js +0 -2
- package/dist/image/photon-wasm.workerd.js +0 -2
- package/dist/image/photon.js +10 -104
- package/dist/image.js +14 -106
- package/dist/instance/service.js +7 -8
- package/dist/instance.js +352 -355
- package/dist/instruction-discovery.js +86 -87
- package/dist/instructions/builtins.js +83 -85
- package/dist/instructions/index.js +39 -40
- package/dist/integration/connection.js +15 -6
- package/dist/integration.js +111 -113
- package/dist/job.js +78 -79
- package/dist/kv/sql.js +4 -5
- package/dist/kv.js +72 -73
- package/dist/location-activity.js +88 -87
- package/dist/location-mutation.js +90 -92
- package/dist/location-service-map.js +84 -86
- package/dist/location-services.js +346 -349
- package/dist/location.js +89 -91
- package/dist/mcp/client.js +101 -102
- package/dist/mcp/index.js +140 -143
- package/dist/mcp/instructions.js +120 -130
- package/dist/mcp/oauth.js +7 -7
- package/dist/mcp/stdio.js +88 -90
- package/dist/mime.js +3 -4
- package/dist/modal/models.js +6 -7
- package/dist/model-resolver.js +100 -102
- package/dist/model.js +26 -27
- package/dist/models-dev.js +90 -91
- package/dist/oauth/page.js +8 -9
- package/dist/permission/saved.js +83 -84
- package/dist/permission/sql.js +7 -8
- package/dist/permission.js +131 -133
- package/dist/persistent-pty/binary.bun.js +1 -2
- package/dist/persistent-pty/binary.node.js +0 -2
- package/dist/persistent-pty/binary.workerd.js +0 -2
- package/dist/persistent-pty/daemon.js +9 -10
- package/dist/persistent-pty/index.js +88 -89
- package/dist/persistent-pty/pty-binding.js +1 -2
- package/dist/persistent-pty.js +73 -74
- package/dist/plugin/agent.js +98 -100
- package/dist/plugin/command.js +95 -98
- package/dist/plugin/hooks.js +6 -8
- package/dist/plugin/host.js +215 -223
- package/dist/plugin/instance.js +9 -10
- package/dist/plugin/internal.js +321 -324
- package/dist/plugin/mcp-codemode-exclusion.js +3 -4
- package/dist/plugin/models-dev.js +77 -78
- package/dist/plugin/module.js +7 -8
- package/dist/plugin/plan.js +96 -98
- package/dist/plugin/promise.js +3 -4
- package/dist/plugin/provider/alibaba.js +4 -5
- package/dist/plugin/provider/amazon-bedrock.js +4 -5
- package/dist/plugin/provider/anthropic.js +4 -5
- package/dist/plugin/provider/azure.js +119 -122
- package/dist/plugin/provider/cerebras.js +4 -5
- package/dist/plugin/provider/cloudflare-ai-gateway.js +118 -121
- package/dist/plugin/provider/cloudflare-workers-ai.js +118 -121
- package/dist/plugin/provider/cohere.js +4 -5
- package/dist/plugin/provider/configured.js +117 -120
- package/dist/plugin/provider/dynamic.js +4 -5
- package/dist/plugin/provider/factory.js +3 -4
- package/dist/plugin/provider/gateway.js +4 -5
- package/dist/plugin/provider/github-copilot.js +89 -91
- package/dist/plugin/provider/gitlab.js +5 -6
- package/dist/plugin/provider/google-vertex.js +4 -5
- package/dist/plugin/provider/kilo.js +4 -5
- package/dist/plugin/provider/llmgateway.js +77 -79
- package/dist/plugin/provider/lmstudio.js +118 -121
- package/dist/plugin/provider/mistral.js +4 -5
- package/dist/plugin/provider/modal.js +80 -82
- package/dist/plugin/provider/nvidia.js +4 -5
- package/dist/plugin/provider/ollama.js +118 -121
- package/dist/plugin/provider/openai-compatible.js +3 -4
- package/dist/plugin/provider/openai.js +79 -81
- package/dist/plugin/provider/opencode.js +77 -79
- package/dist/plugin/provider/openrouter.js +5 -6
- package/dist/plugin/provider/perplexity.js +4 -5
- package/dist/plugin/provider/sap-ai-core.js +5 -6
- package/dist/plugin/provider/sdk-factory.js +3 -4
- package/dist/plugin/provider/snowflake-cortex.js +6 -7
- package/dist/plugin/provider/venice.js +4 -5
- package/dist/plugin/provider/vercel.js +4 -5
- package/dist/plugin/provider/vllm.js +118 -121
- package/dist/plugin/provider/xai.js +78 -80
- package/dist/plugin/provider/zenmux.js +4 -5
- package/dist/plugin/provider.js +156 -159
- package/dist/plugin/sdk.js +77 -78
- package/dist/plugin/service.js +5 -6
- package/dist/plugin/skill.js +137 -139
- package/dist/plugin/source-directory.js +6 -7
- package/dist/plugin/supervisor.js +336 -339
- package/dist/plugin/system-prompt.js +13 -14
- package/dist/plugin/update.js +7 -8
- package/dist/plugin/variant.js +7 -8
- package/dist/plugin/vcs/git.js +82 -84
- package/dist/plugin/vcs/hg.js +82 -84
- package/dist/plugin/warming.js +111 -113
- package/dist/plugin/websearch/exa.js +7 -8
- package/dist/plugin/websearch/firecrawl.js +8 -9
- package/dist/plugin/websearch/index.js +10 -11
- package/dist/plugin/websearch/mcp.js +10 -11
- package/dist/plugin/websearch/parallel.js +8 -9
- package/dist/plugin/websearch/tavily.js +6 -7
- package/dist/plugin.js +227 -235
- package/dist/project/schema.js +14 -15
- package/dist/project/sql.js +10 -11
- package/dist/project.js +94 -96
- package/dist/provider.js +27 -28
- package/dist/pty/protocol.js +1 -1
- package/dist/pty/pty.bun.js +0 -2
- package/dist/pty/pty.node.js +0 -2
- package/dist/pty/pty.workerd.js +0 -2
- package/dist/pty/schema.js +3 -4
- package/dist/pty/ticket.js +1 -2
- package/dist/pty.js +98 -100
- package/dist/reference/instructions.js +84 -86
- package/dist/reference.js +92 -94
- package/dist/repository-cache.js +95 -97
- package/dist/repository.js +24 -25
- package/dist/ripgrep/binary.js +4 -5
- package/dist/ripgrep.js +96 -98
- package/dist/rpc.js +83 -85
- package/dist/schema.js +17 -18
- package/dist/session/command.js +76 -77
- package/dist/session/compaction.js +137 -155
- package/dist/session/context.js +146 -155
- package/dist/session/environment.js +6 -8
- package/dist/session/error.js +39 -40
- package/dist/session/event.js +3 -4
- package/dist/session/execution/restart.js +226 -227
- package/dist/session/execution.js +125 -128
- package/dist/session/generate.js +148 -157
- package/dist/session/history.js +25 -90
- package/dist/session/inbox.js +131 -132
- package/dist/session/info.js +5 -6
- package/dist/session/instruction-entry.js +90 -92
- package/dist/session/instruction-state.js +29 -31
- package/dist/session/instructions.js +92 -94
- package/dist/session/message-updater.js +5 -7
- package/dist/session/message.js +3 -4
- package/dist/session/model-request.js +119 -147
- package/dist/session/model-transport.js +12 -14
- package/dist/session/move.js +131 -134
- package/dist/session/projector.js +87 -88
- package/dist/session/prompt.js +102 -118
- package/dist/session/revert.js +94 -96
- package/dist/session/run-coordinator.js +4 -5
- package/dist/session/runner/index.js +5 -88
- package/dist/session/runner/llm.js +221 -229
- package/dist/session/runner/max-steps.js +3 -4
- package/dist/session/runner/model.js +98 -100
- package/dist/session/runner/publish-llm-event.js +5 -6
- package/dist/session/runner/retry.js +9 -79
- package/dist/session/runner/step.js +122 -148
- package/dist/session/runner/to-llm-message.js +3 -4
- package/dist/session/schema.js +7 -8
- package/dist/session/session.js +169 -177
- package/dist/session/shell.js +134 -136
- package/dist/session/skill.js +101 -103
- package/dist/session/sql.js +19 -20
- package/dist/session/stats.js +86 -86
- package/dist/session/store.js +85 -86
- package/dist/session/subagent-completion.js +8 -9
- package/dist/session/subagent-job.js +204 -212
- package/dist/session/system-prompt.js +5 -6
- package/dist/session/title.js +152 -161
- package/dist/session/to-session-error.js +107 -110
- package/dist/session/transfer.js +241 -240
- package/dist/session/usage.js +10 -11
- package/dist/session.js +246 -254
- package/dist/shell/parse.js +11 -12
- package/dist/shell/parser-wasm.bun.js +0 -2
- package/dist/shell/parser-wasm.node.js +0 -2
- package/dist/shell/parser-wasm.workerd.js +0 -2
- package/dist/shell/result.js +14 -15
- package/dist/shell/scan.js +6 -6
- package/dist/shell/select.js +28 -29
- package/dist/shell.js +140 -143
- package/dist/skill/discovery.js +7 -8
- package/dist/skill/instructions.js +101 -103
- package/dist/skill.js +122 -124
- package/dist/snapshot.js +90 -92
- package/dist/state.js +14 -15
- package/dist/tool/html-markdown.js +5 -6
- package/dist/tool/http-body.js +3 -4
- package/dist/tool/mcp.js +123 -133
- package/dist/tool/plugin/edit.js +115 -117
- package/dist/tool/plugin/file-diff.js +3 -4
- package/dist/tool/plugin/glob.js +120 -122
- package/dist/tool/plugin/grep.js +120 -122
- package/dist/tool/plugin/opencode.js +5 -6
- package/dist/tool/plugin/patch.js +119 -121
- package/dist/tool/plugin/question.js +110 -112
- package/dist/tool/plugin/read.js +121 -123
- package/dist/tool/plugin/shell.js +211 -219
- package/dist/tool/plugin/skill.js +108 -110
- package/dist/tool/plugin/subagent.js +213 -221
- package/dist/tool/plugin/webfetch.js +115 -117
- package/dist/tool/plugin/websearch.js +109 -111
- package/dist/tool/plugin/write.js +117 -119
- package/dist/tool/read-filesystem.js +125 -127
- package/dist/tool/runtime.js +11 -12
- package/dist/tool-output.js +18 -19
- package/dist/tool.js +23 -130
- package/dist/util/array.js +0 -2
- package/dist/util/error.js +3 -4
- package/dist/util/identifier.js +0 -2
- package/dist/util/iife.js +3 -4
- package/dist/util/lazy.js +3 -4
- package/dist/util/process-lock-ffi.bun.js +0 -2
- package/dist/util/process-lock-ffi.node.js +0 -2
- package/dist/util/process-lock-ffi.workerd.js +0 -2
- package/dist/util/process-lock.js +0 -2
- package/dist/util/slug.js +3 -4
- package/dist/util/token.js +3 -4
- package/dist/util/which.js +3 -4
- package/dist/util/wildcard.js +4 -5
- package/dist/v1/config/agent.js +7 -8
- package/dist/v1/config/attachment.js +6 -7
- package/dist/v1/config/command.js +5 -6
- package/dist/v1/config/config.js +20 -21
- package/dist/v1/config/error.js +12 -13
- package/dist/v1/config/formatter.js +7 -8
- package/dist/v1/config/layout.js +3 -4
- package/dist/v1/config/lsp.js +12 -13
- package/dist/v1/config/mcp.js +12 -13
- package/dist/v1/config/migrate.js +19 -34
- package/dist/v1/config/permission.js +9 -10
- package/dist/v1/config/plugin.js +7 -8
- package/dist/v1/config/provider-options.js +6 -7
- package/dist/v1/config/provider.js +10 -11
- package/dist/v1/config/server.js +4 -5
- package/dist/v1/config/skills.js +3 -4
- package/dist/v1/permission.js +1 -1
- package/dist/vcs/patch.js +23 -24
- package/dist/vcs.js +96 -98
- package/dist/websearch.js +102 -103
- package/dist/wellknown/plugin.js +74 -75
- package/dist/wellknown.js +90 -91
- package/dist/workspace/driver.js +18 -19
- package/dist/workspace/sql.js +3 -4
- package/dist/workspace.js +83 -84
- package/dist/worktree/directory.js +6 -7
- package/dist/worktree/git.js +9 -11
- package/dist/worktree/sql.js +7 -8
- package/dist/worktree.js +121 -123
- package/package.json +8 -8
- package/dist/chunks/instance-0rz7yd7x.js +0 -18
- package/dist/chunks/instance-0xgrsc61.js +0 -42
- package/dist/chunks/instance-273erafq.js +0 -386
- package/dist/chunks/instance-2sqw2jjm.js +0 -147
- package/dist/chunks/instance-2zq6hdwh.js +0 -151
- package/dist/chunks/instance-3psnevwm.js +0 -239
- package/dist/chunks/instance-4cjpbb2p.js +0 -40
- package/dist/chunks/instance-4sxm9wb7.js +0 -129
- package/dist/chunks/instance-4zrb12b6.js +0 -118
- package/dist/chunks/instance-6axsp49x.js +0 -134
- package/dist/chunks/instance-6bxzghb6.js +0 -20
- package/dist/chunks/instance-888a5rtw.js +0 -173
- package/dist/chunks/instance-8manx9kj.js +0 -49
- package/dist/chunks/instance-8rpfd2h6.js +0 -6
- package/dist/chunks/instance-a6xqkezx.js +0 -14
- package/dist/chunks/instance-a83yvq99.js +0 -5
- package/dist/chunks/instance-bjwj8hwv.js +0 -7
- package/dist/chunks/instance-c3pdy0fx.js +0 -111
- package/dist/chunks/instance-c5hcpzba.js +0 -37
- package/dist/chunks/instance-c8ya26sa.js +0 -41
- package/dist/chunks/instance-cfbq03ac.js +0 -36
- package/dist/chunks/instance-crypanmx.js +0 -40
- package/dist/chunks/instance-djyc2dvw.js +0 -22
- package/dist/chunks/instance-ehj9csmv.js +0 -6
- package/dist/chunks/instance-esv5q40e.js +0 -18
- package/dist/chunks/instance-fz2kvkjz.js +0 -33
- package/dist/chunks/instance-gc513wew.js +0 -25
- package/dist/chunks/instance-grfz4hhj.js +0 -14
- package/dist/chunks/instance-hs51b0fc.js +0 -35
- package/dist/chunks/instance-hy5n5jcn.js +0 -13
- package/dist/chunks/instance-j07kk359.js +0 -21
- package/dist/chunks/instance-j7ppr44h.js +0 -31
- package/dist/chunks/instance-m7jtgrng.js +0 -31
- package/dist/chunks/instance-qfvp8zq7.js +0 -41
- package/dist/chunks/instance-qtvzgpey.js +0 -55
- package/dist/chunks/instance-qzx3gxz5.js +0 -74
- package/dist/chunks/instance-r720bxy0.js +0 -85
- package/dist/chunks/instance-r7z6wjth.js +0 -18
- package/dist/chunks/instance-rcqcdjbs.js +0 -24
- package/dist/chunks/instance-s0nyrhqc.js +0 -38
- package/dist/chunks/instance-s1jhrg9v.js +0 -319
- package/dist/chunks/instance-sxwscrb2.js +0 -451
- package/dist/chunks/instance-tvmhrvfj.js +0 -4
- package/dist/chunks/instance-vynk8zbr.js +0 -36
- package/dist/chunks/instance-wdqva41w.js +0 -14
- package/dist/chunks/instance-weyrxte8.js +0 -36
- package/dist/chunks/instance-wf5w4wph.js +0 -16
- package/dist/chunks/instance-x1qjbxy5.js +0 -34
- package/dist/chunks/instance-yz7n24vs.js +0 -412
- package/dist/chunks/instance-z4adf40h.js +0 -39
- package/dist/chunks/instance-z8c1ty6e.js +0 -14
- package/dist/chunks/instance-zyyhrfr9.js +0 -49
- /package/dist/chunks/{instance-fg7fz4q3.js → kv-0zkw76rk.js} +0 -0
- /package/dist/chunks/{instance-yrqrg4vp.js → kv-17cy0kzp.js} +0 -0
- /package/dist/chunks/{instance-nkm1m8dz.js → kv-1cnp2v09.js} +0 -0
- /package/dist/chunks/{instance-wyqjaaa5.js → kv-2c3vjs8z.js} +0 -0
- /package/dist/chunks/{instance-fgbfdq62.js → kv-359p4xyc.js} +0 -0
- /package/dist/chunks/{instance-9sdtsapf.js → kv-43n2bw4t.js} +0 -0
- /package/dist/chunks/{instance-cm67rqy2.js → kv-4knz6hnm.js} +0 -0
- /package/dist/chunks/{instance-1fb7bmpf.js → kv-53557ph1.js} +0 -0
- /package/dist/chunks/{instance-dht5baf0.js → kv-7akdwqpd.js} +0 -0
- /package/dist/chunks/{instance-z47nswr2.js → kv-7m9af43g.js} +0 -0
- /package/dist/chunks/{instance-ghm4673n.js → kv-8n3pysct.js} +0 -0
- /package/dist/chunks/{instance-f4cp4g4a.js → kv-9a4afbnw.js} +0 -0
- /package/dist/chunks/{instance-qp95y4jb.js → kv-aqzs7mqg.js} +0 -0
- /package/dist/chunks/{instance-em6xpscd.js → kv-atq7p7m5.js} +0 -0
- /package/dist/chunks/{instance-gd5xeqc2.js → kv-bkyjaxrp.js} +0 -0
- /package/dist/chunks/{instance-emmqknsm.js → kv-bmr6ed5q.js} +0 -0
- /package/dist/chunks/{instance-69qrqpw0.js → kv-cvy3z8tj.js} +0 -0
- /package/dist/chunks/{instance-qc167nrn.js → kv-d9fn303g.js} +0 -0
- /package/dist/chunks/{instance-nsc0c3zb.js → kv-d9jj8t3e.js} +0 -0
- /package/dist/chunks/{instance-sp575ygv.js → kv-dajrwvna.js} +0 -0
- /package/dist/chunks/{instance-kyyqvx4s.js → kv-df08tz66.js} +0 -0
- /package/dist/chunks/{instance-ttxf0gsy.js → kv-dy18nga0.js} +0 -0
- /package/dist/chunks/{instance-se76j685.js → kv-e5kj55wp.js} +0 -0
- /package/dist/chunks/{instance-8sj3ajy5.js → kv-f6n9ztr4.js} +0 -0
- /package/dist/chunks/{instance-ma60vzgv.js → kv-fd410y7t.js} +0 -0
- /package/dist/chunks/{instance-3g3rpp2x.js → kv-g86h250q.js} +0 -0
- /package/dist/chunks/{instance-8nn8kqcn.js → kv-hk9envan.js} +0 -0
- /package/dist/chunks/{instance-tmb1f636.js → kv-j2ntwpah.js} +0 -0
- /package/dist/chunks/{instance-n3m50c2t.js → kv-jr7sbwjy.js} +0 -0
- /package/dist/chunks/{instance-ghwjy7my.js → kv-jwfs4k6c.js} +0 -0
- /package/dist/chunks/{instance-3w3ybtfd.js → kv-jzg6c2d5.js} +0 -0
- /package/dist/chunks/{instance-5va1yh78.js → kv-mp448xyj.js} +0 -0
- /package/dist/chunks/{instance-dhcq6c44.js → kv-msx8hqn2.js} +0 -0
- /package/dist/chunks/{instance-v2adqbbe.js → kv-n05xt0ee.js} +0 -0
- /package/dist/chunks/{instance-faypg4r1.js → kv-n3j8tn72.js} +0 -0
- /package/dist/chunks/{instance-2xb0r1c6.js → kv-njntx4h6.js} +0 -0
- /package/dist/chunks/{instance-wwntjmk1.js → kv-q3sfg36h.js} +0 -0
- /package/dist/chunks/{instance-47ty4mvs.js → kv-q74kybfr.js} +0 -0
- /package/dist/chunks/{instance-6zqxzw0a.js → kv-qb87gjwd.js} +0 -0
- /package/dist/chunks/{instance-x4q807cx.js → kv-qrg20bc0.js} +0 -0
- /package/dist/chunks/{instance-9dct5xhx.js → kv-rcb2kzg1.js} +0 -0
- /package/dist/chunks/{instance-f14r7hfz.js → kv-sdp7kfr6.js} +0 -0
- /package/dist/chunks/{instance-b02txbh8.js → kv-ssg3fenm.js} +0 -0
- /package/dist/chunks/{instance-39ktntah.js → kv-twg0f83k.js} +0 -0
- /package/dist/chunks/{instance-2qdx6zz3.js → kv-w803qqfp.js} +0 -0
- /package/dist/chunks/{instance-906y0b6d.js → kv-wer8tq1h.js} +0 -0
- /package/dist/chunks/{instance-kxy11nzk.js → kv-wtztk69x.js} +0 -0
- /package/dist/chunks/{instance-ayevdmef.js → kv-ygaqb7jw.js} +0 -0
- /package/dist/chunks/{instance-kpdbz7gn.js → kv-z9919s4g.js} +0 -0
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} from "./
|
|
2
|
+
Service80,
|
|
3
|
+
node84
|
|
4
|
+
} from "./kv-3rps85z5.js";
|
|
5
5
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
EventSequenceTable2,
|
|
7
|
+
EventTable2
|
|
8
|
+
} from "./kv-2710q6r3.js";
|
|
8
9
|
import {
|
|
9
|
-
|
|
10
|
-
} from "./
|
|
10
|
+
makeUnsafe2
|
|
11
|
+
} from "./kv-jwcy2c2z.js";
|
|
11
12
|
import {
|
|
12
|
-
__export
|
|
13
|
-
|
|
14
|
-
} from "./instance-vpjkya7h.js";
|
|
13
|
+
__export
|
|
14
|
+
} from "./kv-9rqn6x4v.js";
|
|
15
15
|
|
|
16
16
|
// src/bus.ts
|
|
17
17
|
var exports_bus = {};
|
|
18
18
|
__export(exports_bus, {
|
|
19
19
|
Bus: () => exports_bus,
|
|
20
|
-
InvalidDurableEventError: () =>
|
|
21
|
-
Service: () =>
|
|
22
|
-
configured: () =>
|
|
23
|
-
durable: () =>
|
|
24
|
-
ephemeral: () =>
|
|
25
|
-
isSynced: () =>
|
|
26
|
-
latestSequence: () =>
|
|
27
|
-
node: () =>
|
|
28
|
-
reserveSequence: () =>
|
|
29
|
-
versionedType: () =>
|
|
20
|
+
InvalidDurableEventError: () => InvalidDurableEventError2,
|
|
21
|
+
Service: () => Service79,
|
|
22
|
+
configured: () => configured12,
|
|
23
|
+
durable: () => durable2,
|
|
24
|
+
ephemeral: () => ephemeral2,
|
|
25
|
+
isSynced: () => isSynced2,
|
|
26
|
+
latestSequence: () => latestSequence2,
|
|
27
|
+
node: () => node83,
|
|
28
|
+
reserveSequence: () => reserveSequence2,
|
|
29
|
+
versionedType: () => versionedType2
|
|
30
30
|
});
|
|
31
31
|
import { Cause, Clock, Context, Effect, Layer, Option, PubSub, Schema, Stream } from "effect";
|
|
32
32
|
import { Event } from "@opencode-ai/schema/event";
|
|
@@ -36,18 +36,18 @@ import { isDeepStrictEqual } from "node:util";
|
|
|
36
36
|
import { Durable } from "@opencode-ai/schema/durable-event-manifest";
|
|
37
37
|
import { SessionEvent } from "@opencode-ai/schema/session-event";
|
|
38
38
|
import { AbsolutePath } from "@opencode-ai/schema/schema";
|
|
39
|
-
var
|
|
40
|
-
const row = yield* db.select({ seq:
|
|
39
|
+
var latestSequence2 = Effect.fn("Bus.latestSequence")(function* (db, aggregateID) {
|
|
40
|
+
const row = yield* db.select({ seq: EventSequenceTable2.seq }).from(EventSequenceTable2).where(eq(EventSequenceTable2.aggregate_id, aggregateID)).get().pipe(Effect.orDie);
|
|
41
41
|
return row?.seq ?? -1;
|
|
42
42
|
});
|
|
43
|
-
var
|
|
44
|
-
yield* db.insert(
|
|
45
|
-
target:
|
|
46
|
-
set: { seq: sql`max(${
|
|
43
|
+
var reserveSequence2 = Effect.fn("Bus.reserveSequence")(function* (db, aggregateID, seq) {
|
|
44
|
+
yield* db.insert(EventSequenceTable2).values([{ aggregate_id: aggregateID, seq }]).onConflictDoUpdate({
|
|
45
|
+
target: EventSequenceTable2.aggregate_id,
|
|
46
|
+
set: { seq: sql`max(${EventSequenceTable2.seq}, ${seq})` }
|
|
47
47
|
}).run().pipe(Effect.orDie);
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
class
|
|
50
|
+
class InvalidDurableEventError2 extends Schema.TaggedError()("Bus.InvalidDurableEvent", {
|
|
51
51
|
type: Schema.String,
|
|
52
52
|
message: Schema.String
|
|
53
53
|
}) {
|
|
@@ -60,7 +60,7 @@ var envelope = (aggregateID, seq, version) => ({
|
|
|
60
60
|
var decodeSerializedEvent = (event) => {
|
|
61
61
|
const definition = Durable.get(event.type);
|
|
62
62
|
if (!definition?.durable) {
|
|
63
|
-
throw new
|
|
63
|
+
throw new InvalidDurableEventError2({ type: event.type, message: `Unknown durable event type ${event.type}` });
|
|
64
64
|
}
|
|
65
65
|
return {
|
|
66
66
|
id: event.id,
|
|
@@ -70,19 +70,19 @@ var decodeSerializedEvent = (event) => {
|
|
|
70
70
|
data: Schema.decodeUnknownSync(definition.data)(event.data)
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
|
-
var
|
|
74
|
-
var
|
|
75
|
-
var
|
|
76
|
-
var
|
|
73
|
+
var versionedType2 = Event.versionedType;
|
|
74
|
+
var durable2 = Event.durable;
|
|
75
|
+
var ephemeral2 = Event.ephemeral;
|
|
76
|
+
var isSynced2 = (item) => item.type === "log.synced";
|
|
77
77
|
var isDefinition = (input) => !Array.isArray(input);
|
|
78
78
|
|
|
79
|
-
class
|
|
79
|
+
class Service79 extends Context.Service()("@opencode/Bus") {
|
|
80
80
|
}
|
|
81
|
-
function
|
|
81
|
+
function configured12(options) {
|
|
82
82
|
return makeGlobalNode({
|
|
83
|
-
service:
|
|
84
|
-
deps: [
|
|
85
|
-
layer: Layer.effect(
|
|
83
|
+
service: Service79,
|
|
84
|
+
deps: [node84],
|
|
85
|
+
layer: Layer.effect(Service79, Effect.gen(function* () {
|
|
86
86
|
const { Location } = yield* Effect.promise(() => import("../location.js"));
|
|
87
87
|
const { SessionTable } = yield* Effect.promise(() => import("../session/sql.js"));
|
|
88
88
|
const pubsub = {
|
|
@@ -92,8 +92,8 @@ function configured(options) {
|
|
|
92
92
|
};
|
|
93
93
|
const projectors = new Map;
|
|
94
94
|
const listeners = new Array;
|
|
95
|
-
const durableLocks =
|
|
96
|
-
const { db } = yield*
|
|
95
|
+
const durableLocks = makeUnsafe2();
|
|
96
|
+
const { db } = yield* Service80;
|
|
97
97
|
const logReadPageSize = options?.logReadPageSize ?? 512;
|
|
98
98
|
const persist = options?.persist ?? false;
|
|
99
99
|
const sessions = new Map;
|
|
@@ -160,29 +160,29 @@ function configured(options) {
|
|
|
160
160
|
}));
|
|
161
161
|
function commitDurableEvent(definition, event, input, commit) {
|
|
162
162
|
return Effect.gen(function* () {
|
|
163
|
-
const
|
|
164
|
-
if (!
|
|
163
|
+
const durable = definition.durable;
|
|
164
|
+
if (!durable)
|
|
165
165
|
return yield* Effect.void;
|
|
166
|
-
const aggregateID = event.data[
|
|
166
|
+
const aggregateID = event.data[durable.aggregate];
|
|
167
167
|
if (typeof aggregateID !== "string")
|
|
168
|
-
return yield* Effect.die(new
|
|
168
|
+
return yield* Effect.die(new InvalidDurableEventError2({
|
|
169
169
|
type: event.type,
|
|
170
|
-
message: `Expected string aggregate field ${
|
|
170
|
+
message: `Expected string aggregate field ${durable.aggregate}`
|
|
171
171
|
}));
|
|
172
172
|
if (input && input.aggregateID !== aggregateID) {
|
|
173
|
-
yield* Effect.die(new
|
|
173
|
+
yield* Effect.die(new InvalidDurableEventError2({
|
|
174
174
|
type: event.type,
|
|
175
175
|
message: `Aggregate mismatch: expected ${input.aggregateID}, got ${aggregateID}`
|
|
176
176
|
}));
|
|
177
177
|
}
|
|
178
|
-
const list = projectors.get(
|
|
178
|
+
const list = projectors.get(versionedType2(definition.type, durable.version)) ?? [];
|
|
179
179
|
return yield* Effect.uninterruptible(Effect.gen(function* () {
|
|
180
180
|
const committed = yield* db.transaction(() => Effect.gen(function* () {
|
|
181
|
-
const row = yield* db.select({ seq:
|
|
181
|
+
const row = yield* db.select({ seq: EventSequenceTable2.seq, ownerID: EventSequenceTable2.owner_id }).from(EventSequenceTable2).where(eq(EventSequenceTable2.aggregate_id, aggregateID)).get().pipe(Effect.orDie);
|
|
182
182
|
const latest = row?.seq ?? -1;
|
|
183
183
|
const encoded = Schema.encodeUnknownSync(definition.data)(event.data);
|
|
184
184
|
if (input?.strictOwner && row?.ownerID && row.ownerID !== input.ownerID) {
|
|
185
|
-
yield* Effect.die(new
|
|
185
|
+
yield* Effect.die(new InvalidDurableEventError2({
|
|
186
186
|
type: event.type,
|
|
187
187
|
message: `Replay owner mismatch for aggregate ${aggregateID}: expected ${row.ownerID}, got ${input.ownerID ?? "none"}`
|
|
188
188
|
}));
|
|
@@ -190,14 +190,14 @@ function configured(options) {
|
|
|
190
190
|
if (input && input.seq <= latest) {
|
|
191
191
|
if (!persist)
|
|
192
192
|
return;
|
|
193
|
-
const stored = yield* db.select().from(
|
|
194
|
-
if (stored?.id === event.id && stored.type ===
|
|
193
|
+
const stored = yield* db.select().from(EventTable2).where(and(eq(EventTable2.aggregate_id, aggregateID), eq(EventTable2.seq, input.seq))).get().pipe(Effect.orDie);
|
|
194
|
+
if (stored?.id === event.id && stored.type === versionedType2(definition.type, durable.version) && stored.created === (event.created ?? 0) && isDeepStrictEqual(stored.data, encoded)) {
|
|
195
195
|
if (input.ownerID && row?.ownerID == null) {
|
|
196
|
-
yield* db.update(
|
|
196
|
+
yield* db.update(EventSequenceTable2).set({ owner_id: input.ownerID }).where(eq(EventSequenceTable2.aggregate_id, aggregateID)).run().pipe(Effect.orDie);
|
|
197
197
|
}
|
|
198
198
|
return;
|
|
199
199
|
}
|
|
200
|
-
yield* Effect.die(new
|
|
200
|
+
yield* Effect.die(new InvalidDurableEventError2({
|
|
201
201
|
type: event.type,
|
|
202
202
|
message: `Replay diverged at aggregate ${aggregateID} sequence ${input.seq}`
|
|
203
203
|
}));
|
|
@@ -207,48 +207,48 @@ function configured(options) {
|
|
|
207
207
|
}
|
|
208
208
|
const seq = input?.seq ?? latest + 1;
|
|
209
209
|
if (input && seq !== latest + 1) {
|
|
210
|
-
yield* Effect.die(new
|
|
210
|
+
yield* Effect.die(new InvalidDurableEventError2({
|
|
211
211
|
type: event.type,
|
|
212
212
|
message: `Sequence mismatch for aggregate ${aggregateID}: expected ${latest + 1}, got ${seq}`
|
|
213
213
|
}));
|
|
214
214
|
}
|
|
215
215
|
if (persist) {
|
|
216
|
-
const stored = yield* db.select({ aggregateID:
|
|
216
|
+
const stored = yield* db.select({ aggregateID: EventTable2.aggregate_id, seq: EventTable2.seq }).from(EventTable2).where(eq(EventTable2.id, event.id)).get().pipe(Effect.orDie);
|
|
217
217
|
if (stored)
|
|
218
|
-
yield* Effect.die(new
|
|
218
|
+
yield* Effect.die(new InvalidDurableEventError2({
|
|
219
219
|
type: event.type,
|
|
220
220
|
message: `Event ${event.id} already exists at aggregate ${stored.aggregateID} sequence ${stored.seq}`
|
|
221
221
|
}));
|
|
222
222
|
}
|
|
223
|
-
const
|
|
223
|
+
const committed = {
|
|
224
224
|
...event,
|
|
225
|
-
durable: { aggregateID, seq, version:
|
|
225
|
+
durable: { aggregateID, seq, version: durable.version }
|
|
226
226
|
};
|
|
227
|
-
const route = yield* prepareRoutes([
|
|
227
|
+
const route = yield* prepareRoutes([committed]);
|
|
228
228
|
for (const projector of list) {
|
|
229
|
-
yield* projector(
|
|
229
|
+
yield* projector(committed);
|
|
230
230
|
}
|
|
231
231
|
if (commit)
|
|
232
232
|
yield* commit(seq);
|
|
233
|
-
yield* db.insert(
|
|
234
|
-
target:
|
|
233
|
+
yield* db.insert(EventSequenceTable2).values([{ aggregate_id: aggregateID, seq, owner_id: input?.ownerID }]).onConflictDoUpdate({
|
|
234
|
+
target: EventSequenceTable2.aggregate_id,
|
|
235
235
|
set: {
|
|
236
|
-
seq: sql`max(${
|
|
236
|
+
seq: sql`max(${EventSequenceTable2.seq}, ${seq})`,
|
|
237
237
|
...input?.ownerID && row?.ownerID == null ? { owner_id: input.ownerID } : {}
|
|
238
238
|
}
|
|
239
239
|
}).run().pipe(Effect.orDie);
|
|
240
240
|
if (persist)
|
|
241
|
-
yield* db.insert(
|
|
241
|
+
yield* db.insert(EventTable2).values([
|
|
242
242
|
{
|
|
243
243
|
id: event.id,
|
|
244
244
|
aggregate_id: aggregateID,
|
|
245
245
|
seq,
|
|
246
246
|
created: event.created ?? 0,
|
|
247
|
-
type:
|
|
247
|
+
type: versionedType2(definition.type, durable.version),
|
|
248
248
|
data: encoded
|
|
249
249
|
}
|
|
250
250
|
]).run().pipe(Effect.orDie);
|
|
251
|
-
return { aggregateID, seq, event:
|
|
251
|
+
return { aggregateID, seq, event: committed, route };
|
|
252
252
|
}), { behavior: "immediate" }).pipe(Effect.orDie);
|
|
253
253
|
if (committed) {
|
|
254
254
|
committed.route();
|
|
@@ -261,7 +261,7 @@ function configured(options) {
|
|
|
261
261
|
function publishEvent(definition, event, commit) {
|
|
262
262
|
return Effect.gen(function* () {
|
|
263
263
|
if (!definition.durable && commit)
|
|
264
|
-
return yield* Effect.die(new
|
|
264
|
+
return yield* Effect.die(new InvalidDurableEventError2({
|
|
265
265
|
type: event.type,
|
|
266
266
|
message: "Local commit hooks require a durable event"
|
|
267
267
|
}));
|
|
@@ -294,40 +294,40 @@ function configured(options) {
|
|
|
294
294
|
yield* PubSub.publish(pubsub.live, event);
|
|
295
295
|
});
|
|
296
296
|
}
|
|
297
|
-
function publish(definition, data,
|
|
297
|
+
function publish(definition, data, options) {
|
|
298
298
|
return Effect.gen(function* () {
|
|
299
299
|
const serviceLocation = Option.getOrUndefined(yield* Effect.serviceOption(Location.Service));
|
|
300
|
-
const location =
|
|
300
|
+
const location = options?.global ? undefined : options?.location ?? (serviceLocation ? { directory: serviceLocation.directory, workspaceID: serviceLocation.workspaceID } : undefined);
|
|
301
301
|
return yield* publishEvent(definition, {
|
|
302
|
-
id:
|
|
302
|
+
id: options?.id ?? Event.ID.create(),
|
|
303
303
|
created: yield* Clock.currentTimeMillis,
|
|
304
|
-
...
|
|
304
|
+
...options?.metadata ? { metadata: options.metadata } : {},
|
|
305
305
|
type: definition.type,
|
|
306
306
|
...location ? { location } : {},
|
|
307
307
|
data
|
|
308
|
-
},
|
|
308
|
+
}, options?.commit);
|
|
309
309
|
});
|
|
310
310
|
}
|
|
311
311
|
function publishAll(events) {
|
|
312
312
|
return Effect.gen(function* () {
|
|
313
313
|
const serviceLocation = Option.getOrUndefined(yield* Effect.serviceOption(Location.Service));
|
|
314
|
-
const payloads = yield* Effect.forEach(events, ([definition, data,
|
|
315
|
-
const
|
|
316
|
-
if (typeof
|
|
317
|
-
return yield* Effect.die(new
|
|
314
|
+
const payloads = yield* Effect.forEach(events, ([definition, data, options]) => Effect.gen(function* () {
|
|
315
|
+
const aggregateID = data[definition.durable.aggregate];
|
|
316
|
+
if (typeof aggregateID !== "string") {
|
|
317
|
+
return yield* Effect.die(new InvalidDurableEventError2({
|
|
318
318
|
type: definition.type,
|
|
319
319
|
message: `Expected string aggregate field ${definition.durable.aggregate}`
|
|
320
320
|
}));
|
|
321
321
|
}
|
|
322
|
-
const location =
|
|
322
|
+
const location = options?.global ? undefined : options?.location ?? (serviceLocation ? { directory: serviceLocation.directory, workspaceID: serviceLocation.workspaceID } : undefined);
|
|
323
323
|
return {
|
|
324
324
|
definition,
|
|
325
|
-
aggregateID
|
|
326
|
-
commit:
|
|
325
|
+
aggregateID,
|
|
326
|
+
commit: options?.commit,
|
|
327
327
|
event: {
|
|
328
|
-
id:
|
|
328
|
+
id: options?.id ?? Event.ID.create(),
|
|
329
329
|
created: yield* Clock.currentTimeMillis,
|
|
330
|
-
...
|
|
330
|
+
...options?.metadata ? { metadata: options.metadata } : {},
|
|
331
331
|
type: definition.type,
|
|
332
332
|
...location ? { location } : {},
|
|
333
333
|
data
|
|
@@ -336,14 +336,14 @@ function configured(options) {
|
|
|
336
336
|
}));
|
|
337
337
|
const aggregateID = payloads[0].aggregateID;
|
|
338
338
|
if (payloads.some((item) => item.aggregateID !== aggregateID)) {
|
|
339
|
-
return yield* Effect.die(new
|
|
339
|
+
return yield* Effect.die(new InvalidDurableEventError2({
|
|
340
340
|
type: payloads[0].definition.type,
|
|
341
341
|
message: "Published events must belong to the same aggregate"
|
|
342
342
|
}));
|
|
343
343
|
}
|
|
344
344
|
return yield* durableLocks.withLock(aggregateID)(Effect.uninterruptible(Effect.gen(function* () {
|
|
345
345
|
const committed = yield* db.transaction(() => Effect.gen(function* () {
|
|
346
|
-
const row = yield* db.select({ seq:
|
|
346
|
+
const row = yield* db.select({ seq: EventSequenceTable2.seq }).from(EventSequenceTable2).where(eq(EventSequenceTable2.aggregate_id, aggregateID)).get().pipe(Effect.orDie);
|
|
347
347
|
const firstSeq = (row?.seq ?? -1) + 1;
|
|
348
348
|
const finalSeq = firstSeq + payloads.length - 1;
|
|
349
349
|
const queued = payloads.map((item, index) => ({
|
|
@@ -358,20 +358,20 @@ function configured(options) {
|
|
|
358
358
|
const encoded = Schema.encodeUnknownSync(item.definition.data)(item.event.data);
|
|
359
359
|
if (persist) {
|
|
360
360
|
if (ids.has(item.event.id))
|
|
361
|
-
yield* Effect.die(new
|
|
361
|
+
yield* Effect.die(new InvalidDurableEventError2({
|
|
362
362
|
type: item.event.type,
|
|
363
363
|
message: `Event ${item.event.id} appears more than once in the batch`
|
|
364
364
|
}));
|
|
365
365
|
ids.add(item.event.id);
|
|
366
|
-
const stored = yield* db.select({ aggregateID:
|
|
366
|
+
const stored = yield* db.select({ aggregateID: EventTable2.aggregate_id, seq: EventTable2.seq }).from(EventTable2).where(eq(EventTable2.id, item.event.id)).get().pipe(Effect.orDie);
|
|
367
367
|
if (stored)
|
|
368
|
-
yield* Effect.die(new
|
|
368
|
+
yield* Effect.die(new InvalidDurableEventError2({
|
|
369
369
|
type: item.event.type,
|
|
370
370
|
message: `Event ${item.event.id} already exists at aggregate ${stored.aggregateID} sequence ${stored.seq}`
|
|
371
371
|
}));
|
|
372
372
|
}
|
|
373
373
|
const event = queued[index];
|
|
374
|
-
for (const projector of projectors.get(
|
|
374
|
+
for (const projector of projectors.get(versionedType2(item.definition.type, item.definition.durable.version)) ?? []) {
|
|
375
375
|
yield* projector(event);
|
|
376
376
|
}
|
|
377
377
|
if (item.commit)
|
|
@@ -382,13 +382,13 @@ function configured(options) {
|
|
|
382
382
|
aggregate_id: aggregateID,
|
|
383
383
|
seq,
|
|
384
384
|
created: event.created,
|
|
385
|
-
type:
|
|
385
|
+
type: versionedType2(item.definition.type, item.definition.durable.version),
|
|
386
386
|
data: encoded
|
|
387
387
|
});
|
|
388
388
|
}
|
|
389
|
-
yield* db.insert(
|
|
389
|
+
yield* db.insert(EventSequenceTable2).values([{ aggregate_id: aggregateID, seq: finalSeq }]).onConflictDoUpdate({ target: EventSequenceTable2.aggregate_id, set: { seq: finalSeq } }).run().pipe(Effect.orDie);
|
|
390
390
|
if (persist)
|
|
391
|
-
yield* db.insert(
|
|
391
|
+
yield* db.insert(EventTable2).values(rows).run().pipe(Effect.orDie);
|
|
392
392
|
return { events: queued, route };
|
|
393
393
|
}), { behavior: "immediate" }).pipe(Effect.orDie);
|
|
394
394
|
committed.route();
|
|
@@ -400,11 +400,11 @@ function configured(options) {
|
|
|
400
400
|
})));
|
|
401
401
|
});
|
|
402
402
|
}
|
|
403
|
-
function replay(event,
|
|
403
|
+
function replay(event, options) {
|
|
404
404
|
return Effect.gen(function* () {
|
|
405
405
|
const definition = Durable.get(event.type);
|
|
406
406
|
if (!definition?.durable)
|
|
407
|
-
return yield* Effect.die(new
|
|
407
|
+
return yield* Effect.die(new InvalidDurableEventError2({ type: event.type, message: `Unknown durable event type ${event.type}` }));
|
|
408
408
|
yield* durableLocks.withLock(event.aggregateID)(Effect.gen(function* () {
|
|
409
409
|
const payload = {
|
|
410
410
|
id: event.id,
|
|
@@ -415,10 +415,10 @@ function configured(options) {
|
|
|
415
415
|
const committed = yield* commitDurableEvent(definition, payload, {
|
|
416
416
|
seq: event.seq,
|
|
417
417
|
aggregateID: event.aggregateID,
|
|
418
|
-
ownerID:
|
|
419
|
-
strictOwner:
|
|
418
|
+
ownerID: options?.ownerID,
|
|
419
|
+
strictOwner: options?.strictOwner
|
|
420
420
|
});
|
|
421
|
-
if (committed &&
|
|
421
|
+
if (committed && options?.publish) {
|
|
422
422
|
yield* notify(committed.event, true);
|
|
423
423
|
}
|
|
424
424
|
}));
|
|
@@ -426,17 +426,17 @@ function configured(options) {
|
|
|
426
426
|
}
|
|
427
427
|
function remove(aggregateID) {
|
|
428
428
|
return db.transaction(() => Effect.gen(function* () {
|
|
429
|
-
yield* db.delete(
|
|
430
|
-
yield* db.delete(
|
|
429
|
+
yield* db.delete(EventSequenceTable2).where(eq(EventSequenceTable2.aggregate_id, aggregateID)).run();
|
|
430
|
+
yield* db.delete(EventTable2).where(eq(EventTable2.aggregate_id, aggregateID)).run();
|
|
431
431
|
})).pipe(Effect.tap(() => Effect.sync(() => sessions.delete(aggregateID))), Effect.orDie);
|
|
432
432
|
}
|
|
433
433
|
function claim(aggregateID, ownerID) {
|
|
434
|
-
return db.update(
|
|
434
|
+
return db.update(EventSequenceTable2).set({ owner_id: ownerID }).where(eq(EventSequenceTable2.aggregate_id, aggregateID)).run().pipe(Effect.orDie);
|
|
435
435
|
}
|
|
436
436
|
const local = (stream) => Stream.unwrap(Effect.serviceOption(Location.Service).pipe(Effect.map((location) => Option.match(location, {
|
|
437
437
|
onNone: () => stream,
|
|
438
|
-
onSome: (
|
|
439
|
-
const matches = (ref) => ref.directory ===
|
|
438
|
+
onSome: (location) => {
|
|
439
|
+
const matches = (ref) => ref.directory === location.directory && ref.workspaceID === location.workspaceID;
|
|
440
440
|
return stream.pipe(Stream.filter((event) => {
|
|
441
441
|
const refs = routes.get(event);
|
|
442
442
|
if (refs)
|
|
@@ -449,14 +449,14 @@ function configured(options) {
|
|
|
449
449
|
if (input === undefined)
|
|
450
450
|
return streamLive();
|
|
451
451
|
if (isDefinition(input)) {
|
|
452
|
-
return local(Stream.unwrap(getOrCreate(input).pipe(Effect.map((
|
|
452
|
+
return local(Stream.unwrap(getOrCreate(input).pipe(Effect.map((pubsub) => Stream.fromPubSub(pubsub)))));
|
|
453
453
|
}
|
|
454
454
|
const types = new Set(input.map((definition) => definition.type));
|
|
455
455
|
return streamLive().pipe(Stream.filter((event) => types.has(event.type)));
|
|
456
456
|
}
|
|
457
457
|
const streamLive = () => local(Stream.fromPubSub(pubsub.live));
|
|
458
458
|
const readAfter = (aggregateID, after, input) => (options?.beforeAggregateRead?.(aggregateID) ?? Effect.void).pipe(Effect.andThen(Effect.suspend(() => {
|
|
459
|
-
const query = db.select().from(
|
|
459
|
+
const query = db.select().from(EventTable2).where(and(eq(EventTable2.aggregate_id, aggregateID), gt(EventTable2.seq, after), lte(EventTable2.seq, input.through))).orderBy(asc(EventTable2.seq));
|
|
460
460
|
return query.limit(input.limit).all();
|
|
461
461
|
})), Effect.orDie, Effect.map((rows) => ({
|
|
462
462
|
seq: rows.at(-1)?.seq,
|
|
@@ -499,17 +499,17 @@ function configured(options) {
|
|
|
499
499
|
page.seq !== undefined && page.seq < through ? Option.some(page.seq) : Option.none()
|
|
500
500
|
])));
|
|
501
501
|
const wakes = input.follow ? yield* subscribeDurable(input.aggregateID) : undefined;
|
|
502
|
-
const target = yield*
|
|
502
|
+
const target = yield* latestSequence2(db, input.aggregateID);
|
|
503
503
|
const marker = {
|
|
504
504
|
type: "log.synced",
|
|
505
505
|
aggregateID: input.aggregateID,
|
|
506
506
|
...target >= 0 ? { seq: Event.Seq.make(target) } : {}
|
|
507
507
|
};
|
|
508
|
-
const
|
|
508
|
+
const replay = readThrough(target).pipe(Stream.concat(Stream.make(marker)));
|
|
509
509
|
if (!wakes)
|
|
510
|
-
return
|
|
511
|
-
const live = Stream.fromSubscription(wakes).pipe(Stream.mapEffect(() =>
|
|
512
|
-
return Stream.concat(
|
|
510
|
+
return replay;
|
|
511
|
+
const live = Stream.fromSubscription(wakes).pipe(Stream.mapEffect(() => latestSequence2(db, input.aggregateID)), Stream.filter((target) => target > sequence), Stream.flatMap((target) => readThrough(target)));
|
|
512
|
+
return Stream.concat(replay, live);
|
|
513
513
|
}));
|
|
514
514
|
const listen = (listener) => Effect.sync(() => {
|
|
515
515
|
listeners.push(listener);
|
|
@@ -520,12 +520,12 @@ function configured(options) {
|
|
|
520
520
|
});
|
|
521
521
|
});
|
|
522
522
|
const project = (definition, projector) => Effect.sync(() => {
|
|
523
|
-
const key = definition.durable ?
|
|
523
|
+
const key = definition.durable ? versionedType2(definition.type, definition.durable.version) : definition.type;
|
|
524
524
|
const list = projectors.get(key) ?? [];
|
|
525
525
|
list.push((event) => projector(event));
|
|
526
526
|
projectors.set(key, list);
|
|
527
527
|
});
|
|
528
|
-
return
|
|
528
|
+
return Service79.of({
|
|
529
529
|
publish,
|
|
530
530
|
publishAll,
|
|
531
531
|
subscribe,
|
|
@@ -539,6 +539,6 @@ function configured(options) {
|
|
|
539
539
|
}))
|
|
540
540
|
});
|
|
541
541
|
}
|
|
542
|
-
var
|
|
542
|
+
var node83 = configured12();
|
|
543
543
|
|
|
544
|
-
export {
|
|
544
|
+
export { latestSequence2, reserveSequence2, InvalidDurableEventError2, versionedType2, durable2, ephemeral2, isSynced2, Service79, configured12, node83, exports_bus };
|
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./
|
|
2
|
+
Service42
|
|
3
|
+
} from "./kv-rszjw5nd.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./
|
|
5
|
+
Service21
|
|
6
|
+
} from "./kv-a3mv2pdz.js";
|
|
7
7
|
import {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
text2,
|
|
9
|
+
deliver2
|
|
10
|
+
} from "./kv-x1ezjp6w.js";
|
|
10
11
|
import {
|
|
11
12
|
__export
|
|
12
|
-
} from "./
|
|
13
|
+
} from "./kv-9rqn6x4v.js";
|
|
13
14
|
|
|
14
15
|
// src/session/subagent-job.ts
|
|
15
16
|
var exports_subagent_job = {};
|
|
16
17
|
__export(exports_subagent_job, {
|
|
17
18
|
SubagentJob: () => exports_subagent_job,
|
|
18
|
-
make: () =>
|
|
19
|
+
make: () => make5
|
|
19
20
|
});
|
|
20
21
|
import { Effect, Scope } from "effect";
|
|
21
|
-
var
|
|
22
|
-
const sessions = yield*
|
|
23
|
-
const jobs = yield*
|
|
22
|
+
var make5 = Effect.gen(function* () {
|
|
23
|
+
const sessions = yield* Service21;
|
|
24
|
+
const jobs = yield* Service42;
|
|
24
25
|
const scope = yield* Scope.Scope;
|
|
25
26
|
const notifications = new Set;
|
|
26
27
|
const notify = Effect.fn("SubagentJob.notify")(function* (recovery, startedAt) {
|
|
@@ -31,7 +32,7 @@ var make = Effect.gen(function* () {
|
|
|
31
32
|
yield* Effect.gen(function* () {
|
|
32
33
|
const info = (yield* jobs.wait({ id: recovery.childSessionID })).info;
|
|
33
34
|
if (info)
|
|
34
|
-
yield*
|
|
35
|
+
yield* deliver2(sessions, jobs, { ...info, recovery });
|
|
35
36
|
}).pipe(Effect.ensuring(Effect.sync(() => notifications.delete(key))), Effect.forkIn(scope, { startImmediately: true }));
|
|
36
37
|
});
|
|
37
38
|
return {
|
|
@@ -45,7 +46,7 @@ var make = Effect.gen(function* () {
|
|
|
45
46
|
yield* sessions.resume(recovery.childSessionID);
|
|
46
47
|
const messages = yield* sessions.messages({ sessionID: recovery.childSessionID, order: "desc", limit: 20 });
|
|
47
48
|
const assistant = messages.find((message) => message.type === "assistant" && message.time.completed !== undefined && message.error === undefined);
|
|
48
|
-
return
|
|
49
|
+
return text2(assistant);
|
|
49
50
|
})
|
|
50
51
|
}),
|
|
51
52
|
background: Effect.fn("SubagentJob.background")(function* (recovery) {
|
|
@@ -57,4 +58,4 @@ var make = Effect.gen(function* () {
|
|
|
57
58
|
};
|
|
58
59
|
});
|
|
59
60
|
|
|
60
|
-
export {
|
|
61
|
+
export { make5, exports_subagent_job };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import {
|
|
2
|
+
absoluteColumn2,
|
|
3
|
+
absoluteArrayColumn2
|
|
4
|
+
} from "./kv-r8dhm0tv.js";
|
|
5
|
+
import {
|
|
6
|
+
Timestamps2
|
|
7
|
+
} from "./kv-qfa1cgps.js";
|
|
8
|
+
|
|
9
|
+
// src/project/sql.ts
|
|
10
|
+
import { isNotNull, isNull, ne, or } from "drizzle-orm";
|
|
11
|
+
import { sqliteTable, text, integer, primaryKey } from "drizzle-orm/sqlite-core";
|
|
12
|
+
var ProjectTable2 = sqliteTable("project", {
|
|
13
|
+
id: text().$type().primaryKey(),
|
|
14
|
+
worktree: absoluteColumn2().notNull(),
|
|
15
|
+
vcs: text().$type(),
|
|
16
|
+
name: text(),
|
|
17
|
+
icon_url: text(),
|
|
18
|
+
icon_url_override: text(),
|
|
19
|
+
icon_color: text(),
|
|
20
|
+
...Timestamps2,
|
|
21
|
+
time_initialized: integer(),
|
|
22
|
+
sandboxes: absoluteArrayColumn2().notNull(),
|
|
23
|
+
commands: text({ mode: "json" }).$type()
|
|
24
|
+
});
|
|
25
|
+
var ProjectDirectoryTable2 = sqliteTable("project_directory", {
|
|
26
|
+
project_id: text().$type().notNull().references(() => ProjectTable2.id, { onDelete: "cascade" }),
|
|
27
|
+
directory: absoluteColumn2().notNull(),
|
|
28
|
+
type: text().$type(),
|
|
29
|
+
strategy: text(),
|
|
30
|
+
time_created: integer().notNull().$default(() => Date.now())
|
|
31
|
+
}, (table) => [primaryKey({ columns: [table.project_id, table.directory] })]);
|
|
32
|
+
function upsertProject2(db, project) {
|
|
33
|
+
const vcs = project.vcs?.type;
|
|
34
|
+
return db.insert(ProjectTable2).values({ id: project.id, worktree: project.canonical, vcs, sandboxes: [] }).onConflictDoUpdate({
|
|
35
|
+
target: ProjectTable2.id,
|
|
36
|
+
set: { vcs: vcs ?? null },
|
|
37
|
+
setWhere: vcs ? or(isNull(ProjectTable2.vcs), ne(ProjectTable2.vcs, vcs)) : isNotNull(ProjectTable2.vcs)
|
|
38
|
+
}).run();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export { ProjectTable2, ProjectDirectoryTable2, upsertProject2 };
|