refactor(server): migrate host options

This commit is contained in:
Dax Raad 2026-07-20 21:21:36 -04:00
commit 407ac2d8aa
20 changed files with 149 additions and 94 deletions

View file

@ -59,7 +59,7 @@ export interface Interface {
export class Service extends Context.Service<Service, Interface>()("@opencode/v2/Shell") {}
export const layer = Layer.effect(
export const layer = (options?: ShellSelect.Options) => Layer.effect(
Service,
Effect.gen(function* () {
const events = yield* EventV2.Service
@ -168,7 +168,7 @@ export const layer = Layer.effect(
const id = Shell.ID.ascending()
const cwd = input.cwd ?? location.directory
const configShell = Config.latest(yield* config.entries(), "shell")
const shell = ShellSelect.preferred(configShell)
const shell = ShellSelect.preferred(configShell, options)
const args = ShellSelect.args(shell, input.command)
const file = path.join(outputDir, `${id}.out`)
const env = {
@ -316,8 +316,12 @@ export const layer = Layer.effect(
}),
)
export const node = makeLocationNode({
service: Service,
layer,
deps: [EventV2.node, Location.node, Config.node, Global.node, AppProcess.node],
})
export function configured(options?: ShellSelect.Options) {
return makeLocationNode({
service: Service,
layer: layer(options),
deps: [EventV2.node, Location.node, Config.node, Global.node, AppProcess.node],
})
}
export const node = configured()