summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-10 23:52:12 -0400
committerGitHub <[email protected]>2026-04-10 23:52:12 -0400
commit5e3dc8099921952925b6a70853cb06f5e4bebcdc (patch)
treeff83dd63b985b5de8f542ee27a804a8e6eb2bd03
parentd84cc337428d3825caba14f97ec463c7781b5c77 (diff)
downloadopencode-5e3dc8099921952925b6a70853cb06f5e4bebcdc.tar.gz
opencode-5e3dc8099921952925b6a70853cb06f5e4bebcdc.zip
refactor: collapse command facade (#21981)
-rw-r--r--packages/opencode/src/command/index.ts7
-rw-r--r--packages/opencode/src/effect/bootstrap-runtime.ts9
-rw-r--r--packages/opencode/src/project/bootstrap.ts6
-rw-r--r--packages/opencode/src/server/instance.ts2
4 files changed, 13 insertions, 11 deletions
diff --git a/packages/opencode/src/command/index.ts b/packages/opencode/src/command/index.ts
index 0c5ef67f4..42f53301b 100644
--- a/packages/opencode/src/command/index.ts
+++ b/packages/opencode/src/command/index.ts
@@ -1,6 +1,5 @@
import { BusEvent } from "@/bus/bus-event"
import { InstanceState } from "@/effect/instance-state"
-import { makeRuntime } from "@/effect/run-service"
import type { InstanceContext } from "@/project/instance"
import { SessionID, MessageID } from "@/session/schema"
import { Effect, Layer, Context } from "effect"
@@ -189,10 +188,4 @@ export namespace Command {
Layer.provide(MCP.defaultLayer),
Layer.provide(Skill.defaultLayer),
)
-
- const { runPromise } = makeRuntime(Service, defaultLayer)
-
- export async function list() {
- return runPromise((svc) => svc.list())
- }
}
diff --git a/packages/opencode/src/effect/bootstrap-runtime.ts b/packages/opencode/src/effect/bootstrap-runtime.ts
new file mode 100644
index 000000000..648f2484e
--- /dev/null
+++ b/packages/opencode/src/effect/bootstrap-runtime.ts
@@ -0,0 +1,9 @@
+import { Layer, ManagedRuntime } from "effect"
+import { memoMap } from "./run-service"
+
+import { Format } from "@/format"
+import { ShareNext } from "@/share/share-next"
+
+export const BootstrapLayer = Layer.mergeAll(Format.defaultLayer, ShareNext.defaultLayer)
+
+export const BootstrapRuntime = ManagedRuntime.make(BootstrapLayer, { memoMap })
diff --git a/packages/opencode/src/project/bootstrap.ts b/packages/opencode/src/project/bootstrap.ts
index 1340a692f..9f6f7fa6f 100644
--- a/packages/opencode/src/project/bootstrap.ts
+++ b/packages/opencode/src/project/bootstrap.ts
@@ -10,14 +10,14 @@ import { Bus } from "../bus"
import { Command } from "../command"
import { Instance } from "./instance"
import { Log } from "@/util/log"
-import { AppRuntime } from "@/effect/app-runtime"
+import { BootstrapRuntime } from "@/effect/bootstrap-runtime"
import { ShareNext } from "@/share/share-next"
export async function InstanceBootstrap() {
Log.Default.info("bootstrapping", { directory: Instance.directory })
await Plugin.init()
- void AppRuntime.runPromise(ShareNext.Service.use((svc) => svc.init()))
- void AppRuntime.runPromise(Format.Service.use((svc) => svc.init()))
+ void BootstrapRuntime.runPromise(ShareNext.Service.use((svc) => svc.init()))
+ void BootstrapRuntime.runPromise(Format.Service.use((svc) => svc.init()))
await LSP.init()
File.init()
FileWatcher.init()
diff --git a/packages/opencode/src/server/instance.ts b/packages/opencode/src/server/instance.ts
index 015d67bfc..6525d2ded 100644
--- a/packages/opencode/src/server/instance.ts
+++ b/packages/opencode/src/server/instance.ts
@@ -191,7 +191,7 @@ export const InstanceRoutes = (upgrade: UpgradeWebSocket, app: Hono = new Hono()
},
}),
async (c) => {
- const commands = await Command.list()
+ const commands = await AppRuntime.runPromise(Command.Service.use((svc) => svc.list()))
return c.json(commands)
},
)