@opencode-ai/core 0.0.0-dev-18673 → 0.0.0-dev-18677

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 (294) hide show
  1. package/dist/agent.js +2 -2
  2. package/dist/bus.js +1 -1
  3. package/dist/catalog.js +5 -5
  4. package/dist/chunks/{job-6xnprn33.js → job-0ard5z33.js} +6 -6
  5. package/dist/chunks/{job-2crbvxrz.js → job-0mhpcp7m.js} +3 -3
  6. package/dist/chunks/{job-x7r2g85h.js → job-0vhffh46.js} +2 -2
  7. package/dist/chunks/{job-wjd92vx4.js → job-11rrpezh.js} +2 -2
  8. package/dist/chunks/{job-ngdmqv4f.js → job-1emzt0wt.js} +2 -2
  9. package/dist/chunks/{job-qtqph8kb.js → job-25d8xd9w.js} +4 -4
  10. package/dist/chunks/{job-nr9st120.js → job-2jft3yd5.js} +4 -4
  11. package/dist/chunks/{job-f2v2a3w4.js → job-2ptj9njb.js} +2 -2
  12. package/dist/chunks/{job-522kq8qa.js → job-2spyzfer.js} +1 -1
  13. package/dist/chunks/{job-dv3yagct.js → job-2xxqbh3j.js} +4 -4
  14. package/dist/chunks/{job-ek7xs75a.js → job-30ngbap7.js} +1 -1
  15. package/dist/chunks/{job-vgthr3zd.js → job-3asq9qd5.js} +3 -3
  16. package/dist/chunks/{job-rngafpkn.js → job-3fbdyapk.js} +3 -3
  17. package/dist/chunks/{job-1795kap3.js → job-3fhw42bc.js} +6 -6
  18. package/dist/chunks/{job-7khw64yh.js → job-41qzzbpz.js} +2 -1
  19. package/dist/chunks/{job-gmvz6tt0.js → job-46crkez1.js} +1 -1
  20. package/dist/chunks/{job-b09nc7xz.js → job-47gdfeya.js} +16 -16
  21. package/dist/chunks/{job-twchz7da.js → job-48vsw0jw.js} +1 -1
  22. package/dist/chunks/{job-2rc1qwhy.js → job-4df507vk.js} +50 -42
  23. package/dist/chunks/{job-6xx60510.js → job-4seh17cq.js} +1 -1
  24. package/dist/chunks/{job-zpyt1ezn.js → job-54fer0d0.js} +1 -1
  25. package/dist/chunks/job-57pbmnfc.js +33 -0
  26. package/dist/chunks/{job-9qkcnssy.js → job-587cy5wm.js} +2 -2
  27. package/dist/chunks/{job-jxfq75rv.js → job-61m6ks43.js} +1 -1
  28. package/dist/chunks/job-6266zj4e.js +34 -0
  29. package/dist/chunks/{job-ppc4pq6n.js → job-6421j3fd.js} +2 -2
  30. package/dist/chunks/job-68jwqkqq.js +203 -0
  31. package/dist/chunks/{job-arfgd8hp.js → job-762jys75.js} +2 -2
  32. package/dist/chunks/{job-r1bm65q2.js → job-7b8p713x.js} +2 -2
  33. package/dist/chunks/{job-vt9vdee9.js → job-7jp3zpyh.js} +16 -16
  34. package/dist/chunks/{job-ccc48pq3.js → job-7s30ncaq.js} +1 -1
  35. package/dist/chunks/{job-ggy6v1em.js → job-813exka1.js} +3 -3
  36. package/dist/chunks/{job-d0dbhb87.js → job-8hhxd7er.js} +2 -2
  37. package/dist/chunks/{job-k36tycg5.js → job-8n8yxdw2.js} +2 -2
  38. package/dist/chunks/{job-ndwaftrw.js → job-910ht18m.js} +7 -7
  39. package/dist/chunks/{job-493bygj2.js → job-9bg23qva.js} +5 -5
  40. package/dist/chunks/{job-ntrwn9c5.js → job-9e6s2wbs.js} +1 -1
  41. package/dist/chunks/{job-53s1vm97.js → job-9jtvr9f7.js} +1 -1
  42. package/dist/chunks/{job-bv3cft66.js → job-9tna6sny.js} +6 -6
  43. package/dist/chunks/{job-w6r7reh9.js → job-af6k8xdc.js} +5 -5
  44. package/dist/chunks/{job-1gwra17j.js → job-ajmf56n3.js} +8 -8
  45. package/dist/chunks/{job-1y7r54v0.js → job-ajzk3rs2.js} +1 -1
  46. package/dist/chunks/{job-9tbbhhr5.js → job-aksqn8ry.js} +1 -1
  47. package/dist/chunks/{job-3raka4vp.js → job-arxtz9h4.js} +1 -1
  48. package/dist/chunks/{job-ea0dq72e.js → job-ave2dd3r.js} +46 -44
  49. package/dist/chunks/{job-tb3sg9tv.js → job-b2jn2z3c.js} +3 -3
  50. package/dist/chunks/{job-662k41g4.js → job-b4jawdm2.js} +2 -2
  51. package/dist/chunks/{job-ke8148ty.js → job-bfbx87ej.js} +1 -1
  52. package/dist/chunks/{job-17rksvd3.js → job-bn0n0hq9.js} +2 -2
  53. package/dist/chunks/{job-pjq3bk07.js → job-bv2z3evd.js} +5 -5
  54. package/dist/chunks/{job-vf9yn9vx.js → job-bvavh6pe.js} +3 -3
  55. package/dist/chunks/{job-s7azyhqy.js → job-caf5y5zg.js} +2 -2
  56. package/dist/chunks/{job-3x82cc09.js → job-cdm889rz.js} +1 -1
  57. package/dist/chunks/job-cgqn2mrm.js +147 -0
  58. package/dist/chunks/{job-za8wqpca.js → job-cqr0z25w.js} +2 -2
  59. package/dist/chunks/job-cs1gk7aw.js +330 -0
  60. package/dist/chunks/{job-w989xrsb.js → job-dc495s0z.js} +2 -2
  61. package/dist/chunks/{job-e663gt7g.js → job-dh8ckpgp.js} +1 -1
  62. package/dist/chunks/{job-9kxkwge9.js → job-dmvhg2kz.js} +3 -3
  63. package/dist/chunks/{job-qgr3f3b0.js → job-dn8yfcj9.js} +2 -2
  64. package/dist/chunks/{job-knm8yv8d.js → job-dv2qtrbh.js} +1 -1
  65. package/dist/chunks/{job-m4nj1rxs.js → job-e08y7spt.js} +2 -2
  66. package/dist/chunks/{job-04ve9v9t.js → job-e43zqy1x.js} +4 -4
  67. package/dist/chunks/{job-p3ahxk9y.js → job-e4v0c7ed.js} +1 -1
  68. package/dist/chunks/{job-69r90z8c.js → job-emzj2mnz.js} +1 -1
  69. package/dist/chunks/{job-v42pfaxk.js → job-evztkcdr.js} +1 -1
  70. package/dist/chunks/{job-1t1wgrhv.js → job-ey3px3v3.js} +2 -2
  71. package/dist/chunks/{job-dgn4zcks.js → job-f59p8r33.js} +42 -42
  72. package/dist/chunks/{job-z1t08826.js → job-fagh19yc.js} +5 -5
  73. package/dist/chunks/{job-wyghbada.js → job-fbd4gqt5.js} +1 -1
  74. package/dist/chunks/{job-edjh5g28.js → job-fe8hw932.js} +2 -2
  75. package/dist/chunks/{job-yrxhe8a3.js → job-fg9cms5n.js} +6 -6
  76. package/dist/chunks/{job-ecft2zb7.js → job-fjvbp1rw.js} +97 -71
  77. package/dist/chunks/{job-dnxrkvvt.js → job-g9rvq1b5.js} +1 -1
  78. package/dist/chunks/{job-kxn229zn.js → job-g9vy0vzc.js} +1 -1
  79. package/dist/chunks/{job-mrdgq75n.js → job-h5cf492r.js} +3 -3
  80. package/dist/chunks/{job-wvmyfgqa.js → job-h9bbwcgd.js} +1 -1
  81. package/dist/chunks/job-hym53p1s.js +120 -0
  82. package/dist/chunks/{job-d64twz5j.js → job-jp8kwwgf.js} +1 -1
  83. package/dist/chunks/{job-cfzsy64h.js → job-jq8sgn79.js} +2 -2
  84. package/dist/chunks/{job-1kexajey.js → job-jr5hd5p5.js} +2 -2
  85. package/dist/chunks/{job-spcjzfgq.js → job-k4t29e2h.js} +2 -2
  86. package/dist/chunks/{job-rcmgh3ca.js → job-ka9jgdn3.js} +2 -2
  87. package/dist/chunks/{job-c48kc6fa.js → job-kaffyxmp.js} +4 -4
  88. package/dist/chunks/{job-zk95prvm.js → job-kh42a55x.js} +3 -3
  89. package/dist/chunks/{job-vx4s9vef.js → job-khy57ct7.js} +1 -1
  90. package/dist/chunks/{job-wf9by8hw.js → job-knqwwztd.js} +2 -2
  91. package/dist/chunks/{job-bz4yk1t4.js → job-kpkmmjx3.js} +4 -4
  92. package/dist/chunks/{job-2jqw5dy6.js → job-m1fdqckz.js} +2 -2
  93. package/dist/chunks/{job-7xyyvdqe.js → job-m90gkrdr.js} +2 -2
  94. package/dist/chunks/{job-0kdsfzn8.js → job-me02a623.js} +1 -1
  95. package/dist/chunks/{job-v2shkc71.js → job-me5d9f22.js} +6 -6
  96. package/dist/chunks/{job-ngrdkqab.js → job-n5tqbq9v.js} +1 -1
  97. package/dist/chunks/{job-y1a7rf83.js → job-ndmfymhz.js} +1 -1
  98. package/dist/chunks/{job-9ah4t5gc.js → job-new463fc.js} +1 -1
  99. package/dist/chunks/{job-q5ke20s1.js → job-nh8pkdtv.js} +1 -1
  100. package/dist/chunks/{job-44ehhp8z.js → job-nvaw7ncd.js} +18 -18
  101. package/dist/chunks/{job-gg11cpea.js → job-pkn40a12.js} +4 -4
  102. package/dist/chunks/{job-eyavsrxt.js → job-pskv33a2.js} +2 -2
  103. package/dist/chunks/{job-52hchg7s.js → job-q87p9xpa.js} +1 -1
  104. package/dist/chunks/{job-r5qypb3j.js → job-qba7b96d.js} +3 -3
  105. package/dist/chunks/{job-x6p3vk3n.js → job-qjge9hjg.js} +3 -3
  106. package/dist/chunks/{job-t981ghyw.js → job-qyg9b9kw.js} +3 -3
  107. package/dist/chunks/{job-eqacz5gw.js → job-rvnd6a2n.js} +1 -1
  108. package/dist/chunks/{job-0bw528m8.js → job-sx7e8x54.js} +16 -16
  109. package/dist/chunks/{job-wpn3tqwb.js → job-t0esftz3.js} +82 -82
  110. package/dist/chunks/{job-3apyg94z.js → job-tjvgp8sx.js} +1 -1
  111. package/dist/chunks/{job-dm0vs72c.js → job-tywfhfz1.js} +6 -6
  112. package/dist/chunks/{job-c1fr40sx.js → job-v4rnjb1g.js} +1 -1
  113. package/dist/chunks/{job-sqzywsbq.js → job-v50dw4p6.js} +2 -2
  114. package/dist/chunks/{job-83zdjmgg.js → job-v9j3k8n3.js} +2 -2
  115. package/dist/chunks/{job-qarwrfd1.js → job-x9rd2vnh.js} +1 -1
  116. package/dist/chunks/{job-6eb12gng.js → job-xygthxr3.js} +2 -2
  117. package/dist/chunks/{job-vzgmc9jp.js → job-y3sfr5g3.js} +4 -4
  118. package/dist/chunks/{job-830qkp09.js → job-ye4yygw2.js} +1 -1
  119. package/dist/chunks/job-yyjmndg0.js +483 -0
  120. package/dist/chunks/{job-4gv2h1pd.js → job-yypfb467.js} +3 -3
  121. package/dist/chunks/{job-j0e9tdbc.js → job-z136m2k9.js} +3 -3
  122. package/dist/chunks/{job-n2c9k96k.js → job-z3fjxbtv.js} +4 -4
  123. package/dist/chunks/{job-ba35xjtb.js → job-z61mvmr2.js} +6 -6
  124. package/dist/chunks/{job-xes8c7na.js → job-zjdkpeq1.js} +8 -6
  125. package/dist/chunks/{job-hnxf074g.js → job-zq3dpz3n.js} +1 -1
  126. package/dist/chunks/{job-vhxe1a2q.js → job-zr6va574.js} +2 -2
  127. package/dist/chunks/{job-h41pqsxw.js → job-zrccwvnf.js} +1 -1
  128. package/dist/chunks/{job-tdk41tnh.js → job-zzhrh7mp.js} +2 -2
  129. package/dist/chunks/{job-nkej4bfa.js → job-zzp6hyw7.js} +2 -2
  130. package/dist/command.js +2 -2
  131. package/dist/config/plugin/agent.js +15 -15
  132. package/dist/config/plugin/command.js +9 -9
  133. package/dist/config/plugin/compaction.js +22 -22
  134. package/dist/config/plugin/entry-observer.js +8 -8
  135. package/dist/config/plugin/formatter.js +10 -10
  136. package/dist/config/plugin/image.js +14 -14
  137. package/dist/config/plugin/instruction.js +7 -7
  138. package/dist/config/plugin/location-watcher.js +9 -9
  139. package/dist/config/plugin/mcp.js +13 -13
  140. package/dist/config/plugin/policy.js +9 -9
  141. package/dist/config/plugin/provider.js +9 -9
  142. package/dist/config/plugin/reference.js +10 -10
  143. package/dist/config/plugin/shell.js +9 -9
  144. package/dist/config/plugin/skill-file.js +13 -13
  145. package/dist/config/plugin/skill.js +17 -17
  146. package/dist/config/plugin/snapshot.js +10 -10
  147. package/dist/config/plugin/source.js +9 -9
  148. package/dist/config/plugin/tool-output.js +9 -9
  149. package/dist/config/plugin/websearch.js +9 -9
  150. package/dist/config.js +8 -8
  151. package/dist/credential.js +2 -2
  152. package/dist/effect/app-node-builder.js +146 -142
  153. package/dist/environment/environment.js +6 -6
  154. package/dist/environment/index.js +6 -6
  155. package/dist/event-logger.js +1 -1
  156. package/dist/file-mutation.js +7 -7
  157. package/dist/filesystem/location-watcher.js +125 -123
  158. package/dist/filesystem/search.js +8 -8
  159. package/dist/filesystem.js +9 -9
  160. package/dist/form.js +2 -2
  161. package/dist/formatter.js +6 -6
  162. package/dist/generate.js +7 -7
  163. package/dist/github-copilot/chat/openai-compatible-chat-language-model.js +4 -4
  164. package/dist/github-copilot/copilot-provider.js +9 -9
  165. package/dist/github-copilot/responses/openai-responses-language-model.js +5 -5
  166. package/dist/github-copilot/responses/openai-responses-prepare-tools.js +2 -2
  167. package/dist/image/photon.js +10 -10
  168. package/dist/image.js +10 -10
  169. package/dist/instance.js +145 -141
  170. package/dist/instruction-discovery.js +2 -2
  171. package/dist/instructions/builtins.js +6 -6
  172. package/dist/integration.js +4 -4
  173. package/dist/location-activity.js +5 -5
  174. package/dist/location-mutation.js +6 -6
  175. package/dist/location-service-map.js +5 -5
  176. package/dist/location-services.js +146 -142
  177. package/dist/location.js +5 -5
  178. package/dist/mcp/client.js +7 -7
  179. package/dist/mcp/index.js +10 -10
  180. package/dist/mcp/instructions.js +23 -23
  181. package/dist/mcp/stdio.js +7 -7
  182. package/dist/model-resolver.js +6 -6
  183. package/dist/models-dev.js +2 -2
  184. package/dist/permission.js +11 -11
  185. package/dist/persistent-pty/index.js +2 -2
  186. package/dist/persistent-pty.js +2 -2
  187. package/dist/plugin/agent.js +12 -12
  188. package/dist/plugin/command.js +11 -11
  189. package/dist/plugin/host.js +47 -45
  190. package/dist/plugin/internal.js +120 -118
  191. package/dist/plugin/models-dev.js +3 -3
  192. package/dist/plugin/plan.js +12 -12
  193. package/dist/plugin/provider/azure.js +13 -13
  194. package/dist/plugin/provider/cloudflare-ai-gateway.js +13 -13
  195. package/dist/plugin/provider/cloudflare-workers-ai.js +13 -13
  196. package/dist/plugin/provider/configured.js +12 -12
  197. package/dist/plugin/provider/github-copilot.js +7 -7
  198. package/dist/plugin/provider/llmgateway.js +5 -5
  199. package/dist/plugin/provider/lmstudio.js +13 -13
  200. package/dist/plugin/provider/ollama.js +13 -13
  201. package/dist/plugin/provider/openai.js +5 -5
  202. package/dist/plugin/provider/opencode.js +5 -5
  203. package/dist/plugin/provider/vllm.js +13 -13
  204. package/dist/plugin/provider/xai.js +5 -5
  205. package/dist/plugin/provider.js +35 -35
  206. package/dist/plugin/runtime.js +41 -39
  207. package/dist/plugin/sdk.js +2 -2
  208. package/dist/plugin/skill.js +17 -17
  209. package/dist/plugin/supervisor.js +126 -124
  210. package/dist/plugin/vcs/git.js +7 -7
  211. package/dist/plugin/vcs/hg.js +7 -7
  212. package/dist/plugin/warming.js +9 -9
  213. package/dist/plugin/websearch/index.js +3 -3
  214. package/dist/plugin.js +48 -46
  215. package/dist/project/markers.js +3 -3
  216. package/dist/project.js +4 -4
  217. package/dist/pty.js +6 -6
  218. package/dist/reference/instructions.js +3 -3
  219. package/dist/reference.js +2 -2
  220. package/dist/ripgrep.js +7 -7
  221. package/dist/session/compaction.js +19 -19
  222. package/dist/session/context.js +133 -131
  223. package/dist/session/error.js +23 -1
  224. package/dist/session/execution/restart.js +39 -37
  225. package/dist/session/execution.js +21 -21
  226. package/dist/session/generate-node.js +134 -132
  227. package/dist/session/history.js +2 -2
  228. package/dist/session/inbox.js +11 -15
  229. package/dist/session/instructions.js +10 -10
  230. package/dist/session/model-request.js +25 -25
  231. package/dist/session/projector.js +3 -3
  232. package/dist/session/prompt-node.js +320 -0
  233. package/dist/session/prompt.js +130 -0
  234. package/dist/session/revert-node.js +320 -0
  235. package/dist/session/revert.js +17 -12
  236. package/dist/session/run-coordinator.js +1 -1
  237. package/dist/session/runner/index.js +7 -7
  238. package/dist/session/runner/llm.js +138 -136
  239. package/dist/session/runner/model.js +7 -7
  240. package/dist/session/runner/retry.js +1 -1
  241. package/dist/session/runner/step.js +29 -29
  242. package/dist/session/session.js +181 -0
  243. package/dist/session/store.js +4 -4
  244. package/dist/session/title.js +134 -132
  245. package/dist/session/to-session-error.js +18 -18
  246. package/dist/session/transfer.js +40 -38
  247. package/dist/session.js +50 -48
  248. package/dist/shell.js +10 -10
  249. package/dist/skill/instructions.js +13 -13
  250. package/dist/skill.js +12 -12
  251. package/dist/snapshot.js +6 -6
  252. package/dist/tool/mcp.js +22 -22
  253. package/dist/tool/plugin/edit.js +16 -16
  254. package/dist/tool/plugin/glob.js +17 -17
  255. package/dist/tool/plugin/grep.js +17 -17
  256. package/dist/tool/plugin/patch.js +16 -16
  257. package/dist/tool/plugin/question.js +13 -13
  258. package/dist/tool/plugin/read.js +19 -19
  259. package/dist/tool/plugin/shell.js +43 -41
  260. package/dist/tool/plugin/skill.js +13 -13
  261. package/dist/tool/plugin/subagent.js +42 -40
  262. package/dist/tool/plugin/webfetch.js +12 -12
  263. package/dist/tool/plugin/websearch.js +14 -14
  264. package/dist/tool/plugin/write.js +16 -16
  265. package/dist/tool/read-filesystem.js +10 -10
  266. package/dist/tool.js +17 -17
  267. package/dist/types/instance.d.ts +2 -2
  268. package/dist/types/location-service-map.d.ts +2 -2
  269. package/dist/types/plugin/host.d.ts +4 -18
  270. package/dist/types/project.d.ts +1 -0
  271. package/dist/types/session/error.d.ts +115 -0
  272. package/dist/types/session/execution.d.ts +2 -0
  273. package/dist/types/session/inbox.d.ts +557 -176
  274. package/dist/types/session/prompt-node.d.ts +3 -0
  275. package/dist/types/session/prompt.d.ts +126 -0
  276. package/dist/types/session/revert-node.d.ts +3 -0
  277. package/dist/types/session/revert.d.ts +24 -29
  278. package/dist/types/session/run-coordinator.d.ts +2 -0
  279. package/dist/types/session/session.d.ts +232 -0
  280. package/dist/types/session.d.ts +14 -141
  281. package/dist/vcs.js +6 -6
  282. package/dist/websearch.js +2 -2
  283. package/dist/wellknown/plugin.js +3 -3
  284. package/dist/wellknown.js +2 -2
  285. package/dist/worktree.js +6 -6
  286. package/package.json +7 -7
  287. package/dist/chunks/job-fb7nfzf2.js +0 -71
  288. package/dist/chunks/job-k3b93ktv.js +0 -909
  289. package/dist/chunks/job-x7z7742t.js +0 -115
  290. package/dist/chunks/{job-dchkjjs1.js → job-5y7h4bj8.js} +6 -6
  291. package/dist/chunks/{job-yd18a1xb.js → job-pzy8panz.js} +9 -9
  292. package/dist/chunks/{job-tkazpfmd.js → job-qj3yfbbj.js} +3 -3
  293. /package/dist/chunks/{job-ryg4g4zw.js → job-s5a3kj32.js} +0 -0
  294. /package/dist/chunks/{job-j925pnyr.js → job-wcdz88tf.js} +0 -0
@@ -6,7 +6,7 @@ import {
6
6
  } from "./job-bbhffenw.js";
7
7
  import {
8
8
  exports_config
9
- } from "./job-gg11cpea.js";
9
+ } from "./job-pkn40a12.js";
10
10
  import {
11
11
  __export
12
12
  } from "./job-rvfvac9x.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  exports_permission
3
- } from "./job-pjq3bk07.js";
3
+ } from "./job-bv2z3evd.js";
4
4
  import {
5
5
  exports_bus
6
- } from "./job-j925pnyr.js";
6
+ } from "./job-wcdz88tf.js";
7
7
  import {
8
8
  exports_state
9
9
  } from "./job-x89rah0x.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  exports_models_dev
3
- } from "./job-wyghbada.js";
3
+ } from "./job-fbd4gqt5.js";
4
4
  import {
5
5
  exports_bus
6
- } from "./job-j925pnyr.js";
6
+ } from "./job-wcdz88tf.js";
7
7
 
8
8
  // src/plugin/models-dev.ts
9
9
  import { define } from "@opencode-ai/plugin/effect/plugin";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  exports_permission
3
- } from "./job-pjq3bk07.js";
3
+ } from "./job-bv2z3evd.js";
4
4
  import {
5
5
  __export
6
6
  } from "./job-rvfvac9x.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DiffError
3
- } from "./job-m4nj1rxs.js";
3
+ } from "./job-e08y7spt.js";
4
4
  import {
5
5
  MAX_PATCH_BYTES,
6
6
  MAX_TOTAL_PATCH_BYTES,
@@ -13,7 +13,7 @@ import {
13
13
  } from "./job-vz89hfgr.js";
14
14
  import {
15
15
  exports_location
16
- } from "./job-knm8yv8d.js";
16
+ } from "./job-dv2qtrbh.js";
17
17
  import {
18
18
  __export
19
19
  } from "./job-rvfvac9x.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  exports_context
3
- } from "./job-44ehhp8z.js";
3
+ } from "./job-nvaw7ncd.js";
4
4
  import {
5
5
  exports_usage
6
6
  } from "./job-sw84ckhj.js";
@@ -9,16 +9,16 @@ import {
9
9
  } from "./job-393a352g.js";
10
10
  import {
11
11
  exports_store
12
- } from "./job-wvmyfgqa.js";
12
+ } from "./job-h9bbwcgd.js";
13
13
  import {
14
14
  exports_history
15
- } from "./job-ngrdkqab.js";
15
+ } from "./job-n5tqbq9v.js";
16
16
  import {
17
17
  SessionEvent
18
18
  } from "./job-a83yvq99.js";
19
19
  import {
20
20
  exports_bus
21
- } from "./job-j925pnyr.js";
21
+ } from "./job-wcdz88tf.js";
22
22
  import {
23
23
  exports_database
24
24
  } from "./job-rp954h3j.js";
@@ -16,7 +16,7 @@ import {
16
16
  } from "./job-v2wshkax.js";
17
17
  import {
18
18
  exports_image
19
- } from "./job-ryg4g4zw.js";
19
+ } from "./job-s5a3kj32.js";
20
20
  import {
21
21
  exports_state
22
22
  } from "./job-x89rah0x.js";
@@ -0,0 +1,483 @@
1
+ import {
2
+ exports_projector
3
+ } from "./job-2xxqbh3j.js";
4
+ import {
5
+ exports_session
6
+ } from "./job-cs1gk7aw.js";
7
+ import {
8
+ exports_execution
9
+ } from "./job-zjdkpeq1.js";
10
+ import {
11
+ exports_inbox
12
+ } from "./job-fjvbp1rw.js";
13
+ import {
14
+ exports_generate
15
+ } from "./job-xgv25zxy.js";
16
+ import {
17
+ exports_instruction_entry
18
+ } from "./job-0j6yxnr1.js";
19
+ import {
20
+ exports_supervisor_service
21
+ } from "./job-s33fw6zm.js";
22
+ import {
23
+ exports_model_transport
24
+ } from "./job-tjrfm0xh.js";
25
+ import {
26
+ exports_environment
27
+ } from "./job-6ky7rqk7.js";
28
+ import {
29
+ Slug
30
+ } from "./job-df3v2q6j.js";
31
+ import {
32
+ exports_skill
33
+ } from "./job-v50dw4p6.js";
34
+ import {
35
+ exports_command
36
+ } from "./job-jp8kwwgf.js";
37
+ import {
38
+ exports_app
39
+ } from "./job-50jxp3hw.js";
40
+ import {
41
+ exports_location_service_map
42
+ } from "./job-zdkg1k91.js";
43
+ import {
44
+ exports_store
45
+ } from "./job-h9bbwcgd.js";
46
+ import {
47
+ exports_history
48
+ } from "./job-n5tqbq9v.js";
49
+ import {
50
+ exports_instruction_state
51
+ } from "./job-hxcd35r2.js";
52
+ import {
53
+ fromRow
54
+ } from "./job-264e1nfp.js";
55
+ import {
56
+ AttachmentError,
57
+ BusyError,
58
+ CompactionConflictError,
59
+ ForkEmptyError,
60
+ InboxConflictError,
61
+ MessageDecodeError,
62
+ MessageIncompleteError,
63
+ MessageNotAssistantError,
64
+ MessageNotFoundError,
65
+ MessageToolIncompleteError,
66
+ NotFoundError,
67
+ PromptConflictError,
68
+ SkillNotFoundError,
69
+ SyntheticConflictError
70
+ } from "./job-cgqn2mrm.js";
71
+ import {
72
+ SessionMessageTable,
73
+ SessionTable
74
+ } from "./job-q606pcse.js";
75
+ import {
76
+ SessionEvent
77
+ } from "./job-a83yvq99.js";
78
+ import {
79
+ exports_job
80
+ } from "./job-2hnk029s.js";
81
+ import {
82
+ SessionMessage
83
+ } from "./job-8rpfd2h6.js";
84
+ import {
85
+ ID,
86
+ Info,
87
+ SessionSchema
88
+ } from "./job-bjwj8hwv.js";
89
+ import {
90
+ exports_location
91
+ } from "./job-dv2qtrbh.js";
92
+ import {
93
+ exports_project
94
+ } from "./job-587cy5wm.js";
95
+ import {
96
+ exports_bus
97
+ } from "./job-wcdz88tf.js";
98
+ import {
99
+ exports_database
100
+ } from "./job-rp954h3j.js";
101
+ import {
102
+ AbsolutePath,
103
+ PositiveInt,
104
+ RelativePath
105
+ } from "./job-j07kk359.js";
106
+ import {
107
+ __export
108
+ } from "./job-rvfvac9x.js";
109
+
110
+ // src/session.ts
111
+ var exports_session2 = {};
112
+ __export(exports_session2, {
113
+ node: () => node,
114
+ SyntheticConflictError: () => SyntheticConflictError,
115
+ SkillNotFoundError: () => SkillNotFoundError,
116
+ SessionSchema: () => SessionSchema,
117
+ Session: () => exports_session2,
118
+ Service: () => Service,
119
+ PromptConflictError: () => PromptConflictError,
120
+ NotFoundError: () => NotFoundError,
121
+ MessageToolIncompleteError: () => MessageToolIncompleteError,
122
+ MessageNotFoundError: () => MessageNotFoundError,
123
+ MessageNotAssistantError: () => MessageNotAssistantError,
124
+ MessageIncompleteError: () => MessageIncompleteError,
125
+ MessageDecodeError: () => MessageDecodeError,
126
+ ListInput: () => ListInput,
127
+ ListAnchor: () => ListAnchor,
128
+ Info: () => Info,
129
+ InboxConflictError: () => InboxConflictError,
130
+ ID: () => ID,
131
+ DestinationUnavailableError: () => DestinationUnavailableError,
132
+ DestinationNotFoundError: () => DestinationNotFoundError,
133
+ DestinationNotDirectoryError: () => DestinationNotDirectoryError,
134
+ CompactionConflictError: () => CompactionConflictError,
135
+ BusyError: () => BusyError,
136
+ AttachmentError: () => AttachmentError
137
+ });
138
+ import { Cause, Effect, Layer, Schema, Context, RcMap, Stream, Scope } from "effect";
139
+ import { ListAnchor } from "@opencode-ai/schema/session";
140
+ import { and, asc, desc, eq, gt, isNull, like, lt, or } from "drizzle-orm";
141
+ import { Workspace } from "@opencode-ai/schema/workspace";
142
+ import { Model } from "@opencode-ai/schema/model";
143
+ import path from "path";
144
+ import { makeGlobalNode } from "@opencode-ai/util/effect/app-node";
145
+ import { FSUtil } from "@opencode-ai/util/fs-util";
146
+ import { Event } from "@opencode-ai/schema/event";
147
+ import { Global } from "@opencode-ai/util/global";
148
+ var ListInputBase = {
149
+ workspaceID: Workspace.ID.pipe(Schema.optional),
150
+ search: Schema.String.pipe(Schema.optional),
151
+ limit: PositiveInt.pipe(Schema.optional),
152
+ order: Schema.Literals(["asc", "desc"]).pipe(Schema.optional),
153
+ parentID: Schema.NullOr(SessionSchema.ID).pipe(Schema.optional),
154
+ anchor: ListAnchor.pipe(Schema.optional)
155
+ };
156
+ var ListDirectoryInput = Schema.Struct({
157
+ ...ListInputBase,
158
+ directory: AbsolutePath
159
+ });
160
+ var ListProjectInput = Schema.Struct({
161
+ ...ListInputBase,
162
+ project: exports_project.ID,
163
+ subpath: RelativePath.pipe(Schema.optional)
164
+ });
165
+ var ListAllInput = Schema.Struct(ListInputBase);
166
+ var ListInput = Schema.Union([ListDirectoryInput, ListProjectInput, ListAllInput]);
167
+ class DestinationNotFoundError extends Schema.TaggedError()("Session.DestinationNotFoundError", { directory: AbsolutePath }) {
168
+ }
169
+
170
+ class DestinationNotDirectoryError extends Schema.TaggedError()("Session.DestinationNotDirectoryError", { directory: AbsolutePath }) {
171
+ }
172
+
173
+ class DestinationUnavailableError extends Schema.TaggedError()("Session.DestinationUnavailableError", { directory: AbsolutePath }) {
174
+ }
175
+
176
+ class Service extends Context.Service()("@opencode/Session") {
177
+ }
178
+ var layer = Layer.effect(Service, Effect.gen(function* () {
179
+ const app = yield* exports_app.Metadata;
180
+ const database = yield* exports_database.Service;
181
+ const db = database.db;
182
+ const bus = yield* exports_bus.Service;
183
+ const projects = yield* exports_project.Service;
184
+ const global = yield* Global.Service;
185
+ const execution = yield* exports_execution.Service;
186
+ const store = yield* exports_store.Service;
187
+ const locations = yield* exports_location_service_map.Service;
188
+ const fs = yield* FSUtil.Service;
189
+ const jobs = yield* exports_job.Service;
190
+ const environments = yield* exports_environment.Service;
191
+ const scope = yield* Scope.Scope;
192
+ const sessions = yield* exports_session.make((ref) => locations.get(ref));
193
+ const admission = yield* exports_inbox.Service;
194
+ const closeTransport = Effect.fn("Session.closeTransport")(function* (session) {
195
+ const location = exports_location.Ref.make({
196
+ directory: session.location.directory,
197
+ workspaceID: session.location.workspaceID
198
+ });
199
+ if (!(yield* RcMap.has(locations.rcMap, location)))
200
+ return;
201
+ yield* exports_model_transport.Service.use((transport) => transport.close(session.id)).pipe(Effect.provide(locations.get(location)));
202
+ });
203
+ const isDurableSessionEvent = Schema.is(SessionEvent.Durable);
204
+ const result = Service.of({
205
+ create: Effect.fn("Session.create")(function* (input) {
206
+ const sessionID = input.id ?? SessionSchema.ID.create();
207
+ const recorded = yield* store.get(sessionID);
208
+ if (recorded)
209
+ return recorded;
210
+ const parent = input.parentID ? yield* store.get(input.parentID) : undefined;
211
+ if (input.parentID && parent === undefined)
212
+ return yield* new NotFoundError({ sessionID: input.parentID });
213
+ const location = parent?.location ?? input.location;
214
+ if (location === undefined)
215
+ return yield* Effect.die(new Error("Session.create requires either location or an existing parentID"));
216
+ const project = yield* projects.resolve(location.directory);
217
+ const projected = yield* bus.publish(SessionEvent.Created, {
218
+ sessionID,
219
+ slug: Slug.create(),
220
+ version: app.version,
221
+ projectID: project.id,
222
+ parentID: input.parentID,
223
+ location,
224
+ subpath: RelativePath.make(path.relative(project.directory, location.directory).replaceAll("\\", "/")),
225
+ title: input.title,
226
+ agent: input.agent,
227
+ metadata: input.metadata ?? parent?.metadata,
228
+ model: input.model ? {
229
+ id: Model.ID.make(input.model.id),
230
+ providerID: input.model.providerID,
231
+ variant: input.model.variant
232
+ } : undefined
233
+ }, { location }).pipe(Effect.as({ type: "created" }), Effect.catchDefect((defect) => {
234
+ if (!(defect instanceof exports_projector.SessionAlreadyProjected)) {
235
+ return Effect.die(defect);
236
+ }
237
+ return store.get(sessionID).pipe(Effect.flatMap((session) => session ? Effect.succeed({ type: "existing", session }) : Effect.die(defect)));
238
+ }));
239
+ if (projected.type === "existing")
240
+ return projected.session;
241
+ return yield* result.get(sessionID).pipe(Effect.orDie);
242
+ }),
243
+ fork: Effect.fn("Session.fork")(function* (input) {
244
+ const parent = yield* result.get(input.sessionID);
245
+ const boundary = yield* db.select({ id: SessionMessageTable.id }).from(SessionMessageTable).where(and(eq(SessionMessageTable.session_id, input.sessionID), input.boundary.type === "before" ? eq(SessionMessageTable.id, input.boundary.messageID) : undefined)).orderBy(desc(SessionMessageTable.seq)).limit(1).get().pipe(Effect.orDie);
246
+ if (!boundary && input.boundary.type === "before")
247
+ return yield* new MessageNotFoundError({
248
+ sessionID: input.sessionID,
249
+ messageID: input.boundary.messageID
250
+ });
251
+ if (!boundary)
252
+ return yield* new ForkEmptyError({ sessionID: input.sessionID });
253
+ const sessionID = SessionSchema.ID.create();
254
+ const inherited = yield* db.transaction(() => Effect.all({
255
+ instructions: exports_instruction_state.current(db, parent.id),
256
+ instructionEntries: exports_instruction_entry.snapshot(db, parent.id)
257
+ })).pipe(Effect.orDie);
258
+ yield* bus.publish(SessionEvent.Forked, {
259
+ sessionID,
260
+ parentID: parent.id,
261
+ boundary: { ...input.boundary, messageID: boundary.id },
262
+ ...inherited
263
+ });
264
+ return yield* result.get(sessionID).pipe(Effect.orDie);
265
+ }),
266
+ get: (sessionID) => sessions.forSession(sessionID).get(),
267
+ environment: Effect.fn("Session.environment")(function* (input) {
268
+ yield* result.get(input.sessionID);
269
+ if (input.variables !== undefined)
270
+ yield* environments.set(input.sessionID, input.variables);
271
+ return yield* environments.get(input.sessionID);
272
+ }),
273
+ view: (input) => sessions.forSession(input.sessionID).view(input),
274
+ remove: Effect.fn("Session.remove")(function* (sessionID) {
275
+ const session = yield* result.get(sessionID);
276
+ yield* execution.interrupt(sessionID);
277
+ yield* execution.awaitIdle(sessionID);
278
+ yield* closeTransport(session);
279
+ const children = yield* result.list({ parentID: sessionID });
280
+ yield* Effect.forEach(children.data, (child) => result.remove(child.id), { concurrency: 1, discard: true });
281
+ yield* environments.clear(sessionID);
282
+ yield* bus.publish(SessionEvent.Deleted, { sessionID });
283
+ yield* bus.remove(sessionID);
284
+ }),
285
+ list: Effect.fn("Session.list")(function* (input = {}) {
286
+ const direction = input.anchor?.direction ?? "next";
287
+ const requestedOrder = input.order ?? "desc";
288
+ const order = direction === "previous" ? requestedOrder === "asc" ? "desc" : "asc" : requestedOrder;
289
+ const sortColumn = SessionTable.time_updated;
290
+ const conditions = [];
291
+ if ("directory" in input)
292
+ conditions.push(eq(SessionTable.directory, input.directory));
293
+ if (input.workspaceID)
294
+ conditions.push(eq(SessionTable.workspace_id, input.workspaceID));
295
+ if ("project" in input)
296
+ conditions.push(eq(SessionTable.project_id, input.project));
297
+ if ("project" in input && input.subpath !== undefined)
298
+ conditions.push(eq(SessionTable.path, input.subpath));
299
+ if (input.search)
300
+ conditions.push(like(SessionTable.title, `%${input.search}%`));
301
+ if (input.parentID !== undefined)
302
+ conditions.push(input.parentID === null ? isNull(SessionTable.parent_id) : eq(SessionTable.parent_id, input.parentID));
303
+ if (input.anchor) {
304
+ conditions.push(order === "asc" ? or(gt(sortColumn, input.anchor.time), and(eq(sortColumn, input.anchor.time), gt(SessionTable.id, input.anchor.id))) : or(lt(sortColumn, input.anchor.time), and(eq(sortColumn, input.anchor.time), lt(SessionTable.id, input.anchor.id))));
305
+ }
306
+ const query = db.select().from(SessionTable).where(conditions.length > 0 ? and(...conditions) : undefined).orderBy(order === "asc" ? asc(sortColumn) : desc(sortColumn), order === "asc" ? asc(SessionTable.id) : desc(SessionTable.id));
307
+ const rows = yield* (input.limit === undefined ? query.all() : query.limit(input.limit).all()).pipe(Effect.orDie);
308
+ return { data: (direction === "previous" ? rows.toReversed() : rows).map((row) => fromRow(row)) };
309
+ }),
310
+ messages: Effect.fn("Session.messages")(function* (input) {
311
+ yield* result.get(input.sessionID);
312
+ const direction = input.cursor?.direction ?? "next";
313
+ const requestedOrder = input.order ?? "desc";
314
+ const order = direction === "previous" ? requestedOrder === "asc" ? "desc" : "asc" : requestedOrder;
315
+ const anchor = input.cursor ? yield* db.select({ seq: SessionMessageTable.seq }).from(SessionMessageTable).where(and(eq(SessionMessageTable.session_id, input.sessionID), eq(SessionMessageTable.id, input.cursor.id))).get().pipe(Effect.orDie) : undefined;
316
+ if (input.cursor && !anchor)
317
+ return [];
318
+ const boundary = anchor ? order === "asc" ? gt(SessionMessageTable.seq, anchor.seq) : lt(SessionMessageTable.seq, anchor.seq) : undefined;
319
+ const where = boundary ? and(eq(SessionMessageTable.session_id, input.sessionID), boundary) : eq(SessionMessageTable.session_id, input.sessionID);
320
+ const query = db.select().from(SessionMessageTable).where(where).orderBy(order === "asc" ? asc(SessionMessageTable.seq) : desc(SessionMessageTable.seq));
321
+ const rows = yield* (input.limit === undefined ? query.all() : query.limit(input.limit).all()).pipe(Effect.orDie);
322
+ return yield* Effect.forEach(direction === "previous" ? rows.toReversed() : rows, exports_history.decodeMessageRow);
323
+ }),
324
+ message: (input) => sessions.forSession(input.sessionID).message(input.messageID),
325
+ updateMessage: (input) => sessions.forSession(input.sessionID).updateMessage(input),
326
+ context: Effect.fn("Session.context")(function* (sessionID) {
327
+ yield* result.get(sessionID);
328
+ return yield* store.context(sessionID);
329
+ }),
330
+ inbox: (sessionID) => sessions.forSession(sessionID).inbox(),
331
+ cancelInbox: (input) => sessions.forSession(input.sessionID).cancelInbox(input.inboxID),
332
+ steerInbox: (input) => sessions.forSession(input.sessionID).steerInbox(input.inboxID),
333
+ queueInbox: (input) => sessions.forSession(input.sessionID).queueInbox(input.inboxID),
334
+ log: (input) => Stream.unwrap(result.get(input.sessionID).pipe(Effect.as(bus.log({ aggregateID: input.sessionID, after: input.after, follow: input.follow })))).pipe(Stream.filter((item) => exports_bus.isSynced(item) || isDurableSessionEvent(item))),
335
+ prompt: (input) => sessions.forSession(input.sessionID).prompt(input),
336
+ generate: Effect.fn("Session.generate")(function* (input) {
337
+ const session = yield* result.get(input.sessionID);
338
+ const generate = yield* exports_generate.Service.pipe(Effect.provide(locations.get(session.location)));
339
+ return yield* generate.generate(input);
340
+ }),
341
+ command: Effect.fn("Session.command")(function* (input) {
342
+ const session = yield* result.get(input.sessionID);
343
+ const commands = yield* Effect.gen(function* () {
344
+ const plugins = yield* exports_supervisor_service.Service;
345
+ yield* plugins.flush;
346
+ return yield* exports_command.Service;
347
+ }).pipe(Effect.provide(locations.get(session.location)));
348
+ const delivery = input.delivery ?? "steer";
349
+ yield* commands.execute({
350
+ name: input.command,
351
+ invocation: {
352
+ sessionID: input.sessionID,
353
+ prompt: {
354
+ text: input.text,
355
+ files: input.files,
356
+ agents: input.agents,
357
+ skills: input.skills
358
+ },
359
+ delivery
360
+ }
361
+ });
362
+ }),
363
+ shell: (input) => sessions.forSession(input.sessionID).shell(input),
364
+ skill: Effect.fn("Session.skill")(function* (input) {
365
+ const session = yield* result.get(input.sessionID);
366
+ const skills = yield* exports_skill.Service.pipe(Effect.provide(locations.get(session.location)));
367
+ const skill = yield* skills.get(input.skill);
368
+ if (!skill)
369
+ return yield* new SkillNotFoundError({ skill: input.skill });
370
+ yield* bus.publish(SessionEvent.Skill.Activated, {
371
+ sessionID: input.sessionID,
372
+ id: skill.id,
373
+ name: skill.name,
374
+ text: skill.content
375
+ }, { id: input.id ? Event.ID.make(input.id.replace(/^msg_/, "evt_")) : undefined });
376
+ if (input.resume !== false)
377
+ yield* execution.resume(input.sessionID).pipe(Effect.ignore, Effect.forkIn(scope, { startImmediately: true }), Effect.asVoid);
378
+ }),
379
+ switchAgent: (input) => sessions.forSession(input.sessionID).switchAgent(input),
380
+ switchModel: (input) => sessions.forSession(input.sessionID).switchModel(input),
381
+ rename: (input) => sessions.forSession(input.sessionID).rename(input),
382
+ move: Effect.fn("Session.move")(function* (input) {
383
+ const current = yield* result.get(input.sessionID);
384
+ const value = input.directory.trim();
385
+ const expanded = value === "~" ? global.home : value.startsWith("~/") ? path.join(global.home, value.slice(2)) : value;
386
+ const directory = AbsolutePath.make(path.resolve(current.location.directory, expanded));
387
+ const info = yield* fs.stat(directory).pipe(Effect.orElseSucceed(() => {
388
+ return;
389
+ }));
390
+ if (!info)
391
+ return yield* new DestinationNotFoundError({ directory });
392
+ if (info.type !== "Directory")
393
+ return yield* new DestinationNotDirectoryError({ directory });
394
+ const project = yield* projects.resolve(directory);
395
+ const payload = {
396
+ location: exports_location.Ref.make({ directory, workspaceID: input.workspaceID }),
397
+ projectID: project.id,
398
+ subpath: RelativePath.make(path.relative(project.directory, directory).replaceAll("\\", "/"))
399
+ };
400
+ yield* exports_location.Service.pipe(Effect.provide(locations.get(payload.location)), Effect.scoped, Effect.catchCause((cause) => {
401
+ if (Cause.hasInterruptsOnly(cause))
402
+ return Effect.failCause(cause);
403
+ return Effect.logWarning("session move destination unavailable", { directory, cause }).pipe(Effect.andThen(Effect.fail(new DestinationUnavailableError({ directory }))));
404
+ }));
405
+ const item = exports_inbox.Item.make({
406
+ type: "move",
407
+ payload,
408
+ delivery: input.delivery ?? "steer"
409
+ });
410
+ yield* exports_inbox.serialized(input.sessionID, Effect.gen(function* () {
411
+ const latest = yield* result.get(input.sessionID);
412
+ const source = yield* fs.stat(latest.location.directory).pipe(Effect.orElseSucceed(() => {
413
+ return;
414
+ }));
415
+ if (!source || source.type !== "Directory") {
416
+ const cancellations = (yield* exports_inbox.moveIDs(db, input.sessionID)).map((item2) => [SessionEvent.InboxCancelled, { sessionID: input.sessionID, inboxID: item2.id }]);
417
+ const moved = [SessionEvent.Moved, { sessionID: input.sessionID, ...payload }];
418
+ const first = cancellations[0];
419
+ if (!first)
420
+ return yield* bus.publish(...moved).pipe(Effect.asVoid);
421
+ return yield* bus.publishAll([first, ...cancellations.slice(1), moved]);
422
+ }
423
+ yield* admission.admit({
424
+ id: SessionMessage.ID.create(),
425
+ sessionID: input.sessionID,
426
+ item
427
+ }).pipe(Effect.orDie);
428
+ }));
429
+ yield* execution.wake(input.sessionID);
430
+ }),
431
+ compact: (input) => sessions.forSession(input.sessionID).compact(input),
432
+ wait: (sessionID) => sessions.forSession(sessionID).wait(),
433
+ active: execution.active,
434
+ background: Effect.fn("Session.background")(function* (sessionID) {
435
+ yield* result.get(sessionID);
436
+ const backgrounded = yield* jobs.backgroundAll({ sessionID });
437
+ if (backgrounded.length === 0)
438
+ return;
439
+ yield* result.synthetic({
440
+ sessionID,
441
+ text: [
442
+ "User requested that active blocking work be moved to the background.",
443
+ "",
444
+ "Backgrounded work:",
445
+ ...backgrounded.map((job) => `- ${job.type}: ${job.title && job.title.length > 0 ? job.title : job.id}`),
446
+ "",
447
+ "The backgrounded work is still unfinished. Move on to other work if you can. If there is nothing else useful to do, finish your response. Do not wait, sleep, poll, or report the backgrounded work as complete until a later completion notification is added to the conversation."
448
+ ].join(`
449
+ `)
450
+ }).pipe(Effect.catchTag("Session.SyntheticConflictError", Effect.die));
451
+ }),
452
+ resume: (sessionID) => sessions.forSession(sessionID).resume(),
453
+ synthetic: (input) => sessions.forSession(input.sessionID).synthetic(input),
454
+ interrupt: (sessionID, options) => sessions.forSession(sessionID).interrupt(options),
455
+ revert: {
456
+ stage: (input) => sessions.forSession(input.sessionID).revert.stage(input),
457
+ clear: (sessionID) => sessions.forSession(sessionID).revert.clear(),
458
+ commit: (sessionID) => sessions.forSession(sessionID).revert.commit()
459
+ }
460
+ });
461
+ return result;
462
+ }));
463
+ var node = makeGlobalNode({
464
+ service: Service,
465
+ layer,
466
+ deps: [
467
+ exports_job.node,
468
+ exports_environment.node,
469
+ exports_database.node,
470
+ exports_bus.node,
471
+ exports_project.node,
472
+ exports_execution.node,
473
+ exports_store.node,
474
+ exports_inbox.node,
475
+ exports_location_service_map.node,
476
+ exports_projector.node,
477
+ FSUtil.node,
478
+ Global.node,
479
+ exports_app.node
480
+ ]
481
+ });
482
+
483
+ export { ListAnchor, ListInput, DestinationNotFoundError, DestinationNotDirectoryError, DestinationUnavailableError, Service, node, exports_session2 as exports_session };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  exports_supervisor
3
- } from "./job-ndwaftrw.js";
3
+ } from "./job-910ht18m.js";
4
4
  import {
5
5
  exports_location_watcher_policy
6
6
  } from "./job-6wkzvma0.js";
@@ -9,13 +9,13 @@ import {
9
9
  } from "./job-ns0sdez7.js";
10
10
  import {
11
11
  exports_location
12
- } from "./job-knm8yv8d.js";
12
+ } from "./job-dv2qtrbh.js";
13
13
  import {
14
14
  exports_git
15
15
  } from "./job-6jx6ecw1.js";
16
16
  import {
17
17
  exports_bus
18
- } from "./job-j925pnyr.js";
18
+ } from "./job-wcdz88tf.js";
19
19
  import {
20
20
  __export
21
21
  } from "./job-rvfvac9x.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  exports_source_directory
3
3
  } from "./job-6272rtjg.js";
4
- import {
5
- exports_sdk
6
- } from "./job-dnxrkvvt.js";
7
4
  import {
8
5
  exports_module
9
6
  } from "./job-g5tvq2z7.js";
7
+ import {
8
+ exports_sdk
9
+ } from "./job-g9rvq1b5.js";
10
10
  import {
11
11
  AbsolutePath
12
12
  } from "./job-j07kk359.js";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  exports_model
3
- } from "./job-e663gt7g.js";
3
+ } from "./job-dh8ckpgp.js";
4
4
  import {
5
5
  exports_integration
6
- } from "./job-9kxkwge9.js";
6
+ } from "./job-dmvhg2kz.js";
7
7
  import {
8
8
  exports_permission
9
- } from "./job-pjq3bk07.js";
9
+ } from "./job-bv2z3evd.js";
10
10
  import {
11
11
  AgentNotFoundError,
12
12
  StepFailedError,
13
13
  UserInterruptedError
14
- } from "./job-fb7nfzf2.js";
14
+ } from "./job-cgqn2mrm.js";
15
15
 
16
16
  // src/session/to-session-error.ts
17
17
  import { AIError, ToolFailure } from "@opencode-ai/ai";
@@ -3,22 +3,22 @@ import {
3
3
  } from "./job-c77ad0vh.js";
4
4
  import {
5
5
  exports_formatter
6
- } from "./job-vx4s9vef.js";
6
+ } from "./job-khy57ct7.js";
7
7
  import {
8
8
  exports_location_mutation
9
- } from "./job-tb3sg9tv.js";
9
+ } from "./job-b2jn2z3c.js";
10
10
  import {
11
11
  exports_permission
12
- } from "./job-pjq3bk07.js";
12
+ } from "./job-bv2z3evd.js";
13
13
  import {
14
14
  exports_file_mutation
15
- } from "./job-ccc48pq3.js";
15
+ } from "./job-7s30ncaq.js";
16
16
  import {
17
17
  exports_environment1 as exports_environment
18
- } from "./job-gmvz6tt0.js";
18
+ } from "./job-46crkez1.js";
19
19
  import {
20
20
  exports_location
21
- } from "./job-knm8yv8d.js";
21
+ } from "./job-dv2qtrbh.js";
22
22
  import {
23
23
  __export
24
24
  } from "./job-rvfvac9x.js";