diff --git a/packages/opencode/src/acp/directory.ts b/packages/opencode/src/acp/directory.ts index 3a627fe30f..282020aa81 100644 --- a/packages/opencode/src/acp/directory.ts +++ b/packages/opencode/src/acp/directory.ts @@ -208,7 +208,11 @@ export const defaultLayer = layer.pipe( Layer.provide(InstanceStore.defaultLayer), ) -export const loaderNode = LayerNode.make({ service: Loader, layer: loaderLayer, deps: [Provider.node, Agent.node, Command.node, InstanceStore.node] }) +export const loaderNode = LayerNode.make({ + service: Loader, + layer: loaderLayer, + deps: [Provider.node, Agent.node, Command.node, InstanceStore.node], +}) export const node = LayerNode.make({ service: Service, layer, deps: [loaderNode] }) diff --git a/packages/opencode/test/agent/agent.test.ts b/packages/opencode/test/agent/agent.test.ts index eb0b1aab4a..efeaf408a2 100644 --- a/packages/opencode/test/agent/agent.test.ts +++ b/packages/opencode/test/agent/agent.test.ts @@ -17,9 +17,10 @@ import { Skill } from "../../src/skill" import { Truncate } from "../../src/tool/truncate" const agentLayer = (flags: Partial = {}) => - LayerNode.compile(LayerNode.group([Agent.node, Plugin.node, Provider.node, Auth.node, Config.node, Skill.node, RuntimeFlags.node]), [ - [RuntimeFlags.node, RuntimeFlags.layer(flags)], - ]) + LayerNode.compile( + LayerNode.group([Agent.node, Plugin.node, Provider.node, Auth.node, Config.node, Skill.node, RuntimeFlags.node]), + [[RuntimeFlags.node, RuntimeFlags.layer(flags)]], + ) const it = testEffect(agentLayer()) diff --git a/packages/opencode/test/format/format.test.ts b/packages/opencode/test/format/format.test.ts index 53ea17cdfa..72adc848f4 100644 --- a/packages/opencode/test/format/format.test.ts +++ b/packages/opencode/test/format/format.test.ts @@ -8,7 +8,9 @@ import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" import { Format } from "../../src/format" import * as Formatter from "../../src/format/formatter" -const it = testEffect(Layer.mergeAll(LayerNode.compile(LayerNode.group([Format.node, CrossSpawnSpawner.node])), NodeFileSystem.layer)) +const it = testEffect( + Layer.mergeAll(LayerNode.compile(LayerNode.group([Format.node, CrossSpawnSpawner.node])), NodeFileSystem.layer), +) describe("Format", () => { it.instance("status() returns empty list when no formatters are configured", () => @@ -107,7 +109,11 @@ describe("Format", () => { ) testEffect( - Layer.mergeAll(LayerNode.compile(LayerNode.group([Format.node, CrossSpawnSpawner.node])), NodeFileSystem.layer, testInstanceStoreLayer), + Layer.mergeAll( + LayerNode.compile(LayerNode.group([Format.node, CrossSpawnSpawner.node])), + NodeFileSystem.layer, + testInstanceStoreLayer, + ), ).live("status() initializes formatter state per directory", () => Effect.gen(function* () { const a = yield* provideTmpdirInstance(() => Format.use.status(), { diff --git a/packages/opencode/test/installation/installation.test.ts b/packages/opencode/test/installation/installation.test.ts index ac1bcf92e8..9db6b0d125 100644 --- a/packages/opencode/test/installation/installation.test.ts +++ b/packages/opencode/test/installation/installation.test.ts @@ -55,7 +55,11 @@ function testLayer( httpHandler: (request: HttpClientRequest.HttpClientRequest) => Response, spawnHandler?: (cmd: string, args: readonly string[]) => string | { code: number; stdout?: string; stderr?: string }, ) { - const spawnerNode = makeGlobalNode({ service: ChildProcessSpawner.ChildProcessSpawner, layer: mockSpawner(spawnHandler), deps: [] }) + const spawnerNode = makeGlobalNode({ + service: ChildProcessSpawner.ChildProcessSpawner, + layer: mockSpawner(spawnHandler), + deps: [], + }) const appProcessNode = makeGlobalNode({ service: AppProcess.Service, layer: AppProcess.layer, deps: [spawnerNode] }) return LayerNode.compile(Installation.node, [ [httpClient, mockHttpClient(httpHandler)], diff --git a/packages/opencode/test/mcp/oauth-auto-connect.test.ts b/packages/opencode/test/mcp/oauth-auto-connect.test.ts index 557e0a1ee7..febbe0d0bd 100644 --- a/packages/opencode/test/mcp/oauth-auto-connect.test.ts +++ b/packages/opencode/test/mcp/oauth-auto-connect.test.ts @@ -156,7 +156,9 @@ const { FSUtil } = await import("@opencode-ai/core/fs-util") const { CrossSpawnSpawner } = await import("@opencode-ai/core/cross-spawn-spawner") const mcpTest = testEffect( - LayerNode.compile(LayerNode.group([MCP.node, McpAuth.node, EventV2Bridge.node, Config.node, CrossSpawnSpawner.node, FSUtil.node])), + LayerNode.compile( + LayerNode.group([MCP.node, McpAuth.node, EventV2Bridge.node, Config.node, CrossSpawnSpawner.node, FSUtil.node]), + ), ) const config = (name: string) => ({ diff --git a/packages/opencode/test/mcp/oauth-browser.test.ts b/packages/opencode/test/mcp/oauth-browser.test.ts index 7156167460..07b157ecc9 100644 --- a/packages/opencode/test/mcp/oauth-browser.test.ts +++ b/packages/opencode/test/mcp/oauth-browser.test.ts @@ -123,7 +123,9 @@ const { McpOAuthCallback } = await import("../../src/mcp/oauth-callback") const { FSUtil } = await import("@opencode-ai/core/fs-util") const { CrossSpawnSpawner } = await import("@opencode-ai/core/cross-spawn-spawner") const mcpTest = testEffect( - LayerNode.compile(LayerNode.group([MCP.node, McpAuth.node, EventV2Bridge.node, Config.node, CrossSpawnSpawner.node, FSUtil.node])), + LayerNode.compile( + LayerNode.group([MCP.node, McpAuth.node, EventV2Bridge.node, Config.node, CrossSpawnSpawner.node, FSUtil.node]), + ), ) const service = MCP.Service as unknown as Effect.Effect diff --git a/packages/opencode/test/plugin/loader-shared.test.ts b/packages/opencode/test/plugin/loader-shared.test.ts index 285febbda5..b30f6d15cb 100644 --- a/packages/opencode/test/plugin/loader-shared.test.ts +++ b/packages/opencode/test/plugin/loader-shared.test.ts @@ -21,7 +21,9 @@ afterEach(async () => { await disposeAllInstances() }) -const it = testEffect(Layer.mergeAll(LayerNode.compile(LayerNode.group([CrossSpawnSpawner.node, FSUtil.node])), testInstanceStoreLayer)) +const it = testEffect( + Layer.mergeAll(LayerNode.compile(LayerNode.group([CrossSpawnSpawner.node, FSUtil.node])), testInstanceStoreLayer), +) function withTmp( init: (dir: string) => Promise, diff --git a/packages/opencode/test/provider/provider.test.ts b/packages/opencode/test/provider/provider.test.ts index da84935433..3fc948acdd 100644 --- a/packages/opencode/test/provider/provider.test.ts +++ b/packages/opencode/test/provider/provider.test.ts @@ -59,7 +59,16 @@ afterEach(async () => { const providerLayer = (flags: Partial = {}) => LayerNode.compile( - LayerNode.group([Provider.node, FSUtil.node, Env.node, Config.node, Auth.node, Plugin.node, ModelsDev.node, RuntimeFlags.node]), + LayerNode.group([ + Provider.node, + FSUtil.node, + Env.node, + Config.node, + Auth.node, + Plugin.node, + ModelsDev.node, + RuntimeFlags.node, + ]), [[RuntimeFlags.node, RuntimeFlags.layer(flags)]], ) diff --git a/packages/opencode/test/server/project-copy.test.ts b/packages/opencode/test/server/project-copy.test.ts index 7a69150953..4c40908f1f 100644 --- a/packages/opencode/test/server/project-copy.test.ts +++ b/packages/opencode/test/server/project-copy.test.ts @@ -23,7 +23,11 @@ afterEach(async () => { const noopBootstrap = Layer.succeed(InstanceBootstrap.Service, InstanceBootstrap.Service.of({ run: Effect.void })) const testInstanceStore = LayerNode.compile(InstanceStore.node, [[InstanceBootstrap.node, noopBootstrap]]) const it = testEffect( - Layer.mergeAll(LayerNode.compile(LayerNode.group([FSUtil.node, Database.node, Snapshot.node])), testInstanceStore, httpApiLayer), + Layer.mergeAll( + LayerNode.compile(LayerNode.group([FSUtil.node, Database.node, Snapshot.node])), + testInstanceStore, + httpApiLayer, + ), ) function request(directory: string, url: string, init: RequestInit = {}) { diff --git a/packages/opencode/test/server/project-init-git.test.ts b/packages/opencode/test/server/project-init-git.test.ts index e74f93aaaf..dc5f92cd6e 100644 --- a/packages/opencode/test/server/project-init-git.test.ts +++ b/packages/opencode/test/server/project-init-git.test.ts @@ -22,7 +22,9 @@ afterEach(async () => { const noopBootstrap = Layer.succeed(InstanceBootstrap.Service, InstanceBootstrap.Service.of({ run: Effect.void })) const testInstanceStore = LayerNode.compile(InstanceStore.node, [[InstanceBootstrap.node, noopBootstrap]]) -const it = testEffect(Layer.mergeAll(LayerNode.compile(LayerNode.group([FSUtil.node, Snapshot.node])), testInstanceStore, httpApiLayer)) +const it = testEffect( + Layer.mergeAll(LayerNode.compile(LayerNode.group([FSUtil.node, Snapshot.node])), testInstanceStore, httpApiLayer), +) function request(directory: string, url: string, init: RequestInit = {}) { return requestInDirectory(url, directory, init) diff --git a/packages/opencode/test/snapshot/snapshot.test.ts b/packages/opencode/test/snapshot/snapshot.test.ts index 6822b6ee9e..a39624087c 100644 --- a/packages/opencode/test/snapshot/snapshot.test.ts +++ b/packages/opencode/test/snapshot/snapshot.test.ts @@ -16,7 +16,9 @@ import { } from "../fixture/fixture" import { testEffect } from "../lib/effect" -const it = testEffect(Layer.mergeAll(LayerNode.compile(LayerNode.group([Snapshot.node, FSUtil.node])), testInstanceStoreLayer)) +const it = testEffect( + Layer.mergeAll(LayerNode.compile(LayerNode.group([Snapshot.node, FSUtil.node])), testInstanceStoreLayer), +) // Windows forbids both * and : in directory names. const nonWindowsIt = process.platform === "win32" ? it.live.skip : it.live @@ -79,7 +81,8 @@ const bootstrapScoped = Effect.fn("SnapshotTest.bootstrapScoped")(function* () { return { path: dir, extra: yield* initialize(dir) } }) -const scopedGitTmpdir = () => tmpdirScoped({ git: true }).pipe(Effect.provide(LayerNode.compile(CrossSpawnSpawner.node))) +const scopedGitTmpdir = () => + tmpdirScoped({ git: true }).pipe(Effect.provide(LayerNode.compile(CrossSpawnSpawner.node))) const cleanupWorktree = (repo: string, worktree: string, files: string[] = []) => Effect.promise(async () => { diff --git a/packages/opencode/test/tool/apply_patch.test.ts b/packages/opencode/test/tool/apply_patch.test.ts index d890053ed9..e394d8084f 100644 --- a/packages/opencode/test/tool/apply_patch.test.ts +++ b/packages/opencode/test/tool/apply_patch.test.ts @@ -15,7 +15,9 @@ import { SessionID, MessageID } from "../../src/session/schema" import { testEffect } from "../lib/effect" const it = testEffect( - LayerNode.compile(LayerNode.group([LSP.node, FSUtil.node, Format.node, EventV2Bridge.node, Truncate.node, Agent.node])), + LayerNode.compile( + LayerNode.group([LSP.node, FSUtil.node, Format.node, EventV2Bridge.node, Truncate.node, Agent.node]), + ), ) const baseCtx = { diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index 0193d39cd5..46155a5091 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -31,7 +31,9 @@ afterEach(async () => { await disposeAllInstances() }) -const layer = LayerNode.compile(LayerNode.group([LSP.node, FSUtil.node, Format.node, EventV2Bridge.node, Truncate.node, Agent.node])) +const layer = LayerNode.compile( + LayerNode.group([LSP.node, FSUtil.node, Format.node, EventV2Bridge.node, Truncate.node, Agent.node]), +) const it = testEffect(layer) diff --git a/packages/opencode/test/tool/glob.test.ts b/packages/opencode/test/tool/glob.test.ts index 5c1785e69c..018b1a0b9a 100644 --- a/packages/opencode/test/tool/glob.test.ts +++ b/packages/opencode/test/tool/glob.test.ts @@ -21,7 +21,9 @@ import { Permission } from "../../src/permission" import type * as Tool from "../../src/tool/tool" const toolLayer = (flags: Partial = {}) => - LayerNode.compile(LayerNode.group([CrossSpawnSpawner.node, FSUtil.node, Ripgrep.node, Truncate.node, Agent.node, Git.node])) + LayerNode.compile( + LayerNode.group([CrossSpawnSpawner.node, FSUtil.node, Ripgrep.node, Truncate.node, Agent.node, Git.node]), + ) const it = testEffect(toolLayer()) const full = (p: string) => (process.platform === "win32" ? Filesystem.normalizePath(p) : p) diff --git a/packages/opencode/test/tool/grep.test.ts b/packages/opencode/test/tool/grep.test.ts index 74b876a7de..81b74aa8ba 100644 --- a/packages/opencode/test/tool/grep.test.ts +++ b/packages/opencode/test/tool/grep.test.ts @@ -23,7 +23,9 @@ import { Git } from "@/git" import { Filesystem } from "@/util/filesystem" const toolLayer = (flags: Partial = {}) => - LayerNode.compile(LayerNode.group([CrossSpawnSpawner.node, FSUtil.node, Ripgrep.node, Truncate.node, Agent.node, Git.node])) + LayerNode.compile( + LayerNode.group([CrossSpawnSpawner.node, FSUtil.node, Ripgrep.node, Truncate.node, Agent.node, Git.node]), + ) const it = testEffect(toolLayer()) const rooted = testEffect(Layer.mergeAll(toolLayer(), testInstanceStoreLayer)) diff --git a/packages/opencode/test/tool/read.test.ts b/packages/opencode/test/tool/read.test.ts index 7eaac9b45d..c1ef61b227 100644 --- a/packages/opencode/test/tool/read.test.ts +++ b/packages/opencode/test/tool/read.test.ts @@ -46,7 +46,15 @@ const ctx = { const readLayer = (flags: Partial = {}) => LayerNode.compile( - LayerNode.group([Agent.node, FSUtil.node, CrossSpawnSpawner.node, Instruction.node, LSP.node, Ripgrep.node, Truncate.node]), + LayerNode.group([ + Agent.node, + FSUtil.node, + CrossSpawnSpawner.node, + Instruction.node, + LSP.node, + Ripgrep.node, + Truncate.node, + ]), ) const it = testEffect(Layer.mergeAll(readLayer(), testInstanceStoreLayer)) diff --git a/packages/opencode/test/tool/write.test.ts b/packages/opencode/test/tool/write.test.ts index 664e725cd1..4f897dc875 100644 --- a/packages/opencode/test/tool/write.test.ts +++ b/packages/opencode/test/tool/write.test.ts @@ -33,7 +33,15 @@ afterEach(async () => { const it = testEffect( LayerNode.compile( - LayerNode.group([LSP.node, FSUtil.node, EventV2Bridge.node, Format.node, CrossSpawnSpawner.node, Truncate.node, Agent.node]), + LayerNode.group([ + LSP.node, + FSUtil.node, + EventV2Bridge.node, + Format.node, + CrossSpawnSpawner.node, + Truncate.node, + Agent.node, + ]), ), )