refactor: collapse command facade (#21981)
This commit is contained in:
parent
d84cc33742
commit
5e3dc80999
4 changed files with 13 additions and 11 deletions
|
|
@ -1,6 +1,5 @@
|
||||||
import { BusEvent } from "@/bus/bus-event"
|
import { BusEvent } from "@/bus/bus-event"
|
||||||
import { InstanceState } from "@/effect/instance-state"
|
import { InstanceState } from "@/effect/instance-state"
|
||||||
import { makeRuntime } from "@/effect/run-service"
|
|
||||||
import type { InstanceContext } from "@/project/instance"
|
import type { InstanceContext } from "@/project/instance"
|
||||||
import { SessionID, MessageID } from "@/session/schema"
|
import { SessionID, MessageID } from "@/session/schema"
|
||||||
import { Effect, Layer, Context } from "effect"
|
import { Effect, Layer, Context } from "effect"
|
||||||
|
|
@ -189,10 +188,4 @@ export namespace Command {
|
||||||
Layer.provide(MCP.defaultLayer),
|
Layer.provide(MCP.defaultLayer),
|
||||||
Layer.provide(Skill.defaultLayer),
|
Layer.provide(Skill.defaultLayer),
|
||||||
)
|
)
|
||||||
|
|
||||||
const { runPromise } = makeRuntime(Service, defaultLayer)
|
|
||||||
|
|
||||||
export async function list() {
|
|
||||||
return runPromise((svc) => svc.list())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
9
packages/opencode/src/effect/bootstrap-runtime.ts
Normal file
9
packages/opencode/src/effect/bootstrap-runtime.ts
Normal file
|
|
@ -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 })
|
||||||
|
|
@ -10,14 +10,14 @@ import { Bus } from "../bus"
|
||||||
import { Command } from "../command"
|
import { Command } from "../command"
|
||||||
import { Instance } from "./instance"
|
import { Instance } from "./instance"
|
||||||
import { Log } from "@/util/log"
|
import { Log } from "@/util/log"
|
||||||
import { AppRuntime } from "@/effect/app-runtime"
|
import { BootstrapRuntime } from "@/effect/bootstrap-runtime"
|
||||||
import { ShareNext } from "@/share/share-next"
|
import { ShareNext } from "@/share/share-next"
|
||||||
|
|
||||||
export async function InstanceBootstrap() {
|
export async function InstanceBootstrap() {
|
||||||
Log.Default.info("bootstrapping", { directory: Instance.directory })
|
Log.Default.info("bootstrapping", { directory: Instance.directory })
|
||||||
await Plugin.init()
|
await Plugin.init()
|
||||||
void AppRuntime.runPromise(ShareNext.Service.use((svc) => svc.init()))
|
void BootstrapRuntime.runPromise(ShareNext.Service.use((svc) => svc.init()))
|
||||||
void AppRuntime.runPromise(Format.Service.use((svc) => svc.init()))
|
void BootstrapRuntime.runPromise(Format.Service.use((svc) => svc.init()))
|
||||||
await LSP.init()
|
await LSP.init()
|
||||||
File.init()
|
File.init()
|
||||||
FileWatcher.init()
|
FileWatcher.init()
|
||||||
|
|
|
||||||
|
|
@ -191,7 +191,7 @@ export const InstanceRoutes = (upgrade: UpgradeWebSocket, app: Hono = new Hono()
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
async (c) => {
|
async (c) => {
|
||||||
const commands = await Command.list()
|
const commands = await AppRuntime.runPromise(Command.Service.use((svc) => svc.list()))
|
||||||
return c.json(commands)
|
return c.json(commands)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue