@opencode-ai/core 0.0.0-dev-18672 → 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.
- package/dist/agent.js +55 -55
- package/dist/bus.js +54 -54
- package/dist/catalog.js +60 -60
- package/dist/chunks/{job-80da86tg.js → job-0ard5z33.js} +8 -8
- package/dist/chunks/{job-b00nnaq9.js → job-0j6yxnr1.js} +1 -1
- package/dist/chunks/{job-pdjydef9.js → job-0mhpcp7m.js} +8 -8
- package/dist/chunks/{job-fvvezzmj.js → job-0rw5mgza.js} +4 -4
- package/dist/chunks/{job-qfrdf4pp.js → job-0vhffh46.js} +2 -2
- package/dist/chunks/{job-65pq2awn.js → job-11rrpezh.js} +2 -2
- package/dist/chunks/{job-by5ahdmn.js → job-1emzt0wt.js} +2 -2
- package/dist/chunks/{job-kh6h1dnp.js → job-25d8xd9w.js} +4 -4
- package/dist/chunks/{job-d7tex8vw.js → job-2hnk029s.js} +4 -4
- package/dist/chunks/{job-xj36f829.js → job-2jft3yd5.js} +4 -4
- package/dist/chunks/{job-j2ycm9z4.js → job-2ptj9njb.js} +2 -2
- package/dist/chunks/{job-rf761s4s.js → job-2spyzfer.js} +1 -1
- package/dist/chunks/{job-wtw7jjye.js → job-2xxqbh3j.js} +11 -11
- package/dist/chunks/{job-8cwenzvp.js → job-30ngbap7.js} +1 -1
- package/dist/chunks/{job-n4dgw0xt.js → job-3asq9qd5.js} +5 -5
- package/dist/chunks/{job-k6144ffg.js → job-3fbdyapk.js} +4 -4
- package/dist/chunks/{job-zc8fs7ja.js → job-3fhw42bc.js} +9 -9
- package/dist/chunks/{job-7khw64yh.js → job-41qzzbpz.js} +2 -1
- package/dist/chunks/{job-8yw108g0.js → job-42wbxjzr.js} +1 -1
- package/dist/chunks/{job-6v09q7yq.js → job-46crkez1.js} +5 -5
- package/dist/chunks/{job-cgk0rd59.js → job-47gdfeya.js} +33 -33
- package/dist/chunks/{job-8jc2enar.js → job-48vsw0jw.js} +2 -2
- package/dist/chunks/{job-mpfgsdrh.js → job-4df507vk.js} +88 -80
- package/dist/chunks/{job-80zbkrcd.js → job-4seh17cq.js} +3 -3
- package/dist/chunks/{job-s01e1342.js → job-54fer0d0.js} +1 -1
- package/dist/chunks/job-57pbmnfc.js +33 -0
- package/dist/chunks/{job-xmwyxb9k.js → job-587cy5wm.js} +10 -10
- package/dist/chunks/{job-a47s3ea3.js → job-61m6ks43.js} +1 -1
- package/dist/chunks/job-6266zj4e.js +34 -0
- package/dist/chunks/{job-gync8gtj.js → job-6421j3fd.js} +4 -4
- package/dist/chunks/job-68jwqkqq.js +203 -0
- package/dist/chunks/{job-q4j6qz7v.js → job-762jys75.js} +2 -2
- package/dist/chunks/{job-enc3xapd.js → job-7b8p713x.js} +7 -7
- package/dist/chunks/{job-vmymyf43.js → job-7jp3zpyh.js} +23 -23
- package/dist/chunks/{job-jhtwpwqf.js → job-7s30ncaq.js} +1 -1
- package/dist/chunks/{job-9h09ngzj.js → job-813exka1.js} +3 -3
- package/dist/chunks/{job-d76sryr8.js → job-8hhxd7er.js} +11 -11
- package/dist/chunks/{job-e23pjz9a.js → job-8n8yxdw2.js} +4 -4
- package/dist/chunks/{job-mw6h1mdq.js → job-910ht18m.js} +5 -5
- package/dist/chunks/{job-gvsam8jx.js → job-9bg23qva.js} +9 -9
- package/dist/chunks/{job-cpa075bh.js → job-9e6s2wbs.js} +1 -1
- package/dist/chunks/{job-gqbtj7pd.js → job-9jtvr9f7.js} +2 -2
- package/dist/chunks/{job-t0tzp8as.js → job-9tna6sny.js} +8 -8
- package/dist/chunks/{job-neghybv4.js → job-9vbhxvnk.js} +1 -1
- package/dist/chunks/{job-3yszyekv.js → job-af6k8xdc.js} +11 -11
- package/dist/chunks/{job-8jx3zaaw.js → job-ajmf56n3.js} +13 -13
- package/dist/chunks/{job-e351sacj.js → job-ajzk3rs2.js} +3 -3
- package/dist/chunks/{job-grpar5rf.js → job-aksqn8ry.js} +1 -1
- package/dist/chunks/{job-ykh0dsvx.js → job-arxtz9h4.js} +1 -1
- package/dist/chunks/{job-yg6wn6pq.js → job-ave2dd3r.js} +53 -51
- package/dist/chunks/{job-9zvvrfjj.js → job-b2jn2z3c.js} +3 -3
- package/dist/chunks/{job-zfevs57b.js → job-b4jawdm2.js} +2 -2
- package/dist/chunks/{job-0a5cxvrd.js → job-bfbx87ej.js} +4 -4
- package/dist/chunks/{job-06d3f5y4.js → job-bn0n0hq9.js} +4 -4
- package/dist/chunks/{job-hz615c35.js → job-bv2z3evd.js} +11 -11
- package/dist/chunks/{job-pqsahr8v.js → job-bvavh6pe.js} +6 -6
- package/dist/chunks/{job-cqajeq32.js → job-caf5y5zg.js} +2 -2
- package/dist/chunks/{job-w7e1pt49.js → job-cdm889rz.js} +1 -1
- package/dist/chunks/job-cgqn2mrm.js +147 -0
- package/dist/chunks/{job-933372yf.js → job-cqr0z25w.js} +2 -2
- package/dist/chunks/job-cs1gk7aw.js +330 -0
- package/dist/chunks/{job-adszyp8d.js → job-dc495s0z.js} +4 -4
- package/dist/chunks/{job-j281xcgt.js → job-de5esam2.js} +1 -1
- package/dist/chunks/{job-fr340fdw.js → job-dh8ckpgp.js} +1 -1
- package/dist/chunks/{job-48pk08ny.js → job-dmvhg2kz.js} +5 -5
- package/dist/chunks/{job-y0vjfmkp.js → job-dn8yfcj9.js} +4 -4
- package/dist/chunks/{job-s6f237ya.js → job-dv2qtrbh.js} +1 -1
- package/dist/chunks/{job-mys0gzrb.js → job-e08y7spt.js} +2 -2
- package/dist/chunks/{job-etsqapn2.js → job-e43zqy1x.js} +13 -13
- package/dist/chunks/{job-t01vm81t.js → job-e4v0c7ed.js} +4 -4
- package/dist/chunks/{job-pfnc64fq.js → job-emzj2mnz.js} +1 -1
- package/dist/chunks/{job-kk6795c5.js → job-evztkcdr.js} +2 -2
- package/dist/chunks/{job-rar33brv.js → job-ey3px3v3.js} +4 -4
- package/dist/chunks/{job-aa4kwxwn.js → job-f59p8r33.js} +57 -57
- package/dist/chunks/{job-aa3y5eb6.js → job-fagh19yc.js} +8 -8
- package/dist/chunks/{job-d3070erz.js → job-fbd4gqt5.js} +8 -8
- package/dist/chunks/{job-5kmvzsep.js → job-fe8hw932.js} +2 -2
- package/dist/chunks/{job-xhg28nqg.js → job-fg9cms5n.js} +10 -10
- package/dist/chunks/{job-ecft2zb7.js → job-fjvbp1rw.js} +97 -71
- package/dist/chunks/{job-ynndvamt.js → job-g9rvq1b5.js} +1 -1
- package/dist/chunks/{job-j1x63ws2.js → job-g9vy0vzc.js} +4 -4
- package/dist/chunks/{job-h7c24q5e.js → job-h5cf492r.js} +3 -3
- package/dist/chunks/{job-qhne0bfz.js → job-h9bbwcgd.js} +2 -2
- package/dist/chunks/job-hym53p1s.js +120 -0
- package/dist/chunks/{job-akaxmhy2.js → job-jp8kwwgf.js} +1 -1
- package/dist/chunks/{job-8mn5mgyr.js → job-jq8sgn79.js} +4 -4
- package/dist/chunks/{job-fzbykpt4.js → job-jr5hd5p5.js} +2 -2
- package/dist/chunks/{job-hfz7a01m.js → job-k4t29e2h.js} +2 -2
- package/dist/chunks/{job-06qvjrg9.js → job-ka9jgdn3.js} +2 -2
- package/dist/chunks/{job-17v4eyzv.js → job-kaffyxmp.js} +19 -16
- package/dist/chunks/{job-dycyy74c.js → job-kh42a55x.js} +5 -5
- package/dist/chunks/{job-a4hq1eed.js → job-khy57ct7.js} +1 -1
- package/dist/chunks/{job-yd7nnpt2.js → job-knqwwztd.js} +2 -2
- package/dist/chunks/{job-0cswjekc.js → job-kpkmmjx3.js} +6 -6
- package/dist/chunks/{job-xb6rqpkw.js → job-m1fdqckz.js} +2 -2
- package/dist/chunks/{job-bys7bj13.js → job-m90gkrdr.js} +2 -2
- package/dist/chunks/{job-eqzr475n.js → job-me02a623.js} +1 -1
- package/dist/chunks/{job-j747drck.js → job-me5d9f22.js} +10 -10
- package/dist/chunks/{job-epm45yqe.js → job-mwzjwhar.js} +3 -3
- package/dist/chunks/{job-g8xqvtzt.js → job-n5tqbq9v.js} +7 -7
- package/dist/chunks/{job-f4m8j480.js → job-ndmfymhz.js} +1 -1
- package/dist/chunks/{job-1s4wnb4w.js → job-new463fc.js} +3 -3
- package/dist/chunks/{job-vpxts0t1.js → job-nh8pkdtv.js} +2 -2
- package/dist/chunks/{job-tc7x5j06.js → job-nvaw7ncd.js} +33 -33
- package/dist/chunks/{job-vs8jy4ry.js → job-p62bwtxn.js} +2 -2
- package/dist/chunks/{job-vejbzny4.js → job-pb8mvhpw.js} +1 -1
- package/dist/chunks/{job-zg4nw3xx.js → job-pkn40a12.js} +12 -12
- package/dist/chunks/{job-gchsqkce.js → job-pskv33a2.js} +8 -8
- package/dist/chunks/{job-cjtr52kr.js → job-q87p9xpa.js} +1 -1
- package/dist/chunks/{job-d5wq6f3r.js → job-qba7b96d.js} +6 -6
- package/dist/chunks/{job-xbzvfkpx.js → job-qjge9hjg.js} +3 -3
- package/dist/chunks/{job-jzvgq7me.js → job-qyg9b9kw.js} +5 -5
- package/dist/chunks/{job-bm5twtfa.js → job-r7gxb078.js} +1 -1
- package/dist/chunks/{job-hs06t8ty.js → job-rp954h3j.js} +4 -4
- package/dist/chunks/{job-k8xp7mcd.js → job-rvnd6a2n.js} +3 -3
- package/dist/chunks/{job-3303kydv.js → job-sx7e8x54.js} +43 -43
- package/dist/chunks/{job-s0gy3v9a.js → job-t0esftz3.js} +151 -151
- package/dist/chunks/{job-e6q6vz22.js → job-tjvgp8sx.js} +1 -1
- package/dist/chunks/{job-7yxdgcdg.js → job-tywfhfz1.js} +4 -4
- package/dist/chunks/{job-cwj9rdmj.js → job-v4rnjb1g.js} +1 -1
- package/dist/chunks/{job-pm83fkmc.js → job-v50dw4p6.js} +2 -2
- package/dist/chunks/{job-5nzn6awb.js → job-v9j3k8n3.js} +2 -2
- package/dist/chunks/{job-18pyn74f.js → job-wcdz88tf.js} +1 -1
- package/dist/chunks/{job-k828h0dz.js → job-x4rdp18t.js} +1 -1
- package/dist/chunks/{job-zm13y53a.js → job-x9rd2vnh.js} +1 -1
- package/dist/chunks/{job-nzav41nk.js → job-xygthxr3.js} +2 -2
- package/dist/chunks/{job-5dxkqmk4.js → job-y3sfr5g3.js} +5 -5
- package/dist/chunks/{job-hfqszyr8.js → job-ye4yygw2.js} +3 -3
- package/dist/chunks/job-yyjmndg0.js +483 -0
- package/dist/chunks/{job-1n129eaz.js → job-yypfb467.js} +4 -4
- package/dist/chunks/{job-byr8vxta.js → job-z136m2k9.js} +1 -1
- package/dist/chunks/{job-fvv9e4db.js → job-z3fjxbtv.js} +4 -4
- package/dist/chunks/{job-y8zz706c.js → job-z61mvmr2.js} +10 -10
- package/dist/chunks/{job-t8avpjr7.js → job-zjdkpeq1.js} +15 -13
- package/dist/chunks/{job-jw46cgkj.js → job-zq3dpz3n.js} +1 -1
- package/dist/chunks/{job-xz4ftad6.js → job-zr6va574.js} +2 -2
- package/dist/chunks/{job-ph8sywta.js → job-zrccwvnf.js} +3 -3
- package/dist/chunks/{job-65vce25m.js → job-zwajk1qj.js} +2 -2
- package/dist/chunks/{job-wt8zhbvy.js → job-zzhrh7mp.js} +2 -2
- package/dist/chunks/{job-33z7atwz.js → job-zzp6hyw7.js} +2 -2
- package/dist/command.js +55 -55
- package/dist/config/normalize.js +11 -11
- package/dist/config/plugin/agent.js +99 -99
- package/dist/config/plugin/command.js +84 -84
- package/dist/config/plugin/compaction.js +109 -109
- package/dist/config/plugin/entry-observer.js +82 -82
- package/dist/config/plugin/formatter.js +86 -86
- package/dist/config/plugin/image.js +98 -98
- package/dist/config/plugin/instruction.js +65 -65
- package/dist/config/plugin/location-watcher.js +84 -84
- package/dist/config/plugin/mcp.js +94 -94
- package/dist/config/plugin/policy.js +84 -84
- package/dist/config/plugin/provider.js +83 -83
- package/dist/config/plugin/reference.js +86 -86
- package/dist/config/plugin/shell.js +84 -84
- package/dist/config/plugin/skill-file.js +74 -74
- package/dist/config/plugin/skill.js +101 -101
- package/dist/config/plugin/snapshot.js +84 -84
- package/dist/config/plugin/source.js +83 -83
- package/dist/config/plugin/tool-output.js +86 -86
- package/dist/config/plugin/websearch.js +83 -83
- package/dist/config.js +82 -82
- package/dist/credential.js +56 -56
- package/dist/database/database.js +53 -53
- package/dist/database/drizzle/effect-sqlite/driver.js +8 -8
- package/dist/database/drizzle/effect-sqlite/index.js +8 -8
- package/dist/database/drizzle/effect-sqlite/session.js +7 -7
- package/dist/database/drizzle/index.js +9 -9
- package/dist/database/drizzle/sqlite-core/effect/db.js +5 -5
- package/dist/database/drizzle/sqlite-core/effect/index.js +16 -16
- package/dist/database/drizzle/sqlite-core/effect/session.js +6 -6
- package/dist/database/drizzle.js +9 -9
- package/dist/database/migration.gen.js +36 -36
- package/dist/database/migration.js +38 -38
- package/dist/database/v1-migration.bun.js +58 -58
- package/dist/effect/app-node-builder.js +283 -279
- package/dist/environment/environment.js +66 -66
- package/dist/environment/index.js +68 -68
- package/dist/event-logger.js +54 -54
- package/dist/file-mutation.js +67 -67
- package/dist/filesystem/location-watcher.js +257 -255
- package/dist/filesystem/search.js +69 -69
- package/dist/filesystem.js +70 -70
- package/dist/form.js +55 -55
- package/dist/formatter.js +63 -63
- package/dist/generate.js +64 -64
- package/dist/git.js +2 -2
- package/dist/github-copilot/chat/openai-compatible-chat-language-model.js +3 -3
- package/dist/github-copilot/copilot-provider.js +9 -9
- package/dist/github-copilot/responses/openai-responses-language-model.js +6 -6
- package/dist/github-copilot/responses/openai-responses-prepare-tools.js +4 -4
- package/dist/image/photon.js +71 -71
- package/dist/image.js +71 -71
- package/dist/instance.js +280 -276
- package/dist/instruction-discovery.js +56 -56
- package/dist/instructions/builtins.js +64 -64
- package/dist/integration.js +58 -58
- package/dist/job.js +57 -57
- package/dist/kv.js +54 -54
- package/dist/location-activity.js +65 -65
- package/dist/location-mutation.js +63 -63
- package/dist/location-service-map.js +62 -62
- package/dist/location-services.js +283 -279
- package/dist/location.js +62 -62
- package/dist/mcp/client.js +67 -67
- package/dist/mcp/index.js +72 -72
- package/dist/mcp/instructions.js +96 -96
- package/dist/mcp/stdio.js +67 -67
- package/dist/model-resolver.js +63 -63
- package/dist/models-dev.js +59 -59
- package/dist/permission/saved.js +55 -55
- package/dist/permission.js +72 -72
- package/dist/persistent-pty/index.js +55 -55
- package/dist/persistent-pty.js +55 -55
- package/dist/plugin/agent.js +73 -73
- package/dist/plugin/command.js +73 -73
- package/dist/plugin/host.js +161 -159
- package/dist/plugin/internal.js +251 -249
- package/dist/plugin/models-dev.js +60 -60
- package/dist/plugin/plan.js +73 -73
- package/dist/plugin/provider/azure.js +89 -89
- package/dist/plugin/provider/cloudflare-ai-gateway.js +88 -88
- package/dist/plugin/provider/cloudflare-workers-ai.js +88 -88
- package/dist/plugin/provider/configured.js +86 -86
- package/dist/plugin/provider/github-copilot.js +63 -63
- package/dist/plugin/provider/llmgateway.js +60 -60
- package/dist/plugin/provider/lmstudio.js +87 -87
- package/dist/plugin/provider/ollama.js +87 -87
- package/dist/plugin/provider/openai.js +60 -60
- package/dist/plugin/provider/opencode.js +70 -70
- package/dist/plugin/provider/vllm.js +87 -87
- package/dist/plugin/provider/xai.js +60 -60
- package/dist/plugin/provider.js +117 -117
- package/dist/plugin/runtime.js +149 -147
- package/dist/plugin/sdk.js +55 -55
- package/dist/plugin/skill.js +101 -101
- package/dist/plugin/supervisor.js +257 -255
- package/dist/plugin/vcs/git.js +64 -64
- package/dist/plugin/vcs/hg.js +64 -64
- package/dist/plugin/warming.js +83 -83
- package/dist/plugin/websearch/index.js +3 -3
- package/dist/plugin.js +162 -160
- package/dist/project/markers.js +57 -57
- package/dist/project.js +61 -61
- package/dist/pty.js +64 -64
- package/dist/reference/instructions.js +60 -60
- package/dist/reference.js +58 -58
- package/dist/repository-cache.js +3 -3
- package/dist/ripgrep.js +68 -68
- package/dist/session/compaction.js +85 -85
- package/dist/session/context.js +266 -264
- package/dist/session/error.js +23 -1
- package/dist/session/execution/restart.js +149 -147
- package/dist/session/execution.js +92 -92
- package/dist/session/generate-node.js +267 -265
- package/dist/session/history.js +58 -58
- package/dist/session/inbox.js +66 -70
- package/dist/session/instruction-entry.js +56 -56
- package/dist/session/instruction-state.js +2 -2
- package/dist/session/instructions.js +68 -68
- package/dist/session/model-request.js +105 -105
- package/dist/session/projector.js +61 -61
- package/dist/session/prompt-node.js +320 -0
- package/dist/session/prompt.js +130 -0
- package/dist/session/revert-node.js +320 -0
- package/dist/session/revert.js +74 -69
- package/dist/session/run-coordinator.js +1 -1
- package/dist/session/runner/index.js +65 -65
- package/dist/session/runner/llm.js +271 -269
- package/dist/session/runner/model.js +65 -65
- package/dist/session/runner/retry.js +54 -54
- package/dist/session/runner/step.js +112 -112
- package/dist/session/session.js +181 -0
- package/dist/session/stats.js +55 -55
- package/dist/session/store.js +59 -59
- package/dist/session/title.js +267 -265
- package/dist/session/to-session-error.js +84 -84
- package/dist/session/transfer.js +155 -153
- package/dist/session.js +161 -159
- package/dist/shell/parse.js +3 -3
- package/dist/shell.js +97 -97
- package/dist/skill/instructions.js +74 -74
- package/dist/skill.js +73 -73
- package/dist/snapshot.js +63 -63
- package/dist/tool/mcp.js +95 -95
- package/dist/tool/plugin/edit.js +84 -84
- package/dist/tool/plugin/glob.js +88 -88
- package/dist/tool/plugin/grep.js +88 -88
- package/dist/tool/plugin/patch.js +84 -84
- package/dist/tool/plugin/question.js +74 -74
- package/dist/tool/plugin/read.js +91 -91
- package/dist/tool/plugin/shell.js +152 -150
- package/dist/tool/plugin/skill.js +74 -74
- package/dist/tool/plugin/subagent.js +150 -148
- package/dist/tool/plugin/webfetch.js +73 -73
- package/dist/tool/plugin/websearch.js +77 -77
- package/dist/tool/plugin/write.js +84 -84
- package/dist/tool/read-filesystem.js +72 -72
- package/dist/tool-output.js +2 -2
- package/dist/tool.js +88 -88
- package/dist/types/instance.d.ts +2 -2
- package/dist/types/location-service-map.d.ts +2 -2
- package/dist/types/plugin/host.d.ts +4 -18
- package/dist/types/project.d.ts +1 -0
- package/dist/types/session/error.d.ts +115 -0
- package/dist/types/session/execution.d.ts +2 -0
- package/dist/types/session/inbox.d.ts +557 -176
- package/dist/types/session/prompt-node.d.ts +3 -0
- package/dist/types/session/prompt.d.ts +126 -0
- package/dist/types/session/revert-node.d.ts +3 -0
- package/dist/types/session/revert.d.ts +24 -29
- package/dist/types/session/run-coordinator.d.ts +2 -0
- package/dist/types/session/session.d.ts +232 -0
- package/dist/types/session.d.ts +14 -141
- package/dist/v1/config/config.js +9 -9
- package/dist/v1/config/migrate.js +10 -10
- package/dist/vcs.js +63 -63
- package/dist/websearch.js +57 -57
- package/dist/wellknown/plugin.js +58 -58
- package/dist/wellknown.js +57 -57
- package/dist/workspace.js +55 -55
- package/dist/worktree/git.js +3 -3
- package/dist/worktree.js +64 -64
- package/package.json +7 -7
- package/dist/chunks/job-3qa6q24r.js +0 -909
- package/dist/chunks/job-9qh9vr6x.js +0 -115
- package/dist/chunks/job-fb7nfzf2.js +0 -71
- package/dist/chunks/{job-nsb760q1.js → job-5y7h4bj8.js} +5 -5
- package/dist/chunks/{job-5rw2bdcb.js → job-682y27cc.js} +12 -12
- package/dist/chunks/{job-dyj7wa6j.js → job-6jx6ecw1.js} +3 -3
- package/dist/chunks/{job-bpvv8ms5.js → job-724jej9m.js} +9 -9
- package/dist/chunks/{job-7ccgh94t.js → job-f7q7a28y.js} +3 -3
- package/dist/chunks/{job-0687t5rp.js → job-hxcd35r2.js} +3 -3
- package/dist/chunks/{job-zn8r3q6e.js → job-hzjn00dj.js} +3 -3
- package/dist/chunks/{job-hygwwggg.js → job-pq2wqp7r.js} +19 -19
- package/dist/chunks/{job-3xrkrsj8.js → job-pzy8panz.js} +6 -6
- package/dist/chunks/{job-ddkxdmhk.js → job-qj3yfbbj.js} +7 -7
- package/dist/chunks/{job-1mfqr65w.js → job-qzvkc7f1.js} +84 -84
- /package/dist/chunks/{job-1xqp5xfg.js → job-s5a3kj32.js} +0 -0
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exports_mcp
|
|
3
|
-
} from "./job-
|
|
3
|
+
} from "./job-3fhw42bc.js";
|
|
4
4
|
import {
|
|
5
5
|
exports_session
|
|
6
|
-
} from "./job-
|
|
6
|
+
} from "./job-yyjmndg0.js";
|
|
7
7
|
import {
|
|
8
8
|
exports_persistent_pty
|
|
9
|
-
} from "./job-
|
|
10
|
-
import {
|
|
11
|
-
exports_agent
|
|
12
|
-
} from "./job-cpa075bh.js";
|
|
9
|
+
} from "./job-q87p9xpa.js";
|
|
13
10
|
import {
|
|
14
11
|
exports_location_service_map
|
|
15
12
|
} from "./job-zdkg1k91.js";
|
|
13
|
+
import {
|
|
14
|
+
exports_agent
|
|
15
|
+
} from "./job-9e6s2wbs.js";
|
|
16
16
|
import {
|
|
17
17
|
exports_job
|
|
18
|
-
} from "./job-
|
|
18
|
+
} from "./job-2hnk029s.js";
|
|
19
19
|
import {
|
|
20
20
|
exports_location
|
|
21
|
-
} from "./job-
|
|
21
|
+
} from "./job-dv2qtrbh.js";
|
|
22
22
|
import {
|
|
23
23
|
__export
|
|
24
24
|
} from "./job-rvfvac9x.js";
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
exports_app
|
|
3
|
-
} from "./job-50jxp3hw.js";
|
|
4
|
-
import {
|
|
5
|
-
exports_kv
|
|
6
|
-
} from "./job-8yw108g0.js";
|
|
7
1
|
import {
|
|
8
2
|
exports_model
|
|
9
3
|
} from "./job-r13w8t0w.js";
|
|
10
4
|
import {
|
|
11
|
-
|
|
12
|
-
} from "./job-
|
|
5
|
+
exports_app
|
|
6
|
+
} from "./job-50jxp3hw.js";
|
|
13
7
|
import {
|
|
14
8
|
exports_provider
|
|
15
9
|
} from "./job-krsqcmnj.js";
|
|
10
|
+
import {
|
|
11
|
+
exports_kv
|
|
12
|
+
} from "./job-42wbxjzr.js";
|
|
13
|
+
import {
|
|
14
|
+
exports_bus
|
|
15
|
+
} from "./job-wcdz88tf.js";
|
|
16
16
|
import {
|
|
17
17
|
__export
|
|
18
18
|
} from "./job-rvfvac9x.js";
|
|
@@ -2,23 +2,23 @@ import {
|
|
|
2
2
|
fileDiff
|
|
3
3
|
} from "./job-c77ad0vh.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./job-
|
|
5
|
+
exports_formatter
|
|
6
|
+
} from "./job-khy57ct7.js";
|
|
7
7
|
import {
|
|
8
8
|
exports_location_mutation
|
|
9
|
-
} from "./job-
|
|
10
|
-
import {
|
|
11
|
-
exports_environment1 as exports_environment
|
|
12
|
-
} from "./job-6v09q7yq.js";
|
|
9
|
+
} from "./job-b2jn2z3c.js";
|
|
13
10
|
import {
|
|
14
11
|
exports_permission
|
|
15
|
-
} from "./job-
|
|
12
|
+
} from "./job-bv2z3evd.js";
|
|
16
13
|
import {
|
|
17
|
-
|
|
18
|
-
} from "./job-
|
|
14
|
+
exports_file_mutation
|
|
15
|
+
} from "./job-7s30ncaq.js";
|
|
16
|
+
import {
|
|
17
|
+
exports_environment1 as exports_environment
|
|
18
|
+
} from "./job-46crkez1.js";
|
|
19
19
|
import {
|
|
20
20
|
exports_location
|
|
21
|
-
} from "./job-
|
|
21
|
+
} from "./job-dv2qtrbh.js";
|
|
22
22
|
import {
|
|
23
23
|
__export
|
|
24
24
|
} from "./job-rvfvac9x.js";
|
|
@@ -11,9 +11,15 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
SessionSchema
|
|
13
13
|
} from "./job-bjwj8hwv.js";
|
|
14
|
+
import {
|
|
15
|
+
exports_bus
|
|
16
|
+
} from "./job-wcdz88tf.js";
|
|
14
17
|
import {
|
|
15
18
|
exports_keyed_mutex
|
|
16
19
|
} from "./job-0kvmztkf.js";
|
|
20
|
+
import {
|
|
21
|
+
exports_database
|
|
22
|
+
} from "./job-rp954h3j.js";
|
|
17
23
|
import {
|
|
18
24
|
__export
|
|
19
25
|
} from "./job-rvfvac9x.js";
|
|
@@ -21,28 +27,26 @@ import {
|
|
|
21
27
|
// src/session/inbox.ts
|
|
22
28
|
var exports_inbox = {};
|
|
23
29
|
__export(exports_inbox, {
|
|
24
|
-
steer: () => steer,
|
|
25
30
|
serialized: () => serialized,
|
|
26
|
-
reconcile: () => reconcile,
|
|
27
|
-
queue: () => queue,
|
|
28
31
|
promote: () => promote,
|
|
29
32
|
projectDeliveryChanged: () => projectDeliveryChanged,
|
|
30
33
|
projectDelivered: () => projectDelivered,
|
|
31
34
|
projectCancelled: () => projectCancelled,
|
|
32
35
|
projectAdmitted: () => projectAdmitted,
|
|
36
|
+
node: () => node,
|
|
33
37
|
nextPromotable: () => nextPromotable,
|
|
34
38
|
moveIDs: () => moveIDs,
|
|
39
|
+
make: () => make,
|
|
35
40
|
list: () => list,
|
|
41
|
+
layer: () => layer,
|
|
36
42
|
has: () => has,
|
|
37
43
|
find: () => find,
|
|
38
|
-
cancel: () => cancel,
|
|
39
|
-
admitCompaction: () => admitCompaction,
|
|
40
|
-
admit: () => admit,
|
|
41
44
|
UserPayload: () => UserPayload,
|
|
42
45
|
User: () => User,
|
|
43
46
|
SyntheticPayload: () => SyntheticPayload,
|
|
44
47
|
Synthetic: () => Synthetic,
|
|
45
48
|
SessionInbox: () => exports_inbox,
|
|
49
|
+
Service: () => Service,
|
|
46
50
|
MovePayload: () => MovePayload,
|
|
47
51
|
Move: () => Move,
|
|
48
52
|
LifecycleConflict: () => LifecycleConflict,
|
|
@@ -53,7 +57,8 @@ __export(exports_inbox, {
|
|
|
53
57
|
Compaction: () => Compaction
|
|
54
58
|
});
|
|
55
59
|
import { and, asc, eq, or } from "drizzle-orm";
|
|
56
|
-
import { DateTime, Effect, Schema } from "effect";
|
|
60
|
+
import { Context, DateTime, Effect, Layer, Schema } from "effect";
|
|
61
|
+
import { makeGlobalNode } from "@opencode-ai/util/effect/app-node";
|
|
57
62
|
import {
|
|
58
63
|
Compaction,
|
|
59
64
|
CompactionPayload,
|
|
@@ -83,6 +88,9 @@ class LifecycleConflict extends Schema.TaggedError()("SessionInbox.LifecycleConf
|
|
|
83
88
|
id: SessionMessage.ID
|
|
84
89
|
}) {
|
|
85
90
|
}
|
|
91
|
+
function matches(stored, request) {
|
|
92
|
+
return stored.sessionID === request.sessionID && stored.type === request.type;
|
|
93
|
+
}
|
|
86
94
|
var fromRow = (row) => {
|
|
87
95
|
const base = {
|
|
88
96
|
id: SessionMessage.ID.make(row.id),
|
|
@@ -123,7 +131,7 @@ var promotedFromMessage = Effect.fn("SessionInbox.promotedFromMessage")(function
|
|
|
123
131
|
if (row === undefined)
|
|
124
132
|
return;
|
|
125
133
|
if (row.session_id !== sessionID || row.type !== "user" && row.type !== "synthetic")
|
|
126
|
-
return yield*
|
|
134
|
+
return yield* new LifecycleConflict({ id });
|
|
127
135
|
const message = decodeMessage({ ...row.data, id: row.id, type: row.type });
|
|
128
136
|
const base = { id, sessionID, timeCreated: message.time.created, delivery };
|
|
129
137
|
if (message.type === "user")
|
|
@@ -138,55 +146,87 @@ var promotedFromMessage = Effect.fn("SessionInbox.promotedFromMessage")(function
|
|
|
138
146
|
type: "synthetic",
|
|
139
147
|
payload: decodeSynthetic(message)
|
|
140
148
|
});
|
|
141
|
-
return yield*
|
|
149
|
+
return yield* new LifecycleConflict({ id });
|
|
142
150
|
});
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
151
|
+
|
|
152
|
+
class Service extends Context.Service()("@opencode/SessionInbox") {
|
|
153
|
+
}
|
|
154
|
+
var make = Effect.fn("SessionInbox.make")(function* () {
|
|
155
|
+
const database = yield* exports_database.Service;
|
|
156
|
+
const db = database.db;
|
|
157
|
+
const bus = yield* exports_bus.Service;
|
|
158
|
+
const reconcile = Effect.fn("SessionInbox.reconcile")(function* (request) {
|
|
159
|
+
const existing = (yield* find(db, request.id)) ?? (yield* promotedFromMessage(db, request.sessionID, request.id, request.delivery));
|
|
160
|
+
if (existing === undefined)
|
|
161
|
+
return;
|
|
162
|
+
if (existing.type === "compaction" || !matches(existing, request))
|
|
163
|
+
return yield* new LifecycleConflict({ id: request.id });
|
|
155
164
|
return existing;
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
165
|
+
});
|
|
166
|
+
const admit = Effect.fn("SessionInbox.admit")(function* (request) {
|
|
167
|
+
const existing = yield* reconcile({ ...request, type: request.item.type, delivery: request.item.delivery });
|
|
168
|
+
if (existing !== undefined)
|
|
169
|
+
return existing;
|
|
170
|
+
const admitted = yield* bus.publish(SessionEvent.InboxEnqueued, {
|
|
171
|
+
inboxID: request.id,
|
|
172
|
+
sessionID: request.sessionID,
|
|
173
|
+
item: request.item
|
|
174
|
+
}).pipe(Effect.map((event) => Info.make({
|
|
175
|
+
id: request.id,
|
|
176
|
+
sessionID: request.sessionID,
|
|
177
|
+
timeCreated: DateTime.makeUnsafe(event.created),
|
|
178
|
+
...request.item
|
|
179
|
+
})), Effect.catchDefect((defect) => defect instanceof LifecycleConflict ? find(db, request.id).pipe(Effect.flatMap((stored) => stored === undefined ? Effect.fail(defect) : Effect.succeed(stored))) : Effect.die(defect)));
|
|
180
|
+
if (!matches(admitted, { ...request, type: request.item.type }))
|
|
181
|
+
return yield* new LifecycleConflict({ id: request.id });
|
|
182
|
+
return admitted;
|
|
183
|
+
});
|
|
184
|
+
const admitCompaction = Effect.fn("SessionInbox.admitCompaction")(function* (input) {
|
|
185
|
+
return yield* serialized(input.sessionID, Effect.gen(function* () {
|
|
186
|
+
const exact = yield* find(db, input.id);
|
|
187
|
+
if (exact) {
|
|
188
|
+
if (exact.type === "compaction" && exact.sessionID === input.sessionID)
|
|
189
|
+
return exact;
|
|
190
|
+
return yield* new LifecycleConflict({ id: input.id });
|
|
191
|
+
}
|
|
192
|
+
if (yield* promotedFromMessage(db, input.sessionID, input.id, input.delivery))
|
|
193
|
+
return yield* new LifecycleConflict({ id: input.id });
|
|
194
|
+
const pending = (yield* list(db, input.sessionID)).find((item) => item.type === "compaction");
|
|
195
|
+
if (pending)
|
|
196
|
+
return pending;
|
|
197
|
+
return yield* admit({
|
|
198
|
+
id: input.id,
|
|
199
|
+
sessionID: input.sessionID,
|
|
200
|
+
item: { type: "compaction", payload: {}, delivery: Delivery.make(input.delivery) }
|
|
201
|
+
});
|
|
202
|
+
}));
|
|
203
|
+
});
|
|
204
|
+
const cancel = Effect.fn("SessionInbox.cancel")((input) => publishMutation(input, bus.publish(SessionEvent.InboxCancelled, {
|
|
205
|
+
sessionID: input.sessionID,
|
|
206
|
+
inboxID: input.id
|
|
207
|
+
})));
|
|
208
|
+
const steer = Effect.fn("SessionInbox.steer")((input) => publishMutation(input, bus.publish(SessionEvent.InboxDeliveryChanged, {
|
|
209
|
+
sessionID: input.sessionID,
|
|
210
|
+
inboxID: input.id,
|
|
211
|
+
delivery: "steer"
|
|
212
|
+
})));
|
|
213
|
+
const queue = Effect.fn("SessionInbox.queue")((input) => publishMutation(input, bus.publish(SessionEvent.InboxDeliveryChanged, {
|
|
214
|
+
sessionID: input.sessionID,
|
|
215
|
+
inboxID: input.id,
|
|
216
|
+
delivery: "queue"
|
|
217
|
+
})));
|
|
218
|
+
return {
|
|
219
|
+
list: (sessionID) => list(db, sessionID),
|
|
220
|
+
reconcile,
|
|
221
|
+
admit,
|
|
222
|
+
admitCompaction,
|
|
223
|
+
cancel,
|
|
224
|
+
steer,
|
|
225
|
+
queue
|
|
226
|
+
};
|
|
189
227
|
});
|
|
228
|
+
var layer = Layer.effect(Service, make());
|
|
229
|
+
var node = makeGlobalNode({ service: Service, layer, deps: [exports_database.node, exports_bus.node] });
|
|
190
230
|
var projectAdmitted = Effect.fn("SessionInbox.projectAdmitted")(function* (db, request) {
|
|
191
231
|
const message = yield* db.select({ id: SessionMessageTable.id }).from(SessionMessageTable).where(eq(SessionMessageTable.id, request.id)).get().pipe(Effect.orDie);
|
|
192
232
|
if (message !== undefined)
|
|
@@ -245,21 +285,7 @@ var has = Effect.fn("SessionInbox.has")(function* (db, sessionID, scope) {
|
|
|
245
285
|
const row = yield* db.select({ id: SessionInboxTable.id }).from(SessionInboxTable).where(and(eq(SessionInboxTable.session_id, sessionID), scope === "input" ? or(eq(SessionInboxTable.delivery, "steer"), eq(SessionInboxTable.delivery, "queue")) : eq(SessionInboxTable.delivery, scope))).limit(1).get().pipe(Effect.orDie);
|
|
246
286
|
return row !== undefined;
|
|
247
287
|
});
|
|
248
|
-
var publishMutation = (input, effect) => serialized(input.sessionID, effect).pipe(Effect.asVoid);
|
|
249
|
-
var cancel = Effect.fn("SessionInbox.cancel")((bus, input) => publishMutation(input, bus.publish(SessionEvent.InboxCancelled, {
|
|
250
|
-
sessionID: input.sessionID,
|
|
251
|
-
inboxID: input.id
|
|
252
|
-
})));
|
|
253
|
-
var steer = Effect.fn("SessionInbox.steer")((bus, input) => publishMutation(input, bus.publish(SessionEvent.InboxDeliveryChanged, {
|
|
254
|
-
sessionID: input.sessionID,
|
|
255
|
-
inboxID: input.id,
|
|
256
|
-
delivery: "steer"
|
|
257
|
-
})));
|
|
258
|
-
var queue = Effect.fn("SessionInbox.queue")((bus, input) => publishMutation(input, bus.publish(SessionEvent.InboxDeliveryChanged, {
|
|
259
|
-
sessionID: input.sessionID,
|
|
260
|
-
inboxID: input.id,
|
|
261
|
-
delivery: "queue"
|
|
262
|
-
})));
|
|
288
|
+
var publishMutation = (input, effect) => serialized(input.sessionID, effect).pipe(Effect.asVoid, Effect.catchDefect((defect) => defect instanceof LifecycleConflict ? Effect.fail(defect) : Effect.die(defect)));
|
|
263
289
|
var publish = Effect.fn("SessionInbox.publish")(function* (db, bus, sessionID, rows) {
|
|
264
290
|
yield* Effect.forEach(rows, (row) => {
|
|
265
291
|
const entry = fromRow(row);
|
|
@@ -268,7 +294,7 @@ var publish = Effect.fn("SessionInbox.publish")(function* (db, bus, sessionID, r
|
|
|
268
294
|
return bus.publish(SessionEvent.InboxDelivered, {
|
|
269
295
|
sessionID,
|
|
270
296
|
inboxID: entry.id
|
|
271
|
-
}).pipe(Effect.catchDefect((defect) => defect instanceof LifecycleConflict ? promotedFromMessage(db, sessionID, entry.id, entry.delivery).pipe(Effect.flatMap((stored) => stored !== undefined ? Effect.void : Effect.die(defect))) : Effect.die(defect)));
|
|
297
|
+
}).pipe(Effect.catchDefect((defect) => defect instanceof LifecycleConflict ? promotedFromMessage(db, sessionID, entry.id, entry.delivery).pipe(Effect.flatMap((stored) => stored !== undefined ? Effect.void : Effect.die(defect)), Effect.orDie) : Effect.die(defect)));
|
|
272
298
|
}, { discard: true });
|
|
273
299
|
return rows.length;
|
|
274
300
|
});
|
|
@@ -290,4 +316,4 @@ var promote = Effect.fn("SessionInbox.promote")(function* (db, bus, sessionID, s
|
|
|
290
316
|
});
|
|
291
317
|
var pendingSteers = (db, sessionID) => db.select().from(SessionInboxTable).where(and(eq(SessionInboxTable.session_id, sessionID), eq(SessionInboxTable.delivery, "steer"))).orderBy(asc(SessionInboxTable.enqueued_seq)).all().pipe(Effect.orDie);
|
|
292
318
|
|
|
293
|
-
export { Compaction, CompactionPayload, Delivery, Info, Item, Move, MovePayload, Synthetic, SyntheticPayload, User, UserPayload, serialized, LifecycleConflict, find,
|
|
319
|
+
export { Compaction, CompactionPayload, Delivery, Info, Item, Move, MovePayload, Synthetic, SyntheticPayload, User, UserPayload, serialized, LifecycleConflict, find, Service, make, layer, node, projectAdmitted, projectDelivered, projectCancelled, projectDeliveryChanged, list, moveIDs, nextPromotable, has, promote, exports_inbox };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
exports_entry_observer
|
|
3
|
-
} from "./job-kp1t5rcy.js";
|
|
4
1
|
import {
|
|
5
2
|
exports_location_watcher_policy
|
|
6
3
|
} from "./job-6wkzvma0.js";
|
|
4
|
+
import {
|
|
5
|
+
exports_entry_observer
|
|
6
|
+
} from "./job-kp1t5rcy.js";
|
|
7
7
|
import {
|
|
8
8
|
exports_config
|
|
9
|
-
} from "./job-
|
|
9
|
+
} from "./job-pkn40a12.js";
|
|
10
10
|
import {
|
|
11
11
|
__export
|
|
12
12
|
} from "./job-rvfvac9x.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exports_mcp
|
|
3
|
-
} from "./job-
|
|
3
|
+
} from "./job-3fhw42bc.js";
|
|
4
4
|
import {
|
|
5
5
|
exports_location
|
|
6
|
-
} from "./job-
|
|
6
|
+
} from "./job-dv2qtrbh.js";
|
|
7
7
|
import {
|
|
8
8
|
exports_bus
|
|
9
|
-
} from "./job-
|
|
9
|
+
} from "./job-wcdz88tf.js";
|
|
10
10
|
import {
|
|
11
11
|
__export
|
|
12
12
|
} from "./job-rvfvac9x.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exports_history
|
|
3
|
-
} from "./job-
|
|
3
|
+
} from "./job-n5tqbq9v.js";
|
|
4
4
|
import {
|
|
5
5
|
fromRow
|
|
6
6
|
} from "./job-264e1nfp.js";
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "./job-q606pcse.js";
|
|
11
11
|
import {
|
|
12
12
|
exports_database
|
|
13
|
-
} from "./job-
|
|
13
|
+
} from "./job-rp954h3j.js";
|
|
14
14
|
import {
|
|
15
15
|
__export
|
|
16
16
|
} from "./job-rvfvac9x.js";
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import {
|
|
2
|
+
exports_supervisor_service
|
|
3
|
+
} from "./job-s33fw6zm.js";
|
|
4
|
+
import {
|
|
5
|
+
exports_snapshot
|
|
6
|
+
} from "./job-nh8pkdtv.js";
|
|
7
|
+
import {
|
|
8
|
+
MessageNotFoundError
|
|
9
|
+
} from "./job-cgqn2mrm.js";
|
|
10
|
+
import {
|
|
11
|
+
SessionMessageTable
|
|
12
|
+
} from "./job-q606pcse.js";
|
|
13
|
+
import {
|
|
14
|
+
SessionEvent
|
|
15
|
+
} from "./job-a83yvq99.js";
|
|
16
|
+
import {
|
|
17
|
+
SessionMessage
|
|
18
|
+
} from "./job-8rpfd2h6.js";
|
|
19
|
+
import {
|
|
20
|
+
exports_bus
|
|
21
|
+
} from "./job-wcdz88tf.js";
|
|
22
|
+
import {
|
|
23
|
+
exports_database
|
|
24
|
+
} from "./job-rp954h3j.js";
|
|
25
|
+
import {
|
|
26
|
+
RelativePath
|
|
27
|
+
} from "./job-j07kk359.js";
|
|
28
|
+
import {
|
|
29
|
+
__export
|
|
30
|
+
} from "./job-rvfvac9x.js";
|
|
31
|
+
|
|
32
|
+
// src/session/revert.ts
|
|
33
|
+
var exports_revert = {};
|
|
34
|
+
__export(exports_revert, {
|
|
35
|
+
make: () => make,
|
|
36
|
+
layer: () => layer,
|
|
37
|
+
commit: () => commit,
|
|
38
|
+
SessionRevert: () => exports_revert,
|
|
39
|
+
Service: () => Service,
|
|
40
|
+
MessageNotFoundError: () => MessageNotFoundError
|
|
41
|
+
});
|
|
42
|
+
import { and, asc, eq, gt } from "drizzle-orm";
|
|
43
|
+
import { Context, Effect, Layer, Schema } from "effect";
|
|
44
|
+
class Service extends Context.Service()("@opencode/SessionRevert") {
|
|
45
|
+
}
|
|
46
|
+
var make = Effect.fn("SessionRevert.make")(function* () {
|
|
47
|
+
const database = yield* exports_database.Service;
|
|
48
|
+
const bus = yield* exports_bus.Service;
|
|
49
|
+
const plugins = yield* exports_supervisor_service.Service;
|
|
50
|
+
const snapshot = yield* exports_snapshot.Service;
|
|
51
|
+
const stage = Effect.fn("SessionRevert.stage")(function* (input) {
|
|
52
|
+
yield* plugins.flush;
|
|
53
|
+
const original = input.session.revert?.snapshot ? exports_snapshot.ID.make(input.session.revert.snapshot) : yield* snapshot.capture();
|
|
54
|
+
const next = yield* plan(database.db, { sessionID: input.session.id, messageID: input.messageID });
|
|
55
|
+
const restore = new Map;
|
|
56
|
+
if (original) {
|
|
57
|
+
for (const file of input.session.revert?.files ?? [])
|
|
58
|
+
restore.set(RelativePath.make(file.file), original);
|
|
59
|
+
}
|
|
60
|
+
if (input.files !== false)
|
|
61
|
+
for (const [file, tree] of next)
|
|
62
|
+
restore.set(file, tree);
|
|
63
|
+
if (restore.size)
|
|
64
|
+
yield* snapshot.restore({ files: restore });
|
|
65
|
+
const paths = input.files === false ? [] : Array.from(next.keys());
|
|
66
|
+
const files = original ? yield* snapshot.diff({ from: original, to: (yield* snapshot.capture()) ?? original, paths }) : [];
|
|
67
|
+
const revert = {
|
|
68
|
+
messageID: input.messageID,
|
|
69
|
+
snapshot: original,
|
|
70
|
+
files
|
|
71
|
+
};
|
|
72
|
+
yield* bus.publish(SessionEvent.RevertEvent.Staged, {
|
|
73
|
+
sessionID: input.session.id,
|
|
74
|
+
revert
|
|
75
|
+
});
|
|
76
|
+
return revert;
|
|
77
|
+
});
|
|
78
|
+
const clear = Effect.fn("SessionRevert.clear")(function* (session) {
|
|
79
|
+
yield* plugins.flush;
|
|
80
|
+
if (!session.revert)
|
|
81
|
+
return;
|
|
82
|
+
const original = session.revert.snapshot ? exports_snapshot.ID.make(session.revert.snapshot) : undefined;
|
|
83
|
+
if (original)
|
|
84
|
+
yield* snapshot.restore({
|
|
85
|
+
files: new Map((session.revert.files ?? []).map((file) => [RelativePath.make(file.file), original]))
|
|
86
|
+
});
|
|
87
|
+
yield* bus.publish(SessionEvent.RevertEvent.Cleared, {
|
|
88
|
+
sessionID: session.id
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
return { stage, clear };
|
|
92
|
+
});
|
|
93
|
+
var layer = Layer.effect(Service, make());
|
|
94
|
+
var commit = Effect.fn("SessionRevert.commit")(function* (bus, session) {
|
|
95
|
+
if (!session.revert)
|
|
96
|
+
return;
|
|
97
|
+
yield* bus.publish(SessionEvent.RevertEvent.Committed, {
|
|
98
|
+
sessionID: session.id,
|
|
99
|
+
to: session.revert.messageID
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
var plan = Effect.fn("SessionRevert.plan")(function* (db, input) {
|
|
103
|
+
const boundary = yield* db.select({ seq: SessionMessageTable.seq }).from(SessionMessageTable).where(and(eq(SessionMessageTable.session_id, input.sessionID), eq(SessionMessageTable.id, input.messageID))).get().pipe(Effect.orDie);
|
|
104
|
+
if (!boundary)
|
|
105
|
+
return yield* new MessageNotFoundError(input);
|
|
106
|
+
const rows = yield* db.select().from(SessionMessageTable).where(and(eq(SessionMessageTable.session_id, input.sessionID), eq(SessionMessageTable.type, "assistant"), gt(SessionMessageTable.seq, boundary.seq))).orderBy(asc(SessionMessageTable.seq)).all().pipe(Effect.orDie);
|
|
107
|
+
const decode = Schema.decodeUnknownEffect(SessionMessage.Info);
|
|
108
|
+
const files = new Map;
|
|
109
|
+
for (const row of rows) {
|
|
110
|
+
const message = yield* decode({ ...row.data, id: row.id, type: row.type }).pipe(Effect.orDie);
|
|
111
|
+
if (message.type !== "assistant" || !message.snapshot?.start)
|
|
112
|
+
continue;
|
|
113
|
+
for (const file of message.snapshot.files ?? [])
|
|
114
|
+
if (!files.has(file))
|
|
115
|
+
files.set(file, exports_snapshot.ID.make(message.snapshot.start));
|
|
116
|
+
}
|
|
117
|
+
return files;
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
export { Service, make, layer, commit, exports_revert };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exports_entry_observer
|
|
3
3
|
} from "./job-kp1t5rcy.js";
|
|
4
|
-
import {
|
|
5
|
-
exports_image
|
|
6
|
-
} from "./job-1xqp5xfg.js";
|
|
7
4
|
import {
|
|
8
5
|
exports_config
|
|
9
|
-
} from "./job-
|
|
6
|
+
} from "./job-pkn40a12.js";
|
|
7
|
+
import {
|
|
8
|
+
exports_image
|
|
9
|
+
} from "./job-s5a3kj32.js";
|
|
10
10
|
import {
|
|
11
11
|
__export
|
|
12
12
|
} from "./job-rvfvac9x.js";
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
} from "./job-kg1345f7.js";
|
|
4
4
|
import {
|
|
5
5
|
exports_ripgrep
|
|
6
|
-
} from "./job-
|
|
6
|
+
} from "./job-cdm889rz.js";
|
|
7
7
|
import {
|
|
8
8
|
exports_location
|
|
9
|
-
} from "./job-
|
|
9
|
+
} from "./job-dv2qtrbh.js";
|
|
10
10
|
import {
|
|
11
11
|
RelativePath
|
|
12
12
|
} from "./job-j07kk359.js";
|
|
@@ -2,32 +2,32 @@ import {
|
|
|
2
2
|
exports_environment as exports_environment2
|
|
3
3
|
} from "./job-6ky7rqk7.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./job-
|
|
7
|
-
import {
|
|
8
|
-
exports_tool_output
|
|
9
|
-
} from "./job-7ccgh94t.js";
|
|
5
|
+
exports_select
|
|
6
|
+
} from "./job-bbhffenw.js";
|
|
10
7
|
import {
|
|
11
|
-
|
|
12
|
-
} from "./job-
|
|
8
|
+
exports_config
|
|
9
|
+
} from "./job-pkn40a12.js";
|
|
13
10
|
import {
|
|
14
11
|
exports_hooks
|
|
15
12
|
} from "./job-v2wshkax.js";
|
|
16
|
-
import {
|
|
17
|
-
exports_select
|
|
18
|
-
} from "./job-bbhffenw.js";
|
|
19
13
|
import {
|
|
20
14
|
SessionSchema
|
|
21
15
|
} from "./job-bjwj8hwv.js";
|
|
22
16
|
import {
|
|
23
|
-
|
|
24
|
-
} from "./job-
|
|
17
|
+
exports_environment1 as exports_environment
|
|
18
|
+
} from "./job-46crkez1.js";
|
|
25
19
|
import {
|
|
26
20
|
exports_location
|
|
27
|
-
} from "./job-
|
|
21
|
+
} from "./job-dv2qtrbh.js";
|
|
28
22
|
import {
|
|
29
23
|
exports_bus
|
|
30
|
-
} from "./job-
|
|
24
|
+
} from "./job-wcdz88tf.js";
|
|
25
|
+
import {
|
|
26
|
+
exports_tool_output
|
|
27
|
+
} from "./job-f7q7a28y.js";
|
|
28
|
+
import {
|
|
29
|
+
exports_file_retention
|
|
30
|
+
} from "./job-hp6rpdnc.js";
|
|
31
31
|
import {
|
|
32
32
|
__export,
|
|
33
33
|
__require
|
|
@@ -282,8 +282,11 @@ var layer = () => Layer.effect(Service, Effect.gen(function* () {
|
|
|
282
282
|
break;
|
|
283
283
|
yield* removeCommand(oldest);
|
|
284
284
|
}
|
|
285
|
-
|
|
286
|
-
|
|
285
|
+
const timeoutFiber = command2.timeoutFiber;
|
|
286
|
+
command2.timeout = undefined;
|
|
287
|
+
command2.timeoutFiber = undefined;
|
|
288
|
+
if (timeoutFiber)
|
|
289
|
+
yield* Fiber.interrupt(timeoutFiber);
|
|
287
290
|
});
|
|
288
291
|
command2.timeout = (duration) => Effect.gen(function* () {
|
|
289
292
|
if (command2.timeoutFiber)
|