@opencode-ai/core 0.0.0-beta-18219 → 0.0.0-beta-18269
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/agent.js +49 -53
- package/dist/aisdk-native.js +2 -2
- package/dist/aisdk.js +2 -2
- package/dist/bus.js +48 -52
- package/dist/catalog.js +54 -58
- package/dist/chunks/{state-qasbckzx.js → state-05wd10c5.js} +80 -80
- package/dist/chunks/{state-h9sy0va2.js → state-08sn05f7.js} +5 -5
- package/dist/chunks/{state-fvnc3e3d.js → state-0n5r8s68.js} +5 -5
- package/dist/chunks/{state-vvmq9xvn.js → state-0qdyn92p.js} +11 -11
- package/dist/chunks/{state-0r6r61g5.js → state-0rqcx54b.js} +1 -1
- package/dist/chunks/{state-3d1t6jqf.js → state-11jmdqxk.js} +2 -2
- package/dist/chunks/{state-hk8vx4ga.js → state-13bb7frp.js} +4 -4
- package/dist/chunks/{state-fxw49t4p.js → state-14n6xd2t.js} +1 -1
- package/dist/chunks/{state-5vpdk7xd.js → state-1dxwhedr.js} +3 -3
- package/dist/chunks/{state-en9qv3ee.js → state-1eyrk6kn.js} +2 -2
- package/dist/chunks/{state-efvmw2xw.js → state-1jg449r0.js} +1 -1
- package/dist/chunks/{state-6x98y149.js → state-1k8hd2s1.js} +1 -1
- package/dist/chunks/{state-x07gtesk.js → state-1z63g373.js} +2 -2
- package/dist/chunks/{state-wzvy0tx9.js → state-21cqa2vh.js} +3 -3
- package/dist/chunks/{state-xm8j1t5h.js → state-25g1tcbn.js} +2 -2
- package/dist/chunks/{state-rs9n91g6.js → state-2667yp75.js} +2 -6
- package/dist/chunks/{state-fkg79ekq.js → state-27mgx7wm.js} +8 -8
- package/dist/chunks/{state-mc1mz2pc.js → state-2q2hjh4d.js} +2 -2
- package/dist/chunks/{state-6yt963b8.js → state-2xb0r1c6.js} +3 -1
- package/dist/chunks/{state-gwpydf4a.js → state-2zjhyv5q.js} +1 -1
- package/dist/chunks/{state-e0wkpsf3.js → state-369rn14b.js} +4 -4
- package/dist/chunks/{state-5tehh5r2.js → state-3bgrn618.js} +10 -10
- package/dist/chunks/{state-y643ex83.js → state-3hnnvm1k.js} +2 -2
- package/dist/chunks/{state-g1zg5aqr.js → state-3j8hmcr0.js} +3 -3
- package/dist/chunks/{state-5gas9jc2.js → state-3kdskcc3.js} +4 -4
- package/dist/chunks/{state-myychbwq.js → state-3n6fpmg4.js} +2 -2
- package/dist/chunks/{state-6a16bmez.js → state-3ng63sbq.js} +3 -3
- package/dist/chunks/{state-1a3a2s70.js → state-3zyjx98r.js} +1 -1
- package/dist/chunks/{state-njywpcye.js → state-453w8ra4.js} +6 -6
- package/dist/chunks/{state-14wbm4hn.js → state-4cxzzthm.js} +3 -3
- package/dist/chunks/{state-3mexq3pq.js → state-4fa10fyv.js} +13 -13
- package/dist/chunks/{state-eaejza2t.js → state-4m26jex0.js} +1 -1
- package/dist/chunks/{state-5cj22h72.js → state-4p1mqhwg.js} +153 -153
- package/dist/chunks/{state-xz479kyk.js → state-4wqm8gvz.js} +4 -13
- package/dist/chunks/{state-rn9r0ddn.js → state-5dwqq0br.js} +13 -1
- package/dist/chunks/{state-qe0aav6y.js → state-5ew1nkwg.js} +7 -7
- package/dist/chunks/{state-dhccyx0v.js → state-5qgmwqxx.js} +1 -1
- package/dist/chunks/{state-ayfpp7hf.js → state-61ba6bgr.js} +24 -28
- package/dist/chunks/{state-tj4jvx23.js → state-6m78tbrd.js} +5 -5
- package/dist/chunks/{state-4g5pgmex.js → state-6mtxg7ec.js} +11 -11
- package/dist/chunks/{state-bh50qah0.js → state-6xtnn7py.js} +4 -4
- package/dist/chunks/{state-e1pa6vc2.js → state-6zbf46dw.js} +9 -9
- package/dist/chunks/{state-2r1bah04.js → state-6zrz2gj9.js} +5 -5
- package/dist/chunks/{state-bdhgfttt.js → state-7rn7c1wb.js} +10 -10
- package/dist/chunks/{state-jfgv8vsa.js → state-81mmkvpk.js} +11 -11
- package/dist/chunks/{state-z88k6s2w.js → state-8en9tkxq.js} +15 -3
- package/dist/chunks/{state-0dqphqhz.js → state-8hedmdhf.js} +2 -2
- package/dist/chunks/{state-te0cypm2.js → state-8mcwjqk5.js} +6 -6
- package/dist/chunks/{state-fwsc80k7.js → state-8nxrj4pj.js} +1 -1
- package/dist/chunks/{state-625h1wqn.js → state-91frc5mm.js} +4 -4
- package/dist/chunks/{state-qv06sb3r.js → state-9g8h1q3a.js} +1 -1
- package/dist/chunks/{state-9p8mhgdp.js → state-9p22jmaw.js} +1 -1
- package/dist/chunks/{state-3gsv1x0v.js → state-9tbj2q0z.js} +3 -13
- package/dist/chunks/{state-cb46h7pc.js → state-9y48xc9h.js} +3 -3
- package/dist/chunks/{state-7g3ydvzh.js → state-a1p868km.js} +4 -4
- package/dist/chunks/{state-kdn1ck8k.js → state-a4f6ct0f.js} +2 -2
- package/dist/chunks/{state-63gtrn1b.js → state-a600x74j.js} +1 -1
- package/dist/chunks/{state-hhfaz00h.js → state-a9dsqgp1.js} +1 -2
- package/dist/chunks/{state-2ya5073c.js → state-aaxez5kq.js} +1 -1
- package/dist/chunks/{state-8a9e14vy.js → state-adsxqz7v.js} +3 -3
- package/dist/chunks/{state-38jwdxby.js → state-asfw3td4.js} +1 -1
- package/dist/chunks/{state-effdwybp.js → state-b17xd5mf.js} +9 -10
- package/dist/chunks/{state-qtaajmpt.js → state-b4htb9ej.js} +1 -1
- package/dist/chunks/{state-1fqmpy8k.js → state-b64x4rkh.js} +35 -35
- package/dist/chunks/{state-d7y00n83.js → state-bc330n33.js} +27 -16
- package/dist/chunks/{state-esjk7kfz.js → state-be0semnx.js} +7 -7
- package/dist/chunks/{state-jm68rb0q.js → state-bkk1b4ms.js} +6 -6
- package/dist/chunks/{state-tjjf1q77.js → state-bmd659vv.js} +1 -1
- package/dist/chunks/{state-8mftgzpj.js → state-bnttfg6s.js} +1 -1
- package/dist/chunks/{state-qjnrmq1k.js → state-cc76sxm0.js} +4 -4
- package/dist/chunks/{state-yfq2zvb9.js → state-ck58sp58.js} +1 -1
- package/dist/chunks/{state-568e76aa.js → state-ckq2jga8.js} +3 -3
- package/dist/chunks/{state-4j7te1s0.js → state-d4ax61k3.js} +15 -3
- package/dist/chunks/{state-5xrsrne4.js → state-dvt8wt6j.js} +2 -2
- package/dist/chunks/state-e3fd12s5.js +151 -0
- package/dist/chunks/{state-8tw3qzpt.js → state-e4xwk5z4.js} +2 -2
- package/dist/chunks/{state-78y9e82n.js → state-e8nbj9tw.js} +3 -48
- package/dist/chunks/{state-5mntg4nb.js → state-e97zy5jx.js} +2 -2
- package/dist/chunks/{state-8gp1tmat.js → state-e9yzz6kb.js} +1 -1
- package/dist/chunks/{state-tpwp4gvc.js → state-eax51wg3.js} +4 -4
- package/dist/chunks/{state-tt8fjeh9.js → state-eekpgcpd.js} +62 -70
- package/dist/chunks/{state-bkw9e9jk.js → state-emksydcf.js} +26 -26
- package/dist/chunks/{state-xjn4tcwe.js → state-eq06mre2.js} +2 -2
- package/dist/chunks/{state-1g0dcjrg.js → state-eqzrzvwz.js} +2 -2
- package/dist/chunks/{state-qajwj4ps.js → state-fbnbqahk.js} +3 -3
- package/dist/chunks/{state-cwzmv738.js → state-fj104twx.js} +1 -1
- package/dist/chunks/{state-g7t6p8r2.js → state-fsqnkees.js} +1 -1
- package/dist/chunks/{state-hhxt27np.js → state-fyegnnfc.js} +1 -1
- package/dist/chunks/{state-5zayf0x8.js → state-g0aw0gzh.js} +66 -57
- package/dist/chunks/{state-yb8yd193.js → state-gbxfsqwm.js} +2 -2
- package/dist/chunks/{state-d19eexxk.js → state-gyrwtw78.js} +1 -1
- package/dist/chunks/{state-982wwmdk.js → state-h2t3q2wm.js} +1 -1
- package/dist/chunks/{state-59d95h76.js → state-h3y01asp.js} +12 -9
- package/dist/chunks/{state-jf35ek5b.js → state-h846wrk2.js} +1 -0
- package/dist/chunks/{state-djkt4gex.js → state-hhajr42d.js} +3 -0
- package/dist/chunks/{state-dgfy6zt2.js → state-jabxf61s.js} +5 -5
- package/dist/chunks/{state-cqdxefk2.js → state-jgvtg6c9.js} +40 -14
- package/dist/chunks/{state-7qqad34w.js → state-jkjzgk2k.js} +8 -8
- package/dist/chunks/{state-rmr740y4.js → state-jsm51fhb.js} +9 -9
- package/dist/chunks/{state-qh4vq1fm.js → state-jxwvj0fm.js} +8 -8
- package/dist/chunks/{state-6msxydxg.js → state-k6ybxbw4.js} +9 -9
- package/dist/chunks/{state-ftfyk4m7.js → state-kag74pk5.js} +2 -2
- package/dist/chunks/{state-t0tt4nmt.js → state-kb33ew3e.js} +8 -8
- package/dist/chunks/{state-4ce5qhvd.js → state-kxp8ef5p.js} +5 -5
- package/dist/chunks/{state-2zf7hxjt.js → state-m0ebj05k.js} +13 -2
- package/dist/chunks/{state-bcvcrp33.js → state-mjgqapyb.js} +2 -2
- package/dist/chunks/{state-va5k7fad.js → state-mr28yfk1.js} +27 -7
- package/dist/chunks/{state-wcc1vz83.js → state-mwymssey.js} +42 -42
- package/dist/chunks/{state-gg8gy1ab.js → state-n1x4rjqh.js} +2 -2
- package/dist/chunks/{state-e2qdw0tg.js → state-n5fzcn0n.js} +5 -5
- package/dist/chunks/{state-3zqgma8g.js → state-na8etft7.js} +2 -2
- package/dist/chunks/{state-h094egad.js → state-nfhhzyc6.js} +4 -4
- package/dist/chunks/{state-y966n2ac.js → state-njsznp42.js} +10 -10
- package/dist/chunks/{state-nzexh2ja.js → state-nrbk1kjp.js} +87 -87
- package/dist/chunks/{state-rgk6q7se.js → state-ntvdej23.js} +1 -1
- package/dist/chunks/{state-rph6nvyf.js → state-p1c6e6m1.js} +26 -26
- package/dist/chunks/{state-dr1mvjy7.js → state-p3twfje4.js} +3 -3
- package/dist/chunks/{state-epzxjdf4.js → state-p7764ja1.js} +2 -2
- package/dist/chunks/{state-2zyrrrhx.js → state-pewx9f2e.js} +3 -3
- package/dist/chunks/{state-vz30fbtb.js → state-pspf2xyp.js} +3 -3
- package/dist/chunks/{state-4gksgcvv.js → state-q22rp0t0.js} +14 -14
- package/dist/chunks/{state-cve546b2.js → state-q7kk6b5b.js} +1 -1
- package/dist/chunks/{state-1427k8mt.js → state-qe7xhz7y.js} +2 -2
- package/dist/chunks/{state-e9jfq0e9.js → state-rpqdmjwk.js} +1 -1
- package/dist/chunks/{state-993n0k7x.js → state-s57t7xkg.js} +1 -1
- package/dist/chunks/{state-wyhq3myq.js → state-ss47qkgm.js} +3 -3
- package/dist/chunks/{state-fdx44h11.js → state-syqxsax9.js} +1 -1
- package/dist/chunks/{state-9wqc5k0a.js → state-sz0e55kk.js} +4 -4
- package/dist/chunks/{state-0b13gwpq.js → state-t0m69jt4.js} +4 -4
- package/dist/chunks/{state-shhqc982.js → state-t7gaqyw5.js} +15 -15
- package/dist/chunks/{state-c9eyxdsa.js → state-tawttwre.js} +9 -9
- package/dist/chunks/{state-5m91ayta.js → state-v1g0nhk2.js} +1 -1
- package/dist/chunks/{state-7svew3xx.js → state-v4sgqzfn.js} +5 -5
- package/dist/chunks/{state-fypnrcda.js → state-vh3jgmz8.js} +6 -6
- package/dist/chunks/{state-6dpj79be.js → state-vs2j5dte.js} +2 -2
- package/dist/chunks/{state-qsh6aavw.js → state-w5aydxy7.js} +3 -3
- package/dist/chunks/{state-20hhthrk.js → state-w946z2q4.js} +4 -4
- package/dist/chunks/{state-1jaejmkb.js → state-wgfqc61v.js} +2 -2
- package/dist/chunks/{state-eq90zxhy.js → state-x9z4espg.js} +3 -3
- package/dist/chunks/{state-c9tk9ghs.js → state-xfry7hk8.js} +1 -1
- package/dist/chunks/{state-j5tp9x2q.js → state-y2q46fcs.js} +10 -10
- package/dist/chunks/{state-c09ww48j.js → state-y5as78a2.js} +1 -1
- package/dist/chunks/{state-zbjdaqcp.js → state-yah8vtgx.js} +4 -4
- package/dist/chunks/{state-fywp5vae.js → state-yv2xx3v3.js} +3 -3
- package/dist/chunks/{state-zrbk8s17.js → state-yx107q08.js} +9 -9
- package/dist/chunks/{state-crg4yysy.js → state-yxz07vzv.js} +1 -1
- package/dist/chunks/{state-0vgt3zn6.js → state-z6xdhe6c.js} +1 -1
- package/dist/chunks/{state-kb2qf3qs.js → state-zh7kq3j8.js} +3 -3
- package/dist/chunks/{state-77cj1yb3.js → state-zma7gfkw.js} +4 -4
- package/dist/chunks/{state-s4ame7nd.js → state-zmtjwfap.js} +4 -4
- package/dist/chunks/{state-hk8exvw2.js → state-zv8psbr7.js} +2 -2
- package/dist/command.js +49 -53
- package/dist/config/normalize.js +12 -12
- package/dist/config/plugin/agent.js +82 -86
- package/dist/config/plugin/command.js +71 -75
- package/dist/config/plugin/compaction.js +110 -114
- package/dist/config/plugin/entry-observer.js +68 -72
- package/dist/config/plugin/formatter.js +71 -75
- package/dist/config/plugin/image.js +79 -83
- package/dist/config/plugin/instruction.js +54 -58
- package/dist/config/plugin/location-watcher.js +70 -74
- package/dist/config/plugin/mcp.js +78 -82
- package/dist/config/plugin/policy.js +70 -74
- package/dist/config/plugin/provider.js +69 -73
- package/dist/config/plugin/reference.js +73 -77
- package/dist/config/plugin/shell.js +71 -75
- package/dist/config/plugin/skill-file.js +67 -71
- package/dist/config/plugin/skill.js +84 -88
- package/dist/config/plugin/snapshot.js +71 -75
- package/dist/config/plugin/source.js +69 -73
- package/dist/config/plugin/tool-output.js +72 -76
- package/dist/config/plugin/websearch.js +69 -73
- package/dist/config.js +68 -72
- package/dist/credential.js +52 -51
- package/dist/database/database.js +46 -50
- package/dist/database/drizzle/effect-sqlite/driver.js +8 -11
- package/dist/database/drizzle/effect-sqlite/index.js +8 -11
- package/dist/database/drizzle/effect-sqlite/session.js +7 -10
- package/dist/database/drizzle/index.js +9 -16
- package/dist/database/drizzle/sqlite-core/effect/db.js +5 -5
- package/dist/database/drizzle/sqlite-core/effect/index.js +16 -21
- package/dist/database/drizzle/sqlite-core/effect/session.js +7 -12
- package/dist/database/drizzle.js +9 -16
- package/dist/database/migration/20260410174513_workspace-name.js +1 -1
- package/dist/database/migration.gen.js +35 -35
- package/dist/database/migration.js +36 -36
- package/dist/database/v1-migration.bun.js +52 -56
- package/dist/effect/app-node-builder.js +254 -260
- package/dist/environment/environment.js +55 -59
- package/dist/environment/index.js +57 -61
- package/dist/event-logger.js +48 -52
- package/dist/file-mutation.js +56 -60
- package/dist/filesystem/location-watcher.js +237 -243
- package/dist/filesystem/search.js +58 -62
- package/dist/filesystem.js +58 -62
- package/dist/form.js +49 -53
- package/dist/formatter.js +53 -57
- package/dist/generate.js +58 -62
- package/dist/github-copilot/chat/openai-compatible-chat-language-model.js +3 -3
- package/dist/github-copilot/copilot-provider.js +8 -8
- package/dist/github-copilot/models.js +3 -3
- package/dist/github-copilot/responses/openai-responses-language-model.js +4 -4
- package/dist/github-copilot/responses/openai-responses-prepare-tools.js +2 -2
- package/dist/image/photon.js +60 -64
- package/dist/image.js +60 -64
- package/dist/instruction-discovery.js +50 -54
- package/dist/instructions/builtins.js +53 -57
- package/dist/integration.js +51 -55
- package/dist/job.js +1 -1
- package/dist/kv.js +47 -51
- package/dist/location-activity.js +51 -55
- package/dist/location-mutation.js +52 -56
- package/dist/location-service-map.js +51 -55
- package/dist/location-services.js +254 -260
- package/dist/location.js +51 -55
- package/dist/mcp/client.js +56 -60
- package/dist/mcp/index.js +62 -66
- package/dist/mcp/instructions.js +83 -87
- package/dist/mcp/stdio.js +56 -60
- package/dist/model-resolver.js +57 -61
- package/dist/model.js +2 -2
- package/dist/models-dev.js +52 -56
- package/dist/permission/saved.js +51 -55
- package/dist/permission/sql.js +1 -1
- package/dist/permission.js +65 -69
- package/dist/persistent-pty/index.js +49 -53
- package/dist/persistent-pty.js +49 -53
- package/dist/plugin/agent.js +66 -70
- package/dist/plugin/command.js +63 -67
- package/dist/plugin/host.js +117 -121
- package/dist/plugin/internal.js +229 -235
- package/dist/plugin/models-dev.js +53 -57
- package/dist/plugin/plan.js +66 -70
- package/dist/plugin/provider/amazon-bedrock.js +2 -2
- package/dist/plugin/provider/anthropic.js +2 -2
- package/dist/plugin/provider/azure.js +75 -79
- package/dist/plugin/provider/cerebras.js +2 -2
- package/dist/plugin/provider/cloudflare-ai-gateway.js +76 -80
- package/dist/plugin/provider/cloudflare-workers-ai.js +76 -80
- package/dist/plugin/provider/configured.js +74 -78
- package/dist/plugin/provider/github-copilot.js +57 -61
- package/dist/plugin/provider/gitlab.js +2 -2
- package/dist/plugin/provider/google-vertex.js +2 -2
- package/dist/plugin/provider/kilo.js +2 -2
- package/dist/plugin/provider/llmgateway.js +53 -57
- package/dist/plugin/provider/lmstudio.js +69 -73
- package/dist/plugin/provider/nvidia.js +2 -2
- package/dist/plugin/provider/ollama.js +69 -73
- package/dist/plugin/provider/openai.js +53 -57
- package/dist/plugin/provider/opencode.js +63 -67
- package/dist/plugin/provider/openrouter.js +3 -3
- package/dist/plugin/provider/sap-ai-core.js +2 -2
- package/dist/plugin/provider/snowflake-cortex.js +2 -2
- package/dist/plugin/provider/vercel.js +2 -2
- package/dist/plugin/provider/vllm.js +69 -73
- package/dist/plugin/provider/xai.js +53 -57
- package/dist/plugin/provider/zenmux.js +2 -2
- package/dist/plugin/provider.js +108 -114
- package/dist/plugin/runtime.js +103 -107
- package/dist/plugin/sdk.js +49 -53
- package/dist/plugin/skill.js +84 -88
- package/dist/plugin/supervisor.js +238 -244
- package/dist/plugin/variant.js +3 -3
- package/dist/plugin/vcs/git.js +52 -56
- package/dist/plugin/vcs/hg.js +52 -56
- package/dist/plugin/warming.js +70 -74
- package/dist/plugin/websearch/index.js +4 -4
- package/dist/plugin.js +118 -122
- package/dist/project/sql.js +1 -1
- package/dist/project.js +50 -54
- package/dist/provider.js +1 -1
- package/dist/pty/ticket.js +48 -52
- package/dist/pty.js +54 -58
- package/dist/reference/instructions.js +52 -56
- package/dist/reference.js +50 -54
- package/dist/ripgrep.js +57 -61
- package/dist/session/compaction.js +94 -98
- package/dist/session/context.js +242 -248
- package/dist/session/execution/restart.js +79 -83
- package/dist/session/execution.js +79 -83
- package/dist/session/generate-node.js +243 -249
- package/dist/session/history.js +50 -54
- package/dist/session/inbox.js +50 -54
- package/dist/session/info.js +58 -62
- package/dist/session/instruction-entry.js +49 -53
- package/dist/session/instruction-state.js +2 -2
- package/dist/session/instructions.js +62 -66
- package/dist/session/model-request.js +91 -95
- package/dist/session/model-transport.js +1 -1
- package/dist/session/projector.js +57 -61
- package/dist/session/revert.js +55 -59
- package/dist/session/runner/index.js +59 -63
- package/dist/session/runner/llm.js +246 -252
- package/dist/session/runner/model.js +59 -63
- package/dist/session/runner/retry.js +48 -52
- package/dist/session/runner/to-llm-message.js +1 -1
- package/dist/session/sql.js +1 -1
- package/dist/session/stats.js +47 -51
- package/dist/session/store.js +61 -65
- package/dist/session/title.js +92 -96
- package/dist/session/to-session-error.js +76 -80
- package/dist/session/transfer.js +102 -105
- package/dist/session.js +105 -109
- package/dist/shell/parse.js +3 -3
- package/dist/shell/select.js +2 -2
- package/dist/shell.js +61 -65
- package/dist/skill/instructions.js +67 -71
- package/dist/skill.js +68 -70
- package/dist/snapshot.js +53 -57
- package/dist/tool/mcp.js +82 -86
- package/dist/tool/plugin/edit.js +72 -76
- package/dist/tool/plugin/glob.js +74 -78
- package/dist/tool/plugin/grep.js +74 -78
- package/dist/tool/plugin/patch.js +72 -76
- package/dist/tool/plugin/question.js +67 -71
- package/dist/tool/plugin/read.js +76 -80
- package/dist/tool/plugin/shell.js +122 -126
- package/dist/tool/plugin/skill.js +67 -71
- package/dist/tool/plugin/subagent.js +119 -123
- package/dist/tool/plugin/webfetch.js +67 -71
- package/dist/tool/plugin/websearch.js +70 -74
- package/dist/tool/plugin/write.js +72 -76
- package/dist/tool/read-filesystem.js +59 -63
- package/dist/tool.js +75 -79
- package/dist/types/bus.d.ts +1 -0
- package/dist/types/credential.d.ts +156 -1
- package/dist/types/database/drizzle/index.d.ts +0 -1
- package/dist/types/database/drizzle/sqlite-core/effect/session.d.ts +0 -6
- package/dist/types/database/migration.d.ts +2 -2
- package/dist/types/integration.d.ts +4 -0
- package/dist/types/model.d.ts +3 -0
- package/dist/types/session/compaction.d.ts +1 -0
- package/dist/types/session/history.d.ts +5 -0
- package/dist/types/session/inbox.d.ts +5 -0
- package/dist/types/session/transfer.d.ts +2 -0
- package/dist/types/skill.d.ts +6 -0
- package/dist/types/v1/config/migrate.d.ts +1 -0
- package/dist/types/worktree.d.ts +20 -0
- package/dist/v1/config/config.js +7 -7
- package/dist/v1/config/migrate.js +11 -11
- package/dist/vcs.js +53 -57
- package/dist/websearch.js +50 -54
- package/dist/wellknown/plugin.js +51 -55
- package/dist/wellknown.js +50 -54
- package/dist/workspace.js +48 -52
- package/dist/worktree/sql.js +1 -1
- package/dist/worktree.js +52 -56
- package/package.json +8 -11
- package/dist/chunks/state-4pxf671z.js +0 -97
- package/dist/chunks/state-4zg0gww9.js +0 -55
- package/dist/chunks/state-f84sxdqn.js +0 -49
- package/dist/chunks/state-hsyk7kfz.js +0 -56
- package/dist/chunks/state-jssy2dr3.js +0 -18
- package/dist/chunks/state-pfqehjmy.js +0 -18
- package/dist/chunks/state-qqevkq7v.js +0 -12
- package/dist/database/drizzle/effect-sqlite/migrator.js +0 -20
- package/dist/database/drizzle/up-migrations/effect-sqlite.js +0 -9
- package/dist/database/drizzle/up-migrations/sqlite.js +0 -9
- package/dist/database/drizzle/up-migrations/utils.js +0 -9
- package/dist/plugin/provider/deepinfra.js +0 -8
- package/dist/plugin/provider/togetherai.js +0 -8
- package/dist/types/database/drizzle/effect-sqlite/migrator.d.ts +0 -4
- package/dist/types/database/drizzle/up-migrations/effect-sqlite.d.ts +0 -8
- package/dist/types/database/drizzle/up-migrations/sqlite.d.ts +0 -26
- package/dist/types/database/drizzle/up-migrations/utils.d.ts +0 -21
- package/dist/types/plugin/provider/deepinfra.d.ts +0 -1
- package/dist/types/plugin/provider/togetherai.d.ts +0 -1
- package/dist/chunks/{state-wrw92r0k.js → state-6embh6xw.js} +3 -3
- package/dist/chunks/{state-p1xvm7za.js → state-a8bn7nwa.js} +3 -3
- package/dist/chunks/{state-wvjbjymc.js → state-dnt65mkc.js} +0 -0
- package/dist/chunks/{state-shg9btfn.js → state-kfxvy8fx.js} +6 -6
- package/dist/chunks/{state-sh61temt.js → state-ky29wa5d.js} +17 -17
- package/dist/chunks/{state-rrc4sky2.js → state-qzaqf2fn.js} +3 -3
- package/dist/chunks/{state-7fr2g77j.js → state-xd2p33y8.js} +7 -7
- package/dist/chunks/{state-46qzmhmr.js → state-zaz2fh21.js} +10 -10
|
@@ -1,66 +1,66 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exports_host
|
|
3
|
-
} from "./state-
|
|
3
|
+
} from "./state-mwymssey.js";
|
|
4
4
|
import {
|
|
5
5
|
exports_runtime
|
|
6
|
-
} from "./state-
|
|
6
|
+
} from "./state-27mgx7wm.js";
|
|
7
7
|
import {
|
|
8
8
|
exports_mcp
|
|
9
|
-
} from "./state-
|
|
9
|
+
} from "./state-t7gaqyw5.js";
|
|
10
10
|
import {
|
|
11
|
-
|
|
12
|
-
} from "./state-
|
|
13
|
-
import {
|
|
14
|
-
exports_app
|
|
15
|
-
} from "./state-50jxp3hw.js";
|
|
16
|
-
import {
|
|
17
|
-
exports_command
|
|
18
|
-
} from "./state-8mftgzpj.js";
|
|
19
|
-
import {
|
|
20
|
-
exports_skill
|
|
21
|
-
} from "./state-z88k6s2w.js";
|
|
11
|
+
exports_websearch
|
|
12
|
+
} from "./state-kag74pk5.js";
|
|
22
13
|
import {
|
|
23
|
-
|
|
24
|
-
} from "./state-
|
|
14
|
+
exports_vcs
|
|
15
|
+
} from "./state-nfhhzyc6.js";
|
|
25
16
|
import {
|
|
26
17
|
exports_tool
|
|
27
|
-
} from "./state-
|
|
18
|
+
} from "./state-rpqdmjwk.js";
|
|
28
19
|
import {
|
|
29
|
-
|
|
30
|
-
} from "./state-
|
|
20
|
+
exports_command
|
|
21
|
+
} from "./state-bnttfg6s.js";
|
|
31
22
|
import {
|
|
32
|
-
|
|
33
|
-
} from "./state-
|
|
23
|
+
exports_reference
|
|
24
|
+
} from "./state-91frc5mm.js";
|
|
34
25
|
import {
|
|
35
|
-
|
|
36
|
-
} from "./state-
|
|
26
|
+
exports_app
|
|
27
|
+
} from "./state-50jxp3hw.js";
|
|
37
28
|
import {
|
|
38
|
-
|
|
39
|
-
} from "./state-
|
|
29
|
+
exports_skill
|
|
30
|
+
} from "./state-8en9tkxq.js";
|
|
40
31
|
import {
|
|
41
32
|
exports_kv
|
|
42
|
-
} from "./state-
|
|
33
|
+
} from "./state-s57t7xkg.js";
|
|
43
34
|
import {
|
|
44
|
-
|
|
45
|
-
} from "./state-
|
|
46
|
-
import {
|
|
47
|
-
exports_location
|
|
48
|
-
} from "./state-efvmw2xw.js";
|
|
35
|
+
exports_generate
|
|
36
|
+
} from "./state-y5as78a2.js";
|
|
49
37
|
import {
|
|
50
38
|
exports_catalog
|
|
51
|
-
} from "./state-
|
|
39
|
+
} from "./state-bkk1b4ms.js";
|
|
52
40
|
import {
|
|
53
41
|
exports_integration
|
|
54
|
-
} from "./state-
|
|
42
|
+
} from "./state-61ba6bgr.js";
|
|
55
43
|
import {
|
|
56
44
|
exports_aisdk
|
|
57
|
-
} from "./state-
|
|
45
|
+
} from "./state-m0ebj05k.js";
|
|
46
|
+
import {
|
|
47
|
+
exports_permission
|
|
48
|
+
} from "./state-jsm51fhb.js";
|
|
49
|
+
import {
|
|
50
|
+
exports_agent
|
|
51
|
+
} from "./state-2zjhyv5q.js";
|
|
52
|
+
import {
|
|
53
|
+
exports_hooks
|
|
54
|
+
} from "./state-v2wshkax.js";
|
|
58
55
|
import {
|
|
59
56
|
exports_state
|
|
60
57
|
} from "./state-qhdqjp31.js";
|
|
58
|
+
import {
|
|
59
|
+
exports_location
|
|
60
|
+
} from "./state-1jg449r0.js";
|
|
61
61
|
import {
|
|
62
62
|
exports_bus
|
|
63
|
-
} from "./state-
|
|
63
|
+
} from "./state-kxp8ef5p.js";
|
|
64
64
|
import {
|
|
65
65
|
__export
|
|
66
66
|
} from "./state-rvfvac9x.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
exports_instruction_entry
|
|
3
|
-
} from "./state-d19eexxk.js";
|
|
4
1
|
import {
|
|
5
2
|
exports_inbox
|
|
6
3
|
} from "./state-j5q8scqt.js";
|
|
4
|
+
import {
|
|
5
|
+
exports_instruction_entry
|
|
6
|
+
} from "./state-gyrwtw78.js";
|
|
7
7
|
import {
|
|
8
8
|
exports_message_updater
|
|
9
9
|
} from "./state-1b390eyt.js";
|
|
@@ -20,29 +20,32 @@ import {
|
|
|
20
20
|
} from "./state-8rpfd2h6.js";
|
|
21
21
|
import {
|
|
22
22
|
exports_agent
|
|
23
|
-
} from "./state-
|
|
23
|
+
} from "./state-2zjhyv5q.js";
|
|
24
24
|
import {
|
|
25
25
|
SessionEvent
|
|
26
26
|
} from "./state-a83yvq99.js";
|
|
27
|
+
import {
|
|
28
|
+
exports_model
|
|
29
|
+
} from "./state-3zyjx98r.js";
|
|
27
30
|
import {
|
|
28
31
|
Slug
|
|
29
32
|
} from "./state-df3v2q6j.js";
|
|
30
33
|
import {
|
|
31
34
|
exports_workspace
|
|
32
|
-
} from "./state-
|
|
35
|
+
} from "./state-9y48xc9h.js";
|
|
36
|
+
import {
|
|
37
|
+
ProjectTable
|
|
38
|
+
} from "./state-88jbfw8z.js";
|
|
33
39
|
import {
|
|
34
40
|
AbsolutePath,
|
|
35
41
|
RelativePath
|
|
36
42
|
} from "./state-j07kk359.js";
|
|
37
|
-
import {
|
|
38
|
-
exports_model
|
|
39
|
-
} from "./state-1a3a2s70.js";
|
|
40
43
|
import {
|
|
41
44
|
exports_bus
|
|
42
|
-
} from "./state-
|
|
45
|
+
} from "./state-kxp8ef5p.js";
|
|
43
46
|
import {
|
|
44
47
|
exports_database
|
|
45
|
-
} from "./state-
|
|
48
|
+
} from "./state-1z63g373.js";
|
|
46
49
|
import {
|
|
47
50
|
__export
|
|
48
51
|
} from "./state-rvfvac9x.js";
|
|
@@ -54,7 +57,7 @@ __export(exports_projector, {
|
|
|
54
57
|
SessionProjector: () => exports_projector,
|
|
55
58
|
SessionAlreadyProjected: () => SessionAlreadyProjected
|
|
56
59
|
});
|
|
57
|
-
import { and, asc, desc, eq, gt, gte, inArray, lt, lte, sql } from "drizzle-orm";
|
|
60
|
+
import { and, asc, desc, eq, gt, gte, inArray, isNull, lt, lte, or, sql } from "drizzle-orm";
|
|
58
61
|
import { DateTime, Effect, Layer, Schema, Stream } from "effect";
|
|
59
62
|
import path from "path";
|
|
60
63
|
import { makeGlobalNode } from "@opencode-ai/util/effect/app-node";
|
|
@@ -300,16 +303,24 @@ var layer = Layer.effectDiscard(Effect.gen(function* () {
|
|
|
300
303
|
}).where(eq(SessionTable.id, event.data.sessionID)).run().pipe(Effect.orDie);
|
|
301
304
|
}));
|
|
302
305
|
yield* bus.project(Worktree.Event.Resolved, (event) => Effect.gen(function* () {
|
|
303
|
-
const
|
|
304
|
-
|
|
306
|
+
const candidates = [
|
|
307
|
+
...new Set([event.data.previous, Project.ID.global, ...event.data.adopted ?? []].filter((id) => id !== event.data.projectID))
|
|
308
|
+
];
|
|
309
|
+
if (candidates.length === 0)
|
|
305
310
|
return;
|
|
306
|
-
const rows = yield* db.select({
|
|
311
|
+
const rows = yield* db.select({
|
|
312
|
+
id: SessionTable.id,
|
|
313
|
+
directory: SessionTable.directory,
|
|
314
|
+
projectID: SessionTable.project_id,
|
|
315
|
+
canonical: ProjectTable.worktree
|
|
316
|
+
}).from(SessionTable).innerJoin(ProjectTable, eq(SessionTable.project_id, ProjectTable.id)).where(and(inArray(SessionTable.project_id, candidates), isNull(SessionTable.workspace_id), or(event.data.adopted?.length ? inArray(SessionTable.project_id, event.data.adopted) : undefined, and(gte(SessionTable.directory, event.data.directory), lte(SessionTable.directory, AbsolutePath.make(event.data.directory + "")))))).all().pipe(Effect.orDie);
|
|
307
317
|
yield* Effect.forEach(rows, (row) => {
|
|
308
|
-
|
|
318
|
+
const directory = event.data.adopted?.includes(row.projectID) ? row.canonical : AbsolutePath.make(path.resolve(row.directory));
|
|
319
|
+
if (!FSUtil.contains(event.data.directory, directory))
|
|
309
320
|
return Effect.void;
|
|
310
321
|
return db.update(SessionTable).set({
|
|
311
322
|
project_id: event.data.projectID,
|
|
312
|
-
path: RelativePath.make(path.relative(event.data.directory,
|
|
323
|
+
path: RelativePath.make(path.relative(event.data.directory, directory).replaceAll("\\", "/")),
|
|
313
324
|
time_updated: sql`${SessionTable.time_updated}`
|
|
314
325
|
}).where(eq(SessionTable.id, row.id)).run().pipe(Effect.orDie);
|
|
315
326
|
}, { discard: true });
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exports_config
|
|
3
|
-
} from "./state-
|
|
3
|
+
} from "./state-ky29wa5d.js";
|
|
4
4
|
import {
|
|
5
5
|
exports_provider_options
|
|
6
6
|
} from "./state-y0x38cee.js";
|
|
7
7
|
import {
|
|
8
8
|
exports_integration
|
|
9
|
-
} from "./state-
|
|
9
|
+
} from "./state-61ba6bgr.js";
|
|
10
10
|
import {
|
|
11
11
|
exports_credential
|
|
12
|
-
} from "./state-
|
|
12
|
+
} from "./state-e3fd12s5.js";
|
|
13
13
|
import {
|
|
14
14
|
exports_model
|
|
15
|
-
} from "./state-
|
|
15
|
+
} from "./state-3zyjx98r.js";
|
|
16
16
|
import {
|
|
17
17
|
exports_provider
|
|
18
|
-
} from "./state-
|
|
18
|
+
} from "./state-hhajr42d.js";
|
|
19
19
|
import {
|
|
20
20
|
exports_bus
|
|
21
|
-
} from "./state-
|
|
21
|
+
} from "./state-kxp8ef5p.js";
|
|
22
22
|
|
|
23
23
|
// src/plugin/provider/opencode.ts
|
|
24
24
|
import { Duration, Effect, Schema, Semaphore, Stream } from "effect";
|
|
@@ -196,7 +196,7 @@ var OpencodePlugin = define({
|
|
|
196
196
|
}
|
|
197
197
|
});
|
|
198
198
|
const refresh = () => loading.withPermit(load().pipe(Effect.andThen(ctx.catalog.reload())));
|
|
199
|
-
yield* bus.subscribe(
|
|
199
|
+
yield* bus.subscribe(exports_credential.Event.Switched).pipe(Stream.filter((event) => event.data.integrationID === exports_integration.ID.make("opencode")), Stream.runForEach(refresh), Effect.forkScoped({ startImmediately: true }));
|
|
200
200
|
})
|
|
201
201
|
});
|
|
202
202
|
function fetchProviders(http, value) {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exports_integration
|
|
3
|
-
} from "./state-
|
|
3
|
+
} from "./state-61ba6bgr.js";
|
|
4
4
|
import {
|
|
5
5
|
exports_model
|
|
6
|
-
} from "./state-
|
|
6
|
+
} from "./state-3zyjx98r.js";
|
|
7
|
+
import {
|
|
8
|
+
exports_provider
|
|
9
|
+
} from "./state-hhajr42d.js";
|
|
7
10
|
import {
|
|
8
11
|
exports_state
|
|
9
12
|
} from "./state-qhdqjp31.js";
|
|
10
|
-
import {
|
|
11
|
-
exports_provider
|
|
12
|
-
} from "./state-djkt4gex.js";
|
|
13
13
|
import {
|
|
14
14
|
exports_bus
|
|
15
|
-
} from "./state-
|
|
15
|
+
} from "./state-kxp8ef5p.js";
|
|
16
16
|
import {
|
|
17
17
|
__export
|
|
18
18
|
} from "./state-rvfvac9x.js";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
configuredSettings
|
|
3
|
+
} from "./state-ss47qkgm.js";
|
|
1
4
|
import {
|
|
2
5
|
iife
|
|
3
6
|
} from "./state-ehj9csmv.js";
|
|
4
|
-
import {
|
|
5
|
-
configuredSettings
|
|
6
|
-
} from "./state-wyhq3myq.js";
|
|
7
7
|
import {
|
|
8
8
|
exports_app
|
|
9
9
|
} from "./state-50jxp3hw.js";
|
|
10
10
|
import {
|
|
11
11
|
exports_provider
|
|
12
|
-
} from "./state-
|
|
12
|
+
} from "./state-hhajr42d.js";
|
|
13
13
|
import {
|
|
14
14
|
__require
|
|
15
15
|
} from "./state-rvfvac9x.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exports_mcp as exports_mcp2
|
|
3
|
-
} from "./state-
|
|
3
|
+
} from "./state-13bb7frp.js";
|
|
4
4
|
import {
|
|
5
5
|
exports_mcp
|
|
6
|
-
} from "./state-
|
|
6
|
+
} from "./state-t7gaqyw5.js";
|
|
7
7
|
import {
|
|
8
8
|
exports_permission
|
|
9
|
-
} from "./state-
|
|
9
|
+
} from "./state-jsm51fhb.js";
|
|
10
10
|
import {
|
|
11
11
|
exports_instructions
|
|
12
12
|
} from "./state-ec8vrfw5.js";
|
|
@@ -70,7 +70,7 @@ var makeLayer = (connector) => Layer.effect(Service, Effect.gen(function* () {
|
|
|
70
70
|
const current = states.get(sessionID);
|
|
71
71
|
if (current)
|
|
72
72
|
return current;
|
|
73
|
-
const created = { lock: Semaphore.makeUnsafe(1), closed: false };
|
|
73
|
+
const created = { lock: Semaphore.makeUnsafe(1), closed: false, httpFallback: false };
|
|
74
74
|
states.set(sessionID, created);
|
|
75
75
|
return created;
|
|
76
76
|
};
|
|
@@ -152,7 +152,7 @@ var makeLayer = (connector) => Layer.effect(Service, Effect.gen(function* () {
|
|
|
152
152
|
});
|
|
153
153
|
})), Effect.catch((error) => channel.closing ? Effect.void : poison(owner, channel, annotate(error, {
|
|
154
154
|
phase: error.reason._tag === "Transport" && error.reason.phase === "close" ? "close" : "receive",
|
|
155
|
-
delivery: channel.active?.lifecycle.delivery === "provider-observed" || channel.active?.lifecycle.delivery === "terminal" || error.reason._tag === "Transport" && error.reason.code === "queue-overflow" ? "accepted" : "ambiguous"
|
|
155
|
+
delivery: channel.active?.lifecycle.delivery === "provider-observed" || channel.active?.lifecycle.delivery === "terminal" || error.reason._tag === "Transport" && error.reason.code === "queue-overflow" ? "accepted" : error.reason._tag === "Transport" && error.reason.code === "1009" ? "rejected" : "ambiguous"
|
|
156
156
|
}))), Effect.forkIn(scope, { startImmediately: true }));
|
|
157
157
|
yield* Effect.logDebug("session websocket connected", {
|
|
158
158
|
sessionTransport: "websocket",
|
|
@@ -174,6 +174,8 @@ var makeLayer = (connector) => Layer.effect(Service, Effect.gen(function* () {
|
|
|
174
174
|
phase: "queue",
|
|
175
175
|
delivery: "not-sent"
|
|
176
176
|
});
|
|
177
|
+
if (owner.httpFallback)
|
|
178
|
+
return fallback(exchange);
|
|
177
179
|
const key = affinity(exchange);
|
|
178
180
|
const now = yield* Clock.currentTimeMillis;
|
|
179
181
|
const current = owner.channel;
|
|
@@ -281,7 +283,17 @@ var makeLayer = (connector) => Layer.effect(Service, Effect.gen(function* () {
|
|
|
281
283
|
delivery: lifecycle.delivery === "provider-observed" ? "accepted" : "ambiguous"
|
|
282
284
|
});
|
|
283
285
|
yield* poison(owner, channel, error);
|
|
284
|
-
})))
|
|
286
|
+
})), Stream.catch((error) => {
|
|
287
|
+
if (error.reason._tag !== "Transport" || error.reason.code !== "1009" || error.reason.delivery !== "rejected")
|
|
288
|
+
return Stream.fail(error);
|
|
289
|
+
owner.httpFallback = true;
|
|
290
|
+
return Stream.unwrap(Effect.logWarning("session websocket request too large; using http", {
|
|
291
|
+
sessionTransport: "websocket",
|
|
292
|
+
phase: "close",
|
|
293
|
+
delivery: "rejected",
|
|
294
|
+
code: error.reason.code
|
|
295
|
+
}).pipe(Effect.andThen(metric("fallback", { reason: "message_too_large" })), Effect.as(exchange.fallback())));
|
|
296
|
+
}));
|
|
285
297
|
const complete = Effect.sync(() => {
|
|
286
298
|
if (owner.channel !== channel || channel.pending?.token !== token)
|
|
287
299
|
return;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CredentialTable
|
|
3
|
+
} from "./state-mf0hyk7z.js";
|
|
4
|
+
import {
|
|
5
|
+
exports_bus
|
|
6
|
+
} from "./state-kxp8ef5p.js";
|
|
7
|
+
import {
|
|
8
|
+
exports_database
|
|
9
|
+
} from "./state-1z63g373.js";
|
|
10
|
+
import {
|
|
11
|
+
__export
|
|
12
|
+
} from "./state-rvfvac9x.js";
|
|
13
|
+
|
|
14
|
+
// src/credential.ts
|
|
15
|
+
var exports_credential = {};
|
|
16
|
+
__export(exports_credential, {
|
|
17
|
+
node: () => node,
|
|
18
|
+
Value: () => Value,
|
|
19
|
+
Service: () => Service,
|
|
20
|
+
OAuth: () => OAuth,
|
|
21
|
+
Key: () => Key,
|
|
22
|
+
Info: () => Info,
|
|
23
|
+
ID: () => ID,
|
|
24
|
+
Event: () => Event,
|
|
25
|
+
Credential: () => exports_credential
|
|
26
|
+
});
|
|
27
|
+
import { asc, desc, eq } from "drizzle-orm";
|
|
28
|
+
import { Context, Effect, Layer, Schema } from "effect";
|
|
29
|
+
import { Credential } from "@opencode-ai/schema/credential";
|
|
30
|
+
import { Integration } from "@opencode-ai/schema/integration";
|
|
31
|
+
import { makeGlobalNode } from "@opencode-ai/util/effect/app-node";
|
|
32
|
+
var ID = Credential.ID;
|
|
33
|
+
var OAuth = Credential.OAuth;
|
|
34
|
+
var Key = Credential.Key;
|
|
35
|
+
var Value = Credential.Value;
|
|
36
|
+
var Event = Credential.Event;
|
|
37
|
+
|
|
38
|
+
class Info extends Schema.Class("Credential.Info")({
|
|
39
|
+
id: ID,
|
|
40
|
+
integrationID: Integration.ID,
|
|
41
|
+
label: Schema.String,
|
|
42
|
+
value: Value
|
|
43
|
+
}) {
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
class Service extends Context.Service()("@opencode/Credential") {
|
|
47
|
+
}
|
|
48
|
+
var layer = Layer.effect(Service, Effect.gen(function* () {
|
|
49
|
+
const db = (yield* exports_database.Service).db;
|
|
50
|
+
const bus = yield* exports_bus.Service;
|
|
51
|
+
const decode = Schema.decodeUnknownSync(Value);
|
|
52
|
+
const stored = (row) => {
|
|
53
|
+
if (!row.integration_id)
|
|
54
|
+
return;
|
|
55
|
+
return new Info({
|
|
56
|
+
id: row.id,
|
|
57
|
+
integrationID: row.integration_id,
|
|
58
|
+
label: row.label,
|
|
59
|
+
value: decode(row.value)
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
const storedRows = (rows) => rows.flatMap((row) => {
|
|
63
|
+
const credential = stored(row);
|
|
64
|
+
return credential ? [credential] : [];
|
|
65
|
+
});
|
|
66
|
+
return Service.of({
|
|
67
|
+
all: Effect.fn("Credential.all")(() => db.select().from(CredentialTable).orderBy(asc(CredentialTable.active), asc(CredentialTable.time_created), asc(CredentialTable.id)).all().pipe(Effect.orDie, Effect.map(storedRows))),
|
|
68
|
+
list: Effect.fn("Credential.list")((integrationID) => db.select().from(CredentialTable).where(eq(CredentialTable.integration_id, integrationID)).orderBy(asc(CredentialTable.active), asc(CredentialTable.time_created), asc(CredentialTable.id)).all().pipe(Effect.orDie, Effect.map(storedRows))),
|
|
69
|
+
get: Effect.fn("Credential.get")(function* (id) {
|
|
70
|
+
const row = yield* db.select().from(CredentialTable).where(eq(CredentialTable.id, id)).get().pipe(Effect.orDie);
|
|
71
|
+
return row ? stored(row) : undefined;
|
|
72
|
+
}),
|
|
73
|
+
create: Effect.fn("Credential.create")(function* (input) {
|
|
74
|
+
const credential = new Info({
|
|
75
|
+
id: ID.create(),
|
|
76
|
+
integrationID: input.integrationID,
|
|
77
|
+
label: input.label ?? "default",
|
|
78
|
+
value: input.value
|
|
79
|
+
});
|
|
80
|
+
yield* db.transaction((tx) => Effect.gen(function* () {
|
|
81
|
+
yield* tx.update(CredentialTable).set({ active: false }).where(eq(CredentialTable.integration_id, credential.integrationID)).run();
|
|
82
|
+
yield* tx.insert(CredentialTable).values({
|
|
83
|
+
id: credential.id,
|
|
84
|
+
integration_id: credential.integrationID,
|
|
85
|
+
label: credential.label,
|
|
86
|
+
value: credential.value,
|
|
87
|
+
active: true
|
|
88
|
+
}).run();
|
|
89
|
+
})).pipe(Effect.orDie);
|
|
90
|
+
yield* bus.publish(Event.Updated, {}, { global: true });
|
|
91
|
+
yield* bus.publish(Event.Switched, { integrationID: credential.integrationID, credentialID: credential.id }, { global: true });
|
|
92
|
+
return credential;
|
|
93
|
+
}),
|
|
94
|
+
activate: Effect.fn("Credential.activate")(function* (id) {
|
|
95
|
+
const integrationID = yield* db.transaction((tx) => Effect.gen(function* () {
|
|
96
|
+
const credential = yield* tx.select().from(CredentialTable).where(eq(CredentialTable.id, id)).get();
|
|
97
|
+
if (!credential?.integration_id)
|
|
98
|
+
return;
|
|
99
|
+
const active = yield* tx.select({ id: CredentialTable.id }).from(CredentialTable).where(eq(CredentialTable.integration_id, credential.integration_id)).orderBy(desc(CredentialTable.active), desc(CredentialTable.time_created), desc(CredentialTable.id)).get();
|
|
100
|
+
if (active?.id === id)
|
|
101
|
+
return;
|
|
102
|
+
yield* tx.update(CredentialTable).set({ active: false }).where(eq(CredentialTable.integration_id, credential.integration_id)).run();
|
|
103
|
+
yield* tx.update(CredentialTable).set({ active: true }).where(eq(CredentialTable.id, id)).run();
|
|
104
|
+
return credential.integration_id;
|
|
105
|
+
})).pipe(Effect.orDie);
|
|
106
|
+
if (integrationID)
|
|
107
|
+
yield* bus.publish(Event.Switched, { integrationID, credentialID: id }, { global: true });
|
|
108
|
+
}),
|
|
109
|
+
update: Effect.fn("Credential.update")(function* (id, updates) {
|
|
110
|
+
if (updates.label === undefined && updates.value === undefined)
|
|
111
|
+
return;
|
|
112
|
+
const credential = yield* db.select({ integrationID: CredentialTable.integration_id, label: CredentialTable.label }).from(CredentialTable).where(eq(CredentialTable.id, id)).get().pipe(Effect.orDie);
|
|
113
|
+
if (!credential?.integrationID)
|
|
114
|
+
return;
|
|
115
|
+
if (updates.label === credential.label && updates.value === undefined)
|
|
116
|
+
return;
|
|
117
|
+
yield* db.update(CredentialTable).set({ label: updates.label, value: updates.value }).where(eq(CredentialTable.id, id)).run().pipe(Effect.orDie);
|
|
118
|
+
if (updates.label !== undefined && updates.label !== credential.label)
|
|
119
|
+
yield* bus.publish(Event.Updated, {}, { global: true });
|
|
120
|
+
}),
|
|
121
|
+
remove: Effect.fn("Credential.remove")(function* (id) {
|
|
122
|
+
const removed = yield* db.transaction((tx) => Effect.gen(function* () {
|
|
123
|
+
const credential = yield* tx.select().from(CredentialTable).where(eq(CredentialTable.id, id)).get();
|
|
124
|
+
if (!credential)
|
|
125
|
+
return;
|
|
126
|
+
const active = credential.integration_id ? yield* tx.select({ id: CredentialTable.id }).from(CredentialTable).where(eq(CredentialTable.integration_id, credential.integration_id)).orderBy(desc(CredentialTable.active), desc(CredentialTable.time_created), desc(CredentialTable.id)).get() : undefined;
|
|
127
|
+
yield* tx.delete(CredentialTable).where(eq(CredentialTable.id, id)).run();
|
|
128
|
+
if (!credential.integration_id || active?.id !== id)
|
|
129
|
+
return { switched: false };
|
|
130
|
+
const replacement = yield* tx.select({ id: CredentialTable.id }).from(CredentialTable).where(eq(CredentialTable.integration_id, credential.integration_id)).orderBy(desc(CredentialTable.time_created), desc(CredentialTable.id)).get();
|
|
131
|
+
if (replacement) {
|
|
132
|
+
yield* tx.update(CredentialTable).set({ active: false }).where(eq(CredentialTable.integration_id, credential.integration_id)).run();
|
|
133
|
+
yield* tx.update(CredentialTable).set({ active: true }).where(eq(CredentialTable.id, replacement.id)).run();
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
switched: true,
|
|
137
|
+
integrationID: credential.integration_id,
|
|
138
|
+
credentialID: replacement?.id ?? null
|
|
139
|
+
};
|
|
140
|
+
})).pipe(Effect.orDie);
|
|
141
|
+
if (!removed)
|
|
142
|
+
return;
|
|
143
|
+
yield* bus.publish(Event.Updated, {}, { global: true });
|
|
144
|
+
if (removed.switched)
|
|
145
|
+
yield* bus.publish(Event.Switched, { integrationID: removed.integrationID, credentialID: removed.credentialID }, { global: true });
|
|
146
|
+
})
|
|
147
|
+
});
|
|
148
|
+
}));
|
|
149
|
+
var node = makeGlobalNode({ service: Service, layer, deps: [exports_database.node, exports_bus.node] });
|
|
150
|
+
|
|
151
|
+
export { ID, OAuth, Key, Value, Event, Info, Service, node, exports_credential };
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
upgradeIfNeeded
|
|
3
|
-
} from "./state-hsyk7kfz.js";
|
|
4
1
|
import {
|
|
5
2
|
SQLiteEffectDatabase
|
|
6
|
-
} from "./state-
|
|
3
|
+
} from "./state-zaz2fh21.js";
|
|
7
4
|
import {
|
|
8
5
|
mapResultRow,
|
|
9
6
|
resolveNullableObjectPaths
|
|
@@ -13,12 +10,10 @@ import {
|
|
|
13
10
|
import * as Cause from "effect/Cause";
|
|
14
11
|
import * as Effect from "effect/Effect";
|
|
15
12
|
import { NoopCache, strategyFor } from "drizzle-orm/cache/core/cache";
|
|
16
|
-
import { MigratorInitError } from "drizzle-orm/effect-core/errors";
|
|
17
13
|
import { EffectDrizzleQueryError, EffectTransactionRollbackError } from "drizzle-orm/effect-core/errors";
|
|
18
14
|
import { entityKind, is } from "drizzle-orm/entity";
|
|
19
|
-
import { getMigrationsToRun } from "drizzle-orm/migrator.utils";
|
|
20
15
|
import { makeJitRqbMapper } from "drizzle-orm/relations";
|
|
21
|
-
import { fillPlaceholders
|
|
16
|
+
import { fillPlaceholders } from "drizzle-orm/sql/sql";
|
|
22
17
|
import { assertUnreachable, makeJitQueryMapper } from "drizzle-orm/utils";
|
|
23
18
|
class SQLiteEffectPreparedQuery {
|
|
24
19
|
executor;
|
|
@@ -229,45 +224,5 @@ class SQLiteEffectTransaction extends SQLiteEffectDatabase {
|
|
|
229
224
|
return new EffectTransactionRollbackError;
|
|
230
225
|
}
|
|
231
226
|
}
|
|
232
|
-
var migrate = Effect.fn("migrate")(function* (migrations, session, config) {
|
|
233
|
-
const migrationsTable = typeof config === "string" ? "__drizzle_migrations" : config.migrationsTable ?? "__drizzle_migrations";
|
|
234
|
-
const { newDb } = yield* upgradeIfNeeded(migrationsTable, session, migrations);
|
|
235
|
-
if (newDb) {
|
|
236
|
-
yield* session.run(sql`
|
|
237
|
-
CREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (
|
|
238
|
-
id INTEGER PRIMARY KEY,
|
|
239
|
-
hash text NOT NULL,
|
|
240
|
-
created_at numeric,
|
|
241
|
-
name text,
|
|
242
|
-
applied_at TEXT
|
|
243
|
-
)
|
|
244
|
-
`);
|
|
245
|
-
}
|
|
246
|
-
const dbMigrations = yield* session.all(sql`SELECT id, hash, created_at, name FROM ${sql.identifier(migrationsTable)}`);
|
|
247
|
-
if (typeof config === "object" && config.init) {
|
|
248
|
-
if (dbMigrations.length) {
|
|
249
|
-
return yield* new MigratorInitError({ exitCode: "databaseMigrations" });
|
|
250
|
-
}
|
|
251
|
-
if (migrations.length > 1) {
|
|
252
|
-
return yield* new MigratorInitError({ exitCode: "localMigrations" });
|
|
253
|
-
}
|
|
254
|
-
const [migration] = migrations;
|
|
255
|
-
if (!migration)
|
|
256
|
-
return;
|
|
257
|
-
yield* session.run(sql`insert into ${sql.identifier(migrationsTable)} ("hash", "created_at", "name", "applied_at") values(${migration.hash}, ${migration.folderMillis}, ${migration.name}, ${new Date().toISOString()})`);
|
|
258
|
-
return;
|
|
259
|
-
}
|
|
260
|
-
const migrationsToRun = getMigrationsToRun({ localMigrations: migrations, dbMigrations });
|
|
261
|
-
if (migrationsToRun.length === 0)
|
|
262
|
-
return;
|
|
263
|
-
yield* session.transaction((tx) => Effect.gen(function* () {
|
|
264
|
-
for (const migration of migrationsToRun) {
|
|
265
|
-
for (const stmt of migration.sql) {
|
|
266
|
-
yield* tx.run(sql.raw(stmt));
|
|
267
|
-
}
|
|
268
|
-
yield* tx.run(sql`insert into ${sql.identifier(migrationsTable)} ("hash", "created_at", "name", "applied_at") values(${migration.hash}, ${migration.folderMillis}, ${migration.name}, ${new Date().toISOString()})`);
|
|
269
|
-
}
|
|
270
|
-
}));
|
|
271
|
-
});
|
|
272
227
|
|
|
273
|
-
export { SQLiteEffectPreparedQuery, SQLiteEffectSession, SQLiteEffectTransaction
|
|
228
|
+
export { SQLiteEffectPreparedQuery, SQLiteEffectSession, SQLiteEffectTransaction };
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
} from "./state-kp1t5rcy.js";
|
|
4
4
|
import {
|
|
5
5
|
exports_config
|
|
6
|
-
} from "./state-
|
|
6
|
+
} from "./state-b17xd5mf.js";
|
|
7
7
|
import {
|
|
8
8
|
exports_select
|
|
9
|
-
} from "./state-
|
|
9
|
+
} from "./state-a8bn7nwa.js";
|
|
10
10
|
import {
|
|
11
11
|
__export
|
|
12
12
|
} from "./state-rvfvac9x.js";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
openaiFailedResponseHandler
|
|
3
|
-
} from "./state-r8f4w671.js";
|
|
4
1
|
import {
|
|
5
2
|
prepareResponsesTools
|
|
6
|
-
} from "./state-
|
|
3
|
+
} from "./state-qzaqf2fn.js";
|
|
7
4
|
import {
|
|
8
5
|
mapOpenAIResponseFinishReason
|
|
9
6
|
} from "./state-m8cbvarh.js";
|
|
10
7
|
import {
|
|
11
8
|
convertToOpenAIResponsesInput
|
|
12
9
|
} from "./state-kcacmy5c.js";
|
|
10
|
+
import {
|
|
11
|
+
openaiFailedResponseHandler
|
|
12
|
+
} from "./state-r8f4w671.js";
|
|
13
13
|
|
|
14
14
|
// src/github-copilot/responses/openai-responses-language-model.ts
|
|
15
15
|
import {
|