@opencode-ai/core 0.0.0-beta-17728 → 0.0.0-beta-17793

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 (312) hide show
  1. package/dist/agent.js +55 -55
  2. package/dist/aisdk.js +1 -1
  3. package/dist/bus.js +54 -54
  4. package/dist/catalog.js +60 -60
  5. package/dist/chunks/{workspace-7ydvt0cn.js → workspace-0a6rv85p.js} +2 -2
  6. package/dist/chunks/{workspace-y0b7h1zm.js → workspace-0ankgmxn.js} +2 -2
  7. package/dist/chunks/{workspace-qsgvz7g8.js → workspace-0b17sr9d.js} +5 -0
  8. package/dist/chunks/{workspace-r6fg1hkq.js → workspace-0bxpjz5v.js} +7 -7
  9. package/dist/chunks/{workspace-b9wjddqq.js → workspace-12te9h01.js} +6 -6
  10. package/dist/chunks/{workspace-542hpkbj.js → workspace-1afm1b6n.js} +6 -6
  11. package/dist/chunks/{workspace-eymrs8ew.js → workspace-1x1rapwb.js} +1 -1
  12. package/dist/chunks/{workspace-62hqezf8.js → workspace-20m6kz67.js} +1 -1
  13. package/dist/chunks/{workspace-3zpfm7cp.js → workspace-29g7zza5.js} +6 -6
  14. package/dist/chunks/{workspace-90gmgs4x.js → workspace-37d718jr.js} +9 -9
  15. package/dist/chunks/{workspace-pravh8e3.js → workspace-38y8nwsh.js} +6 -6
  16. package/dist/chunks/{workspace-g0crqrc2.js → workspace-3zgv951r.js} +10 -10
  17. package/dist/chunks/{workspace-hrep3ykt.js → workspace-4s6c9e56.js} +5 -5
  18. package/dist/chunks/{workspace-ard6xt9g.js → workspace-5hakc3n5.js} +2 -2
  19. package/dist/chunks/{workspace-d6a81qeg.js → workspace-5mg8q2r2.js} +1 -1
  20. package/dist/chunks/{workspace-vrvhhgwk.js → workspace-5p73vhh3.js} +9 -9
  21. package/dist/chunks/{workspace-mjat1551.js → workspace-5qqhchyw.js} +12 -12
  22. package/dist/chunks/{workspace-p76g51s8.js → workspace-6103r997.js} +3 -3
  23. package/dist/chunks/{workspace-2zg2bwk8.js → workspace-62faaqw9.js} +3 -3
  24. package/dist/chunks/{workspace-1z2gdby2.js → workspace-6p15na29.js} +1 -1
  25. package/dist/chunks/{workspace-atjbfv7r.js → workspace-6prg4qz0.js} +1 -1
  26. package/dist/chunks/{workspace-c1eth9b5.js → workspace-76qm5nqf.js} +10 -29
  27. package/dist/chunks/{workspace-fcgydxrm.js → workspace-7f3c62hs.js} +10 -10
  28. package/dist/chunks/{workspace-b8rm84kg.js → workspace-7gqqz1s8.js} +2 -162
  29. package/dist/chunks/{workspace-pjg7v2c2.js → workspace-8jssm6tx.js} +3 -3
  30. package/dist/chunks/{workspace-fcpmx6c6.js → workspace-8t1bhfvh.js} +1 -1
  31. package/dist/chunks/{workspace-4gm39vc0.js → workspace-92cpjck4.js} +14 -14
  32. package/dist/chunks/{workspace-g58f6qy3.js → workspace-9jeda383.js} +1 -1
  33. package/dist/chunks/{workspace-gfqm9jc2.js → workspace-9jzaagxn.js} +7 -7
  34. package/dist/chunks/{workspace-0tse6crn.js → workspace-9z7sbd73.js} +1 -1
  35. package/dist/chunks/{workspace-b5njd4gp.js → workspace-a7458xm9.js} +1 -1
  36. package/dist/chunks/{workspace-3sjkbjbh.js → workspace-adfr8vkf.js} +3 -3
  37. package/dist/chunks/{workspace-vg3gxz15.js → workspace-afy8tpbe.js} +1 -1
  38. package/dist/chunks/{workspace-d6s8p2vk.js → workspace-aqg9wnx6.js} +3 -1
  39. package/dist/chunks/{workspace-czrtce5t.js → workspace-azhye5zs.js} +10 -10
  40. package/dist/chunks/{workspace-1mzs2gbp.js → workspace-b04yncak.js} +4 -4
  41. package/dist/chunks/{workspace-p5fvt5wk.js → workspace-b2csa971.js} +5 -5
  42. package/dist/chunks/{workspace-dy7dh4rb.js → workspace-bd453e9f.js} +2 -2
  43. package/dist/chunks/{workspace-52myrd5r.js → workspace-bftvctww.js} +1 -1
  44. package/dist/chunks/{workspace-r66pqccc.js → workspace-bg6er1xr.js} +42 -17
  45. package/dist/chunks/{workspace-tt2xddbf.js → workspace-byr5z3qa.js} +88 -88
  46. package/dist/chunks/{workspace-b477gca3.js → workspace-c16qn48m.js} +3 -3
  47. package/dist/chunks/{workspace-2fwsdk3a.js → workspace-c8h311wd.js} +23 -23
  48. package/dist/chunks/{workspace-8mj3f4mv.js → workspace-cd4gxvhq.js} +11 -11
  49. package/dist/chunks/{workspace-ntzxc0jn.js → workspace-ctdgtkbw.js} +4 -4
  50. package/dist/chunks/{workspace-md5jaask.js → workspace-d0r2hzy0.js} +1 -1
  51. package/dist/chunks/{workspace-fwtk8ym7.js → workspace-d9bbznyn.js} +2 -2
  52. package/dist/chunks/{workspace-c3zqsg3q.js → workspace-daqkr6yp.js} +2 -2
  53. package/dist/chunks/{workspace-rnzrc4h3.js → workspace-dfrm5wx2.js} +8 -8
  54. package/dist/chunks/{workspace-kj1ajs9d.js → workspace-dfspp6r4.js} +9 -9
  55. package/dist/chunks/{workspace-rdgshxnb.js → workspace-dmq0pk88.js} +1 -1
  56. package/dist/chunks/{workspace-23mrxj1z.js → workspace-dstxtxkt.js} +1 -1
  57. package/dist/chunks/{workspace-sthz35eq.js → workspace-dt2pbfh8.js} +66 -66
  58. package/dist/chunks/{workspace-s6g6g4wn.js → workspace-dtq2eppm.js} +5 -5
  59. package/dist/chunks/{workspace-a67bq5a9.js → workspace-dvghb557.js} +2 -2
  60. package/dist/chunks/{workspace-g71xsz50.js → workspace-e1fj3hnt.js} +4 -4
  61. package/dist/chunks/{workspace-bt40hje9.js → workspace-e8j1nhvt.js} +2 -2
  62. package/dist/chunks/{workspace-yz0wm9s3.js → workspace-e9yfe4g9.js} +1 -1
  63. package/dist/chunks/{workspace-m70vpsdq.js → workspace-ef1ebqv9.js} +1 -1
  64. package/dist/chunks/{workspace-g9xk0fp4.js → workspace-egfckg0q.js} +49 -49
  65. package/dist/chunks/{workspace-se1c3nna.js → workspace-emcgmnta.js} +5 -5
  66. package/dist/chunks/{workspace-jsz1keww.js → workspace-f56b6eec.js} +10 -10
  67. package/dist/chunks/{workspace-wrxb8r8b.js → workspace-fgk5sp52.js} +2 -2
  68. package/dist/chunks/{workspace-8j7q3az7.js → workspace-fx25bfyk.js} +2 -2
  69. package/dist/chunks/{workspace-6k2gs826.js → workspace-fycc0m1w.js} +6 -6
  70. package/dist/chunks/{workspace-mh4qv5pj.js → workspace-ghg83jvf.js} +12 -12
  71. package/dist/chunks/{workspace-wkxytz5r.js → workspace-h3vs7mve.js} +1 -1
  72. package/dist/chunks/{workspace-g0mkpa64.js → workspace-h6r3t75p.js} +2 -2
  73. package/dist/chunks/{workspace-ybk1zn4f.js → workspace-hhffyw1t.js} +5 -5
  74. package/dist/chunks/{workspace-y3mwbphg.js → workspace-hwx2w7zf.js} +1 -1
  75. package/dist/chunks/{workspace-s50pr0y2.js → workspace-j1zjb56y.js} +3 -3
  76. package/dist/chunks/workspace-jmmc1vfj.js +177 -0
  77. package/dist/chunks/{workspace-r2rbw5tv.js → workspace-k1b850en.js} +3 -3
  78. package/dist/chunks/{workspace-4mgybwn2.js → workspace-ks77wmnj.js} +1 -1
  79. package/dist/chunks/{workspace-d6d2y6z3.js → workspace-kwbvxbjz.js} +1 -1
  80. package/dist/chunks/{workspace-mvqmrqwd.js → workspace-mceg3fc8.js} +13 -14
  81. package/dist/chunks/{workspace-a102bg6e.js → workspace-mjyfgnw8.js} +2 -2
  82. package/dist/chunks/{workspace-zjqk1kz3.js → workspace-mmbfffa0.js} +1 -1
  83. package/dist/chunks/{workspace-tgfxjpg6.js → workspace-mp82cem1.js} +9 -9
  84. package/dist/chunks/{workspace-t7n14jhv.js → workspace-mz28rckj.js} +2 -2
  85. package/dist/chunks/{workspace-g1sw3zg8.js → workspace-mznpwsa6.js} +3 -3
  86. package/dist/chunks/{workspace-8qmsdysr.js → workspace-n1869kza.js} +4 -4
  87. package/dist/chunks/{workspace-fq8eqd5r.js → workspace-n44ep8ax.js} +2 -2
  88. package/dist/chunks/{workspace-6v05w4qg.js → workspace-njrg7yr8.js} +1 -1
  89. package/dist/chunks/{workspace-6e6yzfbs.js → workspace-nxs45nrs.js} +17 -17
  90. package/dist/chunks/{workspace-f1fk1fwk.js → workspace-p6edj0et.js} +36 -34
  91. package/dist/chunks/{workspace-jeqzp82b.js → workspace-p7enbrfs.js} +1 -1
  92. package/dist/chunks/{workspace-2q1fvqax.js → workspace-pcp53y3y.js} +1 -1
  93. package/dist/chunks/{workspace-814sw5b8.js → workspace-pd55t4m6.js} +29 -29
  94. package/dist/chunks/{workspace-rqnb0dc3.js → workspace-ppea70bb.js} +1 -1
  95. package/dist/chunks/{workspace-yzbgy9nd.js → workspace-ppg6z601.js} +5 -5
  96. package/dist/chunks/{workspace-6503fc24.js → workspace-pqg6v7an.js} +4 -4
  97. package/dist/chunks/{workspace-tz7xrhct.js → workspace-pw5qhcym.js} +44 -38
  98. package/dist/chunks/{workspace-9vcje7gs.js → workspace-q1q6wfxa.js} +7 -7
  99. package/dist/chunks/{workspace-yeep7k6z.js → workspace-r0chg1wz.js} +5 -5
  100. package/dist/chunks/{workspace-fpfxym37.js → workspace-r15s1bd3.js} +2 -2
  101. package/dist/chunks/{workspace-ej8mqssz.js → workspace-r9bsqnhw.js} +4 -4
  102. package/dist/chunks/{workspace-5p6y381a.js → workspace-rbn77fxp.js} +1 -1
  103. package/dist/chunks/{workspace-q1dc5e6j.js → workspace-rgk2vntt.js} +2 -2
  104. package/dist/chunks/{workspace-z3rydcef.js → workspace-s6zr15p0.js} +1 -1
  105. package/dist/chunks/{workspace-mvg5hf3w.js → workspace-s7pbx90j.js} +4 -4
  106. package/dist/chunks/{workspace-41db28r2.js → workspace-sney8k4p.js} +23 -19
  107. package/dist/chunks/{workspace-fvfr1h9h.js → workspace-sphyh08q.js} +8 -8
  108. package/dist/chunks/{workspace-awt1vy08.js → workspace-st1tmxxz.js} +2 -2
  109. package/dist/chunks/{workspace-bffjrazf.js → workspace-swnnf7jm.js} +1 -1
  110. package/dist/chunks/{workspace-23pmvn2v.js → workspace-t2ccr6s6.js} +0 -10
  111. package/dist/chunks/{workspace-5v0jvcad.js → workspace-thrfs9vw.js} +4 -4
  112. package/dist/chunks/{workspace-f1mxyn57.js → workspace-thrqaz0e.js} +2 -2
  113. package/dist/chunks/{workspace-trb4b12r.js → workspace-tk479mxv.js} +2 -2
  114. package/dist/chunks/{workspace-zjcjb8a1.js → workspace-tsj2cygv.js} +21 -21
  115. package/dist/chunks/{workspace-vpv9n6y4.js → workspace-v4xjagz7.js} +6 -6
  116. package/dist/chunks/{workspace-y1gjwkyb.js → workspace-vfekzexe.js} +1 -1
  117. package/dist/chunks/{workspace-4d67s52a.js → workspace-vgjwjeca.js} +1 -1
  118. package/dist/chunks/{workspace-bfkpqtqx.js → workspace-vptxxpwc.js} +3 -3
  119. package/dist/chunks/{workspace-vjshw6kw.js → workspace-vq4xdzwy.js} +2 -2
  120. package/dist/chunks/{workspace-gvgy736b.js → workspace-vxayaa8z.js} +1 -1
  121. package/dist/chunks/{workspace-67w1s9dj.js → workspace-vzsgyrq1.js} +1 -1
  122. package/dist/chunks/{workspace-azfr4z12.js → workspace-wwkgmt0p.js} +5 -5
  123. package/dist/chunks/{workspace-xf8gwdhy.js → workspace-x6bsrrkz.js} +8 -8
  124. package/dist/chunks/{workspace-yw66mecz.js → workspace-x7z5vctn.js} +2 -2
  125. package/dist/chunks/{workspace-pxa9b4s7.js → workspace-xaf8phze.js} +63 -46
  126. package/dist/chunks/{workspace-5zfpf3c3.js → workspace-xp27tpff.js} +32 -44
  127. package/dist/chunks/{workspace-rvtzwf9v.js → workspace-xvjmrenr.js} +4 -4
  128. package/dist/chunks/{workspace-c6137mdz.js → workspace-y44ckmk4.js} +7 -7
  129. package/dist/chunks/{workspace-y9w1r2sz.js → workspace-yw6774fb.js} +3 -3
  130. package/dist/chunks/{workspace-c67gxqy3.js → workspace-z5tq16yp.js} +147 -147
  131. package/dist/chunks/{workspace-h39nbqxt.js → workspace-z6g48jge.js} +1 -1
  132. package/dist/chunks/{workspace-7yt03gw4.js → workspace-zebyd4z6.js} +2 -2
  133. package/dist/chunks/{workspace-nr7nt42m.js → workspace-zeqnj68x.js} +7 -7
  134. package/dist/chunks/{workspace-44dp1sb2.js → workspace-zqdn9cme.js} +3 -3
  135. package/dist/codemode/tool.js +2 -2
  136. package/dist/command.js +73 -73
  137. package/dist/config/normalize.js +9 -9
  138. package/dist/config/plugin/agent.js +92 -92
  139. package/dist/config/plugin/command.js +91 -91
  140. package/dist/config/plugin/compaction.js +126 -106
  141. package/dist/config/plugin/formatter.js +81 -81
  142. package/dist/config/plugin/image.js +88 -88
  143. package/dist/config/plugin/instruction.js +63 -63
  144. package/dist/config/plugin/location-watcher.js +80 -80
  145. package/dist/config/plugin/mcp.js +89 -89
  146. package/dist/config/plugin/policy.js +80 -80
  147. package/dist/config/plugin/provider.js +80 -80
  148. package/dist/config/plugin/reference.js +83 -83
  149. package/dist/config/plugin/shell.js +80 -80
  150. package/dist/config/plugin/skill-file.js +74 -74
  151. package/dist/config/plugin/skill.js +94 -94
  152. package/dist/config/plugin/snapshot.js +81 -81
  153. package/dist/config/plugin/source.js +80 -80
  154. package/dist/config/plugin/tool-output.js +81 -81
  155. package/dist/config/plugin/websearch.js +80 -80
  156. package/dist/config.js +79 -79
  157. package/dist/credential.js +54 -54
  158. package/dist/database/database.js +53 -53
  159. package/dist/database/drizzle/effect-sqlite/driver.js +9 -9
  160. package/dist/database/drizzle/effect-sqlite/index.js +9 -9
  161. package/dist/database/drizzle/effect-sqlite/migrator.js +8 -8
  162. package/dist/database/drizzle/effect-sqlite/session.js +8 -8
  163. package/dist/database/drizzle/index.js +11 -11
  164. package/dist/database/drizzle/sqlite-core/effect/db.js +5 -5
  165. package/dist/database/drizzle/sqlite-core/effect/index.js +16 -16
  166. package/dist/database/drizzle/sqlite-core/effect/session.js +7 -7
  167. package/dist/database/drizzle.js +11 -11
  168. package/dist/database/migration.gen.js +34 -34
  169. package/dist/database/migration.js +35 -35
  170. package/dist/database/v1-migration.bun.js +54 -54
  171. package/dist/effect/app-node-builder.js +265 -265
  172. package/dist/environment/environment.js +65 -65
  173. package/dist/environment/index.js +67 -67
  174. package/dist/event-logger.js +54 -54
  175. package/dist/file-mutation.js +66 -66
  176. package/dist/filesystem/location-watcher.js +242 -239
  177. package/dist/filesystem/search.js +67 -67
  178. package/dist/filesystem.js +67 -67
  179. package/dist/form.js +55 -55
  180. package/dist/formatter.js +61 -61
  181. package/dist/generate.js +63 -63
  182. package/dist/github-copilot/chat/openai-compatible-chat-language-model.js +4 -4
  183. package/dist/github-copilot/copilot-provider.js +10 -10
  184. package/dist/github-copilot/responses/openai-responses-language-model.js +5 -5
  185. package/dist/github-copilot/responses/openai-responses-prepare-tools.js +3 -3
  186. package/dist/image/photon.js +68 -68
  187. package/dist/image.js +68 -68
  188. package/dist/instruction-discovery.js +56 -56
  189. package/dist/instructions/builtins.js +62 -62
  190. package/dist/integration.js +57 -57
  191. package/dist/kv.js +54 -54
  192. package/dist/location-mutation.js +61 -61
  193. package/dist/location-service-map.js +60 -60
  194. package/dist/location-services.js +265 -265
  195. package/dist/location.js +60 -60
  196. package/dist/mcp/client.js +66 -66
  197. package/dist/mcp/index.js +71 -71
  198. package/dist/mcp/instructions.js +94 -94
  199. package/dist/mcp/stdio.js +66 -66
  200. package/dist/model-resolver.js +62 -62
  201. package/dist/models-dev.js +56 -56
  202. package/dist/permission/saved.js +60 -60
  203. package/dist/permission/sql.js +1 -1
  204. package/dist/permission.js +72 -72
  205. package/dist/plugin/agent.js +73 -73
  206. package/dist/plugin/command.js +61 -61
  207. package/dist/plugin/host.js +125 -125
  208. package/dist/plugin/internal.js +236 -233
  209. package/dist/plugin/models-dev.js +57 -57
  210. package/dist/plugin/plan.js +89 -56
  211. package/dist/plugin/provider/azure.js +85 -85
  212. package/dist/plugin/provider/cloudflare-ai-gateway.js +86 -86
  213. package/dist/plugin/provider/cloudflare-workers-ai.js +86 -86
  214. package/dist/plugin/provider/configured.js +84 -84
  215. package/dist/plugin/provider/github-copilot.js +62 -62
  216. package/dist/plugin/provider/llmgateway.js +59 -59
  217. package/dist/plugin/provider/lmstudio.js +80 -80
  218. package/dist/plugin/provider/ollama.js +80 -80
  219. package/dist/plugin/provider/openai.js +60 -60
  220. package/dist/plugin/provider/opencode.js +68 -68
  221. package/dist/plugin/provider/vllm.js +80 -80
  222. package/dist/plugin/provider/xai.js +59 -59
  223. package/dist/plugin/provider.js +117 -117
  224. package/dist/plugin/runtime.js +114 -114
  225. package/dist/plugin/sdk.js +55 -55
  226. package/dist/plugin/skill.js +94 -94
  227. package/dist/plugin/supervisor.js +242 -239
  228. package/dist/plugin/system-prompt.js +1 -3
  229. package/dist/plugin/warming.js +80 -80
  230. package/dist/plugin/websearch/index.js +2 -2
  231. package/dist/plugin.js +126 -126
  232. package/dist/project/sql.js +1 -1
  233. package/dist/project.js +59 -59
  234. package/dist/pty/ticket.js +55 -55
  235. package/dist/pty.js +61 -61
  236. package/dist/reference/instructions.js +61 -61
  237. package/dist/reference.js +59 -59
  238. package/dist/ripgrep.js +66 -66
  239. package/dist/session/compaction.js +110 -88
  240. package/dist/session/context.js +248 -245
  241. package/dist/session/execution/restart.js +83 -83
  242. package/dist/session/execution.js +83 -83
  243. package/dist/session/generate-node.js +249 -249
  244. package/dist/session/history.js +57 -57
  245. package/dist/session/inbox.js +55 -55
  246. package/dist/session/info.js +65 -65
  247. package/dist/session/instruction-entry.js +56 -56
  248. package/dist/session/instruction-state.js +2 -2
  249. package/dist/session/instructions.js +70 -70
  250. package/dist/session/model-headers.js +1 -1
  251. package/dist/session/model-request.js +103 -103
  252. package/dist/session/projector.js +62 -62
  253. package/dist/session/revert.js +62 -62
  254. package/dist/session/runner/index.js +63 -63
  255. package/dist/session/runner/llm.js +252 -252
  256. package/dist/session/runner/model.js +63 -63
  257. package/dist/session/runner/retry.js +55 -55
  258. package/dist/session/runner/to-llm-message.js +1 -1
  259. package/dist/session/sql.js +1 -1
  260. package/dist/session/store.js +69 -69
  261. package/dist/session/title.js +107 -82
  262. package/dist/session/to-session-error.js +82 -82
  263. package/dist/session/transfer.js +120 -120
  264. package/dist/session.js +114 -114
  265. package/dist/shell.js +69 -69
  266. package/dist/skill/instructions.js +74 -74
  267. package/dist/skill.js +73 -73
  268. package/dist/snapshot.js +61 -61
  269. package/dist/tool/mcp.js +93 -93
  270. package/dist/tool/plugin/edit.js +81 -81
  271. package/dist/tool/plugin/glob.js +84 -84
  272. package/dist/tool/plugin/grep.js +84 -84
  273. package/dist/tool/plugin/patch.js +81 -81
  274. package/dist/tool/plugin/question.js +74 -74
  275. package/dist/tool/plugin/read.js +86 -86
  276. package/dist/tool/plugin/shell.js +135 -135
  277. package/dist/tool/plugin/skill.js +74 -74
  278. package/dist/tool/plugin/subagent.js +133 -133
  279. package/dist/tool/plugin/webfetch.js +73 -73
  280. package/dist/tool/plugin/websearch.js +76 -76
  281. package/dist/tool/plugin/write.js +81 -81
  282. package/dist/tool/read-filesystem.js +68 -68
  283. package/dist/tool/runtime.js +1 -1
  284. package/dist/tool.js +86 -86
  285. package/dist/types/location-service-map.d.ts +2 -2
  286. package/dist/types/location-services.d.ts +1 -1
  287. package/dist/types/plugin/host.d.ts +8 -0
  288. package/dist/types/plugin/plan.d.ts +3 -1
  289. package/dist/types/plugin/system-prompt.d.ts +1 -2
  290. package/dist/types/session/compaction.d.ts +4 -3
  291. package/dist/types/session/model-request.d.ts +8 -1
  292. package/dist/types/session/title.d.ts +3 -2
  293. package/dist/v1/config/config.js +7 -7
  294. package/dist/v1/config/migrate.js +8 -8
  295. package/dist/vcs.js +62 -62
  296. package/dist/websearch.js +56 -56
  297. package/dist/wellknown/plugin.js +57 -57
  298. package/dist/wellknown.js +56 -56
  299. package/dist/workspace.js +55 -55
  300. package/dist/worktree/sql.js +1 -1
  301. package/dist/worktree.js +61 -61
  302. package/package.json +8 -8
  303. package/dist/chunks/workspace-dgagesms.js +0 -166
  304. package/dist/chunks/{workspace-n7qmgaea.js → workspace-75dc4a2v.js} +79 -79
  305. package/dist/chunks/{workspace-38t54vkz.js → workspace-7ard301f.js} +17 -17
  306. package/dist/chunks/{workspace-kmtnn037.js → workspace-95dhhjyp.js} +9 -9
  307. package/dist/chunks/{workspace-bk2c2kb7.js → workspace-b7wyyjhh.js} +0 -0
  308. package/dist/chunks/{workspace-xvawdh7j.js → workspace-dn5xz30q.js} +10 -10
  309. package/dist/chunks/{workspace-xsfdrhg6.js → workspace-dwvaj8pd.js} +3 -3
  310. package/dist/chunks/{workspace-na8kvh3y.js → workspace-pfrv4bm3.js} +6 -6
  311. package/dist/chunks/{workspace-fs1q3vja.js → workspace-ra765m8n.js} +6 -6
  312. package/dist/chunks/{workspace-ff2y1ddn.js → workspace-tva2scp3.js} +7 -7
@@ -1,27 +1,27 @@
1
1
  import {
2
- exports_normalize
3
- } from "./workspace-kmtnn037.js";
2
+ exports_watcher
3
+ } from "./workspace-y980s7ka.js";
4
4
  import {
5
5
  exports_variable
6
6
  } from "./workspace-eyk9wdct.js";
7
7
  import {
8
- exports_watcher
9
- } from "./workspace-y980s7ka.js";
8
+ exports_normalize
9
+ } from "./workspace-95dhhjyp.js";
10
+ import {
11
+ exports_credential
12
+ } from "./workspace-vzsgyrq1.js";
10
13
  import {
11
14
  exports_wellknown
12
- } from "./workspace-fq8eqd5r.js";
15
+ } from "./workspace-n44ep8ax.js";
13
16
  import {
14
17
  exports_location
15
- } from "./workspace-d6d2y6z3.js";
18
+ } from "./workspace-kwbvxbjz.js";
19
+ import {
20
+ exports_bus
21
+ } from "./workspace-njrg7yr8.js";
16
22
  import {
17
23
  AbsolutePath
18
24
  } from "./workspace-j07kk359.js";
19
- import {
20
- exports_credential
21
- } from "./workspace-67w1s9dj.js";
22
- import {
23
- exports_bus
24
- } from "./workspace-6v05w4qg.js";
25
25
  import {
26
26
  __export
27
27
  } from "./workspace-rvfvac9x.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  exports_config
3
- } from "./workspace-mh4qv5pj.js";
3
+ } from "./workspace-ghg83jvf.js";
4
4
  import {
5
5
  exports_model
6
6
  } from "./workspace-wh0zhxcg.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  exports_config
3
- } from "./workspace-mh4qv5pj.js";
3
+ } from "./workspace-ghg83jvf.js";
4
4
  import {
5
5
  exports_snapshot
6
- } from "./workspace-1mzs2gbp.js";
6
+ } from "./workspace-b04yncak.js";
7
7
  import {
8
8
  __export
9
9
  } from "./workspace-rvfvac9x.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  exports_websearch
3
- } from "./workspace-fwtk8ym7.js";
4
- import {
5
- exports_permission
6
- } from "./workspace-kj1ajs9d.js";
3
+ } from "./workspace-d9bbznyn.js";
7
4
  import {
8
5
  exports_form
9
- } from "./workspace-4d67s52a.js";
6
+ } from "./workspace-vgjwjeca.js";
7
+ import {
8
+ exports_permission
9
+ } from "./workspace-dfspp6r4.js";
10
10
  import {
11
11
  __export
12
12
  } from "./workspace-rvfvac9x.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./workspace-h8ecejt5.js";
4
4
  import {
5
5
  exports_environment1 as exports_environment
6
- } from "./workspace-c6137mdz.js";
6
+ } from "./workspace-y44ckmk4.js";
7
7
  import {
8
8
  NonNegativeInt,
9
9
  PositiveInt,
@@ -3,13 +3,13 @@ import {
3
3
  } from "./workspace-706a4azd.js";
4
4
  import {
5
5
  exports_config
6
- } from "./workspace-mh4qv5pj.js";
6
+ } from "./workspace-ghg83jvf.js";
7
7
  import {
8
8
  exports_formatter
9
- } from "./workspace-5p6y381a.js";
9
+ } from "./workspace-rbn77fxp.js";
10
10
  import {
11
11
  exports_location
12
- } from "./workspace-d6d2y6z3.js";
12
+ } from "./workspace-kwbvxbjz.js";
13
13
  import {
14
14
  __export
15
15
  } from "./workspace-rvfvac9x.js";
@@ -0,0 +1,177 @@
1
+ import {
2
+ exports_usage
3
+ } from "./workspace-sw84ckhj.js";
4
+ import {
5
+ exports_model_request
6
+ } from "./workspace-sney8k4p.js";
7
+ import {
8
+ exports_model as exports_model2
9
+ } from "./workspace-r9bsqnhw.js";
10
+ import {
11
+ llmClient
12
+ } from "./workspace-j1a5h53y.js";
13
+ import {
14
+ exports_catalog
15
+ } from "./workspace-76qm5nqf.js";
16
+ import {
17
+ exports_store
18
+ } from "./workspace-wwkgmt0p.js";
19
+ import {
20
+ exports_history
21
+ } from "./workspace-ra765m8n.js";
22
+ import {
23
+ SessionEvent
24
+ } from "./workspace-a83yvq99.js";
25
+ import {
26
+ exports_model
27
+ } from "./workspace-wh0zhxcg.js";
28
+ import {
29
+ exports_agent
30
+ } from "./workspace-6p15na29.js";
31
+ import {
32
+ exports_bus
33
+ } from "./workspace-njrg7yr8.js";
34
+ import {
35
+ exports_database
36
+ } from "./workspace-s7pbx90j.js";
37
+ import {
38
+ __export
39
+ } from "./workspace-rvfvac9x.js";
40
+
41
+ // src/session/title.ts
42
+ var exports_title = {};
43
+ __export(exports_title, {
44
+ node: () => node,
45
+ layer: () => layer,
46
+ SessionTitle: () => exports_title,
47
+ Service: () => Service
48
+ });
49
+ import { isDeepStrictEqual } from "node:util";
50
+ import { LLMClient, LLMEvent, Message, SystemPart } from "@opencode-ai/ai";
51
+ import { Context, DateTime, Effect, Layer, Stream } from "effect";
52
+ import { makeLocationNode } from "@opencode-ai/util/effect/app-node";
53
+ import { isExactRootFallback } from "@opencode-ai/util/session-title-fallback";
54
+ var MAX_LENGTH = 100;
55
+ var titleChanged = Symbol("Session title changed");
56
+
57
+ class Service extends Context.Service()("@opencode/SessionTitle") {
58
+ }
59
+ var truncate = (value) => value.length <= MAX_LENGTH ? value : `${value.slice(0, MAX_LENGTH - 3)}...`;
60
+ var isUntitled = (session) => isExactRootFallback({
61
+ title: session.title,
62
+ time: { created: DateTime.toEpochMillis(session.time.created) }
63
+ });
64
+ var attempt = Effect.fn("SessionTitle.attempt")(function* (dependencies, input) {
65
+ const chunks = [];
66
+ let failed = false;
67
+ let usage;
68
+ const recordUsage = Effect.suspend(() => usage ? dependencies.bus.publish(SessionEvent.UsageRecorded, {
69
+ sessionID: input.session.id,
70
+ source: "title",
71
+ ...usage
72
+ }) : Effect.void);
73
+ const prepared = yield* dependencies.modelRequests.prepare({
74
+ scope: { session: input.session, agentID: input.agent.id, model: input.model },
75
+ transcript: {
76
+ system: input.agent.system ? [SystemPart.make(input.agent.system)] : [],
77
+ messages: [Message.user(input.text)]
78
+ },
79
+ contextHooks: false
80
+ });
81
+ const streamed = yield* dependencies.llm.stream(prepared.request, prepared.options).pipe(Stream.runForEach((event) => {
82
+ if (LLMEvent.is.providerError(event))
83
+ failed = true;
84
+ if (LLMEvent.is.textDelta(event))
85
+ chunks.push(event.text);
86
+ if (LLMEvent.is.stepFinish(event)) {
87
+ const step = exports_usage.record(event.usage, input.model.cost);
88
+ usage = usage ? exports_usage.add(usage, step) : step;
89
+ }
90
+ return Effect.void;
91
+ }), Effect.as(true), Effect.catchTag("AI.Error", () => Effect.succeed(false)), Effect.onInterrupt(() => recordUsage.pipe(Effect.asVoid)));
92
+ yield* recordUsage;
93
+ if (!streamed || failed)
94
+ return;
95
+ return chunks.join("").split(`
96
+ `).map((line) => line.trim()).find((line) => line.length > 0);
97
+ });
98
+ var MINIMAL_REASONING_VARIANTS = ["none", "minimal", "low"].map((id) => exports_model.VariantID.make(id));
99
+ var make = (dependencies) => {
100
+ const generateForFirstPrompt = Effect.fn("SessionTitle.generateForFirstPrompt")(function* (db, sessionID) {
101
+ const session = yield* dependencies.store.get(sessionID);
102
+ if (!session)
103
+ return;
104
+ if (session.parentID)
105
+ return;
106
+ if (!isUntitled(session))
107
+ return;
108
+ const firstUser = yield* exports_history.firstUserMessage(db, session.id);
109
+ if (!firstUser)
110
+ return;
111
+ const agent = yield* dependencies.agents.get(exports_agent.ID.make("title"));
112
+ if (!agent)
113
+ return;
114
+ const primary = yield* dependencies.models.resolve(session).pipe(Effect.catch(() => Effect.succeed(undefined)));
115
+ const info = yield* Effect.gen(function* () {
116
+ if (agent.model)
117
+ return yield* dependencies.catalog.model.get(agent.model.providerID, agent.model.id);
118
+ if (!primary)
119
+ return;
120
+ return yield* dependencies.catalog.model.small(primary.ref.providerID);
121
+ });
122
+ const variant = agent.model?.variant ?? MINIMAL_REASONING_VARIANTS.find((id) => info?.variants.some((item) => item.id === id));
123
+ const preferred = info && (yield* dependencies.models.resolve({
124
+ ...session,
125
+ model: exports_model.Ref.make({
126
+ providerID: info.providerID,
127
+ id: info.id,
128
+ ...variant ? { variant } : {}
129
+ })
130
+ }).pipe(Effect.catch(() => Effect.succeed(undefined))));
131
+ const selected = preferred ?? primary;
132
+ if (!selected)
133
+ return;
134
+ const title = (yield* attempt(dependencies, { session, agent, text: firstUser.text, model: selected })) ?? (primary && !isDeepStrictEqual(selected.ref, primary.ref) ? yield* attempt(dependencies, { session, agent, text: firstUser.text, model: primary }) : undefined);
135
+ if (!title)
136
+ return;
137
+ const expectedSequence = (yield* exports_bus.latestSequence(db, sessionID)) + 1;
138
+ const current = yield* dependencies.store.get(sessionID);
139
+ if (!current || !isUntitled(current))
140
+ return;
141
+ yield* dependencies.bus.publish(SessionEvent.Renamed, {
142
+ sessionID: session.id,
143
+ title: truncate(title)
144
+ }, { commit: (sequence) => sequence === expectedSequence ? Effect.void : Effect.die(titleChanged) }).pipe(Effect.catchDefect((defect) => defect === titleChanged ? Effect.void : Effect.die(defect)));
145
+ });
146
+ return { generateForFirstPrompt };
147
+ };
148
+ var layer = Layer.effect(Service, Effect.gen(function* () {
149
+ const bus = yield* exports_bus.Service;
150
+ const llm = yield* LLMClient.Service;
151
+ const agents = yield* exports_agent.Service;
152
+ const catalog = yield* exports_catalog.Service;
153
+ const models = yield* exports_model2.Service;
154
+ const modelRequests = yield* exports_model_request.Service;
155
+ const store = yield* exports_store.Service;
156
+ const database = yield* exports_database.Service;
157
+ const title = make({ bus, llm, agents, catalog, models, modelRequests, store });
158
+ return Service.of({
159
+ generateForFirstPrompt: (sessionID) => title.generateForFirstPrompt(database.db, sessionID)
160
+ });
161
+ }));
162
+ var node = makeLocationNode({
163
+ service: Service,
164
+ layer,
165
+ deps: [
166
+ exports_bus.node,
167
+ llmClient,
168
+ exports_agent.node,
169
+ exports_catalog.node,
170
+ exports_model2.node,
171
+ exports_model_request.node,
172
+ exports_store.node,
173
+ exports_database.node
174
+ ]
175
+ });
176
+
177
+ export { Service, layer, node, exports_title };
@@ -1,9 +1,9 @@
1
- import {
2
- configuredSettings
3
- } from "./workspace-bt40hje9.js";
4
1
  import {
5
2
  iife
6
3
  } from "./workspace-ehj9csmv.js";
4
+ import {
5
+ configuredSettings
6
+ } from "./workspace-e8j1nhvt.js";
7
7
  import {
8
8
  exports_app
9
9
  } from "./workspace-50jxp3hw.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  exports_environment1 as exports_environment
3
- } from "./workspace-c6137mdz.js";
3
+ } from "./workspace-y44ckmk4.js";
4
4
  import {
5
5
  __export
6
6
  } from "./workspace-rvfvac9x.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  exports_project
3
- } from "./workspace-90gmgs4x.js";
3
+ } from "./workspace-37d718jr.js";
4
4
  import {
5
5
  __export
6
6
  } from "./workspace-rvfvac9x.js";
@@ -1,24 +1,24 @@
1
+ import {
2
+ exports_promise
3
+ } from "./workspace-5vcssjzn.js";
1
4
  import {
2
5
  exports_sdk
3
- } from "./workspace-rdgshxnb.js";
6
+ } from "./workspace-dmq0pk88.js";
4
7
  import {
5
8
  exports_internal
6
- } from "./workspace-c67gxqy3.js";
7
- import {
8
- exports_promise
9
- } from "./workspace-5vcssjzn.js";
9
+ } from "./workspace-z5tq16yp.js";
10
10
  import {
11
11
  exports_source
12
- } from "./workspace-vjshw6kw.js";
12
+ } from "./workspace-vq4xdzwy.js";
13
13
  import {
14
14
  exports_plugin
15
- } from "./workspace-814sw5b8.js";
15
+ } from "./workspace-pd55t4m6.js";
16
16
  import {
17
17
  Service
18
18
  } from "./workspace-s33fw6zm.js";
19
19
  import {
20
20
  exports_bus
21
- } from "./workspace-6v05w4qg.js";
21
+ } from "./workspace-njrg7yr8.js";
22
22
  import {
23
23
  __export
24
24
  } from "./workspace-rvfvac9x.js";
@@ -32,7 +32,7 @@ __export(exports_supervisor, {
32
32
  PluginSupervisor: () => exports_supervisor
33
33
  });
34
34
  import { Event } from "@opencode-ai/schema/config";
35
- import { Cause, Deferred, Effect, Layer, Schema, Stream } from "effect";
35
+ import { Cause, Effect, Latch, Layer, Schema, Stream } from "effect";
36
36
  import path from "path";
37
37
  import { pathToFileURL } from "url";
38
38
  import { makeLocationNode } from "@opencode-ai/util/effect/app-node";
@@ -121,7 +121,7 @@ var layer = Layer.effect(Service, Effect.gen(function* () {
121
121
  const sdk = yield* exports_sdk.Service;
122
122
  const sources = yield* exports_source.Service;
123
123
  const bus = yield* exports_bus.Service;
124
- const ready = { current: yield* Deferred.make() };
124
+ const ready = yield* Latch.make();
125
125
  let observed = 0;
126
126
  const activate = Effect.fn("PluginSupervisor.activate")(function* () {
127
127
  const internal = yield* exports_internal.list();
@@ -140,16 +140,15 @@ var layer = Layer.effect(Service, Effect.gen(function* () {
140
140
  });
141
141
  const updates = Stream.merge(sources.changes(), bus.subscribe([Event.Updated, exports_sdk.Updated])).pipe(Stream.mapEffect(() => Effect.gen(function* () {
142
142
  observed++;
143
- if (yield* Deferred.isDone(ready.current))
144
- ready.current = yield* Deferred.make();
143
+ yield* ready.close;
145
144
  return observed;
146
145
  })));
147
146
  yield* Stream.concat(Stream.succeed(0), updates).pipe(Stream.buffer({ capacity: 1, strategy: "sliding" }), Stream.debounce("100 millis"), Stream.runForEach((target) => Effect.gen(function* () {
148
147
  yield* activate();
149
148
  if (observed === target)
150
- yield* Deferred.succeed(ready.current, undefined);
149
+ yield* ready.open;
151
150
  }).pipe(Effect.catchCause((cause) => Effect.logError("failed to reload plugins", { cause })))), Effect.forkScoped({ startImmediately: true }));
152
- return Service.of({ flush: Effect.suspend(() => Deferred.await(ready.current)) });
151
+ return Service.of({ flush: ready.await });
153
152
  }));
154
153
  var nodeDeps = [
155
154
  exports_plugin.node,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  exports_compaction
3
- } from "./workspace-5zfpf3c3.js";
3
+ } from "./workspace-xp27tpff.js";
4
4
  import {
5
5
  exports_config
6
- } from "./workspace-mh4qv5pj.js";
6
+ } from "./workspace-ghg83jvf.js";
7
7
  import {
8
8
  __export
9
9
  } from "./workspace-rvfvac9x.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  exports_config
3
- } from "./workspace-mh4qv5pj.js";
3
+ } from "./workspace-ghg83jvf.js";
4
4
  import {
5
5
  exports_tool_output
6
6
  } from "./workspace-81wsrtjr.js";
@@ -1,33 +1,33 @@
1
1
  import {
2
2
  exports_runner
3
3
  } from "./workspace-cz3dkvcz.js";
4
- import {
5
- toSessionError
6
- } from "./workspace-s6g6g4wn.js";
7
4
  import {
8
5
  exports_inbox
9
6
  } from "./workspace-e93xz9yp.js";
10
7
  import {
11
8
  exports_run_coordinator
12
9
  } from "./workspace-e24rm1tf.js";
10
+ import {
11
+ toSessionError
12
+ } from "./workspace-dtq2eppm.js";
13
13
  import {
14
14
  exports_location_service_map
15
15
  } from "./workspace-zdkg1k91.js";
16
16
  import {
17
17
  exports_store
18
- } from "./workspace-azfr4z12.js";
19
- import {
20
- SessionEvent
21
- } from "./workspace-a83yvq99.js";
18
+ } from "./workspace-wwkgmt0p.js";
22
19
  import {
23
20
  UserInterruptedError
24
21
  } from "./workspace-p27xxkqg.js";
22
+ import {
23
+ SessionEvent
24
+ } from "./workspace-a83yvq99.js";
25
25
  import {
26
26
  exports_bus
27
- } from "./workspace-6v05w4qg.js";
27
+ } from "./workspace-njrg7yr8.js";
28
28
  import {
29
29
  exports_database
30
- } from "./workspace-mvg5hf3w.js";
30
+ } from "./workspace-s7pbx90j.js";
31
31
  import {
32
32
  __export
33
33
  } from "./workspace-rvfvac9x.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  EffectSQLiteSession
3
- } from "./workspace-z3rydcef.js";
3
+ } from "./workspace-s6zr15p0.js";
4
4
  import {
5
5
  SQLiteEffectDatabase
6
- } from "./workspace-xvawdh7j.js";
6
+ } from "./workspace-dn5xz30q.js";
7
7
  import {
8
8
  jitCompatCheck
9
9
  } from "./workspace-ma07p6tt.js";
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  exports_mcp
3
- } from "./workspace-zjcjb8a1.js";
3
+ } from "./workspace-tsj2cygv.js";
4
4
  import {
5
5
  exports_select
6
6
  } from "./workspace-19e1vard.js";
7
7
  import {
8
8
  exports_location
9
- } from "./workspace-d6d2y6z3.js";
9
+ } from "./workspace-kwbvxbjz.js";
10
10
  import {
11
11
  exports_state
12
12
  } from "./workspace-f2kz495y.js";
13
13
  import {
14
14
  exports_bus
15
- } from "./workspace-6v05w4qg.js";
15
+ } from "./workspace-njrg7yr8.js";
16
16
  import {
17
17
  __export
18
18
  } from "./workspace-rvfvac9x.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  exports_instructions
3
3
  } from "./workspace-ec8vrfw5.js";
4
- import {
5
- AbsolutePath
6
- } from "./workspace-j07kk359.js";
7
4
  import {
8
5
  exports_state
9
6
  } from "./workspace-f2kz495y.js";
10
7
  import {
11
8
  exports_bus
12
- } from "./workspace-6v05w4qg.js";
9
+ } from "./workspace-njrg7yr8.js";
10
+ import {
11
+ AbsolutePath
12
+ } from "./workspace-j07kk359.js";
13
13
  import {
14
14
  __export
15
15
  } from "./workspace-rvfvac9x.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  exports_kv
3
- } from "./workspace-h39nbqxt.js";
3
+ } from "./workspace-z6g48jge.js";
4
4
  import {
5
5
  exports_bus
6
- } from "./workspace-6v05w4qg.js";
6
+ } from "./workspace-njrg7yr8.js";
7
7
  import {
8
8
  __export
9
9
  } from "./workspace-rvfvac9x.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./workspace-zsf8rs93.js";
5
5
  import {
6
6
  exports_database
7
- } from "./workspace-mvg5hf3w.js";
7
+ } from "./workspace-s7pbx90j.js";
8
8
  import {
9
9
  exports_keyed_mutex
10
10
  } from "./workspace-0kvmztkf.js";
@@ -2,26 +2,26 @@ import {
2
2
  exports_environment as exports_environment2
3
3
  } from "./workspace-6ky7rqk7.js";
4
4
  import {
5
- exports_hooks
6
- } from "./workspace-v2wshkax.js";
7
- import {
8
- exports_environment1 as exports_environment
9
- } from "./workspace-c6137mdz.js";
5
+ exports_select
6
+ } from "./workspace-19e1vard.js";
10
7
  import {
11
8
  exports_file_retention
12
9
  } from "./workspace-wb4dbzpz.js";
13
10
  import {
14
- exports_select
15
- } from "./workspace-19e1vard.js";
11
+ exports_hooks
12
+ } from "./workspace-v2wshkax.js";
16
13
  import {
17
14
  exports_schema
18
15
  } from "./workspace-y8rs54ne.js";
16
+ import {
17
+ exports_environment1 as exports_environment
18
+ } from "./workspace-y44ckmk4.js";
19
19
  import {
20
20
  exports_location
21
- } from "./workspace-d6d2y6z3.js";
21
+ } from "./workspace-kwbvxbjz.js";
22
22
  import {
23
23
  exports_bus
24
- } from "./workspace-6v05w4qg.js";
24
+ } from "./workspace-njrg7yr8.js";
25
25
  import {
26
26
  __export,
27
27
  __require
@@ -39,7 +39,7 @@ __export(exports_shell, {
39
39
  DIRECTORY: () => DIRECTORY
40
40
  });
41
41
  import path from "path";
42
- import { Context, Deferred, Duration, Effect, Fiber, Layer, Schema, Schedule, Stream } from "effect";
42
+ import { Context, Deferred, Duration, Effect, Fiber, Latch, Layer, Schema, Schedule, Stream } from "effect";
43
43
  import { ChildProcess } from "effect/unstable/process";
44
44
  import { produce } from "immer";
45
45
  import { Shell } from "@opencode-ai/schema/shell";
@@ -104,12 +104,12 @@ var layer = () => Layer.effect(Service, Effect.gen(function* () {
104
104
  });
105
105
  const removeSession = Effect.fnUntraced(function* (id) {
106
106
  const session = sessions.get(id);
107
- if (!session)
108
- return;
109
- sessions.delete(id);
110
107
  const index = exitOrder.indexOf(id);
111
108
  if (index !== -1)
112
109
  exitOrder.splice(index, 1);
110
+ if (!session)
111
+ return;
112
+ sessions.delete(id);
113
113
  if (session.timeoutFiber)
114
114
  yield* Fiber.interrupt(session.timeoutFiber);
115
115
  yield* Deferred.fail(session.done, new NotFoundError({ id }));
@@ -213,7 +213,7 @@ var layer = () => Layer.effect(Service, Effect.gen(function* () {
213
213
  };
214
214
  sessions.set(id, session2);
215
215
  const stream = createWriteStream(file);
216
- const outputDone = Deferred.makeUnsafe();
216
+ const outputDone = Latch.makeUnsafe();
217
217
  const pump = handle.all.pipe(Stream.runForEach((chunk) => Effect.sync(() => {
218
218
  stream.write(chunk);
219
219
  session2.size += chunk.length;
@@ -223,8 +223,8 @@ var layer = () => Layer.effect(Service, Effect.gen(function* () {
223
223
  yield* Effect.promise(() => new Promise((resolve) => {
224
224
  stream.end(() => resolve());
225
225
  }));
226
- yield* Deferred.succeed(outputDone, undefined);
227
- }).pipe(Effect.catch(() => Deferred.succeed(outputDone, undefined))));
226
+ yield* outputDone.open;
227
+ }).pipe(Effect.catch(() => outputDone.open)));
228
228
  yield* Effect.promise(() => new Promise((resolve) => {
229
229
  stream.once("open", () => resolve());
230
230
  stream.once("error", () => resolve());
@@ -239,7 +239,7 @@ var layer = () => Layer.effect(Service, Effect.gen(function* () {
239
239
  draft.time.completed = Date.now();
240
240
  });
241
241
  yield* beforeWait;
242
- yield* Deferred.await(outputDone);
242
+ yield* outputDone.await;
243
243
  yield* Deferred.succeed(session2.done, session2.info);
244
244
  yield* bus.publish(Shell.Event.Exited, {
245
245
  id,