@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.
Files changed (380) hide show
  1. package/dist/agent.js +49 -53
  2. package/dist/aisdk-native.js +2 -2
  3. package/dist/aisdk.js +2 -2
  4. package/dist/bus.js +48 -52
  5. package/dist/catalog.js +54 -58
  6. package/dist/chunks/{state-qasbckzx.js → state-05wd10c5.js} +80 -80
  7. package/dist/chunks/{state-h9sy0va2.js → state-08sn05f7.js} +5 -5
  8. package/dist/chunks/{state-fvnc3e3d.js → state-0n5r8s68.js} +5 -5
  9. package/dist/chunks/{state-vvmq9xvn.js → state-0qdyn92p.js} +11 -11
  10. package/dist/chunks/{state-0r6r61g5.js → state-0rqcx54b.js} +1 -1
  11. package/dist/chunks/{state-3d1t6jqf.js → state-11jmdqxk.js} +2 -2
  12. package/dist/chunks/{state-hk8vx4ga.js → state-13bb7frp.js} +4 -4
  13. package/dist/chunks/{state-fxw49t4p.js → state-14n6xd2t.js} +1 -1
  14. package/dist/chunks/{state-5vpdk7xd.js → state-1dxwhedr.js} +3 -3
  15. package/dist/chunks/{state-en9qv3ee.js → state-1eyrk6kn.js} +2 -2
  16. package/dist/chunks/{state-efvmw2xw.js → state-1jg449r0.js} +1 -1
  17. package/dist/chunks/{state-6x98y149.js → state-1k8hd2s1.js} +1 -1
  18. package/dist/chunks/{state-x07gtesk.js → state-1z63g373.js} +2 -2
  19. package/dist/chunks/{state-wzvy0tx9.js → state-21cqa2vh.js} +3 -3
  20. package/dist/chunks/{state-xm8j1t5h.js → state-25g1tcbn.js} +2 -2
  21. package/dist/chunks/{state-rs9n91g6.js → state-2667yp75.js} +2 -6
  22. package/dist/chunks/{state-fkg79ekq.js → state-27mgx7wm.js} +8 -8
  23. package/dist/chunks/{state-mc1mz2pc.js → state-2q2hjh4d.js} +2 -2
  24. package/dist/chunks/{state-6yt963b8.js → state-2xb0r1c6.js} +3 -1
  25. package/dist/chunks/{state-gwpydf4a.js → state-2zjhyv5q.js} +1 -1
  26. package/dist/chunks/{state-e0wkpsf3.js → state-369rn14b.js} +4 -4
  27. package/dist/chunks/{state-5tehh5r2.js → state-3bgrn618.js} +10 -10
  28. package/dist/chunks/{state-y643ex83.js → state-3hnnvm1k.js} +2 -2
  29. package/dist/chunks/{state-g1zg5aqr.js → state-3j8hmcr0.js} +3 -3
  30. package/dist/chunks/{state-5gas9jc2.js → state-3kdskcc3.js} +4 -4
  31. package/dist/chunks/{state-myychbwq.js → state-3n6fpmg4.js} +2 -2
  32. package/dist/chunks/{state-6a16bmez.js → state-3ng63sbq.js} +3 -3
  33. package/dist/chunks/{state-1a3a2s70.js → state-3zyjx98r.js} +1 -1
  34. package/dist/chunks/{state-njywpcye.js → state-453w8ra4.js} +6 -6
  35. package/dist/chunks/{state-14wbm4hn.js → state-4cxzzthm.js} +3 -3
  36. package/dist/chunks/{state-3mexq3pq.js → state-4fa10fyv.js} +13 -13
  37. package/dist/chunks/{state-eaejza2t.js → state-4m26jex0.js} +1 -1
  38. package/dist/chunks/{state-5cj22h72.js → state-4p1mqhwg.js} +153 -153
  39. package/dist/chunks/{state-xz479kyk.js → state-4wqm8gvz.js} +4 -13
  40. package/dist/chunks/{state-rn9r0ddn.js → state-5dwqq0br.js} +13 -1
  41. package/dist/chunks/{state-qe0aav6y.js → state-5ew1nkwg.js} +7 -7
  42. package/dist/chunks/{state-dhccyx0v.js → state-5qgmwqxx.js} +1 -1
  43. package/dist/chunks/{state-ayfpp7hf.js → state-61ba6bgr.js} +24 -28
  44. package/dist/chunks/{state-tj4jvx23.js → state-6m78tbrd.js} +5 -5
  45. package/dist/chunks/{state-4g5pgmex.js → state-6mtxg7ec.js} +11 -11
  46. package/dist/chunks/{state-bh50qah0.js → state-6xtnn7py.js} +4 -4
  47. package/dist/chunks/{state-e1pa6vc2.js → state-6zbf46dw.js} +9 -9
  48. package/dist/chunks/{state-2r1bah04.js → state-6zrz2gj9.js} +5 -5
  49. package/dist/chunks/{state-bdhgfttt.js → state-7rn7c1wb.js} +10 -10
  50. package/dist/chunks/{state-jfgv8vsa.js → state-81mmkvpk.js} +11 -11
  51. package/dist/chunks/{state-z88k6s2w.js → state-8en9tkxq.js} +15 -3
  52. package/dist/chunks/{state-0dqphqhz.js → state-8hedmdhf.js} +2 -2
  53. package/dist/chunks/{state-te0cypm2.js → state-8mcwjqk5.js} +6 -6
  54. package/dist/chunks/{state-fwsc80k7.js → state-8nxrj4pj.js} +1 -1
  55. package/dist/chunks/{state-625h1wqn.js → state-91frc5mm.js} +4 -4
  56. package/dist/chunks/{state-qv06sb3r.js → state-9g8h1q3a.js} +1 -1
  57. package/dist/chunks/{state-9p8mhgdp.js → state-9p22jmaw.js} +1 -1
  58. package/dist/chunks/{state-3gsv1x0v.js → state-9tbj2q0z.js} +3 -13
  59. package/dist/chunks/{state-cb46h7pc.js → state-9y48xc9h.js} +3 -3
  60. package/dist/chunks/{state-7g3ydvzh.js → state-a1p868km.js} +4 -4
  61. package/dist/chunks/{state-kdn1ck8k.js → state-a4f6ct0f.js} +2 -2
  62. package/dist/chunks/{state-63gtrn1b.js → state-a600x74j.js} +1 -1
  63. package/dist/chunks/{state-hhfaz00h.js → state-a9dsqgp1.js} +1 -2
  64. package/dist/chunks/{state-2ya5073c.js → state-aaxez5kq.js} +1 -1
  65. package/dist/chunks/{state-8a9e14vy.js → state-adsxqz7v.js} +3 -3
  66. package/dist/chunks/{state-38jwdxby.js → state-asfw3td4.js} +1 -1
  67. package/dist/chunks/{state-effdwybp.js → state-b17xd5mf.js} +9 -10
  68. package/dist/chunks/{state-qtaajmpt.js → state-b4htb9ej.js} +1 -1
  69. package/dist/chunks/{state-1fqmpy8k.js → state-b64x4rkh.js} +35 -35
  70. package/dist/chunks/{state-d7y00n83.js → state-bc330n33.js} +27 -16
  71. package/dist/chunks/{state-esjk7kfz.js → state-be0semnx.js} +7 -7
  72. package/dist/chunks/{state-jm68rb0q.js → state-bkk1b4ms.js} +6 -6
  73. package/dist/chunks/{state-tjjf1q77.js → state-bmd659vv.js} +1 -1
  74. package/dist/chunks/{state-8mftgzpj.js → state-bnttfg6s.js} +1 -1
  75. package/dist/chunks/{state-qjnrmq1k.js → state-cc76sxm0.js} +4 -4
  76. package/dist/chunks/{state-yfq2zvb9.js → state-ck58sp58.js} +1 -1
  77. package/dist/chunks/{state-568e76aa.js → state-ckq2jga8.js} +3 -3
  78. package/dist/chunks/{state-4j7te1s0.js → state-d4ax61k3.js} +15 -3
  79. package/dist/chunks/{state-5xrsrne4.js → state-dvt8wt6j.js} +2 -2
  80. package/dist/chunks/state-e3fd12s5.js +151 -0
  81. package/dist/chunks/{state-8tw3qzpt.js → state-e4xwk5z4.js} +2 -2
  82. package/dist/chunks/{state-78y9e82n.js → state-e8nbj9tw.js} +3 -48
  83. package/dist/chunks/{state-5mntg4nb.js → state-e97zy5jx.js} +2 -2
  84. package/dist/chunks/{state-8gp1tmat.js → state-e9yzz6kb.js} +1 -1
  85. package/dist/chunks/{state-tpwp4gvc.js → state-eax51wg3.js} +4 -4
  86. package/dist/chunks/{state-tt8fjeh9.js → state-eekpgcpd.js} +62 -70
  87. package/dist/chunks/{state-bkw9e9jk.js → state-emksydcf.js} +26 -26
  88. package/dist/chunks/{state-xjn4tcwe.js → state-eq06mre2.js} +2 -2
  89. package/dist/chunks/{state-1g0dcjrg.js → state-eqzrzvwz.js} +2 -2
  90. package/dist/chunks/{state-qajwj4ps.js → state-fbnbqahk.js} +3 -3
  91. package/dist/chunks/{state-cwzmv738.js → state-fj104twx.js} +1 -1
  92. package/dist/chunks/{state-g7t6p8r2.js → state-fsqnkees.js} +1 -1
  93. package/dist/chunks/{state-hhxt27np.js → state-fyegnnfc.js} +1 -1
  94. package/dist/chunks/{state-5zayf0x8.js → state-g0aw0gzh.js} +66 -57
  95. package/dist/chunks/{state-yb8yd193.js → state-gbxfsqwm.js} +2 -2
  96. package/dist/chunks/{state-d19eexxk.js → state-gyrwtw78.js} +1 -1
  97. package/dist/chunks/{state-982wwmdk.js → state-h2t3q2wm.js} +1 -1
  98. package/dist/chunks/{state-59d95h76.js → state-h3y01asp.js} +12 -9
  99. package/dist/chunks/{state-jf35ek5b.js → state-h846wrk2.js} +1 -0
  100. package/dist/chunks/{state-djkt4gex.js → state-hhajr42d.js} +3 -0
  101. package/dist/chunks/{state-dgfy6zt2.js → state-jabxf61s.js} +5 -5
  102. package/dist/chunks/{state-cqdxefk2.js → state-jgvtg6c9.js} +40 -14
  103. package/dist/chunks/{state-7qqad34w.js → state-jkjzgk2k.js} +8 -8
  104. package/dist/chunks/{state-rmr740y4.js → state-jsm51fhb.js} +9 -9
  105. package/dist/chunks/{state-qh4vq1fm.js → state-jxwvj0fm.js} +8 -8
  106. package/dist/chunks/{state-6msxydxg.js → state-k6ybxbw4.js} +9 -9
  107. package/dist/chunks/{state-ftfyk4m7.js → state-kag74pk5.js} +2 -2
  108. package/dist/chunks/{state-t0tt4nmt.js → state-kb33ew3e.js} +8 -8
  109. package/dist/chunks/{state-4ce5qhvd.js → state-kxp8ef5p.js} +5 -5
  110. package/dist/chunks/{state-2zf7hxjt.js → state-m0ebj05k.js} +13 -2
  111. package/dist/chunks/{state-bcvcrp33.js → state-mjgqapyb.js} +2 -2
  112. package/dist/chunks/{state-va5k7fad.js → state-mr28yfk1.js} +27 -7
  113. package/dist/chunks/{state-wcc1vz83.js → state-mwymssey.js} +42 -42
  114. package/dist/chunks/{state-gg8gy1ab.js → state-n1x4rjqh.js} +2 -2
  115. package/dist/chunks/{state-e2qdw0tg.js → state-n5fzcn0n.js} +5 -5
  116. package/dist/chunks/{state-3zqgma8g.js → state-na8etft7.js} +2 -2
  117. package/dist/chunks/{state-h094egad.js → state-nfhhzyc6.js} +4 -4
  118. package/dist/chunks/{state-y966n2ac.js → state-njsznp42.js} +10 -10
  119. package/dist/chunks/{state-nzexh2ja.js → state-nrbk1kjp.js} +87 -87
  120. package/dist/chunks/{state-rgk6q7se.js → state-ntvdej23.js} +1 -1
  121. package/dist/chunks/{state-rph6nvyf.js → state-p1c6e6m1.js} +26 -26
  122. package/dist/chunks/{state-dr1mvjy7.js → state-p3twfje4.js} +3 -3
  123. package/dist/chunks/{state-epzxjdf4.js → state-p7764ja1.js} +2 -2
  124. package/dist/chunks/{state-2zyrrrhx.js → state-pewx9f2e.js} +3 -3
  125. package/dist/chunks/{state-vz30fbtb.js → state-pspf2xyp.js} +3 -3
  126. package/dist/chunks/{state-4gksgcvv.js → state-q22rp0t0.js} +14 -14
  127. package/dist/chunks/{state-cve546b2.js → state-q7kk6b5b.js} +1 -1
  128. package/dist/chunks/{state-1427k8mt.js → state-qe7xhz7y.js} +2 -2
  129. package/dist/chunks/{state-e9jfq0e9.js → state-rpqdmjwk.js} +1 -1
  130. package/dist/chunks/{state-993n0k7x.js → state-s57t7xkg.js} +1 -1
  131. package/dist/chunks/{state-wyhq3myq.js → state-ss47qkgm.js} +3 -3
  132. package/dist/chunks/{state-fdx44h11.js → state-syqxsax9.js} +1 -1
  133. package/dist/chunks/{state-9wqc5k0a.js → state-sz0e55kk.js} +4 -4
  134. package/dist/chunks/{state-0b13gwpq.js → state-t0m69jt4.js} +4 -4
  135. package/dist/chunks/{state-shhqc982.js → state-t7gaqyw5.js} +15 -15
  136. package/dist/chunks/{state-c9eyxdsa.js → state-tawttwre.js} +9 -9
  137. package/dist/chunks/{state-5m91ayta.js → state-v1g0nhk2.js} +1 -1
  138. package/dist/chunks/{state-7svew3xx.js → state-v4sgqzfn.js} +5 -5
  139. package/dist/chunks/{state-fypnrcda.js → state-vh3jgmz8.js} +6 -6
  140. package/dist/chunks/{state-6dpj79be.js → state-vs2j5dte.js} +2 -2
  141. package/dist/chunks/{state-qsh6aavw.js → state-w5aydxy7.js} +3 -3
  142. package/dist/chunks/{state-20hhthrk.js → state-w946z2q4.js} +4 -4
  143. package/dist/chunks/{state-1jaejmkb.js → state-wgfqc61v.js} +2 -2
  144. package/dist/chunks/{state-eq90zxhy.js → state-x9z4espg.js} +3 -3
  145. package/dist/chunks/{state-c9tk9ghs.js → state-xfry7hk8.js} +1 -1
  146. package/dist/chunks/{state-j5tp9x2q.js → state-y2q46fcs.js} +10 -10
  147. package/dist/chunks/{state-c09ww48j.js → state-y5as78a2.js} +1 -1
  148. package/dist/chunks/{state-zbjdaqcp.js → state-yah8vtgx.js} +4 -4
  149. package/dist/chunks/{state-fywp5vae.js → state-yv2xx3v3.js} +3 -3
  150. package/dist/chunks/{state-zrbk8s17.js → state-yx107q08.js} +9 -9
  151. package/dist/chunks/{state-crg4yysy.js → state-yxz07vzv.js} +1 -1
  152. package/dist/chunks/{state-0vgt3zn6.js → state-z6xdhe6c.js} +1 -1
  153. package/dist/chunks/{state-kb2qf3qs.js → state-zh7kq3j8.js} +3 -3
  154. package/dist/chunks/{state-77cj1yb3.js → state-zma7gfkw.js} +4 -4
  155. package/dist/chunks/{state-s4ame7nd.js → state-zmtjwfap.js} +4 -4
  156. package/dist/chunks/{state-hk8exvw2.js → state-zv8psbr7.js} +2 -2
  157. package/dist/command.js +49 -53
  158. package/dist/config/normalize.js +12 -12
  159. package/dist/config/plugin/agent.js +82 -86
  160. package/dist/config/plugin/command.js +71 -75
  161. package/dist/config/plugin/compaction.js +110 -114
  162. package/dist/config/plugin/entry-observer.js +68 -72
  163. package/dist/config/plugin/formatter.js +71 -75
  164. package/dist/config/plugin/image.js +79 -83
  165. package/dist/config/plugin/instruction.js +54 -58
  166. package/dist/config/plugin/location-watcher.js +70 -74
  167. package/dist/config/plugin/mcp.js +78 -82
  168. package/dist/config/plugin/policy.js +70 -74
  169. package/dist/config/plugin/provider.js +69 -73
  170. package/dist/config/plugin/reference.js +73 -77
  171. package/dist/config/plugin/shell.js +71 -75
  172. package/dist/config/plugin/skill-file.js +67 -71
  173. package/dist/config/plugin/skill.js +84 -88
  174. package/dist/config/plugin/snapshot.js +71 -75
  175. package/dist/config/plugin/source.js +69 -73
  176. package/dist/config/plugin/tool-output.js +72 -76
  177. package/dist/config/plugin/websearch.js +69 -73
  178. package/dist/config.js +68 -72
  179. package/dist/credential.js +52 -51
  180. package/dist/database/database.js +46 -50
  181. package/dist/database/drizzle/effect-sqlite/driver.js +8 -11
  182. package/dist/database/drizzle/effect-sqlite/index.js +8 -11
  183. package/dist/database/drizzle/effect-sqlite/session.js +7 -10
  184. package/dist/database/drizzle/index.js +9 -16
  185. package/dist/database/drizzle/sqlite-core/effect/db.js +5 -5
  186. package/dist/database/drizzle/sqlite-core/effect/index.js +16 -21
  187. package/dist/database/drizzle/sqlite-core/effect/session.js +7 -12
  188. package/dist/database/drizzle.js +9 -16
  189. package/dist/database/migration/20260410174513_workspace-name.js +1 -1
  190. package/dist/database/migration.gen.js +35 -35
  191. package/dist/database/migration.js +36 -36
  192. package/dist/database/v1-migration.bun.js +52 -56
  193. package/dist/effect/app-node-builder.js +254 -260
  194. package/dist/environment/environment.js +55 -59
  195. package/dist/environment/index.js +57 -61
  196. package/dist/event-logger.js +48 -52
  197. package/dist/file-mutation.js +56 -60
  198. package/dist/filesystem/location-watcher.js +237 -243
  199. package/dist/filesystem/search.js +58 -62
  200. package/dist/filesystem.js +58 -62
  201. package/dist/form.js +49 -53
  202. package/dist/formatter.js +53 -57
  203. package/dist/generate.js +58 -62
  204. package/dist/github-copilot/chat/openai-compatible-chat-language-model.js +3 -3
  205. package/dist/github-copilot/copilot-provider.js +8 -8
  206. package/dist/github-copilot/models.js +3 -3
  207. package/dist/github-copilot/responses/openai-responses-language-model.js +4 -4
  208. package/dist/github-copilot/responses/openai-responses-prepare-tools.js +2 -2
  209. package/dist/image/photon.js +60 -64
  210. package/dist/image.js +60 -64
  211. package/dist/instruction-discovery.js +50 -54
  212. package/dist/instructions/builtins.js +53 -57
  213. package/dist/integration.js +51 -55
  214. package/dist/job.js +1 -1
  215. package/dist/kv.js +47 -51
  216. package/dist/location-activity.js +51 -55
  217. package/dist/location-mutation.js +52 -56
  218. package/dist/location-service-map.js +51 -55
  219. package/dist/location-services.js +254 -260
  220. package/dist/location.js +51 -55
  221. package/dist/mcp/client.js +56 -60
  222. package/dist/mcp/index.js +62 -66
  223. package/dist/mcp/instructions.js +83 -87
  224. package/dist/mcp/stdio.js +56 -60
  225. package/dist/model-resolver.js +57 -61
  226. package/dist/model.js +2 -2
  227. package/dist/models-dev.js +52 -56
  228. package/dist/permission/saved.js +51 -55
  229. package/dist/permission/sql.js +1 -1
  230. package/dist/permission.js +65 -69
  231. package/dist/persistent-pty/index.js +49 -53
  232. package/dist/persistent-pty.js +49 -53
  233. package/dist/plugin/agent.js +66 -70
  234. package/dist/plugin/command.js +63 -67
  235. package/dist/plugin/host.js +117 -121
  236. package/dist/plugin/internal.js +229 -235
  237. package/dist/plugin/models-dev.js +53 -57
  238. package/dist/plugin/plan.js +66 -70
  239. package/dist/plugin/provider/amazon-bedrock.js +2 -2
  240. package/dist/plugin/provider/anthropic.js +2 -2
  241. package/dist/plugin/provider/azure.js +75 -79
  242. package/dist/plugin/provider/cerebras.js +2 -2
  243. package/dist/plugin/provider/cloudflare-ai-gateway.js +76 -80
  244. package/dist/plugin/provider/cloudflare-workers-ai.js +76 -80
  245. package/dist/plugin/provider/configured.js +74 -78
  246. package/dist/plugin/provider/github-copilot.js +57 -61
  247. package/dist/plugin/provider/gitlab.js +2 -2
  248. package/dist/plugin/provider/google-vertex.js +2 -2
  249. package/dist/plugin/provider/kilo.js +2 -2
  250. package/dist/plugin/provider/llmgateway.js +53 -57
  251. package/dist/plugin/provider/lmstudio.js +69 -73
  252. package/dist/plugin/provider/nvidia.js +2 -2
  253. package/dist/plugin/provider/ollama.js +69 -73
  254. package/dist/plugin/provider/openai.js +53 -57
  255. package/dist/plugin/provider/opencode.js +63 -67
  256. package/dist/plugin/provider/openrouter.js +3 -3
  257. package/dist/plugin/provider/sap-ai-core.js +2 -2
  258. package/dist/plugin/provider/snowflake-cortex.js +2 -2
  259. package/dist/plugin/provider/vercel.js +2 -2
  260. package/dist/plugin/provider/vllm.js +69 -73
  261. package/dist/plugin/provider/xai.js +53 -57
  262. package/dist/plugin/provider/zenmux.js +2 -2
  263. package/dist/plugin/provider.js +108 -114
  264. package/dist/plugin/runtime.js +103 -107
  265. package/dist/plugin/sdk.js +49 -53
  266. package/dist/plugin/skill.js +84 -88
  267. package/dist/plugin/supervisor.js +238 -244
  268. package/dist/plugin/variant.js +3 -3
  269. package/dist/plugin/vcs/git.js +52 -56
  270. package/dist/plugin/vcs/hg.js +52 -56
  271. package/dist/plugin/warming.js +70 -74
  272. package/dist/plugin/websearch/index.js +4 -4
  273. package/dist/plugin.js +118 -122
  274. package/dist/project/sql.js +1 -1
  275. package/dist/project.js +50 -54
  276. package/dist/provider.js +1 -1
  277. package/dist/pty/ticket.js +48 -52
  278. package/dist/pty.js +54 -58
  279. package/dist/reference/instructions.js +52 -56
  280. package/dist/reference.js +50 -54
  281. package/dist/ripgrep.js +57 -61
  282. package/dist/session/compaction.js +94 -98
  283. package/dist/session/context.js +242 -248
  284. package/dist/session/execution/restart.js +79 -83
  285. package/dist/session/execution.js +79 -83
  286. package/dist/session/generate-node.js +243 -249
  287. package/dist/session/history.js +50 -54
  288. package/dist/session/inbox.js +50 -54
  289. package/dist/session/info.js +58 -62
  290. package/dist/session/instruction-entry.js +49 -53
  291. package/dist/session/instruction-state.js +2 -2
  292. package/dist/session/instructions.js +62 -66
  293. package/dist/session/model-request.js +91 -95
  294. package/dist/session/model-transport.js +1 -1
  295. package/dist/session/projector.js +57 -61
  296. package/dist/session/revert.js +55 -59
  297. package/dist/session/runner/index.js +59 -63
  298. package/dist/session/runner/llm.js +246 -252
  299. package/dist/session/runner/model.js +59 -63
  300. package/dist/session/runner/retry.js +48 -52
  301. package/dist/session/runner/to-llm-message.js +1 -1
  302. package/dist/session/sql.js +1 -1
  303. package/dist/session/stats.js +47 -51
  304. package/dist/session/store.js +61 -65
  305. package/dist/session/title.js +92 -96
  306. package/dist/session/to-session-error.js +76 -80
  307. package/dist/session/transfer.js +102 -105
  308. package/dist/session.js +105 -109
  309. package/dist/shell/parse.js +3 -3
  310. package/dist/shell/select.js +2 -2
  311. package/dist/shell.js +61 -65
  312. package/dist/skill/instructions.js +67 -71
  313. package/dist/skill.js +68 -70
  314. package/dist/snapshot.js +53 -57
  315. package/dist/tool/mcp.js +82 -86
  316. package/dist/tool/plugin/edit.js +72 -76
  317. package/dist/tool/plugin/glob.js +74 -78
  318. package/dist/tool/plugin/grep.js +74 -78
  319. package/dist/tool/plugin/patch.js +72 -76
  320. package/dist/tool/plugin/question.js +67 -71
  321. package/dist/tool/plugin/read.js +76 -80
  322. package/dist/tool/plugin/shell.js +122 -126
  323. package/dist/tool/plugin/skill.js +67 -71
  324. package/dist/tool/plugin/subagent.js +119 -123
  325. package/dist/tool/plugin/webfetch.js +67 -71
  326. package/dist/tool/plugin/websearch.js +70 -74
  327. package/dist/tool/plugin/write.js +72 -76
  328. package/dist/tool/read-filesystem.js +59 -63
  329. package/dist/tool.js +75 -79
  330. package/dist/types/bus.d.ts +1 -0
  331. package/dist/types/credential.d.ts +156 -1
  332. package/dist/types/database/drizzle/index.d.ts +0 -1
  333. package/dist/types/database/drizzle/sqlite-core/effect/session.d.ts +0 -6
  334. package/dist/types/database/migration.d.ts +2 -2
  335. package/dist/types/integration.d.ts +4 -0
  336. package/dist/types/model.d.ts +3 -0
  337. package/dist/types/session/compaction.d.ts +1 -0
  338. package/dist/types/session/history.d.ts +5 -0
  339. package/dist/types/session/inbox.d.ts +5 -0
  340. package/dist/types/session/transfer.d.ts +2 -0
  341. package/dist/types/skill.d.ts +6 -0
  342. package/dist/types/v1/config/migrate.d.ts +1 -0
  343. package/dist/types/worktree.d.ts +20 -0
  344. package/dist/v1/config/config.js +7 -7
  345. package/dist/v1/config/migrate.js +11 -11
  346. package/dist/vcs.js +53 -57
  347. package/dist/websearch.js +50 -54
  348. package/dist/wellknown/plugin.js +51 -55
  349. package/dist/wellknown.js +50 -54
  350. package/dist/workspace.js +48 -52
  351. package/dist/worktree/sql.js +1 -1
  352. package/dist/worktree.js +52 -56
  353. package/package.json +8 -11
  354. package/dist/chunks/state-4pxf671z.js +0 -97
  355. package/dist/chunks/state-4zg0gww9.js +0 -55
  356. package/dist/chunks/state-f84sxdqn.js +0 -49
  357. package/dist/chunks/state-hsyk7kfz.js +0 -56
  358. package/dist/chunks/state-jssy2dr3.js +0 -18
  359. package/dist/chunks/state-pfqehjmy.js +0 -18
  360. package/dist/chunks/state-qqevkq7v.js +0 -12
  361. package/dist/database/drizzle/effect-sqlite/migrator.js +0 -20
  362. package/dist/database/drizzle/up-migrations/effect-sqlite.js +0 -9
  363. package/dist/database/drizzle/up-migrations/sqlite.js +0 -9
  364. package/dist/database/drizzle/up-migrations/utils.js +0 -9
  365. package/dist/plugin/provider/deepinfra.js +0 -8
  366. package/dist/plugin/provider/togetherai.js +0 -8
  367. package/dist/types/database/drizzle/effect-sqlite/migrator.d.ts +0 -4
  368. package/dist/types/database/drizzle/up-migrations/effect-sqlite.d.ts +0 -8
  369. package/dist/types/database/drizzle/up-migrations/sqlite.d.ts +0 -26
  370. package/dist/types/database/drizzle/up-migrations/utils.d.ts +0 -21
  371. package/dist/types/plugin/provider/deepinfra.d.ts +0 -1
  372. package/dist/types/plugin/provider/togetherai.d.ts +0 -1
  373. package/dist/chunks/{state-wrw92r0k.js → state-6embh6xw.js} +3 -3
  374. package/dist/chunks/{state-p1xvm7za.js → state-a8bn7nwa.js} +3 -3
  375. package/dist/chunks/{state-wvjbjymc.js → state-dnt65mkc.js} +0 -0
  376. package/dist/chunks/{state-shg9btfn.js → state-kfxvy8fx.js} +6 -6
  377. package/dist/chunks/{state-sh61temt.js → state-ky29wa5d.js} +17 -17
  378. package/dist/chunks/{state-rrc4sky2.js → state-qzaqf2fn.js} +3 -3
  379. package/dist/chunks/{state-7fr2g77j.js → state-xd2p33y8.js} +7 -7
  380. 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-wcc1vz83.js";
3
+ } from "./state-mwymssey.js";
4
4
  import {
5
5
  exports_runtime
6
- } from "./state-fkg79ekq.js";
6
+ } from "./state-27mgx7wm.js";
7
7
  import {
8
8
  exports_mcp
9
- } from "./state-shhqc982.js";
9
+ } from "./state-t7gaqyw5.js";
10
10
  import {
11
- exports_reference
12
- } from "./state-625h1wqn.js";
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
- exports_generate
24
- } from "./state-c09ww48j.js";
14
+ exports_vcs
15
+ } from "./state-nfhhzyc6.js";
25
16
  import {
26
17
  exports_tool
27
- } from "./state-e9jfq0e9.js";
18
+ } from "./state-rpqdmjwk.js";
28
19
  import {
29
- exports_permission
30
- } from "./state-rmr740y4.js";
20
+ exports_command
21
+ } from "./state-bnttfg6s.js";
31
22
  import {
32
- exports_hooks
33
- } from "./state-v2wshkax.js";
23
+ exports_reference
24
+ } from "./state-91frc5mm.js";
34
25
  import {
35
- exports_agent
36
- } from "./state-gwpydf4a.js";
26
+ exports_app
27
+ } from "./state-50jxp3hw.js";
37
28
  import {
38
- exports_websearch
39
- } from "./state-ftfyk4m7.js";
29
+ exports_skill
30
+ } from "./state-8en9tkxq.js";
40
31
  import {
41
32
  exports_kv
42
- } from "./state-993n0k7x.js";
33
+ } from "./state-s57t7xkg.js";
43
34
  import {
44
- exports_vcs
45
- } from "./state-h094egad.js";
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-jm68rb0q.js";
39
+ } from "./state-bkk1b4ms.js";
52
40
  import {
53
41
  exports_integration
54
- } from "./state-ayfpp7hf.js";
42
+ } from "./state-61ba6bgr.js";
55
43
  import {
56
44
  exports_aisdk
57
- } from "./state-2zf7hxjt.js";
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-4ce5qhvd.js";
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-gwpydf4a.js";
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-cb46h7pc.js";
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-4ce5qhvd.js";
45
+ } from "./state-kxp8ef5p.js";
43
46
  import {
44
47
  exports_database
45
- } from "./state-x07gtesk.js";
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 stale = [event.data.previous, Project.ID.global].filter((id) => id !== event.data.projectID);
304
- if (stale.length === 0)
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({ id: SessionTable.id, directory: SessionTable.directory }).from(SessionTable).where(and(inArray(SessionTable.project_id, stale), gte(SessionTable.directory, event.data.directory), lte(SessionTable.directory, AbsolutePath.make(event.data.directory + "￿")))).all().pipe(Effect.orDie);
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
- if (!FSUtil.contains(event.data.directory, row.directory))
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, row.directory).replaceAll("\\", "/")),
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-sh61temt.js";
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-ayfpp7hf.js";
9
+ } from "./state-61ba6bgr.js";
10
10
  import {
11
11
  exports_credential
12
- } from "./state-4pxf671z.js";
12
+ } from "./state-e3fd12s5.js";
13
13
  import {
14
14
  exports_model
15
- } from "./state-1a3a2s70.js";
15
+ } from "./state-3zyjx98r.js";
16
16
  import {
17
17
  exports_provider
18
- } from "./state-djkt4gex.js";
18
+ } from "./state-hhajr42d.js";
19
19
  import {
20
20
  exports_bus
21
- } from "./state-4ce5qhvd.js";
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(exports_integration.Event.ConnectionUpdated).pipe(Stream.filter((event) => event.data.integrationID === exports_integration.ID.make("opencode")), Stream.runForEach(refresh), Effect.forkScoped({ startImmediately: true }));
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-ayfpp7hf.js";
3
+ } from "./state-61ba6bgr.js";
4
4
  import {
5
5
  exports_model
6
- } from "./state-1a3a2s70.js";
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-4ce5qhvd.js";
15
+ } from "./state-kxp8ef5p.js";
16
16
  import {
17
17
  __export
18
18
  } from "./state-rvfvac9x.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  exports_provider
3
- } from "./state-djkt4gex.js";
3
+ } from "./state-hhajr42d.js";
4
4
 
5
5
  // src/plugin/provider/nvidia.ts
6
6
  import { Effect } from "effect";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./state-qhdqjp31.js";
4
4
  import {
5
5
  exports_bus
6
- } from "./state-4ce5qhvd.js";
6
+ } from "./state-kxp8ef5p.js";
7
7
  import {
8
8
  __export
9
9
  } 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-djkt4gex.js";
12
+ } from "./state-hhajr42d.js";
13
13
  import {
14
14
  __require
15
15
  } from "./state-rvfvac9x.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./state-vz89hfgr.js";
8
8
  import {
9
9
  exports_location
10
- } from "./state-efvmw2xw.js";
10
+ } from "./state-1jg449r0.js";
11
11
  import {
12
12
  __export
13
13
  } from "./state-rvfvac9x.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  exports_mcp as exports_mcp2
3
- } from "./state-hk8vx4ga.js";
3
+ } from "./state-13bb7frp.js";
4
4
  import {
5
5
  exports_mcp
6
- } from "./state-shhqc982.js";
6
+ } from "./state-t7gaqyw5.js";
7
7
  import {
8
8
  exports_permission
9
- } from "./state-rmr740y4.js";
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;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  exports_model
3
- } from "./state-1a3a2s70.js";
3
+ } from "./state-3zyjx98r.js";
4
4
  import {
5
5
  exports_provider
6
- } from "./state-djkt4gex.js";
6
+ } from "./state-hhajr42d.js";
7
7
  import {
8
8
  __export
9
9
  } from "./state-rvfvac9x.js";
@@ -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,9 @@
1
1
  import {
2
2
  exports_kv
3
- } from "./state-993n0k7x.js";
3
+ } from "./state-s57t7xkg.js";
4
4
  import {
5
5
  exports_bus
6
- } from "./state-4ce5qhvd.js";
6
+ } from "./state-kxp8ef5p.js";
7
7
  import {
8
8
  __export
9
9
  } from "./state-rvfvac9x.js";
@@ -1,9 +1,6 @@
1
- import {
2
- upgradeIfNeeded
3
- } from "./state-hsyk7kfz.js";
4
1
  import {
5
2
  SQLiteEffectDatabase
6
- } from "./state-46qzmhmr.js";
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, sql } from "drizzle-orm/sql/sql";
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, migrate };
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-effdwybp.js";
6
+ } from "./state-b17xd5mf.js";
7
7
  import {
8
8
  exports_select
9
- } from "./state-p1xvm7za.js";
9
+ } from "./state-a8bn7nwa.js";
10
10
  import {
11
11
  __export
12
12
  } from "./state-rvfvac9x.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./state-50jxp3hw.js";
4
4
  import {
5
5
  exports_provider
6
- } from "./state-djkt4gex.js";
6
+ } from "./state-hhajr42d.js";
7
7
  import {
8
8
  __require
9
9
  } 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-rrc4sky2.js";
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 {